ExactSingleDisc

class discopygal.solvers.exact.exact_single.ExactSingle(eps, bounding_margin_width_factor=0)

Bases: Solver

Exact solution by vertical decomposition for a SINGLE disc robot. Multiple robot motion planning is not supported. Also any other type besides disc robot is unsupported

Parameters:

eps (float) – epsilon for approximated offset

connectivity_graph(arr)

Get the connectivity graph from a vertical decomposition arrangement

construct_cspace()

Get the (CGAL Polygonal) obstacles and the radius of the robot, and construct the expanded CSPACE arrangement (also with bounding box walls)

find_face_index(arr, p, pl)

Get a point and find the index of the face in the arrangement that has it

find_valid_path(g_path, source, target, edge_dict, collision_detector)

Convert a graph path to a valid motion planning path. We do that by connecting midpoints of edges we pass - and since the arrangement has circle curves, we might need split some edges in half (for exact motion).

static from_arguments(d)

Get a dictionary of arguments and return a solver. Should be overridded by solvers.

Parameters:

d (dict) – arguments dict

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

get_arrangement()

Return an arrangement (if applicable). Can be overridded by solvers.

Returns:

arrangement

Return type:

Arrangement_2

get_graph()

Return a graph (if applicable). Can be overridded by solvers.

Returns:

graph whose vertices are Point_2 or Point_d

Return type:

networkx.Graph or None

solve()

Based on the start and end locations of each robot, solve the scene (i.e. return paths for all the robots)

Returns:

path collection of motion planning

Return type:

PathCollection

to_ker_point_2(point: Point_2)

Convert TPoint() to Ker.Point_2()

vertical_decomposition(arr)

Take an arrangement and add edges to it that represent the vertical decomposition