机器人运动学-空间表示与变换

1.向量

一个点:P=(x,y,z) , 写成列向量: ,表示 :沿x轴走x,沿y轴走y,沿z轴走z。

2.向量本质是

一个方向+一个长度。例如 表示:朝x方向1单位

3.点乘(内积)

公式: a·b 计算方法: 含义:判断两个方向有多接近 特殊情况:a·b=0 表示两个向量垂直;同方向 -> 结果大于0 ;反方向-> 结果小于0

4.叉乘(外积)

公式: 含义:得到一个同时垂直于a和b的方向 右手定则:四指从a转向b,大拇指是结果方向 特殊情况:如果 说明这两个向量平行

5.二位旋转矩阵

含义:把一个点逆时针旋转

公式含义:第一行新的x坐标 第二行新的y坐标

6.三维旋转矩阵

绕哪个轴,哪个轴不变

绕x轴

绕y轴

绕z轴

7.右手定则

判断正旋转方向,方法:大拇指朝轴正方向,四指弯曲是正旋转方向。

例如:绕z轴,大拇指向上(z),四指x->y

8.旋转不满足交换律

旋转顺序不同,结果不同

9.坐标系变换

含义: 点P在B坐标系里的坐标 表示把B坐标系转换到A坐标系的旋转矩阵 点P在A坐标系里的坐标

10.为什么旋转矩阵的列是坐标轴

旋转矩阵:

含义:第一列表示B坐标系x轴在A里的方向,第二列表示B坐标系y轴在A里的方向,第三列表示B坐标系z轴在A里的方向。

11.齐次坐标

普通点 变成 ,加1的原因是这样才能把"平移"写成矩阵乘法

12.齐次变换矩阵

展开:

含义:左上角R------旋转(方向),右边t------平移(位置),T同时表示朝向和位置

齐次变换矩阵核心公式 :用变换矩阵T,把点变换成点

也可写成 ,即

第一列n(normal)表示物体的第一根方向轴,类似物体自己的 x 轴。

第二列o(orientation)表示物体的第二根方向轴,类似物体自己的 y 轴。

第三列a(approach)表示物体的第三根方向轴,类似物体自己的 z 轴,机械臂中常表示"前进方向"。

第四列p 表示物体原点的位置

13.Compound(复合变换)和Inversion(逆变换)

**Compound(复合变换)**意思是连续做多次坐标变换

注意,矩阵乘法顺序要从右往左看

**Inversion(逆变换)**意思是把变换反过来

14.任意轴旋转

假设这个任意轴通过原点

如果绕任意方向k旋转,那么我先造一个新坐标系,让k变成新坐标系里的z轴

(1).建立一个新坐标系: ,这里让a=k,即新坐标系C的z轴=k

图中红色xyz代表原坐标系,绿色ijk代表新坐标系。因为k就是新坐标系的z轴,所以绕k转转化为绕z转,可代入第六条的公式

意思是 绕k旋转 等价于 在C坐标系里绕z旋转

(2).先进入新坐标系C 表示C坐标系在原世界里的样子 的作用是把原世界里的东西翻译到C坐标系里去看

(3).绕z轴转

(4).再转换回原坐标系 C

==>最终完整公式

这个公式是说:

原来有一个物体/坐标系T,想让它绕任意轴k转:

但是我们不会直接绕k转,所以先把T换到C坐标系里:

然后在C里绕z轴转:

然后再乘C换回来:

代入,就得到:

所以:

公式总结:

15.旋转轴的方向向量

表示的是旋转轴的方向向量,在机器人学里,方向向量默认都会单位化(归一化)

单位向量

所以 ,即

16.已知一个旋转矩阵R,反推出它等价于"绕某根轴k旋转了多少角度θ"

也就是 ,这叫等效轴角表示法(Equivalent angle-axis of rotation)。

对角线元素之和

即 :

因为:

所以:

等效轴角的意思

一个三维旋转,不管它看起来多复杂,都可以等价理解成:绕空间中某一根轴 k,旋转了一个角度 θ。

Trace能求角度

Trace 就是矩阵主对角线元素之和,最后会简化成

所以只要知道矩阵R的对角线元素,就能反推出 ,即

17.已知旋转矩阵 R,求出等效旋转角θ的 sinθ

可得到:

,这里 是等效旋转轴的单位向量

把三个式子平方后相加:

得到:

用tanθ求角度更稳妥,有,求出theta

choose positive sign

sinθ选择正号

规定 0≤θ≤180 ,在这个范围内 sinθ≥0

Note.不推荐直接这样求轴:

,原因是如果,也就是,分母会变成0,计算会出问题。

18.已知旋转矩阵 R 和角度 θ,求旋转轴

(1)先用对角线求 (k_x,k_y,k_z) 的绝对值

(2)找​ 里最大的那个

例如,说明 最大

谁的对角线元素最大,谁对应的 k 分量通常最大。所以先确定 ,再用其他式子求 ​。

(3)如果 最大,怎么求

可知

如果已经先求出了,就用含的式子求另外两个:

相关推荐
zzzzzz31013 天前
假如我是掘金管理员,我先给评论区装个'代码审查'系统
python·程序员·机器人
通信小呆呆14 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
生成论实验室14 天前
机器人:一个自主运动的系统
人工智能·算法·语言模型·机器人·自动驾驶·agi·安全架构
Dick50714 天前
ROS2 常用命令表
人工智能·学习·算法·机器人
沫儿笙14 天前
川崎机器人二保焊节气设备
人工智能·机器人
C++ 老炮儿的技术栈14 天前
Qt工控实战:自研机器人TCP长连接客户端(粘包处理+心跳保活+自动重连完整源码解析)
qt·tcp/ip·机器人
Deepoch14 天前
VLA多模态架构加持 采摘机器人实现精细化智能采收
人工智能·机器人·开发板·具身模型·deepoc·采摘
选与握14 天前
$\pi_{0.7}$: 一个具备涌现能力的可引导的通用机器人基础模型
机器人·vla·pi07
梦想的旅途214 天前
企业微信外部群自动化:一期交付应聚焦双向会话闭环
java·开发语言·机器人·自动化·maven·企业微信