清华大学-自动驾驶汽车定位技术第五章_第1页
清华大学-自动驾驶汽车定位技术第五章_第2页
清华大学-自动驾驶汽车定位技术第五章_第3页
清华大学-自动驾驶汽车定位技术第五章_第4页
清华大学-自动驾驶汽车定位技术第五章_第5页
已阅读5页,还剩122页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自动驾驶技术丛书

(第四册)

智能驾驶技术丛书(第四册)自动驾驶汽车定位技术本书思维导图Chapter5

自动驾驶高精度地图

与定位实践

5高精度地图与定位实践高精度地图实践基于Apollo平台的定位实践

本章小结

5.1高精度地图实践道路元素语义信息高精度点云信息融合地图制作图像处理点云处理1基于Caffe的交通标志牌识别实验2基于PCL的激光点云配准实验5.1高精度地图实践1基于Caffe的交通标志牌识别实验通过本实验,你将获得:(1)熟悉深度学习框架Caffe的搭建与配置;(2)了解SqueezeNet网络模型部分概念及配置文件的说明;(3)利用Caffe框架进行深度学习的完整实践;5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;通过vim打开同目录下的Makefile配置文件,并修改配置文件:将:

LIBRARIES+=gloggflagsprotobufboost_systemboost_filesystemmNVCCFLAGS+=-ccbin=$(CXX)-Xcompiler-fPIC$(COMMON_FLAGS)修改为:

LIBRARIES

+=gloggflagsprotobufboost_systemboost_filesystemmhdf5_serial_hl

NVCCFLAGS

+=NVCCFLAGS+=-D_FORCE_INLINES-ccbin=$(CXX)-Xcompiler-fPIC$(COMMON_FLAGS)5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验基本条件:(1)安装Ubuntu14.04版本或以上的系统(以Ubuntu16.04为例);(2)交通标识牌数据集;(3)用于训练的网络模型文件;官网源码下载修改配置文件对Caffe源码进行编译Caffe框架搭建步骤:第三方依赖安装5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;(2)数据集的准备与数据预处理;(3)训练交通标志牌识别模型;(4)交通标志牌识别;注意:

实验过程中,每个配置文件以及执行脚本文件中的文件路径请根据本机做相应的修改5.1高精度地图实践1基于Caffe的交通标志牌识别实验打开终端,输入以下指令进行第三方依赖库的安装:sudoapt-getinstalllibprotobuf-devlibleveldb-devlibsnappy-devlibopencv-devlibhdf5-serial-devprotobuf-compilersudoapt-getinstall--no-install-recommendslibboost-all-devsudoapt-getinstalllibopenblas-devliblapack-devlibatlas-base-devsudoapt-getinstalllibgflags-devlibgoogle-glog-devliblmdb-dev5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;打开终端,选择一个合适的文件目录,通过git下载caffe源码:

gitclone/BVLC/caffe.git进入下载好的caffe目录,复制Makefile.config.example文件并命名为Makefile.config:

sudocpMakefile.config.exampleMakefile.config通过vim打开Makefile.config文件

vimMakefile.config5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;修改Makefile.config配置文件,添加依赖库:将

#Uncommentifyou'reusingOpenCV3#OPENCV_VERSION:=3#Whateverelseyoufindyouneedgoeshere.INCLUDE_DIRS:=$(PYTHON_INCLUDE)/usr/local/includeLIBRARY_DIRS:=$(PYTHON_LIB)/usr/local/lib/usr/lib5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;修改Makefile.config配置文件,添加依赖库:修改为

#Uncommentifyou'reusingOpenCV3

OPENCV_VERSION:=3

#Whateverelseyoufindyouneedgoeshere.

INCLUDE_DIRS:=$(PYTHON_INCLUDE)/usr/local/include/usr/include/hdf5/serial

LIBRARY_DIRS:=$(PYTHON_LIB)/usr/local/lib/usr/lib/usr/lib/x86_64-linux-gnu/usr/lib/x86_64-linux-gnu/hdf5/serial5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;修改完成后按Esc键,输入以下指令保存并退出:

:wq5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;通过vim打开同目录下的Makefile配置文件,并修改配置文件:将:

LIBRARIES+=gloggflagsprotobufboost_systemboost_filesystemmNVCCFLAGS+=-ccbin=$(CXX)-Xcompiler-fPIC$(COMMON_FLAGS)修改为:

LIBRARIES

+=gloggflagsprotobufboost_systemboost_filesystemmhdf5_serial_hl

NVCCFLAGS

+=NVCCFLAGS+=-D_FORCE_INLINES-ccbin=$(CXX)-Xcompiler-fPIC$(COMMON_FLAGS)5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;编译Caffe,查看是否配置成功:

makeall(或makeall-j8)maketestmakeruntest5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;Python安装Caffe模块,依次输入以下指令:

sudoapt-getinstallpython-numpycdcaffesudomakepycaffe-j8sudoexportPYTHONPATH=/caffe/python$PYHTONPATHsource~/.bashrcsudopipinstall-Uscikit-imagesudopipinstalleasydictsudopipinstallprotobuf5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;上述导入系统系统变量的指令中:

sudoexportPYTHONPATH=/caffe/python$PYHTONPATH

请将“/caffe/python”修改为读者的Caffe中的python路径,如caffe安装路径为“/home/caffe/”,那么上述指令则应该改成:sudoexportPYTHONPATH=/home/caffe/python$PYHTONPATH5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;验证是否安装成功(成功则不会出现错误信息),输入以下指令:

pythonimportcaffe5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;如上述步骤出现以下问题:

ImportError:Nomodulenamedcaffe

则检查是否指令输入有误,若确认无误并尝试几次后仍然没有成功,则在终端输入:sudovim~/.bashrc在打开的文件最后面写入:exportPYTHONPATH=~/caffe/python:$PYTHONPATH

“~”号表示caffe所在的根目录关闭文件,在终端写入下面语句,使环境变量生效:source

~/.bashrc5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;最后,打开Makefile.config文件,修改数据格式配置:将:#USE_LEVELDB:=0#USE_LMDB:=0#Thiscodeistakenfrom/sh1r0/caffe-android-lib#USE_HDF5:=0#uncommenttoallowMDB_NOLOCKwhenreadingLMDBfiles(onlyifnecessary)# YoushouldnotsetthisflagifyouwillbereadingLMDBswithany# possibilityofsimultaneousreadandwrite#ALLOW_LMDB_NOLOCK:=15.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;最后,打开Makefile.config文件,修改数据格式配置:修改为:USE_LEVELDB:=1#USE_LMDB:=0#Thiscodeistakenfrom/sh1r0/caffe-android-lib#USE_HDF5:=0#uncommenttoallowMDB_NOLOCKwhenreadingLMDBfiles(onlyifnecessary)# YoushouldnotsetthisflagifyouwillbereadingLMDBswithany# possibilityofsimultaneousreadandwrite

ALLOW_LMDB_NOLOCK:=15.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(1)Makefile.config配置文件的修改与Caffe的编译;再次编译

makeall(或makeall-j8)maketestmakeruntest5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(2)数据集的准备与数据预处理;在caffe/examples/目录下解压数据和脚本文件压缩包mytest.zip得到以下文件内容:5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(2)数据集的准备与数据预处理;classification_data文件夹中的各个子文件夹中图片数据如下所示(以文件夹021为例):5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(2)数据集的准备与数据预处理;在Caffe根目录下运行以下指令进行数据集格式转换:

./examples/mytest/create_leveldb.sh运行完成后,请参考书籍,自行在classification_data目录下查看是否转换成功。5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(3)训练交通标志牌识别模型;在Caffe根目录下运行以下指令进行模型的训练:

./examples/mytest/train_new.sh训练开始后,终端会出现如下日志:提示:按住Ctrl+C停止训练

通常,由于CPU模式下进行训练相当耗时,因此,在迭代几轮观察到正确输出后,读者可停止训练,通过本书给出的训练好的模型“train_iter_2500.caffemodel”进行实验验证。5.1高精度地图实践1基于Caffe的交通标志牌识别实验

实验关键步骤:(3)训练交通标志牌识别模型;将“mytest\test_cls”文件路径下的“train_iter_2500.caffemodel”文件移动到caffe路径下,作为标识牌识别的文件以备用。5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验关键步骤:(4)交通标志牌识别;在mytest/test_cls/目录下运行以下指令进行标识牌识别:

pythonclassification_test.py请注意classification_test.py脚本中所涉及的文件路径是否为本机路径。如不是,请修改。5.1高精度地图实践1基于Caffe的交通标志牌识别实验实验结果:进入mytest/test_cls/目录。打开save_predict_label.txt文件。参考书籍,检查是否预测正确。5.1高精度地图实践2基于PCL的激光点云配准实验通过本实验,你将获得:(1)利用辅助软件CloudCompare查看点云文件的简单操作;(2)Windows(以Win10系统为例)系统下,以VisualStudio2013为编程工具的PCL库的安装;(3)激光点云的可视化、包围盒添加以及配准等激光点云处理技术;5.1高精度地图实践2基于PCL的激光点云配准实验实验基本条件:(1)VisualStudio2013安装包以及CloudCompare软件安装包;(2)用于实验的激光点云文件、包围盒数据文件;(3)PCL库相关的依赖包;环境搭建软件安装激光点云可视化激光点云包围盒添加实验步骤:激光点云配准注意:

实验过程中,每个配置文件以及执行脚本文件中的文件路径请根据本机做相应的修改5.1高精度地图实践2基于PCL的激光点云配准实验实验基本条件:(1)VisualStudio2013安装包以及CloudCompare软件安装包;(2)用于实验的激光点云文件、包围盒数据文件;(3)PCL库相关的依赖包;环境搭建软件安装激光点云可视化激光点云包围盒添加实验步骤:激光点云配准实验结果:元素丰富的彩色道路激光点云有白色包围框的激光点云配准后误差较小的激光点云5.1高精度地图实践2基于PCL的激光点云配准实验Windows系统下CloudCompare软件使用:进入官方网站下载当前版本的软件安装包:/(具体版本以官网发布的为准)5.1高精度地图实践2基于PCL的激光点云配准实验点击红色框中的图标进行下载5.1高精度地图实践2基于PCL的激光点云配准实验双击安装包进行CloudCompare安装包进行安装。安装完成后打开软件可以看到如下界面:5.1高精度地图实践2基于PCL的激光点云配准实验解压PCL_sources文件压缩包,得到以下文件:5.1高精度地图实践2基于PCL的激光点云配准实验在CloudCompare软件中打开PCL_sources中的128.pcd文件(

或者288.pcd):5.1高精度地图实践2基于PCL的激光点云配准实验打开后可看到如下界面,即可用鼠标进行拖拽放大缩小等操作:5.1高精度地图实践2基于PCL的激光点云配准实验以上是关于CloudCompare软件使用的部分,接下来开始用VisualStudio2013进行激光点云配准实验。5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装;准备好依赖库文件压缩包:PCL_dependency,解压后可看到如下文件夹与文件:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——系统环境配置;计算机中依次选择“控制面板”->“系统和安全”->“系统”->“高级系统设置”->“环境变量”,进入系统环境变量配置界面:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——系统环境配置;计算机中依次选择“控制面板”->“系统和安全”->“系统”->“高级系统设置”->“环境变量”,进入系统环境变量配置界面:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——系统环境配置;在系统环境变量配置界面依次选择“系统变量”->“Path”->“编辑”->“新建”,然后输入“PCL”、“boost”、“flann”以及“vtk”这4个依赖库的“bin”文件夹所在路径,最后“确定”并退出编辑:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——系统环境配置;5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;打开安装好的VisualStudio2013,选择“新建项目”:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;也可以在打开安装好的VisualStudio2013工具栏中新建,依次选择“文件”->“新建”->“项目”,创建一个C++空项目(可以自定义项目的名称及位置):5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;成功创建项目后,选中解决方案中的“project1”并右击,进入“属性”,进行配置:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;在属性配置界面中打开“配置管理器”,在配置栏选择该项目的版本,本实验中选择“Release”版。同时,在“活动解决方案平台”的属性中,根据读者计算机的配置,选择相应的版本。如32位版或64位版本。本实验中选择64位。如果平台属性中没有“x64”选项,则单击“新建”,选择“x64”,并在“从此处复制设置”中选择“空”,单击确认后即可看到后图所示的配置窗口:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;完成上述配置后,还需要添加依赖库文件路径。在“配置属性”中依次选择“VC++目录”->“包含目录”->“编辑”,打开编辑的控制面板:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;在编辑的控制面板中,分别将压缩包中的“PCL”、“flann”、“boost”和“vtk”4个文件夹的“include”文件夹路径和“eigen”中的子“eigen”文件夹路径都添加到配置中,并单击确认:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;在下图的界面中,依次选择“VC++目录”->“库目录”->“编辑”,将“PCL”、“boost”、“flann”以及“vtk”4个依赖库的“lib”文件夹路径添加进配置:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;在下图的界面中,依次选择“C/C++”->“附加包含目录”->“编辑”,添加“vtk”的“include”文件夹路径:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;在下图的界面中,依次选择“链接器”->“输入”,并在右边的操作界面依次选择“附加依赖项”->“编辑”,将解压后得到的“release.txt”文件中的内容复制到编辑框中,然后单击“确定”按钮退出:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;在下图的界面中,依次选择“链接器”->“调试”->“生成调试信息”,在下拉框中选择“是(/DEBUG)”:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;在下图的界面中,依次选择“C/C++”->“优化”->“优化”,将优化选项设置成“已禁用(/Od)”:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(1)环境搭建和软件安装——集成开发环境属性配置;在下图的界面中,然后选择“C/C++”->“代码生成”->“运行库”,将其设置为“多线程(/MT)”:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(2)激光点云可视化;准备好程序及数据文件压缩包:PCL_sources。打开上一个步骤中创建的项目,在该项目下选中并右击“源文件”,在出现的菜单中依次选择“添加”->“现有项”,将随书提供的“PCL_sources”压缩文件中的“test.cpp”程序文件添加到项目中。5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(2)激光点云可视化;5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(2)激光点云可视化;5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(2)激光点云可视化;修改test.cpp代码中的pcd点云文件目录。点击开发环境中的按钮进行运行调试。运行结果请参考书籍图5-38和5-39。5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(3)激光点云可视化;选中test.cpp文件,鼠标右键选择移除。在工程源文件目录种添加PCL_sources中的test2.cpp文件。修改test2.cpp代码文件中的pcd点云文件目录和feature_128.txt文件目录。点击开发环境中的按钮进行运行调试。运行结果请参考书籍图5-41。5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(4)激光点云配准;选中test2.cpp文件,鼠标右键选择移除。在工程源文件目录种添加PCL_sources中的main.cpp文件和Process.cpp文件。在工程头文件目录种添加PCL_sources中的Process.h文件。上述文件添加完成后,项目列表为:5.1高精度地图实践2基于PCL的激光点云配准实验实验步骤:(4)激光点云配准;修改Process.cpp代码中的pcd点云文件目录和feature.txt文件目录。点击开发环境中的按钮进行运行调试。运行结果请参考书籍图5-47至5-50。5.2基于Apollo平台的定位实践1Apollo简介与配置2GNSS/IMU定位实验3LiDAR/IMU定位实验4多传感器融合定位实验5自定义定位实验5.2基于Apollo平台的定位实践Apollo平台是应用于汽车行业及自动驾驶领域的一个的开源项目,由百度公司在2017年4月19日发布,旨在向汽车行业及自动驾驶领域的合作伙伴提供一个开放、完整、安全的软件平台,帮助开发者结合车辆和信息系统,快速搭建一套完整的自动驾驶系统。1Apollo简介与配置5.2基于Apollo平台的定位实践Apollo3.5软件架构1Apollo简介与配置5.2基于Apollo平台的定位实践构建开发环境的前期条件:(1)安装Ubuntu14.04版本或以上的系统;(2)安装设备要求至少6GB内存和50GB硬盘存储容量;(3)安装Docker容器及相应的代码编辑器;(4)安装GitLfs。官网源码下载拉取并进入Docker容器拉取并进入Docker容器编译Apollo工程环境搭建步骤:Apollo工程搭建:1Apollo简介与配置5.2基于Apollo平台的定位实践初始化Git:gitinitApollo源码下载:gitlfsclone/ApolloAuto/apollo.git检查master分支:gitcheckoutmaster下载master分支并对其进行同步:gitlfsfetch-allgitpush-foriginmaster拉取

专用于Apollo工程的Docker镜像包并进行环境配置:bashdocker/scripts/dev_start.sh进入容器环境:bashdocker/scripts/dev_into.sh 1Apollo简介与配置5.2基于Apollo平台的定位实践搭建Apollo工程:bashapollo.shbuild--local_resources2048,2.0,1.0启动HMI模式查看人机交互界面效果来验证Apollo工程是否搭建成功:bashscripts/bootstrap.sh打开浏览器,在地址栏输入http://localhost:88881Apollo简介与配置5.2基于Apollo平台的定位实践1Apollo简介与配置5.2基于Apollo平台的定位实践启动CyberRT环境:source/apollo/cyber/setup.bash播放数据包:cyber_recorderplay-fdemo_3.5.record--loop1Apollo简介与配置5.2基于Apollo平台的定位实践1Apollo简介与配置5.2基于Apollo平台的定位实践

Apollo定位模块及配置:

(1)将数据包里的参数文件放到定位模块参数配置文件夹下cp/apollo/params/ant_imu_leverarm.yaml/apollo/modules/localization/msf/params/gnss_params/ cp/apollo/params/velodyne64_novatel_extrinsics_example.yaml/apollo/modules/localization/msf/params/velodyne_params/cp/apollo/params/velodyne64_height.yaml/apollo/modules/localization/msf/params/velodyne_params/ 1Apollo简介与配置5.2基于Apollo平台的定位实践

Apollo定位模块及配置:

(1)将数据包里的参数文件放到定位模块参数配置文件夹下参数意义:ant_imu_leverarm.yaml:杆臂值参数,表示GNSS天线相对IMU的距离;velodyne64_novatel_extrinsics_example.yaml:表示LiDAR相对IMU的外参;velodyne64_height.yaml:表示LiDAR相对地面的高度。1Apollo简介与配置5.2基于Apollo平台的定位实践

Apollo定位模块及配置:(2)配置地图路径:在/apollo/modules/localization/conf/localization.conf配置文件中配置地图路径:#Redefinethemap_diringlobal_flagfile.txt--map_dir=/apollo1Apollo简介与配置5.2基于Apollo平台的定位实践L4/5级自动驾驶汽车定位系统精度指标要求项目指标理想值位置精度误差均值<10cm位置鲁棒性最大误差<30cm姿态精度误差均值<0.5度姿态鲁棒性最大误差<2.0度1Apollo简介与配置5.2基于Apollo平台的定位实践对比指标:error:平面误差,单位:米errorlon:车前进方向的误差,单位:米errorlat:车横向方向的误差,单位:米erroralt:车高度的误差,单位:米errorroll:翻滚角误差,单位:度errorpit:俯仰角误差,单位:度erroryaw:偏航角误差,单位:度mean:误差的平均值std:误差的标准差max:误差的最大值<30cm:距离误差少于30cm的帧所占的百分比<1.0d:角度误差小于1.0d的帧所占的百分比con_frame():满足括号内条件的最大连续帧数1Apollo简介与配置5.2基于Apollo平台的定位实践原理:采用了GNSS初始观测数据、星历信息以及IMU结合的RTK方法计算出定位结果。实验目的:了解GNSS/IMU定位的基本流程,完成GNSS/INU定位的实验。开启GNSS标志位关闭LiDAR标志位启动CyberRT环境播放并记录数据包分析定位结果实验步骤:2

GNSS/IMU定位实验5.2基于Apollo平台的定位实践参数配置:--enable_lidar_localization=false--lidar_debug_log_flag=false --gnss_debug_log_flag=ture--gnss_only_init=false2

GNSS/IMU定位实验5.2基于Apollo平台的定位实践指令配置:启动定位模块:cyber_launchstartmodules/localization/launch/msf_localization.launch启动定位数据输出记录程序:pythonscripts/record_bag.py播放数据包中的实验数据:cyber_recorderplay-f/apollo/record/*.record

2

GNSS/IMU定位实验5.2基于Apollo平台的定位实践指令配置:启动CyberRT运行环境:source/apollo/cyber/setup.bash启动定位模块cyber_launchstartmodules/localization/launch/rtk_localization.launch启动定位数据输出记录程序pythonscripts/record_bag.py2

GNSS/IMU定位实验5.2基于Apollo平台的定位实践指令配置:播放数据包里的实验数据cyber_recorderplay-f/apollo/records/*.record运行数据可视化工具cyber_launchstartmodules/localization/launch/msf_localization_with_visualizer.launch2

GNSS/IMU定位实验定位模块接收以下topic并进行可视化绘制:/apollo/localization/msf_gnss/apollo/localization/pose5.2基于Apollo平台的定位实践GNSS/IMU定位可视化结果示例:2

GNSS/IMU定位实验5.2基于Apollo平台的定位实践指令配置:关闭定位模块cyber_launchstopmodules/localization/launch/rtk_localization.launch关闭数据记录程序pyhtonscripts/record_bag.py--stop查看记录下来的定位数据,运行数据分析脚本bash/apollo/scripts/msf_local_evaluation.sh/apollo/data/bag/2019-02-27-09-44-03//apollo/modules/localization/msf/params/gnss_params/ant_imu_leverarm.yaml2

GNSS/IMU定位实验5.2基于Apollo平台的定位实践GNSS/IMU定位输出结果示例:2

GNSS/IMU定位实验5.2基于Apollo平台的定位实践原理:将LiDAR实时扫描的点云数据与高精度点云地图数据匹配,结合IMU获取车辆在高精度点云地图的具体位置。实验目的:了解LiDAR/IMU定位的基本流程,完成LiDAR/INU定位的实验。开启LiDAR标志位关闭GNSS标志位启动CyberRT环境播放并记录数据包分析定位结果实验步骤:3

LiDAR/IMU定位实验5.2基于Apollo平台的定位实践参数配置:--enable_lidar_localization=ture--lidar_debug_log_flag=ture --gnss_debug_log_flag=false--gnss_only_init=ture3

LiDAR/IMU定位实验5.2基于Apollo平台的定位实践指令配置:启动定位模块:cyber_launchstartmodules/localization/launch/msf_localization.launch启动定位数据输出记录程序:pythonscripts/record_bag.py播放数据包中的实验数据:cyber_recorderplay-f/apollo/record/*.record

3

LiDAR/IMU定位实验5.2基于Apollo平台的定位实践指令配置:启动CyberRT运行环境:source/apollo/cyber/setup.bash启动定位模块cyber_launchstartmodules/localization/launch/msf_localization.launch启动定位数据输出记录程序pythonscripts/record_bag.py3

LiDAR/IMU定位实验5.2基于Apollo平台的定位实践指令配置:播放数据包里的实验数据cyber_recorderplay-f/apollo/records/*.record运行数据可视化工具cyber_launchstartmodules/localization/launch/msf_localization_with_visualizer.launch3

LiDAR/IMU定位实验定位模块接收以下topic并进行可视化绘制:/apollo/localization/msf_lidar/apollo/localization/pose5.2基于Apollo平台的定位实践LiDAR/IMU定位可视化结果示例:3

LiDAR/IMU定位实验5.2基于Apollo平台的定位实践指令配置:关闭定位模块cyber_launchstopmodules/localization/launch/msf_localization.launch关闭数据记录程序pyhtonscripts/record_bag.py--stop查看记录下来的定位数据,运行数据分析脚本bash/apollo/scripts/msf_local_evaluation.sh/apollo/data/bag/2019-01-05-12-46-40/3

LiDAR/IMU定位实验5.2基于Apollo平台的定位实践LiDAR/IMU定位输出结果示例:3

LiDAR/IMU定位实验5.2基于Apollo平台的定位实践原理:将LiDAR、GNSS和IMU三种定位方式进行优势互补,利用拓展卡尔曼滤波进进行融合,从而提高定位的稳定性及鲁棒性。实验目的:了解多传感器融合定位的基本流程,完成多传感器融合定位的实验。开启LiDAR标志位开启GNSS标志位启动CyberRT环境播放并记录数据包分析定位结果实验步骤:4多传感器融合定位实验5.2基于Apollo平台的定位实践参数配置:--enable_lidar_localization=ture--lidar_debug_log_flag=ture --gnss_debug_log_flag=ture--gnss_only_init=flase4多传感器融合定位实验5.2基于Apollo平台的定位实践指令配置:启动定位模块:cyber_launchstartmodules/localization/launch/msf_localization.launch启动定位数据输出记录程序:pythonscripts/record_bag.py播放数据包中的实验数据:cyber_recorderplay-f/apollo/record/*.record

4多传感器融合定位实验5.2基于Apollo平台的定位实践指令配置:启动CyberRT运行环境:source/apollo/cyber/setup.bash启动定位模块cyber_launchstartmodules/localization/launch/msf_localization.launch启动定位数据输出记录程序pythonscripts/record_bag.py4多传感器融合定位实验5.2基于Apollo平台的定位实践指令配置:播放数据包里的实验数据cyber_recorderplay-f/apollo/records/*.record运行数据可视化工具cyber_launchstartmodules/localization/launch/msf_localization_with_visualizer.launch4多传感器融合定位实验定位模块接收以下topic并进行可视化绘制:/apollo/localization/msf_gnss/apollo/localization/msf_lidar/apollo/localization/pose5.2基于Apollo平台的定位实践多传感器融合定位可视化结果示例:4多传感器融合定位实验5.2基于Apollo平台的定位实践指令配置:关闭定位模块cyber_launchstopmodules/localization/launch/msf_localization.launch关闭数据记录程序pyhtonscripts/record_bag.py--stop查看记录下来的定位数据,运行数据分析脚本bash/apollo/scripts/msf_local_evaluation.sh/apollo/data/bag/2019-02-27-09-44-03//apollo/modules/localization/msf/params/gnss_params/ant_imu_leverarm.yaml4多传感器融合定位实验5.2基于Apollo平台的定位实践多传感器融合定位输出结果示例:4多传感器融合定位实验5.2基于Apollo平台的定位实践实验目的:掌握在Apollo定位模块中添加自定义定位方法的方法。添加自定位算法的代码进定位模块启动CyberRT环境播放并记录数据包分析定位结果实验步骤:5自定义定位实验5.2基于Apollo平台的定位实践添加自定义算法至定位模块(假设自定位方法为“FOO”):(1)使用VScode打开“modules/localization/proto/”目录下的“localization_to”文件,在“enumLocalizationType”中添加FOO定位选择项,同时将定位类型设置为FOO定义的类型,定义FOO=2,定位类型localization_type=2。messageLocalizationConfig{enumLocalizationType{RTK=0;MSF=1;

FOO=2;

};optionalLocalizationTypelocalization_type=2[default=RTK];}5自定义定位实验5.2基于Apollo平台的定位实践(2)在

“modules/localization/”目录新建一个文件夹,将自定义定位方法的文件放至该文件夹下,分别命名为“foo_localization_test.cc”、“foo_localization.cc”、“foo_localization.h”。5自定义定位实验添加自定义算法至定位模块(假设自定位方法为“FOO”):5.2基于Apollo平台的定位实践(3)打开“/apollo/modules/localization”目录下的“localization.cc”文件,新建自定义定位方法的类,继承自“LocalizationBase”类。**@classFoolocalization**@briefgenerateLocalizationinfobasedonFOO*ClassFOOLocalization:publicLocalizationBase{public:FOOLocalization();virtual~FOOLocallzation();}5自定义定位实验添加自定义算法至定位模块(假设自定位方法为“FOO”):5.2基于Apollo平台的定位实践(4)在(3)建立的文件夹下的链接文件中添加“foo_localization.cc.cc”文件和“foo_localization.h”文件cc_library(name="rtk_localization_component_lib",srcs=["foo_localization.cc","rtk_localization_component.cc",],hdrs=["foo_localization.h","rtk_localization_component.h",],5自定义定位实验添加自定义算法至定位模块(假设自定位方法为“FOO”):5.2基于Apollo平台的定位实践(5)为了在定位模块中使用FOO。打开“/apollo/modules/localization”目录下的“localization.cc”文件,在Localization::RegisterLocalizationMethods()中注册“FOOLocalization”。localization_factory_.Register(LocalizationConfig::FOO,[]()->LocalizationBase*{returnnewFooLocalization();});5自定义定位实验添加自定义算法至定位模块(假设自定位方法为“FOO”):5.2基于Apollo平台的定位实践(6)FOO定位需要设置输出数据比较文件,才能有效分析数据的有效性,打开“/apollo/scripts/”目录下的“msf_local_evaluation.sh”文件,添加“FOO_LOC_FILE”定义。GNSS_LOC_FILE="gnss_loc.tx

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论