无人机的微分平坦性详细推导+Mini snap
无人机的微分平坦性详细推导
目标:将无人机的状态一个12维的向量用4维表示
即将无人机的位置,方向,速度和角速度用位置(X,Y,Z)和绕z轴的ψ\psiψ角表示
1.无人机非线性动力学
2.机体坐标系表示
无人机的推力始终与机架垂直因此
ZB=t∥t∥Z_B=\frac{t}{\|t\|}ZB=∥t∥t,t=[x¨,y¨,z¨+g]Tt=[\ddot x,\ddot y,\ddot z + g]^{\mathbf T}t=[x¨,y¨,z¨+g]T
然后我们通过一个中间坐标系来求YBY_BYB,坐标系如图1的,XC,YC,ZCX_C,Y_C,Z_CXC,YC,ZC。
XC=[cosψ,sinψ,0]TX_C=[cos\psi,sin\psi,0]^{\mathbf T}XC=[cosψ,sinψ,0]T
通过XCX_CXC我们得到YBY_BYB
YB=ZB×XC∥ZB×XC∥Y_B=\frac{Z_B \times X_C}{\|Z_B \times X_C\|}YB=∥ZB×XC∥ZB×XC(因为XCX_CXC和XB,ZBX_B,Z_BXB,ZB在一个平面内)
XB=YB×ZBX_B=Y_B \times Z_BXB=YB×ZB
RB=[XBYBZB]R_B=[X_B \ Y_B \ Z_B]RB=[XB YB ZB](它表示的旋转可以由ϕ,θ,ψ\phi,\theta,\psiϕ,θ,ψ的旋转矩阵表示,因此这三个角可以被消除掉)
3.角速度替换
对下式两边求导,(对一个旋转矩阵求导,等于它的角速度乘以本身这个坐标系。旋转矩阵求导看这里: 旋转矩阵求导
ωBW=ωxXB+ωyYB+ωzZB\omega_{BW}=\omega_xX_B+\omega_yY_B+\omega_zZ_BωBW=ωxXB+ωyYB+ωzZB 表示体坐标系下的角速度
上式中的
将它带入上式得到
这里的hωh_\omegahω的所有量都是已知量
hω=ωBW×ZB=(ωxXB+ωyYB+ωzZB)×ZBh_\omega=\omega_{BW}\times Z_B=(\omega_xX_B+\omega_yY_B+\omega_zZ_B)\times Z_Bhω=ωBW×ZB=(ωxXB+ωyYB+ωzZB)×ZB
因为
XB×ZB=−YBX_B\times Z_B=-Y_BXB×ZB=−YB
YB×ZB=XBY_B\times Z_B=X_BYB×ZB=XB
ZB×ZB=0→Z_B\times Z_B=\overrightarrow{0}ZB×ZB=0
因此上式可以展开为
hω=−ωx×YB+ωy×XBh_\omega= - \omega _x \times Y_B+\omega _y\times X_Bhω=−ωx×YB+ωy×XB
然后两边点乘YBY_BYB,得到
ωx=−hω⋅YB\omega _x=-h_\omega \cdot Y_Bωx=−hω⋅YB
两边点乘XBX_BXB,得到
ωY=hω⋅XB\omega _Y=h_\omega \cdot X_BωY=hω⋅XB
因为ωBW=ωBC+ωCW\omega_{BW}=\omega _{BC}+\omega _{CW}ωBW=ωBC+ωCW,而ωBC\omega _{BC}ωBC在ZBZ_BZB上没有分量,
因此ωz=ωBW⋅ZB=ωCW⋯ZB=ψ˙ZW⋅ZB\omega _z=\omega _{BW}\cdot Z_B=\omega _{CW} \cdots Z_B=\dot \psi Z_W \cdot Z_Bωz=ωBW⋅ZB=ωCW⋯ZB=ψ˙ZW⋅ZB
至此12维变量变成了4维变量表示。
在实际的路径规划中我们只需要规划出轨迹的位置,ψ\psiψ角通常表示为速度的切向方向(群里咨询的,不知是否还有什么知识不知道)。具体的控制回路如下;
例如在mini snap规划时我们只需要将规划的轨迹加上速度的切线方向丢这个控制回路,就可以实现无人机的飞行。
mini snap我的博客园: link
https://www.cnblogs.com/gongliqiang/p/14375447.html
https://www.cnblogs.com/long5683/p/11871630.html
无人机的微分平坦性详细推导+Mini snap相关推荐
- 【转】卡尔曼滤波算法详细推导(相当值得一看)
转载自 卡尔曼滤波算法详细推导 这一篇对预备知识的介绍还是很好的,过程与原理讲解也很到位,应该是目前看到中文里最好的讲解了. 一.预备知识 1.协方差矩阵 是一个维列向量,是的期望 ...
- python 高斯烟羽模型_GPR(高斯过程回归)详细推导
GPR(高斯过程回归)详细推导 一.综述 GPR来源于线性模型,有两种方式可以推导出GPR,一种是weight space view,另外一种是function space view.两者考察方式假设 ...
- CRC32算法详细推导(3)
From:http://blog.csdn.net/sparkliang/article/details/5671543 CRC32算法详细推导(3) 郁闷的位逆转 看起来我们已经得到 CRC-32 ...
- python如何实现小车行走_[详细推导]基于EKF的小车运动模型的python编程实现
一.任务介绍 在本任务中,您将使用可用的测量值和运动模型来递归估计车辆沿轨迹的位置.车辆有了非常简单的LIDAR传感器,可以返回与环境中各个地标相对应的范围(range)和方位测量值(bearing) ...
- 《推荐系统笔记(十一)》Learning to rank(LTR排序问题)的介绍和RankNet算法(内含详细推导)
前言 在美团.大众点评等网站上输入某个关键词时,这些网站该如何对相关的文档进行排序,也就是说,应该将哪个文档排在前面,将哪个文档排在后面. 这就涉及到LRT排序问题.本篇博客将简要介绍LTR问题,并对 ...
- 《统计学习方法》—— 朴素贝叶斯方法、详细推导及其python3实现(二)
前言 在上一篇博客中,我们介绍了朴素贝叶斯方法以及详细推导.在这篇博客中,我们将介绍朴素贝叶斯的python3实现代码. 这里,我们将算法复述如下: 输入:数据集 T={(x1,y1),(x2,y2) ...
- 关于卡尔曼滤波详细推导的理解
相信大家到了关注卡尔曼滤波原理推导的阶段,已经对卡尔曼滤波有所了解了,大概知道,卡尔曼滤波是应用在含有噪声的.模型(预测)基本知道一些的.传感器测量含有噪声的这种场合,对真实的状态(或变量值)进行最优 ...
- pca各个向量之间的相关度_详细推导PCA算法
本文主要思路如下: 1 PCA优化目标 PCA(主成分分析)是一种数据降维的方法,即用较少特征地数据表达较多特征地数据(数据压缩,PCA属于有损压缩).PCA推导有两种主要思路: 最大化数据投影后的的 ...
- 解:一阶齐次或非齐次线性微分方程-详细推导
详细推导过程笔记.不想看过程直接看结果的请看一阶线性微分方程_百度百科 (baidu.com) 其他一些写得好的相关博文推荐:微分方程(2)-一阶常微分方程的解法 - 知乎 (zhihu.com) 一 ...
最新文章
- jvm 系列(九):如何优化 Java GC 「译」
- 2015年国际智慧教育展览会盛大开幕
- halcon初学者知识【16】如何将Image图象的区域拷贝出来?
- 收不到Win10正式版预订通知?一个批处理搞定
- 阿里云消息队列python_41. Python Queue 多进程的消息队列 PIPE
- Integer包装类特殊之处
- FCPX插件Titles Set for Mac - 三合一黑白文本标题模板
- 51Nod——1004 n^n的末位数字
- jsp和mysql乱码
- Knative 带来的极致 Serverless 体验
- win7计算机用户配置文件存储路径,Win7用户配置文件夹位置怎么修改?
- Java基础篇:什么是递归?如何用递归?
- visual studio2013 php
- 剥开比原看代码03:比原是如何监听p2p端口的
- 在linux中配置编译u-boot方法,U-Boot编译过程解析
- Android半透明+RGB颜色代码大全
- 解决远程桌面不能用大法
- 参考文献名称怎么复制_论文格式之注释:脚注、尾注、参考文献怎么弄?
- 网页设计图片向上浮动_网页设计与制作(网页设计、制作与美化)
- DNS 文件传输协议