Offboard control using Ultra-Wide Band technology


Hello everyone!

We are trying to achieve indoor autonomous flight in a drone we are developing. For this, we want to use Ultra-Wide Band (UWB) beacons. We are already able to track the location (not orientation) of an UWB beacon quite accurately. The next step for us is to have the Pixhawk (original Pixhawk, FMUv2, running PX4 v1.7.0) that we are using make use of this location. For this, we have set up a Raspberry Pi (RPi) with mavros, which sends the xyz-data from the tracked UWB beacon to the Pixhawk over the /mavros/vision_pose/pose topic.

The Pixhawk seems to correctly receive this location as we can see in the VISION_POSITION_ESTIMATE. However, we are not able to reliably have the LOCAL_POSITION_NED follow the UWB position: when the drone is stationary on the ground the location is correctly mirrored, but when we take off (using manual control, just to be safe), the LOCAL_POSITION_NED goes to (0,0,0), while the VISION_POSITION_ESTIMATE is still received correctly. When we land the drone, it will not arm again, giving an EKF2 HORIZ POS error, until we reboot the Pixhawk. We have set the EKF2_AID_MASK to only use the vision data for position estimation (not yaw) to make sure that the UWB beacons are working correctly.

Flight log of when the behaviour happens

We tried aligning the compass heading with our UWB coordinate system, based on this post. This did improve the LOCAL_POSITION_NED estimate, however it still becomes (0,0,0) most of the time.

We are aiming to control the drone using position setpoints.

We are very new to the drone world, and would like to know what we are doing wrong wrt using the UWB beacons.

Thanks a lot in advance!


EDIT: made question more specific to use of - and problem with - UWB beacons.
EDIT2: added flight log and some tests we performed


interesting, however very general question.

Would be easier for people to help with more specific problems.


Was you able to solve this issue ? We are trying to create the same setup.