路径规划#
IR-SIM 包含基于栅格的路径规划器,可在占据地图上计算无碰撞路径。规划器通过编程方式调用,仿真随后可沿路径运动(例如使用 dash 行为或自定义控制)。
支持的算法#
A* — 经典栅格 A* 算法,8 邻域搜索。
JPS(跳点搜索) — 更快的栅格搜索,保证最优路径。
RRT — 快速探索随机树;无需栅格,可直接使用 Shapely 障碍物。
RRT* — 带重连优化的 RRT,可获得更短路径。
Informed RRT* — 在获得初始解后使用椭球启发式搜索的 RRT*。
PRM(概率路图) — 基于采样的图搜索:在自由空间中采样节点构建路图,再使用 Dijkstra 求最短路径。
当存在栅格地图(例如在 world 配置中通过 obstacle_map 指定)时,A*、JPS 和 PRM 使用栅格占据信息进行碰撞检测。RRT/RRT*/Informed RRT* 可使用相同的栅格或 Shapely 几何体。
示例用法#
usage/20path_planning 目录下的脚本和 YAML 文件演示了各个规划器:
path_planning_astar.py— 在 Perlin 栅格上运行 A*。path_planning_jps.py— 在相同配置下运行跳点搜索。path_planning_rrt.py— 带可选栅格和障碍物的 RRT。path_planning_rrt_star.py— RRT*。path_planning_informed_rrt_star.py— Informed RRT*。path_planning_prm.py— 概率路图(PRM)。
使用共享的 path_planning.yaml(或等效配置)定义世界和机器人;每个脚本选择规划器并计算从机器人初始状态到目标的路径。详细 API 请参阅脚本和 irsim.lib.path_planners。