GridMap integration (#1180)

* GridMap integration

* Removed GridGlobal/FullUpdate parameter. Bump version 0.21.3. Mvoed specialized global map classes under global_map sub dir. Renamed Map -> GlobalMap.

* UI: Added elevation map visualization

* Added LocalGridCache class to share cache between global maps

* Fixed OctoMap nans. DbViewer: Added frontiers visualization.

* convenient functions for ros

* Small fix

* fixed build without GridMap

* CI disabled fail-fast

* CI updated checkout action to v4
This commit is contained in:
matlabbe
2023-12-17 22:44:11 -08:00
committed by GitHub
parent 45392fcfc6
commit 71415992ac
44 changed files with 5332 additions and 4255 deletions

View File

@@ -186,6 +186,14 @@ public:
float opacity);
void removeOccupancyGridMap();
bool addElevationMap(
const cv::Mat & map32FC1,
float resolution, // cell size
float xMin,
float yMin,
float opacity);
void removeElevationMap();
void updateCameraTargetPosition(
const Transform & pose);

View File

@@ -44,6 +44,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <rtabmap/core/Link.h>
#include <rtabmap/core/Signature.h>
#include <rtabmap/core/GlobalMap.h>
class Ui_DatabaseViewer;
class QGraphicsScene;
@@ -93,6 +94,7 @@ private Q_SLOTS:
void selectObstacleColor();
void selectGroundColor();
void selectEmptyColor();
void selectFrontierColor();
void editDepthImage();
void generateGraph();
void editSaved2DMap();
@@ -226,12 +228,10 @@ private:
std::multimap<int, rtabmap::Link> linksRefined_;
std::multimap<int, rtabmap::Link> linksAdded_;
std::multimap<int, rtabmap::Link> linksRemoved_;
std::map<int, std::pair<std::pair<cv::Mat, cv::Mat>, cv::Mat> > localMaps_; // < <ground, obstacles>, empty>
std::map<int, std::pair<float, cv::Point3f> > localMapsInfo_; // <cell size, viewpoint>
std::map<int, std::pair<std::pair<cv::Mat, cv::Mat>, cv::Mat> > generatedLocalMaps_; // < <ground, obstacles>, empty>
std::map<int, std::pair<float, cv::Point3f> > generatedLocalMapsInfo_; // <cell size, viewpoint>
std::map<int, LaserScan> modifiedLaserScans_;
std::vector<double> odomMaxInf_;
LocalGridCache localMaps_;
LocalGridCache generatedLocalMaps_;
OctoMap * octomap_;
ExportCloudsDialog * exportDialog_;
QDialog * editDepthDialog_;

View File

@@ -39,6 +39,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "rtabmap/core/OdometryEvent.h"
#include "rtabmap/core/CameraInfo.h"
#include "rtabmap/core/Optimizer.h"
#include "rtabmap/core/GlobalMap.h"
#include "rtabmap/gui/PreferencesDialog.h"
#include <pcl/point_cloud.h>
@@ -75,6 +76,7 @@ class PostProcessingDialog;
class DepthCalibrationDialog;
class DataRecorder;
class OctoMap;
class GridMap;
class MultiSessionLocWidget;
class RTABMAP_GUI_EXPORT MainWindow : public QMainWindow, public UEventsHandler
@@ -388,11 +390,13 @@ private:
std::pair<int, std::pair<std::pair<pcl::PointCloud<pcl::PointXYZRGB>::Ptr, pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr>, pcl::IndicesPtr> > _previousCloud; // used for subtraction
std::map<int, float> _cachedWordsCount;
std::map<int, float> _cachedLocalizationsCount;
rtabmap::LocalGridCache _cachedLocalMaps;
std::map<int, LaserScan> _createdScans;
rtabmap::OccupancyGrid * _occupancyGrid;
rtabmap::OctoMap * _octomap;
rtabmap::GridMap * _elevationMap;
std::map<int, pcl::PointCloud<pcl::PointXYZRGB>::Ptr> _createdFeatures;

View File

@@ -227,6 +227,7 @@ public:
double getSubtractFilteringAngle() const;
bool getGridMapShown() const;
int getElevationMapShown() const;
int getGridMapSensor() const;
bool projMapFrame() const;
double projMaxGroundAngle() const;