高 远
(河南大学欧亚国际学院,河南 开封 475000)
根据中国机器人及人工智能大赛“全地形小车设计制作”赛项之规定,本全地形机器人需要自主完成窄桥,台阶及隧道三种越障任务以及气球爆破。
按照行走方式分类,本小车属于轮式结构;按照越障方式分类,本小车属于被动适应式底盘,车身整体上可被分为两段。相较于刚性底盘,其能够更好地适应地形,在窄桥及阶梯障碍中均有良好的越障表现;相较于主动适应底盘,其对悬挂机构要求较低,不需要外加更多的探测模块,在低速越障过程中的表现更为稳定。
车轮设计上,前两轮与后两轮采用履带覆盖来增加摩擦力与轮径,与中间两轮形成轮径差。其中前四轮与一可活动的半六边形结构相连构成悬挂机构,可在越障时抬起车头与后两轮形成一定夹角达到被动适应地形的效果。
图1 悬挂机构示意图
图2 项目组设计的全地形车底盘3D建模
经计算,当悬挂机构抬起与地面形成角度 时整个机构的重力全部施加到前轮轮心处,此时机构可能会整体倒向后轮。然而在整个越障过程中,不会出现重心失衡的情况。本设计在保有轮式结构速度快,效率高的同时也能兼具履带越障能力强,稳定性高的优越性。
应组委会要求,控制系统的硬件部分全部选用“探索者”套件中的电子产品。控制系统各模块引脚布局及整体接线策略如下:
图3 控制系统各模块引脚布局与接线策略
3.2.1 核心控制模块
核心控制板部分选用了Basra控制板+Bigfish拓展板的组合。虽然Arduino2560控制板虽然又更多的I/O口可供使用,而Basra+Bigfish的组合相较Arduino2560控制板,整合了3A6V稳压模块,专属舵机接口,FAN8100MTC直流电机驱动芯片、可直接驱动舵机、直流电机、无需外围电路。同时,前者板载的USB驱动芯片及自动复位电路,烧录程序时无需手动复位,在后期的需要大量调参的情形下更有利于调试参数。
综上,Basra控制板+Bigfish拓展板的组合更适合全地形移动机器人的制作设计。
3.2.2 循迹模块
循迹模块选用厂家提供的灰度传感器作为全地形车的循迹模块。工作电压4.7V-5.5V,工作电流1.2mA。
此灰度传感器在由一组安装在同一平面的发光二极管和光敏二极管组成。在全地形移动机器人行进过程中,发光二极管发出白光照射在检测面上,检测面反射的光由光敏二极管被取样后将返回一模拟量作为当前检测面的灰度值,通过与程序设定的灰度值进行比较从而判定小车所处的运行状态安装上采取“前二后二”的安装策略,即车头车尾各部署一对灰度传感器。其中车头安装的两个灰度传感器间隔5cm,经测量恰好可以卡住场地上的黑线,能够令机器人完成循迹;车尾安装的两个灰度传感器间隔8cm, 如果在行进过程中出现偏移黑线的情形,后面的一对传感器可以监测它的偏移程度并及时纠正机器人的行进路径。
由于本次赛事的器材限制,我们选用PID开环算法作为电控算法。由于缺少反馈输入,其输出常常受到系统元件工作状态及校准精度的影响,存在调参繁琐,稳定性差等问题。我们从分段化的思想出发,给出了一种优化方案。
根据整个比赛场地的障碍分布,将控制算法分为六个阶段编写。
图4 比赛场地及分区
表1 任务分区表
3.3.1 窄桥越障
本文注重论述移动机器人的全地形越障能力,因此只给出前三个任务的程序设计方案。
窄桥越障需要保证三点:一是机器人越障时两侧轮子转速相近,保证其不偏斜严重;二是机器人越障前处于相对较平直状态;三是机器人动力足够,保证电压够大。
图5 窄桥越障逻辑框图
3.3.2 隧道越障
管道越障算法设计采用两段循环,分别为直线循迹和管道循迹。
上述代码段出现的三个函数:
(1)NCar_Track():直线循迹函数,通过设置迭代次数控制机器人直行距离,从而保证其顺利进入管道;
(2)Snake_Track():管道中循迹函数,二者区别是参数不同,循迹情况判断不同。
图6 阶梯越障逻辑框图
(3)Position_Adjust:位置纠正函数,保证黑线位于机器人前两传感器中间。
3.3.3 阶梯越障
阶梯越障需要保证两侧轮子速度大致相同且需要控制速度区间,速度过大可能会导致卡在阶梯上,速度过小可能会导致爬不上阶梯。
受限于PID开环算法的局限性,控制程序的编写需要经过大量调试来确定参数取值。而我们基于分段化的思想,对每一段动作编写对应的函数,可以实现对机器人动作的精确控制,一定程度上优化了开环算法的局限性。
这样的控制方案低速,路径固定且执行任务精度要求较高的场合特别实用。