"Operate gym-pybullet-drones headless or GUI control-simulation
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill control-simulation --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Control Simulation?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-control-simulation)More formats (shields.io, HTML) on the badges page.
---
name: control-simulation
description: "Operate gym-pybullet-drones headless or GUI control-simulation
workflows for PID tracking, velocity control, downwash, and MRAC."
disable-model-invocation: true
metadata:
disco-role: operating
license: MIT
---
# Control Simulation
Use this sub-skill when a task asks how to run, modify, or debug classic control simulations in `gym-pybullet-drones`: PID trajectory tracking, velocity-command control, downwash physics, MRAC hover/control, logger output, or PyBullet GUI/headless behavior.
## Route here for
- Running the bundled control example runner for `pid`, `pid_velocity`, `downwash`, or `mrac` with short headless smoke defaults.
- Building custom loops with `BaseAviary`, `CtrlAviary`, `VelocityAviary`, `BaseControl`, `DSLPIDControl`, `MRACControl`, or `CTBRControl`.
- Choosing `DroneModel` and `Physics` values for control examples, including downwash-specific physics.
- Inspecting `Logger` outputs, `sync(...)` behavior, PyBullet client/drone IDs, action shapes, and frequency constraints.
- Troubleshooting `pybullet`, display/OpenGL, logger, action-shape, MRAC model, or timing-mismatch failures in control simulations.
## Do not handle here
- Reinforcement-learning training, PPO playback, `learn.py`, `play.py`, `BaseRLAviary`, `HoverAviary`, or `MultiHoverAviary`; route back to the repo skill or the RL sub-skill when available.
- Betaflight SITL, `BetaAviary`, external Betaflight checkout/builds, UDP port setup, or `beta.py`; route back to the repo skill or the SITL sub-skill when available.
- Broad package installation policy beyond the control-specific `pybullet`/GUI/logger symptoms in this sub-skill.
## Start here
1. Read [workflows](references/workflows.md) to choose the bundled runner mode and understand how each source control workflow was wrapped.
2. Use [API reference](references/api-reference.md) for constructor signatures, action/observation shapes, controller signatures, enum values, logger arrays, and installed-package facts.
3. Use [troubleshooting](references/troubleshooting.md) before changing physics, controller code, or dependency versions.
4. Prefer the bundled runner over the original repository example scripts:
```bash
python scripts/run_control_example.py pid --duration-sec 1 --output-folder /tmp/gpd-pid
python scripts/run_control_example.py pid_velocity --duration-sec 1 --output-folder /tmp/gpd-vel
python scripts/run_control_example.py downwash --duration-sec 1 --output-folder /tmp/gpd-dw
python scripts/run_control_example.py mrac --duration-sec 1 --output-folder /tmp/gpd-mrac
```
The runner defaults to `gui=False`, `plot=False`, `record_video=False`, and short durations so it is safe for headless smoke checks. Add `--gui`, `--plot`, `--record-video`, `--csv`, or longer `--duration-sec` only after the environment supports them.
## Runtime guardrails
- `CtrlAviary` and `VelocityAviary` share the `BaseAviary` constructor shape and can run headless with `gui=False`.
- `BaseAviary` requires `pyb_freq % ctrl_freq == 0`; the bundled runner validates this before constructing the environment.
- `CtrlAviary.step(action)` expects motor RPM actions shaped `(num_drones, 4)`; `VelocityAviary.step(action)` expects velocity commands shaped `(num_drones, 4)` with `[vx, vy, vz, speed_fraction]`.
- `DSLPIDControl` is for `DroneModel.CF2X` or `DroneModel.CF2P`; `MRACControl` supports the current `CF2X`, `CF2P`, and `RACE` drone models.
- `Logger.log(...)` accepts one 20-value state snapshot and one 12-value control target per drone; use its saved arrays or optional CSV export to inspect runs.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!