# rtk-dev-kit **Repository Path**: pibot/rtk-dev-kit ## Basic Information - **Project Name**: rtk-dev-kit - **Description**: rtk模组开发包 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-28 - **Last Updated**: 2026-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Qinnav K803 & Unicore UM960 RTK Development Kit [![ROS2](https://img.shields.io/badge/ROS2-Galactic%20%7C%20Humble-blue)](https://docs.ros.org) [![Platform](https://img.shields.io/badge/Platform-x86__64%20%7C%20AArch64-orange)](https://github.com) [![License](https://img.shields.io/badge/License-Apache_2.0-green.svg)](LICENSE) 基于 ROS 2 的 **Qinnav K803 与 Unicore UM960 高精度 GNSS RTK 定位开发套件**,面向室外移动机器人(AMR/AGV)、园区巡检车辆、自动驾驶与精准作业设备。 集成双型号板卡驱动、NRTK (NTRIP Client) 网络差分客户端、Web 状态监控、电子围栏与航点标定工具,并提供真实硬件和脱机仿真两套运行方式。 --- ## 🌟 核心特性 - **K803 与 UM960 双板卡支持**: - 编译时选择 Qinnav K803 或 Unicore UM960;分别解析 `#BESTPOSA`、`#BESTNAVA` 等板卡报文,对外发布一致的 ROS 2 定位与质量接口。 - **NRTK (NTRIP Client) 网络差分**: - 支持标准 NTRIP Caster、自动 GGA 上报、断线重连与 RTCM3 差分数据注入,可接入公共或私有 CORS 服务。 - **定位与信号质量话题**: - 除标准 `NavSatFix` 外,还提供基站坐标、解算卫星数、信号评分与综合 GNSS 质量话题,便于导航接入和运行状态监控。 - **双串口图形化调试工具**: - 提供 K803 与 UM960 初始化预设,并支持串口数据预览。 - **Web 状态监控与电子围栏标定**: - 在浏览器中查看 FIX/FLOAT/SINGLE 解状态、三轴标准差、卫星 SNR 与实时轨迹,并可导出 GeoJSON、CSV 和 ROS 2 Path。 - **脱机仿真与可视化布局**: - 无需连接真实板卡即可运行 `demo_mock.launch.py` 模拟搜星、RTK 收敛和巡检轨迹,同时提供 Foxglove Studio 与 RViz 预设布局。 --- ## 📂 目录结构 ``` rtk-dev-kit/ ├── demo/ │ ├── web_cockpit/ # Web 状态监控与电子围栏标定界面 │ │ ├── index.html # 响应式 Web 仪表盘页面 │ │ └── rtk_cockpit_server.py # WebSocket/HTTP 桥接服务 │ ├── mock_rtk_publisher.py # 室内脱机虚拟仿真发布节点 │ ├── run_cockpit.sh # Web 监控界面启动脚本 │ ├── foxglove_rtk_layout.json # Foxglove Studio 预设面板布局 │ └── rviz_config.rviz # RViz 预设显示布局 ├── docs/ │ ├── 01-rtk-basics.md # 底层协议与架构设计文档 │ └── 02-quickstart.md # 快速交付使用指南 ├── ros2_ws/ # ROS 2 工作空间 │ └── src/ │ ├── rtk_interfaces/ # 自定义 RTK、NTRIP 消息接口 │ ├── driver/ # K803、UM960 与 NTRIP Client 核心驱动包 │ └── bringup/ # Launch 启动文件与参数配置文件 ├── tools/ │ └── serial_monitor.py # 图形化串口调试与初始化工具 (Desktop + Web) └── scripts/ ├── serial_tool.sh # 串口图形工具启动脚本(Desktop + Web) ├── um960_serial_tool.sh # 串口工具快捷启动脚本 ├── build.sh # 工作空间自动编译脚本(支持 Docker 自动构建) ├── run_docker.sh # 交互式 Docker 运行容器 └── install_udev_rules.sh # K803 串口固定别名 udev 规则安装 ``` --- ## 🚀 快速上手 ### 串口调试工具 K803 与 UM960 使用同一个串口工具入口,板卡型号在 UI 中选择: ```bash ./scripts/serial_tool.sh ./scripts/um960_serial_tool.sh # 快捷启动,同样由 UI 选择型号 ``` 串口工具默认使用 `115200`。K803/UM960 的配置预设在工具 UI 中选择。 ### 1. 编译构建 ```bash ./scripts/build.sh --k803 # K803(默认) # 或 ./scripts/build.sh --um960 # UM960 ``` 硬件型号在编译时确定;切换板卡型号时需要重新编译。本地构建也可通过 `colcon build --cmake-args -DRTK_MODEL=K803` 或 `-DRTK_MODEL=UM960` 选择型号。 ### 2. 连接板卡 K803 可安装 udev 规则并使用固定设备别名: ```bash ./scripts/install_udev_rules.sh ``` 重新插拔后,可通过 `/dev/rtk_rover` 访问 K803。UM960 通常使用 `/dev/ttyACM*` 或 `/dev/serial/by-id/*`,请以系统识别结果为准。 ### 3. 配置网络差分并启动驱动 在 `ros2_ws/src/bringup/config/rtk_params.yaml` 中填写 NTRIP/CORS 服务信息,然后执行: ```bash source ros2_ws/install/setup.bash # K803 ros2 launch rtk_bringup rtk.launch.py rtk_port:=/dev/rtk_rover # UM960(设备路径按实际情况调整) ros2 launch rtk_bringup rtk.launch.py rtk_port:=/dev/ttyACM1 ``` 运行时无需再传入板卡型号,驱动会使用编译时选择的 K803 或 UM960 实现。 ### 4. 启动 Web 状态监控 ```bash ./demo/run_cockpit.sh ``` 浏览器访问 `http://localhost:8088`,查看定位状态、卫星信息、实时轨迹与电子围栏标定工具。 ### 5. 离线仿真演示(无需连接硬件) ```bash source ros2_ws/install/setup.bash ros2 launch rtk_bringup demo_mock.launch.py ``` --- ## 📡 话题列表 (Topic List) | 话题名称 | 消息类型 | 说明 | | :--- | :--- | :--- | | `/rtk/fix` | `sensor_msgs/msg/NavSatFix` | 高精度经纬度与协方差数据 | | `/rtk/base_fix` | `sensor_msgs/msg/NavSatFix` | 差分基站经纬度与高度 | | `/rtk/satellites` | `std_msgs/msg/UInt32` | 当前参与解算的卫星数量 | | `/rtk/score` | `std_msgs/msg/Int32` | RTK 信号质量评分 | | `/rtk/quality` | `rtk_interfaces/msg/GnssQuality` | SNR、卫星数量、评分与遮挡率 | | `/rtk/status` | `rtk_interfaces/msg/RtkStatus` | 定位解状态、卫星数量、SNR 与三轴标准差 | | `/rtk/gga` | `std_msgs/msg/String` | GNSS 板卡输出的 NMEA GGA 报文 | | `/rtk/rtcm` | `std_msgs/msg/UInt8MultiArray` | NTRIP Client 接收并注入的 RTCM3 差分数据 | | `/rtk/ntrip_status` | `rtk_interfaces/msg/NtripStatus` | Caster 连接与差分数据收发状态 | | `/diagnostics` | `diagnostic_msgs/msg/DiagnosticArray` | GNSS 驱动与 NTRIP 客户端诊断信息 | 详细参数及接口说明请参阅 [docs/01-rtk-basics.md](docs/01-rtk-basics.md),完整安装流程请参考 [docs/02-quickstart.md](docs/02-quickstart.md)。