почему я не могу локализоваться в Google Tango ADF (от описания области до начала обслуживания я получаю только ИНИЦИАЛИЗИРУЮЩУЮ позу, но не ДЕЙСТВИТЕЛЬНЫХ позы)

в моем android-ndk-app я воспроизвел конфигурацию и поставил обратный вызов, аналогичный образцу cpp_basic_examples / hello_area_description из https://github.com/googlesamples/tango-examples-c

я делаю конфигурацию:

...
TangoConfig_setBool( config, "config_enable_learning_mode", true )
TangoConfig_setString( config, "config_load_area_description_UUID", ADFId.c_str() );
...

затем я подключаю обратный вызов ко всем 3 видам пар кадров:

...
TangoCoordinateFramePair pairs[3] = {
    {TANGO_COORDINATE_FRAME_START_OF_SERVICE,
     TANGO_COORDINATE_FRAME_DEVICE},
    {TANGO_COORDINATE_FRAME_AREA_DESCRIPTION,
     TANGO_COORDINATE_FRAME_DEVICE},
    {TANGO_COORDINATE_FRAME_AREA_DESCRIPTION,
     TANGO_COORDINATE_FRAME_START_OF_SERVICE}
};
TangoService_connectOnPoseAvailable( 3, pairs, onPoseAvailable )
...

и в onPoseAvailable ():

...
if ( pair.base == TANGO_COORDINATE_FRAME_AREA_DESCRIPTION )
{
    if ( pair.target == TANGO_COORDINATE_FRAME_START_OF_SERVICE )
    {
        LOGVI( "\nGOOGLE TANGO POSE ADF TO SOS (CORRECTION)");
        // we got a pose correction
        isRelocalized = (poseData->status_code == TANGO_POSE_VALID);
    }
    else if ( pair.target == TANGO_COORDINATE_FRAME_DEVICE )
    {
        LOGVI( "\nGOOGLE TANGO POSE ADF TO DEVICE");
        // apply pose as relative to learned Area
    }
}
else if( pair.base == TANGO_COORDINATE_FRAME_START_OF_SERVICE )
{
    if ( pair.target == TANGO_COORDINATE_FRAME_DEVICE )
    {
        LOGVI( "\nGOOGLE TANGO POSE SOS TO DEVICE");
        // apply pose as relative to Start-Of-Service pose
    }
}
...

все выглядит хорошо на выходе консоли, все коды возврата ошибок - TANGO_SUCCESS

но в выводе консоли я получаю «GOOGLE TANGO POSE ADF TO SOS (CORRECTION)» только один раз с PoseData-> status_code TANGO_POSE_INITIALIZING, но никогда со статусом TANGO_POSE_VALID.

тот же adf локализуется в приложении Google «ADF Inspector» менее чем за секунду в той же позиции, которую я тестировал с помощью своего приложения.

примечание: я создал ADF, который не может переместиться в tango explorer. Между тем я подозреваю, что проблема "доступ к adf из другого приложения", но не нашел решения в документации. я сделал "android.intent.action.REQUEST_TANGO_PERMISSION" с "ADF_LOAD_SAVE_PERMISSION", но этого, похоже, недостаточно, чтобы получить диалоговое окно, позволяющее пользователю разрешить загрузку ADF из другого приложения.


person robert liebo    schedule 13.09.2016    source источник


Ответы (1)


У меня такая же проблема, если ваше приложение находится в AreaLearningMode = ON. Убедитесь, что приложение не находится в LearningMode.

person imflash217    schedule 14.12.2016