一种基于ROS2和Qt的人机交互系统技术方案

技术编号:37114812 阅读:17 留言:0更新日期:2023-04-01 05:11
一种基于ROS2和Qt的人机交互系统,包括基于Qt和ROS2操作系统的人机交互单元,其包括:机器人状态监测单元,用于负责监测通信链路的延时、机器人电池电压和设备温度情况;机器人运动状态显示单元,用于显示机器人的运动状态和周围环境的探测信息;机器人位置显示单元,用于显示机器人的位置;实时图像显示单元,用于显示实时的图像;控制指令操作单元,用于对通信节点的控制;将ROS2节点以类的形式继承到Qt中的QThread类中,利用QThread类中的线程管理函数对节点通信进行管理,建立ROS2和Qt的联系;通过Qt程序管理节点间的通信,将通信数据以程序消息的方式传输给消息处理函数。本发明专利技术具有操作简单、通信顺畅、适用范围广等优点。适用范围广等优点。适用范围广等优点。

【技术实现步骤摘要】
一种基于ROS2和Qt的人机交互系统


[0001]本专利技术主要涉及到人机交互
,特指一种基于ROS2和Qt的人机交互系统。

技术介绍

[0002]目前,机器人领域通常使用机器人操作系统ROS进行机器人设计,一般采用话题和服务等四种通信方式,其原理是实现模块间点对点的松耦合连接;这是一种分布式构架,拥有许多工具和库,因此用户和开发者可以直接在操作系统上进行开发和使用,忽略底层的通信协议和工作原理。然而ROS通信技术也存在许多不足,比如依赖ROS Master,那么实时性和可靠性存在问题。
[0003]ROS2采用DDS通信来解决这些问题,DDS(Data Distribute Service)是指数据分发服务,是一种以数据为中心的分布式实时通信技术,其提供的QoS(quality of Service)用来保障数据实时、高效、灵活地分发,DDS舍弃了ROS Master,即去中心化,解决了ROS通信依赖主节点的问题,提高了数据传输效率。在分布式系统中,DDS位于操作系统和应用程序之间,支持多种编程语言以及多种底层协议,不用关注通信的底层协议。
[0004]人机交互(HCI)自1980年出现至今,经历了从命令行界面到图像用户界面两个主要发展阶段的演变,随着人们越来越强调交互的自然性和便利性,新的交互形式如触摸式交互和三维交互不断涌现,并成为未来发展趋势。目前,人机交互手段主要包括触控交互、声控交互、动作交互、眼动交互、虚拟显示输入、多模式交互和智能交互等,虽然交互界面和交互方式不断升互系统级,但是不同的交互技术有各自的优势,不会因新技术的出现就完全淘汰,因此常见的人机交互方式仍然是多种交互方式的结合。
[0005]人机交互界面作为远视距遥控的重要窗口,既要确保其实用性又要确保其友好性,目前应用较广的交互系统是多通道多媒体用户界面,适合开发交互界面的工具包括Matlab、Labview和Qt等,从界面开发友好性和功能模块丰富程度上看,Qt是适合交互界面设计的首选工具,作为一个跨平台的C++应用程序开发框架,它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,其强大的界面开发能力和操作友好性是其广泛应用的优势。

技术实现思路

[0006]本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种操作简单、通信顺畅、适用范围广的基于ROS2和Qt的人机交互系统。
[0007]一种基于ROS2和Qt的人机交互系统,包括基于Qt和ROS2操作系统的人机交互单元,所述人机交互单元包括:机器人状态监测单元,用于负责监测通信链路的延时、机器人电池电压和设备温度情况;机器人运动状态显示单元,用于显示机器人的运动状态和周围环境的探测信息;机器人位置显示单元,用于显示机器人的位置;实时图像显示单元,用于显示实时的图像;控制指令操作单元,用于对通信节点的控制;将ROS2节点以类的形式继承到Qt中的QThread类中,利用QThread类中的线程管理函数对节点通信进行管理,建立ROS2
和Qt的联系;通过Qt程序管理节点间的通信,将通信数据以程序消息的方式传输给消息处理函数,实现节点的通信数据与GUI窗口的关联。
[0008]作为本专利技术系统的进一步改进:所述人机交互单元用于实现机器人的传感器信息和控制人员的控制信息之间的交互,通过界面按键控制远端机器人和/或实时接收机器人回传的信息并显示给控制人员。
[0009]作为本专利技术系统的进一步改进:所述传感器信息和控制信息包括控制指令信息、机器人运动信息、视频图像信息、机器人状态监测信息、机器人位姿信息。
[0010]作为本专利技术系统的进一步改进:所述人机交互单元中的各模块封装在通信节点Node中,通过DDS通信机制传输信号,交互信息与Qt Designer中的各种控件进行绑定,实现信息的处理与显示。
[0011]作为本专利技术系统的进一步改进:所述人机交互单元基于Qt Designer而成,交互过程由QThread进行线程管理,节点Node的通信消息经Qt系统内核转换成程序消息,以信号Signal的方式发送给槽Slot,自定义的槽函数Slot_handle()用以对信号进行处理,并与UI界面窗口或控件进行交互。
[0012]作为本专利技术系统的进一步改进:所述人机交互单元基于信号与槽机制,将ROS2节点看作特定的事件,当节点处理程序或者进行通信时看成事件触发,把通信数据或程序处理结果当作信号,通过自定义的信号槽把传输的信息映射到主窗口中,实现信息的交互。
[0013]作为本专利技术系统的进一步改进:所述机器人状态监测单元包括通信链路监测和设备电压与温度监测两部分;对于通信链路监测部分,利用信息收发时间的一半作是观测值;对于电压和温度监测部分,测量元件通过串口将数据回传给控制端,并利用寄存器存放串口读取的数据,然后从寄存器中读取数据并判断数据是否正常,对于不正常的数据采取保留帧头并裁剪帧剩余部分的方式进行处理。
[0014]作为本专利技术系统的进一步改进:在所述机器人位置显示单元中,先对选取的场景地图进行坐标测量,制作出全局地图;再将机器人的实际坐标转换到全局地图中来显示机器人的相对位置;同时利用不同的颜色来区分不同的地形或物体。
[0015]作为本专利技术系统的进一步改进:所述机器人运动状态显示单元用于显示机器人的运动状态和周围环境的探测信息,包括运动速度和角速度、速度挡位和角速度挡位、金属探测信号和数字识别信号。
[0016]作为本专利技术系统的进一步改进:所述实时图像显示单元的交互界面采用三路视频信息:前视、后视、移动,其中前视和后视摄像头为固定摄像头,其最佳视场角通过调整摄像头安装位置获得,负责观察机器人前后环境,移动摄像头安装在机械爪上方,负责动态观察周围环境。
[0017]与现有技术相比,本专利技术的优点就在于:
[0018]1、本专利技术的基于ROS2和Qt的人机交互系统,操作简单、通信顺畅、适用范围广,本专利技术针对用户交互需求和现有的通信条件,基于ROS2和Qt设计了一种适用于远视距控制机器人作业的图形化人机交互系统,采用新的DDS通信方式来实现信息传输,并利用Qt的信号与槽机制完成交互信息的转换与显示。
[0019]2、本专利技术的基于ROS2和Qt的人机交互系统,采用ROS2特殊的DDS通信方式来进行人机通信,以及采用Qt良好的跨平台性和友好型进行交互界面的设计,通过节点网络和信
号与槽的机制实现控制端和机器人端的交互。本专利技术与基于ROS1设计的交互方式相比采用更高效更可靠的DDS通信方式,而Qt丰富的界面设计模块可以实现多样化信息的处理,适用于远视距控制机器人进行作业。
附图说明
[0020]图1是本专利技术在具体应用实例中实现后的示意图。
[0021]图2是本专利技术在具体应用实例中机器人状态监测单元的示意图一。
[0022]图3是本专利技术在具体应用实例中机器人状态监测单元的示意图二。
[0023]图4是本专利技术在具体应用实例中机器人运本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于ROS2和Qt的人机交互系统,其特征在于,包括基于Qt和ROS2操作系统的人机交互单元,所述人机交互单元包括:机器人状态监测单元,用于负责监测通信链路的延时、机器人电池电压和设备温度情况;机器人运动状态显示单元,用于显示机器人的运动状态和周围环境的探测信息;机器人位置显示单元,用于显示机器人的位置;实时图像显示单元,用于显示实时的图像;控制指令操作单元,用于对通信节点的控制;将ROS2节点以类的形式继承到Qt中的QThread类中,利用QThread类中的线程管理函数对节点通信进行管理,建立ROS2和Qt的联系;通过Qt程序管理节点间的通信,将通信数据以程序消息的方式传输给消息处理函数,实现节点的通信数据与GUI窗口的关联。2.根据权利要求1所述的基于ROS2和Qt的人机交互系统,其特征在于,所述人机交互单元用于实现机器人的传感器信息和控制人员的控制信息之间的交互,通过界面按键控制远端机器人和/或实时接收机器人回传的信息并显示给控制人员。3.根据权利要求2所述的基于ROS2和Qt的人机交互系统,其特征在于,所述传感器信息和控制信息包括控制指令信息、机器人运动信息、视频图像信息、机器人状态监测信息、机器人位姿信息。4.根据权利要求1或2或3所述的基于ROS2和Qt的人机交互系统,其特征在于,所述人机交互单元中的各模块封装在通信节点Node中,通过DDS通信机制传输信号,交互信息与Qt Designer中的各种控件进行绑定,实现信息的处理与显示。5.根据权利要求4所述的基于ROS2和Qt的人机交互系统,其特征在于,所述人机交互单元基于Qt Designer而成,交互过程由QThread进行线程管理,节点Node的通信消息经Qt系统内核转换成程序消息,以信号Signal的方式发送给槽Slot,自定义的槽函数S...

【专利技术属性】
技术研发人员:苏小龙徐晓红陈昭肖军浩徐志宏徐明郭瑞斌乔冬阳饶顺财赵浩君马名一尹子煊于宏渤潘飞宇
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1