Visual SLAM

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

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

Tracker 시작 / 종료

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

SlamActivity.java

@Override
protected void onResume() {
    ...
    trackerManager.startTracker(TrackerManager.TrackerMask.SLAM_TRACKER);
    ...
}

@Override
protected void onPause() {
    ...
    trackerManager.stopTracker();
    ...
}

맵 생성 시작 / 종료 / 저장

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

SlamActivity.java

public void onClick(View view) {
    switch (view.getId()) {
        ...
        case R.id.save_map:
            File dir = new File(getExternalCacheDir().getAbsolutePath() + "/MaxstAR/3dmap");
            if (!dir.exists()) {
                boolean result = dir.mkdirs();
            }
            String mapFileName = dir.getAbsolutePath() + "/" + mapFileNameEdit.getText().toString() + ".3dmap";
            SurfaceThumbnail surfaceThumbnail = trackerManager.saveSurfaceData(mapFileName);
            ...
    }
}

렌더링 옵션 설정

SampleRenderer.java

onSurfaceCreated() {
    ...
    if (trackerMask == TrackerManager.TrackerMask.SLAM_TRACKER) {
      backgroundRenderer.setRenderingOption(BackgroundRenderer.RenderingOption.FEATURE_RENDERER, BackgroundRenderer.RenderingOption.PROGRESS_RENDERER, BackgroundRenderer.RenderingOption.SURFACE_MESH_RENDERER, BackgroundRenderer.RenderingOption.AXIS_RENDERER);
    }
    ...
}

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

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