Dual Antenna RTK - umrover/mrover-ros2 GitHub Wiki

Overview: What is RTK?

Please watch these videos to gain a deeper understanding of RTK and how GPS's work.

Orientation with Dual Antennas

dual_antenna_orientation

Using 2 antennas on the rover allows us to gain further information on the rover's heading (and pitch, depending on the orientation of the antennas). This is an excellent source of orientation information as it is mathematically derived solely from the position of the 2 rover antennas in relation to each other, making it highly resistant to external factors that may affect other sensors. Obtaining heading information from a dual antenna RTK system is particularly desirable since the only other sensor that gives heading is the magnetometer, which becomes significantly less accurate in the presence of external magnetic fields (ex. an area with a high concentration of metals).

Dual antenna RTK not only allows us to achieve highly accurate positioning information, but attitude measurements as well. It can be enabled on dual GNSS receivers such as the simpleRTK3B Compass.

Goals and steps

Configure simpleRTK3BCompass and send RTCM messages from base to rover

The simpleRTK3BCompass dual antenna receiver has the ability to provide both position (< 1cm) and heading (< 0.14 deg) to a high degree of accuracy when provided with RTCM from a fixed basestation. RTCM messages contain pseudorange correction data for GPS satellites, which are applied by the rover RTK system to get a highly accurate position estimate. We currently have a node that publishes RTCM corrections from the basestation antenna to ROS. We are working on determining how to configure the receiver and send it corrections via USB. Please see the Unicore documentation for a detailed overview on the receiver's configurations.

Write custom GPS driver for dual antenna receiver

We are currently working on implementing our own gps driver for the dual antenna receiver, including custom reading and writing as library support is not provided for the simplyRTK3BCompass's Unicore module. After connecting to the receiver via serial, we want to send it RTCM corrections and parse outgoing RTK positioning data. The RTK status and positioning information in the form of a NavSatFix message should be published to /gps/fix.