[运动规划算法]Minimum Snap轨迹规划
文章目录
- 简介
- 1.为什么需要平滑轨迹?
- 2.平滑轨迹生成
- 一、微分平坦
- 二、Minimum-snap
- 1.平滑的一维轨迹
- 2.基于优化的轨迹生成
- 3.Minimum Snap轨迹生成
- 三、凸优化
- 1.凸函数和凸集定义
- 2.轨迹优化经常遇到的问题
- 四、闭式求解解决Minimum Snap轨迹规划
- 参考资料
简介
1.为什么需要平滑轨迹?
- 为了更好地自主移动。
- 速度不能立即改变。
- 机器人不应该在转弯时停止。
- 节省能量,经常地加减速会减少能量。
2.平滑轨迹生成
- 边界条件:开始、目标位置(方向)
- 中间条件:航路点位置(方向) •可通过路径规划(A*、RRT*等)找到航路点
- 平滑度的标准
- 通常是转化为最小化“输入”的变化率
一、微分平坦
系统状态可以被平坦空间的状态以及他们的导数所组成的代数组合所表示。
无人机一般认为有12个维度:
二、Minimum-snap
1.平滑的一维轨迹
简单的BVP问题(两点边界值问题),已知始末状态,通过参数化来调整平滑度。
使用五次多项式来描述这段轨迹:
每个分段的一维轨迹
2.基于优化的轨迹生成
- 显式最小化平面输出空间中的某些导数
- 四旋翼动力学
- Minimum jerk: 最小化角速度,有利于视觉跟踪
- Minimum snap: 最小化差速推力,节省能量
3.Minimum Snap轨迹生成
- 每个段都是一个多项式;
- 每个分段的多项式都是相同的阶次,这样对于问题的求解比较简单;
- 每一段的时间间隔必须是已知的。
Minimum snap问题的限制条件:初始条件以及结束条件的限制(包含有位置,速度,加速度等);中间节点连续(包含有位置,速度,加速度)。
针对minimum jerk,则需要提供位置,速度,角速度3个状态量。所以N = 2 * 3(jerk) - 1 = 5
针对minimum snap,则需要提供位置,速度,加速度,以及角速度,4个状态量。所以N = 2 * 4-1 = 7
如果考虑多段的情况,例如K段,则minimum jerk ,需要 (k-1) +3 +3= k+5 , 这里只要求能够连续的到达中间点,至于以怎样的速度,怎样的加速度到达这个点,是优化出来的,不属于约束 。
假设每一段的阶数为N ,则每一段轨迹所能提供的自由度为为N+1。N阶多项式可以提供N次导数,加上原多项式,即为N+1。 所以,总计 (N+1)*k。
(N+1)*k>= k+5. 则 N = 5 / k。表明轨迹段数越多,则提供的阶次越低。
构建约束方程
一个多项式分段的导数约束
•还对路径点约束建模(0阶导数)
两段之间的连续性约束:
- 在没有给出特定导数的情况下确保轨迹段之间的连续性
带约束的二次规划(QP)公式:
三、凸优化
1.凸函数和凸集定义
凸集
2.轨迹优化经常遇到的问题
四、闭式求解解决Minimum Snap轨迹规划
在轨迹生成中,解析解中的限制条件没有物理意义,而且数值会在高次产生不稳定性,所以要把对系数(无物理意义)的优化变为对va的优化。
通过映射矩阵M将P与限制条件d相连产生关系。d又可以通过选择矩阵Ct把d中的fix条件和free条件分开为dF dP.所以P就可以换成与条件有关的矩阵,通过qp得到闭式解。
参考资料
【1】深蓝学院运动规划课程;
【2】
Minimum Snap轨迹规划详解(1)轨迹规划入门
https://blog.csdn.net/q597967420/article/details/76099491Minimum Snap轨迹规划详解(2)corridor与时间分配
https://blog.csdn.net/q597967420/article/details/77623235Minimum Snap轨迹规划详解(3)闭式求解
https://blog.csdn.net/q597967420/article/details/79031791
[运动规划算法]Minimum Snap轨迹规划相关推荐
- Minimum Snap轨迹规划详解(3)闭式求解
如果QP问题只有等式约束没有不等式约束,那么是可以闭式求解(close form)的.闭式求解效率要快很多,而且只需要用到矩阵运算,不需要QPsolver. 这里介绍Nicholas Roy文章中闭式 ...
- (四)路径规划算法---QP解决Minimum Snap轨迹优化问题
QP解决Minimum Snap轨迹优化问题 文章目录 QP解决Minimum Snap轨迹优化问题 1. 多项式的次数确定 2. Minimum Snap案例分析 2.1 轨迹的多项式表达 2.2 ...
- (学习用1)调用用RRT算法进行笛卡尔空间轨迹规划和关节空间轨迹规划
在MoveIt中,可以通过调用computeCartesianPath()函数来使用RRT算法进行笛卡尔空间轨迹规划,可以通过调用computeJointSpacePath()函数来使用RRT算法进行 ...
- a算法和a*算法的区别_机器人路径规划算法,全局路径规划与局部路径规划究竟有哪些区别?...
若步智能 移动这一简单动作,对于人类来说相当容易,但对机器人而言就变得极为复杂,说到机器人移动就不得不提到路径规划,路径规划是移动机器人导航最基本的环节,指的是 ...
- python路径规划算法可视化_路径规划问题:DIJKSTRA算法 以及Python实现
一. DJKSTRA算法概述 我们可以将地图抽象为Graph的数据结构,然后利用Graph的广度优先遍历算法(Breadth-First Search, BFS)解决无权重的High-Level的地图 ...
- 图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法
目录 1 自动驾驶驶向何处? 2 什么是运动规划? 3 运动规划实战教程 4 加入我们 5 订阅需知 1 自动驾驶驶向何处? 自动驾驶,又称无人驾驶,是依靠计算机与人工智能技术在没有人为操纵的情况下, ...
- 机器人图规划算法研究现状简述
[文末提供原文PDF免费下载(期刊论文版式)] 摘要:运动规划是移动机器人自主导航系统中的重要模块之一,相关算法研究成果层出不穷,本文将图规划算法拆解为三个子类算法:图搜索算法.BUG类算法和 ...
- 机器人轨迹规划(熊友伦)
机器人轨迹规划(熊友伦) http://blog.csdn.net/jyc1228/article/details/3991881 http://blog.csdn.net/wx545644217/a ...
- matlab最优轨迹规划,matlab机器人轨迹规划
运动仿真 $@ %" 运动仿真( ')在对上述规划轨迹进行仿真前, 先输入机器 人的参数, 并命名 -$.$/&&)" 命令如下: " @ A 连杆的前四 ...
- DWA局部路径规划算法论文阅读:The Dynamic Window Approach to Collision Avoidance。
DWA(动态窗口)算法是用于局部路径规划的算法,已经在ROS中实现,在move_base堆栈中:http://wiki.ros.org/dwa_local_planner DWA算法第一次提出应该是1 ...
最新文章
- 关系型数据库-三范式
- 1054 The Dominant Color (20 分)【难度: 简单 / 知识点: 思维】
- PostgreSQL(三)pgpool管理PostgreSQL集群下主机宕机后的主从切换
- DEEPNORM:千层transformer...
- 第二课--字符串类型及操作
- mysql流式查询mybatis_流式查询:MyBatis千万级数据查询解决方案,避免OOM
- oracle简单序列,-30天下载
- 计算机二级ms office知识点讲解,全国计算机二级MSOffice复习知识点
- java写的小米商城_Taru-Xmall
- Git合并特定commits 到另一个分支
- 客服机器人代码_企业微信群机器人如何快速集成?无需开发连接微信公众号,表单系统,钉钉,推广,CRM,客服系统和数据库...
- js 图片加载时 按比例设置图片宽高_JS自动等比例缩放图片,判断网页与图片加载完成。...
- 10分钟学会数据地图制作,让你的可视化再高一级!
- 嘉腾发布“守护者I”抗疫机器人
- Introducing Swift(Swift介绍及其API)
- bmp格式图片缩放(位图缩放)
- 可以下載HEVC(H265)的網址
- android服务下载apk,Android 一个简单的版本更新下载apk小示例
- 基于pyqt5的简陋相机的实现
- PID算法详细解析——基于单片机