Path planning#
IR-SIM includes grid-based path planners for computing collision-free paths on occupancy maps. Planners are used programmatically; the simulation can then follow the path (e.g. with a dash behavior or custom control).
Supported algorithms#
A* β Classic grid A* with 8-neighbourhood.
JPS (Jump Point Search) β Faster grid search with equivalent optimal paths.
RRT β Rapidly-exploring Random Tree; no grid required, works with Shapely obstacles.
RRT* β Optimised RRT with rewiring for shorter paths.
Informed RRT* β RRT* with an informed search heuristic (ellipsoid) once an initial solution exists.
When a grid map is present (e.g. from obstacle_map in the world config), A* and JPS use grid occupancy for collision checks. RRT/RRT*/Informed RRT* can use the same grid or Shapely geometry.
Example usage#
Scripts and YAML under usage/20path_planning demonstrate each planner:
path_planning_astar.pyβ A* on a Perlin grid.path_planning_jps.pyβ Jump Point Search on the same setup.path_planning_rrt.pyβ RRT with optional grid + obstacles.path_planning_rrt_star.pyβ RRT*.path_planning_informed_rrt_star.pyβ Informed RRT*.
Use the shared path_planning.yaml (or equivalent) for world and robot; each script selects the planner and computes a path from the robotβs initial state to its goal. See the scripts and irsim.lib.path_planners for API details.