机器人控制系统的实时通信方法、装置、设备、介质和程序产品与流程
本技术涉及机器人控制,具体地涉及一种机器人控制系统的实时通信方法、装置、设备、介质和程序产品。
背景技术:
1、现有机器人控制系统通常采用单一计算环境运行全部控制任务,应用层、协同规划层与柔顺执行层运行于同一操作系统中,通过进程间通信或函数调用交互。然而,应用层与协同规划层需要运行机器人操作系统框架以完成复杂的任务解析与轨迹规划,柔顺执行层需要以高频控制周期执行控制算法以保证实时性。两者对计算环境的需求不同:前者要求功能丰富,后者要求调度确定。在同一操作系统中运行,柔顺执行层的高频控制任务会被非实时任务抢占,控制周期无法保证,导致精细指令输出延迟不确定,实际状态数据无法及时反馈至协同规划层,影响轨迹调整的实时性。
技术实现思路
1、鉴于上述问题,本技术提供了一种机器人控制系统的实时通信方法、装置、设备、介质和程序产品。
2、根据本技术的第一个方面,提供了一种机器人控制系统的实时通信方法,所述机器人控制系统包括应用层、协同规划层和柔顺执行层,所述应用层和所述协同规划层运行于机器人操作系统框架下,所述应用层将任务描述解析为标准化任务序列,所述协同规划层根据所述标准化任务序列生成期望轨迹和力控目标值,所述柔顺执行层根据所述期望轨迹和所述力控目标值执行控制算法以生成驱动所述机器人运动的精细指令,所述实时通信方法包括:将所述柔顺执行层部署于第一操作系统的实时线程中,以第一优先级和第一控制周期运行,所述第一操作系统运行于第一计算核心;将所述应用层和所述协同规划层部署于第二操作系统的非实时线程中,以第二优先级和第二控制周期运行,所述第二操作系统运行于第二计算核心,所述第一计算核心不同于所述第二计算核心,所述第一优先级高于所述第二优先级,所述第一控制周期短于所述第二控制周期;所述应用层通过第一通信方式将所述标准化任务序列传输至所述协同规划层;所述协同规划层通过第二通信方式将所述期望轨迹和所述力控目标值发送至所述柔顺执行层;所述柔顺执行层接收所述期望轨迹和所述力控目标值,以所述第一控制周期执行所述控制算法,生成所述精细指令;所述柔顺执行层通过第三通信方式将所述精细指令输出至机器人的硬件执行机构,以驱动所述机器人运动;所述柔顺执行层通过所述第三通信方式从所述硬件执行机构读取实际状态数据,所述实际状态数据包括实际位姿和实际接触力;所述柔顺执行层通过所述第二通信方式将所述实际状态数据反馈至所述协同规划层。
3、根据本技术的实施例,所述第一通信方式为机器人操作系统话题通信或机器人操作系统服务通信。
4、根据本技术的实施例,所述协同规划层通过第二通信方式将所述期望轨迹和所述力控目标值发送至所述柔顺执行层的步骤,包括:在所述协同规划层与所述柔顺执行层之间设置实时桥接节点,所述实时桥接节点独立运行于所述第二操作系统中;所述协同规划层将所述期望轨迹和所述力控目标值发布为第一机器人操作系统消息;所述实时桥接节点订阅所述第一机器人操作系统消息,将所述第一机器人操作系统消息解析后写入共享内存的第一地址区域;所述柔顺执行层从所述共享内存的所述第一地址区域读取所述期望轨迹和所述力控目标值。
5、根据本技术的实施例,所述柔顺执行层通过所述第二通信方式将所述实际状态数据反馈至所述协同规划层的步骤,包括:所述柔顺执行层将从所述硬件执行机构反馈的实际状态数据写入所述共享内存的第二地址区域;所述实时桥接节点从所述共享内存的所述第二地址区域读取所述实际状态数据,封装为第二机器人操作系统消息并发布,供所述协同规划层订阅。
6、根据本技术的实施例,所述第三通信方式为共享内存通信。
7、根据本技术的实施例,所述第一操作系统为实时操作系统,所述第二操作系统为非实时操作系统,所述第一计算核心和所述第二计算核心为同一多核芯片中的不同物理核心,且所述第一计算核心通过cpu隔离参数与所述第二计算核心隔离。
8、本技术的第二方面提供了一种机器人控制系统的实时通信装置,包括:第一部署模块,用于将所述柔顺执行层部署于第一操作系统的实时线程中,以第一优先级和第一控制周期运行,所述第一操作系统运行于第一计算核心;第二部署模块,用于将所述应用层和所述协同规划层部署于第二操作系统的非实时线程中,以第二优先级和第二控制周期运行,所述第二操作系统运行于第二计算核心,所述第一计算核心不同于所述第二计算核心,所述第一优先级高于所述第二优先级,所述第一控制周期短于所述第二控制周期;传输模块,用于所述应用层通过第一通信方式将所述标准化任务序列传输至所述协同规划层;发送模块,用于所述协同规划层通过第二通信方式将所述期望轨迹和所述力控目标值发送至所述柔顺执行层;生成模块,用于所述柔顺执行层接收所述期望轨迹和所述力控目标值,以所述第一控制周期执行所述控制算法,生成所述精细指令;驱动模块,用于所述柔顺执行层通过第三通信方式将所述精细指令输出至机器人的硬件执行机构,以驱动所述机器人运动;读取模块,用于所述柔顺执行层通过所述第三通信方式从所述硬件执行机构读取实际状态数据,所述实际状态数据包括实际位姿和实际接触力;反馈模块,用于所述柔顺执行层通过所述第二通信方式将所述实际状态数据反馈至所述协同规划层。
9、根据本技术的第三方面,提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个计算机程序,其中,上述一个或多个处理器执行上述一个或多个计算机程序以实现上述方法的步骤。
10、根据本技术的第四方面,还提供了一种计算机可读存储介质,其上存储有计算机程序或指令,上述计算机程序或指令被处理器执行时实现上述方法的步骤。
11、根据本技术的第五方面,还提供了一种计算机程序产品,包括计算机程序或指令,上述计算机程序或指令被处理器执行时实现上述方法的步骤。
12、根据本技术的一些实施例,通过将柔顺执行层部署于第一操作系统的实时线程并使其运行于第一计算核心,同时将应用层和协同规划层部署于第二操作系统的非实时线程并使其运行于第二计算核心,使任务解析与轨迹规划所消耗的处理器时间不再与实时控制回路共用同一调度队列和时间片,上层计算量的波动不再改变实时线程的唤醒时刻,控制周期的抖动与周期错失随之减少;通过令第一优先级高于第二优先级、第一控制周期短于第二控制周期,明确了实时控制回路与非实时规划任务在调度上的先后关系,实时线程在其控制周期到达时优先获得处理器,避免了规划任务的长耗时计算推迟控制回路,控制指令的下发时刻与硬件执行机构的状态读取时刻保持在同一时间基准上;通过使第一计算核心与第二计算核心相互独立,两侧的流水线、缓存与内存带宽不再相互争用,减少了核间资源争用带来的执行时间波动,实时线程的运行时长更容易预先估计;通过将应用层与协同规划层之间的数据传输交由第一通信方式、将期望轨迹和力控目标值的下发交由第二通信方式、将精细指令的下发与实际状态数据的读取交由第三通信方式,使高频闭环数据不再全部经由通用话题中间件转发,减少了序列化与反序列化、消息拷贝以及队列调度带来的中间数据量和动态内存分配,实时线程在内存分配与互斥锁上的等待时间相应缩短,内存占用的增长与内存碎片的累积得到抑制;通过在柔顺执行层以第一控制周期执行控制算法生成精细指令,并由柔顺执行层经第三通信方式读取包括实际位姿和实际接触力的实际状态数据、经第二通信方式将实际状态数据反馈至协同规划层,使规划所依据的状态数据来自同一条确定的回传路径,轨迹规划的起点与硬件的实际状态保持一致,减少了因状态滞后造成的轨迹偏差与力控误差。通过上述处理,本技术实施例降低了分层机器人控制系统在实时控制过程中的计算资源与存储资源占用,提升了控制周期的时间确定性、状态数据的一致性与轨迹执行的精确性,也收窄了实时控制数据在外层中间件中的暴露范围。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com