Class inertialsim::geometry::CoordinateTranslation¶
ClassList > inertialsim > geometry > CoordinateTranslation
3-dimensional coordinate frame translations (passive convention). More...
#include <coordinate_translation.h>
Inherits the following classes: inertialsim::geometry::VectorBase
Public Types inherited from inertialsim::geometry::VectorBase¶
See inertialsim::geometry::VectorBase
| Type | Name |
|---|---|
| typedef MatrixLieGroup< Derived, 4, 3 > | Base |
Public Types inherited from inertialsim::geometry::MatrixLieGroup¶
See inertialsim::geometry::MatrixLieGroup
| Type | Name |
|---|---|
| typedef Eigen::Matrix< Scalar, AlgebraDimension, Eigen::Dynamic > | AlgebraArray Matrix of algebra elements (rows = axes, cols = samples). |
| typedef Eigen::Matrix< Scalar, AlgebraDimension, 1 > | AlgebraElement Algebra element type (vector). |
| typedef std::vector< GroupElement > | GroupArray Array of group elements. |
| typedef Eigen::Matrix< Scalar, GroupDimension, GroupDimension > | GroupElement Group element type (square matrix). |
| typedef Eigen::Matrix< Scalar, AlgebraDimension, AlgebraDimension > | JacobianMatrix Jacobian matrix (algebra to algebra). |
| typedef std::vector< JacobianMatrix > | JacobianMatrixArray Array of Jacobian matrices. |
Public Functions¶
| Type | Name |
|---|---|
| int | num_translations () const Number of translations stored. |
Public Functions inherited from inertialsim::geometry::VectorBase¶
See inertialsim::geometry::VectorBase
| Type | Name |
|---|---|
| Array3D | AsSpherical () const Return spherical coordinates (radius, polar, azimuth). |
| Vector3D | AsXyz () const Return Cartesian coordinates. |
| Vector3D | Error (const Derived & reference) const Calculate error compared to a reference vector. |
| Vector3D | Error (const Vector3D & reference) const Calculate error compared to a reference array. |
| int | num_vectors () const Number of vectors stored. |
| Derived | operator* (double scalar) const Multiply by a scalar. |
| Derived | operator+ (const Derived & rhs) const Add two vectors. |
| Derived | operator- (const Derived & rhs) const Subtract two vectors. |
| Derived | operator/ (double scalar) const Divide by a scalar. |
Public Functions inherited from inertialsim::geometry::MatrixLieGroup¶
See inertialsim::geometry::MatrixLieGroup
| Type | Name |
|---|---|
| Vector3D | Apply (const Vector3D & vectors) const Apply the group action to an array of vectors. |
| Derived | Interpolate (const Timestamps & interp_time, Interpolator method=Interpolator::LINEAR) const Interpolate at given times. |
| Derived | Inverse () const Invert an instance. |
| Derived | Slice (int start, int end) const Get a slice of elements. |
| AlgebraArray | TimeDerivative (int order=1, int accuracy=4, const std::string & side="right") const Compute time derivative using finite differences. |
| int | num_elements () const Number of elements stored in the instance. |
| Derived | operator* (const Derived & rhs) const Composition operator on the matrix group. Supports broadcasting: if either lhs or rhs has size 1, it will be broadcast against all elements of the other operand. Derived classes may implement more efficient methods. |
| Derived | operator[] (int index) const Get a single element by index. |
| const std::optional< Timestamps > & | time () const Time array (or nullopt if not set). |
| virtual | ~MatrixLieGroup () = default |
Public Static Functions inherited from inertialsim::geometry::VectorBase¶
See inertialsim::geometry::VectorBase
| Type | Name |
|---|---|
| Derived | FromSpherical (const Array3D & rpa, const std::optional< Timestamps > & time=std::nullopt) Construct from spherical coordinates (radius, polar, azimuth). |
| Derived | FromXyz (const Vector3D & xyz, const std::optional< Timestamps > & time=std::nullopt) Construct from Cartesian coordinates. |
Public Static Functions inherited from inertialsim::geometry::MatrixLieGroup¶
See inertialsim::geometry::MatrixLieGroup
| Type | Name |
|---|---|
| Derived | Compose (const std::vector< Derived > & instances) Compose a sequence of instances (first to last). |
| Derived | FromIdentity (int num_elements=1) Create identity elements. |
| Derived | FromRandom (int num_elements=1, std::optional< Eigen::numext::uint64_t > seed=std::nullopt) Create random elements. |
Protected Functions¶
| Type | Name |
|---|---|
| Vector3D | ApplyImpl (const Vector3D & rhs) const Apply coordinate translation to input vectors. |
| GroupArray | AsGroupImpl () const Return as group elements (for CRTP interface). |
Protected Functions inherited from inertialsim::geometry::VectorBase¶
See inertialsim::geometry::VectorBase
| Type | Name |
|---|---|
| Vector3D | ApplyImpl (const Vector3D & rhs) const Apply (add) vector to input vectors. |
| AlgebraArray | AsAlgebraImpl () const Return as algebra elements. |
| GroupArray | AsGroupImpl () const Return as group elements (for CRTP interface). |
| Derived | InverseImpl () const Return the inverse (negative) of the vector. |
| VectorBase () Default constructor. |
|
| VectorBase (const Vector3D & xyz, const std::optional< Timestamps > & time=std::nullopt) Construct from Cartesian coordinates. |
|
| int | num_elements_impl () const Number of vectors stored. |
Protected Functions inherited from inertialsim::geometry::MatrixLieGroup¶
See inertialsim::geometry::MatrixLieGroup
| Type | Name |
|---|---|
| AlgebraArray | AsAlgebra () const Get the algebra elements. |
| GroupArray | AsGroup () const Get the group elements. |
| Derived | CubicHermiteInterpolate (const Timestamps & time) const Cubic Hermite spline interpolation. |
| Derived | LinearInterpolate (const Timestamps & time) const Linear interpolation implementation. |
| MatrixLieGroup (const std::optional< Timestamps > & time=std::nullopt) Constructor. |
|
| Derived & | derived () CRTP helper to access derived class. |
| const Derived & | derived () const |
| int | num_times () const |
Protected Static Functions¶
| Type | Name |
|---|---|
| GroupElement | ExpImpl (const AlgebraElement & vector) Exponential map: vector to homogeneous transform matrix. |
| CoordinateTranslation | FromGroupImpl (const GroupArray & elements, const std::optional< Timestamps > & time) Construct from group elements (for CRTP interface). |
| AlgebraElement | LogImpl (const GroupElement & element) Logarithm map: homogeneous transform to vector. |
Protected Static Functions inherited from inertialsim::geometry::VectorBase¶
See inertialsim::geometry::VectorBase
| Type | Name |
|---|---|
| GroupElement | ExpImpl (const AlgebraElement & vector) Exponential map: vector to homogeneous transform matrix. |
| Derived | FromAlgebraImpl (const AlgebraArray & elements, const std::optional< Timestamps > & time=std::nullopt) Construct from algebra elements. |
| Derived | FromGroupImpl (const GroupArray & elements, const std::optional< Timestamps > & time) Construct from group elements (for CRTP interface). |
| Derived | FromIdentityImpl (int num_elements) Construct identity (zero) vectors. |
| Derived | FromRandomImpl (int num_elements, std::optional< uint64_t > seed=std::nullopt) Construct random vectors. |
| JacobianMatrixArray | JacobianImpl (const AlgebraArray & vectors, const std::string &="left", bool=false) Left/Right Jacobian of the vector group. |
| AlgebraElement | LogImpl (const GroupElement & element) Logarithm map: homogeneous transform to vector. |
Protected Static Functions inherited from inertialsim::geometry::MatrixLieGroup¶
See inertialsim::geometry::MatrixLieGroup
| Type | Name |
|---|---|
| GroupElement | Exp (const AlgebraElement & vector) Exponential map from algebra to group. |
| Derived | FromAlgebra (const AlgebraArray & elements, const std::optional< Timestamps > & time) Create instance from algebra elements. |
| Derived | FromGroup (const GroupArray & elements, const std::optional< Timestamps > & time) Create instance from group elements. |
| JacobianMatrixArray | Jacobian (const AlgebraArray & algebra, const std::string & side="left", bool inverse=false) Calculate the Jacobian given algebra elements. |
| AlgebraElement | Log (const GroupElement & element) Logarithm map from group to algebra. |
Detailed Description¶
CoordinateTranslation stores translations using the passive convention for use in coordinate frame transforms.
In the passive convention, the translation is negated compared to the active convention used by Translation.
Public Functions Documentation¶
function num_translations¶
Number of translations stored.
Protected Functions Documentation¶
function ApplyImpl¶
Apply coordinate translation to input vectors.
inline Vector3D inertialsim::geometry::CoordinateTranslation::ApplyImpl (
const Vector3D & rhs
) const
Parameters:
rhsInput vectors (3xN matrix).
Returns:
Translated vectors.
function AsGroupImpl¶
Return as group elements (for CRTP interface).
Returns:
Array of 4x4 homogeneous transform matrices.
Note: Uses passive convention - translation is negated.
Protected Static Functions Documentation¶
function ExpImpl¶
Exponential map: vector to homogeneous transform matrix.
static inline GroupElement inertialsim::geometry::CoordinateTranslation::ExpImpl (
const AlgebraElement & vector
)
Parameters:
vector3D vector (algebra element).
Returns:
4x4 homogeneous transform matrix (group element).
Note: Uses passive convention - vector is negated before exponential.
function FromGroupImpl¶
Construct from group elements (for CRTP interface).
static inline CoordinateTranslation inertialsim::geometry::CoordinateTranslation::FromGroupImpl (
const GroupArray & elements,
const std::optional< Timestamps > & time
)
Parameters:
elementsArray of 4x4 homogeneous transform matrices.timeOptional time array.
Returns:
CoordinateTranslation instance.
Note: Uses passive convention - translation is negated.
function LogImpl¶
Logarithm map: homogeneous transform to vector.
static inline AlgebraElement inertialsim::geometry::CoordinateTranslation::LogImpl (
const GroupElement & element
)
Parameters:
element4x4 homogeneous transform matrix (group element).
Returns:
3D vector (algebra element).
Note: Uses passive convention - result is negated.
The documentation for this class was generated from the following file cpp/include/inertialsim/geometry/coordinate_translation.h