APP下载

用于GIS内部检测的仿壁虎机器人通信系统研制

2021-06-03吴国沛林李波

仪表技术与传感器 2021年5期
关键词:壁虎舵机串口

吴国沛,李 华,林李波,张 铁

(1.广州供电局有限公司,广东广州 510620;2.华南理工大学机械与汽车工程学院,广东广州 510641)

0 引言

随着国家对电力系统设备运行安全及维护提出了更高的要求,变电站内设备的安全及维护也具有更为重要的意义。国内外对变电站巡检机器人研究比较多。如罗建军[1]研制了变电站巡视机器人,杜元翰[2]研究了遥操作电力巡检机器人,该机器人通过遥控无线通信模块实现机器人和遥控器的通信。

对于GIS的外部运行状况的巡检同样可以使用巡检机器人完成,如牛勃[3]等研究了GIS局部放电的智能巡检系统,并将GIS局部放电信息通过4G无线通信网络进行远程通信,将信息发送到巡检机器人的主控制器。文献[4-6]研制了一次作业可检测距离不大于500 m的管道检测机器人,但其只适用于Ф200 mm的管道;文献[7]研制了采用4轮独立伺服驱动的管道检测机器人,该系统同样只能实现对Ф200 mm管径的地下输水管道的检测,且需拖缆控制,无法实现无线通信。

但对内部故障或缺陷的表现形态和准确位置的查找和判定是当前行业内关于GIS内部检查的主要问题。为解决这一问题,作者研制了一种面向变电站气体绝缘金属封闭开关设备的缺陷故障检测,可在设备气室内部进行水平、垂直方向直线运动的仿壁虎机器人[8],并设计了机器人的通信系统。一般来说检测机器人的通信方法常用的有采用无线网络[9-11]、基于CAN总线、RS232总线[12]等。

本文针对所研制的4足关节式机器人的运动控制原理,研究了基于无线通信的分布式控制系统之间的通信系统。

1 仿壁虎机器人的控制机制

1.1 机器人的机构原理

图1为机器人实物及机构原理。如图1所示,为实现机器人在GIS内壁的爬行,所研制的机器人采用了真空吸附的方式,设计成四足的结构类似壁虎的爬行形式。考虑到GIS内部的对称结构,所设计的机器人四足的结构为完全对称的结构。其中每条腿上有3个转动关节和1个有球关节的吸附脚掌,如图中的J11,J12,J13分别是机器人的3个转动关节,采用3个集成了传感器的总线舵机。并在腿部末端上有带球关节的真空吸附脚掌。因此,机器人每个足部具3个自由度,具有空间爬壁的能力[13]。

1.2 仿壁虎机器人分布式运动控制系统

仿壁虎机器人分布式运动控制系统由远程控制器(MC)、机载运动控制器(RC)和辅助运动控制器(AXUC)构成,3个子控制器之间通过无线通信实现指令控制和返回状态数据的功能。

图2为机器人分布式运动控制系统。如图2所示,操作远程控制器(MC)给机载运动控制器(RC)发送控制指令,机载运动控制器(RC)收到指令后,与辅助运动控制(AXUC)通信获取辅助运动控制器(AXUC)控制的真空泵和真空传感器的状态信息,再结合机载运动控制器(RC)本身的状态,准确执行机载运动控制器(RC)发送的指令。另外,机载运动控制器(RC)会实时上传自身状态信息给上位机和机载运动控制器(RC)[14]。

1.3 仿壁虎机器人运动控制结构

仿壁虎机器人的运动控制系统为机载运动控制器、远程控制器和辅助控制器组成的分布式控制器,使用无线串口模块实现相互之间的透明数据传输。

机器人系统的硬件构成如图3所示,其中,机器人的板载主控制器由电源管理模块、舵机通信总线控制模块、IMU惯性检测单元、摄像头检测模块以及无线通信模块构成。其中,IMU惯性检测单元用于实时检测机器人的姿态。摄像头检测模块是将微型摄像头装于云台舵机上,实现管道内全方位的检测,并通过无线网桥传输视频信息。舵机通信总线控制模块通过串口对12个舵机进行同步运动控制,实现机器人在管道内进行各方位的爬行动作。电源管理模块实现机器人供电、蓄电及自我故障诊断等功能。

2 仿壁虎机器人的通信系统设计

机器人的运动控制方式是操作者通过远程控制器给出一个前进、后退、向左、向右、转弯的指令,机器人机载运动控制器收到该指令后,辅助运动控制器获得真空吸盘和传感器的状态信息,机载运动控制器获得机器人自身的姿态信息,机载控制器完成操作者所给出的运动控制指令。

因而,机器人的通信系统的设计主要分为2部分:机器人和辅助运动控制器(AXUC)与远程控制器(MC)之间的三方通信;机器人控制器和12个舵机之间的内部通信。

2.1 无线串口通信模块

近年来,由于无线网络高速数字传输特性和连接稳定性的提高,在移动机器人领域也得到了应用[15-17]。无线通信模块是机器人在GIS内部实现对管道内部检测的关键,仿壁虎机器人各控制器之间采用无线串口通信,无线串口模块采用E28-2G4M20S模块。

E28-2G4M20S与主控单片机的接线如图4所示,可以通过将 M2M1M0 进行高低电平组合,确定模块工作模式。其工作模式配置如表1所示。

表1 无线串口模块模式配置表

机器人的3个控制器均使用E28-2G4M20S无线串口模块实现控制器间的无线通信,当三方控制器的无线串口模块设置为相同波特率,设置好通信信道和配置好E28-2G4M20S模式后,便可实现各控制器间的数据透明传输。

2.2 三方通信设计

2.2.1 三方通信策略

三方通信的程序设计根据机器人处于静止状态和运动状态的不同,分为闲时三方通信和执行指令时的三方通信2部分。

当远程控制器没有发送指令时,机器人静止不动时,此时为通信闲时,通信闲时的通信内容和机制如图5所示。辅助控制器、机器人控制器与远程控制器之间的通信都是以一定的频率定时发送和接收。远程控制器负责接收并显示机器人控制器反馈的机器人状态和辅助控制器反馈的吸盘气压值数据,以方便操作者观察及操作。在闲时机器人静止不动时,机器人不需要高速的三方数据反馈。

当远程控制器发送指令控制机器人运动时,通信情况如图6所示,执行指令时的三方通信在瞬时的通信频率更高,机器人爬行过程中采用该方式的三方通信,而静止时则采用闲时三方通信方式。

2.2.2 三方通信数据协议

为确保远程控制器、机器人控制器和辅助控制器三方之间的控制指令和数据互传的可靠性,设置私有的三方通信协议,如表2所示。

表2 三方通信数据协议

该数据协议包含包头、广播标志、紧急标志、源地址、目的地址、数据长度、帧数序号、数据开始标志、数据、数据结束标志、奇偶校验值、CRC校验。由于处理器采用的是小端对齐,其中的多字节数据均采用小端对齐。包头占据4字节,有3种数据用来区分该通信包的性质,比如0xA5A5A5A5表示该数据包是控制命令包,0xA55A5AA5表示该包为状态数据包,0x5A5A5A5A专用于上位机修改机器人的参数。广播标志为1代表该数据包可被其他方接收,为0表示该数据包为普通包,该包点对点通信指定接收方。源地址和目的地址用于说明数据的发送方和接收方。帧数序号在拼接多帧数据时,使得数据对齐。数据长度指明输出的数据字节数,数据开始标志和数据结束标志方便进行上下位机解析。奇偶校验值和CRC校验值用于检验传输前后通信包是否准确无误。

2.2.3 三方通信软件实现及数据存储

按照多方通信数据的作用性质,多方通信互传的数据可以分为3类:状态数据、控制指令数据和上位机专用修改机器人参数指令数据。状态数据用于反馈自身状态给三方中的其他两方。控制指令可以来自操作者操作的远程控制器,也可以是机器人发送的对辅助控制器的控制指令。上位机专用修改机器人参数数据可以直接修改机器人的参数配置。

考虑到通信频率比控制器处理数据的速度高,操作者可能在短时间连续多次操作远程控制器,产生多次数据,因而建立环形队列queue缓存有效的数据。队列queue具有“先进先出”的特性,如机器人控制器先接收到的指令先执行,与操作者的操作顺序一致。

以机器人控制的通信为例,三方通信软件实现如图7所示。根据三方通信协议,机器人对接收到的通信包进行层层筛选,以奇偶校验和CRC校验筛选出未失真的数据,以广播标志和目的地址确定该通信包是否要接收,以包头和紧急标志确定该通信包内部的数据类型,并根据数据类型放入不同缓冲队列queue,最后由数据解析和指令执行任务完成对有效数据的处理。

2.3 控制器与12个舵机之间的通信设计

2.3.1 控制器与12个舵机之间的通信策略

及时而准确地获取12个舵机的状态是机器人能稳定爬壁的重要前提。机器人控制器通过发送运动指令控制舵机转动,也可以通过发送读取舵机的状态指令来获取舵机的位置、速度等状态数据。机器人通过获得12个舵机的状态数据,通过运动学和机构学的知识便可整合出机器人的当前姿态。

在机器人爬行过程中,每个舵机的速度不同,机器人获取舵机状态数据的速度也应不同。由于12个舵机共用一个USART串口的硬件,因此需要考虑给各舵机分配不同的带宽。对此,提出了一种依据舵机运动状态不同而分配不同通信权重的通信策略。

该策略主要考虑了舵机静止时和运动时的通信权重分配,旨在机器人读取舵机数据的及时性。如图8所示,它是从ServoID(舵机编号)为1开始遍历12个舵机并判断是否读取该号舵机的状态数据。如果MoveFlag为1,则表示该号舵机处于移动状态,该号舵机通信权重为1,则立刻读取该号舵机的状态数据;如果MoveFlag为0,则表示该号舵机处于静止状态,通信权重为0.5,需要第二周期来临时才会读取该号舵机的状态数据。

为确保舵机与控制器之间控制命令和数据互传的可靠性,设置了舵机与控制器之间的私有的通信协议。基于该协议,规范定义了舵机通信指令包的格式和舵机通信应答包的格式,如表3和表4所示。

2.3.2 舵机与控制器之间的通信协议

表3 舵机通信指令包

表4 舵机通信应答包

舵机通信指令包包含字头、舵机ID、数据长度、指令、校验和。舵机通信应答包包含字头、舵机ID、当前状态、参数、校验和。其中字头为0XFF,舵机ID为舵机识别标志,指令包括读指令和写指令2类,参数为舵机内存表的索引,当前状态用于表示舵机电压、温度、电流等是否处在正常范围,校验和用于校验数据包传输前后是否准确无误。

机器人控制器通过发送修改舵机内存表参数的指令包达到对舵机转动角度、转速、力矩最大值等的控制,也可以发送读取舵机状态的指令选择性获取舵机的转动角度、转速、扭矩、电压等数据。作为反馈,舵机可以通过发送包含自身状态的应答包给控制器,反馈数据为舵机的转动角度、转速、扭矩、电压等数据。

2.3.3 通信软件实现及数据存储

由于舵机通信频率一定,针对机器人只需要获取舵机的转动角度、转速、扭矩、电压、当前状态、移动标志的数据,建立ServoState结构体来存储每个舵机的状态数据,该状态数据具有实时覆盖性,代码如下所示。

typedef struct _SERVO_STATE_RECORD

{

unsigned short current_position;

short current_speed;

short current_load;

unsigned char current_voltage;

unsigned char work_state;

unsigned char move_mark;

unsigned char ID;

} ServoState,*PServoState;

ServoState Current_Servos_State[12];

为确保机器人控制器准确读取舵机的信息,编写了读取舵机指定数据的函数和控制电机转动函数。

void ServoReadCommand(unsigned char ServoID,unsigned char addr,unsigned char Len);其中,ServoID为读取舵机的ID,指定读取的舵机;addr指定舵机内存表的位置;Len表示从addr所指位置连续读取Len字节数据。该函数可以指定读取舵机的信息数据,要求相应舵机返回应答包。

u8 servo_sync_write (u8 need_control_servo[12],u16 pos[12],u16 speed[12]);如上函数servo_sync_write(),参数need_control_servo[12]指定需要控制转动的舵机,pos[12]指定转动角度,speed[12]指定转动速度,该函数可以指定多个舵机同时转动。机器人控制器仅需和舵机进行一次通信则可以完成对多个舵机转动的控制,保证舵机返回状态数据具有足够的通信时间。

3 仿壁虎机器人的通信实验

在完成仿壁虎机器人的通信系统的设计后,对仿壁虎机器人的通信系统进行了实验。在GIS内壁面上,对机器人进行爬壁实验,观察并记录机器人爬壁的稳定性、机器人与辅助控制器响应远程操作器的速度、机器人控制12个舵机的准确性。

如图9所示,机器人在0°、90°、180°的GIS内壁爬行都能够稳定吸附,经过2 h的往复爬行测试未出现通信异常,机器人能够稳定爬行。

4 结论

(1)本文针对GIS内壁检测的4足12关节的移动式仿壁虎机器人的控制机制,设计了分布式机器人控制系统,设计各控制器之间的三方通信机制和三方通信策略,并详细说明了三方通信的软硬件实现的原理和功能。

(2)基于机器人12关节采用的智能总线舵机,设计了半双工串行通信的控制模块,针对机器人运动时各关节舵机的通信权重不同,提出了机器人与12个舵机的通信机制和通信策略,设计了机器人与舵机之间的精简通信协议。

(3)机器人在GIS管道内壁的爬行实验结果表明,分布式机器人控制系统设计合理,机器人控制系统的三方通信以及机器人与舵机之间的通信都正常,满足了爬壁机器人在GIS内壁爬行运动的要求。

猜你喜欢

壁虎舵机串口
BB壁虎和他的BB朋友们
浅谈AB PLC串口跟RFID传感器的通讯应用
壁虎
壁虎的尾巴
小壁虎为什么借尾巴?
含齿隙弹载舵机的全局反步模糊自适应控制
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索