Inspiration
I am taking the Fun With Robots stuco and was inspired to see what more I could do with the robot we use
What it does
The robot provides the web interface with a low latency stream of video from the camera at the front. Buttons on the interface allow you to shut down the robot, take a photo, and give voice commands. Currently, the voice commands work for "take a photo" and "do a spin". The interface also has a joystick to move the robot around, a battery level indicator, and an input field to play musical notes. It also presents you with a nice warm digital pie.
How we built it
The company that makes the robot provides sample code for a more basic version of the interface and I was able to expand its features and aesthetic. The Raspberry Pi gets sensor readings via I2C from the robot control board. It also runs a Flask server which acts as a bridge between a client opening the web interface and the Pi hardware (e.g. the camera) as well as the robot control board.
Challenges we ran into
Starting off the project was very time consuming. Power and hardware were a big problem. I was originally running everything (Pi + screen, robot board, and motors) off of a few NiMH batteries, which were capable but quickly ran low, causing the screen to stop working. This meant I had to switch to usb power. I tried every possible combination of power settings, but ended up settling on powering all 3 separately, which gave me the most control for testing. For software, I had never used Flask or done networking in Python before, so it had a learning curve. Getting the camera to properly stream (with low latency) to the webpage was the biggest challenge.
Accomplishments that we're proud of
It was very difficult to get the camera to stream and also take photos as needed. We ended up figuring out a neat hack to set a flag and save a single frame as a file whenever a photo was requested.
What we learned
The Romi Robot + Raspberry Pi combo is very nice to work with. I learned a lot about Python networking and communications between Raspberry Pi and other hardware.
What's next for Romi-RaspberryPiBot
This project is very extendable. More commands can be easily added. Computer vision can also be added to do pathfinding. If the batteries were charged, the umbilical cord can be removed, so more interesting movement can be implemented.
Log in or sign up for Devpost to join the conversation.