During the last weeks I have played around with some new type of GNSS receiver:
http://docs.zubax.com/Zubax_GNSS (many thanks to Pavel Kirienko for supplying the modules!). The module is using GLONASS and GPS for positioning simultaneously, additionally it contains a MS5611 baro and a HMC5883 compass. All sensor values are supplied via UAVCAN connection.
The module is already supported by drivers contained in the latest master of PX4/Firmware. As a result, the baro and the compass could work out of the box with APM, even if APM is absolutely unaware that they are connected via UAVCAN. To get the GNSS part working, I decided to chose a very similar architectural approach like the one that was chosen for the AP_Compass_PX4 and AP_Baro_PX4 driver: Instead of talking to the hardware directly, the preprocessed location/heading/altitude information is delivered by the low level drivers contained in the PX4 firmware. A very slim proxy driver subscribes on them via PX4 ORB and feeds the high-level information into APM.
During the last days I made a first test flight using this code. I was very pleased by the performance of the GNSS part. The HDOP is usually around 0.5 in good GPS condtions and slightly below 1.0 in the damp and rainy weather that we had yesterday. The loiter looks amazingly quiet (once again way better than with the latest UBlox M8N module). The compass is not working perfectly yet, as APM uses some really low-level ioctls on the device (e.g. for compass IDs), which are not supported by the module yet. I am working on this issue and will submit a PR to the PX4/Firmware repo. The baro is not supported with APM yet, as APM is not aware of more than one baro.
Here are two logs from flights with this module:
Regards,
Holger