一种基于控制界面的机器人通信控制方法与流程

未命名 07-15 阅读:177 评论:0


1.本发明涉及机器人通信控制领域,特别涉及一种基于控制界面的机器人通信控制方法。


背景技术:

2.通信控制是机器人实现运动控制、导航避障等一些列复杂功能的基础,如今市面上对机器人的通信控制技术发展迅速,各种控制功能层出不穷,然而现有的机器人通信控制技术存在通信控制不稳定、不快速、不安全,控制功能千篇一律无法满足需要,控制功能平台单一冷门不集成,控制操控功能性差不能变动等问题。例如,目前机器人操作系统ros(robot operating system)所提供的结点管理为机器人提供了方便的开发者管理系统。但是对于用户来说,基于linux的命令行界面难以控制,且需较高的学习成本。
3.另一方面,qt是一个跨平台的c++图形用户界面库,包括qt、基于framebuffer的qtopia core、快速开发工具qt designer和国际化工具qt linguist等部分。qt支持所有的unix系统,当然也包括linux系统,还支持winnt/win2k、windows 95/98等平台。qt是一个功能强大的跨平台ide,兼容性强,在qt上开发图形交互界面(gui)无疑是很好的选择。更为重要的,qt creator可用于开发ros程序,qt图形用户界面库则可用于开发控制机器人的gui界面。


技术实现要素:

4.本发明目的在于提供一种基于控制界面的机器人通信控制方法,利用图形界面实现机器人通信控制,为用户带来便利。
5.本发明通过以下技术手段解决上述技术问题:
6.一种基于控制界面的机器人通信控制方法,包括,通过ros和qt开发具有图形控制界面的机器人通信控制系统,该系统实现的功能包括:
7.基于图形控制界面对机器人系统的功能进行设置、选择和/或通过编程代码修改机器人功能;
8.以及通过订阅ros话题的方式,获取机器人相关信息、所拍摄的图像以及检测机器人通信状态;
9.基于该系统对机器人实施通信控制的步骤包括:
10.s1、机器人系统初始化;
11.s2、通过图形界面对机器人系统的功能进行设置、选择或通过编程代码修改机器人功能;
12.s3、通过ros订阅机器人话题,获取机器人的相关信息、所拍摄的图像和/或机器人的通信状态,并在图形界面中显示;
13.s4、通过图形界面向机器人发出控制命令,机器人接收到控制命令后,通过内部算法对接收的命令进行处理;
14.s5、机器人系统依照处理后的命令指挥机器人实施相应操作。
15.进一步,步骤s2中,基于图形界面对机器人系统的功能进行设置、选择和/或通过编程代码修改机器人功能步骤如下:
16.s201、对需要的机器人控制命令进行选择,通过选择和调试放置在控制系统界面上;
17.s202、若需要改动机器人控制命令则通过控制界面选择代码修改,而后对机器人控制命令进行修改;
18.进一步,步骤s3中,检测机器人通信状态的具体步骤如下:
19.s301、机器人通信控制系统检测与机器人系统的通信信号连接状态;
20.s302、机器人通信控制系统通过ros订阅相应话题,并通过界面显示;
21.s303、机器人通信控制系统获取机器人初始图像和环境信息,验证机器人功能状态。
22.进一步,步骤s4中,控制指令传输和信息处理的具体步骤如下:
23.s401、根据界面选择对应功能,并指定机器人系统;
24.s402、相关话题订阅发布控制指令消息,由机器人控制系统接收确认;
25.s403、利用机器人内部的算法对接收的指令进行处理,将接收的指令转化为对应的机器人操作指令。
26.进一步,步骤s5中,机器人运动控制的具体步骤如下:
27.s501、执行转化过的指令,并将实时检测状态消息通过另一个话题订阅发布消息;
28.s502、机器人通信控制系统接收机器人系统发布的消息,并实时检测反馈;
29.s503、对指令的完成情况进行评估反馈,并报告出现的问题。
30.进一步的,还包括,在机器人通信控制系统与机器人系统间设置心跳机制,通过机器人系统定时向机器人通信控制系统发送信号,不断发送信号确认连接是否正常;
31.接收到信号后,机器人通信控制系统向机器人系统发送应答;
32.当双向都能接收到信号时,显示信号连接正常。
33.进一步的,还包括,在机器人通信控制系统中使用多线程与回调函数,当一个线程发生通讯失败,不对其他线程产生影响;对于通讯失败的线程,设置最大重发次数,并在最大重发次数内重复唤醒线程,如果通信失败,触发异常处理机制。
34.进一步的,所述异常处理机制包括,当一个线程通信失败之后,机器人通信控制系统对这个线程的重要程度进行判定,判定结果为严重、警告或一般三种情况中一种;
35.当判定完成之后,触发另一套无线通信系统,将判定结果信息发送给机器人系统;
36.机器人系统根据消息调用相应的异常处理机制,包括:机器人启用备份系统,在备份系统下,机器人根据异常等级的不同执行不同的操作;
37.等级为一般时,机器人保持其他程序继续执行不变;
38.等级为警告时,机器人保持固定动作或停止操作重启,等级为严重警告是,机器人紧急断电。
39.进一步的,异常状态下,备份系统还执行下列操作:将所有相关数据保存到安全的位置,以防数据丢失;备份ros配置文件;编写日志文件记录ros和qt断开连接的原因以及现场的实际状况。
40.本发明的有益效果在于:
41.1、本发明的通信控制指令能通过界面系统进行相应修改,用来获得用户想设计的相应的控制效果,有效实现对机器人控制的自主设计;
42.2、本发明的通信控制利用实时检测并对检测结果进行评估和提出改进建议,有效实现了通信控制过程中稳定性,快速性,安全性;
43.3、本发明的通信控制集成于控制系统界面,通过集成能实现多种功能,并能移植于多个平台,有效实现了机器人系统的适用性。
44.该具有图形界面的机器人通信控制系统不仅能集成机器人的各种功能,实现导航避障,视觉识别,集群控制等操作,此外,通过ros和qt开发的机器人通信控制系统可以适用于多个平台,同时可编程性强,可以满足用户的个性化和不同平台的需求,可以有更多的控制功能。通过界面和网络控制机器人,能保证通信控制过程中的稳定性,快速性,安全性。
附图说明
45.图1是本发明实施例中基于控制界面的机器人通信控制系统控制机器人运动的过程示意图;
46.图2是本发明实施例中多机器人系统目标识别处理的过程示意图;
47.图3是本发明实施例中的rviz仿真环境示意图;
48.图4是本发明实施例中建图导航的rviz仿真环境示意图;
49.图5是本发明实施例中的基于qt的ros机器人图形化操作界面图;
50.图6是本发明一些实施例中的多线程通信的过程示意图;
51.图7是本发明实施例中的串行通信与并行通信的示意图;
52.图8是本发明实施例中的异常处理机制的触发过程示意图。
具体实施方式
53.下面结合附图和实施例对本发明作进一步描述。
54.如图1所示,一种基于控制界面的机器人通信控制系统控制运动的过程图,包括机器人系统初始化,系统界面初始化,车体环境监测,历史操作检测,平台信息读取,相关密钥输入,开启相关界面系统;初始化后对机器人的控制命令进行设置或选择,可以通过代码对机器人的控制指令进行修改,可通过界面选择自己设置且需要的功能,可以对界面进行调试,从而获得自己需要的控制界面;将控制命令调试选择好后,通过ros话题(topic)订阅的方式订阅到机器人的操作系统,获取机器人周围的环境信息和图像状态,帮助了解机器人状态,同时通过系统不断检测通信状态,检测信号的连接状态;通信连接好后对通信控制指令传输和信息处理,这一步在机器人系统中进行处理,通过slam算法和yolov5算法对机器人的接收信息进行处理,建立空间坐标系,将检测的状态实时反馈,通过图像和信息接收;处理好信息后,实现机器人运动控制,机器人可以通过内置的代码实现自动导航避障,自动建图,摄像头图像显示等等,也可以根据用户设计和选择的代码实现更多的功能,例如集群控制或复杂机械臂的使用。
55.如图2所示,本实施例中,机器人系统的目标检测识别基于yolov5检测算法,使用一个卷积神经网络(cnn)来实现end-to-end的目标检测,直接预测不同目标的类别和位置。
cnn是一种前馈神经网络,由多个卷积层和顶端的全连通层组成,对于大型图像处理有独特的优势。整个识别系统首先将输入图片或摄像头检测到的图片调整到检测所需要的图像大小,然后送入cnn并运行网络来提取特征,最后使用非极大值抑制(nms)算法来处理网络预测的结果得到最终的检测目标。具体来说,yolov5的cnn将输入的图片分割成s
×
s网格(一个自定义网格数为s
×
s的网格系统),然后每个单元格负责去检测和预测那些中心点落在该格子内的目标。每个单元格会预测b个边界框(b为自定义的划定边界框数)以及边界框的置信度。对于每一个单元格其还会出预测出c个类别概率值(c为所需预测的类别总数),其表征的是由该单元格负责预测的边界框其目标属于各个类别的概率;对于网络设计和网络训练,都采用卷积网络来提取特征,然后使用全连通层来得到预测值;对于其网络预测,采用非极大值抑制算法,其思想是搜素局部最大值,抑制极大值。目标检测的过程中在同一目标的位置上会产生大量的候选框,这些候选框相互之间可能会有重叠,本系统利用非极大值抑制算法有效地剔除目标检测结果中多余的检测框,最终保留最合适的目标边界框;最后对网络预测得到的图像进行进一步处理,输出最终的检测图像。
56.如图3所示,本实施例中使用的rviz仿真环境图,rviz是ros中一款三维可视化平台,可以帮助用户更好地理解机器人的运动,以及机器人路径规划、避障等功能,能够实现对外部信息的图形化显示。另外还可以通过它给对象发布控制信息,从而实现对机器人的监测与控制,可以帮助用户更好地理解机器人的运动,以及机器人路径规划、避障等功能。rviz仿真环境可以模拟机器人的运动,以及机器人与环境的交互,可以帮助用户更好地了解机器人的运动和行为,从而更好地规划机器人的路径。rviz仿真环境还可以提供机器人传感器数据的可视化,以及机器人控制系统的可视化,从而更好地控制机器人的行为。我们利用rviz提供虚拟机器人环境的实时可视化,使用rviz来查看机器人的运动、传感器数据和控制信号,以及检查和调试机器人程序。rviz的用户界面包括一个3d视图,可以显示机器人的当前位置、运动状态和传感器数据,以及可以控制机器人的控制台。
57.图4为本实施例中基于teb_local_planner和dwa_local_planner两种局部规划器的slam定位和建图导航rviz仿真图;使用rviz界面上的2d nav goal工具可以在地图上设置目标点(相当于在向话题发布目标点数据),之后从程数和传感器流中获取信息,并输出速度命令,发送到机器人底盘(下位机)。然而,在任意机器人上使用导航栈要复杂一些。作为使用导航栈的先决条件,机器人必须运行ros,有一个tf转换树,并使用正确的rosmessage类型发布传感器数据。此外,导航栈需要为机器人的形状和动力学进行配置,发布完目标点后可以看到move_base规划出来的全局路径(红色细线)和局部路径(黄色粗线)。全局规划器根据地图、传感器信息以及目标点位置为机器人规划出来一条全局路径,即从当前坐标到目标点坐标的路径坐标点数组。局部规划器,该规划器从全局代价地图中截取机器人当前位置附近的一段路径,根据该路径计算机器人为了跟随该路径当前所需要的速度(角速度、线速度),由于机器人附近范围内可能存在动态出现的障碍物等等,局部规划器会根据传感器的数据对截取出来的路径进行实时修正,以规避机器人附近的动态障碍物。机器人在gazebo和rviz模拟环境中进行自主导航,通过传感器(如激光雷达、视觉传感器等)收集环境信息,并通过自主导航算法(如自适应路径规划算法、深度学习算法等)自主导航,以实现自动化的导航任务。同时导航机器人可以收集大量的实时环境信息,从而可以更好地模拟真实环境,使得自动化导航任务更加可靠。rviz提供了很多插件,这些插件可以
显示图像、模型、路径等信息,完成可视化的渲染,以图形界面的方式对当前各个功能包的参数进行调整,便于实时观察某个参数调整后对导航任务的影响,依次来找到最优的参数。
58.图5中示出了本实施例中基于qt的ros机器人图形化操作界面,本实施例中的机器人是一种智能车。ros系统所提供的结点管理为机器人提供了方便的开发者管理系统。但是对于用户来说,基于linux的命令行界面难以控制,且需较高的学习成本。于是本实施例中基于qt开发一套图形化界面,旨在为用户操作提供便利,提高智能机器人商业化的可行性。如图,该系统实现了速度控制话题、导航目标点话题、导航初始点话题、电池电量话题、机器人的坐标话题的订阅与发布。
59.对于速度控制话题,能够在图形化界面显示速度相关信息,并且通过xml的方式将速度信息写入历史log中。用户能够通过gui实时检测智能机器人的速度情况。同时对于历史信息的记录,能够帮助用户对机器人的性能状态提供分析的指标,确保机器人的运行安全。
60.对于导航目标点话题、导航初始点话题的订阅,能够实现对目标节点信息、机器人现在位置与机器人导航路径的实时显示。通过安装插件,实现qt对ros话题的订阅,获取导航话题的话题数据。在得到数据之后,在qt creator上进行gui的编写,实现图形化界面。在最新的qt creator中,已支持对此插件的直接创建。用户通过此界面,能够对于机器人的任务规划有清晰明确的认识。同时使得用户避免了在slam等导航界面中,命令行控制学习成本高的问题,使得用户对于智能机器人的把控更加容易。
61.对于电池电量话题,通过嵌入式设备获得机器人的电池所剩电量,再通过短距离无线通讯的方式,使得图形化界面利用信号与时隙(signals/slots)机制取代传统的机制来进行对象之间的沟通。当操作事件发生的时候,对象会提交一个信号(signal);而时隙(slot)则是一个函数,接受特定信号并且执行时隙本身设置的动作。信号与时隙之间,则透过qobject的静态方法connect来链接。
62.对于机器人坐标话题的订阅,能实现对于机器人三维坐标的图形化显示。方法上类似于上述导航信息的订阅,在得到相关信息之后,再对图层进行处理,设计用户交互逻辑,主要基于qt的图形用户界面基于qwidget进行设计。qt中所有类型的gui组件如按钮、标签、工具栏等都派生自qwidget,而qwidget本身则为qobject的子类。widget负责接收鼠标,键盘和来自窗口系统的其他事件,并描绘了自身显示在屏幕上。每一个gui组件都是一个widget,widget还可以作为容器,在其内包含其他widget。若是widget没有指定父widget,当它显示时就是一个独立的视窗、或是一个顶层widget。qt提供一种托管机制,当widget于创建时指定父对象,就可把自己的生命周期交给上层对象管理,当上层对象被释放时,自己也被释放。确保对象不再使用时都会被删除。
63.图5中展示了对速度控制话题、导航目标点话题、导航初始点话题、电池电量话题、机器人的坐标话题的订阅与发布。由于其丰富的可扩展性,后期可以在此基础上开发机器人的人机交互系统,qt是一个功能强大的跨平台ide,兼容性很优秀。在qt上开发gui无疑是很好的选择。
64.然而,qt和ros的实时交互性一般。在对多机器人信息的接收和操作发送的过程中,可能会出现中断的现象。此时多机器人会继续执行上一次的指令,在ros设计好算法指令中实现路径规划,和自动导航避障,而qt可能无法接收到实时信息,并且多机器人无法执
行qt的指令。在实现qt和ros的实时通信中,其通信连接的稳定性时常会受到干扰,甚至会出现断开连接的情况。针对影响qt和ros连接的问题以及其断开连接之后情况,本实施例中设计了一系列的保护机制,用来保护qt和ros的连接。
65.在qt和ros稳定连接的阶段,为了保持和测试其连接的正常,采用如下机制:
66.1.设置心跳机制,通过机器人端定时向qt端发送信号,不断发送信号确认连接是否正常。接收到信号后,qt端向机器人端发送应答。当双向都能接收到信号时,显示信号连接正常。此时,机器人执行正常操作。
67.2.如果稳定性受到干扰,如图6所示,在qt程序方面,使用多线程与回调函数,保证通信的稳定性。具体来说,当一个线程发生通讯失败,不会对其他线程产生影响,导致下一步通讯继续失败。
68.对于通讯失败的线程,设置最大重发次数,在最大重发次数内重复唤醒线程。如果通信失败,触发异常处理机制。
69.ros方面,优化ros节点和消息。对于ros节点和消息,可以通过解压缩的方式,进行优化以减少通信数据量和频率。例如,可以使用压缩算法来降低数据量和频率。也可以利用如图7所示的缓存机制,对并行传输的数据串行处理,减少单次需要传输的信息量。
70.在减少数据传输同时,可以对结点进行复制,两个结点各自独立的接受消息,如果各自接受到的消息一致,则无需进行判定。如果接受到的消息不一致,则可以根据前序操作的稳定性,对不一样的消息进行仲裁,取出值得信赖的消息。
71.如图8所示,若qt在最大重发次数之后,任然未收到有效的来自ros的应答,则触发异常处理机制。
72.在qt和ros异常处理的阶段,为了保持机器人的重连和安全性问题,采用以下系列保护机制:
73.1.异常处理机制
74.(1)异常处理机制触发另一套无线通信系统;
75.当通过mesh网络通信失败之后,无法判断继续通过此方式是否能正确发送异常信息。所以建立另一套便宜、稳定但低效的替代方案作为通信的应急应答方式。具体可选择nrf24l01通讯模块进行异常通信。
76.(2)异常处理机制分级处理。
77.具体来说,在ros系统中,建立优先级别最高的一套异常处理机制。这套机制细分为3种不同程度的应急方案,包括:严重警告触发断电程序;警告触发重启程序;一般则对当前节点信息进行拷贝,等待工作人员异常处理,其他程序继续执行。
78.根据上述多线程的思想,当一个线程通信失败之后,qt端首先对这个线程的重要程度进行判定,判定结果为严重、警告或一般三种情况中一种,当判定完成之后,触发另一套无线通信系统,将判定结果信息发送给ros系统。ros系统根据消息调用相应的异常处理机制。
79.2.一旦进入异常状态下,首先要保证机器人的安全性。机器人将启用备份系统,在备份系统下,机器人根据异常等级的不同执行不同的操作,等级为一般是,机器人保持其他程序继续执行不变;等级为警告时,机器人保持固定动作或停止操作重启,等级为严重警告是,机器人紧急断电;
80.异常状态下,备份系统还执行下列操作:将所有相关数据保存到安全的位置,以防数据丢失;备份ros配置文件,ros配置文件中保存了工作空间和节点的所有信息,在ros和qt断开连接后,需要备份ros配置文件,以便在以后重新连接时能够轻松地恢复工作区和节点信息;编写日志文件,及时编写日志文件,记录ros和qt断开连接的原因以及现场的实际状况,以便在未来能够对日志文件进行分析和检查。
81.以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。本发明未详细描述的技术、形状、构造部分均为公知技术。

技术特征:
1.一种基于控制界面的机器人通信控制方法,其特征在于,包括,通过ros和qt开发具有图形控制界面的机器人通信控制系统,该系统实现的功能包括:基于图形控制界面对机器人系统的功能进行设置、选择和/或通过编程代码修改机器人功能;以及通过订阅ros话题的方式,获取机器人相关信息、所拍摄的图像以及检测机器人通信状态;基于该系统对机器人实施通信控制的步骤包括:s1、机器人系统初始化;s2、通过图形界面对机器人系统的功能进行设置、选择或通过编程代码修改机器人功能;s3、通过ros订阅机器人话题,获取机器人的相关信息、所拍摄的图像和/或机器人的通信状态,并在图形界面中显示;s4、通过图形界面向机器人发出控制命令,机器人接收到控制命令后,通过内部算法对接收的命令进行处理;s5、机器人系统依照处理后的命令指挥机器人实施相应操作。2.根据权利要求1所述的方法,其特征在于,步骤s2中,基于图形界面对机器人系统的功能进行设置、选择和/或通过编程代码修改机器人功能步骤如下:s201、对需要的机器人控制命令进行选择,通过选择和调试放置在控制系统界面上;s202、若需要改动机器人控制命令则通过控制界面选择代码修改,而后对机器人控制命令进行修改;3.根据权利要求1所述的方法,其特征在于,步骤s3中,检测机器人通信状态的具体步骤如下:s301、机器人通信控制系统检测与机器人系统的通信信号连接状态;s302、机器人通信控制系统通过ros订阅相应话题,并通过界面显示;s303、机器人通信控制系统获取机器人初始图像和环境信息,验证机器人功能状态。4.根据权利要求1所述的方法,其特征在于,步骤s4中,控制指令传输和信息处理的具体步骤如下:s401、根据界面选择对应功能,并指定机器人系统;s402、相关话题订阅发布控制指令消息,由机器人控制系统接收确认;s403、利用机器人内部的算法对接收的指令进行处理,将接收的指令转化为对应的机器人操作指令。5.根据权利要求1所述的方法,其特征在于,步骤s5中,机器人运动控制的具体步骤如下:s501、执行转化过的指令,并将实时检测状态消息通过另一个话题订阅发布消息;s502、机器人通信控制系统接收机器人系统发布的消息,并实时检测反馈;s503、对指令的完成情况进行评估反馈,并报告出现的问题。6.根据权利要求1所述的方法,其特征在于,还包括,在机器人通信控制系统与机器人系统间设置心跳机制,通过机器人系统定时向机器人通信控制系统发送信号,不断发送信号确认连接是否正常;
接收到信号后,机器人通信控制系统向机器人系统发送应答;当双向都能接收到信号时,显示信号连接正常。7.根据权利要求6所述的方法,其特征在于,还包括,在机器人通信控制系统中使用多线程与回调函数,当一个线程发生通讯失败,不对其他线程产生影响;对于通讯失败的线程,设置最大重发次数,并在最大重发次数内重复唤醒线程,如果通信失败,触发异常处理机制。8.根据权利要求7所述的方法,其特征在于,所述异常处理机制包括,当一个线程通信失败之后,机器人通信控制系统对这个线程的重要程度进行判定,判定结果为严重、警告或一般三种情况中一种;当判定完成之后,触发另一套无线通信系统,将判定结果信息发送给机器人系统;机器人系统根据消息调用相应的异常处理机制,包括:机器人启用备份系统,在备份系统下,机器人根据异常等级的不同执行不同的操作;等级为一般时,机器人保持其他程序继续执行不变;等级为警告时,机器人保持固定动作或停止操作重启,等级为严重警告是,机器人紧急断电。进一步的,异常状态下,备份系统还执行下列操作:将所有相关数据保存到安全的位置,以防数据丢失;备份ros配置文件;编写日志文件记录ros和qt断开连接的原因以及现场的实际状况。

技术总结
本发明涉及机器人通信控制领域,特别涉及一种基于控制界面的机器人通信控制方法。包括,通过ROS和Qt开发具有图形控制界面的机器人通信控制系统,该系统实现的功能包括:基于图形控制界面对机器人系统的功能进行设置、选择和/或通过编程代码修改机器人功能;以及通过订阅ROS话题的方式,获取机器人相关信息、所拍摄的图像以及检测机器人通信状态;基于该系统对机器人实施通信控制本发明利用图形界面实现机器人通信控制,为用户带来便利。为用户带来便利。为用户带来便利。


技术研发人员:孙少欣 赵越 彭卓彬 郭宇 左敬鹏 李亚勇 王松 秦宗琛 华星星
受保护的技术使用者:中建隧道建设有限公司 重庆凯瑞机器人技术有限公司
技术研发日:2023.05.04
技术公布日:2023/7/12
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐