Presentation is loading. Please wait.

Presentation is loading. Please wait.

Rapidly-Exploring Random Trees

Similar presentations


Presentation on theme: "Rapidly-Exploring Random Trees"— Presentation transcript:

1 Rapidly-Exploring Random Trees
Graduate Presentation by Aaron Parker

2 Background Information
Holonomic – Can move in any direction (people, are holonomic where-as a car is non-holonomic) Path Planning – A search in a metric space for a continuous path from a starting position to a goal Robotic Operating System (ROS) – A software architecture I use to implement my project.

3 General Introduction Path planning is a difficult task to solve in Robotics. There are numerous constraints which limit paths Know where obstacles are and how to avoid them There exist many solutions for generating feasible paths, for example: Randomized Potential Field Algorithm Probabilistic Roadmap Algorithm Steven M. LaValle introduced RRTs in 1998 in his paper “Rapidly-Exploring Random Trees: A New Tool for Path Planning”

4 Why Not Use These Algorithms?
“The problem with existing techniques is that they do not naturally extend to general non-holonomic planning problems.” – LaValle These algorithms work well only if the agent can move in any direction at any time. RRTs also have several useful properties RRTs are heavily biased toward unexplored areas The RRT algorithm is relatively simple Entire path planning algorithms can be constructed without requiring the ability to steer the system between two prescribed states

5 The RRT Algorithm Terms
T – the RRT tree structure. X – the configuration space of the problem xinit – the initial position (starting point) Xgoal – the goal region (can be one point) Xobs – set of obstacles in the map Xfree – compliment of Xobs u – constraints on input (non-holonomic or otherwise)

6 The RRT Algorithm T.init(xinit); For k=1 to k do
xrand = random_state(); //chose a random point in Xfree Xnear = nearest_neighbor(xrand,T); //find nearest neighbor in T u = select_input(); //constraints on motion applied Xnew = new_state(xnear,u,Δd); //create a new point based on //extended motion u T.add_vertex(xnew); //add the new vertex to the RRT T.add_edge(xnear,xnew); //add the new edge to the RRT

7 An Example RRT

8 Progress I have created several Robot Operating System (ROS) nodes
Random Map Generator Given a series of inputs from command line, generates a map populated by randomly placed and sized blocks Computational Geometry Messages Contains custom communication messages to be passed among the different nodes RRT Workspace Where the RRT algorithm code is being developed

9 Progress Cont. Here are some of the maps randomly generated and visualized by ROS.

10 Progress Cont. The RRT Data structure has been created and can be maintained via my ROS package The algorithm continues until it creates a new vertex in the goal region (Xgoal) Unfortunately there is no easy way to display the RRT data structure in ROS because I custom built the data structure.

11 More on Random Maps Random Maps are customizable
Maximum and Minimum number and size of objects Adjustable map height and width Useful for testing the generality/consistency of RRT during testing. Implemented to be automated Publishing new map parameters to the node signifys a request for a new random map

12 Future Work In the next few days I will be comparing the following metrics across many randomly generated maps Path length Number of jumps and Euclidean distance Amount of time to find a path This will determine how the algorithm scales with increased input These metrics will better signify the effectiveness of RRTs and can be compared against the ROS internal navigation stack algorithms

13 Questions?


Download ppt "Rapidly-Exploring Random Trees"

Similar presentations


Ads by Google