Autonomous Rover

Autonomous Raspberry Pi Rover with Web Interface

Rover on table

Picture of the rover on a desk with the code open in the background. It is attached to external power but also has a battery attachment.

This project for CS370 aimed to develop a cost-effective, user-friendly, and flexible solution for remote data collection and monitoring by leveraging the capabilities of a Raspberry Pi and Arduino. The solution evolved into an autonomous rover equipped with sensors and controlled via a locally hosted web interface. Initially, our team of three students explored communication between two Raspberry Pis over separate networks but pivoted to a locally networked solution due to issues with accessibility, complexity, and user-friendliness. By utilizing a mobile platform, the rover overcame the proximity limitations of local communication and provided a versatile tool for various data collection applications.

Rover on floor

The rover on the floor with the battery attachment. The long sticks are sensors and the rover is seen here obeying a order delivered over the local network.

The rover's functionality is built on modular components, including a GPS module, magnetometer, and motor controller, allowing it to navigate autonomously using waypoint-based commands. Commands are sent through a Flask-hosted web server, making the interface accessible from any device. The integration of Arduino for hardware interfacing ensures cost efficiency and flexibility, enabling customization for specific tasks. While the project successfully met its goals of accessibility, adaptability, and cost-effectiveness, potential improvements include more accurate sensors, enhanced navigation algorithms, and expanded web interface features to increase usability and flexibility further.