[发明专利]一种ROS2调度器的实现方法、装置、设备及存储介质在审
申请号: | 202310633397.7 | 申请日: | 2023-05-31 |
公开(公告)号: | CN116661999A | 公开(公告)日: | 2023-08-29 |
发明(设计)人: | 张连祥;肖杰;许倜;陈永波 | 申请(专利权)人: | 国科础石(重庆)软件有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 重庆智慧之源知识产权代理事务所(普通合伙) 50234 | 代理人: | 余洪 |
地址: | 401331 重庆市沙坪坝区虎*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 ros2 调度 实现 方法 装置 设备 存储 介质 | ||
1.一种ROS2调度器的实现方法,其特征在于,包括:
加载用户任务配置文件,获取任务动态库的位置信息,并根据所述位置信息对所述任务动态库进行读取,得到待处理任务;
根据所述待处理任务创建若干线程实例,并将所述线程实例传输至调度器,所述调度器将所述线程实例创建为可调度的任务实体;
读入调度配置文件,得到所述线程实例的优先级配置;
根据所述优先级配置赋予所述线程实例对应的优先级,并基于所述优先级将所述任务实体添加至调度队列,生成任务线程;
检测到所述待处理任务的运行条件具备时,根据优先级等级在所述调度队列中提取出对应的任务线程作为目标线程,赋予所述目标线程对应的权限并执行。
2.根据权利要求1所述的ROS2调度器的实现方法,其特征在于,所述根据所述待处理任务创建若干线程实例,并将所述线程实例传输至调度器,所述调度器将所述线程实例创建为调度的任务实体,包括:
将所述待处理任务封装为匿名执行函数,所述匿名执行函数能够在被调度器选中后执行;
根据所述匿名执行函数创建得到若干线程实例,并对所述线程实例打上与所述待处理任务匹配的任务标识;
通过调度器接口将所述线程实例传输至调度器,所述调度器将所述线程实例创建为可调度的任务实体。
3.根据权利要求2所述的ROS2调度器的实现方法,其特征在于,在所述读入调度配置文件之前,还包括:
根据所述待处理任务中的先后顺序,设定对应的优先级;
根据所述优先级对所有待处理任务进行优先级调度配置,所述待处理任务对应唯一的优先级,得到调度配置文件。
4.根据权利要求3所述的ROS2调度器的实现方法,其特征在于,所述读入调度配置文件,得到所述线程实例的优先级配置,包括:
读取预先设定的调度配置文件并解析,得到配置参数,所述配置参数包括调度策略类型、CPU亲和性、调度组分类、任务名和优先级,所述任务名与所述任务标识一一对应;
根据所述配置参数对调度器进行初始化,并基于所述任务标识确定所述线程实例对应的任务名;
根据所述任务名,在所述调度配置文件中查找得到所述线程实例对应的优先级配置。
5.根据权利要求4所述的ROS2调度器的实现方法,其特征在于,所述根据所述优先级配置赋予所述线程实例对应的优先级,并基于所述优先级将所述任务实体添加至调度队列,生成任务线程,包括:
根据所述优先级配置,得到并赋予所述线程实例对应的优先级;
获取预设的最大优先级,调整所述线程实例中超过所述预设的最大优先级的优先级;
根据调整后的优先级,将所述线程实例对应的任务实体添加至调度器的调度队列,生成对应的任务线程。
6.根据权利要求2所述的ROS2调度器的实现方法,其特征在于,所述检测到所述待处理任务的运行条件具备时,根据优先级等级在所述调度队列中提取出对应的任务线程作为目标线程,赋予所述目标线程对应的权限并执行,包括:
检测所述待处理任务的运行条件是否具备;
在所述待处理任务的运行条件具备时,根据优先级等级在所述调度队列中对符合运行条件的任务线程进行优先级遍历,得到当前优先级最高的任务线程,作为目标线程;
调整所述目标线程的状态,赋予所述目标线程对应的权限,并根据获取的权限执行所述目标线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国科础石(重庆)软件有限公司,未经国科础石(重庆)软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310633397.7/1.html,转载请声明来源钻瓜专利网。