三维空间的刚体运动主要学习点如下:
2.1 点与坐标系
2.2 旋转矩阵
2.3 旋转向量与欧拉角
2.4 四元数
2.5 相似、仿射和射影变换
2.6 实践:Eigen矩阵运算
2.7 实践:Eigen几何模块
对于三维空间刚体整体知识的学习,可参考https://blog.youkuaiyun.com/weixin_38593194/article/details/85234607
详细讲述了关于刚体运动学的知识,在此就不重复引了。
本文主要补充三维空间刚体运动中的一些基础知识点,包括线性代数(工程矩阵)和c++11新特性等相关知识。
一、 工程矩阵
Eigen是常用的c++矩阵运算库,支持线性代数等矩阵的运算。
1、线性方程Ax=b(A为方阵),分析讨论x解的情况。
A——系数矩阵;A|b——增广矩阵;R(.)——矩阵的秩
- 当b=0时,方程组为齐次线性方程组:
①当R(A)=n时,即|A|≠0,x有唯一零解;
②当R(A)<n时,即|A|=0,x有无穷解。 - 当b≠0时,方程组为非齐次线性方程组:
①R(A)≠R(A|b),x无解;
②R(A)=R(A|b)=n时,x有唯一解;
③R(A)=R(A|b)<n时,x有无穷解;
2、高斯消元法的原理
- 高斯消元法是线性代数中的一个算法,可用来为线性方程组求解,求出矩阵的秩,以及求出可逆方阵的逆矩阵。当用于一个矩阵时,高斯消元法会产生出一个行梯阵式。
- 若用初等行变换将增广矩阵(A|B)化为(C|D),则AX = B与CX = D是同解方程组。所以可以用初等行变换把增广矩阵转换为行阶梯阵,然后回代求出方程的解。
3、四种常用分解方法
-
三角分解
- 目的:将Anxn分解为下三角矩阵和上三角矩阵的乘积
- 分解原理:常用的分解为Crout分解 A=LDU