调整整体程序架构,进行功能区分
This commit is contained in:
parent
f0349d21f9
commit
f445d3718b
@ -12,7 +12,9 @@
|
||||
"pub_gps_topic": "/zxwl/vehicle/V060003/gps",
|
||||
"remote_topic": "/zxwl/vehicle/V060003/ctrl",
|
||||
"mqtt_topic_push_status": "/zxwl/vehicle/V060003/task/status",
|
||||
"mqtt_topic_sub_task": "/zxwl/vehicle/V060003/task"
|
||||
"mqtt_topic_sub_task": "/zxwl/vehicle/V060003/task",
|
||||
"info_topic": "/zxwl/vehicle/V060003/info",
|
||||
"fault_topic": "/zxwl/vehicle/V060003/fault"
|
||||
},
|
||||
"detect_line_tolerance": 3.06,
|
||||
"detect_head_tolerance": 2,
|
||||
|
||||
138
src/README.md
Normal file
138
src/README.md
Normal file
@ -0,0 +1,138 @@
|
||||
# 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. 设计说明
|
||||
|
||||
目录结构用于表达系统的架构边界,
|
||||
而不仅是代码整理。
|
||||
|
||||
当无法判断一个节点应放入哪个目录时,
|
||||
通常意味着该节点职责需要重新拆分或澄清。
|
||||
25
src/base/vehicle_params/CMakeLists.txt
Normal file
25
src/base/vehicle_params/CMakeLists.txt
Normal file
@ -0,0 +1,25 @@
|
||||
cmake_minimum_required(VERSION 3.8)
|
||||
project(vehicle_params)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
add_compile_options(-Wall -Wextra -Wpedantic)
|
||||
endif()
|
||||
|
||||
# find dependencies
|
||||
find_package(ament_cmake REQUIRED)
|
||||
find_package(rclcpp REQUIRED)
|
||||
find_package(std_msgs REQUIRED)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
find_package(ament_lint_auto REQUIRED)
|
||||
# the following line skips the linter which checks for copyrights
|
||||
# comment the line when a copyright and license is added to all source files
|
||||
set(ament_cmake_copyright_FOUND TRUE)
|
||||
# the following line skips cpplint (only works in a git repo)
|
||||
# comment the line when this package is in a git repo and when
|
||||
# a copyright and license is added to all source files
|
||||
set(ament_cmake_cpplint_FOUND TRUE)
|
||||
ament_lint_auto_find_test_dependencies()
|
||||
endif()
|
||||
|
||||
ament_package()
|
||||
21
src/base/vehicle_params/package.xml
Normal file
21
src/base/vehicle_params/package.xml
Normal file
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
||||
<package format="3">
|
||||
<name>vehicle_params</name>
|
||||
<version>0.0.0</version>
|
||||
<description>TODO: Package description</description>
|
||||
<maintainer email="zxwl@44.com">nvidia</maintainer>
|
||||
<license>TODO: License declaration</license>
|
||||
|
||||
<buildtool_depend>ament_cmake</buildtool_depend>
|
||||
|
||||
<depend>rclcpp</depend>
|
||||
<depend>std_msgs</depend>
|
||||
|
||||
<test_depend>ament_lint_auto</test_depend>
|
||||
<test_depend>ament_lint_common</test_depend>
|
||||
|
||||
<export>
|
||||
<build_type>ament_cmake</build_type>
|
||||
</export>
|
||||
</package>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user