工业机器人工具中心点标定的意义_一种利用平面标定板的机器人工具中心点标定方法_2015108676182_说明书_专利查询_专利网_钻瓜专利网...

技术领域

本发明涉及机器人工具中心点(Toolcenterpoint,TCP)标定方法,尤其涉及一种利用平面标定板的机器人工具中心点标定方法。

背景技术

机器人工具中心点(Toolcenterpoint,TCP)是与机器人工具固连的工具坐标系的原点,工具实际工作点在工具坐标系中的坐标保持不变。机器人要准确控制工具实际工作点的位置,必须首先获得工具坐标系原点,即TCP在机器人末端法兰坐标系中的坐标。

计算TCP在机器人末端法兰坐标系中坐标的过程称为机器人工具中心点标定。准确标定机器人TCP是进行离线编程的基础。

TCP标定的核心是要确定TCP在机器人末端法兰坐标系中的坐标。传统的的方法是“4点法”,即让机器人通过四个不同方位去使机器人TCP与一空间固定点重合,然后利用机器人关节转角及机器人结构信息去解算TCP坐标。

这种方法的难点在于实现点与点的重合必须由人工操作完成,且需要精细的调整。如对准不准确,很容易出现误差过大。所以TCP标定非常耗时耗力,影响机器人的工作效率。

专利CN104827480A公开了一种机器人自动标定方法,利用标定板标定传感器的内在结构参数和相对于世界坐标系的传感器坐标系;和在已被标定的传感器的引导下控制机器人以多种不同的姿态将安装在其上的工具的坐标系的原点精确地移动到同一目标点,并根据机器人在该目标点的位姿数据计算出工具坐标系相对于机器人的工具中心点坐标系的传递矩阵tcpTt。

该方案的问题在于,在进行操作之前,要对标定板标定传感器进行预先的标定,且该标定工具应具备位置检测功能,即需要进行预处理,实施步骤较为繁琐。

专利CN104457645A公开了一种利用二维测量功能平板的机器人工具中心点标定方法,将点点的重合约束弱化为了点面接触,易于操作,当TCP出现较小偏移时可实现自主标定。

但上述方案要求平板标定工具具备二维测量功能,导致实施的成本较高。

发明内容

本发明提出了一种利用平面标定板的机器人工具中心点标定方法,其目的在于克服现有技术中标定操作复杂,精度不高的问题,通过利用平面精度较高的标定板,来辅助机器人TCP标定工作,降低标定过程中对准的难度,提高标定效率,易于实现标定自动化,同时降低成本。

为了实现上述技术目的,本发明的方案是,

一种利用平面标定板的机器人工具中心点标定方法,包括以下步骤:

步骤一:让机器人工具中心点即TCP在机器人处于不同姿态下与同一平面接触,并形成不同的触点,记录各触点在接触时机器人各关节的转角以及触点在机器人世界坐标系中的标定坐标表达式;

步骤二:任选四个触点为一组,从中两两选取触点组对,且四个触点至少作为向量端点出现一次,构成在机器人世界坐标系内的三个向量,以三个向量的混合积等于零为条件获得一个方程;在所选的触点组中去除一个触点,并增加一个新触点,重复上述方法获得第二个方程;再同样操作获得第三个方程;最后求解三个方程构成的方程组,获得TCP在机器人工具末端法兰坐标系中的坐标,完成标定;

步骤三:利用标定得到的TCP在机器人工具末端法兰坐标系中的标定坐标,以及产生触点时对应的机器人各关节转角,计算每个触点在机器人世界坐标系中的标定坐标,采用最小二乘法拟合获取拟合平面,以多个触点到所述拟合平面的平均距离作为标定结果的判断依据,若平均距离小于设定阈值,则表明当前标定结果符合精度要求,否则,需要重新测量新的触点坐标,重新进行标定,直到标定结果满足标定精度要求。

所述的一种利用平面标定板的机器人工具中心点标定方法,步骤一中,TCP所接触的平面为标定板。

所述的一种利用平面标定板的机器人工具中心点标定方法,步骤一中,标定板上设有用于自动检测TCP是否与标定板接触的接触传感器。

所述的一种利用平面标定板的机器人工具中心点标定方法,步骤一中,触点在机器人世界坐标系中的坐标表达式由机器人各关节的转角、机器人自身结构以机器人世界坐标系原点计算获得,其中包含了待求的TCP在机器人末端法兰坐标系中的三个坐标。

所述的一种利用平面标定板的机器人工具中心点标定方法,步骤一中,触点的个数至少为六个。

本发明的技术效果在于,通过利用一个固定的平面,实现机器人TCP的标定,避免了在肉眼观察、人工控制条件下难以精确实现的点-点重合过程,不需要机器人TCP点多次与同一空间固定点重合,将点-点重合要求弱化为了点-面重合,易于操作。标定所需的设备简单,只需包含一个精度较高的平面即可。当机器人TCP出现较小偏移时,机器人一般还能够按照预定的程序确保TCP点与平板工具重合,从而实现自主标定。整个方法操作简单,构思巧妙,标定精度高,具有较好的推广作用。结合接触传感器,实现接触过程的自动控制,无需人工干预,实现了高度自动化的标定。

下面结合附图对本发明作进一步说明。

附图说明

图1为本发明实施例中所使用的机器人与标定板结构示意图;

其中1为机器人底座,2为6自由度机器人,3为焊枪,4为用作标定工具的平板,5为计算机,6为机器人控制器。

具体实施方式

参见图1,{F0}为以机器人底座所在空间建立的机器人世界坐标系,{F6}为固定在机器人末端法兰的机器人末端法兰坐标系,利用计算机5采集标定板接触传感器信号,判断标定板是否被触碰。计算机通过网络与机器人控制器6相连,当标定板出现触碰信号后,可向机器人发停止运动信号,计算机同时从机器人控制器中读取机器人转角关节信息,并完成后续的计算。

Ptcp设为TCP的目标设定点,标定工作的核心即为求出该点在{F6}中的坐标6Ptcp={6xtcp,6ytcp,6ztcp}T。该点在机器人世界坐标系{F0}的坐标为0Ptcp={0xtcp,0ytcp,0ztcp}T。

本实施例首先将标定板放置于机器人工作空间内,当控制机器人工具上的Ptcp点向标定板上的平面方向运动时,在标定板感知到触碰后,机器人停止运动。

首先,控制机器人,使机器人工具中心点与标定板上的平面接触,形成触点,记录发生接触时机器人各关节的转角以及触点在机器人世界坐标系中的坐标表达式,然后控制机器人远离标定板,然后再控制机器人,调整为与上次接触时不同的姿态,即关节运动位置发生变化之后,再使机器人工具中心点与标定板平面发生接触,形成不同的触点,并记录仪接触时机器人的关节转角以及触点在机器人世界坐标系中的坐标表达式,反复操作以形成多个触点,其中触点在世界坐标系中的表达式是根据机器人关节转角、杆件长度及偏置表达出触点在与固定空间坐标系中的笛卡尔坐标,计算方法则是通过坐标的齐次变换获得,这个计算过程是机器人的运动学正解求解,为公知技术;

其中,所述标定板只需满足平面精度、硬度要求,并固定于机器人工具中心点能够接触到的任意位置,其中平面精度与标定所想要达到的目标精度有关,如果目标标定精度高,则应该相应提高平面的精度要求,而硬度要求与机器人末端工具的类型有关,如果工具较硬,则容易划伤标定板,故标定板的硬度也需相应提高,这里的平面精度和硬度都可在实际标定中,根据现场需要来确定即可;

为了完成后续的计算过程,这里所产生的触点个数至少为6个;

本实施例中,机器人工具中心点与标定板平面接触时机器人关节转角记为:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动感光调节LED灯亮度C语言程序,单片机PWM调节LED灯亮度

刚搞完飞思卡尔智能车,昨天我一起做车的搭档跑来跟我说魏老师(我们系的前主任,不知道他们怎么认识的....)叫他帮忙做个可通过无线遥控调节LED灯亮度的设计方案,问我有没有兴趣做做,主要是魏老师也是受他以前的老同学(合工大的....…

python找到字符中空格所在的位置_Python 查找字符在字符串中的位置示例效果

Python 查找字符在字符串中的位置实例 下面为大家分享一篇Python 查找字符在字符串中的位置实例,具有很好的参考价值,希望对大家有所帮助。一起过来看看吧 str_1wo shi yi zhi da da niu char_1i nPosstr_1.index(char_1) print(nPos) 运行结果&#xf…

ztree 自定义参数_Ztree节点前加上两个自定义按钮

前言:在我的权限管理模块遇到了给某些角色加权限的问题,这时就需要实现将每个模块做成树,在每个节点前加上预览和编辑的按钮,这样可以根据数据库的某个字段给每个角色赋权限。必须必须吐槽的是,这部分的功能在网上没找…

xilinx c语言编程,使用Xilinx SDSoc在Xilinx zcu102开发板上编程HelloWorld

关于Xilinx SDSoc的介绍我就不再复述了,我理解的也不一定准确,可以阅读官方文档了解SDSoc,你可以把它理解为一个集成开发环境 (IDE),通过SDSoc我们能够简单快速的对Xilinx的开发板进行编程,不用像传统的嵌入式编程那样…

python画图小猪佩奇_吊炸天!Python 20秒画出小猪佩奇

原标题:吊炸天!Python 20秒画出小猪佩奇 今年社交平台上的带货女王是谁?范冰冰?杨幂?Angelababy?不,是猪猪女孩小猪佩奇。 小猪佩奇在构图基本是各种曲线,类抛物线、类圆、类椭圆、类二次贝塞尔曲线。因为画图画曲线不是Pytho…

win10c语言错误,win10打开程序提示错误状态0xc0000020的原因和解决方法

win10系统打开程序弹出“c:\xx\xxx.dll没有被指定在windows上运行,或者它包含错误。请尝试使用原始安装介质重新安装程序,或联系你的系统管理员或软件供应商以获取支持。错误状态0xc0000020 ”的提示,这到底是什么情况?这 一般是由…

poll和死锁_计算机基础知识

转自:http://blog.csdn.net/qq_15437629/article/details/52388685在这里只做备份计算机网络TCP/IP模型TCP/IP协议集的分层实施:为什么要给网络划分层次?(1)各层之间相对独立,每层都可以用最合适的技术实现;(2)各层只需知道通过层…

matlab 向量_Matlab基础入门

感谢大家观看你所做的事情,也行暂时看不到成功,但不要灰心,你并不是没有成长,而是在扎根.前情提要本篇文章将会分多次发放(原因内容太长,导致写的是否微信卡崩了🙃), 目的在于从基础的Matlab的教程开始慢慢的深入. 如果大家看到该文章有些格式上的错误或内容上的错误…

2017蓝桥c语言真题,[蓝桥杯][2017年第八届真题]发现环 (C语言代码)------------C语言——菜鸟级...

解题思路:并查集 找环 未成环之前 看作一个树用并查集找到环 两点 找的同时 建立一个 并查集树(自己瞎起的)找到两点后从两个点分别回到并查集的根节点经过的点标记上 这两个点单独经过的点(交点处除外)都是环上点原文 欢迎访问 我的博客注意事项:参考代码:#include#include#d…

python34.dll_python34.dll下载

缺少python34.dll?python34.dll文件是存放在电脑系统中很重要的一个文件,是电脑程序正常运行的重要支持,大家要是发现这个文件缺少了就要立马重新下载一个,欢迎有需要的朋友来当易网下载。dll文件特点推广模块式体系结构DLL 有助于…

python全文检索引擎_Python中使用haystack实现django全文检索搜索引擎功能

{% if query %}搜索结果如下: {% for result in page.object_list %} {{ result.object.gName }} {% empty %}啥也没找到 {% endfor %} {% if page.has_previous or page.has_next %}{% if page.has_previous %}{% endif %} 上一页{% if page.has_previous %}{% end…

c语言音像图书管理系统设计,c语言--图书管理系统

(1)创建音像图书库。此图书库中有图书,VCD,录像带3类,而每个音像图书的信息均包括编号(用B**,V**,R**分别表示图书,VCD和录像带的编号),名称,原价,原数量及剩余数量。(2)租借音像图书。在文件&q…

python环境配置opencv_【Python】python2.7 安装配置OpenCV2

原博文 2017-05-23 22:28 − 环境:Ubuntu16.04 anaconda Python2.7 opencv2.4.13 安装opencv后 import cv2 遇到错误信息: No module named cv2 安装opencv时make的过程中会出现文件“cv2.so”,它是连接OpenCV和... 相关推荐 2019-12-04 13:5…

流水灯c语言程序延时失败,用c8051f340做控制流水灯实验,程序会卡死在延时函数中 ,只要在那加延时函数程序就只能跑到那,代码如下...

满意答案lohboon2016.07.31采纳率:52% 等级:7已帮助:1159人#include "reg52.h"#define uint unsigned int#define uchar unsigned charsbit K1 P3^2; //独立按键void Delayms(uint x){ uint i,j; for(ix;i>0;i--) for(j100;…

杨辉三角python代码 不要括号_关于杨辉三角python代码的问题

匿名用户1级2017-09-02 回答杨辉三角,是二项式系数在三角形中的一种几何排列。前提:每行端点与结尾的数为1.每个数等于它上方两数之和。每行数字左右对称,由1开始逐渐变大。第n行的数字有n项。第n行数字和为2n-1。第n行的m个数可表示为 C(n-1…

python 双向链表_Python实现双向链表

打开Python开发工具IDLE,新建‘DoubleLinkedList.py’文件,并写代码如下; class Node: def __init__(self,item): self.item item self.next None self.pre None class DoubleLinkedList: def __init__(self): self.__head None def add(self,item):…

android自定义view生命周期,android基础之自定义view

一、Custom View1、view的继承关系view继承关系.png2、Android 如何绘制试图层次当activity获取焦点时,它必须提供layout层次的根节点,然后android 系统开始视图的绘制过程。绘制是从layout的根节点开始的,按照从上往下的顺序,父元…

python网课期中答案_中国大学python编程答案网课MOOC考试期末慕课答案

简述班主任的职责。创新需要提出问题,问题产生于()。A、好奇B、质疑C、想象D、矛盾“玄米色”的炒麦香属于()A.茶类香B.品种香C.地域香D.附加香已知某实心小球是由下表中所列塑料材料中的一种制成的.塑料名称密度(kg/m3〕聚甲基戊烯0.8103聚丙…

python import如何使用_Python如何import其它.py文件及其函数

​ 如上图所示,我想在test_1.py文件中import我在lstm_1.py中定义的LstmParam和 LstmNetwork。我直接采用的是最简单的引用方法:from lstm_1 import LstmParam, LstmNetwork,但是很明显报错了,不能直接这样引用。因为,编…

android 数据库 字节数组,Android上的GreenDAO:字节数组作为主键/构建包含字节数组属性Where子句的查询...

关于字节[]又名在greendao BLOB:看着de.greenrobot.dao.query.WhereCondition.PropertyCondition.checkValueForType条件01目前不支持,因为如果值的类型为byte[],以下几行将始终引发异常。if (value ! null && value.getClass().isAr…