rosbridge v2.0 协议规范

本文档详细介绍了ROSbridge v2.0协议规范,包括消息结构的改进,如碎片化、压缩和日志记录。ROSbridge服务器实现旨在方便添加和修改协议操作,将JSON处理与websockets服务器解耦。协议中定义了各种操作,如消息压缩/转换、ROS操作(发布、订阅、服务调用等)和状态消息。客户端和服务器之间的交互通过带有'OP'字段的JSON对象进行,OP字段指示消息类型。
摘要由CSDN通过智能技术生成

本文来源:

https://github.com/RobotWebTools/rosbridge_suite/blob/groovy-devel/ROSBRIDGE_PROTOCOL.md#344-subscribe 

       这篇文档概述了rosbridge v2.0 协议规范。V2.0协议包含了自 rosbridge v1.0发布以来出现的许多需求,并进行了少量修改,以便于更大的可扩展性。在其核心,协议仍然包含相同的操作,其语义与以前的版本相同。主要的变化在于消息的结构,从消息信息中分离出控制信息;主要新增的是碎片、压缩和日志记录。

      本文档概述了协议规范,但也涉及rosbridge服务器实现的预期方向。rosbridge 2.0服务器实现的架构是为了便于添加和修改协议操作。此外,rosbridge v2.0服务器将JSON处理与websockets服务器解耦,允许用户任意更改他们正在使用的特定websockets服务器实现。  

rosbridge 传递的消息是JSON对象。唯一需要的字段是“OP”字段,它指定该消息的操作,每个“OP”然后指定它自己的消息语义。

rosbridge 协议是一组“OP”代码,它定义了多个操作,以及每个操作的语义。

rosbridge 服务器是一个接受Websockets连接并实现rosbridge 协议的服务器。

rosbridge 的全部源代码位于rosbridge_suite 包中。该包链接:https://github.com/robotwebtools/rosbridge_suite,在文档的第4.5节详细介绍了rosbridge_suite 包的各个部分。

1. The rosbridge transport

在基本情况下,一个rosbridge消息是一个带有一个称为“OP”的字符串字段的JSON对象。例如:{ "op": "Example" }
——》OP字段表示的是消息的类型。OP有不同值的消息表示 不同的处理。只要JSON对象的消息带有OP字段,那么就是一个有效的 rosbridge 消息。 

当然,消息还可以提供任意字符串或整型ID: 
        { "op":  "Example",
           "id": "fred"
         }

如果一个带有ID的消息被发送给 服务器 ,那么相关的响应消息通常也包含该ID。此操作引起的日志消息也将包含ID。

在语义上,ID不是它所在的特定消息的标识符,而是用于交互的标识符,它包括来回消息中的许多操作,因此,ID可以用于同一事件的多个消息中。

2. The rosbridge protocol

rosbridge协议定义了许多不同的操作。它们如下:

(1)Message compression / transformation:
        fragment - a part of a fragmented message 
        png - a part of a PNG compressed fragmented message
(2)Rosbridge status messages:
        set_status_level - a request to set the reporting level for rosbridge status messages 
        status - a status message
(3)Authentication:
        auth - a set of authentication credentials to authenticate a client connection
(4)ROS operations:
        advertise – advertise that you are publishing a topic 
        unadvertise – stop advertising that you are publishing topic publish - a published ROS-message 
        subscribe - a request to subscribe to a topic 
        unsubscribe - a request to unsubscribe from a topic call_service - a service call 
        service_response - a service response

通常,客户端采取的操作(例如发布和订阅)具有操作码,这些操作码是动作(subscrib

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值