美文网首页ROS
ROS进阶学习(七) - rosbrige_suite

ROS进阶学习(七) - rosbrige_suite

作者: Savior2016 | 来源:发表于2017-06-22 17:03 被阅读588次

    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运行了。

    相关文章

      网友评论

        本文标题:ROS进阶学习(七) - rosbrige_suite

        本文链接:https://www.haomeiwen.com/subject/arjfqxtx.html