0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

教你如何在本地运行多传感器融合定位模块

YB7m_Apollo_Dev 来源:cg 2018-12-13 10:34 次阅读

定位技术横跨好几个专业,包括测绘、导航、计算机视觉知识、以及点云处理的知识。业界所说的“多传感器融合”,都是指对摄像头、激光雷达、毫米波雷达、超声波雷达等多种传感器各自分别收集到的数据所做的「数据融合」。

其中,Apollo3.0多传感器融合定位模块的框架有:

定位模块依赖的硬件以及数据,包括惯性测量单元 IMU、车端天线、基站、LiDAR、以及定位地图;

GNSS定位以及激光点云定位模块,GNSS定位(基站和车端天线辅助)输出位置及速度信息,点云定位(LiDAR和定位地图)输出位置及航向角信息;

融合框架:惯性导航解算、Kalman滤波(卡尔曼滤波器是核心模块);融合定位输出是一个6-dof的位置和姿态,以及协方差矩阵,其结果会反过来用于GNSS定位和点云定位的预测。

由于无人车的感知和决策能力并没有达到像「人」一样聪明的程度,而定位系统可以与高精地图配合提供静态场景感知,可将感知得到的动态物体正确放入静态场景,而位置和姿态用于路径规划和车辆控制。因此定位系统对于无人驾驶至关重要。

In brief,一个无人汽车感知系统成功并不能保证整个系统成功,而感知系统有瑕疵足以让使用它的软件工程师持续陷入苦恼。

对大多数涉足自动驾驶公司来说,搞定一套传感器方案,这个看似简单的工作,却往往需要耗费一个小团队至少6-8个月的宝贵研发时间,才能勉强做到“不拖后腿”,而这又仅仅是“重复发明轮子”的一个过程。

百度Apollo所开发的自动驾驶套件已可做到在硬件层面就将摄像头、激光雷达集成到一起,然后再将采集到的数据统一输送到计算平台。

Apollo作为一个开放的平台,目的是将开发者从繁琐的重复性工作中解放出来,更加专注于算法迭代本身,加快自动驾驶技术的迭代速度,推进整个无人驾驶行业的进程。面对复杂多变、快速迭代的开发环境,只有开放才会带来进步,Apollo社区正在被开源的力量唤醒。

从GitHub网站下载Apollo源代码

按照教程设置Docker环境并搭建Apollo工程

从Apllo数据平台下载多传感器融合定位数据(仅限美国地区)

为了使定位模块正确运行,需要对地图路径和传感器外参进行配置。假设下载的定位数据的所在路径为DATA_PATH。在进行以下步骤前,首先确定你在docker容器中。

2.1 配置传感器外参:

将定位数据中的传感器外参拷贝至指定文件夹下。

cpDATA_PATH/params/ant_imu_leverarm.yaml/apollo/modules/localization/msf/params/gnss_params/cpDATA_PATH/params/velodyne64_novatel_extrinsics_example.yaml/apollo/modules/localization/msf/params/velodyne_params/cpDATA_PATH/params/velodyne64_height.yaml/apollo/modules/localization/msf/params/velodyne_params/

各个外参的意义:

ant_imu_leverarm.yaml: 杆臂值参数,GNSS天线相对Imu的距离

velodyne64_novatel_extrinsics_example.yaml:Lidar相对Imu的外参

velodyne64_height.yaml: Lidar相对地面的高度

2.2 设置地图路径:

在/apollo/modules/localization/conf/localization.conf中添加关于地图路径的配置:

#Redefinethemap_diringlobal_flagfile.txt--map_dir=DATA_PATH

这将会覆盖global_flagfile.txt中的默认值。

./scripts/localization.sh

定位程序将在后台运行,可以通过以下命令进行查看。

ps-e|greplocalization

在/apollo/data/log目录下,可以看到定位模块输出的相关文件。

localization.INFO : INFO级别的log信息

localization.WARNING : WARNING级别的log信息

localization.ERROR : ERROR级别的log信息

localization.out : 标准输出重定向文件

localizaiton.flags : 启动localization模块使用的配置

cdDATA_PATH/bag rosbagplay*.bag

从播放数据到定位模块开始输出定位消息,大约需要30s左右。

5.1记录定位结果

该脚本会在后台运行录包程序,并将存放路径输出到终端上。

./scripts/record_bag.sh

5.2可视化定位结果

./scripts/localization_online_visualizer.sh

该可视化工具首先根据定位地图生成用于可视化的缓存文件,存放在/apollo/data/map_visual目录下。

然后接收以下topic并进行可视化绘制。

/apollo/sensor/velodyne64/compensator/PointCloud2

/apollo/localization/msf_lidar

/apollo/localization/msf_gnss

/apollo/localization/pose

5.3可视化效果如下:

如果发现可视化工具运行时卡顿,可使用如下命令重新编译可视化工具:

cd/apollo bazelbuild-copt//modules/localization/msf/local_tool/local_visualization/online_visual:online_local_visualizer

编译选项-c opt优化程序性能,从而使可视化工具可以实时运行。

./scripts/localization.shstop

如果之前有运行步骤5的录包脚本,还需执行

./scripts/record_bag.sh stop

假设步骤5中录取的数据存放路径为OUTPUT_PATH,杆臂值外参的路径为ANT_IMU_PATH

7.1 运行脚本:

./scripts/msf_local_evaluation.shOUTPUT_PATHANT_IMU_PATH

该脚本会以RTK定位模式为基准,将多传感器融合模式的定位结果进行对比。注意只有在GNSS信号良好,RTK定位模式运行良好的区域,这样的对比才是有意义的。

7.2 获得如下统计结果:

可以看到三组统计结果,第一组是组合导航(输出频率200hz)的统计结果,第二组是点云定位(输出频率5hz)的统计结果,第三组是GNSS定位(输出频率约1hz)的统计结果。

表格中各项的意义:

error: 平面误差,单位为米

error lon: 车前进方向的误差,单位为米

error lat: 车横向方向的误差,单位为米

error roll: 翻滚角误差,单位为度

error pit: 俯仰角误差,单位为度

error yaw: 偏航角误差,单位为度

mean: 误差的平均值

std: 误差的标准差

max: 误差的最大值

<30cm: 距离误差少于30cm的帧所占的百分比

<1.0d: 角度误差小于1.0d的帧所占的百分比

con_frame(): 满足括号内条件的最大连续帧数

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2525

    文章

    48069

    浏览量

    739998
  • LIDAR
    +关注

    关注

    10

    文章

    305

    浏览量

    28992

原文标题:技术文档│本地如何运行多传感器融合定位模块

文章出处:【微信号:Apollo_Developers,微信公众号:Apollo开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【labview毕业论文】基于labview的传感器信息采集平台

    `1.《龙哥手把手教您LabVIEW视觉设计(自学版)》2. 《龙哥手把手教你学视觉-运动篇》— 视觉工程师进阶必学传感器信息融合是智能交通系统中车辆
    发表于 12-31 10:48

    传感器信息融合技术

    传感器信息融合技术
    发表于 08-15 20:09

    【TL6748 DSP申请】基于TMS320C6748的传感器数据融合算法实现

    精度有待提高,本项目是基于传感器融合算法,通过采用MEMS运动传感器,使用TI的C6000系列DSP实现对传感器采集数据的
    发表于 09-10 11:13

    [分享]传感器数据融合理论及应用

    本帖最后由 srxh 于 2015-12-7 23:19 编辑 讲传感器数据融合技术,可参考下,拓展我们的系统构架、优化系统算法主要内容:数据融合算法、
    发表于 12-07 22:52

    基于传感器数据融合的智能机器人设计

    。  传感器数据融合技术有许多优点:增加了测量的维数和置信度;改进了探测性能;扩展了空间和时间的覆盖范围;改进了系统的可靠性和可维护性;系统容错性好,运行鲁棒性强;系统内资源共享,可
    发表于 11-01 15:08

    深度解析传感器信息融合技术

         所谓传感器信息融合(Multi-sensor Information Fusion,MSIF),就是利用计算机技术将来自多传感器
    发表于 11-07 10:53

    传感器信息融合技术解析

    导读:所谓传感器信息融合(Multi-sensor Information Fusion,MSIF),就是利用计算机技术将来自多传感器
    发表于 11-07 11:06

    基于ARM的传感器信息融合在工业控制中的应用

    过程需同时涉及多个信息,特别是各信息间的联系,信息的有机组合蕴涵的信息特征以及信息的整体状况,并需要根据综合状况所描述的过程运行特点进行控制。  1 传感器信息融合  1.1
    发表于 11-12 10:49

    传感器融合定位在高速铁路的应用

    GPS/DR/MM组合定位的方式,利用传感器合定位技术信息互补的特点,采用卡尔曼滤波将所得信息进行数据融合,得到比单一
    发表于 11-14 15:12

    传感器信息融合使用的处理是单片机还是电脑?

    传感器信息融合问题,我刚刚查了百度,但是说的全是理论。我想问的是:1、传感器信息融合使用的处
    发表于 08-26 08:07

    基于Android的传感器信息融合技术有哪些应用

    本文介绍基于Android的传感器信息融合技术在气溶胶自动化检测中的应用。
    发表于 05-11 06:22

    5G融合定位价值何在?5G融合定位有什么优势?

    丁海煜指出,5G本身具备一定的定位能力,即带内定位能力,这是5G标准体系的一部分。但这一能力不能解决所有的定位问题,因而需要5G+不同的技术融合定位。一方面是To C的服务,例如室内导
    的头像 发表于 10-23 09:56 3832次阅读

    创新融合定位系统为什么是最优定位解决方案

    什么是创新融合定位系统?那么多定位技术可用,四相科技为什么还要开发多维融合定位技术?目前蓝牙室内定位和UWB定位技术应用最为广泛,但是场景复
    的头像 发表于 11-12 10:50 1340次阅读

    蓝牙+北斗融合定位技术的原理、应用和发展趋势

    蓝牙北斗融合定位是一种新型的定位技术,它将蓝牙技术和北斗卫星技术有机地结合起来,实现了高精度定位。蓝牙北斗融合定位技术可以广泛应用于各种领域。本文将从以下几个方面介绍蓝牙北斗
    的头像 发表于 05-22 18:13 1691次阅读

    自动驾驶定位方式:RTK定位与激光融合定位

    : 实时动态载波相位差分技术,在GNSS信号良好的情况下可以实现厘米级精度定位。 MSF(Multi-Sensor Fusion)定位,即融合定位: 结合 GNSS + IMU+ Lidar 等多
    发表于 06-02 16:03 0次下载
    自动驾驶<b class='flag-5'>定位</b>方式:RTK<b class='flag-5'>定位</b>与激光<b class='flag-5'>融合定位</b>