iOS best practices for only tracking long recordings

classic Classic list List threaded Threaded
2 messages Options
AP
Reply | Threaded
Open this post in threaded view
|

iOS best practices for only tracking long recordings

AP
I am working on a project recording movement in an irregular outdoor space. I am doing 20+ minute recordings on iOS in a rugged, outdoor area with the phone attached to a person.

I am interested in a reliable and robust track without any drift, but I do not need much in terms of 3D scan results. I need just enough reference geometry to align multiple tracks together and align them to a photogrammetry scan of the same region. In the end I am taking the motion data into VFX tools (Blender -> Unreal Engine).

I have been using some of the basic ARKit-based apps, but I have been having issues with crashing and lost data, overheating etc. It occurred to me that RTAB-Map may be just the tool.

I have been testing the various settings and reading documentation but I was wondering if anyone could point me to best practices for this use case? Ideally biasing towards lowest possible RAM and performance, battery etc. impacts while capturing, with a reliable offline post-processing stage.

Do you have any recommended best practices for this use case based on the iOS app on the App Store?
Reply | Threaded
Open this post in threaded view
|

Re: iOS best practices for only tracking long recordings

matlabbe
Administrator
Hi,

To limit to maximum the RAM usage of the app (for longer scanning sessions), here some settings that can be changed:

 * Point Cloud Density -> Very Low
 * Point Size -> Can be increased (e.g. 30) to better see the cloud
 * Mapping -> Update Rate -> Set 0.5 Hz if you don't move fast or if you don't care having some holes in the resulting mesh
 * Mapping -> Max Features Extracted (Vocabulary) -> Can be reduced (e.g., 200) to decrease visual vocabulary size
 * Mapping -> Database in Memory -> Make sure this is disabled (default)

By clicking the "Eye" bottom right button in the main view, set rendering mode to Point Cloud instead of Texture Mesh or Mesh.

When you stop scanning, don't click on "Only Optimize" or "Yes" options, click on "Save First".

I would then recommend to do post-processing using RTAB-Map Desktop app (File -> Export 3D Clouds...).

After doing small tests here with these parameters, the RAM is still increasing almost 1 MB every 2 sec. With some small code modifications, we could save significantly even more RAM. With Android app, we can launch a "trajectory" mode that will show only the trajectory so far without any 3D rendering. I could check to bring that mode on iOS app. I created an issue about that.

cheers,
Mathieu