开始学习《Robotics,Vision and Control》,今天是学习的第一篇章,因为项目需要,

需要在Matlab上做一个仿真实验,由于是串联机器人系统,不涉及到移动机器人系统,因此

本系列文章主要是学习和介绍书中相关章节。

位姿的表示

主要讲述了怎么去描述2D点和3D点的位姿,重点是相对位姿的表达。

1)一个点可以用一个坐标向量来描述,此坐标向量表示了此点相对于参考坐标系的位移

2)由一系列点组成的刚体可以由一个单独的坐标系来描述,并且它的成员点可以用相对于此坐标系

的位移来描述

3)一个目标坐标系的位置和姿态称为它的位姿

4)一个坐标系相对于另一个坐标系的相对位姿可以用ξ来表示

5)一个点相对于一个坐标系的坐标向量可以通过点乘一个相对位姿转换到另一个坐标系下

在2D空间表达位姿

在2D空间中一般使用平移量和一个旋转量来表示点的位姿,R∼(x,y,θ),如下图所示:

将{B}中的点P在{A}中表示:

其中相对位姿的表达:

在Matlab中变换矩阵的计算:

其中1,2分别表示平移量x,y。30*pi/180表示的是旋转量,表示旋转了30°。

我们可以在matlab中把这种旋转变换绘制出来,有两种方式,一种是静态的,只显示变换之后

的结果,用trplot2;另一种是动态的显示,它可以动态地显示出变换的过程,用tranimate函数(只适用于三维):

其中T1表示要绘制的变换矩阵,注意这里的变换都是相对于世界坐标系的变换后的结果,可选项

‘frame’,‘1’,表示此结果坐标系我们用{1}来标识它,后面的该坐标系的颜色。

注意:坐标变换的先后顺序是不能更换的,不同的变换顺序会得到完全不一样的结果

Matlab中点的绘制方式:

此外我们还需要注意几个Matlab函数,因为一般的坐标都做过齐次处理:

有时候我们仅仅只需要前两个坐标值,而不需要齐次项,这时候我们可以用h2e函数和homtrans函数

描述三维位姿

三维坐标系是二维坐标系的扩展,多了一个z来表达,三维空间中的点自然就用(x,y,z)来表示,也可以表示成

向量t(x,y,z),如图所示:

在三维空间中也从两个方面来考虑:平移和旋转。

1、三维空间中的姿态

三维空间中的变换顺序和二维的一样是不能交换顺序的,变换顺序将影响最终结果。数学上有几种方式来描述

旋转:正交旋转矩阵、欧拉角、旋转轴和单位四元素。

正交旋转矩阵

关于x,y,z轴旋转一个角度的正交旋转矩阵分别为:

在Matlab中很方便地可以利用一些函数计算旋转矩阵:rotx(a)、roty(a)、rotz(a)

同样地,我们可以用trplot(R)和tranimate(R)来静态地或动态地显示变换结果。

**从以上可以看出,正交矩阵有9个元素,但它们不是独立的,每个列向量的模是1和三个

列向量相互正交各有3个约束,因此正交矩阵只有3个独立的变量**

欧拉角

根据旋转的顺序不同欧拉角有两种:一种是有绕重复轴旋转的欧拉角,如XYX,XZX等6种,

另一种是每次旋转都绕不同轴的卡尔达纳,如XYZ,XZY等6种。

每一种形式都应用于特定的领域,在航空和机械领域用得比较多的就是ZYZ形式,在Matlab机器人工具箱中也是用的这种形式的欧拉角

在matlab中可以用相应的函数很方便地计算:

上述两种方式完全等价

有时候我们知道变换矩阵了,我们需要知道对应这个矩阵的欧拉角,可以用tr2eul()函数

注意欧拉角中的Y方向旋转的角度不能是0或负值,或kpi,会奇异

另一种被广泛使用的欧拉角是XYZ(roll-pitch-yaw)

在matlab中相应的函数是:rpy2r(x,y,z)以及tr2rpy(R)

这种XYZ形式的欧拉角在Y旋转角度为(2k+1)pi/2的情况下会奇异

旋转轴

两个特定姿态的坐标系是通过空间中某个轴的旋转而联系在一起的。

R就是世界坐标系绕着轴V旋转theta角得到的。其中theta和V分别是R的特征值和对应的特征向量。

在matlab中可以利用eig函数来求一个矩阵的特征值和对应的特征向量的:

其中V的列向量就是lambda中对应的列特征值所对应的特征向量,对于每一个正交旋转矩阵来说,总是有一个特

征值为1,其所对应的特征向量就是对应的旋转轴

在Matlab中可以用angvec2r()函数来得到旋转轴对应的变换矩阵

单位四元素

四元素一直以来都备受争议,但它却在机器人中得到了很广泛地应用。四元素是复数的扩展,是一个标量加一个矢量组成:

Matlab中可以直接用Quaternion()来将矩阵转换为四元素:

所有和四元素有关的操作都在Quaternion这个类中,其有很多的成员函数,如q.R将四元素转换为矩阵形式,

q.plot将其绘制出来。

将平移和旋转组合起来

前面讨论的都是只考虑旋转,而没有考虑平移,接下来将结合两者一起来讨论。

有两种非常实用的表示方式:四元素和4x4的齐次变换矩阵

在Matlab中,用transl()和trotx()等函数来进行计算:

其中transl只有旋转,trotx只有旋转,相应的troty(),和trotz()

我们可以使用t2r(T)将T中旋转部分提取出来,使用transl(T)'将平移部分提取出来:

此次只是一些基础知识,二维和三维中位姿的描述方式,但却是后面一切学习的根基。

matlab机器人工具箱 欧拉角,Matlab机器人工具箱(一)相关推荐

  1. 使用机器人工具箱在matlab上进行六轴机器人(6R)运动学建模【个人简记】

    运动学参数部分 先上一张,基于MD-H的坐标系图 图一 下面就是我的建模过程!!! 需要知道机器人的尺寸如图二. 图二 对每个关节建立坐标系,以六轴机器人来说有第0个坐标系(基座坐标系),第1~6个坐 ...

  2. 四足机器人|机器狗|仿生机器人|多足机器人|MATLAB动画仿真|Simulink动画仿真

    四足机器人|机器狗|仿生机器人|多足机器人|MATLAB动画仿真|Simulink动画仿真 四足机器人的连杆模型,利用机器人工具箱,行走规划是用的CPG,详情见 https://blog.csdn.n ...

  3. 工具箱 matlab,最全的Matlab工具箱分享

    Gerald Recktenwald <Numerical Methods with MATLAB>(NMM1.5数值分析工具箱) Dahua Lin<Statistical Lea ...

  4. matlab 林智仁,机器学习:林智仁libsvm 工具箱 在matlab下的应用总结

    简单介绍一下机器学习中的libsvm libsvm工具箱在matlab下的安装 libsvm工具箱在matlab下的应用 libsvm的实际应用 小结 一.机器学习中的libsvm介绍 支持向量机(S ...

  5. 机器学习:林智仁libsvm 工具箱 在matlab下的应用总结

    简单介绍一下机器学习中的libsvm libsvm工具箱在matlab下的安装 libsvm工具箱在matlab下的应用 libsvm的实际应用 小结 一.机器学习中的libsvm介绍 支持向量机(S ...

  6. libsvm工具箱会和matlab,MATLAB实现多分类和libsvm工具箱的安装使用详解

    首先告诉大家MATLAB现在可以实现多类分类的问题!但是需要借助工具箱! 下面介绍的是台湾林智仁教授的libsvm工具箱在MATLAB中的安装和使用: 安装环境:Win7.Microsoft Visu ...

  7. 四足机器人(一)----MATLAB simulink对四足机器人物理建模

    四足机器人(一)----MATLAB simulink对四足机器人物理建模 一. 本设计中用的是网上下载的别人已经画好的四足机器狗的3D模型. 那么我们就需要将这些3D模型导入到MATLAB的建模中, ...

  8. matlab系统辨识工具箱原理,matlab常用工具箱介绍

    怎么使用matlab系统辨识工具箱 如果是系统自带的,你可以直接用,如果是外部的或者是自编的你需要先把文件夹拷贝到tools文件夹下,再设置路径. Matlab常用工具箱介绍(英汉对照)Matlab ...

  9. matlab相机标定工具箱下载,matlab相机标定工具箱

    matlab相机标定工具箱是一款适合matlab软件使用的相机标定工具箱,通过该工具箱,可以帮助用户解决使用过程中遇到的各种问题,非常实用的一款工具箱,需要的朋友赶紧来本站下载吧! matlab相机标 ...

最新文章

  1. 行业|深度解析:医疗机器人商用要过几道坎
  2. 华三ospf联动bfd_HCIE2020__路由交换专家__BFD综合实验
  3. samba 2.2.7a 编译
  4. 基于springboot乡村民宿系统
  5. 图解详说pads2007安装全过程(经过验证)
  6. 苹果笔记本突然开机黑屏
  7. Microsoft Office XP 智能标记的安装和安全性
  8. 《美国职业橄榄球大联盟》:NFL·橄榄1号位
  9. Qt 绘制炫彩滚动文本
  10. python合并word表格_python docx处理word文档中表格合并问题
  11. Android bootchart 工具使用
  12. 基于51单片机的智能花盆测控(温湿度、光照)【仿真资料-126】
  13. 2021/09/06 Terraform 从入门到精通(二)
  14. 【无标题】HTML做一个简单漂亮的宠物网页(纯html代码)宠物 5页(二级菜单)
  15. 【tio-websocket】6、tio-websocket-server使用ByteBuffer收发消息
  16. 【抖音主页/评论/私聊】实现点击链接调起微信跳转到关注公众号/加好友页面的方法
  17. Jsonp跨域漏洞浅析
  18. 账套显示到期怎么弄_用友U8账套年度演示期限已到期
  19. MySQL 修改默认值
  20. 从零开始的python生活-01

热门文章

  1. 推荐几个好用的网盘搜索引擎
  2. 配置服务器的dns文件是什么意思,什么是服务器配置,DNS服务器如何配置
  3. Xcode不用数据线---真机测试
  4. 提问的智慧 - 艾瑞克.史蒂文.雷蒙德(Eric Steven Raymond)
  5. React hooks中swr的原理和源码解析
  6. windows num_workers
  7. electron打开系统默认浏览器
  8. Kafka 精妙的高性能设计(上篇)
  9. 2020-03-18HTML
  10. PostgreSQL是世界上最好的数据库