model
SLAM.PoseGraph.ModelicaPoseGraph
Public declarations
Explicit source declarations; dimensions, modifications and defaults are shown as written, without evaluation.
| Role | Name | Type | Dimensions / attributes / default | Description |
|---|---|---|---|---|
| parameter | nodeCapacity | Integer | = 128 | |
| parameter | edgeCapacity | Integer | = 256 | |
| parameter | maximumIterations | Integer | = 8 | |
| parameter | maximumPCG | Integer | = 48 | |
| parameter | maximumBacktracks | Integer | = 8 | |
| parameter | initialDamping | Real | = 0.001 | |
| parameter | maximumPositionStep | Real | = 0.5 | |
| parameter | maximumAngleStep | Real | = 0.2 | |
| parameter | pcgTolerance | Real | = 1e-5 | |
| input | position | Real | [nodeCapacity,3] = zeros(nodeCapacity,3) | |
| input | rotation | Real | [nodeCapacity,3,3] = zeros(nodeCapacity,3,3) | |
| input | nodeMask | Real | [nodeCapacity] = zeros(nodeCapacity) | |
| input | edgeMask | Real | [edgeCapacity] = zeros(edgeCapacity) | |
| input | fromNode | Real | [edgeCapacity] = ones(edgeCapacity) | |
| input | toNode | Real | [edgeCapacity] = ones(edgeCapacity) | |
| input | translation | Real | [edgeCapacity,3] = zeros(edgeCapacity,3) | |
| input | measuredRotation | Real | [edgeCapacity,3,3] = zeros(edgeCapacity,3,3) | |
| input | information | Real | [edgeCapacity,6,6] = zeros(edgeCapacity,6,6) | |
| output | nextPosition | Real | [nodeCapacity,3] | |
| output | nextRotation | Real | [nodeCapacity,3,3] | |
| output | status | Real | | |
| output | costBefore | Real | | |
| output | costAfter | Real | | |
| output | acceptedIterations | Real | | |
| output | pcgIterations | Real | | |
| output | activeNodes | Real | | |
| output | activeEdges | Real | |
Modelica declarations and implementation
Show parameters, interfaces and source
Parameters, inputs, outputs, defaults and equations from the source file.
model ModelicaPoseGraph
import OptimizeModelicaPoseGraph = SLAM.PoseGraph.OptimizeModelicaPoseGraph;
parameter Integer nodeCapacity = 128; parameter Integer edgeCapacity = 256;
parameter Integer maximumIterations = 8; parameter Integer maximumPCG = 48; parameter Integer maximumBacktracks = 8;
parameter Real initialDamping = 0.001; parameter Real maximumPositionStep = 0.5;
parameter Real maximumAngleStep = 0.2; parameter Real pcgTolerance = 1e-5;
input Real position[nodeCapacity,3] = zeros(nodeCapacity,3);
input Real rotation[nodeCapacity,3,3] = zeros(nodeCapacity,3,3);
input Real nodeMask[nodeCapacity] = zeros(nodeCapacity); input Real edgeMask[edgeCapacity] = zeros(edgeCapacity);
input Real fromNode[edgeCapacity] = ones(edgeCapacity); input Real toNode[edgeCapacity] = ones(edgeCapacity);
input Real translation[edgeCapacity,3] = zeros(edgeCapacity,3);
input Real measuredRotation[edgeCapacity,3,3] = zeros(edgeCapacity,3,3);
input Real information[edgeCapacity,6,6] = zeros(edgeCapacity,6,6);
output Real nextPosition[nodeCapacity,3]; output Real nextRotation[nodeCapacity,3,3];
output Real status; output Real costBefore; output Real costAfter; output Real acceptedIterations;
output Real pcgIterations; output Real activeNodes; output Real activeEdges;
equation
(nextPosition,nextRotation,status,costBefore,costAfter,acceptedIterations,pcgIterations,activeNodes,activeEdges) =
OptimizeModelicaPoseGraph(position,rotation,nodeMask,edgeMask,fromNode,toNode,translation,measuredRotation,information,
maximumIterations,maximumPCG,maximumBacktracks,initialDamping,maximumPositionStep,maximumAngleStep,pcgTolerance);
end ModelicaPoseGraph;