MapsManager: Don't ignore latest signature (-1) if the grid is created from 2D laser scans (so that empty space can be filled for the latest data)

This commit is contained in:
matlabbe
2016-10-11 18:18:53 -04:00
parent cf11f38cf8
commit 24d113fb8f
2 changed files with 5 additions and 2 deletions
+2 -1
View File
@@ -73,7 +73,8 @@ public:
float & yMin, float & yMin,
float & gridCellSize); float & gridCellSize);
rtabmap::OctoMap * getOctomap() const {return octomap_;} const rtabmap::OctoMap * getOctomap() const {return octomap_;}
const rtabmap::OccupancyGrid * getOccupancyGrid() const {return occupancyGrid_;}
private: private:
// mapping stuff // mapping stuff
+3 -1
View File
@@ -53,6 +53,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <rtabmap/core/Memory.h> #include <rtabmap/core/Memory.h>
#include <rtabmap/core/OdometryEvent.h> #include <rtabmap/core/OdometryEvent.h>
#include <rtabmap/core/Version.h> #include <rtabmap/core/Version.h>
#include <rtabmap/core/OccupancyGrid.h>
#ifdef WITH_OCTOMAP_ROS #ifdef WITH_OCTOMAP_ROS
#ifdef RTABMAP_OCTOMAP #ifdef RTABMAP_OCTOMAP
@@ -1140,7 +1141,8 @@ void CoreWrapper::process(
filteredPoses.size() == 0 || filteredPoses.size() == 0 ||
rtabmap_.getMemory()->getLastSignatureId() != filteredPoses.rbegin()->first || rtabmap_.getMemory()->getLastSignatureId() != filteredPoses.rbegin()->first ||
rtabmap_.getMemory()->getLastWorkingSignature() == 0 || rtabmap_.getMemory()->getLastWorkingSignature() == 0 ||
rtabmap_.getMemory()->getLastWorkingSignature()->sensorData().gridCellSize() == 0) rtabmap_.getMemory()->getLastWorkingSignature()->sensorData().gridCellSize() == 0 ||
(!mapsManager_.getOccupancyGrid()->isGridFromDepth() && data.laserScanRaw().channels() == 2)) // 2d laser scan would fill empty space for latest data
{ {
SensorData tmpData = data; SensorData tmpData = data;
tmpData.setId(-1); tmpData.setId(-1);