CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

function

Estimation.StrapdownINS.rangeToPlane

Distance from a co-located nadir camera to a plane along its -body-z ray

Public declarations

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

RoleNameTypeDimensions / attributes / defaultDescription
inputpositionWorldEnu_mReal[3]
inputquaternionWorldBodyReal[4]
inputplaneNormalWorldEnuReal[3] = {0.0, 0.0, 1.0}
inputplaneOffset_mReal= 0.0d in normal' * position = d
outputdistance_mReal

Modelica declarations and implementation

Show parameters, interfaces and source

Parameters, inputs, outputs, defaults and equations from the source file.

function rangeToPlane
  "Distance from a co-located nadir camera to a plane along its -body-z ray"
  input Real positionWorldEnu_m[3];
  input Real quaternionWorldBody[4];
  input Real planeNormalWorldEnu[3] = {0.0, 0.0, 1.0};
  input Real planeOffset_m = 0.0 "d in normal' * position = d";
  output Real distance_m;
protected
  Real rotationWorldBody[3, 3];
  Real rayWorldEnu[3];
  Real denominator;
algorithm
  rotationWorldBody := LieGroups.SO3.Quat.to_DCM(quaternionWorldBody);
  rayWorldEnu := rotationWorldBody * {0.0, 0.0, -1.0};
  denominator := planeNormalWorldEnu * rayWorldEnu;
  distance_m := (planeOffset_m
    - planeNormalWorldEnu * positionWorldEnu_m) / denominator;
end rangeToPlane;