Apollo2.0自动驾驶howto文件夹之how_to_run_offline_sequential_obstacle_perception_visualizer.md

/****************Apollo源码分析****************************

Copyright 2018 The File Authors & zouyu. All Rights Reserved.
Contact with: 1746430162@qq.com 181663309504

源码主要是c++实现的,也有少量python,git下载几百兆,其实代码不太多,主要是地图和数据了大量空间,主要程序
在apollo/modules目录中,
我们把它分成以下几部分(具体说明见各目录下的modules):
感知:感知当前位置,速度,障碍物等等
Apollo/modules/perception
预测:对场景下一步的变化做出预测
Apollo/modules/prediction
规划:
(1) 全局路径规划:通过起点终点计算行驶路径
Apollo/modules/routing
(2) 规划当前轨道:通过感知,预测,路径规划等信息计算轨道
Apollo/modules/planning
(3) 规划转换成命令:将轨道转换成控制汽车的命令(加速,制动,转向等)
Apollo/modules/control
其它
(1) 输入输出
i. Apollo/modules/drivers 设备驱动
ii. Apollo/modules/localization 位置信息
iii. Apollo/modules/monitor 监控模块
iv. Apollo/modules/canbus 与汽车硬件交互
v. Apollo/modules/map 地图数据
vi. Apollo/modules/third_party_perception 三方感知器支持
(2) 交互
i. Apollo/modules/dreamview 可视化模块
ii. Apollo/modules/hmi 把汽车当前状态显示给用户
(3) 工具
i. Apollo/modules/calibration 标注工具
ii. Apollo/modules/common 支持其它模块的公共工具
iii. Apollo/modules/data 数据工具
iv. Apollo/modules/tools 一些Python工具
(4) 其它
i. Apollo/modules/elo 高精度定位系统,无源码,但有文档
ii. Apollo/modules/e2e 收集传感器数据给PX2,ROS

自动驾驶系统先通过起点终点规划出整体路径(routing);然后在行驶过程中感知(perception)当前环境
(识别车辆行人路况标志等),并预测下一步发展;然后把已知信息都传入规划模块(planning),规划出之后的轨道;
控制模块(control)将轨道数据转换成对车辆的控制信号,通过汽车交互模块(canbus)控制汽车.
我觉得这里面算法技术含量最高的是感知perception和规划planning,具体请见本博客中各模块的分析代码。
/****************************************************************************************


#如何运行融合障碍可视化工具


Apollo创建了LiDAR障碍可视化工具,这是一种用于显示基于LiDAR的障碍物感知结果的离线可视化工具(请参见[如何运行离线感知可视化工具](https://github.com/ApolloAuto/apollo/blob/master/docs/howto /how_to_run_offline_perception_visualizer.md))。然而,该工具缺乏基于雷达的障碍物感知结果以及基于其两个传感器的融合结果的可视化能力。

Apollo开发了第二个可视化工具Fusion Fusion障碍可视化工具,以补充LiDAR障碍物可视化工具。融合障碍可视化工具显示这些模块的障碍感知结果:

- 基于LiDAR的算法模块
- 基于雷达的算法模块
- 融合算法模块,用于调试和测试完整的障碍物感知算法

所有的可视化都基于LiDAR数据可视化。来自LiDAR的源数据(用于在场景中形成任何对象的一组3D点)在描述整个场景的视觉特征时比用雷达更好。访问Apollo网站查看Fusion Obstacle Visualization Tool的[演示视频](http://apollo.auto/platform/perception.html)。

一般来说,您需要按照以下三个步骤在Docker中构建和运行融合障碍可视化工具:

1.准备源数据。
2.构建融合障碍可视化工具。
3.运行该工具。

接下来的三部分提供了三个步骤中的每一个的详细信息。

##准备源数据


在运行Fusion Obstacle Visualization Tool之前,您需要准备以下内容:

#####基于LiDAR的障碍感知

- 点云数据(PCD)文件
- 主车辆姿势

#####基于雷达的障碍感知

- 协议缓冲区(protobuf)格式中的雷达源障碍物数据
- 主车辆姿势
- 主车速度

为了便于数据提取,Apollo提供了一个名为`export_sensor_data`的工具来导出ROS包中的数据。

### 脚步

1.使用以下命令构建数据导出器:


```
cd / apollo
bazel build // modules / perception / tool / export_sensor_data:export_sensor_data
```

2.使用以下命令运行数据导出器:

```
/阿波罗/巴泽勒滨/模块/感知/工具/ export_sensor_data / export_sensor_data
```

3.玩ROS袋。   

ROS包的默认目录是`/ apollo / data / bag`。
在下面的例子中,ROS包的文件名是`example.bag`。

使用这些命令:

```
cd / apollo / data / bag
rosbag play --clock example.bag --rate = 0.1
```

为了确保在对ROS消息执行回调时不会错过任何帧数据,建议您降低播放速率,在上例中设置为“0.1”。

播放包时,所有数据文件都将逐个帧地使用时间戳作为文件名转储到导出目录。

默认的LiDAR数据导出目录是`/ apollo / data / lidar`。

雷达目录是`/ apollo / data / radar`。

这些目录可以在`/ apollo / modules / perception / tool / export_sensor_data / conf / export_sensor_data.flag`中使用flags,`lidar_path`和`radar_path`定义。

在`lidar_path`中,生成两种类型的文件,后缀为:*`.pcd` *和*`.pose` *。

在`radar_path`中,生成三种类型的文件,其后缀为*`.radar` *,*`.pose` *和*`.velocity` *。

##构建融合障碍可视化工具

阿波罗使用Bazel工具来构建融合障碍物可视化工具。

1.使用以下命令构建融合障碍可视化工具:

```
cd / apollo
bazel build -c opt // modules / perception / tool / offline_visualizer_tool:offline_sequential_obstacle_perception_test
```

`-c opt`选项用于构建具有优化性能的程序,这对于实时感知模块的离线模拟和可视化非常重要。

2.(可选)如果要使用GPU运行知觉模块,请使用以下命令:

```
bazel build -c opt --cxxopt = -DUSE_CAFFE_GPU // modules / perception / tool / offline_visualizer_tool:offline_sequential_obstacle_perception_test
```

##运行工具

在运行Fusion Obstacle Visualization Tool之前,您可以在配置文件中设置源数据目录和算法模块设置:`/ apollo / modules / perception / tool / offline_visualizer_tool / conf / offline_sequential_obstacle_perception_test.flag`。

对于`lidar_path`和`radar_path`,默认的源数据目录分别是`/ apollo / data / lidar`和`/ apollo / data / radar`。

可视化启用布尔标志为“true”,默认情况下,要显示的障碍结果类型为“融合”(基于LiDAR和RADAR传感器的融合障碍结果)。您可以将“融合”变成“激光雷达”或“雷达”,以便将基于单传感器的障碍感知所产生的纯障碍结果可视化。

使用以下命令运行Fusion Obstacle Visualization Tool:

```
/阿波罗/巴泽勒滨/模块/感知/工具/ offline_visualizer_tool / offline_sequential_obstacle_perception_test
```

你会看到如下结果:

- 一个弹出窗口,逐帧显示点云的感知结果
- 以灰色显示的原始点云
- 检测到的边界框(带有指示标题的红色箭头):
  - 汽车(绿色)
  - 行人(粉红色)
  - 骑自行车者(蓝色)
  - 未知元素(紫色)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值