We wanted to hack a traditional remote controlled (RC) helicopter to make a weirder copter that can learn control for stabilization on its own.
What it does
Whiff2 learns parameters to a linear model that allows it predict actions which maximize its time in the air. It updates the model via reinforcement learning on the state vector, which consists of shaft angle, inertial measurement unit (IMU) information, center of gravity, and moment of inertia. This is done in simulation, and the learned parameters are transferred to an Arduino, where they are supposed to be further refined for the real world. Unfortunately, we could not get the propellors of the hacked RC helicopter to generate enough lift to do proper experiments.
How we built it
We designed and 3D printed all the components of the frame (see picture) after taking apart the propellors and motors of an RC helicopter. In this new frame, we soldered a custom designed board connecting electronic components such as an Arduino, battery, motors, receiver, etc.
Challenges we ran into
On the software side, training a agent to learn the control for stabilization was difficult, as it required figuring out the physics to create a simulation and designing the reinforcement learning framework to allow the agent to learn from interaction. On the hardware side, fitting together all of the components with the constraint of minimizing mass was difficult. We ran into the problem where the propellors could not generate enough lift.
Accomplishments that we're proud of
We are very happy with the 3D printed frame, custom designed and soldered board connecting the electronics, and that our algorithms allow the copter to learn a reasonable policy in the custom made physics simulation.
What we learned
We were a team of varying and complementing skillsets (Electrical Engineering, Mechanical Engineering, and Computer Science majors from Stanford and Computer Science major from MIT). Therefore, we each learned quite a bit about challenges and approaches in the complementing tasks.
What's next for Whiff2
Currently, Whiff2 is not able to generate enough lift to fly. The next step is to replace the propellors and motors to allow it generate enough lift. After that, the copter's knowledge from interacting with a simulator needs to be transferred to the Arduino, where it should adapt the parameters to fly in the real world.