采用五次多项式插值法进行机械臂轨迹规划,基于Matlab Robotics Toolbox平台进行关节空间轨迹规划,得到各关节角度、速度和加速度与时间关系曲线。
此外,每次重新启动MATLAB时都需要重新输入“startup_rvc”回车来启动这个工具箱。
本文所控对象为串联六R机械臂,其具体尺寸参数见于代码中的D-H表。
MATLAB代码
% Modified DH
% ABB robot
% lujingguihua
clear;
clc;
% %机器人建模
th(1) = 0; d(1) = 0; a(1) = 0; alp(1) = 0;
th(2) = 0; d(2) = 0; a(2) = 3.20; alp(2) = pi/2;
th(3) = 0; d(3) = 0; a(3) = 9.75; alp(3) = 0;
th(4) = 0; d(4) = 8.87; a(4) = 2; alp(4) = pi/2;
th(5) = 0; d(5) = 0; a(5) = 0; alp(5) = -pi/2;
th(6) = 0; d(6) = 0; a(6) = 0; alp(6) = pi/2;
% DH parameters th d a alpha sigma
L1 = Link([th(1), d(1), a(1), alp(1), 0], 'modified');
L2 = Link([th(2), d(2), a(2), alp(2), 0], 'modified');
L3 = Link([th(3), d(3), a(3), alp(3), 0], 'modified');
L4 = Link([th(4), d(4), a(4), alp(4), 0], 'modified');
L5 = Link([th(5), d(5), a(5), alp(5), 0], 'modified');
L6 = Link([th(6), d(6), a(6), alp(6), 0], 'modified');
robot = SerialLink([L1, L2, L3, L4, L5, L6]); %SerialLink 类函数
robot.name='Robot-6-dof';
robot.display(); %显示D-H表
%轨迹规划参数设置
init_ang = [pi/6,0, 2*pi/3,pi/3, 0, 0];
targ_ang = [pi/2,pi/6,0,0, -pi/2, pi/6];
T =(0:0.1:5);
%关节空间轨迹规划方法
[q,qd,qdd] = jtraj(init_ang,targ_ang,T); %直接得到角度、角速度、角加速度的的序列
%%显示
figure(1);
%动画显示
subplot(1,2,1);
title('动画过程');
robot.plot(q);
% 轨迹显示
t=robot.fkine(q);%运动学正解
rpy=tr2rpy(t); %t中提取位置(xyz)
subplot(1,2,2);
plot2(rpy);
xlabel('X/mm'),ylabel('Y/mm'),zlabel('Z/mm');hold on
title('空间轨迹');
text(rpy(1,1),rpy(1,2),rpy(1,3),'A点');
text(rpy(51,1),rpy(51,2),rpy(51,3),'B点');
% 指定文件夹保存图片
filepath=pwd; %保存当前工作目录
cd('C:UsersAdministratorDesktoppic') %把当前工作目录切换到图片存储文件夹
print(gcf,'-djpeg','C:UsersAdministratorDesktoppic1.jpeg'); %将图片保存为jpg格式,
cd(filepath) %切回原工作目录
%单个关节的位置title('关节1位置');
figure(2);
subplot(3,2,1);
plot(T,q(:,1));
xlabel('t/s'),ylabel('θ1/rad');hold on
subplot(3,2,2);
plot(T,q(:,2));
xlabel('t/s'),ylabel('θ2/rad');hold on
subplot(3,2,3);
plot(T,q(:,3));
xlabel('t/s'),ylabel('θ3/rad');hold on
subplot(3,2,4);
plot(T,q(:,4));
xlabel('t/s'),ylabel('θ4/rad');hold on
subplot(3,2,5);
plot(T,q(:,5));
xlabel('t/s'),ylabel('θ5/rad');hold on
subplot(3,2,6);
plot(T,q(:,6));
xlabel('t/s'),ylabel('θ6/rad');hold on
% 指定文件夹保存图片
filepath=pwd; %保存当前工作目录
cd('C:UsersAdministratorDesktoppic') %把当前工作目录切换到图片存储文件夹
print(gcf,'-djpeg','C:UsersAdministratorDesktoppic2.jpeg'); %将图片保存为jpg格式,
cd(filepath) %切回原工作目录
%单个关节的速度
figure(3);
subplot(3,2,1);
plot(T,qd(:,1));
xlabel('t/s'),ylabel('Ω1/rad');hold on
subplot(3,2,2);
plot(T,qd(:,2));
xlabel('t/s'),ylabel('Ω2/rad');hold on
subplot(3,2,3);
plot(T,qd(:,3));
xlabel('t/s'),ylabel('Ω3/rad');hold on
subplot(3,2,4);
plot(T,qd(:,4));
xlabel('t/s'),ylabel('Ω4/rad');hold on
subplot(3,2,5);
plot(T,qd(:,5));
xlabel('t/s'),ylabel('Ω5/rad');hold on
subplot(3,2,6);
plot(T,qd(:,6));
xlabel('t/s'),ylabel('Ω6/rad');hold on
% 指定文件夹保存图片
filepath=pwd; %保存当前工作目录
cd('C:UsersAdministratorDesktoppic')
%把当前工作目录切换到图片存储文件夹
print(gcf,'-djpeg','C:UsersAdministratorDesktoppic3.jpeg'); %将图片保存为jpg格式,
cd(filepath) %切回原工作目录
%单个关节的加速度
figure(4);
subplot(3,2,1);
plot(T,qdd(:,1));
xlabel('t/s'),ylabel('α1/rad');hold on
subplot(3,2,2);
plot(T,qdd(:,2));
xlabel('t/s'),ylabel('α2/rad');hold on
subplot(3,2,3);
plot(T,qdd(:,3));
xlabel('t/s'),ylabel('α3/rad');hold on
subplot(3,2,4);
plot(T,qdd(:,4));
xlabel('t/s'),ylabel('α4/rad');hold on;
subplot(3,2,5);
plot(T,qdd(:,5));
xlabel('t/s'),ylabel('α5/rad');hold on
subplot(3,2,6);
plot(T,qdd(:,6));
xlabel('t/s'),ylabel('α6/rad');hold on
% 指定文件夹保存图片
filepath=pwd; %保存当前工作目录
cd('C:UsersAdministratorDesktoppic') %把当前工作目录切换到图片存储文件夹
print(gcf,'-djpeg','C:UsersAdministratorDesktoppic4.jpeg'); %将图片保存为jpg格式,
cd(filepath) %切回原工作目录
通过轨迹规划,不仅得到了机械臂末端执行器的空间轨迹,还可以得到其关节的角位移、角速度和角加速度。从上图 可以看出机械臂到达预定的位置,证明了该机械臂设计的合理性。
随着运动的进行, 各个关节的角度与时间关系的曲线, 可以看到其运动过程连续平滑。而且在图 中可以看出各关节的角速度和角加速度都是光滑变化的,没有出现跳变点。进一步地,在首末两点的速度以及加速度都可以有效地约束为零。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
matlab
+关注
关注
175文章
2924浏览量
228463 -
机器人
+关注
关注
206文章
27052浏览量
201435 -
仿真
+关注
关注
50文章
3872浏览量
132166 -
机械臂
+关注
关注
9文章
475浏览量
23827
发布评论请先 登录
相关推荐
嵌入式系统和CAN总线的检修机械臂控制系统
,从而影响动力装置的安全运行。由于蒸汽发生器中存在放射性物质,当发生泄漏时,人不能进入其中进行维修,这时就需要机械臂代替人完成维修工作。机械臂检修系统即通过
发表于 09-29 17:02
基于STM32、以太网、Labview的六自由度Stewart并联运动平台模型
六自由度Stewart并联运动平台模型-X,Y,Z平移、旋转测试六自由度Stewart并联运动平台-Z向旋转正弦波复现六
发表于 04-16 23:25
怎么用LabVIEW定义一个导弹的六自由度弹道仿真界面
怎么用LabVIEW自定义一个导弹(飞行器)的六自由度弹道仿真界面,使其能够和simulink进行联合仿真,并且能够在界面中显示导弹打击目标的三维运动曲线,有没有做过的或者这方面比较牛
发表于 12-20 21:40
【Pocket-RIO申请】采用labview与FPGA的多自由度机械臂快速控制系统原型开发
项目名称:采用labview与FPGA的多自由度机械臂快速控制系统原型开发试用计划: 机械臂在自动化工业中广泛应用,由于每个
发表于 12-19 15:30
51/stm32单片机控制6自由度机械臂(带云台)二次开发是用什么传感器定位比较好?
51/stm32单片机控制6自由度机械臂(带云台)二次开发是用什么传感器定位比较好?
发表于 03-31 09:13
采用LabVIEW实现四自由度机械臂运动控制系统设计
应用领域:控制设计挑战: 短期内实现4自由度机械臂(3台交流伺服电机、1台微型直流电机)的 变参数同步运动控制,为钢丝传动机构的控制提供应用解决方案。应用方案: 方案采用NI公司
发表于 05-06 09:26
STM32与树莓派交互控制机械臂
(并不)常见的五自由度机械臂。尽管商家称它为六自由度。这里使用STM32F407VGT6的6路PWM输出通道来控制6个舵机的运动,树莓派(上
发表于 07-01 10:24
基于Matlab的开源六自由度协作机器人实验平台
一前言针对机器人相关专业的教学需求,商飞信息科技开发出此开源六自由度协作机器人实验平台。该平台有以下几大特色机器人本体采用自主设计的3Kg负载六自由度协作机器人,机器人每个关节集成电机
发表于 09-07 07:10
推导并实现四自由机械臂的运动方程
0、前言试着推导并实现四自由机械臂的运动方程,在此处使用拉格朗日法进行。系统机构图如下:注:第一个关节是圆柱转盘,其他关节绕枢轴点转动。其中Tm为关节驱动力矩,由电机提供;b*theta_d为粘性
发表于 09-15 06:50
六自由度机械臂的运动规划
为了使六自由度机械臂完成特定的动作, 需要设计计算相应的指令序列. 首先计算了机械臂位姿与指尖位置之间的关系公式, 然后针对机械臂的到达问题、沿曲线运动问题和避障问题, 分别
发表于 02-17 16:55
•193次下载
评论