用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/MIUAV/vibe-coding-ros2 --skill ros2-debugging命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | ros2-debugging |
| description | ROS2 调试技能 - 节点调试、话题分析、bag 回放、rqt 工具使用 |
| argument-hint | ros2调试 OR 话题分析 OR bag回放 OR rqt OR 节点调试 |
| user-invocable | true |
ROS2 调试方法、工具使用和问题排查指南
当需要以下帮助时使用此技能:
# 节点
ros2 node list # 列出节点
ros2 node info /node_name # 节点详情
# Topic
ros2 topic list # 列出话题
ros2 topic echo /topic_name # 查看数据
ros2 topic hz /topic_name # 查看频率
ros2 topic bw /topic_name # 查看带宽
ros2 topic pub /topic_name ... # 发布测试
# Service
ros2 service list # 列出服务
ros2 service call /srv_name ... # 调用服务
# 参数
ros2 param list # 列出参数
ros2 param get /node_name param # 获取参数
ros2 param set /node_name param value # 设置参数
# Bag
ros2 bag record /topic_name # 录制
ros2 bag play bag_name # 回放
# 实时查看话题数据
ros2 topic echo /camera/image_raw
# 只看一条
ros2 topic echo /scan --once
# 查看频率
ros2 topic hz /scan
# 查看带宽
ros2 topic bw /scan
# 发布字符串
ros2 topic pub /chatter std_msgs/msg/String "data: 'test'" --once
# 发布激光雷达数据
ros2 topic pub /scan sensor_msgs/msg/LaserScan "{header: {stamp: {sec: 0}, frame_id: 'laser'}, angle_min: -3.14, angle_max: 3.14, angle_increment: 0.01, time_increment: 0.0, scan_time: 0.1, range_min: 0.1, range_max: 30.0, ranges: [1.0, 2.0]}"
# 以频率发布
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.5}}" -r 10
ros2 run rqt_graph rqt_graph
功能:
ros2 run rqt_console rqt_console
功能:
ros2 run rqt_plot rqt_plot
使用:
/odom/pose/pose/position/xros2 run image_view image_view --ros-args -r image:=/camera/image_raw
# 录制单个话题
ros2 bag record /scan -o scan_bag
# 录制多个
ros2 bag record /scan /camera/image_raw /odom -o all_bag
# 压缩
ros2 bag record /scan -o scan_bag --compression-type lz4
# 基本回放
ros2 bag play scan_bag
# 指定话题
ros2 bag play scan_bag --topic /scan
# 循环
ros2 bag play scan_bag --loop
# 调整速率
ros2 bag play scan_bag --rate 0.5
# 命令行
ros2 run rqt_logger_level rqt_logger_level
# 代码中
RCLCPP_DEBUG(this->get_logger(), "Debug: %d", value);
RCLCPP_INFO(this->get_logger(), "Info: %s", str.c_str());
RCLCPP_WARN(this->get_logger(), "Warning");
RCLCPP_ERROR(this->get_logger(), "Error");
RCLCPP_FATAL(this->get_logger(), "Fatal");
# 1. 检查话题是否存在
ros2 topic list | grep topic_name
# 2. 检查发布者
ros2 node info /publisher_node
# 3. 检查订阅者 QoS
ros2 topic info /topic_name
# 4. 验证数据类型
ros2 interface show sensor_msgs/msg/Image
# 1. 查看 dmesg
dmesg | tail -50 | grep -i segfault
# 2. GDB 调试
ros2 run pkg node --prefix 'gdb -ex run -ex bt'
# 3. Valgrind 内存
valgrind --leak-check=full ros2 run pkg node
# 1. 测量延迟
ros2 topic delay /topic_name
# 2. 检查 CPU
top -H
# 3. Intra-process (减少延迟)
# 代码中启用
rclcpp::PublisherOptionsWithAllocator<std::allocator<void>> options;
options.use_intra_process_comms(true);
## ROS2 调试检查清单
### 节点
- [ ] ros2 node list 能看到节点
- [ ] ros2 node info 订阅/发布正确
- [ ] 日志无 ERROR
### 通信
- [ ] ros2 topic list 显示话题
- [ ] ros2 topic hz 有数据
- [ ] QoS 匹配
### 性能
- [ ] CPU 正常
- [ ] 内存正常
- [ ] 延迟可接受