@@ -37,7 +37,14 @@ It works because an aborted action goal is often the *only* failure signal Nav2
3737ros2_medkit's action bridge turns that into a structured fault on the ` bt_navigator ` entity -
3838no instrumentation, no callbacks added to Nav2.
3939
40- ### MoveIt: a motion that fails to execute
40+ > [ !TIP]
41+ > Nothing was added to Nav2. The bridge reads the action status your stack already publishes,
42+ > so the same trick works for ** any** action server - MoveIt, Nav2, or your own nodes.
43+
44+ <details >
45+ <summary ><b >↳ Another example: MoveIt - a motion that fails to execute</b ></summary >
46+
47+ <br >
4148
4249You run MoveIt. A ` MoveGroup ` goal aborts - no valid plan, or the controller rejects the
4350trajectory. Same story: the same action bridge surfaces the aborted move as a fault on the
@@ -48,6 +55,8 @@ curl http://localhost:8080/api/v1/apps/move_group/faults
4855# → the aborted MoveGroup goal, as a structured fault with its snapshot
4956```
5057
58+ </details >
59+
5160** Two ways to feed it:**
5261
5362- ** Native, for code you own** - report faults directly with the
@@ -69,8 +78,11 @@ touch the node's code.
6978
7079` diagnostic_updater ` + ` /diagnostics ` + ` diagnostic_aggregator ` + ` rqt_robot_monitor ` report
7180current node health to a desktop GUI. ros2_medkit turns that into a queryable, remote,
72- time-traveled, actionable fault - and it ** consumes ` /diagnostics ` too** , so it is additive,
73- not a rip-and-replace.
81+ time-traveled, actionable fault.
82+
83+ > [ !NOTE]
84+ > It ** consumes ` /diagnostics ` too** , so it is additive, not a rip-and-replace. Keep your
85+ > existing ` diagnostic_updater ` publishers; medkit reads them and gives you the rest.
7486
7587| | 🔴 ROS 2 diagnostics | 🟢 ros2_medkit |
7688| ---| ---| ---|
@@ -167,7 +179,10 @@ Nav2 `NavigateToPose` goal aborts):
167179}
168180```
169181
170- ** Prefer a dashboard?** Run the web UI alongside it (optional):
182+ <details >
183+ <summary ><b >Prefer a dashboard? Run the web UI alongside it (optional)</b ></summary >
184+
185+ <br >
171186
172187``` bash
173188docker run -p 3000:80 ghcr.io/selfpatch/ros2_medkit_web_ui:latest
@@ -178,6 +193,8 @@ The browser calls the gateway from a different origin, so the gateway must allow
178193CORS (the prebuilt gateway Docker image enables it; for a native bringup set
179194` cors.allowed_origins ` ). See the [ web UI tutorial] ( https://selfpatch.github.io/ros2_medkit/tutorials/web-ui.html ) .
180195
196+ </details >
197+
181198For a guided walkthrough, see the
182199[ Getting Started tutorial] ( https://selfpatch.github.io/ros2_medkit/getting_started.html ) .
183200
0 commit comments