大家好
我是东北大学机器人科学与工程学院的王帅
第一次实验课
我们来初识
MATLAB robotics toolbox
一
MATLAB robotics toolbox简介
MATLAB robotics toolbox
是由澳大利亚科学家Peter Corke 开发和维护的
一套基于MATLAB的机器人学工具箱
当前最新版本为10.2
可在该工具箱的网页上免费下载
robotics toolbox提供了机器人学
研究的许多重要功能函数
包括机器人运动学动力学轨迹规划等
该工具箱可以对机器人进行图形仿真
并能分析真实机器人控制的实验结果
因此非常适宜于机器人学的教学和研究
一 下载
第一步
我们可以在以下地址下载zip格式的安装包
将解压后的文件夹rvctools
复制到MATLAB安装路径下的toolbox文件夹中
第二步
打开MATLAB
点击设置路径
添加并包含子文件夹
然后选择这个rvctools文件夹
最后保存关闭
二
安装
打开rvctools文件夹的
start up下划线rvc的M文件运行
此时robotics toolbox安装完毕
或者在Matlab命令行中输入
start up下划线rvc安装
第四步
我们可以在Matlab命令行中
输入VER查看是否安装成功
可以在列表中找到
robotics toolbox当前版本是10.2.0
最后我们在使用时就可以在命令行中
输入start up下划线RVC启动该工具箱了
二
二维空间位姿描述
涉及到的函数主要有SE2
输入参数是XYtheta
可以做XY的平移和theta角度的旋转
tr plot2输入参数T
画出相对于世界坐标系的变换大T
transl2在二维空间中做纯平移的变换
下面我们来看一下
MATLAB具体函数的实现
好
我们来看一下Matlab函数的具体实现
首先调用SE2函数
做E3的纯平移变换和30度的一个旋转
然后调用trplot2
把t1齐次变换给它画出来
t2呢
是做一个纯平移的移动三和四
然后也是利用trplot2
把t2齐次变换给它画出来
我们看一下具体的运行结果
好
最终的运行结果如图所示
第三节
三维空间位姿描述
涉及到的函数主要有
rotX rotY 和rotZ
那么分别呢
是绕XY和Z轴的一个旋转矩阵
trplotR是绘制出相应的旋转矩阵
tranimateR是做一个旋转动画
下面我们来看一下
Matlab函数的具体实现
我们来看一下
r1它是等于rotX 做30度的一个旋转
和rotY做一个50度的一个旋转
然后用trplot
把R1旋转矩阵给它画出来
同时做一个动画
r2是等于rotY50度
乘以rotX30度
同理也是用trplot2
把R2这个旋转矩阵给它画出来
并做一个动画
我们来看一下运行结果
那么我们可以看到
R1和R2是两个完全不同的一个旋转矩阵
也就是说是具有不可交性的
可以看出旋转的不可交性
二
三角度表示法
欧拉角
欧拉角定义的坐标系B的方位
规则如下
最初坐标系B与A重合
转动相对运动坐标系
B来描述
先绕ZB轴转阿法角
再绕YB轴转贝塔角
最后绕ZB轴转伽马角
按照从左向右的原则
得到相应的旋转矩阵
为rotZ阿尔法乘以rotY贝塔
乘以rotZ伽马
我们就可以用EU22R这个函数
把欧拉角转换为旋转矩阵
相反的可以用TR2EUL函数
把旋转矩阵用欧拉角表示
下面我们来看一下Matlab
具体函数的实现
好 我们来看一下
R3呢它是等于rotZ0.1乘以
rotY0.2乘以rotZ0.3
R4呢是调用了UL2R这个函数
阿尔法贝塔伽马分别是
0.1 0.2 0.3
那么运行的结果是什么样子的呢
我们可以看到
R3它是等于R4的
那么同理我们在调用TR21UL
可以把R3的欧拉角给它计算出来
计算结果如下所示
二
RPY角
用RPY角所描述的
坐标系B的方位规则如下
最初坐标系B与A重合
转动相对于固定坐标系A来描述
先绕XA轴转伽马角
再绕YB轴钻贝塔角
最后绕ZA轴转阿法角
按照从右向左的规则
可以得到相应的旋转矩阵
R等于rot C阿法乘以rot Y贝塔
乘以rot X伽马
我们可以用RPY2R这个函数
把Roll Pitch Yaw角
用旋转矩阵来表示
相反的可以用TR2rpY R
这个函数把旋转矩阵
Roll Pitch Yaw角来表示
下面我们来看一下Matlab具体函数实现
好 我们来看一下
R5呢它是等于rotZ0.3
乘以rotY0.2乘以rotX0.1
R6呢是等于RPY2R0.1 0.2 0.3
我们来看一下运行的结果
那么我们可以看到
R5和R6的运算结果是一样的
接下来我们就要用TR2RP Y
这个函数把R5旋转矩阵
给它转换成RPY角运算的结果
如下所示
所有的三角度形式的姿态表示
不论是欧拉是还是RPY是
当两连续轴共线时
都会遇到万象解锁的问题
为消除这个问题
我们引进四元素法
即将在下面的小节中讨论
三
双向量表示法
机器人末端执行器的坐标
用一个接近向量A和一个姿态向量O
来定义它的位姿
从而可以计算出姿态向量N
NOA分别对应于
末端执行器坐标系的XY和Z轴
那么我们就可以用OR2R这个函数
OA这两个向量作为输入参数
组成旋转矩阵大R
下面我们就来看一下
Matlab具体函数的实现
好 我们来看一下
如果我们定义A是等于100
O是等于010这样的一个向量
那么我们调用OA2R这个函数
就可以把OA所组成的一个向量
组成一个旋转矩阵R7
看一下运算的结果
如下所示
四
绕任意向量旋转
涉及到的函数主要有
TR2angvec
求出R的等效任意旋转变换的
旋转矢量vec和转角theta
还有angvec2r
从角度和向量计算出
相应的旋转矩阵
下面我们来看一下Matlab
具体函数的实现
好 我们来看一下
我们分别调用tr2angvec和
angvec2R这两个函数
来看一下这两个函数的具体的实现
函数时间的结果
如上所示
五
单位四元数
单位四元数可以被看作
是绕单位向量N旋转了C塔角
该旋转与四元数组的关系
如下式所示
单位四元素表示法的引入
解决了三角度形式的姿态表示中
万象解锁的问题
涉及到的函数主要有
Quatenion和UnitQuatenion
分别是建立四元数和单位四元数
Q点RNV是四元数的共轭
Q点display也是打印出可读的形式
Q点plot的是绘制四元数
所指的方向
Q点animate
是画出四元数的坐标变换的动画
Q点R是转换成旋转矩阵
Q点T是转换成齐次变换矩阵
Q点torpy是转换成导航角
Q点TOEUL是转换成欧拉角
下面我们来看一下
Matlab啊具体函数实现
好 我们来看一下
首先我们定义S和V
然后呢调用UnitQuatenion
这个函数来组成一个四元数Q
然后调用RNV来求它的一个共轭
Q点display
打印出四元数
Q点plot是绘制出这个四元数
Q点animate是做一个四元素的一个动画
然后我们分别吊用Q点T和Q点R
来做它的一个齐次变换矩阵和旋转矩阵
然后就要用Q点TORPY
来把它转换成RPY角
Q点tooEUL是转换成EUL的角
看一下具体的运行结果
好
我们可以得到四元数法
Q他是组成了这样的一个四元数
TT呢是它的齐次变换矩阵
RR呢是它的一个旋转矩阵
那么
RPY和EUL分别如上所示
第四节坐标变换
平移类
涉及到的函数主要是transl
下面我们来看一下
Matlab函数的具体实现
好
程序的运行结果
如上所示
好
这节课我们就上到这里