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


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

    理解参数(parameter)

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

    ros2 param list

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

    ros2 param get

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

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

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

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

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

    ros2 param dump <node_name>
    
    • 1

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

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

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

    ros2 param load <node_name> <parameter_file>
    
    • 1

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

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

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

    理解动作(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>
    
    • 1

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

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

    使用rqt_console查看日志

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

    Fatal
    Error
    Warn
    Info
    Debug
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    设置默认日志级别

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

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

    启动节点

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

    ros2 launch 
    
    • 1

    在这里插入图片描述

    记录和回放数据

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

    ros2 bag record <topic_name>
    
    • 1

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

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

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

    ros2 bag info

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

    ros2 bag play

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

  • 相关阅读:
    [Kubernetes] etcd 单机和集群部署
    prority_queue的学习
    kafka----5
    拍视频麦克风什么牌子好?户外无线麦克风哪个牌子好,看本期文章
    麒麟系统修改网卡名步骤和网卡占用故障处理
    如何利用AI学习区块链知识,ChatGPT x Kapa.ai ⇒ 开发者的福音
    10.过拟合、欠拟合与正则化
    canvas学习
    尚硅谷Redis6从入门到精通
    Istio学习笔记-体验istio
  • 原文地址:https://blog.csdn.net/huanggang982/article/details/132660971