Matlab/Simulink六自由度机器人运动学与控制系统仿真(一)【附源文件】

irb1600机器人坐标系建立、正运动学计算与simulink验证

本文章为系列文章,以IRB1600机器人为例,建立机器人正运动、逆运动学、控制系统模型,并在simulink中进行仿真,与理论计算结果进行对比验证
(一) irb1600机器人坐标系建立、正运动学计算与simulink验证
(二) 机器人逆运动学计算
(三) 机器人运动学控制系统仿真



一、坐标系建立与D-H参数表

本文以irb1600机器人为分析对象,irb1600机器人坐标系建立如下图所示,DH参数表如表1所示,采用后置坐标系法建立。

在这里插入图片描述
在这里插入图片描述
初始角度是指,图片所示位姿,各个关节对应的角度值

二、位姿变换矩阵与正运动学计算

依据D-H参数表,计算变换矩阵如下:
在这里插入图片描述
在这里插入图片描述
当th1=0,th2=90°,th3=0,th4=180°,th5=180°,th6=0,计算得到机器人末端位姿为:

在这里插入图片描述

三、在Simulink中进行仿真验证

1.将urdf文件导入simulink中

在SolidWorks中将三维模型输出为urdf格式,命名为irb1600.urdf,注意导出时应注意机器人位姿最好为初始位姿,不要设置为随意姿态。
导入simulink的命令为:

smimport('irb1600.urdf')

增加Transform Sensor,用以在simulink中测量机器人末端的位置,最终建模如下。(如有细节看不懂,可文章下方留言~)
在这里插入图片描述

2.启动simulink进行验证

通过上述建立的D-H参数,计算得到的正运动学结果,作为simlink中机器人模型的关节角度输入,再通过simulink反馈的机器人末端位置,与理论计算结果进行对比,验证机器人运动学解算的正确性。

计算源码如下。这里使用的是robotics toolbox计算正运动学,也可以使用前文计算得到的变换矩阵来计算,两种方法都可以:

%使用前startup_rvc打开机器人工具箱
clear;
%theta,d, a ,alpha
L1 = Link('d', 481.5, 'a', 135, 'alpha', pi/2);
L2 = Link( 'd',0,    'a',475,   'alpha',0);
L3 = Link( 'd',0,    'a',0,      'alpha',pi/2);
L4 = Link( 'd',600,  'a',0,      'alpha',pi/2);
L5 = Link( 'd',0,    'a',0,      'alpha',pi/2);
L6 = Link( 'd',72.5,    'a',0,      'alpha',0);

L2.qlim=[0,pi/4];
L3.qlim=[-pi/2,pi/2];

robot = SerialLink([L1 L2 L3 L4 L5 L6],'name','irb1600');
%%
% % %定义关节角度,如果要改变输入,改这里就行
q1=0;
q2=pi/2;
q3=0;
q4=pi;
q5=pi;
q6=0;
% %该组关节角度理论计算的对应末端位置为807.50956.5


robot.fkine([q1 q2 q3 q4 q5 q6])


%%
%使用如下命令将urdf文件导入simulink
% smimport('irb1600.urdf')

%统一初始位姿。
%因为机器人D-H坐标系的零位,和urdf文件的零位不统一,所以需要减去初始关节角度。
%也可以在导入urdf文件时,把模型调整到D-H坐标系认定的零位, 但是姿态会看起来很奇怪。这里还是采用减去初始关节角度这种方式。
q1_sm=q1;
q2_sm=q2-pi/2;
q3_sm=q3;
q4_sm=q4-pi;
q5_sm=q5-pi;
q6_sm=q6;

%启动simulink验证
robot_sm = importrobot('irb1600.urdf');
robot_sm.DataFormat = 'column';
open_system('irb1600_fk.slx')
sim('irb1600_fk.slx') 
%%


仿真结果如下(单位:米),可以验证得到正运动学计算是正确的的。Y方向0.39mm的误差,为三维模型误差,可近似为0。
在这里插入图片描述
此时机器人的位置和姿态如下,可以发现与我们建立D-H坐标时的初始姿态一致,再次证明建立的正运动学是正确的。
在这里插入图片描述

四、总结

本文分析IRB1600机器人的正运动学并在simulink中进行了验证。如有疑问,欢迎评论区讨论~

  • 25
    点赞
  • 220
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 22
    评论
轴工业机器人是一种能够在工业环境中进行高精度、高效率操作的机器人系统,其主要由机械结构、传感器、执行器和控制系统组成。而MATLAB是一种强大的科学计算软件,广泛应用于工程、科学和数学等领域。如何利用MATLAB来控制轴工业机器人呢? 首先,我们需要使用MATLAB机器人工具箱,该工具箱提供了一系列用于建模、分析和控制机器人系统的函数和工具。 其次,我们可以利用MATLAB机器人进行动力学建模和仿真。通过建立机器人的动力学方程和运动学模型,我们可以对机器人运动轨迹、速度和力学特性进行分析和优化。 然后,我们可以基于机器人的动力学模型进行控制算法的开发。通过MATLAB提供的控制设计工具,如PID控制器、LQR控制器等,我们可以设计出适用于机器人控制的稳定、高效的控制器。 接下来,我们可以将开发好的控制算法通过MATLAB的代码生成工具生成C或C++代码,并将其嵌入到机器人的控制器中。通过与机器人的控制器进行通信,我们可以实现对机器人运动控制和路径规划。 最后,我们可以使用MATLAB仿真工具对控制算法进行验证和评估。通过与实际机器人仿真对比,我们可以得到优化后的控制算法,提高机器人的控制性能和运动精度。 综上所述,利用MATLAB可以对轴工业机器人进行控制和优化。通过MATLAB提供的机器人工具箱、动力学建模、控制算法设计和仿真验证等功能,我们可以实现对机器人的精确控制,并提高其在工业环境中的工作效率和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学机械的鱼鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值