zoukankan      html  css  js  c++  java
  • ROS Learning-007 beginner_Tutorials ROS节点

    ROS Indigo beginner_Tutorials-06 ROS节点

    我使用的虚拟机软件:VMware Workstation 11
    使用的Ubuntu系统:Ubuntu 14.04.4 LTS
    ROS 版本:ROS Indigo

    一. 理解ROS 节点:

    ROS的节点: 可以说是一个可运行的程序。当然这个程序可不简单。因为它可以接受来自ROS网络上其他可运行程序的输出信息,也可以发送信息给ROS网络,被其他 ROS 可运行程序 接收。所以虽然你看ROS它是在执行好多个程序,但是它们可是相互关联的,是一个网络。所以 Willow Garage 公司管这种可运行的程序叫做: 节点

    二. 运行ros节点的大前提:

    运行ros节点的大前提就是启动roscore (它是运行所有ROS程序前 首先要运行的命令) 。新开一个终端(Ctrl+Alt+T):

    这里写图片描述

    roscore 命令执行完之后,它也会产生一个节点,这个节点是主节点,叫:/rosout

    三. 查看当前运行的 ROS 节点

    现在你可以重新打开一个终端(Ctrl+Alt+T)去运行你要运行的ROS节点程序了:
    我们先来看一下,当前有什么节点在运行:重新开一个终端,执行 rosnode list命令 就可以罗列出当前运行的所有ROS节点:

    这里写图片描述

    roscore命令 启动的就是 rosout 节点)
    如果我们想看一下 某个节点里面的具体的信息,要怎么做:

    $ rosnode info /rosout

    这里写图片描述

    没错,现在你也不知道这些信息有什么用处,你现在不知道没有关系,等用到时,我再介绍。

    四. 举个例子,运行一个节点:

    下面来具体运行一个 ros节点 程序,使用什么命令运行它 呢? 答案: rosrun 命令。

    比如: 运行一个 ROS 里的例子程序: (这个例子是开一个窗口,窗口里面有一只小海龟。我仅仅只是想举一个例子来让大家直观的看看ROS节点是个什么东西。)

    $ rosrun turtlesim turtlesim_node

    输出下面信息,并弹出一个TurtleSim窗口,如下图所示。

    [ INFO] [1472484820.593688966]: Starting turtlesim with node name /turtlesim
    [ INFO] [1472484820.599420738]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]

    这里写图片描述

    看到了吗,这就是 ros 节点。

    现在看一下这个 rosrun 命令的使用格式:

    
    # rosrun [package_name] [node_name]
    

    其中:package_name是程序包名;node_name是ros节点的可执行程序的名字。

    我们重新开个终端(Ctrl+Alt+T),执行 rosnode list 命令,再来看现在有哪些节点在运行:

    /rosout
    /turtlesim

    这里写图片描述

    五. 自定义节点的名字:

    如果你不喜欢这些默认生成的ROS节点名(/rosout /turtlesim). 你可以使用下面的方法改写它 ros节点的名称: (再新开一个终端)

    $ rosrun turtlesim turtlesim_node __name:=my_turtle

    这里写图片描述

    参数 __name 后面跟的就是你自定义的名字。

    再来看看当前运作的ros节点有哪些: (再新开一个终端)

    这里写图片描述

    六. ping一个ROS节点

    你看ROS它是在执行好多个程序,但是它们可是相互关联的,是一个网络。所以我们可以ping任何一个节点。

    rosnode ping /my_turtle

    这里写图片描述


    小小总结:

    我上面说了,ROS中的每个节点都可以将一些数据发布到ROS网络上(这个过程叫做:发布话题)。并且ROS的每个节点都可以在这个网络总线上接收自己想要的数据(这个过程叫订阅话题, 就像是你订阅一刊杂志一样)。
    所以下一讲,就讲: ROS 发布话题 和 订阅话题:

  • 相关阅读:
    搭建微信小程序服务
    Jodd
    $.post()提交了数据,return不给跳转
    Java前端Rsa公钥加密,后端Rsa私钥解密(支持字符和中文)
    Android线程间通讯的几种方式
    Spring MVC返回json数据给Android端
    后台Redis集成的博客
    Android Cookie共享到WebView避免再次登录(保持登录状态)
    Android Okhttp完美同步持久Cookie实现免登录
    Android JSON数据解析(GSON方式)
  • 原文地址:https://www.cnblogs.com/aobosir/p/5928594.html
Copyright © 2011-2022 走看看