算法--机器人学导论

  • 1 简介
  • 2 机械臂术语
    • 2.1 常用术语
    • 2.2 机械臂运动学
      • 2.2.1 正运动学
      • 2.2.2 逆运动学
  • 3 空间描述和变换
    • 3.1 描述
      • 3.1.1 位置描述
      • 3.1.2 姿态描述
      • 3.1.3 坐标系描述
    • 3.2 映射:从坐标系到坐标系的变换
      • 3.2.1 关于平移坐标系的映射
      • 3.2.2 关于旋转坐标系的映射
      • 3.2.3 关于一般坐标系的描述
    • 3.3 算子
      • 3.3.1 平移算子
      • 3.3.2 旋转算子
      • 3.3.3 变换算子
      • 3.3.4 齐次变换矩阵求逆
    • 3.4 变换算法
      • 3.4.1 混合变换
      • 3.4.2 逆变换
    • 3.5 变换方程
    • 3.6 姿态的其他描述方法
      • 3.6.1 X-Y-Z固定角坐标系
      • 3.6.2 Z-Y-X欧拉角和Z-Y-Z欧拉角
      • 3.6.3 等效轴角坐标系表示法
      • 3.6.4 欧拉参数
    • 3.7 自由矢量的变换
  • 其他
  • 参考

1 简介

2 机械臂术语

2.1 常用术语

  • 位姿:位置和姿态
  • 连杆:具体见下图
  • 关节:相邻连杆间即关节,分转动关节和滑动关节
  • 关节角:转动关节,对应的位移称关节角
  • 关节偏距:滑动关节,邻杆是直线运动,对应的位移称关节偏距
  • 自由度:即独立位置变量的的数目。
  • 末端执行器:根据应用场景可为夹具、焊枪、电磁铁和其他
  • 工具坐标系:附于末端执行器上,用于描述操作臂的位置
  • 基坐标系:与操作臂固定底座相联。
  • 工作空间:机械臂所能达到的期望姿态。
  • 雅可比矩阵:关节空间速度向笛卡尔空间速度的映射。
  • 奇异点:由机构奇异性造成的。
  • 动力学:主要研究产生运动所需要的力。
  • 轨迹生成:从一个点运动到另一个点,常用方法是使每个关节按照指定的时间连续函数来运动。通常每个关节同时开始和停止才自然,轨迹生成就是准确计算出这些运动函数。
  • 笛卡尔轨迹生成:末端执行器走出一条直线等,需要将期望运动转化为一系列等效的关节运动。

2.2 机械臂运动学

运动学中,研究位置、速度、加速度和位置变量对于时间或者其他变量的高阶微分。

2.2.1 正运动学

通过给定的一组关节角的值计算工具坐标系相对于基坐标系的位置和姿态。
这个过程称为关节空间描述到笛卡尔空间描述。

2.2.2 逆运动学

通过给定的工具坐标系相对于基坐标系的位置和姿态计算所有所有可到达给定位置和姿态的关节角。
逆运动学较正运动学复杂,运动学方程是非线性的,很难得到封闭解,甚至无解。涉及解的存在性和多解问题。

3 空间描述和变换

做基于视觉的抓取时,不管是眼在手上(eye-in-hand),还是眼在手外(eye-to-hand),总是需要标定相机和执行器末端的关系的
在我们生活的三维空间中,对于刚体而言,存在着六个自由度,其中三个用来描述质心位置,而另外三个自由度用来描述整个刚体绕质心的旋转。

3.1 描述

3.1.1 位置描述

矢量表示点的位置

一旦建立坐标系,我们就能用一个3 x 1的位置矢量来对世界坐标系中的任何一点进行标定。
用3个相互正交的带有箭头的单位矢量来表示一个坐标系{A},如下:

在坐标系{A}下对矢量进行表示,位置矢量用一个前置的上标表明其参考的坐标系(P前的上标A),矢量的各个元素用下标x,y和z标明。

3.1.2 姿态描述

可用矩阵表示物体的姿态

确定末端执行器的空间位置后,还需要对姿态进行描述。假定有足够数量的关节,末端执行器可有任意的姿态。
为了描述物体的姿态,我们将在物体上固定一个坐标系并给出此坐标系相对于参考系的表达。
点的位置可用矢量描述,物体的姿态可用固定在物体上的坐标系来描述

描述连体坐标系{B}的一种方法是利用坐标系{A}的3个主轴单位矢量来表示。

3个单位矢量顺序排列组成一个3 x 3的矩阵,这个矩阵就叫做旋转矩阵,表示{B}相对于{A}的旋转。
3 x 3的矩阵中,每个标量可用每个矢量在其参考坐标系中单位方向上投影的分量来表示。

由两个单位矢量的点积可得二者间的余弦,故旋转矩阵的各分量常称作方向余弦。
由于旋转矩阵是利用{B}的三个主轴单位向量在{A}中的投影得到的,所以它有一些特殊性质,首先它是一个对称矩阵:

另一个性质,即“旋转矩阵的逆等于它的转置”。
由线性代数知:一个正交阵的逆等于它的转置。

3.1.3 坐标系描述

在机器人学中,位置和姿态经常成对出现,于是我们将此组合称为坐标系,4个矢量为一组,表示位置和姿态信息。
坐标系{B}在坐标系{A}中的表示如下:

在John J.Craig的《Introduction to Robotics: Mechanics and Control》书中有这样一句表述:“一个参考系可以用一个坐标系相对于另一个坐标系的关系来描述”。也就是说,在这里,Craig将参考系虚化为了一种关系,这与我们平时说的参考系的理解其实不太一样。“参考系包括位置和姿态两个概念,大多数情况下被认为是这两个概念的结合。位置可由一个参考系表示,这个参考系中的旋转矩阵是单位阵,并且这个参考系中的位置矢量确定了被描述点的位置。同样,如果参考系中的位置矢量是零矢量,那么它表示的就是姿态。”

3.2 映射:从坐标系到坐标系的变换

3.2.1 关于平移坐标系的映射


{A} 和 {B}的姿态相同,{B}不同于{A}的只是平移,即{B}相对于{A}不存在旋转。
P相对于{A}的位置可以用矢量相加表示:

3.2.2 关于旋转坐标系的映射


任意矢量的分量就是该矢量在参考系上的单位矢量方向的投影,投影是由矢量点积计算的。

可以将其简化为:

这个映射将空间中的某个点P相对于{B}的描述转换成了该点相对于{A}的描述。

3.2.3 关于一般坐标系的描述


一般情况下,坐标系{A}和{B},原点不重合,有一个矢量偏移。



上面的4 x 4矩阵被称为齐次变换矩阵。

3.3 算子

用于坐标系间点的映射的通用数学表达式称为算子。

3.3.1 平移算子

平移将空间中的一个点沿着一个已知的矢量方向移动一定距离。对该点的描述仅用一个坐标表示便可。


用矩阵算子写出平移变换:


3.3.2 旋转算子

旋转矩阵还可以用旋转变换算子来定义。

矢量经某一旋转R得到的旋转矩阵与一个坐标系相对于参考坐标系经某一旋转R得到的旋转矩阵是相同的。

R旋转算子,下标k表示绕K轴,()中表示旋转角度数。
将该算子写成齐次变换矩阵。

3.3.3 变换算子

算子T将一个矢量平移并旋转得到一个新的矢量。

经旋转R和平移Q的齐次变换矩阵与一个坐标系相对于参考坐标系经旋转R和平移Q的齐次变换矩阵是相同的。
齐次变换阵的3个定义:

3.3.4 齐次变换矩阵求逆

3.4 变换算法

3.4.1 混合变换



此时我们可以列出下面的式子:

求得:

3.4.2 逆变换



直接写出{A}相对于{B}的变换:

符号表示如下:

3.5 变换方程



将两个表达式构造成一个变换方程:

解出未知变换:

用坐标系的图形表示法,描述实例如下:

解出

3.6 姿态的其他描述方法

一个坐标系相对于另一个坐标系的姿态的表示方法有很多种,比如:X-Y-Z固定角,Z-Y-X欧拉角,RPY角,四元数等。UR机器人里面使用的是旋转矢量法。

我们知道旋转矩阵是单位正交阵,又因为其行列式为1,所以被称为标准正交阵(非标准正交阵的行列式值为-1)。前面我们聊到旋转矩阵中有9个量,但是却只表示了3个自由度,是因为矩阵中的元素存在着6个约束:

这里我们假定旋转矩阵R为:


由反对称矩阵的定义知:反对称矩阵主对角线上的元全为0,位于主对角线两侧对称的元反号。所以,一个三维的反对称矩阵可以由三个参数表示:

3.6.1 X-Y-Z固定角坐标系


我们对{B}进行旋转,每次都是绕着固定坐标系{A}的轴进行旋转的,我们常将绕着X、Y、Z的旋转称为pitch、yaw、roll,也即俯仰、偏航、翻滚。将三次旋转利用旋转矩阵写出并相乘:

乘积为:

3.6.2 Z-Y-X欧拉角和Z-Y-Z欧拉角

在这种表示法中,我们每次旋转都是绕着{B}的主轴进行旋转,也就是说,并不是绕着固定坐标系{A}的轴进行旋转了:

在这种表示下,有:

关于这个式子应该怎么理解呢?我们最终的目标是求出{B}相对于{A}的旋转,对于固定角坐标系,每次旋转都是基于{A}的,因而是按照旋转次序,依次左乘;对于欧拉角则是利用中间坐标系变换,所以依次右乘。比如上面的Z-Y-X欧拉角,记{A}绕{A}的Z旋转得到{B’},然后{B’}绕{B’}的Y旋转得到{B’’},最后{B’’}绕{B’’}的X旋转得到{B},所以,我们可以写出:

式中的3个旋转角分别是绕着{A}的Z轴,{B’}的Y轴,{B‘’}的X轴旋转(所以相对于我们的旋转,是右乘,先乘以绕X的旋转,再乘以绕Y的旋转,最后才是绕Z的旋转),因此我们可以得出结论:X-Y-Z固定角与Z-Y-X欧拉角在同样的角度大小下,旋转所得到的最终结果是一样的,也就是说在这两种表示下,{B}相对于{A}的姿态一致。注意,这并不是巧合,是因为固定角表示下是基本旋转矩阵左乘,而欧拉角表示下是基本旋转矩阵的右乘,而恰好X-Y-Z与Z-Y-X是相反的旋转顺序,所以最终的效果就一样了。

3.6.3 等效轴角坐标系表示法

即用一个单位矢量加上一个旋转角表示旋转:

因为我们的单位矢量长度恒为1,所以实际上确定它只需要两个参数,加上旋转角,也即三个参数,正好确定旋转所需要的3个自由度。当旋转轴K为一般轴时,等效旋转矩阵为:


单位向量

旋转矢量表示两个坐标系之间的旋转关系,

旋转矢量法与等效轴角坐标系之间的关系是:Rx=θkx,Ry=θky,Rz=θkz。
可求:

其中, cθ=cosθ , sθ=sinθ , vθ=1−cosθ ,θ 是由右手定则确定的,即大拇指指向 r^ 的正方向。

3.6.4 欧拉参数

除了上面的固定角坐标系表示法、欧拉角表示法和等效轴角坐标系表示法之外,我们再介绍另一种姿态表示法,这种表示法通过四个数值来表示,称为欧拉参数。

我们将这四个变量平方相加,得到:

也即,这四个参数不是独立的,所以,仍然符合我们对于姿态的3自由度的认知。同时,由上面的式子可知,我们可以将一个姿态看作是四维空间中单位超球面上的一点,或者说,它是一个单位四元数。用这组参数表示的旋转矩阵为:

已知旋转矩阵求欧拉参数为:

3.7 自由矢量的变换

其他

  • BORG-- 机械人,星际迷航电影系列中的一个宇宙种族,一只胳膊被截肢更换成机械臂

参考

1、《机器人学导论》[第三版]
2、机器人学导论(一)——空间描述和变换
3、博格人(Borg)–baike
4、机械臂——六轴机械臂构型分析与MATLAB建模
5、高中数学书PDF全集打包
6、机械臂——六轴机械臂构型分析与MATLAB建模
7、机械臂——六轴机械臂逆解
8、b站搜林沛群教授的机器人学
9、UR机器人之一:坐标系及位姿表示方法
10、等效轴角坐标系表示法
11、旋转变换(一)旋转矩阵
12、6轴机器人运动学正解,逆解1
13、齐次变换矩阵逆矩阵的快速求解方法

算法--机器人学导论相关推荐

  1. 《机器人学导论--Join J.Craig》第一章 绪论

    <机器人学导论–Join J.Craig>第一章 绪论 1.1 背景 1. 机器人取代人:人工成本原来越高,工业机器人的成本越来越低,且无需人工那些福利.待遇等,属于一本万利.随着工业机器 ...

  2. 并联四足机器人项目开源教程(一)--- 机器人学导论的学习

    这个是本人在大三期间做的项目 ---- 基于MIT的Cheetah方案设计的十二自由度并联四足机器人,这个项目获得过两个国家级奖项和一个省级奖项.接下来我会将这个机器人的控制部分所有代码进行开源,并配 ...

  3. 机器人学导论(第三版) 第三章 操作臂运动学 3.5操作臂运动学

    机器人学导论(第三版) 学习记录 第三章 操作臂运动学 3.5操作臂运动学 中间坐标系{P},{Q}和{R}的位置 想把坐标系{i}中定义的矢量转化成坐标系{i-1}中的描述,这个变换矩阵可以写成 i ...

  4. 《机器人学导论》学习-01空间描述与变换

    <机器人学导论>学习-01空间描述与变换 一.描述:位置.姿态与坐标系 1.位置描述 2.姿态描述 3.坐标系的描述 二.映射:坐标系到坐标系的变换 1.关于平移坐标系的映射 2.关于旋转 ...

  5. 斯坦福机器人学导论(视频+英文PPT讲义+课程作业+英文书籍)

    斯坦福机器人学导论(视频+英文PPT讲义+课程作业+英文书籍) 网址 文件内容 讲义内容 课后作业 英文书籍 课程视频 网址 https://download.csdn.net/download/we ...

  6. 国科大学习资料--机器人学导论(张正涛)--2017年期末考试试卷

    国科大学习资料–机器人学导论(张正涛)–2017年期末考试试卷 国科大学习资料–机器人学导论(张正涛)–2017年期末考试试卷 国科大学习资料–机器人学导论(张正涛)–2017年期末考试试卷

  7. 机器人运动学欧拉角姿态描述《机器人学导论》里的zyz欧拉角表述

    下图是<机器人学导论>里的zyz欧拉角表述 下图是维基对zyz欧拉角的表述 不明白为什么两个不一样,我用绕三轴旋转的矩阵相乘来推导公式,得到的也是第二种公式正确 matlab机器人工具箱提 ...

  8. 推荐引擎算法学习导论:协同过滤、聚类、分类(2011年旧文)

    推荐引擎算法学习导论:协同过滤.聚类.分类 作者:July 出处:结构之法算法之道 引言 昨日看到几个关键词:语义分析,协同过滤,智能推荐,想着想着便兴奋了.于是昨天下午开始到今天凌晨3点,便研究了一 ...

  9. 推荐系统算法学习导论

    推荐(引擎)系统算法学习导论 作者:July. 出处:结构之法算法之道 引言 昨日看到几个关键词:语义分析,协同过滤,智能推荐,想着想着便兴奋了.于是昨天下午开始到今天凌晨3点,便研究了一下推荐引擎, ...

  10. 利用逆矩阵解线性方程组_机器人学导论---第四章 操作臂逆运动学(一)4.1-4.11...

    第四章 操作臂逆运动学[(一)4.1-4.11] (一)概述 1.为求出要求的关节角以放置相对于工作台坐标系{S}的工具坐标系{T},可将这个问题分为两部分(1)进行坐标变换求出相对于基坐标{B}的腕 ...

最新文章

  1. 守护进程和inetd(转)
  2. cad细等线体不显示_CAD打印文字不显示?很多人不知道这个知识点!
  3. 【Python】大神教你五分钟搞清楚Python函数的参数!
  4. PWA · 前后端协作 · Node | JTalk 掘金线下活动第七期
  5. Ajax datatype:'JSON'的error问题Status1:200,JSON格式
  6. (5)通过输入参数(测量数据)构建二维体模型(01)
  7. [CTO札记]李彦宏:《领导者的心态——Best of the best》
  8. hash函数的构造方法
  9. macOS 输入法快速切换工具 —— KeyboardHolder
  10. VS2017社区版离线下载
  11. 如何将pdf转换成jpg图片格式
  12. local class incompatible: stream classdesc serialVersionUID = -6230081990944906418, local class seri
  13. 用户自定义个性域名范解析
  14. Android——基本组件-2
  15. 朱丹老师课程学习笔记:8、职场晋升-没人带怎么办?这样搜资料的小白也能变大神
  16. 一份不悔的爱情 魔兽中那些我们追过的橙色武器_马立杰_新浪博客
  17. 【扫盲系列】分布式+Zookeeper+Docker+K8S
  18. 六-体系结构 Architecture
  19. CAD画图 ——基础和直线
  20. softer nms论文阅读Bounding Box Regression with Uncertainty for Accurate Object Detection

热门文章

  1. 获取 CSDN 1024 程序员节勋章教程
  2. MyBatis的下载
  3. 企业全面运营管理沙盘模拟心得_你要的企业沙盘模拟心得来了!!!
  4. 九型人格,工作中的好帮手
  5. 软件产品需求规格说明书模板
  6. Recurdyn与AMESim联合仿真出现无法加载DLL错误解决方法
  7. Matlab线型、标记、颜色表示代码
  8. cad刷新快捷键_CAD快捷键命令
  9. 微信小程序:好看的表格样式
  10. 【Python实践】Python部分实际案例解答1