俞志伟,杨屹巍,2,宫 俊,2,戴振东
(1.南京航空航天大学 仿生结构与材料防护研究所,南京 210016;2.南京航空航天大学 自动化学院,南京 210016)
现代机器人技术的研究是控制论、系统论、信息学、计算机科学、机械学、传感器技术、人工智能和仿生学等多学科综合而形成的高科技产物,是研究最为活跃及应用愈加广泛的领域[1]。传统机器人都采用轮式或履带式结构,不能充分实现空间三维表面运动的灵活性,因此人们把目光转向了自然界,希望能从中获得灵感[2,3]。由于壁虎是空间三维表面运动灵活的良好仿生对象,对非结构环境适应能力强,能够实现地面、墙面、天花板及不同法向面间的过渡,因此通过对壁虎的运动功能仿生研究,研制具有足式结构的仿壁虎机器人具有比轮式和履带式等机构更好的优越性。
本文仿生研制了仿壁虎机器人,采用大力矩舵机驱动机器人各关节,控制系统由机载电源供电。本文仿生研制了仿壁虎机器人,采用大力矩舵机驱动机器人各关节,控制系统由机载电源供电。传统设计中使用Atmega16 AVR微控制器[4]、TMS320F2812的DSP控制器[5,6]对小型机器人系统进行控制。由于仿壁虎机器人需要在竖直墙面和天花板进行运动,对于控制系统的体积和重量有着更高的要求,同时应满足足式粘附运动中对自身位姿和足端粘附力的感知和实时控制要求,而ARM处理器中LPC2103具有最高70MHz主频的RISC内核,集成32KB Flash和8KB RAM存储器,封装大小仅为7×7×1.4mm[7~9],完全满足仿壁虎机器人系统要求,因此,本文设计了以LPC2103为核心的仿壁虎机器人控制系统。在仿壁虎机器人爬壁实验中,该系统实时驱动12自由度关节运动,完成90°稳定爬壁运动。
根据对生物大壁虎的观察,设计了一种仿壁虎机器人,其三维模型如图1所示。
该机器人的前后腿采用对称式布置,降低了机器人重心,使机器人爬行时重心更稳定。机器人的每条腿都有3个主动自由度。驱动抬放腿动作的1号电机和身体相连,实现腿部绕1号电机中心轴的旋转运动,在运动时实现脚掌的抬起和放下。2号电机和3号电机组成一个二连杆机构,负责驱动机器人身体前进。这样的电机布置和机构布局能最大限度地提高机器人足端在水平面的运动范围和脚掌的抬起高度。
本控制系统硬件部分可分为主控部分、电源部分和通信部分。其中主控部分对机器人进行集中控制,负责机器人四肢的舵机驱动、采集传感器数据和响应上位机控制信号;电源部分负责给机器人的控制系统硬件和舵机供电;通信部分负责接收上位机的信号和信号电平转换。机器人控制系统硬件电路模块图如图2所示。
图2 硬件电路模块图
图3 机器人控制系统电路图
主控部分使用的芯片为32位的ARM7 TDMI-S内核的LPC2103微控制器,具有每秒中最多处理6300万条指令的计算能力、8KB的RAM与32KB的Flash存储器、2个32位计数器和2个16位计数器,2个SPI接口、2个I2C接口、2个异步串行口,可以从根本上提高机器人控制时的实时性,存储更多控制程序,可连接更多的传感器和执行器,从根本上提高了机器人控制系统上的性能。
LPC2103微控制器使用片内四个定时器,可产生12路PWM信号控制机器人四肢各关节的舵机转动角度;在传感器信号采集方面,使用LPC2103集成的8路10位模数转换模块采集模拟输出的传感器信号或者使用SPI或I2C接口采集数字输出的传感器信号,与上位机通信时,利用片内的异步串行口与通信部分的MAX232和MC55进行通信。主控电路如图3所示。
为解决舵机驱动对其他电路干扰较大的问题,电源部分设计分为两路供电,分别为舵机和控制电路供电。由于机器人使用的是大扭矩的HS-65MG舵机,每个舵机的工作电流是200mA,则当12个舵机同时工作时总共需要2.4A电流,所以舵机的供电部分使用了3片LM7805,每片可提供1A电流的5V稳压电源。在电源的输入端使用二极管桥式整流电路以防止电源接入时的极性错误,为了防止LM7805在并联使用时个体差异可能会造成的发热,分别在每个LM7805的输出端传入二极管,而增加该二极管又导致了输出端无法达到5V的电压,为了解决这个问题,在LM7805的接地端引入二极管以抬高LM7805的输出电压。舵机电源电路如图4所示。
在控制系统电源部分,由于LPC2103的片内外设和内核分别使用3.3V和1.8V电源供电,故各使用一片AMS1117-3.3和一片AMS1117-1.8产生3.3V和1.8V稳压电源。在输入端同样使用二极管桥式整流电路防止极性错误,而为了减少电路各部分的电源和地之间的相互干扰,分别在电源芯片输出端到其他芯片的电源之间,电源地和数字地、模拟地之间引入零欧姆电阻,相当于很窄的电流通路,能够有效地限制环路电流,使噪声得到抑制。电路图如图5所示。
图4 机器人舵机电源部分电路图
机器人的通信部分可分为有线通信和无线通信,有线通信通过通信电缆连接到RS232总线驱动和接收器MAX3232上,由MAX3232将LPC2103异步通信口的3.3V电平转换为RS232电平以便于和上位机通信,电路图如图6所示。
图5 机器人控制系统电源电路图
无线通信部分使用西门子的MC55,实物如图7所示,GPRS三频无线通讯模块,支持GSM通讯和分组业务功能,内嵌TCP/IP协议栈,具有使用简单,可靠性高,体积小等特点。MC55经串口和LPC2103通信。LPC2103发送专用的AT指令控制MC55模块,AT指令由ASCII字符AT开头,〈CR〉结束。
在机器人运行期间,LPC2103中断查询MC55从上位机收到的控制命令,从而实现对仿壁虎机器人的远程控制。
图6 MAX3232电路图
机器人控制系统的软件部分主要是由已知的步态数据生成相应的各关节舵机所使用的PWM脉宽以控制舵机的转动角度,关节舵机使用周期为20 ms,脉宽为0.5-2.5ms,相应的转动角度范围为 0°~180°[10~12]。
首先需要将已知的关机舵机转动角度转换为舵机所需的PWM脉宽,PWM脉宽和转动角度呈线性关系,可以用下式表示两者的关系:x=C-(α×P+Z),x表 示PWM脉 宽,C为PWM一个周期,α表示舵机转动角度,P表示1度角度的脉宽,Z表示舵机零度时的脉宽。
图7 MC55无线通信模块
LPC2103的四个定时器采用匹配输出的方式,各产生3路PWM波。以定时器0为例,下面详细介绍定时器输出PWM的方法。定时器0为一个32位的匹配/捕获定时器,提供3路比较匹配输出和3路捕获输入,能够在MAT0.0~2上产生3路单边沿PWM输出。定时器0内部有4个匹配寄存器(MR0~3)和4个捕获寄存器(CR0~3)。本文采用在MR0~2寄存器存放3路PWM脉宽数据,MR3寄存器存放PWM周期数据,在PWM控制寄存器中将MAT0.0~2配置为PWM输出。PWM波的输出原理是:在PWM周期开始时,所有PWM输出为低电平;计数器与匹配寄存器发生匹配时,相关的PWM输出为高,若没有发生匹配,则相应PWM波输出一直为低电平;当定时器与PWM周期匹配定时器发生匹配时,该定时器的3路PWM波输出均清零,同时触发定时器比较匹配中断,在中断处理程序中重新将PWM脉宽数据对比较匹配寄存器赋值,其原理如图8所示。
图8 PWM波原理图
机器人控制程序流程图如图9所示。
机器人控制对实时性的要求很高,实时性决定了四足机器人四肢运动的协调性和连贯性,以下从软件方面分析本系统的实时性,以微控制器处理汇编指令为评价标准,本系统LPC2103使用44.2368MHz时钟,每个时钟周期耗时22.6ns。在系统初始化模块中总共有219条指令,其中单周期指令使用158条,需要158个时钟周期,多周期指令61条,需要163个时钟周期,初始化总共需要321个时钟周期,耗时7.2546ms,保证了机器人以极快的速度完成系统初始化。在驱动单腿时总共为121条指令,其中单周期指令91条,需要91个时钟周期,多周期指令30条,需要146个时钟周期,驱动单腿共需237个时钟周期,耗时5.3662ms,由此可得,发送一次驱动四肢的PWM信号总共需要948条指令,耗时21.4648ms,完全满足同时控制四肢12个舵机的实时性要求,保证的四肢各个关节的相互协调和运动的连贯性与实时性。
图9 机器人控制程序流程图
如图10所示,南航仿壁虎机器人实验样机IBSS-gecko-6,重约500g,具有12个主动驱动自由度和12个被动约束自由度,单个脚掌能够适应空间三维不同表面,实现了90°竖直壁面的爬行运动。
图11~图13分别为机器人进行运动试验时的一个周期单腿各关节角度变化曲线。经90°爬壁实验验证,该机器人控制系统运行稳定,能够精确驱动控制各关节角度,没有出现因关节运动角度误差而导致各腿间粘附脚掌的被动脱附,机器人运动平稳,表明基于LPC2103为核心的仿壁虎机器人控制系统性能稳定、可靠。
图10 仿壁虎机器人90°爬壁步态图
图11 1号电机关节角度变化曲线
图12 2号电机关节角度变化曲线
图13 3号电机关节角度变化曲线
本文以LPC2103为核心设计了仿壁虎机器人控制系统,实时驱动仿壁虎机器人12自由度关节运动, 实现90°稳定爬壁运动,爬壁实验中机器人整体系统运行稳定可靠,控制系统对机器人各关节的运动控制准确,表明基于LPC2103为核心的仿壁虎机器人控制系统性能稳定、可靠。
[1] 王田苗, 孟偲, 裴葆青, 等.仿壁虎机器人研究综述[J].机器人, 2007, 29(3): 290-297.
[2] 戴振东, 孙久荣.壁虎的运动及仿生研究进展[J].自然科学进展, 2006, 16(5): 519-523.
[3] 戴振东, 张昊, 张明, 等.非连续约束变结构机器人运动机构的仿生: 概念及模型[J].科学通报, 2007, 52(2):236-239.
[4] 李岩, 孔凡让, 万小丹.基于AVR的双足步行机器人舵机控制[J].机械与电子, 2007, (12).
[5] 张龙, 孟偲, 刘颖.仿壁虎机器人多路舵机控制器设计[J].微特电机, 2010, (9): 54-57.
[6] 孙立宁, 王鹏飞, 黄博.四足仿生机器人嵌入式多关节伺服控制器的研究[J].机器人, 2005, 27(6): 517-520.
[7] 刘森, 慕春棣, 赵明国.基于ARM嵌入式系统的拟人机器人控制器的设计[J].清华大学学报(自然科学版), 2008,48(4): 482-485.
[8] 周杰, 陈伟海, 于守谦.基于ARM的嵌入式系统在机器人控制系统中应用[J].微计算机信息, 2007, 23(2):271-274.
[9] 马潮, 詹卫前, 耿德根.LPC2103原理及应用手册[M].北京: 清华大学出版社, 2003.
[10] 梁峰, 王志良, 解伦, 等.多舵机控制在类人机器人上的应用[J].微计算机信息.2008.24(1-2).
[11] 任志敏.基于定时器定时的6路舵机控制电路研究[J].自动化技术与应用.2010, 29(8).
[12] 赵杰, 郭亮, 臧希喆, 等.应用于六足机器人平台的舵机控制器设计[J].机械与电子.2005, (9).