ROS总结——ROS节点

2023-05-16

理解ROS节点

本博客是对http://wiki.ros.org/上ROS教程的学习总结,欢迎大家交流学习。本节介绍 ROS 图(graph)概念并介绍如何使用roscore、rosnode和 rosrun 命令行工具。
1.图概念概述

  • Nodes:节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。
  • Messages:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。
  • Topics:话题,节点可以发布消息到话题,也可以订阅话题以接收消息。
  • Master:节点管理器,ROS名称服务 (比如帮助节点找到彼此)。
  • rosout: ROS中相当于stdout/stderr。

2.节点、客户端
一个节点其实只不过是ROS程序包中的一个可执行文件。ROS节点可以使用ROS客户库与其他节点通信。节点可以发布或接收一个话题。节点也可以提供或使用某种服务。
ROS客户端库允许使用不同编程语言编写的节点之间互相通信:

  • rospy = python 客户端库
  • roscpp = c++ 客户端库

3.使用roscore
roscore 是运行所有ROS程序前首先要运行的命令,运行roscore:

$  roscore
... logging to /home/yongqiang/.ros/log/b976f590-0349-11e7-98a1-dc0ea16e8f33/roslaunch-ubuntu-10371.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://localhost:37071/
ros_comm version 1.11.20


SUMMARY
========

PARAMETERS
 * /rosdistro: indigo
 * /rosversion: 1.11.20

NODES

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

setting /run_id to b976f590-0349-11e7-98a1-dc0ea16e8f33
process[rosout-1]: started with pid [10396]
started core service [/rosout]

如果 roscore 运行后无法正常初始化,很有可能是存在网络配置问题。参见http://wiki.ros.org/ROS/NetworkSetup#Single_machine_configuration

如果 roscore 不能初始化并提示缺少权限,这可能是因为~/.ros文件夹归属于root用户(只有root用户才能访问),修改该文件夹的用户归属关系:

$  sudo chown -R <your_username> ~/.ros

4.使用rosnode
rosnode 显示当前运行的ROS节点信息。rosnode list 指令列出活跃的节点:

$  rosnode list
/rosout

这表示当前只有一个节点在运行: rosout。因为这个节点用于收集和记录节点调试输出信息,所以它总是在运行的。

rosnode info 命令返回的是关于一个特定节点的信息:

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

Subscriptions: 
 * /rosout [unknown type]

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


contacting node http://localhost:52102/ ...
Pid: 10396

5.使用rosrun
rosrun 允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径),基本用法:

$  rosrun [package_name] [node_name]

例如运行turtlesim包中的 turtlesim_node:

$  rosrun turtlesim turtlesim_node

这里写图片描述
在一个新的终端:

$  rosnode list
/rosout
/turtlesim

ROS的一个强大特性就是你可以通过命令行重新配置名称。关闭 turtlesim 窗口停止运行节点 (或者回到rosrun turtlesim终端并使用ctrl-C)。现在重新运行它,但是这一次使用Remapping Argument改变节点名称:

$  rosrun turtlesim turtlesim_node __name:=my_turtle

在一个新的终端,结果与turtlesim_node相似:

$  rosnode list
/rosout
/turtlesim

使用另外一个 rosnode 指令ping来测试:

$  rosnode ping my_turtle
rosnode: node is [/my_turtle]
pinging /my_turtle with a timeout of 3.0s
xmlrpc reply from http://localhost:36220/   time=1.621008ms
xmlrpc reply from http://localhost:36220/   time=1.515865ms
xmlrpc reply from http://localhost:36220/   time=1.546144ms
xmlrpc reply from http://localhost:36220/   time=1.197100ms
xmlrpc reply from http://localhost:36220/   time=1.066208ms
xmlrpc reply from http://localhost:36220/   time=1.305103ms
xmlrpc reply from http://localhost:36220/   time=1.712799ms
xmlrpc reply from http://localhost:36220/   time=1.302958ms
xmlrpc reply from http://localhost:36220/   time=1.363993ms
...........................................................
...........................................................

本节到这里,已经讲解了ROS节点是如何工作的,下一步,将讲解一下ROS话题。如果想关闭turtlesim_node,请按下“Ctrl-C”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS总结——ROS节点 的相关文章

  • Webots小车与Gampping建图仿真与ORB3算法实践

    此篇博客转自本作者在古月居的博客 https www guyuehome com 34537 前言 在研一的时候 由于XXX项目的需要 其中一项就是需要测试Gmapping建图 自然也要求使用ROS系统 由于之前经常在webots中进行仿真
  • V-REP安装

    小知识 是当前目录 是父级目录 是根目录 1 下载V REP 官网地址 http www v rep eu downloads html 我用ubuntu16 04下载V REP PRO EDU V3 5 0 Linux tar 2 解压安
  • rosrun 和 roslaunch 的时候 TAB 的自动补全出现问题

    rosrun 和 roslaunch 的时候 TAB 的自动补全出现问题 rospack Warning error while crawling home sun boost filesystem status Permission de
  • GG-CNN代码学习

    文章目录 1 源码网址 https github com dougsm ggcnn 2 数据集格式转化 下载后的康奈尔数据集 解压完之后里面的格式 里面的 tiff图像通过 txt文件转化得到 python m utils dataset
  • ModuleNotFoundError: No module named ‘rosbag‘

    1 ModuleNotFoundError No module named rosbag File opt ros kinetic lib python2 7 dist packages roslib launcher py line 42
  • Hypervisor介绍及在智能驾驶的应用

    转自Hypervisor 智能座舱和智能驾驶融合的关键技术 腾讯新闻
  • 激光雷达LMS111在ROS上的使用

    LMS111 10100 在ROS上的测试与使用 准备工作 设备 硬件 LMS111 101000激光雷达 软件 ubuntu16 04 ROS 开始 设备连接 将激光雷达与处理器 电脑 工控机等 通过以太网连接好 激光雷达默认的IP地址为
  • ROS 笔记(01)— Ubuntu 20.04 ROS 环境搭建

    ROS 官网 https www ros org ROS 中文官网 http wiki ros org cn 1 系统和 ROS 版本 不同的 ROS 版本所需的 ubuntu 版本不同 每一版 ROS 都有其对应版本的 Ubuntu 切记
  • Raspberry Pi 上 ROS 服务器/客户端通过GPIO 驱动硬件

    ROS 服务 现在 想象一下你在你的电脑后面 你想从这个服务中获取天气 你 在你身边 被认为是客户端 在线天气服务是服务器 您将能够通过带有 URL 的 HTTP 请求访问服务器 将 HTTP URL 视为 ROS 服务 首先 您的计算机将
  • Ubuntu安装ROS

    原文链接 https blog csdn net qq 44830040 article details 106049992 这也是我在ubuntu里面安装ROS的第N次 以前每次安装过程都忘记总结了 导致每次安装ROS都浪费了很多的时间用
  • (ros/qt报错) FATAL: ROS_MASTER_URI is not defined in the environment

    安装qt之后 明明打开roscore但是qt运行跟ros有关的节点时报错 FATAL 1450943695 306401842 ROS MASTER URI is not defined in the environment Either
  • 在 CLion 中设置 ROS 包

    我正在使用 CLion C IDE 来编辑 ROS 包 我可以通过打开CMakeLists txt文件 但是 我收到一个错误 FATAL ERROR find package catkin 失败 在工作区和 CMAKE PREFIX PAT
  • 将 CUDA 添加到 ROS 包

    我想在 ros 包中使用 cuda 有人给我一个简单的例子吗 我尝试使用 cuda 函数构建一个静态库并将该库添加到我的包中 但总是出现链接错误 未定义的引用 cuda 我已经构建了一个可执行文件而不是库并且它可以工作 请帮忙 我自己找到了
  • 我的代码的 Boost 更新问题

    我最近将 boost 更新到 1 59 并安装在 usr local 中 我的系统默认安装在 usr 并且是1 46 我使用的是ubuntu 12 04 我的代码库使用 ROS Hydro 机器人操作系统 我有一个相当大的代码库 在更新之前
  • 无法在 ROS 中使用本地安装的 Protocol Buffer

    我已经安装了协议缓冲区 https developers google com protocol buffers 本地 ROS包的目录结构如下 CMakeLists txt package xml include addressbook p
  • ROS安装错误(Ubuntu 16.04中的ROS Kinetic)

    中列出的步骤顺序http wiki ros org kinetic Installat 已被关注 尝试在Ubuntu 16 04中安装ROSkinetic 输入以下命令时出错 sudo apt get install ros kinetic
  • catkin_make 编译报错 Unable to find either executable ‘empy‘ or Python module ‘em‘...

    文章目录 写在前面 一 问题描述 二 解决方法 参考链接 写在前面 自己的测试环境 Ubuntu20 04 一 问题描述 自己安装完 anaconda 后 再次执行 catkin make 遇到如下问题 CMake Error at opt
  • ROS 从 python 节点发布数组

    我是 ros python 的新手 我正在尝试从 python ros 节点发布一个一维数组 我使用 Int32MultiArray 但我无法理解多数组中布局的概念 谁能给我解释一下吗 或者还有其他方式发布数组吗 Thanks usr bi
  • 如何订阅“/scan”主题、修改消息并发布到新主题?

    我想通过订阅message ranges来改进turtlebot3的LDS 01传感器 通过应用一些算法修改messange ranges并将其发布到新主题 如下所示 但是当我运行编码时出现错误 错误是 遇到溢出的情况 错误是 运行时警告
  • 使用 CMake 链接 .s 文件

    我有一个我想使用的 c 函数 但它是用Intel编译器而不是gnu C编译器 我在用着cmake构建程序 我实际上正在使用ROS因此rosmake但基础是cmake所以我认为这更多是一个 cmake 问题而不是ROS问题 假设使用构建的文件

随机推荐

  • PELCO-D

    https blog csdn net subfate article details 36644419 在搞visca的同时顺便也搞了pelco 这里再做个笔记 pelco xff0c 中文翻译为 派尔高 xff0c 在行文和写代码过程
  • 图像去模糊算法 deblur

    图像去模糊算法 循序渐进 附完整代码 https www cnblogs com cpuimage p 9735150 html xff08 后面要对比smartdeblur xff0c deblur gan xff09 关于图像模糊算法的
  • 点云数据文件常用格式

    点云数据文件常用格式 文件类型汇总 OFF Object File FormatPLY Polygon File Format also known as the Stanford Triangle FormatPTS Laser scan
  • deeplab介绍

    论文 Encoder Decoder with Atrous Separable Convolution for Semantic Image Segmentation 链接 https www paperweekly site paper
  • 皱纹检测Wrinkle-detection

    基于图像处理的皱纹检测算法 https github com bulingda Wrinkles detection blob master Wrinkle py 基于RCNN 毛孔检测 https github com jack16888
  • VINS slam , imu fusion

    VINS 基本介绍 VINS Mono 和 VINS Mobile 是香港科技大学沈劭劼老师开源的单目视觉惯导 SLAM 方案 2017年发表于 IEEE Transactions on Robotics 另外 xff0c VINS 的最新
  • VCS-Verdi ubuntu 安装

    前言 金鱼博主今天又花了大半天重装VCS 43 Verdi xff0c 现在记录一下 xff0c 以备下回重装 顺带一提 xff0c 我的安装环境是虚拟机的Ubuntu 16 04 参考 1 安装流程参考自 xff1a https blog
  • Opengl简介

    OpenGL xff08 英语 xff1a Open Graphics Library xff0c 译名 xff1a 开放图形库或者 开放式图形库 xff09 是用于渲染2D 3D矢量图形的跨语言 跨平台的应用程序编程接口 xff08 AP
  • PCIE 协议分析工具

    推荐两个实用的PCIe工具软件 Felix 电子技术应用 AET 中国科技核心期刊 最丰富的电子设计资源平台
  • PCIe扫盲系列博文连载目录篇

    PCIe扫盲系列博文连载目录篇 xff08 第一阶段 xff09 Felix 电子技术应用 AET 中国科技核心期刊 最丰富的电子设计资源平台 chinaaet com 1 前言篇 xff1a PCIe扫盲 PCIe简介 xff1a htt
  • FreeRTOS系列|内存管理一

    内存管理一 内存管理是一个系统基本组成部分 xff0c FreeRTOS中大量使用了内存管理 xff0c 比如创建任务 信号量 队列等会自动从堆中申请内存 用户应用层代码也可以使用FreeRTOS提供的内存管理函数来申请和释放内存 1 内存
  • 2022年技术积累方向---梳理

    1 xff0c GPGPU暂停 xff0c 积累了GPU基础架构 xff0c 图形渲染 xff0c IC芯片设计 xff0c FPGA xff0c EDA VCS xff0c 2 xff0c GPU芯片设计公司 xff0c Start up
  • 利用 GitHub 从零开始搭建一个博客

    阅读本文大概需要 10 分钟 趁着周末 xff0c 搭建了一下 NightTeam 的官方博客和官方主页 xff0c 耗时数个小时 xff0c 两个站点终于完工了 这里写一篇文章顺手记录了下来 不过这篇原创我发在了 NightTeam 上面
  • make, cmake, bazel

    整理收集了一些自动化编译链接工具的使用教程 希望可以在之后能更好的理解和使用它们 1 make Linux 下 Make 命令Linux make Command Explained With Examples使用make命令编译项目文件入
  • win7环境下安装ubuntu双系统

    我按照网上的方法实验了好多次 xff0c 最终实验出了一种绝对可以成功的方法 一 软件准备 1 下载 Ubuntu 系统镜像 xff1a http www ubuntu com download desktop xff1b 我用的是ubun
  • Linux/Ubuntu16.04 安装RealSense SDK 2.0

    RealSense实感 Intel 安装环境 xff1a Ubuntu 16 04 需要有USB3 0 不是16 04的系统 xff0c 安装过程不同 更多的安装细节 xff0c 见参考资料 1 更新Ubuntu以及BOOT sudo ap
  • KEIL MDK 5默认快捷键一览

    以前使用MDK时总感觉这个IDE不是很方便 xff0c 有些常用功能的快捷键不知道是什么 xff0c 偶然发现在MDK中可自定义功能的快捷键 xff0c 而且有些功能的快捷键已经设置好 在此将这些快捷用表格形式列出来 xff0c 便于大家查
  • 工科研究生如何选导师的一点点建议

    引言 今天是教师节 xff0c 首先祝老师们节日快乐 今天说说关于工科研究生如何选导师 xff0c 选一个合适自己的老师 xff0c 每个教师节你都能诚心的祝福自己的导师 我见过的导师类型也有限 xff0c 仅供参考 我从以下几个方面为大家
  • 解决if __name__ == ‘__main__‘下面的代码未执行的问题

    很多人在用pycharm运行代码时会出现if name 61 61 34 main 34 下面的代码没有执行的问题 xff0c 出现这类问题的原因是unittest运行姿势造成的 xff0c 如图 xff1a 解决方案 xff1a 点击倒三
  • ROS总结——ROS节点

    理解ROS节点 本博客是对http wiki ros org 上ROS教程的学习总结 xff0c 欢迎大家交流学习 本节介绍 ROS 图 xff08 graph xff09 概念并介绍如何使用roscore rosnode和 rosrun