Game Hack Day NYC
Dancing ARdrone

You should copy the format below and use it as a template for your hack.


Dancing ARdrone

Creators

Sara Farmer

About the Hack

I tried to make an AR Drone dance. This didn’t turn into anything substantial, but hopefully will spark off some ideas (and I’m definitely going to keep playing with this myself). I mean, we can take-off, land, take photos with the AR Drone, but we’re not really expressing its creative side yet, are we, and growing its hair long would just clog up its propellors.

What we have so far is a set of pre-programmed dance moves:

  • Waltz
  • Boogie
  • Dad dancing at wedding

Hopefully this will grow into an entire vocabulary of moves that we can put together to make the AR Drone properly rule the dance floor (or at least be groovily-unpredictable enough to scare everyone else off it).

NB when I uploaded and tagged video of the first drone dances to youtube, several similar projects showed up. These could be worth investigating too.

What APIs, tools or kit did you use?

Wrote everything in Python on an Ubuntu laptop (the OSX version didn’t work with the pygame that python-ardrone used to connect to the keyboard and drone camera, but should work fine without it): used the python-ardrone python extensions for AR Drone, and downloaded the Open Kinect python toolkit for the Kinect (but couldn’t quite get it to work on my Ubuntu 11 stack). Also looked at EchoNest music analysis API, and am looking at opencv and the python fft and spectrogram tools in numpy and pylab.

Media

First dance moves (waltz, boogie, dad-dancing-at-wedding).

Source code is in github repo ArdroneDance

Dance moves…

  • http://www.videojug.com/film/dance-moves-an-emergency-guide-for-men lcrcfcfc

  • http://nymag.com/daily/entertainment/2010/08/biebers_greatest_moves.html

Options:

  • Make drone move in time to music beat - needs soem cool preprogrammed dance moves and beat detection; two people have suggested same prg (EchoNest) so far… also see http://www.python-forum.org/pythonforum/viewtopic.php?f=18&t=8675 – suggests numpy.fft and pylab.specgram
  • Make drone mirror human movement - either from video (needs image processing, e.g. ar_recog), or (better) from Kinect
  • Make drone move in response to signals - either keyboard (slow) or Wii (needs bluetooth, i.e. Mac)
  • Cheat by pre-programming a series of dance moves to match a known song. Yep, we can do this as an example!

Timings etc:

  • House music is around 120 bpm (beats per minute)
  • most salsa dancing is done to music somewhere between 160–220 bpm. (see here)
  • Most dance styles are over 3, 4 or 8 beats.
  • So roughly 2 moves every second (eg. a sashay side to side) is about right.