Go to the documentation of this file.
38 #ifndef COSTMAP_2D_OBSTACLE_LAYER_H_
39 #define COSTMAP_2D_OBSTACLE_LAYER_H_
46 #include <nav_msgs/OccupancyGrid.h>
48 #include <sensor_msgs/LaserScan.h>
50 #include <sensor_msgs/PointCloud.h>
51 #include <sensor_msgs/PointCloud2.h>
55 #include <dynamic_reconfigure/server.h>
56 #include <costmap_2d/ObstaclePluginConfig.h>
62 class ObstacleLayer :
public CostmapLayer
72 virtual void updateBounds(
double robot_x,
double robot_y,
double robot_yaw,
double* min_x,
double* min_y,
73 double* max_x,
double* max_y);
142 double* max_x,
double* max_y);
144 void updateRaytraceBounds(
double ox,
double oy,
double wx,
double wy,
double range,
double* min_x,
double* min_y,
145 double* max_x,
double* max_y);
149 void updateFootprint(
double robot_x,
double robot_y,
double robot_yaw,
double* min_x,
double* min_y,
150 double* max_x,
double* max_y);
160 std::vector<boost::shared_ptr<costmap_2d::ObservationBuffer> >
marking_buffers_;
161 std::vector<boost::shared_ptr<costmap_2d::ObservationBuffer> >
clearing_buffers_;
167 dynamic_reconfigure::Server<costmap_2d::ObstaclePluginConfig> *
dsrv_;
172 void reconfigureCB(costmap_2d::ObstaclePluginConfig &config, uint32_t level);
177 #endif // COSTMAP_2D_OBSTACLE_LAYER_H_
virtual void deactivate()
Stop publishers.
bool getMarkingObservations(std::vector< costmap_2d::Observation > &marking_observations) const
Get the observations used to mark space.
virtual void raytraceFreespace(const costmap_2d::Observation &clearing_observation, double *min_x, double *min_y, double *max_x, double *max_y)
Clear freespace based on one observation.
std::string global_frame_
The global frame for the costmap.
void updateRaytraceBounds(double ox, double oy, double wx, double wy, double range, double *min_x, double *min_y, double *max_x, double *max_y)
std::vector< costmap_2d::Observation > static_clearing_observations_
virtual void updateCosts(costmap_2d::Costmap2D &master_grid, int min_i, int min_j, int max_i, int max_j)
Actually update the underlying costmap, only within the bounds calculated during UpdateBounds().
virtual void updateBounds(double robot_x, double robot_y, double robot_yaw, double *min_x, double *min_y, double *max_x, double *max_y)
This is called by the LayeredCostmap to poll this plugin as to how much of the costmap it needs to up...
std::vector< costmap_2d::Observation > static_marking_observations_
void reconfigureCB(costmap_2d::ObstaclePluginConfig &config, uint32_t level)
std::vector< boost::shared_ptr< tf2_ros::MessageFilterBase > > observation_notifiers_
Used to make sure that transforms are available for each sensor.
A 2D costmap provides a mapping between points in the world and their associated "costs".
laser_geometry::LaserProjection projector_
Used to project laser scans into point clouds.
virtual void setupDynamicReconfigure(ros::NodeHandle &nh)
void addStaticObservation(costmap_2d::Observation &obs, bool marking, bool clearing)
virtual void onInitialize()
This is called at the end of initialize(). Override to implement subclass-specific initialization.
double max_obstacle_height_
Max Obstacle Height.
std::vector< boost::shared_ptr< costmap_2d::ObservationBuffer > > marking_buffers_
Used to store observation buffers used for marking obstacles.
std::vector< boost::shared_ptr< message_filters::SubscriberBase > > observation_subscribers_
Used for the observation message filters.
std::vector< boost::shared_ptr< costmap_2d::ObservationBuffer > > clearing_buffers_
Used to store observation buffers used for clearing obstacles.
virtual void activate()
Restart publishers if they've been stopped.
std::vector< geometry_msgs::Point > transformed_footprint_
void updateFootprint(double robot_x, double robot_y, double robot_yaw, double *min_x, double *min_y, double *max_x, double *max_y)
Stores an observation in terms of a point cloud and the origin of the source.
void laserScanValidInfCallback(const sensor_msgs::LaserScanConstPtr &message, const boost::shared_ptr< ObservationBuffer > &buffer)
A callback to handle buffering LaserScan messages which need filtering to turn Inf values into range_...
void pointCloud2Callback(const sensor_msgs::PointCloud2ConstPtr &message, const boost::shared_ptr< costmap_2d::ObservationBuffer > &buffer)
A callback to handle buffering PointCloud2 messages.
dynamic_reconfigure::Server< costmap_2d::ObstaclePluginConfig > * dsrv_
void pointCloudCallback(const sensor_msgs::PointCloudConstPtr &message, const boost::shared_ptr< costmap_2d::ObservationBuffer > &buffer)
A callback to handle buffering PointCloud messages.
void clearStaticObservations(bool marking, bool clearing)
bool footprint_clearing_enabled_
void laserScanCallback(const sensor_msgs::LaserScanConstPtr &message, const boost::shared_ptr< costmap_2d::ObservationBuffer > &buffer)
A callback to handle buffering LaserScan messages.
std::vector< boost::shared_ptr< costmap_2d::ObservationBuffer > > observation_buffers_
Used to store observations from various sensors.
bool getClearingObservations(std::vector< costmap_2d::Observation > &clearing_observations) const
Get the observations used to clear space.
costmap_2d
Author(s): Eitan Marder-Eppstein, David V. Lu!!, Dave Hershberger, contradict@gmail.com
autogenerated on Mon Mar 6 2023 03:50:17