![ROS原理与技术应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/20/49448020/b_49448020.jpg)
能力模块一
掌握车身硬件的搭建方法
任务一 认知车身组件
学习目标
●了解自动驾驶的发展历史。
●认识ROS智能车组成及各部分的名称。
●熟悉自动驾驶技术的软件和硬件框架。
●能够绘制ROS智能车的软硬件框架图。
●能够识别智慧猫ROS智能车的传感器。
●能够识别智慧猫ROS智能车的内部框架结构。
●具有利用信息手段查阅相关资料的能力。
●具有分析问题、解决问题和再学习的能力。
●具有良好的团队精神和较强的表达沟通、协调组织能力。
●具有认真负责的职业态度和良好的职业道德。
知识索引
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/14_01.jpg?sign=1739680958-je734XvL1mdc0OxtPlAI8ephoLrifefq-0-cee4251c579ff72b640ad211ecfaafe9)
情境导入
某公司计划研发一款ROS智能车。你作为一名测试工程师加入了该项目,主管要求你对新入职的员工进行培训,你要如何给新员工讲解ROS智能车的软硬件框架呢?
获取信息
引导问题1
查阅相关资料,请简述自动驾驶汽车的发展历程,以及国内的自动驾驶技术的发展情况。
__________________________________________
__________________________________________
__________________________________________
自动驾驶汽车的发展历史
自动驾驶汽车并非一个全新的概念。早在1886年,汽车诞生后不久,自动驾驶的梦想就出现在科幻小说中,在一些科幻电影里自动驾驶更是司空见惯,从虚构的小说场景到实验室研究再到工业开发,以及首先实现量产的部分自动驾驶功能,自动驾驶如今已经为很多人所熟知了。
1925年8月,美国的街上首次出现了一辆名为“美国奇迹”的汽车(图1-1-1),该车由一位名叫Francis P. Houdina的美国陆军电子工程师发明,可通过无线电遥控的方式,来实现车辆转向盘、离合器、制动器等部件的远程操控。这种操控方式虽然与真正意义上的“自动驾驶”相距甚远,但这是人类历史上第一辆有证可查的自动驾驶汽车。
1939年,美国通用公司在一场名为“建设明天的世界”的博览会中,表达了他们对20世纪60年代的“未来汽车”的幻想,并预言“未来的美国人乘坐的车将是一种全靠按钮操作,而不需要人驾驶的新式汽车”。
1956年,通用公司正式展出了Firebird II概念车(图1-1-2),这是世界上第一辆配备了汽车安全及自动导航系统的,神似火箭的概念车。1971年,英国道路研究实验室展示了一段视频,视频里的工程师正在测试一辆自动驾驶汽车,车子里仅有的一个人坐在后排,转向盘一直在自动“抖动”来调整方向。在车子的前保险杠位置上有一个特制的接收单元。计算机控制的电子脉冲信号通过这个单元传递给车子,以此来控制转向,此次试验之后,他们表示这种驾驶功能将为公路和铁路带来更安全的驾驶条件。随后,《新科学家和科学之旅》杂志里指出这种系统要比人类驾驶汽车的安全性高出100倍。
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/16_01.jpg?sign=1739680958-8Rryo0rfugSedej4IThYJHNMFwvB01IT-0-9129e7c120f133192bdeada81ea95091)
图1-1-1 “美国奇迹”
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/16_02.jpg?sign=1739680958-hkp4NftchQO2yXUngQBciHiGJKgzbNnV-0-41dc37440deaa05317aac1e1332bb1c9)
图1-1-2 Firebird II概念车
1977年,日本的筑波工程研究实验室开发出了第一个基于摄像头感知环境的自动驾驶汽车(图1-1-3)。这辆车配备了两个摄像头,并用模拟计算机技术进行信号处理。时速能达到30km,但需要高架轨道的辅助。
在20世纪七八十年代,德国慕尼黑联邦国防军大学的航空航天教授Ernst Dickmanns开创了“动态视觉计算”的研究项目,并成功开发出了多辆自动驾驶原型汽车。Ernst Dickmanns团队在1993~1994年之间,成功改装了一辆奔驰S500轿车(图1-1-4),而且为了实时监测道路周围的环境和反应,他们还为这辆车配备了摄像头和多种传感器。当时,这辆奔驰S500成功地在普通交通环境下自动驾驶了超过1000km。
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/16_03.jpg?sign=1739680958-RZKWEy17ubGVrudpCfjUbtI3QzSfosCf-0-92b7a91494b87630354a04185d2f2054)
图1-1-3 第一个基于摄像头感知环境的自动驾驶汽车
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/16_04.jpg?sign=1739680958-zue8UwTtD75UuwS47M3zl34EROIDy7ir-0-9cdd10d02f18927714998750e523a4a1)
图1-1-4 Ernst Dickmanns团队改装的奔驰S500轿车
1998年,依托ARGO项目(意大利帕尔马大学视觉实验室VisLab在EUREKA资助下完成的项目)改装的汽车(图1-1-5)利用立体视觉系统和计算机制定的导航路线进行了2000km的长距离实验,其中94%路程使用自主驾驶,平均时速为90km,最高时速123km。
2004年,DARPA(美国国防先进研究项目局)对自动驾驶汽车组织了有史以来最重要的挑战赛。2005年,来自斯坦福大学的一辆改装的大众途锐(图1-1-6)完美完成了挑战。这辆车不仅携带了摄像头,同时还配备了激光测距仪、雷达远程视距、GPS传感器以及英特尔奔腾M处理器。
2009年,谷歌的一辆改装的丰田普锐斯(图1-1-7)在太平洋沿岸自动行驶了22500km,历时一年多。这台普锐斯使用了摄像头、毫米波雷达和激光雷达作为传感装置。
2010年,VisLab团队(就是当年的ARGO项目团队)开启了自动驾驶汽车的洲际行驶挑战。四辆自动驾驶汽车从意大利帕尔马出发,穿越9个国家,最后成功到达了中国上海(图1-1-8)。
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/17_01.jpg?sign=1739680958-ouHF98DV4H8cM7WaYjUwjft0MPNat8sT-0-41d035de9a79eb2b60ac3bf40e06e8ab)
图1-1-5 依托ARGO项目改装的汽车
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/17_02.jpg?sign=1739680958-v0fl6MlQucYoaJ3wbTalBFkSMX4mowJD-0-82cc422edb3cf672c7da87c162b6535c)
图1-1-6 斯坦福大学改装的大众途锐
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/17_03.jpg?sign=1739680958-raN8EZFGVDXPvyuqwLNxyAfIaEIGR7fZ-0-6cac2e7312c5e79d7dbe17b59d5e1a47)
图1-1-7 谷歌改装的丰田普锐斯
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/17_04.jpg?sign=1739680958-XWHU2ez5tYrRQHcc1EQ9B2XO0DuuggSH-0-951e332cce5a4ac08cf07d050325abe1)
图1-1-8 VisLab团队设计的参加洲际行驶的自动驾驶汽车
2014年12月中下旬,谷歌对外发布了完全自主设计的自动驾驶原型车成品,该车可全功能运行。2015年5月,谷歌该款自动驾驶原型车在加利福尼亚州山景城的公路正式上路测试,如图1-1-9所示。
近年来,国内外许多传统汽车厂商也开始进行自动驾驶汽车的研发,比如奔驰在2021年12月,在新一代S级以及EQS纯电动车上推出的Drive Pilot(图1-1-10)功能正式被批准在德国高速公路上以低于60km/h的速度激活使用。这是全球首个真正意义上获得政府许可,并大规模上市的L3自动驾驶汽车。
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/17_05.jpg?sign=1739680958-Q0p5NZux3lRN0ImzC41ExIvCZeRLcvmX-0-4ec065c39ea3828990650f9d81a68a9b)
图1-1-9 谷歌自动驾驶原型车
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/17_06.jpg?sign=1739680958-WSi5pLCxqnUsTbh7Y0ljyJJJ8uqxt2o4-0-b9d593d87b4710818bb86d2cc5948349)
图1-1-10 奔驰装备Drive Pilot的车型
在国内,背靠长城汽车发展自动驾驶技术的毫末智行科技有限公司旗下业务发展迅速,并在2022年初获得数亿元的A+轮融资。截至2021年底,毫末智行已推出的产品如图1-1-11所示。
此外,国内不少互联网企业也宣布进入自动驾驶领域。如百度于2021年8月18日,在百度世界大会上发布了全新升级的自动驾驶出行服务平台——萝卜快跑。2021年11月25日,在取得服务许可之后,当天便接到了第一单生意,随后陆续在长沙、沧州、北京、广州、重庆和上海面向大众全面开放了无人驾驶服务。到2021年第三季度,萝卜快跑已向市场提供了11.5万次乘车服务,百度也成为全球最大的自动驾驶出行服务提供商。图1-1-12是目前市面上正在运行的基于萝卜快跑平台的自动驾驶汽车。
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/18_01.jpg?sign=1739680958-xFKvNPBulMG0AGdKoa2zv68qQZHBM3WH-0-fa6cf2a182553295ee346a67ed9410ef)
图1-1-11 毫末智行产品
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/18_02.jpg?sign=1739680958-MJWirySoLmmVTenKLOrUUMDnJBXgHxZZ-0-848d5da303ed841a4181fec187fc591e)
图1-1-12 基于萝卜快跑平台的自动驾驶汽车
作为一种前沿技术,自动驾驶的存在形式多种多样。如今,国内外无数的科学家们都在不断地探索自动驾驶的技术潜力,自动驾驶能够提高公路安全性、缓解交通拥堵、减少空气污染,掌握自动驾驶的技术优势就能引领未来的潮流。
引导问题2
查阅相关资料,举例说明自动驾驶系统由哪些部分组成。
__________________________________________
__________________________________________
__________________________________________
自动驾驶系统框架的使用
自动驾驶是非常复杂的系统,由传感、感知、决策、车辆控制等部分组成,每个部分又包含了若干个模块,它们之间有着大量数据需要实时传输和处理。如何把这么多功能各异、非常复杂的模块集成到一起,组成一个完整的自动驾驶系统来完成自动驾驶的任务,是一个非常大的挑战。因此,现阶段自动驾驶技术的应用,需要使用一个合适的自动驾驶系统框架来实现。自动驾驶系统框架需要满足以下需求。
一、提供高效的开发支持
自动驾驶技术处于快速迭代和快速发展过程中,无论感知算法、决策算法还是整体技术开发,无论以2D为主的视觉方案还是以3D为主的方案,对快速地构建系统和功能验证有非常高的要求。通过使用框架开发,算法工程师能够将更多精力放在算法功能的研发上,而诸如配置管理、部署运行、底层通信等功能由框架来统一提供,这样可以快速地构建系统原型,验证算法和功能。
二、灵活配置自动驾驶系统
传感、感知、决策等系统本身包含了若干个功能相对独立的自动驾驶算法模块(图1-1-13),模块之间只有数据依赖关系。对于框架来说,需要能够在开发阶段减少各个模块之间的耦合,而在车上运行阶段能够将各个模块组合串联起来,按模块需求灵活配置自动驾驶系统。
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/19_01.jpg?sign=1739680958-msuUhBQNpJRwDJZFhRNUCJsqNyJHb7zd-0-8a8cacd037a8e82800805853e8dde16d)
图1-1-13 自动驾驶的算法模块
三、支持可视化工具的应用
由于自动驾驶系统涉及大量图像识别、定位算法,因此调试过程对各种可视化工具有非常强烈的需求,比如障碍物检测算法,需要看图像识别障碍物框得准不准,规划路径是否合理,定位算法也需要看调试时车是不是在正确位置上。
引导问题3
查阅相关资料,请简述自动驾驶的关键技术主要体现哪些方面。
__________________________________________
__________________________________________
__________________________________________
自动驾驶的关键技术
自动驾驶的关键技术主要体现在自动驾驶系统的感知、决策和控制三个环节。
感知,即通过摄像头、激光雷达、毫米波雷达、超声波传感器、陀螺仪、加速度计等多种传感器获取信息,并进行综合处理,让自动驾驶系统感知周围的环境和车辆状态信息。感知环节主要工作包括定位、物体识别和追踪(图1-1-14)。
其中环境信息包括道路的形状、方向、曲率、坡度、车道、交通标志、信号灯,其他车辆或行人的位置、大小、前进方向和速度等;车辆状态信息包括车辆的前进速度、加速度、转向角度、车身位置及姿态等。
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/20_01.jpg?sign=1739680958-uTNuqynXDKwl8txb2sVNtuWi3ZgzRRIP-0-86f0de14425da13dd8120f0408da4cde)
图1-1-14 感知环节的主要工作
无论定位、物体识别还是追踪工作,都依赖于多传感器信息融合技术。它能将多种传感器获得的环境信息进行比对,并根据算法输出融合结果。比如摄像头和激光雷达感知到的同一车辆的大小、位置、前进方向和速度信息进行融合,保证同一车辆上不同传感器中的时间和空间的一致性。多传感器信息融合技术是感知环节的关键技术之一。
决策,在整个自动驾驶系统中扮演着“驾驶员大脑”的角色,主要完成行为预测、路径规划和安全避障工作(图1-1-15)。它具体包括:选取哪条车道、是否换道、是否跟车行驶、是否绕行、是否停车等。这个环节需要用到强化学习等关键技术。
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/20_02.jpg?sign=1739680958-h3WjW6qknaXL1hxS0bhvZzPPyoxsmMGN-0-040ea0647ca6639bba872f7a0580f685)
图1-1-15 决策环节的主要工作
控制,主要通过对转向、驱动、制动系统的控制,实现决策单元下发的目标线速度和角速度。这个环节的关键是PID反馈控制等技术,PID反馈控制技术算法原理如图1-1-16所示。
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/20_03.jpg?sign=1739680958-GGdbzPcSgEUg2OvglPBBzybefrpWj8Qn-0-85c1d0a08532a31c5298ea416d2bb027)
图1-1-16 PID反馈控制技术算法原理示意
引导问题4
查阅相关资料,请简述什么是ROS,并描述ROS的主要应用领域。
__________________________________________
__________________________________________
__________________________________________
ROS智能车的整体架构
机器人操作系统(Robot Operating System,ROS)最早是一个用于编写机器人软件的灵活框架,它集成了大量的工具、库、协议,提供了类似操作系统所提供的功能,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间的消息传递以及程序发行包管理,可以极大简化机器人平台下的繁杂多样的复杂任务创建与稳定行为控制工作。ROS后来被各知名学术研究机构和多家自动驾驶技术公司采用,已经成为自动驾驶研究领域重要的系统框架。通过对ROS的学习和应用,可以更好理解自动驾驶技术。
本教材选用了行云桥智慧猫ROS智能车作为学习载体,它使用了机器人操作系统作为自动驾驶框架。智慧猫线控底盘的电机编码器信号可以转换为里程计信息,并利用深度摄像头获取深度信息,完成环境感知。激光雷达的深度信息经过SLAM算法的处理,可以实现当前环境地图的构建。在导航的时候,自主定位功能包(amcl)通过里程计信息或里程计+IMU等方式,实现当前车的定位(感知)。当给定小车一个目标位置后,导航路径规划功能包(move_base)则调用构建后的地图,以及当前小车的位姿,并结合摄像头获取的障碍物信息来实现小车导航过程中最优路径规划(决策)。并将运动控制信息发送给底盘控制器(底盘控制单元),完成控制环节的任务(图1-1-17)。
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/21_01.jpg?sign=1739680958-81JxIwo1Pwn9nHhbYQ6997pDBzGsjPKm-0-e59614fc8448b1440cd5accbe4c16899)
图1-1-17 智慧猫ROS智能车工作原理示意
一、智慧猫整体结构认知
智慧猫ROS智能车(图1-1-18)的硬件使用了当前自动驾驶技术中常用的深度摄像头、单目摄像头、单点激光雷达、单线激光雷达、IMU等多种传感器。这些传感器可以借助相应功能包完成环境感知。智慧猫线控底盘则使用了控制精度较高的驱动电机,可以根据决策单元下发的信号,准确执行自动驾驶任务。
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/22_01.jpg?sign=1739680958-lL4NrTynHugJarsCxzyqbEs6aukJUaH3-0-f9d9107dced7a005765f8f6f4c93ce25)
图1-1-18 智慧猫ROS智能车外观
ROS智能车由线控底盘、感知单元、决策单元以及功能模块组成。其中线控底盘包括底盘控制单元(也称下位机)、电机驱动模块、驱动电机、车轮和外壳等部件;感知单元包括单线激光雷达、单点激光雷达、单目摄像头、深度摄像头和IMU等部件;决策单元也称上位机,安装在线控底盘内部。ROS智能车整体结构如图1-1-19所示,其线控底盘内部结构如图1-1-20所示。
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/22_02.jpg?sign=1739680958-jEN8aLw7f2OWN9ILXaIIgLJ0DwB2BM3t-0-14aaa5c38b1afda0c09d760f6f797d47)
图1-1-19 ROS智能车整体结构
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/22_03.jpg?sign=1739680958-wOcXMH9ViZ96MGPC0SWuYt1q5zXPIxqS-0-6885af2b168370197afff8133948867c)
图1-1-20 ROS智能车线控底盘内部结构
二、智慧猫整体控制框架认知
智慧猫ROS智能车依靠感知单元完成环境感知,并将获取的信息传输到决策单元。决策单元预装了自动驾驶操作系统,通过该系统调用对应的功能包,形成控制指令(控制线控底盘运动的线速度和角速度)。底盘控制单元接收到控制指令后,通过电机驱动模块控制驱动电机旋转。同时,底盘控制单元还将采集四个驱动电机的转速信号,并上传反馈给决策单元。整体控制框架如图1-1-21所示。
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/23_01.jpg?sign=1739680958-DYDffMdalhmidiwAFcT4kv2deNkLyKVt-0-ca521ff3de0245ae97c08b220bad7543)
图1-1-21 智慧猫ROS智能车整体控制框架
任务分组
学生任务分配表
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/23_02.jpg?sign=1739680958-EiyIJmsB1Ra57EqPomTDhIiUG9gzOtrA-0-f153d9a97025ada57dcf9a46d3386060)
工作计划
按照前面所了解的知识内容和小组内部讨论的结果,制定工作方案,落实各项工作负责人,如任务实施前的准备工作、实施中主要操作及协助支持工作、实施过程中相关要点及数据的记录工作等。
工作计划表
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/24_01.jpg?sign=1739680958-JmX2cDAnT5VG4voFGT6GZEl6iBolX0fF-0-3e3bb8e8364cdeedacaa3645e03410b7)
进行决策
1.各组派代表阐述资料查询结果。
2.各组就各自的查询结果进行交流,并分享技巧。
3.教师结合各组完成的情况进行点评,选出最佳方案。
任务实施
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/24_02.jpg?sign=1739680958-Hq5kxZwTdyWQCRA0XQZbFjrq7E6Qlq64-0-1bc1671f660d49c57f4f47db734768c2)
评价反馈
1.各组代表展示汇报PPT,介绍任务的完成过程。
2.以小组为单位,请对各组的操作过程与操作结果进行自评和互评,并将结果填入综合评价表中的小组评价部分。
3.教师对学生工作过程与工作结果进行评价,并将评价结果填入综合评价表中的教师评价部分。
综合评价表
![](https://epubservercos.yuewen.com/699885/29013197307929006/epubprivate/OEBPS/Images/25_01.jpg?sign=1739680958-d4zDnU8wIdKRPamaPy3tcx9vauAwOPmv-0-2b97ddb88980a7e4b6b370c1d830d5aa)