Hi Martin,do you ever try to use external nmea compass like Airmar h2183?
Hi Arwah,
Yes, I have used external compasses as well as ship gyros and dual-antenna GPS which output heading data, usually available as NMEA 0183 āHDTā sentence. I have not used the Airmar H2183. To the best of my knowledge it is does not measure true heading directly but relies on an internal magnetic compass, and as such offers nothing that the Pixhawk, for example (with its onboard 3-axis magnetomer and 3-axis accelerometer and 3-axis gyro), does not already incorporate.
For some purposes, one might want to avoid reliance on magnetic sensors for heading data, or one might want greater accuracy of heading data than that offered by the so-called MEMS (Micro-electro-mechanical system) ICs upon which the Pixhawk and Airmar rely. For those purposes one might want to use a dual-antenna GNSS system, that yelds heading accuracy ~0.5Ā° or less, or even a true shipās gyro; not a MEMS āgyroā that might actually measure directly angular velocity, but which is not sensitive enough to measure Earthās angular velocity, and so is not practical for deriving true heading.
Pete
Pete,
I would also be interested in some for of sponsorship for a solution to using NMEA HDT data instead of i2c mag data for drone heading.
Do you know if this has been solved?
Regards,
Gabriel
Hi Gabriel,
As far as I know, this Github site would be the place to follow for the latest on merging the fork of ArduPilot code that accommodates heading data:
Grant Morphett (@gmorph) did a lot of work on this, and I would say that yes, this has been āsolvedā, insofar as HDT can be āingestedā and used in the ArduPilot Extended Kalman Filter.
Iāve only proven a particular build (406bd1d1) of version 3.3.0-dev Rover for PX4-v2. Iāve given up trying to grasp the whole of ArduPilot code or even to build ArduPilot firmware from source.
Iām not sure when you say āI would also be interested in some for of sponsorshipā¦ā whether you are looking for solutions, understanding, or money. For my part, Iāve gone in a different direction with autopilot code for boats.
Pete
Grant, when I make all of the COMPASS_USE# parameters = 0, the pixhawk appears to use more than just GPS to determine the heading. I came to this conclusion because the āGPS trackā in Mission Planner did not match the āCurrent headingā. The GPS track seemed to be doing exactly what I expected, but the overall heading was not behaving predictably. I assume that it is also being influenced by the IMUs in the pixhawk. I would like to only use GPS for heading. Is that an EKF parameter? Thanks