The present application discloses a data transmission method and device for a robot operating system. The robot operating system including shared memory transmission medium transmitting node, and the receiving node as the sending node and the receiving node, including a specific embodiment of the method: the traversal of the sending node is stored in shared memory data on the template, determine the sequence of the data template the data in the template is currently being written or read; the data in the template sequence is not currently writing data template and has not been read as target data template, acquiring the target data template information; according to the target data template information, write data to the target data template. The implementation method improves the transmission performance of data transmission under the condition of taking up less memory resources.
【技术实现步骤摘要】
用于机器人操作系统的数据传输方法和装置
本申请涉及计算机
,具体涉及计算机操作系统
,尤其涉及用于机器人操作系统的数据传输方法和装置。
技术介绍
机器人操作系统(ROS,RobotOperatingSystem)可以由很多节点和话题构成,每个节点都可以是一个独立的进程。节点可以分为两种:发送节点和接收节点,其中,发送节点可以用于发送采集的数据,接收节点可以用于接收发送节点发出的数据(有时一个节点既可以是发送节点,又可以是接收节点)。而话题是节点之间建立连接的依据。当节点之间建立连接后,发送节点和接收节点可以通过共享内存进行数据传输。此外,传输不同话题的数据时,可以使用不同的共享内存。目前,比较常见的节点间传输数据的技术是流式数据传输技术。该技术通常采用如下方案:发送节点先将原始数据按照一定的编码规则进行序列化,得到流式数据;然后,通过套接字或共享内存的方式对序列化的流式数据进行传输;最后,接收节点按照同样的编码规则对接收到的流式数据进行反序列化,得到原始数据,从而使用发送节点发送的原始数据。现有技术虽然可行,但存在两个明显的缺点:一是,对数据进行序列化 ...
【技术保护点】
一种用于机器人操作系统的数据传输方法,其特征在于,所述机器人操作系统包括发送节点、接收节点和作为所述发送节点与所述接收节点间传输介质的共享内存,所述方法包括:所述发送节点遍历预先存储在所述共享内存中的数据模板序列,确定所述数据模板序列中的各个数据模板当前是否被写入或被读取;将所述数据模板序列中当前未被写入且未被读取的数据模板作为目标数据模板,获取所述目标数据模板的信息;根据所述目标数据模板的信息,在所述目标数据模板中写入数据。
【技术特征摘要】
1.一种用于机器人操作系统的数据传输方法,其特征在于,所述机器人操作系统包括发送节点、接收节点和作为所述发送节点与所述接收节点间传输介质的共享内存,所述方法包括:所述发送节点遍历预先存储在所述共享内存中的数据模板序列,确定所述数据模板序列中的各个数据模板当前是否被写入或被读取;将所述数据模板序列中当前未被写入且未被读取的数据模板作为目标数据模板,获取所述目标数据模板的信息;根据所述目标数据模板的信息,在所述目标数据模板中写入数据。2.根据权利要求1所述的方法,其特征在于,所述遍历预先存储在所述共享内存中的数据模板序列,确定所述数据模板序列中的各个数据模板当前是否被写入或被读取,包括:获取所述数据模板序列中当前被写入的数据模板的序号,其中,所述数据模板序列中的各个数据模板的序号是所述机器人操作系统设置的;从比所获取的序号的值大的序号开始,按照所述数据模板序列中的各个数据模板的序号由小到大的顺序,依次监测所述数据模板序列中当前未被写入的数据模板当前是否被读取。3.根据权利要求2所述的方法,其特征在于,所述将所述数据模板序列中当前未被写入且未被读取的数据模板作为目标数据模板,获取所述目标数据模板的信息,包括:响应于监测到所述数据模板序列中当前未被写入的数据模板中当前存在未被读取的数据模板,则将当前未被写入且未被读取的数据模板作为目标数据模板;响应于监测到所述数据模板序列中当前未被写入的数据模板中当前不存在未被读取的数据模板,则按照所述数据模板序列中的各个数据模板的序号顺序循环监测,直至监测到当前存在未被读取的数据模板,将当前未被写入且未被读取的数据模板作为目标数据模板;获取所述目标数据模板的信息。4.根据权利要求1所述的方法,其特征在于,所述数据模板包括数据表。5.根据权利要求1所述的方法,其特征在于,所述数据包括结构化数据和半结构化数据,其中,所述结构化数据和所述半结构化数据为用二维表结构来逻辑表达实现的数据。6.一种用于机器人操作系统的数据传输方法,其特征在于,所述机器人操作系统包括发送节点、接收节点和作为所述发送节点与所述接收节点间传输介质的共享内存,所述方法包括:所述接收节点遍历预先存储在所述共享内存中的数据模板序列,确定所述数据模板序列中的各个数据模板当前是否被写入;将所述数据模板序列中当前未被写入的数据模板作为目标数据模板,获取所述目标数据模板的信息;根据所述目标数据模板的信息,在所述目标数据模板中读取数据。7.根据权利要求6所述的方法,其特征在于,所述遍历预先存储在所述共享内存中的数据模板序列,确定所述数据模板序列中的各个数据模板当前是否被写入,包括:按照所述数据模板序列中的各个数据模板的序号由小到大的顺序,依次监测所述数据模板序列中的各个数据模板当前是否被写入,其中,所述数据模板序列中的各个数据模板的序号是所述机器人操作系统设置的。8.根据权利要求7所述的方法,其特征在于,所述将所述数据模板序列中当前未被写入的数据模板作为目标数据模板,获取所述目标数据模板的信息,还包括:响应于监测到所述数据模板序列中的数据模板当前未被写入,则将当前未被写入的数据模板作为目标数据模板;响应于监测到所述数据模板序列中的数据模板当前被写入,则进入等待状态,直至监测到数据模板被写入完成,将被写入完成的数据模板作为目标数据模板;获...
【专利技术属性】
技术研发人员:夏黎明,冯靖超,王全,曲宁,何玮,邓呈亮,冯凯文,陈卓,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。