LPS TWR Mode accuracy

Post here to get support
Post Reply
almi
Beginner
Posts: 5
Joined: Mon Nov 11, 2019 4:49 pm

LPS TWR Mode accuracy

Post by almi » Tue Dec 17, 2019 10:32 am

Hello,

I have problems with the twr mode.
In the documentation we found that the twr mode is the most accurent mode.
But when I use this mode, on the one hand, I get a wrong z postion (i.e. 0.30 instead of 0.00)
On the other hand the crazyflie oscillates around a position i want to hover?
Moreover the landing position is also inaccurate (i.e. 1.20,85,0 instead of 1,1,0).
Are there an possibilities I can try to improve the accuracy?
Attached you will find the yaml-file with the positions of the anchors.



Thanks for answer!
Attachments
position_anchor.png
position of anchors
position_anchor.png (6.25 KiB) Viewed 1104 times



kristoffer
Bitcraze
Posts: 204
Joined: Tue Jun 30, 2015 7:47 am

Re: LPS TWR Mode accuracy

Post by kristoffer » Thu Dec 19, 2019 3:59 pm

Hi!

We have seen this type of error as well sometimes but do not have a full understanding of what it is.

There are a few things to check.

1. Make sure your anchor positions are correct and correspond to where your anchors are placed in space (within a few cm)
2. Make sure to start the Crazyflie facing positive X-direction. If not, you may get weird behaviour such as oscillations.

Other possible causes could be:
1. It is a fairly small space, and there are nonlinearities close to the anchors. Not sure if this has an effect, but possibly.
2. There is something called the antenna delay which is a delay when the radio signal is transitioning between air and the transmitter/receiver. The delay is on the order of 150m (which is quite a lot compared to the measured distance). We assume this delay is uniform between modules, but it is maybe possible that it is not? If you want to play with the antenna delay, it is defined here https://github.com/bitcraze/crazyflie-f ... rTag.c#L48 for the Crazyflie and here https://github.com/bitcraze/lps-node-fi ... .c#L93-L94 for the anchors.

You can use the ranging.distance0, ranging.distance1... log variables to get the distance from the crazyflie to each anchor if you want to look at the data that is measured and see if you can find any clues.

There are of course also limitations in the UWB technology it self.

Post Reply