ROS进阶学习(七) - rosbrige_suite

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是一个集合,提供了一个微博创可贴传输层。
这个包包括:

  • rosbridge_library 核心rosbridge包。rosbridge_library负责接受JSON命令并将指令发送给ROS,同样,由ROS发送的指令会由其转换为JSON字符串发出。
  • rosapi 使某个ROS可执行程序可以访问为ROS client libraries准备的服务。包括获取和设置参数,得到主题列表等。
  • rosbridge_server 当 rosbridge_library提供JSON <-> ROS的转换,它将传输层就提供给了其他程序。Rosbridge_server提供了一个websocket连接,所以浏览器就可以与rosbridge通信了。

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一样管理编译。

  • 1安装rosbridge依赖rosauth
sudo apt-get install ros-kinetic-rosauth

其实前面已经安装过了

  • 2 source一下
source /opt/ros/kinetic/setup.bash
  • 3 创建一个工作空间
mkdir ~/ws
  • 4 clone rosbridge suite 资源
mkdir ~/ws/src
cd ~/ws/src
git clone https://github.com/RobotWebTools/rosbridge_suite.git
  • 5 编译rosbridge
cd ~/ws
catkin_make
  • 6 安装
    把新编译的rosbridge安装到ROS路径
cd ~/ws
source devel/setup.bash

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • PART I 1.rosbridge介绍rosbridge(rosbridge_suite)是ros官方为开发者提...
    marine0131阅读 9,917评论 0 2
  • 创建一个ROS Package 这个教程包括使用roscreate-pkg或者catkin去创建一个新的packa...
    铁熊玩创客阅读 5,006评论 0 7
  • 大家好,关于机器人操作系统ROS的安装,很多文章都写的非常详细,我也在这些材料的帮助下,在VMware上安装了Ub...
    keepStriving阅读 7,551评论 2 8
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,647评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139