Skip to content

Commit b2667a5

Browse files
committed
fix: improve README terminal workflow, add scripts to tables, clean em dashes
1 parent 2d2a158 commit b2667a5

3 files changed

Lines changed: 52 additions & 40 deletions

File tree

demos/moveit_pick_place/README.md

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# MoveIt 2 Pick-and-Place Integration Demo
22

3-
A comprehensive integration demo combining a **Panda 7-DOF robot arm** with **MoveIt 2** motion planning and **ros2_medkit** SOVD-compliant diagnostics. The robot performs continuous pick-and-place cycles in a **Gazebo Harmonic factory scene** while a manipulation monitor detects faults planning failures, collisions and reports them through the SOVD REST API with environment snapshots.
3+
A comprehensive integration demo combining a **Panda 7-DOF robot arm** with **MoveIt 2** motion planning and **ros2_medkit** SOVD-compliant diagnostics. The robot performs continuous pick-and-place cycles in a **Gazebo Harmonic factory scene** while a manipulation monitor detects faults - planning failures, collisions - and reports them through the SOVD REST API with environment snapshots.
44

55
## Status
66

7-
**Demo Ready** Docker-based deployment with MoveIt 2, Gazebo Harmonic physics simulation, factory environment, and full ros2_medkit stack.
7+
**Demo Ready** - Docker-based deployment with MoveIt 2, Gazebo Harmonic physics simulation, factory environment, and full ros2_medkit stack.
88

99
## Overview
1010

@@ -14,7 +14,7 @@ This demo demonstrates:
1414
- **Gazebo Harmonic simulation** with a realistic factory scene (conveyor belt, work table, storage, lighting)
1515
- **Continuous pick-and-place** loop as a realistic manipulation workload
1616
- **Manipulation fault monitoring** (planning failures, collision detection)
17-
- **Fault snapshots** environment state captured at fault time (joint states, diagnostics)
17+
- **Fault snapshots** - environment state captured at fault time (joint states, diagnostics)
1818
- **SOVD-compliant REST API** with Areas → Components → Apps → Functions hierarchy
1919
- **Manifest-based entity discovery** (hybrid mode with runtime enrichment)
2020
- **2 fault injection scenarios** with visible Gazebo models and one-click scripts
@@ -25,7 +25,7 @@ This demo demonstrates:
2525
- Docker and docker-compose
2626
- `curl` and `jq` installed on the host (required for host-side scripts)
2727
- X11 display server (for Gazebo GUI) or `--headless` mode
28-
- (Optional) NVIDIA GPU + [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) recommended for smooth Gazebo rendering
28+
- (Optional) NVIDIA GPU + [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) - recommended for smooth Gazebo rendering
2929
- ~7 GB disk space for Docker image
3030

3131
## Quick Start
@@ -129,37 +129,37 @@ docker exec -it moveit_medkit_demo bash # Shell into container
129129

130130
```
131131
Areas
132-
├── manipulation/ Robot arm and gripper hardware
132+
├── manipulation/ - Robot arm and gripper hardware
133133
│ Components
134-
│ ├── panda-arm 7-DOF Franka Emika Panda
134+
│ ├── panda-arm - 7-DOF Franka Emika Panda
135135
│ │ Apps: joint-state-broadcaster, panda-arm-controller, robot-state-publisher
136-
│ └── panda-gripper 2-finger parallel gripper
136+
│ └── panda-gripper - 2-finger parallel gripper
137137
│ Apps: panda-hand-controller
138138
139-
├── planning/ MoveIt 2 motion planning stack
139+
├── planning/ - MoveIt 2 motion planning stack
140140
│ Components
141-
│ ├── moveit-planning OMPL planning pipeline
141+
│ ├── moveit-planning - OMPL planning pipeline
142142
│ │ Apps: move-group
143-
│ └── pick-place-loop Pick-and-place demo node
143+
│ └── pick-place-loop - Pick-and-place demo node
144144
│ Apps: pick-place-node
145145
146-
├── diagnostics/ ros2_medkit gateway and fault management
146+
├── diagnostics/ - ros2_medkit gateway and fault management
147147
│ Components
148-
│ ├── gateway REST API
148+
│ ├── gateway - REST API
149149
│ │ Apps: medkit-gateway
150-
│ └── fault-manager Fault aggregation
150+
│ └── fault-manager - Fault aggregation
151151
│ Apps: medkit-fault-manager
152152
153-
└── bridge/ Legacy diagnostics bridge
153+
└── bridge/ - Legacy diagnostics bridge
154154
Components
155155
└── diagnostic-bridge
156156
Apps: diagnostic-bridge-app, manipulation-monitor
157157
158158
Functions
159-
├── pick-and-place Pick objects and place at target positions
160-
├── motion-planning Plan collision-free motion trajectories
161-
├── gripper-control Open and close the Panda gripper
162-
└── fault-management Collect and expose faults via SOVD API
159+
├── pick-and-place - Pick objects and place at target positions
160+
├── motion-planning - Plan collision-free motion trajectories
161+
├── gripper-control - Open and close the Panda gripper
162+
└── fault-management - Collect and expose faults via SOVD API
163163
```
164164

165165
## REST API Examples
@@ -223,8 +223,8 @@ curl http://localhost:8080/api/v1/apps/manipulation-monitor/faults/MOTION_PLANNI
223223
```
224224

225225
Captured topics (background capture, always available):
226-
- `/joint_states` Current joint positions at fault time
227-
- `/diagnostics` Active diagnostics messages
226+
- `/joint_states` - Current joint positions at fault time
227+
- `/diagnostics` - Active diagnostics messages
228228

229229
### Modify Configurations via REST API
230230

@@ -294,11 +294,13 @@ The gateway supports condition-based triggers that fire when specific events occ
294294
# Terminal 1: Start the demo
295295
./run-demo.sh
296296

297-
# Terminal 2: Create fault trigger and watch for events
298-
./setup-triggers.sh # Creates OnChange trigger on moveit-planning faults
299-
./watch-triggers.sh # Connects to SSE stream (Ctrl+C to stop)
297+
# Terminal 2: Create the fault trigger
298+
./setup-triggers.sh
300299

301-
# Terminal 3: Inject a fault - trigger fires!
300+
# Terminal 3: Watch for trigger events (blocking - Ctrl+C to stop)
301+
./watch-triggers.sh
302+
303+
# Terminal 2: Inject a fault - the trigger fires in Terminal 3!
302304
./inject-planning-failure.sh
303305
```
304306

@@ -349,7 +351,7 @@ Blocks the robot's path with a large collision wall (visible as orange wall in G
349351

350352
| Code | Severity | Description |
351353
|------|----------|-------------|
352-
| `MOTION_PLANNING_FAILED` | ERROR | MoveGroup goal ABORTED no collision-free path |
354+
| `MOTION_PLANNING_FAILED` | ERROR | MoveGroup goal ABORTED - no collision-free path |
353355

354356
### 2. Collision Detection
355357

@@ -397,16 +399,18 @@ Connect it to the gateway at `http://localhost:8080` to browse:
397399

398400
| Script | Description |
399401
|--------|-------------|
400-
| `run-demo.sh` | **Start the demo** build and launch the Docker container |
402+
| `run-demo.sh` | **Start the demo** - build and launch the Docker container |
401403
| `stop-demo.sh` | Stop demo containers |
402-
| `move-arm.sh` | **Interactive arm controller** move to preset positions |
404+
| `move-arm.sh` | **Interactive arm controller** - move to preset positions |
403405
| `check-entities.sh` | Explore the full SOVD entity hierarchy with sample data |
404406
| `check-faults.sh` | View active faults with severity summary |
405-
| `inject-planning-failure.sh` | Scripts API wrapper — inject planning failure |
406-
| `inject-collision.sh` | Scripts API wrapper — inject collision obstacle |
407-
| `restore-normal.sh` | Scripts API wrapper — restore normal operation |
408-
| `arm-self-test.sh` | Scripts API wrapper — run arm self-test |
409-
| `planning-benchmark.sh` | Scripts API wrapper — run planning benchmark |
407+
| `inject-planning-failure.sh` | Scripts API wrapper - inject planning failure |
408+
| `inject-collision.sh` | Scripts API wrapper - inject collision obstacle |
409+
| `restore-normal.sh` | Scripts API wrapper - restore normal operation |
410+
| `arm-self-test.sh` | Scripts API wrapper - run arm self-test |
411+
| `planning-benchmark.sh` | Scripts API wrapper - run planning benchmark |
412+
| `setup-triggers.sh` | Create OnChange fault trigger |
413+
| `watch-triggers.sh` | Watch trigger events via SSE stream |
410414

411415
Scripts API wrappers require `curl` and `jq` on the host and call the gateway REST endpoint directly - no `docker exec` needed.
412416

demos/sensor_diagnostics/README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,11 +194,13 @@ The gateway supports condition-based triggers that fire when specific events occ
194194
# Terminal 1: Start the demo
195195
./run-demo.sh
196196

197-
# Terminal 2: Create fault trigger and watch for events
198-
./setup-triggers.sh # Creates OnChange trigger on compute-unit faults
199-
./watch-triggers.sh # Connects to SSE stream (Ctrl+C to stop)
197+
# Terminal 2: Create the fault trigger
198+
./setup-triggers.sh
200199

201-
# Terminal 3: Inject a fault - trigger fires!
200+
# Terminal 3: Watch for trigger events (blocking - Ctrl+C to stop)
201+
./watch-triggers.sh
202+
203+
# Terminal 2: Inject a fault - the trigger fires in Terminal 3!
202204
./inject-nan.sh
203205
```
204206

@@ -310,6 +312,8 @@ curl http://localhost:8080/api/v1/faults | jq
310312
| `inject-nan.sh` | Inject NaN values |
311313
| `inject-drift.sh` | Enable sensor drift |
312314
| `restore-normal.sh` | Clear all faults |
315+
| `setup-triggers.sh` | Create OnChange fault trigger |
316+
| `watch-triggers.sh` | Watch trigger events via SSE stream |
313317

314318
> **Note:** All diagnostic scripts (`inject-*.sh`, `restore-normal.sh`, `run-diagnostics.sh`, `inject-fault-scenario.sh`) are also available via the [Scripts API](#scripts-api) - callable as REST endpoints without requiring the host-side scripts.
315319

demos/turtlebot3_integration/README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -410,11 +410,13 @@ The gateway supports condition-based triggers that fire when specific events occ
410410
# Terminal 1: Start the demo
411411
./run-demo.sh
412412

413-
# Terminal 2: Create fault trigger and watch for events
414-
./setup-triggers.sh # Creates OnChange trigger on nav2-stack faults
415-
./watch-triggers.sh # Connects to SSE stream (Ctrl+C to stop)
413+
# Terminal 2: Create the fault trigger
414+
./setup-triggers.sh
416415

417-
# Terminal 3: Inject a fault - trigger fires!
416+
# Terminal 3: Watch for trigger events (blocking - Ctrl+C to stop)
417+
./watch-triggers.sh
418+
419+
# Terminal 2: Inject a fault - the trigger fires in Terminal 3!
418420
./inject-nav-failure.sh
419421
```
420422

@@ -594,6 +596,8 @@ demos/turtlebot3_integration/
594596
| `inject-nav-failure.sh` | Inject navigation failure (unreachable goal) |
595597
| `inject-localization-failure.sh` | Inject localization failure (AMCL reset) |
596598
| `restore-normal.sh` | Restore normal operation and clear faults |
599+
| `setup-triggers.sh` | Create OnChange fault trigger |
600+
| `watch-triggers.sh` | Watch trigger events via SSE stream |
597601

598602
> **Note:** The inject, restore, and diagnostic scripts are also available via the [Scripts API](#scripts-api) - callable as REST endpoints without requiring the host-side scripts.
599603

0 commit comments

Comments
 (0)