CameraK4A: added finding lib on linux

This commit is contained in:
matlabbe
2019-07-10 12:34:13 -04:00
parent 3c7719f6d8
commit 0973f48b2c
6 changed files with 65 additions and 29 deletions
+15 -7
View File
@@ -325,10 +325,18 @@ IF(WITH_K4W2 AND WIN32)
ENDIF(WITH_K4W2 AND WIN32)
IF(WITH_K4A)
FIND_PACKAGE(K4A QUIET)
IF(K4A_FOUND)
MESSAGE(STATUS "Found Kinect for Azure: ${K4A_INCLUDE_DIRS}")
ENDIF(K4A_FOUND)
IF(WIN32)
FIND_PACKAGE(K4A QUIET)
ELSE()
FIND_PACKAGE(k4a QUIET)
FIND_PACKAGE(k4arecord QUIET)
IF(NOT (k4a_FOUND AND k4arecord_FOUND))
SET(k4a_FOUND FALSE)
ENDIF(NOT (k4a_FOUND AND k4arecord_FOUND))
ENDIF()
IF(k4a_FOUND)
MESSAGE(STATUS "Found Kinect for Azure: ${k4a_INCLUDE_DIRS}")
ENDIF(k4a_FOUND)
ENDIF(WITH_K4A)
# IF PCL depends on OpenNI2 (already found), ignore WITH_OPENNI2
@@ -648,10 +656,10 @@ IF(NOT KinectSDK2_FOUND)
ELSE()
SET(CONF_DEPENDENCIES ${CONF_DEPENDENCIES} ${KinectSDK2_LIBRARIES})
ENDIF()
IF(NOT K4A_FOUND)
IF(NOT k4a_FOUND)
SET(K4A "//")
ELSE()
SET(CONF_DEPENDENCIES ${CONF_DEPENDENCIES} ${K4A_LIBRARIES})
SET(CONF_DEPENDENCIES ${CONF_DEPENDENCIES} ${k4a_LIBRARIES})
ENDIF()
IF(NOT OpenNI2_FOUND)
SET(OPENNI2 "//")
@@ -1012,7 +1020,7 @@ ELSE()
MESSAGE(STATUS " With Kinect for Windows 2 = NO (Kinect for Windows 2 SDK not found)")
ENDIF()
IF(K4A_FOUND)
IF(k4a_FOUND)
MESSAGE(STATUS " With Kinect for Azure = YES (License: MIT)")
ELSEIF(NOT WITH_K4A)
MESSAGE(STATUS " With Kinect for Azure = NO (WITH_K4A=OFF)")
+6 -1
View File
@@ -14,6 +14,11 @@ IF (K4A_INCLUDE_DIR AND K4A_LIBRARY AND K4ARECORD_LIBRARY)
SET(K4A_FOUND TRUE)
SET(K4A_INCLUDE_DIRS ${K4A_INCLUDE_DIR})
SET(K4A_LIBRARIES ${K4A_LIBRARY} ${K4ARECORD_LIBRARY})
# Compatibility with linux names
SET(k4a_LIBRARIES ${K4A_LIBRARIES})
SET(k4a_INCLUDE_DIRS ${K4A_INCLUDE_DIRS})
SET(k4a_FOUND ${K4A_FOUND})
ENDIF (K4A_INCLUDE_DIR AND K4A_LIBRARY AND K4ARECORD_LIBRARY)
IF (K4A_FOUND)
@@ -26,4 +31,4 @@ ELSE (K4A_FOUND)
IF (K4A_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find K4A (Kinect for Azure SDK)")
ENDIF (K4A_FIND_REQUIRED)
ENDIF (K4A_FOUND)
ENDIF (K4A_FOUND)
@@ -1,5 +1,5 @@
/*
Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
Copyright (c) 2010-2019, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -55,7 +55,7 @@ public:
virtual bool isCalibrated() const;
virtual std::string getSerial() const;
void setIRDepthFormat(bool enabled) {ir_ = enabled;}
void setIRDepthFormat(bool enabled);
protected:
virtual SensorData captureImage(CameraInfo * info = 0);
@@ -64,13 +64,13 @@ private:
void close();
private:
int deviceId_;
std::string fileName_;
#ifdef RTABMAP_K4A
void* playbackHandle_;
void* transformationHandle_;
CameraModel model_;
int deviceId_;
std::string fileName_;
bool ir_;
#endif
+16 -8
View File
@@ -21,7 +21,7 @@ SET(SRC_FILES
camera/CameraFreenect2.cpp
camera/CameraImages.cpp
camera/CameraK4W2.cpp
camera/CameraK4A.cpp
camera/CameraK4A.cpp
camera/CameraOpenni.cpp
camera/CameraOpenNI2.cpp
camera/CameraOpenNICV.cpp
@@ -219,16 +219,24 @@ IF(KinectSDK2_FOUND)
)
ENDIF(KinectSDK2_FOUND)
IF(K4A_FOUND)
IF(k4a_FOUND)
SET(INCLUDE_DIRS
${INCLUDE_DIRS}
${K4A_INCLUDE_DIRS}
${k4a_INCLUDE_DIRS}
)
SET(LIBRARIES
${LIBRARIES}
${K4A_LIBRARIES}
)
ENDIF(K4A_FOUND)
IF(WIN32)
SET(LIBRARIES
${LIBRARIES}
${k4a_LIBRARIES}
)
ELSE()
SET(LIBRARIES
${LIBRARIES}
k4a::k4a
k4a::k4arecord
)
ENDIF()
ENDIF(k4a_FOUND)
IF(RealSense_FOUND)
SET(INCLUDE_DIRS
+21 -8
View File
@@ -1,5 +1,5 @@
/*
Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
Copyright (c) 2010-2019, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -52,26 +52,27 @@ CameraK4A::CameraK4A(
int deviceId,
float imageRate,
const Transform & localTransform) :
Camera(imageRate, localTransform),
deviceId_(deviceId)
Camera(imageRate, localTransform)
#ifdef RTABMAP_K4A
, playbackHandle_(NULL),
,playbackHandle_(NULL),
transformationHandle_(NULL),
deviceId_(deviceId),
ir_(false)
#endif
{
UERROR("CameraK4A: Live camera stream is not yet supported, only recorded mkv files are.");
}
CameraK4A::CameraK4A(
const std::string & fileName,
float imageRate,
const Transform & localTransform) :
Camera(imageRate, localTransform),
deviceId_(-1),
fileName_(fileName)
Camera(imageRate, localTransform)
#ifdef RTABMAP_K4A
, playbackHandle_(NULL),
,playbackHandle_(NULL),
transformationHandle_(NULL),
deviceId_(-1),
fileName_(fileName),
ir_(false)
#endif
{
@@ -84,6 +85,7 @@ CameraK4A::~CameraK4A()
void CameraK4A::close()
{
#ifdef RTABMAP_K4A
if (playbackHandle_ != NULL)
{
k4a_playback_close((k4a_playback_t)playbackHandle_);
@@ -97,7 +99,14 @@ void CameraK4A::close()
k4a_device_stop_cameras(device);
k4a_device_close(device);
*/
#endif
}
void CameraK4A::setIRDepthFormat(bool enabled)
{
#ifdef RTABMAP_K4A
ir_ = enabled;
#endif
}
bool CameraK4A::init(const std::string & calibrationFolder, const std::string & cameraName)
@@ -216,7 +225,11 @@ bool CameraK4A::isCalibrated() const
std::string CameraK4A::getSerial() const
{
#ifdef RTABMAP_K4A
return fileName_.empty()?"":fileName_;
#else
return "";
#endif
}
SensorData CameraK4A::captureImage(CameraInfo * info)
+3 -1
View File
@@ -33,7 +33,9 @@ echo "Usage: run_euroc_datasets.sh \"output name\" \"odom strategy: 0=f2m 1=f2f
exit
fi
F2F_params=""
#uncomment for graph gravity optimization
#F2F_params="--Optimizer/GravitySigma 0.01 --g2o/PixelVariance 5"
if [ $STRATEGY -eq 11 ] # F2F optical flow
then
STRATEGY=1