How Crazyflie choose a LPSAnchor to communicate

All discussions related to the Loco Positioning system
Post Reply
alexpic
Beginner
Posts: 13
Joined: Thu Sep 28, 2017 9:04 am

How Crazyflie choose a LPSAnchor to communicate

Post by alexpic »

Hi everybody :)
i'm interested to the scheduling process of the Crazyflie, so the process in which the drone choose a LPS Anchor to communicate instead of another one; so my questions are:

-How the Crazyflie decide to communicate with an LPS Anchor compared to another one in the TWR protocol?
-Where can i find in the Crazyflie firmware (or in LPS Node firmware) the parts relative to the precedent question?

I'm not sure that this is the right section of the forum (sorry if it isn't) :)
Thank's a lot for your help!!!
arnaud
Bitcraze
Posts: 2538
Joined: Tue Feb 06, 2007 12:36 pm

Re: How Crazyflie choose a LPSAnchor to communicate

Post by arnaud »

Hi,
I moved the topic in the LPS forum which seems to be a better fit.

The current implementation is communicating with all the anchor in a round-robin manner. Each time a ranging is initialized, the next anchor is selected: https://github.com/bitcraze/crazyflie-f ... #L250-L252

On a side note: one nice property of TWR is that there is not hard limit in the number of anchors and it is possible to be much more clever in the anchor selection by changing the lines I linked. For example the closest anchor could be selected instead of all of them, this would allow to setup systems where not all anchor are ideally placed for all position. For instance to rig multiple rooms.
alexpic
Beginner
Posts: 13
Joined: Thu Sep 28, 2017 9:04 am

Re: How Crazyflie choose a LPSAnchor to communicate

Post by alexpic »

Hi Arnaud! :)
Thanks for your reply (and sorry for the wrong section)!!
The current implementation is communicating with all the anchor in a round-robin manner. Each time a ranging is initialized, the next anchor is selected: https://github.com/bitcraze/crazyflie-f ... #L250-L252
...
the closest anchor could be selected instead of all of them, this would allow to setup systems where not all anchor are ideally placed for all position. For instance to rig multiple rooms.
So, there isn't an order, simply the ranging happens with the Anchor 0, then Anchor 1 and so on, right?
Because, my interest is to combine the scheduling process with an estimation of the communication channel (in terms of power), in which the drone could communicate with the Anchor with a good channel (and pass away the Anchor with a bad communication); this is similar to what you tell me, in fact may be interesting to combine your idea with my idea!

Another question: is it right to say that the Anchors in TWR protocol are simpler compared to the TDoA protocol?
Because, as i understand, in TWR the Anchors answer to the Crazyflie and stop (so, the crazyflie manages both communication and ranging), while in TDoA (that as i understand, is a unidirectional communication) the Anchors manage the communication for the ranging and the Crazyflie computes the ranging.
Thanks a lot for your reply!!!! :D
arnaud
Bitcraze
Posts: 2538
Joined: Tue Feb 06, 2007 12:36 pm

Re: How Crazyflie choose a LPSAnchor to communicate

Post by arnaud »

Yes you are right, in TWR mode the anchors are simple beacon that only answers to request and all scheduling is done by the Crazyflie. In TDoA mode the anchors have to handle communication synchronization with each-other.

There is a documented way to estimate the quality of the channel, most importantly to find if we are in direct line of sight condition. I never manage to get this algorithm to give proper results so I am very interested to hear about your progress in estimating the channel quality.
alexpic
Beginner
Posts: 13
Joined: Thu Sep 28, 2017 9:04 am

Re: How Crazyflie choose a LPSAnchor to communicate

Post by alexpic »

Hi!
Thanks for all! Now for me it's all more clear!
I'll put here every news about it!
Thanks again! Have a nice weekend!
Alex
Post Reply