Inspiration
Living far away from friends and family can be difficult. Even though video calls help us stay connected, they don't always capture the feeling of actually being there with someone. We wanted to create something that could make long-distance relationships feel a little more personal and interactive.
That's where Robot & Roll came from! We imagined a robot that could act as your physical presence in another location, allowing you to see what's happening around your loved ones and move through their surroundings, rather than just watching them through a stationary screen.
Our goal was simple: make distance feel a little smaller, one roll at a time.
What it does
Robot & Roll is a four-wheeled companion robot that can be controlled remotely through a web-based dashboard.
The robot uses a camera to stream live video, allowing users to see its surroundings in real time. Through the dashboard, users can control its motors, adjust their speed, and move the robot around.
Unlike a traditional video call, Robot & Roll introduces physical movement into the experience, making remote interactions more engaging. We envision it being used by friends, family members, or anyone wanting to feel more present in the lives of people who live far away.
How we built it
We used a Raspberry Pi 4 as the brain of our robot, connecting it to an IMX219 camera module and two yellow TT DC gear motors designed to power four wheels.
For motor control, we used IRLZ44N MOSFETs connected to the Raspberry Pi's GPIO pins. We wrote Python scripts using GPIO Zero to independently control both motors, regulate their speeds through PWM, and test different movement patterns.
For video streaming, we used Raspberry Pi's camera utilities to transmit live footage over Wi-Fi.
On the software side, we developed a web-based dashboard using HTML, CSS, and JavaScript, alongside a Python Flask backend. The dashboard allows users to view the robot's camera feed and control its motors remotely.
We connected the frontend and Raspberry Pi over Wi-Fi, allowing the software interface to interact with the physical robot without a wired connection to the laptop.
Challenges we ran into
One of our biggest challenges was getting the Raspberry Pi camera to work. Although the camera was initially detected, every time we tried capturing an image, we encountered repeated camera timeouts. After troubleshooting the camera connections and testing different commands, we finally managed to capture images and stream live video.
Another challenge was establishing a stable connection between our Mac and Raspberry Pi. We initially struggled with SSH connectivity through a mobile hotspot, along with package installation and filesystem errors.
We also encountered challenges with the motors. Initially, we focused on getting a single motor running, then expanded the setup to control two motors independently. We discovered that our MOSFET-based circuit allowed speed control but couldn't reverse the motors' direction, which made designing the robot's movement more complicated than expected.
Throughout the process, we learned that hardware and software don't always work together on the first attempt, even when the code itself is correct.
Accomplishments that we're proud of
Our biggest accomplishment was seeing the different parts of Robot & Roll finally work together.
We successfully connected the Raspberry Pi to our laptop wirelessly, captured images using the camera, and streamed live footage over Wi-Fi. We also programmed two motors to operate independently and simultaneously with the camera.
Another accomplishment was building a dashboard that connects our hardware to an interface users can interact with.
What started as a collection of wires, motors, a camera, and a Raspberry Pi gradually turned into a working robotic prototype.
We are especially proud of how much we learned while troubleshooting problems and figuring things out as a team.
What we learned
This project gave us hands-on experience with both hardware and software development.
We learned how to work with Raspberry Pi GPIO pins, use MOSFETs to control motors, implement PWM speed regulation, and stream camera footage over a wireless network.
On the software side, we gained experience building frontend interfaces, creating backend endpoints, and connecting a web application to physical hardware.
Perhaps our biggest takeaway was understanding how different building a physical product is from developing a purely software-based application. Something as simple as getting a motor to move or a camera to capture an image can involve debugging wiring, power, connectivity, and code simultaneously.
We also learned the importance of testing individual components before integrating them into a larger system.
What's next for Robot & Roll
We want to continue developing Robot & Roll into a more interactive companion robot.
Our next steps include adding two-way audio communication so users can speak and listen through the robot, improving its steering and navigation capabilities, and making the dashboard more intuitive.
We also hope to explore AI-powered features, including voice interaction, facial tracking, and autonomous navigation.
Ultimately, we envision Robot & Roll as more than just a remotely controlled robot. We want it to become a way for people to share everyday moments, explore spaces together, and feel closer to their loved ones, no matter how far apart they are.
Built With
- 4
- computer
- css3
- embedded
- flask
- gpio
- html5
- imx219
- irlz44n
- javascript
- libcamera
- mosfet
- pi
- picamera2
- pwm
- python
- raspberry
- robotics
- ssh
- systems
- video
- vision
- wi-fi
- zero