A public thank you to Caleb from CH Robotics


As some people might know there is a team hard at work on OpenPilot and we are making some progress, like every complex project things don't go as fast as you like but progress is happening. One of the things we are working on now is the low level infrastructure for the AHRS, this makes it so our EKF developers can just drop their code in without messing with the low level side of things.

On of the issues we needed to resolve was filtering the inputs, we were a bit unsure on which way to go. I sent an email to Caleb from CHR to ask his advice, he not only helped a lot but also gave us permission to use parts of his gyro filtering code such as his FIR filter as long as we credited him. Naturally he will be credited in the code and the credit file but I wanted to say a public thank you for this as well.

What I love about OpenPilot is the community, this side was mentioned on the podcast where we announced the project. Caleb is a perfect example of this community spirit.

Additionally, I don't see the CHR-6dm AHRS mentioned much here, so if you are looking for a well priced, powerful AHRS with a complete EKF have a look at http://www.chrobotics.com/ - Caleb rocks :-)

A small update on OpenPilot as well. Things are moving along, we have our issue tracker running now which can be found at bugs.openpilot.org there are still tasks to be added as not everything being is done is in there yet but it will be. There is a burn down chart which shows how far away we are from the version 1.0 release and a list of outstanding tasks that we need help with if people want to get involved.

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • My personal opinion is that you can make it work by tuning your filter properly - for example, I've set up covariances in an EKF so that it took the accels on the order of ten seconds to make an appreciable (3 to 4 degree) change in angle estimates. If the gyros are zeroed (bias removed) then they are easily reliable for ten seconds.

    It seems reasonable, then, that when using these settings, your angle estimate in a coordinated turn wouldn't be skewed by more than a few degrees after ten seconds. Depending on what your aircraft needs to do, ten seconds could be time enough.

    It may be that the filter on the unit Ryan used simply didn't allow the gains to be tuned in a manner to make it work. It may also be that I am completely wrong - I haven't tried it.
  • So i know that you decreased the input from the accelarometers if the out put was greater than 1G, Is there curently any way to keep the Accelerometers in the loop an using a more accurate velocity such as air speed and keep the drift down or is the best option to use 2 rate gryos so you can have the high turn rate as well as a low drift? And the code for the 2 rate system should not be to hard, you would just need to watch for saturation to switch to the higher rate gryro and when you return to staight and level flight re-level the system off the accelorometers, or what in the big picture am I missing?
  • Developer
    honestly the unit we were using had very unconventional names for the gains but believe me we tried them all in every possible scenario. We called them and even asked if they would suggest a benchmark place to start and they said that they would be very suprised if we got it working. At that point we gave up and went back to square one. The thing with adjusting the accel covariance in my opinion is this. The EKF is trusting the accel based on the modeling and only works if the modeling of the equations is inclusive of the centripetal. aka somewhat closer to reality. Even if you washed them out, the filter would have zero accelerometer updates for most of the time and thus you as well as I do, the noisy drift of the gyros will depart it quite rapidly if nothing is keeping it in check. Specially if you are using low 10-12bit a2d's with only software FIR filters
  • That's really interesting. And the bad angle estimates persisted even if you decreased your process covariances and increased your accel covariance?
  • Developer
    ** "manual control or autopilot control."
  • Developer
    Angle control feedback loops on roll and pitch. We knew it was the state estimates because they were being sent down to the groundstation and after anything other than straight and level we would get estimates that were all over the place reguardless of the aircraft being in manual control of autopilot control.
  • @Ryan

    Ah, you are the voice of experience, then. :-) What were you trying to use the closed AHRS for? Were you wrapping angle hold control loops around the state estimate outputs? If so, how were you able to decouple the control and state estimation problems? (ie. how did you determine that the problem was related to poor state outputs, and not the interplay between your controller and observer, or simply the controller itself?) I guess if you spent a year on it, a forum post might not be the best place to talk about it...
  • Developer
    I spent a whole year trying to get a closed AHRS to work in a small UAV that didn't have and Centrip-comp. And no matter the gains on the EKF we ended up making our own to include more modeling because it just wasn't enough. Granted they probably had zero washout on the accelerometers but even that could prove very untrustworthy for most uav's

    It is funny how even the slightest help from gps even though it is slow and laggy helps out so much!
  • @David

    Thanks for the shout out!


    An orientation sensor without something to subtract out centripetal acceleration isn't necessarily useless. I'd say it has a lot to do with, say, how long you expect to remain in a coordinated turn compared with how long you can trust your rate gyros. For many low-budget hobbyist UAV projects, I would think that a sensor similar to the CHR-6dm should work just fine... although I could be wrong.
  • Developer
    I stand corrected, it appears that the new version has the option of adding gps via serial? And it is open source so...could be possible. Great looking gear nontheless!
This reply was deleted.