赵学玲,边授权,郝立果,赵 鹏
(1.天津职业技术师范大学信息传感与智能控制重点实验室,天津 300222;2.天津职业技术师范大学工程实训中心,天津 300222)
人形机器人是一种具有人的外形特征和行为的机器人,它能够代替人类完成各种作业,并可以在很多方面扩展人类的能力,提高效率。人形机器人已在服务、医疗、教育、娱乐、救灾抢险等多个领域得到广泛应用[1]。美国、日本、韩国、英国等国家都在研制人形机器人方面做了大量的工作,并已取得突破性的进展[2]。我国在这方面也做了很多工作,国防科技大学、哈尔滨工业大学、上海交通大学等研制出了双足步行机器人[3];北京航空航天大学、哈尔滨工业大学、北京科技大学研制出了多指灵巧手[4];中科院合肥物质研究所研制出了智能脚等[5]。本文介绍一款低成本的小型人形机器人,该机器人能够满足双足机器人的基本要求,且具备最基本的运动功能。在机械结构方面,参照人体实际的肢体比例制作了躯干、四肢和头,各活动关节利用舵机构建,并设计一个舵机的驱动器,用于控制舵机以实现各关节动作;利用Visual Basic设计了舵机控制软件,实现对机器人的运动控制。实验表明人形机器人能够完成规定的舞蹈动作组合。
人形机器人整个系统主要由机械结构、控制电路和上位机控制软件3部分组成,如图1所示。机器人的机械结构仿照真人的肢体搭建并尽可能接近实际人体的比例,各关节的活动通过舵机实现;控制电路用于驱动控制每一台舵机,模仿人的肢体动作;上位机控制软件用于编排机器人舞蹈,计算出实现每一个动作相应关节的运动角度。
操作者根据机器人要做出的舞蹈动作,将每一个关节的动作幅度和先后顺序进行编排,并输入上位机软件中;运行软件后,上位机将通过串行通信接口,将动作指令逐一发送到控制器;控制器中的CPU在得到指令后,将控制相应的舵机运动并达到指定位置,舵机带动肢体关节转动,以实现模仿各种肢体动作。在制作时,将舵机控制器和电池安装于机器人本体上。
机械结构是机器人做出各种模仿动作的基础,人体关节十分复杂,要模仿出惟妙惟肖的人体动作,机器人的关节数量及自由度就要尽可能的多[6],但关节数量和自由度的增加会使得机器人的控制难度增加,硬件成本提高[7-9]。“舞蹈演员”在表演时,他们的双臂和双腿以及头部动作会形成较好视觉效果,而手指等部位的动作一般看不清楚。考虑以上因素,机器人的机械结构设计本着抓大放小的原则[10],只选用动作幅度较大、动作明显的主要肢体和关节,并减少其自由度,对于手指、脊椎等关节则忽略不计。
机器人的肢体结构主要由头、躯干、双上肢、双下肢共6个肢体组成,如图2所示。机器人头部与躯干通过颈关节连接,为简化控制颈关节,只保留了1个左右旋转的自由度;上肢通过肩关节与躯干连接,肩关节有2个自由度,可做出侧摆臂和前后摆臂动作,大臂和小臂之间通过肘关节连接,1个弯曲自由度;下肢与躯干通过髋关节连接,具有2个自由度,可做出侧抬腿和前后抬腿的动作。大腿与小腿之间由膝关节连接,可做弯曲动作;小腿与足部由踝关节连接,可做弯曲动作。机器人本体由11个关节组成,共有15个自由度。
图2 人形机器人肢体结构
由于机器人要直立行走并做出各种动作,进行机械结构设计时,要在保证机械强度的基础上,尽可能减化机构、减轻重量,所以在选择材料上以铝制型材为主。机器人肢体外形图如图3所示。图3(a)为机器人躯干,利用铝片制成外形轮廓,中空部分用于安装电路和电池;图3(b)为上、下肢基本形状,利用铝片制成U形,根据安装位置的不同可对其尺寸进行调整,在作为机器人肢体同时,还可用于固定舵机。
图3 机器人肢体外形图
将完成后的机器人肢体按照对应位置连接起来,机器人本体的机械结构也就基本完成了。为了简化机构,采用舵机输出轴直连的方式进行肢体的连接,舵机轴旋转的角度对应关节弯曲的角度。对于2个自由的肩关节和髋关节,则采用2个舵机正交连接的方式,图4所示为完成连接的机器人本体机构。
图4 机器人本体结构
机器人控制电路的主要作用是根据编排好的舞蹈动作,控制舵机输出轴的旋转角度,使机器人关节弯曲做出各种肢体动作。控制电路的控制对象是舵机,其控制信号为50 Hz的方波,通过改变方波的占空比来控制舵机的输出角度。控制电路由MCU、电源单元、通信接口和I/O扩展4个部分组成,如图5所示。
图5 机器人控制电路结构
电源单元利用6 V锂电池作为能源,输出6 V和5 V两路电压,其中6 V电压用于舵机供电,5 V电压用于单片机和其他芯片供电。机器人本体采用了2种舵机,头部和肘关节处由于受力小,选用额定电流为30 mA舵机,其他12个舵机的额定电流为150 mA,如所有舵机同时达到额定电流,可产生1 890 mA电流,所以电池选择最大放电能力为3 A。其他芯片总电流不大于100 mA,选用7805稳压芯片进行稳压产生。
系统MCU采用AVR系列的8位单片机ATMEGA48,单片机与PC机之间采用串行通信,利用MAX232芯片进行TTL到RS232电平的转换,利用4个74HC595串入并出芯片实现I/O口扩展,可产生32路方波输出,最多同时控制32个舵机。为避免控制延时过长,将4个74HC595芯片分为2组,由2组I/O口分别控制,为了减小体积,选用贴片元器件制板,电路板如图6所示。
图6 I/O扩展接口图
单片机程序的主要功能是根据上位机发来的指令控制对应的I/O口输出不同占空比的方波,程序主要包括:通信子程序、定时子程序和I/O输出子程序,程序流程图如图7所示。单片机上电后首先进行初始化,对不同关节的舵机输出不同占空比的方波,使机器人处于直立状态。初始化完成后进入主循环,程序循环体主要包括以下步骤:查询串口指令—改变占空比值—定时比较—输出刷新。
图7 单片机程序流程图
串口接收的指令为连续的2帧数据,每帧16个字节。为了减少单片机的程序运算量,串口数据中每一个字节代表一路输出脉宽为0.1 ms的方波,该方波用于控制一个舵机。舵机选用的是盛辉MG599,其控制信号为周期20 ms的脉宽调制信号,其中脉冲宽度为0.5~2.5 ms,相对应舵盘的位置为0°~180°,两者间呈线性变化。
利用定时器产生0.1 ms时基的中断,在中断处理函数中对定时变量进行累加,在主程序的循环体中,将定时变量与脉宽值数组中的数据逐一进行比较。当变量值与数组中的某一元素相等时,此元素对应的I/O口将输出低电平,当定时达到20 ms时,所有I/O口输出高电平,同时将定时变量清零。32路PWM输出的时序如图8所示。
图8 PWM输出时序图
机器人的舞蹈动作编排软件利用VB程序设计,操作者根据设定的舞蹈动作,分解成每个舵机的角度变化,并将其按照动作顺序输入到界面中。为了简化操作,本着简单实用的原则,只设计一个界面,如图9所示。控制界面主要包括通道设置、串口设置和操作设置3个部分,串口设置部分用于设置通信波特率、数据格式等通信参数,在完成串口基本设置后即可以对机器人的舞蹈动作进行编排。
图9 上位机控制界面
根据机器人实际用到的舵机数量,选择并激活相应的控制通道,将舞蹈动作进行分解,通过拖动界面中的每一通道的进度条,控制相应舵机转动,一个分解动作中所有关节设置好后,点击添加指令,本动作将被存入指令序列,按此方法将所有动作设置好,即完成了动作的编排。点运行指令,上位机将按照设定的间隔时间将指令序列依次发送到下位机,机器人即可实现舞蹈动作。
在完成了机器人的制作后,通过实验对系统的功能和可靠性进行验证,实验主要包括单关节测试和多关节关联调试。单关节测试的目的主要是确定其转动角度的范围、方向是否正确并确定初始位置,利用上位机控制界面,通过改变每个通道的值,观察相应关节的运动,确定其初始位置,通道1~15与各关节自由度的对应关系如表1所示。
通过对单独关节的测试,证明本系统单独关节可以模仿人肢体的基本运动,而模仿人体动作需要多个关节关联运动,在完成了单独关节动作的测试后,还应进行多关节关联动作的测试。以简单下蹲动作为例,需要髋、膝、踝关节配合动作,以保证其重心位置不会偏移而摔倒,通过不断调整相关关节的放置角度和速度及前后关系,最终使其能够平衡地完成下蹲动作。
表1 机器人静止时各关节初始位置
本文介绍了一种人形机器人的设计,按照人体比例设计了机器人的结构,利用15个舵机实现各个关节的动作,组成了具有15个自由度的人形机器人,并设计了一个集成舵机控制器,通过与上位机通信的方式协调控制多路舵机。通过对人形机器人进行各项测试,验证了设计的合理性,通过大量的实验最终实现了完整的舞蹈动作。
[1]张茂川,蔚伟,刘丽丽.仿人机器人理论研究综述[J].机械设计与制造,2010(4):166-168.
[2]CYNTHIA B.Emotion and sociable humanoid robots[J].Int J Human-Computer Studies,2003,59:119-155.
[3]胡金东,刘国栋.双足机器人步行模式的在线全身修正[J].计算机应用,2011,31(1):286-288,292.
[4]中华人民共和国科学技术部.智能机器人五指灵巧手研制成功[J].机器人技术与应用,2010(6):45.
[5]人民日报社.中国机器人“智能脚”不惧坎坷路[J].硅谷,2012(10):1.
[6]姜铭,孙钊,秦康生,等.混联机器人的分析和研究[J].制造业自动化,2009,31(1):61-65.
[7]周玉林,高峰.仿人机器人构型[J].机械工程学报,2006,42(11):66-70.
[8]艾青林,祖顺江,胥芳.并联机构运动学与奇异性研究进展[J].浙江大学学报,2012,46(8):1345-1359.
[9]杨东超,赵明国,陈恳,等.拟人机器人自由度的分析[J].中国机械工程,2003,14(6):453-456.
[10]TAKAYUKI K,HIROSHI I.Development and evaluation of interactive humanoid robots[J].Proceedings of the IEEE,2004,92(11):1839-1850.