Rosbridge提供了一系列用于非ROS程序的JSON API,有不同的前端设备的操作方式,包括WebSocket Server和浏览器对ROS尽心操作。Rosbridge是一个meta-package,包括Rosbridge,多种前段包比如websocket包,和一个帮助包。
1.关于
Rosbridge由两个部分组成:协议和协议的实现
1.1 Rosbridge协议
Rosbridge协议是一个基于Rosbridge指令集合来操作ROS,一个订阅主题的协议格式:
1 2 3 4 5 |
{ "op": "subscribe", "topic": "/cmd_vel", "type": "geometry_msgs/Twist" } |
该规范是编程语言,并且与传输无关。这个想法是,任何可以发送JSON的语言或传输方式都可以使用rosbridge协议并与ROS交互。该协议涵盖了订阅和发布主题,服务调用,获取和设置参数,甚至压缩消息等等。
1.2 Rosbridge 操作
rosbridge_suite软件包是实现rosbridge协议并提供WebSocket传输层的软件包的集合。 软件包包括:
- rosbridge_library – 核心rosbridge软件包。 rosbridge_library负责获取JSON字符串并将命令发送到ROS,反之亦然。
- rosapi – 使某些ROS操作可以通过通常为ROS客户端库保留的服务调用进行访问。这包括获取和设置参数,获取主题列表等。
- rosbridge_server – 尽管rosbridge_library提供JSON <-> ROS转换,但它将传输层留给其他人。 Rosbridge_server提供了WebSocket连接,因此浏览器可以“交谈rosbridge”。 Roslibjs是浏览器的JavaScript库,可以通过rosbridge_server与ROS通讯。
3.安装
1 |
sudo apt-get install ros-melodic-rosbridge-server |
4.教程
4.1 入门教程
安装:
1 |
sudo apt-get install ros-melodic-rosbridge-server |
运行:
在安装ROS和rosbridge之后,您需要确保系统知道这些软件包。为ROS和rosbridge设置环境:
1 |
source /opt/ros/melodic/setup.bash |
剩下的就是运行rosbridge。要启动rosbridge及其软件包(例如rosbridge_server和rosapi),安装中将包含一个启动文件。要启动文件,请运行:
1 |
roslaunch rosbridge_server rosbridge_websocket.launch |
默认情况下,这将运行rosbridge并在端口9090上创建WebSocket。
您可以通过在ROS中设置〜/ port参数来配置端口。将在端口8080上运行rosbridge的示例启动文件如下所示:
1 2 3 4 5 |
<launch> <include file="$(find rosbridge_server)/launch/rosbridge_websocket.launch" > <arg name="port" value="8080"/> </include> </launch> |
与Rosbridge交互:
既然rosbridge已启动并且WebSocket连接可用,我们就可以创建一个基本的HTML网页来发送和接收对rosbridge的调用。
Roslibjs是一个JavaScript库,可以为您处理通信。查看roslibjs入门教程,使用roslibjs和rosbridge创建一个网页。
4.2 中级教程
Rosbridge套件随附了一组默认软件包,用于在WebSocket传输层上讨论rosbridge协议。但是,该协议与传输层无关,并且可以很好地支持TCP和其他传输。我们强烈建议您索取这些附加运输包的请求!
本教程旨在帮助您开始构建和开发rosbridge本身
Rosbridge 2.0已完全分解,其构建过程与其他基于Catkin的软件包相似。
-
安装rosbridge依赖项 rosauth
1<span id="line-1-2" class="anchor"></span>sudo apt-get install ros-groovy-rosauth
- Source ROS
1<span id="line-1-3" class="anchor"></span>source /opt/ros/groovy/setup.bash
- Create a workspace:
1<span id="line-1-4" class="anchor"></span>mkdir ~/ws
- Clone the rosbridge suite
123<span id="line-1-5" class="anchor"></span>mkdir ~/ws/src<span id="line-2-2" class="anchor"></span>cd ~/ws/src<span id="line-3-2" class="anchor"></span>git clone https://github.com/RobotWebTools/rosbridge_suite.git
- Build rosbridge
12<span id="line-1-6" class="anchor"></span>cd ~/ws<span id="line-2-3" class="anchor"></span>catkin_make
- Add the freshly installed rosbridge to your ROS path
12<span id="line-1-7" class="anchor"></span>cd ~/ws<span id="line-2-4" class="anchor"></span>source devel/setup.bash
You can now run rosbridge just like in the Running Rosbridge tutorial.