原创博文:转载请标明出处(周学伟):http://www.cnblogs.com/zxouxuewei/tag/

一.Introduction:

机器人操作系统(ROS)是使机器人系统的不同部分能够发现,发送和接收数据的通信接口。MATLAB®支持ROS是一个函数库,允许您与启用ROS的物理机器人或机器人模拟器(如Gazebo®)交换数据。

本示例介绍如何:
     1.在MATLAB中设置ROS
     2.获取有关ROS网络中的功能的信息
     3.获取有关ROS消息的信息

二.ROS Terminology:

   ROS网络包括通过ROS通信的机器人系统(例如执行器或照相机接口)的不同部分。 网络可以分布在几台机器上。
     ROS主机协调ROS网络的不同部分。 它由主URI(统一资源标识符)标识,它指定主服务器正在运行的计算机的主机名或IP地址。
     ROS节点是包含相关ROS能力(例如发布者,订户和服务)的集合的实体。 ROS网络可以具有许多ROS节点。
     发布者,订阅者和服务是处理数据的不同种类的ROS实体。 他们使用消息交换数据。
     发布者向特定主题(例如“odometry”)发送消息,并且该主题的订阅者接收这些消息。 可以有与单个主题相关联的多个发布者和订阅者。

三.Initialize ROS Network:

使用rosinit初始化ROS。 默认情况下,rosinit在MATLAB中创建一个ROS主节点,并启动一个连接到主节点的“全局节点”。 “全局节点”由其他ROS函数自动使用。
rosinit

  使用rosnode列表查看ROS网络中的所有节点。

rosnode list

  使用exampleHelperROSCreateSampleNetwork来为ROS网络填充三个附加节点和样本发布者和订阅者。

exampleHelperROSCreateSampleNetwork

  再次使用rosnode列表,并观察到有三个新节点(node_1,node_2和node_3)。

rosnode list

  查看节点之间的关系图

四.Topics:

  使用rostopic列表查看ROS网络中可用的主题。 观察到有三个活动主题:/ pose,/ rosout和/ scan。 rosout是一个默认的日志记录主题,它总是存在于ROS网络中。 其他两个主题是作为示例网络  的一部分创建的。

rostopic list

    

  使用rostopic info 获取特定主题的信息。 以下命令显示node_1向/pose和/rosout主题发布消息,向/scan订阅消息。

rosnode info /node_1

五.Services:

  ROS服务为ROS网络上的“过程调用”提供了一种机制。 服务客户端向服务服务器发送请求消息,服务服务器处理请求中的信息并且返回响应消息。
     使用rosservice list查看ROS网络中的所有可用服务服务器。 以下命令显示两个服务(/ add和/ reply)可用。

rosservice list

   使用rosservice info获取有关特定服务的信息。

rosservice info /add

六.Messages

发布者,订阅者和服务使用ROS消息来交换信息。 每个ROS消息都有一个相关的消息类型,用于定义该消息中的信息的数据类型和布局。
     使用rostopic类型来查看主题使用的消息类型。 以下命令显示/pose主题使用类型为geometry_msgs /Twist的消息。

rostopic type /pose

  使用rosmsg show查看消息类型的属性。 geometry_msgs / Twist消息类型有两个属性,Linear和Angular。 每个属性是一个类型为geometry_msgs / Vector3的消息,依次具有类型为double  的三个属性。

rosmsg show geometry_msgs/Vector3

  使用rosmsg list查看MATLAB中可用的消息类型的完整列表。

rosmsg list

七.Shut Down ROS Network

  使用exampleHelperROSShutDownSampleNetwork从ROS网络中删除示例节点,发布者和订阅者。 仅当示例网络之前使用exampleHelperROSStartSampleNetwork创建时,才需要此命令。

exampleHelperROSShutDownSampleNetwork 

  在MATLAB中使用rosshutdown关闭ROS网络。 这将关闭由rosinit启动的ROS主服务器,并删除全局节点。 一旦你完成使用ROS网络,建议使用rosshutdown。

rosshutdown
Shutting down global node /matlab_global_node_87922 with NodeURI http://bat6303glnxa64:33679/
Shutting down ROS master on http://bat6303glnxa64:11311/.

Get started with ros -- 1的更多相关文章

  1. 阿里云VPS服务器,ROS内网穿透

    Aliyun Windows Server 2008 R2中建立vpn服务器,ros中使用pptp拨号连接 2.在Aliyun服务器中,修改hosts,将内网分配的ip映射到指定的域名,在Aliyun ...

  2. QT下调试基于ros的catkin项目

    1.首先告诉qt ros的搜索路径,通过修改qt creator 桌面启动程序来实现 sudo    gedit ~/.local/share/applications/DigiaQtOpenSour ...

  3. ROS学习(三)—— ROS文件系统

    一.预备工作 使用ros0tutorials程序包,先下载: sudo apt-get install ros-<distro>-ros-tutorials 其中<distro> ...

  4. ROS学习(二)—— 配置ROS环境

    一.管理环境 p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 如果你在查找和使用ROS软件包方面遇到了问题,请确保你已经正确配置了脚 ...

  5. ROS学习(一)—— 环境搭建

    一.配置Ubuntu软件仓库且选择ROS正确版本 二.添加source.list sudo sh -c 'echo "deb http://packages.ros.org/ros/ubun ...

  6. [ROS] Studying Guidance

    Reference: https://www.zhihu.com/question/35788789 安装指南:http://wiki.ros.org/indigo/Installation/Ubun ...

  7. ros::spin() 和 ros::spinOnce() 区别及详解

    版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5925381.html 博主提示:本文基于ROS Kinetic Kame,如有更(g ...

  8. Learning Roadmap of Robotic Operating System (ROS)

    ROS Wiki: http://wiki.ros.org/ Robots Using ROS Textbooks: A Gentle Introduction to ROS Learning ROS ...

  9. k-develop 在ros上面的应用

    sudo apt-get install kdevelop 根据wiki上面的ros 章节中,关于kdevelop的介绍,配置好环境即可. 导入工程时,选中src/src下面的章节,不过,需要注意去掉 ...

  10. ROS系统C++代码测试之gtest

    1. 安装gtestsudo apt-get install libgtest-dev 2.修改CMakeLists.txtfind_package(GTest REQUIRED)uncommend ...

随机推荐

  1. linux服务器的性能分析与优化(十三)

    [教程主题]:1.linux服务器的性能分析与优化 [主要内容] [1]影响Linux服务器性能的因素 操作系统级 Ø CPU 目前大部分CPU在同一时间只能运行一个线程,超线程的处理器可以在同一时间 ...

  2. eclipse中设置字体为VC经典字体Fixedsys

  3. css3动画属性系列之transform细讲scale缩放

    下面我们从3个方面开始介绍: 1.scale(x,y) 对元素进行缩放 X表示水平方向缩放的倍数 | Y表示垂直方向的缩放倍数 Y是一个可选参数,没有设置的话,则表示X,Y两个方向的缩放倍数是一样的. ...

  4. c++ 的makefile文件实例

    首先声明, 感谢九哥的帮助,因为从来没写过makefile, 所以一直是手动编译, 然后有一次写了三个文件, 需要编译, 而我只编译了一个文件, 所以一直出错, 九哥告诉我用makefile更方便, ...

  5. e565. 关闭的时候隐藏窗口

    By default, when the close button on a frame is clicked, nothing happens. This example shows how to ...

  6. MongoDB 3.X JAVA基本操作

    对Collection的操作 import java.util.ArrayList; import java.util.Iterator; import java.util.List; import ...

  7. pyhont备份php代码脚本

    #!/usr/bin/env python # encoding: utf-8 import time import os import sys import logging #create logg ...

  8. MyBatis通用Mapper技巧

    一.排序 错误代码:example.orderBy(BaseEntity.Field.GMTUpdate + " desc"); 正确方式: 一是:通过注解 @OrderBy(va ...

  9. TensorFlow:tf.train.Saver()模型保存与恢复

    1.保存 将训练好的模型参数保存起来,以便以后进行验证或测试.tf里面提供模型保存的是tf.train.Saver()模块. 模型保存,先要创建一个Saver对象:如 saver=tf.train.S ...

  10. UISegmentedControl: 增加代理方法

    UISegmentedControl 没有代理方法可以设置,不能在选择之前做预处理.为此,重写了 UISegmentedControl 创建文件 RFSegmentedControl,继承自 UISe ...