当前位置:网站首页>无人机的微分平坦性详细推导
无人机的微分平坦性详细推导
2022-07-21 05:05:00 【什么时候能造钢铁侠啊】
无人机的微分平坦性详细推导
目标:将无人机的状态一个12维的向量用4维表示
即将无人机的位置,方向,速度和角速度用位置(X,Y,Z)和绕z轴的 ψ \psi ψ角表示
1.无人机非线性动力学
2.机体坐标系表示
无人机的推力始终与机架垂直因此
Z B = t ∥ t ∥ Z_B=\frac{t}{\|t\|} ZB=∥t∥t, t = [ x ¨ , y ¨ , z ¨ + g ] T t=[\ddot x,\ddot y,\ddot z + g]^{\mathbf T} t=[x¨,y¨,z¨+g]T
然后我们通过一个中间坐标系来求 Y B Y_B YB,坐标系如图1的, X C , Y C , Z C X_C,Y_C,Z_C XC,YC,ZC。
X C = [ c o s ψ , s i n ψ , 0 ] T X_C=[cos\psi,sin\psi,0]^{\mathbf T} XC=[cosψ,sinψ,0]T
通过 X C X_C XC我们得到 Y B Y_B YB
Y B = Z B × X C ∥ Z B × X C ∥ Y_B=\frac{Z_B \times X_C}{\|Z_B \times X_C\|} YB=∥ZB×XC∥ZB×XC(因为 X C X_C XC和 X B , Z B X_B,Z_B XB,ZB在一个平面内)
X B = Y B × Z B X_B=Y_B \times Z_B XB=YB×ZB
R B = [ X B Y B Z B ] R_B=[X_B \ Y_B \ Z_B] RB=[XB YB ZB](它表示的旋转可以由 ϕ , θ , ψ \phi,\theta,\psi ϕ,θ,ψ的旋转矩阵表示,因此这三个角可以被消除掉)
3.角速度替换
对下式两边求导,(对一个旋转矩阵求导,等于它的角速度乘以本身这个坐标系。旋转矩阵求导看这里: 旋转矩阵求导
ω B W = ω x X B + ω y Y B + ω z Z B \omega_{BW}=\omega_xX_B+\omega_yY_B+\omega_zZ_B ωBW=ωxXB+ωyYB+ωzZB 表示体坐标系下的角速度
上式中的
将它带入上式得到
这里的 h ω h_\omega hω的所有量都是已知量
h ω = ω B W × Z B = ( ω x X B + ω y Y B + ω z Z B ) × Z B h_\omega=\omega_{BW}\times Z_B=(\omega_xX_B+\omega_yY_B+\omega_zZ_B)\times Z_B hω=ωBW×ZB=(ωxXB+ωyYB+ωzZB)×ZB
因为
X B × Z B = − Y B X_B\times Z_B=-Y_B XB×ZB=−YB
Y B × Z B = X B Y_B\times Z_B=X_B YB×ZB=XB
Z B × Z B = 0 → Z_B\times Z_B=\overrightarrow{0} ZB×ZB=0
因此上式可以展开为
h ω = − ω x × Y B + ω y × X B h_\omega= - \omega _x \times Y_B+\omega _y\times X_B hω=−ωx×YB+ωy×XB
然后两边点乘 Y B Y_B YB,得到
ω x = − h ω ⋅ Y B \omega _x=-h_\omega \cdot Y_B ωx=−hω⋅YB
两边点乘 X B X_B XB,得到
ω Y = h ω ⋅ X B \omega _Y=h_\omega \cdot X_B ωY=hω⋅XB
因为 ω B W = ω B C + ω C W \omega_{BW}=\omega _{BC}+\omega _{CW} ωBW=ωBC+ωCW,而 ω B C \omega _{BC} ωBC在 Z B Z_B ZB上没有分量,
因此 ω z = ω B W ⋅ Z B = ω C W ⋯ Z B = ψ ˙ Z W ⋅ Z B \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规划时我们只需要将规划的轨迹加上速度的切线方向丢这个控制回路,就可以实现无人机的飞行。
—参考了深蓝学院移动机器人路径规划课程
边栏推荐
- Apisik microservice gateway
- printf 详解 - 你所不知道的printf用法
- Cat and dog picture resources
- Recursive and non recursive implementation of four traversals of binary trees
- Pytorch installation
- Initializing libiomp5. dylib, but found libomp. dylib already initialized
- DataLossError : corrupted record at XXXXXXX,BERT预训练报错
- Operating instructions for opt101 monolithic photodiode and single power supply mutual resistance amplifier
- VS+QT debug 改成release版本导出记录
- (剑指off版)旋转数组求最小值(通俗易懂)
猜你喜欢
Hetai ht32 & taojingchi tjc--t0 serial port screen learning notes
[PCB] Based on Hetai ht32f52352 chip circuit board drawing experiment (WiFi and optical sensor module) - drawing board notes
(environment configuration) TDD net
tensorflow-GPU环境配置
STM32F407-OV7670(无FIFO)-ONENET-实现摄像头画面上传到onenet(EDP协议)
如何逐步匹配多幅点云
Esp8266 firmware download and burning (include at firmware download address + firmware burning precautions)
namespace 命名空间
Pre training and fine tuning of Google Bert model for beginners
Glory mobile refrigerator app activation
随机推荐
Hetai 32 onenet WiFi module - Hetai MCU data cloud through mqtt protocol (I)
力扣中 26.删除有序数组中的重复项 88.合并两个有序数组 和189.旋转数组
深度剖析数据在内存中的存储
Tensorflow GPU environment configuration
Solve zsh:command not found
tensorflow-GPU环境配置
深度理解指针(冒泡排序模拟实现qsort,函数指针实现回调函数)
DataLossError : corrupted record at XXXXXXX,BERT预训练报错
Hetai ht32 -- taojingchi tjc--t0 serial port screen learning notes (II)
pycharm常见错误集锦
Esp8266 firmware download and burning (include at firmware download address + firmware burning precautions)
深度剖析 —— 递归
n-gram
从一个点云中提取一个子集
boost::this_thread::sleep (boost::posix_time::microseconds (100000))报错“this_thread”:“::”左侧的符号必须是一种类型
深度剖析 string —— memset & memcmp
1027打印沙漏
Hetai 32 onenet WiFi module - Hetai MCU data cloud through mqtt protocol (II)
scanf 详解 - 你所不知道的scanf用法
Owncloud 9.0 better cross server sharing and scalability