版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1自动驾驶编程原理与应用2背景:全球大力部署自动驾驶汽车领域各国持续加大自动驾驶汽车战略规划部署,推动相关法律法规修订,加速推进高级别自动驾驶测试,示范应用与商业化探索。英国:允许搭载ALKS(L3级)自动驾驶系统的车辆上路行驶。2021年欧盟:所有新车具备通信功能;德国:规划在2022年成为“世界第一个允许无人驾驶汽车常态化运行的国家”。2022年英国:CAM(connectedandautomatedmobility)货运服务小规模使用。2023年韩国:全国主要道路的L4级完全自动驾驶商用化。2027年2025年中国:2025年L2、L3级自动驾驶汽车销量占汽车总销量超过50%,C-V2X(以蜂窝通信为基础的移动车联网)终端新车装配率达50%。日本:私家车和卡车运输实现高速公路L4级自动驾驶。瑞典:实现自动驾驶公交应用。英国:最后一公里CAM货运服务具备竞争力。2026年瑞典:建立全国性Maas(mobilityasaservice)服务。英国:CAM成为公共出行服务的首选。3第一章
绪论知识点:了解自动驾驶技术架构相关原理,以及源码开发环境搭建对系统软硬件的基本要求。重点:重点掌握自动驾驶系统技术架构主要组成模块和各模块的基本功能。难点:自学Ubuntu系统安装。自动驾驶编程原理与应用41.1自动驾驶系统技术架构51.1自动驾驶系统技术架构自动驾驶系统(AutonomousDrivingSystem,ADS)自动驾驶系统是一个高度复杂的软硬件集成体系,通过激光雷达传感器、全球卫星导航系统接收机等多源异构传感器获取感知定位信息,配合高性能计算平台与底盘系统执行机构,构建起完整的“感知-决策-执行”闭环。61.1自动驾驶系统技术架构Autoware开源自动驾驶框架采用模块化分层式设计,大致可以将系统功能划分为感知定位层、决策规划层以及执行控制层,各功能层通过标准化数据接口实现高效协同。71.1自动驾驶系统技术架构感知定位层:主要负责环境感知与车辆定位,通过多传感器组合的方式实现对车辆定位以及其周围环境的全方位实时监测。81.1自动驾驶系统技术架构感知定位层环境感知功能模块主要依赖激光雷达传感器、视觉传感器、毫米波雷达传感器、超声波传感器等车载传感设备,对行驶路径(包括结构化道路标线、非结构化可行驶区域等)周边物体(包括车辆、行人、交通标志与信号灯等)驾驶状态(包括本车及周边车辆行驶状态)驾驶环境(包括路况、交通流量、天气等)等对象进行感知识别,为决策规划层路径规划和速度规划提供依据。91.1自动驾驶系统技术架构感知定位层车辆定位功能模块主要依赖全球卫星导航系统接收机、惯性测量单元、激光雷达传感器、视觉传感器等车载传感设备,通过算法获取车辆自身的位置姿态(包括航向角、俯仰角、横摆角等)等信息,从而为决策规划层和执行控制层相关模块提供车辆定位信息。101.1自动驾驶系统技术架构决策规划层:主要负责行为决策和轨迹规划两大核心功能,该层级通过整合感知定位层提供的信息,进行多维度分析与决策判断,并规划合理的期望车速和期望路径,以确保车辆能够安全、高效地适应复杂多变的交通环境。111.1自动驾驶系统技术架构决策规划层行为决策功能模块主要用于实现交通法规和安全约束条件下车辆行为的选择,具体包括停车、超车、变道、跟驰等典型场景的决策。轨迹规划功能模块主要用于规划车辆在未来时域、空域一系列动作,并生成时空维度上的可行轨迹,通常涵盖了全局和局部的速度和路径的规划。行为决策功能模块为轨迹规划提供目标导向,而轨迹规划功能模块则将行为决策转化为可执行的具体期望车速和期望路径。121.1自动驾驶系统技术架构执行控制层:主要功能是根据决策规划层生成的期望车速和期望路径,通过车辆的纵向和横向控制,实现相应的速度跟踪及路径跟踪。131.1自动驾驶系统技术架构执行控制层在车辆纵向控制方面,速度跟踪控制功能模块一般通过计算期望车速与实际车速的偏差,控制车辆的驱动系统和制动系统实现相应的加减速,从而准确跟踪规划速度。在车辆横向控制方面,路径跟踪控制功能模块一般通过计算期望路径与实际路径的横向偏差,控制车辆的转向系统实现车辆的横向移动,确保车辆运动过程中能够消除横向偏差并沿着规划路径稳定行驶。141.1自动驾驶系统技术架构执行控制层此外,执行控制层还需考虑纵向与横向控制之间耦合问题,以保证车辆的行驶安全性和乘坐舒适性。整个执行控制过程的实现依赖于多源传感器数据的高精度融合与高效控制算法的协同工作。系统需要实时采集轮速传感器、转向角传感器、惯性测量单元等数据,并通过卡尔曼滤波等数据融合算法构建准确的车辆状态估计。同时,基于先进的算法快速处理传感器数据并生成最优控制指令,以确保自动驾驶车辆在复杂交通场景下能够实现快速的动态响应,从而有效应对突发的交通状况。151.2自动驾驶系统开发环境161.2自动驾驶系统开发环境操作系统要求:Autoware不同版本需要不同的Linux(Ubuntu)操作系统Autoware版本操作系统Ubuntu14.04Ubuntu16.04Ubuntu18.04v1.13.0
√v1.12.0
√√v1.11.1
√
v1.11.0
√
v1.10.0
√
v1.9.1√√
v1.9.0√√
171.2自动驾驶系统开发环境操作系统要求如若不方便直接在个人计算机上安装Ubuntu操作系统,建议考虑支持外接移动固态硬盘的UbuntuToGo方案,其基本可满足本课程内容学习需要。开机后切换系统181.2自动驾驶系统开发环境软件要求:在安装Autoware源码前,需要先安装ROS、Qt等软件。不同的Linux(Ubuntu)操作系统下的软件配置要求不同软件版本操作系统Ubuntu14.04Ubuntu16.04Ubuntu18.04软件ROSIndigoKineticMelodicQt4.8.6及以上5.2.1及以上5.9.5及以上CUDA(可选)8.0GA9.010.019结束谢谢聆听!20主讲:黄炜自动驾驶编程原理与应用21第二章开源自动驾驶框架Autoware知识点:了解Autoware开源自动驾驶框架基本概况,以及Autoware基于源码安装方式;掌握常用功能组件的功能和使用方法。重点:重点掌握启动文件、坐标变换库、数据可视化工具、数据记录与回放工具等常用组件的相关命令。难点:ROS安装与环境配置。自动驾驶编程原理与应用22本章节目录2.1基本介绍Autoware开源自动驾驶框架2.2源码安装终端常用命令ROS安装系统依赖Autoware安装Autoware运行2.3常用功能组件说明启动文件坐标变换库数据可视化工具数据记录与回放工具232.1基本介绍242.1基本介绍Autoware是名古屋大学ShinpeiKato教授团队于2015年推出的开源自动驾驶软件框架,作为全球首个基于ROS(RobotOperatingSystem)的全栈自动驾驶解决方案,它开创了开源自动驾驶软件的先河。252.1基本介绍该框架深度整合了ROS的模块化架构和丰富工具链,构建了完整的自动驾驶开发生态系统。262.1基本介绍ROS作为Autoware的中间件,运行于Linux(Ubuntu)操作系统之上,不仅提供基于TCP/UDP网络封装的发布/订阅、客户端/服务端等实现数据传输的通信机制,而且还集成功能强大的库和工具:Catkin-原始构建系统;OpenCV-图像处理库;rosbag-数据记录与回放工具;RViz-数据可视化工具;tf-坐标变换库;RQT-基于Qt的GUI开发工具。这些工具和库共同构成了Autoware的底层支撑,使其能够高效实现车辆定位、环境感知、决策规划、运动控制等自动驾驶核心功能,同时保持高度的灵活性和可扩展性。272.2源码安装282.2源码安装本课程基于Ubuntu18.04系统/ROSMelodic以及Autoware1.12.0版本指导安装运行代码所需环境。292.2源码安装终端常用命令使用快捷键Ctrl+Alt+T打开终端。302.2源码安装终端常用命令终端操作常用命令及其相应功能介绍:a)cd<目录路径>功能:切换工作目录。b)pwd功能:显示出当前工作目录的绝对路径。c)mkdir[选项]<目录名称>功能:创建目录。选项:-p(递归创建父目录)。312.2源码安装终端常用命令终端操作常用命令及其相应功能介绍:d)ls[选项]<目录名称>功能:列出目录的内容。选项:-l(详细列表)、-a(显示隐藏文件)。e)touch[选项]文件名称功能:创建空文件;若文件已存在,则更新其访问和修改时间戳。f)mv[选项]<源文件或目录><目地文件或目录>功能:为文件/目录改名,或将文件由一个目录移入另一个目录中。322.2源码安装终端常用命令终端操作常用命令及其相应功能介绍:g)cp[选项]<源文件名称或目录名称><目的文件名称或目录名称>功能:把给出的一个文件或目录拷贝到另一文件或目录中,或者把多个源文件复制到目标目录中。选项:-r(递归复制目录)、-i(覆盖前提示)。h)sudo[选项][指令]功能:以超级用户(root)权限执行命令。默认需输入当前用户密码。332.2源码安装ROS安装以Melodic版本为例介绍ROS的安装方法。(1)添加ROS软件源,在终端输入以下命令:(2)添加密钥,在终端输入以下命令:$sudoshc'echo"deb/ros/ubuntu$(lsb_release-sc)main">/etc/apt/sources.list.d/ros-latest.list'
$sudoapt-keyadv--keyserver'hkp://:80'--recv-keyC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
342.2源码安装ROS安装以Melodic版本为例介绍ROS的安装方法。(3)安装ROS,在终端输入以下命令:(4)初始化rosdep,在终端输入以下命令:$sudoaptupdate$sudoaptinstallros-melodic-desktop-full$sudorosdepinit$rosdepupdate352.2源码安装ROS安装以Melodic版本为例介绍ROS的安装方法。(5)设置环境变量,在终端输入以下命令:(6)安装rosinstall,在终端输入以下命令:$echo"source/opt/ros/melodic/setup.bash">>~/.bashrc$source~/.bashrc$sudoaptinstallpython-rosinstallpython-rosinstall-generatorpython-wstoolbuild-essential362.2源码安装系统依赖在终端输入以下命令:$sudoaptupdate$sudoaptinstall–ypython–catkin–pkgpython–rosdepros–$ROS_DISTRO–catkin$sudoaptinstall–ypython3–pippython3–colcon–common–extensionspython3–setuptoolspython3–vcstool$pip3install–Usetuptools372.2源码安装Autoware安装(1)创建工作空间,在终端输入以下命令:(2)以1.12.0版本Autoware.AI为例,下载Autoware.AI工作区配置,在终端输入以下命令:$mkdir–pautoware.ai/src$cdautoware.ai
$wget-Oautoware.ai.repos"/autowarefoundation/autoware.ai/autoware/raw/1.12.0/autoware.ai.repos?inline=false"382.2源码安装Autoware安装(3)将Autoware.AI下载到工作区,在终端输入以下命令:(4)使用rosdep安装依赖项,在终端输入以下命令:$vcsimportsrc<autoware.ai.repos$rosdepupdate$rosdepinstall–y––from-pathssrc–ignore–src–rosdistro$ROS_DISTRO392.2源码安装Autoware安装5)编译工作区情况1未安装CUDA,在终端输入以下命令:情况2已安装CUDA,在终端输入以下命令:$colconbuild––cmake–args-DCMAKE_BUILD_TYPE=Release$AUTOWARE_COMPILE_WITH_CUDA=1colconbuild‐cmake‐args‐DCMAKE_BUILD_TYPE=Release402.2源码安装Autoware运行以运行官方示例数据为例,在终端多标签中分别输入以下命令运行Autoware:(1)示例数据a)下载示例点云/矢量地图数据:b)下载rosbag格式示例数据(LiDAR:VELODYNEHDL-32E;GNSS:JAVADGPSRTKDelta3):$wget/sample_moriyama_data.tar.gz$wget/sample_moriyama_150324.tar.gz412.2源码安装Autoware运行(2)运行示例a)假设示例数据下载至~/Downloads文件夹。在Home目录下创建.autoware文件夹并拷贝“~/Downloads”文件夹中的示例数据到“~/.autoware”文件夹内(需要查看文件夹时直接使用快捷键Ctrl+H显示隐藏文件夹.autoware),然后解压:$cd~$mkdir.autoware$cd.autoware$cp~/Downloads/sample_moriyama_*.$tarzxfvsample_moriyama_150324.tar.gz422.2源码安装Autoware运行(2)运行示例输入以下命令启动地图(启动地图后如需终止进程,可在终端界面使用快捷键Ctrl+C强制中断程序):c)使用快捷键Shift+Ctrl+T在终端新建标签,在新标签中输入以下命令启动定位:$cdautoware.ai$sourceinstall/setup.bash$roslaunchautoware_quickstart_examplesmy_map.launch$sourceinstall/setup.bash$roslaunchautoware_quickstart_examplesmy_localization.launch432.2源码安装Autoware运行(2)运行示例使用快捷键Shift+Ctrl+T在终端新建标签,在新标签中输入以下命令打开可视化工具RViz:打开RViz后显示的是默认初始界面,为了配合示例,需要加载官方的配置文件。在RViz可视化工具界面中依次选择File→OpenConfig或是直接使用快捷键Ctrl+O打开对话框加载文件“~/autoware.ai/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo/default.rviz”,然后点击Open进行配置。$sourceinstall/setup.bash$rviz442.2源码安装Autoware运行(2)运行示例e)使用快捷键Shift+Ctrl+T在终端新建标签,在新标签中输入以下命令回放解压后示例文件sample_moriyama_150324.bag中的数据(回放过程中可在终端界面点击空格键Space暂停或继续):$cd~/.autoware$rosbagplaysample_moriyama_150324.bag452.3常用功能组件说明462.3常用功能组件说明启动文件启动文件(.launch)是一种通过XML文件实现多节点配置和启动的途径,其不仅可以同时启动一组节点,还可以自动启动节点管理器,而且可以实现每个节点的各种配置(相关节点和节点管理器的内容会在下一章系统介绍)。在上一节运行示例启动地图时,用到了启动文件“~/autoware.ai/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo/my_map.launch”。$cdautoware.ai$sourceinstall/setup.bash$roslaunchautoware_quickstart_examplesmy_map.launch472.3常用功能组件说明启动文件以“my_map.launch”为例。<launch><!--loadparametersforndt_matching--><rosparamcommand="load"file="$(findautoware_quickstart_examples)/config/headless_setup.yaml"/><!--TF--><includefile="$(envHOME)/.autoware/data/tf/tf.launch"/>
<!--PointCloud--><nodepkg="map_file"type="points_map_loader"name="points_map_loader"args="noupdate$(envHOME)/.autoware/data/map/pointcloud_map/bin_Laser-00167_-00864.pcd$(envHOME)/.autoware/data/map/pointcloud_map/bin_Laser-00153_-00852.pcd$(envHOME)/.autoware/data/map/pointcloud_map/bin_Laser-00159_-00859.pcd$(envHOME)/.autoware/data/map/pointcloud_map/bin_Laser-00160_-00861.pcd$(envHOME)/.autoware/data/map/pointcloud_map/bin_Laser-00148_-00849.pcd$(envHOME)/.autoware/data/map/pointcloud_map/bin_Laser-00168_-00866.pcd…"/>
<!--VectorMap--><nodepkg="map_file"type="vector_map_loader"name="vector_map_loader"args="$(envHOME)/.autoware/data/map/vector_map/lane.csv$(envHOME)/.autoware/data/map/vector_map/line.csv$(envHOME)/.autoware/data/map/vector_map/utilitypole.csv$(envHOME)/.autoware/data/map/vector_map/curb.csv$(envHOME)/.autoware/data/map/vector_map/node.csv$(envHOME)/.autoware/data/map/vector_map/gutter.csv$(envHOME)/.autoware/data/map/vector_map/point.csv…"/>
</launch>482.3常用功能组件说明启动文件启动文件my_map.launch中包含一个根元素<launch>和两个节点元素<node>。XML文件中必须包含一个根元素,其用<launch>标签定义,而启动节点则是用<node>标签定义。启动文件“my_map.launch”中用到了pkg、type、name和args四个属性。其中,pkg定义节点所在的功能包名称,type定义节点的可执行文件名称,name定义节点运行的名称,args定义节点需要的输入参数。此外,启动文件“my_map.launch”中的<rosparam>用于实现参数设置,可以通过设置command属性为“load”将YAML格式文件中的参数加载到参数服务器。492.3常用功能组件说明坐标变换库车辆在道路环境下实现自动驾驶往往涉及大量组件元素,不同组件元素有各自对应的坐标系(如世界坐标系、车辆坐标系、传感器坐标系与地图坐标系等),坐标系之间存在一定的变换关系。以“~/.autoware/data/tf”为例,tf是一个允许用户随时跟踪多个坐标系的功能包(相关功能包的内容会在下一章系统介绍),其使用树形数据结构让用户可以完成任意坐标系上点、向量等在两个坐标系间的变换。建立好世界坐标系、车辆坐标系与地图坐标系三者之间的关系后,车辆在世界坐标系中的位置就可以用一个向量来表示。502.3常用功能组件说明坐标变换库一般车辆坐标系的坐标原点O位于车辆后轴中心,xOz平面处于车辆左右对称的平面内,其中x轴正方向平行于车辆底盘平面指向车辆的前方,z轴正方向指向正上方,y轴正方向指向车辆左侧。512.3常用功能组件说明坐标变换库使用view_frames工具生成tf树的信息,在终端输入以下命令:$cd~/.autoware/data/tf$rosruntfview_frames$evinceframes.pdf522.3常用功能组件说明坐标变换库使用上述命令会生成.pdf文件并通过打开文件显示整棵tf树的信息。532.3常用功能组件说明坐标变换库如tf树的信息所示,在当前系统存在世界坐标系(worldframe)、地图坐标系(mapframe)、车辆坐标系(base_linkframe)、激光雷达坐标系(velodyneframe)、GPS坐标系(gpsframe)以及移动坐标系(mobilityframe)。可以使用tf_echo工具查看指定两坐标系之间的变换关系。以“查看‘<source_frame>/世界坐标系’与‘<target_frame>/地图坐标系’之间的变换关系”为例,在终端新建标签,在新标签中输入以下命令:$rosruntftf_echo/world/map542.3常用功能组件说明数据可视化工具三维可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年电子商务师三级笔试复习指南
- 2026年可持续城市发展师中级笔试模拟题
- 2026年保健知识幼儿园小班春季
- 2026年生态保护师备考资料
- 2026年法兰基础知识讲解
- 2026年电子商务师招聘模拟题库
- 2026年体育卫生与健康知识
- 2026年模态分析接触问题解答
- 2026年电商客服招聘笔试题库
- 国外社区延续护理服务模式研究
- 2026中煤绿能科技(北京)有限公司本部及所属企业招聘备考题库含答案详解
- 2026年初级社会工作者《社会工作综合能力》试题及答案
- 智慧中小学平台培训课件
- DB23∕T 3031-2021 玉米种质田间抗旱性鉴定技术规程
- T-HBCEQSA 001-2025 湖北省建筑工程安全文明施工现场评价标准
- 干熄焦安全培训课件
- 云南省楚雄彝族自治州2024-2025学年八年级下学期期末考试数学试卷(含答案)
- 运维培训知识课件
- 2025年徐州市中考地理生物合卷试题卷(含答案及解析)
- 湖南省2025年初中学业水平考试地理试卷真题附同步解析
- 人教版2025-2026学年六年级上册数学解题能力竞赛试题【含答案】
评论
0/150
提交评论