Eigen集合模块学习(角轴,位姿,欧拉角,四元数)--参考SLAM十四讲3.6
【Eigen集合模块学习(角轴,位姿,欧拉角,四元数)--参考SLAM十四讲3.6】#include
using namespace std;
#include
#include
#include
#include
#include
int main(int argc, char **argv)
{
Eigen::Matrix3d rotation_matrix3d=Eigen::Matrix3d::Identity();
//单位阵
cout<<"rotation_matrix3d="<
cout.precision(5);
//角轴表达
rotation_matrix3d=rotation_vector.toRotationMatrix();
//将角轴转换为矩阵
cout<<"rotation_vector.matrix()="<
Eigen::Vector3d v_rotated=rotation_vector*v;
//旋转过后的向量
cout<<"v_rotated="<
Eigen::Vector3d euler_angles=rotation_matrix3d.eulerAngles(2,1,0);
//ZYX顺序
cout<<"euler_angles="<<180/M_PI*euler_angles.transpose()<
Eigen::Isometry3d T=Eigen::Isometry3d::Identity();
//需要赋值为单位阵,后续好做旋转
cout<<"T(Identity)="<
T.pretranslate(Eigen::Vector3d(1,3,4));
cout<<"T="<
Eigen::Vector3d v_transformed=T*v;
//虽然T是四维的,但有运算符重载按照三维计算
cout<<"v_transformed="<
Eigen::Quaterniond q=Eigen::Quaterniond(rotation_vector);
cout<<"q(四元数,传vector)="<
q=Eigen::Quaterniond(rotation_matrix3d);
cout<<"q(传matrix)="<
cout<<"v_rotated="<
}
推荐阅读
- 图书集合完毕
- SpringBoot调用公共模块的自定义注解失效的解决
- Node.js中readline模块实现终端输入
- python自定义封装带颜色的logging模块
- 解决SpringBoot引用别的模块无法注入的问题
- Python(pathlib模块)
- Apache多路复用模块(MPMs)介绍
- 依赖注入模块
- 部署专题集合
- python3|python3 模块 包