Go to file
2026-01-21 16:43:45 +08:00
routes 园区大圈2 2026-01-21 16:42:47 +08:00
src 关闭sub节点发布remote_mc_ctrl 2026-01-21 16:43:45 +08:00
.clang-format 拆分节点逻辑与业务逻辑 2026-01-13 16:14:55 +08:00
.cmake-format.yaml 拆分节点逻辑与业务逻辑 2026-01-13 16:14:55 +08:00
.gitignore 更新gitignore 2026-01-21 13:29:42 +08:00
can.sh first commit 2025-10-30 11:10:23 +08:00
config.json 修改task_manager节点获取vid和话题的方式 2026-01-19 14:36:36 +08:00
controller_202509290926_arm64.deb first commit 2025-10-30 11:10:23 +08:00
gps_load_now.txt 修改配置文件和路径文件 2026-01-13 14:05:25 +08:00
make_deb.sh first commit 2025-10-30 11:10:23 +08:00
prepare.sh humble分支 修改rtk串口号 2025-11-06 14:13:35 +08:00
radio_ctrl.sh 修改启动脚本,增加vehicle_params_node 2026-01-20 10:22:20 +08:00
README.md first commit 2025-10-30 11:10:23 +08:00
remote_ctrl.sh 修改启动脚本,增加vehicle_params_node 2026-01-20 10:22:20 +08:00
ros2_nodes.sh first commit 2025-10-30 11:10:23 +08:00
run.sh first commit 2025-10-30 11:10:23 +08:00
start_all.sh 修改启动脚本,增加vehicle_params_node 2026-01-20 10:22:20 +08:00

清扫车 ROS2 控制与定位消息接口

1. 文档概述

清扫车 ROS2 控制与定位消息接口

2. 依赖环境

2.1 系统环境

  • ROS2 版本Foxy
  • Ubuntu 版本20.04

2.2 .deb 的安装、启动与卸载

在目标机器上执行安装:

sudo dpkg -i controller_XXXX_arm64.deb

安装完成后主要文件路径:

工作空间:/opt/controller/

启动脚本:/opt/controller/start_all.sh

CAN 配置脚本:/opt/controller/can.sh

日志文件:/var/log/controller/controller.log

systemd 服务:

CAN 配置服务:/etc/systemd/system/controller-can.service

ROS2 节点服务:/etc/systemd/system/controller.service

安装后CAN 配置服务会先运行,确保 can0 接口可用,然后 ROS2 节点服务会启动。

手动启动 ROS2 节点:

sudo systemctl start controller.service

重启服务:

sudo systemctl restart controller.service

启动 CAN 配置服务(通常自动执行,不需要手动):

sudo systemctl start controller-can.service

查看运行状态

sudo systemctl status controller.service
sudo systemctl status controller-can.service

实时查看最新日志:

tail -f /var/log/controller/controller.log

也可以使用 journalctl 查看 systemd 输出:

sudo journalctl -u controller.service -f

旧日志会自动轮转,由 logrotate 管理,每天生成一个历史日志,历史日志会压缩 .gz默认保留最近 14 天日志

轮转后的文件示例:

/var/log/controller/controller.log          # 当天日志
/var/log/controller/controller.log-20250923.gz  # 历史压缩日志

停止服务

sudo systemctl stop controller.service
sudo systemctl stop controller-can.service

禁用开机自启

sudo systemctl disable controller.service
sudo systemctl disable controller-can.service

卸载 deb 包

sudo dpkg -r controller

卸载包后 日志文件会保留,便于调试。

3. 消息msg文件详情

3.1 McCtrl.msg车辆控制指令消息

字段定义

字段类型 字段名称 取值范围 / 说明 功能描述
uint8 brake 0不刹、1 电磁刹控制0 表示解除电磁刹1 表示激活电磁刹
uint8 gear 0空挡、1后退、2前进、3保留 车辆挡位控制3 为预留挡位暂未使用
uint8 rpm 0-4000 电机转速指令数值直接对应实际电机转速rpm
float32 angle [-40.0, 40.0] 轮端转向角度控制,单位为度(°),[-左、+右]
uint16 angle_speed 120-1500 转向角速度控制,单位为 rpm
bool sweep true清扫、false不清扫 清扫

对应 Topic

  • Topic/auto_mc_ctrl

3.2 Rtk.msgRTK 定位信息消息)

字段定义

字段类型 字段名称 取值范围 / 说明 功能描述
float64 lat 无固定范围(符合 WGS84 坐标系经纬度格式) 车辆所在位置的纬度
float64 lon 无固定范围(符合 WGS84 坐标系经纬度格式) 车辆所在位置的经度
float32 head 0-360 车辆航向角单位0° 表示正北方向,顺时针递增
float32 speed
int32 p_quality 0-9 定位解状态
0初始化 1单点定位 2码差分 3无效PPS 4固定解 5浮点解 6正在估算 7人工输入固定值 8模拟模式 9WAAS差分;
固定解是最优解
int32 h_quality 0-9 定向解状态
0初始化 1单点定位 2码差分 3无效PPS 4固定解 5浮点解 6正在估算 7人工输入固定值 8模拟模式 9WAAS差分;
固定解是最优解

对应 Topic

  • Topic/rtk_message