【Apollo源码分析】系列的第二部分【perception】
perception
perception:感知模块 仍然是 处于待完善的状态。只有200行代码左右。
下面简单介绍一下。
perception模块的主要作用是根据激光雷达Lidar, 摄像机camera等传感器 sensors接收的数据来感知周围环境。
主要任务是对物体进行检测,对行人进行识别,对交通信号灯进行判断,对道路车辆进行感知判断。
感知模块与其他模块一样是一个独立的进程。与其他模块通过tcp/共享内存进行通信。
perception/perception.h
class Perception : public apollo::common::ApolloApp {public:std::string Name() const override;//模块名apollo::common::Status Init() override;//初始化步骤apollo::common::Status Start() override;//模块工作内容:主要是检测交通信号灯和障碍物等。void Stop() override; //清理函数};
using apollo::common::adapter::AdapterManager;using apollo::common::Status;std::string Perception::Name() const { return "perception"; }//模块名称Status Perception::Init() { //模块启动初始化AdapterManager::Init();return Status::OK();}
目前整个模块的核心:
Status Perception::Start() {ros::AsyncSpinner spinner(1);spinner.start();ros::waitForShutdown();spinner.stop();ros::Rate loop_rate(FLAGS_perception_loop_rate);//感知频率,默认是10hzwhile (ros::ok()) {AdapterManager::Observe();///进行一次感知测量/检测PerceptionObstacles perceptionObstacles

Apollo 1.0的感知模块(perception)主要负责利用激光雷达和相机数据感知周围环境,包括物体检测、行人识别和交通信号灯判断。然而,实际算法并未实现,仅定义了接口和属性描述。目前,感知模块仍是一个粗略的框架,尚未达到实际应用的要求,对于无人驾驶的安全性至关重要。

7900

被折叠的 条评论
为什么被折叠?



