33 #ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V4 34 struct PoseVelocityBias {
38 imuBias::ConstantBias bias;
39 PoseVelocityBias(
const Pose3& _pose,
const Vector3& _velocity,
40 const imuBias::ConstantBias _bias) :
41 pose(_pose), velocity(_velocity), bias(_bias) {
43 PoseVelocityBias(
const NavState& navState,
const imuBias::ConstantBias _bias) :
44 pose(navState.pose()), velocity(navState.velocity()), bias(_bias) {
46 NavState navState()
const {
47 return NavState(pose, velocity);
67 #ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V4 70 boost::shared_ptr<Params>
p_;
98 virtual void resetIntegration()=0;
103 void resetIntegrationAndSetBias(
const Bias& biasHat);
107 return p_.get() == other.
p_.get();
111 const boost::shared_ptr<Params>&
params()
const {
116 const Params&
p()
const {
117 return *boost::static_pointer_cast<Params>(p_);
120 #ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V4 121 void set_body_P_sensor(
const Pose3& body_P_sensor) {
130 double deltaTij()
const {
return deltaTij_; }
132 virtual Vector3 deltaPij()
const=0;
133 virtual Vector3 deltaVij()
const=0;
134 virtual Rot3 deltaRij()
const=0;
135 virtual NavState deltaXij()
const=0;
138 Vector6 biasHatVector()
const {
return biasHat_.
vector(); }
143 GTSAM_EXPORT
friend std::ostream& operator<<(std::ostream& os,
const PreintegrationBase& pim);
144 virtual void print(
const std::string& s)
const;
153 std::pair<Vector3, Vector3> correctMeasurementsBySensorPose(
154 const Vector3& unbiasedAcc,
const Vector3& unbiasedOmega,
162 virtual void update(
const Vector3& measuredAcc,
const Vector3& measuredOmega,
163 const double dt, Matrix9* A, Matrix93* B, Matrix93* C)=0;
166 virtual void integrateMeasurement(
const Vector3& measuredAcc,
167 const Vector3& measuredOmega,
const double dt);
186 Vector9 computeErrorAndJacobians(
const Pose3& pose_i,
const Vector3& vel_i,
187 const Pose3& pose_j,
const Vector3& vel_j,
193 #ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V4 198 PoseVelocityBias predict(
const Pose3& pose_i,
const Vector3& vel_i,
200 const Vector3& omegaCoriolis,
const bool use2ndOrderCoriolis =
false)
const;
boost::shared_ptr< Params > p_
Parameters.
Definition: PreintegrationBase.h:70
void print(const Matrix &A, const string &s, ostream &stream)
print without optional string, must specify cout yourself
Definition: Matrix.cpp:140
OptionalJacobian is an Eigen::Ref like class that can take be constructed using either a fixed size o...
Definition: OptionalJacobian.h:39
Navigation state composing of attitude, position, and velocity.
Navigation state: Pose (rotation, translation) + velocity NOTE(frank): it does not make sense to make...
Definition: NavState.h:34
Parameters for pre-integration: Usage: Create just a single Params and pass a shared pointer to the c...
Definition: PreintegrationParams.h:26
boost::optional< Pose3 > body_P_sensor
The pose of the sensor in the body frame.
Definition: PreintegratedRotation.h:34
Bias biasHat_
Acceleration and gyro bias used for preintegration.
Definition: PreintegrationBase.h:73
PreintegrationBase is the base class for PreintegratedMeasurements (in ImuFactor) and CombinedPreinte...
Definition: PreintegrationBase.h:58
const boost::shared_ptr< Params > & params() const
shared pointer to params
Definition: PreintegrationBase.h:111
double deltaTij_
Time interval from i to j.
Definition: PreintegrationBase.h:76
bool matchesParamsWith(const PreintegrationBase &other) const
check parameters equality: checks whether shared pointer points to same Params object.
Definition: PreintegrationBase.h:106
Vector6 vector() const
return the accelerometer and gyro biases in a single vector
Definition: ImuBias.h:52
const Params & p() const
const reference to params
Definition: PreintegrationBase.h:116
Global functions in a separate testing namespace.
Definition: chartTesting.h:28
PreintegrationBase()
Default constructor for serialization.
Definition: PreintegrationBase.h:79