IMU accuracy on UDBs

42 views
Skip to first unread message

Mészáros János

unread,
Apr 19, 2012, 3:33:48 PM4/19/12
to uavdevboard
Hi guys,

I'm asking now for your help and experience regarding the accuracy of
the IMU on UDB3 and UDB4. What is the real accuracy and resolution of
the used gyros? Is there any implemented in-flight autocalibration
method in MatrixPilot code? If yes, how can this affect the accuracy
and where can I find a description about it?

My current aim is to figure out a workflow or method to direct
georeference aerial photos which are taken with my airplane. Three
angles of our camera's point-of-view (depend on IMU) and three
coordinates (depend on GPS) are used during a direct georeference and
with this method we can minimize the surveying time during field work
(no control point placement and GPS measurements before flights).

Best regards and happy flying,
János

William Premerlani

unread,
Apr 21, 2012, 3:27:20 PM4/21/12
to uavdevboard, Peter Hollands
Hi János,

There are a series of technical discussions here relating to UDB and MatrixPilot. By using oversampling at 8000 samples per second, we are able to achieve 14 bit resolution for gyro and accelerometer signals.

Regarding in-flight autocalibration of the gyros, you might want to read this posting.

With regard to absolute accuracy for camera aiming, the limiting effects are errors in the reference vectors used for drift compensation. Accuracy is rather good (sorry, but I cannot give you hard numbers on that, but probably within a couple of degrees) if the plane is flying straight and level at constant speed. But if it is turning a lot or changing speed, the error could be more than that, because of centrifugal effects.

I am presently working on a method, described here, to reduce the error due to acceleration.

There are other things to consider in estimating the performance of camera aiming. I consider Peter Hollands to be the expert on that subject, perhaps he will comment.

Best regards,
Bill Premerlani

Peter Hollands

unread,
Apr 23, 2012, 1:11:00 PM4/23/12
to uavdevboard
Janos,

We have no hard and fast calibration data for the IMU orientation and position while flying, because until recently we have had no independent data stream for accurate orientation and position.

It would be very helpful to know:-
a) What sort of straight line accuracy you are looking for ? (straight line, meaning the IMU is only feeling forces in the direction of gravity, and none from accelerating, or moving around a turn (centripetal) ).  Are the following acceptable for your application (photography for creating geo-referenced images for mapping):-
  • Position:-
    • 5 m accuracy for positioning East, and North (assuming plane speed say of 10 m/s) ?
      Here the important factor is whether Bill has allowed the correct time for the latency of GPS positioning (reckoned at about 1.25 seconds for EM406A) in the High Bandwidth Dead Reckoning algorithm (HBDR) of the IMU. The UDB4 should have a big advantage here over ArduMega, which I don't think has HBDR.
    • +/- 20m accuracy in terms of altitude ? (GPS altitude can be quite inaccurate) ?
      There is a barometer branch to MatrixPilot and so using a barometer to increase accuracy of altitude calculations is a possibility. Bill in northern New York State gets quite an accurate altitude. But then his EM406A may be getting a great WAAS (Wide Area Augmented Service) from the USA Government. (A service partly implemented to increase accuracy of GPS for the use of commercial planes).
  • Orientation:-
    • 2 degree accuracy in terms of orientation of the plane in pitch and roll ? (The gyros are for pitch and roll are calibrated from the gravity vector, or were). Note: here we are assuming straight line flight. Turning, or pitching up and down, or acceleration will all effect this accuracy.
    • Yaw accuracy (compass heading of the plane), is dependent on:-
      • Are you using magnetometer (latest trunk code), then, to be honest, it's not going to be all that accurate ? Can you live with +/- 10 degrees
      • If not using magneometer, but relying on GPS heading, then the wind estimation becomes important with regard to accuracy. A lot then depends on the accuracy of the wind estimation algorithm. (Big subject again). Generally in my experience the use of GPS heading is more accurate than using a magnetometer.

        If there is no wind, then heading information for a plane flying straight is going to be pretty accurate, probably better than +/- 2degrees.

I would not like to say definitively that the UDB4 can meet all those parameters. But if your needs are close to those above, then it's probably worth investigating further. Can you comment against that for mapping purposes ?

In all of the above, I am assuming that you have the camera fixed permanently to the aircraft, and that it is not on  pan / tilt / roll camera turrett, in which case there are many more variables consider.

You could perform mapping runs from multiple different directions so as to statistically remove some of the errors.

Brainstorm Hat On: My own view is that there is a great opportunity moving forward to integrate SLAM (Simultaneous Localization and Mapping) with the IMU, using a camera. The IMU, because it has an approximate idea of it's location and orientation, could drastically reduce the maths and calculations to do SLAM. The big question is, can the IMU ever do SLAM 40 times / second ? If it could, then we would revolutionize hobby IMU's, and revolutionize mapping, and also navigation of Quads and Planes. SLAM for the purposes of orientation, and providing information to an IMU, does not have to create 3D point clouds and 3D models. For the purposes of this discussion, we can use the camera to make the DCM more accurate for orientation, especially for mapping applications where the camera is a long way away from objects.

Just to be clearer, about what I'm thinking about. The Camera Picture via SLAM, should be inputting information to the IMU, and the non-SLAM components of the IMU (GPS, accels, and gyros) should be cross-inputing information back to the SLAM, so that the entire setup becomes much much more accurate. But I suppose that is all quite a long way off. People like Lorenz Meier of Zurich ETH, are already deeply investigating algorithms for SLAM.

Once the MatrixPilot_quad branch is stable, it would be nice if one of MIT, Penn State, or ETH Zurich would allow the temporary use of their vicon camera labs, to record the exact accuracy of the UDB4. I think that would be quite cool for calibrating the UDB using a Quad - especially with the accerlation forces demonstrated by the variable pitch quads.

If you connect your UDB4 via FTID or Xbee to Happy Killmore's GCS using SERIAL_UDB_EXTRA, you can actually get quite a good idea of accuracy when using a magnetometr. In this video, the setup clearly was not that accurate. But Bill has done a lot of work since that video on automated calibration of sections of the IMU, as well as calibrating for poor alignment in the magnetometer. Be sure to use a recent version of trunk, if you want to re-do that experiment, and get "a feel", for the accuracy of the IMU.

The QGroundControl Head Up Display, using MAVlink is also a great way to see Pitch and Roll. MAVLink sends both orientation and rate of chagne of angles, which is used by QGroundControl, to make a much smooher display of the roll and pitch of the plane using an artifficial horizon. The entire solution (UDB4, MAVlink, QGroundControl with HUD) is pretty impressive. You can put your plane in front of the PC LCD and have the image of the Horizon follow the angle of the wings for roll. That of course, is a static test which would be valid in straight line flight.

Well I hope that is all food for thought.

Thanks very much for posting your system for creating waypoint paths for mapping purposes.

I expect you know all the maths for this already, and know exactly what accuracy you need :-)

Best wishes, Pete

Reply all
Reply to author
Forward
0 new messages