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.
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.
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 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.
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).
The project grew organically into an international open source project and gathered a community of makers, artists, educators, and scientists.
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.
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 ErgoJr robot is the main robot used by the Poppy Education. It has been used by thousands of French students.
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.
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.
Laboratory RoboticsBetween 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.
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.
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.
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.
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].
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].
Startup – Pollen Robotics and LuosTogether with Matthieu Lapeyre, Pierre Rouanet, and Nicolas Rabault, we co-founded Pollen Robotics.
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
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.