Hi all, I really need your help!!
I am using rover firmware version 3.1.0. Yes I am working on rover. My H/W configuration is PXFmini + external compass module (Ublox M8N purchased from Erle). Both PXFmini and GPS module is attached up from battery around 10cm as the picture attached below.
From doing many compass calibration, I found that the internal compass (compass in PXFmini) is shown in MP as compass#1 and compass in external GPS module is shown as compass#2. I know that because when I disconnect GPS wire from PXFmini, the offset of compass#2 is 0 0 0. And I have also checked in QGroundControl, it shows that compass#1 is internal and compass#2 is external. Is that weird?
When I do the compass calibration via MP, it shows many strange behavior. First, the calibration complete very quick! So I cannot rotate my rover in all axes. Second the point that get from rotating the vehicle is spread. And lastly, the offset of compass#1 (internal) is very high! So after finish calibrating, I never get true pointing direction. (When finish calibrating, I always put the rover to point to North direction to test the compass whether it point correctly or not. And it always point in wrong direction) I also attached the screen while I am doing compass calibration for you.
Click here >>> Compass Calibration
In order to fix this problem, I try to disable the internal compass as you seen in the video. But it does not work, the vehicle always point to wrong direction. I does not sure that compass#1 is already disable or not so I want to disable it in the script of firmware. I found that method in this forum http://forum.erlerobotics.com/t/enabling-only-external-compass/1461 but I have no idea where I can find file AP_Compass.cpp.
And another thing that I want to mention is I usually get "Bad compass variance". Is that the cause that I cannot get good result from doing compass calibration and how should I fix it?
Please anyone tell me how to solve this problem. This is my senior project and I have to finish it in this month.