基于视觉信息的移动机器人控制系统设计.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于视觉信息的移动机器人控制系统设计
张绍磊,孙元义,李伟
中国农业大学工学院,北京 100083
E-mail: spacewords@
摘要:本文介绍了一种自行开发的基于视觉信息的移动机器人系统设计方案。以TMS320LF2407A作为控制系统核心控制器,采用视觉导航的方式,设计了机器人运动模糊控制算法,保证了控制的准确性,提高了控制的实时性。通过实验验证,该系统运行良好。关键词:DSP 移动机器人模糊控制
1. 引言
随着我国现代化农业技术的发展,对作业的精细化要求越来越高。田间自主移动自动化设备在作物喷雾、变量施肥、自动除杂草等多方面具有巨大的应用前景,能够代替人类从事一些劳动强度大,对人体有害的工作,是现代农业机械智能化的一个重要的应用[1]。本文所介绍的针对基于视觉信息的移动机器人平台采用四轮结构,前两轮驱动,后两轮从动的运动方式,靠前轮差速实现机器人转向。系统的路径规划主要通过PC机来实现,底层的移动机器人主控CPU采用高性能数字信号处理器TMS320LF2407A。
基于视觉的运动控制算法大多采用PID算法。但是机器人运动系统往往具有非线性、时变性等不确定性因素,并且由于控制参数较多,多个参数之间的相互影响,从而使常规PID控制器不能达到理想的控制效果。本文中,采用模糊控制算法,它具有不依赖于精确的数学模型,易于实现对不确定系统及非线性系统的有效控制的优点。同时,抗干扰能力也比较强,对于大时滞、非线性等复杂系统,能够取得满意的控制效果。
2. 移动机器人控制系统设计
机器人系统根据视觉传感器获得的信息,控制机器人跟踪导航路径,实现机器人的自主导航运动的方式。移动机器人整体结构框图如图1所示。
图 1 移动机器人整体结构
- 1 -
该系统主要由三部分组成:感知子系统,控制子系统和移动机构。移动机器人控制系统是一个位置闭环系统.图像传感器实时采集田间变化信息,通过视频采集卡将信息传递给图像处理模块,图像处理后的导航信息发送到运动控制子系统,最后由运动控制子系统完成任务分配,协调控制各个驱动轮的转动,对机器人的位姿进行纠正,从而实现对机器人的闭环控制与路径跟踪。
2.1 机器人控制单元硬件结构
移动机器人控制单元主要由微控制器、电机驱动模块、电流检测模块、键盘模块、通讯模块组成。如图2所示。
图 2 机器人本体控制系统硬件结构图
控制系统采用TMS320LF2407A作为核心控制器。TMS320LF2407A采用改进的哈佛结构,30MIPS~40MIPS(百万条指令每秒)的处理速度,同时采用四级流水线结构,支持多指令的单周期执行,使得在系统控制中可以运行很复杂的算法。此外,它还提供强大的电机控制外围设备和大容量片内存储器,支持16路脉宽调制(PWM)输出通道,16通道双10位模数转换(ADC)输入,16位串行通信接口(SCI)等强大外设。本系统中采用SCI接收系统导航信息,通过DSP比较单元产生PWM信号对驱动电机进行控制[2]。
电机控制是机器人运动控制和行为决策的基础。电机驱动系统示意图如图3所示。由TMS320LF2407A比较单元控制的2路PWM信号经过TLP521-2高速光耦进行光电隔离,经过PWM逻辑控制电路,在硬件上保证H桥驱动电路上下桥臂不会同时导通,再通过栅极驱动电路,提高场效应管的栅极驱动电压,最后由4个N沟场效应管IRF540N组成的H桥驱动电路驱动直流电机。通过调整PWM 信号及其占空比就可以改变电机的方向和转速。
图 3 电机驱动系统示意图
移动机器人,尤其是在田间工作的移动机器人常常会因为机械故障、负荷过大等原因,使电机处于静止状态或者电机速度达不到设计的给定速度,发生堵转等现象。由于电机的驱动转矩不能无限增大,当电枢电流超过了其所能承受的最大电流时,就会导致电机线圈绕组 - 2 -
烧毁。为了保护电机,在电机回路中串入0.05欧的精密电阻,以电阻上压降来反映电路电流的大小。在这里采用MAX472电流电压转换器来实现电流的检测,保证电流检测电路能适应大范围电流的测量。
2.2 控制系统程序结构
系统控制软件的设计采用模块化编程的思想。DSP程序主要由系统初始化模块、模数转换模块、串口通讯模块、运动控制模块、键盘服务模块等几部分组成。
本试验采用的集成开发、调试环境是TI公司的CCS2.20。采用C语言和汇编语言混合编程的方法,提高了软件开发的速度和可读性,同时兼顾了代码的效率。系统的软件框架如图4所示。
图 4 系统软件框架图
主程序调用初始化程序,对系统的系统寄存器进行正确的配置;键盘中断服务程序,主要是用来完成对机器人的手动操作,包括机器人的前进、后退、转弯、停止等操作,同时可以进行手动控制和自动控制的切换;模数转换程序通过ADC 中断完成对电流信号和角度传感器的采样处理;串行通信程序通过接收中断来完成和PC机的通讯,接收图象处理单元的视觉控制信息,主要是航向角度偏差以及位移偏置偏差。
2.3 机器人运动控制算法[3,4,5]
当机器人在视觉信息下以预设速度运行时,由于各种原因的影响,机器人与参考路径会产生偏差,包括航向角度偏差以及位移偏置偏差,具体如图5所示。其中,S为机器人实际的位置,S1为被跟踪路径的起点,S2
为被跟踪路径的终点。
图 5 移动机器人与导航路径的关系
这里,我们规定,机器人方位角φ与路径方位角φr之间的误差可以表示为:
- 3 -
θ=φ−φr (1-1)机器人的实际位置S到跟踪路径S1S2的距离即位移偏置误差,对于它的正负,这里规定,当导航路径参考点位于机器人右方时,定义λ为正;当参考点位于机器人左方时,则定义λ为负。
本文设计了一个双输入单输出的模糊控制器,其输入参数主要是通过导航信息获得的位移偏置信息和导航角度误差信息,模糊控制器的输出变量是电机的控制增量,进而可以得到两轮的驱动电压控制量,从而对机器人进行控制。
1) 角度误差的模糊化
角度误差θ被模糊化为六个词集{负大、负中、负小、零、正小、正中、正大},分别表示为{ NB,NM,NS,ZE,PS,PM,PB }。将角度误差分为7个等级,即θ的模糊论域为{-3,-2,-1,0,1,2,3},并用三角隶属函数表示。
2) 位置误差的模糊化
位置误差λ被模糊化为六个词集{负大、负中、负小、零、正小、正中、正大},分别表示为{ LB,LM,LS,ZE,RS,RM,RB }。将位置误差分为7个等级,即λ的模糊论域为{-3,-2,-1,0,1,2,3},并用三角隶属函数表示。
3) 输出控制量的模糊化
输出控制量电压控制增量被模糊化为六个词集{负大、负中、负小、零、正小、正中、正大},表示为U={NB,NM,NS,ZE,PS,PM,PB}。考虑到控制精度的要求,将输出量分为13个等级,即输出量模糊论域为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},并用三角隶属函数表示。
自主移动机器人的运动控制系统模糊控制规则设计描述了模糊控制器输入变量位置误差,角度误差和输出控制量之间的关系。规则要求:当位置误差和角度误差较大的时候,机器人能够以最快的速度靠近导航路径,跟踪导航线。当距离偏差和方位偏差较小的时候,控制模糊控制器的输出,防止系统超调。兼顾移动机器人路径跟踪系统的稳定性和响应速度,本文归纳了49条控制规则,构成表1所示的控制规则表。
解模糊的方法有很多种,在这里采用最大隶属度法进行非模糊化,将控制量由模糊量转
表1 模糊控制规则表