Proprioceptive sensor

Robotic sensors split into two families. Proprioceptive sensors measure the robot’s internal state — its own motion — while exteroceptive sensors (cameras, LiDAR, RADAR, sonar) measure the external environment. The two proprioceptive sensors you will meet constantly in SLAM are:

Proprioceptive measurements feed the motion model of a SLAM system,

xt+1=f(xt,ut)+wt,wtN(0,Qt),\mathbf{x}_{t+1} = f(\mathbf{x}_t, \mathbf{u}_t) + \mathbf{w}_t, \qquad \mathbf{w}_t \sim \mathcal{N}(\mathbf{0}, Q_t),

predicting the next state from the current one. Their defining strengths and weakness:

PropertyConsequence
High rate, low latencySmooth pose prediction between camera/LiDAR frames; handles fast motion and motion blur
Self-containedWorks in darkness, fog, texture-less scenes — no dependence on the environment
Relative onlyPure integration drifts: gyro errors grow with time, double-integrated accelerometer errors grow quadratically

Because they drift but never fail, and exteroceptive sensors are accurate but can fail (blur, low texture, occlusion), the two families are natural complements — this is the entire premise of visual-inertial odometry, where IMU pre-integration accumulates hundreds of inertial measurements between keyframes into a single relative-motion constraint.

Measurement models

The standard IMU measurement model makes the noise structure explicit. With body frame BB, world frame WW, and RWBR_{WB} the body orientation:

ωm=ω+bg+ng,am=RWBT(aWg)+ba+na\boldsymbol{\omega}_m = \boldsymbol{\omega} + \mathbf{b}^g + \mathbf{n}^g, \qquad \mathbf{a}_m = R_{WB}^T(\mathbf{a}_W - \mathbf{g}) + \mathbf{b}^a + \mathbf{n}^a

Three things to notice. The accelerometer measures specific force, not acceleration: gravity g\mathbf{g} appears inside the model, so an IMU sitting still reads 9.81m/s2\approx 9.81\,\text{m/s}^2 upward, and orientation error leaks gravity into the estimated acceleration — a 1° tilt error injects a phantom horizontal acceleration of 9.81sin(1°)0.17m/s29.81 \sin(1°) \approx 0.17\,\text{m/s}^2, which double-integrates into metres within seconds. The noises n\mathbf{n} are modelled as white Gaussian; the biases b\mathbf{b} as slow random walks, which is why estimators carry bias states and update them continuously. And everything is expressed in the body frame — using it requires the very orientation you are trying to estimate, which is what couples inertial navigation into one joint estimation problem.

For wheel encoders on a differential-drive base (wheel radius rr, wheel separation LL, measured wheel rates ωl,ωr\omega_l, \omega_r):

v=r(ωr+ωl)2,ω=r(ωrωl)L,v = \frac{r(\omega_r + \omega_l)}{2}, \qquad \omega = \frac{r(\omega_r - \omega_l)}{L},

with noise dominated not by the encoder resolution (which is excellent) but by model violations: slip, skid, uneven ground, tyre compression — errors that are systematic and terrain-dependent rather than white.

How fast do they drift?

A useful back-of-envelope hierarchy: gyroscope-only orientation drifts linearly with time; velocity from an accelerometer drifts linearly (plus orientation-induced gravity leakage); position drifts quadratically from accelerometer error and cubically from gyro-induced tilt error. This is why consumer MEMS IMUs cannot provide standalone position for more than a few seconds, while tactical/navigation-grade units (fibre-optic gyros) hold for minutes to hours — at orders of magnitude more cost, size, and power. Wheel odometry drifts with distance travelled rather than time, so a stationary wheeled robot doesn’t drift at all — one reason wheel+IMU fusion is so effective indoors.

Common pitfalls

Why it matters for SLAM

Almost every deployed SLAM system is proprioceptive + exteroceptive fusion: VIO on phones and headsets (camera + IMU), wheel-inertial odometry on warehouse robots, LiDAR-inertial odometry on cars. Knowing what proprioceptive sensors measure, how fast they drift, and how their noise is modelled is prerequisite for understanding Kalman-filter and factor-graph fusion at Level 6.