Object Tracker

Visual SLAM에서 생성, 저장한 맵을 불러오고 해당 맵 위로 3D 콘텐츠를 띄워줍니다.

Tracker 시작 / 종료
Tracking 정보 이용
맵 파일 설정
맵 파일 추가 / 교체

Tracker 시작 / 종료

맵을 로딩한 후 Tracker를 시작 / 종료하려면 다음 코드를 참고하세요.

ObjectTrackerActivity.java

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

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

Tracking 정보 이용

Tracking 정보를 이용하려면 다음 코드를 참고하세요.

ObjectTrackerRenderer.java

@Override
public void onDrawFrame(GL10 gl) {
    ...
    TrackingResult trackingResult = TrackerManager.getInstance().getTrackingResult();
    if (trackingResult.getCount() > 0) {
        Trackable trackable = trackingResult.getTrackable(0);
        texturedCube.setTransform(trackable.getPoseMatrix());
        texturedCube.setTranslate(0, 0, -0.1f);
        texturedCube.setScale(0.4f, 0.4f, 0.2f);
        texturedCube.setProjectionMatrix(projectionMatrix);
        texturedCube.draw();
    }
}

맵 파일 설정

addTrackerData ()를 호출해서 맵 파일을 등록하고 loadTrackerData ()를 호출하면 공간을 Tracking 할 수 있는 상태가 됩니다. 맵 파일을 설정하는 방법은 다음 코드를 참고하세요.

ObjectTrackerActivity.java

AdapterView.OnItemClickListener onItemClickListener = new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        File mapFile = (File) view.getTag();
        trackerManager.addTrackerData(mapFile.getAbsolutePath(), false);
        trackerManager.loadTrackerData();
    }
};

맵 파일 추가 / 교체

  1. Documentation > Map Manager를 이용하여 맵 파일을 생성합니다.

  2. 전송 받은 맵 파일을 원하는 경로에 복사합니다. assets 폴더에 복사하는 경우와 외부 저장소에 복사하는 경우 맵을 로딩하는 방법이 다릅니다.

  • assets 폴더에 복사하는 경우, 상대 경로와 assets 폴더의 파일이라는 것을 나타내도록 두번째 파라미터를 true로 설정합니다.
TrackerManager.getInstance().addTrackerData("MaxstAR/ImageTarget/Bricks.2dmap", true);
  • 외부 저장소에 복사하는 경우 전체 경로를 입력하고 두번째 파라미터를 false로 설정합니다.
TrackerManager.getInstance().addTrackerData(mapFile.getAbsolutePath(), false);
  1. addTrackerData () 호출 후 loadTrackerData ()를 반드시 호출해야 합니다.