Apollo2.0自动驾驶howto文件夹之how_to_run_offline_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,具体请见本博客中各模块的分析代码。
/****************************************************************************************


#如何运行离线感知展示台
      尽管Dreamviewer工具可以直观地模拟感知模块,但它缺乏可视化点云和ROI区域的能力,这对调试和测试感知算法很有帮助。为此,我们提供了一个基于OpenGL和PCL库的离线可视化工具来显示点云的障碍感知结果。请在Apollo官方网站上查看[演示视频](http://apollo.auto/platform/perception.html),了解这款离线感知可视化工具。
我们介绍在Docker中构建和运行离线可视化器的详细步骤,如下所示:
### 1.准备PCD和姿势数据
       在运行可视化器之前,我们需要准备必要的PCD和姿态数据,这些数据可以从记录点云数据的ROS包中提取。为了便于数据提取,我们提供一个ROS启动文件来转储PCD帧文件和一个python脚本来为每个帧生成Pose文件。
1.1启动PCD导出器(详见[Velodyne驱动程序文档](https://github.com/ApolloAuto/apollo/tree/master/modules/drivers/velodyne))
```
roslaunch velodyne export_pcd.launch
```
1.2玩ROS包   
ROS包的默认目录是`/ apollo / data / bag`。假设ROS包的文件名是`example.bag`。
```
cd / apollo / data / bag
rosbag play --clock example.bag
```
      播放包时,PCD文件将被转储到导出目录(defalut:`/ apollo / data / pcd`)。提取的PCD文件根据它们的帧号命名,该帧号对应于从点云ROS主题(例如,`/ apollo / sensor / velodyne64 / compensator / PointCloud2`)播放记录的消息的顺序。另外,还有两个其他文件(`stamp.txt`和`pose.txt`)在导出目录中生成。它们将用于为每个帧生成Pose文件。

1.3生成姿势文件
我们提供了一个Python脚本`gen_pose_file.py`来从`pose.txt`生成Pose文件。
```
cd / apollo / modules / perception / tool
python gen_pose_file.py / apollo / data / pcd
```
生成的Pose文件的名称与PCD文件的帧号相对应。这意味着帧的PCD和Pose文件的名称是相同的,但具有不同的扩展名(即,分别为.pcd和.pose)。  

### 2.构建离线感知展示台
我们使用Bazel来构建离线感知可视化器。
```
cd / apollo
bazel build -c opt // modules / perception / tool / offline_visualizer_tool:offline_lidar_visualizer_tool
```
选项`-c opt`用于构建具有优化性能的程序,这对于实时感知模块的离线模拟和可视化非常重要。
如果您想用GPU运行感知模块,请使用以下命令:
```
bazel build -c opt --cxxopt = -DUSE_CAFFE_GPU // modules / perception / tool / offline_visualizer_tool:offline_lidar_visualizer_tool
```

### 3.使用离线感知模拟运行Visualizer
       在运行可视化器之前,可以在配置文件`/ apollo / modules / perception / tool / offline_visualizer_tool / conf / offline_lidar_perception_test.flag`中设置数据目录和算法模块设置。每个算法模块的详细参数设置可以根据`/ apollo / modules / perception / tool / offline_visualizer_tool / conf / config_manager.config`中的相应配置文件进行设置。然后您可以使用以下命令通过离线感知仿真运行可视化器:
```  
/阿波罗/巴泽勒滨/模块/感知/工具/ offline_visualizer_tool / offline_lidar_visualizer_tool
```
       现在您将看到一个弹出式窗口,逐帧显示点云的感知结果。用紫色矩形边界框显示障碍物。有/无ROI区域的点云显示有三种模式:(1)以灰色显示所有点云; (2)仅以绿色显示ROI区域的点云; (3)显示绿色ROI区域的点云和其他灰色区域的点云。您可以按下键盘上的`S`键,依次切换模式。 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值