C
C
CapitanBlood2013-04-03 12:04:55
data mining
CapitanBlood, 2013-04-03 12:04:55

Kalman filter for crawler robot?

Good day
, I smoked literature on this issue for a long time (mostly bourgeois articles), but there are many questions left
(there will be many formulas written in text form, who don’t want to torture themselves - at the end of the text there will be a link to a screenshot of Matkadov’s sheet, there are formulas look clearer)
we have:
a caterpillar platform on which an accelerometer and a gyroscope are installed
received the following filter:
State vector X (6x1):

xx-coordinate
yy-coordinate
φrobot rotation angle
Vlinear speed of the robot
ωrobot angular velocity
atangential acceleration of the robot

Observation matrix Y(2x1):
yaaccelerometer readings
yggyroscope readings

system model (t - time step):
x = x + cos(φ) * (V * t + a * t^2/2)
y = y + sin(φ) * (V * t + a * t^2/2)
φ = φ + ω * t
V = V + a * t
ω = ω
a = a

matrix F(6x6):
one0-sin(φ) * (a * t^2 / 2 + V * t)t*cos(φ)0t^2 * cos(φ) / 2
0onecos(φ) * (a * t^2 / 2 + V * t)t*cos(φ)0t^2 * sin(φ) / 2
00one0t0
000one0t
0000t0
00000t

Matrix H(2x6):
00000one
0000one0

Matrix I (6x6) - single
Matrix N (2x2) - single
Matrix V (2x2) - single
Matrix R (2x2) - single
Matrix W (2x2) - single
Matrix Q (6x6): - selected empirically, tried to calculate based on random sampling based on variance (for diagonal elements) and covariance for all others
Matrix P(6x6) - initially equal to matrix Q
[xT] - transposed matrix, (x[-1]) - inverse matrix
of the filter itself:
K = P* [HT] ((HP[HT] + VR[VT])[-1])
P=(I - KH)P
x = x + K(y - h(x))
P=FP[FT] + WQ[ WT]
x = f(x,y)
what I ended up with:
acceleration
graph rotation angle graph
in general and in general, for acceleration, the graph is more or less similar to the truth, but for the angle of rotation, complete anarchy occurs.
it was noticed that the Q matrix has a very big influence on the behavior of the filter,
so I have two questions:
1) how close am I to the correct compilation of the filter itself (do not judge strictly if I got into a puddle, but rather indicate)
2) how the matrix is ​​\u200b\u200bcalculated Q? there was even such a thing - I picked up the matrix Q - everything works perfectly, changed the behavior of the system (suppose it changed the acceleration) - and the filter stopped working.
all calculated moments on the matkad sheet:

Answer the question

In order to leave comments, you need to log in

1 answer(s)
E
Eddy_Em, 2013-04-04
@Eddy_Em

Where does speed come from? From the readings of the acceleration sensor, the speed cannot be calculated (too rough + an additive error accumulates).
The coordinates from the readings of the accelerometer and the angular sensor, all the more impossible to calculate - complete nonsense will turn out. And also imagine what the accuracy of determining the coordinates will be if, say, the angle sensor is 16-bit, and the robot traveled only a couple of kilometers (I suggest: 10cm for each km if the robot was driving in a straight line, and this is if the speed is calculated perfectly) ...
Of course, the noise depends on the capacity of the sensors: for example, if you have 128-bit sensors, then you won’t notice much error in the first hour or two of work.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question