1
$\begingroup$

I'm trying to implement an indirect Kalman for pose estimation of a wheeled robot. I found two papers that describe this approach.

For this post I will reference the second paper, since it is much more detailed.

My understanding of this approach

In order to estimate the vehicle pose (xy-coords and orientation), two sources of information are fused together. Both odometry and accelerometer combined with gyroscope provide the relative position and rotation information (xy-velocities and rotational speed) and that can be integrated to get the pose.

Since both methods are error-prone their outputs are compared and used to estimate those errors using a Kalman filter [red arrow]. This estimation is fed back to the sensor models that were compared as input [light blue arrows].

Multi-Sensor Data Fusion Block Diagram In the second paper I mentioned almost all components needed for implementation are described in detail:

The final measurement and observation model equations used for data fusion in state space model form are as follows:

ΔX(t + 1) = A(t) ∙ ΔX(t) + w(t)
ΔY(t) = C(t, VL, VR, ωe, Ax, Ay, Ω) ∙ ΔX(t) + v(t)

Where

A(t) = [A1 A2 A3]
C(t, VL, VR, ωe, Ax, Ay, Ω) = [C1 C2 C3]
Ax(t), Ay(t) = Accelerometer Readings
Ω(t) = Gyroscope Readings
VL(t), VR(t) = Linear Velocity from Encoders
ωe(t) = Angular Velocity from Encoders
ΔT = Samping Time

Using naming conventions from above I would asume the following Filter structure:

Kalman filter structure

C(t) = C(t, VL, VR, ωe, Ax, Ay, Ω)

My problem is that all papers and descriptions I found so far didn't really explain how ΔY is used. I know how Kalman filters work in general but I have no idea how ΔY can update ΔX (I've marked this part with questionmarks in the picture above). Do you know how the Measurement Update could work here?

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.