Raycast Perception
The agent cast two rings of eight rays around the drone and observed normalized hit distance plus surface normal for obstacle awareness.
Unity ML-Agents / deep reinforcement learning
A quadcopter simulation trained with Unity ML-Agents to navigate an obstacle course using raycast observations, continuous thrust actions, PPO, curriculum learning, behavioral cloning, and GAIL.
What this proves
The project explored Unity as a robotics simulation environment and ML-Agents as a reinforcement-learning sandbox. The agent learned forward progress first, then obstacle avoidance with randomized cubes, human demonstrations, and imitation-learning signals.
Demo artifact
The final demo recording shows the trained drone behavior and links the result back to the report, agent configuration, and exported policy artifact.
Code-level details
The agent cast two rings of eight rays around the drone and observed normalized hit distance plus surface normal for obstacle awareness.
ML-Agents actions were clamped to -1..1 and mapped into forward, sideways, and hover thrust inputs on a Rigidbody-based drone controller.
A cube spawner generated obstacles with randomized positions and sizes, then respawned them at the start of each training episode.
The final reward emphasized forward progress, finish-line success, collision penalties, and boundary violations after earlier reward mixtures produced undesirable crashing behavior.
Human controller demonstrations were used with behavioral cloning and GAIL to speed training and improve results versus pure PPO attempts.
The archive includes a trained ONNX policy, PyTorch checkpoint, ML-Agents YAML config, final report, and Unity C# agent scripts.
Future iteration