如何使用特徵庫使用俯仰,偏航和滾動創建旋轉矩陣?使用特徵庫創建與俯仰,偏航,滾動旋轉矩陣
回答
看到,因爲我怎麼也找不到一個預置的功能是這樣做,我建一個,就是這樣的情況下,有人認爲這個問題在未來
Eigen::AngleAxisd rollAngle(roll, Eigen::Vector3d::UnitZ());
Eigen::AngleAxisd yawAngle(yaw, Eigen::Vector3d::UnitY());
Eigen::AngleAxisd pitchAngle(pitch, Eigen::Vector3d::UnitX());
Eigen::Quaternion<double> q = rollAngle * yawAngle * pitchAngle;
Eigen::Matrix3d rotationMatrix = q.matrix();
不錯的答案,但正如@narcispr所說,軸將取決於您的應用程序。你能否在你的回答中註明你的目標是飛機應用程序以避免混淆? –
所有你需要創建一個旋轉矩陣是音調,偏航,滾動和執行矩陣乘法的能力。首先,創建三個旋轉矩陣,每個旋轉軸一個(即一個用於俯仰,一個用於偏航,一個用於滾動)。這些矩陣將有值:
間距矩陣:
1, 0, 0, 0,
0, cos(pitch), sin(pitch), 0,
0, -sin(pitch), cos(pitch), 0,
0, 0, 0, 1
偏航矩陣:
cos(yaw), 0, -sin(yaw), 0,
0, 1, 0, 0,
sin(yaw), 0, cos(yaw), 0,
0, 0, 0, 1
輥母:
cos(roll), sin(roll), 0, 0,
-sin(roll), cos(roll), 0, 0,
0, 0, 1, 0,
0, 0, 0, 1
下,乘所有的這些結合在一起。這裏的命令很重要。對於正常旋轉,您需要首先將Roll Matrix乘以Yaw Matrix,然後乘以Pitch Matrix。但是,如果您嘗試通過倒退來「撤消」旋轉,則需要以相反的順序執行乘法(除了具有相反值的角度外)。
謝謝你的回答,我已經知道這件事,但我希望圖書館有一個預製功能來做到這一點。 – Caesar
@MohammedMajeed我不相信有內置函數,但請參閱http://stackoverflow.com/a/15043888/1530508瞭解使用四元數的非常簡潔的技巧。 – ApproachingDarknessFish
這是記錄[那裏](http://eigen.tuxfamily.org/dox/group__TutorialGeometry.html#title3) – ggael
如何創建一個旋轉矩陣使用音高,偏航,滾動與特徵庫?
有48種方法可以做到這一點。你想要哪一個?以下是這些因素:
- Extrinsic verus intrinsic。
是固定系統的軸旋轉(外部)還是旋轉軸(固有)? - 旋轉與轉換。
您想要表示物理旋轉某個對象的矩陣,還是要表示將矢量從一個參考框架轉換爲另一個參考框架的矩陣? - 天文序列。
有六個基本的天文序列。典型的歐拉序列涉及圍繞z軸的旋轉,接着圍繞(旋轉的)x軸旋轉,然後圍繞(再次旋轉)z軸進行第三次旋轉。還有5個這些天文式序列(X-Y-X,X-Z-X,的y的x-y,Y-Z-Y,和Z-Y-Z)除了這個規範Z-X-Z序列。 - 航空航天序列。
爲了增加混亂,還有六個基本的航空航天序列。例如,俯仰偏航滾動序列相對於滾動俯仰偏航序列。雖然天文學界幾乎已經解決了一系列問題,但對於航空航天界來說卻不能這麼說。一路上你會發現有人使用六種可能的序列中的每一種。此組中的六個序列是X-Y-Z,X-Z-Y,Y-Z-X,X-Y-Z,Z-X-Y,和Z-Y-X。
凱撒回答是好的,但大衛哈姆說,這取決於您的應用程序。對我來說,(水下或高空作業車領域)的獲獎組合是:
Eigen::Quaterniond
euler2Quaternion(const double roll,
const double pitch,
const double yaw)
{
Eigen::AngleAxisd rollAngle(roll, Eigen::Vector3d::UnitX());
Eigen::AngleAxisd pitchAngle(pitch, Eigen::Vector3d::UnitY());
Eigen::AngleAxisd yawAngle(yaw, Eigen::Vector3d::UnitZ());
Eigen::Quaterniond q = yawAngle * pitchAngle * rollAngle;
return q;
}
在飛機主軸上,滾動是Z,間距是X,偏航是Y.水下的標準是不同的嗎? http://en.wikipedia.org/wiki/Aircraft_principal_axes – Caesar
@Caesar在我的情況,我有一個瓢蟲全景相機和軸是在這個答案相同。 –
- 1. 從滾動,俯仰和偏航值創建CMAttitude旋轉矩陣
- 2. 用滾動/俯仰/偏轉旋轉矩陣
- 3. 如何從旋轉矩陣計算偏航,俯仰搖擺?
- 4. OpenCV:如何從POSIT(solvePnP)旋轉矩陣得到偏航,滾轉,俯仰
- 5. 確定偏航,俯仰和滾轉
- 6. 從CMRotationMatrix得到俯仰,偏航,滾動
- 7. 限制俯仰,偏航和橫滾
- 8. iphone - 偏航,俯仰和滾轉的核心運動範圍
- 9. 使用滾動,俯仰和偏航來翹曲圖像
- 10. 如何使用getorientation和getrotation矩陣來計算俯仰,滾動
- 11. 偏航,俯仰和滾轉值的延遲
- 12. 陀螺儀CMAttitude俯仰,滾轉和偏航角度問題
- 13. 的iPad 1陀螺儀:滾轉,俯仰,偏航留零
- 14. 偏航,俯仰和滾動到vectorDir和vectorUp
- 15. 如何渲染俯仰,滾動和偏航的3D軸?
- 16. CoreMotion不會給我滾動,俯仰和偏航
- 17. 從rotationMatrix中提取偏航,俯仰和滾動
- 18. 如何從3D矢量中獲得偏航,俯仰和滾動
- 19. 快速陀螺儀偏航,俯仰,滾動
- 20. 使用四元數來計算iphone的偏航,俯仰和滾轉?
- 21. 在iOS上獲取相對於地理北極的俯仰,俯仰和偏航?
- 22. 使用特徵創建簡單矩陣?
- 23. 如何使arduino無人機穩定的滾動,俯仰,偏航值?
- 24. 我如何從角度變換系數找到旋轉角度(俯仰,偏航,滾動)
- 25. 來自加速度計和磁力計的俯仰,滾轉和偏航
- 26. 如何從csv文件導入xyz和滾動/俯仰/偏航到Blender?
- 27. 如何通過滾動,俯仰和偏航獲取攝像機向量?
- 28. CMAttitude滾動和俯仰計算
- 29. 測量設備俯仰偏轉和相對於目標的滾動
- 30. 使用四元數來代替滾動,俯仰和偏航來跟蹤設備的運動
您也可以參考這個答案[徵結合旋轉和平移成一個矩陣(https://stackoverflow.com/questions/25504397/本徵結合,旋轉和平移成一矩陣)。 –