本说明书涉及机器人,尤其涉及一种基于机器人中间件执行实时任务的方法及装置。
背景技术:
1、随着机器人技术的快速发展,机器人系统变得越来越复杂,硬件设备、算法模块和功能程序数量激增,进而出现了一种机器人中间件:机器人操作系统(robot operatingsystem,ros),它是一个为机器人软件开发提供一系列框架和工具的开源项目。ros的主要目标是提供一个简单的方式来编写机器人软件,其作为一个机器人中间件,通过提供模块间通信和集成功能,大大简化了机器人软件平台的开发难度,提高了软件的可重用性和可移植性。
2、当前,在执行机器人任务时,ros依赖linux内核的标准调度机制来管理多个任务,然而,在处理实时任务时,linux内核的调度机制更倾向于公平性,也就是根据各任务的优先级来处理多个任务,这并不能满足实时任务要求的实时性能,其中,实时性能是指在规定时间内对外部事件的响应能力。例如,当任务一为机械臂在20ms内转动30度,而任务二为机械臂在1s内抬高1cm,假设任务一的优先级低于任务二,当任务一和任务二同时发布时,linux内核的调度机制会优先选择执行任务二,再执行任务一,这并不符合实时任务要求的优先处理最低响应时间的任务。
3、基于此,如何提高机器人中间件处理实时任务时的实时性能,则是一个亟待解决的问题。
技术实现思路
1、本说明书提供一种基于机器人中间件执行实时任务的方法及装置,以部分的解决现有技术存在的上述问题。
2、本说明书采用下述技术方案:
3、本说明书提供了一种基于机器人中间件执行实时任务的方法,所述方法应用于安装有iinux系统的机器人中,包括:
4、安装xenomai补丁,以在所述机器人的linux中安装xenomai内核;
5、针对所述机器人所要执行的实时任务,确定执行所述实时任务时调用所述xenomai内核所使用的接口,作为目标接口;
6、将所述目标接口进行封装,得到针对所述实时任务的机器人操作系统ros节点;
7、在执行所述实时任务时,通过所述ros节点,调用所述xenomai内核,以执行所述实时任务。
8、可选地,在执行所述实时任务时,通过所述ros节点,调用所述xenomai内核,以执行所述实时任务之前,所述方法还包括:
9、从预设的各硬件资源中为所述xenomai内核分配指定硬件资源,作为所述xenomai内核绑定的硬件资源;
10、执行所述实时任务时,通过所述ros节点,调用所述xenomai内核,以执行所述实时任务,具体包括:
11、在执行所述实时任务时,通过所述ros节点,调用所述xenomai内核,以通过所述xenomai内核绑定的硬件资源,执行所述实时任务。
12、可选地,从预设的各硬件资源中为所述xenomai内核分配指定硬件资源,作为所述xenomai内核绑定的硬件资源,具体包括:
13、根据所述机器人的任务记录,从各硬件资源中确定出闲置的指定硬件资源,作为所述xenomai内核绑定的硬件资源。
14、可选地,所述方法还包括:
15、在所述机器人执行非实时任务时,通过调用所述linux系统的linux内核,执行所述非实时任务。
16、可选地,在所述机器人执行非实时任务时,通过调用所述linux系统的linux内核,执行所述非实时任务,具体包括:
17、在所述机器人执行非实时任务时,通过所述linux内核与所述xenomai内核之间建立的通信连接,获取所述机器人执行实时任务后的响应数据;
18、根据所述响应数据,通过调用所述linux系统的linux内核,执行所述非实时任务。
19、本说明书提供了一种基于机器人中间件执行实时任务的装置,包括:
20、安装模块,用于安装xenomai补丁,以在所述机器人的linux中安装xenomai内核;
21、确定模块,用于针对所述机器人所要执行的实时任务,确定执行所述实时任务时调用所述xenomai内核所使用的接口,作为目标接口;
22、封装模块,用于将所述目标接口进行封装,得到针对所述实时任务的机器人操作系统ros节点;
23、调用模块,用于在执行所述实时任务时,通过所述ros节点,调用所述xenomai内核,以执行所述实时任务。
24、可选地,在执行所述实时任务时,通过所述ros节点,调用所述xenomai内核,以执行所述实时任务之前,所述调用模块还用于,从预设的各硬件资源中为所述xenomai内核分配指定硬件资源,作为所述xenomai内核绑定的硬件资源;
25、所述调用模块具体用于,在执行所述实时任务时,通过所述ros节点,调用所述xenomai内核,以通过所述xenomai内核绑定的硬件资源,执行所述实时任务。
26、可选地,所述调用模块具体用于,根据所述机器人的任务记录,从各硬件资源中确定出闲置的指定硬件资源,作为所述xenomai内核绑定的硬件资源。
27、本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于机器人中间件执行实时任务的方法。
28、本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于机器人中间件执行实时任务的方法。
29、本说明书采用的上述至少一个技术方案能够达到以下有益效果:
30、在本说明书提供的基于机器人中间件执行实时任务的方法中,在安装有iinux系统的机器人中,安装xenomai补丁,以在机器人的linux中安装xenomai内核,针对机器人所要执行的实时任务,确定执行实时任务时调用xenomai内核所使用的接口,作为目标接口。将目标接口进行封装,得到针对实时任务的机器人操作系统ros节点,在执行实时任务时,通过ros节点,调用xenomai内核,以执行实时任务。
31、从上述方法可以看出,在本说明书提供的基于机器人中间件执行实时任务的方法中,针对机器人所要执行的实时任务,调用xenomai内核执行实时任务,以提高机器人中间件处理实时任务时的实时性能,相较于现有技术中实时任务与非实时任务都调用linux内核执行任务,本说明书提供的方法存在一个专门执行实时任务的环境,对于实时任务响应时间更短、处理速度更快,从而使得机器人在执行实时任务时的性能得到显著提升。
1.一种基于机器人中间件执行实时任务的方法,所述方法应用于安装有iinux系统的机器人中,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,在执行所述实时任务时,通过所述ros节点,调用所述xenomai内核,以执行所述实时任务之前,所述方法还包括:
3.如权利要求2所述的方法,其特征在于,从预设的各硬件资源中为所述xenomai内核分配指定硬件资源,作为所述xenomai内核绑定的硬件资源,具体包括:
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
5.如权利要求4所述的方法,其特征在于,在所述机器人执行非实时任务时,通过调用所述linux系统的linux内核,执行所述非实时任务,具体包括:
6.一种基于机器人中间件执行实时任务的装置,其特征在于,包括:
7.如权利要求6所述的装置,其特征在于,在执行所述实时任务时,通过所述ros节点,调用所述xenomai内核,以执行所述实时任务之前,所述调用模块还用于,从预设的各硬件资源中为所述xenomai内核分配指定硬件资源,作为所述xenomai内核绑定的硬件资源;
8.如权利要求7所述的装置,其特征在于,所述调用模块具体用于,根据所述机器人的任务记录,从各硬件资源中确定出闲置的指定硬件资源,作为所述xenomai内核绑定的硬件资源。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~5任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~5任一项所述的方法。