mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-07 18:47:48 +08:00
* Adding OpenGV as submodule (optional) * Remove submodule to migrate to FetchContent * using FetchContent * remove empty .gitmodules * Fixing OpenGV not able to find eigen on windows * patching opengv to adjust -march=native based on PCL * fixing patching on windows * eigen fix * PR cancel on-going CI builds if new commit is added to PR * try another approach * updating patch with some logs * more debug mesage * fixing EIGEN_INCLUDE_DIR * enable rolling_builds on appveyor * removed rolling_builds appveyor * fixing eigen cache * test * more debug logs * another try * cleanup * updated appveyor to work with fetchcontent * removed mkdir build (appveyor) * appveyor: trying ninja to increase CI speed * removed mkdr * appveyor: spitting opengv and rtabmap builds to be under 60 min per job * appveyor: caching dependencies * using global configuration * using baked image * fixing wget in ps * fixing not support for * pip error * reverted pip install * fixed realsense cache * fixing multi step build * removing baked image * typo * Windows: Converted appveyor to github actions * updated boost version * fixing boost * udpated boost config * boost... * platform_version * install boost directly * silent boost install * very silent boost * fixing ls * added boost install dir * showing boost install dir * moved windows dependencies in external action file * explicitly save boost cache to same time on iterations * pip install gdown * update * caching more deps * caching all depts * removed explicit boost cache save * mscv 14.0 * forcing building visual studio 14 2015 * installing v12 in 2022 instead * setup cmd prompt * init right toolset * fixing system version for opengv compilation error * fixing package and artifact * CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION * removing cmd * find manually psapi.lib * resolve * refactor psapi env * forcing 10.0.19041.0 * using windows=2022 runner instead * added vcpkg * commenting windows-latest for now * trying vcpkg instead * search path * updated path * moved json * removed deleted file for git * adding a real version * using version-string * cleanup vcpkg * building artifacts with vcpkg * removed old windows build approach, added custom dependencies (gtsam, libpointmatcher) to vcpkg build * udpated vcpkg version for issue https://github.com/microsoft/vcpkg/pull/49103 * try with minimal dep first * disable opengv for now * try vcpkg single compilation * space * updated link * fixed qupote * fixing cache name * adding debug folder * adjust path * adjust path * providing vcpkg binaries instead * ident * added triplet * added BOOST_ROOT * boost root * boost root * fixed path * adding eigen headers * try path * cmake prefix path * boost timer def * libnabo fixes * pointmatcher prefix * disabling pointmathcer tests * updated cmake parameters * changed how file is downloaded * trying curl instead * puttoing backe InvokeWeb because it is a dropbox issue * skipping optional deps for now * ficing env variable * triplet * installing triplets * not overriding default vcpkg env variables * missing path * manifet install off * that was working locally * missing protobuf path * fixing tiff not found * fixing vtk not found * more vtk fixes * another thy * changing download url * updated url * try * shoudl work now * protobuf exe * readding tiff * explicit vcpkg installed folder * missing commands * try without tiff * ficing vtk comple path * -DPSAPI_LIBRARIES=Psapi.lib * quoting * fixing psapi required * Set up MSVC Developer Command Prompt * disabling pckaging for now * openni.ini * renabling packing * Added stripped deps * fix name * updated binaries * format * updated opengv eigen path * added tbb dep * updatd archive name with vs version * updated archive in action * fixing patch error * corrupted * updated gtsam version / vcpkg * removed appveyor. Set internal opengv build disabled by defaut (because build can be very long on some machines), will enable it inside the ros release branches instead. * updated opengv patch * gtsam mkl dep * updated vcpkg binaries * updated patches * removed mkl dep * missing eigen in gtsam dep * disabling gtsam till we find a compatible version locally * all working locally! * removed ninja * working python calls * fixed hard symlink for python3.dll * fixed qt missing png, fixed opengv not finding eigen with config, fixed python3.dll missing * fixed flaoting dockwidget on start, removed cmd line window when launching bundled app * use sub-packages cudnn * Added cuda dev workflow * fixed archive name * Updated deps with pytorch cuda * updating ci PATH * fixing ci build without torch * rename cuda artifacts * cache cuda, add job to test internal opengv build * Updated output artifacts zip name * windows package: only zip on pull request * Change USE_INTERNAL_OPENGV to BUILD_OPENGV * use use-github-cache * updated artifacts path
332 lines
12 KiB
C++
332 lines
12 KiB
C++
/*
|
|
Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
|
|
All rights reserved.
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
modification, are permitted provided that the following conditions are met:
|
|
* Redistributions of source code must retain the above copyright
|
|
notice, this list of conditions and the following disclaimer.
|
|
* Redistributions in binary form must reproduce the above copyright
|
|
notice, this list of conditions and the following disclaimer in the
|
|
documentation and/or other materials provided with the distribution.
|
|
* Neither the name of the Universite de Sherbrooke nor the
|
|
names of its contributors may be used to endorse or promote products
|
|
derived from this software without specific prior written permission.
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
#include "rtabmap/gui/AboutDialog.h"
|
|
#include "rtabmap/core/Parameters.h"
|
|
#include "rtabmap/core/CameraRGBD.h"
|
|
#include "rtabmap/core/CameraStereo.h"
|
|
#include "rtabmap/core/Optimizer.h"
|
|
#include "ui_aboutDialog.h"
|
|
#include <opencv2/core/version.hpp>
|
|
#include <pcl/pcl_config.h>
|
|
#include <vtkVersion.h>
|
|
|
|
namespace rtabmap {
|
|
|
|
AboutDialog::AboutDialog(QWidget * parent) :
|
|
QDialog(parent)
|
|
{
|
|
_ui = new Ui_aboutDialog();
|
|
_ui->setupUi(this);
|
|
QString version = Parameters::getVersion().c_str();
|
|
QString cv_version = CV_VERSION;
|
|
#if CV_MAJOR_VERSION < 3
|
|
#ifdef RTABMAP_NONFREE
|
|
_ui->label_opencv_license->setText("Not Commercial [With nonfree module]");
|
|
#else
|
|
_ui->label_opencv_license->setText("BSD [Without nonfree module]");
|
|
#endif
|
|
#elif defined(HAVE_OPENCV_XFEATURES2D)
|
|
#ifdef RTABMAP_NONFREE
|
|
_ui->label_opencv_license->setText("Not Commercial [With xfeatures2d and nonfree modules]");
|
|
#else
|
|
#if CV_MAJOR_VERSION < 4 || (CV_MAJOR_VERSION==4 && CV_MINOR_VERSION<5)
|
|
_ui->label_opencv_license->setText("BSD [With xfeatures2d module]");
|
|
#else
|
|
_ui->label_opencv_license->setText("Apache 3 [With xfeatures2d module]");
|
|
#endif
|
|
#endif
|
|
#else
|
|
#if CV_MAJOR_VERSION < 4 || (CV_MAJOR_VERSION==4 && CV_MINOR_VERSION<5)
|
|
_ui->label_opencv_license->setText("BSD [Without xfeatures2d and nonfree modules]");
|
|
#else
|
|
_ui->label_opencv_license->setText("Apache 3 [Without xfeatures2d and nonfree modules]");
|
|
#endif
|
|
#endif
|
|
_ui->label_version->setText(version);
|
|
_ui->label_opencv_version->setText(cv_version);
|
|
_ui->label_pcl_version->setText(PCL_VERSION_PRETTY);
|
|
_ui->label_vtk_version->setText(vtkVersion::GetVTKVersion());
|
|
_ui->label_qt_version->setText(qVersion());
|
|
#ifdef RTABMAP_ORB_OCTREE
|
|
_ui->label_orboctree->setText("Yes");
|
|
_ui->label_orboctree_license->setEnabled(true);
|
|
#else
|
|
_ui->label_orboctree->setText("No");
|
|
_ui->label_orboctree_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_TORCH
|
|
_ui->label_sptorch->setText("Yes");
|
|
_ui->label_sptorch_license->setEnabled(true);
|
|
#else
|
|
_ui->label_sptorch->setText("No");
|
|
_ui->label_sptorch_license->setEnabled(false);
|
|
#endif
|
|
#if defined(RTABMAP_TORCH) && defined(RTABMAP_PYTHON)
|
|
_ui->label_sprpautrat->setText("Yes");
|
|
_ui->label_sprpautrat_license->setEnabled(true);
|
|
#else
|
|
_ui->label_sprpautrat->setText("No");
|
|
_ui->label_sprpautrat_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_PYTHON
|
|
_ui->label_pymatcher->setText("Yes");
|
|
_ui->label_pymatcher_license->setEnabled(true);
|
|
#else
|
|
_ui->label_pymatcher->setText("No");
|
|
_ui->label_pymatcher_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_FASTCV
|
|
_ui->label_fastcv->setText("Yes");
|
|
_ui->label_fastcv_license->setEnabled(true);
|
|
#else
|
|
_ui->label_fastcv->setText("No");
|
|
_ui->label_fastcv_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_PDAL
|
|
_ui->label_pdal->setText("Yes");
|
|
_ui->label_pdal_license->setEnabled(true);
|
|
#else
|
|
_ui->label_pdal->setText("No");
|
|
_ui->label_pdal_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_LIBLAS
|
|
_ui->label_liblas->setText("Yes");
|
|
_ui->label_liblas_license->setEnabled(true);
|
|
#else
|
|
_ui->label_liblas->setText("No");
|
|
_ui->label_liblas_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_OPENGV
|
|
_ui->label_opengv->setText("Yes");
|
|
_ui->label_opengv_license->setEnabled(true);
|
|
#else
|
|
_ui->label_opengv->setText("No");
|
|
_ui->label_opengv_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_CUDASIFT
|
|
_ui->label_cudasift->setText("Yes");
|
|
_ui->label_cudasift_license->setEnabled(true);
|
|
#else
|
|
_ui->label_cudasift->setText("No");
|
|
_ui->label_cudasift_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_OCTOMAP
|
|
_ui->label_octomap->setText("Yes");
|
|
_ui->label_octomap_license->setEnabled(true);
|
|
#else
|
|
_ui->label_octomap->setText("No");
|
|
_ui->label_octomap_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_GRIDMAP
|
|
_ui->label_gridmap->setText("Yes");
|
|
_ui->label_gridmap_license->setEnabled(true);
|
|
#else
|
|
_ui->label_gridmap->setText("No");
|
|
_ui->label_gridmap_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_CPUTSDF
|
|
_ui->label_cputsdf->setText("Yes");
|
|
_ui->label_cputsdf_license->setEnabled(true);
|
|
#else
|
|
_ui->label_cputsdf->setText("No");
|
|
_ui->label_cputsdf_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_OPENCHISEL
|
|
_ui->label_openchisel->setText("Yes");
|
|
#else
|
|
_ui->label_openchisel->setText("No");
|
|
#endif
|
|
#ifdef RTABMAP_ALICE_VISION
|
|
_ui->label_aliceVision->setText("Yes");
|
|
_ui->label_aliceVision_license->setEnabled(true);
|
|
#else
|
|
_ui->label_aliceVision->setText("No");
|
|
_ui->label_aliceVision_license->setEnabled(false);
|
|
#endif
|
|
|
|
_ui->label_freenect->setText(CameraFreenect::available()?"Yes":"No");
|
|
_ui->label_freenect_license->setEnabled(CameraFreenect::available());
|
|
_ui->label_openni->setText(CameraOpenni::available()?"Yes":"No");
|
|
_ui->label_openni_license->setEnabled(CameraOpenni::available());
|
|
_ui->label_openni2->setText(CameraOpenNI2::available()?"Yes":"No");
|
|
_ui->label_openni2_license->setEnabled(CameraOpenNI2::available());
|
|
_ui->label_freenect2->setText(CameraFreenect2::available()?"Yes":"No");
|
|
_ui->label_freenect2_license->setEnabled(CameraFreenect2::available());
|
|
_ui->label_realsense->setText(CameraRealSense::available() ? "Yes" : "No");
|
|
_ui->label_realsense_license->setEnabled(CameraRealSense::available());
|
|
_ui->label_realsense2->setText(CameraRealSense2::available() ? "Yes" : "No");
|
|
_ui->label_realsense2_license->setEnabled(CameraRealSense2::available());
|
|
_ui->label_dc1394->setText(CameraStereoDC1394::available()?"Yes":"No");
|
|
_ui->label_dc1394_license->setEnabled(CameraStereoDC1394::available());
|
|
_ui->label_flycapture2->setText(CameraStereoFlyCapture2::available()?"Yes":"No");
|
|
_ui->label_zed->setText(CameraStereoZed::available()?"Yes":"No");
|
|
_ui->label_zedOC->setText(CameraStereoZedOC::available()?"Yes":"No");
|
|
_ui->label_zedOC_license->setEnabled(CameraStereoZedOC::available());
|
|
_ui->label_k4w2->setText(CameraK4W2::available() ? "Yes" : "No");
|
|
_ui->label_k4a->setText(CameraK4A::available() ? "Yes" : "No");
|
|
_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_orbbec_sdk->setText(CameraOrbbecSDK::available() ? "Yes" : "No");
|
|
_ui->label_orbbec_sdk_license->setEnabled(CameraOrbbecSDK::available());
|
|
|
|
_ui->label_toro->setText(Optimizer::isAvailable(Optimizer::kTypeTORO)?"Yes":"No");
|
|
_ui->label_toro_license->setEnabled(Optimizer::isAvailable(Optimizer::kTypeTORO)?true:false);
|
|
_ui->label_g2o->setText(Optimizer::isAvailable(Optimizer::kTypeG2O)?"Yes":"No");
|
|
_ui->label_g2o_license->setEnabled(Optimizer::isAvailable(Optimizer::kTypeG2O)?true:false);
|
|
_ui->label_gtsam->setText(Optimizer::isAvailable(Optimizer::kTypeGTSAM)?"Yes":"No");
|
|
_ui->label_gtsam_license->setEnabled(Optimizer::isAvailable(Optimizer::kTypeGTSAM)?true:false);
|
|
_ui->label_cvsba->setText(Optimizer::isAvailable(Optimizer::kTypeCVSBA)?"Yes":"No");
|
|
_ui->label_cvsba_license->setEnabled(Optimizer::isAvailable(Optimizer::kTypeCVSBA)?true:false);
|
|
_ui->label_ceres->setText(Optimizer::isAvailable(Optimizer::kTypeCeres)?"Yes":"No");
|
|
_ui->label_ceres_license->setEnabled(Optimizer::isAvailable(Optimizer::kTypeCeres)?true:false);
|
|
|
|
#ifdef RTABMAP_MRPT
|
|
_ui->label_mrpt->setText("Yes");
|
|
_ui->label_mrpt_license->setEnabled(true);
|
|
#else
|
|
_ui->label_mrpt->setText("No");
|
|
_ui->label_mrpt_license->setEnabled(false);
|
|
#endif
|
|
|
|
#ifdef RTABMAP_POINTMATCHER
|
|
_ui->label_libpointmatcher->setText("Yes");
|
|
_ui->label_libpointmatcher_license->setEnabled(true);
|
|
#else
|
|
_ui->label_libpointmatcher->setText("No");
|
|
_ui->label_libpointmatcher_license->setEnabled(false);
|
|
#endif
|
|
|
|
#ifdef RTABMAP_CCCORELIB
|
|
_ui->label_cccorelib->setText("Yes");
|
|
_ui->label_cccorelib_license->setEnabled(true);
|
|
#else
|
|
_ui->label_cccorelib->setText("No");
|
|
_ui->label_cccorelib_license->setEnabled(false);
|
|
#endif
|
|
|
|
#ifdef RTABMAP_OPEN3D
|
|
_ui->label_open3d->setText("Yes");
|
|
_ui->label_open3d_license->setEnabled(true);
|
|
#else
|
|
_ui->label_open3d->setText("No");
|
|
_ui->label_open3d_license->setEnabled(false);
|
|
#endif
|
|
|
|
#ifdef RTABMAP_FOVIS
|
|
_ui->label_fovis->setText("Yes");
|
|
_ui->label_fovis_license->setEnabled(true);
|
|
#else
|
|
_ui->label_fovis->setText("No");
|
|
_ui->label_fovis_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_VISO2
|
|
_ui->label_viso2->setText("Yes");
|
|
_ui->label_viso2_license->setEnabled(true);
|
|
#else
|
|
_ui->label_viso2->setText("No");
|
|
_ui->label_viso2_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_DVO
|
|
_ui->label_dvo->setText("Yes");
|
|
_ui->label_dvo_license->setEnabled(true);
|
|
#else
|
|
_ui->label_dvo->setText("No");
|
|
_ui->label_dvo_license->setEnabled(false);
|
|
#endif
|
|
#ifdef RTABMAP_ORB_SLAM
|
|
#if RTABMAP_ORB_SLAM == 3
|
|
_ui->label_orbslam_title->setText("With ORB SLAM3 :");
|
|
#elif RTABMAP_ORB_SLAM == 2
|
|
_ui->label_orbslam_title->setText("With ORB SLAM2 :");
|
|
#endif
|
|
_ui->label_orbslam->setText("Yes");
|
|
_ui->label_orbslam_license->setEnabled(true);
|
|
#else
|
|
_ui->label_orbslam->setText("No");
|
|
_ui->label_orbslam_license->setEnabled(false);
|
|
#endif
|
|
|
|
#ifdef RTABMAP_OKVIS
|
|
_ui->label_okvis->setText("Yes");
|
|
_ui->label_okvis_license->setEnabled(true);
|
|
#else
|
|
_ui->label_okvis->setText("No");
|
|
_ui->label_okvis_license->setEnabled(false);
|
|
#endif
|
|
|
|
#ifdef RTABMAP_LOAM
|
|
_ui->label_loam->setText("Yes");
|
|
_ui->label_loam_license->setEnabled(true);
|
|
#else
|
|
_ui->label_loam->setText("No");
|
|
_ui->label_loam_license->setEnabled(false);
|
|
#endif
|
|
|
|
#ifdef RTABMAP_MSCKF_VIO
|
|
_ui->label_msckf->setText("Yes");
|
|
_ui->label_msckf_license->setEnabled(true);
|
|
#else
|
|
_ui->label_msckf->setText("No");
|
|
_ui->label_msckf_license->setEnabled(false);
|
|
#endif
|
|
|
|
#ifdef RTABMAP_VINS_FUSION
|
|
_ui->label_vins_fusion->setText("Yes");
|
|
_ui->label_vins_fusion_license->setEnabled(true);
|
|
#else
|
|
_ui->label_vins_fusion->setText("No");
|
|
_ui->label_vins_fusion_license->setEnabled(false);
|
|
#endif
|
|
|
|
#ifdef RTABMAP_OPENVINS
|
|
_ui->label_openvins->setText("Yes");
|
|
_ui->label_openvins_license->setEnabled(true);
|
|
#else
|
|
_ui->label_openvins->setText("No");
|
|
_ui->label_openvins_license->setEnabled(false);
|
|
#endif
|
|
|
|
#ifdef RTABMAP_CUVSLAM
|
|
_ui->label_cuvslam->setText("Yes");
|
|
_ui->label_cuvslam_license->setEnabled(true);
|
|
#else
|
|
_ui->label_cuvslam->setText("No");
|
|
_ui->label_cuvslam_license->setEnabled(false);
|
|
#endif
|
|
|
|
}
|
|
|
|
AboutDialog::~AboutDialog()
|
|
{
|
|
delete _ui;
|
|
}
|
|
|
|
}
|