谢 靖
(南阳农业职业学院,河南 南阳 473000)
在实际生活中,人们需要进行各种各样的作业,而对于某些作业来说,由于其工作环境的复杂性,可能会对人类的生命安全造成威胁,为了确保工作人员的生命安全,便需要利用机器人来代替人类从事这些工作。而相比于履带式机器人与轮式机器人来说,六足机器人无疑更适用于各种复杂环境下的危险作业,这也使其广泛用于勘察、抢险等危险作业中。目前所使用的六足机器人多路舵机主要是通过分时控制算法或排序算法来达到自动避障目的,但这些算法的精度较低,而且数量也较为有限,这使六足机器人在某些情况下难以满足避障要求。因此,需要进一步对六足机器人进行相应的改进。
在六足机器人中共包括6个足,各个足中具备3个关节,而舵机便是分别安装到足中的各个关节当中,通过驱动舵机来带动关节,进而使六足机器人实现旋转运动。由于在各个足中分别安装有3个舵机,通过对这些舵机进行旋转控制,能够使六足机器人中的每个足端部都能到达地面可达范围中的任何一点。在步态设计中,六足机器人主要是以三角步态进行向前行走的,六足机器人在向前行走时,其右前足、左中足与右后足起到支撑地面的作用,可将这三足视为第一组,而右中足、左前足与左后足则抬起呈迈步姿态,视为第二组,通过这两组足之间的交替往复运动,便实现了六足机器人的向前行走。六足机器人在转弯过程中时,主要包括两种转弯运动,分别是自转与公转,六足机器人在自转时,第一组足主要起到支撑地面的作用,而第二组足则沿着某一方向进行特定角度的旋转,在旋转完毕后,该组足落于地面,并起到支撑地面作用,随后第一组足抬起并重复第二组足的动作,此时旋转方向是一致的,通过这两组之间的动作交替来实现六足机器人的自转动作。而六足机器人的公转动作与自动动作基本相同,不过其在进行公转动作时,六足机器人的左右两侧的足在迈步距离上不等。在六足机器人的自动避障动作中,主要是由舵机来对其足部关节进行驱动的,舵机的旋转角度最大可以达到180度,舵机的工作额定电压为3.6~6 V,其能够为六足机器人提供1.6 kg每公分的力矩,舵机的角度则是由脉冲宽度调制(Pulse Width Modulation,PWM)信号进行控制的,该信号的周期间隔为20 ms,PWM信号的高电平范围保持在0.5~2.5 ms,其高电平时间线性分别和舵机中的9-0度至90度相对应,各个舵机的角度控制都分别是由不同I/O中的PWM占空比来决定的,从而使六足机器人能够得以正常向前行走[1]。
在基于单片机的六足机器人自动避障控制系统中,主要是通过模块化设计方法来对其电路进行设计的,在电路系统中,其主控芯片为STC12C5A60S2,并通过51单片机的使用来作为其核心最小系统。在六足机器人中共设置有18个舵机,每个舵机中分别安装有两节的18650电池,该电池能够为舵机提供3.7 V的电压,并且各节电池能够为9路舵机提供电源。在电路系统的51单机片中同时还扩展有18个I/O接口,这些I/O接口的一端均与各个舵机中的信号线进行连接,其中,无线遥控模块与4个I/O接口进行连接,而红外线避障传感器中安装有2个I/O接口。在基于单片机的六足机器人自动避障电路系统中,其串口通信模块为PL2303,并与串口TXD/RXD进行连接。
在六足机器人的自动避障控制中,对舵机的控制主要是通过相应的控制算法来实现的,这也使控制算法的设计变得十分关键,其直接决定了六足机器人的自动避障能力。在舵机控制中,除了其自身的20 ms周期以外,还需要在信号线中注入一个0.5~2.5 ms时延的高电平,高电平的电压为5 V,其他时间则是PWM信号中的低电平,对高电平时延进行控制与调节,能够使舵机的转动角度得到相应控制。由于在该自动避障控制系统中采用了51单片机来作为最小系统,而在该系统的外部则设置有相应的晶振体,而该晶振体是11.059 2 M,再加上机器自身的周期是1.085 07 µs,进而可知基于单片机的六足机器人自动避障控制系统对舵机转动的控制精度最高能达到0.1度。一般来说,在控制系统中通过相应定时器的使用来对多路舵机信号进行生成的方法共有两个,第一个方法是对舵机中的高电平时间进行排序,当六足机器人足中的某一舵机周期刚刚开始时,对全部舵机中的PWM信号电平进行提高,并对定时器中舵机的最少高电平时延时间进行设置。此时,单片机会在定时器中断以后,会将高电平时延时间中的最长时间与第二长时间的差值设置给定时器,通过这种赋值方式,直至最后一组时间也同样被赋值以后,则舵机信号中的最大电平时延会被拉低,此时再对定时器进行赋值,该赋值对应最长时间和20 ms之间的时间差。第二个方法是将舵机周期20 ms进行8个时间段的划分,每个时间段均为2.5 ms,而在这8个时间段中便包含有舵机的高电平信号,此时再根据这8个时间段中高电平时间与2.5 ms之间的差对定时器进行依次赋值即可。
从理论上进行分析可以了解到,第一个方法能够对任意多路进行控制,不过通过对该方法进行实践可以了解到,随着舵机数量的不断增加,排序后在同一足中相邻位置的舵机在高电平时间差上也会相应减少,进而导致定时器的中断时间减少,此时定时误差也就随之增大。因此,在采用这种方法时,必须要在确保精度的前提下来对PWM舵机信号进行生成。而第二个方法中,由于是将20 ms划分成了8个时间段,这也使其只能对有限数量的舵机进行控制,不过该方法在控制精度上能够得到保证。因此,要想在满足舵机控制精度的前提下来对18个舵机进行同时控制,应将上述两种方法进行结合应用,也就是所谓的3×6法。通过第二种方法进行6个时间段的划分,每个时间段均为2.5 ms,然后在各个时间段中设置3段高电平,以此达到18个舵机的同时控制,而且也能使舵机中的PWM信号满足相应的精度要求。
在基于单片机的六足机器人自动避障控制系统中,主要是通过模块化设计方式来对其自动避障功能进行控制的,在该控制系统中共包括4个模块,分别是避障模块、无线遥控模块、串口通信模块以及数据接收模块。在避障模块中,主要使用了两个E18-D50NK光电式传感器,该传感器分别安装在六足机器人的左右前方,在各个传感器中分别设置有VCC,OUT,GND 3个引脚,VCC引脚与4.5~5 V的电压相连接,OUT引脚是输出信号,其在正常状态时为5 V的高电平,当六足机器人在遇到障碍时,则该引脚会生成低电平。避障模块是利用51单片来对所有I/O口的状态进行判定的,进而准确分析六足机器人的前方是否存在障碍物,然后根据分析结果来合理地选择避开方式。在无线遥控模块的设计中,该模块主要为MX-J05V点动方式,无线遥控模块由相应的遥控器进行控制,在遥控器中设置有4个按钮,在该模块中,数据位D1D2D3D4分别与51单片机中的I/O口相接,其在正常状态时为低电平,当遥控器按钮被按动时,则对应I/O口中的数据位会转变成高电平。在串口通信模块设计中集成有RS232接口,该接口能够将COM端口中的信号进行转换,使其成为TTL电平,并利用51单片机对PC机中的控制命令进行接收。在数据接收模块中,主要是以串口通信方式来实现51单片机和上位机之间的数据通信的。上位机会将报文传输到下位机中,该报文包含有5个字节,这5个字节主要包括起止符#、舵机号、控制位、舵机角度以及终止符$,下位机会对数据进行存储,并在接收到终止符时,对存储的数据进行处理,然后做出反应[2]。
本文在基于单片机的六足机器人控制系统设计中,通过3×6法来对舵机进行控制,以此在确保PWM信号精度的同时,完成对18个舵机的同时控制,并通过上位机中三大模式的设计来达到舵机的多样化控制,使六足机器人在自动避障中能够进行许多复杂的动作。在该控制系统中,通过51单片机的使用来确保I/O端口、串口中端及定时器中断等功能的实现,进而为其他类型的智能机器人在自动避障控制系统的研发中起到一定的参考作用。
[参考文献]
[1]梁美彦,薛太林,王昱,等.基于Android控制的智能六足机器人动力学建模及实现[J].测试技术学报,2017(6):498-504.
[2]魏春莉,李强.基于六足探测机器人的自动避障控制[J].机电工程,2008(1):40-43.