Adding dual-antenna RTK GNSS to a robot dog for outdoor navigation and heading
Updated 2026-10-29 · YUANZHI ROBOTICS engineering team
To give a robot dog centimetre-level position and a reliable heading outdoors, fit a dual-antenna RTK receiver (for example a Unicore UM982 module), two small helix antennas mounted as far apart as the body allows, and an NTRIP correction stream delivered over 4G/5G. Feed the result into ROS 2 together with LiDAR odometry so the robot keeps navigating when the fix drops under trees or next to buildings. The receiver itself weighs a few grams; the real engineering is antenna placement, baseline length and sky view.

Why a robot dog needs dual-antenna RTK, not just GPS
Standard GNSS gives metre-level position, which is not enough to follow a fence line, stop at a gauge or return to a charging point. RTK (real-time kinematic) uses corrections from a base station or NTRIP caster to reach centimetre-level position when the receiver has a fixed solution.
A second antenna solves a quadruped-specific problem: heading. A legged robot often stands still, turns on the spot or walks sideways, so heading derived from successive positions is unreliable, and a magnetometer is disturbed by the robot's own motors and battery. With two antennas the receiver measures the vector between them directly, which gives an absolute heading even when the robot is stationary. That heading is what lets the navigation stack align its LiDAR map to real-world coordinates from the first metre.
Receiver options compared
The figures below come from the manufacturers' datasheets as listed in our component catalogue; blank cells are values the manufacturer does not publish in the sources we use.
| Receiver | Type | Size (mm) | Weight | Power | Heading from one unit |
|---|---|---|---|---|---|
| Unicore UM982 | Dual-antenna RTK module | 21 × 16 × 2.6 | 1.82 g | 0.6 W | Yes |
| Unicore UM980 | Single-antenna RTK module | 22 × 17 × 2.6 | 1.88 g | 0.48 W | No |
| u-blox ZED-F9P | Single-antenna RTK module | 22 × 17 × 2.4 | 1.8 g | 0.2 W | Only with a second F9P (moving-base setup) |
| Sino GNSS K823 | Positioning + heading board with IMU | 40 × 30 × 3.2 | – | 1.6 W | Yes |
| NovAtel OEM7720 | Dual-antenna OEM board | 71 × 46 × 7.5 | 29 g | – | Yes |
| NovAtel PwrPak7D | Enclosed dual-antenna receiver | 147 × 125 × 55 | 500 g | – | Yes |
| Xsens MTi-680G | RTK GNSS/INS | 56.5 × 40.9 × 36.75 | 98 g | 1.0 W | Uses its INS; single GNSS antenna |
On a Unitree Go2 EDU, where every gram of payload costs walking time, a UM982 on a small carrier board is the usual choice: one module, two antenna ports, heading and position in the same message stream. On a larger platform such as a Unitree B2 or DEEP Robotics X30 an enclosed receiver or a GNSS/INS unit is easier to justify, because it also bridges short outages with inertial data.
Choosing the antennas
Antennas are heavier than the receiver and decide most of the performance. In our catalogue the options we use most on quadrupeds are:
- Harxon HX-CH7609A small helix, Ø43.6 × 40.8 mm, 30.5 g each. Our default for small robot dogs.
- Harxon HX-CHX600A full-frequency helix, Ø40 × 82.6 mm, 45 g each. Taller, used when we want all constellations and bands on a mid-size dog.
- Harxon HX-CSX601A survey antenna, Ø173.4 mm, 500 g each. Better multipath rejection, but realistic only on UGVs, not on a walking robot.
Antennas are always installed as a matched pair of the same model, so phase-centre behaviour is identical at both ends of the baseline.
Baseline length and placement on the body
Heading accuracy improves roughly in proportion to the distance between the two antenna phase centres. Our internal design rule is a baseline of at least 30 cm; below that the heading becomes noisy enough to show up as map misalignment. On a Go2-sized body that means one antenna near the front of the payload and one near the rear, on the robot's centreline.
Three placement checks we run on every design:
- LiDAR field of view. A Livox Mid-360 looks from −7° to 52° vertically. An antenna mast placed in that cone leaves a permanent blind spot in the point cloud, so antennas go ahead of or behind the LiDAR, not above it.
- Sky view. Nothing metal should rise above the antenna base: no gimbal housing, handle or speaker next to it. A gimbal that rotates past an antenna will periodically block satellites.
- Leg and body clearance. We check antenna positions against the leg swing envelope and against the robot lying down, so a mast cannot be hit when the dog sits or recovers from a fall.

Corrections: NTRIP over 4G/5G or a local base
RTK needs a correction stream in RTCM3 format. There are two practical ways to get it to the robot:
- NTRIP over cellular. If the site has mobile coverage, a 5G or 4G module on the payload connects to a commercial or national NTRIP caster. The same link usually carries video and remote control, so this adds no extra hardware. In ROS 2 an NTRIP client node pulls RTCM and writes it to the receiver's serial port.
- Own base station plus radio. For sites without coverage, such as mines, remote pipelines or large farms, a base receiver on a known point broadcasts corrections over a radio or mesh link that the robot already uses.
ROS 2 integration
A typical stack on a Jetson running Ubuntu and ROS 2 looks like this:
- The receiver outputs NMEA/binary messages over UART or USB; a driver node publishes
sensor_msgs/NavSatFixfor position and a heading message from the dual-antenna solution. - An NTRIP client node feeds RTCM corrections back into the same port.
robot_localization(itsnavsat_transform_nodeplus an EKF) fuses GNSS with LiDAR-inertial odometry and the robot's own odometry, so the map frame is tied to latitude/longitude.- The navigation layer plans in the map frame; GNSS keeps long missions from drifting, while LiDAR odometry carries the robot through areas where the fix degrades.
The receiver connects over serial or USB, so it can run on a Jetson you already have; our guide on running a Go2 payload on your existing Jetson Orin NX covers the port and power checks. For the navigation side, see getting custom autonomous navigation on a robot dog.

Limits to plan for
- Trees, walls and canopies. RTK fixed solutions drop to float or single-point under dense canopy, inside steel structures and close to tall buildings. Plan routes and fallbacks accordingly; GNSS alone cannot drive indoor or under-roof sections.
- Time to fix. After power-up or a long outage the receiver needs time to resolve ambiguities. Missions should start after the fix is confirmed, not at boot.
- Antenna cables. Coax runs on a walking robot flex constantly; strain relief and connector choice matter more than on a UGV.
- Interference. 5G modules, video transmitters and switching power supplies near the antennas can degrade reception. Keep transmit antennas and DC-DC converters away from the GNSS antennas.
Getting it built
You can try a dual-antenna RTK layout on your robot in our payload configurator, which adds up weight and power for each component. Platform notes are on the Unitree Go2 EDU, Unitree B2 and DEEP Robotics Lite3 pages. YUANZHI ROBOTICS designs and integrates complete payloads, see robot payload integration, and builds the GNSS/LiDAR fusion and navigation software, see robot autonomy development and quadruped development.
FAQ
Why does a robot dog need two GNSS antennas?
Two antennas let the receiver measure heading directly from the vector between them, even when the robot is standing still or turning on the spot. A legged robot cannot rely on heading from its own motion, and a magnetometer is disturbed by its motors and battery.
What is the best RTK module for a Unitree Go2?
For a small robot dog, a dual-antenna module such as the Unicore UM982 (21 x 16 x 2.6 mm, 1.82 g, 0.6 W per its datasheet) is a common choice because one module provides both centimetre-level position and heading. Larger robots can carry enclosed receivers or GNSS/INS units.
How far apart should the RTK antennas be on a robot dog?
As far apart as the body allows. Heading accuracy improves with baseline length; our design rule is at least about 30 cm, which on a Go2-sized robot means one antenna at the front and one at the rear of the payload.
How does a robot dog get RTK corrections in the field?
Usually through an NTRIP client over a 4G or 5G module on the payload. On sites without mobile coverage, a local base station can broadcast RTCM corrections over a radio or mesh link.
Does RTK work under trees or near buildings?
Not reliably. The fixed solution can degrade to float or single-point under canopy, in steel structures and near tall buildings, so RTK should be fused with LiDAR-inertial odometry rather than used alone.