Skip to content
  • Guilhem Saurel's avatar
    [wip/ompl] Update to v1.4.1 · 5e5ada78
    Guilhem Saurel authored
    Changes since 1.4.0:
    
        Made PlannerArena work with latest versions of R packages.
        Misc. bug and documentation fixes.
    
    Changes since 1.3.2:
    
        There is a new framework for planning with constraints that unifies and generalizes prior proposed algorithms such as CBiRRT2, AtlasRRT and TangentBundle-RRT. The framework decouples the methodology used for computing configurations that satisfy constraints from the high-level planning strategy. This allows the user to use any sampling-based planning algorithm in OMPL with arbitrary geometric constraints. See the overview, tutorial and various demos in ompl/demos/constraint.
        Eigen3 is now a required dependency.
        Various BIT* improvements.
        PRM and RRTConnect can now return approximate solutions if an exact solution cannot be found. (This feature was already supported by several other planning algorithms in previous versions of OMPL.)
        Added support for Spot, a library that can be used to create finite automata from LTL specifications. This can be used by ompl::control::LTLPlanner. See the LTL with triangulation demo.
        A new method has been added, ompl::geometric::PathSimplifier::perturbPath, which can locally optimize a path with respect to a user-specified optimization objective. Existing methods of ompl::geometric::PathSimplifier are now also cost-aware.
        ompl::geometric::PathHybridization can now also optimize paths with respect to a user-specified optimization objective.
        Fix for bugs in path simplification and interpolation that could cause path simplification to produce a path that was invalid or longer than the original path when using GoalRegions (as opposed to just one GoalState).
        Added an option to RRT to add intermediate states during tree extension (this matches the same option that already existed in RRTConnect).
        Added the Bridge Test Sampler.
        Misc. bug fixes.
    
    Changes since 1.3.1:
    
        Bug fixes for gcc6, clang5, and new versions of Boost.
        Made PlannerArena work with latest versions of R packages.
        Made MORSE plugin work with latest version MORSE.
        Optionally, use PyPy for Python binding generation. This can significantly speed up the binding generation process (with pypy3 5.9.0 it now takes less than 10 minutes on a modern PC).
        Misc. bug fixes.
    
    Changes since 1.3.0:
    
        Tidy up code.
        Small bug fixes.
    
    Changes since 1.2.1:
    
        Added new planners:
            RRT#, a variant of RRT* with an improved convergence rate.
            RRTX, a variant of RRT* with an improved convergence rate. Only the static part of the RRTX algorithm is implemented. Dynamical obstacles and updates of the robot position are not available in this implementation.
            SORRT*, a variant of Informed RRT* that orders states in the subproblem that could provide a better solution by their potential solution cost.
        New refactored versions of BIT* and Informed RRT*.
        Various changes throughout to follow standard C++11 practices that improve efficiency, safety, or legibility.
        Fixes for Boost 1.63 and pygccxml 1.8.5.
        Misc. small bug fixes.
    
    Changes since 1.2.0:
    
        New simplified installation instructions. There is now also a installation script that will download and install OMPL and all its dependencies on Ubuntu 14.04, 15.10, and 16.04.
        Fixed python bindings for gcc5. Python bindings still take a very long time to generate.
        Misc. small bug fixes.
    
    Changes since 1.1.0:
    
        C++11 is now required. A lot of Boost usage in older versions of OMPL has been replaced with C++11 STL equivalents.
        Added several new planners and improved existing planners:
            Stable Sparse RRT, both a geometric and a control-based version. SST is an asymptotically near-optimal incremental version of RRT.
            Vector Field RRT, a tree-based motion planner that tries to minimize the so-called upstream cost of a path. The upstream cost is defined by an integral over a user-defined vector field.
            A bidirectional version of FMT, small fixes in FMT.
            A new version of Expansive Space Trees that does not rely on projections to estimate sampling density. Instead, it estimates density directly in the configuration space. This is closer to the original paper and actually works really well! There is now also a bidirectional version of EST. The previous implementation of EST has been renamed to ProjEST.
        Minimum Boost version is now 1.54.
    
    Changes since 1.0.0:
    
        Added several new and updated planners:
            Lightning: the Lightning Framework is a experienced-based motion planner that recalls from a database of previously generated paths the most similar one to the current planning problem and attempts to repair it, while at the same time planning from scratch in a different thread.
            Thunder: the Thunder Framework is essentially an improved version of Lightning. It stores previously generated paths in a combined roadmap, thereby offering more opportunities for reuse of partial paths. The roadmap is sparse while still guaranteeing asymptotic near-optimality. This is done by borrowing ideas from the SPARS algorithm.
            Informed RRT*: a variant of RRT* that uses heuristics to bound the search for optimal solutions.
            Batch Informed Trees (BIT*): an anytime asymptotically optimal algorithm that uses heuristics to order and bound the search for optimal solutions.
            An updated version of the Lower-Bound Tree Rapidly-expanding Random Tree (LBT-RRT) and a lazy version, LazyLBTRRT. These algorithms use Lifelong Planning A* and Dynamic Single-Source Shortest Path over graphs as subroutines, but these subroutines might be more generally useful in other algorithms as well.
            An updated version of TRRT as well as a bidirectional version of TRRT (BiTRRT)
            An updated version of FMT* that, among other things, caches collision checks.
        New web-based based version of OMPL.app! The web app has all the functionality of the standalone GUI. In addition, it allows you to interactively construct benchmark jobs that can be submitted to a benchmark server. We have a public version of the web app and benchmarking server running at http://omplapp.kavrakilab.org, but the web app and benchmark server can also be run locally.
        There are two new concepts, ompl::base::InformedSampler and ompl::base::InformedStateSampler, that capture the idea of using information about the state space and the current solution cost to limit future search to a planning subproblem that contains all possibly better solutions. The ompl::base::PathLengthDirectInfSampler is derived from InformedStateSampler and can be used to limit sampling to only those states that can lead to a shorter path than the best-found solution so far. This sampler is used in ompl::geometric:InformedRRTstar and ompl::geometric::BITstar.
        The ompl::geometric::PathSimplifier can now also optimize a path with respect to a (sampleable) goal. This means, for example, that a solution path is no longer “stuck” with an awkward inverse kinematics solution for a goal.
        Added a plannerarena script to simplify running Planner Arena locally.
        Added a new planner termination conditions that allow one to terminate after a fixed number of iterations.
        The GNAT data structure for nearest neighbor queries has been updated and should be faster in general. There is now also non-threadsafe version of the GNAT data structure that is automatically selected for single-threaded planners. This version should be even faster.
        Added an option to turn off the path simplification in benchmarking.
        Added support for parametrized benchmarks. Planner Arena can show performance across values for a given parameter.
        Made it easier to get repeatable runs of an algorithm by enabling the user to set the seed of the local random number generators (i.e., not just the global seed).
        The OMPL blog is now Jekyll-based and hosted as a repository on GitHub. If you have a project that uses OMPL, you can send us a pull request (please check with us first whether it would be appropriate for the blog before you write content).
    5e5ada78