In our project(Android mainly), we need to place many anchors in a large building (only 1 floor), the position of the anchors must be as accurate as possible (which means drifting is something we must avoid or reduce as much as possible!!). We would like to confirm the 'best practice' of how we can achieve the most accurate anchor-map.
According to the official document (https://learn.microsoft.com/en-us/azure/spatial-anchors/concepts/anchor-relationships-way-finding), there are two approaches for linking anchors (maybe the official term is 'Graphing').
Approach #1: Creates & save all anchors in one CloudSpatialAnchorSession.
Approach #2: Create & save an anchor -> Locate it -> Create & save a new one -> Locate it -> ...repeat step above...
Actually I found there is a 3rd approach: - Approach #3: User a single or multiple session to place & save anchors, then use another session to locate them one by one. (after it's done once, they are linked, and then locating one of them will show all).
Let's have a simple example, say we have a floor as below, there are 9 anchors to create (for 9 different corners) and link: from A to H.
Taking Approach #1 is like this:
Taking Approach #2 is like this:
Based on my experiment, I found for small area, Approach #1 works better. 'By better' I mean anchors stays at the original place without too much drifting. But with Approach #1, if you walk too far away, drifting is quite obvious. On the other hand, I think the drifting will be worse if you turn left or right. So my hypothesis for the best practice is this:
We device the whole take into 4 traces, each trace should be straight(without turning) and should not be too long. For each trace, we do Approach #1, after completing all traces, we link them up in a later session.
Please comments if this make sense, or is there any other recommendation for the best practice? Thanks.