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

此命令用于显示所有节点的参数。
ROS 2官方文档(基于humble版本)学习笔记(三)_第1张图片
每个节点都有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一种通信类型,用于长时间运行的任务。它包含三部分:一个目标,反馈,一个结果。动作是基于话题和服务构建的。动作的功能除了可以取消外,和服务很类似。与服务返回一个单一的回应不同,动作也提供持续的反馈。动作使用客户端-服务器模式,一个“动作客户”节点发送一个目标给一个“动作服务”节点,“动作服务”确认这个目标并且返回一个反馈流和一个结果。
ROS 2官方文档(基于humble版本)学习笔记(三)_第2张图片

ros2 node info

此命令用来查看一个节点提供的动作列表。
ROS 2官方文档(基于humble版本)学习笔记(三)_第3张图片
注意:/turtlesim节点的/turtle1/rotate_absolute动作是在Action Servers下面的,这意味着/turtlesim为/turtle1/rotate_absolute动作,响应和提供反馈。
ROS 2官方文档(基于humble版本)学习笔记(三)_第4张图片
注意:/teleop_turtle节点的/turtle1/rotate_absolute动作是在Action Clients下面的,这意味着他将为这个动作发送目标。

ros2 action list

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

ros2 action list -t

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

ros2 action info

此命令可以获取动作的相关信息。
ROS 2官方文档(基于humble版本)学习笔记(三)_第5张图片

ros2 interface show

在发送或者执行动作目标之前,你需要的另一个信息是动作类型的具体结构。参数为ros2 action list -t输出的类型。
ROS 2官方文档(基于humble版本)学习笔记(三)_第6张图片
第一个—上面是目标的结构(数据类型和名字),第二个—上面是结果的结构,最后是反馈的结构。

ros2 actiong send_goal

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

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

需要使用YAML格式。
ROS 2官方文档(基于humble版本)学习笔记(三)_第7张图片
所有的目标都有一个唯一的ID,会在返回的消息里显示。也会显示出结果。可以在后面加上--feedback参数查看反馈信息。
ROS 2官方文档(基于humble版本)学习笔记(三)_第8张图片
你将会持续接收到反馈,指导目标完成。

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

使用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 

ROS 2官方文档(基于humble版本)学习笔记(三)_第9张图片

记录和回放数据

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

ros2 bag record <topic_name>

此命令会在运行命令的当前目录下创建 rosbag文件。
ROS 2官方文档(基于humble版本)学习笔记(三)_第10张图片

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

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

ros2 bag info

此命令用于查看记录文件的详情。
ROS 2官方文档(基于humble版本)学习笔记(三)_第11张图片

ros2 bag play

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

你可能感兴趣的:(学习,笔记)