MatlabRoboticToolbo工具箱学习笔记Word下载.docx
- 文档编号:21867764
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:18
- 大小:165.55KB
MatlabRoboticToolbo工具箱学习笔记Word下载.docx
《MatlabRoboticToolbo工具箱学习笔记Word下载.docx》由会员分享,可在线阅读,更多相关《MatlabRoboticToolbo工具箱学习笔记Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
包括一个实数单位1和三个虚数单位i,j,k
另一种表示法:
9=(儿尸),P代表矢量部分
(6)q=Quaternion(R);
%将四元数转化为旋转矩阵
⑺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/Trajectory
clear;
clc;
pO二T;
%定义初始点及终点位置
Pl二2;
p=tpoly(pO,pl,50);
%取步长为50figure(l);
plot(p);
%绘图,可以看到在初始点及终点的一、二阶导均为零[p,pd,pdd]=tpoly(pO,pl,50);
%得到位置、速度、加速度
那为五阶多项式,速度、加速度均在一定围
figure
(2);
subplot(3,1,1);
subplot(3,1,2);
plot(p);
xlabel(,Time"
);
ylabel('
p‘);
plot(pd);
xlabel('
Time"
ylabelCpd‘);
%另外一种方法:
[p,pd,pdd]=lspb(pO,pl,50);
figure(3);
subplot(3,1,1);
plot(p);
xlabel(?
Time'
p'
plot(pd);
Time*);
ylabel('
pd'
%可以看到速度是呈梯形
subplot(3,1,3);
plot(pdd);
pdd'
102025304045SO
%三维的情况:
p=mtraj(tpoly,[012],[210],50);
figure(4);
plot(p)
%对于齐次变换矩阵的情况
TO=transl(O.4,0.2,0)*trotx(pi);
%定义初始点和目标点的位姿
Tl=transl(-0.4,-0.2,0.3)*troty(pi/2)*trotz(~pi/2);
T=ctraj(TO,Tl,50);
first二T(:
:
1);
%初始位姿矩阵
tenth二T(:
10);
%第十个位姿矩阵
figure(5);
tranimate(T);
%动画演示坐标系自初始点运动到目标点的过程
MatlabRoboticToolbox工具箱学习笔记
(二)
Arm/Robots
机器人是山多个连杆连接而成的,机器人关节分为旋转关节和移动关节。
创建机器人的两个最重要的函数是:
Link和SerialLinko
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
关节变量围[minmax]
动力学参数:
%m连杆质量
%r连杆相对于坐标系的质心位置3x1
%I连杆的惯性矩阵(关于连杆重心)3x3
%B粘性摩擦力(对于电机)1x1或2x1
%Tc库仑摩擦力1x1或2x1
电机和传动参数:
%G齿轮传动比
%Jm电机惯性矩(对于电机)
2、SerialLink类
操作函数:
%plot
%teach
%isspherical
%islimit
%fkine
%ikine6s
%ikine3
%ikine
%jacobO
%jacobn
%maniplty
%jtraj
%accel
%coriolis
%dyn
%fdyn
%friction
%gravload
%inertia
%nofriction
%rne
%payload
%perturb
属性:
%links
%gravity
%base
%tool
以图形形式显示机器人
驱动机器人测试机器人是否有球腕关节测试机器人是否抵达关节极限
前向运动学求解
6旋转轴球腕关节机器人的逆向运动学求解
3旋转轴机器人的逆向运动学求解
釆用迭代方法的逆向运动学求解
在世界坐标系描述的雅克比矩阵
在工具坐标系描述的雅克比矩阵
可操纵性度
关节空间轨迹
关节加速度
关节柯氏力
显示连杆的动力学属性
关节运动
关节重力
关节惯性矩阵
设置摩擦力为0
关节的力/力矩
在末端坐标系增加负载随机扰动连杆的动力学参数
连杆向量(lxN)
重力的方向[gxgygz]
机器人基座的位姿(4x4)
机器人的工具变换矩阵】T6totooltip](4x4)
%qlim
%offset
%name
%manuf
%comment
%plotopt
%n
%config
%mdh
关节1^1[qminqmax.(Nx2)
偏置(Nxl)
机器人名字(在图形中显示)
注释,制造商名注释,总评optionsforplot()method(cellarray)关节数
机器人结构字符串,例如'
RRRRRR'
运动学中约定的布尔数(0二DH,1二MDH)
怎样创建一个机器人?
%Link调用格式:
%{
(1)L=LinkO创建一个带默认参数的连杆
(2)L=Link(L1)复制连杆L1
(3)L=Link(OPTIONS)创建一个指定运动学、动力学参数的连杆
OPTIONS可以是:
%'
theta,TH
jointangle,ifnotspecifiedjoint
isrevolute
%?
d\D
jointextension,ifnot
specifiedjoint
isprismatic
a\A
jointoffset(default0)
%,alpha*,A
jointtwist(default0)
standard,
definedusingstandardD&
Hparameters
(default)・
modified'
definedusingmodifiedD&
H
parameters・
offset,,0
jointvariableoffset(default0)
qlinf,L
jointlimit(default[])
I'
I
linkinertiamatrix(3x1,6x1or
3x3)
r\R
linkcentreofgravity(3x1)
%J,M
linkmass(lxl)
%JG\G
motorgearratio(default0)
%JB\B
jointfriction,motorreferenced
(default0)
%*Jm*,J
motorinertia,motorreferenced
%JTc\T
Coulombfriction,motor
referenced(lxl
or2x1),(default[00])
revolute,
forarevolutejoint(default)
prismatic'
foraprismaticjoint'
p‘
standard'
forstandardD&
formodifiedD&
Hparameters・
symbolicnotnumeric
sym'
considerallparametervaluesas
注:
不能同时指定“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([RlR2...],OPTIONS)机器人连接,将R2的基座连接到R1的末端.
(5)R=SerialLink(Rl,options)复制机器人Rl
LI=Link('
d'
0,'
a'
1,,alpha'
pi/2);
%定义连杆1,没有写theta说明theta为关节变量
Ll.a;
%查看d的值
Ll.d;
%还可以Ll.RP,LI.display,LI.mdh,LI.isprismatic,LI.isrevolute等等,这样就可以查看一些默认值
L2=Link(,d,,0,'
1,'
alpha,,0);
bot=SerialLink([LIL2],'
'
myrobot'
bot.n;
%查看连杆数目
bot.fkine([0.10.2]);
%前向运动学
bot.plot([0.10.2]);
%绘制机器人
定义完连杆和机器人便可以求机器人询和逆向运动学、动力学等等。
L1•参数或属性():
查看连杆的参数或属性
L1.操作函数(参数):
操作连杆参数
bot.属性():
查看机器人的属性
bot.操作函数(参数):
操作机器人,可以进行前向、逆向运动学求解等
实例:
StanfordManipulator
D-H参数表:
Link
a.
1
—90
沪
血
+90
d*
4
-90
5
0*
6
d‘,0,'
0,*alpha*,-pi/2):
%定义连杆
L2=Link('
a'
alpha'
pi/2);
L3=Link('
theta'
0):
L4=Link('
0,*alpha*,-pi/2):
L5=Link('
L6=Link('
0,*alpha*,0):
bot=SerialLink([LlL2L3L4L5L6]);
%连接连杆
bot.display();
%显示D~H参数表
forward_kinematics=bot.fkine([-0.20.1100.112])%前向运动学
bot=
robot(6axis,RRPRRR,stdDH)
+・
j1
丄
+theta|
•一一一一一一一一丄一一■■
+
d1
+・
a1
■一■■■■—丄■一■
1|
■■■■■■■■十—qll
•一
0|
■■■■■■■十
-1.571
2|
q2|
1.571
3|
q3|
4|
q4|
5|
q5|
丄・571
6|
q6|
+——++++
grav=0
base=1
000
tool=
100
9.81
010
001
forward_kinematics=
-0.0971
-0.4533
0.8860
2.0631
0.9199
-0.3806
-0.0939
0.6878
0.3798
0.8060
0・4540
10.4041
1.0000
求出末端的齐次变换矩阵:
Ll=Link('
-pi/2,'
%定义连杆L2二Link('
d2'
0,*alpha1,pi/2,'
L3=Link”theta1,0,Ja"
0,Jalpha1,0,'
L4=Link(,d‘,0,1a,0,'
alpha'
sym,);
pi/2,'
d6'
bot=SerialLink([LlL2L3L4L5L6]);
symsthetaltheta2d3theta4thetadtheta6;
forward_kinematics=bot・fkine([thetaltheta2d3theta4thetaotheta6])%前向运动学
Stanfordarm的运动学逆解:
clearL
thda
L(l)二Link([0
00-pi/2
0]);
%定
义连杆
L
(2)=Link([0
10pi/2
01);
L(3)=
Link([00
00
1]);
L(4)=Link([0
0]);
L(5)=Link([0
00pi/2
L(6)=
Link([01
bot=SerialLink(L,
Stanfordarm'
);
T^transl(1,2,3)*trotz(60,'
deg'
)*troty(30,'
)*trotz(90,'
)inverse_kinematics=bot.ikine(T,'
pinv'
):
%逆向运动学thetal=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([thetaltheta2d3theta4thetaothetaG])'
%前向运动学,验证结果的准确性.
%求解结果为T与forward_kinematics—致。
正确。
求解Stanfordarm在世界坐标系描述的雅克比矩阵
L(l)=Link([0
L
(2)二Link([0
name,,'
Stanford
0-pi/2
0pi/2
arm);
symsthetaltheta2d3theta4thetaotheta6;
J0=vpa(bot・jacob0([thetaltheta2d3theta4thetaotheta6J),4)
求平面二自由度机器人在世界坐标系描述的雅克比矩阵
«
L(l)=Link(,d'
0,'
'
al'
sym,);
%定义连杆L
(2)=Link('
d'
a2'
bot=SerialLink(L,'
,Planar2-dofrobot,);
%连接连杆symsthetaltheta2;
JO=bot.jacobO([thetaltheta2]);
JO=simplify(JO)
求得:
JO=
[-a2*sin(thetal+theta2)-al*sin(thetal),-a2*sin(thetal+theta2)]
[a2*cos(thetal+theta2)+al*cos(thetal),
cos(thetal+
theta2)]
[
0,
0]
1,
1]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MatlabRoboticToolbo 工具箱 学习 笔记