目录

1. 引言

2. 位姿的描述(位置与姿态)

2.1 平移的描述(位置)

2.2 旋转的描述(姿态)

3. 总结


1. 引言

个人认为机器人运动学是整个机器人学的核心内容。仍然以前面的SCARA机器人为例,如下图所示,假设笛卡尔坐标系{A}是一个固定坐标系(笛卡尔坐标系实际上就是利用相交于一点的三条数轴来衡量空间中点的位置的一种坐标系,相对应的有极坐标系,球坐标系等;所谓固定坐标系就是坐标系不随着机器人运动)。蓝色的P点是机器人丝杆末端的上的一个点。

想像一下,如果我们知道机器人各个关节当前旋转的角度,如何确定P点在坐标系{A}中的坐标P(x,y,z)呢?老实说即使是这样一个问题也曾经困扰了我很久。

这就是我们在机器人运动学中碰到的第一个问题---正运动学问题。也就是在已知机器人各个关节的位置的情况下确定其末端执行器的位置。

2. 位姿的描述(位置与姿态)

整个机器人运动学都是建立在坐标系及其变换的基础之上,而这一部分也确实存在诸多有趣的问题。因此我们以坐标系及其变换作为机器人正运动学的切入点。

2.1 平移的描述(位置)

从最简单的情况说起,如下图所示,两个坐标系{A}和{B}的坐标轴分别平行,设坐标系{A}为基坐标系,那么如何表达坐标系B与坐标系A关系呢?

这个问题其实是比较简单的,从图中我们知道,空间中任意一点M在基坐标系{A}中的位置可以用向量表示,而在坐标系{B}中可以用向量表示。坐标系{B}的原点可以用向量表示(注意这些记法的上标代表该向量在哪个坐标系中表达,也就是向量的起点与哪个坐标系的原点重合,下标代表的是空间中的点,比如M代表的是M点。因此代表X点在坐标系Y下的向量表示)。根据向量的运算法则,我们很容易得到下面的等价关系

在上面的等式中都代表了点M的坐标,只是参考坐标系不同,一个参考系是坐标系{A},一个参考系是坐标系{B}。那么又代表了什么呢?我想你应该能够想到这个代表了两个坐标系之间的位置关系。因此对于只存在平移关系的两个坐标系,我们通过一个三维向量就可以描述坐标系{B}与坐标系{A}的关系。上面的等式也就是在只有平移的情况下点在坐标系{A}与{B}之间的坐标变换公式。

2.2 旋转的描述(姿态)

旋转的描述是比较复杂的,我们先讨论只有旋转,没有平移的情况,即两个坐标系原点重合的情况。如下图所示,在这样的情况下怎么去描述坐标系{B}与坐标系{A}之间的关系呢?

我们依然以坐标系{A}为基坐标系。那么坐标系{A}的三个坐标轴可以用如下三个单位向量描述:

同时我们设坐标系{B}的三个坐标轴在基坐标系{A}下的向量描述为:。现在我们假设空间中有一点V,那么我们知道这个点既可以在坐标系{A}中表示,又可以在坐标系{B}中表示。设点V在基坐标系{A}下的坐标为:,点V在坐标系{B}中的坐标为,设O为坐标系{A}和{B}的公共原点。

此时我们意识到向量其实存在两种分解,第一种是将向量分解到坐标系{A}的三个轴上,此时向量可以表示为:;第二种是将向量分解到坐标系{B}的三个轴上,此时向量可以表示为:(注意我们前面已经提到所有的六个坐标轴单位向量都是在基坐标系中描述的)。由于这是同一个向量的两种表示方法。因此我们可以得到如下的等价关系:

如果在这个等式两边同时点乘可以得到:

注意在上面的推导中我们用到了向量点乘法则,即两个互相垂直的单位向量点积为0,单位向量与其自身的点积为1。根据向量点乘法则,

注意在上面的推导中我们用到了单位向量模长为1的性质。根据这些性质,可以进一步表示为:

同理可得:

最终整理可得:

前面我们进行了那么多的推导,看上去很复杂,但是其实都是最简单的向量以及矩阵运算。我们观察最后得到的这个等式。等式左边是点V在坐标系{A}中的坐标;等式右边是一个矩阵R乘上点V在坐标系{B}中的坐标。那么根据这个等式我们可以将空间中任意一点由坐标系{B}中的表示转换到坐标系{A}中的表示。可见我们利用同一个向量(即)的两种不同分解(在坐标系{A}中分解得到其在坐标系{A}中的坐标表示,同理在坐标系{B}中分解得到在坐标系{B}中的坐标表示)的等价性已经不自觉地推导出了两个原点重合的坐标系之间的姿态关系,这个关系就是前面提到的矩阵R。

接下来我们总结一下关于旋转的描述。当两个坐标系{A}和{B}原点重合时,他们的姿态关系可以利用一个3x3的矩阵来描述。我们看到这个矩阵的所有元素都是余弦值,因此我们称这个矩阵为方向余弦矩阵。这可以认为是方向余弦矩阵的由来。

3. 总结

这一篇文章,我们主要介绍了坐标系以及坐标系的两种变换关系,即平移变换和旋转变换,虽然我们依然没能解决引言中提出的问题,但是我们已经比较接近答案了。

由于个人能力有限,所述内容难免存在疏漏,欢迎指出,欢迎讨论。

下一篇:4. 机器人正运动学---理解变换矩阵

3. 机器人正运动学---坐标系及其变换相关推荐

  1. 5. 机器人正运动学---齐次变换矩阵

    目录 1. 引言 2. 齐次坐标系变换 2.1 坐标系之间的位姿关系 2.2 齐次变换矩阵 2.3 齐次变换矩阵的逆 4. 总结 1. 引言 前面的文章中我们分别讨论了坐标系及其平移,旋转两种变换.但 ...

  2. 机器人正运动学(8)—— DH坐标系建立技巧

    目录 1. 引言 2. 建立DH坐标系的技巧 2.1 理清关节和连杆 2.2 画 z 轴 2.3 确定 x 轴 2.3.1 x轴方向 2.3.2 x轴起始点(坐标系原点) 2.4 小结 3. 总结 1 ...

  3. 4. 机器人正运动学---理解变换矩阵

    目录 1. 引言 2. 旋转矩阵的几个性质 2.1 旋转矩阵是坐标轴的投影 2.2 旋转矩阵是正交矩阵 2.3 旋转矩阵的每一列都是单位向量 3. 举例 4. 总结 1. 引言 在上一篇文章中我们介绍 ...

  4. 机器人正运动学(5)—— 齐次变换矩阵

    目录 1. 引言 2. 齐次坐标系变换 2.1 坐标系之间的位姿关系 2.2 齐次变换矩阵 2.3 齐次变换矩阵的逆 4. 总结 1. 引言   前面的文章中我们分别讨论了坐标系及其平移,旋转两种变换 ...

  5. 机器人正运动学(2)—— 自由度

    目录 1. 自由度的定义 2. 自由度的计算 2.1 刚体的自由度 2.2 运动副 2.3 自由度算例 3. 总结 1. 自由度的定义   自由度在很多领域中会出现,对于机器人而言,我们这里谈的也就是 ...

  6. 【现代机器人学——螺旋理论】UR5机器人正运动学求解

    系列文章目录 [现代机器人学--螺旋理论]UR5机器人正运动学求解 [现代机器人学--螺旋理论]UR5机器人逆运动学求解 提示:本文介绍基于螺旋理论分析的UR5机器人正运动学求解思路,仅供参考. 文章 ...

  7. 机器人正运动学(1)—— 机器人简介

    目录 1. 前言 2. 什么是机器人 3. 为什么要有机器人 4. 机器人分类 5. 机器人研究领域 6. 声明 1. 前言   都说机器人学是一门跨学科的学问,这句话说得一点不错.搞机械的设计了机器 ...

  8. 14. 机器人正运动学---雅克比矩阵(2)

    1. 引言 上一篇文章介绍的是通过几何法求解雅克比矩阵,这篇文章通过较为严格的数学推导求解雅克比矩阵并进一步验证了几何法的适用性.具体内容请参考:14. 机器人正运动学---雅克比矩阵(2)

  9. 机器人正运动学DH参数表示法

    参考视频(用于理解DH的坐标系): 两分钟学习:四足机器人DH参数法 空间机器人技术-动力学与控制-DH坐标系与DH参数 参考文章: 机器人操作臂运动学入门一–D-H参数标定 关键要理解DH表示法中的 ...

最新文章

  1. [zt]petshop4.0 详解之八(PetShop表示层设计)
  2. Linux操作系统及平台虚拟化技术漫谈
  3. 手摇计算机教程视频,使用手摇计算机的照片
  4. Android深度探索HAL与驱动开发—第8章
  5. tensorflow就该这么学--6(多层神经网络)
  6. FZU 2214 Knapsack problem(背包问题)
  7. ES6新语法--解构赋值
  8. 你活了多久----快用Python计算一下日期
  9. vbs中的WScript.Network[属性与方法]
  10. [转载] 令牌桶算法和漏桶算法python_排序算法(七):Bucket Sort 桶排序
  11. RobotStudio碰撞检测的设定
  12. Java_基础_fail-fast
  13. 华为GaussDB:封装JDBC数据连接访问华为GaussDB数据库实现CRUD
  14. 【2020】微软 MCSA,MCSD,MCSE认证于2021年1月31停用,此后您将无法再获得此认证 - GJYJSJGS - 高级云计算架构师
  15. java中base64编码加密和android中base64编码加密不一样?base64编码解析错误?
  16. 如何把照片压缩到20k一下_怎么样才能把大于20k的照片缩小到20k之内?分享解决问题的方法...
  17. 找最大ASCII字符
  18. 第二篇第一章概述及第二章生产和储存物品的火灾危险性分类 重点在于表格...
  19. 省市区行政区编码和具体行政区名转换
  20. 《黄金矿工》挖矿游戏 前端高阶版本,Cocos2d-js,附项目源码

热门文章

  1. android计步器简书,iOS中计步器的实现方案及原理
  2. 微信vue路由跳转兼容_Vue微信公众号开发踩坑记录
  3. MySQL MGR 安装
  4. 以太坊solidity智能合约-生成随机数
  5. 电脑桌面显示白色图标无法删除
  6. 想用FPGA加速神经网络,这两个开源项目你必须要了解
  7. JSD-2204-VueCLI-Day01
  8. 利用SQLite数据库进行用户名、密码的注册和登录验证
  9. WIN10和MAC OS双系统,调整MAC os分区给WIN10系统扩C盘
  10. Unity3D 本地数据持久化记录存储