段航博 胡亮 顾颂文 马千里 李泽森
中国民航大学,中国·天津 300000
对于四足机器人的设计与研究早在20世纪70年代,就已经开始了,最早的对于四足机器人的记载是美国GE公司对于四足机器狗的研究,而研究目的就是为了能够代替人类去做一些危险环境下的工作,随后全世界各个国家对于机器狗的研究便展开了帷幕。国际上著名的有BigDog和斯坦福两个代表。而中国国内今年来有四足机器人莱卡狗、浙江大学所研制的赤兔机器狗等。现如今,由于科技的逐渐成熟,机器人的各项性能也在快速的进步,研究开发的进度也在加快。
机器人技术作为当今科技发展的前沿领域之一,它是将编程技术,传感技术等多种技术融为一体的新兴技术。21世纪以来,随着人们对于未知领域的持续探索,人工智能技术得以兴起,机器人技术更是获得了蓬勃发展的条件。四足机器人的优势在于,比两足机器人的运行更加稳定,比六足机器人的结构更加简单,这也就意味着在抢险救灾、军事领域以及生活领域上都有着相当不错的发展前景。
2.2.1 国际上四足机器人研究现状
在其他国家,最早的有Rygg所设计制造的“机械马”算是国际上最早的对于足式机器人的初期探索。而人类对于足式机器人的相关研究的开端则是1899年Muybridge使用连续拍摄的方法来研究动物的行走步态。
Walking-Truck的问世是第一台液压四足机器人研究成功的标志。Walking-Truck由美国通用电气公司(General Electric Company,GE)的Mosher和Liston联合研制,其在人工操作下实现了抬腿、迈步、跨越和躲避障碍等运动,这标志着液压四足机器人研究的进步[1]。在20世纪60年代时,人们对于机器人的研究开始进入了主要以机械控制与液压传动实现运动的发展阶段。在这一阶段里,最具有代表性的就是1968年美国的Mosher所设计的四足车。在21世纪后,得益于计算机、传感器等技术的发展,仿生四足机器人领域百花齐放。2003年电气通信大学以木村浩为首的研究团队成功研制出轻质仿生移动机器人Tekken,这款机器人一共有16个自由度(DOF),总质量3.1kg,每条腿0.4kg,每条腿包含一个偏转自由度和三个俯仰自由度,并且在仿生机器人身上还安装有陀螺仪、倾角传感器和触觉传感器等[2]。2004年,Boston Dynamics发布了仿生机器狗Little Dog,这款四足机器狗在结构设计上的一大亮点就是四条腿的架构是相同的,在前后两只腿上所运用到了对称的结构,并且在每条腿上都有4个自由度以及3个舵机,所以这款四足机器狗具有较大的运动空间,并且具有良好的灵活性。
继Little Dog 之后,Boston Dynamics发布了Big Dog,Big Dog在结构设计、运动性能和运动控制上均为当前四足机器人研究领域的较高水平,Big Dog长10.7m,自重109kg。它也具有每条腿的4个自由度,它相比Little Dog而言,具有了更大的步幅和运动空间,因此它相比其他机器人具有更快的运动速度,并且可以适应各种复杂地形。
2.2.2 中国国内仿生机器人及步态规划研究现状
与国际上的四足机器狗的发展相比,中国最早提出这一理念的就是中国古代的“木牛流马”,但是相比其他国家,中国对于四足机器人的研究却起步较晚,由于中国的相关政策的实施以及国家政府的重视,中国的机器人技术也在快速地发展着,越来越多的仿生四足机器狗登上了中国的舞台,最令人欣慰的就是在今年的牛年春节联欢晚会上,许许多多的四足机器人登上了春晚的舞台。这也显示着中国在机器人领域也在紧紧地追赶着。在中国对于四足机器人的研究中最为代表的就是以北京理工大学所研制的一款液压型四足机器人,整个机器人共有16个自由度,并且每个腿有4个自由度,总质量为65kg。还有哈尔滨工业大学所设计的四足机器人,它的每条腿上只有3个自由度,并且它的最大创新亮点就是用轮子来代替四肢足端。这样保证了足端与地面的更加平稳地接触。并且在运动的时候,可以任意选择足式机器人模式和轮式机器人模式两种模式。
近年来,华中科技大学针对足式机器人技术的开展了积极研究,并在多足步行机器人技术的发展上也取得了较大的成果。华中科技大学研制了“4+2”多足步行机器人。而所谓“4+2”是指步行机器人在复杂步行区域最多可利用6条腿来实现稳健的步行运动,而在工作区域可作为具有两条上臂的四足机器人。因此,该机器人不仅具有步行移动的基本功能而且可借助相应的末端执行上具,如机械手臂来完成指定的作业任务,体现机器人的多功能性[3]。
2.2.3 研究现状总结
从所整理的中国和国际上对于四足机器人的研究现状中,我们可以知道中国国内对于四足机器狗的研究上起步较晚,大约从20个世纪90年代开始研究,并且以飞快的速度追赶着国外的发展。因此,笔者也想尝试着为中国国内四足机器人的发展作出贡献。
对比生物狗的身体结构,腹部是起到一个放着电源电路、各种控制器还有连接腿部的作用,我们将其设计为了盒装的空间。腿部才是设计机器狗的重点,生物狗的前腿有肩关节、肘关节、腕关节,相应后腿有髋关节、膝关节和踝关节,作为对应我们给机器狗的腿部也设计了3个关节,即肩关节、大腿关节、小腿关节。在连接上,肩关节和大腿关节是处于同一条直线上的,目的就是为了降低机器狗的重心位置,提高机器狗的稳定性,并且能够用比较便捷的方式控制机器狗的横向运动。为了重心的稳定,我们改变了生物狗站立时前腿直立的状态,取而代之的是前后腿处于一样的小腿关节向后弯曲的状态,见图1~图3。
图1 生物狗的身体结构(1)
图2 生物狗的身体结构(2)
图3 生物狗的身体结构(3)
对于头部,生物狗的头部是为了接收、发射和处理信息,当然也有进食和打斗的作用,机器狗不用进食,但是嘴部也可以安装作为抢险救灾时的方便工具,机器狗的信息处理的“大脑”会放置在大空间的腹部。这样做的目的有二:一是为了重心的稳定;二是能够更好地连接腿部,也节约了线路。我们将机器狗的头部放置在了与腹部平行的水平面内,没有过多前伸,在头部安装了“探测器”来保护机器狗。
机器狗身体的制造我们用了速美印3D打印机、FlashPrint3D打印机和PLA耗材打印出来各个模块,并根据需要对模块进行打磨修改,方便后期对狗装配。3D打印机填充程度的不同还有填充形状的不同都会对模块的强度产生影响。对比了多种填充的组合,我们最终采用了三角形填充形状和55%的填充密度。这种方案保证了后期打磨修改的易实现性、狗身制造的经济性,也保证了模块以及结构的强度。为了解决由于打印机打印的误差和要更换模块时要重新修配的问题,我们对模块的数据三维模型进行了标准化,从而保证了各个组件之间的协调性和互换性,大大降低了由机器狗制造而浪费的时间,提高了效率。
机器狗的动力需求85%是来自腿部的动作,剩余15%是其他模块的电力需求。于此,我们选择7.4v的可充电池组进行供电,用MG996R舵机带动腿部转动,它能提供的扭力是13kg/cm,工作电压4.8~7.2v,工作电流100mA,旋转角度是180°,反应转速是53~62r/m,对于这只小体型的机器狗,它提供的扭力足够支持机器狗的站立蹲下以及行走这些简单的动作。但是,要做需要爬坡越障等有难度的动作时,舵机动力稍显不足,甚至会出现向后倾倒的现象。由于尺寸限制以及模块改动的难度太大且耗时,我们用DG995舵机取代了MG996R舵机。DG995舵机提供扭力25kg/cm,工作电压4.8~7.4v,旋转角度300°。大扭力舵机使得机器狗的稳定性提高,也可以适当的提高重心位置的高度,方便机器狗可以越过更多的障碍物,而不是用耗时耗力的避障绕行。
由于供电电池组工作电压是7.4v,而舵机控制板工作电压是在5v,中间采用lm2596DC-DC舵机控制板,LM2596属于DC-DC开关电源的BUCK类电压反馈式的降压型电源管理集成电路,能够输出5V/3A的驱动电流,开关频率150KHz。如图4所示,本电路中应用了其固定的工作模式,输入电压Vin=7.4V,输出电压Vout=5V。
图4 机器狗部分电路
如图5所示,再用舵机控制板控制舵机,进一步带动腿部和整体的运动。
图5 机器狗主要控制系统框图
用Arduino开发板进行程序的编写与对舵机的控制。利用Arduino可以更方便加装其他功能模块,如超声波模块、声音识别控制模块、无线接收模块、液晶显示等。
Arduino编程:Arduino使用C/C++编写程序,C语言是一种面向过程的编程语言,C++是一种面向对象的编程语言。早期的Arduino核心库使用C语言编写,后来引进了面向对象的思想,目前最新的Arduino核心库采用C与C++混合编写而成。我们使用的Arduino语言,是Arduino核心库文件提供的各种应用程序编程接口(Application Programming Interface,简称API)的集合。这些API是对更底层的单片机支持库进行二次封装所形成的。这些封装好的API,使得程序中的语句更容易被理解,我们不用理会单片机中繁杂的寄存器配置,就能直观地控制Arduino,增强程序的可读性的同时,也提高了开发效率,这也是Arduino与单片机的最大区别,使用更简单,效率更高。
超声波传感器的发射器向某一方向发射超声波,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。根据计时器记录的时间t,声波在空气中的传播速度为340m/s,就可以计算出发射点距障碍物的距离s,即s=340m/s×t/2。
超声波传感器是将超声波信号转换成其他能量信号(通常是电信号)的传感器。HC-SR04是比较常用的超声波传感器模块,广泛应用于机器人测距、小车避障等场合,见图6。
图6 超声波模块
超声波传感器模块的VCC、GND分别连接到开发板的5V、GND。传感器的Trig引脚、Echo引脚分别连接到开发板的数字引脚6、7,见图7。
图7 电路连接图
编程方面,我们将超声波测距功能定义在一个函数中,以便在需要的时候调用,见图8。
图8 测距函数源代码
根据图9、图10以及表1可见,LD3320语音识别模块是emakefun基于非特定人语音识别LD3320SI-ASR芯片开发的一款语音识别模块。LD3320芯片上集成了高精度的 A/D和 D/A 接口,不再需要外接辅助的 Flash 和RAM,即可以实现语音识别、声控、人机对话功能。此外,还提供了真正的单芯片语音识别解决方案。该模块有如下特点:
图9 语音控制模块
图10 语音模块初始化源代码
表1 语音模块电路连接对照表
第一,非特定人语音识别技术。用户不需要进行录音训练即可动态编辑的识别关键词语列表,只需要把识别的关键词语以字符串的形式传送进芯片,即可以在下次识别中立即生效。
第二,支持用户自由编辑50条关键词语条。在同一时刻,最多在50条关键词语中进行识别,终端用户可以根据场景需要,随时编辑和更新关键词语的内容,每条词条字数不超过79个。
第三,采用MCU+LD3320设计。大大简化了用户接线和编程难度。
LD3320语音模块初始化源代码如下:
关于舵机,舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。舵机实际上是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。
舵机内部有一个基准电路,产生周期为20ms、宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。经过电路板IC方向判断,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到位。舵机转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的。标准的PWM信号的周期固定为20ms,理论上脉宽分布应该在1ms到2ms之间,实际上可由0.5ms到2.5ms之间,脉宽与转角0~180°相对应。
脉宽调制(PWM,Pulse Width Modulation)技术是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中 。
由于Arduino的驱动能力有限,当需要控制多个舵机时,需要外接电源以及使用专用的舵机驱动板。
舵机驱动板:PCA9685模块是16路12位PWM信号发生器,可用于控制舵机、LED、电机等设备,采用I2C通信协议。主机只需要使用I2C接口即可实现16路舵机控制。I2C总线一般由两根数据传输线构成:一根时钟线(SCL)、一根数据线(SDA),见图11~图13。
图11 PCA9685实物图
图12 Arduino与PCA9685连线图
图13 代码控制数据示例
PCA9685的代码控制:首先安装Adafruit PWM Servo Driver Library库。
初始化完成后,调用“pwm.setPWM(servonum, 0,pulselen)”即可控制对应舵机转动角度。我们将机器狗的不同动作封装在不同的函数中,发送对应语音指令调用函数执行,见图14。
图14 部分源代码示例
站立和蹲下是最简单的控制。先将舵机全部调至同一角度,设置在中值位,对应各个位置在同一高度,此时就是对应站立姿态。将中值位的角度看作坐标轴的O点,再将除肩部以外的4个舵机的角度同时向坐标轴左端移动或者说减小舵机的角度,达到同时减低各个部件的高度,即实现蹲下姿态。
将左前腿设为1,左后腿设为2,右前腿设为3,右后腿设为4,大腿关节设为A,小腿关节设为B,行走步态暂时不动肩部关节,见图15、图16。
图15 机器狗设置值
图16 设置示意图
对1、4,应做到:①先将小腿关节B减小角度(即转动舵机让小腿靠近大腿),同时将大腿关节A增大角度(即转动舵机远离水平线);②B增大角度使小腿的脚部达到地面;③A减小角度,同时另一组2、3做第①步,从而带动机器狗向前走。三步骤经历的时间一定很短,要不然狗身容易倒,并且动作一定要连续,不然会延长腿部滞空时间,进而会增加机器狗倒下的几率,见图17。
图17 机器狗内部设计
上文提到狗的头部是用来发射和接收信息的。在机器狗的头部装备两个超声波探测器,两个探测器与竖直平面都有一个角度,这样它发射的超声波是向斜前方的,这样不仅可以探测前方是否有障碍物从而进行避障,而且可以测量是否可以通过狭窄通道,见图18。
图18 超声波探测器
此款机器狗根据生物狗的身体结构和运动步态进行了制作,肩关节和大腿关节连在一起,更容易进行仿生研究和对机器狗的控制。机器狗总体具有对称结构,结构简单方便设计与制造。对步态的设计参照了生物狗简单的小跑步态,适合初次接触者。小尺寸大扭力电机保证了完成各种动作的基本需求。此机器狗的设计了也是参考了很多前人的经验,由于自身经验,时间等原因没能制作的足够好。当然,此狗还可以进行更多的改造:增加定位系统,可以通过卫星进行链接;换尺寸进一步更换更大扭力的电机,能提高对复杂地形的适应能力;增加摄像头,机械臂,对探测地形和取回样本有很大作用;增加人狗交互系统,使与狗的交流和控制更加方便。