一种支持自定义规则的IROS序列化方法、装置和介质与流程

文档序号:36005421发布日期:2023-11-16 20:35阅读:51来源:国知局
一种支持自定义规则的的制作方法

本发明涉及一种支持自定义规则的iros序列化方法、装置和介质,属于智能机器人操作系统。


背景技术:

1、 智能机器人操作系统iros(intelligent robot operating system,简称iros)是一个适用于机器人的元操作系统,它采用分布式架构,能够在机器人上快速部署,基于话题、服务、参数的序列化工具,实现了话题、服务、参数的通信功能,为机器人提供了实时、安全、稳定的消息通信机制。

2、目前,iros使用的序列化方式类似于ros1,是一种自定义的序列化规范,这种自定义规范使得其序列化和反序列化过程相对简单,但在序列化数据的传输效率和跨平台的兼容性等方面难以得到保证,导致iros的序列化工具难以快速适配其它序列化规范,诸如ros2中使用dds(data distribution service)标准中的序列化规范,它采用了字节对齐技术来提高数据传输的效率,并支持大小端的定义和识别来确保跨平台的兼容性。

3、ros1已经不再进行版本更新,ros2是未来的发展潮流,iros的理想目标是同时适配ros1和ros2的数据通信,适配数据通信的前提是数据的序列化规范要保持一致,未来iros可能涉及更多序列化规范,单靠目前的iros序列化工具难以支撑其它种类的序列化规范。


技术实现思路

1、本发明目的是提供了一种支持自定义规则的iros序列化方法、装置和介质,提供一种支持自定义规则的iros序列化工具,以达到快速适配多种序列化规范的目的。

2、本发明为实现上述目的,通过以下技术方案实现:

3、iros使用序列化工具前先加载一个描述序列化规则的json文件;

4、将每种类型的消息、服务、参数分别生成msg头文件、srv头文件、para头文件;

5、在头文件中定义序列化函数和反序列化函数,iros通过调用序列化函数对数据进行序列化,iros通过调用反序列化函数对数据进行反序列化。

6、优选的,所述序列化函数和反序列化函数符合读取json文件的序列化规范,所述序列化规范包括ros1、ros2和自定义序列化规则。

7、优选的,所述描述序列化规则的json文件中包括用于标识该json文件对应的序列化规则的protocol字段。

8、优选的,所述描述序列化规则的json文件中还包括headers数组和serializeopt数组,所述headers数组用于在序列化iros数据之前添加头部信息,所述serializeopt数组用于规定iros数据进行序列化方式。

9、优选的,所述headers数组和serializeopt数组通过protocol字段的值确定是否生效;当protocol字段的值为custom时headers数组和serializeopt数组生效。

10、优选的,所述自定义序列化规则中headers数组的元素包括表示要序列化内容的value字段,表示元素的类型type字段,表示序列化元素后是否进行字节对齐align字段;

11、所述serializeopt数组的元素包括表示元素对应标准类型的stdtype字段,表示序列化标准类型数据之前是否要序列化数据的长度信息的writelen字段,表示序列化标准类型数据之后是否进行字节对齐的align字段;

12、优选的,iros通过调用序列化函数对数据进行序列化具体方式如下:

13、依次对headers数组中每个元素value字段的值进行序列化;

14、根据serializeopt数组中定义的每种标准类型的序列化方法;

15、根据protocol字段明确对iros消息、服务、参数的序列化规则,对iros数据进行序列化。

16、本发明的优点在于:本发明提出的一种支持自定义规则的iros序列化方法、装置和介质,能使iros基于json文件定义的序列化规则,实时生成不同的序列化和反序列化函数,借助该方法能同时适配ros1和ros2的序列化规范,还支持自定义序列化规范,可扩展性强,解决目前的iros序列化工具仅能适配ros1序列化规范的痛点。



技术特征:

1.一种支持自定义规则的iros序列化方法,其特征在于,包括以下内容:

2.根据权利要求1所述的支持自定义规则的iros序列化方法,其特征在于,所述序列化函数和反序列化函数符合读取json文件的序列化规范,所述序列化规范包括ros1、ros2和自定义序列化规则。

3.根据权利要求2所述的支持自定义规则的iros序列化方法,其特征在于,所述描述序列化规则的json文件中包括用于标识该json文件对应的序列化规则的protocol字段。

4.根据权利要求1-3任一所述的支持自定义规则的iros序列化方法,其特征在于,所述描述序列化规则的json文件中还包括headers数组和serializeopt数组,所述headers数组用于在序列化iros数据之前添加头部信息,所述serializeopt数组用于规定iros数据进行序列化方式。

5.根据权利要求4所述的支持自定义规则的iros序列化方法,其特征在于,所述headers数组和serializeopt数组通过protocol字段的值确定是否生效;当protocol字段的值为custom时headers数组和serializeopt数组生效。

6.根据权利要求4所述的支持自定义规则的iros序列化方法,其特征在于,所述自定义序列化规则中headers数组的元素包括表示要序列化内容的value字段,表示元素的类型type字段,表示序列化元素后是否进行字节对齐align字段;

7.根据权利要求6所述的支持自定义规则的iros序列化方法,其特征在于,iros通过调用序列化函数对数据进行序列化具体方式如下:

8.一种支持自定义规则的iros序列化装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在运行所述程序指令时,执行如权利要求1至7任一项所述的支持自定义规则的iros序列化方法。

9.一种存储介质,存储有程序指令,其特征在于,所述程序指令在运行时,执行如权利要求1至7任一项所述的支持自定义规则的iros序列化方法。


技术总结
本发明提供了一种支持自定义规则的IROS序列化方法、装置和介质,属于智能机器人操作系统技术领域。通过以下技术方案实现:IROS使用序列化工具前先加载一个描述序列化规则的JSON文件;将每种类型的消息、服务、参数分别生成msg头文件、srv头文件、para头文件;在头文件中定义序列化函数和反序列化函数,IROS通过调用序列化函数对数据进行序列化,IROS通过调用反序列化函数对数据进行反序列化。本发明提供一种支持自定义规则的IROS序列化工具,以达到快速适配多种序列化规范的目的。

技术研发人员:赵洪宇,蔡萌萌,谭雯,刘鹏,李朝铭,刘来波,崔欣,姬克勇
受保护的技术使用者:山东新一代信息产业技术研究院有限公司
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1