Commit Graph
60 Commits
Author SHA1 Message Date
matlabbe c14e20330f Fixed SIFT octave issue causing registration to always fail. Added Bundler export points option. 2018-10-24 20:01:57 -04:00
matlabbe f1546c1fca Replaced all optimizeIncremental() by optimizeMultiSession() to fix GTSAM errors when merging multiple maps together. DBReader: always publish saved stamp. DBViewer: added actions to set covariance of all neighbor or loop closure links. 2018-10-15 17:07:18 -04:00
matlabbe 1595405871 DbSqlite3: fixed Feature.depth_[x,y,z] not saving correctly NaN values (then NaNs were wrongly converted to 0 on reload). Gui: Added stereo exposure compensation option in Source panel. 2018-02-11 16:07:26 -05:00
matlabbe 977d21eed5 Update 0.15.4.
Parameters:
-Added "GridGlobal/MaxNodes=0", "Rtabmap/PublishRAMUsage=false", "Mem/DepthAsMask=true", "Kp/FlannRebalancingFactor=2.0", "Vis/DepthAsMask=true".
-Modified "Kp/DetectorStrategy=6", "Kp/MaxFeatures=500",  "Mem/UseOdomFeatures=true", "GFTT/QualityLevel=0.001", "GFTT/MinDistance=3", "RGBD/OptimizeMaxError=1", "RGBD/ProximityPathFilteringRadius=1", "Odom/GuessMotion=true", "Odom/VisKeyFrameThr=150", "OdomF2M/BundleAdjustment=1", "Vis/Iterations=300" if built with g2o, "OdomF2M/BundleAdjustmentMaxFrames=10", "OdomFovis/MinFeaturesForEstimate=20", "OdomORBSLAM2/MapSize=3000", "Reg/RepeatOnce=true", "Vis/PnPRefineIterations=0" if built with g2o, "Vis/CorGuessMatchToProjection=true", "Vis/BundleAdjustment=1" if built with g2o, "Icp/MaxCorrespondenceDistance=0.1", "Icp/PointToPlaneK=5", "Icp/PointToPlaneRadius=1", "Icp/PM=true" if built with libpointmatcher, "Stereo/MaxLevel=5", "Stereo/MinDisparity=0.5".

BayesFilter: optimized prediction matrix update. Use of new argument "ignoreLocalSpaceLoopIds" of Memory::getNeighborsId() to ignore loop closure link by space in prediction update.
CameraThread: Added stereo exposure compensation option.
CameraRGB: Added forceGroundNormalsUp option and added support of ground truth from EuRoC dataset.
Statistics: Added "Memory/RAM_usage/MB".
Transform: Added clone() method to do deep copy.
Graph::importPoses(): EuRoC format support (9).
Rtabmap: Local visual loop closures are now identified as GlobalClosure link type.
OccupancyGrid/OctoMap: updated how cache is used (old node retrieved can be re-added to map without re-assembling the whole map).
OdometryF2F: when using ICP, increasing correspondence distance for first two frames. If Vis/CorType=1 and registration fails, second guess without motion is done with Vis/CorType=0.
OdometryF2M/RegVis: updated how features are removed from the map, using new projectedIDs filled in RegistrationInfo by RegistrationVis.
OdometryORBSLAM2: Maximum size of the feature map can be set with "OdomORBSLAM2/MapSize" parameter.
CloudViewer: fixed opengl camera drifting in follow mode.
DatabaseViewer: Added optimization scale option. ConstraintsView: hide loop closure links if type is ignored in gui parameters.
MainWindow: Support of "GridGlobal/MaxNodes" parameters when updating the maps.
UPlot: don't show ellipses when not in graphics view mode, updated how "random" colors are attributed to curves
Added rtabmap-euroc_dataset tool. Updated rtabmap-kitti_dataset and rtabmap-rgbd_dataset tools.
Added rtabmap-reprocess tool.
2018-02-01 22:17:46 -05:00
matlabbe 9f80f4ac42 RegVis: convert to 3dof before SBA 2017-12-21 10:16:46 -05:00
matlabbe d6058768fc RegVis: fixed out-of-range vector error when guess is used and we match to projections. ImageView: Added right-click menu option to set a fixed size for features 2017-12-18 14:38:54 -05:00
matlabbe 775b80eff5 0.15.2: Fixed Transform's not orthogonal rotation matrix causing problems with GTSAM (normalize rotation each time transforms are multiplied, and for backward compatibility automatically normalize rotation of all transforms loaded from old databases prior to 0.15.2). Added Vis/CorGuessMatchToProjection, Icp/PMMatcherKnn and Icp/PMMatcherEpsilon parameters. CameraRGB: fixed max scans number when filtering. Link: transfering maximum covariance when merging. OptimizerGTSAM: updated how covariance are copied based on GTSAM official example. util3d::loadBINCloud(): fixed dim parameter not used. DatabaseViewer: Added option in graph view to ignore intermediate nodes when optimizing the graph. 2017-12-09 21:44:53 -05:00
matlabbe 4452e637ad 0.15.1: CameraImages: added ground truth time diff, fixed memory leak when loading binary scans. CameraRGBDImages and CameraStereoImages: fixed start id. Feature2D: added grid rows and cols parameters (Kp/GridRows, Kp/GridCols, Vis/GridRows, Vis/GridCols). OdomInfo: publish bundle frames. OdometryORBSLAM2: added OdomORBSLAM2/Fps and OdomORBSLAM2/MaxFeatures parameters. Registration: added Reg/RepeatOnce parameter and removed variance normalization. For util2d::getDepth() and util3d::projectDepthTo3D(), maxZError parameter is now depthErrorRatio to be dependent of the sensor range. Database: save image width and height from stereo calibration. OptimizerG2O: fixed SBA optimization when using g2o built from ORBSLAM2 library. OptimizerGTSAM: to increase optimization stability, all rotations in information matrix are divided by 100000. Added rtabmap-report tool. 2017-11-30 16:52:03 -05:00
matlabbe 274e7c579e Added some warnings 2017-11-14 16:28:47 -05:00
matlabbe 3443c3b8ea RegistrationVis: fixed assert covariance in bundle adjustement when transform is perfect (covariance is null) by setting an epsilon to generated covariance is null or very close to 0 2017-07-26 15:27:54 -04:00
matlabbe e361abcecd Reg: normalize covariance angle /10 2017-05-22 21:11:36 -04:00
matlabbe 385b7e3389 Parameters: Added "Reg/VarianceNormalized". Registration: Transforms are now only normalized in Registration. Added rgbd_dataset tool. MainWindow: odom inliers-only shown option. ExportCloudsDialog: ignoring intermediate nodes for texturing (if they don't have data). DatabaseViewer: "optimized" checkbox enabled in Constraints view for non-neighbor links too. 2017-05-22 11:48:01 -04:00
matlabbe 104c1e6945 0.13.0 Database: Added velocity field to Node table, renamed Map_Node_Word table to Feature, added information_matrix field to Link table (replacing rot_variance and trans_variance). Added graph::calcKittiSequenceErrors().Added "Mem/IntermediateNodeDataKept" parameter (default false). Updated all interfaces using rotVariance and transVariance values with covariance matrix instead. g2o SBA: always use covariance in links. kitti-dataset tool: added --disp option and kitti statistics are shown at the end. StatsToolBox: units can have "/". 2017-05-11 15:02:18 -04:00
matlabbe af1cdadabd Tango: updated export workflow, added sketchfab activity, added graph optimization parameters, fixed raw images kept in memory (disabled reexctract words on loop closure while updating memory to be able to create more features for transform estimation than needed in vocabulary), portrait/landscape orientation, updated to Eisa TangoSDK. DBReader: fixed high variance when node has no links (if not the first in the current map id). MainWindow: remove frustums not in the current graph. 2017-02-15 19:07:10 -05:00
matlabbe 0d0577a886 3D Rendering: Added option to show graph's frustums, added option to filter floor and/or ceiling. 2017-02-09 18:32:44 -05:00
matlabbe 8895173a2b Memory::computeTransform(): Fixed empty "from" image when reextract features is true and ICP-only registration is used 2017-01-05 19:31:18 -05:00
matlabbe ac1c5f81ae fixed some compilation warnings 2017-01-03 22:14:21 -05:00
matlabbe 6abed48af6 0.11.13. OdometryF2M: fixed/improved bundle adjustment option. OptimizerG2O: now doing stereo BA instead of mono BA (interface of Optimizer::optimzeBA() has slightly changed to include depth in word references). Registration and Odometry set angular and linear variances separately. RegistrationVis set x100 smaller variance for rotation. Added keypoints3D member to SensorData. Added Transform::getAngle() for convenience. Odometry normalizes variances. RtabmapThread does variance summation when frames are discarded. Updated how variance is computed by util3d::estimateMotion3Dto2D(), ignoring very large variance from the computation (stereo issue with very far matched features). MainWindow: added option to align with ground truth or not (default true as before), added for odometry statistics (including bundle stuff), update ground truth statistics every time a graph is loaded/optimized. CameraRGB can now load odometry files (to fake an input odometry). PreferencesDialog: Added option to Odometry so it can use a different registration approach than the default one (the one used for loop closure). Parameters: added new g2o/Solver option 3 (Eigen), added g2o/RobustKernelDelta, g2o/Baseline and Odom/VisKeyFrameThr. Database: from 0.11.13, ignoring patch version when comparing is database version is newer than app version used. 2017-01-03 21:05:00 -05:00
matlabbe 3363772ce5 CloudViewer: added backface culling option on right-click menu. MainWindow: removed error msg on wrong decimation (util3d already handle this case) 2016-11-27 20:10:05 -05:00
matlabbe 121446d648 Removed parameter "OdomF2M/FixedMapPath". GUI: added odometry disabled option. Rtabmap can now localize even if odometry input is null (only in localization mode). 2016-11-27 14:30:11 -05:00
matlabbe 693f623e5e Fixed GUI crash when using rectified RGB only (with odometry). Fixed empty local map when loading a fixed local map for OdometryF2M. 2016-11-25 19:52:34 -05:00
matlabbe 9276607920 Added Bundle Adjustment options to OdometryF2M (OdomF2M/BundleAdjustment) and RegistrationVis (Vis/BundleAdjustment). Added logger thread filter. RegistrationVis: Copy back corresponding input word IDs to output words when available. Memory::computeTransform() added option to use already computed corespondences if possible (proximity detection by time uses this). Updated Optimizer::optimizeBA() interface. 2016-11-14 19:54:31 -05:00
matlabbe edcd92fbb7 DBViewer: merged Refine (visual) and Refine (ICP) in the same Refine action (registration used is defined by Reg/Strategy value). Updated how detect more loop closures work in MainWindow and DBViewer (using current registration parameters, visual and/or icp) 2016-11-09 16:44:08 -05:00
matlabbe fe6eb01404 Fixed opencv setSize assert error (RegistrationVis):
[DEBUG] (2016-08-29 10:26:03.821) RegistrationVis.cpp:460::computeTransformationImpl() kptsFrom=0
[DEBUG] (2016-08-29 10:26:03.821) RegistrationVis.cpp:461::computeTransformationImpl() kptsTo=0
OpenCV Error: Assertion failed (s >= 0) in setSize, file /home/mathieu/workspace/opencv-2.4.11/modules/core/src/matrix.cpp, line 116
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/mathieu/workspace/opencv-2.4.11/modules/core/src/matrix.cpp:116: error: (-215) s >= 0 in function setSize
2016-08-31 12:43:54 -04:00
matlabbe a0d76eabe5 RegistrationVis: don't assert if descriptorsFrom is 0, only if kptsFrom and descriptorsFrom are non null and not equal 2016-08-12 10:59:43 -04:00
matlabbe ca6cd19fb1 Updated Copyright year and About dialog summary 2016-07-17 21:57:10 -04:00
matlabbe 1398b71b60 Merge branch 'master' of github.com:introlab/rtabmap into devel 2016-06-27 12:17:55 -04:00
matlabbe f69ca56179 Features2D: Using 255 mask values for ORB (#89). Fixed ignored mask by FAST when called from ORB. 2016-06-27 11:54:21 -04:00
matlabbe 798c3cb373 Registration: added warning when GuessFlowSize is set and multi-camera is detected instead of crashing on an assert 2016-06-15 18:13:11 -04:00
matlabbe dece54ca3e Added parameters: Mem/ImagePreDecimation Mem/ImagePostDecimation Odom/ImageDecimation 2016-04-08 16:15:08 -04:00
matlabbe 04df6ba41c Stereo: Fixed min/max depth filtering 2016-03-13 16:58:36 -04:00
matlabbe 6c15cb8b25 Fixed multi-kinects keypoint projection 2016-03-11 23:27:41 -05:00
matlabbe 609cc3dc59 Fixed some missing rgb conversions before descriptor extractions. RegVis: re-extracting 3D kpts if Signature.words3() and actual kpts are not the same size. Updated fast visual guess on Memory::computeTransform(). 2016-03-09 19:17:29 -05:00
matlabbe 0f477d6853 RegVis: if calibration is not found, local features matching using guess is not done, global matching is done instead. CameraModel/StereoCameraModel: added imageSize argument to constructors 2016-03-09 17:15:05 -05:00
matlabbe 62c8be40b9 Added ORB+FastGrid implementation (only with OpenCV2). Updated default parameters: Odom/GuessFromMotion=false, Vis/CorNNType=1. RegistrationVis: octave aware on features matching with motion 2016-03-08 12:31:32 -05:00
matlabbe eefd557ab4 Added parameter "RGBD/ProximityAngle"
Updated default of GuessMotion parameters
Proximity detection by time: added guess transform based on optimized poses
RegistrationVis: ByPass OpticalFlow if no images are detected (use features matching instead if features are set)
solvePnPRansac() refining: using std dev instead of variance
Statistics panel: creating Camera/GUI/Odometry panels without the need to start detection (issue #51)
Statistics: Adding a GT panel when ground truth poses are detected with RMSE info
2016-03-02 18:11:19 -05:00
matlabbe b6fb947310 3D->3D estimation refining: using 3x sqrt(variance) instead of sqrt(9x variance). GUI: added features cloud rendering option. CloudViewer: fixed slow updateCameraTargetPosition() 2016-03-01 17:33:27 -05:00
matlabbe a89b8cb4fe Removed parameters Vis/UseDepthAsMask and Mem/UseDepthAsMask (just always do it when a depth is detected) 2016-03-01 14:40:40 -05:00
matlabbe e6e9c61c38 RegistraitonVis: generate always 3D keypoints if possible 2016-02-29 16:41:37 -05:00
matlabbe a8d1b91083 OdometryF2F: Fixed broken OpticalFlow approach 2016-02-24 17:42:23 -05:00
matlabbe 172e9857c7 Fixed RegistrationVis feature matching behavior when NaN 3D keypoints are found 2016-02-24 12:45:00 -05:00
matlabbe 061211b1b6 OodmetryF2M: Added getter to last frame 2016-02-23 11:46:07 -05:00
matlabbe 9e446aab7a Fixed some signed/unsigned comparison warnings 2016-02-23 11:06:24 -05:00
matlabbe ccc4b4a6c2 Parameters renamed: "OdomLocalMap" group is now "OdomF2M" for Frame to Map odometry. Visual registration feature matching: using guess transform to limit the radius of correspondences "Vis/CorGuessWinSize=16" 2016-02-22 16:13:14 -05:00
matlabbe c6a46a7238 0.11.2: First Google Tango release 2016-02-15 19:35:24 -05:00
matlabbe eb21280f04 Changed CameraModel::isValid() to CameraModel::isValidForProjection() for clarity (in contrast to CameraModel::isValidForRectification()) 2016-01-19 21:01:56 -05:00
matlabbe 7bfd76e747 -Updated CameraModel and StereoCameraModel so that a stereo camera model can be initialization from know intrinsics and extrinsics
-CreateSimpleCalibrationDialog updated to create mono/stereo calibration files with advanced option (setting intrinsics of each camera + extrinsics between them). Rectification R and new camera P matrices are then automatically computed.
-Added GeodeticCoords class for convience conversion between GPS values (latitude/longitude/altitude) to local coordinate (ENU).
-Added support of Malaga Urban and St Lucia ground truths.
-CameraImages: added option to debayer images. Timestamps file: added support of "sec millisec" format.
-Added UException class: exceptions are sent instead of exiting the application on UASSERT or UFATAL.
2016-01-19 17:43:33 -05:00
matlabbe 136867253d Added "Vis/UseDepthAsMask" parameter (don't detect features where depth is not available or it is over "Vis/MaxDepth") 2016-01-13 09:20:15 -05:00
matlabbe 6d399b6fb9 Refactoring Odometry 2016-01-07 13:59:21 -05:00
matlabbe 28d9bbb85d Refactoring Registration: added RegistrationInfo class, pipeline registration. Camera source: create laser scan from depth image. Removed OdometryICP as the same behavior can be achieved with OdometryF2F and "Reg/Strategy" = 1 (ICP) or 2 (Vis+ICP). 2016-01-06 17:26:55 -05:00