After a long time without robot projects I decided to make a new one that I can use to play with. I always wanted to continue the development and add new features to the RS4 robot, the initial idea was to make a more autonomous robot. I decided to do some more work, but the platform needed to be updated. As 3d printers are becoming cheap that was the way to go, developing parts is way easier and no more cutting and drilling. I'm an electronics engineer so 3D modelling is not something I am used to do, I was able to learn a few things in tutorial videos and began to 3d printing my first parts with success. I'm using SketchUp, it is not the most friendly software but with some dedication I was able to design and print some parts.In this images you can see the complete assembly model including all the parts, printable and not printable.
I also wanted a smaller robot but with all the modules that I used in the previous one. I picked up some similar but smaller wheels and nema17 steppers for the motion. This time I'm using a STM32 microcontroller, much more powerful than the PIC I was using before. The STM32 board controls every module on the robot, balance/movement, head servos, eye color and distance readings. In the first video it is possible to see all the modules being tested over a Bluetooth connection, no Raspberry Pi present.
The board communicates via UART, using a Bluetooth UART converter is straight forward. At this point adding Raspberry Pi to the robot is not that hard, just need to implement the UART commands, compile and install OpenCV and the integration is complete. I'm using Raspberry Pi 3, the old camera module and the Raspicam Api. Performance is not great but it is acceptable, I know that there are some optimizations that can be used to achieve better OpenCV performance, I'll try them later. At the moment I'm using 640x480 resolution.
In the second video the robot is following a black line using image processing, similar process has been used before in the RS4 robot.
Here you can see some close photos of the robot, not the best color :)
The idea for this robot is to have a platform to implement cool features, it has some potential that can be used to develop a really nice robot. I would like to make it available for other people, that would require some more time and money to develop it, make it more close to a product. I'm not sure if there are people interested in a robot that requires some advanced programming skills.
Hope you like it. I'll keep this post updated with new features and videos, I hope :)
Update 22-01-2018
I've been playing with 2 robots and the new follow me feature. It is basically tracking other robot by color properties using OpenCV.
Take a look at the 3rd video.
Cheers :)
Update 24-03-2018
Small update video using odometry. I think it will be useful for other functionalities but for now it can be used to do these tricks.
Check the latest video.
- CPU: raspberry pi 3
- Programming language: C++
- Sensors / input devices: SHARP IR sensor, Raspberry Pi camera module
This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/rs5-3d-printed-raspberry-pi-3-robot