InMoov Robot Build

The current primary project of robots.software is building a variant of the InMoov Robot. This robot, originally designed and built by Gaël Langevin is billed as "the first Open Source 3D printed life-size robot." Robots.software's build will be codenamed Sculli.

The first step for the custom build was to 3-D print and assemble the head. The head (and neck) were printed using PLA filament on a set of extrusion printers and can be considered three basic sections:

  • Skull and Ears

  • Eyes

  • Neck and Jaw

InMoov Photo by Gael Langevin
InMoov Photo by Gael Langevin

For this custom implementation of the open source InMoov robot, software was developed on the Arduino in C++ to take commands via the USB serial bus and actuate the servos to move the robot's body parts into position.

Additional software components (API, Connection Agent and GUI) have been written in Python to facilitate interaction with the software running on the Arduino. All of these components are being modified as needed iteratively as progress continues based on feedback.

You can find all of the source code and design/implementation details of both the physical machinery and the software/firmware in use in the component section below.

Photo of Gael's InMoov by Gael Langevin

Components

Lab Setup

Details on the tools and equipment used for the project.

Architecture

Design details of both the physical and logical construction of the system for the Sculli build.

Software

Source code and implementation details for the software and firmware of the custom implementation for the Sculli build.

Hardware

Details on physical components and the assembly process of the actual robot.

Below you can find links to sections with details on individual hardware and software components. Each section also has links to useful pages, such as GitHub repositories for code and repositories for 3D printed parts for the robot.

Recent Updates

Firmware Upgrade

The firmware was modified to be able to handle calls via the USB Serial bus at a much faster rate (100x faster at a minimum). Previously, strings were being used to read commands from the Serial bus. C++ is not very efficient at using strings, and the commands were longer than necessary. The commands were shortened to a minimum necessary length and the code running on the Arduino was modified to use a high speed buffer array of char type variables.

Motion Orchestration Tool In Development

A GUI program for users to send motion sequences to the API for command execution to animate face and neck actions is under development.

Gallery

Sculli sez: Nothing yet because Sculli has no voice.