clear_costmap_recovery
I want to know why this recoverybehavoir aggressivereset distance is 4*circumscribed_radius? I'm readed the source code
double start_point_x = pose_x - reset_distance_ / 2;
double start_point_y = pose_y - reset_distance_ / 2;
double end_point_x = start_point_x + reset_distance_;
double end_point_y = start_point_y + reset_distance_;
int start_x, start_y, end_x, end_y;
costmap->worldToMapNoBounds(start_point_x, start_point_y, start_x, start_y);
costmap->worldToMapNoBounds(end_point_x, end_point_y, end_x, end_y);
unsigned char* grid = costmap->getCharMap();
for(int x=0; x<(int)costmap->getSizeInCellsX(); x++){
bool xrange = x>start_x && x<end_x;
for(int y=0; y<(int)costmap->getSizeInCellsY(); y++){
if(xrange && y>start_y && y<end_y)
continue;
int index = costmap->getIndex(x,y);
if(grid[index]!=NO_INFORMATION){
grid[index] = NO_INFORMATION;
}
}
but by the default in movebase.cpp,aggressivereset distance is
resetdistance = 4*circumscribed_radius
so,if the obstacles far away from robot center between circumscribedradius to 2*circumscribedradius,the recovery_behavoir will become failure allways?
the other question is when run move_base on robot,if my robot stuck once,it seems more easy to stuck again.if you have faced the same problem?
Asked by dyan on 2017-12-28 21:17:16 UTC
Comments