翟永君
(天津轻工职业技术学院,天津 300350)
自主式移动机器人任意转角运动研究
翟永君
(天津轻工职业技术学院,天津 300350)
文章结合AS-UII型自主移动机器人的结构,针对其任意角实现的困难,给出任意转角运动的算法思想,并进行实现,通过测试表明本文给出的算法切实可行。
移动机器人;任意角;控制
本文研究的是AS-UII型自主移动机器人,如图1所示。该机器人的运动系统有两只主动轮和两只从动轮,也可加装机械手或其他装置,扩展更多的功能。在运动系统中,两只主动轮由两只电机分别驱动,可以实现前进、后退、转向、划弧线等各种平面运动。移动机器人的光电编码器能够累计机器人主动轮转动时所反馈的计数值,通过换算得到机器人的实时行进速度,然后传送到CPU进行计算,并按照程序进行运行。其中。机器人的CPU是一个单片机,其型号为68HC11E。这是一个8位机,安装在机器人的主板上,用于集中处理程序指令和传感器返回的信息。
图1 AS-UII自主机器人侧视图
机器人的矩形运动包含实现机器人各种运动轨迹控制的两个最基本的动作:直线行走与转弯。在实现机器人矩形运动的控制算法与控制效果中了解到,在机器人原有VJC软件编程环境的基础上,要使移动机器人依据指定角度(如90°)实现转弯,通过软件设置电机在转弯时的转角速度与转角时间是关键。这就要求对控制程序中“直行”“转向”模块的参数或JC中drive()与wait()的参数进行反复调试、修改,使其转角速度与转角时间能相互协调,以使机器人正好能转过90°。
但这种实验试凑的方法,工作量大,一个转角速度对应一个转角时间,并且不具备通用性,最终是依据测量得到的经验值来对机器人进行转角控制,不能保证转角的精确度,另外机械性能、地面摩擦也不可避免地对机器人的行走造成影响,所以这种方法并不能完全实现机器人矩形运动的精确控制,更不能实现任意转角的运动。在从实现机器人的矩形运动出发,下面会用一种应用光电编码器来实现移动机器人任意转角运动的算法(图2)。首先在程序中设定转弯速度和转角度数,然后把转角度数转换成脉冲值、左右轮脉冲计数清零,启动电机、累计左右轮脉冲计数,之后通过光码盘得到的脉冲计数,查看是否达到转角脉冲计数或超出设定转角时间,如果没有,则继续执行上述的流程,如果是,则转弯停止,输出左右轮脉冲累计计数,返回左右轮脉冲计数误差值。
应用光电编码器来实现机器人走矩形,是因为光电编码器是靠所获取的脉冲计数值来完成对规定距离的行走,故用它来实现矩形轨迹的行走受外界地面状况的影响程度相对较小。对于转角函数的设计,关键在于确定所要求转过角度所对应的脉冲个数。机器人转弯时,令算得的脉冲个数为上限,到达规定脉冲个数上限时停止,这样,就可以旋转到本文所期望的角度。应用此函数,不仅可以走直角,还可以转过任意所设定的角度,对于机器人准确完成行走任务有较好的帮助。由于移动机器人的左右两只主动轮分别由两只直流电机差动驱动,通过分别控制主动轮的转速和力矩来控制机器人按所要求的方向和速度移动,所以在实现机器人任意转角运动的方法上,采用单电机控制或者两电机控制。
下面以单电机实现矩形运动为例推导出实现机器人任意转角运动的控制算法,即转角与脉冲个数之间的转换函数。单电机实现矩形运动,即在转弯过程中,一电机停止运动(这里假设为右电机),另一电机(左电机)驱动一轮以其为圆心,旋转90°,这样可以完成向右转弯。本文可以根据两轮之间的距离以及轮子的直径算出所要旋转角度的脉冲个数。
左轮在转弯过程中走过的距离等于以右轮为圆心、轮间距为半径的圆周值乘以左轮在转弯过程中所扫过角度与360°的比值。而轮子旋转360°共产生33个脉冲,于是可以得到转角函数为:脉冲个数=(旋转角度
图2 任意转角子程序流程图
利用两电机实现矩形运动的控制算法,其转换函数的推导与单电机相同,具体实现将在接下来的程序中具体加以说明。
有了转角——脉冲转换函数后,便可以将计算得到的脉冲个数设为上限,到达规定脉冲个数后使电机停止,这样,就可以旋转到所期望的角度。测得移动机器人的轮间距为16cm,轮直径为6cm。
1.利用两电机进行转弯控制
利用drive()函数对两电机进行控制,实现转弯。由于drive()函数为复合语句,同时控制左右两个电机的转速,用drive(0,turn_vel)进行控制电机时,两轮转速相反,因此脉冲个数只需要以一个轮子为圆心时脉冲个数的一半。
利用motor()函数对两电机分别进行控制,实现转弯,如图3所示。
设转过90°所需的时间为t,轮直径为l,轮间距为x,左轮的速度为V1,右轮的速度为V2。因为转过90°的时间同为t,由:
图3 转弯时左右两轮示意图
2.利用单电机进行转弯控制
该程序的主体与利用drive()函数对两电机进行控制,实现转弯的程序大致相同,只是脉冲个数的判定值为degree/180×(16/6)×33。
精确控制是通过机器人控制程序来使得其为了达到某种任务而实现的控制方案,通过控制程序使得机器人能够按照程序设定的要求来完成某个任务或则运行轨迹,图4描述了任意转角运动的精确控制程序流程,在这里通过设定输入行进速度和转角数来后,按照某个程序要进行任意转角运动的控制,最后实现达到输入初的转角运动要求。
1.直线运动实验测试
实验环境由两台移动机器人组成,一个用作为主机器人,另一个作为从机器人,各自有独立的处理器、传感器和执行机构,主机器人的速度为给定的,从机器人根据红外传感测得的数据,进行分析并作出决策,驱动执行机构使得从机器人能够与主机器人保持相对的距离和速度。主机器人给定期望路径为直线,速度为20cm/s,给定时间T=10s内运动,两机器人之间的期望距离为30cm,则软件实现流程分别如图5和图6所示。
图4 实现任意转角运动的精确控制程序流程图
图5 从机器人软件实现流程
图6 主机器人软件实现流程
从机器人与主机器人不同,一方面它首先要获取与主机器人直接的相对距离信息,然后通过测得的距离与期望距离进行比较,同时又得实时获取编码器数据,测出每一时刻的速度,通过设定的控制程序求出电机的输入量,去控制电机的输出,从而达到与主机器人的相对位置不变。从表1中可以看出,两机器人在直线运行过程中,它们之间相对距离基本保持不变,从而达到了本文的实验要求。
2.转角测试
在实验中,我们先利用式(1)对两电机进行90°转弯控制的标准脉冲个数计算,应为degree/360×(16/6)×33=22。
但实际测试中结果如表2。
从下面结果看出转角运动实际测量值但在实际调试中,本文得出脉冲个数的设定值为12时,机器人就能较好地完成90°的转弯,而22个脉冲的是转角为173°。可能存在两个问题:
表1 机器人相对位置信息
表2 转角实测结果
(1)在硬件结构上,考虑到轮子的惯性,以及脉冲个数需要取整数值的缘故,角度越小,则误差越大,当角度小到一个脉冲就可以完成或是不到一个脉冲时,这时转角函数就基本失效。另外光电编码器本身在读取计数时也是存在误差的;
(2)在程序实现方面,由于受到延时函数的影响,虽然可以满足所需转角的要求,但光电编码器是在转弯过程中进行计数并且累加,这需要花费相对较长的时间;另外,在测试时,若将任意转角函数主体部分的延时语句和停止语句去掉,则必须要修改所需脉冲个数值。因为如果没有stop()语句,在循环体内执行其它语句时,电机仍在运行,故使得脉冲计数器清零后计数与实际存在误差。
在这种情况下,为了实现移动机器人的精确转角控制,本文还应该人为地进行调整。在转角计数方面,本文可以利用一些经验值来抵消光电编码器自身检测精度的影响;通过在实际不同情况下得到相应的修订值,作为程序中的设定上限值,完成对程序的完善。在硬件方面,本文可以考虑在轮子的上方加上机械旋转装置,利用对旋转装置的精确控制来完成机器人对规定角度的旋转。实际上,移动机器人自主地进行矩形运动,回不到出发点的原因,一方面是机器人在转弯过程中它多转过的角度出现误差,另一个重要原因是,机器人在最初的直线行进时就出现了偏离直线运动的现象,这样即便机器人能够实现精确的转弯,也还是会出现机器人回不到出发点,出现无法完成闭合的矩形运动轨迹的情况。由此可见,直线运动是自主式移动机器人最基本的运动,也是机器人能够精确实现其它各种动作的保证与基础。
[1]郝立果,王玉东,邴志刚等.基于CPLD和 MCU网络的服务机器人研究[J].微计算机信息,2005,(10).
[2]韩大鹏,韦庆.机器人控制器的一种模块化设计方法[J].微计算机信息,2005,(05).
[3]能力风暴智能机器人开发系统AS-UⅡ使用手册[Z].上海广茂达伙伴机器人有限公司,2010.
Research on Random Rotating Angle of Autonomous Mobile Robot
ZHAI Yong-jun
(Tianjin Light Industry Vocational Technical College,Tianjin,China 300350)
Based on the structure of the autonomous mobile robot of AS-UII and the difficulties in realizing random rotating angle,the algorithm thinking of random rotating angle is given and achieved.The paper shows the algorithm is feasible through the test.
mobile robot;random rotating angle;control
TP242
A
1673-582X(2012)08-0044-04
2012-02-20
翟永君(1981-),女,讲师,主要研究方向:数据库、自动化控制等。