As an engineering student in a co-op program, work terms give you incredible experiences that can’t be replicated in the classroom. My co-op term with Thalmic Labs has been no exception! My name is Valentin and I’m a student at the University of Waterloo, working as a Gesture Controls Software Developer at Thalmic. Essentially, this means that I create applications for the coolest technologies and integrate them with the Myo armband. One particular project that I worked on this summer was the integration of the armband with the Parrot AR.Drone 2.0. As expected, flying a quadcopter with your arm is pretty darn cool! This proved to be an awesome project and was also quite an adventure, with lots of spectacular crashes, and broken quadcopter parts.
Before we get to the fun stuff, let me give you a good understanding of how controlling the AR.Drone works. In order to communicate flight commands to the AR.Drone, you have to connect it via a wifi hotspot. You can then set up commands to modify the pitch, yaw, and roll angles of the AR.Drone to effectively control how it flies. You can control the pitch by moving your arm up and down, the yaw by moving your arm from side to side, and the roll by rotating your arm clockwise and counter-clockwise. When all of these angles are at zero, the AR.Drone will hover on the spot; when the angles are changed, you can control its flight.
I started the project by looking at the existing open source AR.Drone Free Flight app on iOS. This was actually a nice shortcut in the development process for me since all of the communication for flight commands, which contain the angles mentioned previously, were already taken care of. All that was left was to integrate the Myo armband with the existing app and figure out the best way to control the AR.Drone with my arm.
After lots of experimenting, I decided that keeping your arm flat should make the AR.Drone hover. Moving your arm from side-to-side would cause the AR.Drone to strafe left and right, modifying the yaw angle. Pointing your arm down would cause the AR.Drone to move forward, and pointing your arm up towards the sky would cause it to move back, modifying the pitch angle. We can also make it rotate on its spot by giving it a positive roll angle for rotating right and a negative one to rotate left. Knowing what position your arm is in is trivial thanks to the armband’s motion API. This allows us to know what your arm’s pitch, yaw, and roll are in real time, and from that we’re able to feed commands to the AR.Drone via the Myo armband.
The AR.Drone was just one of the very cool things which I’ve had the opportunity to work on here at Thalmic Labs, and I must say that this has definitely been the best co-op experience I’ve had so far!