一、准备工作

下载一个轻量级的模拟器

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

ROS学习(六)—— 理解ROS节点的更多相关文章

  1. ROS学习笔记5-理解节点(Node)

    本文内容来源于:http://wiki.ros.org/ROS/Tutorials/UnderstandingNodes 图(Graph)概念概览 节点(Nodes):一个节点是ROS下面一个可执行程 ...

  2. ROS学习(七)—— 理解ROS Topic

    一.准备工作 1.打开roscore roscore 2.turtlesim 打开一个turtulesim节点 rosrun turtlesim turtlesim_node 3.turtle key ...

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

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

  4. 关于ROS学习的一些反思

    距离发布上一篇ROS的博客已经过去两年了,才发现原来自己已经这么久可没有写过关于ROS的文章,想来很是惭愧.这两年时间,自己怀着程序员的梦想,研究过RTOS,探索过Linux,编写过Android应用 ...

  5. SLAM+语音机器人DIY系列:(二)ROS入门——7.理解tf的原理

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  6. SLAM+语音机器人DIY系列:(二)ROS入门——8.理解roslaunch在大型项目中的作用

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  7. ROS知识(2)----理解ROS系统结构

    学习新事物,方法高于技术本身,如果没有把握"BIG PICTURE"的话很难理解进去.通过以下几点进行理解ROS: ROS实际上不是操作系统,他只是一个通信的框架,一个代码管理的架 ...

  8. 理解ros话题--6

    理解ROS话题(原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/) Description: 本教程介绍ROS话题(topics)以及如何使用ro ...

  9. ROS学习笔记

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

随机推荐

  1. Grid 拾遗

    *.GridSplitter属性是Grid面板的一个特性.(1)预留一行或一列,专门用于放置 GridSplitter对象,如果是行的话,把其Height 设置为 Auto,如果是列的话,把其 Wid ...

  2. Altium Designer 基本封装

    1. 按键的绘制和封装怎么画?如下图: 回答:注意元件的画法不要看错了,封装采用Miscellaneous Devices.IntLib[Footprint View]中的DPST-4 2.蜂鸣器的绘 ...

  3. 一个ActiveX control的创建过程

    创建 根据这篇文章的介绍:http://www.cnblogs.com/time-is-life/p/6354152.html 来创建,里面包含了创建的基本过程以及属性事件方法的使用. 使用: 参考文 ...

  4. [Algorithm] Binary tree: Level Order Traversal

    function Node(val) { return { val, left: null, right: null }; } function Tree() { return { root: nul ...

  5. android学习四(Activity的生命周期)

    要学好活动(Activity).就必需要了解android中Activity的声明周期.灵活的使用生命周期.能够开发出更好的程序,在android中是使用任务来管理活动的,一个任务就是一组存放在栈里的 ...

  6. HTTPS 原理与证书实践

    1.1 网络安全知识 1.1.1 网结安全出现背景 网络就是实现不同主机之间的通讯,网络出现之初利用TCP/IP协议簇的相关协议概念,已经满足了互连两台主机之间可以进行通汛的目的,虽然看似简简单单几句 ...

  7. LintCode: Binary Tree Postorder Traversal

    C++,递归 /** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *righ ...

  8. 查看java进程启动的详细参数和过程

    jsp 查看java进程: 6448 main 然后,使用jinfo pid 查看: jinfo 6448 有一行VM Flages:表示启动参数 VM Flags: -Dproc_main -*** ...

  9. Redis3.2.5 集群搭建以及Spring-boot测试

    1:集群中的机器信息 IP PORT 192.168.3.10 7000,7001,7002 192.168.3.11 7004,7005,7006 2:安装Redis 分别在10与11机器上面安装R ...

  10. EL和OGNL表达式的区分

    OGNL是通常要结合Struts 2的标志一起使用,如<s:property value="#xx" /> struts页面中不能单独使用,el可以单独使用 ${ses ...