# 5. Perception 模块架构设计 本文描述 `autonomy/perception` 的逻辑架构、核心组件关系与运行时数据流。 ## 5.1 设计目标 Perception 模块遵循以下设计原则: 1. **插件化扩展**:各感知算法以 `PerceptionInterface` 插件形式注册,支持进程内与动态库加载 2. **配置驱动**:Lua → Protobuf 配置管线,与 planning/control 模块统一 3. **消息标准化**:输出对齐 `commsgs::vision_msgs`,便于与 ROS 生态互通 4. **推理基础设施复用**:视觉深度学习复用 `common/network` ONNX/TensorRT 管线 5. **与 map 解耦**:障碍几何表示可输出至 costmap 或独立障碍列表,供不同下游选择 ## 5.2 实现状态 | 组件 | 实现度 | 说明 | |------|--------|------| | `PerceptionServer` 声明 | ⏳ | 头文件存在,`.cpp` 未实现 | | `PerceptionInterface` | ⏳ | 仅 `LoadOptions()`,无插件 API | | `PerceptionOptions` proto | ⏳ | 空 message | | Lua 配置加载 | ❌ | 未接入 `system/options.cpp` | | 系统启动集成 | ❌ | `Autonomy::Start()` 未构造 | | `common/network` 推理 | ✅ | ONNX/TensorRT 完整 | | `vision_msgs` 消息 | ✅ | 结构已定义 | | `ObstacleLayer` 障碍感知 | ✅ | 在 map 模块中实现 | ## 5.3 分层架构
perception_server 节点