HoloLens Unity Project에서 AR을 구현하기 위해 Vuforia 대신 AR Toolkit 포팅하고 임시 테스트 확인해보기

AR Toolkit porting on Hololens

ezgif-7-4bc8067b369b

(손이 큐브의 마커 이미지를 조금 가려져서 그렇지 실제로는 매우 잘 찾음)

자세한 내용은 pyotel 의 git repo참조

일단은 예제 Cube Detection을 불러온 모습.

잘 동작하는 모습을 보여준다.

Environment Settings

일단 왜 인지는 모르지만 그냥 해당 내용을 따라하면 잘 안된다.

다음과 같이 설정해야 한다.

  1. 원하는 위치에 git clone git@github.com:pyotel/HoloLensARToolKit.git
  2. Unity Hub를 통해 새로운 3D 프로젝트를 만든다. 버전은 Unity 2018.3.1.f1
  3. Unity Hub의 설치탭으로 들어가 2018.3.1.f1버전의 모듈 추가를 한다. Visual Studio 2017Universal Windows Platform Build Support를 체크하고 다운받는다.
  4. 프로젝트를 열고, clone한 repo의 ARToolKitUWP.unitypackage를 프로젝트에 모두 임포트한다.
  5. 또한 clone한 repo의 HoloLensARSample폴더, 즉 이곳에 위치한 파일들 중 .gitignorereadme.md를 제외한 모든 폴더를 복사한다.
  6. 그 후, 새로 만든 프로젝트가 위치한 폴더를 열고, 5에서 복사한 폴더를 붙혀넣기 한다. 만약 4에서 임포트가 정상적으로 되었다면 22개의 파일이 중복된다고 나올 것이다. 그럼 덮어쓰기를 누른다.
  7. 다시 Unity Editor로 돌아오면, 6에서 붙혀넣기한 파일들의 임포트 작업이 진행된다.
  8. 상단 패널에서 Edit > Project Settings > Player클릭
  9. 중간에 마이크로소프트 아이콘을 클릭해 Universal Windows Platform Settings로 들어간다.
  10. Publishing Settings클릭하고, 하단에 내용이 아래와 같은지 확인 image
  11. 이번에는 XR Settings로 이동, 아래와 같이 설정 image ! 참고 !> 11번을 진행하지 않으면 다음과 같이 창모드로 빌드되는 현상이 발생함 image
  12. 준비는 끝났음. 에디터에서 Sample/HoloLensARToolKitCube.unity를 불러온다.
  13. File > Build Settings클릭 후 Add Open Scenes버튼 클릭, Platform을 Universal Windows Plartform으로 변경 후 빌드한다. 빌드 설정은 아래와 같이 해준다. image
  14. 빌드가 완료되면 해당 폴더에 들어가서 *.sln 파일을 누릅니다.
  15. Visual Studio로 열어준 다음, 탑 툴바에서 Debug에서 Release로 바꿉니다.
  16. 옆의 항목을 ARM에서 x86으로 바꿔줍니다.
  17. HoloLens를 개발 PC와 USB로 연결합니다.
  18. 대상을 로컬 컴퓨터에서 Device로 바꿔줍니다.
  19. Debug > Start without debugging 을 눌러줍니다.
  20. 성공!

Problem

20200325_160516_HoloLens

일단 잘 되긴 한다. 프레임도 잘 나오고 나름 좋은듯.

그러나 발견한 큰 문제점 2가지가 있다.

  • AR ToolKit이 PC환경에서 동작하지 않음. 결과를 보려면 빌드 후 확인해야함
  • Offset이 심한편인듯. 멀리서 물체를 볼 수록 해당 Offset이 심해짐

Future work

  • PC 에디터상에서도 바로 확인이 가능하도록 AR ToolKit 라이브러리 수정
  • Tracking을 하지 않고, 인식 하면 소환한 다음 더이상 찾지 않도록 수정