Reply by mjcoss March 10, 20092009-03-10
> >what accelerometer are you using? >
I'm using a Analog Device ADXL330.
Reply by bung...@yahoo.com March 10, 20092009-03-10
On Mar 10, 12:53&#4294967295;pm, "mjcoss" <mjc...@gmail.com> wrote:
> >The Kalman filter formalizes what you already discovered, that > >the world is imperfect with all sorts of noise sources and other > >problems with measurements. Instead of trying to make One Perfect > >Measurement (which is impossible) the Kalman filter is based on > >the fact that what you *observe* is comprised by the 'true' state > >you want to find, and noise. > > >From that starting point one develops algorithms that try and > >extract the 'true' state, based on whatever knowledge (models > >of the system) and information (previous measurements) one have. > > >>=A0And what I really want is to fix both the > >> gyro and the accelerometer so that I have a reasonable accurate sense > of > >> the heading, acceleration, velocity, and position of the robot. > > >You can't. There will always be measurement noise, gyro drift, > >and all sorts of other problems in the practical world. > > >Rune > > I'm not look for a perfect solution, just something better than the raw > data from the sensors. &#4294967295;However I'm not sure how to proceed. &#4294967295;It looked > like the Kalman filter might help. &#4294967295;The accelerometer is too noisy for my > application. &#4294967295;I need to prevent the robot from accelerating greater than > 0.06g, but I'm seeing +/- 0.1g noise. &#4294967295;It's possible that the accelerometer > is bad, or I'm getting too much environmental noise or any number of > things, but at the end of the day, as is, the readings are useless for what > I need. &#4294967295;I was looking at applying a software filter to eliminate some of > the noise so that I might be able to detect the motion correctly. &#4294967295;I've > tried averaging, oversampling, to tweak the ADC output but no luck. &#4294967295;Unless > I can find a way to reduce the noise, I'm going to have to abandon using > the accelerometer and just use the encoders, and derive the acceleration > from that.- Hide quoted text - > > - Show quoted text -
what accelerometer are you using?
Reply by mjcoss March 10, 20092009-03-10
>The Kalman filter formalizes what you already discovered, that >the world is imperfect with all sorts of noise sources and other >problems with measurements. Instead of trying to make One Perfect >Measurement (which is impossible) the Kalman filter is based on >the fact that what you *observe* is comprised by the 'true' state >you want to find, and noise. > >From that starting point one develops algorithms that try and >extract the 'true' state, based on whatever knowledge (models >of the system) and information (previous measurements) one have. > >>=A0And what I really want is to fix both the >> gyro and the accelerometer so that I have a reasonable accurate sense
of
>> the heading, acceleration, velocity, and position of the robot. > >You can't. There will always be measurement noise, gyro drift, >and all sorts of other problems in the practical world. > >Rune >
I'm not look for a perfect solution, just something better than the raw data from the sensors. However I'm not sure how to proceed. It looked like the Kalman filter might help. The accelerometer is too noisy for my application. I need to prevent the robot from accelerating greater than 0.06g, but I'm seeing +/- 0.1g noise. It's possible that the accelerometer is bad, or I'm getting too much environmental noise or any number of things, but at the end of the day, as is, the readings are useless for what I need. I was looking at applying a software filter to eliminate some of the noise so that I might be able to detect the motion correctly. I've tried averaging, oversampling, to tweak the ADC output but no luck. Unless I can find a way to reduce the noise, I'm going to have to abandon using the accelerometer and just use the encoders, and derive the acceleration from that.
Reply by Rune Allnor March 10, 20092009-03-10
On 10 Mar, 00:41, "mjcoss" <mjc...@gmail.com> wrote:

> The Kalman filter descriptions I've seen via google searches have been to > use the accelerometer to correct the gyroscope, but if the accelerometer is > noisy how can it help that much.
The Kalman filter formalizes what you already discovered, that the world is imperfect with all sorts of noise sources and other problems with measurements. Instead of trying to make One Perfect Measurement (which is impossible) the Kalman filter is based on the fact that what you *observe* is comprised by the 'true' state you want to find, and noise. From that starting point one develops algorithms that try and extract the 'true' state, based on whatever knowledge (models of the system) and information (previous measurements) one have.
>&#4294967295;And what I really want is to fix both the > gyro and the accelerometer so that I have a reasonable accurate sense of > the heading, acceleration, velocity, and position of the robot.
You can't. There will always be measurement noise, gyro drift, and all sorts of other problems in the practical world. Rune
Reply by Tim Wescott March 9, 20092009-03-09
On Mon, 09 Mar 2009 18:41:23 -0500, mjcoss wrote:

> I'm working on a robot and have gotten a 5 degrees of freedom sensor - > x, y and z acceleration, roll, and pitch gyro to help with navigation. > I also have encoders on the drive shaft for the left and right side of > the robot which is using a tank drive system. As well as two encoders > (one on each side of the robot) that are free running wheels. > > The problem is that I'm seeing drift on the gyro, and noise on the > accelerometer. The encoders seem to be the most accurate sensor in the > system. > > Searching around I see suggestions that a Kalman filter could help solve > these problems with the sensors. But I know nothing about Kalman > filters. > > The Kalman filter descriptions I've seen via google searches have been > to use the accelerometer to correct the gyroscope, but if the > accelerometer is noisy how can it help that much. And what I really > want is to fix both the gyro and the accelerometer so that I have a > reasonable accurate sense of the heading, acceleration, velocity, and > position of the robot. > > If I start with a state > x = [ heading, acceleration x, velocity x, > acceleration y, velocity y, position ] > > How I figure out all the other matrices need to actually implement the > filter? And how much computation power is this going to take? > > Any help greatly appreciated.
All of your inputs to the Kalman involve noisy measurements that must be integrated into an answer. Hence, you'll never "get there from here". If you could, it would be by writing equations of motion that start with the inputs you have, and spit out the readings (presumably positions and headings) that you want. -- http://www.wescottdesign.com
Reply by mjcoss March 9, 20092009-03-09
I'm working on a robot and have gotten a 5 degrees of freedom sensor - x, y
and z acceleration, roll, and pitch gyro to help with navigation.  I also
have encoders on the drive shaft for the left and right side of the robot
which is using a tank drive system.  As well as two encoders (one on each
side of the robot) that are free running wheels.

The problem is that I'm seeing drift on the gyro, and noise on the
accelerometer.  The encoders seem to be the most accurate sensor in the
system.

Searching around I see suggestions that a Kalman filter could help solve
these problems with the sensors.  But I know nothing about Kalman filters.

The Kalman filter descriptions I've seen via google searches have been to
use the accelerometer to correct the gyroscope, but if the accelerometer is
noisy how can it help that much.  And what I really want is to fix both the
gyro and the accelerometer so that I have a reasonable accurate sense of
the heading, acceleration, velocity, and position of the robot.

If I start with a state 
  x = [ heading, acceleration x, velocity x, 
                 acceleration y, velocity y, position ]

How I figure out all the other matrices need to actually implement the
filter?  And how much computation power is this going to take?

Any help greatly appreciated.