移动机器人无线实时反馈控制系统的设计
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控制器相关文章:pid控制器原理
评论