ROS学习笔记四:理解ROS节点

原创

ROS学习笔记四:理解ROS节点

ROS学习笔记四:理解ROS节点

本节主要介绍ROS图形概念,讨论ROS命令行工具roscore、rosnode和rosrun。

要求

要求已经在Linux系统中安装一个学习用的ros软件包例子:

sudo apt-get install ros-indigo-ros-tutorials
   
   
   
   
  • 1

ROS图形概念概述

  • nodes:一个节点可以通过ROS和其他节点进行通信;
  • messages:当订阅或者发布一个topic时使用的数据类型;
  • topics:节点可以发布信息到topics或者从topics那里订阅信息;
  • master:ROS的name service,例如让不同的节点可以找到彼此;
  • rosout:等价于ROS中的stdout/stderr;
  • roscore:master+rosout+parameter service。

节点

一个节点仅仅是ROS软件包中的一个可执行文件,ROS节点使用客户端库函数和其他节点进行通信,节点可以从topic中订阅信息,也可发送消息至topic,同时节点也可以使用或者提供服务。

客户端库函数

ROS客户端库函数允许使用不同的编程语言进行编程通信:

  • rospy:Python client library
  • roscpp:C++ client library

roscore

roscore是你在使用ROS的时候第一件应该做的事:

roscore &
   
   
   
   
  • 1

然后就会看到输出的如下信息:

[1] 4080
mountzf@ubuntu:~/ros_tutorial$ ... logging to /home/mountzf/.ros/log/0491d61a-69eb-11e6-93e8-000c29521e21/roslaunch-ubuntu-4080.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://ubuntu:32777/
ros_comm version 1.11.20


SUMMARY
========

PARAMETERS
 * /rosdistro: indigo
 * /rosversion: 1.11.20

NODES

auto-starting new master
process[master]: started with pid [4092]
ROS_MASTER_URI=http://ubuntu:11311/

setting /run_id to 0491d61a-69eb-11e6-93e8-000c29521e21
process[rosout-1]: started with pid [4105]
started core service [/rosout]
   
   
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

使用rosnode

打开一个新的终端窗口,看看运行roscore之后会出现些什么。rosnode显示了现在正在运行的ROS节点的信息。其中rosnode list命令列出了正在运行的节点名称。

rosnode list
/rosout
   
   
   
   
  • 1
  • 2

这说明现在系统中只有一个节点rosout在运行,它将一直运行并收集和记录节点的调试输出。命令rosnode info返回一个特定节点的节点信息。

rosnode info /rosout
   
   
   
   
  • 1

这将返回节点rosout的一些信息:

Node [/rosout]
Publications: 
 * /rosout_agg [rosgraph_msgs/Log]

Subscriptions: 
 * /rosout [unknown type]

Services: 
 * /rosout/set_logger_level
 * /rosout/get_loggers


contacting node http://ubuntu:35108/ ...
Pid: 4105
   
   
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

使用rosrun

rosrun命令允许你直接通过软件包名称运行软件包当中的节点(不需要知道软件包的所在路径,但必须是在ROS的搜索目录范围之内)。
使用方法:

rosrun [package_name] [node_name]
   
   
   
   
  • 1

所以现在我们可以运行软件包turtlesim中的turtlesim_node节点:

rosrun turtlesim turtlesim_node
   
   
   
   
  • 1

在一个新窗口中

rosnode list
/rosout
/turtlesim
   
   
   
   
  • 1
  • 2
  • 3

ROS中很有力的一个特征是你可以在命令行中重新分配名字

rosrun turtlesim turtlesim_node __name:=my_turtlesim
rosnode list
/my_turtlesim
/rosout
   
   
   
   
  • 1
  • 2
  • 3
  • 4

如上,我们的节点名称更改为了my_turtlesim,下面我们使用另一个rosnode命令行命令rosnode ping:

rosnode ping /my_turtlesim
rosnode: node is [/my_turtlesim]
pinging /my_turtlesim with a timeout of 3.0s
xmlrpc reply from http://ubuntu:33201/  time=0.409842ms
xmlrpc reply from http://ubuntu:33201/  time=1.335144ms
xmlrpc reply from http://ubuntu:33201/  time=1.242876ms
xmlrpc reply from http://ubuntu:33201/  time=1.311064ms
xmlrpc reply from http://ubuntu:33201/  time=1.254082ms
   
   
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

总结

  • roscore=ros+core,master(为ROS提供名称服务)+rosout(stdout/stderr)+parameter server。所以在使用ROS的时候的第一件事就是运行roscore来启动这些服务;
  • rosnode=ros+node,用来获得ROS节点信息和操作节点的工具;
  • rosrun=ros+run,用来运行一个给定软件包中的节点。

祝枫
2016年8月24日于哈尔滨

文章最后发布于: 2016-08-24 19:15:07
        
                
0 个人打赏
发表评论
还能输入1000个字符

ROS学习(一)ROS入门

08-29 阅读数 8982

说起ROS,可能大家现在或多或少都有所了解。现如今世界机器人发展之迅猛犹如几十年前计算机行业一样,机器人也逐渐进入到千家万户,大到工业机器人,小到家用的服务型机器人,各式各样,为各种人们生活所需的机器... 博文 来自: 奔走的博客

ROS实战之节点发布/接收图片

08-27 阅读数 6244

ROS-节点发布/接收图片ROS版本:indigo摄像头:罗技C270(可以先用cheese来进行测试摄像头是否正常工作或者lsusb查看)Indigo下OpenCV包的使用*ROS从indigo开始... 博文 来自: baidu_18189515的博客

ROS学习笔记六:理解ROS服务和参数

08-25 阅读数 5501

主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam。ROSserviceservice是节点之间互相通信的另一种方式,services允许节点发送一个请求并接收一个回应... 博文 来自: 祝 枫

shell-【技术干货】工作中编写shell脚本实践

09-06 阅读数 1万+

在公司项目的开发过程中,需要编写shell脚本去处理一个业务,在编写过程中发现自身对shell脚本的知识不够完善,顾整理一下,本文章主要内容来自菜鸟教程 , 也添加了一些知识点

shell脚本?
在…


博文



挑战10个最难的Java面试题(附答案)【上】

09-10 阅读数 2万+

这是收集的10个最棘手的Java面试问题列表。这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题。你可能知道这些棘手的 Java 问题的答案,或者觉得这些不足以挑战你的 Java... 博文

我花了一夜用数据结构给女朋友写个H5走迷宫游戏

09-21 阅读数 6万+

起因

又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满!

而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道…


博文



别再翻了,面试二叉树看这 11 个就够了~

09-13 阅读数 3万+

写在前边 数据结构与算法: 不知道你有没有这种困惑,虽然刷了很多算法题,当我去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很多边界条件想不... 博文

GitHub开源的10个超棒后台管理面板

09-21 阅读数 2万+

目录

1、AdminLTE

2、vue-Element-Admin

3、tabler

4、Gentelella

5、ng2-admin

6、ant-design-pro

7、blur-a…


博文



100 个网络基础知识普及,看完成半个网络高手

09-23 阅读数 7万+

欢迎添加华为云小助手微信(微信号:HWCloud002或HWCloud003),验证通过后,输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术... 博文

对计算机专业来说学历真的重要吗?

09-27 阅读数 2万+

我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。

这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案…


博文



C语言实现推箱子游戏

09-29 阅读数 4万+

很早就想过做点小游戏了,但是一直没有机会动手。今天闲来无事,动起手来。过程还是蛮顺利的,代码也不是非常难。今天给大家分享一下~ 一、介绍 开发语言:C语言 开发工具:Dev-C++ 5.11 日期:2... 博文

面试官:兄弟,说说基本类型和包装类型的区别吧

09-29 阅读数 2万+

Java 的每个基本类型都对应了一个包装类型,比如说 int 的包装类型为 Integer,double 的包装类型为 Double。基本类型和包装类型的区别主要有以下 4 点。... 博文

一些实用的GitHub项目

10-05 阅读数 2万+

最近整理了一些在GitHub上比较热门的开源项目关于GitHub,快速了解请戳这里其中涵盖了:学习教程,面试总结,实用工具,框架,机器学习等东西比较杂,要学的东西也比较多...... 博文

新手程序员成长之路的五本必读书籍(附资源下载)

10-05 阅读数 2万+

全文共3351字,预计学习时长7分钟图片来自Pixabay,IvanPais书籍可以清晰而有条理地陈诉观点,纸张上的笔墨也会给人一种不慌不忙的感觉。不过,科技类书籍存在一...... 博文

30秒内便能学会的30个超实用Python代码片段

10-10 阅读数 2万+

许多人在数据科学、机器学习、web开发、脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言。

Python流行的部分原因在于简单易学。

本文将简要…


博文



python入门的120个基础练习

10-11 阅读数 1万+

python入门的120个基础练习 解决问题的道路上,"方法"和"坚持"缺一不可。 ----------------------------------------------------------... 博文

JAVA-快速了解线程池的基本原理

10-16 阅读数 3179

前言 说起线程池大家肯定不会陌生,在面试中属于必问的问题之一,特别是对于高并发有较高要求的企业,基本是核心打分点。网上关于线程池的文章和视频很多,本篇文章旨在帮助大家快速了解和掌握线程池的原理,对于... 博文

失败程序员的十年总结

10-13 阅读数 4535

十年到底有多长?当我回顾过去的十年,发现好短,可以讲的事情没有几件,而且都是坏事;当我畅想未来的十年,感觉又好长,不知道路怎么走。... 博文

Python搭建代理IP池(一)- 获取 IP

10-14 阅读数 2654

使用爬虫时,大部分网站都有一定的反爬措施,有些网站会限制每个 IP 的访问速度或访问次数,超出了它的限制你的 IP 就会被封掉。对于访问速度的处理比较简单,只要间隔一段时间爬取一次就行了,避免频繁访问... 博文

可视化越做越丑?这五个高级图表效果能瞬间抬升你的逼格

10-14 阅读数 5096

今天我们来说一说数据可视化,想必很多人在入门数据分析之后,就会经常进行可视化的工作,所谓一图胜千言,图表用的好,真的是会事半功倍的。但现实情况下,很多人遇到的问题是:

你做的图表太丑了?你做的图表到…


博文



感觉自己不会的东西太多了,不知道如何下手?

10-14 阅读数 7616

GitHub 8.8k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 8.8k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 8.8k Star 的... 博文

别死写代码了,方法比结果更重要

10-13 阅读数 1751

点击上方“程序猿技术大咖”,选择“关注公众号”,一起共进步!如果每个程序开发人员都只是周而复始地写代码,想必编程的工作就会让很多程序员发狂。那么如何在枯燥的工作中寻找乐趣...... 博文

为什么程序员在学习编程的时候什么都记不住?

10-12 阅读数 5186

在程序员的职业生涯中,记住所有你接触过的代码是一件不可能的事情!那么我们该如何解决这一问题?作者 |Dylan Mestyanek译者 | 弯月,责编 | 屠敏出品 |...... 博文

成长的第一步是走出舒适区

10-13 阅读数 6118

阅读本文大概需要 2.8 分钟。在温室里呆习惯了,就很难去适应室外环境,在一个圈子呆久了,就会把一切都会当成是理所当然,不想再去适应第二个圈子,即使他们可能更好。很多人觉...... 博文

记录一次九月份腾讯 Android 面试笔试总结(面试题详细答案解析)

10-14 阅读数 4991

今天把之前九月份腾讯面试笔试题目整理出来给大家分享分享,还附上了我自己的一些答案解析,给大家参考下,希望能对大家有帮助。

面试题目录

Activity中的几种启动模式
Android消息机制



博文



一道90%都会做错的指针题

10-14 阅读数 2270

今天,在我们的一个小群里,一个同学发了一道题目给我看,这道题目应该是C语言面试的一股清流了,各种招聘笔试上都可以看到,我试着发到我的大群里去,发现有人对这个理解不是很深刻...... 博文

牛逼,送大家一个网络共享的必备梯子,你懂得

10-13 阅读数 2049

【公众号回复 “1024”,免费领取程序员赚钱实操经验】今天给大家推荐的这个开源项目,是来自于读者的投稿,绝对是非常非常棒的福利,你们肯定会非常喜欢。Ahri 是一个好用...... 博文

扛住阿里双十一高并发流量,Sentinel是怎么做到的?

10-14 阅读数 5395

Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景本文介绍阿里开源限流熔断方案 Sentinel 功能、原理、架构、快速入门以及相关框架比较基本介绍1...... 博文

500行代码,教你用python写个微信飞机大战

10-16 阅读数 1万+

这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。

帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手 / …


博文



唐僧团队要裁员,你会裁谁?

10-15 阅读数 9289

提问:

西游记取经团为了节约成本,唐太宗需要在这个团队里裁掉一名队员,该裁掉哪一位呢,为什么?

为了完成西天取经任务,组成取经团队,成员有唐僧、孙悟空、猪八戒、沙和尚、白龙马。
高层领导: 观音…


博文



大数据学习之Linux基础

10-18 阅读数 2971

大数据学习之Linux基础 自定义Linux虚拟机安装网络配置1.node1网络配置2.通过快照克隆虚拟机3.配置其他三个节点虚拟机Linux简单命令shell命令运行原理图1.关机与重启2.判断命令... 博文

5大优秀黑客必逛技术网站

10-15 阅读数 3395

5大优秀黑客必逛技术网站

Hack Forums
最理想的黑客技术学习技术根据地,也适用于开发人员游戏开发者,程序员,图形设计师以及网络营销人士

Hack This Site
提供合法而安全…


博文



python 实现十大排序算法

10-15 阅读数 2466

冒泡排序 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 算法过程: 进行N-1趟操作 每一趟,都是不断的比较相邻的元素,那么一趟下来,就会将最大的移到排好顺序的最后面的位置。 ... 博文

红黑树详细分析

10-15 阅读数 3142

文章目录红黑树简介红黑树的性质红黑树操作旋转操作插入情况一情况二情况三情况四情况五插入总结删除情况一情况二情况三情况四情况五情况六删除总结总结 红黑树简介 红黑树是一种自平衡的二叉查找树,是一种高效的... 博文

史上最全的中高级JAVA工程师-面试题汇总

10-15 阅读数 1万+

史上最全的java工程师面试题汇总,纯个人总结,精准无误。适合中高级JAVA工程师。... 博文

金九银十收获阿里腾讯实习offer,学习、面试经验分享

10-15 阅读数 1937

今天分享一位大学生实习的面经,再结合我自己的经验总结一些看法和学习方法,希望能对大家有帮助。

先说一下自己的情况,本人今年大四,双非一本学校,计算机相关专业,从大一开始加入学院创业团队的 Andr…


博文



为啥程序员下班后只关显示器从不关电脑?

10-15 阅读数 2073

点击上方“程序猿技术大咖”,选择“关注公众号”,一起共进步!首百问答的答案:jingmentudou因为你永远不知道什么时间会被叫醒。开个远程就能避免半夜去公司了。月尧j...... 博文

前端开发大师修炼指南

10-15 阅读数 2720

如果你想成为一名专业的JavaScript开发人员,那么除了掌握JavaScript之外,至少还应该具备一些其他框架和库的开发经验。本文收集了9个不同的项目,其中每个项目都使用了不同的JavaScri... 博文

为什么这么多人说 IDEA 比 Eclipse 更好?

10-15 阅读数 1360

点击上方“黄小斜”,选择“置顶或者星标”一起成为更好的自己!作者:彭博来源:http://1t.click/asZu# 争论有一些没有唯一正确答案的“永恒”的问题,...... 博文

            
                        

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

你可能感兴趣的:(ROS,ROS学习笔记)