视觉slam14讲——第3讲 三维空间刚体运动
来源:互联网 发布:企业网站如何做好优化 编辑:程序博客网 时间:2024/05/17 05:03
- 旋转的四种表示方法
- 四种变换
1 旋转的四种表示方法
- 旋转向量(也叫轴角)
- 旋转矩阵
- 欧拉角
- 四元数
这四种都可以相互转化,使用Eigen库常用转化总结如下
(0)构造旋转向量
Eigen::AngleAxisd rotation_vector ( M_PI / 4, Eigen::Vector3d ( 0, 0, 1 ) );
(1)旋转向量(也叫轴角) - - - - > 四元数
Eigen::Quaterniond q = Eigen::Quaterniond ( rotation_vector );cout << "quaternion = \n" << q.coeffs() << endl; // 注意coeffs的顺序是(x,y,z,w),w为实部,前三者为虚部
(2)旋转向量(也叫轴角) - - - - > 旋转矩阵
Eigen::Matrix3d rotation_matrix = rotation_vector.toRotationMatrix();// 或者Eigen::Matrix3d rotation_matrix = rotation_vector.matrix()
(3) 旋转矩阵- - - - > 欧拉角
Eigen::Vector3d euler_angles = rotation_matrix.eulerAngles ( 2, 1, 0 );// ZYX顺序,即roll pitch yaw顺序
2 四种变换
- 欧式变换
同一向量在各个坐标系下长度夹角都一样。6个自由度
// 欧氏变换矩阵使用 Eigen::IsometryEigen::Isometry3d T = Eigen::Isometry3d::Identity(); // 虽然称为3d,实质上是4*4的矩阵T.rotate ( rotation_vector ); // 按照rotation_vector进行旋转T.pretranslate ( Eigen::Vector3d ( 1, 3, 4 ) ); // 把平移向量设成(1,3,4)
- 相似变换
允许物体均匀缩放,7个自由度,体积比 - 仿射变换(正交投影)
变换之后立方体不再是方的了,但是各个面仍是平行四边形 - 射影变换
3D有15个自由度,真实世界到相机照片看作射影变换
阅读全文
0 0
- 视觉slam14讲——第3讲 三维空间刚体运动
- 《视觉SLAM十四讲》学习系列(2)—三维空间刚体运动
- 视觉slam14讲——第2讲 初识SLAM
- 视觉slam14讲——第9讲 设计前端
- 视觉slam14讲——第10讲后端1
- 视觉slam14讲——第11讲后端2
- 半闲居士视觉SLAM十四讲笔记(3)三维空间刚体运动
- 半闲居士视觉SLAM十四讲笔记(3)三维空间刚体运动
- 半闲居士视觉SLAM十四讲笔记(3)三维空间刚体运动
- 半闲居士视觉SLAM十四讲笔记(3)三维空间刚体运动
- 半闲居士视觉SLAM十四讲笔记(3)三维空间刚体运动
- 视觉slam14讲——习题部分
- 视觉slam14讲——第7讲 视觉里程计1
- 视觉slam14讲——第8讲 视觉里程计2
- 视觉slam14讲——第5讲 相机与图像
- 视觉slam14讲——第4讲 李群李代数
- 视觉SLAM14讲学习笔记
- SLAM学习--三维空间刚体运动
- 修改ad值实现路由备份
- 关于lilnux应用于区块链开发的环境部署(docker-chaincode-nodejs)
- linux shell之回放和广播
- 高效的SQLSERVER分页查询(推荐)
- 【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库
- 视觉slam14讲——第3讲 三维空间刚体运动
- oracle 中 cursor 与refcursor及sys_refcursor的区别 (转载)
- 数据库视图
- 实验4:栈和队列的基本操作实现及其应用之《顺序栈》
- Mybatis调用Oracle返回结果集存储过程
- [noip2013]货车运输 题解
- 前端基础(1):JavaScript、html和css的简介
- 实验四 掌握用户管理的基本内容和原理
- Python类型转换及帮助