找回密码
 立即注册
查看: 373|回复: 0

Rosbirdge与Google Protobuf对比分析

[复制链接]
发表于 2022-3-31 21:07 | 显示全部楼层 |阅读模式
一、Rosbridge

1 简介

Rosbridge是一个用在ROS系统和其他系统之间的一个功能包,就像是它的名字一样,起到一个"桥梁"的作用,使得ros系统和其他系统能够进行交互.Rosbridge为非ROS程序提供了一个JSON

API,有许多与Rosbridge进行交互的前端,包括一个用于Web浏览器交互的WebSocket服务器。Rosbridge_suite是一个包含Rosbridge的元程序包,用于Rosbridge的各种前端程序包(如WebSocket程序包)和帮助程序包。

2 协议和实现

Rosbridge主要包含两部分内容:协议(Potocol)和实现(Implementation)

协议

Rosbridge Protocol提供了非ROS程序与ROS通信的具体的格式规范,规范基于JSON格式,包括订阅topic,发布message,调用server,设置参数,压缩消息等等.例如订阅topic的格式规范如下:

{ "op": "subscribe",

  "topic": "/cmd_vel",

  "type": "geometry_msgs/Twist"

}

此规范与所用的编程语言和传输方式无关,任何可以发送JSON格式的语音和传输方式都可以Rosbridge protocol进行交流,并且与ROS进行交互.

实现

Rosbridge_suite元程序包是实现Rosbridge Protocol并提供WebSocket传输层的包的集合。

这些软件包包括:

Rosbridge_library : 核心rosbridge软件包。Rosbridge_library负责获取JSON字符串并将命令发送到ROS,反过来接收处理ROS发过来的信息,将之转换为JSON字符串,并将结果转交给非ROS程序。

rosapi : 通过服务调用来访问某些ROS操作,这些服务通常为ROS客户端库保留的服务.这些操作包括获取和设置参数,获取主题列表等等。

rosbridge_server :

虽然Rosbridge_library提供JSON到ROS转换,但它将传输层留给其他人。Rosbridge_server提供了一个WebSocket连接,所以浏览器可以与ROS“交谈”。Roslibjs是一个浏览器的JavaScript库,可以通过rosbridge_server与ROS进行交流。

3 安装与使用

安装

Rosbridge是基于ROS的,首先要确保自己正确的安装完成了ROS之后可以启动终端执行命令:

sudo apt-get install ros- <rosdistro> -rosbridge-server

中间的为自己的ROS版本,依照自己的版本进行安装.

参考链接

二、Protobuf

Protobuf实际是一套类似Json或者XML的数据传输格式和规范,用于不同应用或进程之间进行通信时使用。通信时所传递的信息是通过Protobuf定义的message数据结构进行打包,然后编译成二进制的码流再进行传输或者存储。

1.Protobuf的优点

相比较而言,Protobuf有如下优点:

1)足够简单

2)序列化后体积很小:消息大小只需要XML的1/10 ~ 1/3

3)解析速度快:解析速度比XML快20 ~ 100倍

4)多语言支持

5)更好的兼容性,Protobuf设计的一个原则就是要能够很好的支持向下或向上兼容

2.使用

使用Protobuf有如下几个步骤:

1)定义消息

2)初始化消息以及存储传输消息

3)读取消息并解析

下面以一个实际的例子来说明如何使用Protobuf,先展示出项目的实际目录结构:


* 定义消息

Protobuf的消息结构是通过一种叫做Protocol Buffer Language的语言进行定义和描述的,实际上Protocol Buffer Language分为两个版本,版本2和版本3,默认不声明的情况下使用的是版本2,下面以版本2为来举个栗子, 假设我们定义了文件名为my.helloworld.proto的文件,如下:


-I: 是设定源路径

--python_out: 用于设定编译后的输出结果,如果使用其它语言请使用对应语言的option

最后一个参数是你要编译的proto文件

现在已经定义好了消息的数据结构,接下来看下如何使用

* 消息初始化和存储传输

我们来通过writer.py来初始化消息并存储为文件,代码如下:


Reference:

Developer Guide

Github

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2025-5-9 10:02 , Processed in 0.135519 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表