BiRRT

class discopygal.solvers.rrt.birrt.BiRRT(n_join, nearest_neighbors_start=None, nearest_neighbors_end=None, **kwargs)

Bases: RRT

Implementation of the BiRRT algorithm. We grow two trees - one rooted at start, the other at the end. Every once in a while (n_join) try to extend both trees toward the same sample. Supports multi-robot motion planning, though might be inefficient for more than two-three robots.

Parameters:
  • num_landmarks (int) – number of landmarks to sample

  • eta (FT) – maximum distance when steering

  • n_join (int) – period of iterations when trying to grow the trees towards the same sample

  • nearest_neighbors_start (NearestNeighbors or None) – a nearest neighbors algorithm for the tree grown from start. if None then use sklearn implementation

  • nearest_neighbors_end (NearestNeighbors or None) – a nearest neighbors algorithm for the tree grown from end. if None then use sklearn implementation

  • metric (Metric or None) – a metric for weighing edges, 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_roadmap()

Constructs the roadmap of points in the configuration space which a path will be searched on to find a solution. Every sampling solver should implement how to build the roadmap.

Returns:

The built roadmap. Each node represents a point in configuration space (dimension = 2*robots_num)

Return type:

nx.Graph

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