空间刚体的姿态有3个自由度,通常采用旋转矩阵(9个参数)、旋转向量(3个参数)、欧拉角(3个参数)、四元数(4个参数)表示。
由于姿态有3个自由度,而旋转矩阵和四元数的参数个数大于3,这种表示方法叫做过参数表示。
旋转向量和欧拉角中的参数个数与自由度数相等,这两种表示法也叫作最小参数表示法。
3个自由度,但旋转矩阵却有9个参数,导致这种表示法有6个约束。有约束就不能用无约束优化。
3个自由度,但四元数有4个参数,导致有1个约束。与旋转矩阵一样,不能用无约束优化。
上述两种表示法的优点是没有奇异性,即过参数表示没有奇异性。
最小参数表示有奇异性。但参数个数少,而且欧拉角也便于人机交互。
旋转表示的关系:
旋转矩阵是李群。旋转向量是李代数。
旋转矩阵和旋转向量依据指数映射和对数映射表示。
旋转矩阵、旋转向量、欧拉角、四元数可以相互转化,只不过不一定是一一映射,可能存在多对一个的关系。
旋转表示的优化:
为无歧义的表示姿态,通常采用过参数表示法。
在迭代法中,直接利用
xk= xk-1+\delta x.
会导致过参数不满足约束。
为求解最优的刚体变换,需要构建误差函数,然后采用无约束优化方法,求函数极小值。
求极值涉及求导,求导通常有两种方式,李群求导和扰动模型。
李群求导:
李群没有加法,不能实现求导,所以需通过指数映射,转换为李代数/欧拉角的求导。
扰动模型:
扰动模型的思想为,对旋转矩阵,施加扰动,生成一个新的误差函数。扰动采用最小参数表示。可以为欧拉角或旋转向量。
扰动为欧拉角:
若扰动为欧拉角表示,由于扰动非常小,不会为奇异值。简单地说,就是把欧拉角中的参数,变为旋转矩阵,然后采用旋转矩阵乘法,更新新的迭代参数。这里的扰动通常采用扰动右乘的方式。
有时候,我们也想知道旋转矩阵中的最小参数为啥,这就是把旋转矩阵,转换为欧拉角。这通常用计算误差的时候。
小结:扰动为欧拉参数,也就涉及欧拉和旋转矩阵的变换。扰动为右乘。
扰动为旋转向量:
由于李群和李代数的映射关系,可以把求导变为李代数的求导。