视觉SLAM十四讲---第三讲三维空间刚体运动

视觉SLAM十四讲---第三讲三维空间刚体运动

我们说向量的组成一般指的是向量的坐标
首先需要定义坐标系,根据右手系建立。

三个向量张成整个空间,然后可以通过线性组合表示向量。

向量之间的运算,可以直接对坐标进行运算。
加减,内积,外积(向量张成的平行四边形的面积)
在这里插入图片描述
反对称矩阵a^.

坐标系之间如何变化?

三维空间的刚体运动

平移很简单
对于旋转
对于空间中一个向量
在这里插入图片描述
在这里插入图片描述
因为对于同一个坐标来说,不同轴之间是相互正交的,因此左边得到一个单位矩阵

这里首先是向量不变,坐标系旋转。然后经过左乘变成单位矩阵以后,就可以转换为在原来坐标系下的向量旋转。

旋转矩阵是一个正交矩阵,行列式是+1.
又叫特殊正交群

旋转矩阵定义了一种旋转
在这里插入图片描述
齐次变换矩阵
在这里插入图片描述
齐次坐标矩阵特殊欧式群
其次坐标矩阵的逆
在这里插入图片描述

操作环境EIGEN
eigen是只有头文件,没有源文件,因此只需要在cmakelists中引用库就可以,不需要链接。

这里的意思主要是,没有提供实现功能的函数定义,也就是说只有定义类型的文件是可以只有头文件的
同时在目录下打开后发现有程序中头文件和src文件夹,打开后发现src文件夹中放的是头文件中引用的头文件函数定义。

eigen是在c++下的矩阵库
首先需要安装,发现已经装好

sudo apt-get install libeigen3-dev

位置在/usr/include/eigens

和matlab比较像,数据都是矩阵的形式
可以定义固定大小的尺寸和动态的尺寸两种,使用固定大小的尺寸的代码是可以加速的。

声明尺寸

Eigen::Matrix<float, 2, 3> a_matrix;

对于小矩阵,可以直接调用eigen中定义好的,比如Matrix3f a;

然后初始化矩阵

输入数据是按照顺序输入的

matrix_23 <<1,2,3,4,5,6;

访问数据可以用小括号运算符matrix_23(1,2),对于向量可以用中括号运算符。

矩阵相乘必须同维,同类型,这里与c++中不同,c++可以自动升级。

例如:不同维
在这里插入图片描述
可以求和,求转置,逆,行列式,特征值分解等操作

可以解方程
AX=B
求逆或者用QR分解计算

旋转矩阵:旋转有三个自由度,但是用9个元素去描述,因此6个是约束条件。

旋转矩阵有时候比较麻烦,可以用旋转向量表示,而且就是三个量表示,没有约束。
绕某个轴转一定角度。

旋转向量和旋转矩阵通过罗德里格斯公式联系:
在这里插入图片描述
当知道旋转矩阵以后,旋转向量的轴就是旋转矩阵特征值为1的特征向量

欧拉角:
形象的表示,从人的角度取看旋转,通常用于人机交互中。
将旋转分解为三次不同轴的旋转。
绕z轴转,是偏航角;
再绕转动之后的y轴转,俯仰角;
再绕旋转之后的x轴转,滚转角。
yaw-pitch-roll是常见的欧拉角。
但是存在万向锁,当第二次旋转把x转到之前z的反方向。因此第三次转的时候就和第一次一样了。少了一个自由度。因此很少用欧拉角表示位姿。

四元数:
紧凑,没有奇异
对于复数,如果乘以一个虚数表示逆时针旋转90度
四元数具有三个虚部,可以表示三维空间的旋转
在这里插入图片描述
四元数本身支持计算
在这里插入图片描述
四元数与旋转向量的关系
在这里插入图片描述
怎么用四元数转一个空间点
任何一个虚的四元数都可以表示一个空间点
在这里插入图片描述
但是经过四元数作用的结果往往得到的是一个四维的数,因此需要将实部转换得到0
在这里插入图片描述
当然也等于直接RP

四元数优点:紧凑,无奇异。

eigen中几何表示
代码在上节课中展示的github中下载,代码解释见代码。

c++中重载:
函数重载
同样代码中用到了运算符重载,具体代码在头文件中都有定义。
.xxx(),表示成员函数

可视化
首先安装pangolin,具体见高翔老师github下压缩包。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值