Skip to content

Dynamic RRT (DRRT) Implementation#948

Open
romand001 wants to merge 7 commits intoompl:mainfrom
romand001:main
Open

Dynamic RRT (DRRT) Implementation#948
romand001 wants to merge 7 commits intoompl:mainfrom
romand001:main

Conversation

@romand001
Copy link
Copy Markdown

Link to DRRT paper: https://www.clear.rice.edu/comp450/papers/drrt.pdf

DRRT (Dynamic RRT) is a tree-based motion planning algorithm for dynamic environments. In addition to traditional RRT, it implements a replanning procedure which repairs the RRT when changes have been made to the configuration space. In static environments, DRRT behaves identically to RRT, and thus inherits properties such as probabilistic completeness.

Subsequent calls to the solve method of the planner will prune the tree based on changes to the environment, and keep adding nodes until a solution is found again. In some situations, this is faster than planning from scratch.

This planner was tested using a modification of the Point2DPlanning demo, where the environment and start positions were changed between calls to solve. It can be observed that parts of the tree are reused.

Initial call to solve:
result_demo

Adding a barrier close to the start, and calling solve again (7x faster than initial solve):
result_demo_redirect

Changing the start position whilst keeping the barrier:
result_demo_diffstart

Adding a barrier closer to the goal:
result_demo_redirect2_diffstart

The planner was also tested in Pybullet with a Turtlebot: https://github.com/romand001/pybullet_ompl

Borrowed some functions from other solvers, wrote new updateEnvironment() function
Builds successfully, ready for testing
Replanning shows 6x performance improvement in Point2DPlanningDynamic.cpp demo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant