Skip to content

Class inertialsim::geometry::VectorBase

template <typename Derived>

ClassList > inertialsim > geometry > VectorBase

Base class for 3-dimensional vector types. More...

  • #include <vector_base.h>

Inherits the following classes: inertialsim::geometry::MatrixLieGroup

Public Types

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
Array of algebra elements.
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
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
Compose elements of the group.
Derived operator[] (int index) const
Get a single element by index.
const std::optional< Timestamps > & time () const
Time array corresponding to each element.
virtual ~MatrixLieGroup () = default

Public Static Functions

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
VectorBase ()
Default constructor.
VectorBase (const Vector3D & xyz, const std::optional< Timestamps > & time=std::nullopt)
Construct from Cartesian coordinates.

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.
MatrixLieGroup (const std::optional< Timestamps > & time=std::nullopt)
Constructor.
int num_times () const

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 of the exponential map.
AlgebraElement Log (const GroupElement & element)
Logarithm map from group to algebra.

Detailed Description

Template parameters:

Public Types Documentation

typedef Base

using inertialsim::geometry::VectorBase< Derived >::Base =  MatrixLieGroup<Derived, 4, 3>;

Public Functions Documentation

function AsSpherical

Return spherical coordinates (radius, polar, azimuth).

inline Array3D inertialsim::geometry::VectorBase::AsSpherical () const

Returns:

Spherical coordinates (3xN matrix).


function AsXyz

Return Cartesian coordinates.

inline Vector3D inertialsim::geometry::VectorBase::AsXyz () const

Returns:

Cartesian coordinates (3xN matrix).


function Error [1/2]

Calculate error compared to a reference vector.

inline Vector3D inertialsim::geometry::VectorBase::Error (
    const  Derived & reference
) const

Parameters:

  • reference Reference vector.

Returns:

Error values.


function Error [2/2]

Calculate error compared to a reference array.

inline Vector3D inertialsim::geometry::VectorBase::Error (
    const  Vector3D & reference
) const

Parameters:

  • reference Reference coordinates (3xN matrix).

Returns:

Error values.


function num_vectors

Number of vectors stored.

inline int inertialsim::geometry::VectorBase::num_vectors () const


function operator*

Multiply by a scalar.

inline Derived inertialsim::geometry::VectorBase::operator* (
    double scalar
) const

Parameters:

  • scalar Scalar multiplier.

Returns:

New vector containing the product.


function operator+

Add two vectors.

inline Derived inertialsim::geometry::VectorBase::operator+ (
    const  Derived & rhs
) const

Parameters:

  • rhs Right-hand side vector.

Returns:

New vector containing the sum.


function operator-

Subtract two vectors.

inline Derived inertialsim::geometry::VectorBase::operator- (
    const  Derived & rhs
) const

Parameters:

  • rhs Right-hand side vector.

Returns:

New vector containing the difference.


function operator/

Divide by a scalar.

inline Derived inertialsim::geometry::VectorBase::operator/ (
    double scalar
) const

Parameters:

  • scalar Scalar divisor.

Returns:

New vector containing the quotient.


Public Static Functions Documentation

function FromSpherical

Construct from spherical coordinates (radius, polar, azimuth).

static inline Derived inertialsim::geometry::VectorBase::FromSpherical (
    const  Array3D & rpa,
    const std::optional< Timestamps > & time=std::nullopt
) 

Parameters:

  • rpa Spherical coordinates (3xN matrix).
  • time Optional time array.

Returns:

Derived instance.


function FromXyz

Construct from Cartesian coordinates.

static inline Derived inertialsim::geometry::VectorBase::FromXyz (
    const  Vector3D & xyz,
    const std::optional< Timestamps > & time=std::nullopt
) 

Parameters:

  • xyz Cartesian coordinates (3xN matrix).
  • time Optional time array.

Returns:

Derived instance.


Protected Functions Documentation

function VectorBase [1/2]

Default constructor.

inline inertialsim::geometry::VectorBase::VectorBase () 


function VectorBase [2/2]

Construct from Cartesian coordinates.

inline explicit inertialsim::geometry::VectorBase::VectorBase (
    const  Vector3D & xyz,
    const std::optional< Timestamps > & time=std::nullopt
) 

Parameters:

  • xyz Cartesian coordinates (3xN matrix).
  • time Optional time array.

Friends Documentation

friend operator*

Scalar multiplication from the left (friend declaration).

inline Derived inertialsim::geometry::VectorBase::operator* (
    double scalar,
    const  Derived & vec
) 

Parameters:

  • scalar Scalar multiplier.
  • vec Vector to multiply.

Returns:

New vector containing the product.



The documentation for this class was generated from the following file cpp/include/inertialsim/geometry/vector_base.h