Calibration: Difference between revisions
No edit summary |
|||
Line 7: | Line 7: | ||
{{COMMENT|One may wonder why the accelerometers need to be calibrated, but not the gyros. In principle, also the gyros should be calibrated for best performance. However, the calibration techniques are so complicated that calibrating the gyros is beyond our reach.}} | {{COMMENT|One may wonder why the accelerometers need to be calibrated, but not the gyros. In principle, also the gyros should be calibrated for best performance. However, the calibration techniques are so complicated that calibrating the gyros is beyond our reach.}} | ||
__TOC__ | <div class="toclimit-2">__TOC__</div> | ||
== General == | == General == |
Revision as of 03:54, 25 April 2018
The gimbal will work without calibration, but the camera wouldn't be leveled well. For optimal performance the accelerometers within the IMU modules need to be calibrated. Several calibration techniques are existing, and two are implemented in the STorM32 project, namely the "1-point" and "6-point" calibrations.
Unfortunately, it is not absolutely clear which method is the best. The firmware author doesn't have the resources for an extensive research project, which is what would be needed for clarifying this. Hence, the situation is a bit experimental. However, from the experience so far, this rule of thumb seems to provide good advice:
No calibration is a no go, but a simple 1-point calibration is nearly always sufficient.
Comment: One may wonder why the accelerometers need to be calibrated, but not the gyros. In principle, also the gyros should be calibrated for best performance. However, the calibration techniques are so complicated that calibrating the gyros is beyond our reach.
General
Reasons and Goals
It might be helpful to first understand better why a calibration of the accelerometers is done at all. The obvious reason is of course to account for the inaccuracies of the accelerometers, which are individual to each device. The goal is to get data which correctly reflect the actual accelerations. In the case of the camera IMU this e.g. implies that the camera is indeed level. However, there are additional, in some way more important reasons for doing the calibration, and these are in fact different for the camera IMU and the 2nd IMU.
Camera IMU
The accuracy of the calibration of the camera IMU also strongly influences the "horizon tilt", i.e., the accuracy with which the horizon is held in e.g. quick yaw turns. The horizon tilt is minimal then the accelerometer z axis is parallel to the gimbal z axis (similar statements hold for the x and y axis), which can be realized by calibrating the accelerometer well, and by a square gimbal and square mounting of the accelerometer. Thus, a main goal of calibrating the camera IMU is to optimize the "horizon tilt" performance.
Comment: Improperly aligned IMU sensor and gimbal axes is only one of the reasons for horizon tilt (which can be minimized by calibration). A second effect, which is of totally different physical origin, and which can not be overcome by calibration, are accelerations of the gimbal during e.g. high-g maneuvers. The measured accelerations do when not coincide with the gravity anymore, and the AHRS loses its horizon, leading to a tilt of the camera. Unfortunately, both effects are often confused, but should be clearly distinguished.
Second IMU
The measurement accuracy of the 2nd IMU is by itself not really important for the operation of the STorM32 gimbal controller. It is however important that the data of the 2nd IMU are consistent with the data of the camera IMU, since otherwise the internal math would go wrong, which can lead to all sorts of weird problems. Luckily, some tolerance is acceptable, which however depends also on the number of poles of the motors. For motors with 14 poles or less, the calibration of the 2nd IMU doesn't need to be super accurate, and a quick 1-point calibration usually does it. The higher the pole count of the motors, the better the calibration needs to be.
Rules of Thumb
It has been found that the calibration requirements are quite different for the different IMU axes.
IMU Orientation: In general, the Z axis is more often wrong than the X and Y axes.
Of course, the care with which a calibration is performed very much affects the final quality results of the calibration.
Calibration Accuracy: A 6-point calibration is meaningful only if it is done very accurately. A poorly undertaken 6-point calibration can easily result in poorer performance than a supposedly "lesser" 1-point calibration. The resulting quality factor for the 6-point calibration option can give a good indication as to the results (a value of 80 is very good, 150 average, 250 not so good).
From the above information these are rules of thumb to follow:
Rules of thumb:
- The calibration only needs to be as good as you need it to be. If you are happy with the way your gimbal performs, you don't need to spend time on a (better) calibration.
- IMU orientations with the Z axis pointing up or down seem preferable, as it lessens the need for calibration. But don't be fooled here, equally good results can be obtained for other orientation. Some of the best videos out there were in fact recorded with the IMU's Z axis in a horizontal orientation. It just means that with the Z axis pointing up or down it's more likely that one can get away with a "lesser" calibration for a desired level of performance.
- The calibration of the camera IMU is more important than for the 2nd IMU, i.e. for the 2nd IMU a "lesser" calibration might be fully sufficient.
- The calibration of the 2nd IMU becomes more important as the motor pole count increases (e.g. 14 pole versus 22 pole).
Even though, for the reasons mentioned previously, a clear-cut calibration recipe cannot currently be offered, there are some recommendations in place:
Current Recommendations:
- A 1-point calibration is fairly simple, and is hence recommended for both the camera and the 2nd IMU.
- If possible choose IMU orientations with the Z axis pointing up or down, but that's not a must as explained before.
- Don't do a 6-point calibration unless you plan to do it very accurately (check out the rcgroups thread).
- If motors with 12 or 14 poles are used, a 1-point calibration of the 2nd IMU is most likely sufficient. In contrast higher-pole motors require a careful 2nd IMU calibration.
Finally, some important advice:
Save your calibration data to a file!
Ideally save it from within the [GUI:Acc Calibration] dialog window, as this stores the most detailed information. Consider also posting your calibration files in the rcgroups thread, so that the firmware author and others can enhance their knowledge and hopefully develop better calibration schemes.
Calibration Procedure
The calibration consists of two steps. In one step, the calibration constants are determined for the particular NT IMU module under consideration. In another step, the calibration constants are made effective by storing them permanently into the NT IMU module or the STorM32 board.
Comment: For NT IMU modules which are running the original firmware, the calibration constants are stored in the NT IMU module itself. Otherwise the calibration constants are stored in the STorM32 controller.
The [GUI:Calibrate Acc] tab is the central place for all calibration related tasks. It provides the means to select the IMU which shall be calibrated, to enter calibration values, and to store them. The fields holding the calibration constants can be populated in various ways:
- Values can be edited or entered directly into the text fields.
- The values can be set to the default values by hitting the [Reset to Default] button.
- The values currently stored in the NT IMU module/STorM32 board can be read out by hitting the [Read from Board] button.
- The fields can be populated with calibration values stored in a calibration file via the [Load from File] button.
- The fields can be set to the values obtained from a 1-point or 6-point calibration via the [Run 1-Point Calibration] and [Run 6-Point Calibration] buttons.
The calibration constants are send to and permanently stored in the NT IMU module/STorM32 board by hitting the [Store Calibration] button.
It is recommended to restart the STorM32 controller after a change of the calibration constants.
The 1-point and 6-point calibration procedures for determining calibration constants are better explained by videos. The next chapter offers one video, but you may find further ones on the Video Tutorials page.
Tutorial Videos
Rcgroups user mackar made a great videos on how to do a 6-point calibration (see also here and here).
Calibration Tools
bruce356's 3D printed calibration cube:
http://www.rcgroups.com/forums/showpost.php?p=29983118&postcount=2346
stl files: http://www.rcgroups.com/forums/showpost.php?p=29983275&postcount=2351
GekoCH's wooden board calibration tool: http://www.rcgroups.com/forums/showpost.php?p=30034517&postcount=2439
larsm's calibration technique: http://www.rcgroups.com/forums/showpost.php?p=29649741&postcount=1897
OlliW's lego calibration tool: http://www.rcgroups.com/forums/showpost.php?p=29646349&postcount=1890