前言:导师主要是做图像处理方面的,然后接了一个与机械臂相关的项目,然后让我学习机械臂,我从去年寒假开始,自己搜集资料,看了零星一些文章,感觉自己学的不是很深入,学的也比较零碎,我希望能通过写博客的方式来监督自己的学习。
机械臂我们可以理想地把他作为刚体,以刚体的角度对机械臂进行研究。刚体参考点的位置和刚体的姿态称为刚体的位姿,其表示方式主要有:齐次变换法、矢量法、旋量法和四元数法。其中介绍及应用比较多的是齐次变换法,他能将运动、变换、映射和矩阵运算联系起来。此外齐次变换在研究空间机构动力学、机器人控制算法、计算机图形学和视觉信息处理方面也有广泛的运用。

位姿描述:

(1)位置的描述:

描述一个点的位置,有很多方法。描述点的位置需要基于一个坐标系,常见的坐标系有直角坐标系,极坐标系,圆柱坐标系。通常我们采用直角坐标系来描述一个点的位置。对于直角坐标系{A},空间任意一点p的位置,我们可以用列矢量(px,py,pz)T(px,py,pz)^T(px,py,pz)T来表示,其中px,py,pz是点p在坐标系{A}下的三个分量,这三个分量便能唯一确定一点的位置。
图1-1

(2)方位的描述:

描述刚体的运动,不仅要描述某一点的位置,也要描述刚体的方位;为了描述空间某刚体B的方位,另外设一个直角坐标系{B}与刚体连接,用坐标系{B}的三个单位主矢量XbX_bXb​,YbY_bYb​,ZbZ_bZb​,相对于坐标系{A}的方向余弦组成的3X3的矩阵
BAR_B^ARBA​R = [AXB,AYB,AZB][^A{X_B},^A{Y_B},^A{Z_B}][AXB​,AYB​,AZB​] =[r11r12r13r21r22r23r31r32r33]\begin{bmatrix} r11&r12&r13\\ r21&r22&r23\\r31&r32&r33\end{bmatrix}⎣⎡​r11r21r31​r12r22r32​r13r23r33​⎦⎤​
BAR_B^ARBA​R为旋转矩阵,其中上标A代表参考坐标系{A},下标B代表被描述的坐标系{B}。BAR_B^ARBA​R矩阵中含有9个元素,只有三个是独立的,他的三个列矢量都是单位主矢量,两两互相垂直。标量rij{r_{ij}}rij​可用每个矢量在参考坐标系中单位方向上的投影的分量来表示。BAR_B^ARBA​R中的各个分量可用一对单位矢量的点积来表示。由两个单位矢量的点积可以得到二者之间的夹角的余弦,所以旋转矩阵的各个分量常被称作方向余弦。
绕x轴、y轴、z轴旋转θ\thetaθ角度的矩阵分别为:
R(x,θ\thetaθ)=(1000cosθ−sinθ0sinθcosθ)\begin{pmatrix} 1&0&0 \\ 0&cos\theta&-sin\theta \\ 0&sin\theta&cos\theta \end{pmatrix}⎝⎛​100​0cosθsinθ​0−sinθcosθ​⎠⎞​
R(y,θ\thetaθ)=(cosθ0sinθ010−sinθ0cosθ)\begin{pmatrix} cos\theta&0&sin\theta \\ 0&1&0 \\ -sin\theta&0&cos\theta \end{pmatrix}⎝⎛​cosθ0−sinθ​010​sinθ0cosθ​⎠⎞​
R(z,θ\thetaθ)=(cosθ−sinθ0sinθcosθ0001)\begin{pmatrix} cos\theta&-sin\theta&0 \\ sin\theta&cos\theta&0 \\0&0&1 \end{pmatrix}⎝⎛​cosθsinθ0​−sinθcosθ0​001​⎠⎞​
通常情况下会用旋转矩阵来描述刚体的方位。

(3)位姿的描述:

为了完整描述刚体B在空间的位置与姿态,需要将刚体B与坐标系{B}固接。坐标系的原点一般选取物体的特征点,如质心,对称中心等。相对于参考系{A},位置矢量和旋转矩阵分别描述坐标系{B}的原点位置和坐标轴的方位。所以B的位姿由坐标系{B}参考坐标系{A}来描述,即{B} = {BAR_B^ARBA​R,AXB^A{X_B}AXB​}

(4)手爪坐标系:

为了描述末端执行器的位置和姿态,规定一个与手爪固接的坐标系,称为手爪坐标系。z轴设定在接近物体的方向,称为接近矢量a(approach);y轴设置在设在两手指的联线方向,称为方向矢量o(orientation);x轴由右手法则确定,n称为法向矢量(normal)。如此,手爪的方位就由旋转矩阵[n,o,a]而手爪的位置由位置矢量p所规定,他代表手爪坐标系的原点,因此手爪的位姿可有四个独立矢量进行描述[ n,o,a,p],记为[T]=[ n,o,a,p],在后续正逆运动学中,会多次用到这个坐标系。

坐标变化:

在空间中一点p在不同坐标系下的描述是不同的,从一个坐标系到另一个坐标系描述之间的变化关系主要如下三种:

(1)平移变换:

假设坐标系{B}和{A}有着相同的方位,但是两个坐标系的原点不一致。用位置矢APB^A{P_B}APB​来描述{B}相对于参考坐标系{A}的位置,如下图所示。把APB^A{P_B}APB​称为{B}相对于{A}的平移矢量。如果点P在坐标系{B}中的位置为BP^B{P}BP,则他相对于{A}的位置BP^B{P}BP可以通过矢量相加得到:
AP^ A{P}AP=BP^ B{P}BP+APB^A{P_B}APB​
这个矢量相加的等式称为坐标平移方程。

图2-1

(2)旋转变化:

坐标系{B}与{A}具有相同的坐标原点,却有着不同的方位,如下图所示。可以用旋转矩阵来描述{B}相对于{A}的方位。同样的,空间中一点P在坐标系{A}和{B}中具有以下变换关系:AP^ A{P}AP=BAR_B^A{R}BA​RBP^B{P}BP ,旋转矩阵与位置矢量的相乘称为坐标系旋转方程。

图2-2

(3)复合变化:

对于一般情况,坐标系{B}与坐标系{A},两个坐标系,原点不重合,方位也不相同,如下图所示。结合上面两个方程,复合变换由坐标平移与坐标旋转共同作用得来的,得出他的一般方程如下:AP^ A{P}AP=BAR_B^A{R}BA​RBP^B{P}BP+APB^A{P_B}APB​

齐次坐标变换:

上式的复合变换对点BP^B{P}BP来说是非齐次的,但是可以把他转化成齐次的形式:
(AP1)\begin{pmatrix} ^A{P} \\ 1\end{pmatrix}(AP1​)=(BARAPB01)\begin{pmatrix} _B^AR &^A{P_B} \\ 0&1\end{pmatrix}(BA​R0​APB​1​)(BP1)\begin{pmatrix} ^B{P} \\ 1\end{pmatrix}(BP1​)

(1)平移齐次坐标变换:

空间的任意点都有矢量ai+bj+ck来描述,其中i,j,k为轴x,y,z上的单位矢量,所以此点可以用平移齐次变换表示为:
Trans(a,b,c)=(100a010b001c0001)\begin{pmatrix} 1&0&0&a \\ 0&1&0&b \\ 0&0&1&c \\ 0&0&0&1 \end{pmatrix}⎝⎜⎜⎛​1000​0100​0010​abc1​⎠⎟⎟⎞​

(2)旋转齐次坐标变换:

对应于轴x,y,z作转角为θ\thetaθ的旋转变化,可得到如下齐次矩阵:

Rot(x,θ\thetaθ)=(10000cosθ−sinθ00sinθcosθ00001)\begin{pmatrix} 1&0&0&0 \\ 0&cos\theta&-sin\theta&0 \\ 0&sin\theta&cos\theta&0 \\ 0&0&0&1 \end{pmatrix}⎝⎜⎜⎛​1000​0cosθsinθ0​0−sinθcosθ0​0001​⎠⎟⎟⎞​

Rot(y,θ\thetaθ)=(cosθ0sinθ00100−sinθ0cosθ00001)\begin{pmatrix} cos\theta&0&sin\theta&0 \\ 0&1&0&0 \\ -sin\theta&0&cos\theta&0 \\ 0&0&0&1 \end{pmatrix}⎝⎜⎜⎛​cosθ0−sinθ0​0100​sinθ0cosθ0​0001​⎠⎟⎟⎞​

Rot(z,θ\thetaθ)=(cosθ−sinθ00sinθcosθ0000100001)\begin{pmatrix} cos\theta&-sin\theta&0&0 \\ sin\theta&cos\theta&0&0 \\ 0&0&1&0 \\ 0&0&0&1 \end{pmatrix}⎝⎜⎜⎛​cosθsinθ00​−sinθcosθ00​0010​0001​⎠⎟⎟⎞​

(3)复合齐次变换:

空间某点既有平移变换又有旋转变化是,按照变化的先后顺序,可得到如下变化矩阵:
T=Trans(a1a_1a1​,b1,b_1,b1​,c1c_1c1​)*Trans(ana_nan​,bn,b_n,bn​,cnc_ncn​)Rot(y,θ\thetaθ)Rot(x,ε\varepsilonε)

参考

[1].John J.Craig《机器人学导论》[M]机械工业出版社, 2006:14~47
[2].熊有伦,《机器人技术基础》[M]华中理工大学出版社,1996:15~30
[3]马强.《六自由度机械臂轨迹规划研究》[D]哈尔滨工程大学2007:9~13
[4]马江.《六自由度机械臂控制系统设计与运动学仿真》[D]北京工业大学2009:31~33

机械臂学习笔记01-位姿描述和坐标变换相关推荐

  1. 机械臂论文笔记(一)【基于卷积神经网络的二指机械手 抓取姿态生成研究 】

    基于卷积神经网络的二指机械手 抓取姿态生成研究 论文下载 摘要 第1章 绪论 1.1 抓取生成国内外研究现状 1.1.1已知物体抓取生成 1.1.2相似物体抓取生成 1.1.3 未知物体抓取生成 1. ...

  2. Moveit!入门——古月居机械臂开发笔记(一)

    Moveit!入门--古月居机械臂开发笔记(一) 引言 Moveit!与机械臂控制 1.创作机械臂模型 2.生成配置文件 3.如何使用Moveit!实现机械臂仿真(gazebo) 完善模型 在gaze ...

  3. MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01

    MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01 1. MySQL体系结构和存储引擎 1.1 定义数据库和实例 数据库database: 物理操作系统文件或其他形式文件类型的集合. 当使 ...

  4. RN学习笔记01:概述、特点与环境搭建

    RN学习笔记01:概述.特点与环境搭建 一.RN概述 React Native(简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 Reac ...

  5. ES6学习笔记01:Symbol数据类型

    ES6学习笔记01:Symbol数据类型 1.Symbol定义 浏览demo01.html: 2.Symbol作对象属性名 Symbol函数可以接收一个字符串作为参数,表示对Symbol实例的描述,输 ...

  6. django学习笔记01

    原创博客地址:django学习笔记01 基于教程,刘江的博客教程Django教程:https://www.liujiangblog.com/course/django/87 第一章:模型层 1.1 模 ...

  7. Moveit!入门——古月居机械臂开发笔记(二)

    Moveit!入门--古月居机械臂开发笔记(二) 引言 ROS机械臂开发_机器视觉与物体抓取 1.ROS中的运动学插件 2.Moveit!碰撞检测 规划场景 3.Pick and Place 4.RO ...

  8. C#学习笔记 01.01

    C#学习笔记 01.01 (学习视频来自bilibili的传智播客赵老师基础教学视频) 服务器与客户端的区别 服务器其实本质上还是一个电脑,只是加装了很多的硬盘,从而实现对数据的大规模存储. 而客户端 ...

  9. UR机械臂学习(5-2):使用Universal_Robots_ROS_Driver驱动真实机械臂

    使用的版本是 Ubuntu18.04 + ROS melodic + UR3(CB3.12) 因为后续需要使用手控器,手控器的驱动需要在Ubuntu18.04下才可以使用. 这篇文章是电脑上的设置,关 ...

最新文章

  1. 卡尔曼滤波(kalman)相关理论以及与HMM、最小二乘法关系 转
  2. 802.3和以太网帧结构-路由交换原理1-【HCNA笔记】
  3. K-近邻(KNN)算法
  4. vsftpd的配置文件路径,是在哪里指定的?
  5. C语言中函数如何返回结构体?
  6. BugKuCTF 杂项 宽带信息泄露
  7. 远程管理,无需在机房来回穿梭
  8. IntelliJ IDEA启动Tomcat控制台乱码问题解决
  9. C++模板专门化与重载
  10. Git标签tag及tag远程同步
  11. 快速排序 动图_Java十大排序算法最强总结
  12. Python风格总结:模块调用
  13. DevExpress XtraGrid RepositoryItemCheckEdit 复选框多选的解决方法(转)
  14. 服务器与虚拟技术,云服务器与虚拟化服务器的区别
  15. 面向对象编程 和 面向接口编程
  16. java基于springboot校园餐厅订餐管理系统附源码
  17. 模式识别与机器学习(国科大2021-2022秋季学期课程)-基础概念及算法
  18. phyton基础-01
  19. nested exception is com.google.gson.JsonSyntaxException: com.google.gson.stream-异常解决!!!
  20. nginx配置https阿里云免费ssl

热门文章

  1. 笔记:caffe安装编译,并用ssd gpu训练自己的数据集
  2. 【Sciter】Sciter 结合 Preact 封装 图片查看器总结
  3. modelandview找不到视图_当一个测试工程师准备找工作,需要准备什么?
  4. 详解,python求矩阵的秩,你肯定能看懂
  5. (三)pjsip 监听
  6. Java面向过程实现员工管理系统(利用集合存储数据实现员工增删改查排序)
  7. 南开大学计算机博士好毕业不,南开一半博士生不能当年毕业(转载)
  8. Calibre 制作电子书
  9. 价值800的swapidc鸟云模板开源版
  10. 典型相关分析(Canonical Correlation Analysis,CCA)原理及Python、MATLAB实现