ROS 2官方文档(基于humble版本)学习笔记(三)

ROS 2官方文档(基于humble版本)学习笔记(三)

      • 理解参数(parameter)
        • ros2 param list
        • ros2 param get
        • ros2 param set
        • ros2 param dump
        • ros2 param load
        • 在节点启动时加载参数文件
      • 理解动作(action)
        • ros2 node info
        • ros2 action list
        • ros2 action list -t
        • ros2 action info
        • ros2 interface show
        • ros2 actiong send_goal
      • 使用rqt_console查看日志
        • 设置默认日志级别
      • 启动节点
      • 记录和回放数据
        • 记录多个话题
        • ros2 bag info
        • ros2 bag play

今天继续总结CLI 工具章的学习

理解参数(parameter)

参数是一个节点的配置值,可以把参数看成是节点的配置。节点可以存储整型,浮点型,布尔型,字符串型,列表型的参数。每个节点维护自己的参数。

ros2 param list

此命令用于显示所有节点的参数。
在这里插入图片描述
每个节点都有use_sim_time

ros2 param get

此命令用于显示一个参数的类型和当前值。

ros2 param get <node_name> <parameter_name>
ros2 param set

此命令在运行时改变参数的值。

ros2 param set <node_name> <parameter_name> <value>
ros2 param dump

此命令查看所有节点的参数值。

ros2 param dump <node_name>

默认打印到标准输出,可以将参数值打印到文件中,比如:

ros2 param dump /turtlesim > turtlesim.yaml
ros2 param load

此命令可以把保存在文件中的参数加载到正在运行的节点中。

ros2 param load <node_name> <parameter_file>

注意:只读参数只能在启动时修改,所以执行此命令时只读参数会打印失败信息。

在节点启动时加载参数文件
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>

注意:在启动时加载参数文件所有参数包括只读参数都将被更新。

理解动作(action)

动作是ROS 2一种通信类型,用于长时间运行的任务。它包含三部分:一个目标,反馈,一个结果。动作是基于话题和服务构建的。动作的功能除了可以取消外,和服务很类似。与服务返回一个单一的回应不同,动作也提供持续的反馈。动作使用客户端-服务器模式,一个“动作客户”节点发送一个目标给一个“动作服务”节点,“动作服务”确认这个目标并且返回一个反馈流和一个结果。
在这里插入图片描述

ros2 node info

此命令用来查看一个节点提供的动作列表。
在这里插入图片描述
注意:/turtlesim节点的/turtle1/rotate_absolute动作是在Action Servers下面的,这意味着/turtlesim为/turtle1/rotate_absolute动作,响应和提供反馈。
在这里插入图片描述
注意:/teleop_turtle节点的/turtle1/rotate_absolute动作是在Action Clients下面的,这意味着他将为这个动作发送目标。

ros2 action list

此命令发现ROS图中所有的动作。

ros2 action list -t

此命令可以将类型也显示出来。如下:
在这里插入图片描述

ros2 action info

此命令可以获取动作的相关信息。
在这里插入图片描述

ros2 interface show

在发送或者执行动作目标之前,你需要的另一个信息是动作类型的具体结构。参数为ros2 action list -t输出的类型。
在这里插入图片描述
第一个—上面是目标的结构(数据类型和名字),第二个—上面是结果的结构,最后是反馈的结构。

ros2 actiong send_goal

此命令可以发送一个动作目标。

ros2 action send_goal <action_name> <action_type> <values>

<values>需要使用YAML格式。
在这里插入图片描述
所有的目标都有一个唯一的ID,会在返回的消息里显示。也会显示出结果。可以在后面加上--feedback参数查看反馈信息。
在这里插入图片描述
你将会持续接收到反馈,指导目标完成。

一个机器人系统可能使用动作用于导航。动作目标可以告诉机器人前往位置。当机器人导航到该位置时,它可以沿途发送更新(即反馈),然后一旦到达目的地,就可以发送最终结果消息。

使用rqt_console查看日志

rqt_console是ROS 2中用于自查日志消息的可视化工具。通常日志消息在终端打印。使用rqt_console,您可以随着时间的推移收集这些消息,以更有条理的方式查看它们,过滤,保存它们,甚至将保存的文件重新加载到不同的时间内。
节点以各种方式输出日志关于事件和状态的消息。对用户而言,通常是蕴含信息的。
ROS 2日志级别按严重程度顺序排列如下:

Fatal
Error
Warn
Info
Debug

Fatal消息表示系统将要终止以保护自己不受伤害。
Error消息表示不是必然会损害系统的重大错误,但会组织系统正常运行。
Warn消息表示意外的活动或非理想结果,可能代表更深层次的问题,但不会彻底损坏功能。
Info消息表示事件或状态更新,可以看到系统正在稳定运行。
Debug消息详细说明系统执行的整个逐步过程。
默认日志级别是Info,您只会看到默认严重程度级别和更高级别级别的消息。

设置默认日志级别

通过–ros-args --log-level参数设置执行的日志级别。

ros2 run turtlesim turtlesim_node --ros-args --log-level WARN

启动节点

使用命令行工具一次启动多个节点。
启动文件允许你同时启动和配置多个包含ROS 2节点的可执行程序。

ros2 launch 

在这里插入图片描述

记录和回放数据

ros2 bag 是一个命令行工具,用于记录系统中发布的话题数据。它累积了通过的任何数量的话题数据,并将其保存在数据库中。然后,您可以重播数据以重现测试和实验的结果。录制话题也是分享您的作品并允许其他人重新创建它的好方法。

ros2 bag record <topic_name>

此命令会在运行命令的当前目录下创建 rosbag文件。
在这里插入图片描述

记录多个话题
ros2 bag record -o subset /turtle1/cmd_vel /turtle1/pose

-o选项用来定义一个独特名字的bag文件,然后在后面以空格隔开每一个话题。
-a选项用来记录系统里的所有话题。

ros2 bag info

此命令用于查看记录文件的详情。
在这里插入图片描述

ros2 bag play

此命令用来播放记录文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/141233.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言精髓 之 指针】指针*、取地址、解引用*、引用

/*** file * author jUicE_g2R(qq:3406291309)————彬(bin-必应)* 一个某双流一大学通信与信息专业大二在读 * copyright 2023.9* COPYRIGHT 原创技术笔记&#xff1a;转载需获得博主本人同意&#xff0c;且需标明转载源* language …

ElementUI之登陆+注册->饿了吗完成用户登录界面搭建,axios之get请求,axios之post请求,跨域,注册界面

饿了吗完成用户注册登录界面搭建axios之get请求axios之post请求跨域 1.饿了吗完成用户注册登录界面搭建 将端口号8080改为8081 导入依赖&#xff0c;在项目根目录使用命令npm install element-ui -S&#xff0c;添加Element-UI模块 -g&#xff1a;将依赖下载node_glodal全局依…

2023 “华为杯” 中国研究生数学建模竞赛(B题)深度剖析|数学建模完整代码+建模过程全解全析

华为杯数学建模B题 当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2021年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 让我们来看看研赛的B题呀~&#xff01; 问…

数据结构 | 队列

队列&#xff08;First In First Out&#xff09; 顺序队列 #include <iostream>class MyQueue {private:// store elementsvector<int> data; // a pointer to indicate the start positionint p_start; public:MyQueue() {p_start 0;}/** In…

如何从外网远程控制企业内网电脑?

在企业中&#xff0c;保护公司机密和数据安全是至关重要的。为了确保员工在使用公司电脑时遵守相关规定&#xff0c;许多公司会采取外网监控员工电脑的方法。本文将介绍一些真实有效的方法和具体的操作步骤&#xff0c;以帮助您更好地监控员工电脑。 一、什么是外网监控&#x…

PyTorch深度学习实战——交通标志识别

PyTorch深度学习实战——交通标记识别 0. 前言1. 交通标志识别1.1 数据集介绍1.2 数据增强和批归一化 3. 交通标志检测相关链接 0. 前言 在道路交通场景中&#xff0c;交通标志识别作为驾驶辅助系统与无人驾驶车辆中不可缺少的技术&#xff0c;为车辆行驶中提供了安全保障。在…

tomcat在idea上的配置

tomcat在idea上的配置主要包含以下几个步骤&#xff1a; 1、创建一个maven web工程 2、配置tomcat 1、创建一个maven web工程 第一个是仓库配置文件的路径&#xff0c;第二个是你的仓库路径。 2、配置tomcat 配置tomcat有以下两种方式&#xff1a; 1、集成配置 2、插件配置…

【数据结构】链表和LinkedList的理解和使用

目录 1.前言 2.链表 2.1链表的概念以及结构 2.2链表的实现 3.LinkedList的使用 3.1什么是LinkedList 3.2LinkedList的使用 2.常用的方法介绍 4. ArrayList和LinkedList的区别 1.前言 在上一篇文章中我们介绍了顺序表&#xff0c;ArrayList的底层原理和具体的使用&#x…

数字IC笔试千题解--单选题篇(二)

前言 出笔试题汇总&#xff0c;是为了总结秋招可能遇到的问题&#xff0c;做题不是目的&#xff0c;在做题的过程中发现自己的漏洞&#xff0c;巩固基础才是目的。 所有题目结果和解释由笔者给出&#xff0c;答案主观性较强&#xff0c;若有错误欢迎评论区指出&#xff0c;资料…

Spring面试题18:Spring中可以注入一个null和一个空字符串吗?Spring中如何注入一个java集合?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring中可以注入一个null和一个空字符串吗? 在Spring中是可以注入null和空字符串的。 注入null:可以使用@Value注解,将属性值设为null。例如:…

使用 PyTorch 的计算机视觉简介 (3/6)

一、说明 在本单元中&#xff0c;我们将了解卷积神经网络&#xff08;CNN&#xff09;&#xff0c;它是专门为计算机视觉设计的。 卷积层允许我们从图像中提取某些图像模式&#xff0c;以便最终分类器基于这些特征。 二、卷积神经网络 计算机视觉不同于通用分类&#xff0c;因…

C++之va_start、vasprintf、va_end应用总结(二百二十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

【算法】排序——插入排序及希尔排序

目录 前言 一、排序的概念及其应用 1.1排序的概念 1.2排序的应用 1.3常见的排序算法 二、插入排序的实现 基于插入排序的优化——希尔排序&#xff08;缩小增量排序 个人主页 代码仓库 C语言专栏 初阶数据结构专栏 Linux专栏 LeetCode刷题 算法专栏 前言 这…

Neo4j图数据库_web页面关闭登录实现免登陆访问_常用的cypher语句_删除_查询_创建关系图谱---Neo4j图数据库工作笔记0013

由于除了安装,那么真实使用的时候,就是导入数据了,有了关系和节点的csv文件以后如果用 cypher进行导入数据和创建关系图谱,还有进行查询,以及如果导入错误如何清空,大概是这些 用的最多的,单独把这些拿进来,总结一下,用的会比较方便. 1.实现免登陆访问: /data/module/neo4j-…

基于微信小程序的在线小说阅读系统,附数据库、教程

1 功能简介 Java基于微信小程序的在线小说阅读系统 微信小程序的在线小说阅读系统&#xff0c;系统的整体功能需求分为两部分&#xff0c;第一部分主要是后台的功能&#xff0c;后台功能主要有小说信息管理、注册用户管理、系统系统等功能。微信小程序主要分为首页、分类和我的…

【数据结构--排序】堆排序

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

Linux的socket通信

关于套接字通信定义如下&#xff1a; 套接字对应程序猿来说就是一套网络通信的接口&#xff0c;使用这套接口就可以完成网络通信。网络通信的主体主要分为两部分&#xff1a;客户端和服务器端。在客户端和服务器通信的时候需要频繁提到三个概念&#xff1a;IP、端口、通信数据&…

测试C#图像文本识别模块Tesseract的基本用法

微信公众号“dotNET跨平台”的文章《c#实现图片文体提取》&#xff08;参考文献3&#xff09;介绍了C#图像文本识别模块Tesseract&#xff0c;后者是tesseract-ocr&#xff08;参考文献2&#xff09; 的C#封装版本&#xff0c;目前版本为5.2&#xff0c;关于Tesseract的详细介绍…

马尔可夫链预测举例——钢琴销售的存贮策略

问题概述 一家钢琴专卖店&#xff0c;根据以往的销售经验&#xff0c;平均每周只能售出一架钢琴&#xff0c;现在经理指定的存贮策略是&#xff0c;每周末检查库存存量&#xff0c;仅当库存量为零时&#xff0c;才订购3架供下周销售&#xff1b;否则就不订购。试估计这种策略下…