Solutions › Guides › Dual-antenna RTK on a robot dog

Adding dual-antenna RTK GNSS to a robot dog for outdoor navigation and heading

Short answer: Fit a dual-antenna RTK module such as a Unicore UM982, two matched helix antennas at least about 30 cm apart on the robot's centreline and outside the LiDAR field of view, and an NTRIP correction stream over 4G/5G. Fuse the GNSS fix and heading with LiDAR odometry in ROS 2 so the robot keeps navigating when the fix drops.
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.

3D render of a Unitree Go2 EDU with a YUANZHI ROBOTICS payload shell: an antenna mast at the rear, the camera gimbal and lights at the front
3D render of a Unitree Go2 EDU with a YUANZHI ROBOTICS payload shell: an antenna mast at the rear, the camera gimbal and lights at the front

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.

ReceiverTypeSize (mm)WeightPowerHeading from one unit
Unicore UM982Dual-antenna RTK module21 × 16 × 2.61.82 g0.6 WYes
Unicore UM980Single-antenna RTK module22 × 17 × 2.61.88 g0.48 WNo
u-blox ZED-F9PSingle-antenna RTK module22 × 17 × 2.41.8 g0.2 WOnly with a second F9P (moving-base setup)
Sino GNSS K823Positioning + heading board with IMU40 × 30 × 3.2–1.6 WYes
NovAtel OEM7720Dual-antenna OEM board71 × 46 × 7.529 g–Yes
NovAtel PwrPak7DEnclosed dual-antenna receiver147 × 125 × 55500 g–Yes
Xsens MTi-680GRTK GNSS/INS56.5 × 40.9 × 36.7598 g1.0 WUses 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:

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:

  1. 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.
  2. 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.
  3. 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.
3D render of a YUANZHI ROBOTICS robot dog payload kit: two antenna masts spaced along the deck centreline, with the gimbal mounted at the front
3D render of a YUANZHI ROBOTICS robot dog payload kit: two antenna masts spaced along the deck centreline, with the gimbal mounted at the front

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:

ROS 2 integration

A typical stack on a Jetson running Ubuntu and ROS 2 looks like this:

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.

LiDAR-inertial mapping trajectory recorded by a robot dog, the kind of odometry that is fused with RTK GNSS for outdoor navigation
LiDAR-inertial mapping trajectory recorded by a robot dog, the kind of odometry that is fused with RTK GNSS for outdoor navigation

Limits to plan for

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.

Configure your payload and get a quote

Get a quoteWhatsApp