Saturday, February 7, 2015

Building a 3D Printed Open Source Humanoid Robot

Some months ago I found an incredibly interesting robot project. It was Inmoov, design by Gael Langevin, a humanoid Open Source robot that anyone could print with a 3D printer. I had one of these printers, so I decided to go ahead with the job. After 100 hours printing time I got 38 pieces solely for the head, neck and trunk. Some more hours of work for assembling the different parts and here is the result: My robot Paul Inmoov

Six servomotors are responsible for the behavior of the head parts: Three for the eyes movement, one for the mouth and a couple of them for the pan and tilt movement of the neck. Also there are a couple of cameras in the eyes for stereo vision.

All these motors are controlled from an Arduino Mega 2560 board, located at the back of the robot. Its a board based on the Atmel ATmega2560 microcontroller. It has 54 digital input/output pins (of which 15 can be used as PWM outputs), 16 analog inputs, 4 UARTs (hardware serial ports), a 16 MHz crystal oscillator and a USB port.

This Arduino card is connected via USB to a PC where I run MyRobotLab framework. This Framework uses the Arduino board as an interface with the robot.

MyRobotLab is a service based multi-threaded Open Source framework for robotics and creative machine control. It includes a lot of services for machine vision, video streaming, speech recognition, speech synthesis, motor control, arduino control and more. It is possible to develop new functionalities in Python Open Source language

After some programming in Python and searching through several internet forums, I made Paul talk and say Hello World. Here you could see the video:

And here is the Python Program used for it:

Next steps: To build the arms and program new behaviors