【技术实现步骤摘要】
IROS消息订阅的多线程管理方法及系统
[0001]本专利技术涉及机器人
,具体地说是IROS消息订阅的多线程管理方法及系统。
技术介绍
[0002]智能机器人操作系统IROS(Intelligent Robot Operating System,简称IROS)是一个适用于机器人的元操作系统,它采用分布式架构,能够在机器人上快速部署,支持话题、服务、参数等基础通信功能,为机器人提供实时、安全、稳定的消息通信机制,以支撑机器人的各项任务。
[0003]在机器人领域,话题是使用最为广泛的一种通信机制,对于机器人这种复杂度高的任务,经常会在单个任务程序中就涉及数十个话题以及回调函数,为了保证机器人作业的实时性,IROS默认采用多线程的方式处理话题消息,每个话题的订阅者对应一个线程,订阅者每从话题中接收一条消息,对应线程就立即执行一次回调函数来处理消息。
[0004]当前的IROS多线程消息订阅机制是:发布者不断往话题中发送消息,订阅者不断从话题中取出一条消息并立即执行回调函数来处理消息,无法对消息是否需要处理 ...
【技术保护点】
【技术特征摘要】
1.一种IROS消息订阅的多线程管理方法,其特征在于,包括如下步骤:通过IROS为每个订阅者创建一个对应的线程,在IROS中定义一个MultiThreadMgr类,所述MultiThreadMgr类用于同时管理每个订阅者的线程,将所述MultiThreadMgr类中的成员变量均定义为静态成员变量,通过静态成员变量subscriber_count来统计存活的多线程订阅者的数量,并通过静态成员变量subscriber_map来保存每个订阅者执行回调函数的查询条件,所述查询条件能够根据场景需求自定义;建立一个包含多个订阅者的IROS节点进程,IROS节点进程启动后,通过IROS为每个订阅者创建一个独立的消息处理线程;对于每个订阅者,订阅者的消息处理线程不断从订阅的话题中接收消息,对于未处理的消息,消息处理线程从MultiThreadMgr类的subscriber_map中查询消息处理线程对应的查询条件,根据匹配的查询条件返回结果执行对应的消息处理逻辑。2.根据权利1所述的IROS消息订阅的多线程管理方法,其特征在于,所述查询条件包括两种定义模式,分别为:模式一、将查询条件定义为未处理消息的最大堆积数;模式二、基于消息特征定义查询条件,所述消息特征包括消息的时间戳、消息头部以及消息体;对于模式一,根据匹配的查询条件返回结果执行对应的消息处理逻辑时,执行如下操作:当最大堆积数设置为1时,如果订阅者的消息处理线程发现话题中未处理的消息的数量大于1,消息处理线程只处理最后一条未处理的消息;对于模式二,根据匹配的查询条件返回结果执行对应的消息处理逻辑时,执行如下操作:对于未处理的消息,将消息的消息特征与订阅者的查询条件进行匹配,基于白名单模式、根据匹配的查询条件返回结果执行对应的消息处理逻辑,或者,基于黑名单模式、根据匹配的查询条件返回结果不执行对应的消息处理逻辑。3.根据权利要求1所述的IROS消息订阅的多线程管理方法,其特征在于,基于如下原则、通过静态成员变量subscriber_count来统计存活的多线程订阅者的数量:对于每个新增的订阅者,通过IROS定义一个MultiThreadMgr类的实例,所述实例的生命周期为对应消息处理线程的开始和结束,消息处理线程结束后会销毁所述实例;为新增的订阅者创建消息处理线程后,根据MultiThreadMgr类的构造函数和析构函数的特性,在构造函数中对MultiThreadMgr类的静态成员变量subscriber_count加1;订阅者的消息处理线程销毁退出后,在析构函数中对MultiThreadMgr类的静态成员变量subscriber_count减1;其中,当IROS节点进程销毁退出时,通过IROS将退出标志置为true,并执行查询步骤,查询MultiThreadMgr类的subscriber_count值得到进程中存活的多线程订阅者的数量,若存活数量不为0,表明仍有订阅者陷在消息处理函数中没处理完当前消息,原地sleep等待,等待结束后重复上述的查询步骤,直到存活的多线程订阅者的数量为0,IROS节点进程销毁退出。4.根据权利1所述的IROS消息订阅的多线程管理方法,其特征在于,通过一个int整数类型的静态成员变量subscriber_count统计存活的多线程订阅者的数量;通过一个map容器类型的静态成员变量subscriber_map来保存每个订阅者执行回调函
数的条件,map容器中的<key,value>分别为订阅者的指针和执行回调函数的查询条件。5.一种IROS消息订阅的多线管理系统,其特征在于,通过如权利要求1
‑
4任一项所述的IROS消息订阅的多线管理方法实现多线程管理,所述系统包括:配置模块...
【专利技术属性】
技术研发人员:赵洪宇,李朝铭,刘鹏,刘来波,王召东,蔡萌萌,
申请(专利权)人:山东新一代信息产业技术研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。