移动机器人运动规划(四)--动力学约束下的路径规划

2023-05-16

本节课主要介绍动力学约束下的路径规划,还是有些难度的!
在这里插入图片描述
首先依然是课程大纲:五个部分,重点是中间的三个部分,ppt上的顺序错了,课程先讲的Hybrid A*,其次才是Kinodynamic RRT*。加上动力学的约束后,机器人的路径搜索问题依然可以分为基于图的和基于采样的。

Introduction

在这里插入图片描述
首先Kinodynamic这个词是个合成词:运动学和动力学两部分组成,中文不是太好翻译,大概能意会就可以了。
在这里插入图片描述
在前端考虑动力学约束,可以很好的降低后端优化的工作压力。
在这里插入图片描述
而且轨迹通常只能进行部分优化,所以在初始的路径搜索时要考虑动力学约束。
在这里插入图片描述

学习链接

在这里插入图片描述
几种常见的模型,区别就在于限制的不同。
参考链接

State Lattice Planning

Workflow

在这里插入图片描述
各类算法的核心就在于search tree这一步!
在这里插入图片描述

在这里插入图片描述
将栅格地图做连接其实就是一种对控制空间的离散化(sample)。
在这里插入图片描述
PRM就是对状态空间的离散化。
在这里插入图片描述

在这里插入图片描述
在控制空间中 进行sample的具体例子。关于矩阵 A A A:nilpotent,幂零矩阵,具有很好的性质,参考此篇博客。
在这里插入图片描述
状态转移矩阵:涉及到控制理论,都还给老师了23333.所以得及时复习呀!如果 A A A是幂零矩阵,则 e A t e^{At} eAt会很简洁,因为后面的项就都是0了。

在这里插入图片描述lattice graph:将加入状态输入之后的节点(子状态)继续离散化,就是lattice graph。
在这里插入图片描述
一个具体的lattice 过程,关于搜索树的构建。

在这里插入图片描述
在状态空间的离散化:直接把小汽车能够到达的状态,反算之后加进来。
在这里插入图片描述
上面是一个两层的lattice graph;可以看出只有第一层是不一样的,因为出状态不一样,但是第二层则是完全一样的,因为第二层都是由相同的状态扩展出来的;此外能够看出lattice的计算开销还是非常大的,所以一般来说如果是在线进行lattice,通常只会选取一部分,而没必要全部都做。
在这里插入图片描述
基于控制空间的采样和基于状态空间的采样的一个很明显的对比,也是非常经典的一篇论文。在控制空间采样是很没有目的性的,,有很多都是不合格的;而状态空间中采样则可以最大限度的保证有更多的局部路径是可以使用的。而且如果只离散控制空间,会使得自由度很少;状态空间采样的缺点则在于难于实现(究竟如何去反算轨迹)。

Boundary Value Problem

在这里插入图片描述
首先来看一种最简单的情况,如上图所示,我们的目标就是想办法怎样从a状态达到b状态。
在这里插入图片描述
将x的运动用多项式来表示 。边界条件只有两个,就是0时刻和T时刻的位置,速度是不做要求的。通过两次求导,可以得到求解的方程。但是这样肯定不会是最优解的。
在这里插入图片描述
下面进入到本节课最困难的部分,因为涉及到很多数学上的东西,也会涉及到一些轨迹生成的知识。
我们的目标是:让jerk(加速度的导数)的平方的积分最小;这里用的方法是:Pontryagin’s maximum principle,其实就是这是变分法中欧拉-拉格朗日方程的特例。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
一些纯粹数学上的推导。
在这里插入图片描述
利用刚才的最优控制理论预测乒乓球的落点,用无人机去接乒乓球。
在这里插入图片描述
由于汽车的动力学约束复杂,所以是无法做到实时的生成lattice,而且只能做到数值解,因此需要离线去生成,然后在线搜寻,是这样的一个流程。
在这里插入图片描述在这里插入图片描述
轨迹库:单层的lattice。工程上常用,到时候去利用打分函数去选择即可。无人车上常用这种方法。
在这里插入图片描述

Heuristic

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

Planning in Frenet-serret Frame

在这里插入图片描述
自动驾驶领域常用的一种框架:在活动坐标系下的lattice planning。
在这里插入图片描述
定义好状态后(初始状态满足距离、速度、加速度,终止状态要满足贴着车道线,所以只有位置上的要求,速度和加速度均为0),问题就相当于去求解一个OBVP问题。
在这里插入图片描述
参考网址

Hybrid A*

Workflow

在这里插入图片描述
混合A*算法:把栅格地图的路径搜索算法与lattice相结合;保证一个网格里只有一个节点 。

在这里插入图片描述
启发函数不一样;“找邻居的依据是lattice”;更新时也是更新的“状态”。
提出Hybrid A*算法的两篇论文:
Practical Search Techniques in Path Planning for Autonomous Driving, Dmitri Dolgov, Sebastian Thrun
Path Planning for Autonomous Vehicles in Unknown Semi-structured Environments, Dmitri Dolgov, Sebastian Thrun
在这里插入图片描述

  • 2维的欧式距离作为启发函数;
  • 不考虑障碍物但考虑动力学模型;
  • 在终点有障碍物时(死胡同)的表现
  • 不考虑障碍物但考虑动力学模型不考动力学模型但考虑障碍物

在这里插入图片描述
工程上的一些trick:在其中一棵树上直接搜索,如果满足条件则可以提前结束算法,这个涉及到一些权衡。可以利用一定的概率,比如每搜索20次来一次one shot,就像抽奖一样233333.

Application

在这里插入图片描述
在这里插入图片描述
github链接
无人机的A矩阵是幂零矩阵,所以会在计算时带来很多优势。

Kinodynamic RRT*

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
回顾一下RRT*的基本流程,不再赘述。

在这里插入图片描述
两者不同之处也就是在于考虑了动力学约束。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
也就是要求解这样的一个最优控制问题!
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

Homework

在这里插入图片描述在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移动机器人运动规划(四)--动力学约束下的路径规划 的相关文章

  • 无人机飞控三大算法:捷联式惯性导航系统、卡尔曼滤波算法、飞行控制PID算法

    无人机飞控三大算法 xff1a 捷联式惯性导航系统 卡尔曼滤波算法 飞行控制PID算法 一 捷联式惯性导航系统 说到导航 xff0c 不得不说GPS xff0c 他是接受卫星发送的信号计算出自身位置的 xff0c 但是当GPS设备上方被遮挡
  • [学习笔记-01]关于单片机的中断处理机制(一)

    单片机的中断处理机制 1 什么是中断 xff1f 1 1 为什么要使用中断 中断的特点 1 2 什么是中断源 xff1f 1 2 1中断源有哪些 2 中断机制的流程3 中断优先级3 1 多个中断同时发生3 2 中断嵌套 1 什么是中断 xf
  • 黑苹果突然某一天无法上网?可能设置了BIOS,这样可以有网了!

    如图所示 xff0c 本人是微星迫击炮B450 xff08 非MAX xff09 xff0c 进入BIOS设置网卡 xff0c 可以解决这样的没网的问题 如果各位的BIOS不是微星 xff0c 也没有关系 xff0c 可以找到类似的功能就可
  • LSTM模型、双向LSTM模型以及模型输入输出的理解

    循环神经网路 xff08 RNN xff09 在工作时一个重要的优点在于 xff0c 其能够在输入和输出序列之间的映射过程中利用上下文相关信息 然而不幸的是 xff0c 标准的循环神经网络 xff08 RNN xff09 能够存取的上下文信
  • 无人机中的PID控制代码略解

    无人机中的PID控制代码略解 PID的控制规律 xff1a 参考 xff1a Amov实验室 PX4中级课程 PID基础 频域函数 xff1a u s
  • 如何用Python在图片上绘制BoundingBox

    参考资料 xff1a https blog csdn net weixin 41735859 article details 106599903 在目标检测等CV领域的任务里 xff0c 经常会涉及到在图片上绘制BBox xff0c 也就是
  • uart

    1 关于UART的基本特性 xff1a xff08 1 xff09 异步串行通信 xff0c 可为全双工 半双工 单发送TX或单接收RX模式 xff1b xff08 2 xff09 支持5 xff5e 8位数据位的配置 xff0c 波特率几
  • STM32--数码管显示使用

    STM32 数码管显示 简介 1 硬件部分 STM32F103C8T6 最小系统板 一位共阴数码管 2 软件部分 Keil软件编程 数码管码表 硬件部分 数码管 简介 数码管 xff0c 也称作辉光管 xff0c 是一种可以显示数字和其他信
  • LXC 和 LXD 容器总结

    1 概述 1 1 LXC LXC是Linux Containers的缩写 它是一种虚拟化技术 xff0c 通过一个Linux内核在一个受控主机上虚拟地运行多个Linux系统 LXC使用内核的Cgroups功能 xff0c 来提供进程和网络空
  • Altium designer -- 基本规则设置--间距设置Clearance

    Altium designer 基本规则设置 xff08 1 xff09 间距设置Clearance 硬件设计 软件 Altium designer 10PCB设计 间距设置 规则名称1 xff1a Clearance 一般间距 最小间距
  • Python 百度智能云文字识别 实现手写文字识别

    Python 实现手写文字识别 简介 百度智能云人工智能平台文字识别接口使用下载IP摄像头应用 调用手机摄像头 xff0c 实现拍照实现文字识别 Python 百度智能云人工智能文字识别接口 实现手写文字识别 百度智能云 创建应用 创建Py
  • Python 天气 简单 数据分析及可视化

    Python 天气情况数据分析及可视化 环境配置 Pycharm开发环境 python 版本 python3 7 Anconda 集成开发环境 第三方库导入 span class token comment pip install 模块 清
  • STM32 BMP280模块 获取气压温度高度传感器数据 TFT显示

    STM32 BMP280模块 获取气压温度高度传感器数据 TFT显示 简介 BMP280是博世最新推出的数字气压传感器 xff0c 具有卓越的性能和低廉的价格 xff0c 相对精度为 0 12 hPa xff08 相当于 1米 xff09
  • 51单片机学习 光敏电阻传感器实验

    51单片机学习 光敏电阻传感器实验 一 光敏电阻模块简介 光敏电阻传感器模块是对光线敏感度的反应 xff0c 一般用来检测探头周围光线的强度 xff08 亮度 xff09 xff0c 可以通过DO输出数字信号1和0 xff0c 也可以通过A
  • 基于STM32的物联网环境监测系统

    基于STM32的物联网环境监测系统 xff08 Internet of Things environmental monitoring system based on STM32 xff09 基于机智云物联网的环境监测系统 视频演示 摘 要
  • 合宙ESP32S3 CameraWebServe 测试demo

    合宙ESP32S3 CameraWebServe 合宙ESP32S3 CameraWebServe测试 xff0c 我们需要一个OV2640的摄像头模组用来采集图像传输给ESP32的 xff0c 这里使用的OV2640是之前安信可十周年的白
  • 【学习笔记汇总】OpenStudyNote

    OpenStudyNote https imgse com i ppE5FpQ 本科毕业设计 Internet of Things environmental monitoring system based on STM32 STM32系列
  • 计算机视觉:场景识别(Scene Recognition)

    计算机视觉 xff1a 场景识别 xff08 Scene Recognition xff09 场景识别图像分类特征提取词袋模型集成学习分类器 算法设计结果分析总结与展望总结展望 完整程序请移步至此链接下载 场景识别 在这个项目中 xff0c
  • ROS学习笔记(六):TF坐标变换

    ROS学习笔记 xff08 六 xff09 xff1a TF坐标变换 TF的基本知识TF工具tf monitortf echostatic transform publisherview framesrqt tf tree 各坐标系及其关系
  • String, Int 和 Byte数组

    1 Bytes amp String 1 1 Bytes 61 gt String Python byte array span class token operator 61 span span class token builtin b

随机推荐