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/polygon robot. Multiple robot motion planning is not supported. Also any other type besides disc or polygon 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).
- classmethod 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:
- vertical_decomposition(arr)
Take an arrangement and add edges to it that represent the vertical decomposition