50 #ifndef FASTRACK_ENVIRONMENT_OCCUPANCY_MAP_H 51 #define FASTRACK_ENVIRONMENT_OCCUPANCY_MAP_H 59 #include <std_msgs/Empty.h> 60 #include <visualization_msgs/Marker.h> 63 namespace environment {
67 using bound::Cylinder;
69 template <
typename M,
typename P>
76 bool IsValid(
const Vector3d& position,
const TrackingBound& bound,
77 double time = std::numeric_limits<double>::quiet_NaN())
const {
85 const Vector3d& position,
86 double time = std::numeric_limits<double>::quiet_NaN())
const = 0;
88 const Vector3d& position,
const TrackingBound& bound,
89 double time = std::numeric_limits<double>::quiet_NaN())
const = 0;
118 template <
typename M,
typename P>
122 ros::NodeHandle nl(n);
125 if (!nl.getParam(
"free_space_threshold", this->free_space_threshold_)) {
126 ROS_WARN(
"%s: Free space threshold was not provided.", this->
name_.c_str());
virtual void Visualize() const =0
virtual void SensorCallback(const typename M::ConstPtr &msg)=0
virtual double OccupancyProbability(const Vector3d &position, double time=std::numeric_limits< double >::quiet_NaN()) const =0
bool IsValid(const Vector3d &position, const TrackingBound &bound, double time=std::numeric_limits< double >::quiet_NaN()) const
virtual M SimulateSensor(const P ¶ms) const =0
double free_space_threshold_
virtual bool LoadParameters(const ros::NodeHandle &n)