4. 入门Apollo仿真调试(下)
category
type
status
slug
date
summary
tags
password
icon
承接上文
单从学术来讲,仿真在自动驾驶的规控方向还是有着举足轻重的地位。因为路测环境复杂,而且条件不太容易重复,一般都是通过CARLA这类模拟器和ROS、Matlab,python等环境联合仿真作为论文验证。
Apollo 9.0通过一些桥接器也能够与CARLA联合仿真,而且由于Apollo内置的大量算法和基础软件工具,通过Apollo进行规控方面的算法研究和验证感觉还是具有优势的。
不过,千里之行,始于足下,还是要打好基础才行。
言归正传,在上一个定速巡航的实验中采用Sim_Control进行仿真,只能选择固定的高精地图,无法根据我们自己的要求来设置障碍物,那么如何为仿真场景添加障碍物呢?在这一章中,将进一步介绍场景编辑与同步方法,以及PnC的Scenario_Sim仿真模式。
三、编辑并同步仿真场景
实验内容
使用Apollo Studio编辑借道绕行仿真场景,创建仿真场景集,并同步到DreamView+中
实验目的
掌握Apollo Studio场景编辑器的使用
掌握场景集创建和同步方法
实验配置
Apollo Studio工作台->仿真评测
有两种方法创建并同步仿真场景。第一种是使用系统场景进行调试;第二种是使用编辑器编辑个人场景进行调试。下面分别介绍。
1. 查找需要的系统场景
打开Apollo社区,点击工作台,选择仿真。如果是初次使用,需要在仿真概览页面,完成新用户认证,才可以解锁更多功能。Apollo Studio仿真平台
点击场景管理,可以看到Apollo系统场景。在Apollo Studio仿真工具中,开放了200余典型系统场景,每个系统场景提供了查看、编辑以及添加至场景集的功能。开发者可根据自己的需求,选择合适的场景进行调试。例如,当需要选择直行道的场景时,可以在道路类型中选择直行道选项进行筛选。
此外,系统也提供了批量查看的功能,每个场景都可以独立预览,至此,我们就可以确定当前的场景是否是真实需要的。
2. 编辑个人场景
当系统场景不能满足个人调试需求时,开发者可以通过Apollo提供的场景编辑器自定义场景。接下来,我们以静态障碍物绕行为例,来介绍场景编辑器的使用。
首先打开仿真平台场景编辑器,选择地图San Mateo,填写基本信息。
然后选择主车,在地图合适的位置放置主车,使用滚轮可以缩放,按住ctrl键可以拖动地图平移。再利用鼠标调整主车的位置和方向。这一步务必注意,使用新增轨迹点来设置车辆运行的终点。
最后选择参与者,参与者选择未知静态障碍物,其他参数选择默认即可,点击保存。
可以看到,在个人场景列表已经出现该场景了
3. 创建场景集
确定需要的场景后,就可以创建场景集了。我们新建一个名为Apollo 9.0的场景集,选择线下仿真,然后勾选刚才确认的场景,点击创建。
4. 使用Profile插件同步到DreamView
场景集创建完成后,就可以通过插件Profile将该场景集同步到本地DreamView中,安装插件是场景集同步的必要条件。Apollo Studio云实验系统中,已经内置了插件,因此可以直接使用。但是如果在本地计算机安装了Apollo系统,则需要再个人中心的仿真服务中,生成对应版本的插件安装指令,然后再docker环境中运行该条指令。运行完成后,就可以正常使用插件同步功能了。
接下来演示如何将场景集进行同步。首先启动DreamView,打开Source Manager资源中心,找到场景列表,我们将刚才创建的Apollo9.0下载到本地,返回主页。
在资源环境中选择刚才下载的场景,打开Planning,Prediction,点击底部栏运行,就可以开始有障碍物的仿真了。
四、障碍物借道绕行仿真实验
在上一节中,我们学习了交通流仿真场景的编辑,也制作了静态障碍物绕行的场景。本实验将以该场景为例,讲解有障碍物场景下的仿真调试。
实验内容
车辆在行驶过程中,前方监测到静态障碍物后触发借道绕行,距离目标障碍物横向距离至少保持1m。
实验目的
掌握Scenario_Sim仿真组件使用方法
了解planning模块参数配置及调试方法
实验配置
《Apollo规划之障碍物借道绕行仿真调试》实验项目
1. 准备工作
实验的第一步是启动DreamView+;第二步将Mode调整为PnC,Operation切换为Scenario_Sim场景仿真操作;Modules模块中打开Planning,Prediction。
Scenario_Sim是PnC模块中最后一种仿真组件,可以支持在云端编辑同步的场景中仿真。
2. 下载静态障碍物场景
打开资源中心,找到刚才创建的场景集,点击下载,可以看到场景集已经被下载到本地了。如果下载失败,或下载后右侧区域不显示场景集,那很有可能是场景存在问题,大家需要检查自己的场景,是否按照上个实验的标准来制作。
下载完成后,可以通过场景列表进行场景的切换。可以选择上节课创建的个人场景,也可以选择Apollo Scenario场景集中的默认的场景Obstacle_bypass,该场景为系统预设的静态障碍物绕行场景。
然后开启算法调试模块,点击底部运行,可以看到主车已经正常避让障碍物了。
3. 修改代码程序
实验第三步,是按照任务要求修改程序代码,本实验任务要求是主车行驶过程中,前方监测到障碍物后借道绕行,距离目标障碍物横向距离至少保持1.2m。
planning.conf模块中存储了车辆对障碍物绕行距离相关的参数,其中调整参数obstacle_lat_buffer即可实现对障碍物绕行横向距离的调整。
打开终端,输入配置参数同步指令,系统将自动将planning模块的配置参数幅值到profile的default目录中。
之后再输入生效指令,使default目录为参数生效目录
我们打开云实验平台的在线编辑器,点击File->Open Folder,选择/Apollo_Workspace目录,打开profiles目录下的planning.conf文件,输入横向距离等于1.0。
4. 重新运行仿真
修改完后点击保存。关闭在重新打开Planning模块,再次点击运行,仔细与上一张仿真图进行对比就可以看到,车辆静态障碍物的绕行横向间距发生了变化。
结语
目前为止,我们在云实验室中学习了自动驾驶仿真和代码调试的基本方法,掌握了诸如DreamView、PnC monitor、Cyber Monitor等调试工具的使用方法,还学习了如何在云端制作场景集并同步到dreamview中。这些都是Apollo仿真中至关重要的技巧。
在这部分中主要以PnC模块为例进行演示,这是因为PnC模块无需显卡就能仿真。除此之外,default和perception也都有各自的适用场景和使用方法。另外,云实验室是对本地环境的一种模拟,接下来我们将在本地Ubuntu系统中安装并配置Apollo环境,真正开始上机仿真的学习。
上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...