原创博文:转载请标明出处(周学伟):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. Gazebo构建小车模型并通过ROS控制

    Gazebo构建小车模型并通过ROS控制 介绍 编写车子的URDF文件 编写控制小车移动的插件(与ROS交互) 结尾 介绍  突然想试试Gazebo这款仿真软件,因为它可以让你在任何时候都有机器人玩. ...

  2. ROS中cv_bridge如何用python3进行编译

    最近遇到了个问题,cv_bridge实现了opencv和ros中图像数据类型的转换,但ros-melodic默认python版本是python2.在配置yolact环境的时候,要求是python3. ...

  3. VScode配置ROS环境

    创建一个文件夹 使用catkin_make编译工作空间的根目录 使用VScode打开 VScode 中编译 ros 快捷键 ctrl + shift + B 调用编译,选择:catkin_make:b ...

  4. ROS与深度相机入门教程:(2) 在ROS中驱动Intel D435i深度相机采集数据(遇到的问题)

    在ROS环境下完成数据的安装,需要安装基于ROS使用RealSense的包(包含安装RealSense SDK和ROS Kinetic) 接上篇:https://blog.csdn.net/m0_37 ...

  5. ROS与深度相机入门教程:(1)Ubuntu16.04 在ROS中驱动Intel D435i深度相机

    Intel在Github上开源了支持所有RealSense系列相机的SDK,包括了D400.SR300系列深度相机和T265双目跟踪相机,支持Linux.Windows.Mac OS以及Android ...

  6. 设备连接:Ubuntu16.04 ROS中连接Hokuyo激光雷达UTM-30LX-EW

    这次连接的设备如下:(以下是一步步的设备连接到采集数据的介绍,没法再详细了吧)      -----第一步:连接硬件---- 首先雷达需要的供电电压是12V,PC需要的供电电压是24V.所以本次连接是 ...

  7. 解决ros安装 使用roscore命令测试问题

    本人安装教程完成ROS的安装后,在进行测试如图1命令: 出现 解决办法输入完命令1后要输入命令2才行:即可测试成功. 测试成功的界面如下:

  8. 【camera-radar】基于ROS的多传感器融合感知系统实现(雷达+相机)(1)

    实现功能:代码下载地址:下载地址 1)基于深度学习的目标检测:2)基于雷达的距离估计和预测:3)多传感器感知结果融合模块. 环境配置.数据下载.节点启动 1. Install ROS melodic: ...

  9. ROS系统——部署OpenVINO版Nanodet超轻量目标检测器

    目录 0 背景 本人的实测效果: 1 环境搭建 2 先熟悉OpenVINO版nanodet的流程 3  在ROS里部署openvino版nanodet的流程 4 源码 4.1 main.cpp内容 4 ...

  10. ROS系统中实现点云聚类(realsense数据源)

    本文主要介绍ROS系统中如何订阅并解码realsense点云数据,并对点云进行稀疏.去噪.聚类. 环境配置见<ROS系统中从零开始部署YoloV4目标检测算法(3种方式)> 需要安装的第三 ...

最新文章

  1. 再学 GDI+[11]: DrawCurve - 绘制曲线
  2. Nature:“解构”母爱
  3. python读取文件报错必须有一个正确的读写方式_python文件操作
  4. java 跨域上传_java使用webuploader实现跨域上传详解
  5. Galgame研发日志:预算爆炸,问题不大
  6. 函数read、write、lseek
  7. idea maven dependencies 总是报红
  8. C#LeetCode刷题之#559-N叉树的最大深度​​​​​​​(Maximum Depth of N-ary Tree)
  9. C语言 动态开辟内存管理
  10. 面试中的智力题及编程实践
  11. Delphi 正则表达式起步
  12. 安装caffe时候找不到boost怎么办?(boost的引用问题make can‘t find Boost‘s include files)
  13. 微信小店如何退货退款?
  14. ps怎么撤销参考线_干货技巧 | Photoshop10大奇技淫巧(肯定有你不知道的!)
  15. opencv实现图片及视频流(摄像头)的人脸检测
  16. Java游戏实验报告_java俄罗斯方块游戏实验报告.doc
  17. 地理Essay范文的组成剖析
  18. 如何适配处理iphoneX底部的横条 ?(转)
  19. hypermesh 连接单元_HRS连接器U.FL-R-SMT-1(10)插座样图查询
  20. 关于杨创YC2440uboot移植

热门文章

  1. C# 3.0/3.5语法新特性示例汇总[转]
  2. 内存溢出和内存泄漏的定义,产生原因以及解决方法(面试经验总结)
  3. ldconfig命令详解,linux动态链接库
  4. 设置Sysctl.conf用以提高Linux的性能(最完整的sysctl.conf优化方案)
  5. 利用负载均衡优化和加速HTTP应用
  6. Python3中闭包介绍
  7. C/C++中switch用法的一种替换方式
  8. 【C++】智能指针(一)入门
  9. 6000毫安以上智能手机_6000大电池+骁龙8核处理器,Redmi新机来袭:价格太美
  10. python统计小说人物_Python数据分析之基情的择天记