ov_type::PoseJPL class

Derived Type class that implements a 6 d.o.f pose.

Internally we use a JPLQuat quaternion representation for the orientation and 3D Vec position. Please see JPLQuat for details on its update procedure and its left multiplicative error.

Base classes

class Type
Base class for estimated variables.

Public functions

void set_local_id(int new_id) override
Sets id used to track location of variable in the filter covariance.
void update(const Eigen::VectorXd dx) override
Update q and p using a the JPLQuat update for orientation and vector update for position.
void set_value(const Eigen::MatrixXd new_value) override
Sets the value of the estimate.
void set_fej(const Eigen::MatrixXd new_value) override
Sets the value of the first estimate.
auto clone() -> Type* override
Create a clone of this variable.
auto check_if_same_variable(const Type* check) -> Type* override
Used to find the components inside the Pose if needed.
auto Rot() const -> Eigen::Matrix<double, 3, 3>
Rotation access.
auto Rot_fej() const -> Eigen::Matrix<double, 3, 3>
FEJ Rotation access.
auto quat() const -> Eigen::Matrix<double, 4, 1>
Rotation access as quaternion.
auto quat_fej() const -> Eigen::Matrix<double, 4, 1>
FEJ Rotation access as quaternion.
auto pos() const -> Eigen::Matrix<double, 3, 1>
Position access.

Protected variables

JPLQuat* _q
Subvariable containing orientation.
Vec* _p
Subvariable containg position.

Function documentation

void ov_type::PoseJPL::set_local_id(int new_id) override

Sets id used to track location of variable in the filter covariance.

Parameters
new_id entry in filter covariance corresponding to this variable

Note that we update the sub-variables also.

void ov_type::PoseJPL::update(const Eigen::VectorXd dx) override

Update q and p using a the JPLQuat update for orientation and vector update for position.

Parameters
dx Correction vector (orientation then position)

void ov_type::PoseJPL::set_value(const Eigen::MatrixXd new_value) override

Sets the value of the estimate.

Parameters
new_value New value we should set

void ov_type::PoseJPL::set_fej(const Eigen::MatrixXd new_value) override

Sets the value of the first estimate.

Parameters
new_value New value we should set

Type* ov_type::PoseJPL::check_if_same_variable(const Type* check) override

Used to find the components inside the Pose if needed.

Parameters
check variable to find

If the passed variable is a sub-variable or the current variable this will return it. Otherwise it will return a nullptr, meaning that it was unable to be found.