49 typedef std::pair<Point3, Velocity3> PositionAndVelocity;
56 t_(0, 0, 0), v_(Vector3::Zero()) {
64 R_(pose.rotation()), t_(pose.translation()), v_(v) {
67 NavState(
const Matrix3& R,
const Vector6& tv) :
68 R_(R), t_(tv.head<3>()), v_(tv.tail<3>()) {
75 static NavState FromPoseVelocity(
const Pose3& pose,
const Vector3& vel,
86 const Pose3 pose()
const {
87 return Pose3(attitude(), position());
107 const Vector3&
v()
const {
116 Matrix7 matrix()
const;
124 friend std::ostream &operator<<(std::ostream &os,
const NavState& state);
127 void print(
const std::string& s =
"")
const;
138 static Eigen::Block<Vector9, 3, 1> dR(Vector9& v) {
139 return v.segment<3>(0);
141 static Eigen::Block<Vector9, 3, 1> dP(Vector9& v) {
142 return v.segment<3>(3);
144 static Eigen::Block<Vector9, 3, 1> dV(Vector9& v) {
145 return v.segment<3>(6);
147 static Eigen::Block<const Vector9, 3, 1> dR(
const Vector9& v) {
148 return v.segment<3>(0);
150 static Eigen::Block<const Vector9, 3, 1> dP(
const Vector9& v) {
151 return v.segment<3>(3);
153 static Eigen::Block<const Vector9, 3, 1> dV(
const Vector9& v) {
154 return v.segment<3>(6);
163 Vector9 localCoordinates(
const NavState& g,
173 NavState update(
const Vector3& b_acceleration,
const Vector3& b_omega,
178 Vector9 coriolis(
double dt,
const Vector3& omega,
bool secondOrder =
false,
183 Vector9 correctPIM(
const Vector9& pim,
double dt,
const Vector3& n_gravity,
184 const std::optional<Vector3>& omegaCoriolis,
bool use2ndOrderCoriolis =
193 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 194 friend class boost::serialization::access; 195 template<
class ARCHIVE>
196 void serialize(ARCHIVE & ar,
const unsigned int ) {
197 ar & BOOST_SERIALIZATION_NVP(R_);
198 ar & BOOST_SERIALIZATION_NVP(t_);
199 ar & BOOST_SERIALIZATION_NVP(v_);
Definition: NavState.h:34
Both ManifoldTraits and Testable.
Definition: Manifold.h:117
NavState(const Rot3 &R, const Point3 &t, const Velocity3 &v)
Construct from attitude, position, velocity.
Definition: NavState.h:59
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
Vector3 Velocity3
Velocity is currently typedef'd to Vector3.
Definition: NavState.h:28
NavState(const Matrix3 &R, const Vector6 &tv)
Construct from SO(3) and R^6.
Definition: NavState.h:67
NavState()
Default constructor.
Definition: NavState.h:55
Rot3 is a 3D rotation represented as a rotation matrix if the preprocessor symbol GTSAM_USE_QUATERNIO...
Definition: Rot3.h:58
const Vector3 & v() const
Return velocity as Vector3. Computation-free.
Definition: NavState.h:107
Definition: Testable.h:112
Base class and basic functions for Manifold types.
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
Vector3 t() const
Return position as Vector3.
Definition: NavState.h:103
Definition: chartTesting.h:28
typedef and functions to augment Eigen's VectorXd
gtsam::Quaternion toQuaternion() const
Matrix3 R() const
Return rotation matrix. Induces computation in quaternion mode.
Definition: NavState.h:95
Definition: OptionalJacobian.h:38
NavState(const Pose3 &pose, const Velocity3 &v)
Construct from pose and velocity.
Definition: NavState.h:63
Vector3 Point3
Definition: Point3.h:38
Quaternion quaternion() const
Return quaternion. Induces computation in matrix mode.
Definition: NavState.h:99