视觉slam14讲——第3讲 三维空间刚体运动

本文介绍了旋转向量、旋转矩阵、欧拉角及四元数等四种旋转表示方法及其相互转换,并利用Eigen库进行了示例演示。此外还讨论了几何变换如欧式变换、相似变换、仿射变换和射影变换的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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::Isometry
Eigen::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个自由度,真实世界到相机照片看作射影变换
### 关于视觉SLAM 14第十三中的Kitti数据集教程 在《视觉SLAM十四》的第十三中,作者通过实际案例展示了如何构建一个简单的视觉SLAM系统,并使用KITTI数据集作为输入来验证系统的性能。以下是针对这一章节涉及的KITTI数据集的相关解释: #### KITTI数据集简介 KITTI(Karlsruhe Institute of Technology and Toyota Technological Institute)数据集是一个广泛应用于计算机视觉和自动驾驶领域的重要公开数据集[^3]。它提供了丰富的传感器数据,包括立体相机图像、激光雷达点云、GPS/IMU信息等。对于本章而言,重点在于利用其双目摄像头采集的图像序列来进行视觉SLAM的研究。 #### 使用KITTI数据集前的准备工作 为了能够顺利加载并处理来自KITTI的数据,在配置阶段需要完成如下操作: - 修改默认参数文件`default.yaml`内的字段`dataset_dir`至本地存储KITTI数据的具体位置[^4]。 例如设置成类似于这样的形式: ```yaml dataset_dir: /path/to/kitti/dataset/ ``` 此步确保程序可以找到对应的图片帧及其时间戳记录用于后续同步计算。 #### 正确启动应用程序的方法 当一切环境搭建完毕之后,应当返回项目根目录而非子文件夹如`/bin`去触发可执行脚本。具体命令如下所示[^5]: ```bash cd .. ./bin/run_kitti_stereo ``` 上述指令会调用预编译好的二进制文件以开启基于KITTI双目视频流上的实时定位映射流程。 #### 主要功能模块解析 整个框架围绕着几个关键组成部分展开运作,下面逐一阐述它们的作用机制: ##### 前端部分 负责从外界获取观测值进而估计当前时刻下的初始位姿猜测。通常采用ORB特征检测器匹配同名点对从而推导基础矩阵或者本质矩阵进一步恢复相对运动关系[^2]。 ##### 后端优化环节 鉴于仅依靠几何约束难以获得全局一致性的轨迹重建成果,因此引入非线性最小化求解策略调整所有节点间的连接权重直至收敛达到最优状态。值得注意的是这部分逻辑被封装在一个独立的工作单元里以便按需激活减少资源消耗。 ##### 可视化展示层 借助OpenGL或其他图形库绘制三维空间里的路标分布状况连同机器人行走路线共同呈现给用户直观感受算法表现优劣程度。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值