李建勇,刘雪梅,王 泽
( 西北工业大学明德学院, 陕西 西安 710124)
目前市场上已经出现了很多各式各样的家庭陪伴机器人[1],其中大多数都是没有手臂而是偏向儿童早教方面的机器人[2],如360儿童机器人、公子小白、小忆机器人和阿尔法蛋智能机器人等,少数具有简单的只能前后动作的手臂,如打令小宝和小度机器人等,这些机器人主要靠呆萌的外表、语音和脸部表情以及简单的动作等来进行交互。然而随着独居老人[3]和留守儿童[4]等越来越多的社会现象不断加剧,造成对陪伴机器人的需求日益剧增且功能要求越来越多,特别是要求陪伴机器人不仅能够像人一样进行肢体交互,甚至还能辅助人干一些家庭服务类的工作。虽然市场出现了像ASIMO[5]、HRP-4C和iCub[6]等仿人机器人,但是它们往往价格昂贵,造成大众负担不起而难以普及,针对这些问题,基于一款自行研制的家庭陪伴机器人,设计了一双仿人上肢并进行了肢体交互动作的研究。
为家庭陪伴机器人设计的仿人上肢,其主要用来实现仿人的肢体动作,比如打招呼、再见和握手等等,因而家庭陪伴机器人的仿人上肢采用仿真人上肢结构设计,由仿人手臂和仿人机械手两部分组成。仿人手臂要像人臂一样灵活需要拥有7个自由度,其中肩部3个自由度、肘部1个自由度和腕部3个自由度[7]。而家庭陪伴机器人本体采用差分驱动的轮式底盘在室内进行移动,可与仿人手臂结合完成一些动作。经人手臂模仿分析,发现采用5个自由度(即肩部3个、肘部1个和腕部1个)的旋转关节就可以实现仿人的肢体交互动作,因而左右仿人手臂都是采用5个自由度的串联关节结构。仿人机械手采用仿人手外形设计,由5个手指组成,为简化难度,设计成由1个直流伺服电机进行驱动的末端执行器,使其能够实现从握拳到手掌展开以及相反过程的一系列动作。
仿人上肢的实物如图1所示。左右仿人上肢围绕机器人躯干对称分布,结合机器人的尺寸(460.0 mm×400.0 mm×1 400.0 mm)和形状并参照人体结构进行设计,其设计参数完全相同,如表1所示。
图1 仿人上肢的实物
表1 仿人上肢设计参数
以左臂为例,其肩部由关节1、关节2和关节3构成以分别实现肩部的前屈/后伸、外展/内收和内旋/外旋等动作,其肘部由关节4构成以实现肘部的屈伸动作,其腕部由关节5构成以实现腕部的内旋/外旋动作。
家庭陪伴机器人的仿人上肢要实现不同的肢体交互动作,每个关节旋转的角度不一样,要想实现精确控制,需要研究仿人上肢在空间中位姿和各关节角度之间的关系,以及仿人上肢与机器人本体之间的位姿关系,因而需要对其进行正运动学分析。
为了描述双肢各连杆之间的位姿关系,使用改进的D-H 法[8]建立双肢的各连杆参考坐标系。根据左右仿人上肢与机器人躯体的关联关系,首先以过家庭陪伴机器人中心的垂线和左右2个肩关节S1的公共轴线之间的交点建立机器人躯体的基本坐标系O-XYZ,然后以基本坐标系的原点为坐标系原点分别建立左手臂基本坐标系Ol0-Xl0Yl0Zl0和右手臂基本坐标系Or0-Xr0Yr0Zr0,最后使用D-H 法依次建立各关节点坐标系,其D-H坐标系如图2所示,其中关节W5坐标系建立在末端仿人机械手的手部中心处。以左仿人上肢为例,其D-H参数表如表2所示,其中ai-1为连杆i-1的长度;αi-1为连杆i-1的扭角;di为连杆i相对于连杆i-1的偏置偏距;θi为连杆i相对于连杆i-1绕i轴的旋转角度即关节角。以图2中所示为初始位置,给出关节角θi的初始值(表2中括号内)以及各个关节转动角度范围。
图2 仿人双肢D-H坐标系
表2 左仿人上肢D-H参数
注:L1=270.0 mm,L2=125.0 mm,L3=160.0 mm。
在获取D-H参数表之后,首先把每个关节D-H参数代入式(1)[9]所示相邻坐标系之间的齐次变换矩阵通式:
(1)
然后将各相邻坐标系之间的齐次变换矩阵进行连乘,可得左仿人上肢的运动学正解,即左仿人腕部坐标系相对于左仿人手臂基本坐标系的变换矩阵为
(2)
最后将所取θ1~θ5关节角代入式(3),求解即可得到左仿人机械手在左仿人手臂Ol0坐标系下唯一的姿态[n,o,a]和位置[p]。同理得到右仿人机械手在右仿人手臂Or0坐标系下唯一的位姿。通过改变左右仿人上肢的每个关节角大小,即可改变左右仿人上肢在关节空间的位姿。
(3)
(4)
根据图2中所示躯体基本坐标系和左右仿人手臂基本坐标系的关系,可得式(5)所示左右仿人手臂基本坐标系相对于机器人躯体基本坐标系的变换矩阵:
(5)
把式(3)右乘式(5),即可得到仿人机械手在家庭陪伴机器人躯体基本坐标系下的位姿。通过改变关节角的大小,即可控制左右仿人上肢在家庭陪伴机器人躯体基本坐标系中的位姿来实现肢体交互动作。
家庭陪伴机器人的肢体交互动作要通过肢体语言[10]与人交流并配合语音和眼部表情等交互方式,虽然可以通过关节空间规划来实现肢体交互动作,但规划出的运功轨迹有时与人的肢体交互动作差异较大,另外受到机器人躯体结构的影响,在完成动作时可能会与机器人躯体发生碰撞,因此不能直接采取关节空间规划控制机器人来实现肢体交互动作。为了使家庭陪伴机器人做出的肢体交互动作与人的上肢做出的肢体交互动作尽量一致,首先测量人体做一些肢体交互动作时与仿人上肢所对应的关节角度,然后在表2所示的仿人上肢各关节角度范围内取一个合适的关节角度,最后合理安排各关节的运动顺序来实现肢体交互动作。
目前主要设计了打招呼、再见、握手、宣誓、打气、无奈、懊恼和生气等15种常用肢体动作。大众见面打招呼动作如图3所示,左肢上臂稍抬起,在身体左侧,与身体成45°到90°之间,小臂自然向上,手掌自然张开,略高于头顶,朝向招呼人,以小臂带动腕稍微摆动。
图3 大众见面打招呼动作
这个动作因人而异,有的举左手有的举右手,每个人同时用左(右)手做出这种动作时位姿略有差异,但大体相同,因而每做出这种动作进行关节角测量时,关节角度都会不同。为便于计算,在经过5次测量所参照人体的关节角后求平均值,取平均值的整数部分作为机器人仿人上肢关节角度的典型值,同时当平均值接近一些常用角度时,比如30.0°、45.0°、60.0°和90.0°等,就取常用角度作为关节角度的典型值,如表3所示。另外肘关节4从零点位置旋转时会使小臂向身体方向靠拢,当肩部前屈和外展角度小以及肘部屈曲角度大时,机器人上肢几个关节同动作时就会与机器人躯体发生碰撞,因此在机器人上肢做肢体交互动作时,有些动作需要合理安排每条上肢5个关节进行动作的先后顺序。
表3 左手打招呼关节角度 (°)
左右仿人上肢采用铝合金骨架和塑料外壳制作,每个自由度都是使用ZX20D串行总线舵机进行驱动。左右上肢各有6个舵机,按顺序串接在一起,并连接串行舵机控制器,作为家庭陪伴机器人的一个功能模块,通过USB接口与机器人主机进行通信。由于家庭陪伴机器人基于机器人操作系统(ROS)[11-12]进行系统软件开发,因而把模块设计成一个功能包融入机器人系统软件,在机器人与人通过语音或视觉节点进行交互过程中使用该功能包节点进行肢体交互。仿人上肢软硬件与机器人本体之间关系如图4所示。
图4 家庭陪伴机器人硬件框图
在仿人上肢与机器人本体融合之后,首先要进行仿人上肢各关节角的校准,然后进行肢体交互动作的测试。
由于仿人上肢安装过程中存在偏差,需要对其关节角进行校准。首先通过程序控制家庭陪伴机器人的仿人上肢按照设定几组θ1~θ5测试角度进行动作,然后对比式(4)仿人机械手正运动学分析计算的位置和实际测得位置的结果,最后对仿人上肢进行校准,使误差控制在合理范围内。左臂关节角校准结果如表4所示,左仿人机械手在左仿人上肢基本坐标系中的位置与正运动学分析计算位置相比,在3个坐标轴上的位置误差不超过±0.5 mm,对于肢体交互动作而言,精度满足实际的需要。
表4 左臂关节角校准结果
在仿人上肢软硬件融入家庭陪伴机器人之后,使家庭陪伴机器人独立工作,通过语音和视觉等方式与机器人交互,使机器人与人进行交互时自动进行肢体交互,逐一对设计好的肢体交互动作进行测试。机器人左上肢打招呼肢体交互动作如图5所示,在人语音唤醒机器人后,家庭陪伴机器人就会与人进行打招呼的互动,机器人眼睛变换成微笑表情以及在触摸屏会显出语音图标和相应的问候语,同时会进行打招呼的肢体交互动作,使其左上臂向左上方向抬起很短时间后,右肘向上弯曲使小臂开始抬起,每个关节角旋转到动作设置的角度,如图5a所示,同时小臂稍微前后晃动来实现打招呼,如图5b所示。对15种常用肢体交互动作逐一测试,如图6a和图6b 所示左右晃动右小臂的再见肢体交互动作以及图7所示的抱歉肢体交互动作,每个动作都按所设计的关节角旋转角度和动作先后顺序顺利完成,使家庭陪伴机器人实现了肢体交互功能,达到了设计要求。
图5 左上肢打招呼肢体交互动作
图6 再见肢体交互动作
图7 抱歉肢体交互动作
经过仿人上肢融合家庭陪伴机器人测试,验证了所设计的仿人上肢设计合理,正运动学分析正确和肢体交互动作能形象发挥肢体语言作用,使家庭陪伴机器人实现了肢体交互功能,为后续在此基础上进行运动规划研究和开发机器人服务工作奠定了基础。