ROS

ROS进阶学习(七) - rosbrige_suite

2017-06-22  本文已影响588人  Savior2016

rosbrige为没有ROS的功能模块提供了一个JSON的接口(JSON是一种websocket通讯的数据形式,非常简单除暴而不顾及内存,其实我挺不喜欢)。有很多前端可以与Rosbridge 互动,包括websocket服务器。Rosbridge_suite是一个复合的功能包,包含了rosbridge,各种前端封装包,和一个帮助包。
参考文献ROS wiki
源码https://github.com/RobotWebTools/rosbridge_suite.git

1 关于

这里包括两部分:协议和实现

1.1 Rosbridge协议

Rosbridge Protocol就是向ROS发送JSON命令的一个规范,使用这个协议订阅一个主题的例子如下:

{ "op": "subscribe",
  "topic": "/cmd_vel",
  "type": "geometry_msgs/Twist"
}

这个规范不针对任何编程语言和传输方式,只要支持JSON即可。

1.2 实现

rosbridge_suite是一个集合,提供了一个微博创可贴传输层。
这个包包括:

2 源码

源码可以直接由github获取:https://github.com/RobotWebTools/rosbridge_suite

3 安装

Rosbridge可以直接debian安装:

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

4 教程

4.1 初级教程

这个教程的内容是如何启动rosbridge server 并且和它通信。

4.1.1 安装Rosbridge

安装了ROS之后,就可以安装Rosbridge,指令如下:

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

4.1.2 运行Rosbridge

安装完ROS和Rosbridge以后,首先需要让系统知道他们的存在,就是配置一下环境变量:

source /opt/ros/kinetic/setup.bash

接下来就可以启动Rosbridge了,启动rosbridge和它的包,比如osbridge_server 和 rosapi,安装的时候安装了一个启动文件,用法如下:

roslaunch rosbridge_server rosbridge_websocket.launch

运行该文件,就会启动rosbridge并且创建了一个websocket,默认监听9090端口。
我们可以通过修改 ~/port 参数监听其他的端口,示例如下:

<launch>
  <include file="$(find rosbridge_server)/launch/rosbridge_websocket.launch" > 
     <arg name="port" value="8080"/>
  </include>
</launch>

4.1.3 与Rosbridge通信

可以找一个简单的websocket客户端在线测试网页,连接它测试一下。

4.2 进阶教程

这里要介绍的是如何在rosbridge上开发。

4.2.1 编译Rosbridge

Rosbridge 2.0支持像Catkin一样管理编译。

sudo apt-get install ros-kinetic-rosauth

其实前面已经安装过了

source /opt/ros/kinetic/setup.bash
mkdir ~/ws
mkdir ~/ws/src
cd ~/ws/src
git clone https://github.com/RobotWebTools/rosbridge_suite.git
cd ~/ws
catkin_make
cd ~/ws
source devel/setup.bash

后面可以参照教程4.1运行了。

上一篇 下一篇

猜你喜欢

热点阅读