本文内容来源于:http://wiki.ros.org/ROS/Tutorials/UnderstandingNodes

  1. 图(Graph)概念概览

    • 节点(Nodes):一个节点是ROS下面一个可执行程序,使用ROS与其他节点进行通信。
    • 消息(Messages):将数据订阅或者发布到主题时使用数据类型结构。
    • 主题(Topics):节点可以发布消息到主题,或者订阅主题来接收消息,以此实现和其他节点的数据交互。
    • 主机节点(Master):主机节点提供命名服务,以帮助节点找到其他节点。
    • ROS输出(rosout):在ROS中等价于stdout或者stderr(ROS中的标准输出)
    • ROS核心(roscore):主机节点+标准输出+参数服务器。
  2. ROS核心(roscore)
    roscore是使用ros运行的一个命令,需要在其他节点运行之前运行roscore。
    $ roscore
    ... logging to /home/shao/.ros/log/93b4e9f2-d146-11e9-a3fd-69f079ca327f/roslaunch-UAVlab1-13621.log
    Checking log directory for disk usage. This may take awhile.
    Press Ctrl-C to interrupt
    Done checking log file disk usage. Usage is <1GB. started roslaunch server http://UAVlab1:40901/
    ros_comm version 1.12.14 SUMMARY
    ======== PARAMETERS
    * /rosdistro: kinetic
    * /rosversion: 1.12.14 NODES auto-starting new master
    process[master]: started with pid [13631]
    ROS_MASTER_URI=http://UAVlab1:11311/ setting /run_id to 93b4e9f2-d146-11e9-a3fd-69f079ca327f
    process[rosout-1]: started with pid [13644]
    started core service [/rosout]

    运行成功后如上所示。

  3. rosnode命令
    使用rosnode命令可以查看ros节点相关的信息。例如:rosnode list命令可以列出运行的ros节点。
    新打开一个终端,运行rosnode list,如下:
    $ rosnode list
    /rosout

    可以看出,有一个rosout节点,为roscore命令启动的。
    使用rosnode info命令可以查看ros节点的信息:

    $ rosnode info /rosout
    --------------------------------------------------------------------------------
    Node [/rosout]
    Publications:
    * /rosout_agg [rosgraph_msgs/Log] Subscriptions:
    * /rosout [unknown type] Services:
    * /rosout/get_loggers
    * /rosout/set_logger_level contacting node http://UAVlab1:42313/ ...
    Pid: 13644
  4. rosrun运行节点

    rosrun命令可以运行ros节点,语法如下:

    $ rosrun [package_name] [node_name]
    

    官网该文档有问题,正确的应该是:

    rosrun <package> <executable>
    

    即第二个参数为可执行程序名,不一定和节点名一致。
    新打开一个终端,运行:

    $ rosrun turtlesim turtlesim_node
    

    小龟龟出现喽。

    然后再用rosnode可以看到:

    $ rosnode list
    /rosout
    /turtlesim

    可以看出来多了个turtlesim的节点。
    打开新终端,然后使用参数重映射,可以给节点名重命名。

    $ rosrun turtlesim turtlesim_node __name:=my_turtle
    

    然后运行rosnode list

    $ rosnode list
    /my_turtle
    /rosout
    /turtlesim

    可以看出来多了一个节点my_turtle。
    使用rosnode ping命令可以检查和某节点之间的通信,类似于ping命令。

    $ rosnode ping /my_turtle
    rosnode: node is [/my_turtle]
    pinging /my_turtle with a timeout of 3.0s
    xmlrpc reply from http://UAVlab1:43947/ time=0.296116ms
    xmlrpc reply from http://UAVlab1:43947/ time=0.949144ms
    xmlrpc reply from http://UAVlab1:43947/ time=0.707150ms
    xmlrpc reply from http://UAVlab1:43947/ time=0.704050ms
    xmlrpc reply from http://UAVlab1:43947/ time=1.071930ms

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

  1. ROS学习笔记七:在ROS中使用USB摄像头

    下面是一些USB摄像头的驱动(大多数摄像头都支持uvc标准): 1 使用软件库里的uvc-camera功能包 1.1 检查摄像头 lsusb ----------------------------- ...

  2. 微信小程序开发:学习笔记[7]——理解小程序的宿主环境

    微信小程序开发:学习笔记[7]——理解小程序的宿主环境 渲染层与逻辑层 小程序的运行环境分成渲染层和逻辑层. 程序构造器

  3. ROS学习笔记八:基于Qt搭建ROS开发环境

    1 前言 本文介绍一种Qt下进行ROS开发的完美方案,使用的是ros-industrial的Levi-Armstrong在2015年12月开发的一个Qt插件ros_qtc_plugin,这个插件使得Q ...

  4. ROS学习笔记2-基本概念

    本笔记来源于:http://wiki.ros.org/ROS/Concepts ROS文件系统级别文件系统级别主要包含了你能在ROS的磁盘上遇到的资源,包括: 包(Packages):包是ROS中资源 ...

  5. Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识

    目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...

  6. COCOS2D-X学习笔记(一)-----Node类的学习

    Node类(在3.0版本以下叫CCNode):节点类. 本文记录以下几个方法的学习笔记: init()和onEnter()这俩个方法都是CCNode的方法.其区别如下: 1.其被调用的顺序是先init ...

  7. ROS学习笔记

    创建ros工作环境: mkdir -p ~/catkin_ws/src //建立项目目录,同时生成src文件夹 cd ~/catkin_ws/ //进入项目目录 catkin_make //编译项目, ...

  8. ROS学习笔记(一) : 入门之基本概念

    目录 基本概念 1. Package 2. Repositories 3. Computation Graph 4. Node 5. Master 6. Message 7. Topic 8. Ser ...

  9. Nodejs学习笔记(六)—Node.js + Express 构建网站预备知识

    前言 前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识! 主要是些基础的东西... 如何去创建路由规则.如何去提交表单并接收表单项的值.如何去给密 ...

随机推荐

  1. CSS-自适应网页使用@media和rem

    @media 查询 @media 媒体查询选择性加载css,意思是自动探测屏幕宽度,然后加载相应的CSS文件.可以针对不同的屏幕尺寸设置不同的样式,特别是需要设置设计响应式的页面,@media 是个不 ...

  2. WechatPro_页面创建

    1. 全局三个文件,app.js, app.json, app.wxss(名称不可更改) 2.创建Pages目录文件,用来放置各个页面 3.创建页面(页面命名,创建四个文件) (1)js:页面逻辑实现 ...

  3. 本地简单HTTP服务器

    cd进要启动服务器的目录 python -m http.server 7800 (Python 3.x) python -m SimpleHTTPServer 7998 (Pyhton2.x)

  4. Fluent_Python_Part2数据结构,04-text-byte,文本和字节序列

    文本和字节序列 人使用文本,计算机使用字节序列 1. 大纲: 字符.码位和字节表述 bytes.bytearray和memoryview等二进制序列的独特特性 全部Unicode和陈旧字符集的编解码器 ...

  5. docker安装-单机/多机安装

      操作系统ubuntu14.04 16.04 v单机安装步骤: #安装httpsca证书 apt-get install apt-transport-https ca-certificates #添 ...

  6. Vue——解决移动端键盘弹起导致的页面fixed定位元素布局错乱

    最近做了一个移动端项目,页面主体是由form表单和底部fixed定位的按钮组成,当用户进行表单输入时,手机软键盘弹起,此时页面的尺寸发生变化,底部fixed定位的元素自然也会上移,可能就会覆盖页面中的 ...

  7. Cisco Spectrum Expert(Wave2 AP)

    在一些版本中,我们可能会发现,AP16,26或AP17,27,37等支持Spectrum Expert Connect (即SE-Connect),该模式可以让AP将频谱分析所述数据发送到对应的分析仪 ...

  8. ANSYS-APDL施加扭转载荷CERIG命令

    目录 1. 要求 2. ANSYS有限元分析 2.1 APDL建模 2.2 APDL施加载荷 2.3 APDL查看结果 3. 举一反三 1. 要求 一块0.8m*0.4m*0.04m厚的钢板,在板的两 ...

  9. 21. Regular Expressions--from Apache

    转自: http://jmeter.apache.org/usermanual/regular_expressions.html 21.1 Overview¶ JMeter includes the ...

  10. 微信跳一跳辅助JAVA 自动模拟点击

    工具:ADB 原理: 开始游戏后,使用ADB工具让手机截屏发送到电脑 分析图像中小人与目标中心点间的距离,根据一定比例计算出需要触屏的时间 使用ADB进行模拟点击(触屏)相应的时间,完成精准跳跃 程序 ...