autoware导航业务框架专题之一:开源无人驾驶项目autoware解读
系列文章目录
待完成:完成后进行整理
文章目录
较有用
-
文章目录
-
前言
-
一、Autoware的整体架构及模块组成
-
- 对Autoware的概述
-
- 从系统层深入探讨
- (1)基于系统组件图展开分析
- (2)算法运行机制及数据流分析
- (3)数据传输路径探讨
- (4)聚焦于节点图解析【具有重要价值
-
-
- Autoware 运算环节(核心)
-
(1)感知层
-
- (1)目标检测与追踪系统
-
- Detection 检测节点
-
- (1)lidar_detector
- (2)image_detector
- (3)image_tracker
- (4)fusion_detector
- (5)fusion_tools
- (6)object_tracer
-
第二部分的目标预测模块
- 第二部分的目标预测模块项
-
第一部分的移动预测器
- 第二部分的碰撞预测器
矢量化
矢量化
地图矢量化
- (4)定位系统模块
-
- Localization: 定位子系统节点:
- (1)lidar_localizar
- (2)gnss_localizer
- (3)dead_reckoner
-
(2)决策规划模块
(1)路径规划模块
- (2)运动规划:运动规划节点集
-
- 运动规划:A*路径生成器
-
- (1)速度追踪型路径生成器:velocity planner
-
(2)A*路径生成器:astar_planner
-
(3)自适应动态搜索路径生成器:adas_lattice_planner
-
(4)基于路点跟踪的路径跟踪型路径生成器:waypoint遵循算法
-
(5)开环型路径生成器:open-loop planner
-
......
- (3)行为规划Behavioral Planning
-
Path following路径跟踪
Path following路径跟踪
路径跟踪模块
* 5.Autoware运动仿真Wf_simulation
按照功能分类
具体功能模块
- 第三章 autoWare 实操指南
-
[1] autoWare 官方 Git 学习指南
- [2] 用户指南:基础操作指引(以官方流程为准)
- [3] 构建无人驾驶测试平台的实践步骤
-
总结
-
- 部署经验总结
-
参考资料
-
前言

无人驾驶Autoware的相关教程及博客,请您收看专栏:<>>
无人车&无人机导航合集
<>
由于认知能力有限,请大家给予更多的宽容和支持;对于任何问题都希望能与大家一起探讨交流
由于其只考虑了环境几何信息, 常常忽略了无人机本身的运动学与动力学模型.因此, 其得到的轨迹往往显得比较“突兀”, 不适合直接作为无人机的控制指令
一般是二次优化, 这里用到较多的是优化方面的知识
这种划分方式是我在权衡了原理与功能的基础上进行的初步划分。在实际产品开发过程中,则需要基于对各算法功能及作用位置的理解,在此基础上实现融会贯通。不能简单模仿或生搬硬套;例如,在hybrid A 和 RRT*算法下得到的路径更加平滑,则后续轨迹优化任务所需权重降低较为合理;而当前机器人/无人驾驶研发需求尚未成熟到能够覆盖多个功能阶段,则采用简单的状态机(fsm)即可完成现有任务的状态转移逻辑。
本文初步了解开源无人驾驶项目autoware解析 的内容,并会对具体内容进行进一步介绍。对于其他模块,则建议参考我的其他文章。
提示:以下是本篇文章正文内容
一、Autoware的整体框架和模块
1.Autoware介绍
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
Autoware支持以下功能:
(1)传感器校准
(2)传感器融合
(3)各种数据记录
(4)3D本地化
(5)3D映射
(6)面向云的地图连接自动化
(7)汽车/行人/物体检测
(8)交通信号检测
(9)车道检测
(10)对象跟踪
(11)路径规划
(12)智能手机导航
(13)加速/制动/转向的路径跟踪控制
(14)软件仿真
(15)虚拟现实
整个autoware中整合了多种算法 ,无法一键启动。建议根据自身需求选择并配置相应的功能模块后进行系统启动。
2.从多个角度对autoware进行剖析
每个模块采用它自己的一套算法
(1)从Autoware的系统层进行剖析

(2)从系统组件框图进行剖析

SLAM建图部分–静态地图及矢量化,其他地图图层生成
其中涉及SLAM建图的静态地图处理及矢量化处理,并生成其他相关地图图层
其中涉及SLAM建图的静态地图处理及矢量化处理,并生成其他相关地图图层
(3)从算法的基本控制和数据流进行剖析

(4)从Autoware的节点图进行剖析【较有用】

(5)从其他图例进行剖析

.
.
3.Autoware运算部分(核心)
(1)感知部分
(1)目标检测、跟踪模块
防盗标记–盒子君hzj
防盗标记–盒子君hzj
(2)关键技术
1)视觉全景图像融合技术
将独立的图像拼接成无缝360度的环视图
对图像数据进行精确解析以获取文本信息,并通过分析交通标志符号完成标志物识别功能的同时,在实时场景下完成动态人车关系的信息提取
3)点云数据配准技术
点云畸变的纠偏
4)基于激光雷达的三维空间障碍物识别技术通过分析获取的激光雷达点云数据进行判断从而实现对行人非移动物体以及动态障碍物等的感知与分类
防盗标记–盒子君hzj
防盗标记–盒子君hzj
(4)目标跟踪算法
我们采用了基于卡尔曼滤波和相关算法的解决方案:
在处理非线性系统的场景下,卡尔曼滤波假设车辆遵循匀速运动模式具有较小的计算负担,并且能够满足实时处理的需求。
粒子滤波器能够在非线性动态系统中实现状态估计任务;我们的自动驾驶汽车以及履带式车辆均正在进行位移操作。
我们采用卡尔曼滤波器与粒子滤波器进行处理,在具体场景下选择合适的算法。我们将这些算法被应用于二维图像区域以及平面内的三维空间中的点云处理。
Detection检测节点
(1)lidar_detector
防盗标记–盒子君hzj
防盗标记–盒子君hzj
(2)image_detector
从摄像头获取图像数据,并实现基于图像的目标识别功能。常用的算法有R-CNN、SSD以及Yolo,在实际应用中能够实现多类别(如汽车、行人等)的实时目标检测能力。
(3)image_tracker
通过image_detector进行图像检测并实现目标追踪功能。该算法采用Beyond Pixels技术,并将图像中的目标追踪结果投射至三维空间中;随后将lidar探测器的结果与之整合后生成最终的目标追踪数据。
(4)fusion_detector
接收激光雷达获取到的单帧扫描点云数据以及摄像头捕捉到的成像信息,在三维空间中实现更为精确的目标识别。为了提高检测精度,在标定阶段需要对激光雷达与相机的位置进行协同校准。目前系统主要采用MV3D算法来进行标定计算。
(5)fusion_tools
通过融合 lidar_detector 和 image_detector 的数据输出, 将分类信息纳入到lidar_detector的聚类结果中进行后续处理
(6)object_tracter
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
(2)目标预测模块
为了实现自动驾驶系统的安全运行是首要任务。为此,感知模块必须精确地计算出"自我"飞行器在三维空间中准确的位置映射,并能有效检测周围场景中存在的对象作为交通信号灯的状态。通过预测模块的数据信息推算出追踪目标的位置,在该系统中借助于卡尔曼滤波算法和3D高精度地图的支持下运用概率机器人技术和基于规则的系统架构,并且还采用深度神经网络技术辅助完成这一过程
目标预测模块节点
(1)moving_predictor
基于目标跟踪结果的分析, 用于预测附近物体的未来运动轨迹. 例如, 在道路场景中观察到的车辆或行人的动态行为.
(2)collision_predictor
防盗标记–盒子君hzj
防盗标记–盒子君hzj
(3)传感器采集模块、地图构建SLAM模块、地图服务server模块【矢量化】
(1)传感器采集模块
传感器和计算机的规格在很大程度上取决于功能自动驾驶要求
摄像头(Camera)信息_
主要用于提供广域360度视野,并被用于探测移动物体在识别交通信号灯时的行为。
防盗标记–盒子君hzj
(3)惯导系统(IMU)信息
(4)定位系统(GNSS)信息
传感器采集方案 采集、建图和处理数据的部分由一台独立运行的数据采集设备完成
(1)低成本移动激光测量进行数据采集的方案

在小车上等移动设备上获取了激光雷达捕捉到的高精度点云数据、以及图像信息、同时还有GPS/IMU设备记录的飞行轨迹数据
(2)一体化高精度地图SLAM的解决方案

(2)地图构建SLAM模块
防盗标记–盒子君hzj
每次扫描时采集并维护3D点云数据以生成动态更新的三维地图
如何确定高精度地图的不同输出格式?
请参阅README文件中所列的具体信息。该文档明确指出了xml、bin、txt以及lb1等多种文件格式的存在,并指出每个文件格式都有相应的解析工具支持。这些文件在结构和信息上具有相似性
(3)地图服务server模块【地图矢量化】
(1)矢量地图图例

防盗标记–盒子君hzj
(3)矢量地图在 业务场景 中的应用主要集中在无人驾驶领域中
规划算法按重要性排序的矢量地图组件及在自动驾驶系统中的用途

防盗标记–盒子君hzj
修改内容
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记-盒子君hzj
步骤如下:
(1)应用点云制图软件生成高分辨率地图
(2)基于手工操作的地图矢量编辑工具
工具一:vector map builder
工具二:ztlidar
(5)Autoware ADAS Map矢量地图的元素介绍
防盗标记–盒子君hzj
防盗标记–盒子君hzj
存储于src/autoware/core_planning/lane_planner/include/lane_planner/lane_planner_vmap.hpp中。该文件包含用于决策规划所需的一大部分矢量地图要素数据。
struct VectorMap
{
std::vector<vector_map::Point> points;
std::vector<vector_map::Lane> lanes;
std::vector<vector_map::Node> nodes;
std::vector<vector_map::StopLine> stoplines;
std::vector<vector_map::DTLane> dtlanes;
};
经过Autoware系统对激光点云数据进行分类处理并进行下采样后操作完毕后
1、点元素(point.csv\node.csv\dtlane.csv)
格式说明如下:

point点的属性如下:
1、通常point点相隔1米分布

2、point点为属性变更点或者多条lane规划线的链接节点

防盗标记–盒子君hzj
防盗标记–盒子君hzj

防盗标记–盒子君hzj
防盗标记–盒子君hzj

2、车道元素(lane.csv)
(1)车道元素(lane.csv)格式说明

lane 代表了道路的主要组成部分,在自动驾驶系统中被定义为供小车行驶的道路中心线。由于通常在实际道路上并不直接存在这些线条(即所谓的"显示道路"),因此 lane 的位置需要通过人为规划来确定。节点用于标识特定车道的位置,在计算过程中起着关键作用:每条 lane 的有效长度即为前后节点之间的距离。通过构建完整的道路网络模型,并结合节点信息能够更加精准地模拟车辆行驶路径。同时,在绘制整个道路网络模型时必须确保其信息完整且易于理解

3、所有类型的线元素及其相关参数存储在指定路径下的文件中
(1)第一部分详细说明了所有线元素的基本属性及其存储位置
该文件包含了所有线元素的核心参数信息

(2)Whiteline格式说明
Whiteline属于车道线条,并非虚拟线条而是真实存在的线条类型。它包括道路边缘上的白色标线、黄色标示带以及虚白导流线条等类型

4、杆元素
5、地理信息数据中的面单元(area.csv/crosswalk.csv/road_surface_mark.csv)

防盗标记–盒子君hzj
防盗标记–盒子君hzj
格式说明如下:

(2)面元素(crosswalk.csv)格式说明

格式说明如下:

(3)面元素(road surface_mark.csv)格式说明
格式说明如下:

3、元素关系图例

(1)点元素和lane元素的关系

Point、node、dtlane、lane是矢量地图vector的关键组成部分,在构建地图时任何一个都不能缺少。通过这四个关键组成部分就可以搭建一个基础的高精度地图模型,并将其导入到autoware系统中进行路径规划仿真的极精确车辆操作。然而这些因素仍然无法满足自动驾驶所需的复杂需求
防盗标记–盒子君hzj
(2)局部地图的建立(用于轨迹规划)
使用三维雷达构建密集的局部三维点云图,并将其转换为八叉树代价图作为三维局部路径规划的基础。
随后将压缩后的二维点云图转换为栅格代价图作为二维路径规划的基础。
该方法通常应用于道路级的动态场景处理(如车道变道、返回航线、障碍物避让等)。
(7)把地图上传到服务器,进行共享调用
(4)地图信息的传递

Lane.csv文件经过多层次处理得到的结果约为1米的waypoint,该waypoint包含了位置信息和速度信息两个方面
(5)地图数据包获取
方法一:Rosbag store中存在大量传感器数据集需经费用化使用。
方法二:自行搭建ROS仿真环境以采集传感器数据。
(4)定位模块
防盗标记–盒子君hzj
Autoware主要依赖NDT算法来进行车辆定位。这主要是因为无损检测中的计算资源消耗与地图尺寸无关性较强的原因,因此能够实现高清晰度和高分辨率三维数据的大规模地图构建。
此外, Autoware还提供其他本地化与映射算法, 如迭代最近点(ICP)算法. 这一功能则使Autoware用户能够根据其应用程序的需求选择最适合的算法.
Localization:定位模块节点:
(1)lidar_localizar
估算车辆在全局坐标系中的当前位置(x,y,z,roll,pitch,yaw),并利用LIDAR获取的数据以及预先准备的地图信息进行定位。autoware建议采用基于正态分布变换(NDT)的方法来匹配当前帧与三维地图

(2)gnss_localizer
接收并解码来自GNSS接收器的NEMA数据以获取位置信息(x,y,z,roll,pitch,yaw)。这些数据不仅可以直接反映车辆当前的位置状态,还可以用于初始化lidar_localizar的位置基准
(3)dead_reckoner
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
(2)规划决策部分
该系统的规划任务设计基于半自动化模式,在复杂场景下需驾驶员对路径规划进行监控。具体而言,在车辆停止或纠正故障行为时需特别注意车辆停止或纠正故障行为时的情况处理。
规划体系是融合了概率机器人驱动的技术与以场景规则为基础构建的系统,并且该系统在遵循交通法规的前提下实现了道路变换、车道重叠区域的整合以及直行通行等功能
根据提前生成的详细地图数据,在概率机器人技术的支持下,生成一条从起始点至目标点的安全且光滑的路径。自动驾驶系统将沿规划路径执行持续自主巡逻任务。
(1)任务规划Misson planning
在整个系统范围内设定起始点位置和目标点位置,并根据全局规划算法生成一段静态路径信息;当系统完成并行计算后,在完成并行计算的基础上进行后续处理,并将生成的静态路径信息传递给后续模块;随后立即开始执行本地运动规划逻辑以确保路径的有效性
Misson planning:任务规划节点
(1)route_planner
确定到达目标地点的全局路径,并对道路route网中的一系列交叉路口进行分析和记录。
(2)lane_planner
基于route_planner提供的系列十字路口结果数据,确定全局路径所包含的各条lane,其中每个lane是由一系列waypoint点构成
(3)waypoint_planner
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
(4)waypoint_maker
waypoint_maker 是一个用于存储和调用手动创建的方式点文件工具。在实际操作中,在开启定位装置后会详细记录车辆的位置数据、行驶速度等关键参数,并将这些收集的数据整合生成完整的路径文件。随后可以通过导入本地存储的数据,并将计算出的最佳行驶路线提供给后续处理系统
(2)运动规划Motion planning
planning 根据一段 temporal waypoint 轨迹规划生成局部可行与全局可行轨迹,在考虑车辆状态以及三维地图显示的位置及其附近的障碍物分布情况下,在局部环境下规划出一条最优路径;周围的物体、交通法规以及预期的目标都被纳入考量
Motion planning:运动规划节点
(1)velovity_planner
更新车辆速度数据,在被跟踪的目标waypoint中都包含有速度信息这一前提下设计了一个动态调整机制。该模块旨在基于车辆的实际运行状态持续优化和调整速度数据,并通过这种方式实现能够在红灯前停车并进行减速或加速等操作的能力。
(2)astar_planner
防盗标记–盒子君hzj
防盗标记–盒子君hzj
(3)adas_lattice_planner
采用State Lattice规划算法实现了目标定位功能,并预先设置了参数列表以及语义地图信息;通过最小跳跃样条曲线实现了局部路径生成与优化,在当前位置前方生成了多条可行路径;经过计算后得到了无人车执行的目标轨迹waypoint;该目标轨迹waypoint可用于进行障碍物规避或车道变换操作
(4)waypoint_follower
这个模块负责执行 Pure Pursuit算法用于实现路径跟踪。能够生成一系列的运动指令用于控制车辆运行。这些发送的消息会被两个接收装置接收。其中一个是与主车控制系统相连另一个则是通过线控接口与系统I/O端口交互。通过这种方式整个系统的自动运行得到了确保。
(5)open_planner
原理和实现写在我其他博客
…
(3)行为规划Behavioral Planning
防盗标记–盒子君hzj
Autoware开发了一个智能状态机,并作出决策以应对道路状况。通过深度学习的方法,在分析驾驶状态时识别行车过程中的行为决策。例如,在车道变换、合并以及超车时。
4.Autoware控制部分【Path following路径跟踪】
(1)介绍
控制车辆跟随运动规划器生成的路径
Autoware已部署并在多辆带有无线控制器的车辆上进行了测试。Autoware的计算所得结果包括一组速度、角速度、轮角和曲率数据。这些数据通过车辆接口传递指令给无线控制器。转向和油门操作应由无线控制器执行。通常采用PID控制算法
(2)算法类型
(1)PID控制器
一般常见于线控底盘系统的油门操作、刹车操作以及转向操作的控制。
常规使用PID控制器;当部分参数设置不当时,则会导致车辆稳定性难以维持。
(2)pure pursuit纯跟踪算法
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
防盗标记–盒子君hzj
(3)MPC算法
在另外的博客写
5.Autoware运动仿真Wf_simulation
(1)介绍
wf_simulation类似于一个虚拟模型构建了一个仿真的汽车坐标系base_link,在这个系统中能够响应速度与转向指令的变化,并实时反馈该坐标系下的当前位置与姿态信息及对应的速度值。(2)操作步骤
首先设置必要的参数值;启动车辆的动力系统;接收速度指令;接收转向指令;实时获取车辆的位置信息;根据传感器数据计算出当前车辆的姿态与位置信息,并将这些数据反馈给控制模块。

防盗标记–盒子君hzj
防盗机制–盒子君hzj
二、autoware的源码解读
1.Autoware源码下载及解读方法
通过研究官方源码库的相关代码和文档资料(...),个人能够获取大量技术知识;结合界面上的操作流程以及运行时相关的launch文件逻辑进行深入分析(...),以便更好地理解程序设计原理;同时通过构建节点图的形式来辅助分析整个程序的工作流程。
通过官网提供的git仓库获取Autoware源码文件,并便于深入研究和学习其功能模块;所有链接最终都会汇总到文章末尾提供的参考资料部分中
步骤一:按照指导文档运行程序以观察其功能
步骤二:分析代码文档以理解逻辑流程
步骤三:对项目的整体架构有清晰的认识
步骤四:详细分析函数的作用域及其参数传递方式;同时深入探究其实现细节
步骤五:通过参考官方文档和技术资料来掌握核心概念
步骤六:将其应用到自身的项目结构中以积累实际操作经验
2.Autoware源码的具体功能包解读【按照功能分类】
(1)根据功能包的功能实现来解读的步骤
1、先看main函数,(1)设置的参数、(2)发布的话题、(3)订阅的话题
2、分析订阅的回调函数的代码逻辑
3、得到节点实现的功能
(2)根据不同功能包实现的功能进行对应功能包的解读
对autoware界面前台的功能模块进行代码解析过程分析
这一方面涉及到原理,在本文科普内容不作深入探讨的情况下进行讨论会显得力有未逮。
(3)Autoware导航文件架构解读

这个相当于autoware各个功能包的划分与归类工作,在我的理解中这更像是一个系统性布局框架。基于这一结构与相关组件的逻辑关系,在后续博客中我将按照这一架构和相关组件的逻辑关系,在后续博客中逐步深入探讨每个功能模块的核心原理,并通过具体实现细节来展示其内在机制。先提供一个整体概览图示会更有助于理解整体架构设计思路
三、autoware实操教程
主要式发掘autoware有什么功能
深入分析autoware的核心功能与应用价值
1.autoware官方git教程
这里的步骤教程其实在autoware的官方git仓库中已经非常详尽地发布过了。此外,在油管上也有相关的教学视频。为了便于大家快速掌握操作流程,请将所有步骤进行系统梳理与总结。
(1)Autoware的官方网站
https://github.io/Autoware-AI/autoware.ai
https://www.autoware.ai
(2)sample rosbag files
这个用tizi下载比较快
(3)Autoware Wiki介绍
https://github.com/Autoware-AI/autoware.ai/wiki
(4)Autoware-Manuals
https://github.com/CPFL/Autoware-Manuals
Katsuro Kato及其团队在第9届ACM/IEEE国际 cyber-physical系统会议上发表了题为"通过嵌入式系统实现自动驾驶汽车"的论文。他们的研究重点是"嵌入式系统支持自动驾驶汽车的实现"
S.\ Kato,\ E.\ Takeuchi,\ Y.\ Ishiguro,\ Y.\ Ninomiya,\ K.\ Takeda,\ and\ T.\ Hamada. \textquotedblleft An Open Approach to Autonomous Vehicles\textquotedblright,\ IEEE Micro,\ Vol. 35,\ No. 6,\ pp. 60-69,\ 2015. Link
2.Users Guide用户教程步骤(按照官方的方式试试水)
我这样表达步骤可能更清晰

3.搭建自己的无人驾驶项目field test步骤
我这样表达步骤可能更清晰(自己的经验,仅供参考)

.
.
.
总结
可以说Autoware只是一个辅助工具;实现源代码的内容,则需要自行学习;查阅相关资料(如百度),了解Autoware的基本架构;其整体架构较为复杂;解读它的内部机制在短时间内不可能完成;因此建议不要试图一次性全面研究所有代码;而是应该从自己需求出发逐步深入理解各个模块
感知与定位系统:包含动态障碍物的识别与追踪及预判功能(其中包含交通灯识别与分类);定位系统:基于GNSS的定位技术与基于激光扫描NDT的空间建模技术;地图数据库:高精度地图数据资源;规划系统:支持全局路线导入并管理多场景(包括车道切换与倒车泊车);控制层:实现基于纯追踪的算法与MPC优化控制策略;车机接口:支持标准CAN通信协议
部署经验总结
防盗标记–盒子君hzj
防盗标记–盒子君hzj
(5)使用bag_demo运行起来的时候仅仅只有一个CPU在运行是正常的,后面用自己的bag数据包自己选择算法的时候CPU运行就可选了
.
跑autoware的方法
autoware在整体编译不过的情况下,把对应的功能包移植出来运行
直接运行相关的demo launch就行(这个github本来就是有点问题!),阅读源码为主,整体运行不起来没问题的
.
.
参考资料
(1)官方视频介绍(ROSCon 2017 )
https://www.youtube.com/watch?v=XlXHLoIDohc
(2)官网提供的 PPT 简介,文档说明
https://github.com/CPFL/Autoware-Manuals
第(3)项 autoware 的 GitLab 项目连接
(4)付费官方 RosBag 数据包 获取 (仅限中国大陆地区)
(5)公司官网
https://tier4.jp/
(6)autoware 操作教程(很全)
https://www.ncnynl.com/archives/201910/3401.html
B站展示了 autoware 各种演示视频的设置
关于优酷 autoware 的中文介绍页面,请访问https://v.youku.com/v_show/id_XMzExNDQ0NzE2NA==.html?spm=a2hzp.8253869.0.0
(9)创客智造的教程
https://www.ncnynl.com/archives/201910/3401.html
(10)PIX教程
https://www.cnblogs.com/hgl0417/p/11844135.html
https://www.cnblogs.com/hgl0417/p/14617025.html
知道效果可以学习源码原理
通过了解其效果深入探究其代码实现
为了实现自动驾驶汽车在Gazebo环境中的配置,请访问<>
用于替代现有传感器,在仿真环境中增添自动驾驶汽车的感知系统 <>
使用NDT构建点云地图:<>
使用Hybrid a*进行路径规划:<>
使用聚类算法作物体检测:<>
采用Pure Pursuit算法与MPC策略实现路径跟踪控制:<>
