上一次的分享里,我对百度 Apollo 计划的技术框架做了介绍,如图。

Apollo1.0 封闭场地循迹自动驾驶

如果要完成 Apollo 1.0 的“封闭场地寻迹自动驾驶”功能,需要解决一个重要的问题:我(无人车)在哪?

“我在哪”这个问题,在 Apollo 1.0 的架构中完全依赖 GPS(全球定位系统) 和 IMU(惯性测量单元)。

今天的分享,我会用尽可能简单的语言,介绍GPS的原理及特性,并谈一谈,为什么无人车的定位不仅要依赖GPS,还依赖IMU。我会在下次的分享中,着重地介绍IMU的功能。


正文

GPS定位原理很简单

GPS是全球定位系统(Global Position System)的简称,常见于汽车、手机中。民用GPS的定位精度在10~20米之间,这是为什么用手机的GPS定位,有时候明明在陆地上,却被认为在河里的原因。

GPS定位的原理很简单,叫做三角定位法(Triangulation)。原理如图:

图片出处:https://www.nationalgeographic.org/photo/triangulation-sized/

装在无人车上的GPS接收机,首先量测无线电信号到达卫星的传播时间,再将传播时间乘以光速,即可得到当前GPS接收机到达卫星的距离,有了距离,就可以根据几何原理求得位置了。

图片出处:http://slideplayer.com/slide/5717261/

若已知GPS接收机到达1号卫星和3号卫星的距离,那么1号和3号卫星根据距离产生两个球体(图中绿色和蓝色的球体),两个球体的相交的部分为圆形,该圆形与地球表面靠近的任何一个点都有可能是当前无人车(GPS接受装置)的位置。

因此仅根据这两个距离信息,还无法确定当前无人车的具体位置。此时通过引入第三个卫星的距离,就能较为准确地确定无人车的位置。这就是三角定位法的原理。

GPS定位精度不太够

根据上面的介绍,只要得到无线电信号达到三颗卫星的传播时间,似乎就能计算得到无人车的位置。

可是工程问题永远没有理论计算那么简单!

空旷云层稀薄的情况下,无线电信号的传播时间乘以光速确实与实际的距离接近。

但无线电信号的传播时间多少会受到传播介质的影响的。诸如云层的稀薄情况、天气好坏等都会影响到传播时间,进而影响到距离的计算。距离不准,得到的定位结果当然也不准了。

为了降低天气、云层对定位的影响,工程师们引入了差分GPS的技术。如下图所示:

图片出处:http://what-when-how.com/gps-with-high-rate-sensors/carrier-smoothed-code-gps/

在地面上建基站(Base Station),基站在建立时,可以得到基站的精确位置信息(经纬度)。同时基站具有接收卫星信号的功能。

当基站的GPS接收机与车载GPS接收机相距较近时(<30km),可以认为两者的GPS信号通过的是同一片大气区域,即两者的信号误差基本一致。根据基站的精确位置信号传播的时间,反推此时天气原因导致的信号传播误差,之后利用该误差修正车载的GPS信号,即可降低云层、天气等对信号传输的影响。

使用差分GPS技术,可以使无人车的定位精度从10米级别提升至米级。

差分GPS可以解决定位的精度问题,但是解决不了遮挡反射问题。

当无人车在高楼林立的环境中行驶时,这就会发生如下问题。

图片出处:https://www.e-education.psu.edu/geog862/node/1721

1.信号丢失

GPS接收机在高楼周围,很容易失去某一方向、所有的卫星信号,仅依靠另外三面的卫星信号求得的定位结果,在精度上很难满足无人驾驶的需求。

2.多路径问题

在高楼周围也可能导致原本收不到的卫星信号,经过大楼楼体的镜面反射被接收到,这种信号被称为多路径信号(Multi-Path Signal)。从图中可以看出,根据多路径信号计算得到的距离会明显大于实际距离。而无人车是很难判断,当前接收到的信号是单路径还是多路径的。

鉴于以上各种原因,可以看出,单靠GPS这一种传感器,无人车在复杂场景中,很难实现精确定位。

GPS定位频率不太高

GPS定位的频率不怎么高,只有10Hz,即100ms才能定位一次。

通过一个简单的例子,说一说为什么10Hz不够高。

假设一辆汽车正以72km/h(20m/s)的速度在路上直线行驶,GPS定位的周期为100ms,则一个周期后,汽车相对于前一次定位的结果移动了20m/s * 0.1s = 2m,即两次的定位结果相距2米。

如果无人车行驶在一条有曲率的路上,那就意味着,每隔2m,才能根据自车所在的位置,进行一次控制(方向盘转角、油门开度等)的计算。这种控制频率下的车辆行驶效果如下图。无人车在实际轨迹两侧忽左忽右,无法精确地沿着轨迹行驶。

相对于理想情况下的控制方法,无人车的行驶轨迹应当如下图,保持极高频率的定位和控制,每走一小步,都重新进行控制的计算,并执行控制。

为了解决GPS频率太低所带来的问题,工程师引入了其他传感器信号(IMU、激光、视觉)用以提高无人车的定位频率。

这些辅助手段如何实现会在以后分享给大家。


小结

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

如果你想对GPS的信号接口有更为细致的了解,可以参看Apollo公开的proto文件。链接如下:ApolloAuto gnss.proto。我会在以后的软件部分着重分析这些proto文件,敬请期待。

我将在下一次分享中介绍IMU如何与GPS相辅相成,实现无人车的稳定定位。

无人驾驶技术入门(三)| 百度无人车传感器 GPS 深入剖析相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. Apollo进阶课程 ⑮丨Apollo自动定位技术详解—百度无人车定位技术

    目录 1.百度无人车定位进化历程 2.百度自动驾驶应用的定位技术 2.1GNSS定位技术 2.2载波定位技术 2.3激光点云定位技术 2.4视觉定位技术 原文链接:进阶课程 ⑮丨Apollo自动定位技 ...

  8. AI一分钟 | 无人驾驶技术排名:百度居中游,苹果特斯拉垫底;Google在深圳设立办公室

    一分钟AI 苹果智能扬声器HomePod的组装厂之一英业达被爆已经开始出货HomePod,首批只有100万台. 美国调研机构发布最新无人驾驶技术排行榜,百度居中游,苹果特斯拉垫底. Google证实已 ...

  9. 谁在引领2022自动驾驶投融资?L4玩家领骏科技,百度无人车元老创办

    浩楠 白交 发自 凹非寺 量子位 | 公众号 QbitAI 2019年的一天,领骏科技创始人杨文利博士坐在北京中关村的办公室里,手里拿着好几份来自各方的收购邀约. 有知名车企.有互联网大厂.也有其他自 ...

最新文章

  1. logcat 结合 grep 过滤 log 日志信息
  2. Android Timer的使用
  3. java实现word邮件合并,Aspose.Words控件操作实例—邮件合并功能概述
  4. Android 从清单配置文件元数据中获取值
  5. .Net开发笔记(十四) 基于“泵”的UDP通信(接上篇)
  6. 生成三角网算法java,一种低效但逻辑简单清晰的Delaunay三角网生成算法
  7. python fun函数的功能是_python编程。假定输入字符串中只包含字母和*号,请编写函数fun,它的功能是将字符串中间的*号...
  8. 短期刚需还是未来趋势? 聚焦音视频技术发展方向
  9. 构建最小根文件系统lfs
  10. PS新手教程!五分钟绘制一张半调效果的耐克体育海报
  11. 【机器学习】简述多种降维算法
  12. IDA*算法实现的数字拼图游戏
  13. IT男真实的情感记录
  14. MySQL_MySQL基础查询(DQL)
  15. Python中使用Turtle绘制阴阳鱼(小白的学习分享)
  16. Doo Prime 德璞资本:标普500期货交易小知识,看懂影响价格走势的因素
  17. DevOps中的质量内建实践
  18. 基于matlab多功能相控阵雷达资源管理的服务质量优化
  19. vba实现窗体文本框显示sheet1单元格内容
  20. vscode护眼绿+python环境搭建

热门文章

  1. jenkins 的html report 无法显示的解决办法
  2. wxPython教程(一)
  3. mpls-bgp optionC RR
  4. 《大型网站技术架构:核心原理与案例分析》
  5. 戴尔服务器怎么安装win7系统,戴尔OptiPlex XE3 怎么装win7系统的图文教程
  6. c语言函数原型语句,C语言函数声明以及函数原型
  7. 【AAAI 2021】在线知识蒸馏中的对等协同学习:Peer Collaborative Learning for Online Knowledge Distillation
  8. 阿里专家马飞翔:一文读懂架构整洁之道
  9. 可以免费自学编程的12个网站,各种资料齐全!
  10. Date 字符串 正则表达式 网址