六足仿生机器人的设计与实现
2019-05-27
(湖北大学 物理与电子科学学院,武汉 430062)
0 引言
近年来,用机器人替代人类进入条件恶劣或者高度危险的区域工作已经成为一种趋势。例如机器人进行水下作业、无人机进行侦查勘测、机器人在废墟中探测生命迹象等。然而许多在路面作业的轮式或履带式机器人在遇到复杂地形时,因地形原因将无法正常工作。其次大多数的机械臂无法像人手一般灵活,在特殊环境下增加了控制者的操作难度为解决以上问题,本项目基于SOC-FPGA平台设计实现了一种可在复杂地形行动,机械臂可跟随人手实时作业,可运用VR眼镜实时观察行径中的全景图像的六足仿生机器人。
1 系统框架设计
系统框图如图1所示,主要由视频成像设备、仿生机器人主体、远程控制设备三部分构成。其中视频成像设备是戴在操作者头部的VR眼镜,远程控制设备是穿戴在操作者手上的数据采集手套。
图1 系统整体框架
1.1 机器人主体设计
1.1.1 外部结构设计
机器人主体实物如图2所示,由六足底座、DE1-SOC开发板、仿生手臂、USB摄像头、无线路由器及两个蓝牙模块组成。DE1-SoC开发平台作为机器人的信息处理中心,是基于台湾友晶公司设计生产的Intel SoC FPGA硬件设计平台,具备强大的双核Cortex-A9处理器和行业领先的可编程逻辑器件[1]。高清USB摄像头作为机器人的视频输入设备,同时配备两个舵机控制其拍摄角度。无线路由器用于构建局域网,实现机器人到视频成像设备的视频实时传输。蓝牙A、蓝牙B两个蓝牙传输模块,分别用于操作者头部运动信息和远程控制设备信息的接收。
如图3所示,机器人的运动部件为对称的六脚蜘蛛结构的底座,六足支撑状态站立时,底座尺寸为长:48 cm;宽:43.5 cm;净高:9 cm;包含开发平台及摄像头主体高度:48.7 cm。
图2 机器人主体实物图 图3 六足底座模型
机器人单足尺寸为:宽5.5 cm;伸直状态下,足长:23 cm。且第一关节长:14 cm;第二关节长:9 cm;第三关节长:5 cm。每只脚均装配有三个舵机,如图4所示,实现了三个自由度运动的控制。1号舵机控制“足”在XY平面的旋转;2、3号舵机控制“足”的两个不同关节在垂直于XY平面方向的伸缩。舵机主要参数如表1所示。
图4 足部舵机分布图
舵机型号重量尺寸LD-201560g40∗20∗40.5mm速度堵转扭矩工作电压0.16sec/60°15-17kg/cm6-7.4V
如图5所示,仿生手臂及手指采用3D打印制作,手臂截面直径最大为10.5 cm,手掌张开手臂全长为42.5 cm,内部安装有5个MG995型号舵机,具体参数如表2所示。用5条高强度编织绳将其与手指连接。通过舵机来牵扯编织绳,实现对手指弯曲程度的控制。
图5 仿生手臂内部结构
1.1.2 控制逻辑设计
控制逻辑分为三个部分,分别是陀螺仪的数据收集与
表2 手臂内部舵机参数
处理;弯曲传感器信号接收与处理;方向控制指令的接收与处理。
陀螺仪数据收集与处理模块,细分为如下子模块:蓝牙连接指令存储模块,串口数据发送模块,串口数据接收模块,数据处理模块,算法模块,舵机控制模块。蓝牙信号传输工作波特率数值设置为1 200。其工作逻辑为,串口数据发送模块发送连接指令,连接成功后串口接收模块接收数据。数据经数据处理模块提取出有效数据,如陀螺仪的滚转角、俯仰角、偏航角。有效数据输出至算法模块,转换为摄像头舵机的控制信号。最后将控制信息发送至舵机控制模块,实现对摄像头拍摄角度的控制。
在弯曲传感器信号接收与处理模块中,其蓝牙信号传输部分波特率数值设置为9 600,原理与陀螺仪信号接收相同。在数据接收后传入数据处理模块进行解码操作,输出预置的控制信号给舵机控制模块,实现对机械臂的控制。
方向控制指令的接收与处理模块包含指令接收,指令发送以及解码模块。蓝牙传输波特率数值设置为115 200,经指令发送模块发送握手信号,连接成功后,接收模块接收蓝牙数据。经解码模块将其与预置数据进行比对。得出相应的控制信号,将其发送至舵机控制模块,从而驱动底座运动。
1.2 远程控制设备设计
远程控制设备为一个自制的数据手套,如图6所示,由六片应变传感器、方向控制板以及蓝牙模块组成。应变传感器获取操作者五个手指和手臂的弯曲程度[2],转换成数据信号后连同控制板输出的方向信号一起通过蓝牙模块发送至仿生机器人主体,实现对六足底座和仿生手臂的控制。
图6 远程控制设备实物图
1.3 视频成像端设计
视频成像端实物如图7所示,主体为一个VR头盔,内部放置一部安卓手机,陀螺仪,锂电池以及蓝牙模块。陀螺仪采集操作者头部运动信息,通过蓝牙模块发送至仿生机器人主体,信号经处理后用于控制机器人摄像头的拍摄角度,将眼镜盒中的智能手机连入由路由器所构建的局域网中。打开我们自行编写的APP,即可将机器人传输过来的图像实时显示在屏幕上,调焦旋钮用于调整手机到VR目镜的距离。
图7 远程控制端实物图
2 功能实现方案
2.1 六足步态设计
机器人六足步态设计分为前进后退步态设计与旋转步态设计。其中步态设计分为六足整体行进步态和单足摆动步态设计。并在仿生机器人行进过程中采用PID控制器以调整行走幅度[3]。
2.1.1 前后行走步态设计
六足的编号以及分布位置如图8所示,为使机器人可以克服复杂地形并平稳行走,参考蜘蛛的行走方式,规划出仿生机器人行走的步态。根据步态规划得出一个机器人前进过程中六足分时摆动的动作顺序图,如图9所示。为保证仿生机器人在运动过程中重心不会出现大幅度晃动,在机器人的行进步态中加入两个六足支撑阶段以稳定重心。从图中可以看出运动的一个周期中含有足摆动阶段和六足支撑阶段。第一阶段与第五阶段六足均不运动,六足全部触地调整重心。在其他阶段中足的运动顺序为:6号足、4号足、2号足、5号足、3号足、1号足。此动作顺序可有效避免机器人在前进的过程中重心后摇或者主体大幅度摆动[4]。该过程称为一个运动周期,如此反复以实现仿生机器人的前进行驶。
图8 六足编号与分布
控制单个足摆动的步骤分为垂直上升阶段、向前摆动阶段、垂直下降阶段[5]。设置垂直上升阶段和垂直下降阶段的目的是为了避免足在运动的多个阶段中多次碰到障碍物而影响步态节奏以及减小足在运动过程中的行进阻力,加快行进速度。设定上升阶段与下降阶段的高度均为25 cm,以克服常见的不平整路面。在水平摆动阶段中,主要工作的设备是每只足的一号舵机,假设在一次水平摆动的过程中,足没有触碰任何障碍物,则足在XY平面水平转动15°。如果有障碍物阻挡足的水平摆动,且此时舵机旋转角度为θ1。足会顺势下落重新执行垂直上升阶段,二次水平旋转的角度由第一次旋转角度的大小决定。二次水平旋转的角度θ2=15°-θ1,以弥补一次旋转过程中所缺省的行进路程。
图9 前进步态
对六足输入PWM控制方波的过程中,如图10所示采用PID控制器来对关节角度进行调整。以现态的关节输出量作为系统反馈信号与期望的关节角度进行积分运算,输入PID控制单元,将调整后的控制量再次输入关节,形成一个闭环控制系统。一旦控制量进入饱和区,将削弱积分项的运算,从而减小次态中对关节的输入量,起到饱和抑制的作用。
图10 关节角度控制原理
机器人的后退过程与前进过程原理相同,后退步态顺序变化为:2号足、4号足、6号足、1号足、3号足、5号足。单足摆动时,在XY平面的旋转方向与前进过程相反,其余步骤无需修正。
2.1.2 旋转步态设计
本设计中将旋转步态设定为原地旋转,即不改变仿生机器人的空间位置,其目的是改变仿生手臂的方向以及机器人前进方向。如图11所示,旋转过程中仿生机器人的步态设计中同样分为六足支撑阶段和单足摆动阶段。其中第一阶段与第五阶段为六足支撑阶段,用于平衡仿生机器人重心。单足摆动阶段,采用相邻足连续工作的方式,即1、2足协调运动,3、4足协调运动,5、6足协调运动。运动顺序依次为:1号足、2号足、3号足、4号足、5号足、6号足。在单足摆动过程中,运动分为垂直上升阶段、水平摆动阶段、垂直下降阶段。设置每足单次抬起高度为15 cm,单次旋转角度为15°,1号足至6号足依次执行步态完毕一个旋转周期结束。
图11 旋转步态
2.2 远程控制设备设计
如图12所示,远程控制设备系统包括控制仿生手臂运动的数据采集手套、捆绑于操作者手臂上的单片机、蓝牙模块以及方向控制板面。单片机对来自数据采集手套和来自控制面板的这两类信号进行采集、编码等操作,并通过蓝牙模块将处理结果发送至仿生机器人主体,以实现远程遥控。
图12 远程控制设备系统框图
手部动作采集手套上对应手指的部分有五条应变式弯曲传感器,手肘位置也贴有一条弯曲传感器。由公式R=ρL/S可知金属阻值与材料、长度以及横截面积有关,取其微分形式可得dR=ρ/SdL+L/Sdρ-ρL/S^2dS。故弯曲传感器在手指运动作用下产生的机械形变会导致其电阻阻值的变化,从而间接地影响流过金属的电流大小。应变式弯曲传感器实物如图13所示。
图13 应变传感器实物图
当测得弯曲传感器电阻值变化量为ΔR时,经过测量电路获取电压变化值ΔV,将ΔV的值与预先设置的参考值进行比对,来判断手指的弯曲程度。ΔV经AD转换后传入单片机进行编码,最后通过蓝牙模块将编码信息发送至DE1-SoC部分的蓝牙接收端。
2.3 实时VR成像实现方法
系统实时VR成像的实现框图如图14所示[6],USB摄像头获取图像信息传输至DE1-SOC开发平台的HPS部分,存入DDR内存。FPGA部分通过AXI bridge访问DDR内存,调用图像数据进行VR成像处理,并将处理结果写回DDR内存,ARM再从内存中读取处理完后得数据,发送到同一局域网内的安卓手机。为加快图像处理的速度,编写OpenCL加速逻辑进行图像处理操作。VR头套内部安装有陀螺仪用于探测操作者头部的动作变化,头部的当前状态信息通过蓝牙模块传输至DE1-SoC开发平台,用于控制摄像头的转动。
图14 实时VR成像系统图
2.3.1 视频数据采集及处理
加速系统的软件设计主要是为加速内核填充图像数据,并进行双目化处理。通过对ARM的Linux系统内核重新编译,加入USB摄像头的驱动,然后编写应用程序,调用USB摄像头,获取实时图像,每帧图像的分辨率为640*480,将此图像通过AXI bridge传输给FPGA,在FPGA中运行OpenCL加速子系统,对图像进行处理。
在OpenCL加速子系统中,OpenCL编译器将图像双目化处理内核算法编译为OpenCL加速逻辑连接到OpenCL接口上,并记录在二进制OpenCL内核文件中[7-8]。在加速处理图像数据时,调用OpenCL二进制文件更新FPGA逻辑。处理之后的图像通过AXI bridge存入ARM端的DDR内存指定区间。ARM处理器再从此内存区间内读取出图像数据,图像处理结果如图15所示。
图15 原图与处理后图像对比
2.3.2 VR头套设计
本设计利用I2C总线协议驱动的MPU-6050陀螺仪可以通过测量加速度或者角速度来测量x、y、z轴三个方向的旋转角度。如图16所示,以x轴正方向作为人眼的观察方向,三个旋转角度分别为绕x轴旋转的滚转角Roll、绕y轴旋转的俯仰角Pitch以及绕z轴旋转的偏航角Yaw[9]。
测量Roll角、Pitch角、Yaw角时,首先从相应寄存器地址读取出绕三个方向旋转角速度GYT_X 、GYT_Y、GYR_Z,均以“度/秒”作为单位。以初始位置作为基准,分别对时间进行积分,从而求出在三个方向上与前一位置的相对旋转角度。陀螺仪滚转角、俯仰角、偏航角计算方法如下:
Roll=((RollH<<8)|RollL)/32768*180°
(1)
Pitch=((PitchH<<8)|PitchL)/32768*180°
(2)
Yaw=((YawH<<8)|YawL)/32768*180°(3)
式中,RollH,RollL,PitchH,PitchL,YawH,YawL均可从相应寄存器读取。
图16 俯仰角、滚转角、偏航角分布图
DE1-SoC的ARM部分通过有线网口连接到路由器,安卓手机则通过无线热点连接路由器,使两者同处一个局域网。ARM端获取到安卓手机的IP后,将实时获取到的经OpenCL加速系统处理之后的摄像头数据发送至此IP。同时安卓手机端需安装自行开发用于接收DE1-SoC数据的APP,此APP的功能即是将通过局域获取的图像信号通过安卓手机对其进行数字图像处理,生成两幅相同的图像,并呈现在同一副画面中。当人眼通过目镜同时对两幅图片进行观察时,会产生立体视差角,从而使人眼感受到立体的效果,实现VR图像的成像。
3 实验结果与分析
3.1 六足底座步态测试
机器人步态的稳定性测试内容分为前进步态测试和旋转步态测试,在机器人六足底座表面固定一个玻璃烧杯,在其中加入250 mL自来水,前进步态测试中控制机器人在平地上行走10米距离,旋转步态测试中控制机器人原地旋转10圈。完成规定操作,记录烧杯中液体的剩余量。液体剩余量越多,表征该步态稳定性越高。如表3、4所示,一共有六种前进步态,六种旋转步态,每种步态进行10次测试取平均值,记录测试结果如表5所示。
表3 前进步态方案
表5 机器人步态测试结果
测试结果可得出,前进步态的方案一与旋转步态的方案一稳定性均相对其他步态稳定性有所提高。故在实际设计中前进与旋转的步态均采用方案一,来对步态进行规划。
3.2 机械臂控制功能测试
为测试机械手臂的控制功能,操作者穿戴远程控制手套,在10秒钟内连续做出10个不同的表示数字的手势。观察机械手臂是否可以同步跟随操作者的手势。进行的10次测试结果如表6所示。
表6 机械臂控制测试结果
由测试数据可以得出,机械手臂跟随操作者的成功比例高达95%,实现了对机械臂的基本控制与操作。
3.3 视频传输功能测试
机器人视频传输测试方案为,在测试房间的地板以及墙面上粘贴10个醒目的数字标识。操作者佩戴视频数据采集头套,站立于房间中心位置。操作者需从数字1开始依次寻找目标,当操作者通过视频采集头套观察到标记时,取下头套观察实际情景是否与VR成像相同。若基本一致记录成功,若两者差距较大则视为失败。记录观察结果后,开始寻找下一个数字标记。每10个数字标记为一轮测试,共进行10轮测试,测试结果如表7所示。
由测试结果可知,在视频传输测试中VR成像的平均正确率高达96%,基本实现机器人的视频传输功能。
3.4 复杂地形作业测试与分析
为判定机器人在复杂地形中是否可以稳定行走并准确抓取物品,选取室内楼梯作为测试场地。楼梯标准为,踏步高度:150 mm,每级台阶宽度:250 mm,级数:10级。
表7 视频传输测试结果
测试内容设置为,操作者佩戴VR头套与远程控制设备,从开始操纵六足仿生机器人开始计时。机器人从楼梯底部出发,攀爬过程中,需准确抓取置于楼梯中部的水瓶,并将其运送至楼梯顶部平稳放置,期间若水瓶滑落则视为测试失败。进行50次重复试验,并记录完成时间。测试结果如图17所示。
图17 楼梯任务完成时间分布图
从测试结果可得出,机器人50次完成任务的用时绝大多数分布在45~60 s区间,从45 s开始,时间越长所分布的次数越少。在第26次试验过程中,因机器人重心不稳,导致主体大幅度晃动,致使水瓶摔落。故仍需优化机器人在攀爬高倾斜度地形时的步态设计。综上所述,测试结果已满足项目所设计的测试指标。机器人具备了在复杂地形中作业的能力与较高的操作稳定性。
4 结束语
本文充分利用FPGA与ARM各自的优势,基于SoC FPGA平台实现了一套集实时图像传输、行进路线遥控、仿生手臂跟随人手实时运动等多功能于一体的机器人。参考蜘蛛模型构造六足底座,并对其行驶过程中的步态进行仿生设计,能够在大多数复杂地形中畅通行驶。同时,参照人类手臂与手掌构造机械手模型,可以灵活抓取物品。将方向控制面板与应变式传感器进行结合,制作出一个可感知手部动作和发送行进指令的操作手套,实现了对机器人行径路线的远程控制和机械手臂的跟随运动。OpenCL加速子系统的运用,使得VR显示成为可能,让操作者可以身临其境般地操控机器人。总的来说,综合运用各项技术,实现了六足仿生机器人的全部设计功能,但离真正应用于实际,尚有很多方面需要努力,我们后续将不断完善。