gtsam 4.1.1
gtsam
|
Navigation state: Pose (rotation, translation) + velocity NOTE(frank): it does not make sense to make this a Lie group, but it is a 9D manifold.
class | boost::serialization::access |
Testable | |
GTSAM_EXPORT friend std::ostream & | operator<< (std::ostream &os, const NavState &state) |
Output stream operator. | |
void | print (const std::string &s="") const |
print | |
bool | equals (const NavState &other, double tol=1e-8) const |
equals | |
Constructors | |
NavState () | |
Default constructor. | |
NavState (const Rot3 &R, const Point3 &t, const Velocity3 &v) | |
Construct from attitude, position, velocity. | |
NavState (const Pose3 &pose, const Velocity3 &v) | |
Construct from pose and velocity. | |
NavState (const Matrix3 &R, const Vector6 &tv) | |
Construct from SO(3) and R^6. | |
static NavState | Create (const Rot3 &R, const Point3 &t, const Velocity3 &v, OptionalJacobian< 9, 3 > H1, OptionalJacobian< 9, 3 > H2, OptionalJacobian< 9, 3 > H3) |
Named constructor with derivatives. | |
static NavState | FromPoseVelocity (const Pose3 &pose, const Vector3 &vel, OptionalJacobian< 9, 6 > H1, OptionalJacobian< 9, 3 > H2) |
Named constructor with derivatives. | |
Manifold | |
NavState | retract (const Vector9 &v, OptionalJacobian< 9, 9 > H1=boost::none, OptionalJacobian< 9, 9 > H2=boost::none) const |
retract with optional derivatives | |
Vector9 | localCoordinates (const NavState &g, OptionalJacobian< 9, 9 > H1=boost::none, OptionalJacobian< 9, 9 > H2=boost::none) const |
localCoordinates with optional derivatives | |
static Eigen::Block< Vector9, 3, 1 > | dR (Vector9 &v) |
static Eigen::Block< Vector9, 3, 1 > | dP (Vector9 &v) |
static Eigen::Block< Vector9, 3, 1 > | dV (Vector9 &v) |
static Eigen::Block< const Vector9, 3, 1 > | dR (const Vector9 &v) |
static Eigen::Block< const Vector9, 3, 1 > | dP (const Vector9 &v) |
static Eigen::Block< const Vector9, 3, 1 > | dV (const Vector9 &v) |
Public Member Functions | |
Component Access | |
const Rot3 & | attitude (OptionalJacobian< 3, 9 > H=boost::none) const |
const Point3 & | position (OptionalJacobian< 3, 9 > H=boost::none) const |
const Velocity3 & | velocity (OptionalJacobian< 3, 9 > H=boost::none) const |
const Pose3 | pose () const |
Derived quantities | |
Matrix3 | R () const |
Return rotation matrix. Induces computation in quaternion mode. | |
Quaternion | quaternion () const |
Return quaternion. Induces computation in matrix mode. | |
Vector3 | t () const |
Return position as Vector3. | |
const Vector3 & | v () const |
Return velocity as Vector3. Computation-free. | |
Velocity3 | bodyVelocity (OptionalJacobian< 3, 9 > H=boost::none) const |
Matrix7 | matrix () const |
Return matrix group representation, in MATLAB notation: nTb = [nRb 0 n_t; 0 nRb n_v; 0 0 1] With this embedding in GL(3), matrix product agrees with compose. | |
Dynamics | |
NavState | update (const Vector3 &b_acceleration, const Vector3 &b_omega, const double dt, OptionalJacobian< 9, 9 > F, OptionalJacobian< 9, 3 > G1, OptionalJacobian< 9, 3 > G2) const |
Integrate forward in time given angular velocity and acceleration in body frame Uses second order integration for position, returns derivatives except dt. | |
Vector9 | coriolis (double dt, const Vector3 &omega, bool secondOrder=false, OptionalJacobian< 9, 9 > H=boost::none) const |
Compute tangent space contribution due to Coriolis forces. | |
Vector9 | correctPIM (const Vector9 &pim, double dt, const Vector3 &n_gravity, const boost::optional< Vector3 > &omegaCoriolis, bool use2ndOrderCoriolis=false, OptionalJacobian< 9, 9 > H1=boost::none, OptionalJacobian< 9, 9 > H2=boost::none) const |
Correct preintegrated tangent vector with our velocity and rotated gravity, taking into account Coriolis forces if omegaCoriolis is given. | |
Public Types | |
enum | { dimension = 9 } |
typedef std::pair< Point3, Velocity3 > | PositionAndVelocity |
|
friend |
serialization