Search
The main task is to learn the basic principles of randomized sampling-based planning. The principles are demonstrated on the multi-query planning algorithm - Rapidly-exploring Random Trees (RRT).
RRTPlanner.py
make
environment/rapid
In class RRTPlanner.py implement RRT/RRT* algorithm according to the description and pseudo-code from [1].
Initialization of RRTPlanner class by method init sets the environment by arguments:
RRTPlanner
init
environment
environment.check_robot_collision(P)
P
Pose
True
environment.limits_x
environment.limits_y
environment.limits_z
translate_speed
rotate_speed
The RRT/RRT* algorithm itself is divided into two methods expand_tree and query. Thus, we implement multi-query variant of the RRT/RRT* algorithm.
expand_tree
query
First method expand_tree is called to build the tree and return it as a NavGraph structure. The input parameters are:
NavGraph
start
space
number_of_samples
neighborhood_radius
collision_step
isrrtstar
False
steer_step
Returns:
The second method query retrieves a path from the expanded tree. The input parameters of the function are:
goal
None
Steer
Near
RRT algorithm in “R2” space with 300 (left) and 1000 (right) samples.
RRT* algorithm in “R2” space with 300 (left) and 1000 (right) samples.
[1] Karaman, Sertac, and Emilio Frazzoli. “Sampling-based algorithms for optimal motion planning.” The international journal of robotics research 30.7 (2011): 846-894. Journal version Arxiv version
[2] Demonstration in Wolfram
[3] RRT* algorithm illustrative example (youtube)