机械臂标准DH建模及正运动学分析(以IRB4600型工业机械臂为例)

2024-05-06 05:04

本文主要是介绍机械臂标准DH建模及正运动学分析(以IRB4600型工业机械臂为例),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 前言

对于工业机械臂而言,运动学是不考虑力学特性的情况下对机械臂的几何参数与其位置、速度、加速度等运动特性的关系研究。DH建模是运动学的基础,全称为Denavit-Hartenberg建模方法,是一种广泛应用于机器人运动学中的建模技术。该方法通过在每个连杆上建立坐标系,并利用齐次坐标变换来实现连杆之间的坐标转换。通过依次变换,可以推导出末端执行器相对于基坐标系的位姿,从而建立机器人的运动学方程。
一般DH建模分为标准DH法(SDH)和改进DH法(MDH),这两种方法对于串联开环的机械臂结构来说没有什么影响,只是建模方式略有不同,SDH将坐标系建立在机械臂连杆末端,而MDH则将坐标系建立在连杆首段。两者之间的异同点另开篇阐述,这里将以IRB4600型六自由度工业机械臂为例,选择标准DH建模方法,建立其正运动学模型。

2. 标准DH建模

2.1 连杆坐标系

标准DH模型坐标系建立规则可以概括如下几个步骤。
(1)所有关节,无一例外用z轴表示。如果是关节是旋转的,z轴位于按右手定则选装的方向,如果关节是滑动的,z轴为沿实现运动的方向。在每一种情况下,关节i处的z轴(以及该关节的本地参考坐标系)的下标为i-1。
(2) 通常关节不一定平行或相交。因此,通常z轴是斜线,但是总有一条距离最短的公垂线,它正交于任意两条斜线。通常在公垂线方向上定义x轴。所以如果 ai表示 zi−1 与 zi 之间的公垂线,则 xi的方向沿 ai
(3)如果两个关节的z轴平行,选取与前一关节的公垂线共线的一条公垂线;如果两个相邻关节的z轴是相交的,那么它们之间没有公垂线,可选取两条z轴的叉积方向作为x轴。
(4)根据右手坐标系原则确定y轴方向
结合IRB4600-20/2.50型6轴机器人的机械结构,建立关于IRB4600-20/2.50型机器人的连杆坐标系。如图1所示。
在这里插入图片描述

图1.IRB400-20/2.50机器人连杆坐标系

2.2 DH参数表

连杆坐标系确立后,就可以根据连杆坐标系的位置相对关系来确定用于指示坐标系{i-1} 和坐标系{i}间相对位置和方位的4个几何参数。四个参数的定义如下:
ai:在连杆坐标系中,沿着xi轴,从zi轴到zi+!轴平移的距离;
αi:在连杆坐标系中,绕着xi轴,从zi轴到zi+!轴转过的角度;
di:在连杆坐标系中,沿着zi轴,从xi轴到xi+1轴平移的距离;
θi:在连杆坐标系中,绕着zi轴,从xi轴到xi+1轴转过的角度。
根据前面建立的连杆坐标系和建模规则,可分析IRB4600-20/2.50型六自由度工业机器人的运动学几何参数,结合工业机器人各个部件的出厂参数得出具体数据,如表1所示。

表1 连杆参数表
连杆ai(mm)di(mm)αi(°)θi(°)关节运动范围
1170495-900-180-180
2109500-90-90-180
31750-900-180-75
401230.5900-400-400
50090-180-125-125
608500-400-400

3. 正运动学分析

根据空间坐标转换的原理,坐标里两个坐标系的变换可以用齐次变换矩阵的乘积形式来描述:
在这里插入图片描述

基于IRB4600型机器人连杆坐标系和几何参数,可得连杆坐标变换的通用公式:
在这里插入图片描述

其中,矩阵的前3*3部分表示的是两个相邻坐标系之间的旋转变换,最后一列表示的两个相邻坐标系之间的平移变换,对于n个自由度的机器人,可通过上述规则建立各个关节的变换矩阵,这样就可实现工业机器人从基坐标系到任意一个连杆坐标系变换。
根据给出的关节参数和各个关节角度,然后计算机器人末端连杆在基坐标系中所处的位置和姿态,这个过程就叫做运动学正解过程。依照标准D-H建模原则针对IRB4600型机器人建立连杆坐标系之间的坐标变换模型后,再将表1中的连杆参数代入机器人齐次变换矩阵的通式中,可得 6 个相邻坐标系之间的齐次变换矩阵:
在这里插入图片描述

机器人末端法兰盘中心相对于机器人基坐标系的位姿可以由式1.3中6个齐次变换矩阵依次相乘得到如下矩阵:
在这里插入图片描述

其中: 在这里插入图片描述
矩阵60T表示机器人末端连杆坐标系相对于机器人基坐标系的位置和姿态,其中子阵N表示末端连杆坐标系相对于机器人基坐标系的姿态信息,子阵P表示末端连杆坐标系相对于机器人基坐标系的位置信息,该矩阵即是机器人运动学的正解。

4. matlab运动学仿真

六自由度工业机器人运动学分析的正逆解算是在矩阵运算的基础上进行数据处理计算,利用matlab分别通过公式推导和robotic toolbox工具箱建立机器人模型,关键代码如下。
工具箱代码:

clc;
clear;
%          thetai       di      ai-1     alphai-1
L1 = Link([0            495     175      -pi/2  ],'standard');
L2 = Link([0            0       1095      0     ],'standard');L2.offset=-pi/2;
L3 = Link([0            0       175      -pi/2  ],'standard');
L4 = Link([0            1230.5  0        pi/2   ],'standard');
L5 = Link([0            0       0        pi/2   ],'standard');L5.offset=-pi;
L6 = Link([0            85      0        0      ],'standard');L1.qlim =[-180*pi/180, 180*pi/180];
L2.qlim =[-90*pi/180, 150*pi/180];
L3.qlim =[-180*pi/180, 75*pi/180];
L4.qlim =[-400*pi/180, 400*pi/180];
L5.qlim =[-125*pi/180, 125*pi/180];
L6.qlim =[-400*pi/180, 400*pi/180];IRB4600=SerialLink([L1 L2 L3 L4 L5 L6], 'name', 'IRB4600');
IRB4600.display();
IRB4600.teach;

代码中使用Link函数设置机器人连杆,qlim函数限制关节变量的最大极限值和最小极限值,形成每个关节的运动范围,SerialLink函数连接连杆构成机械臂,'standard’表示使用的是标准DH建模方法。在上述代码中,IRB4600是机械臂的命名;IRB4600.display()是将机器人的标准DH参数表打印到控制台上。IRB4600.teach则是在界面上展示IRB4600机器人模型,在Tech界面,机器人模型可以根据输入的关节角变化而实时变化。L2.offset=-pi/2和L5.offset=-pi表示关节2和关节5处,机器人的关节角分别有-90度和-180度的偏移。整体由机器人工具箱建立的模型如图所示:
在这里插入图片描述

图2. IRB4600机器人可视化界面

公式推导代码:

clc;
clear;
% 正解输 入关节角
q_input = [10,20,30,40,50,60];
%% 公式推导正解
% 连杆参数(没有的默认为零)
a1 = 175;
a2 = 1095;
a3 = 175;
d1 = 495;
d4 = 1230.5;
d6 = 85;
Q1 = q_input(1)*pi/180;
Q2 = (q_input(2)-90)*pi/180;
Q3 = q_input(3)*pi/180;
Q4 = q_input(4)*pi/180;
Q5 = (q_input(5)- 180)*pi/180;
Q6 = q_input(6)*pi/180;% DH模型
L1=[cos(Q1),0,-sin(Q1),a1*cos(Q1);sin(Q1),0,cos(Q1),a1*sin(Q1);0,-1,0,d1;0,0,0,1];
L2=[cos(Q2),-sin(Q2),0,a2*cos(Q2);sin(Q2),cos(Q2),0,a2*sin(Q2);0,0,1,0;0,0,0,1];
L3=[cos(Q3),0,-sin(Q3),a3*cos(Q3);sin(Q3),0,cos(Q3),a3*sin(Q3);0,-1,0,0;0,0,0,1];
L4=[cos(Q4),0,sin(Q4),0;sin(Q4),0,-cos(Q4),0;0,1,0,d4;0,0,0,1];
L5=[cos(Q5),0,sin(Q5),0;sin(Q5),0,-cos(Q5),0;0,1,0,0;0,0,0,1];
L6=[cos(Q6),-sin(Q6),0,0;sin(Q6),cos(Q6),0,0;0,0,1,d6;0,0,0,1];
% 求解末端位置与矩阵
T = L1*L2*L3*L4*L5*L6;
% 打印结果
disp("正解结果:")
disp(T);

正运动学验证过程中,选取六个关节转角(单位为°)分别为(10,20,30,40,50,60)进行计算,通过计算取得正运动学位姿结果,和运动学分析推导出来的公式计算一致,如图3所示。
在这里插入图片描述

(a) 公式解

在这里插入图片描述

(b)工具箱解
图3.正运动学验证

这篇关于机械臂标准DH建模及正运动学分析(以IRB4600型工业机械臂为例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/963489

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、