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

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


文章目录

  • irb1600机器人坐标系建立、正运动学计算与simulink验证
  • 一、坐标系建立与D-H参数表
  • 二、位姿变换矩阵与正运动学计算
  • 三、在Simulink中进行仿真验证
    • 1.将urdf文件导入simulink中
    • 2.启动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.5,0,956.5robot.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中进行了验证。如有疑问,欢迎评论区讨论~

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

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

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

  2. 六自由度方程组 matlab,采用Matlab的六自由度机器人三维运动学仿真_李庆.pdf

    采用Matlab的六自由度机器人三维运动学仿真_李庆 第 ( ) 3 卷 第 期 华侨大学学报 自然科学版 7 3 Vol.37 No.3 年 月 ( ) 2016 5 JournalofHua ia ...

  3. matlab机器人轨迹规划仿真程序,基于MATLAB的六自由度机器人轨迹规划与仿真.pdf...

    基于MATLAB的六自由度机器人轨迹规划与仿真 学兔兔 l 訇 似 基于MATLAB的六自由度机器人轨迹规划与仿真 Trajectory planning and simulation of six- ...

  4. 【机器人学习】UR六自由度机器人运动学分析与轨迹规划(三次多项式、五次多项式、过渡)

    https://download.csdn.net/download/yjw0911/85451711下载链接 六轴机械臂本体由6个可重组的关节模组.连接部件.底座.末端部件组成,如下图所示,定义底部 ...

  5. 【Matlab 六自由度机器人】运动学正解(附MATLAB机器人正解完整代码)

    [Matlab 六自由度机器人]求运动学正解 往期回顾 前言 正文 一.运动学正解 1. 齐次变换矩阵 2. 总变换 二.代码实现 1. 定义各连杆参数 2. 齐次变换矩阵及总变换 3. 代码运行结果 ...

  6. 三自由度机器人运动学matlab仿真实验报告,3自由度机器人的正运动学建模研究...

    . 3 MATLAB构建机器人仿真模型 机器人学工具箱(Robotics Toolbox for MATLAB) 是MATLAB中专门用于机器人仿真的工具箱,在机器人建模.轨迹规划.控制.可视化方面使 ...

  7. 【Matlab 六自由度机器人】定义标准型及改进型D-H参数建立机器人模型(附MATLAB建模代码)

    Matlab建立六自由度机器人模型 近期更新 前言 1.Matlab机器人工具箱 2.研究对象-六自由度机器人 正文 一.D-H参数(Denavit–Hartenberg parameters) 1. ...

  8. 工业机器人 郝卫东_六自由度机器人焊接轨迹研究

    张用,郝卫东,朱博譞,李君,苗国强,刘芳平 (桂林电子科技大学 机电工程学院,广西 桂林 541004) 摘要:焊接轨迹是机器人焊接时所行走的轨迹,焊接轨迹算法是控制机器人焊接轨迹的数学模型,本文提出 ...

  9. 【Matlab 六自由度机器人】关于机器人运动学反解的有关问题

    [Matlab 六自由度机器人]关于机器人运动学反解的有关问题 近期更新 前言 正文 反解的三类问题 一.中间点在工作空间之外 二.在奇异点附近关节速度骤增 三.起始点和目标点有多重解 总结 参考资料 ...

最新文章

  1. IIS负载均衡-Application Request Route详解第一篇: ARR介绍
  2. Linux系统:软链接与硬链接的原理分析
  3. 3. OD-爆破有钥匙的exe(有验证文件,如KeyFile.dat)
  4. 【Django】Django—Form两种解决表单数据无法动态刷新的方法
  5. linux grep 如何搜索出包含某个字符串的所有文件 find
  6. matlab更改安全密钥,Linux下设置安全密钥登录
  7. 抽象代数 01.01 群-运算及关系
  8. NUKE 11 for mac版(电影特效合成软件) 11.3v4激活版详细安装步骤
  9. cypress自动化--运行测试用例报告输出
  10. 联想服务器修改ip地址,联想 lenove 3750 M4服务器更改启动项和管理口IP
  11. android 保活 sdk 信鸽,腾讯信鸽推送平台Android sdk推荐_腾讯信鸽推送平台Android sdk使用教程...
  12. 甄零一诺合同——专注合同信息化管理
  13. word总页数不包含封面_Word技巧:除去封面后,总页码减1是如何设置的?
  14. 零基础入门网络,静态LACP链路捆绑详解,带宽扩容,链路冗余备份
  15. PB中调用OLE打开word文档
  16. 五剑同辉 聚力安全:绿盟科技五大安全实验室震撼发布
  17. 好饭不怕晚 —— CSDN博客专家认证通过
  18. mysql string agg_【转】SQL Server一个字段串拆分成多行显示或者多行数据合并成一个字符串(STRING_AGG、STRING_SPLIT)...
  19. PDU会话建立流程(8)-SM Policy Association的建立
  20. python爬虫 2021中国大学排名定向爬虫

热门文章

  1. 移动软件开发 实验3
  2. 【Kevin Learn QMUI】-->QMUILinkTextView
  3. 复盘 Netflix 发展史
  4. ovirt 主机忘记密码修改
  5. ribbonmq超时配置_SpringCloud+SpringCloudAlibaba学习笔记
  6. 什么是等保2.0?不做等保有什么后果?
  7. 线程池是什么?什么情况下使用线程池?使用线程的好处是什么?
  8. 流式计算之kafka Stream
  9. 【ThinkPHP6.x框架】(23)tp框架的附加功能
  10. 智能手机也能编程?程序员的福音或是噩梦?