On week 2 I have made a simple simulation of the forces that are applied to and are available for a helicopter.
Since I have a special place in my heart for helicopters, I decided to continue this thread and for the final project, combine a few of the elements we’ve learned this semester.
The Concept :
Pt 1 : Create a a simulation of a helicopter lifting a box using a Cargo hook.
Pt 2 : have a neuroevolution model that will eventually create a helicopter that’ll lift the cargo safely – without ripping the cable or crashing.
The planned process:
- Add Toxiclibs to my old sketch in order to create the cable. Using the spring example (https://editor.p5js.org/natureofcode/sketches/rJ6lo5h5e)
- apply the rules and constraints of the environment: cable limits, box weight, steering abilities, and obstacles (ground).
- design the evolution process and the model. Using the “flappy bird” example Demo: Flappy Bird Learning
My vision for now is that there’s no user interaction (perhaps just deciding the cable length and the box’s mass). The initial conditions are that the helicopter and the box on the ground and the cable is already attached and that the goal of the heli-agent is to take off, and safely raise the cargo box, without the cable being ripped and the helicopter/cargo hitting the ground again.
For the neuroevolution model the plan is to use the flappy bird example and change the features and the fitness model in order to create the reinforcement learning of each helicopter generation.
The reason I chose this project is that I feel that is combines a few key elements that we went through during the semester (assuming all will work) and I simply wish to try them out myself. This is an exploration of these elements along with my own personal history with helicopters.