【ROS2机器人入门到实战】齐次坐标变换
  G1BiWlBPlCaW 2023年11月14日 31 0


5.齐次坐标变换

写在前面

  1. 当前平台文章汇总地址:ROS2机器人从入门到实战
  2. 获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取
  3. 教程配套机器人开发平台:两驱版| 四驱版
  4. 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn

前面几节中,小鱼带你一起学习了使用TF进行坐标的变换,也带你通过旋转和平移求解了坐标的变换关系,但计算的过程中旋转和平移是分开计算的,那有没有一种方法,可以让旋转矩阵和平移向量合并到同一个矩阵里呢?

答案是有的,我们可以将【ROS2机器人入门到实战】齐次坐标变换_齐次坐标转换的旋转矩阵和【ROS2机器人入门到实战】齐次坐标变换_旋转矩阵_02的平移矩阵进行组合,并添加一行(0,0,0,1)使其变成一个【ROS2机器人入门到实战】齐次坐标变换_机器人_03的方阵,其组合方式如下:

有旋转矩阵
【ROS2机器人入门到实战】齐次坐标变换_齐次坐标转换_04
平移矩阵
【ROS2机器人入门到实战】齐次坐标变换_齐次坐标转换_05

合并成齐次变换矩阵
【ROS2机器人入门到实战】齐次坐标变换_ROS2_06

为什么要这样写,我们可以简单的推导一下,矩阵是支持分块运算的,我们将上面的矩阵进行分块
【ROS2机器人入门到实战】齐次坐标变换_旋转矩阵_07
假设【ROS2机器人入门到实战】齐次坐标变换_齐次坐标转换_08表示B坐标系到A坐标系的齐次变换,B坐标系下的点C坐标为【ROS2机器人入门到实战】齐次坐标变换_坐标转换_09,求C在A坐标系下的坐标【ROS2机器人入门到实战】齐次坐标变换_ROS2_10

我们将【ROS2机器人入门到实战】齐次坐标变换_齐次坐标转换_08【ROS2机器人入门到实战】齐次坐标变换_坐标转换_09上,可得
【ROS2机器人入门到实战】齐次坐标变换_坐标转换_13
根据前面学习的平移+旋转复合坐标变换公式,正确的结果如下
【ROS2机器人入门到实战】齐次坐标变换_坐标转换_14
你会发现,两者最终结果完全相同,也就是说,我们的平移加旋转复合变换,可以直接用齐次变换矩阵代替。

1.齐次变换矩阵特性

接着我们来探索一下齐次变换矩阵的一些特性

2.1.齐次变换矩阵的符号表示

一般使用H或者T来表示齐次变换矩阵,矩阵的左上角标明参考坐标系,矩阵左下角标明目标坐标系,比如【ROS2机器人入门到实战】齐次坐标变换_齐次坐标转换_08表示B坐标系到A坐标系的变换关系(平移+旋转)

2.2.齐次变换矩阵的逆的几何含义

就像矩阵的逆一样,齐次变换矩阵也有逆,其逆也有对应的几何含义,比如

比如【ROS2机器人入门到实战】齐次坐标变换_齐次坐标转换_08表示B坐标系到A坐标系的变换关系

那么

【ROS2机器人入门到实战】齐次坐标变换_齐次坐标转换_08的逆【ROS2机器人入门到实战】齐次坐标变换_齐次坐标转换_18表示A坐标系到B坐标系的变换关系

2.3.齐次变换矩阵的乘法的几何含义

3.3.1齐次矩阵与平移向量相乘

齐次矩阵与平移向量相乘,即可求出某个向量在另一坐标系下的表示,上面例子中即是如此。

3.3.2齐次矩阵与齐次矩阵相乘

齐次矩阵与齐次矩阵相乘,可以转换不同坐标系之间的关系,比如:
【ROS2机器人入门到实战】齐次坐标变换_齐次坐标转换_19
比如当我们有一个六自由度的机械臂,知道两两相邻关节之间的关系,那么就可以通过其次矩阵相乘的方法求出,关节6在关节0下的位置和姿态:
【ROS2机器人入门到实战】齐次坐标变换_机器人_20

3.练习

练习小鱼放到了下一节了,毕竟不希望大家用手来算~


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
G1BiWlBPlCaW