日志
1 | RCLCPP_DEBUG(get_logger(), "我是DEBUG级别的日志,我被打印出来了!"); |
运行节点时,可以指定日志的最低等级: ros2 run lpackage_name executable_name --ros-args --log-level info
。 可选等级: debug, warn, fatal
日志默认都没有颜色,要加颜色需要 export RCUTILS_COLORIZED_OUTPUT=1
设置日志的格式: export RCUTILS_CONSOLE_OUTPUT_FORMAT="[{severity} {date_time_with_ms}] [{name}]: {message}"
RCUTILS_CONSOLE_OUTPUT_FORMAT - 控制每条日志消息输出的字段。可用字段有:
{severity} - 严重级别。
{name} - 日志记录器的名称(可能为空)。
{message} - 日志消息(可能为空)。
{function_name} - 调用此函数的函数名称(可能为空)。
{file_name} - 调用此函数的文件名(可能为空)。
{time} - 自纪元以来的秒数。
{time_as_nanoseconds} - 自纪元以来的纳秒数。
{line_number} - 调用此函数的行号(可能为空)。
如果未提供格式,则使用默认格式 [{severity}] [{time}] [{name}]: {message}
参考:ROS2 日志
ros2 bag record -o bag_name topic_1 topic_2
ros2 bag info subset
结果类似这样1
2
3
4
5
6
7
8
9
10
11Files: test_0.db3
Bag size: 424.5 KiB
Storage id: sqlite3
ROS Distro: unknown
Duration: 11.497778868s
Start: Sep 16 2025 18:03:07.911158571 (1758016987.911158571)
End: Sep 16 2025 18:03:19.408937439 (1758016999.408937439)
Messages: 57
Topic information: Topic: /global_path | Type: nav_msgs/msg/Path | Count: 57 | Serialization Format: cdr
Service: 0
Service information:
- ros2 bag play subset
-r
可以指定播放速度,-l
是无限循环播放
- ros2 bag play —start-offset 450 bag_file
这个命令很有用,从 450 秒处开始播放
ros2的bag直到25年5月的Kilted版本才能使用--progress-bar
命令显示播放进度,而这个版本不是一个LTS版本,所以想用这个功能,只能从rosbag2的源码编译
ros2doctor
可以检测大概的ros2整体配置,ros2doctor
并不是一个调错的工具,对你的代码调试没有帮助. 它一般查找你系统中警告部分,只有UserWarning: ERROR:
开头的可能是错误。另外可以检查发布者没有订阅者的问题。
运行 ros2 doctor
或者 ros2 doctor --report