You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@DLu In range_sensor_layer.cpp line 323 and 325, variable bx0, bx1, by0, by1 is force converted to unsigned int type from int. When those variable are negative, it will cause infinite loop.
// Limit Bounds to Grid
bx0 = std::max(0, bx0);
by0 = std::max(0, by0);
bx1 = std::min(static_cast<int>(size_x_), bx1);
by1 = std::min(static_cast<int>(size_y_), by1);
for (unsigned int x = bx0; x <= (unsigned int)bx1; x++)
{
for (unsigned int y = by0; y <= (unsigned int)by1; y++)
{
bool update_xy_cell = true;
This situation will occur when range sensor layer was used in local costmap, and robot pose abruptly changed a lot. It will make ox and oy out of local costmap bounds, and worldToMapNobounds (line 281) may generate negative values.
// Bounds includes the origin
worldToMapNoBounds(ox, oy, Ox, Oy);
bx1 = bx0 = Ox;
by1 = by0 = Oy;
touch(ox, oy, &min_x_, &min_y_, &max_x_, &max_y_);
// Update Map with Target Point
unsigned int aa, ab;
if (worldToMap(tx, ty, aa, ab))
{
setCost(aa, ab, 233);
touch(tx, ty, &min_x_, &min_y_, &max_x_, &max_y_);
}
double mx, my;
// Update left side of sonar cone
mx = ox + cos(theta - max_angle_) * d * 1.2;
my = oy + sin(theta - max_angle_) * d * 1.2;
worldToMapNoBounds(mx, my, Ax, Ay);
bx0 = std::min(bx0, Ax);
bx1 = std::max(bx1, Ax);
by0 = std::min(by0, Ay);
by1 = std::max(by1, Ay);
touch(mx, my, &min_x_, &min_y_, &max_x_, &max_y_);
Please correct me if I'm wrong.
The text was updated successfully, but these errors were encountered:
@DLu In range_sensor_layer.cpp line 323 and 325, variable bx0, bx1, by0, by1 is force converted to unsigned int type from int. When those variable are negative, it will cause infinite loop.
This situation will occur when range sensor layer was used in local costmap, and robot pose abruptly changed a lot. It will make ox and oy out of local costmap bounds, and worldToMapNobounds (line 281) may generate negative values.
Please correct me if I'm wrong.
The text was updated successfully, but these errors were encountered: