上一次的分享里,我介绍了GPS的原理(三角定位)及特性(精度、频率),同时也从无人车控制的角度,讨论了为什么仅有GPS无法满足无人车的定位要求。

为了能让无人驾驶系统更高频率地获取定位信息,就必须引入频率更高的传感器。这就是这一次内容的主角——IMU(Inertial Measurement Unit)惯性测量单元。

下图就是百度Apollo计划推荐使用的IMU——NovAtel SPAN-IGM-A1。

图片出处:github.com

GPS得到的经纬度信息作为输入信号传入IMU,IMU再通过串口线与控制器相连接,以此获取更高频率的定位结果。

IMU的原理

当我们晚上回到家,发现家里停电时,眼睛在黑暗中什么都看不见的情况下,只能根据自己的经验,极为谨慎地走小碎步,并不断用手摸周围的东西(比如冰箱),用以确定自己所在的位置。

IMU的原理和黑暗中走小碎步很相似。

在黑暗中,由于自己对步长的估计和实际走的距离存在误差,走的步数越来越多时,自己估计的位置与实际的位置相差会越来越远。

就像下图所示。

走第一步时,估计位置(黑人所在位置)与实际位置(白人所在位置)还比较接近;但随着步数增多,估计位置与实际位置的差别越来越大。

图中的小人只朝一个方向移动,是一维的。根据此方法推广到三维,就是惯性测量单元的原理。

学术上的语言是:以牛顿力学定律为基础,通过测量载体在惯性参考系的加速度,将它对时间进行积分,且把它变换到导航坐标系中,就能够得到在导航坐标系中的速度、偏航角和位置等信息。

IMU的特性

小到每天使用的手机,大到导弹、宇宙飞船都会使用到IMU,区别在于成本和精度。

根据不同的使用场景,对IMU的精度有不同的要求。精度高,也意味着成本高。

IMU的精度、价格和使用场景,如下图所示。

从图中可以看出,普通的消费级电子产品所使用到的IMU都是低精度且十分廉价的IMU,这种IMU普遍应用于手机、运动手表中。常用于记录行走的步数。

而无人驾驶所使用到的IMU,价格从几百块到几万块不等,取决于此无人驾驶汽车对定位精度的要求。

精度更高的IMU会用于导弹或航天飞机。就以导弹为例,从导弹发射到击中目标,宇航级的IMU可以达到极高精度的推算,误差甚至可以小于一米。

除了精度和成本的特性外,IMU还有两个十分关键的特性。其一是更新频率高,工作频率可以达到100Hz以上。其二是短时间内的推算精度高,不会有太大的误差。

在上次有关GPS的分享中,我们提到GPS的定位频率只有10Hz,而IMU的两个特性刚好可以弥补GPS的劣势,和GPS组成定位的黄金搭档。

黄金搭档:GPS + IMU

回到最开始的故事。晚上回到家,发现家里停电时,眼睛在黑暗中什么都看不见的情况下,只能根据自己的经验,极为谨慎地走小碎步,并不断用手摸周围的东西(比如冰箱),用以确定自己所在的位置。

在这个过程中,GPS的作用就类似于摸到的东西之后对自己的位置进行的修正,IMU的作用就类似于小碎步,不对地对自己的位置进行推算。

不断的修正和不断的推算,就能保证自己的定位相对稳定。如下图所示。

在无人驾驶系统中,GPS的更新频率一般为10Hz,IMU的更新频率一般为100Hz。

两个传感器共同工作时,可以给出频率100Hz的定位输出。下图是两传感器数据融合的原理图。

跑在控制器上的软件对信息的处理流程在时间维度上类似下图。在0~100ms的周期中,使用IMU进行9次位置的估计,待新的GPS定位数据进来时,则进行修正,以此实现高频率的定位结果输出。

就这样,GPS与IMU便相辅相成地实现了无人车的稳定定位。

有了100Hz的稳定定位,无人车在处理路径跟随问题时,就能像下图一样,保持极高频率的定位和控制。每走一小步,便重新进行方向盘转角的计算,进而控制无人车沿着既定的轨道行驶。

小结

上面的分享用生活中简单的例子介绍了IMU的基本原理,并对IMU的特性(精度、成本、频率)进行了讨论,最后探讨了GPS如何与IMU配合完成无人车的定位功能。

解决了无人车的第一大问题“我在哪”,之后就要开始讨论“我要去哪”和“我怎么去”的问题。

因此,在接下来的分享中,我会着重介绍感知相关的传感器(相机、激光雷达等)。

python无人驾驶_无人驾驶技术入门(四):无人车传感器 IMU 深入剖析相关推荐

  1. 激光雷达+imu_无人驾驶技术入门(四):无人车传感器 IMU 深入剖析

    上一次的分享里,我介绍了GPS的原理(三角定位)及特性(精度.频率),同时也从无人车控制的角度,讨论了为什么仅有GPS无法满足无人车的定位要求. 为了能让无人驾驶系统更高频率地获取定位信息,就必须引入 ...

  2. 无人驾驶技术入门(四)| 百度无人车传感器 IMU 深入剖析

    上一次的分享里,我介绍了GPS的原理(三角定位)及特性(精度.频率),同时也从无人车控制的角度,讨论了为什么仅有GPS无法满足无人车的定位要求. 为了能让无人驾驶系统更高频率地获取定位信息,就必须引入 ...

  3. 自动驾驶 无人驾驶技术入门(四):无人车传感器 IMU 深入剖析

    转自:https://www.d1ev.com/kol/65579 上一次的分享里,我介绍了GPS的原理(三角定位)及特性(精度.频率),同时也从无人车控制的角度,讨论了为什么仅有GPS无法满足无人车 ...

  4. 疲劳驾驶样本集_无人驾驶技术入门(十六)| 初识深度学习之交通标志分类

    前言 在上两期的<无人驾驶技术入门>中,我以车道线检测为例,介绍了计算机视觉领域一些基本的算法.应用图像处理算法和调试算法阈值,就能实现车道线的检测和跟踪. 车道线检测.跟踪的项目,主要是 ...

  5. 无人驾驶技术入门(三)| 百度无人车传感器 GPS 深入剖析

    上一次的分享里,我对百度 Apollo 计划的技术框架做了介绍,如图. Apollo1.0 封闭场地循迹自动驾驶 如果要完成 Apollo 1.0 的"封闭场地寻迹自动驾驶"功能, ...

  6. 无人车传感器 IMU与GPS数据融合进行定位机制

    前言 上一次的分享里,我介绍了GPS的原理(三角定位)及特性(精度.频率),同时也从无人车控制的角度,讨论了为什么仅有GPS无法满足无人车的定位要求. 为了能让无人驾驶系统更高频率地获取定位信息,就必 ...

  7. 无人驾驶技术入门(一):百度无人驾驶的引路人

    各位老铁好!无人驾驶技术入门的第一讲开课啦!今天的课程我会介绍一位来自旧金山的创业公司,他们曾是百度无人驾驶的引路人. 百度在2017年9月发布了Apollo 1.5,可以实现固定车道的自动驾驶功能. ...

  8. 无人驾驶技术入门(一)| 百度无人驾驶的引路人

    前言 各位老铁好!无人驾驶技术入门(硬件篇)的第一讲开课啦! 今天的课程我会介绍一个来自旧金山的创业公司,它曾是百度无人驾驶的引路人. 正文 百度在今年7月和9月分别发布了Apollo 1.0和Apo ...

  9. SLAM 无人车融合 IMU 前与 融合 IMU 后的实测效果演示

    SLAM 无人车融合 IMU 前与 融合 IMU 后的实测效果演示 SLAM 无人车融合IMU 前后的效果对比

最新文章

  1. 一步一步教你如何向ALEXA提交网站介绍信息
  2. 用MySQL创建“江湖”数据库
  3. qt调用mysql加密接口_Qt实现客户端/服务器端登录验证|数据传输使用md5加密 | 学步园...
  4. 程序员应该如何更有效率
  5. 最大权闭合子图(最小割)
  6. 产品经验谈:产品经理需要熟知几种常用思维模型
  7. 两张图告诉你tnsnames.ora 的配置详解
  8. 怎样改变计算机桌面的特效主题,电脑桌面主题、图片怎么设置的技巧大全
  9. Nexus6P 设置Debug模式
  10. C语言——格式化打印printf(常用整理)
  11. 4399ATAPI讲解操作事件篇
  12. python django文档_翻译:Django官方文档-前言
  13. COVID-19 抗原自检试剂盒行业研究及十四五规划分析报告
  14. 苹果电脑基于Android File Transfer for mac连接Android设备
  15. 道一云与畅捷通T+对接集成获取报销信息列表=>凭证创建
  16. 云计算:SaaS、PaaS、IaaS、CaaS并不神秘
  17. 一篇文章带你弄懂乐观锁与悲观锁,CAS原子性,synchronized底层原理
  18. 深度链接 Deep Link 开发遇到的坑
  19. 经典计算机基础学科教程推荐[转自:海枫的专栏]
  20. 【proc】使用proc_create_data函数在proc下创建节点

热门文章

  1. 苹果/Mac电脑怎么卸载软件?软件卸载不了怎么办?
  2. 客户虐我千百遍,我待客户如初恋
  3. wi-fi_Google语音正在测试Wi-Fi呼叫,无需呼叫转移
  4. 用java编写连连看_用java语言编写连连看游戏
  5. MyCat (一) Mycat的安装
  6. 浅析MOS管开关速度影响因素-KIA MOS管
  7. NPL基础入门之新闻本分类赛题理解Test1
  8. server接收dtu透传代码_深入ASP.NET Core源代码之 - Web Server Kestrel
  9. oracle数据库extract,Oracle中extract()函数
  10. 讲一点有技术含量的东西(三)