Giter VIP home page Giter VIP logo

zhaohaojie1998 / path-planning Goto Github PK

View Code? Open in Web Editor NEW
114.0 5.0 20.0 797 KB

路径规划算法,A*,A-star启发搜索,Hybrid-A*,混合A*算法,Dijkstra迪杰斯特拉算法,GBFS贪婪最佳优先搜索算法,DFS深度优先搜索,BFS广度优先搜索算法等,车辆路径规划算法,小黑子路径规划

Python 100.00%
a-star ikun opencv path-planning dijkstra greedy-best-first-search breadth-first-search depth-first-search hybrid-a-star

path-planning's Introduction

路径规划算法

算法:

算法 file 类别 性质 OpenList数据结构
A星算法
(A*)
A_star.py 启发搜索
F=G+H
最优+最速 PriorityQueue
混合A星算法
(Hybrid A*)
HybridA_star.py 启发搜索
F=G+H
考虑车辆运动学约束 PriorityQueue
迪杰斯特拉搜索算法
(Dijkstra)
Dijkstra.py 启发搜索
F=G
最优 PriorityQueue
贪婪最佳优先搜索算法
(Greedy Best First Search, GBFS)
GBFS.py 启发搜索
F=H
最速 PriorityQueue
广度优先搜索算法
(Breadth First Search, BFS)
BFS.py 遍历搜索 最优 deque 先入先出
深度优先搜索算法
(Depth First Search, DFS)
DFS.py 遍历搜索 最速 list 后入先出
概率路图算法
(Probabilistic Road Map, PRM)
采样
快速随机扩展树算法
(Rapidly-exploring Random Tree, RRT)
采样
备注:
  • 原版 PriorityQueue:无法更新Node,路径较长,但搜索速度贼快
  • set版 PriorityQueue:动态更新Node,路径最短,速度接近或超过优先队列(要求Node可hash)
  • list版 PriorityQueue:动态更新Node,路径最短,速度最慢(in和pop时间复杂度比set的in和remove大)

用法:

  • 在草纸上随便画点障碍物,拍照上传替换鲲鲲图片 image.jpg,在 A_star.py 等脚本中设置起点终点等参数,运行即可.
  • 程序并没有设置复杂的继承/依赖关系,只需要如 common.py + A_star.py + image.jpg 三个文件在同一目录就能运行.

效果:

复杂障碍物地图下的路径规划结果(只能看一眼,不然会爆炸)

混合A*算法:(考虑车辆运动学约束)

A*算法:(介于最优和快速之间)

  • List耗时0.67s,Set耗时0.45s,PriorityQueue耗时0.48s,步长3
  • 由于List/Set存储结构能动态更新OpenList中Node的cost和parent信息,路径会更优
List/Set存储结构:

PriorityQueue存储结构:

Dijkstra算法:(最优路径,耗时较大)

  • List耗时81s,Set耗时15.6s,PriorityQueue耗时15s,步长3

GBFS算法:(路径较差,速度贼快)

  • List耗时0.16s,Set耗时0.12s,PriorityQueue耗时0.13s,步长3

BFS算法:(最优路径,耗时较大)

  • Deque耗时8.92s,步长3

DFS算法:(最烂路径,速度较快)

  • List耗时1.96s,步长5

  • List耗时15.07s,步长3

img

PRM算法:

raise NotImplementedError

RRT算法:

raise NotImplementedError

Requirement:

python >= 3.9

opencv-python >= 4.7.0.72

matplotlib >= 3.5.1

numpy >= 1.22.3

广告:

DRL-for-Path-Planning: 深度强化学习路径规划, SAC路径规划

Grey-Wolf-Optimizer-for-Path-Planning: 灰狼优化算法路径规划、多智能体/多无人机航迹规划

path-planning's People

Contributors

zhaohaojie1998 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

path-planning's Issues

混合a星论文

太强了吧,小黑子,有这个混合a星相关的论文吗~~,大哥

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.