Replacing FMA with a 6DOF IMU

Hello,If I understand right, Ardupilot is dependent on FMA for roll and pitch stability.I have 6DOF IMU from Sparkfun and I want to use it to monitor the roll, yaw and pitch angles of my model airplane and use this data to perform FMA functions i.e. maintain roll and pitch stability.Sparksfun's 6DOF IMU gives accelerations and gyro data. On benchtop experiments, I can accurately measure my roll and pitch angles using only accelerometers. But, if the IMU flies in model UAV, it will be subject to all sort of other accelerations, rotations and accelerarometer readings will not be sufficient to measure roll and pitch angles.Can someone tell explain how to use 6DOF IMU to calculate roll,yaw,pitch angles in flight and eventually use 6DOF IMU to replace FMA? Do you have Arduino code for thisRob.
E-mail me when people leave their comments –

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

Join diydrones


  • Or is it more the current through the wires messing with the magnetometers?
  • Would any of these products be useful for shielding the motors?
    Magnetic Shielding Materials
    Learn how to Make Your Own Magnetic Field Shields With These Unique Materials
  • How about a VOR and/or NDB receiver?
  • 3D Robotics
    I think that method was actually used in the 40s! (seriously)
  • Developer
    There are methods for "smoothing" gps but INS is pretty difficult with crappy mems. Like Bill said. You would have to have a magnetometer and you'd have to simplify your ground speed into airspeed components therefore needing airspeed sensor. "accurate dead reckoning" Well how accurate are you looking for. The navy's T45 has some of the best gryo's (not even close to fitting on a small uav) and they are resonably accurate without GPS but still drift a surprising ammount. The double integration of accelerometers kills you as well as the quantization error. You are really depending on the GPS to lock down your gyros so having your gryos run free as well as the double integration of accel noise....quickly departs the INS solution. I know very little about it but I do know that the Navy's jets have a hard time with it and one of the best commercial uav's got miles away in a min so....
  • T3
    With any method that I know of, including the DCM method, you need either a GPS and/or a magnetometer to serve as benchmark vectors to correct for gyro yaw drift.
    Best regards,
  • Bill, your comment above "Numerical integration errors and gyro drift are detected and corrected by taking the vector cross products of benchmark vectors with corresponding rows or columns of the direction cosine matrix. The result of the cross products are rotation vectors that will correct the drift." made me sit up and pay attention.

    If the DCM method can correct the numerical integration errors and gyro drift, would it be possible to go from a DCM-based IMU to a DCM-based INS? I want accurate dead-reckoning upon lack of a GPS signal.
  • Developer
    Yeah just finished reading your paper. I was talking about my filter....when I said why fix it if it isn't broke. Navigates just fine. It's funny because DCM is really similar to what I'm doing. All of these filters are pretty much the same. It's funny how you can tackle a problem a couple of different ways but ultimately you still have to understand the fundamentals. My processor doesn't do well with matrix math so my implememation is probably more effecient in its current status. DCM would all have to be done by hand line by line. I like the PI approach. I just have P but a really tight temp compensation. Something I didn't see in your paper that you might think about is retuning the P and I when p q and r are present. ie: accelerometers shouldn't be trusted or fedback as much when there is a known centripetal. Just an idea.
  • T3
    Hi Ryan,

    I am amazed that you are able juggle flight school with Kalman filters. That is quite an accomplishment. I am very impressed.

    Regarding "If it works why fix it"... Before I retired, I worked at GE's research labs. Innovation is all about fixing things that already work. Its a habit I got into. Think about some of the great things we have today that leapfrogged the previous technology, like lasers and magnetic resonance imagers for example. Why bother with CT or MRI when you have an xray machine? We can always do better.

    Regarding the DCM algorithm, you are welcome to take a look at the code if you want, but I suggest a better read would be the DCM documentation.

    Best regards,
  • Developer
    Thanks, Bill. I would like to see some comparisons. If it works why fix it you know what I mean. I'm so busy with flight school....trying to get jet grades! I just like figuring stuff out so I will take a look at your code. I understand the concept just not the implementation

This reply was deleted.