# perception_learn **Repository Path**: yangsuo123/perception_learn ## Basic Information - **Project Name**: perception_learn - **Description**: 感知融合注释代码,Apollo部分已注释 TODO:Autoware - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: https://gitee.com/leox24 - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 29 - **Created**: 2022-02-18 - **Last Updated**: 2022-02-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PERCEPTION LEARN Apollo perception注释代码,主要是融合fusion部分,更新中 CyberRT和ROS:Apollo最初用的是ROS,但因为时延问题开发了CyberRT 通常 4 个步骤进行组件开发:设置组件文件结构--实现组件类--设置配置文件--启动组件 ## 参考文章 - [Apollo 感知模块 _study [ADS]](https://blog.csdn.net/chepwavege/article/details/95063679#t5) - [自动驾驶 Apollo 源码分析系列,感知篇(二):Perception 如何启动?](https://frank909.blog.csdn.net/article/details/111598755) - [Apollo的感知融合模块解析](https://blog.csdn.net/u012423865/article/details/80386444?spm=1001.2014.3001.5501) 这是一篇2.5版本的解析,算法结构是差不多的,流程图比较详尽,没有过多的代码细节,文章比较短,容易理解整个过程。 - [Apollo 5.0源码学习笔记(二)| 感知模块 | 融合模块](https://blog.csdn.net/zhanghm1995/article/details/103539976) 讲的很清晰,没有代码细节,不想看源码可以看这篇很详细 - [Apollo 2.0 框架及源码分析(零) | 引言](https://zhuanlan.zhihu.com/p/33240932) - [Apollo 2.0 框架及源码分析(一) | 软硬件框架](https://zhuanlan.zhihu.com/p/33059132) - [Apollo 2.0 框架及源码分析(二) | 感知模块 | Lidar](https://zhuanlan.zhihu.com/p/33416142) - [Apollo 2.0 框架及源码分析(三) | 感知模块 | Radar & Fusion](https://zhuanlan.zhihu.com/p/33852112) ## 源码剖析文章 - 融合框架:[Apollo perception fusion感知融合源码分析--融合框架](https://blog.csdn.net/weixin_43152152/article/details/114836882) - 关联匹配:[Apollo perception fusion感知融合源码分析--Associate关联匹配](https://blog.csdn.net/weixin_43152152/article/details/115175675) - 匈牙利匹配算法:[Apollo perception fusion感知融合源码分析--匈牙利匹配](https://blog.csdn.net/weixin_43152152/article/details/114235820) - 卡尔曼滤波:[Apollo perception fusion感知融合源码分析--卡尔曼滤波](https://blog.csdn.net/weixin_43152152/article/details/115308664) - 证据推理:[Apollo perception fusion感知融合源码分析--证据推理](https://blog.csdn.net/weixin_43152152/article/details/115648285) ## 总入口(组件文件结构和组件类的实现) ``` ├── onboard │   ├── common_flags │   ├── component //感知融合的组件实现 │   ├── inner_component_messages │   ├── msg_buffer │   ├── msg_serializer │   ├── proto │   └── transform_wrapper ``` ### 其中component ``` component/ ├── BUILD //定义了 perception 中所有的 component 如 camera,radar,lidar 等的信息 ├── camera_perception_viz_message.cc ├── camera_perception_viz_message.h ├── detection_component.cc // 激光雷达检测 ├── detection_component.h ├── fusion_camera_detection_component.cc ├── fusion_camera_detection_component.h ├── fusion_component.cc //融合 ├── fusion_component.h ├── lane_detection_component.cc ├── lane_detection_component.h ├── lidar_inner_component_messages.h ├── lidar_output_component.cc ├── lidar_output_component.h ├── radar_detection_component.cc ├── radar_detection_component.h ├── recognition_component.cc ├── recognition_component.h ├── segmentation_component.cc ├── segmentation_component.h ├── trafficlights_perception_component.cc └── trafficlights_perception_component.h ``` ## 组件配置文件 modules/perception/production中 Launch文件定义了模块的启动,dag定义了模块的依赖关系。launch文件中包含了dag文件,dag文件中 如launch/perception_all.launch包含了: - dag_streaming_perception.dag - dag_streaming_perception_camera.dag - dag_streaming_perception_trafficlights.dag - dag_motion_service.dag 而dag_streaming_perception.dag中包含了相应的动态库,组件component及配置项目,组件如下: - DetectionComponent - RecognitionComponent - RadarDetectionComponent - FusionComponent ## 融合简略流程图 ![fusion](my_notes/perception/fusion.png)