Skip to content

03-命令行工具汇总

一、命令行工具汇总

1. 一级命令

英文命令 功能描述
ros2 action 各种动作相关的子命令
ros2 bag 各种 rosbag(数据录制与回放)相关的子命令
ros2 component 各种组件相关的子命令
ros2 daemon 各种守护进程相关的子命令
ros2 doctor 检查 ROS 设置和其他潜在问题
ros2 interface 显示 ROS 接口信息
ros2 launch 运行启动文件
ros2 lifecycle 各种生命周期相关的子命令
ros2 multicast 各种组播相关的子命令
ros2 node 各种节点相关的子命令
ros2 param 各种参数相关的子命令
ros2 pkg 各种包相关的子命令
ros2 run 运行包特定的可执行文件
ros2 security 各种安全相关的子命令
ros2 service 各种服务相关的子命令
ros2 topic 各种主题相关的子命令
ros2 wtf 使用 wtf作为 doctor的别名

2. 二级命令

node 命令

命令 功能描述
ros2 node info 输出节点信息
ros2 node list 输出可用节点列表

主要依赖的接口:

  • node.get_node_names_and_namespaces():获取所有节点名与命名空间对
  • node.get_subscriber_names_and_types_by_node():获取指定节点的订阅者列表
  • node.get_publisher_names_and_types_by_node():获取指定节点的发布者列表
  • node.get_client_names_and_types_by_node():获取指定节点的 Service 服务端列表
  • node.get_service_names_and_types_by_node():获取指定节点的 Service 客户端列表
  • node.get_action_client_names_and_types_by_node():获取指定节点的 Action 客户端列表
  • node.get_action_server_names_and_types_by_node():获取指定节点的 Action 服务端列表

topic 命令

命令 功能描述
ros2 topic bw 显示主题使用的带宽
ros2 topic delay 显示主题时间戳的延迟
ros2 topic echo 输出主题中的消息
ros2 topic find 输出指定类型的可用主题列表
ros2 topic hz 在屏幕上打印平均接收速率
ros2 topic info 打印主题的相关信息
ros2 topic list 输出可用主题列表
ros2 topic pub 向主题发布消息
ros2 topic type 打印主题的类型

主要依赖的接口:

  • node.create_subscription():创建订阅者
  • node.create_timer():创建定时器,超时时触发回调
  • rclpy.qos.QoSPresetProfiles:订阅者qos 策略配置
  • node.get_publishers_info_by_topic: 检查发布者 qos 配置以兼容所有发布者
  • rclpy.qos_event.SubscriptionEventCallbacks: 消息丢失回调
  • node.get_topic_names_and_types():获取 topic 名称和消息类型
  • node.create_publisher():创建发布者

service 命令

命令 功能描述
ros2 service call 调用一个服务
ros2 service find 输出指定类型的可用服务列表
ros2 service list 输出可用服务列表
ros2 service type 输出服务的类型

主要依赖的接口:

  • rclpy.create_node():创建节点
  • node.create_client():创建客户端
  • client.call_async():发起同步请求
  • node.get_service_names_and_types():返回当前 ROS 图(ROS graph)中“存在的”服务(service)的名字到对应服务类型字符串列表的映射(map)。

action 命令

命令 功能描述
ros2 action info 打印动作的相关信息
ros2 action list 输出动作名称列表
ros2 action send_goal 发送动作目标
  • node.get_action_client_names_and_types_by_node():获取指定节点的 Action 客户端列表
  • node.get_action_server_names_and_types_by_node():获取指定节点的 Action 服务端列表
  • node.get_action_names_and_types():返回当前 ROS 图(ROS graph)中“存在的”动作(action)的名字到对应服务类型字符串列表的映射(map)。
  • rclpy.create_node():创建节点
  • _rclpy.ActionClient():创建 Action 客户端
  • ActionClient.action_client.send_goal_async():发送同步请求
  • ClientGoalHandle.cancel_goal_async():取消请求

interface 命令

命令 功能描述
ros2 interface list 列出所有可用的接口类型
ros2 interface package 输出一个包内可用的接口类型列表
ros2 interface packages 输出提供接口的包列表
ros2 interface proto 输出接口原型
ros2 interface show 输出接口定义
  • rosidl_runtime_py.get_message_interfaces():获取一个或多个ROS 2包中的消息接口定义
  • rosidl_runtime_py.get_service_interfaces():获取一个或多个ROS 2包中的服务接口定义
  • rosidl_runtime_py.get_action_interfaces():获取一个或多个ROS 2包中的动作接口定义
  • rosidl_runtime_py.get_interfaces():获取一个或多个ROS 2包中的可用的接口定义
  • rosidl_runtime_py.message_to_yaml():获取接口原型并转换为yaml 格式输出
  • rosidl_runtime_py.get_interface_path():获取接口文件路径

param 命令

命令 功能描述
ros2 param delete 删除参数
ros2 param describe 显示已声明参数的描述信息
ros2 param dump 以YAML文件格式显示节点的所有参数
ros2 param get 获取参数
ros2 param list 输出可用参数列表
ros2 param load 为节点加载参数文件
ros2 param set 设置参数
  • node.get_node_names_and_namespaces():获取所有节点名与命名空间对,用于设置 param_client 连接的 service_name
  • node.create_client():创建客户端
  • client.call_async(request):发送同步请求

所有参数操作通过以下服务

~/describe_parameters
~/get_parameter_types
~/get_parameters
~/list_parameters
~/set_parameters
~/set_parameters_atomically

bag 命令

命令 功能描述
ros2 bag convert 根据输入的数据包,使用不同设置写出新的数据包
ros2 bag info 在屏幕上打印数据包的信息
ros2 bag list 在屏幕上打印可用插件的信息
ros2 bag play 从数据包回放ROS数据
ros2 bag record 将ROS数据记录到数据包
ros2 bag reindex 为数据包重建元数据文件
  • rclpp::Node:Recorder/Player 父类
  • create_generic_subscription:通用订阅者 (GenericSubscription) 允许在运行时动态指定消息类型和处理回调函数
  • rclcpp::QoS:自动匹配发布者/订阅者的服务质量配置
  • Node::create_service<...>: 服务控制接口

[[04-ros2bag#5 层架构]]

run 命令

运行功能包指定的可执行文件。

launch 命令

运行启动文件。

pkg 命令

命令 功能描述
ros2 pkg create 创建新的ROS 2功能包
ros2 pkg executables 输出功能包特定的可执行文件列表
ros2 pkg list 输出可用功能包列表
ros2 pkg prefix 输出功能包的前缀路径
ros2 pkg xml 输出功能包清单的XML或特定标签

component 命令

命令 功能描述
ros2 component list 输出正在运行的容器和组件列表
ros2 component load 将组件加载到容器节点中
ros2 component standalone 在独立容器节点中运行组件
ros2 component types 输出在ament索引中注册的组件列表
ros2 component unload 从容器节点中卸载组件
  1. 注册 component 组件,将 node 编译为动态库(RCLCPP_COMPONENTS_REGISTER_NODE(CLZ)
  2. 启动 component_container
  3. 通过命令行工具动态加载/卸载 component(基于 /_container/xxx 服务)

daemon 命令

命令 功能描述
ros2 daemon start 如果守护进程未运行,则启动它
ros2 daemon status 输出守护进程的状态
ros2 daemon stop 如果守护进程正在运行,则停止它

doctor 命令

检查 ROS 设置和其他潜在问题

lifecycle 命令

命令 功能描述
ros2 lifecycle get 获取一个或多个节点的生命周期状态
ros2 lifecycle list 输出可用转换列表
ros2 lifecycle nodes 输出具有生命周期的节点列表
ros2 lifecycle set 触发生命周期状态转换
  • node.get_node_names_and_namespaces()
  • node.create_client()
  • client.call_async(request)

rclcpp_lifecycle::LifecycleNode 会初始化的 topic 与 service:

cpp
static const char * pub_transition_event_topic = "~/transition_event";
static const char * srv_change_state_service = "~/change_state";
static const char * srv_get_state_service = "~/get_state";
static const char * srv_get_available_states_service = "~/get_available_states";
static const char * srv_get_available_transitions_service = "~/get_available_transitions";
static const char * srv_get_transition_graph = "~/get_transition_graph";

multicast 命令

命令 功能描述
ros2 multicast receive 接收单个UDP组播数据包
ros2 multicast send 发送单个UDP组播数据包
使用原生 socket 进行通信

security 命令

命令 功能描述
ros2 security create_enclave 创建安全隔离区
ros2 security create_key 已弃用:创建安全隔离区。请改用 create_enclave
ros2 security create_keystore 创建密钥库
ros2 security create_permission 创建权限文件
ros2 security generate_artifacts 从身份列表和策略文件生成密钥和权限文件
ros2 security generate_policy 从ROS图数据生成XML策略文件
ros2 security list_enclaves 列出密钥库中的安全隔离区
ros2 security list_keys 已弃用:列出密钥库中的安全隔离区。请改用 list_enclaves

ROS 2 包含在 ROS 2 计算图中的节点之间进行通信安全的能力。与服务发现类似,安全性是通过底层的 ROS 2 中间件实现的(前提是中间件支持相应的安全插件)。启用安全性不需要额外的软件安装,但中间件需要为每个 ROS 图参与者配置文件。

ROS 2安全性 — ROS 2 Documentation: Humble 文档

wtf 命令

doctor 别名。

二、部分常用命令详细介绍

ros2 node

bash
info  # 输出节点信息
list  # 输出运行中的节点的列表

ros2 node list

用法:

bash
 ros2 node list [-h] [--spin-time SPIN_TIME] [-s] [--no-daemon] [-a] [-c]

功能: 输出可用节点列表。

选项参数:

  • -h, --help 显示此帮助信息并退出
  • --spin-time SPIN_TIME 等待发现的轮询时间(秒)(仅在不使用已运行的守护进程时适用)。
  • -s, --use-sim-time 启用 ROS 模拟时间
  • --no-daemon 不生成也不使用已运行的守护进程
  • -a, --all 显示所有节点(包括隐藏节点)
  • -c, --count-nodes 仅显示发现的节点数量

示例:

bash
$ ros2 node list
/minimal_publisher
/minimal_service

输出的节点名称包括命名空间。

补充说明:

ROS2入门教程-daemon简介 - 爱折腾-创客智造实验室

在 ROS 2 中,daemon(守护进程) 是一个后台服务进程,主要用于优化节点发现和系统拓扑信息的查询性能

--spin-time SPIN_TIME:等待发现的轮询时间(秒)(仅在不使用已运行的守护进程时适用) 这个选项用于设置在没有使用守护进程的情况下,命令等待发现节点的时间(以秒为单位)。因为在不使用守护进程时,命令需要直接与 DDS 交互来发现节点,这个过程需要一定的时间。通过设置这个时间,可以控制等待发现的持续时间。如果设置的时间太短,可能无法发现所有的节点;如果设置的时间太长,则可能使命令响应变慢。 -s, --use-sim-time:启用 ROS 模拟时间 这个选项用于启用模拟时间。在 ROS 中,模拟时间允许系统使用一个发布到/clock 主题的时间消息来模拟时间,而不是使用计算机的实时时钟。这在仿真环境中非常有用,因为仿真环境可以控制时间的推进速度,甚至可以回退时间。启用后,节点将根据/clock 主题收到的时间来更新当前时间。 --no-daemon:不生成也不使用已运行的守护进程 默认情况下,ROS 2 命令行工具会尝试使用一个已经运行的守护进程(ros 2 daemon)来加速节点发现和信息查询。守护进程会缓存系统的状态,从而避免每次命令都进行完整的发现过程。但是,如果使用--no-daemon 选项,命令将不会使用守护进程,而是直接进行发现。这可能会使命令运行变慢,但可以避免守护进程缓存可能带来的过时信息。 -a, --all:显示所有节点(包括隐藏节点) 在 ROS 2 中,节点可以设置为“隐藏”,即其名称以_开头。默认情况下,这些隐藏节点不会在节点列表中显示。使用-a 或--all 选项可以显示所有节点,包括这些隐藏节点。

ros2 node info

用法:

ros2 node info [-h] [--spin-time SPIN_TIME] [-s] [--no-daemon] [--include-hidden] node_name

功能: 输出节点的相关信息。

位置参数:

  • Node_name 要查询信息的节点名称(带命名空间)

选项参数:

  • -h, --help 显示此帮助信息并退出
  • --spin-time SPIN_TIME 等待发现的轮询时间(秒)(仅在不使用已运行的守护进程时适用)
  • -s, --use-sim-time 启用 ROS 模拟时间
  • --no-daemon 不生成也不使用已运行的守护进程
  • --include-hidden 同时显示隐藏的主题、服务和动作

示例:

bash
############################################################
$ ros2 node info /minimal_service
/minimal_service
  Subscribers: # 节点中的订阅者
    /parameter_events: rcl_interfaces/msg/ParameterEvent # topic/消息类型
  Publishers: # 节点中的发布者
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rosout: rcl_interfaces/msg/Log
  Service Servers: # 节点中的发布者Service Servers
    /add_ints: base_interfaces_demo/srv/AddInts # 服务名/消息类型
    /minimal_service/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /minimal_service/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /minimal_service/get_parameters: rcl_interfaces/srv/GetParameters
    /minimal_service/list_parameters: rcl_interfaces/srv/ListParameters
    /minimal_service/set_parameters: rcl_interfaces/srv/SetParameters
    /minimal_service/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
  Service Clients: 

  Action Servers:

  Action Clients:
############################################################
$ ros2 node info /minimal_publisher
/minimal_publisher
  Subscribers:
    /parameter_events: rcl_interfaces/msg/ParameterEvent
  Publishers:
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rosout: rcl_interfaces/msg/Log
    /topic: std_msgs/msg/String
  Service Servers:
    /minimal_publisher/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /minimal_publisher/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /minimal_publisher/get_parameters: rcl_interfaces/srv/GetParameters
    /minimal_publisher/list_parameters: rcl_interfaces/srv/ListParameters
    /minimal_publisher/set_parameters: rcl_interfaces/srv/SetParameters
    /minimal_publisher/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
  Service Clients:

  Action Servers:

  Action Clients:

ros2 topic

基本使用语法如下:

bash
bw       # 输出话题消息传输占用的带宽
delay    # 输出带有 header 的话题延迟
echo     # 输出某个话题下的消息
find     # 根据类型查找话题
hz       # 输出消息发布频率
info     # 输出话题相关信息
list     # 输出运行中的话题列表
pub      # 向指定话题发布消息
type     # 输出话题使用的接口类型

全局选项:

  • -h, --help:显示此帮助信息并退出
  • --include-hidden-topics:在结果中包含隐藏主题(名称通常以 _ 开头的主题)

ros2 topic bw

用法:

bash
ros2 topic bw [-h] [--window WINDOW] [--spin-time SPIN_TIME] [-s] topic

功能: 打印主题使用的带宽。

注意: 此带宽反映的是订阅端的接收速率,可能会受到平台资源和 QoS 配置的影响,可能与发布端的带宽不完全匹配。

位置参数:

  • topic 要监控带宽使用情况的主题名称

选项参数:

  • -h, --help 显示此帮助信息并退出
  • --window WINDOW, -w WINDOW 计算速率的最大窗口大小(消息数量)(默认:100)
  • --spin-time SPIN_TIME 等待发现的轮询时间(秒)(仅在不使用已运行的守护进程时适用)
  • -s, --use-sim-time 启用 ROS 模拟时间

示例:

bash
$ ros2 topic bw  /topic
Subscribed to [/topic]
47 B/s from 2 messages
        Message size mean: 28 B min: 28 B max: 28 B
38 B/s from 3 messages
        Message size mean: 28 B min: 28 B max: 28 B
35 B/s from 4 messages
        Message size mean: 28 B min: 28 B max: 28 B
33 B/s from 5 messages
        Message size mean: 28 B min: 28 B max: 28 B
32 B/s from 6 messages
        Message size mean: 28 B min: 28 B max: 28 B
32 B/s from 7 messages
        Message size mean: 28 B min: 28 B max: 28 B
31 B/s from 8 messages
        Message size mean: 28 B min: 28 B max: 28 B
31 B/s from 9 messages
        Message size mean: 28 B min: 28 B max: 28 B
30 B/s from 10 messages
        Message size mean: 28 B min: 28 B max: 28 B

ros2 topic delay

用法:

bash
ros2 topic delay [-h] [--window WINDOW] [--spin-time SPIN_TIME] [-s] topic

功能: 计算消息从发布到接收的端到端延迟,基于消息头部(header) 中的时间戳。

位置参数:

  • Topic 要计算延迟的主题名称

选项参数:

  • -h, --help 显示此帮助信息并退出
  • --window WINDOW, -w WINDOW 计算速率时的窗口大小(消息数量)(默认:10000)
  • --spin-time SPIN_TIME 等待发现的轮询时间(秒)(仅在不使用已运行的守护进程时适用)
  • -s, --use-sim-time 启用 ROS 模拟时间

示例:

msg/Test.Msg

std_msgs/Header header # delay 基于 header 中的时间戳计算延迟
int32  num
bash
$ ros2 topic delay /topic
average delay: 0.001
        min: 0.001s max: 0.001s std dev: 0.00000s window: 1
average delay: 0.001
        min: 0.001s max: 0.001s std dev: 0.00015s window: 2
average delay: 0.002
        min: 0.001s max: 0.002s std dev: 0.00044s window: 3
average delay: 0.002
        min: 0.001s max: 0.002s std dev: 0.00039s window: 4
average delay: 0.002
        min: 0.001s max: 0.002s std dev: 0.00038s window: 5
average delay: 0.001
        min: 0.001s max: 0.002s std dev: 0.00036s window: 6
average delay: 0.001
        min: 0.001s max: 0.002s std dev: 0.00041s window: 7
average delay: 0.001
        min: 0.001s max: 0.002s std dev: 0.00044s window: 8
average delay: 0.001
        min: 0.001s max: 0.002s std dev: 0.00043s window: 9
average delay: 0.001
        min: 0.001s max: 0.002s std dev: 0.00043s window: 10
average delay: 0.001

补充说明:

不带 Header 的消息类型会报错: msg does not have header

$ ros2 topic delay /topic
msg does not have header

ros2 topic hz

用法:

ros 2 topic hz [-h] [--window WINDOW] [--filter EXPR] [--wall-time] [--spin-time SPIN_TIME] [-s] topic_name

功能: 输出平均接收速率。

注意: 此速率反映的是订阅端的接收速率,可能会受到平台资源和 QoS 配置的影响, 可能与发布端的速率不完全匹配。

位置参数:

  • topic_name 要监听的 ROS 主题名称(例如:'/chatter')

选项参数:

  • -h, --help 显示此帮助信息并退出
  • --window WINDOW, -w WINDOW 计算速率的窗口大小(消息数量)(默认:10000)
  • --filter EXPR 仅测量匹配指定 Python 表达式的消息
  • --wall-time 使用墙上时钟时间计算速率,在仿真期间未发布时钟时很有用
  • --spin-time SPIN_TIME 等待发现的轮询时间(秒)(仅在不使用已运行的守护进程时适用)
  • -s, --use-sim-time 启用 ROS 模拟时间

示例:

bash
$ ros2 topic hz /topic
average rate: 1.000
        min: 0.999s max: 1.000s std dev: 0.00047s window: 3
average rate: 1.000
        min: 0.999s max: 1.001s std dev: 0.00052s window: 4
average rate: 1.000
        min: 0.999s max: 1.001s std dev: 0.00047s window: 5
average rate: 1.000
        min: 0.999s max: 1.001s std dev: 0.00050s window: 7
average rate: 1.000
        min: 0.999s max: 1.001s std dev: 0.00050s window: 8
average rate: 1.000
        min: 0.999s max: 1.001s std dev: 0.00048s window: 9
average rate: 1.000
        min: 0.999s max: 1.001s std dev: 0.00050s window: 11
average rate: 1.000
        min: 0.999s max: 1.001s std dev: 0.00047s window: 13
average rate: 1.000
        min: 0.999s max: 1.001s std dev: 0.00046s window: 15
average rate: 1.000
        min: 0.999s max: 1.001s std dev: 0.00046s window: 16

ros2 topic echo

用法:

ros2 topic echo [-h] [--spin-time SPIN_TIME] [-s] [--no-daemon]
                       [--qos-profile {unknown,system_default,sensor_data,services_default,parameters,parameter_events,action_status_default}]
                       [--qos-depth N] [--qos-history {system_default,keep_last,keep_all,unknown}]
                       [--qos-reliability {system_default,reliable,best_effort,unknown}]
                       [--qos-durability {system_default,transient_local,volatile,unknown}] [--csv]
                       [--field FIELD] [--full-length] [--truncate-length TRUNCATE_LENGTH]
                       [--no-arr] [--no-str] [--flow-style] [--lost-messages] [--no-lost-messages]
                       [--raw] [--filter FILTER_EXPR] [--once]
                       topic_name [message_type]

功能: 输出主题中的消息。

位置参数:

  • Topic_name 要监听的 ROS 主题名称(例如:'/chatter')
  • Message_type ROS 消息类型(例如:'std_msgs/msg/String')

选项参数:

  • -h, --help 显示此帮助信息并退出
  • --spin-time SPIN_TIME 等待发现的轮询时间(秒)(仅在不使用已运行的守护进程时适用)
  • -s, --use-sim-time 启用 ROS 模拟时间
  • --no-daemon 不生成也不使用已运行的守护进程
  • --qos-profile {unknown, system_default, sensor_data, services_default, parameters, parameter_events, action_status_default} 订阅时使用的 QoS 预设配置文件(默认:sensor_data)
  • --qos-depth N 订阅时的队列大小设置(覆盖--qos-profile 选项的深度值)
  • --qos-history {system_default, keep_last, keep_all, unknown} 订阅时的历史记录策略设置(覆盖--qos-profile 选项的历史值,默认:keep_last)
  • --qos-reliability {system_default, reliable, best_effort, unknown} 订阅时的 QoS 可靠性设置(覆盖--qos-profile 选项的可靠性值,默认:自动匹配现有发布者)
  • --qos-durability {system_default, transient_local, volatile, unknown} 订阅时的 QoS 持久性设置(覆盖--qos-profile 选项的持久性值,默认:自动匹配现有发布者)
  • --csv 以逗号分隔输出所有递归字段(例如用于绘图)
  • --field FIELD 输出消息的选定字段。使用'.'选择子字段。例如,要输出 nav_msgs/msg/Odometry 消息的 position 字段: 'ros 2 topic echo /odom --field pose. Pose. Position'
  • --full-length, -f 输出数组、字节和长度大于'--truncate-length'的字符串的所有元素,默认情况下它们会在'--truncate-length'个元素后被截断并显示'...' --truncate-length TRUNCATE_LENGTH, -l TRUNCATE_LENGTH 截断数组、字节和字符串的长度(默认:128)
  • --no-arr 不输出消息的数组字段
  • --no-str 不输出消息的字符串字段
  • --flow-style 以流样式输出集合(不适用于 csv 格式)
  • --lost-messages 已弃用:无作用
  • --no-lost-messages 不报告消息丢失情况
  • --raw 输出原始二进制表示
  • --filter FILTER_EXPR 用于过滤输出消息的 Python 表达式。表达式可以使用 Python 内置函数以及 m(消息对象)
  • --once 打印接收到的第一条消息然后退出

示例:

bash
$ ros2 topic echo /topic base_interfaces_demo/msg/Test
header:
  stamp:
    sec: 1762329908
    nanosec: 75311114
  frame_id: base_link
num: 2322
---
header:
  stamp:
    sec: 1762329909
    nanosec: 75329736
  frame_id: base_link
num: 2323
---
header:
  stamp:
    sec: 1762329910
    nanosec: 75083810
  frame_id: base_link
num: 2324
---
header:
  stamp:
    sec: 1762329911
    nanosec: 75343639
  frame_id: base_link
num: 2325
---

补充说明:

如果某个主题包含不止一种消息类型,需要指定消息类型,否则 echo 无法输出。

bash
$ros2 topic echo /topic
Cannot echo topic '/topic', as it contains more than one type: [base_interfaces_demo/msg/Test, std_msgs/msg/String]

ros2 topic find

用法:

ros2 topic find [-h] [--spin-time SPIN_TIME] [-s] [--no-daemon] [-c]
                       [--include-hidden-topics]
                       topic_type

功能: 输出当前类型的 topic 列表。

位置参数:

  • Topic_type 要过滤的 ROS 主题类型名称(例如:'std_msgs/msg/String')

选项参数:

  • -h, --help 显示此帮助信息并退出
  • --spin-time SPIN_TIME 等待发现的轮询时间(秒)(仅在不使用已运行的守护进程时适用)
  • -s, --use-sim-time 启用 ROS 模拟时间
  • --no-daemon 不生成也不使用已运行的守护进程
  • -c, --count-topics 仅显示发现的主题数量
  • --include-hidden-topics 同时考虑隐藏主题

示例:

bash
$ ros2 topic find  base_interfaces_demo/msg/Test
/topic

ros2 topic list

用法:

ros2 topic list [-h] [--spin-time SPIN_TIME] [-s] [--no-daemon] [-t] [-c]
                       [--include-hidden-topics] [-v]

功能: 输出可用主题列表。

选项参数:

  • -h, --help 显示此帮助信息并退出
  • --spin-time SPIN_TIME 等待发现的轮询时间(秒)(仅在不使用已运行的守护进程时适用)
  • -s, --use-sim-time 启用 ROS 模拟时间
  • --no-daemon 不生成也不使用已运行的守护进程
  • -t, --show-types 同时显示主题类型
  • -c, --count-topics 仅显示发现的主题数量
  • --include-hidden-topics 同时考虑隐藏主题
  • -v, --verbose 列出每个主题的完整详细信息

示例:

bash
$ ros2 topic list -v
Published topics:
 * /parameter_events [rcl_interfaces/msg/ParameterEvent] 5 publishers
 * /rosout [rcl_interfaces/msg/Log] 5 publishers
 * /topic [base_interfaces_demo/msg/Test, std_msgs/msg/String] 2 publishers

Subscribed topics:
 * /parameter_events [rcl_interfaces/msg/ParameterEvent] 4 subscribers
 * /topic [base_interfaces_demo/msg/Test, std_msgs/msg/String] 2 subscribers

ros2 topic info

用法:

ros2 topic info [-h] [--spin-time SPIN_TIME] [-s] [--no-daemon] [--verbose] topic_name

功能: 打印主题的相关信息。

位置参数:

  • Topic_name 要获取信息的 ROS 主题名称(例如:'/chatter')

选项参数:

  • -h, --help 显示此帮助信息并退出
  • --spin-time SPIN_TIME 等待发现的轮询时间(秒)(仅在不使用已运行的守护进程时适用)
  • -s, --use-sim-time 启用 ROS 模拟时间
  • --no-daemon 不生成也不使用已运行的守护进程
  • --verbose, -v 打印详细信息,如节点名称、节点命名空间、主题类型、GUID 和此主题的发布者和订阅者的 QoS 配置文件

示例:

bash
$ ros2 topic info -v /parameter_events
Type: rcl_interfaces/msg/ParameterEvent

Publisher count: 1

Node name: _ros2cli_daemon_0_342f4cd15c22479ca28548e4512ec9e7
Node namespace: /
Topic type: rcl_interfaces/msg/ParameterEvent
Endpoint type: PUBLISHER
GID: 01.0f.a3.1f.1e.23.9c.92.00.00.00.00.00.00.04.03.00.00.00.00.00.00.00.00
QoS profile:
  Reliability: RELIABLE
  History (Depth): UNKNOWN
  Durability: VOLATILE
  Lifespan: Infinite
  Deadline: Infinite
  Liveliness: AUTOMATIC
  Liveliness lease duration: Infinite

Subscription count: 0

ros2 topic pub

用法:

ros2 topic pub [-h] [-r N] [-p N] [-1 | -t TIMES] [-w WAIT_MATCHING_SUBSCRIPTIONS]
                      [--keep-alive N] [-n NODE_NAME]
                      [--qos-profile {unknown,system_default,sensor_data,services_default,parameters,parameter_events,action_status_default}]
                      [--qos-depth N] [--qos-history {system_default,keep_last,keep_all,unknown}]
                      [--qos-reliability {system_default,reliable,best_effort,unknown}]
                      [--qos-durability {system_default,transient_local,volatile,unknown}]
                      [--spin-time SPIN_TIME] [-s]
                      topic_name message_type [values]

功能: 向指定的通道中发布某种类型的消息。

位置参数:

  • Topic_name 要发布消息的 ROS 主题名称(例如:'/chatter')
  • Message_type ROS 消息类型(例如:'std_msgs/String')
  • Values 以 YAML 格式填充消息的值(例如:'data: Hello World'),否则将使用默认值发布消息。可以使用'now'占位符获取当前时间,使用'auto'占位符获取带有当前时间和空 frame_id 的 std_msgs. Msg. Header。

选项参数:

  • -h, --help 显示此帮助信息并退出
  • -r N, --rate N 发布频率(Hz)(默认:1)
  • -p N, --print N 仅打印每第 N 条发布的消息(默认:1)
  • -1, --once 发布一条消息后退出
  • -t TIMES, --times TIMES 发布指定次数后退出
  • -w WAIT_MATCHING_SUBSCRIPTIONS, --wait-matching-subscriptions WAIT_MATCHING_SUBSCRIPTIONS 等待直到找到指定数量的匹配订阅。在使用"-1"/"--once"/"--times"时默认为 1,否则默认为 0。
  • --keep-alive N 在最后一条消息后保持发布节点存活 N 秒(默认:0.1)
  • -n NODE_NAME, --node-name NODE_NAME 创建的发布节点的名称
  • --qos-profile {unknown, system_default, sensor_data, services_default, parameters, parameter_events, action_status_default} 发布时使用的 QoS 预设配置文件
  • --qos-depth N 发布时的队列大小设置(覆盖--qos-profile 选项的深度值)
  • --qos-history {system_default, keep_last, keep_all, unknown} 发布时的历史记录策略设置(覆盖--qos-profile 选项的历史值,默认:keep_last)
  • --qos-reliability {system_default, reliable, best_effort, unknown} 发布时的 QoS 可靠性设置(覆盖--qos-profile 选项的可靠性值,默认:reliable)
  • --qos-durability {system_default, transient_local, volatile, unknown} 发布时的 QoS 持久性设置(覆盖--qos-profile 选项的持久性值,默认:transient_local)
  • --spin-time SPIN_TIME 等待发现的轮询时间(秒)(仅在不使用已运行的守护进程时适用)
  • -s, --use-sim-time 启用 ROS 模拟时间

示例:

bash
$ ros2 topic pub /topic base_interfaces_demo/msg/Test '{header: auto, num: 111}' -t 2 -r 10
publisher: beginning loop
publishing #1: base_interfaces_demo.msg.Test(header=std_msgs.msg.Header(stamp=builtin_interfaces.msg.Time(sec=1762331686, nanosec=592319532), frame_id=''), num=111)

publishing #2: base_interfaces_demo.msg.Test(header=std_msgs.msg.Header(stamp=builtin_interfaces.msg.Time(sec=1762331686, nanosec=693191385), frame_id=''), num=111)

ros2 topic type

用法:

ros2 topic type [-h] [--spin-time SPIN_TIME] [-s] [--no-daemon] topic_name

功能: 打印主题相关的消息类型。

位置参数:

  • Topic_name 要获取类型的 ROS 主题名称(例如:'/chatter')

选项参数:

  • -h, --help 显示此帮助信息并退出
  • --spin-time SPIN_TIME 等待发现的轮询时间(秒)(仅在不使用已运行的守护进程时适用)
  • -s, --use-sim-time 启用 ROS 模拟时间
  • --no-daemon 不生成也不使用已运行的守护进程

示例:

bash
$ ros2 topic type /topic
base_interfaces_demo/msg/Test
std_msgs/msg/String

ros2 service

Ros 2 service 的基本使用语法如下:

call  向某个服务发送请求
find  根据类型查找服务
list  输出运行中的服务列表
type  输出服务使用的接口类型

ros2 service list

用法:

ros2 service list [-h] [--spin-time SPIN_TIME] [-s] [--no-daemon] [-t] [-c]
                         [--include-hidden-services]

功能: 输出可用服务列表

选项参数:

  • -h, --help 显示此帮助信息并退出
  • --spin-time SPIN_TIME 等待发现的轮询时间(秒)(仅在不使用已运行的守护进程时适用)
  • -s, --use-sim-time 启用 ROS 模拟时间
  • --no-daemon 不生成也不使用已运行的守护进程
  • -t, --show-types 同时显示服务类型 -c,
  • --count-services 仅显示发现的服务数量
  • --include-hidden-services 同时考虑隐藏服务

示例:

bash
$ $ ros2 service list -t
/add_ints [base_interfaces_demo/srv/AddInts, base_interfaces_demo/srv/Echo]
/empty_service/describe_parameters [rcl_interfaces/srv/DescribeParameters]
/empty_service/get_parameter_types [rcl_interfaces/srv/GetParameterTypes]
/empty_service/get_parameters [rcl_interfaces/srv/GetParameters]
/empty_service/list_parameters [rcl_interfaces/srv/ListParameters]
/empty_service/set_parameters [rcl_interfaces/srv/SetParameters]
/empty_service/set_parameters_atomically [rcl_interfaces/srv/SetParametersAtomically]
/minimal_service/describe_parameters [rcl_interfaces/srv/DescribeParameters]
/minimal_service/get_parameter_types [rcl_interfaces/srv/GetParameterTypes]
/minimal_service/get_parameters [rcl_interfaces/srv/GetParameters]
/minimal_service/list_parameters [rcl_interfaces/srv/ListParameters]
/minimal_service/set_parameters [rcl_interfaces/srv/SetParameters]
/minimal_service/set_parameters_atomically [rcl_interfaces/srv/SetParametersAtomically]

ros2 service call

用法:

 ros2 service call [-h] [-r N] service_name service_type [values]

功能: 调用一个服务。

位置参数:

  • Service_name 要调用的 ROS 服务名称(例如:'/add_two_ints')
  • Service_type ROS 服务类型(例如:'std_srvs/srv/Empty')
  • Values 以 YAML 格式填充服务请求的值(例如:'{a: 1, b: 2}'),否则将使用默认值发布服务请求

选项参数:

  • -h, --help 显示此帮助信息并退出
  • -r N, --rate N 以特定频率(Hz)重复调用

示例:

bash
$ ros2 service call /add_ints base_interfaces_demo/srv/AddInts '{num1: 5, num2: 4}'
requester: making request: base_interfaces_demo.srv.AddInts_Request(num1=5, num2=4)

response:
base_interfaces_demo.srv.AddInts_Response(sum=9)

ros2 service find

用法:

 ros2 service find [-h] [-c] [--include-hidden-services] service_type

作用: 输出指定类型的可用服务列表

位置参数:

  • Service_type 要过滤的 ROS 服务类型名称(例如:'rcl_interfaces/srv/ListParameters')

选项参数:

  • -h, --help 显示此帮助信息并退出
  • -c, --count-services 仅显示发现的服务数量
  • --include-hidden-services 同时考虑隐藏服务

示例:

bash
$ ros2 service find base_interfaces_demo/srv/AddInts
/add_ints

ros2 service type

用法:

ros2 service type [-h] service_name

功能: 输出服务的消息类型。

位置参数:

  • Service_name 要获取类型的 ROS 服务名称(例如:'/talker/list_parameters')

选项参数:

  • -h, --help 显示此帮助信息并退出

示例:

bash
$ ros2 service type /add_ints
base_interfaces_demo/srv/AddInts
base_interfaces_demo/srv/Echo

与 find 为反向查找。

ros2 action

Ros 2 action 的基本使用语法如下:

info       输出指定动作的相关信息
list       输出运行中的动作的列表
send_goal  向指定动作发送请求

ros2 action list

用法:

ros2 action list [-h] [-t] [-c]

功能: 输出动作名称列表。

选项参数:

  • -h, --help 显示此帮助信息并退出
  • -t, --show-types 同时显示动作类型
  • -c, --count-actions 仅显示发现的动作数量

示例:

bash
$ ros2 action list -t
/get_sum [base_interfaces_demo/action/Progress]

ros2 action info

用法:

ros2 action info [-h] [-t] [-c] action_name

功能: 打印动作的相关信息。

位置参数:

  • Action_name 要获取信息的 ROS 动作名称(例如:'/fibonacci') 选项参数:
  • -h, --help 显示此帮助信息并退出
  • -t, --show-types 同时显示动作类型
  • -c, --count-actions 仅显示发现的动作数量

示例:

bash
$ ros2 action info /get_sum -t
Action: /get_sum
Action clients: 0
Action servers: 1
    /minimal_action_server [base_interfaces_demo/action/Progress]

ros2 action send_goal

用法:

ros2 action send_goal [-h] [-f] [-t N] action_name action_type goal

功能: 打印动作的相关信息。

位置参数:

  • Action_name ROS 动作名称(例如:'/fibonacci')
  • Action_type ROS 动作类型(例如:'example_interfaces/action/Fibonacci')
  • Goal 以 YAML 格式的目标请求值(例如:'{order: 10}') 选项参数:
  • -h, --help 显示此帮助信息并退出
  • -f, --feedback 回显目标的反馈消息
  • -t N, --timeout N 等待 N 秒直到服务器可用且目标完成(默认无限期等待)

示例:

bash
$ ros2 action send_goal /get_sum base_interfaces_demo/action/Progress '{num: 10}' -f
Waiting for an action server to become available...
Sending goal:
     num: 10

Goal accepted with ID: 606547fcdea34f319fd0a5c16b9a1ee2

Feedback:
    progress: 0.1

Feedback:
    progress: 0.2

Feedback:
    progress: 0.3

Feedback:
    progress: 0.4

Feedback:
    progress: 0.5

Feedback:
    progress: 0.6

Feedback:
    progress: 0.7

Feedback:
    progress: 0.8

Feedback:
    progress: 0.9

Feedback:
    progress: 1.0

Result:
    sum: 55

Goal finished with status: SUCCEEDED

ros2 bag

Ros 2 service 的基本使用语法如下:

convert  根据输入的数据包,使用不同设置写出新的数据包
info     在屏幕上打印数据包的信息          
list     在屏幕上打印可用插件的信息         
play     从数据包回放ROS数据           
record   将ROS数据记录到数据包          
reindex  为数据包重建元数据文件

ros2 bag record

  • 主题发现:动态监测并自动识别新出现的主题
  • 过滤机制:支持通过正则表达式、排除模式或显式列表指定记录目标
  • QoS 适配:自动匹配发布者的服务质量配置
  • 数据包分割:根据文件大小或持续时间自动拆分存储文件
  • 压缩功能:支持可插拔格式的消息级/文件级压缩
  • 快照模式:按需触发的环形缓冲区录制
  • 服务/动作记录:完整捕获服务调用与动作通信数据

用法

bash
ros2 bag record [-h] [-a] [-e REGEX] [-x EXCLUDE] [--include-unpublished-topics]
				   [--include-hidden-topics] [-o OUTPUT] [-s {sqlite3,my_test_plugin}]
				   [-f {s,a}] [--no-discovery] [-p POLLING_INTERVAL] [-b MAX_BAG_SIZE]
				   [-d MAX_BAG_DURATION] [--max-cache-size MAX_CACHE_SIZE]
				   [--compression-mode {none,file,message}]
				   [--compression-format {fake_comp,zstd}]
				   [--compression-queue-size COMPRESSION_QUEUE_SIZE]
				   [--compression-threads COMPRESSION_THREADS] [--snapshot-mode]
				   [--ignore-leaf-topics]
				   [--qos-profile-overrides-path QOS_PROFILE_OVERRIDES_PATH]
				   [--storage-preset-profile STORAGE_PRESET_PROFILE]
				   [--storage-config-file STORAGE_CONFIG_FILE] [--start-paused] [--use-sim-time]
				   [--log-level {debug,info,warn,error,fatal}]
				   [topics ...]

功能: 将 ROS 数据录制到数据包。

位置参数:

  • topics 要录制的主题列表

选项参数:

  • -h, --help 显示此帮助信息并退出
  • -a, --all 录制所有主题(无显式主题列表或 regex 过滤时必需)
  • -e REGEX, --regex REGEX 仅录制包含指定正则表达式的主题(在主题列表基础上叠加过滤)
  • -x EXCLUDE, --exclude EXCLUDE 排除包含指定正则表达式的主题(在--all、--regex 或主题列表基础上生效)
  • --include-unpublished-topics 发现并录制无发布者的主题
  • --include-hidden-topics 同时发现并录制隐藏主题
  • -o OUTPUT, --output OUTPUT 数据包文件输出路径(默认为当前目录下带时间戳的文件夹)
  • -s {sqlite 3, my_test_plugin}, --storage {sqlite 3, my_test_plugin} 使用的存储标识符(默认为'sqlite 3')
  • -f {s, a}, --serialization-format {s, a} 消息保存的 RMW 序列化格式(默认为当前使用的 RMW 格式)
  • --no-discovery 禁用录制期间的自动主题发现
  • -p POLLING_INTERVAL, --polling-interval POLLING_INTERVAL 查询可用录制主题的时间间隔(毫秒)
  • -b MAX_BAG_SIZE, --max-bag-size MAX_BAG_SIZE 数据包拆分前的最大字节数(默认为 0)
  • -d MAX_BAG_DURATION, --max-bag-duration MAX_BAG_DURATION 数据包拆分前的最大录制时长(秒)
  • --max-cache-size MAX_CACHE_SIZE 每个缓存区可缓存的最大消息字节数(默认为 100 MiB)
  • --compression-mode {none, file, message} 压缩模式:按文件或按消息压缩(默认为'none')
  • --compression-format {fake_comp, zstd} 指定压缩格式/算法(默认为无压缩)
  • --compression-queue-size COMPRESSION_QUEUE_SIZE 压缩前可排队的文件/消息数量(默认为 1)
  • --compression-threads COMPRESSION_THREADS 可并行压缩的文件/消息数量(默认为 0,即使用 CPU 核心数)
  • --snapshot-mode 启用快照模式
  • --ignore-leaf-topics 忽略无发布者的主题
  • --qos-profile-overrides-path QOS_PROFILE_OVERRIDES_PATH 定义特定主题 QoS 配置覆盖的 yaml 文件路径
  • --storage-preset-profile STORAGE_PRESET_PROFILE 选择存储配置预设
  • --storage-config-file STORAGE_CONFIG_FILE 定义存储特定配置的 yaml 文件路径
  • --start-paused 以暂停状态启动录制器
  • --use-sim-time 使用仿真时间作为消息时间戳
  • --log-level {debug, info, warn, error, fatal} 日志记录级别

示例

bash
$ ros2 bag record /topic
[INFO] [1762995156.220042658] [rosbag2_recorder]: Press SPACE for pausing/resuming
[INFO] [1762995156.224694735] [rosbag2_storage]: Opened database 'rosbag2_2025_11_13-08_52_36/rosbag2_2025_11_13-08_52_36_0.db3' for READ_WRITE.
[INFO] [1762995156.228711957] [rosbag2_recorder]: Listening for topics...
[INFO] [1762995156.228773109] [rosbag2_recorder]: Event publisher thread: Starting
[INFO] [1762995156.231925220] [rosbag2_recorder]: Subscribed to topic '/topic'
[INFO] [1762995156.232333724] [rosbag2_recorder]: Recording...
[INFO] [1762995156.232587209] [rosbag2_recorder]: All requested topics are subscribed. Stopping discovery...

快照模式:维护指定主题上最近发送的消息的临时缓存,并且只有在用户触发的操作时才写入永久存储。

ros2 bag play

用法

ros2 bag play [-h] [-s {sqlite3,my_read_only_test_plugin,my_test_plugin}]
				 [--read-ahead-queue-size READ_AHEAD_QUEUE_SIZE] [-r RATE]
				 [--topics TOPICS [TOPICS ...]]
				 [--qos-profile-overrides-path QOS_PROFILE_OVERRIDES_PATH] [-l]
				 [--remap REMAP [REMAP ...]] [--storage-config-file STORAGE_CONFIG_FILE]
				 [--clock [Hz]] [-d DELAY] [--disable-keyboard-controls] [-p]
				 [--start-offset START_OFFSET] [--wait-for-all-acked TIMEOUT]
				 [--disable-loan-message] [--log-level {debug,info,warn,error,fatal}]
				 bag_path

功能: 从数据包回放 ROS 数据。

位置参数:

  • bag_path 要打开的数据包路径

选项参数:

  • -h, --help 显示此帮助信息并退出
  • -s {sqlite 3, my_read_only_test_plugin, my_test_plugin}, --storage {sqlite 3, my_read_only_test_plugin, my_test_plugin} 数据包的存储实现(默认自动检测,使用此参数可覆盖)
  • --read-ahead-queue-size READ_AHEAD_QUEUE_SIZE 预读队列大小,用于确定性回放的内存消息队列(较大队列需要更多内存但可防止消息回放延迟)
  • -r RATE, --rate RATE 消息回放速率(有效范围 > 0.0)
  • --topics TOPICS [TOPICS ...] 要回放的主题列表(空格分隔,未指定时回放所有主题)
  • --qos-profile-overrides-path QOS_PROFILE_OVERRIDES_PATH 定义特定主题 QoS 配置覆盖的 yaml 文件路径
  • -l, --loop 启用循环回放模式(到达结尾后重新开始并无限循环)
  • --remap REMAP [REMAP ...], -m REMAP [REMAP ...] 主题重映射列表(格式:"原主题 1:=新主题 1 原主题 2:=新主题 2")
  • --storage-config-file STORAGE_CONFIG_FILE 定义存储特定配置的 yaml 文件路径(默认存储插件设置语法:read: pragmas: ["<设置名>" = <设置值>])
  • --clock [Hz] 以特定频率发布/clock 主题作为 ROS 时间源(值必须为正,默认不发布)
  • -d DELAY, --delay DELAY 开始回放前的等待时间(秒,每个循环前生效,负值无效)
  • --disable-keyboard-controls 禁用回放时的键盘控制
  • -p, --start-paused 以暂停状态启动回放器
  • --start-offset START_OFFSET 从数据包开始后指定秒数处开始回放
  • --wait-for-all-acked TIMEOUT 等待所有发布消息被所有订阅者确认或超时后终止回放(适用于短时间内发送大消息的情况,负值无效,0 表示永久等待,仅当发布者 QoS 为 RELIABLE 时有效)
  • --disable-loan-message 禁用以借贷消息形式发布(默认情况下,如果支持借贷消息,则以此形式发布以减少数据拷贝,对大数据传输特别有益)
  • --log-level {debug, info, warn, error, fatal} 日志记录级别

示例:

bash
$ ros2 bag play ~/rosbag2_2025_11_13-08_52_36
[INFO] [1762997671.592253414] [rosbag2_storage]: Opened database '/home/wwu/rosbag2_2025_11_13-08_52_36/rosbag2_2025_11_13-08_52_36_0.db3' for READ_ONLY.
[INFO] [1762997671.592310401] [rosbag2_player]: Set rate to 1
[INFO] [1762997671.596744325] [rosbag2_player]: Adding keyboard callbacks.
[INFO] [1762997671.596877022] [rosbag2_player]: Press SPACE for Pause/Resume
[INFO] [1762997671.596890377] [rosbag2_player]: Press CURSOR_RIGHT for Play Next Message
[INFO] [1762997671.596899174] [rosbag2_player]: Press CURSOR_UP for Increase Rate 10%
[INFO] [1762997671.596907098] [rosbag2_player]: Press CURSOR_DOWN for Decrease Rate 10%
[INFO] [1762997671.597850709] [rosbag2_storage]: Opened database '/home/wwu/rosbag2_2025_11_13-08_52_36/rosbag2_2025_11_13-08_52_36_0.db3' for READ_ONLY.

rosbag2/docs/design/rosbag2_playback_time.md at humble · ros2/rosbag2 --- rosbag2/docs/design/rosbag2_playback_time.md at humble · ros2/rosbag2

ros2 bag info

用法:

ros2 bag info [-h] [-s {sqlite3,my_read_only_test_plugin,my_test_plugin}] bag_path

功能: 输出数据包的详细信息。

位置参数:

  • bag_path 要打开的数据包路径

选项参数:

  • -h, --help 显示此帮助信息并退出
  • -s {sqlite 3, my_read_only_test_plugin, my_test_plugin}, --storage {sqlite 3, my_read_only_test_plugin, my_test_plugin} 数据包的存储实现(默认自动检测,使用此参数可覆盖)

示例:

bash
$ ros2 bag info ~/rosbag2_2025_11_13-08_52_36

Files:             rosbag2_2025_11_13-08_52_36_0.db3
Bag size:          65.0 KiB
Storage id:        sqlite3
Duration:          543.964278769s
Start:             Nov 13 2025 08:52:36.536704931 (1762995156.536704931)
End:               Nov 13 2025 09:01:40.500983700 (1762995700.500983700)
Messages:          545
Topic information: Topic: /topic | Type: base_interfaces_demo/msg/Test | Count: 545 | Serialization Format: cdr

ros2 bag list

用法:

bash
ros2 bag list [-h] [--verbose] {storage,converter,compressor,decompressor}

功能: 在屏幕上显示可用插件的相关信息。

位置参数:

  • {storage, converter, compressor, decompressor} 列出可用插件类型

选项参数:

  • -h, --help 显示此帮助信息并退出
  • --verbose 输出插件的详细信息
bash
$ ros2 bag list storage  --verbose
available storage plugins are:
name: my_test_plugin
        This is a test storage plugin.
        type: TestPlugin
        base_class: rosbag2_storage::storage_interfaces::ReadWriteInterface
name: my_read_only_test_plugin
        This is a read-only test storage plugin.
        type: TestReadOnlyPlugin
        base_class: rosbag2_storage::storage_interfaces::ReadOnlyInterface
name: sqlite3
        Plugin to write to SQLite3 databases
        type: rosbag2_storage_plugins::SqliteStorage
        base_class: rosbag2_storage::storage_interfaces::ReadWriteInterface

ros2 bag convert

用法:

bash
ros2 bag convert [-h] -i uri [storage_id ...] -o OUTPUT_OPTIONS

功能: 基于输入数据包生成具有新配置的数据包。

位置参数:

选项参数:

  • -h, --help 显示此帮助信息并退出
  • -i uri [storage_id ...], --input uri [storage_id ...] 输入数据包的 URI(及可选的存储 ID),可多次提供
  • -o OUTPUT_OPTIONS, --output-options OUTPUT_OPTIONS 指定输出数据包选项的 YAML 文件。必须包含顶级键"output_bags",其值为 StorageOptions/RecordOptions 对象的序列。

示例:

ros2 bag reindex

用法:

bash
ros2 bag reindex [-h] [-s {my_test_plugin,my_read_only_test_plugin,sqlite3}] bag_path

功能: 为数据包重建元数据文件。

位置参数:

  • bag_path 要打开的数据包路径

选项参数:

  • -h, --help 显示此帮助信息并退出
  • -s {my_test_plugin,sqlite3,my_read_only_test_plugin}, --storage {my_test_plugin,sqlite3,my_read_only_test_plugin} 数据包的存储实现(默认自动检测,使用此参数可覆盖)

基于 VitePress 构建