|
1 | 1 | # GeneLab visual showcase |
2 | 2 |
|
3 | | -Play-only GeneLab extension that wires every M1–M4 building block into a six-task viewer |
| 3 | +Play-only GeneLab extension that wires every M1–M4 building block into an eight-task viewer |
4 | 4 | demo. Each task drops a real robot (Franka or Unitree G1) into a `ManagerBasedRlEnv`, |
5 | 5 | runs a scripted action loop, and dumps the relevant sensor / curriculum / terrain state |
6 | 6 | so the visual behaviour can be checked by eye. |
7 | 7 |
|
8 | | -- `GeneLab-Sensors-Showcase-v0` — Franka with `CameraSensor` (RGB+depth → PNG), `IMUSensor`, `FrameTransformerSensor`. |
| 8 | +- `GeneLab-Sensors-Showcase-v0` — Franka with `CameraSensor` (RGB+depth → PNG), `IMUSensor`, `FrameTransformerSensor`, and `ForceTorqueSensor`. |
9 | 9 | - `GeneLab-RayCast-Showcase-v0` — Franka with three `RayCastSensor` instances mounted side by side (`GridPattern` + `RingPattern` + `HemispherePattern`), all three dumped in parallel. |
10 | 10 | - `GeneLab-Contact-Showcase-v0` — Unitree G1 with `ContactSensor`, air-time tracking on both feet. |
11 | 11 | - `GeneLab-Terrain-Showcase-v0` — Unitree G1 dropped on a 1×5 row that tiles every built-in sub-terrain (`flat` + `stairs` + `rough` + `slope` + `wave`) in a single scene. |
12 | 12 | - `GeneLab-Curriculum-Showcase-v0` — Unitree G1 on a 5×5 RandomRough grid, scripted XY drift drives `terrain_levels_vel` promotion. |
13 | 13 | - `GeneLab-Actuator-Showcase-v0` — Franka with `IdealPDActuator` on the arm (force-channel control), prints joint-tracking error against a sine target. |
| 14 | +- `GeneLab-MlpResidual-Actuator-Showcase-v0` — Franka with `MlpResidualActuator` on the arm (DC-motor base + TorchScript residual network). |
| 15 | +- `GeneLab-Recording-Showcase-v0` — Franka with live PyQt / Matplotlib plots and NPZ / CSV data dumps from an IMU. |
14 | 16 |
|
15 | 17 | ## Installation |
16 | 18 |
|
@@ -55,12 +57,13 @@ examples/genelab_showcase/ |
55 | 57 | └── src/genelab_showcase/ |
56 | 58 | ├── tasks.py # register() + RegisteredTask dispatcher |
57 | 59 | ├── runner.py # ShowcaseRunner base class |
58 | | - ├── sensors/ # Camera + IMU + FrameTransformer |
| 60 | + ├── sensors/ # Camera + IMU + FrameTransformer + ForceTorque |
59 | 61 | ├── raycast/ # Grid / Ring / Hemisphere |
60 | 62 | ├── contact/ # G1 foot air-time |
61 | 63 | ├── terrain/ # 5 sub-terrains + mixed |
62 | 64 | ├── curriculum/ # terrain_levels_vel |
63 | | - └── actuators/ # ImplicitPD / IdealPD / DCMotor |
| 65 | + ├── actuators/ # IdealPD (force control) + MlpResidual (DC-motor + residual) |
| 66 | + └── recording/ # live PyQt/MPL plots + NPZ/CSV IMU dump |
64 | 67 | ``` |
65 | 68 |
|
66 | 69 | The runtime entry point is `genelab_showcase.tasks:register`, auto-discovered by |
|
0 commit comments