机器人学——旋转矩阵

性质一

向量内积可以互换前后向量,所以 B对A的旋转矩阵 = A对B的旋转矩阵的转置
在这里插入图片描述

实例一

在这里插入图片描述
在这里插入图片描述

旋转矩阵的逆矩阵等于转置矩阵

identity matrix: 单位矩阵
在这里插入图片描述

正交矩阵性质

在这里插入图片描述

旋转矩阵常用的三种场景

在这里插入图片描述

旋转矩阵与转角

在这里插入图片描述

绕z轴旋转

在这里插入图片描述

分别绕x轴、y轴旋转的矩阵

在这里插入图片描述

例子

在这里插入图片描述

Fixed Angles 旋转

次序为绕x,y,z轴旋转
在这里插入图片描述

栗子:三个自由度的旋转角度推出旋转矩阵

可以发现,即便是x跟y轴旋转的角度一样,由于顺序不同,最后的结果也不同
在这里插入图片描述

由旋转矩阵反推出角度

在这里插入图片描述

Atan2(y,x)

atan2() 函数的主要原理在于它能够根据给定的笛卡尔坐标 (x, y) 计算出该点相对于原点的角度,且能正确地判断出该点位于哪个象限。这种能力使得 atan2() 相比于标准的反正切函数 atan() 更加健壮和准确,尤其是在处理角度的象限问题时。

下面是 atan2() 函数工作原理的详细解释:

1. 角度计算原理
在数学上,给定点 (x, y) 的角度 θ 可以通过反正切函数计算得出,即 θ = arctan(y/x)。然而,当 x=0 或者 x 和 y 同时为负数时,仅使用 atan() 函数将无法正确确定角度。这是因为 atan() 函数的输出范围仅限于 -π/2 到 π/2,它不能区分四个象限中的角度。

2. 四象限覆盖
atan2() 函数通过检查 x 和 y 的符号来确定正确的象限,进而提供正确的角度。其输出范围是 (-π, π],这样可以完整覆盖所有四个象限:

当 x > 0 时,点位于第一或第四象限,atan2() 的行为类似于 atan()。
当 x < 0 时,点位于第二或第三象限,atan2() 会返回一个正值(对于第二象限)或负值(对于第三象限),以确保角度落在正确的区间内。
当 x = 0 时,如果 y > 0,则角度为 +π/2;如果 y < 0,则角度为 -π/23. 实现细节
在大多数编程语言中,atan2() 函数的具体实现可能利用了多种算法和技术,包括但不限于查表、多项式逼近和迭代方法。这些方法允许函数在保证精度的同时,快速地计算出结果。

4. 使用场景
atan2() 在许多应用中都非常有用,比如:

计算矢量的方向。
在游戏开发中确定玩家角色与目标之间的角度。
在机器人导航和控制中,用于计算目标位置相对于机器人的角度。
在信号处理中,用于计算信号的相位。
总之,atan2() 提供了一种更全面和精确的方法来计算角度,尤其是在需要考虑象限的情况下。

Atan2(y,x)使用场景

在这里插入图片描述

欧拉转角

注意欧拉转角的旋转矩阵下标,并不是固定的xyz,而是按旋转顺序排列
在这里插入图片描述

固定转轴与欧拉转轴得出相同的结果

在这里插入图片描述

轴的旋转角度相同,但先后次序不同,生成的旋转矩阵也不一样

在这里插入图片描述

固定轴的与欧拉轴之间的反转,结果相同

在这里插入图片描述

欧拉转角:由角度推旋转矩阵

在这里插入图片描述

由旋转矩阵推算角度

在这里插入图片描述

栗子

在这里插入图片描述

小结

计算旋转角度:矩阵乘法 和 四元数法
在这里插入图片描述

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值