mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-03 01:50:24 +08:00
Tango refactoring (#534)
* Created general CameraMobile interface. Tango is now optional. Camera is disabled on visualizaion (battery saving). * Working android app on non-tango android phones (tested on x86_64 android emulator). * fixed typo * android: updated tango not available msg * android: fixed build with latest android sdk/ndk * Added ARCore limited support for pose and rgb streams. * Added AREngine support. Don't assert if depth size is not a modulo of rgb size. * Added ARCore shared camera support * android: fixed read/write runtime permissions for >=api23. arcore ndk: added feature point cloud. Fixed file sharing persmissions (>=api24 issue) * ARCore NDK: mapping with feature point cloud * android: Added post build strip command to reduce native library size * android: fixed some compilation issues * android: put back gtsam as default optimizer, manifest min api is dynamic based on cmake parameters * AREngine: min api 24 * android: Fixed build without AREngine * android: fixed not available libraries for API<24 * android: fixed build with old cmake versions * android: set arcore min api to 23 * android: fixed arengine error on start when not built with native arengine support * android: fixed tango camera permission for api>=23 * Added bionic android docker files * Fixed wrong 3D words projection when depth size is not an exact multiple of rgb size. DbViewer: fixed images size not correctly shown in label of the calibration. ImageView: fixed depth scale when depth size is not a multiple of rgb size * CameraMobile: added exact display rotation for local transform * DbViewer: fixed gravity link shown in constraint view, show full local transform matrix in camera calibration label * Android: fixed localization mode in visualization, fixed some tansitions between some UI states * Android: Hide stop button when HUD is hidden. Updated About years.
This commit is contained in:
@@ -1,10 +1,95 @@
|
||||
|
||||
option(WITH_TANGO "Include Tango support" ON)
|
||||
option(WITH_ARCORE "Include ARCore support" ON)
|
||||
option(WITH_ARENGINE "Include AREngine support" ON)
|
||||
option(DISABLE_LOG "Disable Android logging (should be true in release)" ON)
|
||||
option(DEPTH_TEST "Enable depth test on ARCore" OFF)
|
||||
|
||||
# Google Tango needs access to system shared
|
||||
# libraries (e.g. libbinder.so) that are not accessible
|
||||
# with android >=24
|
||||
IF(WITH_TANGO AND ${ANDROID_NATIVE_API_LEVEL} LESS 24)
|
||||
FIND_PACKAGE(Tango QUIET)
|
||||
IF(Tango_FOUND)
|
||||
MESSAGE(STATUS "Found Tango: ${Tango_INCLUDE_DIRS}")
|
||||
ENDIF(Tango_FOUND)
|
||||
ENDIF(WITH_TANGO AND ${ANDROID_NATIVE_API_LEVEL} LESS 24)
|
||||
|
||||
IF(WITH_ARCORE AND ${ANDROID_NATIVE_API_LEVEL} GREATER 22)
|
||||
FIND_PACKAGE(ARCore QUIET)
|
||||
IF(ARCore_FOUND)
|
||||
MESSAGE(STATUS "Found ARCore: ${ARCore_INCLUDE_DIRS}")
|
||||
ENDIF(ARCore_FOUND)
|
||||
ENDIF(WITH_ARCORE AND ${ANDROID_NATIVE_API_LEVEL} GREATER 22)
|
||||
|
||||
IF(WITH_ARENGINE AND ${ANDROID_NATIVE_API_LEVEL} GREATER 23)
|
||||
FIND_PACKAGE(AREngine QUIET)
|
||||
IF(AREngine_FOUND)
|
||||
MESSAGE(STATUS "Found AREngine: ${AREngine_INCLUDE_DIRS}")
|
||||
ENDIF(AREngine_FOUND)
|
||||
ENDIF(WITH_ARENGINE AND ${ANDROID_NATIVE_API_LEVEL} GREATER 23)
|
||||
|
||||
IF(NOT Tango_FOUND)
|
||||
SET(TANGO "//")
|
||||
ENDIF(NOT Tango_FOUND)
|
||||
IF(NOT ARCore_FOUND)
|
||||
SET(ARCORE "//")
|
||||
ENDIF(NOT ARCore_FOUND)
|
||||
IF(NOT AREngine_FOUND)
|
||||
SET(ARENGINE "//")
|
||||
ENDIF(NOT AREngine_FOUND)
|
||||
|
||||
CONFIGURE_FILE(CameraAvailability.h.in ${CMAKE_CURRENT_SOURCE_DIR}/jni/CameraAvailability.h)
|
||||
|
||||
|
||||
IF(DISABLE_LOG)
|
||||
ADD_DEFINITIONS(-DDISABLE_LOG)
|
||||
ENDIF(DISABLE_LOG)
|
||||
IF(DEPTH_TEST)
|
||||
ADD_DEFINITIONS(-DDEPTH_TEST)
|
||||
ENDIF(DEPTH_TEST)
|
||||
|
||||
MESSAGE(STATUS "--------------------------------------------")
|
||||
MESSAGE(STATUS "Android build info:")
|
||||
MESSAGE(STATUS " DISABLE_LOG = ${DISABLE_LOG}")
|
||||
MESSAGE(STATUS " DEPTH_TEST = ${DEPTH_TEST}")
|
||||
IF(Tango_FOUND)
|
||||
MESSAGE(STATUS " With Tango = YES")
|
||||
ELSEIF(NOT WITH_TANGO)
|
||||
MESSAGE(STATUS " With Tango = NO (WITH_TANGO=OFF)")
|
||||
ELSE()
|
||||
IF(${ANDROID_NATIVE_API_LEVEL} GREATER 23)
|
||||
MESSAGE(STATUS " With Tango = NO (ANDROID_NATIVE_API_LEVEL should be <= 23)")
|
||||
ELSE()
|
||||
MESSAGE(STATUS " With Tango = NO (tango not found)")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(ARCore_FOUND)
|
||||
MESSAGE(STATUS " With ARCore = YES")
|
||||
ELSEIF(NOT WITH_ARCORE)
|
||||
MESSAGE(STATUS " With ARCore = NO (WITH_ARCORE=OFF)")
|
||||
ELSE()
|
||||
IF(${ANDROID_NATIVE_API_LEVEL} LESS 23)
|
||||
MESSAGE(STATUS " With ARCore = NO (ANDROID_NATIVE_API_LEVEL should be >= 23)")
|
||||
ELSE()
|
||||
MESSAGE(STATUS " With ARCore = NO (ARCore not found)")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(AREngine_FOUND)
|
||||
MESSAGE(STATUS " With AREngine = YES")
|
||||
ELSEIF(NOT WITH_ARENGINE)
|
||||
MESSAGE(STATUS " With AREngine = NO (WITH_ARENGINE=OFF)")
|
||||
ELSE()
|
||||
IF(${ANDROID_NATIVE_API_LEVEL} LESS 24)
|
||||
MESSAGE(STATUS " With AREngine = NO (ANDROID_NATIVE_API_LEVEL should be >= 24)")
|
||||
ELSE()
|
||||
MESSAGE(STATUS " With AREngine = NO (AREngine not found)")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
MESSAGE(STATUS " ANDROID_NATIVE_API_LEVEL = ${ANDROID_NATIVE_API_LEVEL}")
|
||||
MESSAGE(STATUS " ANDROID_COMPILER_FLAGS_RELEASE = ${ANDROID_COMPILER_FLAGS_RELEASE}")
|
||||
MESSAGE(STATUS " ANDROID_TOOLCHAIN_PREFIX = ${ANDROID_TOOLCHAIN_PREFIX}")
|
||||
|
||||
MESSAGE(STATUS "DISABLE_LOG = ${DISABLE_LOG}")
|
||||
|
||||
IF(DISABLE_LOG)
|
||||
SET(ANDROID_DEBUGGABLE false)
|
||||
@@ -29,7 +114,8 @@ endif()
|
||||
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/AndroidManifest.xml.in"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/AndroidManifest.xml")
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/AndroidManifest.xml"
|
||||
@ONLY)
|
||||
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/AndroidManifest.xml"
|
||||
|
||||
Reference in New Issue
Block a user