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

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

【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;///检测障碍物实例
Apollo Routing 是 Apollo Client 的一个功能模块,用于处理客户端的路由和导航。它提供了一组 API 和工具,使得在 GraphQL 客户端中进行页面导航和路由管理变得更简单。 Apollo Routing 的源码主要包括以下几个部分: 1. `Router` 类:这是 Apollo Routing 的核心类,负责管理路由状态和导航。它使用浏览器的 `history` API 来监听 URL 变化,并根据变化更新路由状态。`Router` 类还提供了一组方法,用于注册和处理路由变化的回调函数。 2. `Route` 组件:这是一个 React 组件,用于声明式地定义路由与组件的映射关系。每个 `Route` 组件都包含一个 `path` 属性和一个 `component` 属性,用于指定 URL 匹配规则和对应的组件。 3. `Link` 组件:这是一个 React 组件,用于生成带有正确 URL 的链接。它会通过 `Router` 类提供的 API 来更新 URL,并触发路由变化。 4. `Switch` 组件:这是一个 React 组件,用于在多个 `Route` 组件之间选择匹配的路由。它会遍历所有子组件,并渲染第一个匹配成功的 `Route` 组件。 5. `useRouter` Hook:这是一个自定义的 React Hook,用于在函数组件中获取 `Router` 实例。它会利用 React 的上下文(context)机制,从根组件向下传递 `Router` 实例。 以上是 Apollo Routing 的主要源码组成部分。通过分析这些源码,我们可以更深入地了解 Apollo Routing 的实现原理和使用方式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值