一种支持自定义规则的制造技术

技术编号:39405609 阅读:9 留言:0更新日期:2023-11-19 15:57
本发明专利技术提供了一种支持自定义规则的

【技术实现步骤摘要】
一种支持自定义规则的IROS序列化方法、装置和介质


[0001]本专利技术涉及一种支持自定义规则的
IROS
序列化方法

装置和介质,属于智能机器人操作系统



技术介绍

[0002] 智能机器人操作系统
IROS

Intelligent Robot Operating System
,简称
IROS
)是一个适用于机器人的元操作系统,它采用分布式架构,能够在机器人上快速部署,基于话题

服务

参数的序列化工具,实现了话题

服务

参数的通信功能,为机器人提供了实时

安全

稳定的消息通信机制

[0003]目前,
IROS
使用的序列化方式类似于
ROS1
,是一种自定义的序列化规范,这种自定义规范使得其序列化和反序列化过程相对简单,但在序列化数据的传输效率和跨平台的兼容性等方面难以得到保证,导致
IROS
的序列化工具难以快速适配其它序列化规范,诸如
ROS2
中使用
DDS

Data Distribution Service
)标准中的序列化规范,它采用了字节对齐技术来提高数据传输的效率,并支持大小端的定义和识别来确保跨平台的兼容性

[0004]ROS1
>已经不再进行版本更新,
ROS2
是未来的发展潮流,
IROS
的理想目标是同时适配
ROS1

ROS2
的数据通信,适配数据通信的前提是数据的序列化规范要保持一致,未来
IROS
可能涉及更多序列化规范,单靠目前的
IROS
序列化工具难以支撑其它种类的序列化规范


技术实现思路

[0005]本专利技术目的是提供了一种支持自定义规则的
IROS
序列化方法

装置和介质,提供一种支持自定义规则的
IROS
序列化工具,以达到快速适配多种序列化规范的目的

[0006]本专利技术为实现上述目的,通过以下技术方案实现:
IROS
使用序列化工具前先加载一个描述序列化规则的
JSON
文件;将每种类型的消息

服务

参数分别生成
msg
头文件
、srv
头文件
、para
头文件;在头文件中定义序列化函数和反序列化函数,
IROS
通过调用序列化函数对数据进行序列化,
IROS
通过调用反序列化函数对数据进行反序列化

[0007]优选的,所述序列化函数和反序列化函数符合读取
JSON
文件的序列化规范,所述序列化规范包括
ROS1、ROS2
和自定义序列化规则

[0008]优选的,所述描述序列化规则的
JSON
文件中包括用于标识该
JSON
文件对应的序列化规则的
protocol
字段

[0009]优选的,所述描述序列化规则的
JSON
文件中还包括
headers
数组和
serializeOpt
数组,所述
headers
数组用于在序列化
IROS
数据之前添加头部信息,所述
serializeOpt
数组用于规定
IROS
数据进行序列化方式

[0010]优选的,所述
headers
数组和
serializeOpt
数组通过
protocol
字段的值确定是否生效;当
protocol
字段的值为
Custom

headers
数组和
serializeOpt
数组生效

字段的值为“ROS2”时,
IROS
序列化工具使用
ROS2
的序列化规范生成头文件中的序列化和反序列化函数;当“protocol”字段的值为“Custom”时,
IROS
序列化工具将参照
JSON
文件中其它字段的值生成头文件中的序列化和反序列化函数

[0020]描述序列化规则的
JSON
文件中还可以定义一个“headers”数组和一个“serializeOpt”数组,这两个数组是可选的,在“protocol”字段的值为“Custom”时生效
。“headers”数组用于在序列化
IROS
数据之前添加一些头部信息,“serializeOpt”数组用于指示如何对
IROS
数据进行序列化

[0021]IROS
通过调用序列化函数对数据进行序列化具体方式如下:依次对
headers
数组中每个元素
value
字段的值进行序列化;根据
serializeOpt
数组中定义的每种标准类型的序列化方法;根据
protocol
字段明确对
IROS
消息

服务

参数的序列化规则,对
IROS
数据进行序列化

[0022]实施例2如图2展示了一个自定义序列化规则的
JSON
文件示例,该示例仅展示
JSON
文件的部分片段以作说明,真实的
JSON
文件在不同序列化规则下可能复杂的多
。IROS
序列化工具加载“protocol”字段值为“Custom”的
JSON
文件后,基于
JSON
文件中的“headers”数组和“serializeOpt”数组生成序列化和反序列化函数
。“headers”数组的元素包括一个“value”字段,表示要序列化的内容,一个“type”字段,表示该元素的类型,一个“align”字段,表示序列化该元素后是否进行字节对齐;“serializeOpt”数组的元素包括一个“stdType”字段,表示元素对应哪种标准类型,一个“writeLen”字段,表示序列化该标准类型数据之前是否要序列化数据的长度信息,一个“align”字段,表示序列化该标准类型数据之后是否进行字节对齐

以序列化函数的逻辑为例,首先依次对“headers”数组中每个元素“value”字段的值进行序本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种支持自定义规则的
IROS
序列化方法,其特征在于,包括以下内容:
IROS
使用序列化工具前先加载一个描述序列化规则的
JSON
文件;将每种类型的消息

服务

参数分别生成
msg
头文件
、srv
头文件
、para
头文件;在头文件中定义序列化函数和反序列化函数,
IROS
通过调用序列化函数对数据进行序列化,
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
字段的值确定是否...

【专利技术属性】
技术研发人员:赵洪宇蔡萌萌谭雯刘鹏李朝铭刘来波崔欣姬克勇
申请(专利权)人:山东新一代信息产业技术研究院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1