路径规划总结(一)

news/2024/5/3 6:06:16/文章来源:https://blog.csdn.net/weixin_43868436/article/details/107412966

第三讲 路径规划

ps:排版有一些问题,懒得改了,见Github

一、导航规划简介

  1. 导航规划:在给定环境的全局或局部知识以及一个或者一系列目标位置的条件下,使机器人能够根据知识和传感器感知信息高效可靠地到达目标位置。

  2. 导航规划类型

    • 固定路径导引
      • 有人工标识导引的固定路径导航
    • 无轨导航
      • 有人工标识导引的无固定路径(无轨)导航
      • 无人工标识导引的无轨导航
  3. 无轨导航规划的主要研究内容

    • 路径规划(全局):根据所给定的地图和目标位置,规划一条使机器人到达目标位置的路径(只考虑工作空间的几何约束,不考虑机器人的运动学模型和约束)
    • 避障规划(局部):根据所得到的实时传感器测量信息,调整路径/轨迹以避免发生碰撞
    • 轨迹生成:根据机器人的运动学模型和约束,寻找适当的控制命令,将可行路径转化为可行轨迹
    • U0n5ZV.png

二、路径规划基本概念

  1. 文献中路径规划都是在位形空间(Configuration Space)中进行规划。

  2. 从工作空间转换到位形空间,只需要:障碍物按机器人半径进行膨胀(机器人成为一个点),忽略非完整约束对姿态的限制(机器人是完整的)。

  3. 位形空间

    • 障碍物空间:不可行的位形空间
    • 自由空间:可行的位形空间
    • 路径规划就是在自由位形空间中为机器人寻找一条路径,使其从初始位置运行到目标位置。
  4. 路径规划的完备性要求

    • 完备性:当解存在时,能够在有限的时间内找到解
  5. 路径规划的两个基本问题

    • 路径规划要先构建出拓扑连通图,再执行路径搜索算法。

    • 拓扑连通图

      • 构建方法
        • 基本思路:对空间作离散化
        • 分辨率完备 resolution completeness 解析性离散化,确保获得可行解
          • 行车图法:基于障碍物几何形状分解姿态空间
          • 单元分解法:区分空闲单元和被占单元
          • 势场法:根据障碍物和目标对空间各点施加虚拟力
        • 概率完备 probabilistic completeness 基于概率进行随机采样离散化,使获得解的概率趋近于1
          • PRM(Probabilistic RoadMaps)
          • RRT(Rapid-Exploring Radom Trees)
    • 最优路径搜索

      • 精确最优搜索法:深度优先法、宽度优先法
      • 近似最优搜索法
        • 启发式搜索法:A*, D*
        • 准启发式搜索算法:退火、进化、蚁群优化等

三、分辨率完备的拓扑连通图构建

  1. 行车图法:基于障碍物几何形状分解位形空间,将自由空间的连通性用一维曲线的网格表示,在加入起始点和目标点后,在该一维无向连通图中寻找一条无碰路径。

    • 可视图法
      • 可视图由所有连接可见顶点对的边组成
        • 可见指(障碍物)顶点间无障碍物
        • 初始位置和目标位置也作为顶点
    • Voronoi diagram(维诺图)
      • 基本思想:取障碍物之间的中间点,以最大化机器人和障碍物之间的距离
      • UBLZ1H.png
  2. 单元分解法

    • 基本思想

      UBOjy9.png
    • 精确单元分解

      • 单元边界严格基于环境几何形状分解,所得单元完全空闲
      • 缺点:不存在通用的算法
    • 近似单元分解

      • 栅格表示法,将环境分解成若干个大小相同的栅格。将每个栅格看作拓扑连通图中的结点
      • 可变大小的近似单元分解:减小存储空间
        • 四叉树表示法:递归地把环境分为4个大小相等的子区域,直到每个区域中所包含的基本元素全为0或全为1。
          • 使用四叉树数据结构进行存储
  3. 人工势场法

    • 基本思想:目标点对机器人产生吸引力,障碍物对机器人产生排斥力,所有力的合成构成机器人的控制律。

    • 针对路径规划,计算环境中每个点的力

    • 步骤1:构建人工势场

      • 计算目标点对空间中每一点的吸引势场

        • 希望到达目标点时能停下,所以距离越近吸引力越小。
        • 防止距离过远导致吸引力太大,采用分段函数。
        • UDGkad.png
      • 障碍物:推斥势场

        • 大于阈值p0后障碍物在评估点不存在斥力
        • UDYYuT.png
    • 步骤2:根据人工势场计算力:对势场求偏导数

      • UDtKsK.png
    • 步骤3:计算合力,进而由力计算得到控制律。力的方向就是机器人运动方向,大小可以对应加速度控制

      • UDdUhQ.png
    • 机器人是受人工势场影响的一个点,沿着势场方向就可以避开障碍物达到目标点。 同时得到了路径,不需要再进行路径搜索。既可以规划全局路径,也可以局部避障。

    • 缺点:存在局部最小,容易产生振荡和死锁

四、路径搜索算法

  1. 最优路径搜索算法:在构建形成的拓扑连通图(3.1 3.2)中搜索最优路径

    • 精确算法:生成精确的最优解,遍历所有路径后选择最优解
      • 深度优先法、广度优先法
      • 广度优先法优化形成了Dijkstra算法
      • 缺点:耗时,难以满足机器人在线快速规划要求
    • 近似算法
      • 启发式搜索算法:A*,D*, Focused D*
      • 准启发式搜索算法:退火、进化和蚁群优化等
  2. 深度优先法 就是深度优先搜索 DFS

  3. 广度优先法 就是广度优先搜索 BFS

  4. Dijkstra算法

    UDxEKe.png
  5. 启发式搜索算法 A*

    UDzvkR.png
    • 算法流程
      • UrkWi4.png
        • openlist:可以用来选择的结点
        • closelist :已选择结点(仍有机会加入openlist)
  6. 准启发式搜索算法:蚁群算法

    • 模拟蚂蚁觅食过程中寻找路径的行为
    • 基本思想:
      • 用一个蚂蚁的行走路径表示待优化问题的一个可行解
      • 用整个蚂蚁群体的所有路径作为待优化问题的解空间
      • 用蚂蚁群体收敛选择的路径作为问题的优化解
    • 实现方式:
      • UrwEl9.png
      • UrwFW4.png
      • UrwASJ.png
      • UrwiYF.png

五、概率完备的连通图构建

  1. PRM(Probabilistic Roadmap) 概率路图

    • 基本思想:通过随机采样和碰撞检测找到自由位形空间中的路径点和无碰路径,构建连通图。

    • 步骤

      • 在位形空间坐标系中随机取点
      • 对采样的姿态进行碰撞检测
      • 无碰撞姿态成为图节点
      • 每个图节点和其最近相邻的k个节点直线连接
      • 保留无碰路径为图的边,构成自由位形空间中的Roadmap
      • 加入起始点和终止点,在PRM中搜索一条从起始点到终止点的路径
      • UyAXAf.png
    • 算法

      UyAjN8.png
    • PRM需要考虑的几个问题:

      • 随机位形选择:通常采用均匀随机采样方式
      • 寻找最近邻点:可以采用KD树方式加速
      • 生成局部路径:在一定范围内直接连接图节点
      • 检查路径无碰:可以增量式取点或者二分法取点,判断点是否在障碍物区域内
      • 进行路径优化:从目标点开始逐渐向前,若无碰撞则直接连接
      • 非全连通情况:例如形成两个连通子图
    • 优缺点

      UyEza6.png
  2. RRT(Rapid-Exploring Random Tree) 快速探索随机树

    • 基本思想:

      • 连通图采用树的形式,以起始点作为树的根节点
      • 采样在空间中随机采样、连接树中最近节点的方式拓展树
      • 考虑机器人的运动执行能力(运动学约束)
      • 通过树结构可以直接回溯得到路径,不需要使用路径搜索算法
    • 基本流程

      Uyufr4.png UyuWMF.png
    • 算法

      Uyu2xU.png
    • 影响规划收敛速度的三个步骤

      • 随机状态的采样
        • 针对问题:RRT扩张偏向状态空间未探测部分,但不是偏向目标点,当环境复杂时计算效率低
        • 双向搜索Bidirectional-RRT
      • 在搜索树中查找与随机状态距离最近的节点
        • 采用KD树
      • 新生成节点的防碰检测
    • RRT* 使路径更平滑

      • 针对问题:随机性小步扩展导致路径曲折,成本高
      • RRT*:为实现渐进最优,考虑路径成本
        • 寻找树中新节点邻域内到新节点路径最短的节点,建立连接,加入树集合
        • 对树中新节点邻域内节点进行判断,如果从新节点到该节点形成的路径优于现有树中路径,则将该节点父节点修改为新节点
  3. 分辨率完备与概率完备路径规划方法比较

    UyYD61.png

六、路径规划研究趋势

  1. 采用学习的路径规划:将路径规划问题转化为马尔可夫决策问题(MDP, Markov Decision Process),采用强化学习/深度强化学习进行求解
  2. 用深度学习学RRT的采样分布
  3. social行为路径规划
    • 综合地考虑与环境中人的交互
      • 学习地图成本:基于观察/指导反馈方式学习空间中人的行为,获得行为空间分布,构建成本地图
    • 基于人演示行为轨迹的cost function学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_11424.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

告别传统FTP!该了解一下替代FTP的新产品了

在某些情况下,需要从服务器上传(或下载)文件。多年来,最流行的文件传输方法是文件传输协议(FTP)。FTP的一大优点是它支持断点续传。FTP收获了方便性,却在安全性上有所欠缺。FTP未加密,这意味着格…

Cache-Augmented Inbatch Importance Resampling for Training Recommender Retriever

目录概符号说明启发本文方法BIR (inbatch importance resampling)XIR (Cache-Augmented Resampling)Chen J., Lian D., Li Y., Wang B., Zheng K. and Chen E. Cache-augmented inbatch importance resampling for training recommender retriever. In Advances in Neural Info…

一条sql了解MYSQL的架构设计

1 前言 对于一个服务端开发来说 MYSQL 可能是他使用最熟悉的数据库工具,然而,大部分的Java工程师对MySQL的了解和掌握程度,大致就停留在这么一个阶段:它可以建库、建表、建索引,然后就是对里面的数据进行增删改查,语句…

MacOS/OSX docker修改已运行容器参数的方法

比如我们刚刚docker run了一个容器,然后里面已经配置了一些信息,装了一些东西,然后我发现我忘记了挂载一个文件夹,怎么修改他们呢? 第一个方法: export容器为镜像再import这个镜像 第二个方法: 把现有的容器提交成镜像,然后重新运行. 以上两种方法都相当于你把一台电…

配置服务器入栈

配置服务器入栈 上回传送门 书接上回 登录我们的服务器管理页面 点击入站列表->点击号 配置如下 注意: 协议是vless 域名是cloudflare上我们设置的二级域名 公钥文件路径就是我们SHH工具上root 文件夹下cret 文件夹下面的证书 公钥名就是我们的证书路径 密钥…

Spring Cloud Alibaba现在还值不值学 ?

6年前面试最常问的并且可以顺利拿到高薪的技能是 Dubbo ,2年前面试,只要你简历上有 Spring Cloud 项目的相关经验,肯定会打动面试官,现在呢?恐怕简历上有Dubbo和简单的Spring Cloud技术和经验是无法让面试官高看你的。…

Eureka注册中心以及Ribbon负载均衡

Eureka注册中心 远程调用的问题 1、服务消费者改如何获取服务提供者的地址消息? 2、如果服务提供者有多个,消费者如何进行选择? 3、 消费者如何得知服务提供者的健康状态? Eureka的作用 服务每隔30s给Eureka发送心跳,…

一个技术创业者的自白:三条关于 “选择” 的建议

本文作者 Wyze CTO 刘天强。内容源自「声网开发者创业讲堂第一期」的演讲分享。创业方向:兴趣 VS 趋势 大家在创业的时候首先要选择的是 “做什么”?如何平衡个人特长、兴趣以及风口是创业者面临的难题。我在第一次创业的时候,做了一家主打图像识别 API 的公司 Orbeus,这家…

水电站生态流量下泄监测解决方案

水电站生态流量下泄监测解决方案   一些水电站因下泄生态流量不足造成部分河段减水、脱水甚至干涸的情况,使得群众的生产、生活以及河流的正常生态功能受到了一定程度的影响。计讯物联水电站生态流量下泄监测解决方案精准测量、实时监测、视频监控、预警提醒、及时…

JWT实现用户token令牌管理

以前的登录: 用户登录成功返回user对象 将user对象存储在session中 在拦截器中取出session中的user对象,判断是否已经登录,决定是否放行 token: 用户登录成功后,根据指定的用户信息生成一个token令牌 token令牌是…

Matlab论文插图绘制模板第49期—散点矩阵图(Plotmatrix)

在之前的文章中,分享了很多Matlab散点图的绘制模板: 这一次,再来分享一种特殊的散点图:散点矩阵图。 先来看一下成品效果: 本文主要展示带直方图的散点矩阵图的绘制方法,不带直方图的散点矩阵图的绘制方法…

【智能优化算法-水循环算法】基于蒸发的水循环算法求解用带约束的优化问题附matlab代码

1 内容介绍 2 部分代码 clear all; clc; close all; format long g objective_function=@fun; constraints=@Constraints; for k=1:1 % Number of independent runds %=====================================================================&#

半车(前后、左右)、整车悬架模型仿真分析

目录 前言 1.前后(Pitch)半车主动悬架模型 1.1 simulink前后半车悬架建模 1.1.2 搭积木法建模 1.1.3 S-Function建模(被动悬架为例) 1.2 仿真结果 2.左右(Roll)半车悬架模型(不含转向) 2.1 Simulink模型 2.2 仿真结果 3.整车悬架模型(不含转向) 3.1 整车7自由度主动悬架数…

二十七、Java 枚举(enum)

Java 枚举(enum) Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等。 Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割…

为什么 Aave、 Curve 等协议都在创建自己的稳定币

$GHO 和 $crvUSD 的推出近在咫尺,那么特定于协议的稳定币是下一个大叙事吗? 在所有的加密货币类型中,稳定币仍然拥有最大的产品市场契合度。 这是因为它们允许投资者在 DeFi 中使用美元敞口来进行交易、支付、存储价值或获得收益。 如今&a…

Actipro WPF Studio语法编辑器和停靠控件

Actipro WPF Studio语法编辑器和停靠控件 对接 向选项卡式 MDI 选项卡添加了“全部浮动”菜单项,它将容器中的所有停靠窗口浮动在一起。 改进了目标坞站主机命中测试逻辑。 改进了与 WebView2 控件相关的焦点跟踪。 增加了默认的 TabbedMdiHost.MaxTabExtent 宽度&a…

centos 6升级内核小版本、更新yum源和升级gcc版本

文章目录前言一、升级内核小版本1.1 设置开机自启动网卡1.2 下载待升级内核小版本的rpm文件1.3 修改内核版本启动顺序二、更换yum源三、升级g版本参考链接前言 将centos 6.8 2.6.32-642.el6.x86_64内核小版本升级到 2.6.32-642.3.1.el6.x86_64 2.6.32-642.el6.x86_64 -> 2…

思维导图:定时器设计

思维导图:定时器设计 Linux 服务器经典定时器设计,根据网上的各种资料简单整理了个思维导图 单个思维导图估计也就个人看看,如果各位有兴趣可以从以下几个问题入手 为啥要有专门的定时器模块定时器有啥用怎么定时关于定时器的设计与几种方…

代码阅读题-结构体大小

题目如下,小米23秋招-9.20-笔试首先这是一道C++的题,注意到的第一点是这个二维数组的初始化方式,他是给了一种一维数组的赋值方式,虽然没见过,但是想当然应该是逐层填充 经测试确实似乎这样的,而且给的初始值过多会报错,给少了打印默认值0int nums[3][5] = { 1,2,3,4,5,…

深入淺出 Spring Boot 多重設定檔管裡 (Spring Profiles)

在任何一套開發框架中, 多環境管裡 通常是重要的核心功能之一,當然在 Spring 框架中也不例外,這裡我們稱為 Spring Profiles 設定檔。這個功能說起來簡單,但實作起來卻很容易會不小心亂掉,這篇文章我打算來好好的梳理一…