sweeper_200/src
2026-01-06 10:18:25 +08:00
..
autonomy 调整整体程序架构,进行功能区分 2026-01-05 15:47:58 +08:00
base 260106 2026-01-06 10:18:25 +08:00
communication 260106 2026-01-06 10:18:25 +08:00
control 调整整体程序架构,进行功能区分 2026-01-05 15:47:58 +08:00
perception 调整整体程序架构,进行功能区分 2026-01-05 15:47:58 +08:00
README.md 调整整体程序架构,进行功能区分 2026-01-05 15:47:58 +08:00

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. 设计说明

目录结构用于表达系统的架构边界, 而不仅是代码整理。

当无法判断一个节点应放入哪个目录时, 通常意味着该节点职责需要重新拆分或澄清。