Design of coal mine inspection robot control system
-
摘要: 针对传统煤矿巡检机器人控制系统多采用裸机程序进行控制,导致实时性差、数据易丢失等问题,设计了一种基于QT和RT−Thread的煤矿巡检机器人控制系统。该系统按照功能划分为上位机−人机交互控制台和下位机−微控制器2个部分。利用QT软件开发了巡检机器人控制系统上位机,为用户提供人机交互界面,完成对巡检机器人的远程控制,显示传感器数据与报警记录,提升了人机交互性能;利用RT−Thread实时操作系统开发了巡检机器人控制系统下位机,通过线程调度器以时间片轮转方式调度传感器数据采集、以太网通信、雷达信号处理、指示灯报警等线程任务,实现了机器人自动巡检过程中多线程任务之间的宏观并行,提高了控制系统实时性;在控制系统中设计环形队列数据缓冲区,解决上下位机之间运行时钟不同步引起的数据丢失问题,并通过引入内核对象信号量对环形队列数据缓冲区进行优化,解决线程任务间的资源互斥问题,实现上下位机之间数据长时间稳定、可靠传输。测试结果表明,该系统线程切换延迟时间平均值为1.08 μs,在数据传输周期为100 ms时的数据丢失率仅为0.06%,具有很高的实时性,且线程切换过程稳定性好,保证了大量数据快速传输时的可靠性。Abstract: The traditional control system of coal mine inspection robot uses bare metal program. There are problems such as poor real-time performance and easy data loss. In order to solve the above problems, a coal mine inspection robot control system based on QT and RT-Thread is designed. The system is divided into two parts according to the function, including the upper computer-human-computer interaction console and the lower computer-microcontroller. The upper computer of the inspection robot control system is developed by using QT software. The upper computer provides a human-computer interaction interface for users, completes remote control of the inspection robot, displays sensor data and alarm records, and improves the human-computer interaction performance. The lower computer of the inspection robot control system is developed by using RT-Thread real-time operating system. Through the thread scheduler, thread tasks such as sensor data acquisition, Ethernet communication, radar signal processing and indicator light alarms are scheduled in a time-slice rotation manner. The macro parallelism between multithreaded tasks in the process of robot automatic inspection is realized, and the real-time performance of the control system is improved. The circular queue data buffer is designed in the control system to solve the problem of data loss caused by the asynchronous running clock between the upper and lower computers. The kernel object semaphore is introduced to optimize the circular queue data buffer, solve the problem of resource mutual exclusion between thread tasks. Therefore, it realizes the stable and reliable data transmission between upper and lower computers for a long time. The test results show that the average delay time of thread switch is 1.08 μs, and the data loss rate is only 0.06% when the data transmission period is 100 ms. The system has high real-time performance, and the stability of thread switching process is good. The system ensures the reliability of mass data transmission.
-
Keywords:
- inspection robot /
- control system /
- real time operating system /
- RT-Thread /
- QT
-
0. 引言
带式输送机是煤炭开采中重要的运输设备,其可靠性对煤炭高效开采具有重要意义[1-2]。传统的带式输送机状态监测一般采用人工巡检或传感器等方法,人工巡检增加了人员危险,传感器维护成本高,均难以实现可靠的状态监测[3]。随着机器人技术发展,将巡检机器人应用于带式输送机状态监测,成为煤矿自动化监测的研究趋势[4]。
巡检机器人属于复杂的机电一体化产品[5],其功能越强大,所携带的各类电子设备越多,控制系统越复杂。煤矿巡检机器人控制系统需要实现环境监测数据采集、无线网络数据通信、传感器数据处理、巡检机器人运动控制等关键功能[6],其可靠性决定了巡检机器人运行状态,是保证巡检机器人稳定运行的关键[7]。文献[8]采用S7−200 PLC作为煤矿巡检机器人控制系统核心控制器,通过其内部裸机程序,可将巡检机器人采集的数据编码压缩后以无线通信方式传输至PLC控制箱,在恶劣环境中能保持较好的控制稳定性;但裸机程序采用在主函数中轮询的方式对各个线程任务进行逐个处理[9],通过设置相应的中断响应实现线程任务的并行处理,这种方式缺乏可移植性,并行性较差,且数据压缩解压影响了控制的实时性,增加了数据丢失的可能。文献[10]采用DSP微控制器作为煤矿巡检机器人控制器,其内部裸机程序实现了机器人通过WiFi与地面监控服务器进行指令和数据的实时通信,控制程序运算速度快,但数据传输易受井下环境磁场影响,造成数据丢失和传输不稳定。
近年来,具有高实时性、高可移植性、高可拓展性、高稳定性等优点的实时操作系统受到越来越多的关注,通过在微控制器内部运行一个微型的实时操作系统来实现硬件资源合理化调用[11-12]。综合考虑煤矿巡检机器人对系统整体稳定性、数据采集实时性、数据传输准确性等因素的要求,本文将实时操作系统引入煤矿巡检机器人控制中,设计了基于QT和RT−Thread的煤矿巡检机器人控制系统,可解决传统巡检机器人控制系统可靠性低、实时性差等问题。
1. 系统总体结构
煤矿巡检机器人控制系统按照功能可划分为上位机−人机交互控制台和下位机−微控制器2个部分,如图1所示。上位机是巡检机器人的指令与数据处理中枢:可为用户提供人机交互界面,显示下位机发送的传感器数据;接收用户发出的指令,完成对巡检机器人的远程控制;对下位机发送的数据进行处理,并及时反馈处理后的数据,针对异常数据进行报警。下位机是巡检机器人控制系统的核心,用于收集传感器数据,搭载电池模块与报警指示灯,通过WiFi网络与上位机进行无线通信。
2. 系统硬件
煤矿巡检机器人控制系统下位机采用STM32F103VET6单片机开发,硬件结构如图2所示。矿用传感器和电池模块通过RS485总线连接到单片机;超声波雷达采用串口通信方式与单片机进行数据传输;报警指示灯通过IIC接口与单片机相连接;以太网通信模块通过SPI接口与单片机进行全双工通信。
3. 系统软件
3.1 上位机
QT是一个基于C++语言的图形化界面类库,可通过调用内置的C++类实现所需功能。QT具有良好的可移植性,方便跨平台操作。
调用Tab Widget控件开发巡检机器人控制系统设置界面,用于供用户设置巡检机器人各类参数与环境监测数据正常范围值;调用串口控制类QserialPort开发人机交互界面,用于实现用户对巡检机器人启动、停止及运行速度的控制;调用Table Widget表格控件开发环境监测数据与报警记录显示界面,当出现异常情况时,记录出现异常情况的时间与传感器类型;调用摄像头与热成像仪的软件开发工具包,引用工具包中的SPI函数控制摄像头的旋转、拍摄、录像等功能。煤矿巡检机器人控制系统上位机界面如图3所示。
3.2 下位机
RT−Thread是国产开源实时操作系统,其支持多任务同时运行,通过时间片轮转的方式实现各个任务并行操作[13-15],以保证系统实时性。RT−Thread内部包括信号量、互斥量、进程事件、邮箱等内核对象,可方便地进行不同线程之间的协同与通信,且具有高度的可裁剪性,能够运行于硬件资源相对较小的微控制器中。本文所采用的经过裁剪与开发后的RT−Thread仅需要85 kB的单片机Flash空间及12 kB的RAM内存空间,而STM32F103VET6单片机具有512 kB的Flash及64 kB的RAM,完全满足RT−Thread运行需求。
基于RT−Thread设计了煤矿巡检机器人自动巡检流程,如图4所示。巡检机器人在开机之后对传感器数据采集、以太网通信、雷达信号处理、指示灯报警等线程任务进行初始化操作;在未接收到上位机下达的指令时,巡检机器人处于休眠状态;当接收到巡检指令时,巡检机器人启动各线程任务与运动子程序并开始巡检作业;巡检机器人朝着巡检指令的设定位置行进,在行进过程中若感知到周围出现异常参数,上传异常参数与实时位置,随后根据指令选择继续巡检或停止巡检,若继续巡检,则巡检至设定位置,上传环境参数后结束巡检。
在巡检机器人自动巡检过程中,需要实现传感器数据采集、以太网通信、雷达信号处理、指示灯报警4个重要线程任务的并行。每个线程都须通过RT−Thread的线程调度器执行严格的时间片,一旦执行时间超过时间片大小,则由线程调度器在单片机底层寄存器强行切换线程,以保证4个线程的并行性。线程任务启动流程如图5所示。首先调用实时操作系统启动函数;其次调用STM32F103VET6底层基本硬件初始化函数,完成系统定时器设置、串口等底层外设接口初始化;然后对系统的内核对象(包括定时器、线程调度器等)进行初始化;最后创建多线程任务并启动线程调度器,线程调度器按照时间片轮转的方式与线程优先级来调度4个线程任务,实现线程任务之间宏观上的并行。
3.3 上位机与下位机之间通信
由于无线通信传输会受井下磁场环境影响,上位机与下位机出现运行时钟不同步及运行速度差异,导致两者之间存在一定的数据延迟,并且在长时间数据传输过程中,易产生数据包丢失情况,影响控制系统可靠性。
为解决上述问题,在RT−Thread实时操作系统中设计环形队列数据缓冲区,如图6所示,以保证大量按照时间顺序采集的传感器数据无丢失地发送至上位机。环形队列是一种首尾相接的圆环形数据结构,遵循先进先出的原则。传感器数据采集线程所采集的各个传感器数据按照时间顺序放入环形队列中,下一个数据将要放入的位置称为环形队列头部,最先放入数据的位置称为环形队列尾部。传感器数据采集线程负责不断地将采集的数据打包成一个结构体数据块,从队列头部开始放入环形队列中,而以太网通信线程负责从队列尾部取出结构体数据块,并通过网络发送至上位机。
在实际工程应用中,仅在上下位机数据传输过程中应用环形队列数据缓冲区,会导致传感器数据采集线程与以太网通信线程之间缺少协同配合。环形队列数据缓冲区模型如图7所示,在RT−Thread实时操作系统中创建一个初始值为1的信号量,传感器数据采集线程与以太网通信线程会同时抢占该信号量,一旦信号量被一方线程获取,其值会变为0,此时共享区域将被锁定,另一方线程无法再获取信号量,产生资源互斥。传感器数据采集线程与以太网通信线程之间共享了1个环形队列数据缓冲区,该区域实际上属于实时操作系统中的临界区域,在同一时刻只能被一方线程访问,否则结构体数据块中的数据可能发生混乱,影响控制系统的可靠性。
本文通过在RT−Thread实时操作系统中使用内核对象信号量来解决线程间的同步问题。在实时操作系统中创建一个初始值为环形队列数据缓冲区可放入数据大小的信号量(称为缓冲区空信号量),同时创建另一个初始值为0的信号量(称为缓冲区满信号量),从而建立环形队列数据缓冲区优化模型,如图8所示。传感器数据采集线程不停获取缓冲区空信号量,放入打包好的结构体数据块后释放缓冲区满信号量;以太网通信线程不停获取缓冲区满信号量,将结构体数据块发送至上位机后释放缓冲区空信号量。该机制保证了共享资源不会互斥,传感器数据采集线程与以太网通信线程相辅相成,形成一个动态的过程,传感器采集数据与发送数据之间的时间差通过环形队列数据缓冲区来消除,保证数据无丢失、稳定地传输至上位机。
4. 系统测试
为测试煤矿巡检机器人控制系统的实时性、可靠性,搭建巡检机器人实验平台,包括长20 m的轨道、轨道支架、钢丝绳牵引装置、机器人本体等,如图9所示。将本文基于QT和RT−Thread设计的巡检机器人控制系统作为实验组,传统的PLC内部编写裸机程序的巡检机器人控制系统作为对照组。
4.1 控制系统线程切换延迟时间测试
利用互斥锁和信号量实现控制系统中传感器数据采集线程与以太网通信线程的不停切换(为减小计时误差,选用4个线程中优先级最高的2个线程),在一个线程结束后与另一个线程唤醒前分别计时,利用2次计时的差值来计算线程切换延迟时间。经过1 000次重复测试,结果如图10所示。可看出传统控制系统的线程切换延迟时间最大值为198 μs,最小值为119 μs,平均值为158 μs,方差为550;本文控制系统的线程切换延迟时间最大值为1.48 μs,最小值为0.7 μs,平均值为1.08 μs,方差为0.05;本文控制系统的线程切换延迟时间平均值与方差远小于传统控制系统,表明本文控制系统具有更高的实时性,且线程切换过程稳定性更好。
4.2 控制系统传感器数据传输测试
通过控制系统下位机串口发送字节数与上位机网口接收字节数来测试数据传输可靠性。设置数据传输周期分别为100,500 ms,经过5 min运行,测试结果见表1。可看出本文控制系统在数据传输周期为500 ms时的数据丢失率为0.5%,在数据传输周期为100 ms时的数据丢失率为0.06%;传统控制系统在数据传输周期为500,100 ms时的数据丢失率均为2.4%;本文控制系统的数据丢失率远小于传统控制系统,在大量数据快速传输时,数据传输更可靠。
表 1 数据传输测试结果Table 1. Data transmission test results系统 数据传输周期/ms 发送字节个数 接收字节个数 本文控制系统 500 247 200 246 000 100 1 129 000 1 128 319 传统控制系统 500 246 820 240 800 100 1 128 730 1 101 200 5. 结论
(1) 采用QT软件设计了煤矿巡检机器人控制系统上位机,可处理下位机发送的数据,实现参数设置、巡检机器人启停运动控制、传感器监测数据显示、云台摄像头与热成像仪显示记录等功能,增强了人机交互性能,提高了控制系统操作性。
(2) 利用RT−Thread实时操作系统设计了煤矿巡检机器人控制系统下位机,通过线程调度器以时间片轮转方式调度多线程任务,实现了巡检机器人自动巡检过程中多线程任务的宏观并行,提高了控制系统实时性。
(3) 设计了环形队列数据缓冲区并进行优化,解决了巡检机器人下位机至上位机数据传输过程中数据大量丢失的问题。
(4) 基于QT和RT−Thread设计的煤矿巡检机器人控制系统与传统的PLC内部编写裸机程序的巡检机器人控制系统相比,具有更高的实时性和可靠性。
-
表 1 数据传输测试结果
Table 1 Data transmission test results
系统 数据传输周期/ms 发送字节个数 接收字节个数 本文控制系统 500 247 200 246 000 100 1 129 000 1 128 319 传统控制系统 500 246 820 240 800 100 1 128 730 1 101 200 -
[1] 刘峰,曹文君,张建明,等. 我国煤炭工业科技创新进展及“十四五”发展方向[J]. 煤炭学报,2021,46(1):1-15. LIU Feng,CAO Wenjun,ZHANG Jianming,et al. Current technological innovation and development direction of the 14th Five-Year Plan period in China coal industry[J]. Journal of China Coal Society,2021,46(1):1-15.
[2] 蒋卫良,郗存根,宋兴元,等. 煤矿带式输送机关键技术发展现状与展望[J]. 智能矿山,2020,1(1):98-104. JIANG Weiliang,XI Cungen,SONG Xingyuan,et al. Development status and prospect of key technology of coal mine belt conveyor[J]. Journal of Intelligent Mine,2020,1(1):98-104.
[3] 毛清华,毛金根,马宏伟,等. 矿用带式输送机智能监测系统研究[J]. 工矿自动化,2020,46(6):48-52,58. MAO Qinghua,MAO Jingen,MA Hongwei,et al. Research on intelligent monitoring system of mine-used belt conveyor[J]. Industry and Mine Automation,2020,46(6):48-52,58.
[4] 张涛,吴高镇. 带式输送机故障巡检机器人系统设计[J]. 工矿自动化,2018,44(10):72-76. ZHANG Tao,WU Gaozhen. Design of fault inspection robot system for belt conveyor[J]. Industry and Mine Automation,2018,44(10):72-76.
[5] 周东旭,谢明佐,宣鹏程,等. 煤矿轻型协作机械臂逆运动学解算与验证[J]. 煤炭学报,2019,44(增刊2):791-799. ZHOU Dongxu,XIE Mingzuo,XUAN Pengcheng,et al. Inverse kinematics solution and verification of light-duty collaborative manipulator in coal mine[J]. Journal of China Coal Society,2019,44(S2):791-799.
[6] 张树生,马静雅,岑强,等. 煤矿综采工作面巡检机器人系统研究[J]. 煤炭科学技术,2019,47(10):136-140. ZHANG Shusheng,MA Jingya,CEN Qiang,et al. Research on inspection robot system for fully-mechanized mining face in coal mine[J]. Coal Science and Technology,2019,47(10):136-140.
[7] 赵建伟,马啸飞,刘成祥,等. 煤矿巡检机器人设计及模糊控制研究[J]. 电子制作,2021(13):33-37,100. DOI: 10.3969/j.issn.1006-5059.2021.13.010 ZHAO Jianwei,MA Xiaofei,LIU Chengxiang,et al. Research on design and fuzzy control of coal mine inspection robot[J]. Practical Electronics,2021(13):33-37,100. DOI: 10.3969/j.issn.1006-5059.2021.13.010
[8] 裴文良,张树生,岑强,等. 轨道式巡检机器人系统设计与应用[J]. 煤矿机械,2016,37(6):142-144. PEI Wenliang,ZHANG Shusheng,CEN Qiang,et al. Design and application of tracked inspection robot system[J]. Coal Mine Machinery,2016,37(6):142-144.
[9] 潘亚文,李宏华,蒋紫韵,等. 嵌入式裸机程序的启动及运行[J]. 物联网技术,2021,11(2):66-68,71. PAN Yawen,LI Honghua,JIANG Ziyun,et al. Embedded bare-metal program start and run[J]. Internet of Things Technologies,2021,11(2):66-68,71.
[10] 邱栋. 基于DSP的矿用巡检机器人控制系统设计[J]. 煤矿机械,2020,41(11):12-15. QIU Dong. Design of mine inspection robot control system based on DSP[J]. Coal Mine Machinery,2020,41(11):12-15.
[11] 张美玉,张倩颖,孟子琪,等. 实时嵌入式双操作系统架构研究综述[J]. 电子学报,2018,46(11):2787-2796. DOI: 10.3969/j.issn.0372-2112.2018.11.029 ZHANG Meiyu,ZHANG Qianying,MENG Ziqi,et al. A survey of research on real-time dual-OS architecture for embedded platform[J]. Acta Electronica Sinica,2018,46(11):2787-2796. DOI: 10.3969/j.issn.0372-2112.2018.11.029
[12] 高金艳,李冬辉. VxWorks平台下的火控系统设计与仿真[J]. 哈尔滨工业大学学报,2015,47(9):42-45. DOI: 10.11918/j.issn.0367-6234.2015.09.008 GAO Jinyan,LI Donghui. Fire control system design and simulation based on VxWoks[J]. Journal of Harbin Institute of Technology,2015,47(9):42-45. DOI: 10.11918/j.issn.0367-6234.2015.09.008
[13] 马后权,施华君. 实时操作系统RT−Thread Smart在STM32MP1上的移植[J]. 单片机与嵌入式系统应用,2021,21(8):14-18. MA Houquan,SHI Huajun. Porting RTOS RT-Thread Smart to STM32MP1[J]. Microcontrollers & Embedded Systems,2021,21(8):14-18.
[14] 张帝,权悦,国海,等. 基于LoRa与RT−Thread的多功能矿灯设计[J]. 工矿自动化,2021,47(6):96-102. ZHANG Di,QUAN Yue,GUO Hai,et al. Design of multifunctional miner lamp based on LoRa and RT-Thread[J]. Industry and Mine Automation,2021,47(6):96-102.
[15] 赵海明. 矿井运输系统巡检机器人应用研究[J]. 自动化应用,2021(2):138-140. ZHAO Haiming. Application research on inspection robots for mine transportation system[J]. Automation Application,2021(2):138-140.
-
期刊类型引用(9)
1. 朱洪波,花荣. 煤矿巡检机器人路径规划方法. 工矿自动化. 2024(07): 107-114 . 本站查看
2. 张婧,周浩,屈世甲,赵乾坤. 工作面煤壁甲烷涌出在受限空间的扩散规律研究. 煤炭技术. 2024(10): 135-141 . 百度学术
3. 张婧,张桓瑞,赵乾坤,屈世甲. 综采工作面区域甲烷分布特征及关键监测位置研究. 中国矿业. 2024(10): 209-216 . 百度学术
4. 杨林,赵春雷. 煤矿智能化巡检机器人系统设计与现场应用. 山西焦煤科技. 2024(12): 42-46 . 百度学术
5. 徐越锋,宋爱国. 数据中心智能巡检机器人控制系统研究. 价值工程. 2023(06): 98-100 . 百度学术
6. 张海峰. 煤矿巡检机器人系统设计. 煤矿机械. 2023(08): 9-11 . 百度学术
7. 张耀明,李标. 煤矿主运输系统智能控制技术研究与应用. 煤炭工程. 2023(07): 22-27 . 百度学术
8. 佘九华,屈世甲. 煤矿典型安全巡检场景特征及巡检可靠性分析. 煤矿安全. 2023(09): 212-217 . 百度学术
9. 贺晓峰,廖志伟,肖华明,王再军. 智能巡检机器人传感与控制系统研究与设计. 中国煤炭. 2022(S1): 1-5 . 百度学术
其他类型引用(3)