Introduction: Kinect-Based Mimicry Robot

About: Graduate CS Student at UMD | Member of the HCIL | Designing Technologies for Children

We designed a robot that can respond to commands and mimic gestures. This four-legged robot is built using the following list of materials:

  • Micro Servo Motors x 6
  • Arduino Uno x 1
  • Microsoft Kinect x 1
  • 3D Printed Robot Body Parts
  • A breadboard and some wires

Through this tutorial you will learn: (1) how to make the Robot Body Parts, (2) How to attach them together, (3) How to program the Arduino and run the Kinect code.

Step 1: Crafting Robot Parts

In this part you would first create the body parts: Legs, Arms, Hips & Shoulder for this four-legged robot.

The tutorial will be based on 3D-printed body parts. However, if you have access to a Laser Cutter, you could craft these parts much faster, but the bottom line is that your robot might loose some stability (I've attached the 2D design files needed for the Laser Cutter)

3D-Printing Robot Parts:
Download the Mimicry Robot Body Parts.stl file or go to this Thingiverse 3D Model to download the model (and even remix it however you like!) You are able to 3D-Print these parts perfectly using the standard MakerBot settings.

Cutting Using a Laser Cutter:

If you do not have access to a 3D-Printer, you can also download the 2D Design Model (Mimicry Robot Body Parts.dwg or .ai) of the body parts and use a thick material (e.g. 5mm thickness acrylic glass) to create the them.

Step 2: Sticking Body Parts Together

Now that you have created the robot body parts, you can start sticking them together using any superglue.

Process:

Start with sticking the two semi-identical pieces for the six main body parts to each other:

  1. 4A - 5A
  2. 4B - 5B
  3. 2A - 3A
  4. 2B - 3B
  5. 6A - 7A
  6. 7B - 6B

After the six main body parts are strongly attached together, attach two servo motor holders (1A, 1B, 1C & 1D) to the hips and two servo motor holders to the shoulder. Make sure that you test the orientation of the servo motor holders so that the wires would go inside the robot.

  1. 1A & 1B to shoulder
  2. 1C & 1D to hips

Step 3: Attaching Servo Motors

Now that you have the body parts prepared, its time to get every single limb to be powered by a servo motor.

Process:

The first step is to set the initial angle of the servo motors to 90 degrees:

  1. Attache the six servo motors to the Arduino according to the schematic.
  2. Program the Arduino with this code that would only set the angle of all servo motors at 90 degrees.
  3. Attach these servos: RightArm, LeftArm, RightLeg & LeftLeg to the Hips and Shoulder servo motor holders, and fix them using two screws.
  4. Attach the servo horns to the servo motors according to this:
    1. Shoulder and Hips use the full-size servo horns that are perpendicular to the servo motors (while they are set to 90 degrees.) Use a screw that would hold them tightly.
    2. Legs (that are smaller than arms) use the half-size servo horns that are perpendicular to the hips.
    3. Arms would also use the half-size servo horns. But they are perpendicular to the main body part (the biggest part) so attach them accordingly.

Step 4: Arduino Code & Kinect

Now that your robot is able to stand on its four legs, download the Arduino codeand Kinect codesto run on the Arduino and PC respectively.

Process:

  • Program the Arduino with the provided code (make sure that you're using Arduino V1.0.1)
  • Connect the Microsoft Kinect to your computer and run the C# Kinect code.
  • Select the Arduino COM port and click on the Run button.

Now you can fully control your robot using a number of voice commands:

  • "Move": the four legged robot would move a number of steps
  • "Shake": happily shakes its hips
  • "Crawl": moves forward as if it is crawling
  • "Sit Down": the robot would sit down and starts mimicking the user's arm movements
  • "Follow Me": the robot gets down on its four legs, now you're able to control the whole robot using your arms.

Have fun :)

This Instructable was made by Majeed Kazemitabaar & Brian Burbach as part of the CS graduate course "Tangible Interactive Computing" at the University of Maryland, College Park taught by Professor Jon Froehlich. Please see http://cmsc838f-s15.wikispaces.com/ for more details.