【B405】使用A*算法进行图搜索解决机器人路径规划问题

2021-11-18 22:09:25      索炜达电子      1273     

项目编号:B405

文件大小:58M

操作系统:Windows10旗舰版

源码说明:带中文注释

开发工具:Python

开发语言:.py

机器人路径规划问题:左上角为坐标原点,水平向右为 x 轴方向,竖直向下为 y 轴方向。白色为自由栅格,黑色为障碍栅格,机器人只能在自由栅格中运动,并躲避障碍。每个栅格由唯一的坐标(x, y)表示。机器人一般有八个可移动方向。给出由初始位置(3,3)到目标位置(9,9)的最佳路线。

【B405】使用A*算法进行图搜索解决机器人路径规划问题

实验结果

根据上述代码流程图可以知道,算法会根据当前的状态选择最优的节点进行拓展。根据启发函数的定义,拓展的方向总是一开始沿着从起始节点指向终止节点的。首先给出搜过过程的动态变化图。

【B405】使用A*算法进行图搜索解决机器人路径规划问题

图中,灰色的区域为机器人可以移动的范围;黑色的区域为地图上的障碍;浅绿色的点为机器人出发的位置;蓝色的点为目标位置;红色的区域为open表涵盖的区域;橙色的区域为close表涵盖的区域;最后出现的紫色区域是机器人的最优路径。

可以给出搜索图如下:

【B405】使用A*算法进行图搜索解决机器人路径规划问题

程序每次从当前所在的位置出发,寻找周围可以移动的区域,加入拓展表中,若新的位置已经存在于open表或者close表中,则重新计算代价进行评估;若不在,则直接加入open表。从open表中寻找到下一个最优的节点,并将其移入close表开始拓展。动态过程图展示的情况和算法一致。

从搜索图中可以看出,一共进行了6次拓展,每次按照最优的启发函数寻找节点进行拓展,过程为(3,3)→(4,4)→(5,5)→(6,6)→(7,7)→(8,8)→(9,9)。从搜索过程的动态变化图和搜索树中可以发现,程序找到的确实是最优路径,每次的启发函数估计值最小。由于地图中有障碍的存在,因此始终满足h(n)≤h^* (n)。

目录│文件列表:

 └ robot_path_planning_by_Astar

    │ 2021人工智能大作业.pdf

    │ Astar总.jpg

    │ Astar搜索图.jpg

    │ Astar搜索过程.jpg

    │ calculate.py

    │ main.py

    │ test.py

    │ 人工智能大作业.docx

    │ 人工智能部分大作业.pdf

    ├ .idea

    │  │ deployment.xml

    │  │ misc.xml

    │  │ modules.xml

    │  │ Robots_path_planning.iml

    │  │ vcs.xml

    │  └ inspectionProfiles

    │     │ profiles_settings.xml

    │     └ Project_Default.xml

    ├ fig

    │  │ 0.jpg

    │  │ 1.jpg

    │  │ 10.jpg

    │  │ 11.jpg

    │  │ 12.jpg

    │  │ 13.jpg

    │  │ 14.jpg

    │  │ 15.jpg

    │  │ 16.jpg

    │  │ 17.jpg

    │  │ 18.jpg

    │  │ 19.jpg

    │  │ 2.jpg

    │  │ 20.jpg

    │  │ 21.jpg

    │  │ 22.jpg

    │  │ 23.jpg

    │  │ 24.jpg

    │  │ 25.jpg

    │  │ 26.jpg

    │  │ 27.jpg

    │  │ 28.jpg

    │  │ 29.jpg

    │  │ 3.jpg

    │  │ 30.jpg

    │  │ 31.jpg

    │  │ 32.jpg

    │  │ 33.jpg

    │  │ 34.jpg

    │  │ 35.jpg

    │  │ 36.jpg

    │  │ 37.jpg

    │  │ 4.jpg

    │  │ 5.jpg

    │  │ 6.jpg

    │  │ 7.jpg

    │  │ 8.jpg

    │  └ 9.jpg

    ├ random

    │  │ 0.jpg

    │  │ 1.jpg

    │  │ 10.jpg

    │  │ 11.jpg

    │  │ 12.jpg

    │  │ 13.jpg

    │  │ 14.jpg

    │  │ 15.jpg

    │  │ 16.jpg

    │  │ 17.jpg

    │  │ 18.jpg

    │  │ 19.jpg

    │  │ 2.jpg

    │  │ 20.jpg

TAG机器人
  • 6 次
  • 150 分