Go to the documentation of this file.
42 #include <unordered_map>
95 Collision(
double boundary_radius,
double search_radius,
double obstacle_threshold,
96 double occupied_threshold);
157 unsigned int ci)
const;
double occupied_threshold_
double totalPadding() const
Return the distance from robot center to collision boundary.
Collision detection parameters.
tuple< CollisionMsg, vec > minDirection(const GridMap &grid, const vec &pose) const
Compose displacement vector from closest obstacle to robot.
bool bresenhamCircle(CollisionConfig &cfg, const GridMap &grid, int r) const
Bresenham's circle algorithm.
Collision(double boundary_radius, double search_radius, double obstacle_threshold, double occupied_threshold)
Constructor.
CollisionMsg
State of the collision detector.
CollisionConfig(int rb, int rc, int rm, int cx, int cy)
Constructor.
2D grid represented in row major order
double obstacle_threshold_
bool checkCell(CollisionConfig &cfg, const GridMap &grid, unsigned int cj, unsigned int ci) const
Check if cell is an obstacle.
bool collisionCheck(const GridMap &grid, const vec &pose) const
Check if the given state is a collision.
tuple< CollisionMsg, double > minDistance(const GridMap &grid, const vec &pose) const
Compose distance to closest obstacle.
bool search(CollisionConfig &cfg, const GridMap &grid) const
Find occupied cells between collision boundary and max search radius.