sweeper_200/src/README.md

139 lines
2.3 KiB
Markdown
Raw Normal View History

# 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. 设计说明
目录结构用于表达系统的架构边界,
而不仅是代码整理。
当无法判断一个节点应放入哪个目录时,
通常意味着该节点职责需要重新拆分或澄清。