diff --git a/UMCar/readme.md b/UMCar/readme.md index 76a81052..12ae5fdc 100644 --- a/UMCar/readme.md +++ b/UMCar/readme.md @@ -46,6 +46,7 @@ 1. 感知 2. 定位 3. 规划 + 4. 控制 [comma.ai(无人驾驶公司)的这两千行Python/tf代码 Learning a Driving Simulator](https://github.com/Ewenwan/research) @@ -146,9 +147,16 @@ gps不能正常使用时: 自动驾驶汽车的行为决策与路径规划是指依据环境感知和导航子系统输出信息,通过一些特定的约束条件如无碰撞、安全到达终点等,规划出给定起止点之间多条可选安全路径,并在这些路径中选取一条最优的路径作为车辆行驶轨迹。 -* 路径规划:即路径局部规划时,自动驾驶车辆中的路径规划算法会在行驶任务设定之后将完成任务的最佳路径选取出来,避免碰撞和保持安全距离。在此过程中,会对路径的曲率和弧长等进行综合考量,从而实现路径选择的最优化。 +* A. 驾驶任务规划(路线规划,A点到B点的最佳路线):即**全局路径规划**,主要的规划内容是指行驶路径范围的规划。当自动驾驶汽车上路行驶时,驾驶任务规划会为汽车的自主驾驶提供方向引导方面的行为决策方案,通过GPS 技术进行即将需要前进行驶的路段和途径区域的规划与顺序排列。 + +路线规划 输入 地图 + 当前位置 + 目标位置, 地图被转换为 节点连接图,A* 图路径搜索算法,最短路径搜索(当前节点成本+候选节点成本最小) + +* 路径规划(轨迹规划,轨迹点序列):即 路径**局部规划**时,自动驾驶车辆中的路径规划算法会在行驶任务设定之后将完成任务的最佳路径选取出来,避免碰撞和保持安全距离。在此过程中,会对路径的曲率和弧长等进行综合考量,从而实现路径选择的最优化。 + +轨迹点序列 = 2D位置点 + 时间 = 3D轨迹序列 + +轨迹成本函数(偏离道路中心 、 碰撞可能性、速度限制、轨迹乘客舒适度(轨迹曲率加速度)) -* 驾驶任务规划:即全局路径规划,主要的规划内容是指行驶路径范围的规划。当自动驾驶汽车上路行驶时,驾驶任务规划会为汽车的自主驾驶提供方向引导方面的行为决策方案,通过GPS 技术进行即将需要前进行驶的路段和途径区域的规划与顺序排列。 规划前需要 预测外界环境将会发生什么: @@ -161,11 +169,28 @@ gps不能正常使用时: apollo 使用RNN 模型 预测 车辆的 目标车道 ,然后根据车辆目标车道序列,预测车辆行为轨迹 +**Frenet坐标系**是一种以比传统**x,y笛卡尔坐标系**更直观的方式表示道路位置的方式。用Frenet坐标,我们使用变量 s和d描述车辆在道路上的位置。该s坐标表示沿道路的距离(也称为纵向位移)和d坐标表示道路上的左右位置(也称为横向位移)。 + +由于通常道路都是曲折的,这样的话用笛卡尔坐标系描述道路会非常复杂,但是如果采用Frenet坐标系,Frenet坐标系是一道路中间线为坐标系分割轴 + +离散化解决: +路径规划,生成车辆可行的 轨迹(道路分成格子(单元格),格子分为序列点,点连线),使用成本函数进行评估 + +速度规划,速度曲线规划,ST图,速度-时间二维图,图中标记动态障碍物的区域。 + +折线段-----通过**二次规划**,使用平滑的非线性曲面来拟合这个 折线段 + +然后使用 Lattice规划 轨迹生成方法 + +三维轨迹 分解为 ST (纵向时间轨迹)轨迹 和 SL(横向时间)轨迹 ,分别求取,然后合并。 + +定速巡航模式、跟随模式、停止模式 **自动驾驶汽车主要使用的行为决策算法有以下3 种** * 基于神经网络:自动驾驶汽车的决策系统主要采用神经网络确定具体的场景并做出适当的行为决策。 * 基于规则:工程师想出所有可能的“if-then 规则”的组合,然后再用基于规则的技术路线对汽车的决策系统进行编程。 + * 混合路线:结合了以上两种决策方式,通过集中性神经网络优化,通过“if-then 规则”完善。混合路线是最流行的技术路线。 感知与决策技术的核心是人工智能算法与芯片。人工智能算法的实现需要强大的计算能力做支撑,特别是深度学习算法的大规模使用,对计算能力提出了更高的要求。随着人工智能业界对于计算能力要求的快速提升,进入2015 年后,业界开始研发针对人工智能的专用芯片,通过更好的硬件和芯片架构,在计算效率上进一步带来大幅的提升。