mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-13 23:10:20 +08:00
CameraK4A: added finding lib on linux
This commit is contained in:
+15
-7
@@ -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)")
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user