Giter Site home page Giter Site logo

Comments (8)

Timple avatar Timple commented on August 15, 2024

Why are the obstacles inflated in the first place?

from path_tracking_pid.

rokusottervanger avatar rokusottervanger commented on August 15, 2024

Because you can either disable the inflation entirely, then you don't get the exponential decay cost either (and you do want that, for velocity scaledown and all that), or you can enable it, and that also gives you the footprint inflation. The concept is explained quite well here: http://wiki.ros.org/costmap_2d#Inflation

from path_tracking_pid.

Timple avatar Timple commented on August 15, 2024

From the image:
image

cost_inscribed = definitely in collision
I assume that this is where the logic originated from. But they probably meant that the center-point is definitely in collision.
Am I summarizing this correctly?

from path_tracking_pid.

Timple avatar Timple commented on August 15, 2024

In that case the simple fix would be to modify the logic.

if nav_link is costmap2d::INSCRIBED_INFLATED_OBASTACLE, early-out. Otherwise proceed to more expensive footprint-check.

from path_tracking_pid.

rokusottervanger avatar rokusottervanger commented on August 15, 2024

I assume that this is where the logic originated from. But they probably meant that the center-point is definitely in collision.
Am I summarizing this correctly?

Not sure who you mean by "they". The costmap2d authors, or the path_tracking_pid author(s).

If the center point (base_link) is within the costmap2d::INSCRIBED_INFLATED_OBASTACLE zone, the footprint definitely collides with an obstacle somewhere. If that's what you mean, you're correct.

if nav_link is costmap2d::INSCRIBED_INFLATED_OBASTACLE, early-out. Otherwise proceed to more expensive footprint-check.

Sounds good, assuming those (predicted) poses are available. That avoids the need for the footprint check in case this is already in collision. This early return doesn't save you much computing power, though. In the nominal case there is no collision, so there won't be an early return.

In any case, the footprint check needs to use the condition >= costmap2d::LETHAL_OBSTACLE instead of costmap2d::INSCRIBED_INFLATED_OBASTACLE

from path_tracking_pid.

Timple avatar Timple commented on August 15, 2024

In any case, the footprint check needs to use the condition >= costmap2d::LETHAL_OBSTACLE instead of costmap2d::INSCRIBED_INFLATED_OBASTACLE

Agreed! PR Welcome

from path_tracking_pid.

rokusottervanger avatar rokusottervanger commented on August 15, 2024

In any case, the footprint check needs to use the condition >= costmap2d::LETHAL_OBSTACLE instead of costmap2d::INSCRIBED_INFLATED_OBASTACLE

After inspecting the code a little further, I suggest making only this change. An early return based on checking base_link with the inflated obstacle layer almost never occurs, so it makes the code more complex without adding any significant benefit. Additionally, you lose the visualization of where the obstacle is detected if you only check base_link with the inflated obstacle layer.

from path_tracking_pid.

Timple avatar Timple commented on August 15, 2024

Agreed!

from path_tracking_pid.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.