




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汽车智能技术与应用第十章 车载嵌入式操作系统应用学习目标能够知道Linux操作系统在智能网联汽车中的作用能够知道Android框架与结构原理能够知道ROS操作系统技术架构能够知道Rviz
3D图形可视化工具的应用65110.1 Linux操作系统在智能网联汽车中的应用10.1.1
Linux内核及驱动Linux操作系统是首选的汽车开源软件平台,取代了封闭的操作系统。使用Linux作为操作系统不仅可以运行汽车的音频主机或信息娱乐中心,还可以运行远程信息处理系统、仪表盘等。目前常用的Linux版本主要有Ubuntu、Red
Hat、CentOS、Debian、Fedora
Core、SuSE、Gentoo、Arch、Kali、Slackware等。510.1.1
Linux内核及驱动►请说说Linux系统的特点有哪些?610.1.1
Linux内核及驱动Linux是一种应用广泛的嵌入式操作系统,嵌入式系统以应用程序为中心,以计算机技术为基础。软件和硬件可能或多或少需要,主要用于功能、可靠性、成本、体积、功耗等特殊计算机系统。嵌入式系统通常包括硬件和软件。硬件包括嵌入式处理器、存储器和各种外围设备;软件部分包括嵌入式操作系统和用户应用程序,Linux代码是完全开放的。710.1.1
Linux内核及驱动Linux内核包括内核抽象和对硬件资源的间接访问,Linux以统一的方式支持多任务,此方法对用户进程和每个进程都是透明的。内核同时运行多个进程,允许多个进程公平合理地使用硬件资源。Linux作为一种实时操作系统,具有高效的I/O管理能力,能够处理和存储控制系统所需的大量数据。810.1.2
Android框架Linux操作系统的结构一般由四部分组成:Linux内核、命令解释器(Shell)、文件系统和应用程序。Android操作系统和华为的鸿蒙操作系统都是基于Linux的环境架构。Android是google2007年11月为移动设备设计的软件平台。如图10-2所示,Android系统自下而上分为四个层次:Linux内核及驱动与本地框架及Java运行环境之间是内核空间与用户空间的分界线,本地框架及Java运行环境与Java框架之间是本地代码层和Java代码层的接口,JAVA框架和本地框架之间通过JAVA
NativeInterface(JNI)机制实现数据交互,实现Java框架和Java应用程序之间是Android的系统APl。9►Android系统架构1010.1.2
Android框架Android内核是介于硬件和上层应用之间的一层,为上层应用提供安全,内存管理、进程管理、网络协议栈等服务。Android的核心系统除了标准的linux驱动程序,Android系统还添加了BinderIPC驱动程序、ashmem匿名共享内存驱动程序、轻量级日志驱动程序,并在没有内存的情况下终止进程驱动程序。电源管理等驱动程序为系统运行提供基本支持。1110.1.2
Android框架1210.1.2
Android框架Android原生框架包括一些C/C++库,这些库提供给Andrnid系统的不同组件,并通过JAVA框架为上层应用程序开发人员提供服务。请说明主要包括哪些组件?1310.1.2
Android框架1410.1.2
Android框架JAVA框架提供了上层应用开发所需的功能,如androidview提供了一个基本的用户界面框架,android
media提供了一些类型的媒体界面来管理各种音频和视频,用户界面框架,Android
media提供了一些用于管理多个音频和视频的媒体接口,AndroidtelePhony提供了与电话子系统相关的api。在开发上层应用程序时,它实际上是基于这个桁架的。每个应用程序背后隐藏着JAVA框架提供的一系列服务和系统,如视图、内容提供者、资源管理器、通知管理器、活动管理器等。1510.1.2
Android框架Android系统架构由5部分组成:Linux内核、库函数、Android运行状态、应用程序框架和应用程序。请分别说明。1610.1.2
Android框架Android内部进程通信和安全主要是指在安装第三方应用程序时尽可能保证系统的稳定性。底层的授权机制由Linux内核和文件系统提供,基本上可以满足其他基于Linux内核的系统。由于Android设备是针对单个用户的,因此具有多用户服务的设备只能通过分配唯一标识符来应用。此外,Android是一个静态安全许可系统,在程序安装过程中必须使用。1710.1.2
Android框架Android扩展了汽车的整体结构,定制的Android平台应用于汽车功能模块和支持组件的扩展,其目的是提供一种安全机制,允许受信任的应用程序访问汽车功能模块(车辆制动、转向或电驱动分配),而不可信任的程序被隔离并且不可以访问。应用程序之间只能通过高安全可信机制下通过有限权限访问某些功能,例如,CAN总线。1866610.2 ROS操作系统在智能网联汽车中的应用2010.2.1
ROS操作系统技术架构智能网联汽车集成了车联网技术和无人驾驶技术。无论是车联网还是无人驾驶,都离不开一个强大的开发平台和运行平台。机器人操作系统是一个功能强大、灵活的机器人编程框架和基于消息通信的分布式多进程框架,有很多著名的开源机器人功能库,如基于Quaternion的坐标转换、三维点云处理、定位算法、各种SLAM等。ROS系统的总体架构分为三个方面。这三个方面分别是文件系统级、计算图级和开源社区级。2110.2.1
ROS操作系统技术架构工作空间是一个包含函数包、可编辑源文件和编译包的文件夹。当希望同时编译不同的函数包时提供帮助,并可以保存本地开发包。用户可以根据自己的需要创建多个工作空间,并在每个工作空间中为不同的目的开发功能包。功能包是ROS中软件组织的基本形式。功能包具有用于创建ROS程序的最小结构和最小内容。它可以包含ROS运行的进程(节点)和配置文件。2210.2.1
ROS操作系统技术架构2310.2.1
ROS操作系统技术架构服务是ROS中进程(节点)之间的请求/响应通信过程,服务类型是服务请求/响应的数据结构。服务类型的定义借用了消息类型的定义,区别在于,消息数据是ROS进程(节点)之间的多对多广播通信过程中传输的信息;服务数据是ROS进程(节点)之间的点对点请求/响应通信过程中传输的信息。ROS将创建一个连接所有进程(节点)的网络,任何进程(节点)都可以访问该网络,并通过网络与其他进程(节点)交互以获取其他进程(节点)发布的信息,并将自己的数据发布到网络,以及节点、主题、服务,在这个计算图网络中,必须用唯一的名称来标识。2410.2.1
ROS操作系统技术架构ROS系统功能框架如图所示,左边的节点可以从硬件驱动程序读取数据并将其打包成一条消息。ROS的底层识别消息的订阅者并将消息数据分发给订阅者节点。ROS节点通常是一个标准的C++程序,可以使用系统中安装的其他软件库。同时,ROS节点可以隐式地启动多个线程,当多个节点同时访问一个主题时,它也由FIFO队列管理,以解决实时同步问题。►请说明ROS操作系统的主要功能有哪些?2510.2.1
ROS操作系统技术架构车辆常用的外部传感器有其自身的特点,如:1)
毫米波雷达能准确探测前方车辆的距离和速度,对雾、烟、尘具有较强的穿透能力;2)
摄像机视觉系统可以获取车道线的颜色、形状、交通信号等目标的详细信息进行详细识别;3)
激光雷达利用点云建立周围环境的三维模型,可以检测到车辆、行人、树木、路旁等细节。通过激光雷达或毫米波雷达与视觉传感器的融合,不仅可以检测到目标物体,还具有目标空间测距、目标图像识别等功能。同样,GPS定位、视觉传感器和激光雷达的融合可以实现车道保持所需的高精度定位,以及多个障碍物目标的检测。2610.2.1
ROS操作系统技术架构在构建典型的环境感知系统时,常用的传感器包括摄像机和激光雷达等传感器,如:1)
Velodyne激光雷达获取三维点云数据,用于定位和地图构建,也用于测量车辆与周围物体之间的距离;2)虽然Ibeo激光雷达传感器的垂直分辨率低于Velodyne激光雷达,但它可以生成远程三维点云数据;3)Hokuyo激光雷达传感器产生的短程二维激光扫描数据,通常用于紧急停车,但不用于定位和地图创建;4)
摄像机可用于目标检测。点灰色相机具有360°全方位视角覆盖,而蚱蜢相机具有单一方向和较高的运行帧率。前者可用于检测运动目标,后者可用于识别红绿灯;5)
Javad-RTK定位传感器接收卫星全球定位信息,经常使用陀螺传感器和里程表来修复定位信息。2710.2.1
ROS操作系统技术架构无人驾驶系统首先包含多个传感器,如长距离和短程毫米波雷达、激光雷达、单目和双目相机、超声波、GPS定位、陀螺仪惯性导航等,每个传感器采集不同频率的数据并生成数据。该系统对传感器数据处理具有很强的实时性要求,因此要求无人驾驶系统能够对这些数据进行分布式、异步的实时处理。其次,基于这些传感器数据的融合,无人驾驶系统进行驾驶环境元素的感知和提取,并进行导航和自动驾驶决策。这就要求系统具有强大的计算能力,能够集成高性能的算法,并且具有高度的可扩展性。在ROS系统中,通过将系统抽象成节点和主题,其中节点用来表示单个组件模块,主题用来保存输入和输出节点之间的数据,形成了一个强大的抽象模型组件扩展计算框架,可以方便人的驾驶系统的开发,满足了扩展的要求。2810.2.1
ROS操作系统技术架构安装ROS操作系统的程序可以直接在其官网上下载,操作系统的安装方法在其官网有详细的说明。在安装时,首先将移动智能网联汽车平台主控制器在三维空间发送的智能网联汽车姿态、速度、里程和周围环境的二维激光数据或三维点云信息同步定位并生成。然后规划路径并向智能网联汽车发送运动命令,远程控制智能网联汽车移动。在桌面上安装了ROS的完整版本之后,ROS系统框架建立并创建了一个连接所有进程的网络,并安装了大多数必需的功能包和库。只需按照ROS开源网络社区获得的共享资源修改自己的智能网联汽车,创建新的节点和功能包就可以轻松完成智能网联汽车软件系统的开发。因为创建地图、定位和路径规划需要大量的数据处理,所以首先要将服务器和智能网联汽车主机控制器连接到同一个WIFI网络,然后建立节点管理器,并在服务器上创建键盘调试、SLAM和路径规划。在移动智能网联汽车主机控制器上创建节点,如vision、lidar、里程、基本控制器等,然后在节点管理器中注册所有节点,由节点管理器统一管理,在同一网络端到端的拓扑结构中进行TCP/IP通信,实现不同主机节点间的有效通信,最后利用三维可视化工具RVIZ在服务器上实现SLAM和路径规划。2910.2.1
ROS操作系统技术架构将无人驾驶系统环境感知功能与ROS的通用机制相结合,可以集成到现有的ROS系统框架中。其中,ROS的主要组成部分包括ROS
Master(ROS主机)、ROS
Node(ROS节点)和ROS
Service(ROS服务)。1)
ROS
Master的主要功能是命名服务,存储启动所需的操作参数、消息发布的上下游节点的连接名和连接方式、现有ROS
Service的连接名,一般来说,在无人驾驶系统中只有一个Master。2)
ROS
Node通常是标准的C++程序,可以使用系统中的其他软件库,也可以隐式启动多个线程来运行主要功能和服务。ROS
Node是一个真正的执行模块,它处理接收到的消息并向下游节点发布新消息。环境感知的基本组成部分可以通过节点来实现。3)
ROSService是一种特殊的ROS
Node,相当于一个服务节点,它接收请求并返回请求的结果。3010.2.1
ROS操作系统技术架构节点向Master
Advertise(主播发)或者Subscribe(订阅)发布感兴趣的Topic(主题)。当创建连接时,下游节点会向上游节点TCP
Server(TCP服务器)发布连接请求,连接创建后,上游节点的消息将通过连接发送到下游节点。智能网联汽车ROS系统的节点结构如图10-6所示。3110.2.1
ROS操作系统技术架构除了Master、Node、Service和传递的MeSSage(消息)主要组件外,ROS系统还提供以下常用组件:1)
RViz集成可视化工具。RViz查看器用于检查任务的状态。2)
为管理点云数据开发了一个点云库,支持定位和地图创建的许多算法包。3)
OpenCV是一个流行的计算机视觉图像处理库。它支持多种图像处理算法来实现库函数和api(例如图像加载、转换和渲染)。它有助于建立图像处理程序框架和无人驾驶汽车环境。通过OpenCV和ROS-RViz的结合,感知可以被可视化。4)
CUDA是基于GPU的通用计算框架,因为环境感知中常用的复杂算法都是计算密集型和数据并行的,使用CUDA,GPU的执行速度可以显著提高。3210.2.2
ROS操作系统在无人车辆上的应用无人驾驶系统是由驾驶环境感知、路径规划和车辆控制等多个技术组成的综合系统。每种类型的组件都由一组算法组成,它通常是基于各种分布式程序框架构建的组件之间的信息通信。无人驾驶汽车的总体功能结构可分为感知层、任务规划层、行为执行层和运动规划层。其中,环境感知层融合来自车载传感器的数据,为系统其他部分提供周边环境的关键信息,如包括车辆姿态和速度等状态信息的局部信息、道路形状、停车区域和交叉口等道路信息、动态障碍物等车辆周围其他车辆、行人等信息,局部静态障碍地图,二维网格地图,显示真实环境中无障碍区域、危险区域、无法通行区域、道路拥堵等信息估计。3310.2.2
ROS操作系统在无人车辆上的应用每种类型的组件,如交通场景识别、路径规划和车辆控制,都包含一组算法。例如,交通场景识别需要定位、目标检测和目标跟踪算法。路径规划通常包括任务和运动规划。车辆控制对应于路径跟踪算法。算法的基本控制和数据流如图10-8所示。图中,几个常用的传感器通过各自的驱动节点提供感知信息,包括来自图像相机的图像信息、毫米波雷达形成的扫描信息、激光雷达的点云信息、GPS系统提供的定位信息。通过订阅该信息的各个处理节点,形成扫描图像、点云图像等信息列表。3410.2.2
ROS操作系统在无人车辆上的应用►ROS下各传感器驱动和环境感知信息融合框架3510.2.2
ROS操作系统在无人车辆上的应用无人驾驶汽车对ROS系统的各个部分提出了高性能要求,只有满足这些要求,才能在实际环境中实现一定速度的自动驾驶。利用ROS构建无人驾驶系统,其可靠性是首先要考虑的特征。由于ROS框架下的主节点维护系统运行所需的连接、参数和主题信息,如果ROS主节点关闭,整个系统将无法正常运行。必须确保ROS主机不能因错误而退出,从而导致系统崩溃。同样,也要保证ROS节点不能错误退出,造成系统某些功能的缺失,造成无人驾驶事故。请说说无人驾驶汽车对ROS系统性能要求有哪些?3610.2.2
ROS操作系统在无人车辆上的应用当系统运行时,如果ROS
Master出现错误退出,会导致系统崩溃;如果其中一个ROS节点出现故障,会导致部分系统失去功能,任何一种情况都可能在无人环境中造成严重后果。所以,ROS重要节点需要热备份,以便在停机期间随时进行切换。主节点维护系统操作所需的连接、参数和主题信息。如果ROS
Master出现故障,整个系统可能无法正常工作。如图10-10所示,我们可以使用主从节点方法(类似于ZooKeeper)。同时,随时备份主节点的写入信息。主节点关闭后,将切换备份节点,主节点与备份主节点完成信息初始化。3710.2.2
ROS操作系统在无人车辆上的应用运行节点实时监控其运行数据,并在检测到严重错误信息时报警。从软件体系结构来看,实时监控主要分为三个部分:ROS节点层的监控数据API,允许开发者通过统一的API设置所需的统计信息和记录;监控服务器定期从各节点获取监控数据(对于紧急情况,可由节点将报警信息推送到监控服务器上);获取监控数据后,监控服务器对数据进行集成、分析和记录,检测到异常信息后报警。当节点关闭时,需要通过重新启动机制还原节点。这种重启可以是无状态的,但有时它必须是有状态的,所以状态备份特别重要。节点停机检测也非常重要。如果注意到节点停机,则必须使用备份数据快速重新启动。3810.2.2
ROS操作系统在无人车辆上的应用39由于无人驾驶系统模块众多,各模块之间的信息交换非常频繁,可以从以下三个方面提高系统的通信性能,将有助于提高整个系统的性能:1.使用共享内存的方法将数据映射到内存中,然后只传递数据的地址和大小信息,从而将数据传输延迟控制在20微秒以内,节省大量的CPU资源。2.在发送节点和每个接收节点之间实现点对多点的网络连接。3.通过从存储区域读取或反序列化对象的状态来重新创建该对象,使用轻量级序列化程序,将序列化延迟减少。10.2.2
ROS操作系统在无人车辆上的应用LXC提供了轻量级的虚拟化来隔离进程和资源,不需要提供指令解释机制和其他复杂的功能,比如完全虚拟化,这相当于C++中的命名空间。LXC有效地将单个操作系统管理的资源划分为独立的组,以更好地平衡独立组之间冲突的资源使用需求。对于无人驾驶的场景,LXC最大的好处是它的低性能损失。除了资源限制外,LXC还提供沙盒支持,允许系统限制ROS节点进程的权限。为了避免危险的ROS节点进程可能中断其他ROS节点进程的操作,沙盒技术可以限制潜在危险的ROS节点访问磁盘、内存和网络资源。此外,为了防止节点内的通信被劫持,可以对节点内通信的轻量级加密解密机制,使黑客无法重放或更改通信内容。4010.2.2
ROS操作系统在无人车辆上的应用在无人驾驶场景中,ROS的管理机制使系统中的各个软硬件模块能够有效的交互。位置控制模块作为ROS节点,可以得到智能网联汽车左右轮需要移动的线速度、角速度、位移等参数,然后与编码器进行通信计算模块测量的智能网联汽车的线速度、角速度、左右轮位移等姿态参数,得到智能网联汽车运动的速度、方向等误差。并通过PID算法控制精确确定左右轮电机的速度,使智能网联汽车沿着路径规划的路径行驶,通过红外传感器避开障碍物,最后将智能网联汽车的线速度、角速度、位移等姿态参数发送到里程节点。移动智能网联汽车软硬件系统建成后,利用ROS分布式处理框架对智能网联汽车的运动进行远程控制是SLAM和路径规划的基础。因此,有必要使用RVIZ等可视化工具对服务器上的移动智能网联汽车进行远程控制。并接收智能网联汽车的调试信息,测试SLAM和路径规划,验证智能网联汽车程序设计是否符合要求。4110.2.3
Rviz
3D图形可视化工具的应用Rviz是ros系统附带的三维图形可视化工具。该工具可以将代码构建的机器人模型转换为可视化的三维模型,方便ros程序的图形化操作。例如,无需编程即可表示激光测距传感器中传感器到障碍物的距离,RealSense、Kinect或Xtion等三维距离传感器的点云数据,以及从摄像机获取的图像值。另外,交互标记利用用户指定的多边形来支持各种形式的表示,可以表示从用户节点接收命令和数据并相互相交的过程。无人驾驶汽车在本质上是一种移动式的机器人,在ROS中,机器人被描述为一个统一的机器人描述格式,可以表示为一个三维模型,每个模型可以根据自由度进行移动或驱动,因此可以用于仿真或控制。例如,可以显示移动机器人模型,同时可以接收来自激光距离传感器的距离值并用于导航。此外,数据可以从各种传感器获取,并显示为三维图像。4210.2.3
Rviz
3D图形可视化工具的应用在安装RViz时,使用“ros[ros_DISTRO]desktop
full”命令,默认情况下将自动安装。如果未安装“desktopfull”或未安装RViz,可以使用sudoaptgetinstallroskineticRViz命令进行安装。Rviz的操作界面主要分为左侧显示设置区、中间大显示区和右侧视角设置区。顶部是几个与导航相关的工具。中间的黑色区域是三维可视化区域。左边的显示面板,底部是一些与ros状态相关的数据的显示。各种用户加载选项的右侧是全局选项和时间,可以通过左下角的“添加”按钮添加新的显示选项。4310.2.3
Rviz
3D图形可视化工具的应用在运行时打开linux终端并输入:roscore。然后打开linux终端并输入:rosrun
rviz
rviz,打开rviz界面。数据可视化的前提是将需要可视化的数据发布到相应的消息类型中,然后使用相应的插件订阅rviz中的消息来实现显示。添加插件以显示数据,单击rviz界面左下方的“添加”按钮,rviz将列出默认支持的所有数据类型的显示插件。添加完成后,rviz
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厂房门窗安全性能检测与维护合同
- 民族风情园场地使用权转让合同
- 校园教师保健培训
- 皮肤活检护理
- 中西医结合治疗模式解析
- 工艺流程中的“目的、作用、原因”分析-2025年高考化学工艺流程考点剖析+对点训练原卷版
- 高中物理专项复习:受力分析 共点力的平衡
- 搜狐员工培训汇报
- 电力行业数据开放共享风险防护指南
- 右肺癌术后护理
- 汽轮机课程设计(中压缸)
- 清洗剂安全技术说明书(MSDS)报告
- 大酒店员工离职交接表
- 2022年广东省深圳市中考化学真题试卷
- 国际财务管理教学ppt课件(完整版)
- 2022年江西省南昌市中考一模物理试卷
- 光引发剂的性能与应用
- 图像处理和分析(上册)课后习题答案(章毓晋)
- 三金片前处理车间1
- NB_T 10499-2021《水电站桥式起重机选型设计规范》_(高清最新)
- 韵能cfd风环境模拟stream scstream答疑软件常见q a汇总
评论
0/150
提交评论