Accurate relative localization is important for a swarm of robots, especially when performing a cooperative task. This paper presents an autonomous multi-robot relative positioning technique. An Extended Kalman filter (EKF) uses onboard sensing of velocity, yaw rate, and height as inputs, and then estimates the relative position of other robots by fusing these quantities with ranging measurements obtained from onboard ultra wide-band (UWB). Real-world experiments are conducted on a team of 5 Crazyflie2 quadrotors, demonstrating autonomous formation flight and coordinated flight through a window.
Innovations
- An autonomous relative localization implemented on multiple nano (33 grams) flying robots with fully onboard perception.
- Localization convergence analysis for both random initialization maneuvers and unobservable maneuvers.
- Robust and fast communication (333Hz for each ranging) that allow for a high-speed estimation update.
- Automatic initialization procedure for dealing with large unknown initial state errors.
Swarm demo with off-the-shelf Crazyflie
- Set the address of each crazyflie ending by E5, E6, E7, ... .
- Download source code and checkout the swarm branch.
- Set the NumUWB in lpsTwrTag.h to the actual number of Crazyflies.
- In cfclient, connect to 'E5' crazyflie, and set keep_flying to 1.
Video demo
The summary video is shown below. For the full video list, click here.
Visual control on the Leader
In the leader-follower test, the leader Crazyflie is equipped with a monocular camera for autonomous target detection and tracking.
Simulation with Python
In case you don't have Crazyflie robots, you can still validate the proposed relative localization method in a python-based simulation framework. The kinematic model is same to the real-world robots.