1. 引言
受传统教育的影响,大学教学模式较侧重于老师的讲解,对于学生的实践能力的培养相对较少 [1]。当今应更注重于学生的全面发展,培养学生的动手实践能力,让学生更直观的感受,基于ARM的教学用的机器人 [2],可以让学生更好的了解机器人,提高其动手操作能力。相对于其他种类的足式机器人 [3],爬虫式机器人的重心更低 [4],四肢的着力点分散、易于行动,可以满足崎岖不平的路面和复杂地貌下的搜索、探寻等任务 [5] [6]。爬虫式机器人一般下肢拥有较少的自由度,在运动协调方面更容易控制 [7]。因此,爬虫式机器人具有对环境的高度适应性和工程应用性价值 [8],目前受到了各个国家研究机构和人员的重视 [9] [10]。本文设计的基于ARM的教学用爬虫式机器人除可以实现基本运动步态,还加入传感检测设备来实现搜寻探测、识别追踪等功能。本文的研究结果对今后更深入地研究爬虫式机器人运动步态、控制程序及可行性,具有较好的参考价值。
2. 整体设计
2.1. 整体结构
本文设计了四足、八自由度爬虫机器人,整体结构如图1、图2所示,其中图1为UG建模三维模型,图2为搭建实物。

Figure 2. The crawler robot builds objects
图2. 爬虫式机器人搭建实物
本文中设计的爬虫式机器人共在机械结构上共分为三部分,即腿部膝关节、胯关节以及爬虫机器人的机身。前两者的结构均由U型架和电机架构成,而机器人的机身部分选用连接板来近似代替。
2.2. 硬件系统
四足机器人硬件系统包括:
1) NImyRIO-1900控制器
选用美国国家仪器公司的NI myRIO-1900控制器,myRIO-1900内嵌 Xilinx Zynq芯片,并且在编程时可以使用NI研发的LabVIEW进行开发,其底层搭载的Linux系统使得开发及运行程序时具有更好的实时性。
2) DIY LDX-218舵机
使用的舵机为乐幻索尔公司生产的180度机器人DIY LDX-218舵机,该舵机为金属齿轮数字舵机。
3) 视觉摄像头
本四足机器人的摄像头在使用时直接连接在RIO的USB端口处,在图像获取模块和NI MAX的设备端口一栏中均可以显示已经连接的摄像头信息。其工作原理为镜头产生的光学影像投射到图像传感器表面转换成电信号,再经过A/D转换模块转变为数字图像信号,再送到DSP芯片中处理后送到I/O接口传送到控制器中 [1]。
4) 红外传感器
红外式传感器测量距离时利用的是红外超声波反射的原理进行测距,并且传感器测出的到物体的距离与红外测距仪输出电压的倒数成正比 [2]。
5) 超声波传感器
声波式传感器是通过发射出短波长的声波,待声波传播至前方物体返回后测量出相应的数据。
3. 控制策略
本文设计的爬虫式机器人设计了三种控制策略,分别为手动控制、自动探寻和追踪控制。
3.1. 手动控制
手动控制是基本功能,包括前进、后退、左转、右转四个爬虫式机器人基本运动步态。
3.2. 自动探寻
自动探寻和追踪控制属于机器人功能的上层应用部分,需要进行这两项功能的调用时,在上位机控制面板中选择相应的按钮,通过程序控制,控制器读取相应传感器或摄像头进行测距与字母识别的工作,在测距或识别工作完成后再通过逻辑控制程序决定执行哪一基本运动。
在自动探寻功能运行时,机器人可以在复杂条件下根据传感器测得的距离大小判断前进、左转、右转还是后退,从而避开障碍物。
3.3. 追踪控制
追踪环节分为传感器追踪与字母识别追踪,传感器追踪实现较为简单,它是通过传感器测距后进行判断,而字母识别追踪依靠的是控制器识别摄像头采集的字母,实现目标追踪。上述各功能的程序流程图如图3所示。
4. 步态规划
机器人的步态是指机器人各个腿关节及相应的配合关节的支持状态与转移状态随着时间变化的顺序集合,对于匀速前进的机器人,步态呈周期性变化,这种步态称之为周期步态 [4],而能够根据传感器获取地面状况和自身的姿态,进而产生实时的步态被称为随机步态或实时步态。本文对爬虫式机器人进行了周期步态规划。爬虫机器人共有8个运动关节,因此该爬虫机器人拥有8个自由度,其中每只腿包含两个运动关节,即膝关节和胯关节。为了便于实现机器人的运动,使用了同种型号的数字舵机来实现关节的运动。
4.1. 运动学与动力学仿真
在常规步态规划的基础上实际机械结构搭建并利用ADAMS软件进行运动学与动力学仿真 [5]。机器人位移曲线如图4所示,直行时胯关节与膝关节舵机的加速度曲线如图5,图6所示。

Figure 4. The robot has a straight displacement curve
图4. 机器人直行位移曲线

Figure 5. Hip joint steering gear acceleration curve
图5. 胯关节舵机加速度曲线

Figure 6. Acceleration curve of knee steering gear
图6. 膝关节舵机加速度曲线
从图4可看出,仿真所得出的机器人位移曲线与设计时确定的直行步态方式基本一致,图中红色线条表示机器人在前进状态下位移量不断地积累,但仍存在些许的波动,而这些波动是由于设置了相应的摩擦力造成机器人在X方向上打滑的结果;其次,蓝线表示机器人在Y方向,即左右位置上的位移。在6个周期内,机器人每完成一个步态都包含了左偏和右偏的两个部分,反映到Y轴位移上即为上下波动的曲线。而粉色曲线则代表Z轴方向的位移,在图4中该曲线近似为一条直线表示为机器人直行运动时没有发生幅度较大的上下颠簸。故从上图可知,直行步态的模拟仿真近似达到设计要求。
如图5、图6可看出,机器人两个关节舵机分别都在X方向上有不同程度的加速度突变,这对于机器人运动会造成一定程度的影响,并且也会影响相应舵机的寿命,造成这种情况的原因时在进行STEP函数设置时参数的选择并不准确,需要进行适当调整。
综上所述,完成了对爬虫式机器人的运动仿真,并从动态图像和输出曲线上可以判定所设计的步态可以较为平稳的驱动机器人运动。
4.2. 步态设计
本文决定使用对角线式的步态设计,在保证机器人实现运动的基础上也同时能够维持稳定的状态,从而实现需求的运动步态。
现作出如下设定,爬虫式机器人的头部左侧胯关节舵机为1号关节,按照顺时针的方向依次排序为2,3,4号关节。其次,假定与头部左侧胯关节相连接的膝关节舵机为5号关节,同样顺时针排序,依次为6,7,8号关节。
在上述设定的基础上,首先简述直行步态规划:
第一步:所有关节的舵机均回到初始的角度,如图7所示,保证爬虫机器人重心稳定。
第二步:2号及4号关节舵机均向后摆动,支撑脚6号、8号关节舵机蹬地,从而用摩擦力驱动机器人向左前方前进一定距离。与此同时,抬起5号、7号关节舵机并将1号、3号关节舵机向前移动,如图8所示,为下一步机器人运动轨迹回正做准备。
第三步:所有关节舵机回到初始位置,如图9所示,使得机器人回到直线运动轨迹上。
第四步:1号及3号关节舵机均向后摆动,支撑脚5号、7号关节舵机蹬地,从而用摩擦力驱动机器人向右前方前进一定距离。与此同时,抬起6号、8号关节舵机并将2号、4号关节舵机向前移动,如图10所示,为下一步机器人运动轨迹回正做准备。
关于机器人右转步态规划,其基本策略依旧是同一对角线部位的关节抬起,另一对角线上的关节滑动,从而完成运动,具体步骤如下:
第一步:所有关节舵机回正,保持机器人重心稳定。
第二步:5,7号舵机抬起,并延迟一定时间,待机器人稳定后再继续运动。
第三步:1,2号舵机均向前摆动,3,4号舵机向后摆动,此时机器人应向右旋转一定角度。
第四步:5,7号舵机落下,使机器人站立平稳。
第五步:6,8号舵机抬起,并延迟一定时间,待机器人稳定后再继续运动。
第六步:1,2号舵机均向后摆动,3,4号舵机向前摆动,此时机器人再向右旋转一定角度。
第七步:所有关节舵机回到初始位置,完成一次90度右转。
机器人的后退与左转步态与上述前进、右转步态类似 [6],不再赘述。
5. 机器人基本运动子程序
爬虫机器人的基本运动包括前进、后退、左转、右转、左移、右移等基本步态,要对这些步态进行编写程序实现,需要对机器人运动学动力学进行仿真并结合实际情况的分析计算出舵机运动的角度。
在实现基本步态的过程时,结合前面所确定的步态以及在UG和ADAMS仿真软件中的建模与仿真,同时搭建了实际结构进行模拟,编写了完成这些步态的子程序。这些子程序中均使用了顺序结构内嵌套舵机控制子程序完成,这样程序就具有了良好可读性。
5.1. 直行控制程序
直行控制程序共分为四步,具体步骤在前文步态中已经介绍过,而程序中又添加了相应的延时函数,这是为了确保舵机能够准确地运动到相应位置。如图11所示为直行控制程序。
5.2. 右转控制程序
该程序与直行不同的是,它包含6个步骤,但基本的运动方式对角线步态仍然保持不变。右转控制程序如图12所示。
5.3. 追踪子程序
该程序旨在实现机器人在某些情况下需要对某些目标进行追踪的功能,追踪程序包括两种,第一类追踪程序依靠的是红外式传感器进行追踪,第二类程序依靠字母识别程序后进行追踪。两个程序相同点在于程序都是依靠外部传感器的反馈值进行判断是否前进,不同点在于红外传感器是通过测定距离后进行逻辑判断,而字母识别追踪程序则是依靠一系列图像处理后成功识别相应字母后才进行前进动作。红外追踪程序如图13所示。
5.4. 字母识别
该功能是由摄像头采集连续的图像并进行OCR处理,从而识别出相应的字母。
首先需要创建相应的字体模板库,在前面板中设置好视觉获取函数与视觉助手函数后进行图像处理函数的设置,如图14为图像处理过程函数。
同时在设置字符集时要手动圈出要是识别的区域,但是视觉助手中没有矩形输出接口,故在接下来的两步处理就是作为矩形数据的输出。如图15所示为字符集样图,图16所示为实际识别时所识别的字母。
识别了字母后,机器人将对该字母进行追踪,从而实现相应功能,在程序设计时,使用一个循环先后进行图像获取和处理,下一步在进行前进步态的调用,具体程序如图17所示。
6. 结束语
本文介绍一种基于ARM的教学用爬虫式机器人,利用嵌入式系统myrio,其搭载双核ARM9和相应模拟数字引脚来控制舵机和传感器,控制爬虫式机器人的八个关节,实现爬虫式机器人的前进后退左转右转等基本运动。利用labview编写程序,通过传感器和摄像头来实现四足机器人的搜寻探索,字母识别及追踪等功能。以基于ARM的教学用爬虫式四足机器人为研究对象能很好的发挥其在机器人实验教学中的作用。