16 #include <unordered_map> 21 #include <Eigen/Geometry> 50 GridMap(
const std::vector<std::string>& layers);
89 void add(
const std::string& layer,
const double value = NAN);
96 void add(
const std::string& layer,
const Matrix& data);
103 bool exists(
const std::string& layer)
const;
111 const Matrix&
get(
const std::string& layer)
const;
120 Matrix&
get(
const std::string& layer);
128 const Matrix&
operator[](
const std::string& layer)
const;
144 bool erase(
const std::string& layer);
150 const std::vector<std::string>&
getLayers()
const;
208 float&
at(
const std::string& layer,
const Index& index);
217 float at(
const std::string& layer,
const Index& index)
const;
257 bool isValid(
const Index& index,
const std::string& layer)
const;
265 bool isValid(
const Index& index,
const std::vector<std::string>& layers)
const;
284 bool getVector(
const std::string& layerPrefix,
const Index& index, Eigen::Vector3d& vector)
const;
324 GridMap getTransformedMap(
const Eigen::Isometry3d& transform,
const std::string& heightLayerName,
const std::string& newFrameId,
325 const double sampleRatio = 0.0)
const;
355 bool move(
const Position& position, std::vector<BufferRegion>& newRegions);
375 bool addDataFrom(
const GridMap& other,
bool extendMap,
bool overwriteData,
bool copyAllLayers,
376 std::vector<std::string> layers = std::vector<std::string>());
389 void clear(
const std::string& layer);
495 bool isValid(DataType value)
const;
502 void clearCols(
unsigned int index,
unsigned int nCols);
509 void clearRows(
unsigned int index,
unsigned int nRows);
559 std::unordered_map<std::string, Matrix>
data_;
585 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
void setGeometry(const Length &length, const double resolution, const Position &position=Position::Zero())
GridMap getTransformedMap(const Eigen::Isometry3d &transform, const std::string &heightLayerName, const std::string &newFrameId, const double sampleRatio=0.0) const
Size size_
Size of the buffer (rows and cols of the data structure).
bool hasSameLayers(const grid_map::GridMap &other) const
virtual ~GridMap()=default
bool isDefaultStartIndex() const
void setPosition(const Position &position)
float & atPosition(const std::string &layer, const Position &position)
void clear(const std::string &layer)
void setBasicLayers(const std::vector< std::string > &basicLayers)
const Index & getStartIndex() const
double resolution_
Map resolution in xy plane [m/cell].
std::vector< std::string > basicLayers_
const std::vector< std::string > & getBasicLayers() const
std::unordered_map< std::string, Matrix > data_
Grid map data stored as layers of matrices.
const Size & getSize() const
grid_map::DataType DataType
std::string frameId_
Frame id of the grid map.
const Position & getPosition() const
bool getVector(const std::string &layerPrefix, const Index &index, Eigen::Vector3d &vector) const
const std::vector< std::string > & getLayers() const
bool atPositionBicubicInterpolated(const std::string &layer, const Position &position, float &value) const
bool atPositionLinearInterpolated(const std::string &layer, const Position &position, float &value) const
bool atPositionBicubicConvolutionInterpolated(const std::string &layer, const Position &position, float &value) const
bool move(const Position &position, std::vector< BufferRegion > &newRegions)
void convertToDefaultStartIndex()
double getResolution() const
bool isInside(const Position &position) const
bool hasBasicLayers() const
bool addDataFrom(const GridMap &other, bool extendMap, bool overwriteData, bool copyAllLayers, std::vector< std::string > layers=std::vector< std::string >())
bool extendToInclude(const GridMap &other)
std::vector< std::string > layers_
Names of the data layers.
bool isValid(const Index &index) const
void setStartIndex(const Index &startIndex)
GridMap getSubmap(const Position &position, const Length &length, bool &isSuccess) const
Position position_
Map position in the grid map frame [m].
Position getClosestPositionInMap(const Position &position) const
float & at(const std::string &layer, const Index &index)
Time timestamp_
Timestamp of the grid map (nanoseconds).
const std::string & getFrameId() const
Index startIndex_
Circular buffer start indices.
void add(const std::string &layer, const double value=NAN)
Time getTimestamp() const
Eigen::Vector3d Position3
bool exists(const std::string &layer) const
bool getPosition3(const std::string &layer, const Index &index, Position3 &position) const
void clearCols(unsigned int index, unsigned int nCols)
void clearRows(unsigned int index, unsigned int nRows)
Length length_
Side length of the map in x- and y-direction [m].
void setFrameId(const std::string &frameId)
bool getIndex(const Position &position, Index &index) const
GridMap & operator=(const GridMap &)=default
void setTimestamp(const Time timestamp)
bool erase(const std::string &layer)
const Matrix & operator[](const std::string &layer) const
void resize(const Index &bufferSize)
const Length & getLength() const