Septentrio GNSS + ROS Integration Guide: Compatibility, ROSaic Driver & 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.

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:
| Family | Typical models | Notes |
|---|---|---|
| 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 Pro | GNSS/INS variants, dual-antenna heading, industrial enclosures |
| Enclosed receivers | e.g. AsteRx SBi3 Pro family | Rugged 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.

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
| Aspect | What ROSaic covers |
|---|---|
| Receiver models | mosaic-X5, mosaic-H, mosaic-G5 series, AsteRx m3 Pro+, AsteRx i3 D Pro+, AsteRx SBi3 Pro(+), AsteRx RBi3 Pro(+) — GNSS and GNSS+INS |
| ROS versions | ROS 1: Melodic, Noetic; ROS 2: Foxy through Rolling and newer |
| Connections | Serial, TCP, UDP, USB (RNDIS and TCP/IP) |
| Protocols | SBF binary plus multiple ASCII messages (incl. key NMEA) |
| Output topics | sensor_msgs/NavSatFix, gps_common/GPSFix, nav_msgs/Odometry (INS models) |
| Coordinate frames | Built-in NED → ENU axis convention conversion |
| RTK corrections | Multiple differential sources simultaneously: NTRIP, TCP/IP streams, serial |
| Interference state | AIM+ (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?
| Dimension | DIY / third-party driver | Septentrio + official ROSaic |
|---|---|---|
| Driver source | Self-built or third-party; you own maintenance | Officially maintained by Septentrio, open source on GitHub, continuously updated |
| Integration effort | Protocol parsing, coordinate transforms and differential config all written by you | Install the official package; configure launch parameters |
| Output messages | You wrap standard ROS messages yourself | NavSatFix / GPSFix / Odometry out of the box |
| Coordinate conversion | NED → ENU implemented by you | Built-in selectable axis convention |
| RTK corrections | You write the NTRIP client | Multiple differential sources simultaneously (NTRIP / TCP / serial) |
| Interference observability | Hard to read receiver state | AIM+ state published directly to ROS for monitoring / alerting |
| Integration timeline | Weeks to months | Typically days to validated integration |
Note: integration timelines are engineering estimates and depend on team experience and project complexity.

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 requirement | Septentrio capability |
|---|---|
| Shade / corner resilience | Full-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 mowing | mosaic-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 control | mosaic-H RTK measurements at 100 Hz output |
| Low-power board-level integration | mosaic 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 fit | NavSatFix / 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 reliability | Parallel 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
| Item | Source |
|---|---|
| septentrio_gnss_driver repository (README) | github.com/septentrio-gnss/septentrio_gnss_driver |
| Septentrio mosaic / AsteRx product pages | web.septentrio.com — GNSS modules · INS receivers |
| Septentrio Jammertest 2025 results | septentrio.com — Jammertest 2025 insights article |
| mosaicHAT open-source hardware reference design | github.com/septentrio-gnss/mosaicHAT |
| ROSaic integration guides (knowledge base) | customersupport.septentrio.com |
| ROS documentation / robot_localization | wiki.ros.org · github.com/cra-ros-pkg/robot_localization |
| Smart mowing robot market analysis | Fortune 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
- Septentrio GNSS 接收机如何无缝接入 ROS:官方驱动、兼容性与技术优势详解(中文版) — Chinese version on gnss-imu.com
- RTK GNSS + ROS for Lawn Mowers & UAVs (uav-gnss.com) — UAV-operator-focused version
- ROSaic Deep Dive: Integrating Septentrio GNSS/INS Receivers with ROS 1 & ROS 2 — technical report on this site
- Septentrio GNSS + ROS Integration: Official ROSaic Driver Guide (uav-gnss.com)
- Septentrio ROS 驱动(ROSaic)技术报告(中文版) (gnss-imu.com)
11. More on AIM+ Anti-Jamming
- Jammertest 2025 Results: AIM+ Anti-Jamming GNSS Holds Centimeter Accuracy (gnss-solutions.com)
- Jammertest 2025: AIM+ Keeps UAVs on Mission (uav-gnss.com)
- Jammertest 2025 抗干扰实测结果(中文版) (gnss-imu.com)
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.






