GRCC hdmap 今天
手机阅读
本节主要叙述相对地图指引线的采集、制作、使用流程
1、修改定位模块UTM区域ID Apollo项目定位(Localization)模块默认使用美国西部UTM坐标,在国内需要修改该值。在Docker外部,打开文件apollo/modules/localization/conf/localization.conf,将下述内容:
1 copy --local_utm_zone_id=10
修改为当前地区的UTM区域ID,下面是北京地区的精度范围大致在114E-120E之间。中国UTM分区可参考该网http://www.360doc.com/content/14/0729/10/3046928_397828751.shtml
1 copy --local_utm_zone_id=50
注意:如果录制数据时未修改上述内容,则线下模拟测试回放数据包时只能将错就错,千万不能再修改该值,否则地图上的参考线定位会出错!有一次我采集数据时,忘了修改该值,回放数据时又进行修改,结果导致参考线定位到了美国西海岸!取消修改,按F5键刷新浏览器后显示就恢复正常了。
2、参考线原始数据采集 将构建好的Apollo项目文件导入车内工控机,进入Docker,再执行如下命令,启动Dreamview服务端程序:
1 copy bash scripts/bootstrap.sh
在浏览器中打开网页http://localhost:8888
(注意不要使用代理),进入Dreamview界面,如下图所示:
将车辆驶入待测试路段起点。点击Dreamview界面左侧工具栏中的Module Controller按钮,进入模块控制页面,选中GPS、Localization、Record Bag选项,注意:如果采集的数据包需用于线下模拟测试,还需加上CAN Bus选项。
驾驶员从起点启动车辆并按预定路线行驶至终点;
操作员关闭Dreamview界面中的Record Bag选项,此时会在/apollo/data/bag目录
这是Docker中的目录,宿主机上对应的目录为apollo/data/bag)中生成一个类似于2018-04-01-09-58-00的目录,该目录中保存着类似于2018-04-01-09-58-00.bag
的数据包。这就是我们所需的数据包,请记住它的路径及名称。
注意:单个数据包文件的默认录制时长为1分钟,默认文件大小为2048MB,可通过修改文件/apollo/scripts/record_bag.sh
来改变默认值。
3、参考线制作 参考线的制作无论在哪台计算机上制作,我们首先进入Docker,并将录制的数据包放置在/apollo/data/bag目录中,且假定该文件名为2018-04-01-09-58-00.bag
从原始数据包提取裸数据 在Docker内部,使用如下命令从原始数据包提取裸数据:
1 copy cd /apollo/modules/tools/navigatorpython extractor.py /apollo/data/bag/2018-04-01-09-58-00.bag
上述命令会在当前目(易知我们在/apollo/modules/tools/navigator目录中)生成一个提取后的裸数据文件:path_2018-04-01-09-58-00.bag.txt
。为了验证裸数据的正确性,可以使用如下命令查看:
1 copy python viewer_raw.py ./path_2018-04-01-09-58-00.bag.txt
会显示类似下图的路径图:
对裸数据进行平滑处理 如果录制数据时,车辆行驶不够平顺,提取的裸轨迹数据可能会不光滑,有必要对其进行平滑处理。继续在Docker内部使用如下命令完成平滑处理:
1 copy bash smooth.sh ./path_2018-04-01-09-58-00.bag.txt 200
注意:上述命令中200是平滑处理的长度,该值一般为150-200,如果执行失败,可尝试调整该参数,再次进行平滑 。
为了验证平滑结果的正确性,可以使用如下命令查看:
1 copy python viewer_smooth.py ./path_2018-04-01-09-58-00.bag.txt ./path_2018-04-01-09-58-00.bag.txt.smoothed
其中,第一个参数./path_2018-04-01-09-58-00.bag.txt
是裸数据,第二个参数./path_2018-04-01-09-58-00.bag.txt.smoothed
是平滑结果,显示效果类似下图:
4、Dreamview前端的编译及配置 Dreamview前端默认使用Baidu地图,也可修改为Google地图,但需重新编译Dreamview前端,并正确设置UTM区域,具体方法如下(注意:如不需修改地图设置,可忽略前两步,直接执行第三步):
更改导航地图 打开文件[apollo项目根目录]/modules/dreamview/frontend/src/store/config/ parameters.yml,根据需要将下述内容替换为Google地图或Baidu地图:
重新编译Dreamview前端 按照步骤1.2的方法进入Docker,运行如下命令编译Dreamview前端:
1 2 3 4 copy cd /apollo/modules/dreamview/frontend/yarn installcd /apollobash apollo.sh build_fe
编译过程可能会出现如下错误:
1 copy ERROR in ..//css-loader!..//sass-loader/lib/loader.js?{"includePaths":["./node_modules"]}!./styles/main.scss*Module build failed: Error: ENOENT: no such file or directory, scandir '/apollo/modules/dreamview/frontend/node_modules/node-sass/vendor'...(后面还有一长串,不再一一列出)
这是内部依赖包不一致造成的,解决方法如下:
在Docker内部,运行如下命令(注意:一定要保持网络畅通,否则无法重新下载依赖包):
1 copy cd /apollo/modules/dreamview/frontend/rm -rf node_modulesyarn installcd /apollobash apollo.sh build_fe
配置UTM区域ID 打开文件apollo/modules/common/data/global_flagfile.txt
1 copy --local_utm_zone_id=50
5、导航模式的使用 打开Dreamview并开启导航模式 进入Docker,启动Dreamview,命令如下:
1 2 3 4 5 6 7 copy cd your_apollo_project_root_dirbash docker/scripts/dev_start.sh -C bash docker/scripts/dev_into.sh bash scripts/bootstrap.sh
若是线下模拟测试,则将步骤二中录制好的数据包/apollo/data/bag/2018-04-01-09-58-00.bag
(这是我机器上的录制数据)循环播放;若是实车调试,则忽略该步骤。
1 2 copy rosbag play -l /apollo/data/bag/2018-04-01-09-58-00.bag
在浏览器中打开网页http://localhost:8888
(注意不要使用代理),进入Dreamview界面,点击右上方下拉框,将模式设置为Navigation(导航模式),如下图所示:
打开Dreamview导航模式选项 点击Dreamview界面左侧工具栏中的Module Controller按钮,进入模块控制页面。若是线下模拟测试,选中Relative Map、Navi Planning选项,其他模块根据需要开启,如下图所示(图中显示空白文本的模块是Mobileye模块,需安装配置好相关硬件后才可见)):
若是实车调试,建议除Record Bag、Mobileye(若Mobileye硬件未安装,则会显示为空白文本)和Third Party Perception模块外,其余模块全部开启,如下图所示:
发送参考线数据 在Docker内部,使用如下命令发送步骤三中制作的参考线数据:
1 copy cd /apollo/modules/tools/navigatorpython navigator.py ./path_2018-04-01-09-58-00.bag.txt.smoothed
下图是线下模拟测试情形下Dreamview接收到参考线后的界面,注意界面左上角已出现了百度地图界面,我们发送的参考线在百度地图中以红线方式、在主界面中以白色车道线的方式展现。
下图是实车调试情形下的Dreamview接收到参考线后的界面,注意界面左上角已出现了百度地图界面,我们发送的参考线在百度地图中以红线方式、在主界面中以黄色车道线的方式展现。
需注意以下几点:
(1) 如果发送参考线数据后,Dreamview界面不能正确显示参考线,可能有以下方面的原因:一是参考线数据未正确发送,解决办法是再次执行发送命令;二是浏览器缓存不一致,解决办法是按Ctrl + R或F5键刷新显示,或者清理浏览器缓存;三是Dreamview后台服务程序运行异常,解决办法是在Docker内部重启Dreamview后台服务,命令如下:
1 2 3 4 copy bash scripts/bootstrap.sh stop bash scripts/bootstrap.sh
(2) 每次车辆重新回到起点后,无论是线下模拟测试还是实车调试情形,均需再次发送参考线数据。
文章作者: 胡想成
发布时间: 2019年08月23日 - 09:08
*后更新: 2020年03月14日 - 11:03