APP下载

管沟机器人自动化检测系统设计

2024-02-29傅茂龙孟祥印杨子镱郭学理

计算机测量与控制 2024年2期
关键词:管沟本体总线

傅茂龙,孟 文,孟祥印,杨子镱,郭学理

(西南交通大学 机械工程学院,成都 610031)

0 引言

机器人的发展历史可以一直追溯到18世纪末19世纪初,英国的自动纺织机成为机器人的最早原型。直到21世纪以来,机器人技术在不断发展,机器人技术被认为是对未来的产业具有重大意义的高新技术之一[1]。机器人是集成计算机、机械结构及自动化技术的高端智能设备[2],机器人可以执行各种任务,从日常家务[3-4]、工业生产[5-7]、医疗设备[8-9]到极端环境检测[10-11]。机器人为人类提高了生产效率,增强了安全性,改善了生活质量,降低了劳动成本。总而言之,机器人在人类生活中成为了不可或缺的一部分,成为人类最重要的辅助工具之一[12]。

随着我国城市建设工业化、现代化和智能化的推进,越来越多的铁路、高速公路以及城镇都配备了排水管沟[13]。排水管沟经长期使用时,需要定期对排水管沟进行检测,排水管沟系统错综复杂,使得排水管沟管理,检修问题尤为突出。最早管沟的维修都是人工进行检修,管沟内环境恶劣,人工进入管沟内还存在着瘴气、塌陷等风险,导致人工检测的效率低下[14]。现阶段结合机器人技术,出现了管沟检测机器人代替人工进入管沟检测[15],管沟机器人最早出现在欧美国家,后逐渐引入国内,在沿海城市得到了广泛的应用。

管沟检测机器人主要是在铁路涵洞,公路排水渠以及城市管网进行检测,对管沟进行检测、清洁等[16]。管沟检测机器人携带一定的传感器、摄像头等,进入管沟检测[17],将管沟内的环境实时反馈给工作人员,由工作人员进行管沟缺陷的评估和分析[18]。但是现如今的管沟机器人还存在着一定的不足,例如:1)操作复杂、操作界面不够简洁,需要提前对工作人员进行培训;2)信号连接不稳定、管沟内情况复杂、距离较长、传输的信号容易受干扰,导致指令接收错误和数据中断;3)机械结构复杂、维护较为困难、机器人的零件较为昂贵,增加了机器人的成本[19];检测任务繁重,需要人工进行辅助检测,无法做到完全智能化。因此,针对上述的种种问题,需要设计出一种操作简单、通信稳定、结构简单和智能化的管沟检测机器人[20-21]。

为解决上述管沟机器人的种种痛点,本文设计开发了一整套的管沟机器人自动化检测系统,该系统包含了数据处理和指令下发的PC上位机,管沟机器人本体,接收上位机命令的MCU微控制器以及各种执行器。所设计的管沟机器人自动化检测系统可以实现管沟内部检测,采集管沟内图像数据、远程指令接收,可视化交互操作界面和自动化缺陷判别等功能。研制出管沟机器人自动化检测系统,经实际实验测试,机器人系统可以准确地接收PC上位机的指令进行管沟检测,以及对管沟缺陷的自动缺陷检测。

1 管沟机器人系统

结合上述管沟机器人的检测任务要求,设计出了一种实时性强、性能稳定的自动化检测系统。自动化检测系统的工作流程为:管沟机器人进入管沟内部,PC上位机对管沟机器人和线缆车发送指令,管沟机器人接收指令后进行前进、后退、抬升相机等操作,采集管沟内部的图像信息。线缆车依据指令进行收放线缆,当机器人在管沟内部宕机时,线缆车将机器人拖回,回收管沟机器人。PC上位机实时显示机器人的状态,显示管沟图像,电机转速,抬升角度等信息,PC作为自动化检测的大脑,对机器人、线缆车进行控制和监控。

自动化检测系统主要可以分为3层:决策层、管理层及执行层。决策层包含了PC上位机和控制手柄,管理层主要是MCU的微控制器,用于接收决策层的命令和上传数据,执行层主要是各类电机和摄像机,完成对应的动作。管沟机器人自动化检测系统的总体如图1所示。

图1 管沟机器人自动化检测系统框图

1)决策层:决策层主要是用于接收工业摄像机的图像信息,可视化机器人信息,接收机器人数据和下发控制指令。

2)管理层:管理层包含了管沟机器人本体和线缆车两大部分,机器人本体又包含机器人车身和机器人云台,机器人本体内部采取CAN总线通信进行信息交互。管理层和决策层之间采取RS485总线进行通信,接收决策层的指令。

3)执行层:执行层主要是各类电机、LED灯和传感器、接收MCU的控制信号,完成对应的动作。

2 管沟机器人系统硬件设计

2.1 PC工控机外围电路设计

PC工控机承担了主要的视觉检测以及运动控制任务,首先接收工业摄像机的图像信息和机器人本体传输的状态信息,然后通过得到的数据标注出管道缺陷类型和位置,计算出机器人本体所需要的电机速度,最后通过RS485下发指令给机器人本体,机器人本体控制相应执行设备完成作业。

PC工控机现阶段主要的接口是USB,分析上述需求,需要将USB转换成接收视频的同轴电缆和RS485总线通信。具体设计如下:

1)USB转同轴电缆:USB转同轴电缆中使用的是美乐威的USB Capture SDI Gen 2,输入接口支持SDI/HD/3G-SDI,本项目使用的是3G-SDI,最高支持的传输距离是150 m。采集的最高分辨率为20 481 080,采集的帧率最高支持120 fps,主机的接口为USB3.0,兼容USB2.0,主机即插即用,自动检测输入信号。USB Capture SDI Gen 2如图2所示。

图2 美乐威USB Capture SDI Gen 2

2)USB转RS485:USB转RS485的硬件电路基本方案是先将USB的DP和DM差分信号转换成TTL串口TX/RX,再将TX/RX转换成RS485的A和B,最终完成USB协议到RS485协议的转换。

如图3所示,使用CH340E芯片将USB转换成TTL的串行通信TX/RX,CH340E内置时钟无需外部另接晶振,是MSOP-10的微小型的贴片封装。TTL转RS485的芯片选择SP3485EN-L,是SOIC-8的贴片小型封装,利用CH340E的TNOW引脚对SP3485EN-L的接收和发送DE进行控制。USB转RS485还添加了LED灯指示现在是否工作,添加滤波电容对USB进来的5 V进行滤波处理。

图3 USB转RS485原理图

2.2 控制手柄硬件设计

控制手柄作为决策系统的其中一部分,设计的最初目的是方便工作人员在现场对机器人进行控制,通过选择不同的按键实现不同的功能。设计的整体思路是手柄+接收发送器配合,当检测出按键按下时,对应的接收发送器通过RS485总线发出相应的指令。如图4所示,选取STM32F103C8T6作为发送接收器的主控芯片,选取索尼的PS2进行反向破译,当PS2手柄的按键按下,通过2.4 G无线的接收器,MCU接收到按键按下的信息,发出对应的指令。

图4 控制手柄硬件框图

2.3 管沟机器人车身硬件设计

隧道管沟机器人车身的硬件系统主要是以MCU的主控器为核心,通过接收上层决策系统下发的指令,完成相应的动作。隧道管沟机器人的MCU的主控板是实现电机等闭环控制的基础,通过一些采样电路、通信电路和传感器模块,完成对隧道管沟机器人的运动控制。本小节中,机器人的车身硬件设计考虑从机器人车身的控制需求和实际环境特性出发,机器人车身主要负责的是机器人本体的前进、后退、转弯和云台的升降。车身的主控MCU接收到决策系统下发的指令,实现对应的操作以及回复PC工控机的数据请求。

依据上述的要求,机器人本体车身的硬件要求有如下几点:

1)MCU主控制器电路;

2)RS485接口电路;

3)CAN接口电路。

隧道管沟机器人本体车身硬件结构如图5所示。

图5 机器人本体车身硬件结构框图

2.4 电源供电电路设计

隧道管沟机器人本体车身需要的电压有:MCU的3.3 V、CAN和RS485接口电路的5 V、继电器的12 V、光耦隔离的PWM输出的12 V和电机所需的24 V。综上所述,机器人本体所需要的供电方案有:24 V-DCDC-12 V、24 V-DCDC-5 V和5 V-LDO-3.3 V。

2.4.1 24 V-DCDC-12 V

24 V转12 V的DCDC方案选择的开关电源芯片是,LM2678S-12 V,是TI(德州仪器)推出的新型的DCDC芯片。LM2678S-12 V具有内置电阻调节,固定输出12 V电压,输入的电压从8~40 V。具有高达92%的转换效率,260 kHz的固定转换频率,待机电流仅为50 μA,使用的温度范围为-40~+125°,能够满足绝大部分的使用要求,而且使用起来简单,无需外接太多元器件即可完成转换。使用LM2678S-12 V进行转换的电路如图6所示。

图6 24 V-DCDC-12 V

2.4.2 24 V-DCDC-5 V

依据上述针对一些接口电路的供电需求,需要将24 V转换成5 V给CAN接口芯片供电。考虑到经济实惠、稳定可靠的要求,选择了这款LM2595S-5.0RG,TO263的贴片封装。LM2595S-5.0RG是一款经典的PWM控制的DCDC(稳压电源转换器),具有3 A的大电流驱动能力,相较于其他芯片具有高效率、较低的纹波和高线性的调节率等特点。该芯片的占空比调节范围为0~100%,宽输入电压从0~45 V,有3.3 V、5 V和12 V的固定输出版本和可调输出版本。项目中使用的是5 V的固定输入版本,具有150 kHz的固定的工作频率,内置了电流过流保护和过温防护,还带有ON-OFF的迟滞开关功能,单价便宜,适用于多种设备。项目中使用LM2595S-5.0RG将24 V转换成5 V的电路原理如图7所示。

图7 24 V-DCDC-5 V电路原理图

2.4.3 5 V-LDO-3.3 V

考虑到MCU主控芯片需要的电源纹波更小,所以不能选择DCDC方案,应该选择LDO方案。LDO(低压差线性稳定器)体积更小、精度更高、纹波更小,但是转换效率不高。综上所述,LDO不宜压降太大,所以选择上文中24 V-DCDC-5 V后的5 V作为芯片的输入电压。本项目选择的芯片是较为实惠的UMW(友台半导体)的AMS1117-3.3的固定输出版本,输出的电流为1 A,具有电流过流保护,输出电压的精度控制在2%以内,工作温度范围为-40~+125 ℃。AMS1117-3.3的使用比较简单,一般为3个引脚、一个输入、一个输出和接地。输出端接入两个电容进行滤波,输出接两个电容进行去耦,AMS1117-3.3的使用电路如图8所示。

图8 5 V-LDO-3.3 V电路原理图

2.5 CAN接口电路

CAN总线是一种支持多主多从的分布式实时串行通信,因为其通信的高可靠性和高性能得到了广泛的应用,因本项目中机器人本体内部通信选择了CAN总线,所以需要对CAN接口电路进行设计。

本项目选用的CAN收发器是PHILIPS(飞利浦)推出的高销量的TJA1050T,这款CAN收发器完全兼容了“ISO 11898”标准,最高速率可达1 Mbaud,具有输入保护和热保护,支持的电压为3.3~5 V,最高支持110个节点,不使用的节点不干扰总线传输。CAN收发器的使用原理如图9所示。

图9 CAN接口电路

TJA1050T在本项目使用的电源输入为5 V,图中CAN收发电路在点对点通信时,CAN_H和CAN_L直接需要串接120 Ω,提升抗干扰的能力,确保总线能够快速进入隐形状态,以及消除反射的能力。当CAN作为其中一个端点时,需要去除120 Ω,这时候只需要将JP2插针的跳线帽拔除即可,这样CAN接口电路既可点对点通信,也可多机通信。

2.6 RS485接口电路

RS485接口电路和CAN接口电路一致,都是采取差模传输方式,差模传输方式在传输过程中两条双绞线受到的干扰是同时存在的,在接收端接收双绞线的电平进行差值计算,相较于传统的共模传输,大大增强了传输的抗干扰性。

RS485通信是一种半双工的通信方式,传输的具体最远可以达到1 500 m,传输的共模电压范围为-6~+6 V,传输的最高速率能够达到10 Mbps,理论最多的接收节点可达128个,本项目中主要是利用RS485总线进行机器人外部通信的构建。

本项目使用的RS485收发器接口芯片是TI(德州仪器)的SN75176BDR,采取的封装是SOP8的贴片封装,符合且超出了国际的ANSI标准,具有三状态的驱动和接收,具有热关断的保护措施,5 V的电源供电,比较适合在嘈杂的环境下的长距离的通信。本项目中RS485使用的电路原理如图10所示。

图10 RS485接口电路

RS485和CAN接口电路一样,都需要增加电阻提升抗干扰性,所以在JP4当中增添了120 Ω,当作为点对点通信时,需要将跳线帽连接JP4,使得120添加进电路中。当作为其中一个节点时,不需要额外的串接电阻,这时将JP4的跳线帽拔下,即可完成作为一个节点进行使用。JP4巧妙的设计使得整个隧道管沟机器人自动化系统能够完成外部多机的远距离通信。

2.7 电机驱动隔离光耦电路

直流无刷电机、直流无刷驱动器以及驱动的电路原理如图11所示,为保证隔离MCU主控电路,添加光耦进行电路隔离,防止电机旋转产生的反电动势烧坏MCU。

图11 电机驱动隔离光耦电路

图12 RS485总线报文结构示意图

2.8 硬件设计的主要参数

自动化管沟检测系统的PC为联想工控机,CPU为i5-9300H,显卡为RTX 1050Ti。管沟机器人本体的MCU芯片为STM32F407ZET6,控制手柄的MCU芯片为STM32F103C8T6,线缆车的MCU芯片为STM32F407IGT6。相机为索尼工业摄像机,支持1 080 P 30 Hz和720 P 60 Hz两种格式视频。机器人内部CAN通信选择的芯片为TJA1050T,外部RS485总线通信的芯片为SN75176BDR。云台步进电机为鸣志ML42HS2L4240的42步进电机,机器人行走的直流无刷电机为AM-BL45100AE2406空心杯无刷电机。结合上述的基础器件,所设计的硬件电路基本符合设计需求,能够满足远距离的RS485通信、多机的CAN通信、100 m同轴电缆视频传输,满足自动化管沟检测所需要的功能。

3 机器人系统总线传输协议设计

依据上一小节的硬件设计要求,隧道管沟机器人本体内部采取CAN总线,机器人外部采取RS485总线。

3.1 CAN总线协议制定

CAN总线是一种串行的协议总线,CAN总线的标识位决定了消息的优先级和对应的功能,利用CAN总线的非破坏性的仲裁机制,高优先级的消息继续发送,低优先级的消息停止发送。CAN总线在消息出错后会自动重发,CAN总线的效率非常高而且比较稳定。

在本项目中,主要选择的是CAN总线的数据帧格式,最高支持的数据大小为8 byte。CAN总线的数据帧分成了标准帧和扩展帧,数据帧由7个部分组成,分别是:起始段(SOF)、仲裁段、控制段、数据段(0~8 byte)、CRC校验段和结束段(EOF),扩展帧比标准帧在仲裁段上多了18 bit,仲裁段从11 bit变成了29 bit。

利用CAN总线的仲裁机制,也将接入CAN总线的设备仲裁段进行编号,如表1所示。

表1 自定义CAN协议设备ID

本项目中将每一个CAN设备节点设计成一个三层的对象,底层驱动层提供CAN的收发接口,底层驱动只负责数据的发送与接收,不用关心数据的类型和大小。共享内存被应用程序和驱动共享,共享内存中保存了设备的数据,应用层负责修改和复位共享内存里的数据,将修改完成后的数据保存在共享内存中,最后再由应用层交付给底层驱动层进行发送。

3.2 RS485总线协议制定

管沟机器人车体、线缆车和决策系统之间采取RS485的电气接口,RS-485是在485远程传输方式上规定了电气属性,为了保证远距离传输,RS485设计为差分传输,抑制了共模干扰。

工业自动化领域在以RS485作为硬件层上建立的应用层协议Modbus,Modbus是一种串行通信的应用层协议,目前已经在工业自动化中使用非常广泛。Modbus是一主多从的应用层协议,Master是主机,其他总线上的都是Slave(从机),每一个从机都拥有自己的设备地址,所有通信均由主机发起,从机不能主动发起通信,从机与从机也无法通信。

本项目参照Modbus RTU协议,定义管沟机器人系统的应用层协议,如下所示,报文每个段的描述如图2所示。报文段的固定帧头是0x55,固定数值,节点地址总共5个,分别是:PC工控机为主机,地址为0x00,控制手柄地址为0x01,隧道管沟机器人本体地址为0x02,线缆车的地址为0x03以及一个广播地址0xFF。设备地址是某一个节点内部的地址,例如机器人本体内部的直流无刷电机地址定义为0x01,抬升的步进电机为0x02。CRC16是CRC的一种校验方法,选取的多项式是8 005,多项式为x16+x15+x2+1。

4 管沟机器人系统软件设计

4.1 决策层PC上位机软件设计

PC上位机是整个管沟机器人自动化系统的大脑,作为决策层的主控制器,它负责传感器的数值监控,管沟回传视频的实时缺陷检测,工程信息数据的读取和保存以及作为RS485通信协议的主站。综合上述功能需求,PC上位机的软件设计主要包含5大部分:控制部分、运动监控、缺陷检测、信息管理和协议主站,PC上位机的功能如图13所示。

图13 PC上位机功能示意图

4.2 决策层控制手柄软件设计

控制手柄作为管沟机器人决策层的辅助工具,其主要任务是帮助工作人员在现场控制机器人本体以及线缆车的运行,控制手柄的软件设计主要包括扫描按键、读取按键值和发送指令。

嵌入式扫描按键的方式有外部中断扫描和状态机FIFO按键扫描,本项目使用的索尼PS2的按键多达16个,若使用外部中断扫描需要使用中断号16个,这对于MCU控制器是一笔不小的资源消耗,综上所述,选择了状态机FIFO方式进行按键扫描。

状态机全称为有限状态机,是嵌入式领域一种常用的编程思想,状态机将一个复杂的问题转换成阶段性问题,每个阶段有不同的处理方法。将按键的状态分为:松开、抖动、按下、长按、重复按和释放,通过反复检测按键状态实现软件消抖、长按和重复按功能。

4.3 管理层机器人软件设计

管沟机器人管理层的软件设计主要是对于MCU控制板的程序设计,主要的任务有以下几部分:操作系统移植、协议栈构建及多线程程序运行。

4.3.1 RTOS的移植

MCU的RTOS选择的是RT-Thread,RT-Thread是中国在2006年开发的开源中立、社区发展起来的一款实时操作系统。RT-Thread的移植步骤主要分为4个步骤:配置系统时钟、实现OS节拍、BSP板级初始化和堆内存初始化。

4.3.2 协议栈移植

协议栈的移植主要是将自定义的CAN,RS485协议的CAN_Init.c、CAN_Init.h、CAN_BSP.c、CAN_BSP.h、RS485_Init.c、RS485_Init.h、RS485_BSP.c、RS485_BSP.h等文件添加进不同的控制板工程。CAN_Init和RS485_Init提供了CAN、RS485的底层驱动层,驱动层为上层应用提供接受和发送功能。CAN_BSP和RS485_BSP提供了项目内的协议解析规则,设备ID和消息组包功能,应用程序直接调用该文件的API即可接入总线协议。

4.3.3 多线程程序运行

利用RT-Thread的多线程机制,在MCU控制器中创建了4个线程,分别是:主线程、空闲线程、消息处理线程及PID计算线程。主线程用于处理主要任务和创建其他线程,例如外设初始化、堆栈初始化、初始化线程、启动线程和LED闪烁,LED闪烁用于显示MCU是否正常工作。空闲线程用于监测MCU运行状态,记录系统空闲时间,当长期未接收到RS485的指令时,UART_IT_RXNE空闲标志位置位1,开始计时,当空闲线程的运行时间达到所设置的空闲时间上限,将一些耗能设备进行关闭。消息处理线程对中断中接收到的消息进行处理,对协议进行解析后,执行相应的动作。

4.3.4 直流无刷电机PID控制软件设计

在MCU的控制板上实现直流无刷电机的PID速度控制算法,需要考虑MCU的资源少以及计算速度慢等问题,因此,将原有的位置式PID改成了增量式PID。增量式的PID算法如下所示:

△u(v)=u(v)-u(v-1)=Kp[e(v)-e(v-1)]+

(1)

在MCU中使用增量式PID有以下几个优点:1)计算时间更短,无需计算当前转速和目标转速的差值,只需要计算前一时刻的输出量的差值,更符合MCU的实时性要求;2)增量式PID无需保存历史数据,只需要最近3次的PID输出值,同时也大大节约了MCU的资源;3)增量式PID在实现的过程中无需考虑积分饱和微分噪声的情况,使控制器更稳定,性能更好。

在MCU中定义PID结构体{PID_t},设置定时器时间为50 ms,即每50 ms使用霍尔传感器对直流无刷电机进行一次速度采样,同时更新电机电压PWM的占空比。

图14为PID计算线程的运行流程图,每隔50 ms更新一次PID计算值。

图14 直流无刷电机PID算法执行流程

5 自动化管沟检测系统测试

Qt搭建的PC上位机如图15所示,软件主界面中间为管沟机器人的摄像机显示部分,软件主界面下方为机器人的控制按键,包括机器人的前进后退和速度选择。右边三列按键为机器人云台的动作控制,包括云台升降、旋转等动作。

图15 PC上位机测试界面

主界面下方圆盘为机器人前置LED灯光旋钮,旋钮控制灯光强度。

自动化管沟检测系统的测试主要包括以下几部分:

1)RS485的远程通信;

2)CAN的多机通信;

3)PC接收同轴电缆视频。

调节电机和灯光的RS485示例协议如下:[0x55 0x00 0x05 0x51 0x02 0x00 CRC_H CRC_L];[0x55 0x00 0x05 0x55 0x05 0x00 CRC_H CRC_L],第4字节为对应的设备,第5字节为设备的对应操作。PC向机器人发送上述协议,机器人进行云台抬升和调节LED灯光等操作,实现机器人的远程控制。

CAN通信协议示例如下所示:[0xF1 0x01 0x00 0x01 0x00 0x00 0x00 0x00],CAN数据帧第1~2字节为具体设备ID,第4个字节为操作命令。上述CAN协议为控制直流无刷电机正向旋转,控制管沟机器人前进。

图15右边为工程属性信息,Qt利用SQLite3小型数据库,存储每一个工程的具体信息。

综上所述,所设计的管沟机器人系统整体运行过程可靠,可以稳定可靠地完成管沟检测的任务,解决了管沟机器人系统的不足之处。

6 结束语

本文以PC和MCU微处理器为核心部件,结合相关的摄像机,传感器和电机等,搭建了管沟检测机器人的自动化检测系统。首先分析了机器人技术和管沟的城市化建设的发展,针对现有的管沟机器人系统的痛点,开发了一整套的管沟机器人系统。首先明确了管沟机器人的整体系统框架,分析机器人所需要的硬件,使用EDA软件设计出机器人所需的硬件。分析对应的MCU的功能,移植实时操作系统RT-Thread,将MCU的任务划分为多线程,提高软件的实时性和性能。利用有限状态机的思想,设计按键的FIFO按键扫描框架,减少中断占用,提高效率。在MCU中添加增量式的PID调速算法,提高了机器人的运动控制精度,加强了机器人的运动控制性能。

针对管沟的复杂环境,在人工无法完成检测的任务时,管沟机器人将发挥它的作用,代替人工去管沟内检测,提高工作效率,保护工作人员的生命安全。本文设计的管沟检测机器人自动化系统,可以在人工的辅助下完成对应的操作,未来将更进一步地提升机器人系统的效率和性能,为工作人员提供更为完善的检测服务。

猜你喜欢

管沟本体总线
Abstracts and Key Words
对姜夔自度曲音乐本体的现代解读
城市地下综合管沟工程建设问题及解决对策
基于石灰石岩性的超近距管沟爆破试验研究
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
城市地下综合管沟工程建设问题及解决对策
《我应该感到自豪才对》的本体性教学内容及启示
热力管道保温材料在通行管沟中的应用分析
多通道ARINC429总线检查仪