SignedDistanceField.hpp
Go to the documentation of this file.
1 /*
2  * SignedDistanceField.hpp
3  *
4  * Created on: Aug 16, 2017
5  * Authors: Takahiro Miki, Peter Fankhauser
6  * Institute: ETH Zurich, ANYbotics
7  */
8 
9 #pragma once
10 
12 
13 #include <pcl/point_types.h>
14 #include <pcl/conversions.h>
15 
16 #include <string>
17 #include <vector>
18 
19 namespace grid_map {
20 
22 {
23  public:
25  virtual ~SignedDistanceField();
26 
27  void calculateSignedDistanceField(const GridMap& gridMap, const std::string& layer, const double heightClearance);
28  double getDistanceAt(const Position3& position) const;
29  Vector3 getDistanceGradientAt(const Position3& position) const;
30  double getInterpolatedDistanceAt(const Position3& position) const;
31  void convertToPointCloud(pcl::PointCloud<pcl::PointXYZI>& points) const;
32 
33  private:
34  Matrix getPlanarSignedDistanceField(Eigen::Matrix<bool, Eigen::Dynamic, Eigen::Dynamic>& data) const;
35 
36  double resolution_;
39  std::vector<Matrix> data_;
41  float maxDistance_;
42  const float lowestHeight_;
43 };
44 
45 } /* namespace */
Eigen::Array2i Size
Eigen::MatrixXf Matrix
Eigen::Vector3d Position3
Eigen::Vector2d Position
void convertToPointCloud(pcl::PointCloud< pcl::PointXYZI > &points) const
double getInterpolatedDistanceAt(const Position3 &position) const
void calculateSignedDistanceField(const GridMap &gridMap, const std::string &layer, const double heightClearance)
Vector3 getDistanceGradientAt(const Position3 &position) const
Matrix getPlanarSignedDistanceField(Eigen::Matrix< bool, Eigen::Dynamic, Eigen::Dynamic > &data) const
Eigen::Vector3d Vector3
double getDistanceAt(const Position3 &position) const


grid_map_sdf
Author(s): Takahiro Miki , Péter Fankhauser
autogenerated on Tue Jun 25 2019 20:02:30