[发明专利]一种基于IROS的话题消息订阅和处理方法在审
申请号: | 202211250849.5 | 申请日: | 2022-10-13 |
公开(公告)号: | CN115617543A | 公开(公告)日: | 2023-01-17 |
发明(设计)人: | 刘鹏;李朝铭;马辰 | 申请(专利权)人: | 山东新一代信息产业技术研究院有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/50 |
代理公司: | 济南泉城专利商标事务所 37218 | 代理人: | 刘德 |
地址: | 250013 山东省济南市高新*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 iros 话题 消息 订阅 处理 方法 | ||
一种基于IROS的话题消息订阅和处理方法,IROS中默认采用多线程机制处理话题消息,每个订阅者维护一个线程,各线程对消息的订阅和处理相互独立,当需要各订阅者收到的消息按时序进行统一处理时,就需要寻求新的话题消息订阅和处理方法。实现当节点需要订阅多个话题时,可以将不同话题的消息按时序放入统一的消息队列,从而实现消息的顺序执行。
技术领域
本发明涉及智能机器人操作系统技术领域,具体涉及一种基于IROS的话题消息订阅和处理方法。
背景技术
智能机器人操作系统(Intelligent Robot Operating System,IROS)是一个次级操作系统,运行在Linux系统之上,提供包括硬件抽象描述、程序间消息通信、程序包管理等标准化的开发接口和数据处理流程。
在IROS系统中,所有任务的执行都是通过信息交互的形式完成的,信息的交互的方式包括话题、服务和参数三种,所有交互都是是通过IROS通信API实现的。三种交互方式中,尤以话题应用最为广泛,IROS中默认采用多线程机制处理话题消息,每个订阅者维护一个线程,各线程对消息的订阅和处理相互独立,当需要各订阅者收到的消息按时序进行统一处理时,就需要寻求新的话题消息订阅和处理方法。
发明内容
本发明为了克服以上技术的不足,提供了一种可以将不同话题的消息按时序放入统一的消息队列,从而实现消息的顺序执行的方法。
本发明克服其技术问题所采用的技术方案是:
一种基于IROS的话题消息订阅和处理方法,包括如下步骤:
a)建立一个IROS节点,该IROS节点包括多个订阅者Subscriber,每个订阅者Subscriber订阅一个话题Topic,利用回调函数的模式对订阅者Subscriber接收到的消息进行处理;
b)当消息处理线程见识到消息队列中存入新的消息对象时,调用该消息对象的处理函数对消息本体进行处理。
进一步的,步骤a)包括如下步骤:
a-1)建立统一的订阅线程池,启动IROS节点,在IROS节点启动时初始化订阅线程池,初始化订阅线程池时为每一个订阅者分配一个独立线程和信号量,信号量为false,线程处于等待状态,当信号量为true时独立线程进行消息接收;
a-2)初始化消息队列,等待消息压入;
a-3)通过SingleThreadSpin()函数启动消息接收,依次将订阅线程池中的信号量置为true,信号量为true的订阅线程查询本线程对应的话题中是否存在新消息,如果存在,将消息和处理函数封装成待处理消息对象并放入消息队列。
进一步的,步骤b)包括如下步骤:
b-1)启动IROS节点,初始化消息处理线程,该线程对消息队列进行周期性查询;
b-2)当查询到消息队列不为空时,通过front()接口,从消息队列获取头部消息对象,分析消息对象,获取消息对象的处理函数和消息本体;
b-3)调佣消息对象的处理函数对消息体进行处理;
b-4)处理完毕后,通过调用pop()接口,将该消息对象从消息队列删除;
b-5)当消息队列中还存在其它消息对象时,返回执行步骤b-2),如果不存在其它消息对象时,进入周期性查询。
本发明的有益效果是:IROS中默认采用多线程机制处理话题消息,每个订阅者维护一个线程,各线程对消息的订阅和处理相互独立,当需要各订阅者收到的消息按时序进行统一处理时,就需要寻求新的话题消息订阅和处理方法。实现当节点需要订阅多个话题时,可以将不同话题的消息按时序放入统一的消息队列,从而实现消息的顺序执行。
附图说明
图1为本发明的方法流程图;
图2为本发明的话题消息订阅流程图;
图3为本发明的话题消息处理流程图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东新一代信息产业技术研究院有限公司,未经山东新一代信息产业技术研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211250849.5/2.html,转载请声明来源钻瓜专利网。