Giter Site home page Giter Site logo

Comments (7)

mamoll avatar mamoll commented on May 24, 2024

Original comment by Luis G. Torres (Bitbucket: [Luis Torres](https://bitbucket.org/Luis Torres), ).


updated readability

from ompl.

mamoll avatar mamoll commented on May 24, 2024

Original comment by Ioan Sucan (Bitbucket: isucan, GitHub: isucan).


This looks good. We can add a virtual method to StateSpace to tell whether motions are symmetric. We can use that instead of some of the sanity checks flags too.

from ompl.

mamoll avatar mamoll commented on May 24, 2024

Original comment by Luis G. Torres (Bitbucket: [Luis Torres](https://bitbucket.org/Luis Torres), ).


Removed references to "asymmetric metric" since an asymmetric distance function cannot technically define a metric

from ompl.

mamoll avatar mamoll commented on May 24, 2024

Original comment by Luis G. Torres (Bitbucket: [Luis Torres](https://bitbucket.org/Luis Torres), ).


In my fork of OMPL, I've added a virtual method hasSymmetricDistance() to StateSpace.

However, it seems that there's more than one notion of symmetry in a given space; there's also the question of whether the state interpolation is symmetric; i.e. whether

interpolate(from, to, t, s) == interpolate(to, from, (1-t), s)

Ideally symmetry would imply that both the distance function and the state interpolation are symmetric, but this may not necessarily be the case. For instance, one may think that the current (asymmetric) DubinsStateSpace::distance() function is too expensive, and therefore opt to use the (symmetric) SE2StateSpace::distance() function instead as a heuristic, but still prefer to use the current (asymmetric) DubinsStateSpace::interpolate() function. In such a case, we'd have a symmetric distance function and an asymmetric interpolation.

Maintaining this distinction in symmetry of interpolation is again important for RRTstar: if interpolation is symmetric, we can assume that if checkMotion(s1, s2) is true, then checkMotion(s2, s1) is true and save some computation time.

Does adding yet another virtual method, StateSpace::hasSymmetricInterpolation(), make sense?

from ompl.

mamoll avatar mamoll commented on May 24, 2024

Original comment by Mark Moll (Bitbucket: mamoll, GitHub: mamoll).


Is the member function StateSpace::isMetricSpace() sufficient for your needs, or do you still need StateSpace::hasSymmetricInterpolation()? Given that you are working on this in your own fork, we should just wait for your pull request and close this ticket after you code has been pulled (provided it all looks look to the OMPL developers)? BTW, I think your generalization of RRT* is a great idea.

from ompl.

mamoll avatar mamoll commented on May 24, 2024

Original comment by Mark Moll (Bitbucket: mamoll, GitHub: mamoll).


fixed since Luis' branch has been merged

from ompl.

mamoll avatar mamoll commented on May 24, 2024

Original comment by Florian Hauer (Bitbucket: hauerflorian, GitHub: hauerflorian).


I'm trying to use RRTStar with asymmetric cost and interpolation. It looks like this is handled in the code, but there is that test:

#!c++

if (!si_->getStateSpace()->hasSymmetricDistance() || !si_->getStateSpace()->hasSymmetricInterpolate())
    {
        OMPL_WARN("%s requires a state space with symmetric distance and symmetric interpolation.", getName().c_str());
    }

in the setup method (line 109 of RRTStar.cpp).
Is that test remaining from before asymmetric cases were handled?
Or are asymmetric cases still not properly handled by the algorithm?

from ompl.

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.