《机器人技术》实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工业机器人Matlab仿真
实验报告
指导老师:
姓名:
班级:
学号:
2013年10月28日
实验内容(一)
(1)利用三次多项式规划出关节角运动轨迹,并在Matlab环境下绘制出轨迹曲线。
题目:假设有一旋转关节的单自由度操作臂处于静止状态时,初始角位置θ0=15,要求经过3s平滑运动以后该关节停止在终止角θf=75的地方,试规划出满足以上要求的关节轨迹。
并在Matlab环境下绘制轨迹曲线。
(a)θ0=15, θf=75, t f = 3; (b)θ0=15, θf = 45, t f = 4;
(c)θ0=30, θf=75, t f = 3; (d)θ0=30, θf=45, t f = 5;
(e)θ0=30, θf=60, t f = 3;
(2)熟悉机器人工具箱Robotics Toolbox,阅读robot.pdf文档,应用工具箱中transl、rotx、roty和rotz函数得到平移变换和旋转变换的齐次变换矩阵,而复合变换可以由若干个简单变换直接相乘得到。
并与课堂上学习的平移矩阵和旋转矩阵作对比,观察一致性。
解:transl 平移变换举例:机器人在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
Rotx旋转变换举例:机器人绕x轴旋转45度,那么可以用rotx来求取旋转后的齐次矩阵:
程序如下:rotx(pi/4)
结果如下:ans =
1.0000 0 0
0 0.7071 -0.7071
0 0.7071 0.7071
Roty旋转变换举例:机器人绕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
Rotz旋转变换举例如下:机器人绕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中,应用Link函数、robot函数构建机器人对象。
(详细了解link, robot函数的调用格式)
答:link程序如下:
L1 = link([0 0 0 0 0]);
L2 = link([-pi/2 0 0 0 1]); % 移动关节
L3 = link([0 0 0 0 1]); % 移动关节
L4 = link([pi/2 0 0 0.4318 0]);
L5 = link([-pi/2 0 0 0 0]);
L6 = link([0 0 0 0 0]);
Robot程序如下:
r = robot({L1 L2 L3 L4 L5 L6}); %构建机器人
= 'robot001'; % 命名
qA = [0 0 0 0 0 0];
TB = [-0.6533 0.2706 -0.7071 -0.6318
0.4571 -0.6036 -0.6533 0
-0.6036 -0.75 0.2706 0.15
0 0 0 1];
qAB = ikine(r, TB); % 对TB进行运动学逆问题求解
% 它说明机械手由A到B,关节1需要正向转动1.5708rad,
% 关节2和3需要向前移动0.15和0.2m,
% 最后三个关节需要各自转动0.3927,0.7854,0.3927rad
TC = [0.3361 -0.2075 -0.9187 -0.4821 0.8669 -0.3131 0.3879 0.4821 -0.3681 -0.9268 0.0747 0.18 0 0 0 1]; Ikine 程序如下:
qBC = ikine(r, TC) - ikine(r, TB); % 由B 到C
t = 0:0.025:2; q = jtraj(qA, qAB, t);
Plot 程序如下:plot(r, q); % 绘图 Robot 函数举例:
-0.4
-0.2
0.2
0.4
-0.4
-0.20
0.2
0.4
-0.4-0.20
0.20.4X
Y
Z
robot001
x y
z
实验内容(二):
(1)应用Robotics Toolbox工具箱提供的ctraj、jtraj和trinterp函数实现笛卡尔规划、关节空间规划和变换插值。
答:ctraj举例
程序如下:T0 = transl([1 1 1]);
T1 = transl([-3 5 2]);
TC1 = ctraj(T0, T1, 101);
t1 = [0:0.01:1];
figure, plot(t1, transl(TC1));
t2 = [0:0.05:20];
r = jtraj(0, 1, t2);
TC2 = ctraj(T0, T1, r);
figure, plot(t2, transl(TC2));
轨迹如下:
00.10.20.30.40.50.60.70.80.91
-3
-2
-1
1
2
3
4
5
% jtraj 轨迹规划测试 puma560;
t = 0:0.05:2; % 在2秒内完成某个动作,采样间隔是50ms [q, qd, qdd] = jtraj(qz, qr, t);
figure, plot (t, q)
figure, plot3 (t, q(:,2), q(:,3)) figure, plot (t, qd) figure, plot (t, qdd)
结果如下:
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
-2.5
-2-1.5-1-0.500.511.52
2.5
00.20.40.60.81 1.2 1.4 1.6 1.82
-1.5
-1
-0.5
0.5
1
1.5
0.5
1
1.5
2
0.5
1
1.5
2
-2-1.5
-1
-0.5
0.20.40.60.81 1.2 1.4 1.6 1.82
-2
-1.5-1-0.500.511.52
% trinterp 进行轨迹差值
T0 = transl([1 1 1]);
T1 = transl([-3 5 2]);
trinterp(T0, T1, 0)
trinterp(T0, T1, 0.3)
trinterp(T0, T1, 0.5)
trinterp(T0, T1, 0.8)
trinterp(T0, T1, 1)
结果:由于电脑问题,图片无法显示。
(2)利用Robotics Toolbox工具箱提供的fkine函数实现机器人运动学正问题的求解。
% fkine 函数实现机器人运动学正问题的求解
puma560
t = 0:0.056:2;
q = jtraj(qz, qr, t);
T = fkine(p560, q); % T是一个三维的矩阵,前两维是4×4的矩阵代表坐标变化,第三维是时间。
结果如下:经过运行,我们得到的是一系列从关节到手部末端执行器的空间T 矩阵,其第一个和最后一个如下:
T(:,:,1) =
1.0000 0 0 0.4521
0 1.0000 0 -0.1500
0 0 1.0000 0.4318
0 0 0 1.0000
T(:,:,36) =
1.0000 0 0 0.0203
0 1.0000 0 -0.1500
0 0 1.0000 0.8636
0 0 0 1.0000
实验内容(三)
利用Robotics Toolbox工具箱提供的ikine函数实现机器人运动学逆问题的求解。
qA = [0 0 0 0 0 0];
TB = [-0.6533 0.2706 -0.7071 -0.6318
0.4571 -0.6036 -0.6533 0
-0.6036 -0.75 0.2706 0.15
0 0 0 1];
qAB = ikine(r, TB); % 对TB进行运动学逆问题求解
% 它说明机械手由A到B,关节1需要正向转动1.5708rad,
% 关节2和3需要向前移动0.15和0.2m,
% 最后三个关节需要各自转动0.3927,0.7854,0.3927rad
TC = [0.3361 -0.2075 -0.9187 -0.4821
0.8669 -0.3131 0.3879 0.4821
-0.3681 -0.9268 0.0747 0.18
0 0 0 1];
Ikine程序如下:
qBC = ikine(r, TC) - ikine(r, TB); % 由B到C
(1)利用Robotics Toolbox工具箱提供的inertia函数计算机械臂关节空间的惯性矩阵。
(2)在机器人轨迹规划之后,利用Robotics Toolbox工具箱中的plot函数来实
现对规划路径的仿真(动画演示)。
答:Plot 程序如下:plot(r, q); % 绘图 运行后结果图如下: -0.4-0.200.20.4-0.4-0.2
0.2
0.4
-0.4
-0.2
0.2
0.4
X Y Z
robot001
x y z。