dRRT

class discopygal.solvers.rrt.drrt.dRRT(num_landmarks, prm_num_landmarks, prm_k, prm_nearest_neighbors=None, **kwargs)

Bases: TensorSolver

Implementation of the dRRT algorithm for multi-robot motion planning. This is done by generating PRMs for each robot seperatly, and then running RRT where we only add valid vertices and edges in the tensor roadmap generated by the tensor product of the individual roadmaps.

Parameters:
  • num_landmarks (int) – number of landmarks to sample in the tensor roadmap

  • prm_num_landmarks (int) – number of landmarks to sample in each robot’s PRM

  • prm_k (int) – number of nearest neighbors to connect for PRM

  • nearest_neighbors (NearestNeighbors or None) – a nearest neighbors algorithm for the tensor roadmap. if None then use sklearn implementation

  • prm_nearest_neighbors (NearestNeighbors or None) – a nearest neighbors algorithm for the PRM. if None then use sklearn implementation

  • metric (Metric or None) – a metric for choosing best edge, can be different then the nearest_neighbors metric! If None then use euclidean metric

  • sampler (Sampler) – sampling algorithm/method. if None then use uniform sampling

build_robot_roadmap(robot)

Creates a two-dimensional roadmap for the given robot

Parameters:

robot (Robot) – The robot o build a roadmap for

Returns:

The roadmap

Return type:

Roadmap

static get_arguments()

Return a list of arguments and their description, defaults and types. Can be used by a GUI to generate fields dynamically. Should be overridded by solvers.

Returns:

arguments dict

Return type:

dict

search_tensor_roadmap()

Search method the explore the tensor roadmap a find a solution path on it