42#ifndef EASYNAV_PLANNER__FILTERS__IINFLATIONFILTER_HPP_
43#define EASYNAV_PLANNER__FILTERS__IINFLATIONFILTER_HPP_
52#include "pluginlib/class_loader.hpp"
56#include "easynav_common/types/NavState.hpp"
74 CellData(
unsigned int x,
unsigned int y,
unsigned int sx,
unsigned int sy)
88 virtual void update(NavState & nav_state);
101 double robot_x,
double robot_y,
double robot_yaw,
double * min_x,
115 int min_i,
int min_j,
int max_i,
int max_j);
127 unsigned char cost = 0;
129 cost = LETHAL_OBSTACLE;
131 cost = INSCRIBED_INFLATED_OBSTACLE;
136 cost =
static_cast<unsigned char>((INSCRIBED_INFLATED_OBSTACLE - 1) * factor);
161 unsigned int mx,
unsigned int my,
unsigned int src_x,
164 unsigned int dx = (mx > src_x) ? mx - src_x : src_x - mx;
165 unsigned int dy = (my > src_y) ? my - src_y : src_y - my;
178 unsigned int mx,
unsigned int my,
unsigned int src_x,
181 unsigned int dx = (mx > src_x) ? mx - src_x : src_x - mx;
182 unsigned int dy = (my > src_y) ? my - src_y : src_y - my;
208 unsigned int index,
unsigned int mx,
unsigned int my,
209 unsigned int src_x,
unsigned int src_y);
CellData(unsigned int x, unsigned int y, unsigned int sx, unsigned int sy)
Constructor for a CellData objects.
Definition InflationFilter.hpp:74
unsigned int y_
Definition InflationFilter.hpp:78
unsigned int x_
Definition InflationFilter.hpp:78
unsigned int src_x_
Definition InflationFilter.hpp:79
unsigned int src_y_
Definition InflationFilter.hpp:79
A 2D costmap provides a mapping between points in the world and their associated "costs".
Definition costmap_2d.hpp:69
unsigned int cellDistance(double world_dist)
Given distance in the world... convert it to cells.
Definition costmap_2d.cpp:289
CostmapFilter()
Definition CostmapFilter.cpp:32
std::vector< std::vector< int > > distance_matrix_
Definition InflationFilter.hpp:224
unsigned int cell_inflation_radius_
Definition InflationFilter.hpp:214
bool inflate_unknown_
Definition InflationFilter.hpp:213
void updateCosts(easynav::Costmap2D &master_grid, int min_i, int min_j, int max_i, int max_j)
Update the costs in the master costmap in the window.
Definition InflationFilter.cpp:161
void enqueue(unsigned int index, unsigned int mx, unsigned int my, unsigned int src_x, unsigned int src_y)
Enqueue new cells in cache distance update search.
Definition InflationFilter.cpp:297
double cost_scaling_factor_
Definition InflationFilter.hpp:212
double distanceLookup(unsigned int mx, unsigned int my, unsigned int src_x, unsigned int src_y)
Lookup pre-computed distances.
Definition InflationFilter.hpp:160
virtual void update(NavState &nav_state)
Definition InflationFilter.cpp:102
void updateBounds(double robot_x, double robot_y, double robot_yaw, double *min_x, double *min_y, double *max_x, double *max_y)
Update the bounds of the master costmap by this layer's update dimensions.
Definition InflationFilter.cpp:128
bool inflate_around_unknown_
Definition InflationFilter.hpp:213
unsigned char computeCost(double distance) const
Given a distance, compute a cost.
Definition InflationFilter.hpp:125
void computeCaches()
Compute cached dsitances.
Definition InflationFilter.cpp:321
double resolution_
Definition InflationFilter.hpp:218
std::vector< unsigned char > cached_costs_
Definition InflationFilter.hpp:222
void matchSize(easynav::Costmap2D &costmap)
Match the size of the master costmap.
Definition InflationFilter.cpp:119
double last_min_x_
Definition InflationFilter.hpp:226
bool matchedSize_
Definition InflationFilter.hpp:231
unsigned char costLookup(unsigned int mx, unsigned int my, unsigned int src_x, unsigned int src_y)
Lookup pre-computed costs.
Definition InflationFilter.hpp:177
double inscribed_radius_
Definition InflationFilter.hpp:212
double getInflationRadius()
Definition InflationFilter.hpp:146
double getCostScalingFactor()
Definition InflationFilter.hpp:141
unsigned int cache_length_
Definition InflationFilter.hpp:225
double inflation_radius_
Definition InflationFilter.hpp:212
std::vector< bool > seen_
Definition InflationFilter.hpp:220
virtual std::expected< void, std::string > on_initialize()
Definition InflationFilter.cpp:77
double last_max_y_
Definition InflationFilter.hpp:226
bool need_reinflation_
Definition InflationFilter.hpp:229
unsigned int cellDistance(easynav::Costmap2D &costmap, double world_dist)
Compute cached dsitances.
Definition InflationFilter.hpp:199
InflationFilter()
Definition InflationFilter.cpp:59
double last_min_y_
Definition InflationFilter.hpp:226
int generateIntegerDistances()
Compute cached dsitances.
Definition InflationFilter.cpp:355
std::vector< double > cached_distances_
Definition InflationFilter.hpp:223
unsigned int cached_cell_inflation_radius_
Definition InflationFilter.hpp:215
double last_max_x_
Definition InflationFilter.hpp:226
std::vector< std::vector< CellData > > inflation_cells_
Definition InflationFilter.hpp:216
Provides a mapping for often used cost values.
Definition cost_values.hpp:41