ROS学习笔记5(理解ROS节点)

ROS学习笔记五:理解ROS topics ROS学习笔记五:理解ROS topics本节主要介绍ROS topics并且使用rostopic和rqt_plot命令行工具。例子展示roscore首先运行roscore系列服务,这是使用ROS所必需的基础roscoreturtlesim这里还要用到turtlesim例子,先运行其节点:rosrun turtlesim turtlesim_nodeturtle键盘遥控操作我们可以运行一个例程,然后 阅读详情


这篇教程主要介绍了 roscore, rosnode,和 rosrun等命令行工具。

1 准备工作

首先安装一个轻量级的tutorial:

$ sudo apt-get install ros-<distro>-ros-tutorials

其中,<distro>需要用特定的版本号替换,例如kinetic。

2 几个基本概念

  • Nodes节点:一个节点就是能与另外一个节点通信的可执行程序。
  • Messages消息:订阅或发布话题时,ROS的数据结构类型。
  • Topics话题:一个能订阅或发布话题的节点。
  • Master:帮助所有nodes找到彼此的节点。
  • rosout:ROS标准输出。
  • roscore:包含了Master,rosout和parameter server参数服务器。

3 节点

节点不仅仅是一个可执行文件。

  • ros节点可以利用ros client libarary来和其他节点通信。

  • 节点可以订阅或者发布一个topic话题。

  • 节点也可以提供或者使用一个service服务。

4 Client Libraries

ROS client libraries允许节点用不同的编程语言编写,并进行通信:

  • rospy = python client libary
  • roscpp = c++ client library

5 roscore

在使用ros之前,第一件要做的事情就是启动roscore:

$ roscore

启动之后会看到这样的消息:

... logging to /home/lk/.ros/log/57e9d664-9a49-11e9-8898-d46d6d97e028/roslaunch-Mibook-7319.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://Mibook:45859/
ros_comm version 1.12.14


SUMMARY
========

PARAMETERS
 * /rosdistro: kinetic
 * /rosversion: 1.12.14

NODES

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

setting /run_id to 57e9d664-9a49-11e9-8898-d46d6d97e028
process[rosout-1]: started with pid [7343]
started core service [/rosout]

如果roscore没有被初始化,就会产生一个网路配置的问题。

6 使用rosnode

打开一个新的终端,使用rosnode命令来查看roscore做了什么,注意之前的roscore窗口一定不能被关闭!

打开一个新的终端,环境会被重新设置,~/.bashrc文件会被刷新。

如果新打开一个窗口,rosnode出了问题,需要把环境手动添加到~/.bashrc文件中。

rosnode显示了当前正在运行的ros节点:

$ rosnode list

会看到:

/rosout

使用rosnode info命令来查找特定节点的信息:

$ rosnode info /rosout
# echo
--------------------------------------------------------------------------------
Node [/rosout]
Publications: 
 * /rosout_agg [rosgraph_msgs/Log]

Subscriptions: 
 * /rosout [unknown type]

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


contacting node http://Mibook:45075/ ...
Pid: 7343

7 使用rosrun

rosrun可以在不知道package路径的情况下,直接运行节点。

标准用法:

$ rosrun [package_name] [node_name]

举例,现在运行一个turtlesim_node:

$ rosrun turtlesim turtlesim_node

会看到一个窗口:

1561798400199

在新的窗口中查看rosnode节点:

$ rosnode list
# echo
/rosout
/turtlesim

可以使用重映射命令来改变节点的名称:

$ rosrun turtlesim turtlesim_node __name:=liukai_turtle

这时候又会产生一个小乌龟:

1561798841709

最后再查看一下节点:

$ rosnode list
/liukai_turtle
/rosout
/turtlesim

如果出错了,使用rosnode cleanup命令清理所有节点。

最后使用rosnode ping命令来ping一下自己的小乌龟:

$ rosnode ping liukai_turtle
rosnode: node is [/liukai_turtle]
pinging /liukai_turtle with a timeout of 3.0s
xmlrpc reply from http://Mibook:41971/	time=0.499010ms
xmlrpc reply from http://Mibook:41971/	time=2.086878ms
xmlrpc reply from http://Mibook:41971/	time=1.683950ms
xmlrpc reply from http://Mibook:41971/	time=1.563072ms
xmlrpc reply from http://Mibook:41971/	time=2.007008ms
xmlrpc reply from http://Mibook:41971/	time=1.938105ms
^Cping average: 1.629670ms

8 总结回顾

  • roscore = ros + core
  • rosnode = ros + node
  • rosrun = ros + run

常用命令:

命令作用
roscore启动ros核心,
包括master,rosout,
parameter server参数服务器
rosnode list列出所有的rosnode 节点
rosnode info [node_name]列出某个node的信息
rosrun [package_name] [node_name]启动某个ros节点
rosnode ping [node_name]ping某个节点
ROS教程(三):创建程序包及节点(图文) 文章目录前言一、创建功能包二、创建节点三、修改CMakeList.txt四、配置package.xml文件五、编译并执行1.编译2.执行六、rostopic工具总结 前言 根据前篇教程已经创建好了工作空间,并已经成功生效了环境变量,接下来创建一个功能包 一、创建功能包 功能包的名字根据我们这个功能包的作用来命名。比如我现在的功能包是用来学习ROS的C++编程,那么我的功能包名称就叫做learning_cplus。 打开终端,输入下面指令。 cd catkin_ws/src catkin_create_ 阅读详情

相关推荐

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

ROS学习笔记四:理解ROS节点本节主要介绍ROS图形概念,讨论ROS命令行工具roscore、rosnode和rosrun。要求要求已经在Linux系统中安装一个学习用的ros软件包例子:sudo apt-get install ros-indigo-ros-tutorialsROS图形概念概述 nodes:一个节点可以通过ROS和其他节点进行通信; messages:当订阅或者发布一个topic

祝 枫 4144

ROS学习笔记(1)-ROS指令

安装 看何先生博客 ros通讯的框架 主要就是 计算图展示了ros的通讯结构 计算图展示了节点(node)与节点中的信息交流:节点发布话题(topic),另外一个节点订阅话题,三个点应该关注的 哪个节点发布话题 哪个节点订阅话题 话题中内容是什么 节点又提供什么服务(service) 从运行小海龟示例程序来看ros运行的框架 ...

lwq123free的博客 1663

ROS总结——ROS节点

理解ROS节点本博客是对http://wiki.ros.org/上ROS教程的学习总结,欢迎大家交流学习。本节介绍 ROS 图(graph)概念并介绍如何使用roscore、rosnode和 rosrun 命令行工具。 1.图概念概述 Nodes:节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。 Messages:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。 T

YongqiangGao的专栏 5315

windows安装ROS

windows安装ROS的坑先不要着急恢复出厂设置 先不要着急恢复出厂设置 auto-starting new master process[master]: started with pid [14784] ROS_MASTER_URI=http://127.0.0.1:11311/ setting /run_id to 5851409e-2b2f- 11ec-8a71-b060885b0067  [31m[rosout-1] ERROR: unable to configure logging ['

qq_40837795的博客 797

ROS节点,消息,话题,服务的介绍

整理结合机器人操作系统(ros)浅析和网址http://wiki.ros.org/cnNODEnode几乎是无处不在,这个东西相当于可执行文件,目前我更愿意把它当做cpp文件,通过catkin_make之后生成可执行文件。Message不用说了,没有message就是哑巴了。还是这是血液吧,不然传递机制是无法建立起来的TOPIC就像是QQ群一样,当有人发了一条消息后,QQ群告诉任何一个加群的人,有没

Shirlim 1万+

基于PyQt5将ROS节点上接收到的实时数据动态绘制在GUI界面上

今年4月初开始接触PyQt5,5月开始重新从头学ROS(去年自学过一个月,早就已经啥都不记得了...),吭哧吭哧倒腾了许久,总算是完成了以下三项任务: 1. 基于PyQt5编写GUI界面,界面上包含按钮、编辑框、曲线图等 2. 基于rospy进行简单的自定义消息的发布和订阅 3. 将ROS订阅节点上接收到的实时数据以动态曲线的形式绘制在用PyQt5编写的GUI界面上 过程是艰辛的,没有太多...

weixin_39928001的博客 5550

代码中启动ros节点roslaunch和rosrun,代码启动节点与关闭节点,地图切换

roslaunch和rosrun,代码启动节点与关闭节点 py_slam_startros_在代码中启动ros节点roslaunch和rosrun import subprocess import rospy import rosnode class launch_demo: def __init__(self, cmd=None): self.cmd = c...

苏凯的博客 6555

ROS学习--(六)理解ROS节点和话题

ROS系统包括多个独立的节点,每个节点通过一个发布/订阅的消息范式与其他节点联系 !如下图中,publisher和subscriber都可以是节点(node) (http://img.blog.youkuaiyun.com/20150726220005225) 举个具体例子: ROS starts with the ROS Master. Let’s say we have a camera on o

BenjaminYoung29的博客 4570

ROS节点

前言 在介绍节点之前,先讲一下ROS: ROS是机器人操作系统(Robot Operating System)的简称,用于编写机器人的软件程序。 ROS是一种具有高度灵活性的软件架构,能够帮助软件开发者快速创建机器人应用软件。 ROS提供了一系列程序库和工具,包括:硬件抽象、设备驱动、库函数、可视化、进程间消息传递和软件包管理等 ROS是一个分布式的进程(也就是“节点”)框架,这些进程被封装在不同的程序包或功能包中。 ROS可以分成两层:底层是操作系统层(通常不需要用

mxh3600的博客 6711

【ROS2入门系列3】:理解ROS2的节点

Ros2的Node类同于Ros1,但学习Ros2要系统化;因此本文将特别展现两种版本的Node,及它们之间的些许不同。

gongdiwudu的专栏 8256

mtk-drm commit送显流程(二):内核态atomic_commit实现解析

本文深入解析了mtk-drm框架中atomic_commit机制的内核态实现流程,详细介绍了从用户态触发到硬件提交的完整调用链,包括状态检查、硬件提交等关键阶段。特别分析了MTK平台在动态刷新率、内存带宽优化等方面的特有实现策略,为开发者提供了调试技巧和常见问题解决方案。

weixin_30839881的博客 1305

ROS: 理解 ROS节点

理解 ROS节点先决条件图概念概述节点客户端库roscore使用rosnode使用rosrun小结参考文章 先决条件 老规矩, 在本教程中我们将使用到一个轻量级的模拟器,请使用以下命令来安装: sudo apt-get install ros-<distro>-ros-tutorials 图概念概述 Nodes:节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。 Messages:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。 Topics:话题,节

GungnirsPledge的博客 2819

目标检测中回归损失函数(L1Loss,L2Loss,Smooth L1Loss,IOU,GIOU,DIOU,CIOU,EIOU,αIOU ,SIOU)

为了解决CIoU的问题,有学者在CIOU的基础上将纵横比拆开,提出了EIOU Loss,并且加入Focal聚焦优质的预测框,与CIoU相似的,EIoU是损失函数的解决方案,只用于训练。在错误率小的地方,梯度的值也应当小,反之在错误率大的地方,梯度也应当大,因为这时候我们需要对错误率小的情况进行微调,而错误率大的地方进行大刀阔斧的调整;如下图所示,三种情况IoU都相等,但看得出来他们的重合度是不一样的,左边的图回归的效果最好,右边的最差。DIoU的作者考虑到,在两个框中心点重合时,c与d的值都不变。

zyw2002的博客 6629

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

本文内容来源于:http://wiki.ros.org/ROS/Tutorials/UnderstandingNodes 图(Graph)概念概览 节点(Nodes):一个节点是ROS下面一个可执行程序,使用ROS与其他节点进行通信。 消息(Messages):将数据订阅或者发布到主题时使用数据类型结构。 主题(Topics):节点可以发布消息到主题,或者订阅主题来接收消...

angelangel2014的博客 576

ENSP实验一:防火墙基础配置

配置client(内网)、FTP Server(外网)的IP地址。进入防火墙,输入密码:默认为admin@123。

Carohuan的博客 1万+

3-RRR并联机器人结构详解:从运动学到奇异点分析(附MATLAB仿真代码)

本文详细解析了3-RRR并联机器人的结构设计、运动学建模及奇异点分析,并提供了MATLAB仿真代码。通过对称性设计和可分析性,3-RRR结构成为教学与研究的理想对象。文章从基础杆件参数设置到奇异位形的实时捕捉,深入探讨了机构运动的数学本质,并分享了仿真调试中的实用技巧,助力工业自动化和精密控制应用。

sunny的博客 364

Coppeliasim仿真:ROS节点规划UR5画圆

Coppeliasim仿真:ROS节点规划UR5画圆

qq_48922607的博客 2803

蓝牙6.0的‘新雷达’:Channel Sounding信道探测,真能比UWB更香吗?

本文探讨了蓝牙6.0的Channel Sounding信道探测技术在室内定位领域的应用潜力。通过与UWB技术的对比分析,揭示了其在成本、功耗和兼容性方面的优势,特别是在智能门锁、物品追踪等场景中的商业价值。Channel Sounding技术不仅具备亚米级精度,还能通过现有蓝牙设备实现零边际成本部署,为物联网应用提供了新的解决方案。

weixin_29288313的博客 332

ROS5—理解ROS节点

这篇教程会介绍ROS图概念和并讨论roscore、rosnode和rosrun命令的使用。1.预备条件这里会使用轻量级的模拟器,先安装$ sudo apt-get install ros-<distro>-ros-tutorials 将替换成你的ROS版本名称。2.图概念的快速概览 节点(nodes):节点是一个利用ROS来与其他节点通信的可执行文件。 消息(messages):在顶阅或推送一个主题

InfinityForever的博客 2323

使用 ABAP 代码动态创建新的 Function Module

通过内表。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 6906

基于若依的ruoyi-nbcio-plus支持VForm3表单字段数据保存到数据库的一种方法——全网首创(一)

基于若依的ruoyi-nbcio-plus支持VForm3表单字段数据保存到数据库的一种方法——全网首创(一)

宁波阿成的博客 659

【ROS2入门】理解 ROS 2 节点

介绍 ROS2 eloquent版本在EHub_tx1_tx2_E100载板,Jeston TX1 核心模块,JetPack_4.6.3刷机后, ubuntu18.04 环境下介绍和学习节点,这个主要概念。

cau_weiyuhu的博客 2320

利用dpabi和restplus提取ROI灰质体积学习笔记

目录前言一、数据准备二、利用dpabi提取ROI灰质体积三、restplus提取ROI灰质体积 前言 我利用SPM/CAT12进行灰质、白质、脑脊液分割之后分别已经得到各自的图像文件,在全脑水平已经做了统计分析。如果还想要进一步进行ROI的统计分析或者与量表等临床资料做相关分析,就需要提取ROI灰质体积。几个月没动过这数据了,突然心血来潮想学一下如何提取ROI灰质体积,以此篇博客记录我的提取ROI灰质体积学习过程。提取ROI灰质体积的方法及软件有许多种,本人尝试了dpabi和restplus。 一、数据准备

weixin_52073820的博客 9224

ROS节点中的CAN命令

前言:由于在使用TX2的过程中,需要使用CAN通讯的方式使我的机器人底盘与TX2进行命令收发,而我的其他传感器都建立在ROS框架下,为了以后能使数据交互我希望把底盘数据也放到我的ROS框架里面。 1.ros_canopen ros_canopen是ROS系统专门为在ROS框架内启动CAN节点所做的一个软件包,在ROS节点中使用CAN时,需要首先将CAN口挂载到ROS中,具体可以参考链接: http...

YiYeZhiNian的博客 8236

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ROS基础学习笔记

本篇是对ROS基础学习的一个总结。初学者可通过本篇博文对ROS有一个总体上的了解,也可获取一些学习资料,但是无法代替详尽的学习教程;有一定ROS基础者,可以通过本篇博文对ROS的基础知识进行一个回顾,需要用到相关资料时可以进行查阅(ROS大神可以自动忽略本篇博文)。 1. 学习资料推荐 ROS官方教程(中文版):http://wiki.ros.org/cn/ROS/Tutorials ROS学习笔...

思我所 2万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ROS教程5:理解ROS节点

文章目录先决条件:安装轻量级模拟器ros重要概念理解nodes客户端库roscorerosnoderosrun节点名称重新配置rosnode ping node_name测试连通性 先决条件:安装轻量级模拟器 使用以下命令安装: $ sudo apt-get install ros-kinetic-ros-tutorials 不明白为什么以前安装过了还要再安装一次。。。 ros重要概念理解 n...

吉大秦少游 559

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: ROS学习笔记4(编译一个ROS Package)
下一篇: ROS学习笔记6(理解ROS话题)
刘凯KAI
博客等级 码龄15年 663粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值