| .. | ||
| autonomy | ||
| base | ||
| communication | ||
| control | ||
| perception | ||
| README.md | ||
sweeper_200 src 目录结构说明
1. 总体说明
sweeper_200 是一个基于 ROS2 的多节点系统, 用于清扫车的感知、定位、控制、作业与平台通信。
src 目录按功能域(functional domain)对 ROS2 节点进行分组, 用于明确节点职责边界,降低系统复杂度, 并作为系统架构约束的一部分。
新增节点或调整现有节点时,应优先考虑其所属功能域。
2. 目录分层说明
base/
底层硬件与接口抽象。
用于放置直接与硬件交互, 或对硬件能力进行抽象的节点与接口包。
职责包括:
- CAN、串口、设备接口
- 底层控制与状态采集
- 硬件能力封装
示例包:
- sweeper_interfaces
- mc
- fu
control/
控制输入与仲裁。
用于放置产生控制意图的节点, 以及多控制源的仲裁逻辑。
职责包括:
- 遥控、远控输入
- 控制权仲裁
- 控制指令标准化
示例包:
- radio_ctrl
- remote_ctrl
- ctrl_arbiter
communication/
平台与外部通信。
用于放置系统与外部平台 (云端、设备服务等)进行通信的节点。
职责包括:
- 设备身份获取与管理
- MQTT、HTTP 通信
- 云端任务同步
示例包:
- identity
- mqtt_report
- task_manager
perception/
感知与定位。
用于放置传感器处理、定位、 环境感知相关节点。
职责包括:
- 雷达、GPS、RTK
- 传感器融合
- 感知数据预处理
示例包:
- rslidar_pointcloud_merger
- rtk
- sub
autonomy/
自动驾驶与作业逻辑。
用于放置路径规划、 作业流程等高层逻辑节点。
职责包括:
- 路径规划
- 作业状态机
- 自动驾驶决策
示例包:
- route
- pl
- airy
execution/
执行与状态发布。
用于向系统外部或平台 发布执行结果与状态信息。
示例包:
- pub_gps
tools/
工具与调试节点(可选)。
3. 使用原则
- 新增包必须明确所属目录
- 禁止跨层直接依赖
- 系统级通信(HTTP、MQTT)只允许存在于 communication 目录
4. 设计说明
目录结构用于表达系统的架构边界, 而不仅是代码整理。
当无法判断一个节点应放入哪个目录时, 通常意味着该节点职责需要重新拆分或澄清。