apollo
导航模式教程
1
教程简介
无人驾驶系统利用实时感知信息和静态地图信息构建出完整驾驶环境,并在构建的环境中,依据routing数据,规划出行车轨迹,并由控制模块执行完成。apollo导航模式在上述的框架下,针对高速、乡村道路等简单道路场景,进行了以下的提升:
apollo导航模式以提高安全性和稳定性为目的,在驾驶环境中加入了静态引导信息,引导在驾驶环境中的轨迹规划,使其更安全更舒适。同时,引导信息也降低了对驾驶环境的完整性的要求 -- 即降低了对地图信息的要求。
apollo导航模式使用了相对/车身坐标系。减少了sensor数据的转化。同时也支持各种驾驶模式之间的转化,以应对不同的驾驶场景和条件。
apollo导航模式引入了百度地图的routing功能,考虑实时路况信息,使得routing的结果更实用,更精确,更稳定。也使得apollo系统更易于落地和商用。
在本教程中,你将完成
▼
学习完本教程后,你将能够在导航模式下进行规划模块(planning)的线下调试和开发。
在本教程中,你将掌握
▼
如何设置apollo导航模式
如何利用云端指引者发送指引线
如何利用录制的ros bag产生指引线并用线下指引者发送
如何进行规划模块的调试
在本教程中,你需要如下准备
▼
下载并编译apollo最新源码(howto)
https://github.com/apolloauto/apollo/tree/master/docs/demo_guide
下载apollo2.5 demo bag
2
配置导航模式
在导航模式下,有以下几个参数需要进行配置:
感知方案:目前支持摄像头方案(camera)和基于mobileye的方案(mobileye)
apollo utm zone
规划模块的planner:目前支持em, lattice, 和navi三种
系统限速:单位为米/秒
在docker下修改配置文件
配置文件位于:
1
/apollo/modules/tools/navigation/config/default.ini
默认配置为:
12345678910111213
[perceptionconf]# three perception solutions: mobileye, camera, and velodyne64perception = camera[localizationconf]utm_zone = 10[planningconf]# three planners are available: em, lattice, naviplanner_type = em# highest speed for planning algorithms, unit is meter per secondspeed_limit = 5
该默认配置为apollo 2.5 demo bag录制时的配置,在此教程中,我们直接使用。
生效配置信息
为了使配置生效,在docker内的apollo根目录下,运行如下命令:
12
in_dev_docker:/apollo$ cd /apollo/modules/tools/navigation/config/in_dev_docker:/apollo/modules/tools/navigation/config$ python navi_config.py default.ini
3
云端指引者的使用
回放demo bag:
在进入docker,启动apollo之前,我们把apollo2.5 demo bag拷贝到apollo代码根目录下的data目录中。
在docker内编译成功后,我们用如下命令启动dreamview:
1
in_dev_docker:/apollo$ ./scripts/bootstrap.sh start
并在本地浏览器中打开:
1
http://localhost:8888
如下图所示,在模式框中选择“navigation”。
然后在docker内的apollo根目录下运行如下命令进行bag播放:
12
in_dev_docker:/apollo$cd datain_dev_docker:/apollo/data$rosbag play demo_2.5.bag
播放开始后,可以看到dreamview界面如下:
请求云端指引线
在地图中选择一个目的地(沿canada路),点击地图视图中的红色route按钮,云端指引者会接收到这个请求,并返回指引线,该指引线会被显示在地图视图中。如下图所示。以上就是云端指引者的调用过程。
4
离线指引者工具的使用
目前云端指引者只覆盖了有限的区域。除了云端的服务之外,我们还提供了离线指引者工具来制作和发送线下指引线。在本教程中,我们以apollo2.5 demo bag为例来生成指引线。
指引线的制作
生成指引线的步骤为:
从bag中提取路径数据
12
in_dev_docker:/apollo$cd modules/tools/navigatorin_dev_docker:/apollo/modules/tools/navigator$python extractor.py /apollo/data/demo_2.5.bag
提取出来的路径数据在路径
1
in_dev_docker:/apollo/modules/tools/navigator$
中的
1
path_demo_2.5.bag.txt
平滑路径数据
1
in_dev_docker:/apollo/modules/tools/navigator$bash smooth.sh path_demo_2.5.bag.txt 200
平滑后的的数据在
1
in_dev_docker:/apollo/modules/tools/navigator$path_demo_2.5.bag.txt.smoothed
指引线的发送
得到平滑后的数据就可以发送到apollo系统中,作为指引线,步骤为:
1
in_dev_docker:/apollo/modules/tools/navigator$python navigator.py path_demo_2.5.bag.txt.smoothed
发送完成后,dreamview的地图视图中的红色指引线会更新为如下图所示:
5
规划模块的调试
调试数据准备
利用bag来进行模块调试,首先要把bag中的相应ros message过滤掉。假设我们想要调试规划模块,我们需要把消息
1
/apollo/planning
过滤,使用以下命令
12
in_dev_docker:/apollo$cd datain_dev_docker:/apollo/data$rosbag filter demo_2.5.bag demo_2.5_no_planning.bag topic != '/apollo/planning'
过滤后的bag位于
1
in_dev_docker:/apollo/data$demo_2.5_no_planning.bag
规划轨迹的产生
我们播放没有规划的bag,用下面的命令
1
in_dev_docker:/apollo/data$rosbag play demo_2.5_no_planning.bag
在dreamview中我们会看到车辆的规划轨迹没有输出,如下图
我们在dreamview中打开navi planning模块,如下图
我们看到实时计算的车辆的规划轨迹显示在dreamview中。这时你可以试着更改一些规划模块的配置
1
in_dev_docker:/apollo/modules/planning/conf$planning_config_navi.pb.txt
去了解,这些参数会对规划结果有什么影响。或者修改规划算法的代码,进行调试。
6
结束
恭喜你完成了本教程。现在你应该了解:
如何设置apollo导航模式
如何利用云端指引者发送指引线
如何利用录制的ros bag产生指引线并用线下指引者发送
如何进行规划模块的调试
你也可以试着利用demo bag对其他一些模块进行调试。
人工智能的全面发展到底是不是意味着人类的结束
台积电、日月光同时抢食异构芯片整合商机
谷歌公布FuchsiaOS部分细节 采用全新内核将实现桌面跨平台
协作机器人提升包裹分拣速度 在快递行业发挥着越来越重要的作用
Medtec医疗设计制造展八大看点,有源医疗器械核心部件领风骚
Apollo导航模式详细教程
国产MCU发展的四大阶段总结
热控镍镉充电器电路图
中国电源行业年会在北京圆满召开
iphone8预订量让人失望!iPhone8终于遇冷,全网预售量仅245万,国人不爱iPhone了吗?
HPC 研究人员借助 NVIDIA BlueField DPU 为网络计算的未来打下坚实基础
关于直线电机模组分辨率、定位精度和重复定位精度浅谈
为什么说华为mate10、魅族MX7、小米Note3是2017年下半年最值得期待的手机
哪些行业需要用到过电压保护器
人工智能技术感知层面 认知智能发展远远不够
市场监管总局依法对唯品会涉嫌实施不正当竞争行为立案调查
如何保护5G宏基站放大器和天线免受电气危害
CV基础:实现垂直投影和水平投影
FH8735 在H.264 音视频压缩卡上的应用
寰游2.0平台助力黑龙江省道路运输车辆动态监管服务工作再上新台阶