自动驾驶自主避障概况

Posted yuan〇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动驾驶自主避障概况相关的知识,希望对你有一定的参考价值。

文章目录

前言

在GitHub上找到了路径规划与运动规划方面不错的学习资料:

1. 自主避障在自动驾驶系统架构中的位置

    Claudine Badue[1]等人以圣西班牙联邦大学(UFES)开发的自动驾驶汽车(Intelligent Autonomous Robotics Automobile,IARA)为例,提出了自动驾驶汽车的自动驾驶系统的典型架构。如图所示,自动驾驶系统主要由感知系统(Perception System)和规划决策系统(Decision Making System)组成。感知系统主要由交通信号检测模块(Traffic Signalization Detector,TSD)、移动目标跟踪模块(Moving Objects Tracker,MOT)、定位与建图模块(Localizer and Mapper)等组成。规划决策系统主要由全局路径规划模块(Route Planner)、局部路径规划模块(Path Planner)、行为决策模块(Behavior Selector)、运动规划模块(Motion Planner)、自主避障模块(Obstacle Avoider)以及控制模块(Controller)组成。

图1-1 自动驾驶系统架构图

    自主避障功能的实现主要依赖于运动规划模块和定位与建图模块。自主避障模块接收由运动规划模块计算出的轨迹、定位模块所提供的车辆位置信息以及建图模块提供的地图信息,对轨迹进行适当的调整,并在必要时改变它(通常是降低速度),最后将该调整结束的轨迹传给控制模块进行车辆控制,以达到避障的功能。

2. 自主避障算法分类

    自主避障模块接收由运动规划模块计算出的轨迹、定位模块所提供的车辆位置信息以及建图模块提供的地图信息,对轨迹进行适当的调整,并在必要时改变它(通常是降低速度),最后将该调整结束的轨迹传给控制模块进行车辆控制,以达到避障的功能。本文将介绍一些关于自主避障算法,如向量直方图、虚拟势场法(APF)、智能避障算法以及强化学习算法等。
    Guidolini等人[2]在自动驾驶汽车IARA中应用了一个自主避障系统,在每个运动规划周期中,接收一个在线地图,表示汽车周围的环境,在线地图中自动驾驶汽车的当前状态,以及运动规划系统规划的轨迹。自主避障系统模拟轨迹,如果预测在轨迹中发生碰撞,自主避障系统会降低自动驾驶汽车的线速度,以防止碰撞。他们的软件架构如图2-1所示。

图2-1 IARA自主避障系统构成

    自动驾驶避障依赖于地图、定位与运动规划,地图模块包括离线地图与在线地图,定位模块提供车辆的位置信息,这两者都属于感知层的任务;运动规划模块则是自主避障实现的核心。运动规划模块负责计算从当前自动驾驶汽车的状态到当前目标的轨迹, T T T。该轨迹必须尽可能遵循由行为选择模块定义的路径, p j p_j pj,同时满足汽车的运动学和动力学约束,并为乘客提供安全和舒适性。
    对于运动规划产生的轨迹,有两种主流的定义方式:

  1. 将轨迹定义成一个由一系列控制命令组成的集合,即, T c = c 1 , c 2 , . . . , c ∣ T ∣ T_c = c_1,c_2,...,c_|T| Tc=c1,c2,...,cT,其中控制命令 c k = v k , φ k , Δ t k c_k = \\v_k,φ_k,Δt_k\\ ck=vk,φk,Δtk, v k v_k vk是无人驾驶车辆在 t = k t = k t=k时的速度, φ k φ_k φk是无人驾驶车辆在 t = k t = k t=k时的期望方位角, Δ t k Δt_k Δtk是无人驾驶车辆一个命令周期的时间。
  2. 将轨迹定义成一个由一系列状态组成的集合,即, T s = s 1 , s 2 , . . . , s ∣ T ∣ T_s = \\s_1,s_2,...,s_|T|\\ Ts=s1,s2,...,sT,其中状态 c k = p k , t k c_k = \\p_k,t_k\\ ck=pk,tk, p k p_k pk是一个位姿点, t k t_k tk是无人驾驶车辆达到预期位姿点所需要的时间。

    规划模块通过输出一个轨迹,将汽车具有安全性、舒适性的带到目标点。
    对于运动规划算法,González[3]给出了十分详细的介绍与分类,同时对常见算法的优缺点进行分析,见图2-2与表2-1。

图2-2常见运动规划与避障算法以及算法的时间线.(a)为Dijkstra算法.(b)为基于优化的方法.©为Lattice采样算法.(d)为A*算法.(e)为RRT算法.(f)用线和圆等简单几何图形去简化地图的算法.(g) Clothoid曲线.(h)多项式插值.(i)贝塞尔曲线.(j)三次样条曲线.

表2-1 常见运动规划与避障算法的优缺点


    Paden[4]主要从算法的稳定性、时间复杂度、算法复杂度、是否最优等方面对常见的Dijkstra算法、Lattice算法、A*算法以及一些融合算法进行分析。

2.1 人工势场法(APF)

    人工势场法(artificial potential field,APF)是由Oussama Khatib博士提出的一种应用于研究机器人的路径方法。人工势场法的基本原理就是通过一系列环境感知传感器来探知环境的障碍物情况,无人车在多个斥力势场和一个引力势场的和势场环境下沿着势场下降的方向运动。人工势场法是一种广泛应用的路径规划方法,适用于已知环境或未知环境。人工势场法本质上是一种控制方法,其轨迹并非像其他规划算法一样,而是由实时的控制量产生的。

图2-3 人工势场法势场可视化图。(a)引力势场。(b)斥力势场。

2.1.1引力势场的构建

    在势场中目标位置对无人车产生吸引的影响,构成引力势场,驱动着无人驾驶汽车向着希望的目标位置运动。无人驾驶汽车所受的引力大小主要和汽车与目标位置的间隔距离有关系,若无人车与目标位置间隔越大,引力就越大;反之,引力就越小。当无人汽车到达目标位置的时候,车和目标位置的间距为零,因此,无人车所受的引力逐渐减小为零。通过查阅资料发现,无人车引力和无人车、目标点三者之间的距离是成正比关系,因此,我们可以使用幂函数来对定义引力势场: U a t t = 1 2 K a t t P 0 m Uatt = \\frac12KattP_0^m Uatt=21KattP0m式中 K a t t K_att Katt —— 引力势场正比列系数;
     P 0 P_0 P0 —— 无人驾驶车辆和目标点位置的直线距离;
     m m m —— 引力势场因子。
     通常我们取引力势场因子 m = 2 m=2 m=2,引力势场正比列系数 K a t t K_att Katt可以视具体情况选取。
     无人驾驶汽车受到引力 F a t t F_att Fatt作用,引力 F a t t F_att Fatt是引力势场函数 U a t t U_att Uatt的负导数,意义是引力势场的变化最快方向。引力的大小是引力势场函数对无人车和目标位置之间的距离取的导数,因此可得: F a t t ( P 0 ) = − ∇ U a t t ( P 0 ) = − K a t t P 0 Fatt(P0) = - \\nabla Uatt(P0) = - KattP0 Fatt(P0)=Uatt(P0)=KattP0

2.1.2斥力势场的构建

    在人工势场法中障碍物对智能驾驶汽车会产生排斥的影响,构成斥力势场,引导着无人驾驶汽车远离障碍物运动,从而顺利躲避障碍物顺利到达目标点。无人驾驶汽车所受的斥力大小和距离有关系,此距离大小就是车和障碍物相隔的距离,如果无人车和障碍物相隔的距离很小,斥力就很大;反之,斥力就很小。当无人汽车离开障碍物时,如果两者之间的距离超过斥力势场的影响范围,无人车不会受到斥力的影响。通过查阅资料可知,斥力势场和无人车、障碍物的距离是呈反比的,可以将斥力势场定义为: U r e p ( P g ) = 1 2 K r e p ( 1 P g − 1 ρ ) 2 , P g ≤ ρ 0 , P g > ρ Urep(Pg) = \\left\\ \\beginarrayccccccccccccccc\\frac\\rm1\\rm2Krep\\left( \\frac1Pg - \\frac1\\rho \\right)^2,Pg \\le \\rho \\\\0,\\rm Pg > \\rho \\endarray \\right. Urep(Pg)=21Krep(Pg1ρ1)2,Pgρ0,Pg>ρ式中 ρ ρ ρ —— 障碍物对无人车产生斥力的最大作用范围;
     P g P_g Pg —— 障碍物和无人车的距离;
     K r e p K_rep Krep —— 斥力势场中的正比例系数。
     由斥力势场公式可知,斥力、引力势场之间是有区别的,无人车不会一直受到障碍物的影响,只有当无人车在障碍物影响范围内即无人车和障碍物的相隔距离 P g P_g Pg小于障碍物的物影响范围 ρ ρ ρ时才会受到斥力的作用,当无人车与障碍物的间距大于 ρ ρ ρ时,无人车将不会受到斥力影响。需要注意的是,当无人车靠近障碍物时,斥力会慢慢的增大,相应的斥力是斥力势场的负导数,表达式为: F r e p ( P g ) = K r e p ( 1 P g − 1 ρ ) 1 P g 2 , P g ≤ ρ 0 , P g > ρ Frep(Pg) = \\left\\ \\beginarraycccccccccccccccKrep(\\frac1Pg - \\frac1\\rho )\\frac1P_g^2,Pg \\le \\rho \\\\0,\\rm Pg > \\rho \\endarray \\right. Frep(Pg)=Krep(Pg以上是关于自动驾驶自主避障概况的主要内容,如果未能解决你的问题,请参考以下文章

IoT红外循迹避障小车

冯珏:自动驾驶汽车致损的民事侵权责任

无人驾驶技术揭秘从机器学习角度揭秘学习型避障小车的设计思路

自动驾驶中的机器学习

自动驾驶之避障方法研究

智能小车29:自动驾驶与机器学习