Visual SLAM

3D 공간을 학습하여 맵을 생성합니다.

Tracker 시작 / 종료
맵 생성 시작 / 종료 / 저장
렌더링 옵션 설정

Tracker 시작 / 종료

Tracker를 시작 / 종료하려면 다음 코드를 참고하세요.

SlamViewController.mm

- (void)resumeAR
{
    ...
    TrackerManager::getInstance()->startTracker(SLAM_TRACKER);
}

- (void)pauseAR
{
    TrackerManager::getInstance()->stopTracker();
    ...
}

맵 생성 시작 / 종료 / 저장

  1. 맵 생성을 시작하기 위해서는 다음 코드를 참고하세요.
TrackerManager::getInstance()->findSurface();
  1. 맵 생성을 중지하기 위해서는 다음 코드를 참고하세요.
TrackerManager::getInstance()->quitFindingSurface();
  1. 맵 저장은 추적중인 상태에서만 가능합니다. 생성한 맵 데이타를 파일에 저장할 때, 파일 저장 위치는 다음 코드를 참고하세요.

SlamViewController.mm

- (NSString *) getFilePath
{
 NSArray *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *contentsPath = [[NSString alloc] initWithFormat:@"%@/3DMap", [documentPath objectAtIndex:0]];
 
 NSFileManager *filemanager = [NSFileManager defaultManager];
 BOOL isDir;
 BOOL exists = [filemanager fileExistsAtPath:contentsPath isDirectory:&isDir];

 if(exists == NO)
 {
  [filemanager createDirectoryAtPath:contentsPath withIntermediateDirectories:YES attributes:nil error:NULL];
 }
 
 NSString *filePath = [NSString stringWithFormat:@"%@/%@", contentsPath, [self GetDateForFileName]];
 return filePath;
}

렌더링 옵션 설정

SlamViewController.mm

- (void)viewDidLoad {
    ...
    backgroundRenderer->setRenderingOption(FEATURE_RENDERER|PROGRESS_RENDERER|SURFACE_MESH_RENDERER);
    ...
}

특징점, SLAM 초기화 진행률, 표면 매쉬 정보는 옵션 설정으로 표시 유무를 결정할 수 있습니다.

옵션 설정값은 BackgroundRenderer.RenderingOption enum을 참고하세요.