RocketMind
A downloadable game
This is a project by Michael Jin made under the guidance of Coding Minds Academy! Play around with the environment variables to explore each stage of a rudimentary rocket landing. The simulation showcases various NN models trained using Unity ML Agents.
The physics was inspired from the SpaceX Rocket.
Overview of the Training Methodology
The neural network is a reinforcement learning (RL) agent using the Unity ML-Agents framework to simulate and train a Falcon 9 rocket landing scenario. The primary goal is to train the agent to control a rocket to land safely on a designated platform, mimicking the complex dynamics of real-world rocket landings.
Environment Setup
- Physics Simulation: The environment simulates realistic rocket physics, including mass, thrust, fuel consumption, gravity, drag, and angular drag. The rocket's mass changes dynamically based on fuel consumption.
- Rocket Parameters: Real-world parameters of the Falcon 9 rocket are used, such as mass, thrust, and fuel capacities, to make the simulation as accurate as possible.
Agent Observations
The agent receives a comprehensive set of observations to understand the rocket's state and environment:
1. Rocket State:
- Position (`Vector3`): The rocket's current position in the environment.
- Rotation (`Quaternion`): The rocket's orientation in 3D space.
- Velocity (`Vector3`): The rocket's current velocity, including both linear and angular components.
2. Rocket Parameters:
- Fuel Remaining (`float`): The amount of fuel left.
- Fuel Burn Rate (`float`): The rate at which fuel is being consumed.
- Thrust (`float`): The current thrust being applied.
- Max Thrust (`float`): The maximum possible thrust.
- Mass (`float`): The current mass of the rocket (dry mass + fuel).
- Drag (`float`): The aerodynamic drag affecting the rocket.
- Angular Drag (`float`): The rotational resistance of the rocket.
3. Environment State:
- Platform Position (`Vector3`): The position of the landing platform.
Total Observations: 20 values, providing a detailed snapshot of the rocket and environment at each time step.
Agent Actions
The agent has a combination of discrete and continuous actions to control the rocket:
1. Discrete Actions (6 actions):
- Directional Thrusters: Four thrusters (`rotateNorth`, `rotateEast`, `rotateSouth`, `rotateWest`) that apply force to control the rocket's orientation.
- Values: `0` (off) or `1` (on) for each thruster.
- Rotational Controls: Two actions (`rotateLeft`, `rotateRight`) that apply torque to rotate the rocket around its vertical axis.
- Values: `0` (off) or `1` (on) for each direction.
2. Continuous Action (1 action):
- Main Thruster Control (`mainThrust`): Adjusts the main engine's thrust.
- Value Range: `-1` to `1`, where `-1` decreases thrust, `0` maintains current thrust, and `1` increases thrust.
Updated | 5 days ago |
Status | Released |
Authors | CodingMindsGames, michaeljin |
Genre | Simulation |