Open source robotics

Last update: January 2019

Robots are coming! Or so they say. I have been interested in robotics for as long as I can remember. Over the years, I struggled my way through the understanding of all technical parts of robot building. And once I became an expert, I grew frustrated by how unnecessarily painful it was to put a robot together. With some friends and colleagues, we have decided to take our part into making robotics more accessible. Below are our attempts, from an open source robotics community of makers, artists, educators and scientists, to accessible tools for chemists, we even created a start-up.

The first Poppy ErgoJr robot jumping.
Open source laboratory robot I developed.

Content

Approach

In all projects presented below, we strived to develop empowering tools, both software and hardware, that reduce the complexity required for developing robotic devices. But we did not stop there.

We relentlessly worked to make these tools accessible to all. Our creations are available online for free and with a documentation. And we strived to provide demonstration of our technology in various application domains, from art to science, one of our project saw an important development in school education in France.

On a personal level, I have learnt that technology alone can’t make an impact. It needs to be embedded into meaningful products that make what was previously impossible possible, or inaccessible accessible, in our everyday lives.

Team

The Poppy Project was initiated by: Matthieu Lapeyre, Pierre Rouanet, Pierre-Yves Oudeyer, while are INRIA. Didier Roy joined and developed the poppy education project that went into many schools in France. I was part of the founding team and was very active during the period 2012 – 2016.

The laboratory robotics work was developed while working as a research associate and team leader in a chemistry lab (2015-2017). See associated project page for more info.

The start-up Pollen Robotics was co-founded by Matthieu Lapeyre, Pierre Rouanet, Nicolas Rabault, Jonathan Grizou. I acted as COO and departed for new adventures in 2018.

Projects

Poppy Project

History

The Poppy Project was born in 2012 in the Flowers laboratory at Inria Bordeaux Sud-Ouest. It was initiated during Matthieu Lapeyre’s PhD Thesis surpervised by Pierre-Yves Oudeyer. At the beginning, the development team was composed by Matthieu Lapeyre (mechanics & design), Pierre Rouanet (software) and Jonathan Grizou (electronics).

Matthieu Lapeyre with the first version of Poppy Humanoid.

The project grew organically into an international open source project and gathered a community of makers, artists, educators, and scientists.

Left: A Poppy Humanoid kit. Middle: Poppy Torso and Poppy ErgoJr. Right: Poppy ErgoJr.

Our robots were then used in a national education program to teach robotics and programming in schools. Didier Roy and Pierre-Yves Oudeyer lead this effort and formed the Poppy Education project while working at INRIA. This effort has been recognized at the national level and an educator association, called Poppy Station, has been created to give the project its independence.

Fun fact: Our Humanoid robot met François Hollande, the President of France.

lagship projects

Poppy Humanoid is an open-source and 3D printed humanoid robot, designed by Matthieu Lapeyre. Optimized for research and education purposes, its modularity allows for a wide range of applications and experimentations. More information, code, 3D design and documentation are available on Github (>280 stars): https://github.com/poppy-project/poppy-humanoid.

First video introducing Poppy Humanoid

Building of a Poppy Humanoid.

Pypot is a Python library for controlling dynamixel motors, designed by Pierre Rouanet. Dynamixel motors are the main building blocks of our robots and this library allow for quickly and effortlessly controlling many such motors. Code, documentation, and examples are available on Github (>170 stars): https://github.com/poppy-project/pypot

Poppy ErgoJr is a small and low cost 6-degree-of-freedom robot arm. It consists of very simple shapes which can be easily 3D printed with FDM printers. More information, code, 3D design and documentation are available on Github (>75 stars): https://github.com/poppy-project/poppy-ergo-jr.

The first Poppy ErgoJr robot jumping.
ErgoJr robot with different tool ending.

The ErgoJr robot is the main robot used by the Poppy Education. It has been used by thousands of French students.

Websites: [Poppy Project] [Poppy Education] [Poppy Station] [Poppy Forum] [GitHub]

Personal contributions

Between 2012 and 2016, as part of founding team, I had an active role in the development of the project. I was especially active on the forum to develop the community. I built, and contributed to, several tools and robots.

First ErgoJr – I build the first version of the ErgoJr robot. In the quest of modular robot design, I developed a set of OpenScad libraries to develop parametric robotic parts using code. Full details on the dedicated project page.

The first Poppy ErgoJr robot jumping.
Robots designed by code.

ErgoJr in the browser – Using three.js, I developed a ErgoJr model that can be interacted with directly in the browser. This enable students to play and test code on the robot without having access to a physical robot. Thanks to Pierre Rouanet, the web simulator can be controlled with exactly the same code library than the

Demonstration of the control of ErgoJr in the browser via Python.

Pierre Rouanet demo the link between the physical and the simulated robot.

For more information: [Demo] [Getting Started] [Website] [Forum Thread]

Soft robots – I developed a method to integrate flexible silicon parts that can be easily design and built at a very low cost (>1$). I designed a soft starfish robot as a proof of principle.

A robot with flexible parts.
For more information: [Github soft starfish] [Github soft connector] [Forum Thread]

Laboratory Robotics

Between 2015 and 2018, I lead a team of interdisciplinary researchers in a Chemistry lab on the digitization of Chemistry. As a trained roboticist, I developed a set of tools to help less experienced programmers develop automated laboratory devices and robots in the lab. I present below the tools I have developed, but more are accessible on the Cronin group Github page. Commanduino – Arduino control in Python The Commanduino library is a Python library which is used to communicate with Arduino devices via Python, as opposed to hardcoding the desired behavior onto the Arduino itself. I wanted to introduce modularity in the design of Arduino based robots. To add a new device (motor, servo, sensor), one should only need to add a few lines of code on the Arduino board. The device would then be controllable via Python on the connected computer. Strangely, this was not available off-the-shelf when I started this work, it required to build an Arduino library functioning like an object oriented library, which is not feasible by default. The following diagram shows the design of Commanduino, highlighting the layers of communication.
Architecture of the Commanduino layers of communication.

With Commanduino, an Arduino main file becomes very simple to write as you only have to focus on the device you want to control. In the example below we register one servo on pin 9.

Code on the Arduino side.

That’s it, and adding a new device will only be a few lines of code, typically 2 lines and the associated library imports. You can now plug the board to a computer, and use the following code to control and read from the servo.

Code on the Python side.

Commanduino makes quick iterative development possible using Arduino and Python, even for beginners. It is particularly useful when designing new robots without well defined specification, as it requires to adapt on the fly to the problem you encounter.

However, that amount of user side readability on an Arduino code, required fairly complex code architecture, and adding new devices is a job for advanced programmers.

Libraries: [Commanduino] [Arduino CommandTools] [Arduino CommandHandler]Graham Keenan wrote the documentation and coded additional devices.

Pump control

I developed pycont, a Python library to control Tricontinent C3000 pumps. It is meant to be easy to use, and transparent such that when reading your program you can actually know what is going on. Graham Keenan wrote the documentation. More details on [GitHub].

Modular syringe driver

I designed a small linear actuator with interchangeable tools that is very handy to develop custom laboratory robots. The appeal of this device is its modularity, as many different additions can be designed and printed. Graham Keenan wrote the documentation. More details on [GitHub] and [OnShape].

3D design of the modular actuator with interchangeable tools.
A modular syringe fully assembled.

Droplet tracking

A collection of software tools to handle various video related tasks, including recording a video, setting webcam parameters, and tracking moving droplets in a petri dish. More details on [GitHub].

Dropfactory robot

The Dropfactory robot is a great example of what can be made when combining the above tools. The design and code is entirely open source, see [GitHub].

Open source laboratory robot I developed.
I developed this robot to undertake research on the efficiency of curious algorithm on the exploration of Chemical systems. Dropfactory can perform 300 droplet experiments a day in full autonomy (each experiment needs recording of 1m30s). Compared to previous robots, this is a 6-fold improvement and a major leap in reliability. This robot performed more than 20k droplet experiments while I worked in the Cronin group and routinely functioned for 12 hours per day.

Startup – Pollen Robotics and Luos

Together with Matthieu Lapeyre, Pierre Rouanet, and Nicolas Rabault, we co-founded Pollen Robotics.
The co-founders. From left to right: Pierre Rouanet, Jonathan Grizou, Nicolas Rabault, Matthieu Lapeyre

Our objective was to make robotics more accessible by commercializing our tools for the quick creation of robots. Specifically a technology for modular robotic comprising a communication bus called Robus. Below was our attempt to explain that technology.

Luos pitch to YC Startup School.

Luos technology principle and example.

While I was at Pollen Robotics, we developed a variety of robots to showcase the technology versatility. Among which was a human size robotic arm and a small dynamic quadruped robot.

Reachy – Human size robotic arm

Doggy – Robotic gaming platform

The team took on another challenge to design a very cheap (<2$ in parts) educational robot in collaboration with the Nathan french publishing house. The resulting product is called Robot Labo and has been commercialized in physical shops all over France for Christmas 2018.

Promotional video of Robot Labo.

Packaging of Robot Labo.

I voluntary departed from Pollen Robotics in 2018 following a pivot. This pivot lead to a split in the activities and the creation of a second start-up Luos Robotics. At the time of this writing, Pollen Robotics is a robotic design studio that starts from an idea to develop a functioning product. Luos Robotics is a start-up aiming to commercialize the Robus modular technology. We were awarded a European SME Instrument h2020 grant for this project.

Logo of Pollen Robotics.
Logo of Luos Robotics.

Personal Projects

Personal projects are listed on the project page, under the “Stuff I built” section.