Algorithm random tree geometry Python
Need help with rrt-algorithms?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.
motion-planning

Description

n-dimensional RRT, RRT* (RRT-Star)

166 Stars 82 Forks MIT License 80 Commits 7 Opened issues

Services available

Need anything else?

rrt

Collection of rrt-based algorithms that scale to n-dimensions: - rrt - rrt* (rrt-star) - rrt* (bidirectional) - rrt* (bidriectional, lazy shortening) - rrt connect

Utilizes R-trees to improve performance by avoiding point-wise collision-checking and distance-checking.

Requirements

Usage

Define an n-dimensional Search Space, and n-dimensional obstacles within that space. Assign start and goal locations as well as the number of iterations to expand the tree before testing for connectivity with the goal, and the max number of overall iterations.

Search Space

Assign bounds to Search Space in form:

[(x_lower, x_upper), (y_lower, y_upper), ...]

Start and Goal

Points represented by tuples of form:

(x, y, ...)

Obstacles

Axis-aligned (hyper)rectangles represented by a tuples of form

(x_lower, y_lower, ..., x_upper, y_upper, ...)

Non-axis aligned (hyper)rectangles or other obstacle representations should also work, provided that

collision_free
and
obstacle_free
are updated to work with the new obstacles.

Resolution

Assign resolution of edges: -

q
: Distance away from existing vertices to probe. -
r
: Discretization length to use for edges when sampling along them to check for collisions. Higher numbers run faster, but may lead to undetected collisions.

Examples

Visualization examples can be found for rrt and rrt* in both 2 and 3 dimensions. - 2D RRT - 3D RRT - 2D RRT* - 3D RRT* - 2D Bidirectional RRT* - 3D Bidirectional RRT* - 2D Heuristic Bidirectional RRT* - 3D Heuristic Bidirectional RRT*

Contributing

  1. Fork it!
  2. Create your feature branch:
    git checkout -b my-new-feature
  3. Commit your changes:
    git commit -am 'Add some feature'
  4. Push to the branch:
    git push origin my-new-feature
  5. Submit a pull request :D

License

MIT License

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.