2016-10-18 3 views
0

Tango로 개발하는 동안 다음 문제가 발생하며 올바른 해결 방법인지 여부를 알지 못합니다. 다른 Tango 세션에서 TangoPointCloudData를 재사용 할 수 없음

(짧은) 포인트 클라우드 (TangoPointCloudData 객체)를 직렬화하고 나중에 사용할 수 있도록 파일 (TangoPoseData 객체)에 배치하려고합니다. 장면 뒤에서 마술 처리를하여 객체의 좌표 (x와 y)를 계산 한 다음 탱고를 다시 연결하고 x, y에 3D 객체를 표시합니다.

프레임 쌍 SOS 및 FD (프레임 장치)로 Tango 개체를 초기화하고 있습니다.

TangoSupport.calculateRelativePose(
       0.0, 
       TangoPoseData.COORDINATE_FRAME_CAMERA_COLOR, pointCloud.timestamp, 
       TangoPoseData.COORDINATE_FRAME_CAMERA_DEPTH); 

내가지고있어 매우 비 정보 로그는 다음과 같습니다 :

com.google.atap.tangoservice.TangoErrorExceptioncom.google.atap.tangoservice.Tago.throwTangoExceptionIfNeeded(Tango.java:958) 
com.projecttango.tangosupport.TangoSupport.calculateRelativePose(TangoSupport.java:231) 
나는 새로운 탱고 세션에 대한 최신 TangoPointCloudData + TangoPoseData이 라인을 호출하고있을 때

는 예외가 발생합니다

그게 전부입니다.

내가 개발하고있는 탱고 코어 버전은 1.44.2016.09.19-wasat-release입니다.

데이터를 올바르게 저장하지 않았거나 코드 어딘가에서 망가 졌거나, Tango를 올바르게 초기화하지 않았거나, 새로운 Tango 세션에서 이전 xyzIj 객체를 사용하려고했기 때문에 문제가 발생할 수 있습니다. 나는 모든 것을 다시 검사했다. (마지막 문제는 (?) 일 수있다.) 잘못된 것을 발견하지 못했고, 그래서 내 스레드를 훌륭한 StackOverflow 커뮤니티에 연결하려고 시도했다.

답변

1

메소드 TangoSupport.calculateRelativePose에 전달한 두 번째 타임 스탬프 (targetTimestamp)는 현재 Tango 세션의 유효한 시간 스탬프 여야합니다. 올바르게 이해하면 타임 스탬프 xyzIj.timestamp는 이전의 Tango 세션 (?)에서 가져온 것입니다.

더 일반적으로 탱고 장치는 이전 세션에서 얻은 영역 지식을 기본적으로 저장하지 않습니다. 이전 Tango 세션의 결과를 현재 세션에 삽입하려면 학습 된 영역을로드하여 장치를 자동으로 재배치 (영역 학습)하거나 사용자가 수동으로 결과를 새 Tango 참조 프레임과 정렬해야합니다.