首页 > 其他分享 > ROS2-Beginner:3-理解节点

ROS2-Beginner:3-理解节点

时间:2023-06-01 15:46:54浏览次数:49  
标签:node 可执行文件 Beginner ROS2 turtlesim 节点 ros2

目标:学习ROS2中节点的功能,以及与他们交互的工具

背景

1、ROS2graph

ROS图是ROS2元素同时一起处理数据的网络。它包含了所有可执行文件以及它们之间的连接,如果您要将它们全部映射出来并可视化的话。

2、在ROS2中的节点

在ROS中的每一个节点都应该负责单一的模块化目的,例如控制车轮电机或发布激光测距仪的传感器数据。每一个节点可以通过话题,服务,行为以及参数来发送和接收来自于其他节点的数据。

一个完整的机器人系统由许多协同工作的节点组成。在ROS2中,单个可执行文件(C++程序、Python程序)可以包含一个或多个节点。

任务

1、ros2 run

本命令用于启动一个包中的一个可执行文件

ros2 run <package_name> <executable_name>

输入下面的命令,运行turtlesim

ros2 run turtlesim turtlesim_node

包的名字是turtlesim,可执行文件的名字叫turtlesim_node,但仍然不知道节点的名字,使用ros2 node list来查看

2、ros2 node list

它会显示所有运行的节点的名字;当需要与某个节点交互,或者跟踪他们的时候,会比较有用。

2.1 重映射

Remapping允许重新安排默认节点的属性,比如节点名字,话题名字,服务名字等等来自定义值。下面对turtlesim节点的名字进行重映射。

ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle

3、ros2 node info

知道了节点名,可以通过如下命令来获取更多的信息:

ros2 node info <node_name>

总结

节点是一个基本的ROS 2元件,在机器人系统中具有单一的模块化用途。

本教程,使用在turtlesim包通过运行不同的可执行文件turtlesim_node和turtle_teleop_key来创建节点。

学习了ros2 node list来发现活跃的节点,ros2 node info来检查节点的信息。这些工具用于真实复杂的机器人系统的数据流是很重要的。

下一步

现在理解了ROS2 中节点的概念,下一节讲解话题是连接的节点之间通信的类型之一。

 

标签:node,可执行文件,Beginner,ROS2,turtlesim,节点,ros2
From: https://www.cnblogs.com/gary-guo/p/17449206.html

相关文章

  • log4j2<PatternLayout>子节点浅析
    log4j2<PatternLayout>子节点浅析 首先声明本文并不教您怎么用log4j2,仅仅只对<PatternLayout>子节点进行说明。要看懂本文需要对log4j2有一定的了解,至少能够知道<Appenders>、<Layouts>和<Loggers>的区别。本文主要参考对象为log4j2官方手册:《ApacheLog4j2v.2.1User'sGuide......
  • AtCoder Beginner Contest 247 Ex Rearranging Problem
    洛谷传送门AtCoder传送门考虑我们如何判定一个排列是否能成为最终答案。连边\(i\top_i\),设环数为\(k\),那么最少交换次数为\(n-k\)。那么充要条件是,每个环所有点的\(c_i\)相同,并且\(n-k\leK\)且\(2\mid(K-(n-k))\)。\(K\)和\(n-k\)奇偶性相同是因为,......
  • ES 内存使用和GC指标——主节点每30秒会去检查其他节点的状态,如果任何节点的垃圾回收
    内存使用和GC指标在运行Elasticsearch时,内存是您要密切监控的关键资源之一。Elasticsearch和Lucene以两种方式利用节点上的所有可用RAM:JVMheap和文件系统缓存。Elasticsearch运行在Java虚拟机(JVM)中,这意味着JVM垃圾回收的持续时间和频率将成为其他重要的监控领域。JVMheap:AGo......
  • JS 树型结构 模糊搜索 匹配到所有的节点,包括所有的父节点
    treeData就是el-tree:data要绑定的数据 :data=treeData treeOptions.data是接口返回的原始树形结构数据//根据关键字过滤后的数据consttreeData=computed(()=>{  if(!options.searchText)returntreeOptions.data;  letmhres=filterNodeMethod(opti......
  • AtCoder Beginner Contest 213 H Stroll
    洛谷传送门AtCoder传送门考虑一个朴素dp,\(f_{t,u}\)表示\(t\)时刻走到\(u\)点的方案数。有转移:\[f_{t,u}=\sum\limits_{(u,v)=E_i}\sum\limits_{k=0}^{t-1}f_{k,v}\timesp_{i,t-k}\]直接做时间复杂度\(O(mT^2)\),无法接受。发现转移是加法卷积形式......
  • python neo4j将新节点连接到旧标签
    要在Python中使用py2neo将新节点连接到已存在的节点标签,你可以执行以下步骤:导入所需的类和函数:frompy2neoimportGraph,Node,Relationship连接到Neo4j数据库:graph=Graph("bolt://localhost:7687",auth=("username","password"))确保将"username"和&q......
  • neo4j,python,批量建立节点时,会重复建立相同名称节点。去重。
    前提经过度娘得知,可以使用第三方包去重,但只管去重,你后面关系乱了人家第三方包不管。=-=或者直接在neo4j里面使用数据库语言去重,但关系还是得重新建立。况且,我想用python去重。干货来了后来,我换了个思路,那么就是合并节点。(虽然跟去重差不多)但总归总做出来了使用NodeMatcher......
  • ES部署+Kibana部署+IK分词器(单节点)
    一、Elasticsearch7.9.1官网下载地址:ElasticsearchES7.9.1,内置了JDK,我是centos系统,下载LINUXX86_64下载、解压、放到/usr/es/下二、配置cd/usr/es&&llvi/elasticsearch/config/elasticsearch.yml#打开节点名称node.name:node-1#这里的node-1为node-name配置的值clus......
  • python list 转 字典,父节点包含子节点
    list转字典,父节点包含子节点classData:def__init__(self,id,p_id,name):self.id=idself.p_id=p_idself.name=namedefconvert_to_dict(data_list):result_dict={}fordataindata_list:ifdata.p_i......
  • AtCoder Beginner Contest 288(D,E,F)
    AtCoderBeginnerContest288(D,E,F)D(思维)D有一个数组,然后有\(q\)次询问,每一次输入一对\(l,r\),我们要判断这一段里面的数是不是好数组好数组,在进行下面任意次操作后可以把这一段数字都变成\(0\),那么这就是个好数组操作是选择一个\(i\)和一个\(c\),但是\(i+k-1\)要小于\(......