FinDroid is an autonomous rover prototype simulated using Webots r2025a. It integrates software modules for control, perception, and simulation environments, enabling research and development of navigation behaviors in a robotics context.
- Autonomous rover behavior in simulation, pre-Trained YOLOv5n model used for object classification.
- Integration with Webots simulation environments
- Modular structure supporting controllers, objects, and world definitions
- Use of Python and C++ for controller logic and simulation interface (GitHub)
- Results relayed to a FLASK web application to display findings.
These instructions will get you a copy of the project up and running on your local machine for development and testing.
- Webots r2025a installed
- Python (version X.Y)
- C++ compiler (supporting the standard used in project)
- Any dependencies (Python modules, etc.) listed in
requirements.txtor similar
-
Clone the repository:
git clone https://github.com/cc2803/FinDroid.git cd FinDroid -
Install Python dependencies:
pip install -r requirements.txt
-
Build any C++ components if necessary (if there are compiled controllers).
- Open Webots, load an appropriate world file from
worlds/directory. - Ensure the controllers are built / accessible.
- Start the simulation. You should see the rover in the simulated environment behaving according to the controller logic.
Here’s a high‑level view of the repo layout:
| Directory / File | Purpose |
|---|---|
controllers/ |
Contains the control logic (Python / C++) for the rover’s behavior. |
objects_webots/ |
Definition of objects used in the simulation environment. |
protos/ |
Custom Webots proto files defining robot and scene components. |
worlds/ |
World files for Webots — environments in which rover is simulated. |
- Customize or extend controller behavior by modifying files in
controllers/. - Design new environments by adding to
worlds/. - Add or modify objects, robot designs in
protos/orobjects_webots/. - Use Webots tools to record, visualize, or analyze rover behavior.
Contributions are welcome! Here’s how you can help:
- Reporting bugs / issues
- Proposing new features or improvements
- Submitting pull requests with well‑documented changes
- Adding tests or example scenarios
Please follow the style / contribution guidelines (if any), write clear commit messages, and include explanations for major architectural decisions.