基于Qt的移动机器人上位机软件设计及可行性研究
  摘要:为了实现移动机器人运行过程状态数据的可视化,以面向对象的C++编程语言,设计了一款基于跨平台的Qt图形库框架的上位机监测软件;该软件对接收到的状态数据进行解码、分离并绘制移动机器人实时运行轨迹和状态信息波形曲线等功能;首先概述了自行设计搭建的移动机器人硬件平台的结构和原理以及软件的实现流程;然后简要介绍了上位机软件的开发环境,并阐述了软件的各项功能以及其设计与实现过程;最后以移动机器人路径跟踪运动控制作为实验对象,验证了所设计上位机软件的有效性。
  关键词:Qt;上位机;移动机器人;路径跟踪;数据可视化
 
 
  移动机器人是一类能够借助一些运动部件,如轮子、履带或机械足等装置,在较大范围和空间内自由移动的机器人。由于自身结构灵巧,环境适应能力强等特点,移动机器人的应用已经渗透到了社会生活的各个领域。如军事领域排雷排爆、敌军情报侦察、有害危险物品处理以及
复杂作战条件下的军械物资搬运的机器人;工业领域作为运输工具的AGV,通常可以运送数十吨到几千克不等的钢材、生产模块和电子元器件等物料,尤其是在物流快件的分拣运送方面,AGV正得到广泛的投入使用,极大提高了物流行业的运输效率;在民用领域,如家庭机器人中的扫地机器人,餐厅里专门负责点餐以及膳食的配送工作的移动机器人,还有一些高级公寓使用移动机器人来执行安保以及自动调度泊车等任务。此外,高智能的移动机器人,无人驾驶汽车,近几年来作为一个热门项目也正得到越来越多的高科技公司和一些汽车生产厂商的青睐。移动机器人之所以能够得到如此迅速的发展应用,离不开计算机技术以及控制技术的发展。尤其是移动机器人运动控制技术的发展在其中起到了关键的作用,有效的运动控制技术为移动机器人能够进一步实现更为复杂的任务打下了坚实的基础。
  为了实现移动机器人良好的运动控制效果,需要对相应控制算法的有效性做出评估。在实验过程中,通过肉眼观察移动机器人的运行效果往往不够精确,很难从客观上分析该算法的实际性能表现。另一方面,由于环境限制使得研究人员不能直接感知移动机器人的运动控制情况。因此,如何实现有效的数据可视化则成为一种必要的需求。本文提出了基于跨平台的Qt图形库框架,以面向对象的C++编程语言,设计一款人机交互软件来实现移动机器人运行状态数据的可视化。
  1.移动机器人结构及原理
  本文所提上位机软件的实验对象是一辆自主设计的以视觉导航为主的智能小车,其底板结构由两个驱动轮以及一个万向轮组成,实物对象如图1所示。该结构的设计既简洁有效又稳定可靠,保证了智能车平稳运行的前提。
 
  图1  智能车系统硬件实物图
  外围硬件电路模块的主要功能及其工作原理如下:
  1)采用拨码开关作为用户输入媒介。
  由于拨动开关所引起的电路通断会产生高低电平的转换,处理器通过检测其I/O口电平状态而得知用户意图,以次实现了智能车相关初始化参数的设置,避免了程序的多次编译及烧录。
  2)采用霍尔传感器设计智能车的里程计。
  霍尔传感器是一种基于霍尔效应而制作的磁传感器,由于其反应灵敏等特点,能够及时响应电机快速运转情况下的检测任务。其工作过程主要由Houta及Houtb引脚输出两路测速方波,再通过处理器的定时器输入捕获引脚在单位时间内所捕获的方波数,以确定智能车的实际运行速度。进一步,在一定时间段内,利用处理器所检测到的方波数以及其与驱动轮运行转数的关系,便可设计出智能车的虚拟里程计模块。
  3)采用OV7620数字摄像头作为视觉检测模块。
  OV7620是一款P制标准的COMS摄像头,每秒可输出30帧图像数据。处理器通过检测其引脚VSYN及HREF的电平变化而获取图像数据的采集情况,从而及时存储该摄像头所采集到的图像数据。
  4)采用MPU9250作为智能车的姿态解算模块。
  MPU9250是一种集成了三轴加速度计和三轴陀螺仪的IMU惯性传感器,处理器通过对各项惯性数据的解算,便可得到智能车的航向角信息。
  5)采用STM32F407单片机为系统主控单元。
  STM32F407是一款基ARMCORTEXTM-M4处理器内核的高性能控制器,常用于工业控制领域。其拥有最高工作频率为168MHZ,以及高达1M的可编程存储容量,有效满足了智能车系统实时处理大量传感器数据以及进行高负荷运算的需求。
  6)采用HC-5蓝牙模块与上位机通信。
  蓝牙模块的特点是简单易用,只需将其与处理器的UART串口连接,通过对处理器的UART接口编程即可实现对蓝牙收发数据的控制。本文所设计的上位机软件与智能车间的数据通信,便是以配对的两个蓝牙模块为媒介进行的。此外,通过对处理器SPI接口外接无线通信模块NRF24L01,实现了多机通信基础,提高了系统的可扩展性。通过IIC接口外接显示器模块,可实时显示相关实验数据,便于开发调试。所设计的智能车系统硬件架构如图2所示。
 
  图2  智能车系统硬件架构图
  2.移动机器人软件实现
  路径跟踪是移动机器人运动控制研究的3个基础领域之一。本文以移动机器人路径跟踪这一典型运动控制技术作为上位机软件的测试用例,其中路径跟踪算法控制器采用预测控制方法设计。智能车路径跟踪软件系统实现的简化流程如图3所示。
 
  图3  智能车系统软件流程图
  启动过程,将智能车放置在参考轨迹附近处,主控系统完成对附属控制单元以及各外部传感器模块的初始化工作。视觉传感器开始以每秒30帧的采集速率实时检测运行路径,并将采集到的图像信息通过DMA通道运送至控制器内存,软件系统的运行周期便是以一帧图像的存储完成时间为基准。这样,系统周期性的运行过程总是以一帧图像数据的保存完毕为始。一方面,处理器通过对图像信息进行二值化处理,从而得到智能车与参考轨迹偏差距离的像素级表示,并根据测试整理的像素偏差与实际物理位移偏差的对应关系便可得到智能车偏离参考轨迹的实际距离。另一方面,在每个系统周期内,处理器在中断处理程序中采样一帧IMU惯性模块的测量数据,并解算出航向角信息。同时,由测速编码器所设计的动态里程计可实时反馈智能车的运行里程。通过结合智能车的位置偏差、航向角以及运行里程等信息,可以
确定智能车在参考轨迹下的唯一位置和姿态。
  3.移动机器人上位机设计
  3.1上位机设计与实现
  QEIDGET的是Qt图形用户界面的基础控件,在不指定父类控件的条件下,QEIDGET可作为一个独立的窗口或一个顶层窗口显示。本文所设计上位机软件的各主界面便是以QEIDGET作为独立的容器窗口,并将具体的功能部件放入该容器内得以实现。同时,使用了QtABEIDGET标签来切换各主界面,以实现不同子任务的切换,软件的运行初始界面如图4所示。
 
汽车168
  图4  上位机软件运行界面
  3.2基于参考轨迹绘制移动机器人实际运行轨迹。
  QCUSTOMPL0T是基于Qt的一个功能强大的数据可视化图表控件类库,其主要由一个.c
PP源文件以及一个与其对应的.h头文件组成。所述的上位机软件采用了QCUSTOMPL0T的基本坐标控件类QCUS-TOMPLOT作为智能车路径跟踪的参考坐标系,并以此坐标系使用图形曲线绘制控件QCPCURVE绘制参考轨迹。同时使用标签选框控件QRADIOBAUTTON实现了不同参考轨迹的切换。以圆形参考轨迹和“8”字形参考轨迹为例,其效果分别如图5和图6所示。
 
  图5  圆形参考轨迹                图6  “8”字形形参考轨迹
  其中,不同参考轨迹切换的设计方法使用了Qt信号与槽的机制,信号端添加在选框控件QRADIOBAUTTON的触发按钮,槽函数则实现了参考轨迹的绘制功能。
  结论
  该软件主要实现了以无线传输的方式接收移动机器人发送的状态数据并对其解码、分离移动机器人各状态数据信息并绘制其实时运行轨迹以及状态波形曲线等功能。该上位机软件亦可作为主控单元,并以无线传输的方式向下位机发送控制指令。此外,该上位机软件所述功
能仅以智能车路径跟踪实验为例验证了其有效性,对于涉及移动机器人的其他运动控制研究同样有一定的适用性。
  参考文献:
  [1]陈端平.轮式移动机器人监控系统研究与开发[D].广州:华南理工大学,2016.
  [2]吴免利.锂离子动力电池检测系统上位机软件开发及电池成组算法研究[D].长沙:中南大学,2009
  [3]文生平,陈端平,刘其信.基于Qt的激光导引移动机器人监控系统设计[J].自动化与仪表,2016,31(8):6-9.