mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-08 12:30:20 +08:00
Merge branch 'borongyuan-xvisio'
This commit is contained in:
@@ -203,6 +203,7 @@ option(WITH_REALSENSE_SLAM "Include RealSenseSlam support" ON)
|
||||
option(WITH_REALSENSE2 "Include RealSense support" ON)
|
||||
option(WITH_MYNTEYE "Include mynteye-s support" ON)
|
||||
option(WITH_DEPTHAI "Include depthai-core support" OFF)
|
||||
option(WITH_XVSDK "Include XVisio SDK support" OFF)
|
||||
option(WITH_OCTOMAP "Include OctoMap support" ON)
|
||||
option(WITH_GRIDMAP "Include GridMap support" ON)
|
||||
option(WITH_CPUTSDF "Include CPUTSDF support" OFF)
|
||||
@@ -662,6 +663,13 @@ IF(WITH_DEPTHAI)
|
||||
ENDIF(depthai_FOUND)
|
||||
ENDIF(WITH_DEPTHAI)
|
||||
|
||||
IF(WITH_XVSDK)
|
||||
FIND_PACKAGE(xvsdk QUIET)
|
||||
IF(xvsdk_FOUND)
|
||||
MESSAGE(STATUS "Found xvsdk (targets)")
|
||||
ENDIF(xvsdk_FOUND)
|
||||
ENDIF(WITH_XVSDK)
|
||||
|
||||
IF(WITH_OCTOMAP)
|
||||
FIND_PACKAGE(octomap QUIET)
|
||||
IF(octomap_FOUND)
|
||||
@@ -1000,6 +1008,12 @@ IF(NOT depthai_FOUND)
|
||||
ELSE()
|
||||
SET(CONF_WITH_DEPTH_AI 1)
|
||||
ENDIF()
|
||||
IF(NOT xvsdk_FOUND)
|
||||
SET(XVSDK "//")
|
||||
SET(CONF_WITH_XVSDK 0)
|
||||
ELSE()
|
||||
SET(CONF_WITH_XVSDK 1)
|
||||
ENDIF()
|
||||
IF(NOT octomap_FOUND)
|
||||
SET(OCTOMAP "//")
|
||||
SET(CONF_WITH_OCTOMAP 0)
|
||||
@@ -1638,6 +1652,14 @@ ELSE()
|
||||
MESSAGE(STATUS " With DepthAI = NO (depthai-core not found)")
|
||||
ENDIF()
|
||||
|
||||
IF(xvsdk_FOUND)
|
||||
MESSAGE(STATUS " With XVisio SDK ${xvsdk_VERSION} = YES")
|
||||
ELSEIF(NOT WITH_XVSDK)
|
||||
MESSAGE(STATUS " With XVisio SDK = NO (WITH_XVSDK=OFF)")
|
||||
ELSE()
|
||||
MESSAGE(STATUS " With XVisio SDK = NO (xvsdk not found)")
|
||||
ENDIF()
|
||||
|
||||
MESSAGE(STATUS "")
|
||||
MESSAGE(STATUS " Odometry Approaches:")
|
||||
IF(loam_velodyne_FOUND)
|
||||
|
||||
@@ -43,7 +43,11 @@ IF(@CONF_WITH_K4A@)
|
||||
ENDIF()
|
||||
|
||||
IF(@CONF_WITH_DEPTH_AI@)
|
||||
find_dependency(depthai 2)
|
||||
find_dependency(depthai 2.24)
|
||||
ENDIF()
|
||||
|
||||
IF(@CONF_WITH_XVSDK@)
|
||||
find_dependency(xvsdk)
|
||||
ENDIF()
|
||||
|
||||
IF(@CONF_WITH_OCTOMAP@)
|
||||
|
||||
@@ -68,6 +68,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@REALSENSE2@#define RTABMAP_REALSENSE2
|
||||
@MYNTEYE@#define RTABMAP_MYNTEYE
|
||||
@DEPTHAI@#define RTABMAP_DEPTHAI
|
||||
@XVSDK@#define RTABMAP_XVSDK
|
||||
@OCTOMAP@#define RTABMAP_OCTOMAP
|
||||
@GRIDMAP@#define RTABMAP_GRIDMAP
|
||||
@CPUTSDF@#define RTABMAP_CPUTSDF
|
||||
|
||||
@@ -37,4 +37,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#include <rtabmap/core/camera/CameraRealSense2.h>
|
||||
#include <rtabmap/core/camera/CameraRGBDImages.h>
|
||||
#include <rtabmap/core/camera/CameraK4A.h>
|
||||
|
||||
#include <rtabmap/core/camera/CameraSeerSense.h>
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
#pragma once
|
||||
|
||||
#include "rtabmap/core/Camera.h"
|
||||
#include "rtabmap/core/Version.h"
|
||||
#include "rtabmap/utilite/USemaphore.h"
|
||||
|
||||
#ifdef RTABMAP_XVSDK
|
||||
#include <xv-sdk.h>
|
||||
#endif
|
||||
|
||||
namespace rtabmap
|
||||
{
|
||||
|
||||
class RTABMAP_CORE_EXPORT CameraSeerSense :
|
||||
public Camera
|
||||
{
|
||||
public:
|
||||
static bool available();
|
||||
|
||||
public:
|
||||
CameraSeerSense(
|
||||
bool computeOdometry = false,
|
||||
float imageRate = 0.0f,
|
||||
const Transform & localTransform = Transform::getIdentity()
|
||||
);
|
||||
virtual ~CameraSeerSense();
|
||||
|
||||
virtual bool init(const std::string & calibrationFolder = ".", const std::string & cameraName = "");
|
||||
virtual bool isCalibrated() const;
|
||||
virtual std::string getSerial() const;
|
||||
virtual bool odomProvided() const;
|
||||
virtual bool getPose(double stamp, Transform & pose, cv::Mat & covariance, double maxWaitTime = 0.0);
|
||||
|
||||
protected:
|
||||
virtual SensorData captureImage(SensorCaptureInfo * info = 0);
|
||||
|
||||
private:
|
||||
#ifdef RTABMAP_XVSDK
|
||||
CameraModel cameraModel_;
|
||||
bool computeOdometry_;
|
||||
int imuId_;
|
||||
int tofId_;
|
||||
std::shared_ptr<xv::Device> device_;
|
||||
std::map<double, std::pair<cv::Vec3d, cv::Vec3d>> imuBuffer_;
|
||||
std::pair<double, std::pair<cv::Mat, cv::Mat>> lastData_;
|
||||
UMutex imuMutex_;
|
||||
UMutex dataMutex_;
|
||||
USemaphore dataReady_;
|
||||
#endif
|
||||
};
|
||||
|
||||
} // namespace rtabmap
|
||||
@@ -40,6 +40,7 @@ SET(SRC_FILES
|
||||
camera/CameraVideo.cpp
|
||||
camera/CameraMyntEye.cpp
|
||||
camera/CameraDepthAI.cpp
|
||||
camera/CameraSeerSense.cpp
|
||||
|
||||
EpipolarGeometry.cpp
|
||||
VisualWord.cpp
|
||||
@@ -383,6 +384,13 @@ IF(depthai_FOUND)
|
||||
)
|
||||
ENDIF(depthai_FOUND)
|
||||
|
||||
IF(xvsdk_FOUND)
|
||||
SET(PUBLIC_LIBRARIES
|
||||
${PUBLIC_LIBRARIES}
|
||||
${xvsdk_LIBRARIES}
|
||||
)
|
||||
ENDIF(xvsdk_FOUND)
|
||||
|
||||
IF(TARGET OpenMP::OpenMP_CXX)
|
||||
SET(LIBRARIES
|
||||
${LIBRARIES}
|
||||
|
||||
@@ -802,6 +802,12 @@ ParametersMap Parameters::parseArguments(int argc, char * argv[], bool onlyParam
|
||||
std::cout << str << std::setw(spacing - str.size()) << "true" << std::endl;
|
||||
#else
|
||||
std::cout << str << std::setw(spacing - str.size()) << "false" << std::endl;
|
||||
#endif
|
||||
str = "With XVisio SDK:";
|
||||
#ifdef RTABMAP_XVSDK
|
||||
std::cout << str << std::setw(spacing - str.size()) << "true" << std::endl;
|
||||
#else
|
||||
std::cout << str << std::setw(spacing - str.size()) << "false" << std::endl;
|
||||
#endif
|
||||
str = "With libpointmatcher:";
|
||||
#ifdef RTABMAP_POINTMATCHER
|
||||
|
||||
@@ -0,0 +1,272 @@
|
||||
#include <rtabmap/core/camera/CameraSeerSense.h>
|
||||
#include <rtabmap/utilite/UEventsManager.h>
|
||||
|
||||
namespace rtabmap {
|
||||
|
||||
bool CameraSeerSense::available()
|
||||
{
|
||||
#ifdef RTABMAP_XVSDK
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
CameraSeerSense::CameraSeerSense(bool computeOdometry, float imageRate, const Transform & localTransform) :
|
||||
Camera(imageRate, localTransform)
|
||||
#ifdef RTABMAP_XVSDK
|
||||
,
|
||||
computeOdometry_(computeOdometry),
|
||||
imuId_(0),
|
||||
tofId_(0)
|
||||
#endif
|
||||
{
|
||||
#ifdef RTABMAP_XVSDK
|
||||
xv::setLogLevel(xv::LogLevel(ULogger::level()+1));
|
||||
#endif
|
||||
}
|
||||
|
||||
CameraSeerSense::~CameraSeerSense()
|
||||
{
|
||||
#ifdef RTABMAP_XVSDK
|
||||
if(imuId_)
|
||||
device_->imuSensor()->unregisterCallback(imuId_);
|
||||
|
||||
if(tofId_)
|
||||
device_->tofCamera()->unregisterColorDepthImageCallback(tofId_);
|
||||
|
||||
if(device_->slam())
|
||||
device_->slam()->stop();
|
||||
|
||||
if(device_->imuSensor())
|
||||
device_->imuSensor()->stop();
|
||||
|
||||
if(device_->colorCamera())
|
||||
device_->colorCamera()->stop();
|
||||
|
||||
if(device_->tofCamera())
|
||||
device_->tofCamera()->stop();
|
||||
|
||||
dataReady_.release();
|
||||
#endif
|
||||
}
|
||||
|
||||
bool CameraSeerSense::init(const std::string & calibrationFolder, const std::string & cameraName)
|
||||
{
|
||||
UDEBUG("");
|
||||
#ifdef RTABMAP_XVSDK
|
||||
auto devices = xv::getDevices(3);
|
||||
if(devices.empty())
|
||||
{
|
||||
UERROR("Timeout for SeerSense device detection.");
|
||||
return false;
|
||||
}
|
||||
device_ = devices.begin()->second;
|
||||
|
||||
UASSERT(device_->imuSensor());
|
||||
device_->imuSensor()->start();
|
||||
imuId_ = device_->imuSensor()->registerCallback([this](const xv::Imu & xvImu) {
|
||||
if(xvImu.hostTimestamp > 0)
|
||||
{
|
||||
if(isInterIMUPublishing())
|
||||
{
|
||||
IMU imu(cv::Vec3d(xvImu.gyro[0], xvImu.gyro[1], xvImu.gyro[2]), cv::Mat::eye(3,3,CV_64FC1),
|
||||
cv::Vec3d(xvImu.accel[0], xvImu.accel[1], xvImu.accel[2]), cv::Mat::eye(3,3,CV_64FC1),
|
||||
this->getLocalTransform());
|
||||
this->postInterIMU(imu, xvImu.hostTimestamp);
|
||||
}
|
||||
else
|
||||
{
|
||||
UScopeMutex lock(imuMutex_);
|
||||
imuBuffer_.emplace_hint(imuBuffer_.end(), xvImu.hostTimestamp,
|
||||
std::make_pair(cv::Vec3d(xvImu.gyro[0], xvImu.gyro[1], xvImu.gyro[2]), cv::Vec3d(xvImu.accel[0], xvImu.accel[1], xvImu.accel[2])));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if(computeOdometry_)
|
||||
{
|
||||
UASSERT(device_->slam());
|
||||
device_->slam()->start(xv::Slam::Mode::Mixed);
|
||||
}
|
||||
|
||||
auto frameRate = xv::TofCamera::Framerate::FPS_30;
|
||||
if(this->getImageRate() > 25)
|
||||
frameRate = xv::TofCamera::Framerate::FPS_30;
|
||||
else if(this->getImageRate() > 20)
|
||||
frameRate = xv::TofCamera::Framerate::FPS_25;
|
||||
else if(this->getImageRate() > 15)
|
||||
frameRate = xv::TofCamera::Framerate::FPS_20;
|
||||
else if(this->getImageRate() > 10)
|
||||
frameRate = xv::TofCamera::Framerate::FPS_15;
|
||||
else if(this->getImageRate() > 5)
|
||||
frameRate = xv::TofCamera::Framerate::FPS_10;
|
||||
else if(this->getImageRate() > 0)
|
||||
frameRate = xv::TofCamera::Framerate::FPS_5;
|
||||
|
||||
UASSERT(device_->colorCamera());
|
||||
device_->colorCamera()->setResolution(xv::ColorCamera::Resolution::RGB_640x480);
|
||||
device_->colorCamera()->start();
|
||||
UASSERT(device_->tofCamera());
|
||||
device_->tofCamera()->setSonyTofSetting(xv::TofCamera::SonyTofLibMode::IQMIX_DF, xv::TofCamera::Resolution::QVGA, frameRate);
|
||||
device_->tofCamera()->start();
|
||||
|
||||
UASSERT(!device_->tofCamera()->calibration().empty());
|
||||
auto xvTofCalib = device_->tofCamera()->calibration()[0];
|
||||
UASSERT(!xvTofCalib.pdcm.empty());
|
||||
cv::Mat D(1, xvTofCalib.pdcm[0].distor.size(), CV_64FC1, xvTofCalib.pdcm[0].distor.begin());
|
||||
cv::Mat R = cv::Mat::eye(3, 3, CV_64FC1);
|
||||
cv::Mat P = cv::Mat::eye(3, 4, CV_64FC1);
|
||||
P.at<double>(0,0) = xvTofCalib.pdcm[0].fx;
|
||||
P.at<double>(1,1) = xvTofCalib.pdcm[0].fy;
|
||||
P.at<double>(0,2) = xvTofCalib.pdcm[0].u0;
|
||||
P.at<double>(1,2) = xvTofCalib.pdcm[0].v0;
|
||||
cv::Mat K = P.colRange(0, 3);
|
||||
cameraModel_ = CameraModel(device_->id(), cv::Size(xvTofCalib.pdcm[0].w, xvTofCalib.pdcm[0].h), K, D, R, P,
|
||||
this->getLocalTransform() * Transform(
|
||||
xvTofCalib.pose.rotation()[0], xvTofCalib.pose.rotation()[1], xvTofCalib.pose.rotation()[2], xvTofCalib.pose.translation()[0],
|
||||
xvTofCalib.pose.rotation()[3], xvTofCalib.pose.rotation()[4], xvTofCalib.pose.rotation()[5], xvTofCalib.pose.translation()[1],
|
||||
xvTofCalib.pose.rotation()[6], xvTofCalib.pose.rotation()[7], xvTofCalib.pose.rotation()[8], xvTofCalib.pose.translation()[2]
|
||||
)).scaled(0.5);
|
||||
UASSERT(cameraModel_.isValidForRectification());
|
||||
cameraModel_.initRectificationMap();
|
||||
|
||||
lastData_ = std::pair<double, std::pair<cv::Mat, cv::Mat>>();
|
||||
tofId_ = device_->tofCamera()->registerColorDepthImageCallback([this](const xv::DepthColorImage & xvDepthColorImage) {
|
||||
if(xvDepthColorImage.hostTimestamp > 0)
|
||||
{
|
||||
cv::Mat color = cv::Mat::zeros(cameraModel_.imageSize(), CV_8UC3);
|
||||
color.forEach<cv::Vec3b>([&](cv::Vec3b& pixel, const int position[]) -> void {
|
||||
const auto rgb = reinterpret_cast<std::uint8_t const *>(xvDepthColorImage.data.get() + (position[0]*cameraModel_.imageWidth()+position[1]) * 7);
|
||||
pixel = cv::Vec3b(rgb[2], rgb[1], rgb[0]);
|
||||
});
|
||||
cv::Mat depth = cv::Mat::zeros(cameraModel_.imageSize(), CV_32FC1);
|
||||
depth.forEach<float>([&](float &pixel, const int position[]) -> void {
|
||||
pixel = *reinterpret_cast<float const *>(xvDepthColorImage.data.get() + (position[0]*cameraModel_.imageWidth()+position[1]) * 7 + 3);
|
||||
});
|
||||
UScopeMutex lock(dataMutex_);
|
||||
bool notify = !lastData_.first;
|
||||
lastData_ = std::make_pair(xvDepthColorImage.hostTimestamp, std::make_pair(color, depth));
|
||||
if(notify)
|
||||
dataReady_.release();
|
||||
}
|
||||
});
|
||||
|
||||
return true;
|
||||
#else
|
||||
UERROR("CameraSeerSense: RTAB-Map is not built with XVisio SDK support!");
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CameraSeerSense::isCalibrated() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
std::string CameraSeerSense::getSerial() const
|
||||
{
|
||||
#ifdef RTABMAP_XVSDK
|
||||
return device_->id();
|
||||
#endif
|
||||
return "";
|
||||
}
|
||||
|
||||
bool CameraSeerSense::odomProvided() const
|
||||
{
|
||||
#ifdef RTABMAP_XVSDK
|
||||
return computeOdometry_;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool CameraSeerSense::getPose(double stamp, Transform & pose, cv::Mat & covariance, double maxWaitTime)
|
||||
{
|
||||
#ifdef RTABMAP_XVSDK
|
||||
xv::Pose xvPose;
|
||||
if(computeOdometry_ && device_->slam()->getPoseAt(xvPose, stamp))
|
||||
{
|
||||
pose = this->getLocalTransform() *
|
||||
Transform(
|
||||
xvPose.transform().rotation()[0], xvPose.transform().rotation()[1], xvPose.transform().rotation()[2], xvPose.transform().translation()[0],
|
||||
xvPose.transform().rotation()[3], xvPose.transform().rotation()[4], xvPose.transform().rotation()[5], xvPose.transform().translation()[1],
|
||||
xvPose.transform().rotation()[6], xvPose.transform().rotation()[7], xvPose.transform().rotation()[8], xvPose.transform().translation()[2]) *
|
||||
this->getLocalTransform().inverse();
|
||||
covariance = cv::Mat::eye(6, 6, CV_64FC1) * 0.0005;
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
SensorData CameraSeerSense::captureImage(SensorCaptureInfo * info)
|
||||
{
|
||||
SensorData data;
|
||||
#ifdef RTABMAP_XVSDK
|
||||
if(!dataReady_.acquire(1, 3000))
|
||||
{
|
||||
UERROR("Did not receive frame since 3 seconds...");
|
||||
return data;
|
||||
}
|
||||
|
||||
dataMutex_.lock();
|
||||
data = SensorData(
|
||||
cameraModel_.rectifyImage(lastData_.second.first, cv::INTER_CUBIC),
|
||||
cameraModel_.rectifyImage(lastData_.second.second, cv::INTER_NEAREST),
|
||||
cameraModel_, this->getNextSeqID(), lastData_.first);
|
||||
lastData_ = std::pair<double, std::pair<cv::Mat, cv::Mat>>();
|
||||
dataMutex_.unlock();
|
||||
|
||||
if(!isInterIMUPublishing())
|
||||
{
|
||||
cv::Vec3d gyro, acc;
|
||||
std::map<double, std::pair<cv::Vec3d, cv::Vec3d>>::const_iterator iterA, iterB;
|
||||
|
||||
imuMutex_.lock();
|
||||
while(imuBuffer_.empty() || imuBuffer_.rbegin()->first < data.stamp())
|
||||
{
|
||||
imuMutex_.unlock();
|
||||
uSleep(1);
|
||||
imuMutex_.lock();
|
||||
}
|
||||
|
||||
iterB = imuBuffer_.lower_bound(data.stamp());
|
||||
iterA = iterB;
|
||||
if(iterA != imuBuffer_.begin())
|
||||
iterA = --iterA;
|
||||
if(iterA == iterB || data.stamp() == iterB->first)
|
||||
{
|
||||
gyro = iterB->second.first;
|
||||
acc = iterB->second.second;
|
||||
}
|
||||
else if(data.stamp() > iterA->first && data.stamp() < iterB->first)
|
||||
{
|
||||
float t = (data.stamp()-iterA->first) / (iterB->first-iterA->first);
|
||||
gyro = iterA->second.first + t*(iterB->second.first - iterA->second.first);
|
||||
acc = iterA->second.second + t*(iterB->second.second - iterA->second.second);
|
||||
}
|
||||
imuBuffer_.erase(imuBuffer_.begin(), iterB);
|
||||
|
||||
imuMutex_.unlock();
|
||||
data.setIMU(IMU(gyro, cv::Mat::eye(3, 3, CV_64FC1), acc, cv::Mat::eye(3, 3, CV_64FC1), this->getLocalTransform()));
|
||||
}
|
||||
|
||||
xv::Pose xvPose;
|
||||
if(computeOdometry_ && device_->slam()->getPoseAt(xvPose, data.stamp()))
|
||||
{
|
||||
info->odomPose = this->getLocalTransform() *
|
||||
Transform(
|
||||
xvPose.transform().rotation()[0], xvPose.transform().rotation()[1], xvPose.transform().rotation()[2], xvPose.transform().translation()[0],
|
||||
xvPose.transform().rotation()[3], xvPose.transform().rotation()[4], xvPose.transform().rotation()[5], xvPose.transform().translation()[1],
|
||||
xvPose.transform().rotation()[6], xvPose.transform().rotation()[7], xvPose.transform().rotation()[8], xvPose.transform().translation()[2]) *
|
||||
this->getLocalTransform().inverse();
|
||||
info->odomCovariance = cv::Mat::eye(6, 6, CV_64FC1) * 0.0005;
|
||||
}
|
||||
#else
|
||||
UERROR("CameraSeerSense: RTAB-Map is not built with XVisio SDK support!");
|
||||
#endif
|
||||
return data;
|
||||
}
|
||||
|
||||
} // namespace rtabmap
|
||||
@@ -192,6 +192,7 @@ protected Q_SLOTS:
|
||||
void selectDepthAIOAKD();
|
||||
void selectDepthAIOAKDLite();
|
||||
void selectDepthAIOAKDPro();
|
||||
void selectXvisioSeerSense();
|
||||
void selectVLP16();
|
||||
void dumpTheMemory();
|
||||
void dumpThePrediction();
|
||||
|
||||
@@ -96,6 +96,7 @@ public:
|
||||
kSrcK4W2 = 8,
|
||||
kSrcRealSense2 = 9,
|
||||
kSrcK4A = 10,
|
||||
kSrcSeerSense = 11,
|
||||
|
||||
kSrcStereo = 100,
|
||||
kSrcDC1394 = 100,
|
||||
|
||||
@@ -155,6 +155,7 @@ AboutDialog::AboutDialog(QWidget * parent) :
|
||||
_ui->label_mynteye->setText(CameraMyntEye::available() ? "Yes" : "No");
|
||||
_ui->label_depthai->setText(CameraDepthAI::available() ? "Yes" : "No");
|
||||
_ui->label_depthai_license->setEnabled(CameraDepthAI::available());
|
||||
_ui->label_xvsdk->setText(CameraSeerSense::available() ? "Yes" : "No");
|
||||
|
||||
_ui->label_toro->setText(Optimizer::isAvailable(Optimizer::kTypeTORO)?"Yes":"No");
|
||||
_ui->label_toro_license->setEnabled(Optimizer::isAvailable(Optimizer::kTypeTORO)?true:false);
|
||||
|
||||
@@ -45,5 +45,6 @@
|
||||
<file>images/oakd_lite.png</file>
|
||||
<file>images/astra.png</file>
|
||||
<file>images/oakdpro.png</file>
|
||||
<file>images/seer_sense_DS80.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@@ -469,6 +469,7 @@ MainWindow::MainWindow(PreferencesDialog * prefDialog, QWidget * parent, bool sh
|
||||
connect(_ui->actionDepthAI_oakd, SIGNAL(triggered()), this, SLOT(selectDepthAIOAKD()));
|
||||
connect(_ui->actionDepthAI_oakdlite, SIGNAL(triggered()), this, SLOT(selectDepthAIOAKDLite()));
|
||||
connect(_ui->actionDepthAI_oakdpro, SIGNAL(triggered()), this, SLOT(selectDepthAIOAKDPro()));
|
||||
connect(_ui->actionXvisio_SeerSense, SIGNAL(triggered()), this, SLOT(selectXvisioSeerSense()));
|
||||
connect(_ui->actionVelodyne_VLP_16, SIGNAL(triggered()), this, SLOT(selectVLP16()));
|
||||
_ui->actionFreenect->setEnabled(CameraFreenect::available());
|
||||
_ui->actionOpenNI_CV->setEnabled(CameraOpenNICV::available());
|
||||
@@ -495,6 +496,7 @@ MainWindow::MainWindow(PreferencesDialog * prefDialog, QWidget * parent, bool sh
|
||||
_ui->actionDepthAI_oakd->setEnabled(CameraDepthAI::available());
|
||||
_ui->actionDepthAI_oakdlite->setEnabled(CameraDepthAI::available());
|
||||
_ui->actionDepthAI_oakdpro->setEnabled(CameraDepthAI::available());
|
||||
_ui->actionXvisio_SeerSense->setEnabled(CameraSeerSense::available());
|
||||
this->updateSelectSourceMenu();
|
||||
|
||||
connect(_ui->actionPreferences, SIGNAL(triggered()), this, SLOT(openPreferences()));
|
||||
@@ -5299,6 +5301,7 @@ void MainWindow::updateSelectSourceMenu()
|
||||
_ui->actionDepthAI_oakd->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoDepthAI);
|
||||
_ui->actionDepthAI_oakdlite->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoDepthAI);
|
||||
_ui->actionDepthAI_oakdpro->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoDepthAI);
|
||||
_ui->actionXvisio_SeerSense->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcSeerSense);
|
||||
_ui->actionVelodyne_VLP_16->setChecked(_preferencesDialog->getLidarSourceDriver() == PreferencesDialog::kSrcLidarVLP16);
|
||||
}
|
||||
|
||||
@@ -7228,6 +7231,11 @@ void MainWindow::selectDepthAIOAKDPro()
|
||||
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcStereoDepthAI, 2); // variant 2=IMU+color
|
||||
}
|
||||
|
||||
void MainWindow::selectXvisioSeerSense()
|
||||
{
|
||||
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcSeerSense);
|
||||
}
|
||||
|
||||
void MainWindow::selectVLP16()
|
||||
{
|
||||
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcLidarVLP16);
|
||||
|
||||
@@ -422,6 +422,11 @@ PreferencesDialog::PreferencesDialog(QWidget * parent) :
|
||||
{
|
||||
_ui->comboBox_cameraStereo->setItemData(kSrcStereoDepthAI - kSrcStereo, 0, Qt::UserRole - 1);
|
||||
}
|
||||
if (!CameraSeerSense::available())
|
||||
{
|
||||
_ui->comboBox_cameraRGBD->setItemData(kSrcSeerSense - kSrcRGBD, 0, Qt::UserRole - 1);
|
||||
_ui->comboBox_odom_sensor->setItemData(3, 0, Qt::UserRole - 1);
|
||||
}
|
||||
_ui->openni2_exposure->setEnabled(CameraOpenNI2::exposureGainAvailable());
|
||||
_ui->openni2_gain->setEnabled(CameraOpenNI2::exposureGainAvailable());
|
||||
|
||||
@@ -5620,7 +5625,8 @@ void PreferencesDialog::updateSourceGrpVisibility()
|
||||
_ui->comboBox_cameraRGBD->currentIndex() == kSrcRealSense - kSrcRGBD ||
|
||||
_ui->comboBox_cameraRGBD->currentIndex() == kSrcRGBDImages-kSrcRGBD ||
|
||||
_ui->comboBox_cameraRGBD->currentIndex() == kSrcOpenNI_PCL-kSrcRGBD ||
|
||||
_ui->comboBox_cameraRGBD->currentIndex() == kSrcRealSense2-kSrcRGBD));
|
||||
_ui->comboBox_cameraRGBD->currentIndex() == kSrcRealSense2-kSrcRGBD ||
|
||||
_ui->comboBox_cameraRGBD->currentIndex() == kSrcSeerSense-kSrcRGBD));
|
||||
_ui->groupBox_openni2->setVisible(_ui->comboBox_sourceType->currentIndex() == 0 && _ui->comboBox_cameraRGBD->currentIndex() == kSrcOpenNI2-kSrcRGBD);
|
||||
_ui->groupBox_freenect2->setVisible(_ui->comboBox_sourceType->currentIndex() == 0 && _ui->comboBox_cameraRGBD->currentIndex() == kSrcFreenect2-kSrcRGBD);
|
||||
_ui->groupBox_k4w2->setVisible(_ui->comboBox_sourceType->currentIndex() == 0 && _ui->comboBox_cameraRGBD->currentIndex() == kSrcK4W2 - kSrcRGBD);
|
||||
@@ -5695,6 +5701,7 @@ void PreferencesDialog::updateSourceGrpVisibility()
|
||||
(_ui->comboBox_sourceType->currentIndex() == 0 && _ui->comboBox_cameraRGBD->currentIndex() == kSrcFreenect - kSrcRGBD) || //Kinect360
|
||||
(_ui->comboBox_sourceType->currentIndex() == 0 && _ui->comboBox_cameraRGBD->currentIndex() == kSrcK4A - kSrcRGBD) || //K4A
|
||||
(_ui->comboBox_sourceType->currentIndex() == 0 && _ui->comboBox_cameraRGBD->currentIndex() == kSrcRealSense2 - kSrcRGBD) || //D435i
|
||||
(_ui->comboBox_sourceType->currentIndex() == 0 && _ui->comboBox_cameraRGBD->currentIndex() == kSrcSeerSense - kSrcRGBD) ||
|
||||
(_ui->comboBox_sourceType->currentIndex() == 1 && _ui->comboBox_cameraStereo->currentIndex() == kSrcStereoRealSense2 - kSrcStereo) || //T265
|
||||
(_ui->comboBox_sourceType->currentIndex() == 1 && _ui->comboBox_cameraStereo->currentIndex() == kSrcStereoZed - kSrcStereo) || // ZEDm, ZED2
|
||||
(_ui->comboBox_sourceType->currentIndex() == 1 && _ui->comboBox_cameraStereo->currentIndex() == kSrcStereoMyntEye - kSrcStereo) || // MYNT EYE S
|
||||
@@ -6234,6 +6241,11 @@ PreferencesDialog::Src PreferencesDialog::getOdomSourceDriver() const
|
||||
//Zed SDK
|
||||
return kSrcStereoZed;
|
||||
}
|
||||
else if(_ui->comboBox_odom_sensor->currentIndex() == 3)
|
||||
{
|
||||
//XVisio SDK
|
||||
return kSrcSeerSense;
|
||||
}
|
||||
else if(_ui->comboBox_odom_sensor->currentIndex() != 0)
|
||||
{
|
||||
UERROR("Not implemented!");
|
||||
@@ -6402,7 +6414,7 @@ Camera * PreferencesDialog::createCamera(
|
||||
bool odomOnly,
|
||||
bool odomSensorExtrinsicsCalib)
|
||||
{
|
||||
if(odomOnly && !(driver == kSrcStereoRealSense2 || driver == kSrcStereoZed))
|
||||
if(odomOnly && !(driver == kSrcStereoRealSense2 || driver == kSrcStereoZed || driver == kSrcSeerSense))
|
||||
{
|
||||
QMessageBox::warning(this, tr("Odometry Sensor"),
|
||||
tr("Driver %1 cannot support odometry only mode.").arg(driver), QMessageBox::Ok);
|
||||
@@ -6797,6 +6809,18 @@ Camera * PreferencesDialog::createCamera(
|
||||
((CameraDepthAI*)camera)->setSuperPointDetector(_ui->doubleSpinBox_sptorch_threshold->value(), _ui->checkBox_sptorch_nms->isChecked(), _ui->spinBox_sptorch_minDistance->value());
|
||||
}
|
||||
}
|
||||
else if (driver == kSrcSeerSense)
|
||||
{
|
||||
UDEBUG("SeerSense");
|
||||
camera = new CameraSeerSense(
|
||||
getOdomSourceDriver() == kSrcSeerSense || odomOnly,
|
||||
this->getGeneralInputRate(),
|
||||
this->getSourceLocalTransform());
|
||||
camera->setInterIMUPublishing(
|
||||
_ui->checkbox_publishInterIMU->isChecked(),
|
||||
_ui->checkbox_publishInterIMU->isChecked() && getIMUFilteringStrategy()>0?
|
||||
IMUFilter::create((IMUFilter::Type)(getIMUFilteringStrategy()-1), this->getAllParameters()):0);
|
||||
}
|
||||
else if(driver == kSrcUsbDevice)
|
||||
{
|
||||
camera = new CameraVideo(
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 7.0 KiB |
@@ -195,7 +195,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="43" column="0">
|
||||
<item row="44" column="0">
|
||||
<widget class="QLabel" name="label_46">
|
||||
<property name="text">
|
||||
<string>With VINS-Fusion :</string>
|
||||
@@ -215,7 +215,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="44" column="2">
|
||||
<item row="45" column="2">
|
||||
<widget class="QLabel" name="label_openvins_license">
|
||||
<property name="text">
|
||||
<string>GPLv3</string>
|
||||
@@ -235,7 +235,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="44" column="0">
|
||||
<item row="45" column="0">
|
||||
<widget class="QLabel" name="label_47">
|
||||
<property name="text">
|
||||
<string>With OpenVINS :</string>
|
||||
@@ -258,7 +258,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="27" column="1">
|
||||
<item row="28" column="1">
|
||||
<widget class="QLabel" name="label_mrpt">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -271,7 +271,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="22" column="1">
|
||||
<item row="23" column="1">
|
||||
<widget class="QLabel" name="label_toro">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -284,7 +284,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="35" column="1">
|
||||
<item row="36" column="1">
|
||||
<widget class="QLabel" name="label_aliceVision">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -307,7 +307,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="27" column="2">
|
||||
<item row="28" column="2">
|
||||
<widget class="QLabel" name="label_mrpt_license">
|
||||
<property name="text">
|
||||
<string>BSD</string>
|
||||
@@ -317,7 +317,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="37" column="1">
|
||||
<item row="38" column="1">
|
||||
<widget class="QLabel" name="label_viso2">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -350,7 +350,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="44" column="1">
|
||||
<item row="45" column="1">
|
||||
<widget class="QLabel" name="label_openvins">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -373,7 +373,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="34" column="1">
|
||||
<item row="35" column="1">
|
||||
<widget class="QLabel" name="label_openchisel">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -409,7 +409,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="26" column="0">
|
||||
<item row="27" column="0">
|
||||
<widget class="QLabel" name="label_40">
|
||||
<property name="text">
|
||||
<string>With Ceres :</string>
|
||||
@@ -419,7 +419,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="39" column="2">
|
||||
<item row="40" column="2">
|
||||
<widget class="QLabel" name="label_orbslam_license">
|
||||
<property name="text">
|
||||
<string>GPLv3</string>
|
||||
@@ -429,7 +429,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="22" column="0">
|
||||
<item row="23" column="0">
|
||||
<widget class="QLabel" name="label_77">
|
||||
<property name="text">
|
||||
<string>With TORO :</string>
|
||||
@@ -439,7 +439,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="24" column="0">
|
||||
<item row="25" column="0">
|
||||
<widget class="QLabel" name="label_19">
|
||||
<property name="text">
|
||||
<string>With GTSAM :</string>
|
||||
@@ -492,7 +492,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="42" column="1">
|
||||
<item row="43" column="1">
|
||||
<widget class="QLabel" name="label_msckf">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -505,7 +505,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="42" column="2">
|
||||
<item row="43" column="2">
|
||||
<widget class="QLabel" name="label_msckf_license">
|
||||
<property name="text">
|
||||
<string>Penn Software License</string>
|
||||
@@ -525,7 +525,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="28" column="0">
|
||||
<item row="29" column="0">
|
||||
<widget class="QLabel" name="label_29">
|
||||
<property name="text">
|
||||
<string>With libpointmatcher :</string>
|
||||
@@ -535,7 +535,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="28" column="1">
|
||||
<item row="29" column="1">
|
||||
<widget class="QLabel" name="label_libpointmatcher">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -591,7 +591,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="37" column="0">
|
||||
<item row="38" column="0">
|
||||
<widget class="QLabel" name="label_26">
|
||||
<property name="text">
|
||||
<string>With Viso2 :</string>
|
||||
@@ -601,7 +601,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="36" column="0">
|
||||
<item row="37" column="0">
|
||||
<widget class="QLabel" name="label_25">
|
||||
<property name="text">
|
||||
<string>With FOVIS :</string>
|
||||
@@ -621,7 +621,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="41" column="1">
|
||||
<item row="42" column="1">
|
||||
<widget class="QLabel" name="label_loam">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -634,7 +634,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="41" column="2">
|
||||
<item row="42" column="2">
|
||||
<widget class="QLabel" name="label_loam_license">
|
||||
<property name="text">
|
||||
<string>BSD</string>
|
||||
@@ -644,7 +644,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="33" column="1">
|
||||
<item row="34" column="1">
|
||||
<widget class="QLabel" name="label_cputsdf">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -667,7 +667,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="23" column="0">
|
||||
<item row="24" column="0">
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="text">
|
||||
<string>With g2o :</string>
|
||||
@@ -687,7 +687,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="36" column="2">
|
||||
<item row="37" column="2">
|
||||
<widget class="QLabel" name="label_fovis_license">
|
||||
<property name="text">
|
||||
<string>GPLv2</string>
|
||||
@@ -717,7 +717,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="33" column="2">
|
||||
<item row="34" column="2">
|
||||
<widget class="QLabel" name="label_cputsdf_license">
|
||||
<property name="text">
|
||||
<string>BSD</string>
|
||||
@@ -727,7 +727,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="31" column="0">
|
||||
<item row="32" column="0">
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="text">
|
||||
<string>With Octomap :</string>
|
||||
@@ -737,7 +737,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="31" column="2">
|
||||
<item row="32" column="2">
|
||||
<widget class="QLabel" name="label_octomap_license">
|
||||
<property name="text">
|
||||
<string>BSD</string>
|
||||
@@ -760,7 +760,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="29" column="1">
|
||||
<item row="30" column="1">
|
||||
<widget class="QLabel" name="label_cccorelib">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -786,7 +786,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="32" column="0">
|
||||
<item row="33" column="0">
|
||||
<widget class="QLabel" name="label_28">
|
||||
<property name="text">
|
||||
<string>With GridMap :</string>
|
||||
@@ -842,7 +842,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="41" column="0">
|
||||
<item row="42" column="0">
|
||||
<widget class="QLabel" name="label_36">
|
||||
<property name="text">
|
||||
<string>With loam_velodyne :</string>
|
||||
@@ -865,7 +865,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="39" column="0">
|
||||
<item row="40" column="0">
|
||||
<widget class="QLabel" name="label_orbslam_title">
|
||||
<property name="text">
|
||||
<string>With ORB SLAM 2 :</string>
|
||||
@@ -898,7 +898,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="32" column="2">
|
||||
<item row="33" column="2">
|
||||
<widget class="QLabel" name="label_gridmap_license">
|
||||
<property name="text">
|
||||
<string>BSD</string>
|
||||
@@ -908,7 +908,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="29" column="0">
|
||||
<item row="30" column="0">
|
||||
<widget class="QLabel" name="label_45">
|
||||
<property name="text">
|
||||
<string>With CCCoreLib :</string>
|
||||
@@ -918,7 +918,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="26" column="2">
|
||||
<item row="27" column="2">
|
||||
<widget class="QLabel" name="label_ceres_license">
|
||||
<property name="text">
|
||||
<string>BSD</string>
|
||||
@@ -948,7 +948,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="32" column="1">
|
||||
<item row="33" column="1">
|
||||
<widget class="QLabel" name="label_gridmap">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -961,7 +961,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="33" column="0">
|
||||
<item row="34" column="0">
|
||||
<widget class="QLabel" name="label_24">
|
||||
<property name="text">
|
||||
<string>With CPU-TSDF :</string>
|
||||
@@ -971,7 +971,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="26" column="1">
|
||||
<item row="27" column="1">
|
||||
<widget class="QLabel" name="label_ceres">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -994,7 +994,17 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="38" column="0">
|
||||
<item row="22" column="0">
|
||||
<widget class="QLabel" name="label_71">
|
||||
<property name="text">
|
||||
<string>With XVisio SDK :</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="39" column="0">
|
||||
<widget class="QLabel" name="label_27">
|
||||
<property name="text">
|
||||
<string>With DVO :</string>
|
||||
@@ -1004,7 +1014,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="40" column="1">
|
||||
<item row="41" column="1">
|
||||
<widget class="QLabel" name="label_okvis">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -1017,7 +1027,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="28" column="2">
|
||||
<item row="29" column="2">
|
||||
<widget class="QLabel" name="label_libpointmatcher_license">
|
||||
<property name="text">
|
||||
<string>BSD</string>
|
||||
@@ -1027,7 +1037,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="23" column="1">
|
||||
<item row="24" column="1">
|
||||
<widget class="QLabel" name="label_g2o">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -1053,7 +1063,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="43" column="2">
|
||||
<item row="44" column="2">
|
||||
<widget class="QLabel" name="label_vins_fusion_license">
|
||||
<property name="text">
|
||||
<string>GPLv3</string>
|
||||
@@ -1076,7 +1086,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="35" column="0">
|
||||
<item row="36" column="0">
|
||||
<widget class="QLabel" name="label_41">
|
||||
<property name="text">
|
||||
<string>With AliceVision :</string>
|
||||
@@ -1086,7 +1096,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="25" column="1">
|
||||
<item row="26" column="1">
|
||||
<widget class="QLabel" name="label_cvsba">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -1158,7 +1168,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="39" column="1">
|
||||
<item row="40" column="1">
|
||||
<widget class="QLabel" name="label_orbslam">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -1171,7 +1181,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="27" column="0">
|
||||
<item row="28" column="0">
|
||||
<widget class="QLabel" name="label_48">
|
||||
<property name="text">
|
||||
<string>With MRPT :</string>
|
||||
@@ -1181,7 +1191,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="40" column="0">
|
||||
<item row="41" column="0">
|
||||
<widget class="QLabel" name="label_35">
|
||||
<property name="text">
|
||||
<string>With OKVIS :</string>
|
||||
@@ -1204,7 +1214,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="38" column="1">
|
||||
<item row="39" column="1">
|
||||
<widget class="QLabel" name="label_dvo">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -1217,7 +1227,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="23" column="2">
|
||||
<item row="24" column="2">
|
||||
<widget class="QLabel" name="label_g2o_license">
|
||||
<property name="text">
|
||||
<string>BSD</string>
|
||||
@@ -1260,7 +1270,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="37" column="2">
|
||||
<item row="38" column="2">
|
||||
<widget class="QLabel" name="label_viso2_license">
|
||||
<property name="text">
|
||||
<string>GPLv3</string>
|
||||
@@ -1270,7 +1280,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="25" column="2">
|
||||
<item row="26" column="2">
|
||||
<widget class="QLabel" name="label_cvsba_license">
|
||||
<property name="text">
|
||||
<string>GPLv2</string>
|
||||
@@ -1280,7 +1290,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="40" column="2">
|
||||
<item row="41" column="2">
|
||||
<widget class="QLabel" name="label_okvis_license">
|
||||
<property name="text">
|
||||
<string>BSD</string>
|
||||
@@ -1300,7 +1310,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="38" column="2">
|
||||
<item row="39" column="2">
|
||||
<widget class="QLabel" name="label_dvo_license">
|
||||
<property name="text">
|
||||
<string>GPLv3</string>
|
||||
@@ -1343,7 +1353,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="43" column="1">
|
||||
<item row="44" column="1">
|
||||
<widget class="QLabel" name="label_vins_fusion">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -1366,7 +1376,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="34" column="0">
|
||||
<item row="35" column="0">
|
||||
<widget class="QLabel" name="label_30">
|
||||
<property name="text">
|
||||
<string>With OpenChisel :</string>
|
||||
@@ -1376,7 +1386,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="36" column="1">
|
||||
<item row="37" column="1">
|
||||
<widget class="QLabel" name="label_fovis">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -1389,7 +1399,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="31" column="1">
|
||||
<item row="32" column="1">
|
||||
<widget class="QLabel" name="label_octomap">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -1402,7 +1412,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="25" column="0">
|
||||
<item row="26" column="0">
|
||||
<widget class="QLabel" name="label_18">
|
||||
<property name="text">
|
||||
<string>With cvsba :</string>
|
||||
@@ -1435,6 +1445,19 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="22" column="1">
|
||||
<widget class="QLabel" name="label_xvsdk">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="0">
|
||||
<widget class="QLabel" name="label_33">
|
||||
<property name="text">
|
||||
@@ -1468,7 +1491,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="29" column="2">
|
||||
<item row="30" column="2">
|
||||
<widget class="QLabel" name="label_cccorelib_license">
|
||||
<property name="text">
|
||||
<string>GPLv2</string>
|
||||
@@ -1491,7 +1514,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="35" column="2">
|
||||
<item row="36" column="2">
|
||||
<widget class="QLabel" name="label_aliceVision_license">
|
||||
<property name="text">
|
||||
<string>MPL2</string>
|
||||
@@ -1501,7 +1524,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="24" column="2">
|
||||
<item row="25" column="2">
|
||||
<widget class="QLabel" name="label_gtsam_license">
|
||||
<property name="text">
|
||||
<string>BSD</string>
|
||||
@@ -1511,7 +1534,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="24" column="1">
|
||||
<item row="25" column="1">
|
||||
<widget class="QLabel" name="label_gtsam">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -1534,7 +1557,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="42" column="0">
|
||||
<item row="43" column="0">
|
||||
<widget class="QLabel" name="label_34">
|
||||
<property name="text">
|
||||
<string>With MSCKF :</string>
|
||||
@@ -1557,7 +1580,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="22" column="2">
|
||||
<item row="23" column="2">
|
||||
<widget class="QLabel" name="label_toro_license">
|
||||
<property name="text">
|
||||
<string>Creative Commons [Attribution-NonCommercial-ShareAlike]</string>
|
||||
@@ -1577,7 +1600,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="30" column="2">
|
||||
<item row="31" column="2">
|
||||
<widget class="QLabel" name="label_open3d_license">
|
||||
<property name="text">
|
||||
<string>MIT</string>
|
||||
@@ -1587,7 +1610,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="30" column="0">
|
||||
<item row="31" column="0">
|
||||
<widget class="QLabel" name="label_49">
|
||||
<property name="text">
|
||||
<string>With Open3D :</string>
|
||||
@@ -1597,7 +1620,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="30" column="1">
|
||||
<item row="31" column="1">
|
||||
<widget class="QLabel" name="label_open3d">
|
||||
<property name="text">
|
||||
<string/>
|
||||
|
||||
@@ -229,6 +229,16 @@
|
||||
</property>
|
||||
<addaction name="actionOpenNI2_orbbec"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuXvisio_SeerSense">
|
||||
<property name="title">
|
||||
<string>Xvisio SeerSense</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../GuiLib.qrc">
|
||||
<normaloff>:/images/seer_sense_DS80.png</normaloff>:/images/seer_sense_DS80.png</iconset>
|
||||
</property>
|
||||
<addaction name="actionXvisio_SeerSense"/>
|
||||
</widget>
|
||||
<addaction name="menuKinect_for_Xbox_360"/>
|
||||
<addaction name="menuXtion_PRO_LIVE"/>
|
||||
<addaction name="menuOrbbec_Astra"/>
|
||||
@@ -240,6 +250,7 @@
|
||||
<addaction name="menuRealSense_SR300"/>
|
||||
<addaction name="menuRealSense_D435"/>
|
||||
<addaction name="menuRealSense_L515"/>
|
||||
<addaction name="menuXvisio_SeerSense"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuStereo_camera">
|
||||
<property name="title">
|
||||
@@ -1730,6 +1741,14 @@
|
||||
<string>Velodyne VLP-16</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionXvisio_SeerSense">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Xvisio</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
|
||||
+172
-145
@@ -63,7 +63,7 @@
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<y>-640</y>
|
||||
<width>713</width>
|
||||
<height>4653</height>
|
||||
</rect>
|
||||
@@ -95,7 +95,7 @@
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>11</number>
|
||||
<number>5</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="page_22">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_29" stretch="0,0">
|
||||
@@ -3424,7 +3424,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
||||
<item>
|
||||
<widget class="QStackedWidget" name="stackedWidget_src">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="page_41">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_64">
|
||||
@@ -3515,6 +3515,11 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
||||
<string>Kinect for Azure</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Xvisio SeerSense</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
@@ -3535,7 +3540,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
||||
<item>
|
||||
<widget class="QStackedWidget" name="stackedWidget_rgbd">
|
||||
<property name="currentIndex">
|
||||
<number>4</number>
|
||||
<number>11</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="page_32">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_63">
|
||||
@@ -3647,22 +3652,62 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
||||
<property name="title">
|
||||
<string>OpenNI 2</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_54" columnstretch="0,0,1">
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="label_231">
|
||||
<layout class="QGridLayout" name="gridLayout_54" columnstretch="0,0,0">
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="label_217">
|
||||
<property name="text">
|
||||
<string>Path to a *.ONI file.</string>
|
||||
<string>Auto white balance.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_openni2OniPath">
|
||||
<item row="2" column="2">
|
||||
<widget class="QLabel" name="label_218">
|
||||
<property name="text">
|
||||
<string>Auto exposure.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QSpinBox" name="openni2_exposure">
|
||||
<property name="maximum">
|
||||
<number>65535</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QCheckBox" name="openni2_stampsIdsUsed">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="2">
|
||||
<widget class="QLabel" name="label_641">
|
||||
<property name="text">
|
||||
<string>Depth decimation.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QLabel" name="label_220">
|
||||
<property name="text">
|
||||
<string>Gain.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
@@ -3672,10 +3717,10 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="label_217">
|
||||
<item row="8" column="2">
|
||||
<widget class="QLabel" name="label_436">
|
||||
<property name="text">
|
||||
<string>Auto white balance.</string>
|
||||
<string>IR-Depth vertical shift. Positive toward up, negative toward down.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
@@ -3692,103 +3737,6 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLabel" name="label_218">
|
||||
<property name="text">
|
||||
<string>Auto exposure.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QCheckBox" name="openni2_autoExposure">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QLabel" name="label_219">
|
||||
<property name="text">
|
||||
<string>Exposure.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QSpinBox" name="openni2_exposure">
|
||||
<property name="maximum">
|
||||
<number>65535</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QLabel" name="label_220">
|
||||
<property name="text">
|
||||
<string>Gain.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSpinBox" name="openni2_gain">
|
||||
<property name="maximum">
|
||||
<number>1000</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>100</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2">
|
||||
<widget class="QLabel" name="label_264">
|
||||
<property name="text">
|
||||
<string>Use timestamps and frame IDs from OpenNI2.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QCheckBox" name="openni2_stampsIdsUsed">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2">
|
||||
<widget class="QLabel" name="label_223">
|
||||
<property name="text">
|
||||
<string>Mirroring.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QCheckBox" name="openni2_mirroring">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="2">
|
||||
<widget class="QLabel" name="label_435">
|
||||
<property name="text">
|
||||
@@ -3799,29 +3747,6 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QSpinBox" name="openni2_hshift">
|
||||
<property name="suffix">
|
||||
<string> pix</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>-9999</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>9999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="2">
|
||||
<widget class="QLabel" name="label_436">
|
||||
<property name="text">
|
||||
<string>IR-Depth vertical shift. Positive toward up, negative toward down.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QSpinBox" name="openni2_vshift">
|
||||
<property name="suffix">
|
||||
@@ -3835,16 +3760,6 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="2">
|
||||
<widget class="QLabel" name="label_641">
|
||||
<property name="text">
|
||||
<string>Depth decimation.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<widget class="QSpinBox" name="openni2_depth_decimation">
|
||||
<property name="suffix">
|
||||
@@ -3858,6 +3773,96 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QLabel" name="label_219">
|
||||
<property name="text">
|
||||
<string>Exposure.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2">
|
||||
<widget class="QLabel" name="label_264">
|
||||
<property name="text">
|
||||
<string>Use timestamps and frame IDs from OpenNI2.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2">
|
||||
<widget class="QLabel" name="label_223">
|
||||
<property name="text">
|
||||
<string>Mirroring.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSpinBox" name="openni2_gain">
|
||||
<property name="maximum">
|
||||
<number>1000</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>100</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QCheckBox" name="openni2_mirroring">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_openni2OniPath">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="label_231">
|
||||
<property name="text">
|
||||
<string>Path to a *.ONI file.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QSpinBox" name="openni2_hshift">
|
||||
<property name="suffix">
|
||||
<string> pix</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>-9999</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>9999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QCheckBox" name="openni2_autoExposure">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -4914,6 +4919,23 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page_99">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_180">
|
||||
<item>
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
@@ -8139,6 +8161,11 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
||||
<string>ZED sdk</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>SeerSense</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
@@ -8736,7 +8763,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="page_99">
|
||||
<widget class="QWidget" name="page_98">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_177">
|
||||
<item>
|
||||
<spacer name="verticalSpacer_83">
|
||||
@@ -11887,7 +11914,7 @@ see Sqlite3 doc 'PRAGMA synchronous'.</string>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLabel" name="label_755">
|
||||
<widget class="QLabel" name="label_757">
|
||||
<property name="text">
|
||||
<string>Likelihood ratio for VP.</string>
|
||||
</property>
|
||||
|
||||
@@ -65,6 +65,7 @@ void showUsage()
|
||||
" 13=MYNT EYE S\n"
|
||||
" 14=ZED Open Capture\n"
|
||||
" 15=depthai-core\n"
|
||||
" 16=XVSDK (SeerSense)\n"
|
||||
" Options:\n"
|
||||
" -rate #.# Input rate Hz (default 0=inf)\n"
|
||||
" -device # Device ID (number or string)\n"
|
||||
@@ -334,6 +335,15 @@ int main(int argc, char * argv[])
|
||||
}
|
||||
camera = new rtabmap::CameraDepthAI(deviceId);
|
||||
}
|
||||
else if (driver == 16)
|
||||
{
|
||||
if (!rtabmap::CameraSeerSense::available())
|
||||
{
|
||||
UERROR("Not built with XVisio SDK support...");
|
||||
exit(-1);
|
||||
}
|
||||
camera = new rtabmap::CameraSeerSense();
|
||||
}
|
||||
else
|
||||
{
|
||||
UFATAL("");
|
||||
|
||||
Reference in New Issue
Block a user