[发明专利]一种ROS2调度器的实现方法、装置、设备及存储介质在审
| 申请号: | 202310633397.7 | 申请日: | 2023-05-31 |
| 公开(公告)号: | CN116661999A | 公开(公告)日: | 2023-08-29 |
| 发明(设计)人: | 张连祥;肖杰;许倜;陈永波 | 申请(专利权)人: | 国科础石(重庆)软件有限公司 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50 |
| 代理公司: | 重庆智慧之源知识产权代理事务所(普通合伙) 50234 | 代理人: | 余洪 |
| 地址: | 401331 重庆市沙坪坝区虎*** | 国省代码: | 重庆;50 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 ros2 调度 实现 方法 装置 设备 存储 介质 | ||
本公开涉及一种ROS2调度器的实现方法、装置、设备及存储介质,其中,方法包括:加载用户任务配置文件,得到任务动态库的位置信息,根据位置信息对任务动态库进行读取,得到待处理任务;根据待处理任务创建若干线程实例,并将线程实例传输至调度器,将线程实例创建为可调度的任务实体;读入调度配置文件,得到线程实例的优先级配置;根据优先级配置赋予线程实例对应的优先级,并基于优先级将任务实体添加至调度队列,生成任务线程;检测到待处理任务的运行条件具备时,根据优先级等级在调度队列中提取出对应的任务线程作为目标线程,赋予目标线程对应的权限并执行。本公开实现了优先级的灵活配置,适配不同的应用场景,合理利用了计算资源。
技术领域
本公开涉及车载系统技术领域,尤其涉及一种ROS2调度器的实现方法、装置、电子设备及计算机可读存储介质。
背景技术
相关技术中,ROS2起初是应用在机器人领域,原生ROS2执行器具有单线程和多线程两种执行器,ROS2内置的执行器用于协调和调度进程中回调。一个ROS2应用有一个或多个回调,执行器把每个回调封装为一个用户任务。单线程映射为操作系统中的一个进程,多线程执行器映射为操作系统的多个进程。单线程执行器在单线程中执行回调;多线程执行器跨多个线程执行回调。
由于在机器人的使用场景中,实时性和确定性的要求不太严格,ROS2的执行器不能够设置用户任务的优先级,导致执行器不能够协调用户任务的调度优先级,即用户的所有任务对于执行器的调度器来说都是同样的优先级,采用的公平调度的策略,没有对回调任务执行顺序的显式控制。但是,想要将ROS2应用在实时性和确定性要求较高的汽车领域,以满足车载应用在多种场景下用户任务需要多种优先级的需求,原生ROS2执行器的调度方式显然不能满足对实时性和确定性高的车载应用,需要解决车载应用调度的关键问题。
因此,亟需一种能够实现多级别调度,便于修改,灵活适配多种应用场景的ROS2调度器的实现方法。
发明内容
为克服相关技术中存在的问题,本公开提供一种ROS2调度器的实现方法、装置、电子设备及计算机可读存储介质。
根据本公开实施例的第一方面,提供一种ROS2调度器的实现方法,包括:加载用户任务配置文件,获取任务动态库的位置信息,并根据所述位置信息对所述任务动态库进行读取,得到待处理任务;根据所述待处理任务创建若干线程实例,并将所述线程实例传输至调度器,所述调度器将所述线程实例创建为可调度的任务实体;读入调度配置文件,得到所述线程实例的优先级配置;根据所述优先级配置赋予所述线程实例对应的优先级,并基于所述优先级将所述任务实体添加至调度队列,生成任务线程;检测到所述待处理任务的运行条件具备时,根据优先级等级在所述调度队列中提取出对应的任务线程作为目标线程,赋予所述目标线程对应的权限并执行。
在一些实施例中,所述根据所述待处理任务创建若干线程实例,并将所述线程实例传输至调度器,所述调度器将所述线程实例创建为调度的任务实体,包括:将所述待处理任务封装为匿名执行函数,所述匿名执行函数能够在被调度器选中后执行;根据所述匿名执行函数创建得到若干线程实例,并对所述线程实例打上与所述待处理任务匹配的任务标识;通过调度器接口将所述线程实例传输至调度器,所述调度器将所述线程实例创建为可调度的任务实体。
在一些实施例中,在所述读入调度配置文件之前,还包括:根据所述待处理任务中的先后顺序,设定对应的优先级;根据所述优先级对所有待处理任务进行优先级调度配置,所述待处理任务对应唯一的优先级,得到调度配置文件。
在一些实施例中,所述读入调度配置文件,得到所述线程实例的优先级配置,包括:读取预先设定的调度配置文件并解析,得到配置参数,所述配置参数包括调度策略类型、CPU亲和性、调度组分类、任务名和优先级,所述任务名与所述任务标识一一对应;根据所述配置参数对调度器进行初始化,并基于所述任务标识确定所述线程实例对应的任务名;根据所述任务名,在所述调度配置文件中查找得到所述线程实例对应的优先级配置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国科础石(重庆)软件有限公司,未经国科础石(重庆)软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310633397.7/2.html,转载请声明来源钻瓜专利网。





