我正在使用Tango数据集创建网格,试图支持华硕Zenfone AR。我的应用程序已在Lenovo Phab 2 Pro上正常运行。
第一步是致电Tango3DR_AreaDescription_createFromDataset
创建Tango3DR_AreaDescription
。我在没有在第二个参数中指定loop_closure_database_path
来调用函数:
Tango3DR_Status res = Tango3DR_AreaDescription_createFromDataset(dataset_path.c_str(),
nullptr, //loop_closure_database_path
&area_description_raw,
progress_logger,
&num_api_calls);
Zenfone AR在此功能中崩溃,可能与此logcat行有关:
A/tango: loop_closure_file_reader_disk.cc:186 Check failed: generic::DirectoryExists(loop_closure_files_path) Provided root path for loop-closure files /sdcard/config does not exist.
如果我为loop_closure_database_path
指定一个空的(但现有的)目录,我会遇到类似的崩溃:
A/tango: loop_closure_file_reader_disk.cc:293 Check failed: generic::DirectoryExists(descriptor_sub_path) Path for feature-descriptor type /sdcard/testing/lens_invariant_ocvfreak does not exist.
有趣的是,我发现我的Phab 2 Pro实际上有一个名为/sdcard/config
的目录,包括各种文件和lens_invariant_ocvfreak
子目录。但是,我的华硕Zenfone AR上没有此目录。
我能做些什么才能让这个工作? tango_3d_reconstruction.h
中的文档说可以从Tango开发者网站下载循环闭包数据库,但我无法在任何地方找到它。我不完全确定循环闭包数据库究竟应该做什么,但是应该有一种方法来管理它,不正确吗?