Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Motion Models

factors::motion — what the platform’s own dynamics assert, with no sensor involved.

That makes them unusually cheap and unusually easy to misapply. Each is valid only while its condition holds, so it is added by whatever detects that condition: a stationarity detector for ZUPT and ZARU, vehicle knowledge for the other two. Applied where the assumption is violated they are confidently wrong, in the way only a near-zero-noise constraint can be.


ZeroVelocityFactor — ZUPT

The platform is at rest. Applying this bounds the drift inertial integration would otherwise accumulate through a stop, at no sensor cost.

Blocks — residual 3, Jacobian .

Velocity is stored in the world frame, so the residual is it verbatim; the Jacobian block is because the group’s right perturbation moves it by .


ZeroAngularRateFactor — ZARU

While at rest, the gyroscope reads its own bias. This is what makes a stop observe the bias rather than merely stop accumulating it, so it complements ZUPT rather than duplicating it.

Blocks — residual 3, Jacobian .

with the gyro reading averaged over the stationary interval. The accelerometer half is untouched — at rest the accelerometer reads gravity, not its bias, so a stop says nothing about without an attitude reference.


NonholonomicFactor

A wheeled vehicle does not slide sideways or leave the ground: in the body frame its velocity has no lateral or vertical component.

Blocks — residual 2, Jacobian .

taking rows and . The block is what makes this informative about attitude: a heading error turns forward motion into apparent lateral slip, so the constraint corrects the heading, not just the velocity.

Two nearly-free constraints per state, and on a ground vehicle they bound the lateral drift inertial integration is worst at. They are violated by skidding, by lifting a wheel, and by any vehicle that can translate sideways.


PlanarMotionFactor

A vehicle confined to a horizontal plane: fixed height, no roll, no pitch.

Blocks — residual 3, Jacobian .

The two tilt rows are the world- components of the body’s and axes, not roll and pitch angles. They vanish on exactly the same set, but Euler extraction introduces a gimbal singularity and a discontinuity that a least-squares residual should not carry; these rows are smooth everywhere.

with and . The rotation blocks follow from and .

Three constraints per pose, removing the three least-observable degrees of freedom in a 6-DOF estimate of an indoor or road vehicle.