ROS机器人调试装置、方法、计算机设备以及程序产品与流程

文档序号:18894257发布日期:2019-10-15 22:39阅读:648来源:国知局
ROS机器人调试装置、方法、计算机设备以及程序产品与流程

本发明涉及机器人调试领域,尤其涉及到一种ros机器人调试装置、方法、计算机设备以及计算机程序产品。



背景技术:

ros(robotoperatingsystem)是一个面向ros机器人的开源操作系统,ros提供一系列程序库和工具,可以以帮助软件开发者创建ros机器人应用软件。除此之外,还能够提供类似传统操作系统的诸多功能,如硬件抽象、底层设备控制、常用函数的实现、进程间消息传递和程序包管理等。ros已经成为目前ros机器人研究的必备课程。但是ros存在过高的门槛,专业性较强,在使用者不熟悉linux软件开发调试、ros软件框架、ros机器人软硬件开发调试等情况下,利用ros很难有效的使用,调试过程繁杂,导致开发效率较低。



技术实现要素:

本发明实施例提供了一种ros机器人调试装置、方法、计算机设备以及计算机程序产品,用于提高开发效率。

因此,本发明第一方面提供了一种ros机器人调试装置,所述ros机器人调试装置包括源代码编辑模块和编译部署模块,所述ros机器人调试装置的展示界面中展示有所述源代码编辑模块和编译部署模块对应的可视化界面;

所述源代码编辑模块,用于根据用户的编辑操作获取源代码;

所述编译部署模块,用于接收所述用户触发的第一编译指令,并根据所述第一编译指令对所述源代码进行编译以生成程序包,并当接收到所述用户触发的程序包部署指令后,将所述程序包部署至所述ros机器人;

或所述编译部署模块,用于接收所述用户触发的源代码部署,根据所述源代码部署指令将所述源代码部署至ros机器人,并当接收到所述用户触发的第二编译指令后,对部署至所述ros机器人的所述源代码进行编译以生成所述程序包;

所述编译部署模块,还用于接收所述用户触发的程序包执行指令,根据程序包执行指令控制所述ros机器人执行所述程序包,并用于当接收到所述用户的调试指令后,根据所述调试指令对所述ros机器人进行调试。

在一种可能的实现中,所述ros机器人调试装置还包括ros机器人控制台模块,所述ros机器人调试装置的展示界面中展示有所述ros机器人控制台模块对应的可视化界面;

其中,所述ros机器人控制台模块,用于接收所述用户触发的控制指令,并根据所述控制指令控制所述ros机器人的相关操作,所述相关操作至少包括如下任意一种:展示所述ros机器人工作运行状态、为所述ros机器人创建任务并控制所述ros机器人执行任务。

在一种可能的实现中,所述ros机器人调试装置还包括算法管理模块,所述ros机器人调试装置的展示界面中展示有所述算法管理模块对应的可视化界面;

所述算法管理模块,用于接收所述用户触发的算法选择指令,并根据所述算法选择指令确定所述ros机器人对应的算法,所述算法包括至少包括如下任意一种:即时定位与地图构建slam算法、导航算法、全局路径规划算法、局部路径规划算法和定位算法。

在一种可能的实现中,所述ros机器人调试装置还包括参数配置模块,所述ros机器人调试装置的展示界面中展示有所述参数配置模块对应的可视化界面;

所述参数配置模块,用于根据所述用户触发的参数配置指令配置各种参数。

在一种可能的实现中,所述ros机器人调试装置还包括集成插件模块,所述ros机器人调试装置的展示界面中展示有所述集成插件模块对应的可视化界面,其中,所述集成插件模块集成了各种可视化插件并于所述集成插件模块对应的可视化界面进行展示。

在一种可能的实现中,所述ros机器人调试装置还包括设备管理模块,所述ros机器人调试装置的展示界面中展示有所述设备管理模块对应的可视化界面;

所述设备管理模块,用于管理多个ros机器人的相关信息,所述相关信息包括ros机器人设备信息和连接信息,所述多个ros机器人为与承载有所述ros机器人调试装置的宿主主机进行通信连接的ros机器人。

本发明第二方面提供了一种ros机器人调试方法,应用于运行有如前面第一方面所述的ros机器人调试装置的宿主主机中,所述方法包括:

所述宿主主机通过源代码编辑模块获取源代码;

所述宿主主机通过编译部署模块接收所述用户触发的第一编译指令,并根据所述第一编译指令对所述源代码进行编译以生成程序包,并当接收到所述用户触发的程序包部署指令后,将所述程序包部署至所述ros机器人;

或所述宿主主机通过所述编译部署模块接收所述用户触发的源代码部署,根据所述源代码部署指令将所述源代码部署至ros机器人,并当通过所述编译部署模块接收到所述用户触发的第二编译指令后,对部署至所述ros机器人的所述源代码进行编译以生成所述程序包;

所述宿主主机还通过所述编译部署模块接收所述用户触发的程序包执行指令,根据所述程序包执行指令控制所述ros机器人执行所述程序包,并当通过编译部署模块接收到所述用户的调试指令后,根据所述调试指令根据所述调试指令对所述ros机器人进行调试。

在一种可能的实现中,所述方法还包括:

所述宿主主机通过ros机器人控制台模块接收所述用户触发的控制指令,并根据所述控制指令控制所述ros机器人的相关操作,所述相关操作至少包括如下任意一种:展示所述ros机器人工作运行状态、为所述ros机器人创建任务并控制所述ros机器人执行任务。

在一种可能的实现中,所述方法还包括:

所述宿主主机通过算法管理模块接收所述用户触发的算法选择指令,并根据所述算法选择指令确定所述ros机器人对应的算法,所述算法包括至少包括如下任意一种:即时定位与地图构建slam算法、导航算法、全局路径规划算法、局部路径规划算法和定位算法。

本发明第三方面提供了一种计算机设备,所述计算机设备包括存储器以及至少一个处理器,所述存储器与所述处理器连接;所述存储器存储有可被所述至少一个处理器所执行的计算机程序,所述计算机程序被所述至少一个处理器执行时能够执行前述第二方面所述的方法。

本发明第四方面提供了一种计算机程序产品,所述计算机程序产品能实现执行前述第二方面方法所实现的功能。

附图说明

为了便于理解本发明所提供的技术方案,本发明还对应提供了供于参考的说明书附图,需要说明的是,基于下述附图,本领域技术人员还可以结合说明书的描述得到其他附图。

图1为本发明实施例一种ros机器人调试方法所应用的系统框架示意图;

图2为为本发明实施例一种ros机器人调试方法所应用的系统框架另一示意;

图3为本发明实施例一种ros机器人调试装置一个实施例结构示意图;

图4为本发明实施例一种ros机器人调试方法一个实施例流程示意图;

图5为本发明实施例中一种计算机设备一个实施例结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

针对ros机器人ros学习和研究门槛过高,导致开发效率过低的问题,,本发明提供一种ros机器人调试装置,该ros机器人调试装置是一种集成开发环境,该ros机器人调试装置以图形界面的方式展示算法管理,源码编辑、编译调试、并聚焦于ros机器人远端部署及可视化ros机器人运行控制,使用方便,可以提高开发效率。

如图1所述,图1为本发明实施例所应用的系统框架示意图,包括宿主主机和ros机器人,其中宿主主机与ros机器人之间建立通信连接,宿主主机上运行有本发明实施例所提供的ros机器人调试装置(在本发明实施也称rosstudio),在本发明实施例中,宿主主机通过本发明实施例所提供的ros机器人调试装置,可以对ros机器人进行开发调试。

需要说明的是,如图2所示,在宿主主机与ros机器人建立连接时,可以通过建立ssh服务的方式进行连接,具体的是在宿主主机侧设置ssh客户端(sshclient),以及在ros机器人侧设置ssh服务端(sshserver),并通过gdb调试进行调试。

下面分别对发明实施例所提供的ros机器人调试装置和对应的ros机器人调试方法进行描述:

请参阅图3,本发明实施例提供了一种ros机器人调试装置10,其特征在于,所述ros机器人调试装置10包括源代码编辑模块101和编译部署模块102,所述ros机器人调试装置的展示界面中展示有所述源代码编辑模块101和编译部署模块102对应的可视化界面;

所述源代码编辑模块101,用于根据用户的编辑操作获取源代码;可以理解,ros机器人调试装置10是运行在宿主主机上的具备展示界面的开发调试环境,在宿主主机运行上述ros机器人调试装置10时,可展示有所述源代码编辑模块101和编译部署模块102对应的可视化界面。其中,用户可以在源代码编辑模块101对应的可视化界面上进行代码的编辑工作,而源代码编辑模块101可以根据用户的编辑操作获取源代码。需要说明的是,本ros机器人调试装置支持各种各样的代码类型,示例性的,可以是c++或python等代码。

所述编译部署模块102,用于接收所述用户触发的第一编译指令,并根据所述第一编译指令对所述源代码进行编译以生成程序包,并当接收到所述用户触发的程序包部署指令后,将所述程序包部署至所述ros机器人;可以理解,在源代码编辑模块101获取到源代码后,编译部署模块102可以对源代码进行编译,其中,用户可以在编译部署模块102对应的可视化界面上进行编译操作,例如点击编译部署模块102对应的可视化界面所提供的虚拟编译按钮,从而触发第一编译指令,也即编译部署模块102可以接收到用户触发的第一编译指令,并并根据所述第一编译指令对所述源代码进行编译,以对源代码进行验证,验证源代码能否通过编译,若能通过编译,说明源代码无误,并生成程序包。同时,用户可以在编译部署模块102对应的可视化界面上进行程序包部署操作,例如点击编译部署模块102对应的可视化界面所提供的虚拟程序包部署按钮,从而触发程序包部署指令,以将程序包部署至ros机器人。

需要说明的是,如果没有了ros机器人实体,也可以在宿主主机上进行编译,并执行编译后的程序包,观察程序包运行过程。

或所述编译部署模块102,用于接收所述用户触发的源代码部署指令,根据所述源代码部署指令将所述源代码部署至ros机器人,并当接收到所述用户触发的第二编译指令后,对部署至所述ros机器人的所述源代码进行编译以生成所述程序包;可以理解,除了将编译后的程序包部署至ros机器人外,利用编译部署模块102,还可以直接将源代码直接部署至ros机器人上,具体地,用户可以在编译部署模块102对应的可视化界面上进行部署操作,例如点击编译部署模块102对应的可视化界面所提供的源代码部署按钮,从而触发源代码部署指令,以将所述源代码部署至ros机器人。同时用户可以在编译部署模块102对应的可视化界面上进行编译操作,例如点击编译部署模块102对应的可视化界面所提供的虚拟编译按钮,从而触发第二编译指令,以对部署至所述ros机器人的所述源代码进行编译以生成所述程序包。在实际开发调试中,可以从上述两种部署方式中选择其中一种进行部署。其中,选择了程序包直接部署的方式,则不需要在目标ros机器人上执行编译工作。这样方式的好处是,多台ros机器人需要执行相同的工作,不需要在每台ros机器人上再执行远程编译工作。

所述编译部署模块102,还用于接收所述用户触发的程序包执行指令,根据程序包执行指令控制所述ros机器人执行所述程序包,并用于当接收到所述用户的调试指令后,根据所述调试指令对所述ros机器人进行调试。可以理解,还可以接收用户触发的程序包执行指令,以控制ros机器人执行程序包,且可以根据用户的调试指令,对ros机器人进行调试,实现对目标ros机器人远程连接和编译控制。需要说明的是,其中,如果不需要对ros机器人进行调试,可以直接生成release版程序包。可见,通过本发明实施例子所提供的ros机器人调试装置,可以将复杂的gdb调试过程简单化,其中通过虚拟按钮和程序包、信息输出窗口统一协调起来,将一条或多条的复杂命令通过虚拟按钮功能来实现,以达到简化,优化了开发调试过程,从而减少了使用者的工作量,从而将复杂的gdb调试过程通过可视化界面的方式简单化,提高了开发效率。

在一种可能的实现中,所述ros机器人调试装置10还包括ros机器人控制台模块103,所述ros机器人调试装置的展示界面中展示有所述ros机器人控制台模块103对应的可视化界面;

其中,所述ros机器人控制台模块103,用于接收所述用户触发的控制指令,并根据所述控制指令控制所述ros机器人的相关操作,所述相关操作至少包括如下任意一种:展示所述ros机器人工作运行状态、为所述ros机器人创建任务并控制所述ros机器人执行任务。需要说明的是,通过ros机器人控制台模块以及用户触发的控制指令,可以获取ros机器人的实时工作状态,并可展示ros机器人的实时相关运行状态相关的数据,如地图、激光、声呐、位置,视频图像等数据。也可以为所述ros机器人创建任务并控制所述ros机器人执行任务,例如可以控制ros机器人移动,操作机器臂抓取物品,抓拍摄像头的照片进行深度学习和视觉salm分析等。

在一种可能的实现中,所述ros机器人调试装置10还包括算法管理模块104,所述ros机器人调试装置的展示界面中展示有所述算法管理模块104对应的可视化界面;

所述算法管理模块104,用于接收所述用户触发的算法选择指令,并根据所述算法选择指令确定所述ros机器人对应的算法,所述算法包括至少包括如下任意一种:即时定位与地图构建slam算法、导航算法、全局路径规划算法、局部路径规划算法和定位算法。

在一种可能的实现中,所述ros机器人调试装置10还包括参数配置模块105,所述ros机器人调试装置的展示界面中展示有所述参数配置模块105对应的可视化界面;

所述参数配置模块105,用于根据所述用户触发的参数配置指令配置各种参数。

在一种可能的实现中,所述ros机器人调试装置10还包括集成插件模块106,所述ros机器人调试装置的展示界面中展示有所述集成插件模块106对应的可视化界面,其中,所述集成插件模块106集成了各种可视化插件并于所述集成插件模块对应的可视化界面进行展示。需要说明的是,ros机器人调试装置10中集成了相关可视化插件,方便快捷地根据用户需求进行算法分析和数据分析。其中最重要的工具是:地图动态观测工具(本发明实施例称为rviz)。ros机器人调试装置提供了非常强大的图形化模拟环境rviz,利用rviz可以对ros机器人在路径探索过程中对地图动态观测。且可以根据已经采集的数据来模拟ros机器人的输入。

在一种可能的实现中,所述ros机器人调试装置10还包括设备管理模块107,所述ros机器人调试装置的展示界面中展示有所述设备管理模块107对应的可视化界面;

所述设备管理模块107,用于管理多个ros机器人的相关信息,所述相关信息包括ros机器人设备信息和连接信息,所述多个ros机器人为与承载有所述ros机器人调试装置的宿主主机进行通信连接的ros机器人。

如图3所示,发明实施对应提供了一种ros机器人调试方法,应用于运行有如权利要求1-5任一项所述的ros机器人调试装置的宿主主机中,所述方法包括如下步骤:

s101:所述宿主主机通过源代码编辑模块获取源代码;

s102:所述宿主主机通过编译部署模块接收所述用户触发的第一编译指令,并根据所述第一编译指令对所述源代码进行编译以生成程序包,并当接收到所述用户触发的程序包部署指令后,将所述程序包部署至所述ros机器人;

或所述宿主主机通过所述编译部署模块接收所述用户触发的源代码部署,根据所述源代码部署指令将所述源代码部署至ros机器人,并当通过所述编译部署模块接收到所述用户触发的第二编译指令后,对部署至所述ros机器人的所述源代码进行编译以生成所述程序包;

s103:所述宿主主机还通过所述编译部署模块接收所述用户触发的程序包执行指令,根据所述程序包执行指令控制所述ros机器人执行所述程序包,并当通过编译部署模块接收到所述用户的调试指令后,根据所述调试指令根据所述调试指令对所述ros机器人进行调试。

在一种可能的实现中,所述方法还包括:

所述宿主主机通过ros机器人控制台模块接收所述用户触发的控制指令,并根据所述控制指令控制所述ros机器人的相关操作,所述相关操作至少包括如下任意一种:展示所述ros机器人工作运行状态、为所述ros机器人创建任务并控制所述ros机器人执行任务。

在一种可能的实现中,所述方法还包括:

所述宿主主机通过算法管理模块接收所述用户触发的算法选择指令,并根据所述算法选择指令确定所述ros机器人对应的算法,所述算法包括至少包括如下任意一种:即时定位与地图构建slam算法、导航算法、全局路径规划算法、局部路径规划算法和定位算法。

另外需要说明的是,本发明实施例还提供了一种计算机程序产品,该计算机程序产品被计算机设备执行时,可以实现本发明实施例中ros机器人调试方法中宿主主机的步骤或功能。

图4为本申请实施例提供的计算机设备的硬件结构示意图,该计算机设备可用于实现上述宿主主机的功能,该计算机设备包括:一个或多个处理器401以及存储器402。图4中以一个为例。其中,处理器401以及存储器402可以通过总线或者其他方式连接,图5中以通过总线连接为例。

存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中ros机器人调试装置1对应的程序指令/模块。处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而宿主主机的各种功能应用以及数据处理。

存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储宿主主机所获取的源代码、命令等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述计算机设备可执行本申请实施例所提供的系统或方法,具备执行该系统或方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的防重放攻击的方法,这里不重复赘述。

并且,以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1