CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

model

SLAM.PoseGraph.ModelicaPoseGraph

Public declarations

Explicit source declarations; dimensions, modifications and defaults are shown as written, without evaluation.

RoleNameTypeDimensions / attributes / defaultDescription
parameternodeCapacityInteger= 128
parameteredgeCapacityInteger= 256
parametermaximumIterationsInteger= 8
parametermaximumPCGInteger= 48
parametermaximumBacktracksInteger= 8
parameterinitialDampingReal= 0.001
parametermaximumPositionStepReal= 0.5
parametermaximumAngleStepReal= 0.2
parameterpcgToleranceReal= 1e-5
inputpositionReal[nodeCapacity,3] = zeros(nodeCapacity,3)
inputrotationReal[nodeCapacity,3,3] = zeros(nodeCapacity,3,3)
inputnodeMaskReal[nodeCapacity] = zeros(nodeCapacity)
inputedgeMaskReal[edgeCapacity] = zeros(edgeCapacity)
inputfromNodeReal[edgeCapacity] = ones(edgeCapacity)
inputtoNodeReal[edgeCapacity] = ones(edgeCapacity)
inputtranslationReal[edgeCapacity,3] = zeros(edgeCapacity,3)
inputmeasuredRotationReal[edgeCapacity,3,3] = zeros(edgeCapacity,3,3)
inputinformationReal[edgeCapacity,6,6] = zeros(edgeCapacity,6,6)
outputnextPositionReal[nodeCapacity,3]
outputnextRotationReal[nodeCapacity,3,3]
outputstatusReal
outputcostBeforeReal
outputcostAfterReal
outputacceptedIterationsReal
outputpcgIterationsReal
outputactiveNodesReal
outputactiveEdgesReal

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;