Giter VIP home page Giter VIP logo

Comments (1)

SteveMacenski avatar SteveMacenski commented on May 24, 2024

Nice feature request! The keepout / other filters all have disable/enable parameters or services that can be dynamically turned off and on. While that is a pretty good first order solution, if you have to disable it to get out, then it can navigate freely within that keepout zone until it leaves.

I don't think your suggested solution is a great fix though. Slowing the robot if its in a keepout zone doesn't seem like it'll help much. Something better to do would be to check the robot's pose and do something based on that. For instance, if the robot is detected to be within a keepout zone, change the keepout cost from LETHAL to 252 (1 below inscribed) to make it very high cost so that the robot tries to navigate out of it. Once the robot's pose is detected to be out of the zone, it resumes being set to lethal.

Another way of handling this that's a bigger development effort would be to change the get cost API to consider the previous pose and the current pose of the robot. In that case, we set it to lethal if the previous step is non-keepout and the current is keepout. But once current is keepout, the next would be 252. I don't have a fully baked idea there yet though, but I think more something to consider in the long-term. I'll fully acknowledge that relative to the great strides made in the last 5 years in Nav2 in planning, control, behaviors, and flexibility, the costmaps are an area that haven't yet received the same level of attention. But more of these kinds of feature requests and applications help in the eventual design (and motivate me to increase the priority if I hear alot of complaints)

If you simply want to slow your robot when in keepouts, you could just set your keepouts and speed zones to be the same, and set the keepouts to be 252 always. You could get the behavior you mention right now where it would still virtually be a keepout

from navigation2.

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.