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.