易先军,彭 萌,耿翰夫,付 龙
(武汉工程大学 电气信息学院,武汉430205)
智能车的研究是移动服务机器人研究的一个重要分支,研究智能小车控制系统的实时性和精确性具有重要的理论和实际意义[1-2]。随着科学技术的快速发展,智能车的避障问题成为控制领域的研究热点之一。目前,实现避障的方法主要有超声波避障、视觉避障、红外传感器、激光避障、微波雷达等[3-6]。针对常规单一传感器的智能小车存在的避障效率低、准确度差以及移动灵活性不足等问题,在此研究并设计了一套基于模糊控制算法的、 以Android App 为控制端的、 满足多工作场景的四麦克纳姆轮式小车控制系统。
四麦克纳姆轮式小车控制系统的总体结构如图1所示。该系统采用模块化设计,根据各模块实现功能的不同,可将该小车控制系统划分为以下几个部分:主控制器模块、移动控制端(Android App)、通信模块(蓝牙模块和PS2 接收器)、环境信息采集模块(超声波传感器和红外传感器)、电机驱动模块、测速模块(光电编码器)、电源模块(12 V 蓄电池)等。
图1 小车控制系统结构Fig.1 Structure of car control system
小车控制系统的工作流程如下:在移动控制端App 上选择小车的工作场景, 通过通信模块将控制指令发送到小车;小车解析接收到的指令后,根据指令进行预定的动作。例如:当选择避障场景1 或避障场景2 时,主控制器利用模糊避障算法进行智能避障同时利用航迹推算法进行定位。可以根据运动模型控制小车的运动,驱动器、直流减速电机以及光电编码器会形成一个闭环控制, 通过增量式PID 调速算法控制各个电机的速度, 从而使小车实现预定的运动。
全向运动小车采用四麦克纳姆轮式驱动结构来实现对小车的三自由度控制[7],2 个左旋轮,2 个右旋轮,左旋轮和右旋轮呈手性对称。符合三自由度的安装方式有多种,在此仅以O-长方形(即4 个轮子的辊子与地面接触所形成的图形)安装方式为例,分析全向运动小车的逆运动学模型。小车的运动模型如图2所示。
图2 小车运动模型Fig.2 Car movement model
图中,以小车的底盘几何中心O 点为原点建立坐标系xOy。底盘的运动可以分解为3 个分量[Vx,Vy,ω], 其中,Vx为底盘沿x 轴方向的速度,m/s;Vy为底盘沿y 轴方向的速度,m/s;ω 为底盘沿z 轴自转的角速度,rad/s。车轮轴心处Oi的速度为Vi,m/s;轮绕轮轴转动的角速度为ωi,rad/s;辊子速度为μi,m/s;i=1,2,3,4,分别为右上轮、左上轮、左下轮、右下轮;α 为麦克纳姆轮的轮毂轴与辊子转轴的夹角,在此取α=45°。
右上轮轴心速度分析如图3所示。图中,r 为O点到右上轮中心点O1点的距离,m;V 为轮子的轴心处O1速度,m/s;Vr为轮子轴心速度沿垂直于r 方向(即切线方向)的速度分量,m/s。Vt为原点O 点的速度,m/s;ω 为原点O 点的角速度,rad/s。
图3 右上轮轴心速度分析Fig.3 Analysis of the upper right wheel axis speed
故V=Vt+ω·r,其在x,y 轴方向的速度分量为
同理,可以推算另外3 个轮的轴心O2,O3,O4处速度沿x 和y 轴方向的速度分量。轮子轴心速度V可以分解为沿辊子方向的速度V1和垂直于辊子方向的速度V2。垂直于辊子方向的速度V2可以忽略。故
式中: μ 为轮子轴心速度V 沿辊子方向的单位矢量。又轮轴角速度ω 与辊子的速度关系为
结合式(1)~式(3),可得四轮轮轴角速度ω 与底盘几何中心的速度关系,即小车底盘的逆运动学关系式为
由式(4)可知,若要实现小车的不同运动状态,只要调节各麦克纳姆轮的转速便可实现。
由于单个传感器具有不确定性、观测失误和不完整性等弱点,因此单层数据融合限制了系统的能力和鲁棒性[8]。在此,结合多传感器信息融合技术,在小车底盘的左、前、右3 个方向分别安装超声波传感器和红外传感器,以获取未知环境的障碍物距离信息,通过红外传感器弥补超声波测距的缺陷,利用航迹推算法定时推算小车与目标物的方位角。
传感器的整体布局如图4所示。图中,1,3,5 为小车底盘上3 个超声波传感器编号;2,4,6 为小车底盘上3 个红外传感器编号。传感器1 和2 组成小车左方障碍物的测距组;传感器3 和4 为前方的测距组;传感器5 和6 组成右方的测距组。每组的距离信息中选取较小的数据作为该组的输入。
图4 小车传感器布局示意图Fig.4 Schematic diagram of the car sensor layout
在图5所示小车模糊避障系统中,将模糊控制器的输入变量设为4 个:左前方障碍物距离的信息LD;正前方障碍物距离信息FD;右前方障碍物距离信息RD;目标点相对于小车的角度θ。通过对小车运动模型的分析可知,控制小车底盘几何中心O 点的水平速度和垂直速度,即可控制小车实现全向速度,故控制器的输出变量设为2 个——小车底盘几何中心的水平速度Vx和垂直速度Vy。
图5 小车模糊避障系统Fig.5 Car fuzzy obstacle avoidance system diagram
通过模糊化语言将3 组传感器检测环境信息以及目标角度转换为模糊控制器的输入变量。障碍物左边距离值LD,前方距离值FD 和右边距离值RD 的模糊语言变量均为{SD,MD,BD}={Small Distance,Middle Distance,Big Distance}, 论 域 为[0,2.4],表示0~2.4 m。定义小车距离障碍物的安全距离为0.8 m。
目标点相对于小车的角度θ 的模糊语言变量为{L,F,R}={Left,Front,Right},论 域 为[-90,90],表示±90°。定义目标角度,在-30°~30°时为F;小于-30°时为L;大于30°时为R。
小车底盘的水平速度Vx和垂直速度Vy的模糊语言变量均为 {NB,NS,ZO,PS,PB}={Negative Big,Negative Small,Zero,Positive Small,Positive Big},论域为[-0.3,0.3],表示±0.3 m/s。定义水平速度向右为正向,垂直速度向前为正向。各模糊变量采用基本的三角形和梯形隶属度函数。
文中模糊推理采用Mamdani 的max-min 合成法,去模糊化输出采用面积中心法[9]。模糊规则是模糊控制的核心,采用IF-THEN 条件语言,组成N=81条模糊控制规则。在小车工作于避障场景时,由传感器采集环境信息数据,经模糊处理后,输入到设计好的模糊规则表中进行匹配判断,然后根据判断结果去模糊化输出底盘水平速度和垂直速度。以小车的左侧近距离具有障碍物为例,列出的部分模糊控制规则见表1。
表1 部分模糊控制规则Tab.1 Partial fuzzy control rule
App 的开发环境为MIT App Inventor 2。MIT App Inventor 2 是以可视化编程语言为基础的Android 应用开发工具,用户只要根据自己的需求编写简单的代码拼装程序[10],简化了用户开发App 应用软件的步骤,缩短了开发时间。在此,手机App 与小车之间采用蓝牙通信方式,利用配置成数据透传工作模式的蓝牙模块,手机App 将控制指令发送到小车,实现对小车运动状态的控制。小车在运动的同时, 会定时将自身运动状态等数据发送到手机App端来显示,以达到更好的交互。
将小车硬件移动平台初始化后,打开小车Android App 应用软件,进入小车活动场景选择界面,选择场景后界面跳转到相应控制界面,通过蓝牙列表按钮连接小车,待手机与车载蓝牙连接后,就可以通过相应的功能键控制小车的运动。
以图6所示的App 避障场景为例进行说明。此处选择的是场景2, 地图1的大小是250×250 像素与小车的实际物理活动场景10 m×10 m 成映射关系。待蓝牙连接后,通过点击目标配置按钮,打开地图1;在地图1的xOy 坐标中点击任意位置,App 会将对应像素点位置(即图6中黑点位置)发送到小车。小车根据地图映射关系,从起点O 点向目标点运动(每一次指定新的目标点后,上一次的终点位置成为新的起点),途中遇到障碍物时,会根据嵌入小车处理器的模糊避障控制算法避障。同时,定时上传各驱动轮速度等信息到App,App 接收即时信息并显示出来。图6中,根据各电机速度可知,小车处于直线运动,黑色的点轨迹为小车的运动轨迹。
图6 App 避障场景2 界面Fig.6 Interface of App obstacle avoidance scenario 2
四麦克纳姆轮式小车控制系统,能够通过Android App 实时地对小车的运动场景进行选择并控制小车的运动状态。所设计的小车硬件模块电路和相应的软件控制流程,实现了小车硬件移动平台与PS2 手柄以及Android App 之间的无线数据传输与控制,开发了Android App 应用软件。最后对此系统进行测试,当小车处于避障场景中时,能自主避障并到达目标点; 当处于其它场景如PS2 手柄时,可以通过PS2 手柄控制小车灵活运动。然而,还可在提高小车到达目标点的速度和位置精度,以及丰富App 软件的数据分析功能上做进一步改进。