For my 3rd Year Engineering project I chose to design and build a system which allows a computer (a Mac) to autonomously control an RC Helicopter by seeing in 3D using a Xbox Kinect.
The idea is that the Kinect sensor sees a room from a certain viewpoint and builds a 3D image, picking out objects so that a route for the Helicopter can be made by the computer.
The Helicopter will be controlled by the computer via an Arduino board which will send IR messages to the Helicopter. The messages will also be sent from the computer to Arduino via USB and Serial data.
So then, once a route has been made for the Helicopter to travel the computer will transmit the relevant IR messages to the Helicopter. Also, while the Helicopter is flying the computer will be able to track it in the 3D scene using the Kinect.
So, the main steps in the project I have decided on so far are:
- Produce an application which interprets IR messages over Arduino from the remote control that comes with the Helicopter. This application takes the raw IR messages and decodes them to give a reproducible code that later applications can use to send messages to the Helicopter.
- Produce another application which uses the decoded message to build a simple controller on the computer that takes user input to fly the Helicopter.
- Then begin to produce an application that uses the Kinect to build a 3D scene of a room which is able to pick out the objects in it.
- Next, modify the previous application so that it can find and track the Helicopter in the scene.
- Then using the same application modify it so that it can produce a route for the helicopter. Maybe a rectangle shaped root keep things simple for the time being.
- Then finally, combine all the applications into one which carries out all the tasks listed above whilst also using control algorithms (such as PID) to properly fly and guide the helicopter around the route.