一种面向IROS的功能包编译安装方法、设备及介质技术

技术编号:38535164 阅读:13 留言:0更新日期:2023-08-19 17:06
本申请公开了一种面向IROS的功能包编译安装方法、设备及介质,用以解决现有技术将ROS类型功能包迁移至IROS环境中无法直接编译安装,需大量修改重写,工作量及工作难度较大的问题。包括:获取待编译的功能包并确定待编译的功能包对应的功能包源代码;编写IROS环境中的编译安装工具并基于环境变量编译工具将IROS工作空间中所需路径添加至环境变量;基于IROS模块定义IROS模块对待编译的功能包进行编译时的编译变量和编译函数,并基于命令行工具定义待编译的功能包对应的终端命令;基于编译变量、编译函数及终端命令对IROS环境中待编译的功能包对应的功能包源代码进行编译,并根据环境变量中的所需路径对编译后的功能包进行安装。行安装。行安装。

【技术实现步骤摘要】
一种面向IROS的功能包编译安装方法、设备及介质


[0001]本申请涉及计算机应用
,尤其涉及一种面向IROS的功能包编译安装方法、设备及介质。

技术介绍

[0002]机器人操作系统(Robot Operating System,ROS)是当前主流的开源机器人操作系统,虽然其开源社区上提供了大量的功能包来支撑机器人的作业,但是ROS类型的功能包在编译时往往需要依赖一些第三方库,在编译安装ROS类型的功能包之前,需要先根据ROS类型的功能包的说明,下载安装第三方库,才能对ROS类型的功能包进行编译安装。并且,第三方库的下载是非常耗时的,有时还会因系统中安装的多个第三方库的版本不同,出现破坏其它软件运行环境的问题,使得ROS类型的功能包的编译安装费时费力。
[0003]智能机器人操作系统(Intelligent Robot Operating System,IROS)是一个适用于机器人的元操作系统,它在ROS系统的基础上增加了新的功能,弥补了ROS系统在性能、安全性和可靠性上的不足,支持一键式安装部署。IROS作为对标ROS的机器人操作系统,支持开发人员根据需求开发新的IROS类型的功能包,同时支持将开源社区的ROS类型的功能包迁移到IROS环境中进行使用,但是,ROS类型的功能包都是基于ROS的catkin_make语法编写的,catkin_make是针对ROS工作空间封装的编译工具。但是,IROS工作空间与ROS工作空间大不相同,并且,由于IROS类型的功能包的编译不依赖catkin_make语法,导致ROS类型的功能包不能直接在IROS环境中进行编译安装。因此,在将ROS类型的功能包迁移到IROS环境中时,需要对ROS类型的功能包中的CMake编译文件进行大量修改甚至重写,大大增加了ROS类型的功能包迁移到IROS环境中的工作难度和工作量。

技术实现思路

[0004]本申请实施例提供了一种面向IROS的功能包编译安装方法、设备及介质,用以解决现有技术将ROS类型的功能包迁移至IROS环境中无法直接进行编译安装,需要对ROS类型的功能包中的CMake编译文件进行大量修改甚至重写,工作量以及工作难度较大的技术问题。
[0005]一方面,本申请实施例提供了一种面向IROS的功能包编译安装方法,包括:
[0006]获取待编译的功能包,并确定所述待编译的功能包对应的功能包源代码;
[0007]编写IROS系统中的编译安装工具,并基于所述编译安装工具中的环境变量编译工具,将IROS工作空间中的所需路径添加至环境变量中;
[0008]基于所述编译安装工具中的IROS模块,定义所述IROS模块对所述待编译的功能包进行编译时的编译变量和编译函数,并基于所述编译安装工具中的命令行工具,定义所述待编译的功能包对应的终端命令;
[0009]基于所述编译变量、编译函数以及终端命令,对IROS环境中所述待编译的功能包对应的功能包源代码进行编译,并根据所述环境变量中的所需路径,对编译后的功能包进
行安装。
[0010]在本申请的一种实现方式中,所述获取待编译的功能包,并确定所述待编译的功能包对应的功能包源代码,具体包括:
[0011]确定机器人作业时的功能需求,并根据所述功能需求,确定所述机器人作业时所需的待编译的功能包;
[0012]通过预设方式获取所述待编译的功能包,并确定所述待编译的功能包对应的功能包类型;所述功能包类型包括ROS类型和IROS类型;
[0013]获取所述功能包类型的待编译的功能包对应的功能包源代码;所述功能包源代码至少包括头文件的源代码、源文件的源代码以及文档文件的源代码。
[0014]在本申请的一种实现方式中,所述基于所述编译安装工具中的环境变量编译工具,将IROS工作空间中的所需路径添加至环境变量中,具体包括:
[0015]确定ROS类型的功能包和IROS类型的功能包所依赖的若干个第三方库,并在IROS工作空间中设置所述若干个第三方库对应的第三方库目录;
[0016]分别确定IROS工作空间中的多个文件的路径;所述多个文件至少包括第三方库目录、可执行程序以及头文件;
[0017]基于所述编译安装工具中的环境变量编译工具,分别将第三方库目录的路径、可执行程序的路径以及头文件的路径添加至所述IROS环境的环境变量中。
[0018]在本申请的一种实现方式中,所述确定ROS类型的功能包和IROS类型的功能包所依赖的若干个第三方库之后,所述方法还包括:
[0019]确定所述若干个第三方库中不存在CMake模块的第三方库,并为不存在CMake模块的第三方库增加CMake模块,以将第三方库的路径存储至所述第三方库对应的CMake模块的编译变量中;
[0020]基于预设的查询函数,在IROS工作空间的第三方库目录中,确定出所述待编译的功能包所依赖的第三方库的CMake模块,并基于所述CMake模块获取所述待编译的功能包所依赖的第三方库的路径,找到对应的第三方库。
[0021]在本申请的一种实现方式中,所述基于所述编译安装工具中的IROS模块,定义所述IROS模块对所述待编译的功能包进行编译时的编译变量和编译函数,具体包括:
[0022]基于所述编译安装工具中的IROS模块,为IROS环境提供用于编译功能包的CMake模块,并基于所述环境变量编译工具,将所述IROS模块的所在路径添加至环境变量中;
[0023]通过所述IROS模块并基于CMake语法,定义动态配置参数生成头文件对应的编译函数,以及第三方库目录、可执行程序和头文件对应的编译变量。
[0024]在本申请的一种实现方式中,所述通过所述IROS模块并基于CMake语法,定义动态配置参数生成头文件对应的编译函数之后,所述方法还包括:
[0025]确定所述待编译的功能包中是否具有指定的动态配置参数,若是,则通过所述动态配置参数生成头文件对应的编译函数,生成所述指定的动态配置参数对应的头文件;
[0026]若否,则对所述待编译的功能包进行识别,并确定出所述待编译的功能包中的多个动态配置参数;
[0027]通过所述动态配置参数生成头文件对应的编译函数,分别生成所述多个动态配置参数对应的头文件。
[0028]在本申请的一种实现方式中,所述基于所述待编译的功能包对应的编译变量、编译函数以及终端命令,对所述待编译的功能包的功能包源代码进行编译,具体包括:
[0029]基于所述待编译的功能包对应的终端命令,在所述待编译的功能包对应的根目录中建立指定目录,并基于所述指定目录以及根据所述终端命令中的查询命令,确定功能包的CMake编译文件中是否存在IROS模块,若否,则确定所述功能包为ROS类型的功能包;
[0030]在所述ROS类型的功能包的CMake编译文件中,添加寻找IROS类型的功能包的语句,并将IROS模块添加至所述功能包中,实现对所述功能包对应功能包源代码的编译。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向IROS的功能包编译安装方法,其特征在于,所述方法包括:获取待编译的功能包,并确定所述待编译的功能包对应的功能包源代码;编写IROS环境中的编译安装工具,并基于所述编译安装工具中的环境变量编译工具,将IROS工作空间中的所需路径添加至环境变量中;基于所述编译安装工具中的IROS模块,定义所述IROS模块对所述待编译的功能包进行编译时的编译变量和编译函数,并基于所述编译安装工具中的命令行工具,定义所述待编译的功能包对应的终端命令;基于所述编译变量、编译函数以及终端命令,对IROS环境中所述待编译的功能包对应的功能包源代码进行编译,并根据所述环境变量中的所需路径,对编译后的功能包进行安装。2.根据权利要求1所述的一种面向IROS的功能包编译安装方法,其特征在于,所述获取待编译的功能包,并确定所述待编译的功能包对应的功能包源代码,具体包括:确定机器人作业时的功能需求,并根据所述功能需求,确定所述机器人作业时所需的待编译的功能包;通过预设方式获取所述待编译的功能包,并确定所述待编译的功能包对应的功能包类型;所述功能包类型包括ROS类型和IROS类型;获取所述功能包类型的待编译的功能包对应的功能包源代码;所述功能包源代码至少包括头文件的源代码、源文件的源代码以及文档文件的源代码。3.根据权利要求1所述的一种面向IROS的功能包编译安装方法,其特征在于,所述基于所述编译安装工具中的环境变量编译工具,将IROS工作空间中的所需路径添加至环境变量中,具体包括:确定ROS类型的功能包和IROS类型的功能包所依赖的若干个第三方库,并在IROS工作空间中设置所述若干个第三方库对应的第三方库目录;分别确定IROS工作空间中的多个文件的路径;所述多个文件至少包括第三方库目录、可执行程序以及头文件;基于所述编译安装工具中的环境变量编译工具,分别将第三方库目录的路径、可执行程序的路径以及头文件的路径添加至所述IROS环境的环境变量中。4.根据权利要求3所述的一种面向IROS的功能包编译安装方法,其特征在于,所述确定ROS类型的功能包和IROS类型的功能包所依赖的若干个第三方库之后,所述方法还包括:确定所述若干个第三方库中不存在CMake模块的第三方库,并为不存在CMake模块的第三方库增加CMake模块,以将第三方库的路径存储至所述第三方库对应的CMake模块的编译变量中;基于预设的查询函数,在IROS工作空间的第三方库目录中,确定出所述待编译的功能包所依赖的第三方库的CMake模块,并基于所述CMake模块获取所述待编译的功能包所依赖的第三方库的路径,找到对应的第三方库。5.根据权利要求1所述的一种面向IROS的功能包编译安装方法,其特征在于,所述基于所述编译安装工具中的IROS模块,定义所述IROS模块对所述待编译的功能包进行编译时的编译变量和编译函数,具体包括:基于所述编译安装工具中的IROS模块,为IROS环境提供...

【专利技术属性】
技术研发人员:赵洪宇李朝铭刘鹏刘来波王召东蔡萌萌
申请(专利权)人:山东新一代信息产业技术研究院有限公司
类型:发明
国别省市:

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

1