Map(point-cloud) update

[Background]: We are building an app which allows users to continously update/extend the map of a large space.

[Finding]: Say, I already scanned a corner. Then the layout is changed a lot which made it hard for Placenote to recognize, but it still successfully localized. However, from the visualized point-cloud we can see obviously that the point-cloud of the old layout is there. Even if I extend the map by ‘StartSession(true)’, new feature points according to the new layout can be generated, but the old one cannot get eliminated!! This will cause a problem that the map size (number of feature point) will grew bigger and bigger in a long period of time.

Therefore, question:
1). I would like to confirm, is my findings correct or not?
2). If yes, is it possible to eliminate old point-cloud with the current SDK?
3). If not, is that something to be considered to have in future version?


Yes, map extension is just that, extension and not sort of ‘editing’.

An easy solution for you maybe to just create a new map, and transfer your anchor pose’s over for all your content. If you have localized in the old map, you should know the transform between the origin of the old map and the origin of the new map (which is the same as the current ARKit session!).

1 Like

Hi, @peej
Ok, I get what you mean.Thanks for that! But isn’t it so that it also means I would lose the ‘tracking’ on the point-cloud of OTHER content, eventhough I convert their pose to fit with the new coordinate?

And is there any plan in future to enbale such kind of ‘update’ of the point-cloud?

hey @clifflinmao, I would not render any content before you transition to new map. Once you think a map is too old:

  1. Receive localization status update
  2. Transfer content anchor poses from old map to new map (origin, 0,0,0).
  3. Call StartSession (create new map)
  4. Render content at new poses.

This should be instantaneous in users eyes. That should work for you?

1 Like

Thanks. I get the steps above for a ‘seemless’ transformation to a new map. But what I mean is a bit differnet. Say in my old map I have scanned 3 sperated places (3 point-clouds), say table A, B and C in my room, on each table I placed an object (e.g. a note). Now table A cannot be recognized because I changed its cover -> since I couldn’t only update the point-cloud of A, I need to create a new map. Then I follow the steps you mentioned: I relocalte at table B(as A cannot be recognized), transfer content anchor poses to the new map, and StarSession(create new map), now all the content are still in the right table, yes, but I lose the capability of relocalization on all the tables, unless I re-scan table A, B, C again. Do I get it right?

Yes you will have to re-scan Table A, B and C to be able to localize in those places again.
And for more context, a single map is a single point cloud, even if you walk further away to other Tables, it is all a single point cloud. That way we remain localized in the area between Table A and B and C.

1 Like

Got it. Thank you for the clarification.