#实操中学到的两种选转坐标的方式,随手记录一下#
scipy.spatial.transform.Rotation是一个坐标旋转工具,其中有多种方式进行旋转。scipy.spatial.transform.Rotation — SciPy v1.11.4 Manual
这里介绍两种方式from_mrp和from_euler
一、form_mrp
假设我们的关于一个轴进行旋转,使用向量a代表旋转轴的单位向量;旋转角度为θ
则mrp=a*tan(θ/4) 注:这里一定要注意1/4,这里的设置是为了刚性旋转,即旋转之后向量的模不变。
得到旋转矩阵r_mtrix=Rotation.from_mrp(mrp)
使用apply方法对向量b进行旋转 b_r=r_matrix.apply(b),b_r就是旋转后的向量。
实例:
这里旋转轴a是沿着y轴的正方向,旋转角度为90°,b1和b2在y-o-z平面上,关于y轴旋转90°之后到x-o-z平面上。(此处旋转方向可以用右手定则理解,右手大拇指朝向Y轴正方向,四指握的方向就是旋转方向)
二、from_euler
这个方法更加直观,直接设置旋转轴和旋转角度即可。
直接上实例
直接设置,沿x轴旋转0°,沿y轴旋转90°,沿z轴旋转0°,得到与form_mrp同样的效果。此处degrees=True代表着旋转角度使用度数。