This repository contains the implementation for the BE Intern Assignment: a robust, server-intensive, and highly optimized database-driven control system for an autonomous wall-finishing robot. The system features intelligent path planning, real-time communication, detailed logging, and 2D web-based visualization.
See the full assignment description in BE_Intern_Assigment.pdf.
Backend:
- Create basic covering planning logic for rectagular walls(>=1)
- User can input rectangular obstacles(>=(0/1)) of custom dimensions
- SQLite db for trajectory storage with optimzed indexing.
- API endpoints to retrive trajectory data
- Include logging for request handling and response timing
Frontend:
- Basic web-based 2d visualization without using matplotlib
- Should be self explainotary for path planning
- Implement simple trajectory playback.
Testing:
- API tests using pytest/ FastAPI's built-in TestClient
- Test API endpoints for basic CRUD operations and validate response times.
Sample Case: ● Wall dimensions and obstacles should be user-input parameters. ● Example provided: ○ Wall: 5m x 5m ○ Obstacle: Window (25cm x 25cm)
To run and test the project locally :
git clone https://github.com/Devansh121/autonomous-wall-finishing.git
cd autonomous-wall-finishing/
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
uvicorn app.main:app --reloadthen go to : http://localhost:8000/
To run with docker :
docker compose up --build -dTo stop the docker container
docker compose down