點擊上方藍字,關注本公眾號,獲得更多資源
上一篇文章介紹了四元數、歐拉角、旋轉矩陣、軸角如何相互轉換,本篇文章介紹如何用eigen來實現。

旋轉向量
1,初始化旋轉向量:旋轉角為alpha,旋轉軸為(x,y,z)Eigen::AngleAxisd rotation_vector(alpha,Vector3d(x,y,z))
2,旋轉向量轉旋轉矩陣Eigen::Matrix3d rotation_matrix;rotation_matrix=rotation_vector.matrix();Eigen::Matrix3d rotation_matrix;rotation_matrix=rotation_vector.toRotationMatrix();
3,旋轉向量轉歐拉角(Z-Y-X,即RPY)Eigen::Vector3d eulerAngle=rotation_vector.matrix().eulerAngles(2,1,0);
4,旋轉向量轉四元數Eigen::Quaterniond?quaternion(rotation_vector);Eigen::Quaterniond quaternion;quaternion=rotation_vector;
旋轉矩陣
1,初始化旋轉矩陣
Eigen::Matrix3d rotation_matrix;rotation_matrix<
2,旋轉矩陣轉旋轉向量Eigen::AngleAxisd?rotation_vector(rotation_matrix);Eigen::AngleAxisd rotation_vector;rotation_vector=rotation_matrix;Eigen::AngleAxisd rotation_vector;rotation_vector.fromRotationMatrix(rotation_matrix);
3,旋轉矩陣轉歐拉角(Z-Y-X,即RPY)Eigen::Vector3d eulerAngle=rotation_matrix.eulerAngles(2,1,0);
4,旋轉矩陣轉四元數Eigen::Quaterniond?quaternion(rotation_matrix);Eigen::Quaterniond quaternion;quaternion=rotation_matrix;
歐拉角
1,初始化歐拉角(Z-Y-X,即RPY)Eigen::Vector3d eulerAngle(yaw,pitch,roll);
2, 歐拉角轉旋轉向量Eigen::AngleAxisd rollAngle(AngleAxisd(eulerAngle(2),Vector3d::UnitX()));Eigen::AngleAxisd pitchAngle(AngleAxisd(eulerAngle(1),Vector3d::UnitY()));Eigen::AngleAxisd yawAngle(AngleAxisd(eulerAngle(0),Vector3d::UnitZ())); Eigen::AngleAxisd rotation_vector;rotation_vector=yawAngle*pitchAngle*rollAngle;
3,歐拉角轉旋轉矩陣Eigen::AngleAxisd rollAngle(AngleAxisd(eulerAngle(2),Vector3d::UnitX()));Eigen::AngleAxisd pitchAngle(AngleAxisd(eulerAngle(1),Vector3d::UnitY()));Eigen::AngleAxisd yawAngle(AngleAxisd(eulerAngle(0),Vector3d::UnitZ())); Eigen::Matrix3d?rotation_matrix;rotation_matrix=yawAngle*pitchAngle*rollAngle;
4,歐拉角轉四元數Eigen::AngleAxisd rollAngle(AngleAxisd(eulerAngle(2),Vector3d::UnitX()));Eigen::AngleAxisd pitchAngle(AngleAxisd(eulerAngle(1),Vector3d::UnitY()));Eigen::AngleAxisd yawAngle(AngleAxisd(eulerAngle(0),Vector3d::UnitZ())); Eigen::Quaterniond quaternion;quaternion=yawAngle*pitchAngle*rollAngle;
四元數
1,初始化四元數
Eigen::Quaterniond quaternion(w,x,y,z);
2,四元數轉旋轉向量Eigen::AngleAxisd?rotation_vector(quaternion);Eigen::AngleAxisd rotation_vector;rotation_vector=quaternion;
3,四元數轉旋轉矩陣Eigen::Matrix3d?rotation_matrix;rotation_matrix=quaternion.matrix();Eigen::Matrix3d rotation_matrix;rotation_matrix=quaternion.toRotationMatrix();
4,四元數轉歐拉角(Z-Y-X,即RPY)Eigen::Vector3d eulerAngle=quaternion.matrix().eulerAngles(2,1,0);
-?END?-
自動駕駛歷史文章閱讀
資料下載:2019自動駕駛資料大放送
7天,搞定機器學習基礎知識
人工智能相關資料
頭條 | 高定位精度的交通標志識別----開源了
頭條?|?COVID-19?CT數據庫下載
激光雷達(Lidar)相關:主要涉及lidar的目標檢測方法分析、融合感知方法分析、如何從點云做end-to-end目標軌跡預測、模型加速與工程化頭條?|?自動駕駛多傳感器融合技術淺析一文覽盡“基于激光雷達點云(lidar)的目標檢測方法”頭條?|?自動駕駛環境感知技術要點淺析頭條?|?深度學習模型inference優化之編譯優化頭條 | Fast and Furious,速度與激情?圖像相關:涉及了目標檢測與分割、網絡結構設計與模型加速。從基礎的知識點出發,幫你一步一步理解方法,加深印象。輕量(高效)目標檢測網絡結構設計mask rcnn 與 PointRend一文讀懂RPN和ROI AlignCNN中的感受野目標檢測中的Anchor分析行業信息:梳理行業大事件,幫你了解行業的發展狀況。主要車企和造車新勢力自動駕駛傳感器配置方案福特開源1.8TB自動駕駛數據,到底開源數據哪家強?