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

ROS学习(六)—— 理解ROS节点的更多相关文章
- ROS学习笔记5-理解节点(Node)
本文内容来源于:http://wiki.ros.org/ROS/Tutorials/UnderstandingNodes 图(Graph)概念概览 节点(Nodes):一个节点是ROS下面一个可执行程 ...
- ROS学习(七)—— 理解ROS Topic
一.准备工作 1.打开roscore roscore 2.turtlesim 打开一个turtulesim节点 rosrun turtlesim turtlesim_node 3.turtle key ...
- ROS学习笔记三:编写第一个ROS节点程序
在编写第一个ROS节点程序之前需要创建工作空间(workspace)和功能包(package). 1 创建工作空间(workspace) 创建一个catkin_ws: #注意:如果使用sudo一次 ...
- 关于ROS学习的一些反思
距离发布上一篇ROS的博客已经过去两年了,才发现原来自己已经这么久可没有写过关于ROS的文章,想来很是惭愧.这两年时间,自己怀着程序员的梦想,研究过RTOS,探索过Linux,编写过Android应用 ...
- SLAM+语音机器人DIY系列:(二)ROS入门——7.理解tf的原理
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...
- SLAM+语音机器人DIY系列:(二)ROS入门——8.理解roslaunch在大型项目中的作用
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...
- ROS知识(2)----理解ROS系统结构
学习新事物,方法高于技术本身,如果没有把握"BIG PICTURE"的话很难理解进去.通过以下几点进行理解ROS: ROS实际上不是操作系统,他只是一个通信的框架,一个代码管理的架 ...
- 理解ros话题--6
理解ROS话题(原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/) Description: 本教程介绍ROS话题(topics)以及如何使用ro ...
- ROS学习笔记
创建ros工作环境: mkdir -p ~/catkin_ws/src //建立项目目录,同时生成src文件夹 cd ~/catkin_ws/ //进入项目目录 catkin_make //编译项目, ...
随机推荐
- linux里tmpfs文件系统
linux里tmpfs文件系统 是一个虚拟内存文件系统,它不同于传统的用块设备形式来实现的Ramdisk,也不同于针对物理内存的Ramfs.Tmpfs可以使用物理内存,也可以使用交换分区. umoun ...
- 转:Eclipse配色方案
http://www.cnblogs.com/arci/archive/2011/01/23/1942646.html 参考配色方案: http://www.cs.cmu.edu/~maverick/ ...
- 基于PHP构建OAuth 2.0 服务端 认证平台
OAuth2.0 认证服务 安装 你可以在github上下载OAuth Server PHP,也可以用下列命令下载,不过内容都是一样的 mkdir my-oauth2-walkthrough cd m ...
- [Go] Returning Multiple Values from a Function in Go
Returning multiple values from a function is a common idiom in Go, most often used for returning val ...
- (纪录片)数学的故事 The Story of Maths (2008)
简介: 导演: Robin Dashwood编剧: Marcus du Sautoy主演: Marcus du Sautoy类型: 纪录片官方网站: www.bbc.co.uk/programmes/ ...
- git 本地与服务器的同步
如果在服务器上直接用 git init 则会自动在当前目录创建.git目录但在本地clone后修改后,不能push,这是由于git默认拒绝了push操作,需要进行设置,修改.git/config添加如 ...
- angular.element()的用法
1.引用jQuery的前提下,和$用法基本相同:angular.element('#').html() 例如: angular.element('#test').html() angular.elem ...
- 通过项目逐步深入了解Mybatis<二>
Mybatis 解决 jdbc 编程的问题 1. 数据库链接创建.释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题. 解决:在SqlMapConfig.xml中配置数据链接池 ...
- Spring-boot加载resources下的文件
加载方式: FileInputStream keyStoreIn = new FileInputStream(ResourceUtils.getFile("classpath:ca/clie ...
- nyoj 119士兵杀敌(三)(线段树区间最值查询,RMQ算法)
题目119 题目信息 执行结果 本题排行 讨论区 士兵杀敌(三) 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描写叙述 南将军统率着N个士兵,士兵分别编号为1~N,南将军常 ...