Matlab Robotic Toolbox工具箱学习笔记28102Word文档下载推荐.docx

上传人:b****5 文档编号:20941281 上传时间:2023-01-26 格式:DOCX 页数:13 大小:365.03KB
下载 相关 举报
Matlab Robotic Toolbox工具箱学习笔记28102Word文档下载推荐.docx_第1页
第1页 / 共13页
Matlab Robotic Toolbox工具箱学习笔记28102Word文档下载推荐.docx_第2页
第2页 / 共13页
Matlab Robotic Toolbox工具箱学习笔记28102Word文档下载推荐.docx_第3页
第3页 / 共13页
Matlab Robotic Toolbox工具箱学习笔记28102Word文档下载推荐.docx_第4页
第4页 / 共13页
Matlab Robotic Toolbox工具箱学习笔记28102Word文档下载推荐.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Matlab Robotic Toolbox工具箱学习笔记28102Word文档下载推荐.docx

《Matlab Robotic Toolbox工具箱学习笔记28102Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Matlab Robotic Toolbox工具箱学习笔记28102Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。

Matlab Robotic Toolbox工具箱学习笔记28102Word文档下载推荐.docx

clear;

clc;

p0=-1;

%定义初始点及终点位置

p1=2;

p=tpoly(p0,p1,50);

%取步长为50

figure

(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);

pd'

subplot(3,1,3);

plot(pdd);

pdd'

%另外一种方法:

[p,pd,pdd]=lspb(p0,p1,50);

figure(3);

%可以看到速度是呈梯形

%三维的情况:

p=mtraj(@tpoly,[012],[210],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);

%动画演示坐标系自初始点运动到目标点的过程

MatlabRoboticToolbox工具箱学习笔记

(二)

Arm/Robots

机器人是由多个连杆连接而成的,机器人关节分为旋转关节和移动关节。

创建机器人的两个最重要的函数是:

Link和SerialLink。

1、Link类

一个Link包含了机器人的运动学参数、动力学参数、刚体惯性矩参数、电机和传动参数。

操作函数:

%A 

连杆变换矩阵

RP 

关节类型:

'

R'

或'

P'

friction 

摩擦力

nofriction 

摩擦力忽略

dyn 

显示动力学参数

islimit 

测试关节是否超出软限制

isrevolute 

测试是否为旋转关节

isprismatic 

测试是否为移动关节

display 

连杆参数以表格形式显示

char 

转为字符串

运动学参数:

theta 

关节角度

连杆偏移量

连杆长度

alpha 

连杆扭角

sigma 

旋转关节为0,移动关节为1

mdh 

标准的D&

H为0,否则为1

offset 

关节变量偏移量

qlim 

关节变量范围[minmax]

动力学参数:

连杆质量

连杆相对于坐标系的质心位置3x1

连杆的惯性矩阵(关于连杆重心)3x3

粘性摩擦力(对于电机)1x1或2x1

Tc 

库仑摩擦力1x1或2x1

电机和传动参数:

齿轮传动比

Jm 

电机惯性矩(对于电机)

2、SerialLink类

plot 

以图形形式显示机器人

teach 

驱动机器人

isspherical 

测试机器人是否有球腕关节

测试机器人是否抵达关节极限

fkine 

前向运动学求解

ikine6s 

6旋转轴球腕关节机器人的逆向运动学求解

ikine3 

3旋转轴机器人的逆向运动学求解

ikine 

采用迭代方法的逆向运动学求解

jacob0 

在世界坐标系描述的雅克比矩阵

jacobn 

在工具坐标系描述的雅克比矩阵

maniplty 

可操纵性度

jtraj 

关节空间轨迹

accel 

关节加速度

coriolis 

关节柯氏力

显示连杆的动力学属性

fdyn 

关节运动

gravload 

关节重力

inertia 

关节惯性矩阵

设置摩擦力为0

rne 

关节的力/力矩

payload 

在末端坐标系增加负载

perturb 

随机扰动连杆的动力学参数

属性:

links 

连杆向量(1xN)

gravity 

重力的方向[gxgygz]

base 

机器人基座的位姿(4x4)

tool 

机器人的工具变换矩阵[T6totooltip](4x4)

关节范围[qminqmax](Nx2)

偏置(Nx1)

name 

机器人名字(在图形中显示)

manuf 

注释,制造商名

comment 

注释,总评

plotopt 

optionsforplot()method(cellarray)

关节数

config 

机器人结构字符串, 

例如'

RRRRRR'

运动学中约定的布尔数(0=DH,1=MDH)

怎样创建一个机器人?

%Link调用格式:

%{

(1)L=Link()创建一个带默认参数的连杆

(2)L=Link(L1)复制连杆L1

(3)L=Link(OPTIONS)创建一个指定运动学、动力学参数的连杆

OPTIONS可以是:

%'

theta'

TH 

jointangle,ifnotspecifiedjointisrevolute

d'

jointextension,ifnotspecifiedjointisprismatic

a'

jointoffset(default0)

alpha'

jointtwist(default0)

standard'

definedusingstandardD&

Hparameters(default).

modified'

definedusingmodifiedD&

Hparameters.

offset'

jointvariableoffset(default0)

qlim'

jointlimit(default[])

I'

linkinertiamatrix(3x1,6x1or3x3)

r'

linkcentreofgravity(3x1)

m'

linkmass(1x1)

G'

motorgearratio(default0)

B'

jointfriction,motorreferenced(default0)

Jm'

motorinertia,motorreferenced(default0)

Tc'

Coulombfriction,motorreferenced(1x1or2x1),(default[00])

revolute'

forarevolutejoint(default)

prismatic'

foraprismaticjoint'

forstandardD&

formodifiedD&

sym'

considerallparametervaluesassymbolicnotnumeric

注:

不能同时指定“theta”和“d”

连杆的惯性矩阵(3x3)是对称矩阵,可以写成3x3矩阵,也可以是[IxxIyyIzzIxyIyzIxz]

所有摩擦均针对电机而不是负载

齿轮传动比只用于传递电机的摩擦力和惯性矩给连杆坐标系。

%}

%SerialLink调用格式:

%{ 

(1)R=SerialLink(LINKS,OPTIONS),OPTIONS可以是:

'

name'

、'

comment'

manufacturer'

base'

tool'

gravity'

plotopt'

(2)R=SerialLink(DH,OPTIONS),矩阵DH的构成:

每个关节一行,每一行为[thetadaalpha]

(默认为旋转关节),第五列(sigma)为可选列,sigma=0(默认)为旋转关节,sigma=1为移动关节

(3)R=SerialLink(OPTIONS)没有连杆的机器人

(4)R=SerialLink([R1R2...],OPTIONS)机器人连接,将R2的基座连接到R1的末端.

(5)R=SerialLink(R1,options)复制机器人R1

L1=Link('

0,'

1,'

pi/2);

%定义连杆1,没有写theta说明theta为关节变量

L1.a;

%查看a的值

L1.d;

%查看d的值

%还可以L1.RP,L1.display,L1.mdh,L1.isprismatic,L1.isrevolute等等,这样就可以查看一些默认值

L2=Link('

0);

bot=SerialLink([L1L2],'

'

myrobot'

bot.n;

%查看连杆数目

bot.fkine([0.10.2]);

%前向运动学

bot.plot([0.10.2]);

%绘制机器人

定义完连杆和机器人便可以求机器人前和逆向运动学、动力学等等。

L1.参数或属性():

查看连杆的参数或属性

L1.操作函数(参数):

操作连杆参数

bot.属性():

查看机器人的属性

bot.操作函数(参数):

操作机器人,可以进行前向、逆向运动学求解等

实例:

StanfordManipulator

D-H参数表:

-pi/2);

%定义连杆

L3=Link('

L4=Link('

L5=Link('

L6=Link('

bot=SerialLink([L1L2L3L4L5L6]);

%连接连杆

bot.display();

%显示D-H参数表

forward_kinematics=bot.fkine([-0.20.1100.112])%前向运动学

求出末端的齐次变换矩阵:

-pi/2,'

d2'

pi/2,'

0,'

d6'

symstheta1theta2d3theta4theta5theta6;

forward_kinematics=bot.fkine([theta1theta2d3theta4theta5theta6])%前向运动学 

Stanfordarm的运动学逆解:

clearL

th 

alpha

L

(1)=Link([0 

-pi/2 

0]);

L

(2)=Link([0 

pi/2 

L(3)=Link([0 

1]);

L(4)=Link([0 

L(5)=Link([0 

L(6)=Link([0 

bot=SerialLink(L,'

Stanfordarm'

T=transl(1,2,3)*trotz(60,'

)*troty(30,'

)*trotz(90,'

inverse_kinematics=bot.ikine(T,'

pinv'

%逆向运动学

theta1=inverse_kinematics

(1);

theta2=inverse_kinematics

(2);

d3=inverse_kinematics(3);

theta4=inverse_kinematics(4);

theta5=inverse_kinematics(5);

theta6=inverse_kinematics(6);

forward_kinematics=bot.fkine([theta1theta2d3theta4theta5theta6])%前向运动学,验证结果的准确性.

%求解结果为T与forward_kinematics一致。

正确。

求解Stanfordarm在世界坐标系描述的雅克比矩阵

J0=vpa(bot.jacob0([theta1theta2d3theta4theta5theta6]),4)

求平面二自由度机器人在世界坐标系描述的雅克比矩阵

L

(1)=Link('

0,'

'

a1'

L

(2)=Link('

a2'

Planar2-dofrobot'

symstheta1theta2;

J0=bot.jacob0([theta1theta2]);

J0=simplify(J0)

求得:

J0=

[-a2*sin(theta1+theta2)-a1*sin(theta1),-a2*sin(theta1+theta2)]

a2*cos(theta1+theta2)+a1*cos(theta1), 

a2*cos(theta1+theta2)]

0, 

0]

1, 

1]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1