/* * MapsManager.h * * Created on: 2015-05-14 * Author: mathieu */ #ifndef MAPSMANAGER_H_ #define MAPSMANAGER_H_ #include #include #include #include #include namespace rtabmap { class OctoMap; class Memory; } // namespace rtabmap class MapsManager { public: MapsManager(bool usePublicNamespace); virtual ~MapsManager(); void clear(); bool hasSubscribers() const; std::map getFilteredPoses( const std::map & poses); std::map updateMapCaches( const std::map & poses, const rtabmap::Memory * memory, bool updateCloud, bool updateProj, bool updateGrid, bool updateScan, bool updateOctomap, const std::map & signatures = std::map()); void publishMaps( const std::map & poses, const ros::Time & stamp, const std::string & mapFrameId); cv::Mat generateProjMap( const std::map & filteredPoses, float & xMin, float & yMin, float & gridCellSize); cv::Mat generateGridMap( const std::map & filteredPoses, float & xMin, float & yMin, float & gridCellSize); rtabmap::OctoMap * getOctomap() const {return octomap_;} private: // mapping stuff int cloudDecimation_; double cloudMaxDepth_; double cloudMinDepth_; double cloudVoxelSize_; double cloudFloorCullingHeight_; double cloudCeilingCullingHeight_; bool cloudOutputVoxelized_; bool cloudFrustumCulling_; double cloudNoiseFilteringRadius_; int cloudNoiseFilteringMinNeighbors_; int scanDecimation_; double scanVoxelSize_; bool scanOutputVoxelized_; double projMaxGroundAngle_; int projMinClusterSize_; double projMaxObstaclesHeight_; double projMaxGroundHeight_; bool projDetectFlatObstacles_; double gridCellSize_; double gridSize_; bool gridEroded_; bool gridUnknownSpaceFilled_; double gridMaxUnknownSpaceFilledRange_; double mapFilterRadius_; double mapFilterAngle_; bool mapCacheCleanup_; bool negativePosesIgnored_; ros::Publisher cloudMapPub_; ros::Publisher projMapPub_; ros::Publisher gridMapPub_; ros::Publisher scanMapPub_; ros::Publisher octoMapPubBin_; ros::Publisher octoMapPubFull_; ros::Publisher octoMapCloud_; ros::Publisher octoMapEmptySpace_; ros::Publisher octoMapProj_; std::map::Ptr > clouds_; std::map::Ptr > scans_; std::map > cameraModels_; std::map > projMaps_; // std::map > gridMaps_; // rtabmap::OctoMap * octomap_; int octomapTreeDepth_; bool octomapGroundIsObstacle_; }; #endif /* MAPSMANAGER_H_ */