Skip to content

Commit

Permalink
Fix Smac Planner confined collision checker (ros-navigation#4055)
Browse files Browse the repository at this point in the history
* Update collision_checker.cpp

Signed-off-by: Steve Macenski <[email protected]>

* Fix tests

Signed-off-by: Steve Macenski <[email protected]>

* Update test_a_star.cpp

Signed-off-by: Steve Macenski <[email protected]>

---------

Signed-off-by: Steve Macenski <[email protected]>
Signed-off-by: Brice <[email protected]>
  • Loading branch information
SteveMacenski authored and BriceRenaudeau committed Jan 29, 2024
1 parent 491f025 commit eab21c5
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions nav2_smac_planner/src/collision_checker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ bool GridCollisionChecker::inCollision(
// if footprint, then we check for the footprint's points, but first see
// if the robot is even potentially in an inscribed collision
footprint_cost_ = costmap_->getCost(
static_cast<unsigned int>(x), static_cast<unsigned int>(y));
static_cast<unsigned int>(x + 0.5), static_cast<unsigned int>(y + 0.5));

if (footprint_cost_ < possible_inscribed_cost_) {
if (possible_inscribed_cost_ > 0) {
Expand Down Expand Up @@ -157,7 +157,7 @@ bool GridCollisionChecker::inCollision(
} else {
// if radius, then we can check the center of the cost assuming inflation is used
footprint_cost_ = costmap_->getCost(
static_cast<unsigned int>(x), static_cast<unsigned int>(y));
static_cast<unsigned int>(x + 0.5), static_cast<unsigned int>(y + 0.5));

if (footprint_cost_ == UNKNOWN && traverse_unknown) {
return false;
Expand Down
8 changes: 4 additions & 4 deletions nav2_smac_planner/test/test_a_star.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -164,8 +164,8 @@ TEST(AStarTest, test_a_star_se2)
EXPECT_TRUE(a_star.createPath(path, num_it, tolerance, expansions.get()));

// check path is the right size and collision free
EXPECT_EQ(num_it, 3186);
EXPECT_EQ(path.size(), 64u);
EXPECT_EQ(num_it, 3146);
EXPECT_EQ(path.size(), 63u);
for (unsigned int i = 0; i != path.size(); i++) {
EXPECT_EQ(costmapA->getCost(path[i].x, path[i].y), 0);
}
Expand Down Expand Up @@ -229,8 +229,8 @@ TEST(AStarTest, test_a_star_lattice)
EXPECT_TRUE(a_star.createPath(path, num_it, tolerance));

// check path is the right size and collision free
EXPECT_EQ(num_it, 26);
EXPECT_GT(path.size(), 47u);
EXPECT_EQ(num_it, 22);
EXPECT_GT(path.size(), 45u);
for (unsigned int i = 0; i != path.size(); i++) {
EXPECT_EQ(costmapA->getCost(path[i].x, path[i].y), 0);
}
Expand Down

0 comments on commit eab21c5

Please sign in to comment.