三轮全向移动机器人的研究与设计

2013-09-08 10:18姚冬冬闵华松
计算机工程与设计 2013年6期
关键词:移动机器人运动学蓝牙

姚冬冬,闵华松

(1.武汉科技大学 冶金自动化与检测技术教育部工程研究中心,湖北 武汉,430081;2.武汉科技大学 计算机科学与技术学院,湖北 武汉,430081)

0 引 言

在自动化技术的广泛发展过程中,机器人技术广泛地应用到了电子、机械、自动控制与计算机算法、通讯等多种领域。其中,移动机器人以其高机动性和稳定性,受到越来越多的学者和机构的研究。工厂实践中面对任务多样化、复杂化,人们对移动机器人的控制精度和智能化程度逐渐提出了更高的要求。这对移动机器人的机械结构和软件结构的设计提出新的挑战。如何设计一个能够满足以上要求的机器人,以及与其相配合的软件系统是当前移动机器人研究的一个重要方向之一。

在机器人机械结构设计方面,全向移动机器人以其高机动性和稳定性得到了广泛的研究,其具有灵活性、稳定性等特点,能够满足机器人多样化、灵活以及准确的移动。目前在移动机构轮可以分为履带式、轮式和腿式等,而轮式由于其结构简单、稳定并且易控制的优点被广泛应用,轮式机构又根据它是否存在迂回半径分为全向轮和非全向轮[1]。全向移动机器人能有具有这样的优势主要是因为它们使用的是具有两个方向移动自由度的全向轮,其全向轮可以使机器人在移动过程中重心平移相对稳定[2]。具备全向运动能力的机器人,它们在二维平面上可以独立控制机器人的重心平移和旋转速度,这是传统的轮式机器人也无法达到的。通过对多种机器人的运动效果比较,三轮全向机器人由于可以3个轮轴同时对车身所产生的合速度相互左右来决定移动机器人的运动效果,并且运动过程相对稳定,从而选择其成为本次研究的对象。

软件设计从结构化到面向对象,软件设计也在向智能方向发展,从而产生了面向智能体 (Agent)的软件设计思想。基于智能机器人具有开发成本低、硬件体积小、部件模块化程度高、功耗低、可定制、易扩展等优点[3-4]。当下的设计者普遍将智能体概念应用于机器人软件结构的设计当中。1997年研究者提出的 “软件智能体”迅速应用于人工系统和多智能体机器人的系统[5]当中,在智能体运用的过程中,多智能体系统 (multi-agent system,MAS)作为一个具有自治性、主动性和社会性的软件集合[6],其应用到移动机器人中具有一定的优势,但仍存在一些问题:①由硬件特性划分智能体,智能体的功能依赖于具体硬件;②Multi-agent技术提高了系统的智能性,但对紧急事件反应能力考虑较少。而移动机器人是一个集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合智能体系统,多智能体系统的主要任务就是将这各种功能模块有机地结合起来,来完成移动机器人的任务,这就需要设计适应机器人的软件模型结构。一个移动机器人系统可以看作是一个 Multi-agent,多个移动机器人系统是一个Multi-agent群体,其交互、协作、通信都比较方便,正是基于以上种种特点,本文依据Multi-agent软件结构思想和智能体的特点设计了三轮全向移动机器人的软件结构。

依据三轮全向机器人以及多智能体系统的以上特性,本文设计了机器人的运动学模型和软件结构,研究并实现了三轮全向机器人的运动控制和软件模型中各智能体的功能和相互之间的通讯协作。本文着眼于全向移动机器人,首先设计了机器人的硬件平台和机械结构,其次依据机器人硬件模型的特点得出机器人的运动学模型和运动学方程,再次依据机器人需求的特点设计了机器人的软件结构模型和控制机器人的蓝牙控制协议,最后在Matlab中仿真控制机器人的运动,然后控制三轮全向移动机器人实际运动,进行对比分析并校正运动学方程。并且在JADE平台上实现了MAS中各Agent功能以及相互间的协作。

1 三轮全向移动机器人硬件平台

考虑到灵活性、小型化、稳定性、模块化等特点,基于嵌入式平台,设计了三轮全向移动机器人的软硬件架构,其主要有控制模块 (stm32),内部通信模块 (串行通信协议),外部通信模块 (蓝牙、WiFi等),传感模块,运动控制 (ATMega8)模块。

图1 机器人电气结构

图1中机器人控制系统中主控制芯片为STM32,主控芯片通过ADC进行信号转换,USART1、USART2、USART3分别连接串口、蓝牙和无线射频单元的连接,完成机器人与手机控制端的交互,陀螺仪、巡线传感器、8路红外避障传感器、超横波测距模块等多种传感器,完成与外界环境的感知与交互。机器人同时支持3G、WiFi、Bluetooth、ZigBee、RFID等通信方式,本系统在通信方面,STM32通过USART2与蓝牙模块进行通信,再由蓝牙模块与手机端进行通信。ATMega8控制器与各传感器之间采用串行通信协议进行通信。

该平台具有多类感知功能 (红外、蓝牙、超声波等)以及无线通信模块,具有交互、学习等特点。这为研究机器人感知、学习、推理、导航、控制等奠定了基础。

图2为机器人实物图。全向轮具有全方位移动的优势,不像传统的移动轮只能前后移动,它具有能够在两个方向上移动的自由度,并且不存在回转半径的问题。全向轮是由若干小滚轮组成,使各滚轮的母线共同形成一个完整的圆周,从而使轮子可以全方位转动。本文采用的全向轮由16个小滚轮组成,轮子半径为52.5mm。机器人通过STM32主控芯片收到串口通讯命令启动马达驱动板,驱动板会带动马达转动全向轮的轮轴,从而控制全向轮转动。本文所用机器人高128mm,长340mm,宽390mm。

图2 机器人实物

2 机器人运动学模型

通过对上述机器人硬件结构模块的分析可知机器人是利用舵机控制机器人的全向轮进行运动。机器人的3个全向轮通过3个轮轴同时对车身所产生的合速度相互左右来决定移动机器人的运动效果。机器人的车头方向与车旋转的角速度是影响车身移动的两个相互独立的因子。机器人能够平衡自身重心、具有稳定的运动速度。另外,机器人的红外测距传感器、红外避障传感器可以帮助机器人在运动过程中获取相关的环境信息。

图3为机器人移动图,其中 (x,y)是机器人运动模式的参考坐标系,其中A,B,C是对3个轮子的编号。使用3个全向轮运动数学模式,本文定义一个绝对坐标系统(x,y)来表示机器人在环境中的位置;θ表示机器人在绝对坐标系的方向角,ω则表示机器人在绝对坐标系的角速度,因此机器人的位置和方向在坐标系中可以表示为 (x,y,θ),而 (vx,vy,ω)则表示机器人的运动速度。以区域坐标系为标准,逆时针方向为正方向,以机器人的全向轮A为参考标准,则全向轮B与A之间的角度为120°,全向轮C与A的角度为240°。

图3 三轮全向机器人移动

全向机器人的控制是利用3个全向轮的合速度来实现机器人的速度。在图3中,机器人沿着方向移动,其平移速度可以分解到x,y方向为v,机器人的3个全向轮的速度为v。此时车子旋转的大小方向为×,则3个轮子的速度分别为式 (1)-式(3)所示

每个轮子的中心速度可以分解成两个部分,一部分控制机器人的速度,另一部分控制机器人的运动角度,运动学方程推导出来如式 (4)[7]所示

其中每一个全向轮的半径都是r,机器人中心到轮子中心的距离设为R,轮角速度设为ωi,其中i取值1、2、3。本文所采用的机器人r为52.2mm,R平均为180mm。

3 机器人软件模型结构

在三轮全向移动机器人中,机器人的控制系统用来处理运动控制模块与传感器模块或者与蓝牙模块交互的信息,从而通过智能体实现相应的模块功能。智能机器人软件系统是具有多模块,多功能的复杂系统,一般包含感知、学习、决策、行动、控制等功能模块。各功能模块相对独立的完成各自功能,但又相互依赖、共享信息、相互协调,从而有效地完成总体任务。

3.1 机器人 Multi-agent模型结构

MAS是分布在几个机构或在一个网络的多个分布式Agent组成,他们具有社会性,需要彼此交互达成系统的总体目标。MAS是一个具有自治性、主动性和社会性的软件集合。Agent具有自治性,拥有自己的控制线程而独立于其他进程。Agent还具有反应性,除应对其他消息或外部事件外,Agent有时可能会采取主动,改变他们的行为以达到他们的目标[8]。自治性需要更多的Agent相互协调。有些反应可能不需要学习,更少的学习能力通常意味着更多的Agent一起做出反应,而更多的学习能力通常意味着更多的Agent自治。Agent是计算的实体,从环境中接收传感器输入,并能产生影响他们的环境的行为。Agent通常都有一组操作,每个操作都有目标的前提条件和影响它的环境,Agent根据目标制定可执行的行动计划。Agent之间能相互交流,并进行合作、洽谈和协调行动。

通过对硬件层次结构、分布式结构以及机器人运动学模型的分析,本文基于 “思维与学习、感知与交互、行动与控制”的理念[9],结合慎思Agent和反应Agent的特点,抽象出了5个Agent,各Agent有机结合,协调、协作使之成为一个智能化程度较高的整体。本文Multi-agent模型结构如图4所示。

图4 机器人软件模型结构

该模型结构包含了慎思功能模块 (CBR推理Agent),社会功能模块 (导航Agent、交互Agent),感知功能模块(感知Agent),行动控制功能模块 (控制Agent)。各Agent独立完成各自任务,并通过协作来完成全局任务。其中CBR推理Agent是进行主要的智能推理,导航Agent和控制Agent用来实现控制机器人的运动,完成目标任务。感知Agent通过红外测距传感器与红外避障传感器来获取周围环境信息,将信息传递给CBR推理Agent,CBR推理A-gent做出决策之后交给导航Agent来告诉控制Agent如何来控制机器人运动。其中交互Agent主要实现学习和感知Agent的交互。

针对模型结构中的Agent,我们定义了其基本模型:A-gent= {名称,作用,合作者,帮助方法,目标},其中名称是Agent的标识;作用是对Agent的描述;合作者是具有协作关系的Agent列表;帮助方法为通讯协议,决策等;目标是Agent的功能体现,其中一个五元组destination={R,S,KB,D,P},其中:R为接收信息;S为发送信息;KB为Agent的知识库;D为目标任务;P为Agent完成任务的进度。

一个任务的完成用式 (5)来描述

根据模型结构中的各Agent功能,建立机器人基本软件模型。整个软件体系由感知Agent、交互Agent、导航Agent、CBR推理Agent和控制Agent组成。其中每个A-gent都具备学习和思考能力。机器人红外测距传感器、红外避障传感器等获取到周围环境信息后,交由感知Agent接受信息数据传递给CBR推理Agent,然后CBR推理A-gent根据信息进行分析和推理将结果传递给导航Agent,最后由控制Agent来完成机器人的行为。

3.2 机器人通信与控制

机器人的行动控制是由导航Agent和控制Agent来完成。而机器人的控制模块主要是通过终端中的蓝牙模块与机器人中的蓝牙模块通信完成,终端采用的是android系统,它采用了软件堆层的架构,底层Linux内核只能提供基本功能采用C/C++语言编写,应用层开发语言为JAVA,具有良好的可移植性。图5为移动机器人控制与传感结构图,主控器通过蓝牙与控制终端进行交互,同时控制红外、超声波等传感器。

图5 机器人控制与传感结构

机器人与手机蓝牙模块之间的通信要遵循机器人蓝牙通信协议。手机应用程序存储蓝牙模块的ID号,打开蓝牙后,搜索该ID,并配对连接,然后打开蓝牙串口服务,设置通信参数如下:波特率115200,8数据位,1停止位、无校验位。手机应用程序可以向机器人控制器发送读命令、写命令。读命令:应用程序查询设备ID对应设备的状态信息;写命令:服务程序发送设备ID对应设备的控制信息;机器人控制器如果接收到读命令,返回对应设备的状态信息;如接收到写命令,则不返回信息,其中运动速度范围为0100cm/s,旋转角度范围为0°180°。表1为蓝牙通信协议,其中指令格式:十六进制。

表1 蓝牙通信协议

4 测试结果及分析

全向轮型机器人的特点是可以按照任意方向转动,这样机器人可以按照所规划的任意角度的方向来运动,为验证运动学模型和运动方程的有效性,在Matlab环境中进行仿真实验,实验环境为10*10的开阔环境中,机器人以ν=20cm/s,ω=0进行直线运动,以ν=20cm/s,ω=30进行圆周运动,仿真结果如图6和图7所示。其中蓝色轨迹为机器人运动轨迹。坐标点 (0,0)为机器人运动起点。

为了测试机器人的智能体之间的通讯和机器人的运动学模型,对于三轮全向机器人的实际运动进行测试。为验证实际的机器人直线运动,本文在53cm*38cm的环境中进行运动测试,机器人直线运动距离为53cm。直线运动运动轨迹如图8所示。作者将黑色记号笔固定在机器人前端,机器人在白色卡纸上运动时会留下黑色的轨迹。

图8 直线运动轨迹照片

图8为机器人在ν=100cm/s,ω=0时的直线运动轨迹照片,从照片中可以看出机器人在进行直线运动时运动路径有明显的偏移。因此,本文依据根据上一节中设定的机器人的运动线速度跟运动角度范围,本文进行实际运动测试,因为篇幅限制就不将照片一一列出,实际机器人到达的点与预期的目标点相比较后的结果见表2。

表2 直线运动轨迹实验结果分析

由表2数据可以看出,机器人在运动过程中会存在偏移误差,但是偏移角度误差范围都在5°以内,基本上可以达到仿真中预期的目标。机器人在进行直线运动时,当速度较小时机器人会往右边偏移,随着速度的增大偏移量会减小,但是当速度增大到一定程度时,机器人会开始往左边偏移运动,偏移角度也会增大,但是都在误差范围以内。

为验证实际的机器人圆周运动,本文在同样在53cm*38cm的环境中进行运动测试,移动机器人在同一中心点按照预定的条件转动,圆周运动轨迹如图9所示。同样作者将黑色记号笔固定在机器人前端,机器人在白色卡纸上运动时会留下黑色的轨迹。

图9 圆周运动轨迹照片

图9为机器人在ν=100cm/s,ω=30时的实际圆周运动轨迹照片,从照片中可以看出机器人在进行圆周运动时机器人在慢慢偏移原来的中心。因此,本文依据根据上一节中设定的机器人的运动线速度跟角速度范围,本文进行实际运动测试,因为篇幅限制就不在此将测试照片一一列出,机器人转动后的中心点与原先预定的中心点相比较后的结果见表3。

表3 圆周运动轨迹实验结果分析

表3数据可以看出,机器人在进行圆周运动的时候,根据线速度大小的增加,机器人的稳定性就会变差,在线速度增加的过程中机器人会因为速度的加快机器人会产生振荡,因此机器人的中心会产生偏移,速度越大振荡程度越大,因此中心的偏移程度也会越大,所以圆周运动的中心偏移距离也会越大。

三轮全向机器人的运动速度是由3个轮子的速度组合而成。在运动学基础上进行控制时,如果3个轮子不能严格同步,那么组合之后的速度就不是预期中所期望的速度,因而不会按照要求的路线运动。实验中的机器人走直线运动时出现偏差是因为机器人的轮轴到机器人中心的半径不同而造成的,机器人轮子安装没有对称导致机器人在运动时偏向一个方向,同时会引起轮子运动中的向心力不同。

在运动控制中,根据已知的x,y,θ利用理想的运动学模型得出的vx,vy,ω,然后vx,vy,ω经过实际的机器人运动的作用后得出实际的全域速度vx',vy',ω',由于 式 (5)中Ri不尽相同,所以此时得出的vx',vy',ω'跟理想中的vx,vy,ω不相等,所以需要找到Ri的误差规律才能得到预期的结果

式 (6)中R1,R2,R3是影响3个轮子不同的误差因素,由此可见,增大R和减小r都可以减小各个误差的传递参数,但是r减小后机器人对地面的适应能力将变差,R受到机器人本身物理条件的限制,不能太大,根据上述公式只能适当控制sinθ和ω的值来使机器人能达到预期效果。

JADE (Java agent development framework)是由意大利电信集团 (telecom Italia)发布的多Agent系统中间件平台[10]。该平台包含有丰富的API函数可以用来构建Agent,并且具有图形化的界面支持Agent之间的通讯调试,因此本文在JADE平台上对机器人框架进行了仿真,图10为模拟蓝牙和红外两种信息的测试结果。

图10 红外与蓝牙命令信息处理监测

图10中test为测试Agent,它随机模拟红外和蓝牙信息输入。Perception,Interaction,CBR,navigation,control分别为对应的Agent模拟器。其中INFORM:-1为红外信息输入,REQUEST:-1为蓝牙信息输入。在软件部署的基础上对机器人做了蓝牙和红外信号输入测试。本文在酷睿双核处理器,CPU为2.93GHz,内存为2G的window XP系统下进行测试,测试结果见表4。

表4 信号测试结果

从表4可以看出,蓝牙信号的输入反应时间要比红外信号的反应时间慢,并且信号传递的成功率也低于红外信号的传递。由于三轮全向机器人有六个红外传感器,而蓝牙模块只有一个,所以红外的反应速度较蓝牙的反应速度较快,正确率也较高。

从图10中可以看出,测试Agent随机向感知Agent发送蓝牙命令或红外传感器信息,感知Agent都能将受到的信息与交互Agent和CBR Agent进行交互然后完成最后的目标任务分析各个Agent信息传递,符合 Multi-agent模型结构中各个Agent的交互协作机制,从而验证了模型结构的可行性。

5 结束语

本文首先对移动机器人的机构特点进行了对比和分析,并移动机器人的硬件特点将机器人的硬件分为几个功能模块。然后通过对三轮全向机器人继续力学分析和运动学原理得出运动学模型来控制机器人的运动。并且利用机器人的模块化部件,设计实现了机器人的软件模型。这种三轮全向移动机器人能够利用软件结构和运动学模型完成机器人的运动目标,达到所需要的运动效果,并且体现了机器人的智能体特性。

[1]Raul Rojas.Omni-directional control[M].Freie University Berlin,2005.

[2]Naveen Suresh Kuppuswamy,Se Hyoung Cho,Daniel Stonier,et al.Design of an omni-directional robot for FIRA robosot[C]//Korea Advanced Institute of Science and Technology,2007.

[3]LIU Sen,MU Chundi,ZHAO Mingguo.Humanoid robot controller based on ARM embedded system [J].Journal of Tsinghua University(Science and Technology),2008,48 (4):482-485.

[4]LI Nan,ZHAO Jingdong,JIANG Li.Embedded control system for multi-DOF anthropomorphic prosthetic hand and its grasping strategy[J].Robot,2011,33 (1):22-27.

[5]Paul Fitzpatrick,Giorgio Metta,Lorenzo Natale,et al.Towards long-lived robot genes [J].Robotics and Autonomous Systems,2008,56(1):29-45.

[6]Vallejo D,Albusac J,Mareos J A,et al.Amodernapproach to multi-agent development [J].Journal of Systems and Software,2010,83(3):467-484.

[7]WANG Shimin,LAI Lichun,WU Chiaju,et al.Kinematic control of omni-directional robots for time-optimal movement between two configurations [J].Intell Robot Syst,2007 (49):397-410.

[8]Fabio Bellifemine,Agostino Poggi,Giovanni Rimassa.JADE:A software framework for developing multi-agent applications[J].Lessons learned.Information and Software Technology,2008 (50):10-21.

[9]MIN Huasong,HUANG Lei,GAN Xun.Research and design of multi-agent model structure for embedded robot dog[C]//IEEE the 10th World Congress on Intelligent Control and Automation,2012:3627-3633.

[10]JADE.Java agent development framework [EB/OL].[2012-09-05].http://jade.tilab.com/.

猜你喜欢
移动机器人运动学蓝牙
蓝牙音箱的直线之美
移动机器人自主动态避障方法
基于MATLAB的6R机器人逆运动学求解分析
工业机器人在MATLAB-Robotics中的运动学分析
基于D-H法的5-DOF串并联机床运动学分析
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
基于Twincat的移动机器人制孔系统
基于运动学原理的LBI解模糊算法
极坐标系下移动机器人的点镇定