Home » News and Updates » Septentrio GNSS + ROS Integration Guide: Compatibility, ROSaic Driver & Mowing Robot Case Study

Septentrio GNSS + ROS Integration Guide: Compatibility, ROSaic Driver & Mowing Robot Case Study

Septentrio GNSS + ROS integration guide: ROSaic driver compatibility and a mowing-robot case study

Choosing a GNSS receiver for a ROS-based robot used to be an afterthought: any module that emitted NMEA would do. In practice, the receiver is the anchor of the whole localization stack — and the difference between a receiver you can plug in and one you have to build a driver for is weeks of engineering. This guide explains what makes a GNSS receiver genuinely ROS-ready, how Septentrio’s official open-source driver (ROSaic / septentrio_gnss_driver) covers the full stack, and — new in this version — how that combination plays out in a concrete commercial application: the boundary-free RTK lawn-mowing robot.

1. Why GNSS Selection Should Start with ROS Compatibility

When an autonomous-vehicle, robot or UAV team evaluates GNSS hardware, three questions usually drive the decision: positioning capability (accuracy and reliability), environmental resilience (interference and spoofing), and ecosystem fit (how fast the receiver can be integrated into the existing software stack). For ROS teams, the third question is where projects live or die. A receiver with excellent RTK performance but no maintained driver means your team owns protocol parsing, coordinate transforms and differential-correction plumbing — forever.

Septentrio scores on all three axes with verifiable public evidence: centimeter-level RTK, AIM+ anti-jamming and anti-spoofing (stress-tested at Jammertest 2025), and an officially maintained ROS driver plus flight-controller ecosystem support. This article focuses on the ecosystem-fit half of the story.

Figure 1 — Division of labor: flight controller vs ROS vs GNSS (drawn for this guide).
Figure 1 — Division of labor: flight controller vs ROS vs GNSS (drawn for this guide).

2. Flight Controller, ROS and GNSS: Who Does What

2.1 The flight controller flies; ROS thinks

A flight controller (PX4, ArduPilot, Pixhawk) runs on dedicated hardware and is responsible for real-time motor control, attitude stabilization and low-level motion control. ROS (Robot Operating System) runs on an onboard computer — Raspberry Pi, NVIDIA Jetson, NUC — and handles sensor data processing, perception, path planning and mission decisions. The two talk over protocols such as MAVLink: ROS issues goals and avoidance decisions, the flight controller executes them stably.

2.2 Why the flight controller alone is not enough

Flight-controller GNSS drivers typically understand only basic protocols such as NMEA or UBX. The capabilities that matter for serious autonomy — SBF binary blocks, fine-grained RTK status, AIM+ anti-jamming state, multiple concurrent differential sources — stay locked inside the receiver unless software on the companion computer decodes them. And flight-controller compute is too constrained for complex perception and multi-sensor fusion anyway. That is the gap the onboard ROS computer fills, and the reason receiver-native protocols matter.

In one sentence: the flight controller keeps the platform stable; ROS makes it intelligent; and Septentrio receivers plug into both layers.

3. Septentrio Receiver Families at a Glance

Septentrio’s portfolio splits into three form factors, all sharing the same core positioning engine:

FamilyTypical modelsNotes
mosaic (module level)mosaic-X5 (multi-freq multi-constellation RTK), mosaic-G5 (cost-optimized), mosaic-H (dual-antenna heading)Low power, small size — board-level integration for robots / UAVs
AsteRx (board / enclosed)AsteRx-m3 Pro+, AsteRx-SB Pro+, AsteRx-SBi3 ProGNSS/INS variants, dual-antenna heading, industrial enclosures
Enclosed receiverse.g. AsteRx SBi3 Pro familyRugged housings for vehicle and industrial use

Core capabilities shared across the family

Centimeter-level RTK across all constellations (GPS / Galileo / GLONASS / BeiDou / QZSS / NavIC) with multi-band support; AIM+ anti-jamming and anti-spoofing with OSNMA signal authentication; GNSS/INS integration with IMU fusion delivering position, velocity and attitude (heading / pitch / roll); and a Jammertest 2025 pedigree — roughly 100 interference scenarios at centimeter accuracy, with correct spoofing alarms.

Figure 2 — mosaicHAT: mosaic-X5 + Raspberry Pi open-source GNSS HAT (image courtesy of Septentrio — mosaicHAT official GitHub repository).
Figure 2 — mosaicHAT: mosaic-X5 + Raspberry Pi open-source GNSS HAT (image courtesy of Septentrio — mosaicHAT official GitHub repository).

4. ROSaic — the Official ROS Driver, Dissected

4.1 What ROSaic is

Septentrio maintains septentrio_gnss_driver on GitHub under the brand name ROSaic (= ROS + mosaic). It is a single C++ repository that supports ROS 1 (Melodic, Noetic) and ROS 2 (Foxy through Rolling and beyond) for both the mosaic and AsteRx families. Because it is the vendor’s own driver, it tracks firmware changes and new receiver models as they ship.

4.2 Compatibility at a glance

AspectWhat ROSaic covers
Receiver modelsmosaic-X5, mosaic-H, mosaic-G5 series, AsteRx m3 Pro+, AsteRx i3 D Pro+, AsteRx SBi3 Pro(+), AsteRx RBi3 Pro(+) — GNSS and GNSS+INS
ROS versionsROS 1: Melodic, Noetic; ROS 2: Foxy through Rolling and newer
ConnectionsSerial, TCP, UDP, USB (RNDIS and TCP/IP)
ProtocolsSBF binary plus multiple ASCII messages (incl. key NMEA)
Output topicssensor_msgs/NavSatFix, gps_common/GPSFix, nav_msgs/Odometry (INS models)
Coordinate framesBuilt-in NED → ENU axis convention conversion
RTK correctionsMultiple differential sources simultaneously: NTRIP, TCP/IP streams, serial
Interference stateAIM+ (incl. OSNMA) anti-jamming / anti-spoofing status published to ROS

4.3 Technical highlights

SBF block parsing covers PVTGeodetic, PosCovGeodetic, ChannelStatus, MeasEpoch, AttEuler, AttCovEuler, VelCovGeodetic, DOP and more. The NED → ENU conversion matters because Septentrio receivers follow the NED convention while ROS frames are ENU; the driver handles it internally so fused pose is correct. Output is standard messages that robot_localization (EKF/UKF) consumes directly. Launch files, a parameter directory and PCAP / SBF replay support make development and debugging practical — you can validate the whole pipeline offline before hardware is on the bench. Installation supports both binary packages (fast, reliable, released for mainstream distros) and source builds for advanced customization.

4.4 INS receiver YAML configuration essentials

For GNSS+INS models — AsteRx-i3 D Pro(+), AsteRx SBi3 Pro(+), AsteRx RBi3 Pro(+) — the driver’s YAML configuration file carries several settings that directly affect fusion quality and GNSS/IMU reference-frame alignment:

receiver_type: ins enables INS receiver mode; use_ros_axis_orientation picks the axis convention (NED or ENU) so it matches your ROS frames; ins_spatial_config holds IMU orientation (theta X/Y/Z) and the three lever-arm offsets — POI lever arm, antenna-to-IMU lever arm, and velocity-sensor-to-IMU lever arm; ins_initial_heading is auto (GNSS-derived, default) or stored; ins_std_dev_mask sets the acceptance ceiling for attitude/position uncertainty; ins_use_poi selects the point the INS solution is computed at (must be enabled for TF publishing, default true); and ins_vsm configures velocity-sensor measurements, with speed data coming from ROS (Odometry/Twist), TCP/IP devices or serial.

4.5 INS topics and verification

INS data maps to SBF blocks INSNavGeod, INSNavCart, ExtSensorMeas, IMUSetup and VelSensorSetup. Verify with ros2 topic list and ros2 topic echo; for live visualization, PlotJuggler works well for INS/GNSS data such as acceleration and trajectories.

5. Official Driver vs. Rolling Your Own

A typical evaluation scenario: an outdoor inspection robot on ROS 2 (Humble) with robot_localization fusing GNSS and IMU, centimeter-level positioning required, and strong interference resilience expected. How does the integration effort compare?

DimensionDIY / third-party driverSeptentrio + official ROSaic
Driver sourceSelf-built or third-party; you own maintenanceOfficially maintained by Septentrio, open source on GitHub, continuously updated
Integration effortProtocol parsing, coordinate transforms and differential config all written by youInstall the official package; configure launch parameters
Output messagesYou wrap standard ROS messages yourselfNavSatFix / GPSFix / Odometry out of the box
Coordinate conversionNED → ENU implemented by youBuilt-in selectable axis convention
RTK correctionsYou write the NTRIP clientMultiple differential sources simultaneously (NTRIP / TCP / serial)
Interference observabilityHard to read receiver stateAIM+ state published directly to ROS for monitoring / alerting
Integration timelineWeeks to monthsTypically days to validated integration

Note: integration timelines are engineering estimates and depend on team experience and project complexity.

Figure 3 — Boundary-free mowing robot positioning loop (drawn for this guide).
Figure 3 — Boundary-free mowing robot positioning loop (drawn for this guide).

6. Beyond ROS: the Flight-Controller Ecosystem

Septentrio’s compatibility does not stop at ROS. The mosaic family works with mainstream flight controllers — Pixhawk, ArduPilot, PX4 Autopilot — and the mosaicHAT (mosaic-X5 + Raspberry Pi) open-source hardware reference design plus the Robotics Interface Board (RIB) lower the integration barrier further. Whether your architecture is ROS-centric or flight-controller-centric, the receiver ecosystem covers it.

7. Case Study: the Boundary-Free Mowing Robot

7.1 Why mowing robots are a hard GNSS test

Boundary-free RTK mowing robots are among the most demanding consumer applications of high-precision GNSS today: centimeter-level edge cutting in a yard (leading products claim ±2 cm), map building without boundary wires, resume-after-interrupt and automatic recharging — the entire operational loop depends on continuous, trustworthy global positioning.

Market heat: the global smart-mowing-robot market is projected to grow from USD 1.29 billion in 2020 to USD 4.04 billion by 2028, a CAGR of roughly 15.5% [Fortune Business Insights, as cited in industry reporting]. The known hard problems: yards are uncontrolled (buildings, trees, electromagnetic noise); user behavior is uncontrolled (base-station and charging-station placement); tree shade and wall corners must not break continuity; and consumer cost sensitivity is extreme. Headline references from public reporting: Segway Navimow claims ±2 cm with RTK + vision fusion; ECOVACS GOAT A-series receivers track up to 45 satellites and mow within 2 inches of edges.

7.2 The positioning loop, end to end

RTK corrections (base station / NTRIP, multiple parallel paths) → mosaic receiver with AIM+ anti-jamming → ROSaic driver on Raspberry Pi / mosaicHAT → Nav2 / robot_localization fusion → edge mowing, resume-after-interrupt and auto-docking, with task state looped back over ROS topics. AIM+ keeps centimeter availability in noisy yard environments; multi-source differential failover keeps the docking path stable when one correction link drops.

7.3 Septentrio advantages, requirement by requirement

Mowing requirementSeptentrio capability
Shade / corner resilienceFull-constellation multi-band (GPS / Galileo / GLONASS / BeiDou / QZSS); more usable satellites in obstructed environments; GNSS+ algorithms stay robust in challenging conditions
Yard EMI (Wi-Fi, wireless charging, Bluetooth)AIM+ anti-jamming and anti-spoofing with built-in monitoring/suppression and OSNMA authentication; Jammertest 2025: centimeter accuracy through ~100 interference scenarios and correct spoofing alarms
Precise heading for edge mowingmosaic-H dual-antenna heading: heading/pitch/roll directly from RTK, available at power-up, immune to magnetic fields — replaces the magnetometer and accelerates INS initialization
High update rate for motion controlmosaic-H RTK measurements at 100 Hz output
Low-power board-level integrationmosaic series ultra-low-power surface-mount modules, positioned for mass-market robotics / UAV / autonomy
Rapid prototyping (Pi / ROS)mosaicHAT open-source reference design (mosaic-X5 + Raspberry Pi) + ROSaic official driver
ROS software-stack fitNavSatFix / IMU / Odometry standard topics straight into Nav2 / robot_localization; NED → ENU built in; AIM+ state published for signal-quality alerts; UDP low-latency channel
Resume / auto-dock reliabilityParallel RTK sources (NTRIP / TCP / serial) with automatic failover; time sync and latency compensation reduce control delay

7.4 Honest selection boundaries

Cost positioning is higher: consumer mowing robots are price-sensitive (headline products start around USD 900), and mainstream makers lean on budget receiver chipsets. Septentrio’s advantage is not lowest cost — it is reliability in interference-heavy, obstructed yards, which suits premium models and brands that sell on reliability. Ecosystem support is more specialized than consumer chip vendors: ROSaic targets professional integration, so if a maker is building custom firmware with a proprietary protocol, the driver’s value shrinks. [Assessment in this guide.]

Bottom line: Septentrio’s differentiation in the mowing-robot case is a three-part package — AIM+ anti-jamming (hostile yard EMI), mosaic-H dual-antenna heading (edge precision), and the mosaicHAT / ROSaic open-source stack (development speed).

8. FAQ

Which Septentrio receivers work with ROSaic? Any receiver built on the mosaic-X5, mosaic-G5, mosaic-H or AsteRx engines — GNSS-only and GNSS/INS models alike.

Do I need to write my own NTRIP client? No. The driver supports multiple concurrent differential sources — NTRIP, TCP/IP streams and serial — and switches between them automatically.

Can I evaluate the driver before the receiver arrives? Yes — PCAP and SBF replay let you exercise the full pipeline offline with captured receiver data.

Is AIM+ anti-jamming status visible in ROS? Yes. Anti-jamming / anti-spoofing state (including OSNMA) is published to ROS topics, so you can monitor signal quality and trigger alerts in your application.

Does Septentrio work with Pixhawk / PX4 / ArduPilot, or only ROS? Both. The mosaic family integrates with mainstream flight controllers, and ROSaic covers ROS 1 / ROS 2 — one receiver family spans the two ecosystems.

9. Sources & References

ItemSource
septentrio_gnss_driver repository (README)github.com/septentrio-gnss/septentrio_gnss_driver
Septentrio mosaic / AsteRx product pagesweb.septentrio.com — GNSS modules · INS receivers
Septentrio Jammertest 2025 resultsseptentrio.com — Jammertest 2025 insights article
mosaicHAT open-source hardware reference designgithub.com/septentrio-gnss/mosaicHAT
ROSaic integration guides (knowledge base)customersupport.septentrio.com
ROS documentation / robot_localizationwiki.ros.org · github.com/cra-ros-pkg/robot_localization
Smart mowing robot market analysisFortune Business Insights, as cited in industry reporting

Author: Jack Wang · Published: 2026-09-03 · Source document: 《Septentrio GNSS 接入 ROS 技术指南》终稿 v1.2 (2026-09-02) · External references as listed above.

10. Related Reading

11. More on AIM+ Anti-Jamming

Need a Septentrio receiver for your ROS or robotics project? Eview GNSS supplies mosaic-X5, mosaic-H and AsteRx GNSS/INS receivers with AIM+ anti-jamming, and our engineers can help with ROSaic integration questions. Email us at tina.ng@gnss-solutions.com for a quote or technical consultation.

Latest News & Announcement