Abstract
This project uses small quadcopter drones, open-source research platforms known as Crazyflies, which are light enough to fly safely inside an ordinary room. Since GPS is unavailable indoors, position has to be established by other means, and these drones rely on a room-tracking system called Bitcraze Lighthouse. Small base stations mounted around the flight area, originally developed for virtual-reality headsets, sweep invisible infrared light across the space, while a receiver board on each drone detects these sweeps and computes its own position onboard many times per second. With four base stations placed around the room, the same calibrated setup can track a single drone or a small group.
Supervision
- Prakash Aryan
- Sebastiano Panichella
Motivation
Tracking is not equally reliable everywhere in the room, since it depends on whether a drone has a clear view of the base stations, how they are angled, how far away they are, and whether light reflects off walls or furniture. In corners, close to the floor, or behind an obstruction, the position estimate becomes noisy and the drone may drift or lose tracking entirely. This has direct consequences for planning, because the shortest path between two points may run straight through a poorly covered region while a slightly longer route stays in clear view of the base stations. When several drones fly in formation, a single drone with a poor position estimate can pull the whole group out of shape or allow two drones to drift too close together.
Goal
The student will measure how reliable tracking is at different points in the room, turn those measurements into a three-dimensional quality map, and use that map to plan safer routes for three drones flying in a triangular formation. One drone first samples the room point by point, after which a grid-based planner compares a conventional shortest route against a route that prefers well-tracked space. The project concludes with a flight test of both routes using three drones that share the same calibrated geometry. No cameras, laser scanners, or machine learning are involved.
Project Scope
- Mount four base stations around the room, determine where they sit relative to each other, and copy that configuration to three drones.
- Fly one drone to a grid of points, recording at each point the estimated position, how much it fluctuates, and how many base stations remain visible, then assemble these measurements into a three-dimensional quality map.
- Implement a planner, using a standard grid search algorithm such as A*, that balances path length against staying in well-tracked space. Plan one route for the centre of the formation and apply fixed offsets for the three drones.
- Fly both routes at low speed from identical start and goal regions, inside a safety boundary and with a means of stopping the drones immediately.
Evaluation
- Tracking stability: how much the position estimate fluctuates, how often it jumps, and how often tracking is lost.
- Formation quality: how well the drones hold their triangle, and the minimum separation reached between them.
- Path following: how far the formation drifts from the route it was commanded to fly.
- Cost: path length, flight time, and battery drain for each route.
Requirements
The student should be comfortable writing Python and working with three-dimensional coordinates and straightforward data analysis. Previous drone experience is not required, since cflib, the Python library used to fly these drones, can be learned during the project. No machine learning is involved. The student should be prepared to conduct careful flight experiments, which means respecting a safety boundary and maintaining a reliable way to stop the drones at all times.
Pointers
- A. Taffanel et al., “Lighthouse Positioning System: Dataset, Accuracy, and Precision for UAV Research,” arXiv, 2021. Measures how accurate this tracking system is in practice.
- Bitcraze, “Lighthouse positioning system” and “Lighthouse positioning deck,” Bitcraze Documentation. The starting point for how the hardware operates. [Online]. Available:
- Bitcraze, “cflib Swarm API,” crazyflie-lib-python. The Python library used to fly several drones at once. [Online]. Available: