因为本人习惯上喜欢让z轴垂直地面,所以示意图总是z轴朝上
不管是左手系,还是右手系,手指对应的xyz的是固定的。

  • 食指对应y轴
  • 大拇指对应x轴
  • 中指对应z轴

具体坐标系位置关系如图所示。
旋转角度正负为:手指弯曲的方向为正。例如拇指弯曲的方向就是绕z轴旋转的正方向。

1.右手系

在这里插入图片描述

2.左手系

在这里插入图片描述

3.左手系与右手系的转换

左手系与右手系的区别就在于任意一个轴取反方向。

3.1位置转换

所以转换也是这样。空间中的左手系的一个点只要对其中一个轴取反,就转换为了右手系。
这里采取y轴取反,所以位置转换方程就是:

S_y =   [1,0,0 ]
		[0,-1,0]
		[0,0,1 ]
R_point=S_y*L_point

3.2 角度转换

公式也很简单:
原本左手系中描述姿态的旋转矩阵为R_l,转换到右手系中,则为S_y ·R_l·S_y。
参考链接:参考链接

基于欧拉角计算旋转矩阵

这里的l_rotate_data是一个由3个欧拉角组成的数组经过scipy.spatial.transform中的Rotation.from_euler函数来转换成旋转矩阵l_rotate_mat

l_rotate_data = [float(yaw), float(pitch), float(poll)]

from scipy.spatial.transform import Rotation as R
l_rotate_mat = R.from_euler('zxy', l_rotate_data, degrees=True)
l_rotate_mat = l_rotate_mat.as_matrix()

实践说明,从左手系到右手系,偏航角Yaw实际上是只需要取负号就可以了。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐