add README

This commit is contained in:
Alvin-lyq 2025-09-02 17:16:28 +08:00
parent cf39b1ac7c
commit 7ec6c8189e
3 changed files with 83 additions and 22 deletions

77
README.md Normal file
View File

@ -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.msgRTK 定位信息消息)
#### 字段定义
| 字段类型 | 字段名称 | 取值范围 / 说明 | 功能描述 |
| -------- | ---------- | ----------------------------------------- | ------------------------------------------------------------ |
| float64 | lat | 无固定范围(符合 WGS84 坐标系经纬度格式) | 车辆所在位置的纬度 |
| float64 | lon | 无固定范围(符合 WGS84 坐标系经纬度格式) | 车辆所在位置的经度 |
| float32 | head | 0-360 | 车辆航向角单位0° 表示正北方向,顺时针递增 |
| float32 | speed | | |
| int32 | p\_quality | 0-9 | 定位解状态<br /> 0初始化 1单点定位 2码差分 3无效PPS 4固定解 5浮点解 6正在估算 7人工输入固定值 8模拟模式 9WAAS差分;<br /> 固定解是最优解 |
| int32 | h\_quality | 0-9 | 定向解状态<br /> 0初始化 1单点定位 2码差分 3无效PPS 4固定解 5浮点解 6正在估算 7人工输入固定值 8模拟模式 9WAAS差分;<br /> 固定解是最优解 |
#### 对应 Topic
* **Topic**`/rtk_message`
## 4. 版本历史
| 版本 | 更新日期 | 更新内容 | 开发者 |
| ---- | -------- | ------------------------------------------------------------ | ------------------ |
| V1.0 | 2025-09-02 | 初始版本,定义`McCtrl.msg`和`Rtk.msg`结构,明确 Topic | \[zxwl] |

View File

@ -1,9 +1,9 @@
#!/bin/bash #!/bin/bash
############################################################################### ###############################################################################
# ros2_nodes.sh # 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 all # 同上
# ./ros2_nodes.sh start core # 仅启动 4 个核心节点 # ./ros2_nodes.sh start core # 仅启动 4 个核心节点
# ./ros2_nodes.sh stop # 停止 # ./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" source "$WORKSPACE_PATH/install/setup.bash"
##== 日志目录与轮换配置 ======================================================= ##== 日志目录与轮换配置 =======================================================
@ -23,23 +23,13 @@ MAX_LOG_FILES=5 # 保留文件数
##== 节点命令列表 ============================================================== ##== 节点命令列表 ==============================================================
# 1) 全量 13 节点(键名 = 节点标识 , 值 = 启动命令) # 1) 全量 6 节点(键名 = 节点标识 , 值 = 启动命令)
declare -A NODES_ALL=( 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" ["radio_ctrl"]="ros2 run radio_ctrl radio_ctrl_node"
["ctrl_arbiter"]="ros2 run ctrl_arbiter ctrl_arbiter_node" ["ctrl_arbiter"]="ros2 run ctrl_arbiter ctrl_arbiter_node"
["mqtt_report"]="ros2 run mqtt_report mqtt_report_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" ["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" ["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 "Usage: $0 {start|stop|restart|rotate|status} [core|all]"
echo " core : 仅启动 4 个核心节点 (mc radio_ctrl ctrl_arbiter mqtt_report)" echo " core : 仅启动 4 个核心节点 (mc radio_ctrl ctrl_arbiter mqtt_report)"
echo " all : 启动全部 13 个节点 (默认)" echo " all : 启动全部 6 个节点 (默认)"
;; ;;
esac esac

6
run.sh
View File

@ -21,12 +21,6 @@ sleep 0.2s
} }
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" gnome-terminal --title="rtk" --tab "XXD_ros" -- bash -c "ros2 run rtk rtk_node"
}& }&