要求已经在Linux系统中安装一个学习用的ros软件包例子:

sudo apt-get install ros-indigo-ros-tutorials

ROS图形概念概述

  • nodes:节点,一个节点即为一个可执行文件,可以通过ROS和其他节点进行通信;
  • messages:消息,当订阅或者发布一个topic时使用的数据类型;
  • topics:话题,节点可以发布信息到topics或者从topics那里订阅信息;
  • master:节点管理器,ROS的name service,提供服务,例如让不同的节点可以找到彼此;
  • rosout:等价于ROS中的stdout/stderr;
  • roscore:master+rosout+parameter service(参数服务器)。

ROS客户端库函数允许使用不同的编程语言进行编程通信:

  • rospy:Python client library
  • roscpp:C++ client library

[1]roscore  在运行所有ROS程序前首先要运行的命令

//打开一个新终端
roscore &

[2]rosnode 显示当前运行的ROS节点信息,其中rosnode list命令列出了正在运行的节点名称。

//打开一个人新终端
$ rosnode list
/rosout

系统中只有一个节点rosout在运行,它将一直运行并收集和记录节点的调试输出。

[3]rosnode info返回一个特定节点的节点信息,事实上由它发布 /rosout_agg。

rosnode info /rosout

[4]rosrun命令允许你直接通过软件包名称运行软件包当中的节点(不需要知道软件包的所在路径,但必须是在ROS的搜索目录范围之内)。

使用方法:

rosrun [package_name] [node_name]

我们现在运行软件包turtlesim中的turtlesim_node节点:

rosrun turtlesim turtlesim_node

检验:在一个新窗口中:

$ rosnode list
/rosout
/turtlesim

[5]在命令行中重新分配名字

$ rosrun turtlesim turtlesim_node __name:=my_turtlesim
$ rosnode list
/my_turtlesim
/rosout

[6]命令rosnode ping:

$ rosnode ping /my_turtlesim
rosnode: node is [/my_turtlesim]
pinging /my_turtlesim with a timeout of .0s
xmlrpc reply from http://ubuntu:33201/ time=0.409842ms
xmlrpc reply from http://ubuntu:33201/ time=1.335144ms
xmlrpc reply from http://ubuntu:33201/ time=1.242876ms
xmlrpc reply from http://ubuntu:33201/ time=1.311064ms
xmlrpc reply from http://ubuntu:33201/ time=1.254082ms

总结

  • roscore=ros+core,master(为ROS提供名称服务)+rosout(stdout/stderr)+parameter server。所以在使用ROS的时候的第一件事就是运行roscore来启动这些服务;
  • rosnode=ros+node,ROS tool to get information about a node;
  • rosrun=ros+run,runs a node from a given package。

ROS学习笔记三(理解ROS节点)的更多相关文章

  1. ROS学习笔记三:编写第一个ROS节点程序

    在编写第一个ROS节点程序之前需要创建工作空间(workspace)和功能包(package).   1 创建工作空间(workspace) 创建一个catkin_ws: #注意:如果使用sudo一次 ...

  2. ROS学习笔记二:ROS系统架构及概念

    本文主要是了解ROS的系统架构.文件夹结构以及工作所需的核心文件. ROS系统架构主要被设计和划分为三部分,每一部分代表一个层级的概念:文件系统级(The filesystem level).计算图级 ...

  3. ROS学习手记 - 5 理解ROS中的基本概念_Services and Parameters

    上一节完成了对nodes, Topic的理解,再深入一步: Services and Parameters 我不理解为何 ROS wiki 要把service与parameter放在一起介绍, 很想分 ...

  4. ROS学习笔记一:ROS安装与测试

    1 Ubuntu和ROS版本的对应关系 Ubuntu 和 ROS 都存在不同的版本,其对应关系如下: 注:如果Ubuntu版本和ROS版本不对应的话,安装就不会成功了- 笔者安装的是Ubuntu14. ...

  5. ROS学习笔记一(ROS的catkin工作空间)

    在安装完成ROS indigo之后,需要查看环境变量是否设置正确,并通过创建一个简单的实例来验证ROS能否正常运行. 1 查看环境变量 在ROS的安装过程中,我们执行了如下命令:(此命令就是向当前用户 ...

  6. ROS学习笔记(七)——节点

    NEW 1 #打开新的终端,以后不再注释$ sudo apt-get install ros-<distro>-ros-tutorials #下载一个教学用的仿真器$ roscore #运 ...

  7. ROS学习笔记(三)

    机器人建模与仿真URDF(Unified Robot Descrption Format,统一机器人描述格式),ROS提供了URDF的c++解析器.安装语法检查工具sudo apt-get insta ...

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

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

  9. ROS学习笔记九:ROS工具

    ROS有各种工具可以帮助用户使用ROS.应该指出,这些GUI工具是对输入型命令工具的补充.如果包括ROS用户个人发布的工具,那么ROS工具的数量很庞大.其中,本文讨论的工具是对于ROS编程非常有用的辅 ...

随机推荐

  1. 新手搭建 nginx + php (LNMP)

    配置源 纯净的Centos 6.5系统 配置163yum源 (这个比较简单,百度能解决很多问题) 开始 安装  开发软件包:yum  -y groupinstall  "Developmen ...

  2. Sqoop+mysql+Hive+ Ozzie数据仓库案例

    mysql 数据库脚本为: /*==============================================================*/ /* DBMS name: MySQL ...

  3. unicode 转码 ansi

    #include "stdafx.h"#include <Windows.h>#include <stdio.h> HRESULT SomeCOMFunct ...

  4. 两个栈实现队列 Python实现

    # coding=utf-8 MAX_LENGTH = 100 SUCCESS = 1 FAIL = 0 ERROR = -1 class Queue(object): stack_fir = Non ...

  5. HTML5 Canvas ( 创建图形对象 ) createImageData

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. leetcode7

    public class Solution { public int Reverse(int x) { ; ) { fuhao = -; } try { x = Math.Abs(x); } catc ...

  7. DSHTTPService

    DSHTTPService Filters 压缩过滤器的使用 The Filters property specifies the DataSnap communication filters for ...

  8. random内置模块

    import random random.random() #生成0-1的随机浮点数 random.randint(1, 10) #生成1-10的整数 random.randrange(1,10) # ...

  9. egret -纹理集的制作

    1. 理集的使用 :http://www.codeandweb.com/ 下载软件: TexturePackergithub: 相关工具:https://github.com/ping-chen/eg ...

  10. Java常见的乱码解决方式

    JAVA几种常见的编码格式(转)   简介 编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换较多.本文将向你详细介绍 Java 中编码 ...