跳到正文
cccskills
免费在 GitHub 公开

ros2-troubleshooting

Diagnose ROS 2 Jazzy faults that reading the code cannot settle: QoS mismatch, sensor-mount and frame errors (REP 103/105), and odometry calibrated against CAD instead of the floor. Ships four runnable pass/fail checks.

中文简介正在准备中。当前显示原文说明。

实测评分 未实测

查看安装方法

包含的文件(10)

  • SKILL.md2.9 KB
  • references/calibration.md2.6 KB
  • references/frames.md2.7 KB
  • references/runtime.md2.6 KB
  • scripts/_check_common.py1.2 KB
  • scripts/check_imu_gravity.py8.3 KB
  • scripts/check_odom_direction.py6.6 KB
  • scripts/check_qos_compat.py2.9 KB
  • scripts/check_tf_tree.py5.7 KB
  • scripts/test_checks.py6.8 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

ROS 2 troubleshooting

Most of this skill is scripts that turn a suspicion into an exit code. Run one before reasoning about the symptom.

Bundled checks

scripts/ sits next to this file — resolve the path from this skill's own directory, not the user's CWD. The variable ROS2_SKILL_DIR in the examples represents the absolute directory of the loaded skill, set internally by the agent based on discovery location (do not ask the user for this path). This works with Claude Code and Codex, for project and user installations.

They are plain scripts: invoke with python3 and a real path. There is no package to ros2 run, and inventing one is a known failure mode. Exit code 0 = PASS, 1 = FAIL, 2 = inconclusive/invalid request. Tell the user the command you ran.

source /opt/ros/jazzy/setup.bash
ROS2_SKILL_DIR="/absolute/path/to/ros2-troubleshooting" # Set by agent to loaded skill directory.
python3 "${ROS2_SKILL_DIR}/scripts/check_qos_compat.py" --topic /scan
ScriptAnswers
check_qos_compat.py --topic /scanWhy a healthy publisher delivers nothing to this subscriber
check_tf_tree.py --sensors laser_frame,imu_linkDoes map->odom->base_link resolve? Prints sensor mount RPY for comparison with the hardware
check_imu_gravity.py [--topic /imu/data]On a level robot, is measured gravity ~+9.81 on +Z in --base base_link after declared TF or with --assume-aligned? Requires ≥2 samples; RMS variation >1.5 m/s² (adjustable via --max-variation) returns inconclusive for motion, vibration or noise. Neither declared TF nor --assume-aligned proves physical stillness; yaw is not observable. Missing TF is inconclusive without --assume-aligned
check_odom_direction.py [--topic /odom]Does odometry agree with the direction the robot physically moved

check_tf_tree.py prints VERIFY PHYSICALLY for any ~180° roll or yaw even when that mounting is deliberate. It asks for a comparison against the hardware; it is not a verdict. Report it that way.

References

Load the one the symptom points at.

  • references/frames.md — REP 103/105 axis conventions, and the misalignment symptoms that follow from getting them wrong. CLAUDE.md treats this file as ground truth for any frame or TF question.
  • references/runtime.md — what a QoS mismatch actually looks like on Jazzy, the two other policies that fail the same way, and why ros2 topic echo cannot detect any of them.
  • references/calibration.md — correcting diff_drive_controller wheel radius and separation against a tape measure, in the order that works. Read when odometry is consistent but wrong by a ratio.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Implement or change ROS 2 Jazzy packages, nodes, interfaces, launch files and configuration in a colcon workspace. Use for building and validating a development change, including tests that report success without running. For a live QoS, TF, IMU or odometry fault, use ros2-troubleshooting.

中文简介正在准备中。当前显示原文说明。

Leehyunbin0131/claude-ros2-skills202026年9月27日 更新

micro-ROS: agent, rclc client API, micro_ros_setup, custom transports, static memory.

中文简介正在准备中。当前显示原文说明。

Leehyunbin0131/claude-ros2-skills202026年9月27日 更新

查看 Leehyunbin0131 的全部技能

报告此技能的问题