APP下载

一种基于AVR单片机控制的武术擂台机器人设计

2018-11-16

传感器世界 2018年6期
关键词:舵机测距红外

北京信息科技大学 自动化院,北京 100192

一、引言

机器人集光、机、电、传感器、控制技术于一体,是国家科技和发展水平的重要体现。近年来,随着智能技术的飞速发展,智能机器人已经在各种领域发挥了重要作用,越来越贴近人们的生活。

中国机器人大赛暨RoboCup公开赛已经举办多年,武术擂台赛对抗性激烈、观赏性强,是进行机器人技术较量的平台[1]。机器人在比赛中面对的环境是复杂的,如何利用多个传感器获得信息进行正确处理是取得比赛胜利的关键。

“创意之星”是一种面向大学生的高级模块化机器人套件,采用各种可通用的零件组成机器人。零件之间按统一的方式连接,并自由组合,即可形成各种不同的机器人模型,实现更为综合、技术要求更高的机器人功能。[2]

本文利用“创意之星”机器人套件设计的轮式机器人,运用8个红外开关传感器和4个红外测距传感器获得测量信息并进行数据融合,其中红外传感器用于检测边缘,红外测距传感器用于检测距离。通过MultiFLEXTM2-AVR控制器有效地控制由4个舵机和4个直流电机构成的执行系统完成机器人的运动,实现机器人的自主登台、避险、寻敌、对撞等功能。本设计机器人在2017中国机器人大赛武术擂台赛-无差别1vs1组取得二等奖的优异成绩。

二、武术擂台赛规则[1]

武术擂台赛是一种对抗性机器人竞赛。双方机器人启动后从出发区自主登上比赛擂台,寻找对手并将对手推下擂台。如果在比赛过程中,机器人被推下擂台或者自己掉下擂台,则需要在10s内重新识别、寻找并自主登上擂台继续比赛。如果一方机器人整体离开擂台场地或者无法再行动,则判对方得一分,在固定的时间内得分多者为胜。机器人可采用轮式,履带式或足式,重不超过4kg,投影尺寸不超过300mm×300mm。

图1为武术擂台赛场图。比赛擂台是放在一个3800mm×3800mm的区域中间,场地地面为白色,四周有500mm高的黑色围栏。擂台是一个2400mm×2400mm×60mm的正方形矮台,擂台表面底色从外侧四角到中心由纯黑到纯白的灰度渐变,擂台中央为正方型红色区域,内为白色“武”字。擂台四周有宽为200mm的黑色色带(图1中显示为绿色以示区别)。图中兰色和黄色区域为双方出发区,宽度为400mm。

三、硬件平台[2]

1、整体设计

机器人硬件平台系统结构图如图2所示,包括4个子系统:决策系统、感知系统、执行系统和通信系统。

本文设计的机器人采用四轮差动式,大小为300mm×300mm。感知系统由8个红外开关传感器和4个红外测距传感器组成;执行系统由4个舵机和4个直流电机构成,直流电机使用BDMC1203驱动,12V/5A锂电池供电;决策系统控制器采用AVR单片机,它可以提供12个I/O接口、8个A/D接口、8个数字舵机接口[3]。通信系统通过以太网接口完成与上位机的联系。机器人模型中,各种传感器信号作为数据输入量,舵机和电机的转动作为数据输出量,以此完成机器人各项动作。

感知系统的安装如图3所示。底盘正前、后、左、右各安置一个红外开关传感器AD1~AD4,顶部左前、右前、右后、左后各安置一个红外开关传感器AD9~AD12。四个红外测距传感器AD5~AD8安装在正面的前、后、左、右,用来测量距离。传感器从前开始,顺时针方向命名。AD5方向为前方。

图4为执行系统的安装。图4(a)为舵机安装方式,左前舵机ID8、右前舵机ID7、右后舵机ID5、左后舵机ID6。图4(b)为采用2个BDMC1203驱动器配置方式,驱动直流电机,四轮驱动、差速转弯。ID1控制右侧两个车轮,ID2控制左侧两个车轮。

2、感知系统

感知系统采用红外开关传感器和红外测距传感器的组合,主要用于机器人确定自己的位置以及方向、判断是否到达擂台边缘、识别敌人等 。

(1)红外开关传感器

E18-D80NK原理如图5所示。传感器发射红外线到物体上,经物体反射后传到传感器接收器,接收器上得到反射信号积累到一定值后会触发回路[4]。传感器为数字输出,1表示在触发距离内未检测到障碍物,0表示检测到障碍物。E18-D80NK带有灵敏度调节旋钮,可以调节传感触发距离。

红外开关传感器AD1~AD4触发距离为40mm,主要用于判断机器人小车是在台上还是在台下,并配合红外距离传感器判断前方是否有敌人。AD9~AD12主要用来进行边缘检测,防止机器人掉台,触发距离根据机器人高度设置,可调范围:30mm~800mm。

(2)红外测距传感器GP2D12

红外测距传感器用来测量传感器与前方障碍物之间的距离。选用Sharp公司红外测距传感器GP2D12,具有体积小、重量轻、接口简单的特点,是机器人测距的理想选择。传感器量程范围100mm~800mm,输出0V~2.5V(输出与距离成非线性反比例关系)。

GP2D12主要由红外发射器、PSD(位置敏感检测装置)及相关处理电路构成,红外发射器发射一束红外激光线,红外光线遇到障碍物被反射回来,透过透镜投射到PSD上,投射点和PSD中心位置存在偏差a,GP2D12根据如图6所示的a、b、α三个值就可以计算出H的值,并输出相应电平的模拟电压。

由于GPD2D12输出值与实际反射距离并非线性关系,在使用之前,要对传感器进行标定,通过大量的数据建立输出数据与实际距离的关系对应表。在使用时即可根据查表方式来得到输出数据与实际距离的对应关系。本文的采集原则为每5cm采集一次。

表1和图7为获得的障碍物距离与MultiFLEXTM2-AVR控制器的ADC输出值的对应关系,可以看出传感器的测距与输出值成反比非线性关系。

表1 红外测距传感器的测量距离与返回值

需要说明的是GPD2D12的两个重要特性:与障碍物的反射角度基本无关;与反射物体的颜色基本无关。

3、决策系统

决策系统就是机器人的“大脑”,本设计采用一款小型机器人通用控制器MultiFLEXTM2-AVR,其处理器是ATmega128单片机。ATmega128可以在16MHz的频率下运行,对于轻量级的自动控制系统来说已经完全足够。具体功能概述如表2。

表2 MultiFLEXTM2-AVR控制器功能概述表

4、执行系统

机器人要运动就必须具备执行系统,执行系统就像是机器人的“肌肉”。机器人常用的执行机构有直流电机、步进电机、舵机等。本设计采用4个直流电机驱动橡胶轮,4个CDS55XX舵机来控制机械臂。

(1)直流电机

4个直流电机分别安装于底盘的左右两侧,每组2个,电机的取值决定转速,取值越大,转速越快。取值为正,正向转速,取值为负,反向转速。左右转向以差动力实现。需要特别注意的是,左侧电机与右侧电机为镜像关系,实现前进动作时,左右电机的取值必须是相反的。表3描述了电机运动和取值的一般规律。

这只是轮式机器人运动的一般规律,左右两侧速度不同时,就不能仅仅以运动的一般规律为唯一标准,需要考虑前一个动作轨迹。

表3 电机运动和取值的一般规律

(2)舵机

舵机就是控制舵面的电机。本设计采用的CDS55xx舵机有两种工作模式,即电机模式和舵机模式,电机模式时,它可以整周旋转,舵机模式时,它只能在0°~300°范围内旋转。在本设计中用到的是舵机模式,使用舵机来控制机械臂完成登台和攻击动作。

机器人舵机采用半双工串行异步总线进行控制,使用之前需要对舵机进行编号区分,舵机的调试和编号可以使用RobotServo Terminal软件,这个软件可以对总线上舵机ID搜索,设置参数(如ID、波特率、加速度以及位置限制等参数),查看舵机状态(如温度、位置、载荷、电压等),还可以设置舵机的中值位置等[5]。舵机调试系统如图8所示。

CSDS55xx机器人舵机采用总线式通信,可以串联使用,但最好是6个以下。因为单组6个CSDS55xx的工作电流会达到3A~8A,使舵机线发热,产生比较大压降,最后导致离控制器最远的舵机因为沿途舵机线分压而造成工作电压过低,从而出现复位、数据通信不正常等状况。

四、策略研究

硬件是机器人的躯体,策略是机器人的灵魂,在以硬件结构为辅助的前提下,完美的控制策略是赢得比赛的关键。

不掉台是比赛的关键,它的优先级要高于攻击敌人。机器人在比赛的过程中一直要确保自己在擂台上,通过边沿识别来漫游,并在漫游的过程中寻找对手并攻击;如果是在擂台下,就通过机身周围布置的传感器确定擂台的方向,摆正自身的朝向登上擂台。

其中研究的重点:自主登台技术。技术难点:机器人如何识别出自身位置在台上和台下,并针对自身不同位置,启用登台机构完成登台动作[6]。机器人识别位置流程图如图9所示。

(1)检测是否在台上

检测机器人是否在台上主要设计思想:位于台上时,AD5~AD8测量值均小于300,四个红外光电AD1~AD4其中一个检测到对方,可利用函数中累加和小于2判断位于台上。

位于台下时,前后(或左右)两个红外光电传感器均检测到目标(如前检测擂台,后检测围挡),两个传感器累加和等于2,判定机器人位于台下。

在擂台下时,首先要检测机器人朝向,以前方对擂台为例,此时前方底部红外光电传感器AD1检测到擂台,底部左侧AD4和右侧AD2的红外光电传感器均未检测到障碍,顶部4个红外测距传感器只有后方AD7检测到围栏。

机器人尺寸30mm×30mm,测距传感器有40mm有效测量距离。检测是否位于台上函数见后文软件设计部分。

(2)边缘检测

见图10(a)如果机器人在台上, AD9~AD12均应该检测到擂台,传感器灯亮,返回值为0,一旦某个位置的传感器灯灭,返回值为1,代表超出传感器的有效测量距离,不能检测到擂台,那么在这个方向有可能落下擂台,要采取必要的措施。例如当机器人左前方红外开关传感器AD9灯灭,机器人向后退并向右转90°,当机器人右前方红外传感器AD10灯灭,机器人向后退并向左转90°。后方两个传感器同理。不掉台是比赛的关键,它的优先级要高于攻击敌人,根据比赛经验来看,很多比赛选手把重点放到攻击策略,从而导致忽略了边缘检测输掉比赛。

(3)检测敌人

见图10(b),通过底部四个红外开关传感器AD1~AD4及相应的红外距离传感器合作完成敌人探测。AD1~AD4触发距离40mm,AD5~AD8判断阈值141。例如,机器人前方有敌人时,AD1灯亮,AD5大于阈值,电机以1000速度(取值为经验值,主控芯片速度范围0~1023,正值代表电机正转,负值代表倒转。)向前,持续时间为200ms,直到把对手推下擂台后,触发边缘检测,后退。左侧有敌人时AD2亮,AD8大于阈值(141),机器人先以500速度左转,持续时间400ms,再以500速度向前,持续400ms。后方、右方同理。

需要说明的是,上述转速、时间、距离的取值皆为多次调试经验值,未出现撞不到对方的情况,如果未把对方机器人顶下擂台,本方机器人会一直顶下为止。如果出现僵持的情况,裁判会让双方到比赛起始区再次登台。由于参加比赛的绝大部分设计都是在标准模型下的改进方案,机器人动力不会相差太大。对于转速和时间的最优配置仍需要继续深入,但是本设计有这样的局限性。

五、软件设计

NorthSTAR是一个图形化交互机器人控制程序开发工具。但是在我们实际使用中,发现图形化编程可读性和执行效率都很低,所以使用了C语言在Visual Studio编译环境中编写,提高程序的可读性和灵活性。部分参考程序如下:

1、自主登台

为了给机器人登台做支撑,我们在机器人前后相对底盘垂直方向安装了4个分别由舵机控制的机械臂。机器人检测到擂台后,前机械臂放下摚起机器人,使其高出擂台,同时车轮以500速度前进,在车轮摩擦力和机械臂支撑力的共同作用下,前车身翻上擂台。此时车身处于倾斜状态,前机械臂收回,后机械臂放下,在支撑力和电机驱动力的共同作用下,机器人以1000速度前进,最后顺利登上擂台,后机械臂收回。通过单一信号接口来传送电机速度,将主控芯片的输出的信号用0~1023的数据来表示。

2、检测是否在台上函数

六、总结与展望

本文设计的基于AVR单片机控制的机器人是对参与武术擂台赛所得出的经验。简述了硬件平台的搭建、策略的研究、软件的设计。设计的机器人可将传感器采集的数据通过控制器处理从而准确判断自己所处的擂台位置并实现自主导航,还可以在擂台上能够灵活地实现自主登台、前进、后退、转弯和攻击对手。最终获得“2017中国机器人大赛武术擂台赛非标准平台无差别组(1VS1)挑战赛”第二名的成绩,证明了硬件设计的可行性与软件策略的正确性。

可以改进的地方是,本设计采用了红外传感器来定位机器人位置,而未采用灰度传感器,多灰度传感器阵列可以通过判断场地的颜色梯度从而确定自身位置。虽然灰度传感器易受光线强弱的影响,但是灰度传感器在定位上的优势是红外传感器无法比拟的。所以如何利用好这把双刃剑,是改进机器人在擂台漫游效果的关键。另外,比赛中擂台上漫游和掉台后擂台位置的检测策略还有很大提升空间,也是机器人能否获得更优异成绩的关键之处。

猜你喜欢

舵机测距红外
网红外卖
闪亮的中国红外『芯』
类星体的精准测距
含齿隙弹载舵机的全局反步模糊自适应控制
TS系列红外传感器在嵌入式控制系统中的应用
基于dsPIC单片机的飞艇舵机控制实现
浅谈超声波测距
基于高速同步485总线通信的多通道舵机控制器设计
基于快速递推模糊2-划分熵图割的红外图像分割
基于PSOC超声测距系统设计