Ever since high school, I have been spending a lot of time working on side projects that combine electronics and computer science. To improve my skills, and because it’s fun, I decided to design homemade robots that can be gradually and easily improved over the years. My hardware and software designs have been completely developed from scratch.
In 2010, I designed another robot that can be remotely controlled over the internet.
I named it Nestor, after the butler from the Belgian comic book Tintin.
Now, however, I’m working on a completely open-source robot. Why? Open-source software and hardware are the best way to both help others working on similar projects as well as getting valuable advice from more experienced users.
Developing an open-source, 3D-printable robot has been a long but worthwhile journey for Franck Talbart. Click To Tweet
I challenged myself to the following caveats:
- The robot must be easily reproducible using a 3D printer
- All documentation, including 3D pieces, electronic schemas, and the whole source code should be available to everyone.
- From a technical standpoint, there must be low latency for audio, video, and commands
The current version of my new robot took about one year to design and build. Its components are 3D-printed and fully reproducible. It’s remotely controlled by a Raspberry Pi (RPi) single-board computer using a homemade, open-source tool I named NestoRpi Engine (after my 2010 robot).
My new open-source robot is equipped with 8 motors, a speaker, a sound amplifier, and an LCD screen. It includes input devices, too, like a camera with a light, a microphone, a voice synthesizer, ultrasound sensors to determine its distance from objects, a photoresistor to measure light intensity, and rotary encoders that control the speed of the motors.
There’s even a mechanical arm fixed to the top, which can be raised and lowered, allowing a little “hand” to pick up small objects. If the battery gets too low, the robot can easily and remotely plug into a docking station.
You can interact with my new robot using a web interface based on WebRTC technology. This new technology, along with data channels, provides low latency access for streaming audio, video, and commands, even when the internet connection is slow.
I wrote this tool in a generic way, making it easy to adapt to many kinds of use cases with the Raspberry Pi software (not only robots). As an example, the tool let me use a racing wheel to race a hacked remote-controlled toy car fitted with a camera. Now that was fun!
I hope that my humble contribution will help the open-source community in improving their Raspberry Pi skills and discovering the exciting world of 3D printers, just as the community has enabled me to enrich my knowledge and have fun building robots.
For more information, feel free to check out my repository on GitLab.