diff --git a/README.md b/README.md new file mode 100644 index 0000000..d04fac3 --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +# 清扫车 ROS2 控制与定位消息接口 + +## 1. 文档概述 + +清扫车 ROS2 控制与定位消息接口 + +## 2. 依赖环境 + + + +* **ROS2 版本**:Humble + + + +## 3. 消息(msg)文件详情 + +### 3.1 McCtrl.msg(车辆控制指令消息) + + +#### 字段定义 + + + +| 字段类型 | 字段名称 | 取值范围 / 说明 | 功能描述 | +| -------- | ------------------------------- | ----------------------------------------------- | ------------------------------------------------------------ | +| uint8 | brake | 0(开)、1(关) | 电磁刹控制:0 表示解除电磁刹,1 表示激活电磁刹 | +| uint8 | gear | 0(空挡)、1(前进)、2(后退)、3(保留) | 车辆挡位控制,3 为预留挡位暂未使用 | +| uint8 | rpm | 0-6000 | 电机转速指令,数值直接对应实际电机转速(rpm) | +| float32 | angle | \[-66.0, 66.0](分辨率 0.2°,建议适当缩减范围) | 轮端转向角度控制,单位为度(°) | +| uint16 | angle\_speed | 120-1500 | 转向角速度控制,单位为 rpm | +| uint8 | roll\_brush\_suction\_direction | 0(不转动)、1(正转)、2(反转) | 滚刷 & 吸风电机的转动方向控制 | +| uint8 | roll\_brush\_suction | 0-100 | 滚刷 & 吸风电机的功率 / 转速占空比(0 为停止,100 为最大) | +| int8 | side\_brush | 0-100 | 边刷电机的功率 / 转速占空比(0 为停止,100 为最大) | +| int8 | dust\_shake | 0-100 | 振尘电机的功率 / 转速占空比(0 为停止,100 为最大) | +| int8 | brush\_deck\_pusher | -100-100 | 刷盘推杆电机控制:正数为推杆伸出,负数为推杆收回,0 为停止 | +| int8 | suction\_squeeqee\_pusher | -100-100 | 吸扒推杆电机控制:正数为推杆伸出,负数为推杆收回,0 为停止 | +| int8 | water\_spray | -100-100 | 喷水电机控制:正数为喷水(数值越大水量越大),负数为反向(如排水,需根据硬件支持调整),0 为停止 | + +#### 对应 Topic + + + +* **Topic**:`/auto_mc_ctrl` + + + +### 3.2 Rtk.msg(RTK 定位信息消息) + + +#### 字段定义 + + + +| 字段类型 | 字段名称 | 取值范围 / 说明 | 功能描述 | +| -------- | ---------- | ----------------------------------------- | ------------------------------------------------------------ | +| 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` + + + +## 4. 版本历史 + + + +| 版本 | 更新日期 | 更新内容 | 开发者 | +| ---- | -------- | ------------------------------------------------------------ | ------------------ | +| V1.0 | 2025-09-02 | 初始版本,定义`McCtrl.msg`和`Rtk.msg`结构,明确 Topic | \[zxwl] | diff --git a/ros2_nodes.sh b/ros2_nodes.sh index 663a705..6818052 100755 --- a/ros2_nodes.sh +++ b/ros2_nodes.sh @@ -1,9 +1,9 @@ #!/bin/bash ############################################################################### # ros2_nodes.sh -# 一键启动 / 停止 / 重启 / 状态查询 13 个 ROS 2 节点(或仅核心 4 节点) +# 一键启动 / 停止 / 重启 / 状态查询 6 个 ROS 2 节点(或仅核心 4 节点) # 用法: -# ./ros2_nodes.sh start # 默认启动全部 13 节点 +# ./ros2_nodes.sh start # 默认启动全部 6 节点 # ./ros2_nodes.sh start all # 同上 # ./ros2_nodes.sh start core # 仅启动 4 个核心节点 # ./ros2_nodes.sh stop # 停止 @@ -13,7 +13,7 @@ ############################################################################### ##== 基本路径与环境 =========================================================== -WORKSPACE_PATH="/home/nvidia/sweeper_e800" +WORKSPACE_PATH="/home/nvidia/Downloads/sweeper_whu" source "$WORKSPACE_PATH/install/setup.bash" ##== 日志目录与轮换配置 ======================================================= @@ -23,23 +23,13 @@ MAX_LOG_FILES=5 # 保留文件数 ##== 节点命令列表 ============================================================== -# 1) 全量 13 节点(键名 = 节点标识 , 值 = 启动命令) +# 1) 全量 6 节点(键名 = 节点标识 , 值 = 启动命令) declare -A NODES_ALL=( - # ---- 核心 4 节点 ---- - # ["mc"]="ros2 run mc mc_node" + ["mc"]="ros2 run mc mc_node" ["radio_ctrl"]="ros2 run radio_ctrl radio_ctrl_node" ["ctrl_arbiter"]="ros2 run ctrl_arbiter ctrl_arbiter_node" ["mqtt_report"]="ros2 run mqtt_report mqtt_report_node" - - # ---- 新增 9 节点 ---- - ["rslidar_sdk"]="ros2 launch rslidar_sdk start.py" ["rtk"]="ros2 run rtk rtk_node" - ["route"]="ros2 run route route_node" - ["sub"]="ros2 run sub sub_node" - ["task_manager"]="ros2 run task_manager task_manager_node" - ["detect_line"]="ros2 run detect_line detect_line_node" - ["pl"]="ros2 run pl pl_node" - ["fu"]="ros2 run fu fu_node" ["pub_gps"]="ros2 run pub_gps pub_gps_node" ) @@ -195,6 +185,6 @@ case "$1" in *) echo "Usage: $0 {start|stop|restart|rotate|status} [core|all]" echo " core : 仅启动 4 个核心节点 (mc radio_ctrl ctrl_arbiter mqtt_report)" - echo " all : 启动全部 13 个节点 (默认)" + echo " all : 启动全部 6 个节点 (默认)" ;; esac diff --git a/run.sh b/run.sh index 78a89cc..25cffd0 100755 --- a/run.sh +++ b/run.sh @@ -21,12 +21,6 @@ sleep 0.2s } sleep 0.2s -{ - # gnome-terminal --title="rslidar_sdk" --tab "XXD_ros" -- bash -c "ros2 launch rslidar_sdk start.py" - gnome-terminal --title="lidar" --tab "XXD_ros" -- bash -c "ros2 launch rslidar_sdk start_double.launch.py" -}& -sleep 0.2s - { gnome-terminal --title="rtk" --tab "XXD_ros" -- bash -c "ros2 run rtk rtk_node" }&