SLAM14讲 章节三 三维刚体运动

这讲主要是讲三维几何空间中刚体的运动方程。

a'=Ra+t

其中R为旋转矩阵,t为平移矩阵

将R和t融合到一个矩阵中,将上式变为线性方程

那么编程如何实现上式呢?用Eigen开源库。

Eigen使用方法:添加头文件,编写程序。

旋转向量与旋转矩阵之间的变换:,其中n为旋转向量,R为旋转矩阵

旋转向量只需要三个变量,比旋转矩阵三维矩阵的9个变量要简洁,节省运算成本。

由旋转向量到四元数:由于旋转矩阵的冗余,加上旋转向量和角度的奇异性,引入四元数,即用复数来表示旋转从而避免了奇异性。

用四元数来表示旋转:设空间点p=[x,y,z],以及一个由旋转轴和角度指定的旋转,那么旋转后的点p'用四元数怎么表示呢?我们知道使用矩阵描述的话p'=Rp。而用四元数表达:

1. 把三维空间点用一个虚四元数描述:

p=[0, x, y, z]=[0, v]

这相当于我们把四元数的三个虚部与空间中的三个轴相对应。用四元数q表示这个旋转:

q=[cos(θ/2), ncos(θ/2)]

那么旋转后的点p'即可表示为这样的乘积:

p'=qpq^(-1)

2. 四元数到旋转矩阵的转换

那么用Eigen演示如何进行各种旋转变换。在Eigen中使用四元数、欧拉角和旋转矩阵,演示它们三者之间的变换关系。

Eigen中各个数据类型总结如下:

  • 旋转矩阵(3×3):Eigen::Matrix3d。
  • 旋转向量(3×1):Eigen::AngleAxisd。
  • 欧拉角(3×1):Eigen::Vector3d。
  • 四元数(4×1):Eigen::Quaterniond。
  • 欧氏变换矩阵(4×4):Eigen::Isometry3d。
  • 仿射变换(4×4):Eigen::Affine3d。
  • 射影变换(4×4):Eigen::Perspective3d。

本讲结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值