CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

function

LieGroups.SE23.Quat.inverse_jacobian

Right-trivialized derivative of inverse with respect to its element

Rule for inverse:

log_map(inverse(X)^-1 * inverse(X*exp_map(dX))) = -Ad(X) dX

The identity is exact. Inversion turns the right perturbation into a left one and negates it; the adjoint carries it back to the right.

Public declarations

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

RoleNameTypeDimensions / attributes / defaultDescription
inputXReal[10]Element {p, v, q}
outputJReal[9, 9]d/d(dX) of log_map(inverse(X)^-1 * inverse(X*exp_map(dX)))

Modelica declarations and implementation

Show parameters, interfaces and source

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

function inverse_jacobian
  "Right-trivialized derivative of inverse with respect to its element"
  input Real X[10] "Element {p, v, q}";
  output Real J[9, 9]
    "d/d(dX) of log_map(inverse(X)^-1 * inverse(X*exp_map(dX)))";
algorithm
  J := -LieGroups.SE23.Quat.adjoint(X);
  annotation(Documentation(info="<html>
    <p>Rule for <code>inverse</code>:</p>
    <pre>log_map(inverse(X)^-1 * inverse(X*exp_map(dX))) = -Ad(X) dX</pre>
    <p>The identity is exact. Inversion turns the right perturbation into a left
    one and negates it; the adjoint carries it back to the right.</p>
  </html>"));
end inverse_jacobian;