【Apollo源码分析】系列的第二部分【perception】

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【Apollo源码分析】系列的第二部分【perception】

perception


perception:感知模块 仍然是 处于待完善的状态。只有200行代码左右。 
下面简单介绍一下。 
perception模块的主要作用是根据激光雷达Lidar, 摄像机camera等传感器 sensors接收的数据来感知周围环境。 
主要任务是对物体进行检测,对行人进行识别,对交通信号灯进行判断,对道路车辆进行感知判断。

感知模块与其他模块一样是一个独立的进程。与其他模块通过tcp/共享内存进行通信。

perception/perception.h

 
 
 
  1. class Perception : public apollo::common::ApolloApp {
  2. public:
  3. std::string Name() const override;//模块名
  4. apollo::common::Status Init() override;//初始化步骤
  5. apollo::common::Status Start() override;//模块工作内容:主要是检测交通信号灯和障碍物等。
  6. void Stop() override; //清理函数
  7. };
 
 
 
  1. using apollo::common::adapter::AdapterManager;
  2. using apollo::common::Status;
  3. std::string Perception::Name() const { return "perception"; }//模块名称
  4. Status Perception::Init() { //模块启动初始化
  5. AdapterManager::Init();
  6. return Status::OK();
  7. }

目前整个模块的核心:

 
 
 
  1. Status Perception::Start() {
  2. ros::AsyncSpinner spinner(1);
  3. spinner.start();
  4. ros::waitForShutdown();
  5. spinner.stop();
  6. ros::Rate loop_rate(FLAGS_perception_loop_rate);//感知频率,默认是10hz
  7. while (ros::ok()) {
  8. AdapterManager::Observe();///进行一次感知测量/检测
  9. PerceptionObstacles perceptionObstacles
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值