TDoA structure

All discussions related to the Loco Positioning system
Post Reply
WendaZ
Beginner
Posts: 14
Joined: Sun Jul 14, 2019 10:35 pm

TDoA structure

Post by WendaZ »

Hello, Bitcraze team,

Our group is interested in the UWB localization system and currently working on a project based on Crazyflie. In order to support a swarm of Crazyflie, we would like to use TDoA mode. Currently, we only tried TDoA2 mode with 8 anchors set up as a cubic in an 8x8x3 indoor space. We have a couple of questions about the TDoA localization system.

1) TDoA structure
The TDoA structure is implemented as a round-robin fashion (7-0,0-1, ...,6-7). However, most TDoA localization systems are implemented in a centralized or decentralized way. Centralized means all tdoa measurements referring to the anchor 0. (d_{10},d_{20},..,d_{n0}) Decentralized means toda anchor pairs do not share anchor information.(d_{10},d_{32},d_{54}) Both centralized and decentralized tdoa setup have theoretical optimal configurations, however, the round-robin fashion does not have a feasible optimal geometry after similar derivation. Therefore, I wonder why you select round-robin fashion when you implement the tdoa algorithm. Are there any particular benefits of this structure?

2) Where does the history anchor data get information?
The second question is a particular code question. The history data of anchor packets are used throughout lpsTdoa2Tag.c. (It is declared at line 120: static history_t history[LOCODECK_NR_OF_TDOA2_ANCHORS]) However, I did not find where does this static structure get the data. It would be great if you can provide some guidance. Thanks.

3) Which anchor data are used each time in TDoA3 mode?
In TDoA3 mode, anchor data are stored in the " tdoaAnchorInfo_t" and when we process the data in the function, we search for the "tdoaAnchorInfo_t anchorStorage" to check if the anchor is available. Then I have 2 questions.
(3.1) Where does the "anchorStorage" get and update information?
(3.2) Just to confirm. In TDoA3 mode, the anchor pair is random, isn't it?

It would be very helpful if we can get some feedback from you.

Thanks in advance.

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

Re: TDoA structure

Post by kristoffer »

Sorry for very late reply!
1) TDoA structure
Main reason was that it was easy to implement
2) Where does the history anchor data get information?
The history data is set at the end of the rxcallback() function.
(3.1) Where does the "anchorStorage" get and update information?
Information is written to the storage using the setter functions: tdoaStorageSetAnchorPosition(), tdoaStorageSetRxTxData(), tdoaStorageSetRemoteRxTime() and tdoaStorageSetTimeOfFlight
(3.2) Just to confirm. In TDoA3 mode, the anchor pair is random, isn't it?
Yes. Arrival time of packets is randomized. The packet is then matched with stored anchor information, this process is also (sort of) randomized.
Post Reply