首页 > 编程语言 >路径规划算法

路径规划算法

时间:2022-11-20 19:00:43浏览次数:66  
标签:qnew 路径 qnear 算法 CONF qrand RRT 规划

路径规划算法

preview

BFS 广度优先遍历

广度优先遍历与最短路径 | 菜鸟教程 (runoob.com)

5.1 Graph Traversals - BFS & DFS -Breadth First Search and Depth First Search - YouTube

Dijkstra 算法

3.6 Dijkstra Algorithm - Single Source Shortest Path - Greedy Method - YouTube

A*

Introduction to the A* Algorithm (redblobgames.com)

路径规划之 A* 算法 - 知乎 (zhihu.com)

D*

LPA*

D* lite

RRT 快速随机探索树

RRT与RRT算法具体步骤与程序详解(python)_问题很多de流星的博客-CSDN博客_rrt算法

Rapidly-exploring random tree - Wikipedia

图示算法

算法步骤

  1. 初始化整个空间,定义初始点qinit、终点qend、采样点数number of vertices in RRT K 、点与点之间的步长incremental distance Δq等信息
  2. 在空间中随机产生一个点qrand
  3. 在已知树的点集合中找到距离这个随机点最近的点 qnear
  4. qnearqrand 的直线方向上从qnear 以步长Δq截取点 qnew
  5. 判断从qnearqnew之间是否存在障碍物,若存在则舍弃该点
  6. qnew点加入到树集合中
  7. 循环2~6,循环结束条件:有一个new点在终点的设定邻域内或生长树达到要求长度

伪代码

Algorithm BuildRRT
    Input: Initial configuration qinit, number of vertices in RRT K, incremental distance Δq
    Output: RRT graph G

    G.init(qinit)
    for k = 1 to K do //while 1 
        qrand ← RAND_CONF()
        qnear ← NEAREST_VERTEX(qrand, G)
        qnew ← NEW_CONF(qnear, qrand, Δq)
        G.add_vertex(qnew)
        G.add_edge(qnear, qnew)
    return G // if qnew near qend break
        
  • "←" denotes assignment. For instance, "largestitem" means that the value of largest changes to the value of item.
  • "return" terminates the algorithm and outputs the following value.

In the algorithm above, "RAND_CONF" grabs a random configuration q**rand in C. This may be replaced with a function "RAND_FREE_CONF" that uses samples in C**free, while rejecting those in C**obs using some collision detection algorithm.

"NEAREST_VERTEX" is a function that runs through all vertices v in graph G, calculates the distance between q**rand and v using some measurement function thereby returning the nearest vertex.

"NEW_CONF" selects a new configuration q**new by moving an incremental distance Δq from q**near in the direction of q**rand. (According to [4] in holonomic problems, this should be omitted and q**rand used instead of q**new.)

代码示例

RRT*

(31条消息) 【规划】RRT算法图解_笑扬轩逸的博客-CSDN博客_rrt算法

路径平滑

三次样条插值

贝塞尔曲线

二次曲线拟合

标签:qnew,路径,qnear,算法,CONF,qrand,RRT,规划
From: https://www.cnblogs.com/zuti666/p/16909211.html

相关文章

  • 博弈论扩展 CFR算法 一 基本概念
    扩展扩展性博弈与CFR算法目录扩展扩展性博弈与CFR算法CFR算法的发展算法应用强化学习的结合学习资料:扩展型博弈——知识回顾表示形式——博弈树信息集informati......
  • 实验四:神经网络算法实验
    【实验目的】理解神经网络原理,掌握神经网络前向推理和后向传播方法;掌握神经网络模型的编程实现方法。【实验内容】1.1981年生物学家格若根(W.Grogan)和维什(W.Wirth)发现了......
  • 实验四:神经网络算法实验
    【实验目的】理解神经网络原理,掌握神经网络前向推理和后向传播方法;掌握神经网络模型的编程实现方法。【实验内容】1.1981年生物学家格若根(W.Grogan)和维什(W.Wirth)发现了......
  • tcp的拥塞控制算法reno与bbr
    拥塞的指证超时---拥塞收到三个冗余的ACK---轻微拥塞发送方如何控制向网络中发送的速率发送方在对方未经确认的情况下,可以向网络中发送多少字节:min(发送方拥塞窗......
  • 强化学习代码实战-09 SAC 算法
    离线学习算法:A3C,PPO,TRPO在线学习算法:DDPG,训练不稳定,容易陷入局部最优SAC:离线策略,随机策略,最大化累积奖励的同时最大化策略的熵(更好地探索环境,熵值越高,策略越随机,目......
  • 实验四:神经网络算法实验
    【实验目的】理解神经网络原理,掌握神经网络前向推理和后向传播方法;掌握神经网络模型的编程实现方法。【实验内容】1.1981年生物学家格若根(W.Grogan)和维什(W.Wirth)发现......
  • 实验四:神经网络算法实验
    【实验目的】理解神经网络原理,掌握神经网络前向推理和后向传播方法;掌握神经网络模型的编程实现方法。【实验内容】1.1981年生物学家格若根(W.Grogan)和维什(W.Wirth)发现了......
  • 实验四:神经网络算法实验
    实验目的】理解神经网络原理,掌握神经网络前向推理和后向传播方法;掌握神经网络模型的编程实现方法。【实验内容】1.1981年生物学家格若根(W.Grogan)和维什(W.Wirth)发现了......
  • 蓝桥杯-算法训练-和为T
    知识预备-二进制枚举详细讲解:https://sugar.blog.csdn.net/article/details/81099340?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~d......
  • 实验四:神经网络算法实验
    实验四:神经网络算法实验班级:20大数据3班学号:201613341【实验目的】理解神经网络原理,掌握神经网络前向推理和后向传播方法;掌握神经网络模型的编程实现方法。【实验......