MAXST sample을 빌드 해본 후 제가 앱을 하나 만들어 보려고 합니다
new project로 새로운 앱을 제가 개발해 보고 싶은데
maxst sdk에 대한 사용을 어떻게 하는지 처음부터 알려주실 수 있나요?
open module setting에서 jar dependency 추가하는건가요?
안드로이드 스튜디오의 라이브러리 참조 기능을 잘 모르니 자세히 답변 부탁드립니다 ㅠㅠ...
안녕하세요.
MaxstAR SDK 를 Android Studio에서 개발하기 위해서는 다음 문서를 먼저 참조해주세요.
https://developer.maxst.com/MD/doc/andr/setup
자세한 사용방법이 설명되어 있으며 추가로 궁금한 사항이 있으시면 코멘트 남겨주세요.
감사합니다.
- MAXST support team
네. 첨부해주신 링크는 이미 참고 했었는데요,
sample app을 빌드하는 예시는 나와있는데 제가 직접 앱을 만들기 위해서 어떤 dependency를 어떤 과정으로 참조시켜야 하는지를 잘 모르겠습니다.
sample app에선 maxst sdk를 사용하기 위한 세팅이 모두 되어 있는데 아예 new project로 새로운 프로젝트를 다른 디렉토리에서 만들 때 어떻게 sdk를 참조해야 하는지가 궁금합니다.
Android Studio 는 기본적으로 Gradle Build 를 사용합니다.
Android Studio 에서 새로운 프로젝트로 MaxstAR SDK 를 import 하려면 다음 순서대로 진행하시면 됩니다.
1. Android Studio 프로젝트 생성
2. 다운로드 받은 SDK Android 버전에서 Build 폴더(,Jar, .so)를 복사하여 새로 생성한 프로젝트에 복사
3. 프로젝트 내 앱 폴더에서 build.gradle을 다음과 같이 수정
def Lib_Path= '../Build' << build.gradle 경로로부터 SDK를 복사한 위치로의 상대 경로
android {
sourceSets.main { << android 범위 안에 추가
jni.srcDirs = []
jniLibs.srcDir "$Lib_Path"
}
}
dependencies { << dependencies 범위 안에 추가
compile files("$Lib_Path/VideoPlayer.jar")
compile files("$Lib_Path/MaxstAR.jar")
compile files("$Lib_Path/com.osterhoutgroup.api.ext.jar")
}
4. Android Studio Sync
추가로 궁금한 사항이 있으시면 코멘트 남겨주세요.
감사합니다.
- MAXST support team
네 잘 적용 했습니다 감사합니다.
Instant tracker로 오브젝트를 증강시키고, 좌우로 돌리거나 해서 증강된 사물이 사라져도
다시 그 각도로 돌아왔을 때, 그 자리에 있도록
즉, 카메라를 움직여도 따라오지 않고 맨 처음 할당된 위치에서 계속 증강되어있게 하고 싶으면 어떻게 처리를 해야할까요?
안녕하세요
인스턴트 트래커에서 학습한 뒤에 다시 학습 위치로 돌아갔을 경우에 추적되는 콘텐츠의 위치가 변경된다는 말씀이신가요?
정확한 내용 이해를 위해 화면 캡쳐를을 부탁드립니다.
감사합니다.
- MAXST support team
네 그렇습니다.
이렇게 맨 처음에 증강시킨 위치와 크기 그대로 유지하면서 화면을 돌렸을 때
이렇게 따라오지 않게 하고 싶습니다.
참고로 startbutton과 stopbutton은 임의로 없앴고 그 안에 있던 처리 내용들은 onResume과 onPaused에 옮겼습니다
MaxstAR SDK 는 기본적으로 특징(Feature)이 풍부하게 존재하는 곳에서 인식/추적이 잘 되도록 설계되어 있습니다.
그런데 보내주신 화면에서는 무늬가 없는 바닥면이 많이 보이는것으로 보아, 추적할때 특징이 부족하여, 학습 위치를 계산하는데 오류가 발생하는 것으로 보여집니다.
인스턴트 트래커의 타겟을 설정할 때는 패턴이 존재하는 곳을 위주로 사용해야만 합니다.
감사합니다.
- MAXST support team
Instant tracker는 평면인 곳을 인식해서 오브젝트를 증강시키는 기능이 아닌가요?
인스턴트 트래커는 패턴이 있는 임의의 공간에 오브젝트를 증강시키는 기능을 말합니다.
패턴이 없는 하얀 바닥면을 인식하는것은 불가능하고, 텍스쳐가 있는 공간에 사용해야만 합니다.
감사합니다.
- MAXST support team
궁극적으로 원하는 것은, Instant tracker를 실행하면
맨 처음에 트래킹 된 위치에 물체를 증강시키고, 카메라를 휙 돌리거나 어떤 동작을 취해도 그냥 그 자리에 계속 있었으면 좋겠습니다..
다른 곳을 비추면 그곳에서 또 트래킹을 해서 그곳에 증강을 시키는 기능을 좀 끄고 싶은데
코드상에서 어떤 부분을 고쳐야 할지 잘 모르겠습니다.. 도움좀 부탁드립니다
InstantTrackerRenderer에서 onDrawFrame 부분이 반복적으로 실행이 되는데,
이곳에서 TrackingResult, TrackingState, Trackable등 다양한 변수들이 있는것같고...
맨 처음에 물체를 증강시키기로 결정한 위치의 정보를 어딘가에 저장해 두거나 한번 assign이 되면 그 이후론 assign 안되게 하면 증강시키고자 하는 오브젝트의 pose matrix를 계속 그 위치에 증강시키게 하면 될거같은데..... 감이 잘 안잡히네요
안녕하세요. 답변이 늦었습니다.
원하시는 기능은 안드로이드의 Rotation vector 센서와 가속 센서를 이용하면 어느 정도 보정은 가능합니다.
하지만 정확히 언급하신 결과를 얻기는 힘듭니다. Rotation에 대한 정보는 정확하지만 Position 이동에 대한 보정은 힘들기 때문입니다.
평면을 찾아내고 강력한 추적을 하는 것은 안드로이드 최신 폰에서 구글 ARCore 를 이용해 구현할 수 있습니다.
저희 또한 ARCore 만큼의 성능을 내기 위해 연구하고 있습니다.
감사합니다.
- Maxst support team