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

Jessica&jie Jessica&jie     2022-08-25     457

关键词:

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

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

ROS图形概念概述

  • nodes:节点,一个节点即为一个可执行文件,可以通过ROS和其他节点进行通信;
  • messages:消息,当订阅或者发布一个topic时使用的数据类型
  • topics:话题,节点可以发布信息到topics或者从topics那里订阅信息;
  • master:节点管理器,ROS的name service,提供服务,例如让不同的节点可以找到彼此;
  • rosout:等价于ROS中的stdout/stderr;
  • roscore:master+rosout+parameter service(参数服务器)。

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

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

[1]roscore  在运行所有ROS程序前首先要运行的命令

//打开一个新终端
roscore &

[2]rosnode 显示当前运行的ROS节点信息,其中rosnode list命令列出了正在运行的节点名称。

//打开一个人新终端
$ rosnode list
/rosout

系统中只有一个节点rosout在运行,它将一直运行并收集和记录节点的调试输出。

[3]rosnode info返回一个特定节点的节点信息,事实上由它发布 /rosout_agg。

rosnode info /rosout

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

使用方法:

rosrun [package_name] [node_name]

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

rosrun turtlesim turtlesim_node

检验:在一个新窗口中:

$ rosnode list
/rosout
/turtlesim

[5]在命令行中重新分配名字

$ rosrun turtlesim turtlesim_node __name:=my_turtlesim
$ rosnode list
/my_turtlesim
/rosout

[6]命令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

总结

  • roscore=ros+core,master(为ROS提供名称服务)+rosout(stdout/stderr)+parameter server。所以在使用ROS的时候的第一件事就是运行roscore来启动这些服务
  • rosnode=ros+node,ROS tool to get information about a node;
  • rosrun=ros+run,runs a node from a given package。

 

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

文章目录1.图概念速览2.节点3.客户端库4.roscore5.使用rosnode6.使用rosrun1.图概念速览计算图(ComputationGraph)是一个由ROS进程组成的点对点网络,它们能够共同处理数据。ROS的基本计算图概念有节点(Nodes)、主节点(Master)、参数服务器... 查看详情

roboticssystemtoolbox笔记

1、ROS基本概念ROS全称为RobotOperatingSystem,是一种采用分布式架构的元操作系统,它本身并不是通常意义上的操作系统,可以简单的将它理解为是在多个物理计算机中运行的众多ROS节点形成的一个ROS网络。 ROS的基本概念ROS网络... 查看详情

ros1学习笔记:ros命令行工具的使用(ubuntu20.04)(代码片段)

参考B站古月居ROS入门21讲:ROS命令行工具的使用基于VMwareUbuntu20.04Noetic版本的环境文章目录一、启动小海龟二、计算图可视化工具:rqt_graph三、常用命令:1、节点rosnode显示节点列表:rosnodelist查看节点信息:ro... 查看详情

ros学习笔记——rostopic

NEW1$roscoreNEW2$rosrunturtlesimturtlesim_nodeNEW3$rosrunturtlesimturtle_teleop_key NEW4$sudoapt-getinstallros-indigo-rqt  #安装rqt,这个貌似是一个节点管理器$sudosudoapt-getinstallros-indigo-rqt-common-plugins$ 查看详情

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

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

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

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

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

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

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

...rostopicecho2.4使用rostopiclist3.ROS消息3.1使用rostopictype4.继续学习rostopic4.1使用rostopicpub4.2使用rostopichz5.使用rqt_plot1.通过键盘控制turtle(1)打开一个终端运行roscore(2)再打开一个新的终端来打开turtlesim_node节点kandi@ubuntu:~$rosrunturtlesimturtl... 查看详情

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

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

ros学习笔记02:ros基础

文章目录一、ROS架构一、ROS架构ROS架构分为三个层次:OS层⟹\\Longrightarrow⟹中间层⟹\\Longrightarrow⟹应用层 查看详情

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

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

ros2学习笔记29--项目从ros1迁移到ros2的经验参考(代码片段)

环境:ubuntu20.04,ros-foxy(ros2),vscode背景:项目需要,一直折腾把ros1下面的包升级到ros2版本.以下纯属个人查找资料摸索,自我理解所得,有错误的地方,望大佬们不吝赐教.1.消失的句柄ro... 查看详情

ros进二阶学习笔记--关于rospy和parameters(代码片段)

...作paramhttp://wiki.ros.org/rosparam -- ROSTool之rosparam用法ros进阶学习笔记(24)--关于rospy和parameters进行rospy编程时,需要用到parameter,但如何灵活用好它,还需进一步学习总结。节点程序如何声明parameter,是global... 查看详情

ros进二阶学习笔记--关于rospy和parameters(代码片段)

...作paramhttp://wiki.ros.org/rosparam -- ROSTool之rosparam用法ros进阶学习笔记(24)--关于rospy和parameters进行rospy编程时,需要用到parameter,但如何灵活用好它,还需进一步学习总结。节点程序如何声明parameter,是global... 查看详情

理解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进二阶学习笔记--metapackage

ROS进阶学习笔记(24)--MetapackageMetapackage是ROSFileSystem概念层中的一个概念:2.CreateandConfigureaMetapackage:url:http://wiki.ros.org/catkin/package.xml#MetapackagesUsuallytheparentfolder,namedli 查看详情

ros进二阶学习笔记-rosandmultithread

ROS进二阶学习笔记(4)-ROSandMultithreadI'lldiscussabouttheconceptofthread,multithread,andtheapplicationofmultithreadcodinginROSenv.1.What'smultithread?-Basicsofoperatingsystemref:http:// 查看详情