机器人技术是当今科学技术发展的前沿学科。移动机器人是机器人研究领域中的一个重要分支,它集人工智能、控制理论、信息处理、图像处理等专业技术于一体,跨计算机、自动控制、通信、机械、电子等多学科,成为当前智能机器人研究的重点之一。如何方便、快捷、廉价地控制移动机器人,己经成为机器人技术的一个突出问题。在当前的控制领域中,无线控制技术已经成为一种重要而便利的控制技术。美国、日本、德国以及包括中国在内的很多国家都对机器人的无线控制技术这一课题进行了研究并取得了一定的成果。本文研究的重点是无线反馈控制系统的设计,通过PC机、无线通信模块和机器人构成的反馈系统,成功地实现了PC机对机器人的无线实时反馈控制[1-2]。
1 机器人平台
本实验所采用的移动机器人是上海广茂达公司生产的AS-U32能力风暴机器人,该机器人是AS-UⅡ的升级版,主要升级部件是微控制器,AS-UⅡ使用的是Motorola公司的单片机68HC11,而AS-U32使用的是飞利浦公司的RAM7LPC2103,这使得机器人有更强大的处理功能。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校正后的运动状态,因此机器人就可以按事先设定好的状态行走,从而达到了控制的目的。