王偲骁
摘 要:文章给出一种基于Arduino的仿生虫型机器人系统设计方案。在方案中,通过驱动控制子系统,实现了虫型机器人的仿生移动功能,同时通过测距子系统,实现了机器人避障功能。文中主要就这两个功能进行了详细的描述并对其实现过程进行了描述。
关键词:Arduino控制板;仿生虫型机器人;避障
在机器人研究领域,仿生机器人是其中的一个重要的研究分支。通过模仿不同生物的特殊属性,仿生机器人能够完成在特定应用场景下的特定应用需求。例如美国Boston Dynamics公司的“大狗”机器人,美国哈佛大学研究的蝾螈机器人Pleurobo等,都利用了其特殊的生物特性帮助使用者完成了诸如货物运输和狭小空间的探测的功能。
基于以上背景,结合学校信息技术学科的主要学习内容,本文提出一种基于Arduino开源控制板的仿生虫型机器人系统。该机器人利用了Arduino开源控制板提供的强大程序库,利用舵机的转速控制,实现了蟲型机器人的仿生移动,并通过安装的测距传感器设计了一定的避障算法,实现了虫型机器人的避障功能。本文的后续内容将详细介绍该虫型机器人的移动控制功能和避障功能。
1 移动控制功能详细设计
本次机器人的设计是基于Arduino开源控制平台进行开发的。如图1所示,Arduino是一个硬件平台,它的源代码是开放的,它由电路板和开发环境软件组成,其中,电路板是具有I/O功能的电路板。Arduino语言简单来说就是很多参数被函数化处理了的基础C语言。使用Arduino语言编写的程序结构简单,主要包括初始化变量、设置管脚模式的setup()函数和类似于C语言中main()函数功能的循环执行函数loop()。
机器人采用的是UNO系列的Arduino UNO R3的开发板。它不仅可以使用USB接口直接供电,还可以使用外接电源供电。驱动电机采用RS一380SH直流伺服电机。驱动电机的转动速度同样受PWM信号占空比的控制,拥有良好的可调性,非常适合小车在各种条件下的速度要求。
仿生机器人的运动控制主要依靠前后两个电机的转动,如图2所示,具体移动策略如下:
(1)前面的电机通过左右运动转速来控制移动方向,需要左转时,前端电机向左旋转较大的角度,反之则向右转向,通过旋转的角度差来精确控制左右转的具体角度。
(2)后部电机通过水平的转动来为后脚提供地面摩擦力,控制机器人的前向运动。通过电机的转动使得右后腿前摆的同时右前腿落地,重心右偏,增加地面摩擦力;当右后腿后摆时右前腿抬起,右侧身体向前推进一步。与之类似,左后腿和左前腿的运动也是同样的配合。通过这种配合控制机器人的前进。
2 自动避碍功能详细设计
除了虫型机器人的移动控制设计以外,本次设计中的另一个重要的功能是虫型机器人的自动避障方法的研究与实现。自动避障功能的实现是为了能在复杂环境下自主、高效、省时地躲避障碍物,它是完成虫型机器人后续更高级功能开发的基础。同时,避障水平的高低也是衡量避障算法智能化高低的一个关键指标。如图2所示,本次设计的避障算法主要依靠装载在虫型机器人头部的超声传感器来感知前方障碍物的距离。为使机器人在所处的静态环境中检测到障碍物时,能够及时、准确的完成自动避障动作,根据障碍物的位置、大小等信息的不同,具体避障策略如下:
1)由于硬件设备的局限性,本设计仅针对最基本的障碍物类型进行避障系统设计。如图3所示,在向前移动的过程中,机器人时刻通过超声传感器检测其正前方的障碍的距离dis。通过对dis的取值区间的判断,并配合机器人的前进、左右转和后退的基本动作来完成障碍物的避障工作。
2)当测得dis<500mm时,则认为前方存在障碍物,并自动进行向左或向右转向10度(限于当前的硬件设计条件,选取了10度为一个转向角度单位)。转向完成后再进行dis值的测试。从而得到一组
3)为了保证转向后,在避开障碍物时能回到原来前进的方向中,在后续前行的过程中采用了方向校准的策略。采用一个转角变量k来记录转向次数,在臂章成功前行的策略完成后,对前行方向进行反向转向校准k*10度,采用前行3步反向转向1次的方法,当反向转向回补了k次后停止转向回补,直接采用避障前行的策略。
避障系统的执行不需要人工干预,机器人不断通过信息采集系统检测周围障碍物的信息,判断障碍物的类型,按照避障策略执行相应动作,实现自动绕开障碍物。自动模式的流程图如图4所示,整个机器人人的执行程序是一个不断循环的过程,通过传感器信息的判断不断采取相关策略执行的循环过程。
3 结语
综上所述,仿生虫型机器人主要利用超声波测距传感器实时采集以实现自动避障功能,对高中信息技术学科知识进行了综合实践运用。本系统所需硬件简单易用、稳定可靠、成本大大降低,并具有较好的扩展性。