I've been writing a GPS-INS integration EKF for my Master's research. This may be the first implementation of this algorithm to be published as Open Source software and you can find it on bitbucket. See also some discussion on the OpenPilot forums.

Views: 3420

Comment by Michael Zaffuto on June 29, 2010 at 5:00am
Thanks Jonathan, incredibly kind of you. Does your thesis discuss your implementation in further detail?
Comment by Jonathan Brandmeyer on June 29, 2010 at 5:53am
Right now, I'm working on a journal article. If that gets accepted, then I'll be able to publish a preprint. But I think it would inappropriate to self-publish the journal paper before it goes through peer review.
Comment by Alex on June 29, 2010 at 7:14am
I think its great that we have these algorithms, and I'm curious to see what the open source APs are going to do to implement (or not?) them. Even the sort-of latest-and-greatest ArduPilot Mega would be (IMO) hard-pressed to implement something like this at 100Hz.

/me moves to OpenPilot forums for rest of discussion.
Comment by Simon Wood on June 29, 2010 at 3:31pm
Another great contribution to the OpenSource world, thanks. I didn't see mention of any specific sensor hardware, what are you using or are you aiming to be 'hardware independant'?

One area I am interested in is augmenting GPS position, effectively placing IMU 'in the wire' between GPS and NMEA aware mapping application in order to increase positional accuracy in marginal reception areas (such as urban canyons). Thoughts?
Comment by Jonathan Brandmeyer on June 30, 2010 at 4:04am
It isn't entirely hardware independent, but it is flexible. You must have a GPS, accelerometer, and gyro. You should almost certainly also have a vector observer in the form of a magnetometer and/or thermopile. Without the vector observer, the filter is much less robust, but you could probably make it work in a car with a suitably modified state prediction function.

All of the sensor's critical parameters (their white noise terms, and maximum gyro bias at startup) are taken as function or constructor arguments in the library, so that it can be used with a variety of parts.


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service