Flow-Matching Landing Policy (Pose-Conditioned)
A DiT-style conditional flow-matching transformer trained via behavior cloning from a PD landing controller, in a simplified MuJoCo quadrotor simulation.
This policy imitates a classical PD controller — it is not claimed to outperform it. See the project README for full pipeline details.
Architecture
- Condition: 4-step pose history (relative position + orientation), no privileged velocity
- Output: 8-step action chunks (
vx, vy, vz, yaw_rate) - Conditioning mechanism: AdaLN (adaptive layer norm), timestep + history embeddings
- Trained with standard conditional flow matching (rectified/OT-style linear paths)
Results
- PD baseline success rate: TODO/50
- Policy success rate: TODO/50
- Evaluated on: randomized spawn (±6m xy, 4-6m altitude), randomized yaw
Usage
from model.flow_matching_v1.inference import load_policy, generate_action_chunk
policy = load_policy("model.pt", device)
chunk = generate_action_chunk(policy, pose_history, device) # (8, 4)
Limitations
- No vision — pose is privileged simulator state, not detected from images
- No disturbance/wind modeling
- Simplified drone dynamics (no rotor-level thrust/torque physics)