同步操作将从 ApolloAuto/apollo 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
无人驾驶系统利用实时感知信息和静态地图信息构建出完整驾驶环境,并在构建的环境中,依据routing数据,规划出行车轨迹,并由控制模块执行完成。Apollo导航模式在上述的框架下,针对高速、乡村道路等简单道路场景,进行了以下的提升:
学习完本教程后,你将能够在导航模式下进行规划模块(planning)的线下调试和开发。
下载并编译Apollo最新源码(Howto)
在导航模式下,有以下几个参数需要进行配置:
配置文件位于:
/apollo/modules/tools/navigation/config/default.ini
默认配置为:
[PerceptionConf]
# three perception solutions: MOBILEYE, CAMERA, and VELODYNE64
perception = CAMERA
[LocalizationConf]
utm_zone = 10
[PlanningConf]
# three planners are available: EM, LATTICE, NAVI
planner_type = EM
# highest speed for planning algorithms, unit is meter per second
speed_limit = 5
该默认配置为Apollo 2.5 Demo bag录制时的配置,在此教程中,我们直接使用。
为了使配置生效,在Docker内的Apollo根目录下,运行如下命令
in_dev_docker:/apollo$ cd /apollo/modules/tools/navigation/config/
in_dev_docker:/apollo/modules/tools/navigation/config$ python navi_config.py default.ini
在进入Docker,启动Apollo之前,我们把Apollo2.5 demo bag 拷贝到Apollo代码根目录下的data目录中。
在Docker内编译成功后,我们用如下命令启动Dreamview:
in_dev_docker:/apollo$ ./scripts/bootstrap.sh start
并在本地浏览器中打开
http://localhost:8888
如下图所示,在模式框中选择“Navigation”。
然后在Docker内的apollo根目录下运行如下命令进行bag播放
in_dev_docker:/apollo$cd data
in_dev_docker:/apollo/data$rosbag play demo_2.5.bag
播放开始后,可以看到Dreamview界面如下
在地图中选择一个目的地(沿canada路),点击地图视图中的红色Route按钮,云端指引者会接收到这个请求,并返回指引线,该指引线会被显示在地图视图中。如下图所示。
以上就是云端指引者的调用过程。
目前云端指引者只覆盖了有限的区域。除了云端的服务之外,我们还提供了离线指引者工具来制作和发送线下指引线。在本教程中,我们以Apollo2.5 demo bag为例来生成指引线。
生成指引线的步骤为
in_dev_docker:/apollo$cd modules/tools/navigator
in_dev_docker:/apollo/modules/tools/navigator$python extractor.py /apollo/data/demo_2.5.bag
提取出来的路径数据在路径
in_dev_docker:/apollo/modules/tools/navigator$
中的
path_demo_2.5.bag.txt
in_dev_docker:/apollo/modules/tools/navigator$bash smooth.sh path_demo_2.5.bag.txt 200
平滑后的的数据在
in_dev_docker:/apollo/modules/tools/navigator$path_demo_2.5.bag.txt.smoothed
得到平滑后的数据就可以发送到Apollo系统中,作为指引线,步骤为:
in_dev_docker:/apollo/modules/tools/navigator$python navigator.py path_demo_2.5.bag.txt.smoothed
发送完成后,Dreamview的地图视图中的红色指引线会更新为如下图所示:
利用bag来进行模块调试,首先要把bag中的相应ros message过滤掉。假设我们想要调试规划模块,我们需要把消息
/apollo/planning
过滤,使用以下命令
in_dev_docker:/apollo$cd data
in_dev_docker:/apollo/data$rosbag filter demo_2.5.bag demo_2.5_no_planning.bag "topic != '/apollo/planning'"
过滤后的bag位于
in_dev_docker:/apollo/data$demo_2.5_no_planning.bag
我们播放没有规划的bag,用下面的命令
in_dev_docker:/apollo/data$rosbag play demo_2.5_no_planning.bag
在Dreamview中我们会看到车辆的规划轨迹没有输出,如下图
我们在Dreamview中打开Navi Planning模块,如下图
我们看到实时计算的车辆的规划轨迹显示在Dreamview中。这时你可以试着更改一些规划模块的配置
in_dev_docker:/apollo/modules/planning/conf$planning_config_navi.pb.txt
去了解,这些参数会对规划结果有什么影响。或者修改规划算法的代码,进行调试。
恭喜你完成了本教程。现在你应该了解
你也可以试着利用demo bag对其他一些模块进行调试。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。