户外机器人不仅需要高精度的接收机和路径跟踪算法,其导航系统还必须保持从地理航点到执行器指令的几何一致性,暴露测量有效性与时间戳信息,并对无效或过期的状态信息作出响应。本文提出了一种 ROS 2 导航栈,支持可互换的单 GNSS-IMU 和双天线 GNSS 定位前端。两者均提供统一的局部东-北-天(ENU)状态接口,用于纯追踪控制、虚拟点横向误差 PID 控制、有限时域非线性模型预测控制(NMPC)以及分段依赖的混合调度器。该架构明确了坐标约定、基准初始化、异步状态构建、航点几何结构、控制器方程、质量门限、指令仲裁及看门狗行为。基于 2025 年和 2026 年葡萄园部署期间收集的独立物理场运行数据,对约 199.6 米路线上的八种控制器-定位组合各进行 100 次运行,共计 800 次运行进行了均衡评估。在评估数据集中,行混合模式产生了最低的每次运行采集后平均绝对横向误差(MAE):单 GNSS+IMU 为 0.00952 m,双 GNSS 为 0.00846 m。这些结果表征了在评估条件下记录位置相对于参考路线的偏差。开源导航软件及部署说明可在 https://github.com/YiyuanLinXX/PPBv2/tree/main/PPBv2_Navigation 获取。
Outdoor robots require more than an accurate receiver and a path-tracking law: the navigation system must preserve geometric consistency from geographic waypoints to actuator commands, expose measurement validity and timing, and respond to invalid or stale state information. This work presents a ROS~2 navigation stack with interchangeable single-GNSS--IMU and dual-antenna-GNSS localization front ends. Both provide a common local East--North--Up state interface for pure pursuit, virtual-point cross-track PID, finite-horizon nonlinear model predictive control (NMPC), and a segment-dependent hybrid dispatcher. The architecture specifies coordinate conventions, datum initialization, asynchronous state construction, waypoint geometry, controller equations, quality gates, command arbitration, and watchdog behavior. Independent physical field runs collected during 2025 and 2026 grape-vineyard deployments support a balanced evaluation of 800 runs, with 100 runs for each of eight controller--localization combinations on an approximately 199.6-m route. The row-hybrid mode yields the lowest run-averaged post-acquisition mean absolute cross-track error (MAE) in the evaluated dataset: 0.00952~m with single GNSS+IMU and 0.00846~m with dual GNSS. These findings characterize deviations of the recorded positions from the reference route under the evaluated conditions. The open-source navigation software and deployment instructions are available in the https://github.com/YiyuanLinXX/PPBv2/tree/main/PPBv2_Navigation.