一、准备工作

下载一个轻量级的模拟器

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. Sublime Text 3 配置 PHPCS 插件

    Download php code sniffer addon via Package Control in ST3. Download The php-cs-fixer File From This ...

  2. Spring开发 - 通过实现ApplicationContextAware在Servlet中调用注解的Service

    用过Spring MVC的人都知道,我们如何在Controller中注入Service,可以使用@Resource注解的方法. 有时候,实际在项目的过程中,我们需要在某个Servlet中使用Servi ...

  3. jQuery clearQueue

    clearQueue()方法与clearQueue()方法结合: .clearQueue()可用于删除通过.queue()方法添加到通用jQuery序列的任何函数. 示例: <!DOCTYPE ...

  4. PLT redirection through shared object injection into a running process

    PLT redirection through shared object injection into a running process

  5. 微信小程序 - 非入侵式布局

    非入侵式布局,就是不影响原有内容以及代码,增加用户体验感(UE)的一种方式. 例如我们每个接口必须返回: 0:请求成功 -1:请求失败 .... 这样就便于前端判断数据是否加载成功,然后以客观的方式提 ...

  6. 方法(method)和函数(function)有什么区别?

    方法(method)和函数(function)有什么区别? 定义和参数区别 函数是独立的功能,与对象无关,需要显示的传递数据 方法与对象和类相关,依赖对象而调用,可以直接处理对象上的数据,也就是隐式传 ...

  7. SQL Server时间戳

    select replace(replace(replace(replace(convert(varchar ,getdate() ,126) ,'-' ,'') ,' ' ,'') ,':' ,'' ...

  8. 測试AtomicInteger与普通int值在多线程下的递增操作

    日期: 2014年6月10日 作者: 铁锚 Java针对多线程下的数值安全计数器设计了一些类,这些类叫做原子类,当中一部分例如以下: java.util.concurrent.atomic.Atomi ...

  9. Semaphore的使用

    Semaphore也是一个线程同步的辅助类,可以维护当前访问自身的线程个数,并提供了同步机制.使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数. Semapho ...

  10. Python实现微信扫码支付模式二(NativePay)

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7649207.html 核心代码github地址:https://github.com/ygj0930/Pyth ...