最新消息:

rosbridge_suite入门教程-rosbridge_suite介绍

ROS1/一代机器人系统 少儿编程 1678浏览 0评论
rosbridge_suite教程

rosbridge_suite入门教程-rosbridge_suite介绍

说明:

  • 介绍rosbridge_suite协议及安装

rosbridge

  • Rosbridge为非ROS程序提供了一个使用ROS功能的JSON API。
  • 有许多前端与rosbridge接口,包括一个WebSocket服务器,用于Web浏览器进行交互。
  • Rosbridge_suite是一个包含rosbridge的元包,rosbridge的各种前端包,像一个WebSocket包和帮助包。
  • rosbridge包含两个部分:
    • rosbridge协议
    • rosbridge实现

rosbridge协议

  • rosbridge协议是用于向ROS(并且在理论上,任何其他机器人中间件)发送基于JSON的命令的规范。
  • 订阅主题的协议示例:
{ "op": "subscribe",
  "topic": "/cmd_vel",
  "type": "geometry_msgs/Twist"
}
  • 规范是编程语言和传输方式无关。
  • 想法是任何语言或传输可以发送JSON形式的rosbridge协议与ROS交互。
  • 协议涵盖订阅和发布主题,服务调用,获取和设置参数,甚至压缩消息等。
  • 详细的规范定义参考github说明

rosbridge实现

  • rosbridge_suite包是一个包集合,用于实现rosbridge协议和提供WebSocket传输层。
  • 包含如下几个包:
    • rosbridge_library – 核心rosbridge包。rosbridge_library负责获取JSON字符串并将命令发送到ROS,反之亦然。
    • rosapi – 通过服务调用使某些ROS actions可访问。 这包括获取和设置参数,获取主题列表等。
    • rosbridge_server – 虽然rosbridge_library提供了JSON ROS转换,但它将传输层留给其他人。
      • Rosbridge_server提供了一个WebSocket连接,所以浏览器可以“与rosbridge交谈”。
      • Roslibjs是一个浏览器的JavaScript库,可以通过rosbridge_server与ROS交谈。

rosbridge安装

  • 新终端输入:
sudo apt-get install ros-<rosdistro>-rosbridge-server
  • 为对应的ros版本,如indigo

Rosbridge运行

  • 新终端,运行rosbridge并启动websocket:
roslaunch rosbridge_server rosbridge_websocket.launch
  • 默认情况下,这将运行rosbridge并创建一个WebSocket在端口9090
  • 您可以通过在ROS中设置~/port参数来配置端口。
  • 例如修改端口为8080,如下所示:
<launch>
  <include file="$(find rosbridge_server)/launch/rosbridge_websocket.launch" > 
     <arg name="port" value="8080"/>
  </include>
</launch>
  • 现在rosbridge已经启动,并且WebSocket连接可用,我们可以创建一个基本的HTML网页发送和接收呼叫rosbridge。
  • Roslibjs是一个JavaScript库,为您处理通信。
  • 查看roslibjs教程的入门,使用roslibjs和rosbridge创建一个网页。

Rosbridge开发

  • Rosbridge套件提供了一套默认的套件,用于在WebSocket传输层使用rosbridge协议。
  • 然而,协议是传输层无关的,并且可以非常好地支持TCP和其他传输。

(1)构建Rosbridge包

  • 安装rosauth
sudo apt-get install ros-indigo-rosauth
  • 加入ROS环境
source /opt/ros/indigo/setup.bash
  • 创建工作空间和下载代码
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ git clone https://github.com/RobotWebTools/rosbridge_suite.git
  • 编译
$ cd ~/catkin_ws
$ catkin_make
  • 加入工作环境
$ cd ~/catkin_ws
$ source devel/setup.bash

您必须 登录 才能发表评论!