全向移动机器人模糊PI控制研究

2021-11-19 08:17牛子杰王龙宁刘坤澎
计算机仿真 2021年10期
关键词:航向移动机器人控制算法

张 鹏,牛子杰,王龙宁,刘坤澎

(西北农林科技大学机械与电子工程学院,陕西 西安 712100)

1 引言

基于麦克纳姆轮的全向移动机器人能实现前进、横移、360°零半径旋转等基本运动和复合运动[1],能实现在平面内以任意方位移动和任意半径旋转,故在运输平台、加工平台、现代制造行业等众多领域开始发挥着越来越重要的作用[2,3]。

全向移动机器人通常是由四个麦克纳姆轮按照一定布局组合在一起,依靠这四个轮子各自不同的转速实现全向移动[4]。麦克纳姆轮在运动时只有一个小辊子单点接地,轮子的运动极易受地面摩擦力的影响[5-6]。若其中一个轮子出现与地面脱离接触或打滑等情况,则移动机器人的运动航向就会发生偏斜,导致全向移动机器人的实际运行航向和位置偏离机器人设定航向和位置[7]。

为了克服全向移动机器人的这一问题,很多学者都研究了通过检测麦克纳姆轮滑动量来纠正机器人位置的方法。Patrick等人阐明了基于麦克纳姆轮机器人的运动学方程,并提出一种检测滑动的方法,然而该检测方法需要依赖于能够检测绝对位置的附加设备[8];Luo等人对全向移动机器人所受到的不平衡的法向力所引起的打滑误差进行了建模和分析,他们还提出了一种基于麦克纳姆轮机器人的在线自适应滑动模型以减少滑动误差[9];王明明等人将自适应鲁棒控制应用于麦克纳姆轮驱动的移动机器人轨迹跟踪以获得良好的动态跟踪性能以及鲁棒性能,提出了一种比例-积分-微分(PID)形式的滑模面,满足了系统的鲁棒性要求,并设计了一种能够快速收敛的趋近律,减少了整定参数所消耗的时间并能有效抵抗外部扰动[10]。在智能控制领域,许多研究人员表示模糊控制理论可以被用来去克服麦克纳姆轮滑动的这一难题;模糊控制的基本思想最早是由Zadeh和Mamdani[11,12]提出,后来是Christopher M.Kumile等人在基于麦克纳姆轮的自动导引小车系统中实现了智能分布式模糊控制,根据有无打滑的情况进行不同的处理去改进控制系统的可靠性和降低控制器合成的复杂性[13]。Tsai等人提出了一种基于模糊小波神经网络的非奇异终端滑模控制,并用此方法来提高基于麦克纳姆轮的全向移动机器人的轨迹跟踪的准确性和行驶稳定性[14]。Fahmizal等[15]利用人工墙壁作为参考点,通过超声波传感器反馈距离信息给模糊控制器来控制差速转向机器人沿着设定的航向行走,后来他们还通过姿态角度传感器和模糊控制器相结合进行了全向移动机器人定向运动的控制与仿真[16]。

针对上述问题,本文提出了一种模糊PI控制算法对机器人的航向进行修正。该模糊控制器是以姿态角度传感器反馈的航向角偏差和航向角偏差的增量作为输入量,以模糊PI控制算法的参数Kp、Ki作为输出量;模糊控制器对输入、输出量进行模糊化处理之后,通过模糊规则表对输入的模糊量进行模糊推理来输出模糊控制量,然后通过去模糊化把输出的模糊模糊控制量转变为清晰值去改变PWM波的占空比,进而控制指定电机转速,最终通过差分转向技术去修正机器人的行驶航向,从而在不需要任何引导线和特殊标志的情况下,保证了机器人行驶航向精度。最后,通过实验验证了模糊PI控制器的有效性。

2 全向移动机器人的运动学分析

2.1 麦克纳姆轮的全向移动机理

本文所使用的麦克纳姆轮实物如图1,本文采用的是设计成45°夹角的麦克纳姆轮。小辊子不仅可以绕车轮轴线进行公转和绕辊子的轴线进行自转,还能绕辊子与运动地面的接触点进行转动,这是麦克纳姆轮具有3个自由度的运动特点[17-18]。

图1 麦克纳姆轮实物图

麦克纳姆轮的突出应用是通过使用该轮让机器人的移动机构变成全向移动机构,实现横向、纵向、零半径旋转三个方向的运动[19]。本文全向移动机器人的驱动方式是四轮单独驱动,每个麦克纳姆轮都配备一个直流电机来进行控制。机器人在运动时,麦克纳姆轮的小辊子受到地面所给的两个方向作用力:一个是辊子轴向方向的滑动摩擦力,另一个是辊子圆周方向的滚动摩擦力;由于辊子所受的滚动摩擦力可以近似为零,故只需看辊子所受的轴向摩擦力对机器人运动的影响。因此,麦克纳姆轮与地面的接触力不在沿着轮子的圆周方向,而是与轮子的圆周方向成45°夹角。通过对不同的麦克纳姆轮所受轴向力的合成,就能判断机器人的运动方向。本文设计中使用了4个麦克纳姆轮,两两镜面对称安装,图2是本文设计中麦克纳姆轮的布局方式和各轮受力方向分析图,图中车轮斜线为与地面接触的小辊子,结合车轮的运动方向和受力方向展示了四轮移动机器人的前进、横移、侧移、旋转运动产生的机理。以前进为例,如图2(a),此时四个轮子的角速度相同,每个轮子的小辊子轴线方向都有独立的轴向摩擦力,通过轴向摩擦力的合成,小车所受的横向分力被相互抵消,只保留了前进方向的分力,从而让移动机器人产生向前的运动。

图2 机器人不同运动模式下的受力

Fa:小辊子受到的轴向摩擦力

Fr:小辊子受到圆周方向的滚动摩擦力

2.2 移动机器人的运动学分析

如图3是移动机器人的运动学分析模型图,以移动机器人的几何中心O为坐标原点,建立全局坐标系XOY,以车轮的转动中心Oi为坐标原点,分别建立四个局部坐标系XiOiYi,图中r为车轮转动的有效半径,a为车体几何中心O到各轮转动中心Oi的水平距离,b为车体几何中心O到各轮转动中心Oi的垂直距离,辊子的轴线与车轮轴线的夹角β为45°。各轮角速度分别为ωA、ωB、ωC、ωD,以车轮逆时针转动为正,顺时针转动为负,各轮小辊子的速度分别为vg1、vg2、vg3和vg4,小车的横向速度、纵向速度和自转角速度分别是Vx、Vy和ω,机器人逆时针方向转动。

图3 移动机器人的运动学分析模型

以轮A为例,车轮转动中心OA在全局坐标系XOY中的移动速度为

(1)

OA在局部坐标系X1OAY1的移动速度为

(2)

由式(1)和(2)可得

(3)

求得:

(4)

同理,对其余轮子进行运动学分析,可得:

(5)

其中J为系统逆运动学的雅克比矩阵。

由逆运动学原理可知,当系统的逆运动学雅克比矩阵是奇异矩阵时,系统的运动自由度就会减小;当运动系统的逆运动学雅克比矩阵是非奇异矩阵时,就具有全向移动的能力。对照式(5)中的矩阵J,可知rank(J)=3,故本文设计的系统具备全向移动的能力。另外式(5)反映了各轮角速度与系统中心速度的映射关系,只要合理的控制四个轮子的角速度就能实现全向移动机器人的各种运动形式。

3 控制系统总体结构

控制系统结构图如图4,主要由微控制器、电机驱动器、编码器、姿态角度传感器、直流电机、上位机构成。微控制器STM32F103是整个控制系统的核心,进行各种数据计算与反馈信息的快速处理。控制系统通过BTN7971B电机驱动器来驱动直流电机,通过霍尔编码器反馈电机速度给微控制器进行速度调节;姿态角度传感器选择了JY901模块,该模块集成高精度的陀螺仪、加速度计、地磁场传感器,芯片内部采用了先进的动力学解算与卡尔曼动态滤波算法,能够在动态环境下准确输出模块的当前姿态,姿态测量精度静态0.05度,动态0.1度,稳定性极高,能够快速求解出模块当前的实时运动姿态,最终选择以I2C通信方式实现JY901模块与微处理器进行通信来实现姿态角的传输;机器人姿态角包括的俯仰角、横滚角和航向角,本文主要是利用反馈的航向角进行机器人实时的航向修正,保证机器人指定航向运动的准确性。另外本文通过使用DL-20无线串口模块把机器人航向偏差和电机角速度上传到上位机中进行数据的记录。根据机器人控制系统结构图搭建的机器人实物图如图5。

图4 控制系统结构图

图5 机器人系统实物图

4 模糊PI控制算法描述

4.1 机器人的调速控制系统

机器人的调速控制系统框图如图6,图中value和Δvalue的值是赋给STM32F103高级定时器的CCRx寄存器,通过对CCRx寄存器的不同赋值便能产生不同的PWM输出波控制直流电机的转向与转速。在没有航行角的反馈调节时,对电机速度的调节采用了传统速度PI控制算法输出的value值对电机的速度进行精准控制;当设定机器人的移动速度之后,通过式(5)计算出每个电机的目标转速,通过编码器对电机的实际转速进行反馈,求出电机目标速度与实际转速的偏差e,速度PI控制器通过偏差e计算出value变量的数值,进而产生PWM波来实现对电机速度的精准控制。

图6 机器人的调速控制系统框图

通过反馈的航向角对机器人进行航向修正的算法采用了模糊PI控制算法。如图6,模糊PI控制器是由传统航向角PI控制器和模糊控制器组成,在控制上不使用固定参数的PI调节算法,而是针对不同的情况,由模糊控制器实时对PI参数进行调节。通过姿态角度传感器JY901对机器人的航向进行实时反馈,当机器人的实际航向偏离设定航向时,控制系统就会检测到机器人航向角的偏差ey(ey=Yaw-PreYaw)和航向角偏差的增量Δey=(ey-Last_ey),并把ey和Δey送给模糊控制器,来实时对模糊PI控制的两个参数Kp、Ki进行动态调节。模糊PI控制的基本表达为

Δvalue=Kp×Δey+Ki×ey

(6)

航向角PI控制器通过式(6)产生的Δvalue调节机器人指定电机的转速,进而修正机器人的运动航向,当修正到机器人的设定航向时,Δvalue就会自动变成0,此时根据传统速度PI控制算法又让电机回到了原始目标速度。

4.2 模糊控制器的设计

模糊PI控制算法的关键是对模糊控制器的设计,本文提出的模糊控制器的设计过程可以分3个步骤:模糊化、模糊推理、去模糊化。

1)输入域输出量的模糊化

模糊化是指把输入及输出量的实际值映射到相应的模糊论域中,使其值可以用“大”“小”等语句表示。本文采用了二维模糊控制,模糊控制器中的输入量是移动机器人航向角的偏差ey及其偏差增量Δey,其输出量是模糊PI控制器中的参数Kp和Ki。偏差ey的模糊语言变量是Ey,其论域是{-5,-4,-3,-2,-1,0,1,2,3,4,5};模糊变量Ey的语言值是{负大,负中2,负中1,负小2,负小1,零,正小1,正小2,正中1,正中2,正大},表示为:{NB,NM2,NM1,NS2,NS1,ZO,PS1,PS2,PM1,PM2,PB}。偏差增量Δey的模糊语言变量是ΔEy,其论域是{-3,-2,-1,0,1,2,3},模糊变量ΔEy语言值是{负大,负中,负小,零,正小,正中,正大},表示为:{NB,NM,NS,ZO,PS,PM,PB}。模糊语言变量Kp和Ki的模糊语言变量是Kpp和Kii,Kpp和Kii论域是{-4,-3,-2,-1,0,1,2,3,4},模糊变量Kpp和Kii的语言值是{负大,负中2,负中1,负小,零,正小,正中1,正中2,正大},表示为{NB,NM2,NM1,NS,ZO,PS,PM1,PM2,PB}。

把输入量和输出量与模糊变量语言值相匹配的过程需要使用隶属度函数,它表示真实值与语言值相符合的程度,即一个具体的数值在多大程度上可以用该语言迸行描述。本文设计中隶属度函数采用了三角形隶属函数,其数学表达式如式(7)所示,式中的a、b、c为模糊变量论域区间常数。

(7)

2)模糊推理

模糊控制器的核心任务就是确定模糊规则并对模糊结果进行推理,模糊规则是在前人长期积累的基础上,在通过实验对参数值的变化范围进行确定。模糊推理的形式是:if(E is Ai)and(ΔE is Bi),then(Kp is Ci1)and(Ki is Ci2)。模糊控制中PI参数整定表见表1。

表1 模糊控制的PI参数整定表

根据Kp、Ki参数对控制系统性能的影响,来确定在不同的E和ΔE情况下确定调节指定电机转速的Kp和Ki的值,来调节移动机器人的行驶航向。

如图7当机器人在纵向运动时左偏Δθ之后,通过模糊PI控制去自动快速增加左侧A、B电机的转速来让机器人在纵向行驶中差速右转进行修正行驶航向;当机器人即将回到设定行驶航线时,A、B电机自动减速到原始转速来减少航向修正过度的现象,保证机器人纵向行驶的航向精度;同理当机器人在纵向运动右偏时,是右侧C、D电机加速来修正机器人的方向。

图7 小车前进左偏的调整示意图

如图8是机器人在向右横向运动时向左偏移Δθ角度之后,微控制器通过模糊控制算法增加B、C电机在其原始转向上的转速,从而让机器人在横向行驶的过程中产生顺时针的转动来修正机器人横向运动的方向,保证机器人横向行驶的航向精度。同理当机器人在横向运动右偏时,是通过增加A、D电机在其原始转向上的转速,产生逆时针的转动修正机器人的航向。

图8 小车横移左偏的调整示意图

根据上文对机器人纵向行驶过程中发生左右偏斜时机器人航向修正机理的分析,以机器人纵向运动为例建立模糊推理规则表。在软件编程中实现了Kp、Ki对电机转速的统一化影响,即Kp、Ki取正值时电机会加速,Kp、Ki取负值时电机会加速,并由式(6)可知Kp、Ki的值越大,对应电机加速越快。最终结合前人经验和实验的修正效果得到了输出量Kp、Ki的模糊控制规则见表2。

表2 Kp、Ki的模糊控制规则表

3)去模糊化

通过模糊规则进行推理后得到的是模糊语言变量,不能直接用于控制,因此要通过去模糊化把模糊语言变量转化为清晰量,本文选择了重心法去模糊化,其数学表达式如式(8)。

(8)

式中,<>代表四舍五入取整操作,z0为清晰值,zi为模糊变量,μ(zi)为隶属度值。

5 实验与结果

本文以机器人纵向运动和横向运动为例进行实验分析。当机器人在不利用反馈的航向角进行航向修正的前提下分别纵向、横向行驶3.5m时,机器人的实际航向与设定航向之间的航向角偏差(Error of yaw,EOY)如图9。从实验结果可以看出由于麦克纳姆轮的滑移现象和机器人的动态不平衡性,机器人在运动3.5m的距离中纵向运动会产生2°左右的航向偏差,横向运动会产生10°左右的航向偏差。

图9 机器人无反馈运动时的航向角偏差

针对机器人航向偏移的问题,本文设计了模糊PI控制算法修正机器人的航向。图10是机器人分别在横向、纵向移动时利用模糊PI控制算法去进行反馈控制时的航向角偏差变化图。多次实验结果表明机器人在纵向、横向直行运动的过程中航向角偏差都在[-1,1]之间变化,可以看出在使用了模糊PI控制算法进行航向角反馈修正之后,机器人的纵向、横向的直行效果有了明显改善,航向精度得到很大地提高。

图10 机器人模糊PI控制的航向角偏差

当航向角的偏差有明显变化时,利用航向角进行反馈修正航向的传统PI控制算法和模糊PI控制算法在调节性能上有明显的差异。在机器人运动的过程中人工给予一个很大的扰动,让机器人的实际航向角远离设定航向角来产生一个大幅度的航向角偏差。如图11是机器人纵向运动时在大扰动下的传统PI控制算法和模糊PI控制算法的航向角反馈修正对比图。如图12是机器人横向运动时在大扰动下的传统PI控制算法和模糊PI控制算法的航向角反馈修正对比图。

图11 纵向行驶时在大扰动下的传统PI控制与模糊PI控制的反馈修正对比图

图11(a)是机器人纵向移动时在大扰动下的模糊PI控制算法修正的航向角偏差变化图,图11(b)是纵向移动利用模糊控制调整机器人保持设定航向时的对应电机调速图,由于在纵向运动修正航向的过程中电机A、B的转速相同,电机C、D的转速相同,故只表示了A、D电机的转速。图12(a)是机器人横向移动时在大扰动下的模糊PI控制算法修正的航向角偏差变化图,图12(b)是纵向移动利用模糊控制调整机器人保持设定航向时的对应电机调速图,由于在横向运动修正航向的过程中电机A、D的转速大小相同,电机B、C的转速大小相同,故只表示了A、B电机的转速。同理、图11(c)和图11(d)分别是纵向运动在大扰动时传统PI控制下的航向角偏差变化图和电机调速图,图12(c)和图12(d)分别是横向运动在大扰动时传统PI控制下的航向角偏差变化图和电机调速图。

图12 横向行驶时在大扰动下的传统PI控制与模糊PI控制的反馈修正对比图

图11(a)中当航向角偏差是正值时,表示机器人是在纵向行驶时向左偏斜,从图11(b)可以看出当机器人向左偏斜之后,A、B电机的转速快速上升调整机器人的航向,恢复到设定航向。图12(a)中当航向角偏差是正值时,表示机器人是在横向行驶时向左偏斜,从图12(b)可以看出当机器人向左偏斜之后,A、D电机的转速快速上升调整机器人的航向恢复到设定航向。在纵向运动中图11(c)相比图11(a)调整时间长,超调量大,同样图11(d)相比图11(b)电机转速超调量大,调整时间长。在横向运动中图12(c)相比图12(a)调整时间长,超调量大,同样图12(d)相比图12(b)电机转速超调量大,调整时间长。

实验结果对比表明,模糊控制有电机加速快、减速到目标速度快、航向角修正时的超调量小,调整时间快。当最大航向角偏差在35~40°之间时,利用模糊PI控制算法和传统PI控制算法进行反馈修正时的性能指标对比见表3。由表3可知模糊PI控制系统的动态性能、稳定性比传统PI控制系统好,既能减少振荡,又能较快调节。

表3 性能指标对比

6 结论

针对基于麦克纳姆轮的全向移动机器人在运动时由于麦克纳姆轮的滑动而产生航向偏移的问题,本文提出了利用姿态角度传感器反馈的航向角的对机器人进行运动航向修正的模糊PI控制算法。

1)实现了全向移动机器人关于运动航向的模糊PI控制,解决了全方位移动机器人在运动时由于麦克纳姆轮滑动而产生航向偏移的问题,提高了机器人运输的稳定性。

2)搭建了实验环境,通过实验比较了有无模糊PI控制算法对机器人航向角偏差的影响情况,实验数据表明,当机器人分别在纵向和横向行驶3.5m的距离,机器人的航向角偏差分别由原始的0~2.5°和0~10.5°缩减到-0.6~0.6°和0~1°之间,极大的减小了运动航向偏差,保证了设定航向运动的精度。

3)通过实验比较了传统PI控制算法和模糊PI控制算法在机器人航向调节性能上的优劣性,实验数据表明当机器人的航向角偏差在35~40°之间时,机器人在纵向运动时模糊PI控制算法的调节时间加快了1.3s,超调角度减小了7.7°;机器人在横行运动时模糊PI控制算法的调节时间加快了1.2s,超调角度减小了4.3°。经实验对比,模糊PI控制算法能根据机器人航向角偏差的当前状态,利用模糊规则实时调整机器人的运动状态,达到了响应速度快,控制更精准的效果。

猜你喜欢
航向移动机器人控制算法
基于事件触发的船舶航向逻辑切换自适应控制
移动机器人自主动态避障方法
风浪干扰条件下舰船航向保持非线性控制系统
基于粒子滤波的欠驱动移动机器人多目标点跟踪控制
移动机器人路径规划算法综述
用“国家使命”导引航向——大学之大,重在推进产学研深度融合和科技成果转化
消除大班额的正确“航向”
移动机器人技术的应用与展望
基于dSPACE和PLC的控制算法测试系统设计
基于DCS的过程实时控制平台的研究