|
Posted by Curt Welch on June 18, 2009, 2:35 pm
> Not possible without a calibration step.
> In that double integration, you end up with two constants, one for
> initial rotation, one for initial position. The gyros can help with the
> first, but the stating position can't be determined. You can figure out
> what way is 'down' (net -1g) but the other two axes are not fixed unless
> you manually orient the machine and then start.
> At least, this is what I have figured out in my similar application. I'd
> love to hear if someone else has figured out a workable solution.
Yes, you certainly need something to create the initial calibration.
But as the other post indicated, gravity gives you a calibration if you
know the machine is not moving relative to the earth. So if you know at
some point that the machine is not in motion, you can set velocity and
position to zero and you read the inclination from the accelerometer.
The problem with integrating is that errors accumulates over time so the
accuracy of the calculation degrades with time. The longer you run the
integration, the less certainly you have with the numbers until at some
point, the error dominates and the results become effectively worthless.
How fast that happens is just a function of how much error is in your
measurements.
Because of that, you must have some way to recalibrate from time to time.
It can be as simple as a button which is pushed by a human to indicate the
vehicle is not in motion.
More complex solutions can be created by the addition of more sensors -
such as GPS if we are talking about a vehicle moving outside. Putting two
or three GPS receivers on the same vehicle gives you even more useful data.
A arm on a robot can have a home position with a sensor to detect when it's
placed back in the starting home position so that once it returns to that
location you recalibrate it's location. A train that was traveling on
fixed tracks could have a sensor read the current track angle from the
ground with a bar code sensors to recalibrate the system every time it
passed over that calibration point. Vehicles that have wheels in contact
with the ground often include sensors to measure the motion of the wheels.
That gives you a direct measure of velocity to work with.
There are many ways to calibrate the system - just depends on what you have
to work with in your application. But if all you have is an accelerometer
and gyros, you will have to add something else to calibrate the system if
you want to know the position or velocity since neither of those sensors
directly read either of those values.
If inclination is all you need to know, then you simply need to calibrate
for that one measurement - which is possible if you can also sense when the
velocity of the vehicle is zero and if you can calibrate the alignment of
the sensor itself to the vehicle when it's first built - or if you have
some sensor to tell you when the inclination is at some known position like
zero.
Below, LV writes:
> I must find the exact position of
> a working machine ...
You can NEVER find the exact position. You can only find an approximate
position. The addition of more, and better sensors, just makes the
approximate answer you have more accurate. The point of the Kalman Filter
is to get as much accuracy out of the data you have to work with as
possible - not to find the "exact position".
> Jim
> > Hi,
> > I'm doing a project for determining the position (declination angle) of
> > a vehicle using Kalman Filter. I have one 3D Accelerator and 3 Gyros on
> > board. With the help of Kalman Filter I must find the exact position of
> > a working machine(declination of the machine). Therefore I need the
> > initial declination angles. I know that I can get them from the 3D
> > Accelerometer measurements, but I don't know how. I've thought that by
> > double integrating I can get them, but it turns out that it doesn't
> > work. Is there another way to find them - I mean is there some special
> > kind of transformation matrix I can use? After all what I need is just
> > the matrix with the initial declination angles of the machine.
> > 10x
--
Curt Welch http://CurtWelch.Com/
curt@kcwc.com http://NewsReader.Com/
|
> I’m doing a project for determining the position (declination angle) of a
> vehicle using Kalman Filter. I have one 3D Accelerator and 3 Gyros on
> board. With the help of Kalman Filter I must find the exact position of a
> working machine(declination of the machine). Therefore I need the initial
> declination angles. I know that I can get them from the 3D Accelerometer
> measurements, but I don’t know how. I’ve thought that by double
> integrating I can get them, but it turns out that it doesn’t work. Is
> there another way to find them – I mean is there some special kind of
> transformation matrix I can use? After all what I need is just the matrix
> with the initial declination angles of the machine.
> 10x
> -------------------------------------
> ##-----------------------------------------------##
> Delivered viahttp://www.zonerocket.com/
> Robotics Community of the Net
> Web and RSS access to your favorite newsgroup -
> comp.robotics.misc - 19712 messages and counting!
> ##-----------------------------------------------##