MTALAB机器人工具箱

合集下载

Matlab-Robotic-Toolbox工具箱学习笔记

Matlab-Robotic-Toolbox工具箱学习笔记

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”角度单位为度。

MATLAB机器学习工具箱的使用方法

MATLAB机器学习工具箱的使用方法

MATLAB机器学习工具箱的使用方法1. 引言在现代科技发展的背景下,机器学习在各个领域中的应用越来越广泛。

而MATLAB作为一款功能强大的数学软件,其机器学习工具箱为用户提供了丰富的算法和工具,方便快捷地进行机器学习任务。

本文将详细介绍MATLAB机器学习工具箱的使用方法,帮助读者更好地利用这个工具箱进行数据分析、模型训练和结果评估等任务。

2. 数据预处理在进行机器学习任务之前,首先需要对数据进行预处理。

MATLAB机器学习工具箱提供了多种数据预处理的方法和函数,如数据清洗、特征选择、数据变换等。

可以使用`preprocess`函数对数据进行缺失值处理,使用`featureselect`函数进行特征选择,或者使用`datapreprocessing`函数进行数据变换。

通过这些预处理的方法,可以使得数据更好地适用于后续的机器学习算法。

3. 特征工程特征工程是机器学习中一个重要的环节,它的目的是将原始数据转换为能够更好地反映问题特点的特征。

MATLAB机器学习工具箱提供了丰富的特征工程方法和函数,如特征提取、特征转换和特征选择等。

可以使用`featureextract`函数对原始数据进行特征提取,使用`featuretransform`函数进行特征转换,或者使用`featureselect`函数进行特征选择。

这些方法和函数的灵活使用可以帮助用户更好地理解数据并选择合适的特征。

4. 模型选择与训练在进行机器学习任务的过程中,选择适合问题的机器学习模型是非常重要的。

MATLAB机器学习工具箱提供了多种常见的机器学习模型,如线性回归、决策树、支持向量机等。

可以使用`fitmodel`函数来选择和训练机器学习模型。

用户可以根据具体的问题需求选择合适的模型,并通过调整模型参数来优化模型性能。

5. 模型评估与调优在完成模型的训练之后,需要对模型的性能进行评估和调优。

MATLAB机器学习工具箱提供了多种模型评估的方法和函数,如交叉验证、ROC曲线分析、精确度和召回率等。

(学习笔记)matlab机器人工具箱攻略

(学习笔记)matlab机器人工具箱攻略

(学习笔记)matlab机器人工具箱攻略一.旋转矩阵:(1)基本R = rotx(pi/2)R = roty(pi/2)R = rotz(pi/2)分别对X Y Z轴生成3*3的旋转矩阵R = rotx(30, 'deg')R = roty(30, 'deg')R = rotz(30, 'deg')可以改变输入的方式(2)姿态的叙述方法:1.Y-Z-Y欧拉角R = rotz(a)*roty(b)*rotz(c)eul2r(a,b,c)旋转矩阵反解出y-z-y欧拉角度的函数为tr2eul(R)2.x-y-z欧拉角R = rotx(r)*roty(p)*rotz(y)rpy2r(r,p,y)旋转矩阵反解出x-y-z欧拉角度的函数为tr2rpy(R)3.等效轴角坐标表示法把坐标系b看做原坐标a按向量V方向按右手方向旋转theta度旋转矩阵反解出等效轴角坐标表示的函数为[theta,V] = tr2angvec(R)由等效轴角坐标表示转换为旋转矩阵的函数R = angvec2r(theta, V)(记得把v做单位化的处理v = v / norm(v))4.欧拉参数法表示(4元数)在等效轴角坐标表示法的基础上更进一步E1=Kx*sin(θ/2);E2=Ky*sin(θ/2);E3=Kz*sin (θ/2);E4=cos(θ/2);求解4元数的函数为Quaternion(R)二.齐次变换矩阵4*4矩阵用于描述坐标系的位置和姿态1.平移算子transl(x, y, z)2.旋转算子trotx(pi/2);troty(pi/2);trotz(pi/2)3.各种表示下齐次矩阵的求解rpy2tr(roll, pitch, yaw, options) 求解x-y-z欧拉角变化对应的齐次矩阵 options:’deg’或不填angvec2tr(theta, V)求解等效轴角坐标表示的齐次矩阵eul2tr(phi, theta, psi, options)反解出Y-Z-Y欧拉角 options:’deg’或不填同样可以用tr2eul(t)反解出Y-Z-Y欧拉角tr2rpy(t)反解出x-y-z欧拉角[theta,vec] = tr2angvec(R);反解等效轴角坐标表示Quaternion(R) 反解4元数表示4.求出姿态的相关表示trprint(T, OPTIONS)可以表示出齐次矩阵的参数Options为:(1)'rpy' ; 'euler' ;'angvec' ;改变转换的方式为rpy,欧拉角,等效轴角坐标(2)'radian' ;改变显示的方式,和‘deg’功能相对。

MATLAB机器人仿真程序

MATLAB机器人仿真程序

附录MATLAB 机器人工具箱仿真程序:1)运动学仿真模型程序(Rob1.m)L1=link([pi/2 150 0 0])L2=link([0 570 0 0])L3=link([pi/2 130 0 0])L4=link([-pi/2 0 0 640])L5=link([pi/2 0 0 0])L6=link([0 0 0 95])r=robot({L1 L2 L3 L4 L5 L6})=’MOTOMAN-UP6’ % 模型的名称>>drivebot(r)2)正运动学仿真程序(Rob2.m)L1=link([pi/2 150 0 0])L2=link([0 570 0 0])L3=link([pi/2 130 0 0])L4=link([-pi/2 0 0 640])L5=link([pi/2 0 0 0])L6=link([0 0 0 95])r=robot({L1 L2 L3 L4 L5 L6})=’MOTOMAN-UP6’t=[0:0.01:10];%产生时间向量qA=[0 0 0 0 0 0 ]; %机械手初始关节角度qAB=[-pi/2 -pi/3 0 pi/6 pi/3 pi/2 ];%机械手终止关节角度figure('Name','up6机器人正运动学仿真演示');%给仿真图像命名q=jtraj(qA,qAB,t);%生成关节运动轨迹T=fkine(r,q);%正向运动学仿真函数plot(r,q);%生成机器人的运动figure('Name','up6机器人末端位移图')subplot(3,1,1);plot(t, squeeze(T(1,4,:)));xlabel('Time (s)');ylabel('X (m)');subplot(3,1,2);plot(t, squeeze(T(2,4,:)));xlabel('Time (s)');ylabel('Y (m)');subplot(3,1,3);plot(t, squeeze(T(3,4,:)));xlabel('Time (s)');ylabel('Z (m)');x=squeeze(T(1,4,:));y=squeeze(T(2,4,:));z=squeeze(T(3,4,:));figure('Name','up6机器人末端轨迹图'); plot3(x,y,z);3)机器人各关节转动角度仿真程序:(Rob3.m)L1=link([pi/2 150 0 0 ])L2=link([0 570 0 0])L3=link([pi/2 130 0 0])L4=link([-pi/2 0 0 640])L5=link([pi/2 0 0 0 ])L6=link([0 0 0 95])r=robot({L1 L2 L3 L4 L5 L6})='motoman-up6't=[0:0.01:10];qA=[0 0 0 0 0 0 ];qAB=[ pi/6 pi/6 pi/6 pi/6 pi/6 pi/6]; q=jtraj(qA,qAB,t);Plot(r,q);subplot(6,1,1);plot(t,q(:,1));title('转动关节1');xlabel('时间/s');ylabel('角度/rad');subplot(6,1,2);plot(t,q(:,2));title('转动关节2');xlabel('时间/s');ylabel('角度/rad');subplot(6,1,3);plot(t,q(:,3));title('转动关节3');xlabel('时间/s');ylabel('角度/rad');subplot(6,1,4);plot(t,q(:,4));title('转动关节4');xlabel('时间/s');ylabel('角度/rad' );subplot(6,1,5);plot(t,q(:,5));title('转动关节5');xlabel('时间/s');ylabel('角度/rad');subplot(6,1,6);plot(t,q(:,6));title('转动关节6');xlabel('时间/s');ylabel('角度/rad');4)机器人各关节转动角速度仿真程序:(Rob4.m)t=[0:0.01:10];qA=[0 0 0 0 0 0 ];%机械手初始关节量qAB=[ 1.5709 -0.8902 -0.0481 -0.5178 1.0645 -1.0201]; [q,qd,qdd]=jtraj(qA,qAB,t);Plot(r,q);subplot(6,1,1);plot(t,qd(:,1));title('转动关节1');xlabel('时间/s');ylabel('rad/s');subplot(6,1,2);plot(t,qd(:,2));title('转动关节2');xlabel('时间/s');ylabel('rad/s');subplot(6,1,3);plot(t,qd(:,3));title('转动关节3');xlabel('时间/s');ylabel('rad/s');subplot(6,1,4);plot(t,qd(:,4));title('转动关节4');xlabel('时间/s');ylabel('rad/s' );subplot(6,1,5);plot(t,qd(:,5));title('转动关节5');xlabel('时间/s');ylabel('rad/s');subplot(6,1,6);plot(t,qd(:,6));title('转动关节6');xlabel('时间/s');ylabel('rad/s');5)机器人各关节转动角加速度仿真程序:(Rob5.m)t=[0:0.01:10];%产生时间向量qA=[0 0 0 0 0 0]qAB =[1.5709 -0.8902 -0.0481 -0.5178 1.0645 -1.0201]; [q,qd,qdd]=jtraj(qA,qAB,t);figure('name','up6机器人机械手各关节加速度曲线');subplot(6,1,1);plot(t,qdd(:,1));title('关节1');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)');subplot(6,1,2);plot(t,qdd(:,2));title('关节2');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)');subplot(6,1,3);plot(t,qdd(:,3));title('关节3');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)')subplot(6,1,4);plot(t,qdd(:,4));title('关节4');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)')subplot(6,1,5);plot(t,qdd(:,5));title('关节5');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)')subplot(6,1,6);plot(t,qdd(:,6));title('关节6');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)')如有侵权请联系告知删除,感谢你们的配合!。

matlab中simmechanics的用法

matlab中simmechanics的用法

matlab中simmechanics的用法【原创实用版】目录1.介绍 Matlab 中的 SimMechanics 工具箱2.SimMechanics 的基本用法3.SimMechanics 在机械臂建模与仿真中的应用4.如何深入学习 SimMechanics正文一、介绍 Matlab 中的 SimMechanics 工具箱Matlab 是一款广泛应用于科学计算和工程设计的软件,其内置的SimMechanics 工具箱为机械系统的建模和仿真提供了强大的功能。

SimMechanics 工具箱涵盖了机械系统的各个方面,包括运动学、动力学、控制等,可以帮助用户快速搭建机械系统的模型并进行仿真。

二、SimMechanics 的基本用法对于初学者和小白,可以先从 SimMechanics 的基本用法入手。

SimMechanics 提供了一系列的函数和命令,用于创建和操作机械系统的各个部分。

以下是一些基本用法:1.创建机械系统模型:使用 SimMechanics 中的函数创建机械系统的各个部件,如关节、连杆、电机等。

2.添加约束和力:为机械系统添加约束和力,以便进行动力学分析和控制。

3.求解逆运动学:使用 SimMechanics 中的逆运动学函数求解机械系统的末端执行器的位置和姿态。

4.进行仿真:使用 SimMechanics 中的仿真函数对机械系统进行仿真,以验证其运动性能和响应特性。

三、SimMechanics 在机械臂建模与仿真中的应用SimMechanics 在机械臂建模与仿真中的应用非常广泛。

例如,可以使用 SimMechanics 工具箱对 Adept 机器人进行建模仿真。

首先,需要对机器人的正运动学、逆运动学以及轨迹规划、关节控制等内容有所了解。

然后,可以使用 SimMechanics 中的函数和命令搭建机器人的模型,并进行动力学仿真。

四、如何深入学习 SimMechanics对于想要深入学习 SimMechanics 的用户,可以通过以下途径:1.查阅 Matlab 官方文档:Matlab 官方文档中包含了 SimMechanics 的详细说明和示例,可以帮助用户深入了解 SimMechanics 的各个功能和用法。

基于MATLAB Robotics Toolbox的机器人学仿真实验教学

基于MATLAB Robotics Toolbox的机器人学仿真实验教学

基于MATLAB Robotics Toolbox的机器人学仿真实验教学摘要:简要介绍MATLAB Robotics Toolbox在机器人学仿真实验教学中的基本应用,具体内容包括齐次坐标变换、机器人对象构建、机器人运动学求解以及轨迹规划等。

该工具箱可以对机器人进行图形仿真,并能分析真实机器人控制时的实验数据结果,因此非常适宜于机器人学的教学和研究。

关键词:机器人学;仿真实验教学;MATLAB;Robotics Toolbox机器人学是一门高度交叉的前沿学科方向,也是自动化和机电工程等相关专业的一门重要专业基础课。

在机器人学的教学和培训中,实验内容一直是授课的重点和难点。

实物机器人通常是比较昂贵的设备,这就决定了在实验教学中不可能运用许多实际的机器人来作为教学和培训的试验设备。

由于操作不方便、体积庞大等原因,往往也限制了实物机器人在课堂授课时的应用。

此外,由于计算量、空间结构等问题,当前大多数机器人教材只能以简单的两连杆机械手为例进行讲解,而对于更加实际的6连杆机械手通常无法讲解得很清楚。

因此,各式各样的机器人仿真系统应运而生。

经过反复的比较,我们选择了MATLAB Robotics Toolbox [1]来进行机器人学的仿真实验教学。

MATLAB Robotics Toolbox是由澳大利亚科学家Peter Corke开发和维护的一套基于MATLAB的机器人学工具箱,当前最新版本为第8版,可在该工具箱的主页上免费下载(/robot/)。

Robotics Toolbox提供了机器人学研究中的许多重要功能函数,包括机器人运动学、动力学、轨迹规划等。

该工具箱可以对机器人进行图形仿真,并能分析真实机器人控制时的实验数据结果,因此非常适宜于机器人学的教学和研究。

本文简要介绍了Robotics Toolbox在机器人学仿真实验教学中的一些应用,具体内容包括齐次坐标变换、机器人对象构建、机器人运动学求解以及轨迹规划等。

MATLAB的机器学习工具箱使用教程

MATLAB的机器学习工具箱使用教程

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);```数据平衡是指通过增加或减少样本数量,使得不同类别的样本数量相等,以避免模型对某些类别的偏见。

matlab 机器人工具箱 动力学参数

matlab 机器人工具箱 动力学参数

matlab 机器人工具箱动力学参数作为一款广泛应用于机器人控制领域的软件,MATLAB提供了许多有用的工具,包括机器人工具箱。

该工具箱是MATLAB和Simulink中用于机器人建模和控制的一系列函数和工具的集合。

在机器人的实时运动控制中,了解并正确设置机器人动力学参数非常重要。

因此,本文将用以下步骤来阐述如何设置机器人的动力学参数。

第一步:下载并安装机器人工具箱在MATLAB中,我们可以使用 add-on 栏或从MathWorks网站上下载机器人工具箱。

可从MATLAB的添加功能工具箱中直接下载或导航到网站中下载。

将下载的工具箱安装到MATLAB中后,可以开始了解和使用其中的函数。

第二步:选择合适的机器人模型机器人工具箱提供了许多现有的机器人模型,包括SCARA(选择性遵从装配机器人臂)、PUMA(程序升级管理局,一个六自由度连杆机器人)和Stäubli TX90(六自由度机器人)。

对于不同的机器人,动力学参数也是不同的。

因此我们需要先选择正确的机器人模型。

第三步:了解机器人动力学参数了解机器人的动力学参数对于实时控制机器人至关重要。

动力学参数通常包括连接杆长度、质量、惯性和摩擦力。

这些参数都影响机器人的实时运动,通过具体的物理计算,可以计算机器人的实际运动结果。

第四步:设置机器人的动力学参数机器人工具箱中提供了函数用于设置机器人模型的动力学参数。

例如,在设置机器人模型的惯性张量时,可以使用`inertia(m,I,c)’ 函数。

其中,m 是质量,I 是惯性张量矩阵,c 是惯性张量相对于机器人惯性坐标系的中心。

第五步:测试机器人模型设置完机器人模型的动力学参数后,我们需要对其进行测试以确认参数设置是否正确。

可以使用机器人工具箱中的模拟功能模拟机器人的运动或使用机器人模型进行真实操作,如搬运或拧紧物体。

总结:正确设置机器人模型的动力学参数是机器人实时控制的重要部分。

机器人工具箱中提供了许多有用的函数和工具帮助我们完成这一任务。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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,否则返回1
LINK.offset %返回关节变量偏移
LINK.qlim %返回关节变量的上下限[min max]
LINK.islimit(q) %如果关节变量超限,返回-1, 0, +1
LINK.I %返回一个3×3 对称惯性矩阵
LINK.m %返回关节质量
LINK.r %返回3×1的关节齿轮向量
LINK.G %返回齿轮的传动比
LINK.Jm %返回电机惯性
LINK.B %返回粘性摩擦
LINK.Tc %返回库仑摩擦
LINK.dh return legacy DH row
LINK.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.变换矩阵
利用MA TLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以实现用齐次变换矩阵表示平移变换和旋转变换。

下面举例来说明:
A 机器人在x轴方向平移了0.5米,那么我们可以用下面的方法来求取平移变换后的齐次矩阵:
>> transl(0.5,0,0)
ans =
1.0000 0 0 0.5000
0 1.0000 0 0
0 0 1.0000 0
0 0 0 1.0000
B 机器人绕x轴旋转45度,那么可以用rotx来求取旋转后的齐次矩阵:
>> rotx(pi/4)
ans =
1.0000 0 0 0
0 0.7071 -0.7071 0
0 0.7071 0.7071 0
0 0 0 1.0000
C 机器人绕y轴旋转90度,那么可以用roty来求取旋转后的齐次矩阵:
>> roty(pi/2)
ans =
0.0000 0 1.0000 0
0 1.0000 0 0
-1.0000 0 0.0000 0
0 0 0 1.0000
D 机器人绕z轴旋转-90度,那么可以用rotz来求取旋转后的齐次矩阵:
>> rotz(-pi/2)
ans =
0.0000 1.0000 0 0
-1.0000 0.0000 0 0
0 0 1.0000 0
0 0 0 1.0000
当然,如果有多次旋转和平移变换,我们只需要多次调用函数在组合就可以了。

另外,可以和我们学习的平移矩阵和旋转矩阵做个对比,相信是一致的。

3 轨迹规划
利用Robotics Toolbox提供的ctraj、jtraj和trinterp函数可以实现笛卡尔规划、关节空间规划和变换插值。

其中ctraj函数的调用格式:
TC = CTRAJ(T0, T1, N)
TC = CTRAJ(T0, T1, R)
参数TC为从T0到T1的笛卡尔规划轨迹,N为点的数量,R为给定路径距离向量,R的每个值必须在0到1之间。

其中jtraj函数的调用格式:
[Q QD QDD] = JTRAJ(Q0, Q1, N)
[Q QD QDD] = JTRAJ(Q0, Q1, N, QD0, QD1)
[Q QD QDD] = JTRAJ(Q0, Q1, T)
[Q QD QDD] = JTRAJ(Q0, Q1, T, QD0, QD1)
参数Q为从状态Q0到Q1的关节空间规划轨迹,N为规划的点数,T为给定的时间向量的长度,速度非零边界可以用QD0和QD1来指定。

QD和QDD为返回的规划轨迹的速度和加速度。

其中trinterp函数的调用格式:
TR = TRINTERP(T0, T1, R)
参数TR为在T0和T1之间的坐标变化插值,R需在0和1之间。

要实现轨迹规划,首先我们要创建一个时间向量,假设在两秒内完成某个动作,采样间隔是56ms,那么可以用如下的命令来实现多项式轨迹规划:t=0:0.056:2; [q,qd,qdd]=jtraj(qz,qr,t); 其中t为时间向量,qz为机器人的初始位姿,qr为机器人的最终位姿,q为经过的路径点,qd为运动的速度,qdd为运动的加速度。

其中q、qd、qdd都是六列的矩阵,每列代表每个关节的位置、速度和加速度。

如q(:,3)代表关节3的位置,qd(:,3)代表关节3的速度,qdd(:,3)代表关节3的加速度。

4 运动学的正问题
利用Robotics Toolbox中的fkine函数可以实现机器人运动学正问题的求解。

其中fkine函数的调用格式:
TR = FKINE(ROBOT, Q)
参数ROBOT为一个机器人对象,TR为由Q定义的每个前向运动学的正解。

以PUMA560为例,定义关节坐标系的零点qz=[0 0 0 0 0 0],那么fkine(p560,qz)将返回最后一个关节的平移的齐次变换矩阵。

如果有了关节的轨迹规划之后,我们也可以用fkine来进行运动学的正解。

比如:
t=0:0.056:2; q=jtraj(qz,qr,t); T=fkine(p560,q);
返回的矩阵T是一个三维的矩阵,前两维是4×4的矩阵代表坐标变化,第三维是时间。

5 运动学的逆问题
利用Robotics Toolbox中的ikine函数可以实现机器人运动学逆问题的求解。

其中ikine函数的调用格式:
Q = IKINE(ROBOT, T)
Q = IKINE(ROBOT, T, Q)
Q = IKINE(ROBOT, T, Q, M)
参数ROBOT为一个机器人对象,Q为初始猜测点(默认为0),T为要反解的变换矩阵。

当反解的机器人对象的自由度少于6时,要用M进行忽略某个关节自由度。

有了关节的轨迹规划之后,我们也可以用ikine函数来进行运动学逆问题的求解。

比如:
t=0:0.056:2; T1=transl(0.6,-0.5,0); T2=transl(0.4,0.5,0.2); T=ctraj(T1,T2,length(t)); q=ikine(p560,T);
我们也可以尝试先进行正解,再进行逆解,看看能否还原。

Q=[0 –pi/4 –pi/4 0 pi/8 0]; T=fkine(p560,q); qi=ikine(p560,T);
6 动画演示
有了机器人的轨迹规划之后,我们就可以利用Robotics Toolbox中的plot函数来实现对规划
路径的仿真。

puma560;T=0:0.056:2; q=jtraj(qz,qr,T); plot(p560,q);
当然,我们也可以来调节PUMA560的六个旋转角,来实现动画演示。

drivebot(p560)。

相关文档
最新文档