Dancing Humanoid Robot
Studying Creativity, Dance, and the Human Response to Music
PIs: Dr. Youngmoo E Kim & Dr. Paul Oh
Students: Rob Ellenberg & David Grunberg

Introduction
Motivation
I have two immediate objectives. The first is to make a fully robust beat tracker that will be able to identify the beats for a significant body of audio. This information is used by the robot in order to synchronize its gestures to the music. The second is to enable gestures that build on each other. These will allow the robot to perform smoothly connected sequences of gestures, instead of having to return to its base position after every motion.
Longer term goals include preparing a similarly sized robot with a more powerful processor, which will allow the program to run more quickly and more flexibly, and programming rules for dance styles into the robot.
In the long term, we will be transfering this algorithm to the life-sized HUBO robot. We hope to them make the HUBO dance almost as a human would. This will more closely mimic humans so that any generative features are also more likely to apply to people. It will also have the convenient side effect of being a platform for rapid testing of dance choreography.
Video
Algorithm

GUI

We created a Graphical User Interface to aid with rapid demonstration of dance sequences. Users can easily select which motions the left arm, right arm, and legs perform. These options are placed into a score that allows for quick examination of the dance sequence. Once the user has finished making his or her gesture selections, music is selected and the robot is told to perform the gestures to the music. This allows anyone to have the robot act out their own dance sequences, making it possible to quickly iterate choreography sequences. Alternately, there is a button for the robot to produce its own gestures. Currently it chooses them randomly, but once dance style rules are implemented it will wait for the music to begin and then choose logical gestures based on what it hears.
Gestures
We have thirty separate arm and leg movements in the robot's gesture vocabulary. Each movement can be 'held' in position for as long as the user wants before being returned to its neutral position. The robot cannot yet connect gestures.
Because gestures take varying amounts of time to complete, the robot must be able to begin some gestures before others in order to stay synchronized. For example, if it must raise one arm, tap one knee, and step forward before the next beat, it must know to order the gestures so that they all finish at the same time. This is accomplished with a large table that lists how long each gesture takes to complete. After gestures are selected, each set of simultaneous gestures is sorted in time using this table. Gestures can then be begun at the correct time.
Robot platform

The RoboNova has one main disadvantage in that its processor is underpowered. Its update rate is relatively slow at about 5 Hz, which leads to imprecisely timed gestures. It also cannot send much feedback to the offboard computer because so much of the processor's power is needed to select the requested gesture from its library that little remains for anything else.
To solve this problem, we are switching soon to the Bioloid robot. This platform has a much faster processor. This will enable more accurate gesture timing and more sensor feedback in real time.
Eventually, we will upgrade to the HUBO, similar to the Bioloid except much larger and with a much more powerful onboard computer. The processor onboard the robot will be able to run the entire algorithm, eliminating the need for an offboard computer. The larger size will also enable closer mimicing of human dance moves since the robot's size and motions will be more comparable to humans than the scaled down models are.
Beat tracker

This system requires relatively little computation, and can be accomplished in real time.
Results
Future Work
Conferences
Rob Ellenberg (DASL): rwe24g@gmail.com
David Grunberg (MET-Lab): dkg34@drexel.edu