移动机器人无线实时反馈控制系统的设计
扫描二维码
随时随地手机看文章
1 机器人平台
本实验所采用的移动机器人是上海广茂达公司生产的AS-U32能力风暴机器人,该机器人是AS-UⅡ的升级版,主要升级部件是微控制器,AS-UⅡ使用的是Motorola公司的单片机68HC11,而AS-U32使用的是飞利浦公司的RAM7 LPC2103,这使得机器人有更强大的处理功能。AS-U32有如下特点:
(1)自主轮式移动机器人,是一个对外界环境高度开放的智能系统。它采用左右两轮驱动,前后两轮随动。驱动方式采用的是差动驱动方式,即2个有差异的或独立的运动合成为1个运动。当把2个电机的运动合成为1个运动时,则为差动驱动。如让机器人走直线,左右两个轮的速度必须相等;让机器人走弧线时,左右两个轮子的速度必须不相等。
(2)机器人带有专用的软件开发环境,即图形化交互式的C语言(简称VJC)。VJC由两部分组成:编译环境(包含交互式命令行编辑和调试功能)和机器人操作系统。VJC实现了C 语言的一个子集, 它包括控制语句(for,while, if else)局部变量和全局变量、数组、指针、结构体、16位和32 位整数、32 位浮点数。VJC 的一大优点是支持多任务程序的运行。
(3)机器人配有一定数量的传感器,具有一定的感知周围环境的能力。传感器包括2支红外发射管和1个红外接收模块,2个光传感器和4个碰撞传感器。另外,还包括旋转角度编码器和麦克风。红外传感器可以判断前方约120°内、距离在10~50 cm 范围内的物体;光传感器可判断光线的强弱;碰撞传感器安装在机器人外部的碰撞环上,能感受到8个方向上的碰撞;麦克风没有方向性,能感知声音的强弱;旋转编码器用来测量轮子旋转的角度数。
(4)机器人借助LPC2103来完成数据处理。虽然该处理器具有很强大的处理功能,但用于反馈控制还是不够的,所以必须由PC机来共同完成。机器人自带有4针SCI总线,可为机器人的扩展带来方便[3]。
2 PC机与机器人之间的无线通信硬件平台
2.1 无线通信模块
考虑到自主式移动机器人的特点,无线通信是计算机与机器人通信较为理想的通信方式。实验中采用的是CC1000单片射频无线收发模块,该模块主要性能如下:
(1)发射功率为10 mW。
(2)工作频率在ISM频段,无需申请点。
(3)干扰能力和误码率:基于FSK的调制方式,采用高效前向纠错信道编码技术,提高了数据抗突发干扰和随机干扰的能力,在信道误码率为10~2时,可得到实际误码率为10.5~10.6。
(4)传输距离:在视距情况下,天线高度>3 m,可靠传输距离>300 m。
(5)多信道,多速率:无线通信模块标准配置提供8个信道,可满足用户多种通信组合方式;可提供1 200 b/s、2 400 b/s、4 800 b/s、9 600 b/s等多种波特率,并且接口波特率与无线传输波特率一样,以满足客户设备对不同波特率的需要。
(6)双串口,3种接口方式:无线通信模块提供2个串口、3种接口方式。COM1为TTL电平UART接口,COM2由用户自定义为标准的RS-232/RS-485接口。可用硬件配置成7种不同的信道,选择不同的接口方式以及不同的校验方式[3]。
2.2 机器人无线通信的总体设计框架
基于机器人与无线通信模块的特点,设计的无线控制机器人的总体框架如图1所示。
3 PC机与机器人构成的反馈控制系统的设计
本实验PC机(上位机)所用的软件是VC++6.0,用VC做串口通信可以有很多种方法:可以用控件MSComm,也可用Win32的API串行通信函数,本文选择CSerialPort类进行串口通信编程(属于Win32的API串行通信编程)。该编程方法是一个多线程的串口编程类,与MSComm控件相比,CSerialPort打包时,不需要加入其他的文件,而且函数都是开放透明的,允许进行改造。此外,不需要去理解很难掌握的数据类型[4]。有关这方面的详细介绍可以参看参考文献[4]。下面主要介绍反馈控制系统是如何设计的。
对被控对象进行开环控制达不到理想的控制效果,所以必须对机器人进行闭环控制。整个反馈控制系统如图2所示。
从图2可以看出,首先必须对被控对象进行建模,通过实验测得机器人左右两电机的输入输出之间的关系,然后通过MATLAB进行仿真得到如图3所示的被控对象的模型图。
从图可以看出,机器人的左右两轮都是非线性的特性,电机的输入参数大于60时,输出的实际速率基本饱和了。所以必须加入PID控制来克服机器人这种非线性的特性。
在连续控制系统中,PID控制算法的控制规律可以写成如下的形式:
式中,u(t)为PID控制器的输出,也称为被控对象的控制输入;ε(t)为偏差; Kp为比例系数;Ti为积分时间常数;Td为微分时间常数。为了在数字控制系统上实现PID控制,需将连续PID控制规律化成离散型的PID控制规律,即用差分方程表示。为此,取T0为采样周期。由于采样周期远小于信号变化的周期,可以用矩阵面积求和的方法近似式(1)中的积分作用,用向后差分的方法近似微分作用,则式(1)可以化为:
式(4)称为PID控制器递推公式。应用(4)式计算采样时刻k的控制器输出u(k),可以极大地节省计算机内存空间和计算时间,使实时控制成为可能。
许多控制系统的执行机构本身具有记忆功能,例如步进电机作为执行元件,具有保持历史位置的功能,当控制器给出1个增量信号时,执行机构在原来位置上移动某一定位置,达到新的平衡位置。在这种情况下,需要采用增量型PID控制算法。设被控对象的控制输入增量为Δu(k),即:
式(5)称为增量型PID控制算法。
增量型PID与位置PID控制算法,本质上是一样的,仅在计算方法上有所变化。增量式算法一般用于步进电机之类的对象,但由于本文所用到的机器人的电机为非步进电机,它所输入的控制量应为绝对数值。所以本文采用位置式PID算法[5]。
对于PID 3个参数的调节有各种不同方法,在本实验中主要是试凑法。试凑法也要遵循一定的规律,一般来说,增大比例系数Kp,将加快系统响应速度,减少系统静态误差,但直接影响系统的稳定性。增大积分时间常数Ti,有利于提高系统的稳定性,但同时也加大了系统消除稳态误差的调节时间。微分控制作用,将改善系统的动态性能。
在整个反馈系统的设计中,还有一个重要问题就是系统的采样时间T,本系统的采样时间不能设置得太短。由于机器人的测速是由光电编码器来完成,而实验中用到的码盘条纹只有66等份,时间太短,测速不准确,同时因微分作用加强,使得速度值抖动很大。此外,机器人本身存在非线性特性,这样就必须选择一个合适的采样时间。经过实验,当采样时间≥0.5 s时,机器人反馈回来的速度较平稳,抖动明显减小。整个反馈控制系统的程序流程图如图4所示。
4 仿真结果分析
通过调节PID的3个参数,记录下机器人每次输出的速度值,然后再用MATLAB进行仿真,通过测得实际数据的仿真图如图5所示。
本文提出的PC机对机器人的无线实时反馈控制,在20 m以内的距离都可以实现,且实时性良好。对每一个采样时间内反馈回来的数据PC机都能及时处理,并把它送回给机器人,这样机器人实时地接收数据、实时地接收PID校正后的运动状态,因此机器人就可以按事先设定好的状态行走,从而达到了控制的目的。