Hi @sietse
Your video is very interesting, you seem to have got the EKF to almost match the nmea compass,
Question, is this the exact unit you have? How do you make it ethernet connected?
Just to point out to anybody who hasn’t watched it, the black arrow (barely visible) is the GPS2 (nmea heading sensor), the light blue arrow is the EKF heading estimation.
Your NMEA heading sensor seems to be sending data at about 2Hz, and your EKF is being updated by your gyro at a much faster rate.
There is some discussion about the accuracy of the heading sensor not giving enough accuracy because it doesn’t poll quickly enough, so suggestion is to use the other sensors as a fallback.
But what you have there seems a lot better than what I usually see when operating the ROV (see below gif) and the idea of a slower or slightly delayed heading reading negatively affecting the EKF heading, I think is outweighed by how poorly my built in magnetometers are currently performing.
The ROV wasn’t moving at all when I took this, it was in the water with the thrusters on, but holding station.
I get the exact same behaviour on both of my ROVs, one uses 8x ESC500s and an aluminium enclosure (considering switching to acrylic to see if that improves things). The other is a blueROV with an acrylic enclosure.
I’m also considering putting an external ardupilot mag somewhere near the camera (further from the ESCs).
Since my last post about this
I’ve tried calibrating the magnetometers in BlueOS but it generally errors out at the end and I don’t think the values get saved. It’s quite an effort to calibrate (has to be done at home on my own), so I haven’t tried too many times. When I do I calibrate using QGC. I’ve always ensured to set up a GPS feed so the ROV knows it’s origin position.
Any suggestions would be greatly appreciated.