GTSAM
4.0.2
C++ library for smoothing and mapping (SAM)
|
#include <PoseRTV.h>
Public Member Functions | |
PoseRTV (const Point3 &t, const Rot3 &rot, const Velocity3 &vel) | |
PoseRTV (const Rot3 &rot, const Point3 &t, const Velocity3 &vel) | |
PoseRTV (const Point3 &t) | |
PoseRTV (const Pose3 &pose, const Velocity3 &vel) | |
PoseRTV (const Pose3 &pose) | |
PoseRTV (const Base &base) | |
PoseRTV (double roll, double pitch, double yaw, double x, double y, double z, double vx, double vy, double vz) | |
PoseRTV (const Vector &v) | |
const Pose3 & | pose () const |
const Velocity3 & | v () const |
const Point3 & | t () const |
const Rot3 & | R () const |
const Point3 & | translation () const |
const Rot3 & | rotation () const |
const Velocity3 & | velocity () const |
Vector | vector () const |
Vector | translationVec () const |
const Velocity3 & | velocityVec () const |
bool | equals (const PoseRTV &other, double tol=1e-6) const |
void | print (const std::string &s="") const |
measurement functions | |
double | range (const PoseRTV &other, OptionalJacobian< 1, 9 > H1={}, OptionalJacobian< 1, 9 > H2={}) const |
IMU-specific | |
PoseRTV | planarDynamics (double vel_rate, double heading_rate, double max_accel, double dt) const |
PoseRTV | flyingDynamics (double pitch_rate, double heading_rate, double lift_control, double dt) const |
PoseRTV | generalDynamics (const Vector &accel, const Vector &gyro, double dt) const |
General Dynamics update - supply control inputs in body frame. | |
Vector6 | imuPrediction (const PoseRTV &x2, double dt) const |
Point3 | translationIntegration (const Rot3 &r2, const Velocity3 &v2, double dt) const |
Point3 | translationIntegration (const PoseRTV &x2, double dt) const |
Vector | translationIntegrationVec (const PoseRTV &x2, double dt) const |
PoseRTV | transformed_from (const Pose3 &trans, ChartJacobian Dglobal={}, OptionalJacobian< 9, 6 > Dtrans={}) const |
Static Public Member Functions | |
Utility functions | |
static Matrix | RRTMbn (const Vector3 &euler) |
static Matrix | RRTMbn (const Rot3 &att) |
static Matrix | RRTMnb (const Vector3 &euler) |
static Matrix | RRTMnb (const Rot3 &att) |
Protected Types | |
typedef ProductLieGroup< Pose3, Velocity3 > | Base |
typedef OptionalJacobian< 9, 9 > | ChartJacobian |
enum | |
enum | |
Group | |
ProductLieGroup | operator* (const ProductLieGroup &other) const |
ProductLieGroup | inverse () const |
ProductLieGroup | compose (const ProductLieGroup &g) const |
ProductLieGroup | between (const ProductLieGroup &g) const |
static ProductLieGroup | Identity () |
typedef multiplicative_group_tag | group_flavor |
Manifold | |
size_t | dim () const |
ProductLieGroup | retract (const TangentVector &v, ChartJacobian H1={}, ChartJacobian H2={}) const |
TangentVector | localCoordinates (const ProductLieGroup &g, ChartJacobian H1={}, ChartJacobian H2={}) const |
static size_t | Dim () |
enum | |
typedef Eigen::Matrix< double, dimension, 1 > | TangentVector |
Lie Group | |
typedef Eigen::Matrix< double, dimension, dimension > | Jacobian |
typedef Eigen::Matrix< double, dimension1, dimension1 > | Jacobian1 |
typedef Eigen::Matrix< double, dimension2, dimension2 > | Jacobian2 |
ProductLieGroup | inverse (ChartJacobian D) const |
ProductLieGroup | compose (const ProductLieGroup &other, ChartJacobian H1, ChartJacobian H2={}) const |
ProductLieGroup | between (const ProductLieGroup &other, ChartJacobian H1, ChartJacobian H2={}) const |
ProductLieGroup | expmap (const TangentVector &v) const |
TangentVector | logmap (const ProductLieGroup &g) const |
static ProductLieGroup | Expmap (const TangentVector &v, ChartJacobian Hv={}) |
static TangentVector | Logmap (const ProductLieGroup &p, ChartJacobian Hp={}) |
static TangentVector | LocalCoordinates (const ProductLieGroup &p, ChartJacobian Hp={}) |
Robot state for use with IMU measurements
gtsam::PoseRTV::PoseRTV | ( | double | roll, |
double | pitch, | ||
double | yaw, | ||
double | x, | ||
double | y, | ||
double | z, | ||
double | vx, | ||
double | vy, | ||
double | vz | ||
) |
build from components - useful for data files
|
explicit |
build from single vector - useful for Matlab - in RtV format
PoseRTV gtsam::PoseRTV::flyingDynamics | ( | double | pitch_rate, |
double | heading_rate, | ||
double | lift_control, | ||
double | dt | ||
) | const |
Simulates flying robot with simple flight model Integrates state x1 -> x2 given controls x1 = {p1, r1, v1}, x2 = {p2, r2, v2}, all in global coordinates
Vector6 gtsam::PoseRTV::imuPrediction | ( | const PoseRTV & | x2, |
double | dt | ||
) | const |
Dynamics predictor for both ground and flying robots, given states at 1 and 2 Always move from time 1 to time 2
PoseRTV gtsam::PoseRTV::planarDynamics | ( | double | vel_rate, |
double | heading_rate, | ||
double | max_accel, | ||
double | dt | ||
) | const |
Dynamics integrator for ground robots Always move from time 1 to time 2
double gtsam::PoseRTV::range | ( | const PoseRTV & | other, |
OptionalJacobian< 1, 9 > | H1 = {} , |
||
OptionalJacobian< 1, 9 > | H2 = {} |
||
) | const |
range between translations
|
static |
RRTMbn - Function computes the rotation rate transformation matrix from body axis rates to euler angle (global) rates
|
static |
RRTMnb - Function computes the rotation rate transformation matrix from euler angle rates to body axis rates
PoseRTV gtsam::PoseRTV::transformed_from | ( | const Pose3 & | trans, |
ChartJacobian | Dglobal = {} , |
||
OptionalJacobian< 9, 6 > | Dtrans = {} |
||
) | const |
Apply transform to this pose, with optional derivatives equivalent to: local = trans.transformFrom(global, Dtrans, Dglobal)
Note: the transform jacobian convention is flipped
Point3 gtsam::PoseRTV::translationIntegration | ( | const Rot3 & | r2, |
const Velocity3 & | v2, | ||
double | dt | ||
) | const |
predict measurement and where Point3 for x2 should be, as a way of enforcing a velocity constraint This version splits out the rotation and velocity for x2
predict measurement and where Point3 for x2 should be, as a way of enforcing a velocity constraint This version takes a full PoseRTV, but ignores the existing translation for x2
|
inline |