I am working on a quite heavy rover (for the moment at 30 kg, but it’ll be near 100 kg in the future).
I succeeded to perform the compass and accelerometers calibrations but it was quite hard (I needed some more arms to carry the rover and rotate it around all the axes…)
Considering I will need to redo the calibrations once it’ll be at 100 kg (because this addition of weight is made of metal), it will be even more difficult to carry the rover and perform the calibrations.
Therefore, I am looking for some ways of simplifying the calibration and move as less as possible the rover :
- is it possible to do it via an external software ?
- is it possible to have a quite good calibration only by moving the rover on level because it will never roll over on purpose ?
If the only solution is to modify the firmware of ardurover, I am ready for it.
Thank you in advance.
To calibrate the accelerometer you can simply remove the Flight Controller from the vehicle. Whether it is in the vehicle or not makes no difference to calibration
To calibrate the compass you can do the same. However there may be an additional offset vector (x,y,z) caused by ferrous metal in the vehicle.
To find that offset You could try the following.
With a handheld compass and a spirit level (if you are fussy). Place your FC so that it is aligned pointing a specific direction (e.g north)
and then read the raw compass vector.
Then do the same when installed in the vehicle with the FC pointing the same direction.
The difference of the two readings needs to be added to the compass offset. The offsets can be modified by hand using the parameters tools in your GCS or from the command line (see below)
For more accuracy, just take more samples !
As to how to get at these raw compass fields, I know that you can get them via the command line but I am not sure if that is enabled in the normal firmware, however all this is possible, if not exactly simple!
I concur with @skyscraper that the best way to handle calibration with large vehicles is to put the Flight Controller in a module that can be removed and reinstalled quickly. I had a “navigation module” in a Pelican case for my boats that was able to be unscrewed so I could take it out and do the calibration.
Thank you for your advices. I will try your method as soon as possible.
You might want to experiment with the newly released Rover 3.1.0 and the EKF3 support it has. EKF3 is designed to remove the need for calibration and it will learn the IMU offsets automatically. However the MAG offsets aren’t automatically learnt yet but we have plans to enable this. Remember EKF3 is still under development so you would be BETA testing however I have flown aircraft with it without any issues.