摘要将仿生学与机器人相结合,是根据生物界蜘蛛的生理结构和行为举止,设计了一种能够运用6足稳定,实现行走、转弯、攻击、趴下等系列动作的仿生蜘蛛机器人,并添加了睡眠模式、声音启动、遥控操作等功能。不仅在硬件方面模仿生物蜘蛛的外观,而且在软件上设计了其生物行为,实现了机器人的生物特性。
关键词仿生蜘蛛机器人;Dynamixel AX-12+;Dynamixel AX-S1;舵机
近几年,仿生学已经从一个鲜为人知的边缘学科走进人们视野,运用于生活中的各个领域。生物学机理与机器人的结合,形成仿生机器人,成为广大研究人员关注的一个焦点。仿生机器人是机器人技术领域中一个新兴的发展分支,是指模仿生物、能根据生物的外部形状,运动原理和行为方式等进行模仿,并能从事生物特点工作的机器人。仿生机器人的种类多样,涵盖了天上、地上、水中等活动领域的各类机器人,其中地上行走的机器人,根据其行走方式的不同,还可以分为跳跃机器人、轮式机器人、足式机器人以及爬行机器人。文中主要对蜘蛛机器人进行设计,目标是基于生物界中蜘蛛的生理结构,运用其生物行为,设计出能平衡行走、判断方向、感受外界刺激的机器人;另外,仿生蜘蛛机器人在结构上有别于人型或轮式机器人,使其在较差路况下行走成为可能,可以执行在废墟中搜救等任务。因此仿生蜘蛛机器人的设计与实现具有较高的研究价值和实际意义。
1 机器人本体设计
生物界蜘蛛的特点是拥有8条腿,在行走时,总会有4条腿着地,用以保持自身的平衡。其生物行为除了行走,还有转弯、攻击、趴下等,每个行为作业都靠脚部的运动来实现,因此对腿部的灵活度要求较高;其次,要使机器人具有生物的特性,需对外界的刺激做出正确的判断和及时的响应,所以感觉器官的模拟也至关重要。
1.1 躯干设计
考虑到蜘蛛机器人躯干部位对灵活度基本没有要求,无需搭建活动关节,且整机控制器不宜受到关节活动干扰,于是将整机控制器作为躯干部位,完全符合要求,并且便于操控。控制器采用16位高性能低功耗的AVR单片机,频率最高为16 MHz,运算速度最快为16 MI·s-1。对于小型仿生蜘蛛机器人的运动解算和规划,该运算能力足以满足控制和在线规划的运算要求。
1.2 腿部设计
腿部设计是实现蜘蛛机器人功能的关键。机器人设计有6足,行走时依靠两两间隔的3条腿构成稳定的三角形支撑地板,每只腿设计为3个关节,即具有3个自由度。并且将轴向分布成x轴、y轴、z轴,实现前后、左右、上下的三维活动空间。选取18个Robotis公司的Dynamixel AX-12+机器人专用伺服电机充当肢体关节。
Dynamixel AX-12+是机器人专用的伺服电机,充当机器人的关节。首先,Dynamixel系列机器人驱动器是一个较流行的模块化驱动器,由齿轮减速器、精密直流电机和具有串联功能的电路板封装组成。尽管它体积小巧紧凑,但它可以产生较大的扭矩,加上高品质材料制造并具有一定的强度,可以抵御一定外部冲击。同时它还是双向的伺服控制系统,具有回授功能,且具有检测内部温度功能,例如改变内部温度和供电电压。具有报警功能:当内部温度,扭矩,供电电压等超过额定范围时,它主动反馈这种情况并闪动LED灯或关闭舵机扭矩来通知用户,达到报警效果。
Dynamixel AX-12+的位置和速度控制精度可达1 024级(0~1 023),关节型舵机对应最大转角为300℃,控制角度分辨率为300/1024= 0.29°/步。如图1所示,位置值0是0°,位置值512是150°,位置值1 023是300°等。通信波特率为7 343 bif·s-1~1 Mbit·s-1,命令信号是数字型数据包,通信协议类型为半双工异步串口通信,不同舵机之间通过唯一的ID进行识别,最大有254个ID。每个Dynamixel AX-12+舵机都有一个控制表存储舵机的状态和控制信息,这个控制表由一个RAM区和E2PROM区组成,对舵机的控制实际是通过向其控制表中写指令;而要获取舵机当前状态实际就是读取控制表相应的值。
1.3 感觉器官设计
设计蜘蛛机器人的感官系统时,如果每个感官对应一个传感器模块,那么对蜘蛛机器人关节活动便会增加许多牵绊与阻碍。于是,设计采用1个集超声测距传感器、声音检测传感器、亮度传感器、温度传感器和红外线接收器于一身的Robotis公司的DynamixelAX-S1模块来充当机器人的感官系统。并且AX-S1与AX-12+机器人专用伺服电机在通信方式上一致,以便于通信和控制器统一管理;在机械上结构相同,外观上也可以达到统一、美观。
1.4 本体结构
根据生物蜘蛛外形,设计总体结构为:以控制器作为身体部位,连接6足,将传感器模块作为头部。选取合适的连接件,最终拼装连接得到小型仿生蜘蛛机器人样机,如图2所示。
2 机器人行为设计
控制系统采用模块化设计,将整个工作流程划分为:系统初始化、启动模式、生物行为等。图3是系统流程图。
2.1 系统初始化
机器人的初始化需要做两部分工作,一是初始化每个伺服器的功能模式,并将每个伺服器切换到位置控制状态;二是初始化机器人的初始动作,也就是初始状态,将机器人复位。
2.1.1 伺服器初始化
初始化伺服器的功能模式是因为AX-12+具有多种功能,如果没有将其初始化,它将记忆之前的设置,按照之前的设置模式完成此次控制,则AX-12+不会正确工作。AX-12+的每个功能对应地址[ADDRESS]的固有号码,可以通过选择地址的方法来控制各个功能。例如:要设定AX-12+的位置控制状态,首先要选定所要设置伺服器的ID。ID=1的伺服器,令address=8,则进入其运转模式更改,设置mode变量,mode只有两种状态:mode=0是无线旋转模式,mode=1 023是正常位置控制状态。此处设计所用的18个伺服器被用作蜘蛛机器人的6足,其位置控制状态应该设置为mode=1 023,且每一个伺服器都要初始化为此状态。
2.1.2 动作初始化
动作初始化部分相对较简单,但要建立在伺服器初始化之后,方能进行。原理上是将每个伺服器旋转角度调整到一定的位置上,使之呈现一个定型姿态,作为机器人的待机动作。通过改变整个系统结构的全局变量play_motion来完成动作初始化,表1对该参数进行了对照解说,再调用Load函数执行该动作页面来实现功能。
2.2 启动模式
2.2.1 睡眠模式
当机器人电源开关开启,进行初始化之后,蜘蛛机器人进入睡眠状态。设计对睡眠模式的定义为:令机器人处于一个静止姿势,不做任何行为,等待被启动。这里设定一个无限循环,当判断收到唤醒命令时,跳出循环,开启定时器,执行正常行为举止后,通过定时器的超时机制,回到睡眠模式。定时器时间值的量化级为:输入的值每0.125 s减1,即当定时器设置为8,便是1 s,具体实现中设置定时器为240,即30 s的正常行为活动后回到睡眠模式。
2.2.2 声音启动
在睡眠状态中,采用两种不同的方式:无线遥控模式和声音启动模式。对于声音启动模式,设定一个阈值,若采集的数据超过阈值时,则开始正常行为活动。阈值的选择根据传感器AX-S1对声音自定义的一个数量级,当周围没有声音输出约为128的数值,声音越大数值越接近255,声音大小每秒输入约为3 800次。当检测到像掌声一样一定大小以上的声音时计一次数,为避免把一次击掌误认为多次,在一次计数后,采用延时方式,约为80μs后继续计数。
2.3 生物行为
正常行为举止:蜘蛛机器人的生物行为即自行通过传感器采集数据,对数据进行判断,然后进行处理的一个仿生过程。设计过程将该生物行为定义为正常行为举止,即正常模式。该模式下,主要研究的是蜘蛛机器人对障碍物的判断,通过AX-S1采集到的distance_u和distance _f两个参数进行分析。当上方障碍物所测距离distance_u≤20时,即认为感应到上方有障碍物,蜘蛛则产生坐下的动作。当前方障碍物所测距离distance_f≤100时,再次检测一下距离是否distance_f≤20,如果<20,则退后,向左转,回到正常模式;如果>20,则采取攻击,攻击结束后,回到正常模式。值得注意的是,distance_u与distance_f所采集数据也不是实际的距离,也是通过量化后的数值。
3 结束语
在自然界中,蜘蛛因其独特的爬行机制可以在垂直的墙壁甚至倒立在天花板上行走。运用仿生学原理设计制作的6足蜘蛛仿生机器人系统,可以完成行走、转弯、攻击、趴下等系列动作,并且具有较好的人机交互功能,使蜘蛛机器人达到了仿生的效果,为进一步研究蜘蛛机器人在危险环境中或艰难路况中作业提供了一个基础测试平台和设计方案。