zoukankan      html  css  js  c++  java
  • ROS学习(六)—— 理解ROS节点

    一、准备工作

        下载一个轻量级的模拟器

    sudo apt-get install ros-kinetic-ros-tutorials

    二、图概念的理解

    1、Nodes:一个节点就是一个可执行文件,用来与其他节点进行通信

    2、Topic:话题,节点可以发布消息到话题,也可以订阅话题以接受消息。

    3、Master:节点管理器,帮助节点找到彼此

    4、rosout:

    5、roscore:主机 + rosout + 参数服务器

    三、节点

         一个节点不过是ROS程序包中的一个可执行文件

    (1)ROS节点可以使用ROS客户库与其他节点通信

    (2)节点可以发布或者接受一个话题。

    (3)节点可以提供或使用某项服务

    四、客户端库

    ROS客户端库允许使用不同编程语言编写的节点之间互相通信:

    • rospy = python 客户端库

    • roscpp = c++ 客户端

    五、Roscore

       是执行所有ROS程序前必须执行的指令,执行后会出现如图信息

    六、使用rosnode

         打开新的终端,使用rosnode去看看运行orscore所做的。(什么鬼)

    1、rosnode显示当前运行的ROS节点信息。

    rosnode list       列出活跃的节点

        此时应该会看到

       这表示只有一个节点在运行,而rosout是用来收集和记录节点调试输出信息的,所以它总是运行。

    2、rosnode info  这条命令可以返回一个特定节点的信息。

    rosnode info /rosout

       这样返回了很多关于rosout的相关信息

    七、使用rosrun

    1、作用:

       rosrun 允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径)

    2、用法:

    rosrun [package_name] [node_name]

    3、一个例子

       运行:

    rosrun turtlesim turtlesim_node

       出现

    在一个新的终端中运行:

    rosnode list

         可以看到有2个节点在运行

    然后重要的是ROS一个很强大特性:可以通过命令行重新配置名称

         首先,关闭前面所有的终端(使用Ctrl +C),关闭之后运行

    rosrun turtlesim turtlesim_node __name:=my_turtle

      现在,我们退回使用 rosnode list,会输出

    /rosout
    /my_turtle

     八、rosnode全部api

  • 相关阅读:
    ubuntu16.04 下安装opencv2.4.9
    ubuntu16.04下CMake学习
    Ubuntu 16.04上用CMake图形界面交叉编译树莓派的OpenCV3.0
    BMP图片的C++水印算法
    OpenCV 2 学习笔记(9): 定义ROI(regions of interest):给图像加入水印
    OpenCV入门教程
    免费、高性能的人脸检测库(二进制)
    DBCP与C3P0数据库连接池
    (android高仿系列)今日头条 --新闻阅读器 (三) 完结 、总结 篇
    hadoop之WordCount源代码分析
  • 原文地址:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/6269815.html
Copyright © 2011-2022 走看看