计算机使用智能体分类English
R07.09.01.05 · 任务小类

ROS内省与诊断

ROS introspection & diagnostics

Launch, inspect topics and diagnose failures in ROS systems.

20 条本项目编写的提案 · 分类 v1.1 · 新增基准运行 0 次。下方验证方式与部分得分规则是设计,不是执行结果。

典型应用
ROS 2 CLI · rqt
小类 GUI 需求标签
CL · CLI 足够

任务提案 · 20

展开查看完整原文与建议检查方式;两种界面均保留提案英文原文。

R07.09.01.05-T01 List topics with publishers but no subscribers in a running system

原始指令

Launch fixtures/warehouse_bot/bringup.launch.py (ROS 2 Jazzy, sim time). After 20 s, list every topic that has at least one publisher and zero subscribers, excluding /rosout and /parameter_events, and write them sorted to output/orphans.txt.

平台
lin · Linux
应用
ROS 2 CLI
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP12 · 答案 / 决策
条件
未声明
提案难度
2 / 5

建议验证方式

Grader computes the orphan set from a graph snapshot of the same launch (deterministic node set); file must match exactly.

建议部分得分

90% scaled by Jaccard of reported vs true orphan set; 10% set exactly correct.

R07.09.01.05-T02 Fix a QoS mismatch that stops cmd_vel from reaching the base

原始指令

In fixtures/diffbot_ws, teleop commands on /cmd_vel do not move the simulated robot. Diagnose with ros2 topic info --verbose, fix the QoS incompatibility through the base controller's parameter/QoS override in the launch file (do not edit teleop), and show the robot drives 1 m forward.

平台
lin · Linux
应用
ROS 2 CLI · Gazebo
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
3 / 5

建议验证方式

Grader relaunches: no incompatible QoS events, teleop node unchanged (hash), scripted 1 m forward command moves odom 1.0+/-0.05 m. output/diagnosis.txt must name reliability as the mismatched policy.

建议部分得分

25% cause identified; 35% fix in correct place; 40% robot moves as commanded.

R07.09.01.05-T03 Find and fix a camera topic running below its rated frequency

原始指令

fixtures/perception.launch.py publishes 4 camera streams that should each run at 30 Hz. Measure rates with ros2 topic hz, identify the stream below 25 Hz and its cause in node parameters (e.g., compression level or throttle), fix the parameter in the YAML and confirm 30+/-1 Hz.

平台
lin · Linux
应用
ROS 2 CLI
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
3 / 5

建议验证方式

Grader relaunches with the edited YAML: all 4 topics 30+/-1 Hz over 20 s; diff limited to the one faulty parameter; output/answer.txt names the topic and parameter.

建议部分得分

30% slow topic and cause identified; 30% minimal fix; 40% all rates in spec.

R07.09.01.05-T04 Repair a broken TF tree between base_link and the lidar

原始指令

Navigation in fixtures/rover_ws fails with 'Could not transform laser to base_link'. Use tf2 tools (view_frames, tf2_echo) to find the break, add the missing transform with the offsets from the URDF in input/rover.urdf.xacro in the correct launch file, and verify scans appear in the map frame.

平台
lin · Linux
应用
ROS 2 CLI · tf2_tools
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
4 / 5

建议验证方式

Grader relaunches: tf lookup map->laser succeeds; laser->base_link transform equals URDF values within 1 mm/0.1 deg; no duplicate publishers for that edge; costmap receives scans.

建议部分得分

30% break located (output/diagnosis.txt); 40% correct transform values; 30% downstream nav receives scans.

R07.09.01.05-T05 Find a mis-remapped namespace in a large graph with rqt_graph

原始指令

fixtures/fleet_sim launches 40 nodes for 3 robots. Robot r2's planner never receives a map. Use rqt_graph (nodes/topics, namespace grouping) to find the wrong remap, fix it in the launch file, and save a screenshot of the corrected graph region to output/graph.png.

平台
lin · Linux
应用
rqt · ROS 2 CLI
交互表面
desk · 桌面 GUI term · 终端
GUI 需求 · 任务设定
HY · 混合
GUI 需求 · 普通权限
G2 · GUI 必要
交互原语
click · 指向与点击 nav · 平移 / 缩放 / 滚动 vis · 视觉判断 code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
3 / 5

建议验证方式

Grader relaunches: /r2/map has the map server publisher and r2 planner subscriber; only the faulty remap line changed; graph.png exists (not graded beyond presence and size).

建议部分得分

40% faulty remap identified; 40% fixed graph connectivity; 20% minimal diff.

R07.09.01.05-T06 Find when the battery fell below 20% and the nav state at that time

原始指令

From the rosbag2 recording fixtures/run_0412 (mcap), find the first timestamp at which /battery_state percentage drops below 0.20, and the most recent /nav_status message at that time. Write output/answer.json with the timestamp (ns), percentage and nav state.

平台
lin · Linux
应用
ROS 2 CLI · rosbag2 · Python
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP12 · 答案 / 决策
条件
未声明
提案难度
3 / 5

建议验证方式

Grader computes from the bag: timestamp exact (message stamp), percentage within 1e-4, nav state string exact.

建议部分得分

40% timestamp; 20% percentage; 40% nav state.

R07.09.01.05-T07 Measure odometry drift and wheel-slip onset in PlotJuggler

原始指令

Load fixtures/slip_test.mcap in PlotJuggler, plot /odom and /ground_truth XY and their position error, and find the first time the error exceeds 0.2 m. Report the time (s from bag start, 0.1 s resolution) and the error at the end in output/answer.json; save the layout as output/slip.xml.

平台
lin · Linux
应用
PlotJuggler
交互表面
desk · 桌面 GUI
GUI 需求 · 任务设定
HY · 混合
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
click · 指向与点击 drag · 拖放 vis · 视觉判断
工作产物
WP12 · 答案 / 决策
条件
未声明
提案难度
4 / 5

建议验证方式

Grader computes the error series from the bag: onset time within 0.1 s and final error within 0.02 m; layout XML includes both topics and a custom error series.

建议部分得分

50% onset time; 30% final error; 20% layout saved.

R07.09.01.05-T08 Audit use_sim_time across all running nodes

原始指令

With fixtures/sim_stack.launch.py running, dump the parameters of all nodes to output/params/*.yaml and list in output/sim_time_off.txt every node whose use_sim_time is false.

平台
lin · Linux
应用
ROS 2 CLI
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP02 · 记录 / 表格
条件
未声明
提案难度
2 / 5

建议验证方式

Grader snapshots the parameters of the same launch: one YAML per node, and the false-node list must match exactly (3 planted nodes).

建议部分得分

40% dumps complete; 60% exact list of offending nodes.

R07.09.01.05-T09 Fix three planted faults so Nav2 reaches all goals

原始指令

In fixtures/nav2_house (Gazebo headless + Nav2), the robot fails to reach goals. Find and fix the 3 planted faults (a costmap parameter, a sensor frame_id, a lifecycle node that never activates) with ROS 2 CLI tools and logs, then send the 3 goals in input/goals.yaml and confirm arrival.

平台
lin · Linux
应用
ROS 2 CLI · Nav2 · Gazebo
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
long · 长流程
提案难度
5 / 5

建议验证方式

Grader relaunches the fixed workspace and sends the goals: all reached within 0.25 m in 120 s; diff touches only the 3 faulty items; output/faults.md names all 3.

建议部分得分

60% planted faults fixed (20 pts each); 30% all goals reached; 10% faults documented.

R07.09.01.05-T10 Trace the first error behind a node crash in rqt_console

原始指令

fixtures/arm_bringup crashes after ~30 s. Using rqt_console, filter by severity and node to find the first ERROR message that precedes the crash chain, and record node name, message text and timestamp in output/answer.json.

平台
lin · Linux
应用
rqt
交互表面
desk · 桌面 GUI
GUI 需求 · 任务设定
HY · 混合
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
click · 指向与点击 type · 文字与表单 vis · 视觉判断
工作产物
WP12 · 答案 / 决策
条件
未声明
提案难度
3 / 5

建议验证方式

Grader compares with the deterministic log of the fixture: node and message exact, timestamp within 1 ms.

建议部分得分

40% node; 40% message; 20% timestamp.

R07.09.01.05-T11 Restore discovery between two ROS 2 hosts with a discovery server

原始指令

Two containers (robot, base_station) run fixtures/multi_host. Topics from robot are invisible on base_station. Diagnose (domain ID, multicast disabled), configure a Fast DDS discovery server on base_station and the client env on both, and show /robot/odom echoes on base_station.

平台
lin · Linux
应用
ROS 2 CLI · Fast DDS
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP08 · 应用 / 系统状态
条件
未声明
提案难度
4 / 5

建议验证方式

Grader restarts both containers with the submitted env/config: ros2 topic list on base_station shows robot topics within 10 s, /robot/odom receives >=9 Hz; diagnosis.txt names both causes.

建议部分得分

30% causes identified; 40% discovery server config; 30% topics flow across hosts.

R07.09.01.05-T12 Tune a joint PID live with rqt_reconfigure to meet a step spec

原始指令

The simulated joint controller in fixtures/joint_tuning exposes p, i, d as dynamic parameters. Using rqt (Dynamic Reconfigure / Parameter Reconfigure) and rqt_plot of the step test, tune gains for <5% overshoot and <0.5 s 2% settling on a 0.5 rad step. Save final gains to output/gains.yaml.

平台
lin · Linux
应用
rqt
交互表面
desk · 桌面 GUI
GUI 需求 · 任务设定
HY · 混合
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
drag · 拖放 type · 文字与表单 vis · 视觉判断
工作产物
WP08 · 应用 / 系统状态
条件
未声明
提案难度
3 / 5

建议验证方式

Grader applies gains.yaml and runs 3 step tests: overshoot <5% and settling <0.5 s in all; parameter-change events must come from the rqt node (graph introspection).

建议部分得分

20% gains saved; 40% overshoot spec; 40% settling spec.

R07.09.01.05-T13 Locate the node adding latency in a perception pipeline

原始指令

In fixtures/detect_pipeline (camera -> rectify -> detector -> tracker), end-to-end latency to /tracks exceeds 120 ms. Measure per-stage latency using header stamps (ros2 topic delay or a small script), identify the stage adding >50 ms and write output/latency.csv with mean and p95 per stage.

平台
lin · Linux
应用
ROS 2 CLI · Python
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP02 · 记录 / 表格
条件
未声明
提案难度
4 / 5

建议验证方式

Grader measures the same deterministic pipeline: per-stage means within 5 ms, p95 within 10 ms, slow stage identified correctly in output/answer.txt.

建议部分得分

40% slow stage correct; 40% per-stage means; 20% p95.

R07.09.01.05-T14 Bring up lifecycle nodes and fix one that fails to configure

原始指令

fixtures/lifecycle_demo has 4 managed nodes that must be configured and activated in order: map_server, amcl, planner, controller. One fails on configure. Use ros2 lifecycle commands and logs to find why, fix its parameter file reference, and leave all 4 active.

平台
lin · Linux
应用
ROS 2 CLI
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP08 · 应用 / 系统状态
条件
未声明
提案难度
3 / 5

建议验证方式

Grader queries ros2 lifecycle get for all 4: active; transition event log shows the required order; launch diff limited to the parameter file path.

建议部分得分

30% cause identified; 30% fix; 40% all active in correct order.

R07.09.01.05-T15 Correlate motor driver warnings with current spikes in Foxglove

原始指令

Open fixtures/agv_shift.mcap in Foxglove Studio. Build a layout with a 3D panel, a plot of /motor/current, an image panel and a diagnostics panel. Find each time window where /diagnostics reports WARN for 'motor_driver' and the peak current within it. Export the layout JSON and output/windows.csv.

平台
lin · Linux mac · macOS win · Windows
应用
Foxglove Studio
交互表面
desk · 桌面 GUI
GUI 需求 · 任务设定
HY · 混合
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
click · 指向与点击 drag · 拖放 nav · 平移 / 缩放 / 滚动 vis · 视觉判断
工作产物
WP02 · 记录 / 表格
条件
未声明
提案难度
5 / 5

建议验证方式

Grader computes WARN windows and peak currents from the bag: window starts/ends within 0.2 s and peaks within 0.1 A; layout JSON includes the 4 panel types bound to the right topics.

建议部分得分

20% layout; 40% window boundaries; 40% peak currents.

R07.09.01.05-T16 Configure a diagnostic aggregator with grouped analyzers

原始指令

Write output/analyzers.yaml for diagnostic_aggregator in fixtures/mobile_base so /diagnostics_agg groups status into Motors, Sensors (Lidar, IMU, Cameras) and Power, matching names in input/diag_spec.md; launch it and confirm Sensors/Cameras rolls up to the worst child level.

平台
lin · Linux
应用
ROS 2 CLI · diagnostics
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP08 · 应用 / 系统状态
条件
未声明
提案难度
4 / 5

建议验证方式

Grader launches with the YAML: /diagnostics_agg contains exactly the specified groups with correct membership; injected camera ERROR propagates to /Sensors/Cameras and /Sensors.

建议部分得分

50% group membership; 30% roll-up behavior; 20% YAML valid and loads.

R07.09.01.05-T17 Repair a Python launch file so all six nodes start

原始指令

ros2 launch fixtures/inspection_bot/launch/inspect.launch.py exits immediately. Fix the errors (a wrong package share path substitution and a remap that points to a non-existent topic) so all 6 nodes start and /inspection/report is published.

平台
lin · Linux
应用
ROS 2 CLI
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
3 / 5

建议验证方式

Grader launches the fixed file: all 6 nodes in ros2 node list within 15 s, /inspection/report publishes; diff limited to the two faulty expressions.

建议部分得分

40% path fix; 30% remap fix; 30% full bring-up.

R07.09.01.05-T18 Record a filtered, split and compressed rosbag

原始指令

While fixtures/survey_run.launch.py plays a 60 s scripted mission, record only /scan, /odom, /tf and /tf_static into output/survey_bag using mcap storage, zstd file compression and 100 MB splits. Then write ros2 bag info output to output/info.txt.

平台
lin · Linux
应用
ROS 2 CLI · rosbag2
交互表面
term · 终端
GUI 需求 · 任务设定
CL · CLI 足够
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP09 · 文件与文件夹
条件
未声明
提案难度
2 / 5

建议验证方式

Grader reads metadata.yaml: exactly the 4 topics, mcap storage, zstd compression, split size setting, duration >=58 s and message counts within 2% of the publisher counts.

建议部分得分

40% topic filter; 30% storage/compression/split; 30% completeness.

R07.09.01.05-T19 Find and fix intermittent joint_states dropouts

原始指令

In fixtures/arm_driver_ws, /joint_states drops for ~200 ms roughly every 45 s. Use ros2 topic hz/delay and ros2_tracing (LTTng) to find the blocking callback in the driver node, fix it by moving that work to a separate callback group with a MultiThreadedExecutor, and show 10 min without gaps >30 ms.

平台
lin · Linux
应用
ROS 2 CLI · ros2_tracing · C++
交互表面
term · 终端
GUI 需求 · 任务设定
HY · 混合
GUI 需求 · 普通权限
CL · CLI 足够
交互原语
code · 代码与命令
工作产物
WP06 · 代码 / 工程
条件
long · 长流程
提案难度
5 / 5

建议验证方式

Grader rebuilds and runs 10 min: max inter-message gap <30 ms; the trace-identified callback is in a separate callback group; output/analysis.md cites the trace evidence (callback name and duration).

建议部分得分

30% root cause with trace evidence; 40% fix compiles and is structurally right; 30% no gaps over 10 min.

R07.09.01.05-T20 Spot the flipped camera stream and correct its parameter

原始指令

Four cameras in fixtures/quad_cam publish /cam_front, /cam_rear, /cam_left, /cam_right. One is mounted upside down but its flip parameter is wrong. View the streams in rqt_image_view against the scene layout in input/layout.png, identify the flipped one and set its 'flip_vertical' parameter in the YAML.

平台
lin · Linux
应用
rqt
交互表面
desk · 桌面 GUI
GUI 需求 · 任务设定
G2 · GUI 必要
GUI 需求 · 普通权限
G2 · GUI 必要
交互原语
click · 指向与点击 vis · 视觉判断
工作产物
WP06 · 代码 / 工程
条件
未声明
提案难度
3 / 5

建议验证方式

Grader relaunches: the planted camera now renders with sky up (template match >0.9 vs reference frame); only that camera's flip parameter changed. Agent has no terminal, ROS 2 CLI or Python, so streams can only be inspected in rqt_image_view; topic subscriptions from non-rqt nodes are detected by graph introspection and fail.

建议部分得分

40% correct camera identified; 40% image orientation fixed; 20% no other changes.

已有研究映射

当前映射未给此小类指定基准参考。

同工作流族的小类