技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种基于截止时间驱动的ROS2多线程执行器调度方法  >  正文

一种基于截止时间驱动的ROS2多线程执行器调度方法

  • 国知局
  • 2024-11-21 12:29:03

本发明涉及机器人操作系统领域,尤其涉及一种基于截止时间驱动的ros2多线程执行器调度方法。背景技术:::1、机器人操作系统 (robot operating system, ros) 是机器人应用程序开发中广泛使用的开源中间件框架;ros通过软件的模块化和可组合性来提高机器人应用程序的开发效率,然而,在过去数十年的时间里,ros暴露了其缺乏实时性这一重大缺陷,这限制了它在对实时性要求较高的安全关键领域的使用;在这种背景下,2017年ros社区发布了第二代机器人操作系统ros2,ros2在ros框架的基础上进行了重构;ros2设计的主要目标之一是提高框架的实时性,以支持机器人实时应用程序的开发;ros2采用数据分发服务 (datadistribution service, dds) 作为底层通信框架来进行数据的端到端交换,并且支持部署在实时操作系统之上;相较于ros,尽管ros2可以为机器人应用程序提供更好的实时支持,但它目前还不完全适用于硬实时或安全关键领域的机器人应用程序。2、与ros2实时性相关的核心组件是执行器,ros2提供两种类型的执行器:一种是执行器内置单个线程的单线程执行器,它在单个线程中顺序执行就绪的回调;另一种是执行器内置多个线程的多线程执行器,它将就绪的回调分发给多个线程以并行的方式去执行。随着机器人应用程序的日趋复杂,通常需要在多线程执行器上实现不同的应用程序,以充分利用多核平台的并行处理能力;ros2多线程执行器现有的调度方法存在以下问题:3、(1) ros2多线程执行器默认调度方法采用轮询的调度方法,是一种面向公平的调度方法,在轮询点处更新就绪回调集合,容易出现优先级倒置的问题,不适用于对实时性要求较高的安全关键领域的应用;4、(2) ros2多线程执行器picas调度方法在优先级较高的链上实时性表现良好,但低优先级的链的调度可能会不成比例地被高优先级的链抢占执行从而造成较大的延迟;尤其是在系统负载较大的时候,低优先级的链可能会出现“饿死”的情况。5、因此,本发明提出一种基于截止时间驱动的ros2多线程执行器调度方法来解决上述所提到的问题。技术实现思路1、针对现有技术存在的问题,本发明的目的在于提供一种基于截止时间驱动的ros2多线程执行器调度方法,以解决上述背景技术::中提出的问题。2、为实现上述目的,本发明提供一种基于截止时间驱动的ros2多线程执行器调度方法,应用于机器人操作系统,所述方法以链实例的截止时间作为ros2多线程执行器调度回调实例的依据,具体步骤如下:3、步骤s1:多线程执行器的多个线程竞争获取锁,获取到锁的线程执行下一个步骤,没获取到锁的线程等待锁的释放,直到持有锁的线程释放锁,再次重新竞争锁;4、步骤s2:使用临时变量t暂存多线程执行器的优先级队列的队头元素,删除的队头元素,临时变量t指向的callbackexecutable结构体对应的回调实例是当前优先级最高的回调实例;5、步骤s3:释放锁;6、步骤s4:执行临时变量t指向的callbackexecutable结构体的函数句柄指向的函数;7、步骤s5:查询是否有新释放的回调实例,有则将新释放的回调实例对应的callbackexecutable结构体指针加入到优先级队列中;8、步骤s6:返回步骤s1。9、进一步,所述方法对回调实例进行链实例级别的优先级粒度划分,用于确保安全关键领域的ros2应用程序满足严格的实时约束。10、进一步,多线程执行器仅有一个锁,确保同一时间只有一个线程持有锁,其他线程需要等待锁释放后才能继续执行,从而避免了多个线程同时访问优先级队列所导致的数据竞争和不一致性问题。11、进一步,为使得回调实例和链实例的截止时间关联起来,设计调度单元的方式如下:将回调的函数句柄、回调类型和相应的链属性封装为一个结构体callbackexecutable作为ros2多线程执行器的调度单元。12、进一步,链的相对截止时间和释放周期由应用程序开发人员进行定义,链的相对截止时间表示为d,链的释放周期表示为t,链实例的释放时间代表链以t为周期释放实例的时刻的时间。13、进一步,所述callbackexecutable,链实例的截止时间等于链实例的释放时间加上链的相对截止时间,同一个链实例的所有回调实例依据的都是同一个截止时间。14、进一步,同一个链的所有回调对应的callbackexecutable的deadlines字段都指向同一个向量chain_deadlines_deque,chain_deadlines_deque大小设置为,存储链的不同实例的截止时间队列,队列的队头元素表示链实例的截止时间。15、进一步,callbackexecutable中的cur_index字段表示当前回调实例对应的链实例编号。16、进一步,任意回调实例被ros2多线程执行器调度后,其cur_index更新为,表示下次调度到该回调的实例属于下一个链实例。17、进一步,引入错误修正机制,用于自主快速地消除优先级反转的情况;错误修正机制确保出现两个链实例的cur_index相同的情况下,先释放的链实例的优先级要大于后释放的链实例的优先级。18、与现有的ros2多线程执行器调度方法相比,本发明的有益效果是:该基于截止时间驱动的ros2多线程执行器调度方法,对回调实例进行链实例级别的优先级粒度划分,提升了ros2应用程序的实时性能。技术特征:1.一种基于截止时间驱动的ros2多线程执行器调度方法,应用于机器人操作系统,其特征在于,所述方法以链实例的截止时间作为ros2多线程执行器调度回调实例的依据,具体步骤如下:2.根据权利要求1所述的基于截止时间驱动的ros2多线程执行器调度方法,其特征在于,所述方法对回调实例进行链实例级别的优先级粒度划分,用于确保安全关键领域的ros2应用程序满足严格的实时约束。3.根据权利要求1所述的基于截止时间驱动的ros2多线程执行器调度方法,其特征在于,多线程执行器仅有一个锁,确保同一时间只有一个线程持有锁,其他线程需要等待锁释放后才能继续执行,从而避免了多个线程同时访问优先级队列所导致的数据竞争和不一致性问题。4.根据权利要求3所述的基于截止时间驱动的ros2多线程执行器调度方法,其特征在于,为使得回调实例和链实例的截止时间关联起来,设计调度单元的方式如下:将回调的函数句柄、回调类型和相应的链属性封装为一个结构体callbackexecutable作为ros2多线程执行器的调度单元。5.根据权利要求4所述的基于截止时间驱动的ros2多线程执行器调度方法,其特征在于,链的相对截止时间和释放周期由应用程序开发人员进行定义,链的相对截止时间表示为d,链的释放周期表示为t,链实例的释放时间代表链以t为周期释放实例的时刻的时间。6.根据权利要求5所述的基于截止时间驱动的ros2多线程执行器调度方法,其特征在于,所述callbackexecutable,链实例的截止时间等于链实例的释放时间加上链的相对截止时间,同一个链实例的所有回调实例依据的都是同一个截止时间。7.根据权利要求6所述的基于截止时间驱动的ros2多线程执行器调度方法,其特征在于,同一个链的所有回调对应的callbackexecutable的deadlines字段都指向同一个向量chain_deadlines_deque,chain_deadlines_deque大小设置为,存储链的不同实例的截止时间队列,队列的队头元素表示链实例的截止时间。8.根据权利要求4所述的基于截止时间驱动的ros2多线程执行器调度方法,其特征在于,callbackexecutable中的cur_index字段表示当前回调实例对应的链实例编号。9.根据权利要求8所述的基于截止时间驱动的ros2多线程执行器调度方法,其特征在于,任意回调实例被ros2多线程执行器调度后,其cur_index更新为,表示下次调度到该回调的实例属于下一个链实例。10.根据权利要求9所述的基于截止时间驱动的ros2多线程执行器调度方法,其特征在于,引入错误修正机制,用于自主快速地消除优先级反转的情况;错误修正机制确保出现两个链实例的cur_index相同的情况下,先释放的链实例的优先级要大于后释放的链实例的优先级。技术总结本发明公开了一种基于截止时间驱动的ROS2多线程执行器调度方法,涉及机器人操作系统领域,该调度方法根据链实例的截止时间来对回调实例进行实时调度;包括多线程执行器的多个线程竞争获取锁;使用临时变量t暂存多线程执行器的优先级队列的队头元素,删除的队头元素;释放锁;执行临时变量t指向的CallbackExecutable结构体的函数句柄指向的函数;查询是否有新释放的回调实例,有则将新释放的回调实例对应的CallbackExecutable结构体指针加入到优先级队列中;返回步骤S1。本发明为ROS2多线程执行器提供了回调实例进行了链实例级别的优先级粒度划分,用于确保安全关键领域的ROS2应用程序满足严格的实时约束。技术研发人员:杨思宁,吴政达,张博受保护的技术使用者:中国人民解放军军事科学院军事智能研究院技术研发日:技术公布日:2024/11/18

本文地址:https://www.jishuxx.com/zhuanli/20241120/335465.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。