Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement TDoA anchor protocol 3.0 #27

Closed
krichardsson opened this issue May 4, 2018 · 16 comments
Closed

Implement TDoA anchor protocol 3.0 #27

krichardsson opened this issue May 4, 2018 · 16 comments
Milestone

Comments

@krichardsson
Copy link
Contributor

TDoA 3 will support random tx times and dynamic number of anchors. The main features that we intend to add with this work is:

  1. Remove the need for a master anchor. This will make the system more robust since anchor 0 will no longer be a single point of failure.
  2. Support more than 8 anchors to be able to cover a larger area
@NicksonYap
Copy link

Just a quick question,
How many Crazyflies can TDoA or TWR support?

Can it go up to 100 or more?

Ideally we'd want it to go up to 1k Crazyflies for future possibility

@krichardsson
Copy link
Contributor Author

TWR - one, TDoA - unlimited. Please see https://www.bitcraze.io/loco-pos-system/.
Also, please ask this type of questions in the https://forum.bitcraze.io/ instead, we try to use issues on github for bugs and features.

@NicksonYap
Copy link

@krichardsson
Thanks for the reply, just found out about the forum.

Good to hear TDoA is theoretically unlimited.

Though I should be asking in the forum, but it seems TWR should support more than 1 device.
Since TDMA is implemented: https://wiki.bitcraze.io/doc:lps:twr-tdma

I have just bought 6 Anchors and 2 crazyflies for TWR mode.
It should work for two Crazyflies, no?

Thanks!

@krichardsson
Copy link
Contributor Author

Yes, TWR-TDMA supports 2 CFs. You can read more at https://wiki.bitcraze.io/doc:lps:twr-tdma

@xingqing6210
Copy link

if every anchor will send packet randomly, how to calculate the position by tag?

@krichardsson
Copy link
Contributor Author

@xingqing6210 The TX time (in the remote anchor clock) is part of the data in each packet. This is also true for TDoA2 and there is not really any difference in the position estimation functionality in TDoA3.

@xingqing6210
Copy link

one anchor still receive another anchor packet for sync ?

krichardsson added a commit that referenced this issue May 14, 2018
…ript to set all anchor positions in one go.
krichardsson added a commit that referenced this issue May 15, 2018
* Reduce TX rate when there are many anchors in the system
* Better randomization of which anchors to store data for and transmit in messages
@krichardsson
Copy link
Contributor Author

@xingqing6210 Yes, all anchors are listening to the anchors around them

@xingqing6210
Copy link

the anchor send packet's frequence is ? 100ms or others?

@krichardsson
Copy link
Contributor Author

@xingqing6210 Experiments showed that packet loss slowly rise with increasing total system packet rate and we loose around 15%@400 packets/s. With higher packet rates the losses increase rapidly so 400 packets/s seems to be a good total rate.
What I have tried to do is to let the anchors decide which transmit rate to use and reduce the rate if there are many other anchors in the system around them. Currently the transmit frequency is throttled based on how many other anchors that an anchor receives messages from, more anchors => lower rate. The TX rate is 50 packets/s per anchor up to 8 anchors, above that the rate is reduced to target 400 packets/s total rate. 16 anchors should end up at about 25 packet/s per anchor.

@xingqing6210
Copy link

@krichardsson so the tag position frequence also reduce to 50hz with 8 anchors, or 25hz with 16 anchors?

@krichardsson
Copy link
Contributor Author

@xingqing6210 The idea is to try to keep the frequency of packets that tags can use fairly constant throughout the system.
50 * 8 = 400 Hz,
25 * 16 = 400 Hz
Tags can use a messages from any anchor to make the TDoA calculation.
This functionality is mainly interesting in large systems where each tag only covers a part of the full system.

@xingqing6210
Copy link

@krichardsson maybe support tdma tof method for more zone ?

@krichardsson
Copy link
Contributor Author

@xingqing6210 I'm not sure what you mean. Could you elaborate a bit?

@xingqing6210
Copy link

@krichardsson tdoa3 support more two zone, maybe support tdma tof ?

@krichardsson
Copy link
Contributor Author

Basic TDoA 3 functionality is implemented. We will consider this as a baseline and close this issue. Further improvements/fixes will use separate issues to the changes the changes more clearly.

@krichardsson krichardsson added this to the Next version milestone May 29, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants