六自由度机器人焊接轨迹研究(6自由度焊接机器人)
moboyou 2025-05-04 15:27 24 浏览
张用,郝卫东,朱博譞,李君,苗国强,刘芳平
(桂林电子科技大学 机电工程学院,广西 桂林 541004)
摘要:焊接轨迹是机器人焊接时所行走的轨迹,焊接轨迹算法是控制机器人焊接轨迹的数学模型,本文提出一种通过测量机器人基坐标系、工件坐标系与测量系统坐标系的齐次变换矩阵方法,计算出工件坐标系与焊接机器人基坐标系间的间接标定方法,通过控制器系统控制机器人焊接,实验验证此方法正确可行并成功应用工程中。
0引言
六自由度旋转关节机器人在汽车制造和机械加工的焊接、喷涂、装配、搬运等领域广泛应用。焊接机器人工作时,需要借助示教器或仿真编程来预设作业任务。在机器人示教器在线编程中,必须解决实际作业对象的模型对象的校正问题,即机器人坐标系标定问题[1]。胡静等人提出建立机器人运动数学模型,采用PID控制算法对机器人进行控制[2]。宋月娥等人针对工件标定的问题,提出了通过调整仿真单元中工件与实际环境中工件位姿校正的坐标系标定算法[3]。标定方法可分为前向(或开环)标定或逆标定[4]。前向标定一般需要借助测量设备进行坐标系标定,可以获得很高的精度,如:光学CMM系统精度约为±100 μm[5],激光测距系统精度约为±40 μm[6]。逆向标定一般直接采集机器人各关节编码器数据进行坐标系标定。这些方法都是通过对工件坐标系进行测量以校核工件坐标系与机器人基坐标的变换矩阵。针对工件坐标系标定问题,提出一种通过测量机器人基坐标系和工件坐标系与测量系统坐标系的齐次变换矩阵,算出工件坐标系与机器人基坐标系间的齐次变换矩阵的间接标定方法。
机器人离线编程系统的研究已经有了很大进步,很大程度上满足了工业生产的需求,但其实用化程度不高,还需进一步研究,采用模块化设计的离线编程系统,具有良好的开放性,易于扩展[79]。本文以FS30L机器人为本体,在VS2010环境下开发具有采集测量机器人基坐标系和工件坐标系与测量系统坐标系的齐次变换矩阵的间接标定方法,其与本实验室自主研发的DSP(数字信号处理器)运动控制系统相结合,已经成功在实际工程中控制FS30L机器人进行焊接。
1FS30L 六自由度机器人焊接轨迹运动学算法控制
六自由度机器人运动学算法流程如图1所示。首先建立机器人坐标系,得到各个连杆变换矩阵,再经过进一步变换得到各个连杆变换矩阵的逆矩阵,同时将得到的各个连杆变换矩阵进一步转换,将变换矩阵依次相乘,得到机器人正解,得到其中一组解;同理,将各个连杆变换矩阵的逆矩阵依次左乘正解逆矩阵,即可得到多组解,同时引入评价函数,选择最优解,至此整个过程结束。
2焊接机器人系统坐标系的建立和分析
根据机器人焊接系统各模块间的结构关系和位置关系,可以将坐标系群分为机器人运动坐标系(含基坐标系和焊丝端头坐标系)、测量系统坐标系、焊件坐标系和焊缝坐标系。各坐标系采用DH方法建立,如图2所示。其中坐标系O为基坐标系,坐标系1、坐标系2、坐标系3、坐标系4、坐标系5、坐标系6为运动坐标系,坐标系S为焊丝端头坐标系,坐标系H为焊件坐标系,坐标系h为焊缝坐标系。
在焊接作业中,机器人焊丝端头应始终位于所规划的焊缝上。参照图2可以给出机器人焊接系统完整坐标系之间的广义变换方程。为保证焊丝端头坐标系S到基坐标系O的变换与焊缝坐标系h到机器人基坐标系O的变换相同,则要求有:
0T6·6TS=0TH·HTh(1)
HTh为焊缝坐标系在焊件坐标系H的齐次变换矩阵,0TH为焊件坐标系在基坐标系O的齐次变换矩阵,6Ts为焊丝端头坐标系在机器人末端三连杆腕中心坐标系6的齐次变换矩阵,0T6为机器人末端三连杆中心坐标系6到基础坐标系O的齐次变换矩阵,如式(2):
坐标系标定测量的目的是通过测量基坐标系和工件坐标系在测量系统坐标系中的齐次变换矩阵,再根据式(3)计算工件坐标系在基坐标系中的齐次变换矩阵。
HT0=0T-1G·HTG(3)
坐标系测量的实质与工件定位相同,因此可以根据工件定位原理测量坐标系。坐标系的具体测量方法与工件的形状有关,宋月娥等人针对不同形状的工件,提出了正交平面工件标定法[3]。针对机器人基坐标系的建立特点,可以采用正交平面工件标定法进行测量。工件坐标系的测量则根据工件的定位原理选择不同的标定方法。
3焊接机器人正逆运动学分析
正逆运动学分析是机器人控制的基础。根据Craig定义法,参照图2可以建立如表1所示的机器人本体参数表。
6TS为焊丝端头坐标系S到机器人末端三连杆腕中心坐标系6的齐次变换矩阵,则有:
0TG为焊接工作台坐标系G到机器人基坐标系O的齐次变换矩阵,则有:
HTh为焊缝坐标系在焊件坐标系H的齐次变换矩阵,则有:
计算式(1)的右边可以得出焊缝坐标系h,由基础坐标系O的齐次变换矩阵,通过运动学逆向求解方法可以求出机器人各关节转角值。在机器人运动学逆向求解过程中采取六自由度机器人运动学逆解的一般做法,即由手部位姿反求各关节转角。其中前三个关节转角与机器人末端坐标空间位置相关,后三个关节转角与机器人末端坐标空间姿态相关。通过运动学逆运算可解得各关节转角公式:
在式(8)中,cos(θx)表示为cx,sin(θx)表示为sx,cos(θx+θy)表示为cxy,sin(θx+θy)表示为sxy。通过以上公式便可以计算出焊缝轨迹对应的各关节转角值,根据转角值可控制机器人运动,实现焊接运动。
4焊接机器人控制系统软件设计
图3机器人控制软件系统流程图目前,工业焊接机器人已经在工厂大面积普及运用,对机器人控制采用在线编程,即用示教器在手动状态下控制机器人示教,同时控制系统将手动示教状态下机器人运行轨迹程序自动保存,焊接时直接调用相应程序即可实现相应焊接。为满足工业现场实际控制需要,在本工程中六自由度焊接机器人控制软件系统的流程图如图3所示。
焊接启动开始时,先对控制系统硬件平台初始化,系统检测焊接机器人焊枪头是否在零点附近,若机器人不在零点,此时控制系统自动调节焊接机器人回零点;若检测系统检测到机器人在零点,系统进入工作方式选择中,根据现场焊接需要,若没有示教,则需要手动示教;若焊接已有示教的轨迹,则不需要示教,此时控制系统读取DSP控制器运行内存文件装载运行位置,同时进行参数设置,例如选择运行速度等。启动伺服运行,同时不断更新显示。系统根据规定路径和数据运行,若6个轴中有某轴超过设置空间角度,则报警;焊接完成时,系统检测焊枪到达的目标位置,此时要回零点。至此,一个焊接周期正式结束。
5结论
此六自由度机器人焊接轨迹算法及其软件控制部分,成功运用到工程项目中,实践证明此思路正确可行。
参考文献
[1] JOUBAIR A, BONEV I A. Nonkinematic calibration of a sixaxis serial robot using planar constraints[J]. Precision Engineering,2015,40: 325333.
[2] 胡静,姜大伟,王华振,等.基于一级倒立摆模型仿人机器人控制算法研究[J].电子技术应用,2014,40(12):9295.
[3] 宋月娥,吴林,田劲松,等.用于机器人离线编程的工件标定算法研究[J].哈尔滨工业大学学报,2002,34(6):735738.
[4] SHI H, SU H J,DAGALAKIS N, et al. Kinematic modeling and calibration of a flexure based hexapod nanopositioner[J]. Precis Eng,2013,37(1):11728.
[5] NUBIOLA A, SLAMANI M, JOUBAIR A, et al. Comparison of two calibration methods for a small industrial robot based on an optical CMM and a laser tracker[J].Robotica , 2013, 32(3):447466.
[6] JOUBAIR A, NUBIOLA A, BONEV I A. Calibration efficiency analysis based on fiveobservability indices and two calibration models for a six-axis industrial robot[J].SAE Int J Aerosp, 2013,6(1):161168.
[7] 唐涛宇.机器人离线编程系统的研究[D].哈尔滨:哈尔滨工业大学,2013.
[8] HE R B, ZHAO Y J, YANG S N, et al. Kinematicparameter identification for serialrobot calibration based on POE formula[J].IEEE Transactions on Robotics,2010, 26(3): 411423.
[9] 李宪华,郭永存,张军,等.基于MATLAB 的模块化机器人手臂运动学算法验证及运动仿真[J].计算机应用研究,2013,30(6):16821685.
相关推荐
- 黄道十二宫杀手密码51年后被破解,来自两位程序员和数学家合作
-
杨净边策发自凹非寺量子位报道|公众号QbitAI黄道十二宫杀手(ZodiacKiller)可能是世界上最知名的高智商连环杀手,52年来从未被抓获。他的事迹已被改编成了多部好莱坞电影。△...
- 深入剖析MediaCodec解码器的基本原理及使用「建议新手收藏」
-
一,MediaCodec工作原理MediaCodec类Android提供的用于访问低层多媒体编/解码器接口,它是Android低层多媒体架构的一部分,通常与MediaExtractor、MediaMu...
- Retrofit WebService 实践
-
前言作为Android开发,平时和后端聊得最多的除了喝酒就是接口。常用语:Restful和WebService,前者现在聊得多,后者以前聊得多。默认含义分别为:Restful:HTTP协议...
- 建议收藏!175部4K UHD版本经典高分电影洗版参考目录(2015之前)
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:1L789近两年很多经典高分老电影陆续开始重制成4KUHD版本,虽然我早已将这些电影的BD蓝光版收入,但纠结一番后还是花了不少时间将其全部...
- 2 个月的面试亲身经历告诉大家,如何进入 BAT 等大厂?
-
这篇文章主要是从项目来讲的,所以,从以下几个方面展开。怎么介绍项目?怎么介绍项目难点与亮点?你负责的模块?怎么让面试官满意?怎么介绍项目?我在刚刚开始面试的时候,也遇到了这个问题,也是我第一个思考的问...
- 详解Android官推Kotlin-First的图片加载库
-
前言Coil是一个非常年轻的图片加载库,在2020年10月22日才发布了1.0.0版本,但却受到了Android官方的推广,在AndroidDevelopersBackst...
- webview 渲染机制:硬件加速方式渲染的Android Web
-
webview渲染是什么?webview渲染是用于展现web页面的控件;webview可以内嵌在移动端,实现前端的混合式开发,大多数混合式开发框架都是基于webview模式进行二次开发的w...
- 因为我对Handler的了解,居然直接给我加了5K
-
1Handler是什么?android提供的线程切换工具类。主要的作用是通过handler实现从子线程切换回主线程进行ui刷新操作。1.1为什么Handler能实现线程切换?在创建Handler的...
- 「经典总结」一个View,从无到有会走的三个流程,你知道吗?
-
前言一个View,从无到有会走三个流程,也就是老生常谈的measure,layout,draw三流程我们都知道Android视图是由一层一层构成的层级结构,直白点说,就是父View包含子View而子V...
- 这些垃圾代码是谁写的?哦,原来小丑竟是我自己
-
程序员是最喜欢自嘲、自黑的群体之一,比如他们常常称自己是“码农”、“程序猿”,再比如他们的工作明明是写代码、修Bug,也有人调侃说:“明明我们是修代码、写Bug!”本文整理了一些程序员“修代码、写...
- 手把手教你爬取天堂网1920*1080大图片(批量下载)——理论篇
-
/1前言/平时我们要下载图片,要要一个一个点击下载是不是觉得很麻烦?那有没有更加简便的方法呢?答案是肯定的,这里我们以天堂网为例,批量下载天堂网的图片。/2项目准备工作/首先我们第一步我们要安装...
- 音视频开发需要你懂得 ffmpeg 开源库的编码原理
-
引言音视频开发需要你懂得音视频中一些基本概念,针对编解码而言,我们必须提前懂得编解码器的一些特性,码流的结构,码流中一些重要信息如sps,pps,vps,startcode以及基本的工作原理,...
- 「8年老 Android 开发」最全最新 Android 面试题系列全家桶(带答案)
-
下面跟大家分享的这些面试题都是互联网大厂真实流出的面试内容,每个问题都附带完整详细的答案,不像网上的那些资料三教九流有的甚至还没答案,这些面试题我也是经过日积月累才整理出来的精品资料。这些面试题主要是...
- 手把手教你爬取天堂网1920*1080大图片(批量下载)——实战篇
-
/1前言/上篇文章手把手教你爬取天堂网1920*1080大图片(批量下载)——理论篇我们谈及了天堂网站图片抓取的理论,这篇文章将针对上篇文章的未尽事宜进行完善,完成图片的批量抓取。/2图片网址解...
- PHP 8.1.9 更新发布
-
CLI:修复了内置服务器通过PHP_CLI_server_WORKERS环境变量的潜在溢出。修正了GH-8952(不再可能有意关闭std句柄)。Core:修复了GH-8923的错误(Windows上的...
- 一周热门
- 最近发表
- 标签列表
-
- curseforge官网网址 (16)
- 外键约束 oracle (36)
- oracle的row number (32)
- 唯一索引 oracle (34)
- oracle in 表变量 (28)
- oracle导出dmp导出 (28)
- oracle 数据导出导入 (16)
- oracle两个表 (20)
- oracle 数据库 字符集 (20)
- oracle安装补丁 (19)
- matlab化简多项式 (20)
- 多线程的创建方式 (29)
- 多线程 python (30)
- java多线程并发处理 (32)
- 宏程序代码一览表 (35)
- c++需要学多久 (25)
- c语言编程小知识大全 (17)
- css class选择器用法 (25)
- css样式引入 (30)
- html5和css3新特性 (19)
- css教程文字移动 (33)
- php简单源码 (36)
- php个人中心源码 (25)
- 网站管理平台php源码 (19)
- php小说爬取源码 (23)