理解ros节点---ros学习第4篇

loongembedded loongembedded     2023-03-09     168

关键词:

1.图概念速览

计算图(Computation Graph)是一个由ROS进程组成的点对点网络,它们能够共同处理数据。ROS的基本计算图概念有节点(Nodes)、主节点(Master)、参数服务器(Parameter Server)、消息(Messages)、服务(Services)、话题(Topics)和袋(Bages),它们都以不同的方式向图(Graph)提供数据。
●节点:节点是一个可执行文件,它可以通过ROS来与其他节点进行通信
●消息:订阅或发布话题时所使用的ROS数据类型。
●话题:节点可以将消息发布到话题,或通过订阅话题来接收消息。
●主节点:ROS的命名服务,例如帮助节点发现彼此。
●rosout:在ROS中相当于stdout/stderr(标准输出/标准错误)。
●roscore:主节点+rosout+参数服务器。

2.节点

节点实际上只不过是ROS软件包中的一个可执行。ROS节点使用ROS客户端库与其他节点通信。节点可以发布或订阅话题,也可以提供或使用服务。

3.客户端库

ROS客户端库可以让用不同编程语言编写的节点进行相互通信:
●rospy=Python客户端库
●roscpp=C++客户端库

4.roscore

roscore是你在运行所有ROS程序前首先要运行的命令

如果roscore运行后没有初始化,很有可能是网络配置的问题。参见网络配置 - 单机器配置。添加链接描述

如果roscore不能初始化并提示缺少权限,可能是因为~/.ros目录属于root用户(只有root用户才能访问),可以用以下命令递归地更改该目录的所有权:

sudo chown -R <your_username> ~/.ros

5.使用rosnode

rosnode list命令活动的ROS节点

kandi@ubuntu:~$ rosnode list
/rosout

这表示当前只有rosout这个节点在运行。因为这个节点用于收集和记录节点的调试输出,所以它总是在运行的。而rosnode info命令返回的是某个节点的信息

这里可以看到rosout节点它发布了一个/rosout_agg话题。如果要看看其他节点,需要使用rosrun调出其他节点。

6.使用rosrun

rosrun可以让你用报名执行运行软件包内的节点,如:

kandi@ubuntu:~$ rosrun turtlesim turtlesim_node

再通过rosnode list查看节点

kandi@ubuntu:~$ rosnode list
/rosout
/turtlesim

ROS有一个强大的功能,就是你可以通过命令行重新分配名称,关闭turtlesim窗口以停止节点(或回到rosrun turtlesim的终端并按Ctrl+C)。现在让我们重新运行它,但是这一次使用重映射参数来改变节点名称:

rosrun turtlesim turtlesim_node __name:=you_turtle

再使用rosnode list查看被修改后的节点名是否能够看到

kandi@ubuntu:~$ rosnode list
/rosout
/you_turtle

我们可以看到新的/you_turtle节点。使用rosnode的另一个指令,ping,来测试它是否正常

kandi@ubuntu:~$ rosnode ping you_turtle
rosnode: node is [/you_turtle]
pinging /you_turtle with a timeout of 3.0s
xmlrpc reply from http://ubuntu:40231/ time=0.559330ms
xmlrpc reply from http://ubuntu:40231/ time=0.422716ms

理解ros话题---ros学习第4篇

文章目录1.通过键盘控制turtle2.ROS话题2.1使用rqt_graph1.通过键盘控制turtle(1)打开一个终端运行roscore(2)再打开一个新的终端来打开turtlesim_node节点kandi@ubuntu:~$rosrunturtlesimturtlesim_node弹出一个乌龟的界面(3)再打开一个新的终端,... 查看详情

理解ros话题---ros学习第5篇

文章目录1.通过键盘控制turtle2.ROS话题2.1使用rqt_graph2.2介绍rostopic2.3使用功能rostopicecho2.4使用rostopiclist3.ROS消息3.1使用rostopictype4.继续学习rostopic4.1使用rostopicpub4.2使用rostopichz5.使用rqt_plot1.通过键盘控制turtle(1)打开一个终端运行roscor... 查看详情

理解ros服务和参数---ros学习第6篇

文章目录1.ROS服务2.使用rosservice2.1rosservicelist2.2rosservicetype2.3rosservicecall3.使用rosparam3.1rosparamlist3.2rosparamset和rosparamget3.3rosparamdump和rosparamload1.ROS服务服务时节点之间通讯的另一种方式。服务允许节点发送一个请求(request)并获得一个... 查看详情

理解ros服务和参数---ros学习第6篇

文章目录1.ROS服务2.使用rosservice2.1rosservicelist2.2rosservicetype2.3rosservicecall3.使用rosparam3.1rosparamlist3.2rosparamset和rosparamget3.3rosparamdump和rosparamload1.ROS服务服务时节点之间通讯的另一种方式。服务允许节点发送一个请求(request)并获得一个... 查看详情

ros学习笔记三(理解ros节点)

要求已经在Linux系统中安装一个学习用的ros软件包例子:sudoapt-getinstallros-indigo-ros-tutorialsROS图形概念概述nodes:节点,一个节点即为一个可执行文件,可以通过ROS和其他节点进行通信;messages:消息,当订阅或者发布一个topic时使... 查看详情

ros官网初级教程学习总结(5-9)(代码片段)

...址:http://wiki.ros.org/cn/ROS/Tutorials。本博客为5-9小节。理解ROS节点图概念概述Nodes:节点,一个节点即为一个可执行文件。节点可以发布或接收一个话题,也可以提供或使用某种服务。Messages:消息,消息是一种ROS数据类型&#... 查看详情

技术分享|4点带你快速理解ros2通信

在一个庞大的机器人系统中,通信是基础,是重中之重。如果连各个模板之间的通信概念都含糊不清,不能融会贯通。那么,对机器人的开发也会捉襟见肘。本文将会介绍ROS2中的通信基础概念和模型,包括节... 查看详情

ros学习--第3篇:ros基础---创建工作空间

1.创建工作空间catkin_ws创建src文件,放置功能包源码:mkdir-p~/catkin_ws/src进入src文件夹:cd~/catkin_ws/src初始化文件夹:catkin_init_workspace这样就在src文件中创建了一个CMakeLists.txt的文件,目的是告诉系统,这个... 查看详情

ros官网初级教程学习总结(5-9)(代码片段)

...址:http://wiki.ros.org/cn/ROS/Tutorials。本博客为5-9小节。理解ROS节点图概念概述Nodes:节点,一个节点即为一个可执行文件。节点可以发布或接收一个话题,也可以提供或使用某种服务。Messages:消息,消息是一种ROS数据类型&#... 查看详情

ros2节点简介(代码片段)

...将包含所有的可执行文件以及它们之间的连接。ROS2中的节点ROS中的每个节点都应负责单一的,模块化的目的(例如,一个节点用于控制轮式电机,一个节点用于控制激光测距仪等)。每个节点都可以通过t 查看详情

ros学习--第3篇:ros基础---创建工作空间和软件包

1.创建工作空间catkin_ws创建src文件,放置功能包源码:mkdir-p~/catkin_ws/src进入src文件夹:cd~/catkin_ws/src初始化文件夹:catkin_init_workspace这样就在src文件中创建了一个CMakeLists.txt的文件,目的是告诉系统,这个... 查看详情

ros-4:ros节点和主题(代码片段)

...std_msgs、actionlib、actionlib_msgs,并构建该空功能包。ROS中节点间的基本通讯方式是topic,即publish/subscribe模式。以下介绍如何创建两个两个节点分别发布和订阅一个主题。一、创建 查看详情

ros与arduino学习小案例节点通信

ROS与Arduino学习(七)小案例节点通信 TutorialLevel:Logging日志 NextTutorial:  查看详情

ros开机自动启动节点

ROS中提供了开机自动启动节点的工具robot_upstart,借助linuxsystemd工具实现守护进程开机启动功能.1 systemd工具简介Systemd入门教程:命令篇Systemd入门教程:实战篇2 robot_upstart安装节点sudo apt-get install ros-kinetic-robot-u... 查看详情

ros2学习笔记22--使用launch启动/监听多个node节点(代码片段)

...1a;这篇内容主要介绍如何使用launch启动/监听多个node节点环境:ubuntu20.04,ros2-foxy,vscode最后如果没有陈述实操过程中碰到问题的话,则表示该章节都可被本人正常复现3.4使用launch启动/监听多个node节点(原文&#... 查看详情

ros2学习笔记23--将多个node节点组合到单一进程中(代码片段)

概要:这篇内容主要介绍将多个node节点组合到单一进程中环境:ubuntu20.04,ros2-foxy,vscode最后如果没有陈述实操过程中碰到问题的话,则表示该章节都可被本人正常复现3.5多个node节点组合到单一进程中(原文:ht... 查看详情

ros计算图级,理解ros节点、话题

参考技术A计算图级-------是ROS处理数据的一种点对点的网络形式。程序运行时,所有进程及它们所进行的数据处理,将会通过一种点对点的网络形式表现出来,即通过节点、节点管理器、话题、服务等来进行表现。ROS中的基本计算图... 查看详情

ros2日文新书-2021-07

[目录]第1章简介2.机器人环境与ROS22-1机器人周围的环境与发展2-2ROS概述和ROS22-3ROS2和发行版第3章ROS2基础知识3-1ROS2安装3-2ROS2的操作第4章ROS2编程4-1编程流程4-2主题定义4-3类型4-4服务4-5参数4-6推出第5章支持ROS2的系统5-1ROS2架构5-2DDS... 查看详情