Here is a short clip of an automated rocket takeoff and move-to sequence. The rocket itself is built solely with Roblox Physics and is driven by a single BodyThrust at the bottom. The software simply vectors this thrust in order to stabilize and steer the rocket.
Given conventional means, the rocket would simply fall over. However, a MPC controller is utilized to stabilize and control it.
Rocket rotational/transitional dynamics are modeled as a classical inverted-pendulum problem (with extension) and controlled via nonlinear model predictive control.
With this system, a normally highly unstable system, the thrust-vectored rocket, can be commanded to go to almost any desired pose. Currently, the rocket is simply commanded to fly to the pink part while maintaining stable velocities and orientation.
Python is used to communicate with the Roblox game instance in order to execute the control-algorithm on a high-speed solver, as well as to provide graphing and debugging utilities that can’t be done on Roblox.