摘要:移动式机器人主要由遥控操作器、自动控制系统和传感器等三部分为移动载体而组成系统。移动式机器人的核心技术是控制系统,其中运动控制技术是关键环节。本文以移动机械手作为研究对象,设计了一种准确抓取物体的运动控制系统,利用模糊控制算法控制移动机械手准确停在适当抓取位置。
前言
经典控制理论对于解决线性定常系统的控制问题是很有效的,然而,对于非线性时变系统却难以奏效。随着计算机的应用和发展,自动控制理论取得了飞跃性的发展。基于状态变量描述的现代控制理论对于解决线性或非线性、定常或时变的多输入与多输出系统的控制问题,已获得了广泛和成功的应用。但是,无论采用经典控制理论还是现代控制理论的控制系统,都需要事先知道被控对象(或过程)的精确数学模型,然后根据数学模型以及给定的性能指标,来选择适当的控制规律,来进行控制系统设计。然而,在许多情况下,被控对象的精确数学模型很难建立,这样,对于这类对象或过程就很难进行自动控制。
事实上,对于复杂的、多因素影响的生产过程,即使不知道该过程的数学模型,有经验的操作人员也能根据长期的观察和操作经验进行有效地控制,而采用传统的自动控制方法的效果则并不理想。然而,能否把人的操作经验总结为若干条控制规则,并设计一个装置去执行这些规则,从而对系统进行有效的控制?模糊控制理论和方法便由此而生。
移动机械手是一种简单的移动机器人,可以完成一些简单的任务,比如在排
爆上的应用,可以代替人把危险爆炸物抓取到指定地点。本文以市面上的儿童车为基础,通过改装儿童小车来搭建移动机械手,移动机械手工作于遥控模式或自动模式。遥控模式下,移动机械手的运动控制通过无线遥控来实现;自动模式下机械手臂通过超声波距离传感器来提取抓取物位置信息,以抓取物位置信息作为模糊控制算法的输入,通过模糊控制算法来驱动移动机械手运动。它具有移动功能,在代替人从事危险、恶劣(如辐射、有毒等)环境下作业和人所不及的(如宇宙空间、水下等)环境作业方面,比一般机器人有更大的机动性、灵活性。
1、总体设计
本文所设计的移动机械手运动控制系统主要由单片机(STM32F103)、显示屏、电机驱动器、无线遥控器、超声波测距传感器和透射式光电传感器等组成。单片机用来管理各模块工作,同时完成模糊控制算法运算。显示屏主要是用来显示移动机械手运动时的一些信息,比如处于何种工作模式、是在前行还是在后退、转弯角度和抓取物距离等信息;电机驱动器主要用于驱动改装后的儿童小车;无线遥控模块主要用来给运动控制系统发送控制命令,包括模式的选择、车体运动控制等控制命令;超声波测距模块主要用于探测物体距离,当然在移动机械手移动的时候也可以用于探测障碍物防止移动机械手在运动时发生机械碰撞;透射式光电传感器主要用于记录脉冲数,和编码盘配套使用后用于提取转弯角度和移动机械手相对位移信息。运动控制系统工作过程如下:运动控制系统初始化后处于模式选择界面,如果抓取物离的远,先选取遥控模式通过遥控器来控制移动机械手靠近抓取物。当距离达到指定的范围内后,退出遥控模式进入自动模式,用模糊控制算法分析超声波测距传感器得到的抓取物信息后自动控制移动机械手到达合适的抓取位置。移动机械手运动控制系统方案框图如图一所示。
图一 移动机械手运动控制系统方案框图
2硬件设计
2.1部分硬件介绍
A:无线遥控器
无线遥控器采用南京普闻视听电子公司的RO3BS无线遥控器,它包括发送和接收模块。该无线遥控器为四路遥控器,信号输出可以是单路也可以是双路,工作频率为315MHz,遥控最大距离为80M。图二为RO3BS接收模块实物图,图中可以一共有7个引脚,其中+5V和G是电源接入端,D0—D3为接受信号的输出端。
B:电机驱动模块
miniIBT电机驱动器是专为智能车、模型车及工业产品等而设计的高性能直流有刷电机全桥驱动器。输入端包括电源输入端口、电机连接端和信号控制端。其控制信号很简单,只有片选(EN)、正转(RPWM)和反转(LPWM)信号。正、反转控制信号可以为高电平也可以为PWM信号,PWM信号占空比可以在%0—100%之间随意调整。
图二 RO3BS接收模块实物图
C:超声波差距模块
HC—SR04超声波测距模块可提供2cm—400cm的非接触式距离感测功能,测量精度可达3mm。它一共有四个引脚,分别是+5V、GND、触发信号输入和回响信号输出,其控制方式比较简单,只要给触发信号(至少10us的高电平信号)就会有信号输出。其测试距离的计算如下:
测试距离=高电平时间*声速/2(其中声速为340m/s)
D:透射式光电传感器
GK102是透射式光电传感器,其电路图如图三所示。左边为发光二极管,右边为光电三极管,当左边加正向电压时右边导通,当左边加反向电压时右边截止。与编码盘配合使用可以用于检测转弯角度信号和机械手臂移动位移信号。其获取信号的原理如下:首先编码盘是一块边缘均匀打着小洞的圆盘,把圆盘的边缘放在GK102的凹槽里,当圆盘转动的时候,由于小洞的存在GK102发光二极管发出的光有时通过小洞射到光电三极管上,三极管导通得到一个信号。
图三GK102电路图
2.2硬件连接
根据儿童车的双后驱和独立转弯模式可知儿童车有三个电机要驱动,所以移动机械手运动控制系统需要三个miniIBT。三个miniIBT全部采用PWM信号控制,STM32F103单片机有4个定时器,每个定时器有4个通道,每个通道都可以方便的产生PWM波。本设计中选用通道1和通道4分别作为miniIBT的RPWM和LPWM;TIM2控制转弯电机、TIM3控制左轮电机、TIM4控制右轮电机。三个miniIBT的EN分别由PD0—PD2控制;无线遥控器的D0—D3分别与PC0—PC3相连;由于需要判断抓取物的相对位置,抓取物的相对位置包括距离和方向信息,其中距离信息可以直接从HC—SR04超声波测距模块反馈信号得到,但是方向信息却不能单从HC—SR04中得到。所以设计中使用3个HC—SR04,分别安装在车头的中间、左边和右边,通过对比3个HC—SR04返回的信号就可以得出方向信息。比如抓取物在车声左边边,那么左边的HC—SR04返回的距离信息比中间和右边的HC—SR04返回的距离信息就要短。HC—SR04的触发信号采用脉冲触发,每60ms发送一次脉冲,回响信号的捕获采用定时器的输入捕获功能,STM32F103每个定时器的通道2都具有输入捕获功能。触发信号与定时器通道3连接、回响信号与定时器通道2连接,TIM2—TIM4分别对应左、中、右三个HC—SR04超声波测距模块;运动控制系统中要控制转弯角度和相对位移,所以在设计中采用2个GK102透射式光电传感器,编码盘一个安装在方向盘上一个安装在车轮上用于提取转弯角度信号和位移信号。两个GK102的输出引脚与PC8和PC9相连,与PC8相连的用来获取转弯角度,与PC9相连的用来获取位相对位移。
3、模糊控制算法的设计
模糊控制是一种基于规则的控制,它直接采用语言型控制规则,出发点是现场操作人员的控制经验或相关专家的知识,在设计中不需要建立被控对象的精确的数学模型。移动机械手的运动系统和汽车驾驶系统很相似,汽车驾驶是一个比较复杂的问题,难以建立精确的数学模型和用数学解析式描述[2];有经验的驾驶员能把汽车驾驶的很好,这主要是依靠他们的经验。依据这个思路,采用模糊控制算法,解决移动机械手的运动是一个很还的解决方案。
根据硬件电路设计可知,HC—SR04的距离信号可以用来判断抓取物的距离和方向信息,转弯角度和移动机械手运动相对位移是用来控制移动机械手和抓取物的相对位置。本设计中采用两个独立的模糊控制器来控制转弯角度和运动相对位移,输入量分别是距离和方向信息。为了实现的简便性与快速性,在本系统中都采用二维模糊控制器结构形式,即输入量E和变化率Ec。控制转弯角度的模糊控制器设定输入变量方向(E1)和方向变化率(E1c)语言值的模糊子集为{负大,负小,零,正小,正大}(负代表左,正代表右),并简记为{NB,NS,Z,PS,PB},输出量转弯角度(K1)的模糊子集为{NB,NM,NS,Z,PS,PM,PB};同理控制运动相对位移的模糊控制器设定输入变量相对位移(E2)和相对位移变化率(E2c)语言值的模糊子集为{负大,负小,零,正小,正大}(负代表远,正代表近),并简记为{NB,NS,Z,PS,PB},输出量运动相对位移(K2)的模糊子集为{NB,NM,NS,Z,PS,PM,PB}。输入变量的隶属函数的论域定为[-2,2],输出变量的隶属函数的论域定为[-3,3]。隶属函数均选为灵敏度高且在论域范围内均匀分布、等距离的三角形函数。
根据驾驶汽车的经验,E1、E1c和K1应满足以下规律:
(1)当|E1|较大时,同时|E1c|较大时,应取较大的K1;
(2)当|E1|中等时,应取适当的K1;
(3)当|E1|较小时,同时|E1c|较小时,应取较小的K1。
E2、E2c和K2应满足以下规律:
(1)当|E2|较大时,同时|E2c|较大时,应取较大的K1;
(2)当|E2|中等时,应取适当的K1;
(3)当|E2|较小时,同时|E1c|较小时,应取较小的K1。
基于上述考虑,将E和变化率Ec作为模糊控制器的输入,K1和K2的模糊控制规则分别如表1、表3所示。
表3K1模糊控制规则表
Ec E | NB | NS | Z | PS | PB |
NB | PB | PB | PB | PB | PM |
NS | PM | PM | PS | PS | PS |
Z | PS | Z | Z | Z | NS |
PS | NS | NS | NS | NM | NM |
PB | NM | NB | NB | NB | NB |
表3K2模糊控制规则表
Ec E | NB | NS | Z | PS | PB |
NB | PB | PB | PB | PM | PM |
NS | PM | PM | PS | PS | PS |
Z | PS | Z | Z | Z | NS |
PS | NS | NS | NS | NM | NM |
PB | NM | NM | NB | NB | NB |
4、系统软件设计
根据移动机械手运动控制系统可知,系统软件要实现对显示屏、miniIBT电机驱动器、RO3BS无线接收模块、HC—SR04超声波测距模块和GK102透射式光电传感器等器件的控制(包括初始化、控制信号的输出和返回信号的获取等);还包括信息显示、传感器信号的处理和模糊控制算法等一些事件的完成。系统软件设计采用模块化设计方法,整个系统主要由系统主程序和各功能子程序组成。主程序主要完成系统初始化、界面的显示(包括欢迎界面、模式选择界面和模式信息界面等)、各模式之间的切换、遥控信号的接受等功能。各功能子程序主要包括遥控驱动、读取遥控信号、抓取物相对位置获取、模糊控制算法和自动驱动等子程序。主程序流程如四所示。
图四 主程序流程图
5、结论
通过多次对不同距离、不同环境目标物抓取试验后,移动机械手能在正常条件下顺利完成抓取位置的停靠,达到设计要求。遥控模式下运动控制系统运行稳定,能正常响应控制命令;自动模式下如果目标物在开阔的环境中系统能很快的找到目标物,顺利的完成抓取位置的停靠。但是在比较复杂的环境中寻找目标物会比较慢甚至是失败,在这方面运动控制系统还有待改进。总体来看移动机械手运动控制系统还是达到设计要求,可以胜任正常条件下的物体抓取任务。
更多资讯请关注运动控制频道