姚竞豪,王路平,王众鑫,李晨浩,郭奥

(沈阳航空航天大学,辽宁沈阳,110135)

0 引言

本文主要介绍本队伍在探索双足机器人的应用与开发过程中所遇到的困难,将会利用单片机和舵机来实现双足机器人的步行规划,从而实现在比赛过程中所要求的自动化动作。在开发的过程中,常见的问题有:(1)如何实现机器人的基本姿态例如:走路,翻跟头,大步走等比赛基本动作要求。(2)如何实现动作的连贯与切换,将每一个动作连贯起来,实现动作的连续实施。(3)在实际过程中机器人在赛道上实施动作数量的计算,通过计算和微调,使其在赛道上能完整完美地完成比赛要求。(4)双足机器人平衡运行的掌握:在真正的实施过程中,机器人由于本身性能和赛道场地的原因,调试过程中经常出现偏离赛道和自身平衡性的问题。

1 系统的设计

双足机器人通常只拥有腰部、膝关节和脚踝三种自由度。PC和舵机可以采用有线或者无线的方法实现数据传输(如图1两种传输方式)[1]。

组装机器人后,模拟路线,并得到机器人行走过程中每个方向盘的旋转顺序和旋转角度,以确定计算机应该发布的指令。经过几次模拟,对两足机器人进行编程,机器人在比赛中取得了最高的性能,经过了多次上位机调试双足机器人后,最终在比赛中完成命令。

2 双足机器人机械结构

2.1 双窄足机器人结构设计要求

(1)由于机器人的结构特点是只有双足,并且只能独立走路,机器人的移动标志位置是正面和背面(以鼠标箭头的移动方向为正面),因此机器人并不具备完整的对人体自主运动的线性和控制的功能;

(2)最大尺寸为 300mm(长)×300 mm(宽)×450 mm(高),重量不得超过1 kg;

(3)机器人不得使用六个舵机和单个控制台;

(4)机器人能够快速完成稳定、连续、且直线度的步伐;

(5)机器人能够精准地完成滚翻。

2.2 双窄足机器人总体自由度配置

胳膊和腿的运动,是一种综合系统协调肌肉运动,依靠200多个对称和30多个肉部分骨骼结构的综合脚运动,人体关节协调主要骨骼之间可能存在的空白和缝隙。为了尽可能模仿双脚机器人的脚,并在单腿走路时达到可持续性,安装了三个主要的活动关节:臀部、膝盖和脚踝。每一种关节都有多种运动形式,所以自由度也更大,主要分为三种:传动(中线附近的关节)、外展(中线附近的关节)、内旋和外旋[2]。

舵机通常被用于一个双踏板赛车机器人,并成为一种机械驱动元件,以达到机器人之间自由的统一动作和统一关节。比赛规定,机器人不会有多于六的自由度,所以六个舵手可以被用于完全限制六的自由度,这就意味着每个滑膜关节都有益的自由度。因此机器人必须往前移动,向前翻滚,或向后翻滚,而机器人的重心总是在面板底部的支撑表面:

(1)由于肘部运动需要灵活性来锻炼大腿前部实现每天走路、步骤和动作左边腰向前倾,并能发挥重要作用,所以在维持日常步行辅助平衡中,每个专门设置一个前进的自由散步。

(2)肘部还必须弯曲和拉伸运动,以调整重心高度和换脚着陆高度的变化,以适应地面状况,以便能够调整自由的运动。

(3)侧向运动脚踝的拉伸,可能需要执行的同时,为了配合其他肌,同时承担大腿和臀部和腰上侧脚运动,调整横向之间接触物体表面,为了完成整个过程前进的灵活性,我们创新地提高了机器的灵活性。

因此,在两个踏板上行走的机器人具有臀部、膝盖和脚踝的灵活性和宽度,以及两条腿的6自由度。总共使用了6种舵机机制,这些机制不仅符合舵机的使用规则,而且还可以执行所需的操作,如走路、滚动和反向滚动。

2.3 整体结构规划方案

双足竞步机器人的机械结构设计[3]主要有以下三个方面:

(1)对称布置

在行走运动过程中,机械机构通常具备结构对称性的特点,但同时也发挥着简谐运动的功能。有研究者对机器行走运动中的结构对称性问题展开了深入研究,并发现了机器人的躯体运动和腿部活动之间的结构对称性具有关系。在单足支持时,机器人均衡性需要腿的对称锻炼;在双足支撑阶段,机器人的均衡性锻炼并不一定需要腿的对称锻炼,除非在额外限制条件下,否则不需要腿部对称运动。基于此点,双足竞走自动化机器人结构的设计也是对称布局的。

(2)串行连接模式的框架型

因为双足竞走型跑步机器人的所有小滑膜关节,如手舵、供电燃料电池和运动控制器等电路板都必须有相当的总体重量,而整个双足机器人的最大总体长度也必须为300mm(长)×300mm(宽)×450mm(高),而且最大总体重量也不可以大于一公斤,因此为合理减小整个机器人的本身体积,并降低最大总体重量,窄脚机器人的所有主要构件均使用了钢框型构造,并且还采用电机串联驱动结构和可连接移动模式串行式连接式框架设计,不仅能有效利用舵机尺寸,而且能够尽量地满足每个关节的活动范围。

(3)轻型的机械材料

因为双足竞走型的比赛机器人在安全操作情况下的机械体重一般较低,而且用来带动竞走机器人工作的所有机关节件,如操舵装置、电池以及机械控制器电路板等都需要有相应的机械体重,所以在它的机械结构部分通常采用一点五微米硬度的铝合金或硬质塑料,因为这种合金材质的机械质量较低,而且金属硬度比较好,因此在机械硬度方面尽管低于普通不锈钢,但是也比一般的超硬铝合金材质还要好,可以大大强度超过普通的超硬铝合金。脚底、顶板一般采用一种硬度比较够、亚克力板以及重量较轻的复合材料底板作为主要原材。

双足竞步机器人的整体机械结构设计如图所示,各部件的机械组成如图2所示。

3 主要硬件设计

3.1 主控制器

控制管理系统主要使用STM32F103C8T6芯片组和核心控制板块作为主要微控制器。该芯片基于Cortex-M3内核的32位微控制器,运行时工作频率最高达到72MHz,最大运行电流范围为2~3.6V,可同时输出多PWM方波,能够有效支持同时进行串口数据通信,体积小,重量轻;并且能够很好地有效满足应用需求。

3.2 供电模块

窄足的机器人能量主要是由一块14.8V的大容量镍氢动力电池供给,但是因为主芯板,舵机,以及姿态传感器等主要元器件的工作电压并不相等,所以就必须对镍氢动力电池进行减压管理。利用AH8670C对锂电池进行降压处理,然后再给其他元器件供电。该降压控制晶片中利用人工调节的可调电位器,便可调整输出电流。

3.3 姿态传感器MPU6050

MPU6050集成了3轴运动陀螺仪和3轴硬件加速度运动传感器,自带高速数字解码运动姿态处理器(DMP:Digital Motion Processor)可从硬件加速度到发动机,通过HDMI和IIC两个接口实时输出运动姿态控制数据,非常简单便于用户实现高速动态数字解码运算。

3.4 TTL-500通信模块

该串口模块为双工直插式无线传输串口,与收发器之间是一体、半双工、全透明的无线数据传输,兼容3.3V和5V的输出电压,环境适应性较强;无线发射功率高,传输使用距离长。同时,该技术模块组还拥有更强大的无线数据压缩处理功能以及更高效的数据纠错性能计算,使其抗干扰增强性能以及更高的无线传送数据效能。

3.5 舵机内部结构

舵机的内侧,还布置有一座直流式发动机[4];一个高速齿轮传动组;以及一种电流反馈装置和电位控制装置;另外还有一个舵机电子自动控制器。其中,更高速直流驱动电机主要是提供最原始的驱动力,并带动伺服齿轮(又称减速)传动组件,使之旋转形成一种更大的转矩扭力使之传递,而齿轮传动组件如果变速比越大,则伺服驱动电机的齿轮传递最大扭矩力也会更大,也就是说,更高速度将能让其承载很大的设备重量。

4 双足竞步机器软件设计

4.1 双足竞步机器人控制系统的软件设计要求

在系统硬件架构的设计基础上,只有通过软件的设计才能完成下面两个功能:

(1)双足竞步机器人,进行持续、平稳地行走、前滚翻和后滚翻;

(2)根据2017年中国足球机器人竞步大赛暨Robo Cup2017年中国足球公开赛相关规则,双足双人竞步参赛机器人须在一个长600cm、宽60cm的白色矩形竞赛场地内独立完成各项规定的竞步动作,场地周围为一块白色带有水平面的kt形地板,边框上方均贴有一条黑色反光胶带。

由此得到控制系统在软件上至少要满足以下要求:

(1)双足竞走机器人的六个滑膜关节有六操舵装置,而舵机控制周期为24mbps,脉宽为6mbps,所以该软件能够完成6个PWM信息的实时输出,并确保PWM信息有较高的准确度,因此软件需要对PWM信息进行不断地运算,并进行修改。

(2)利用飞机传感器实时自动获取飞机信号,以实现正确辨识飞机黑色框边,并完成实际数据处理,从而做出合理判定,立即向飞行舵机乘员传送飞行相关控制指令。

4.2 双足竞步机器人控制系统的软件设计方法

根据工业控制管理系统的主要软件设计功能需要,采用一种模块式的软件设计控制理念,每个控制模块都必须能独立完成自己的主要功能。各功能模块和软件功能的具体安排主要如下:

(1)增加主机板功能。实现了制动系统内部硬件运行状态的制动初始化,主要软件有一个单片上舵机执行端口的制动初始化,定时器/制动计数器的制动初始化,外部电源中断的制动初始化,下舵机的制动初始化,调用红外线的探测和外部中断的制动触发控制函数,以及上舵机行走的制动函数。

(2)动作步行统计函数控制启动执行定时器/执行计数器,根据每个动作的不同执行时间顺序和动作步态进行规划,对应的多个PWM执行信号参数进行不断同步计算,控制一台单片机自动发射实时化的PWM执行信号,驱动6台螺旋舵机协调进行旋转,完成一个步行、前滚和后滚侧翻等多个动作。

(3)红外探测和中断触发功能。红外感应器实时收集和处理地面信息,并对其进行处理。送到位的单片机外部驱动断路,如果驱动检测者看到内部有一个黑色的圆形边框,则表示外界驱动断路将被触发,单片机向驱动舵机内部传送一个相应的断路指示,控制双足式的竞步驱动机器人的左右快速转动或向右弯曲。

4.3 主函数设计

主要子函数的应用功能主要目的是用于实现机器系统中软硬件运行状态的自动初始化,并分别调用了汽车行走状态子函数、红外信号探测和自动中断信号触发器等子函数,其功能内容主要如下:

(1)Atmegal28端口的起始化:当芯片启动时,当前系统将首先选择Atmega128的内核数据、初始定时器、当前系统使用的接口,再通过选择其数据寄存器;

(2)数据初始化自动定时器/自动计数器:通过手动设置数据控制自动寄存和数据方向控制寄存器,将自动定时器/自动计数器可设置为两种模式;

(3)内部外断触发初始化:将2个内部自动中断,一个int0和一个int1设置成作为连续上升的中断触发;

(4)站立初始化舵机:初始6个舵机,使双足式的竞步式导航机器人完全站立;

(5)对红外自动探测和外部中断信号触发器的子函数功能进行自动调用:每行走一步,红外探测传感器对外部信号中断进行自动采集和处理,如果外部信号中断没有触发,则向自动舵机内部传送一个相应的自动控制指令,执行左或左的右转,如果没有中断触发,则自动退出触发子函数;

(6)调用子函数:首先根据图示进行相应的动作,然后退出子函数。主函数流程图,如图4所示。

系统在进行操作前,双足竞步机器人处于立正状态,之后进入红外探测处并中断触发子函数,然后再完成一般的行走函数(包括向前或后翻的行走函数),并再判断是不是完成了所需要的动作,要是跑完则程序完成,否则系统将回到红外探测处并重启。程序的循环运行,最后完成了所有的设定操作。

5 结语

通过Keil μVision完成了前后翻滚,大步走等一系列动作的编程,拓展了单片机的应用技能。由于赛道长达六米,在调试的过程中比较艰难,且舵机存在偏差,最终通过更改源码上位机的反复调参完成了任务。

竞争优势:(1)通过间断性矫正方向并调整步频从而到达赛道终点。(2)运用Matlab模拟行进路线节约测试时间。(3)通过复合板材进行切割并打孔,以减轻机身重量。(4)对机器人足底加装颗粒防滑垫以保证平衡性。(5)为保证动作连续,对动作进行分块编组,模块化的动作组便于调参及运动的流畅性。