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_namenode.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 | 从容器节点中卸载组件 |
- 注册 component 组件,将 node 编译为动态库(
RCLCPP_COMPONENTS_REGISTER_NODE(CLZ)) - 启动 component_container
- 通过命令行工具动态加载/卸载 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:
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
info # 输出节点信息
list # 输出运行中的节点的列表 ros2 node list
用法:
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 仅显示发现的节点数量
示例:
$ 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 同时显示隐藏的主题、服务和动作
示例:
############################################################
$ 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
基本使用语法如下:
bw # 输出话题消息传输占用的带宽
delay # 输出带有 header 的话题延迟
echo # 输出某个话题下的消息
find # 根据类型查找话题
hz # 输出消息发布频率
info # 输出话题相关信息
list # 输出运行中的话题列表
pub # 向指定话题发布消息
type # 输出话题使用的接口类型 全局选项:
-h,--help:显示此帮助信息并退出--include-hidden-topics:在结果中包含隐藏主题(名称通常以_开头的主题)
ros2 topic bw
用法:
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 模拟时间
示例:
$ 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
用法:
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 $ 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 模拟时间
示例:
$ 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 打印接收到的第一条消息然后退出
示例:
$ 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 无法输出。
$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 同时考虑隐藏主题
示例:
$ 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 列出每个主题的完整详细信息
示例:
$ 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 配置文件
示例:
$ 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 模拟时间
示例:
$ 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 不生成也不使用已运行的守护进程
示例:
$ 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 同时考虑隐藏服务
示例:
$ $ 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)重复调用
示例:
$ 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 同时考虑隐藏服务
示例:
$ 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 显示此帮助信息并退出
示例:
$ 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 仅显示发现的动作数量
示例:
$ 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 仅显示发现的动作数量
示例:
$ 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 秒直到服务器可用且目标完成(默认无限期等待)
示例:
$ 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 适配:自动匹配发布者的服务质量配置
- 数据包分割:根据文件大小或持续时间自动拆分存储文件
- 压缩功能:支持可插拔格式的消息级/文件级压缩
- 快照模式:按需触发的环形缓冲区录制
- 服务/动作记录:完整捕获服务调用与动作通信数据
用法:
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} 日志记录级别
示例
$ 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} 日志记录级别
示例:
$ 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. 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} 数据包的存储实现(默认自动检测,使用此参数可覆盖)
示例:
$ 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
用法:
ros2 bag list [-h] [--verbose] {storage,converter,compressor,decompressor} 功能: 在屏幕上显示可用插件的相关信息。
位置参数:
- {storage, converter, compressor, decompressor} 列出可用插件类型
选项参数:
- -h, --help 显示此帮助信息并退出
- --verbose 输出插件的详细信息
$ 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
用法:
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
用法:
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} 数据包的存储实现(默认自动检测,使用此参数可覆盖)