汪芷涵,林 立,韩东浍,李睿诚
(邵阳学院,湖南 邵阳 422000)
无人驾驶车已逐渐成为人们的主要交通工具之一。其属于轮式机器人范畴[1],利用计算机辅助绘图设计,通过构建预期路线数据图,基于数据驱动,实现路线规划的绘制[2]。但采用上述方法需要精确的数据模型及算法模型来实现障碍物的精确定位,绘制出避免障碍的路线,从而达到绘制路线的目的。目前,相关智能设备平台多样,涉及技术广泛,相关应用丰富(如表1)。
表1 不同应用的自动避让技术
自动避让无人驾驶车的研究已经取得了一定的成果,根据适用环境的不同需要运用不同的避障技术(如BUG算法、人工势场法、矢量场直方图等)。本研究介绍了基于STM32芯片的无人驾驶车在读取外部传感器数据、控制设备正常运行等方面的概念与设计,提出将无人驾驶智能车与机器人技术相结合,进行车辆工程开发,展望了其与人工智能及计算机视觉等学科的交叉融合发展。
Bug算法是一种简单的算法,用于克服小车运动中从起点s到目标点g 的意外障碍。Bug算法只假设了对环境的一个局部认识及全局目标,基于轮廓检测到从s到g的障碍,生成一个碰撞自由路径[7]。图1(a)[7]:有两个障碍,其中H1和H2是命中点,L1和L2是目标点。在Bug 1算法中,一旦检测到一个障碍i,系统就会围绕着它做一个完整的轮廓,从命中点Hi开始,Li是目标点,这个完整的轮廓旨在评估到目标Li的最小距离,系统继续轮廓运动,直到再次到达那个点,从那里沿着一条直线到达目标。这种技术效率很低,但能够保证系统移动到任何目标。在Bug 2算法中(图1(b)所示),障碍物轮廓从命中点Hi开始,在系统越过该线到达目标时结束,这就定义了障碍物的边界跟随行为的左点Li直接移动到目标上。如果检测到更多的障碍,则重复此过程[7]。
Bug算法很容易实现,当机器困在迷宫结构中,能够利用Bug 2算法得出最优解,且在开放空间中效率较高,但仍存在忽略机器本身运动学及传感器噪声对机器的影响等问题。
人工势场法于1985年被提出[13],基本思想是将机器人视为一个沉浸在目标与环境中存在的障碍物产生的潜在场中运动的粒子,目标产生一个吸引力,而每个障碍产生一个排斥力。图1(c)、(d)、(e)中[7]展示了吸引力、排斥力及吸引力与排斥力相结合的梯力度场。很明显,一个机器人从任意位置开始到目标的运动可以看作是机器人在起点处的一个无摩擦球的运动。修彩靖[16]等提出的改进人工势场能方法,既满足了安全性又消除了抖动问题,解决了传统人工势能场中目标点与障碍物过近的问题。
人工势场法是一种基于能量类型场的简单路径规划技术,对于一个静态的、完全已知的环境可以进行离线评估,提供机器人从起点到目标的速度路径,还可用于一个可容纳避障组件的在线版本中,但对于局部极小值的敏感性不足。
矢量场直方图(Vector field histogram,VFH)是一种实时避障方法,允许检测未知的障碍物,从而避免碰撞,引导移动机器人朝向目标[13]。VFH方法使用一个二维笛卡尔直方图网格作为一个世界模型,如图1(f)中所示。这个世界模型通过车载范围传感器采样的范围数据不断更新,采用一个两阶段的数据接收过程,以计算车辆所需的控制命令。
在第一阶段,考虑机器人瞬时位置的二维直方图网格的恒定大小子集被简化为一维极坐标直方图。极性直方图中的每个扇区都包含一个表示该方向上的极性障碍密度值。在第二阶段,算法从所有具有低极障碍密度的极直方图扇区中选择最合适的扇区,机器人的转向与该方向对齐[7]。建立一个二维笛卡尔直方图网格表示的障碍及一个活动窗口,将网格转接到一维极坐标直方图上,根据一维极坐标直方图计算转向角度及速度控制。无人驾驶小车的运行环境是未知的或部分已知的,因此矢量场直方图法的避障效率及优化路径仍存在不足。
自动驾驶车的创新集中于优化虚拟驾驶员,即车辆的大脑。自动汽车必须有一种感知车辆周围环境的方法,以精确定位,准确检测并对固定与移动的物体分类,测量这些物体的距离。大多数自动驾驶汽车采用传感与感知系统的组合,包括基于摄像头的嵌入式视觉系统、雷达及激光雷达传感器,这些传感技术具有互补优势。图2为自动驾驶车[15]。基于STM32单片机的无人驾驶车发展迅速,在自动避障方面取得了一定的进展。
第一款无人驾驶车以2018年电动汽车为基础,增加了必要的硬件,能够实现自动驾驶。软件部分增加了1个中央处理单元,1个开发工具包来运行图像处理,2个惯性测量装置,1个动态性激光雷达,2个立体声相机。硬件增加了1个转向执行器及2个制动执行器,1个为气动,1个为电动。
无人驾驶车自动避让原理是通过车载传感器获得自身位置信息及外界环境障碍物信息,通过车辆自身信息与外界障碍物信息进行比较计算出避障所需的最小安全距离,生成避障路径并计算前轮方向盘角度及行驶速度,使车辆自主完成行驶任务,到达目标点。对任意控制系统来说,主控芯片是必不可少的。STM32是近年来常见的高速处理器,内置资源丰富,内部集成达到7个,能够进行基本、通用、高级定时器的高速处理,取代传统的51单片机及低端新型处理器。目前,以STM32为核心控制芯片的无人驾驶车的研究越来越多,其中模块化设计避障系统方式多种多样。
Jingxiang Pei[8]等采用模块化设计,根据其功能分为3个模块,即避障模块、移动模块及清扫模块。超声波传感器、红外传感器及陀螺仪等传感器被用于感知周围环境。基于STM32微控制器的开发板可读取这些外部传感器的值,使用软件设计部分中的控制算法,对数据进行处理,以感知外部环境。处理后的数据被用作控制移动模块的基础,该模块控制机器人向前、向后、转向、停止及旋转。机器内含有8个超声波传感器,测量机器与障碍物之间的距离,并粗略估计环境大小及形状,当障碍物与机器之间的距离小于1 m时开始高精度激光测距。为了避免摩擦等干扰因素,采用PID算法,对角度及速度进行修正。算法流程如图3所示[8]。根据陀螺仪反馈的偏航角来判断实际的行程方向,并由编码器识别其速度,具有避障、防坠落、自动路线规划等功能。
郝帅红[4]提出了无人驾驶拖拉机控制系统,对Q/CR01-2015型山地拖拉机的摇杆动力供给、整体控制系统、操作系统及灯光系统进行设计,对其底层控制系统进行分析。设计思路如图4(a)所示[4]。主要由5部分组成,即SBUS发射器、SBUS接收机、底层控制系统的主控芯片、电子系统及液压伺服系统。主控芯片使用STM32F103系列单片机,电路如图4(b)所示。给主控芯片供电3.3 V,满足低功耗的需求。加入0.1 μF的去耦电容,增加了电路稳定性,去除干扰,芯片的NRST引脚为高电平状态,以确保芯片正常运作。遵守相应的控制程序,进行分析调试,快读准确地对应遥控器点火指令与液压缸的伸缩指令,满足底层控制系统性能需求,达到预期目标。
(a)无人驾驶拖拉机底层控制系统设计思路 (b)主控芯片与最小系统
随着无人驾驶技术的发展,其应用复杂程度越来越高,无论是在静态环境还是在动态环境中,障碍物规避及路径规划都发挥着重要的作用。可根据无人驾驶技术的应用范围选择不同的导航技术,以实现自动导航。通过对避障技术的综述,比较其优缺点,提出基于自主传感器数据进行避障及路径规划。基于STM32设计的无人驾驶技术,可优化汽车设计,提高技术水平,实现自动避让的精确作业。