Matlab-Robotic-Toolbox工具箱学习笔记
- 格式:docx
- 大小:365.72 KB
- 文档页数:15
matlab中robotics toolbox的函数解说1. PUMA560的MATLAB仿真要建立PUMA560的机器人对象,首先我们要了解PUMA560的D-H参数,之后我们可以利用Robotics Toolbox工具箱中的link和robot函数来建立PUMA560的机器人对象。
其中link函数的调用格式:L = LINK([alpha A theta D])L =LINK([alpha A theta D sigma])L =LINK([alpha A theta D sigma offset])L =LINK([alpha A theta D], CONVENTION)L =LINK([alpha A theta D sigma], CONVENTION)L =LINK([alpha A theta D sigma offset], CONVENTION)参数CONVENTION可以取‘standard’和‘modified’,其中‘standard’代表采用标准的D-H参数,‘modified’代表采用改进的D-H参数。
参数‘alpha’代表扭转角,参数‘A’代表杆件长度,参数‘theta’代表关节角,参数‘D’代表横距,参数‘sigma’代表关节类型:0代表旋转关节,非0代表移动关节。
另外LINK还有一些数据域:LINK.alpha %返回扭转角LINK.A %返回杆件长度LINK.theta %返回关节角LINK.D %返回横距LINK.sigma %返回关节类型LINK.RP %返回‘R’(旋转)或‘P’(移动)LINK.mdh %若为标准D-H参数返回0,否则返回1LINK.offset %返回关节变量偏移LINK.qlim %返回关节变量的上下限 [min max]LINK.islimit(q) %如果关节变量超限,返回 -1, 0, +1LINK.I %返回一个3×3 对称惯性矩阵LINK.m %返回关节质量LINK.r %返回3×1的关节齿轮向量LINK.G %返回齿轮的传动比LINK.Jm %返回电机惯性LINK.B %返回粘性摩擦LINK.Tc %返回库仑摩擦LINK.dh return legacy DH rowLINK.dyn return legacy DYN row其中robot函数的调用格式:ROBOT %创建一个空的机器人对象ROBOT(robot) %创建robot的一个副本ROBOT(robot, LINK) %用LINK来创建新机器人对象来代替robotROBOT(LINK, ...) %用LINK来创建一个机器人对象ROBOT(DH, ...) %用D-H矩阵来创建一个机器人对象ROBOT(DYN, ...) %用DYN矩阵来创建一个机器人对象2.变换矩阵利用MATLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以实现用齐次变换矩阵表示平移变换和旋转变换。
Robotic tool提供了一些如运动学,动力学和生成机器人轨迹的许多有用功能。
用这个工具箱进行仿真以及分析与真正的机器人得到实验结果是非常有用。
工具箱的优点是代码是一个相当成熟的算法,对于教学源代码是免费的。
该工具箱提供了机器人动力学正解和逆解,其次坐标转换所必需的三维位置和方向。
该工具箱可以计算任意结构机器人的正反运动学(用数值积分的方法,不是给出解析解)、正反动力学(反运动学采用的是递归牛顿欧拉方法,效率很高)、路径规划等;里面还有Puma560和Stanford机器人的实例。
1. PUMA560的MATLAB仿真要建立PUMA560的机器人对象,首先我们要了解PUMA560的D-H参数,之后我们可以利用Robotics Toolbox工具箱中的link和robot函数来建立PUMA560的机器人对象。
其中link函数的调用格式:L = LINK([alpha A theta D])L =LINK([alpha A theta D sigma])L =LINK([alpha A theta D sigma offset])L =LINK([alpha A theta D], CONVENTION)L =LINK([alpha A theta D sigma], CONVENTION)L =LINK([alpha A theta D sigma offset], CONVENTION)参数CONVENTION可以取‘standard’和‘modified’,其中‘standard’代表采用标准的D-H参数,‘modified’代表采用改进的D-H参数。
参数‘alpha’代表扭转角,参数‘A’代表杆件长度,参数‘theta’代表关节角,参数‘D’代表横距,参数‘sigma’代表关节类型:0代表旋转关节,非0代表移动关节。
另外LINK还有一些数据域:LINK.alpha %返回扭转角LINK.A %返回杆件长度LINK.theta %返回关节角LINK.D %返回横距LINK.sigma %返回关节类型LINK.RP %返回‘R’(旋转)或‘P’(移动)LINK.mdh %若为标准D-H参数返回0,否则返回1LINK.offset %返回关节变量偏移LINK.qlim %返回关节变量的上下限[min max]LINK.islimit(q) %如果关节变量超限,返回-1, 0, +1LINK.I %返回一个3×3 对称惯性矩阵LINK.m %返回关节质量LINK.r %返回3×1的关节齿轮向量LINK.G %返回齿轮的传动比LINK.Jm %返回电机惯性LINK.B %返回粘性摩擦LINK.Tc %返回库仑摩擦LINK.dh return legacy DH rowLINK.dyn return legacy DYN row其中robot函数的调用格式:ROBOT %创建一个空的机器人对象ROBOT(robot) %创建robot的一个副本ROBOT(robot, LINK) %用LINK来创建新机器人对象来代替robotROBOT(LINK, ...) %用LINK来创建一个机器人对象ROBOT(DH, ...) %用D-H矩阵来创建一个机器人对象ROBOT(DYN, ...) %用DYN矩阵来创建一个机器人对象2.变换矩阵利用MA TLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以实现用齐次变换矩阵表示平移变换和旋转变换。
Robotics ToolBox 使用方法1.下载与安装下载地址:/Toolboxes.html相关的其他下载(linux 版本、python 语言版本等):/Other_software.html相关书籍网站(含各种使用视频):/RVC/Matlab 中点击setpath ,在弹出的对话框中点击add with subfolders ,选中RVCtools 文件夹,点击确定并应用。
2.坐标系旋转与操作绕x 轴旋转:R=rotx(theta)● 输入:theta---旋转角度● 输出:R---旋转矩阵绕y 轴和绕z 轴旋转:R=roty(theta),R=rotz(theta)旋转过后矩阵的绘图显示:trplot(R)● 输入:R---旋转矩阵● 输出:旋转后的坐标系的三维图像旋转过程动画显示:tranimate(R)● 输入:R---旋转矩阵● 输出:基础坐标系旋转到目标坐标系的动画演示欧拉角旋转(ZYZ 形式),数学表示及计算为:z z (,,)R ()R ()R ()y φθψφθψΓ==,对应函数是:R=eul2r(fi,theta,psi)● 输入:(fi,theta,psi)分别对应,,φθψ● 输出:旋转矩阵欧拉角逆运算函数:(fi,theta,psi)=tr2eul(R)● 输入:旋转矩阵● 输出:ZYZ 形式的,,φθψ● 注意:一个R 对应两组,,φθψ,但是此函数在求解时仅显示0θ>的解。
● 当0θ=对应于奇异值,也被称为万向节死锁(Gimbal lock ),得到的值为:φψ+,网上有讲:/soroman/archive/2008/03/24/1118996.html 。
(使用3个量来表示3维空间的朝向的系统都会遭遇这个问题,除非用4个量来表示,如四元数)rpy (roll-pitch-yaw )角,又被称为Cardan angles ,计算旋转矩阵SO(3)的函数为:R=rpy2r(theta_r, theta_p, theta_y)● 输入:rpy 角,theta_r, theta_p, theta_y● 输出:旋转矩阵Cardan angles 逆运算函数:(theta_r, theta_p, theta_y)=tr2rpy(R)● 输入:旋转矩阵R● 输出:rpy 角,,,r p y θθθ● 注意:与欧拉角逆变换不同,这里一个R 对应一组,,r p y θθθ● 当2p πθ=±时,达到奇异值或者Gimbal lock ,得到的值为r y θθ+ []xx x y y y z z z n o a R n o a n o a ⎡⎤⎢⎥==⎢⎥⎢⎥⎣⎦n o a ,其中=⨯n o a 由o 和a 计算R 的函数为:R=oa2r(q_o,q_a)● 输入:o 和a ,也即单位向量q_o 与q_a● 输出:旋转矩阵R求解旋转矩阵对应的旋转轴及旋转角度即为求旋转矩阵对应的特征值和特征向量:[v,lambda]=eig(R)● 输入:旋转矩阵R● 输出:3*3矩阵v 及3*3特征向量lambda ,其中v 向量对应于lambda=1的列即为旋转轴,lambda 其他的虚数对应辐角即为旋转角度。
[原创]强大的MATLAB机器人工具箱Matlab
强大的MATLAB机器人工具箱Matlab_Robotic_Toolbox_v9.10及教程
下载地址:
Matlab_Robotic_T oolbox_v9.10是一个功能强大的机器人工具箱,包含了机器人正、逆向运动学,正、逆向动力学,轨迹规划等等,其中的可视化仿真使得学习抽象的机器人学变得相对直观、好理解。
学习这个工具箱,对理解机器人学很有帮助。
工具箱的安装:将Matlab_Robotic_T oolbox_v9.10.rar解压后,放在matlab的安装目录下,最好是放在toolbox文件夹里,利用matlab的工具栏的setpath,将文件夹Matlab_Robotic_T oolbox_v9.10\rvctools设置为matlab的搜索目录,在command window输入“startup_rvc”,安装工具箱。
最后,你可以在command window输入“ver”,查看机器人工具箱是否已经安装成功了。
command window会列出所有的工具箱,其中Robotics Toolbox已经包含在里面。
安装成功!!。
MATLAB的机器学习工具箱使用教程机器学习是当今科技领域的热门话题,它的应用范围广泛,从自动驾驶到语音识别,无所不在。
而MATLAB作为一款功能强大的数学软件,其机器学习工具箱提供了丰富的函数和算法,可以帮助用户快速构建和训练机器学习模型。
本文将为大家介绍MATLAB的机器学习工具箱的使用方法和一些实用技巧。
一、数据准备在使用MATLAB的机器学习工具箱之前,首先需要准备好数据集。
数据集是机器学习模型的基础,它包含了训练样本和对应的标签。
在MATLAB中,可以使用csvread()函数读取CSV格式的数据文件,并将其转换为矩阵形式。
例如,假设我们有一个名为data.csv的数据文件,其中包含了1000个样本和10个特征,可以使用以下代码读取数据:```matlabdata = csvread('data.csv');```读取数据后,可以使用size()函数查看数据的维度,以确保数据读取正确。
同时,还可以使用plot()函数绘制数据的分布情况,以便更好地了解数据的特征。
二、数据预处理在构建机器学习模型之前,通常需要对数据进行预处理,以提高模型的性能和稳定性。
常见的数据预处理方法包括特征缩放、特征选择、数据平衡等。
特征缩放是指将数据的特征值缩放到相同的尺度范围内,以避免某些特征对模型的影响过大。
MATLAB提供了scale()函数可以实现特征缩放。
例如,可以使用以下代码对数据进行特征缩放:```matlabscaled_data = scale(data);```特征选择是指从原始数据中选择出最具有代表性的特征,以减少模型的复杂度和计算开销。
MATLAB提供了featureSelection()函数可以实现特征选择。
例如,可以使用以下代码对数据进行特征选择:```matlabselected_data = featureSelection(data);```数据平衡是指通过增加或减少样本数量,使得不同类别的样本数量相等,以避免模型对某些类别的偏见。
M T A L A B机器人工具箱Robotic tool提供了一些如运动学,动力学和生成机器人轨迹的许多有用功能。
用这个工具箱进行仿真以及分析与真正的机器人得到实验结果是非常有用。
工具箱的优点是代码是一个相当成熟的算法,对于教学源代码是免费的。
该工具箱提供了机器人动力学正解和逆解,其次坐标转换所必需的三维位置和方向。
该工具箱可以计算任意结构机器人的正反运动学(用数值积分的方法,不是给出解析解)、正反动力学(反运动学采用的是递归牛顿欧拉方法,效率很高)、路径规划等;里面还有Puma560和Stanford机器人的实例。
1. PUMA560的MATLAB仿真要建立PUMA560的机器人对象,首先我们要了解PUMA560的D-H参数,之后我们可以利用Robotics Toolbox工具箱中的link和robot函数来建立PUMA560的机器人对象。
其中link函数的调用格式:L = LINK([alpha A theta D])L =LINK([alpha A theta D sigma])L =LINK([alpha A theta D sigma offset])L =LINK([alpha A theta D], CONVENTION)L =LINK([alpha A theta D sigma], CONVENTION)L =LINK([alpha A theta D sigma offset], CONVENTION)参数CONVENTION可以取‘standard’和‘modified’,其中‘standard’代表采用标准的D-H参数,‘modified’代表采用改进的D-H参数。
参数‘alpha’代表扭转角,参数‘A’代表杆件长度,参数‘theta’代表关节角,参数‘D’代表横距,参数‘sigma’代表关节类型:0代表旋转关节,非0代表移动关节。
另外LINK还有一些数据域:LINK.alpha %返回扭转角LINK.A %返回杆件长度LINK.theta %返回关节角LINK.D %返回横距LINK.sigma %返回关节类型LINK.RP %返回‘R’(旋转)或‘P’(移动)LINK.mdh %若为标准D-H参数返回0,否则返回1LINK.offset %返回关节变量偏移LINK.qlim %返回关节变量的上下限 [min max]LINK.islimit(q) %如果关节变量超限,返回 -1, 0, +1LINK.I %返回一个3×3 对称惯性矩阵LINK.m %返回关节质量LINK.r %返回3×1的关节齿轮向量LINK.G %返回齿轮的传动比LINK.Jm %返回电机惯性LINK.B %返回粘性摩擦LINK.Tc %返回库仑摩擦LINK.dh return legacy DH rowLINK.dyn return legacy DYN row其中robot函数的调用格式:ROBOT %创建一个空的机器人对象ROBOT(robot) %创建robot的一个副本ROBOT(robot, LINK) %用LINK来创建新机器人对象来代替robot ROBOT(LINK, ...) %用LINK来创建一个机器人对象ROBOT(DH, ...) %用D-H矩阵来创建一个机器人对象ROBOT(DYN, ...) %用DYN矩阵来创建一个机器人对象2.变换矩阵利用MATLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以实现用齐次变换矩阵表示平移变换和旋转变换。
matlab机器人工具箱函数使用Matlab机器人工具箱进行轨迹规划和控制Matlab机器人工具箱是一个常用的用于机器人建模、仿真、控制和运动规划的工具箱。
其中包含了众多函数,能够帮助用户快速完成机器人任务的规划和控制。
本文将介绍Matlab机器人工具箱的一些常用函数,包括轨迹规划、控制和运动学分析等方面。
1. 轨迹规划轨迹规划是机器人控制中的一个重要环节。
Matlab机器人工具箱中内置了许多轨迹规划函数,其中最常用的是trapezoidal和cubic spline函数。
Trapezoidal函数是一种基于梯形速度剖面的轨迹规划方法,能够保证机器人在规定的时间内从起始点到达终点,并且经过指定的路线。
使用该函数时需要指定起始点、终点、时间和最大速度等参数,例如:traj = trapveltraj(q0,qf,t,vmax,amax);其中,q0和qf是起始点和终点的位置,t是规定的时间,vmax和amax是机器人的最大速度和加速度。
Cubic spline函数是一种基于三次多项式的轨迹规划方法,能够实现平滑的轨迹规划。
该函数能够自动选择合适的多项式系数,以满足起始点、终点和速度等限制条件。
使用该函数时需要指定起始点、终点、时间和边界条件等参数,例如:[q,qd,qdd] = cubicpolytraj(q0,qf,t,qd0,qdf);其中,q0和qf是起始点和终点的位置,t是规定的时间,qd0和qdf是起始点和终点的速度。
2. 控制控制是机器人控制中的核心内容之一。
Matlab机器人工具箱中提供了许多控制函数,包括PID控制器、模型预测控制器和自适应控制器等。
PID控制器是一种基于比例、积分和微分三个控制分量的控制方法,能够实现快速响应和稳定性能。
使用该函数时需要指定比例、积分和微分系数,例如:Kp = 1; Ki = 0.1; Kd = 0.01;pidController = pid(Kp,Ki,Kd);Model Predictive Control(MPC)是一种基于模型的控制方法,能够预测机器人的未来状态,并基于预测结果进行控制。
MATLABRoboticsToolbox机械臂建模实战(1)——常⽤函数语法规则@⽬录常⽤函数语法Link——定义机器⼈关节% theta d a alpha sigmaL(1) = Link([ 0 0 10 0 0 ]);L(2) = Link([ 0 0 20 0 0 ]);前四个为机械臂的DH参数,sigma为0时表⽰转动关节,⾮0时表⽰移动关节Link中还可设置其他多个参数,详情参阅附件。
jtraj——计算关节空间的轨迹[Q,QD,QDD] = jtraj(Q0, QF, M, QD0, QDF)[Q,QD,QDD] = jtraj(Q0, QF, T, QD0, QDF)语法规则Q(M×N)是每个关节按照步长M或时间向量T从Q0变换到QF的位置Q、时间QD、和加速度QDD的值,⼀⾏表⽰每⼀步或每⼀个时间点,⼀列表⽰每⼀个关节。
五次(5次)多项式⽤于速度和加速度的默认零边界条件。
QD0和QDF表⽰每个关节的初始速度与末端速度,可省略。
举例例:两个关节,分别从0转动到90°和从45°转动到180°init = [0 pi/4];targ = [pi/2 pi];step = 200;[q,qd,qdd]=jtraj(init,targ,step);注:jtraj的计算与机械臂结构⽆关,仅计算⼀个关节的转动⾓度。
所以可以看到输⼊函数中没有与机械臂定义的量(如L(1))fkine——输出机器⼈末端的齐次变换矩阵ETS.fkine(Q, OPTIONS)ETS.fkine(Q, N, OPTIONS)语法规则ETS——初等变换序列类计算在某⼀⾓度Q(1×N)下机器⼈末端相对于⾸端的齐次变换矩阵OPTIONS,默认弧度制,需要⾓度制时,使⽤'deg'N,只处理转换序列的前N个元素举例% theta d a alpha sigmaL(1) = Link([ 0 0 10 0 0 ]);L(2) = Link([ 0 0 20 0 0 ]);% 正运动学解算,得到机器⼈末端的齐次变换矩阵T0=robot.fkine(init);Tf=robot.fkine(targ);ctraj——计算在每⼀步(step)变换时的末端相对于⾸端的齐次变换矩阵TC=ctraj(T0,T1,N)语法规则从T0到T1,⼀共经历N步(step),计算每⼀步的齐次变换矩阵举例% theta d a alpha sigmaL(1) = Link([ 0 0 10 0 0 ]);L(2) = Link([ 0 0 20 0 0 ]);% 正运动学解算,得到机器⼈末端的齐次变换矩阵T0=robot.fkine(init);TF=robot.fkine(targ);TC=ctraj(T0,TF,step);transl——将齐次变换矩阵转换为坐标值T = transl(P)语法规则P是ctraj变换得到的每⼀步末端的齐次变换矩阵,通过transl函数,T为每⼀步(step)变换时末端的xyz坐标值(在⾸端坐标系中的坐标值)。
RoboticToolbox⼊门使⽤⼀、配置环境matlab机器⼈⼯具箱是澳⼤利亚Peter Corke等完成的基于matlab的机器⼈建模、仿真等⼯具箱,极⼤简化了机器⼈学初学者的代码量,使学习者可以将注意⼒放在算法应⽤上⽽不是基础⽽繁琐的底层建模上。
.1. 下载安装包后(V9.10)解压到MATLAB-toolbox⽂件夹下2. 在MATLAB界⾯“设置路径”中添加解压后的⽂件夹3. 在命令⾏中运⾏“startup_rvc”安装⼯具箱4. 命令⾏输⼊“ver”检查⼯具箱“Robotics Toolbox ”是否安装成功(注意:不是Robotics System Toolbox!)⼆、基本操作与功能⼆维空间的位姿描述1. T=se2(x,y,theta);代表(x,y)的平移和theta⾓度的旋转2. trplot2(T);画出相对世界坐标系的旋转矩阵T3. T=transl2(x,y) ;⼆维空间中纯平移的齐次变换建⽴机器⼈类型1. Link类——搭建单个关节R=Link([theta,d,a,alpha])关节⾓、连杆偏距、连杆长度、连杆转⾓2. SerialLink类——将各个关节组合起来L=SerialLink(links,options)三、demo(以作业6为例)运动学——轨迹规划traj1=jtraj(theta0,theta1,t1);关节空间中的轨迹规划,给出时间、初始关节⾓和末端关节⾓即可得到机械臂运动轨迹画出机械臂末端轨迹:JTA1=transl(Robot.fkine(traj1));plot2(JTA1,'b');hold on;动⼒学——控制算法1. R.rne(q,qd,qdd) 根据⾓度、⾓速度、⾓加速度得到⼒/⼒矩2. R.rne(q,qd,qdd,grav,fext) grav 重⼒加速度,fext 末端⼒和⼒矩动⼒学⽅程M(q)——关节空间的惯性矩阵V(q,qd)——科⽒⼒和向⼼⼒的耦合矩阵g(q)——重⼒载荷1. Robot.gravload([1 2 3 ...] )计算重⼒载荷参数为位置2. Robot.inertia([1 2 3 ...] )关节空间惯性矩阵参数为位置3. Robot.coriolis(q,qd) %给定位置和速度4. Robot.payload( ) 施加有效载荷Simulink 部分命令⾏中输⼊roblocks 打开功能模块命令⾏中调出模型,且simulink中模块名字与机器⼈相同1. P.I.Corke,Robotics,Vision&Control:FundamentalAlgorithmsinMATLAB.Secondedition.Springer,2017.ISBN978-3-319-54413-7.。
Matlab Robotic Toolbox工具箱学习笔记(一)软件:matlab2013a工具箱:Matlab Robotic Toolbox v9.8Matlab Robotic Toolbox工具箱学习笔记根据Robot Toolbox demonstrations目录,将分三大部分阐述:1、General(Rotations,Transformations,Trajectory)2、Arm(Robot,Animation,Forwarw kinematics,Inversekinematics,Jacobians,Inverse dynamics,Forward dynamics,Symbolic,Code generation)3、Mobile(Driving to apose,Quadrotor,Braitenberg,Bug,D*,PRM,SLAM,Particle filter) General/Rotations%绕x轴旋转pi/2得到的旋转矩阵(1)r = rotx(pi/2);%matlab默认的角度单位为弧度,这里可以用度数作为单位(2)R = rotx(30, 'deg') * roty(50, 'deg') * rotz(10, 'deg');%求出R等效的任意旋转变换的旋转轴矢量vec和转角theta(3)[theta,vec] = tr2angvec(R);%旋转矩阵用欧拉角表示,R = rotz(a)*roty(b)*rotz(c)(4)eul = tr2eul(R);%旋转矩阵用roll-pitch-yaw角表示,R = rotx(r)*roty(p)*rotz(y) (5)rpy = tr2rpy(R);%旋转矩阵用四元数表示(6)q = Quaternion(R);%将四元数转化为旋转矩阵(7)q.R;%界面,可以是“rpy”,“eluer”角度单位为度。
(8)tripleangle('rpy');General/Transformations%沿x轴平移0.5,绕y轴旋转pi/2,绕z轴旋转-pi/2(1)t = transl(0.5, 0.0, 0.0) * troty(pi/2) * trotz(-pi/2) %将齐次变换矩阵转化为欧拉角(2)tr2eul(t)%将齐次变换矩阵转化为roll、pitch、yaw角(3)tr2rpy(t)General/Trajectoryclear;clc;p0 = -1;% 定义初始点及终点位置p1 = 2;p = tpoly(p0, p1, 50);% 取步长为50figure(1);plot(p);%绘图,可以看到在初始点及终点的一、二阶导均为零[p,pd,pdd] = tpoly(p0, p1, 50);%得到位置、速度、加速度%p为五阶多项式,速度、加速度均在一定范围内figure(2);subplot(3,1,1); plot(p); xlabel('Time'); ylabel('p');subplot(3,1,2); plot(pd); xlabel('Time'); ylabel('pd');subplot(3,1,3); plot(pdd); xlabel('Time'); ylabel('pdd');%另外一种方法:[p,pd,pdd] = lspb(p0, p1, 50);figure(3);subplot(3,1,1); plot(p); xlabel('Time'); ylabel('p');subplot(3,1,2); plot(pd); xlabel('Time'); ylabel('pd');% 可以看到速度是呈梯形subplot(3,1,3); plot(pdd); xlabel('Time'); ylabel('pdd');%三维的情况:p = mtraj(@tpoly, [0 1 2], [2 1 0], 50); figure(4);plot(p)%对于齐次变换矩阵的情况T0 = transl(0.4, 0.2, 0) * trotx(pi);% 定义初始点和目标点的位姿T1 = transl(-0.4, -0.2, 0.3) * troty(pi/2) * trotz(-pi/2);T = ctraj(T0, T1, 50);first=T(:,:,1);%初始位姿矩阵tenth=T(:,:,10);%第十个位姿矩阵figure(5);tranimate(T);%动画演示坐标系自初始点运动到目标点的过程Matlab Robotic Toolbox工具箱学习笔记(二)Arm/Robots机器人是由多个连杆连接而成的,机器人关节分为旋转关节和移动关节。
创建机器人的两个最重要的函数是:Link和SerialLink。
1、Link类一个Link包含了机器人的运动学参数、动力学参数、刚体惯性矩参数、电机和传动参数。
操作函数:%A 连杆变换矩阵% RP 关节类型: 'R' 或'P'% friction 摩擦力% nofriction 摩擦力忽略% dyn 显示动力学参数% islimit 测试关节是否超出软限制% isrevolute 测试是否为旋转关节% isprismatic 测试是否为移动关节% display 连杆参数以表格形式显示% char 转为字符串运动学参数:% theta 关节角度% d 连杆偏移量% a 连杆长度% alpha 连杆扭角% sigma 旋转关节为0,移动关节为1% mdh 标准的D&H为0,否则为1% offset 关节变量偏移量% qlim 关节变量范围[min max]动力学参数:% m 连杆质量% r 连杆相对于坐标系的质心位置3x1% I 连杆的惯性矩阵(关于连杆重心)3x3% B 粘性摩擦力(对于电机)1x1或2x1% Tc 库仑摩擦力1x1或2x1电机和传动参数:% G 齿轮传动比% Jm 电机惯性矩(对于电机)2、SerialLink类操作函数:% plot 以图形形式显示机器人% teach 驱动机器人% isspherical 测试机器人是否有球腕关节% islimit 测试机器人是否抵达关节极限% fkine 前向运动学求解% ikine6s 6旋转轴球腕关节机器人的逆向运动学求解% ikine3 3旋转轴机器人的逆向运动学求解% ikine 采用迭代方法的逆向运动学求解% jacob0 在世界坐标系描述的雅克比矩阵% jacobn 在工具坐标系描述的雅克比矩阵% maniplty 可操纵性度% jtraj 关节空间轨迹% accel 关节加速度% coriolis 关节柯氏力% dyn 显示连杆的动力学属性% fdyn 关节运动% friction 摩擦力% gravload 关节重力% inertia 关节惯性矩阵% nofriction 设置摩擦力为0% rne 关节的力/力矩% payload 在末端坐标系增加负载% perturb 随机扰动连杆的动力学参数属性:% links 连杆向量(1xN)% gravity 重力的方向[gx gy gz]% base 机器人基座的位姿(4x4)% tool 机器人的工具变换矩阵[ T6 to tool tip] (4x4)% qlim 关节范围[qmin qmax] (Nx2)% offset 偏置(Nx1)% name 机器人名字(在图形中显示)% manuf 注释, 制造商名% comment 注释, 总评% plotopt options for plot() method (cell array)% n 关节数% config 机器人结构字符串, 例如'RRRRRR'% mdh 运动学中约定的布尔数(0=DH, 1=MDH)怎样创建一个机器人?%Link调用格式:%{(1)L = Link() 创建一个带默认参数的连杆(2)L = Link(L1)复制连杆L1(3)L = Link(OPTIONS) 创建一个指定运动学、动力学参数的连杆OPTIONS可以是:% 'theta',TH joint angle, if not specified joint is revolute% 'd',D joint extension, if not specified joint is prismatic% 'a',A joint offset (default 0)% 'alpha',A joint twist (default 0)% 'standard' defined using standard D&H parameters (default).% 'modified' defined using modified D&H parameters.% 'offset',O joint variable offset (default 0)% 'qlim',L joint limit (default [])% 'I',I link inertia matrix (3x1, 6x1 or 3x3)% 'r',R link centre of gravity (3x1)% 'm',M link mass (1x1)% 'G',G motor gear ratio (default 0)% 'B',B joint friction, motor referenced (default 0)% 'Jm',J motor inertia, motor referenced (default 0)% 'Tc',T Coulomb friction, motor referenced (1x1 or 2x1), (default [0 0])% 'revolute' for a revolute joint (default)% 'prismatic' for a prismatic joint 'p'% 'standard' for standard D&H parameters (default).% 'modified' for modified D&H parameters.% 'sym' consider all parameter values as symbolic not numeric注:不能同时指定“theta”和“d”连杆的惯性矩阵(3x3)是对称矩阵,可以写成3x3矩阵,也可以是[Ixx Iyy Izz Ixy Iyz Ixz]所有摩擦均针对电机而不是负载齿轮传动比只用于传递电机的摩擦力和惯性矩给连杆坐标系。