| Author |
Message |
vandelay
Joined: 16 Aug 2007 Posts: 116 Helped: 2 Location: Norway
|
19 Dec 2007 6:40 GPS in Kalman filter: any thoughts? |
|
|
|
I have previously made orientation sensing Kalman filters employing gyros plus accelerometers, used for tilt-correcting magnetometers.
Now I want to look into GPS movement tracking as well, my initial thought that I am looking for feedback on is this;
In addition to angle (Θ), angular velocity (ω), and gyroscope bias (b) already in the state vector, I am thinking to implement states for position (p), speed (s), and acceleration (t) along the respective (body-fixed) axes.
For the predictor function I am thinking to use t= measured acceleration on axis minus gravity component (differentiable function of Θx,Θy). This is mapped to speed by sk+1=sk+tk*dt, speed is mapped to position by pk+1=pk+sk*dt.
Then, in the corrector, I plan to apply the GPS position through Kalman gain..
Have anyone here done this? Any thoughts or corrections?
Any feedback will be greatly appreciated.
- Kjetil
|
|
| Back to top |
|
 |
vandelay
Joined: 16 Aug 2007 Posts: 116 Helped: 2 Location: Norway
|
23 Dec 2007 8:40 |
|
|
|
So far, I've expanded the filter with a speedometer, and fused in the magnetometer. The speedometer should increase reliability of the gravity reference since (if I assume the vehicle mounted to the unit is travelling in direction of it's nose) I can account for sideways or upwards/downwards acceleration as a function of forward speed and angular velocity. Thus, the filter will no longer mistakenly assume these components to be gravity.
The states is expanded from 6 states to 13 states, where I now model [angle, angular velocity, gyro bias] for all 3 axes plus x axis speed and xyz acceleration components (components contributing to speed, gravity excluded)
I am thinking this will be a nice upgrade before I step all the way into GPS.. It is one step up the ladder..
while my predictor jacobian is nice and clean, my state to sensor output jacobian is really messed up with BIGBIGBIG trigonometric squareroot etc expressions that will need calculation every update. Producing the expected magnetometer reading seem to be the heaviest task. Seems like I will need to move up from dsPIC to DSP..
A question;
While I can model z (up) and y (left/right) axis acceleration as a function of forward (x) speed and angular velocities, I can think of no reference for x axis acceleration except the speedometer... Should I predict that the speed of next frame is that of the current vk+1=vk, modelling the acceleration prediction as ak+1=vk/dt, and expect the correction to update the velocity state based on speedometer? will magic then track the x axis acceleration
I guess I'll find out, but I'm a bit puzzled... I can geometrically construct the gravity vector from angle states and add the z and y axis acceleration, but I still need the x axis acceleration to produce the complete expected measurement...
|
|
| Back to top |
|
 |
brmadhukar
Joined: 21 Jun 2002 Posts: 844 Helped: 29
|
11 Jan 2008 5:08 Re: GPS in Kalman filter: any thoughts? |
|
|
|
Have you used the Kalman filter in real time using dsPIC for Navigation? That is quite an achievement!!!!
I had used a DSP for just integrating Odometer and Murat Gyro
BRM
|
|
| Back to top |
|
 |
vandelay
Joined: 16 Aug 2007 Posts: 116 Helped: 2 Location: Norway
|
11 Jan 2008 19:04 Re: GPS in Kalman filter: any thoughts? |
|
|
|
Not quite.. While I implemented an orientation tracking Kalman filter on dsPIC, I've now ported my project to the computer. The dsPIC now reads sensors and IIR filter the results, then uploads it to the PC over USB every update. On the PC a "real-time" emulator C++ program now does the filtering. I did this to quicker evaluate new algorithms, as porting MATLAB to C++ is relatively painless, plus I have a much higher headroom on FLOPS performance.
The dsPIC is actually quite powerful for filters that is not too complex. Running my old filter (6-state, augmented), I estimated a performance of over 200KFLOPS on an dsPIC30F3013 @120MHz (30MIPS), and with optimized code I could do analog sampling by A/D interrupt, digital IIR filtering, 400Hz Kalman update as well as 100Hz upload rate to SPI master, the dsPIC running as slave. This was the max performance I could get from the chip and I had to mess around alot with different interrupt priorities to avoid timing problems.
|
|
| Back to top |
|
 |
Jackwang
Joined: 12 Nov 2004 Posts: 167 Helped: 2
|
27 Jan 2008 11:05 GPS in Kalman filter: any thoughts? |
|
|
|
you can refer the book: Global Positioning Systems, Inertial Navigation, and Integration.
http://www.edaboard.com/viewtopic.php?t=35068&highlight=gps
|
|
| Back to top |
|
 |
melc
Joined: 08 Apr 2005 Posts: 392 Helped: 44
|
27 Jan 2008 13:40 Re: GPS in Kalman filter: any thoughts? |
|
|
|
| Jackwang wrote: |
you can refer the book: Global Positioning Systems, Inertial Navigation, and Integration.
http://www.edaboard.com/viewtopic.php?t=35068&highlight=gps |
The topic or post you requested does not exist (it was removed)
OK, now works.
|
|
| Back to top |
|
 |
calm
Joined: 17 Oct 2005 Posts: 271 Helped: 5
|
02 Apr 2008 4:24 GPS in Kalman filter: any thoughts? |
|
|
|
| do this to quicker evaluate new algorithms, as porting MATLAB to C++ is relatively painless.
|
|
| Back to top |
|
 |