2021-11-18 22:09:25 索炜达电子 1763
项目编号:B405
文件大小:58M
操作系统:Windows10旗舰版
源码说明:带中文注释
开发工具:Python
开发语言:.py
机器人路径规划问题:左上角为坐标原点,水平向右为 x 轴方向,竖直向下为 y 轴方向。白色为自由栅格,黑色为障碍栅格,机器人只能在自由栅格中运动,并躲避障碍。每个栅格由唯一的坐标(x, y)表示。机器人一般有八个可移动方向。给出由初始位置(3,3)到目标位置(9,9)的最佳路线。
实验结果
根据上述代码流程图可以知道,算法会根据当前的状态选择最优的节点进行拓展。根据启发函数的定义,拓展的方向总是一开始沿着从起始节点指向终止节点的。首先给出搜过过程的动态变化图。
图中,灰色的区域为机器人可以移动的范围;黑色的区域为地图上的障碍;浅绿色的点为机器人出发的位置;蓝色的点为目标位置;红色的区域为open表涵盖的区域;橙色的区域为close表涵盖的区域;最后出现的紫色区域是机器人的最优路径。
可以给出搜索图如下:
程序每次从当前所在的位置出发,寻找周围可以移动的区域,加入拓展表中,若新的位置已经存在于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