Get started with ros -- 1
原创博文:转载请标明出处(周学伟):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

使用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的更多相关文章
- 阿里云VPS服务器,ROS内网穿透
Aliyun Windows Server 2008 R2中建立vpn服务器,ros中使用pptp拨号连接 2.在Aliyun服务器中,修改hosts,将内网分配的ip映射到指定的域名,在Aliyun ...
- QT下调试基于ros的catkin项目
1.首先告诉qt ros的搜索路径,通过修改qt creator 桌面启动程序来实现 sudo gedit ~/.local/share/applications/DigiaQtOpenSour ...
- ROS学习(三)—— ROS文件系统
一.预备工作 使用ros0tutorials程序包,先下载: sudo apt-get install ros-<distro>-ros-tutorials 其中<distro> ...
- ROS学习(二)—— 配置ROS环境
一.管理环境 p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 如果你在查找和使用ROS软件包方面遇到了问题,请确保你已经正确配置了脚 ...
- ROS学习(一)—— 环境搭建
一.配置Ubuntu软件仓库且选择ROS正确版本 二.添加source.list sudo sh -c 'echo "deb http://packages.ros.org/ros/ubun ...
- [ROS] Studying Guidance
Reference: https://www.zhihu.com/question/35788789 安装指南:http://wiki.ros.org/indigo/Installation/Ubun ...
- ros::spin() 和 ros::spinOnce() 区别及详解
版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5925381.html 博主提示:本文基于ROS Kinetic Kame,如有更(g ...
- Learning Roadmap of Robotic Operating System (ROS)
ROS Wiki: http://wiki.ros.org/ Robots Using ROS Textbooks: A Gentle Introduction to ROS Learning ROS ...
- k-develop 在ros上面的应用
sudo apt-get install kdevelop 根据wiki上面的ros 章节中,关于kdevelop的介绍,配置好环境即可. 导入工程时,选中src/src下面的章节,不过,需要注意去掉 ...
- ROS系统C++代码测试之gtest
1. 安装gtestsudo apt-get install libgtest-dev 2.修改CMakeLists.txtfind_package(GTest REQUIRED)uncommend ...
随机推荐
- 安全运维之:网络实时流量监测工具iftop
网络管理是基础运维中一个很重要的工作,在看似平静的网络运行中,其实暗流汹涌,要保证业务系统稳定运行,网络运维者必须要了解网络的流量状态.各个网段的使用情形,带宽的利用率.网络是否存在瓶颈等,同时,当网 ...
- 【css】绝对定位的元素在 ie6 下不显示
问题描述: 在 ie6 中如果一个浮动元素与绝对定位元素相邻的话,在某些情况下绝对定位元素将会消失. 产生原因: 只有当绝对定位元素的邻近浮动元素的宽度大于父层宽度减 3 时(即如果父层宽度是 300 ...
- Change Data template dynamically
1. Attached Property bound to task state. Any change will dynamically set data template.2. Visual St ...
- 解决DoubanFM第三方客户端UI线程与工作线程交互问题
最新文章:Virson's Blog 首先要感谢yk000123的慷慨开源,开源地址见:http://doubanfm.codeplex.com/ 最近正好在学习WPF,然后在Codeplex上找到了 ...
- Axiom3D:Ogre动画基本流程与骨骼动画
在Axiom中,Animation类用于管理动画,在此对象中主要管理着AnimationTrack对象,此对象用于管理动画的各种类型的每一桢.在Axiom中,动画类型主要有变形动画,姿态动画,骨骼动画 ...
- mysql流程函数if之类
表名: salary ———————— userid | salary| ———————— 1 | 1000 2 | 2000 3 | 3000 4 | null ... IF(value, t, f ...
- 【WPF】WPF DataGrid List数据源 双向绑定通知机制之ObservableCollection使用以及MultiBinding 的应用
以下代码实现了DataGrid的简单绑定List数据源 重点要提一下的是,绑定List数据源,但是不能直接用List.比如下面的代码,使用List<GridItem>只能实现数据修改的绑定 ...
- matlab中常用的函数
find()函数: 功能:用于返回矩阵中想要的元素的索引值: 用法: index = find(X), 当X为一个矩阵时,返回的index是一个列向量,表示矩阵X中非零值的索引值,这个索引值吧,是按把 ...
- Mac环境下配置tomcat的步骤详解
前言 相信对Java Web稍微知道一点,一般对Tomcat都不会陌生,Apache是普通服务器,本身只支持html即普通网页,可以通过插件支持PHP,还可以与Tomcat连通(单向Apache连接T ...
- autofac 实例生命周期
转自逆心博客园 autofac 实例生命周期 实例生命周期决定在同一个服务的每个请求的实例是如何共享的. 当请求一个服务的时候,Autofac会返回一个单例 (single instance作用域), ...