# 5. Commsgs 模块架构设计 本文描述 `autonomy/commsgs` 的逻辑架构、双层消息模型与全栈集成关系。 ## 5.1 设计目标 commsgs 模块遵循以下设计原则: 1. **ROS 语义兼容**:字段命名、坐标系约定、Stamped/WithCovariance 模式与 ROS 2 `common_msgs` 保持一致 2. **双层分离**:C++ struct 供算法零开销使用,proto 供序列化与跨进程通信 3. **显式边界转换**:`ToProto`/`FromProto` 在模块边界集中调用,便于测试与审计 4. **无 ROS 运行时依赖**:不使用 `rosidl`/`rclcpp`,Autonomy 自研通信栈 5. **可扩展**:新增消息包遵循 proto → hpp → cpp 三层模式 ## 5.2 实现状态 | 组件 | 实现度 | 说明 | |------|--------|------| | 16 个 proto 包 | ✅ | schema 已定义 | | C++ struct 定义 | ✅ | 主要消息类型已覆盖 | | `ToProto`/`FromProto` | ⏳ | 核心包完整,部分 stub | | PointCloud2 工具 | ✅ | 迭代器 + 字段转换 | | Nav2 Action/Service | ✅ proto | C++ 层仅 `SpeedLimit` | | 错误码体系 | ✅ proto | 含 Nav2 遗留别名 | | 独立 CMake 目标 | ❌ | 随 `libautonomy` glob 编译 | ## 5.3 分层架构