Version 0.8.9: added FlyCapture2 driver for bumblebee2 (tested only on Windows)

This commit is contained in:
Mathieu Labbé
2015-04-07 12:00:10 -04:00
parent 71be7921aa
commit 3ed6a1b2f0
18 changed files with 544 additions and 65 deletions

View File

@@ -30,9 +30,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <opencv2/opencv.hpp>
#include "rtabmap/core/RtabmapExp.h" // DLL export/import defines
namespace rtabmap {
class CameraModel
class RTABMAP_EXP CameraModel
{
public:
CameraModel();

View File

@@ -65,6 +65,11 @@ class Freenect2Device;
class SyncMultiFrameListener;
}
namespace FlyCapture2
{
class Camera;
}
typedef struct _freenect_context freenect_context;
typedef struct _freenect_device freenect_device;
@@ -80,6 +85,7 @@ class RTABMAP_EXP CameraRGBD
public:
virtual ~CameraRGBD();
void takeImage(cv::Mat & rgb, cv::Mat & depth, float & fx, float & fy, float & cx, float & cy);
virtual bool init(const std::string & calibrationFolder = ".") = 0;
virtual bool isCalibrated() const = 0;
virtual std::string getSerial() const = 0;
@@ -241,7 +247,7 @@ public:
const Transform & localTransform = Transform::getIdentity());
virtual ~CameraFreenect();
bool init(const std::string & calibrationFolder = ".");
virtual bool init(const std::string & calibrationFolder = ".");
virtual bool isCalibrated() const;
virtual std::string getSerial() const;
@@ -271,7 +277,7 @@ public:
const Transform & localTransform = Transform::getIdentity());
virtual ~CameraFreenect2();
bool init(const std::string & calibrationFolder = ".");
virtual bool init(const std::string & calibrationFolder = ".");
virtual bool isCalibrated() const;
virtual std::string getSerial() const;
@@ -286,7 +292,7 @@ private:
};
/////////////////////////
// CameraDC1394
// CameraStereoDC1394
/////////////////////////
class DC1394Device;
@@ -300,7 +306,7 @@ public:
CameraStereoDC1394( float imageRate=0.0f, const Transform & localTransform = Transform::getIdentity());
virtual ~CameraStereoDC1394();
bool init(const std::string & calibrationFolder = ".");
virtual bool init(const std::string & calibrationFolder = ".");
virtual bool isCalibrated() const;
virtual std::string getSerial() const;
@@ -312,4 +318,29 @@ private:
StereoCameraModel stereoModel_;
};
/////////////////////////
// CameraStereoFlyCapture2
/////////////////////////
class RTABMAP_EXP CameraStereoFlyCapture2 :
public CameraRGBD
{
public:
static bool available();
public:
CameraStereoFlyCapture2( float imageRate=0.0f, const Transform & localTransform = Transform::getIdentity());
virtual ~CameraStereoFlyCapture2();
virtual bool init(const std::string & calibrationFolder = ".");
virtual bool isCalibrated() const;
virtual std::string getSerial() const;
protected:
virtual void captureImage(cv::Mat & left, cv::Mat & right, float & fx, float & baseline, float & cx, float & cy);
private:
FlyCapture2::Camera * camera_;
void * triclopsCtx_; // TriclopsContext
};
} // namespace rtabmap