scara机器人用户坐标系标定与工具坐标(TCP)标定
文章目录
- 一、scara机器人用户坐标系标定
- 二、scara机器人工具坐标(TCP)标定
- 1、工具固定在小臂
- 2、工具固定在末端
一、scara机器人用户坐标系标定
如上图,坐标系{x0Oy0}\{x_0Oy_0\}{x0Oy0}为机器人基坐标系,坐标系{x1Py1}\{x_1Py_1\}{x1Py1}为需要建立的用户坐标系,这里假设zzz轴垂直于纸面向外。用户坐标系标定也即确定机器人基坐标系与用户坐标系之间的关系。采用两点法便可标定scara机器人的用户坐标系:
(1)机器人末端标定针对准点PPP,记录此时机器人末端坐标为(xP,yP)(x_P,y_P)(xP,yP);
(2)机器人末端标定针对准点QQQ(用户坐标系xxx轴上任意一点,∣PQ∣|PQ|∣PQ∣不能太短以免导致计算误差较大),记录此时机器人末端坐标为(xQ,yQ)(x_Q,y_Q)(xQ,yQ);
(3)用户坐标系到机器人基坐标系的齐次变换矩阵为:
T=[cosθ−sinθxPsinθcosθyP001](1)T=\left[ \begin{matrix} cos\theta & -sin\theta & x_P \\ sin\theta & cos\theta & y_P \\ 0 & 0 & 1 \\ \end{matrix} \right] \tag{1} T=⎣⎡cosθsinθ0−sinθcosθ0xPyP1⎦⎤(1)
其中:
θ=atan2(yQ−yP,xQ−xP)(2)\theta=atan2(y_Q-y_P,x_Q-x_P) \tag{2} θ=atan2(yQ−yP,xQ−xP)(2)
关于绕任意轴(这里是绕zzz轴)的旋转矩阵的求解问题,详见另外一篇博文:三维空间任意一点绕任意轴线旋转。
二、scara机器人工具坐标(TCP)标定
1、工具固定在小臂
如上图,scara机器人大臂为L1=∣OA∣L_1=|OA|L1=∣OA∣,小臂为L2=∣AB∣L_2=|AB|L2=∣AB∣,固定在小臂的工具为CDCDCD,θ1,θ2\theta_1,\theta_2θ1,θ2为关节角度,坐标系{x0Oy0}\{x_0Oy_0\}{x0Oy0}为机器人基坐标系,坐标系{xeBye}\{x_eBy_e\}{xeBye}为机器人小臂末端坐标系。工具固定在小臂的TCPTCPTCP即为点DDD在坐标系{xeBye}\{x_eBy_e\}{xeBye}的坐标,可以利用两点法求得。
将坐标系{xeBye}\{x_eBy_e\}{xeBye}沿向量BA⃗\vec{BA}BA平移至点AAA,建立辅助坐标系{x1Ay1}\{x_1Ay_1\}{x1Ay1}。将点DDD对准机器人工作空间里任意一点,此时机器人两关节角度分别为θ1(1),θ2(1)\theta_1^{(1)},\theta_2^{(1)}θ1(1),θ2(1),将∣AD∣|AD|∣AD∣视为机器人的小臂长,根据运动学正解得:(详见博文:scara机器人运动学正逆解)
{xD=L1cosθ1(1)+∣AD∣cos(θ1(1)+θ2(1)+α)yD=L1sinθ1(1)+∣AD∣sin(θ1(1)+θ2(1)+α)(3)\left \{ \begin{array}{c} x_D=L_1cos\theta_1^{(1)}+|AD|cos(\theta_1^{(1)}+\theta_2^{(1)}+\alpha) \\ \tag 3 y_D=L_1sin\theta_1^{(1)}+|AD|sin(\theta_1^{(1)}+\theta_2^{(1)}+\alpha) \end{array}\right. {xD=L1cosθ1(1)+∣AD∣cos(θ1(1)+θ2(1)+α)yD=L1sinθ1(1)+∣AD∣sin(θ1(1)+θ2(1)+α)(3)
上式展开得:
{xD=L1cosθ1(1)+∣AD∣[cos(θ1(1)+θ2(1))cosα−sin(θ1(1)+θ2(1))sinα]yD=L1sinθ1(1)+∣AD∣[sin(θ1(1)+θ2(1))cosα+cos(θ1(1)+θ2(1))sinα](4)\left \{ \begin{array}{c} x_D=L_1cos\theta_1^{(1)}+|AD|[cos(\theta_1^{(1)}+\theta_2^{(1)})cos\alpha-sin(\theta_1^{(1)}+\theta_2^{(1)})sin\alpha] \\ \tag 4 y_D=L_1sin\theta_1^{(1)}+|AD|[sin(\theta_1^{(1)}+\theta_2^{(1)})cos\alpha+cos(\theta_1^{(1)}+\theta_2^{(1)})sin\alpha ] \end{array}\right. {xD=L1cosθ1(1)+∣AD∣[cos(θ1(1)+θ2(1))cosα−sin(θ1(1)+θ2(1))sinα]yD=L1sinθ1(1)+∣AD∣[sin(θ1(1)+θ2(1))cosα+cos(θ1(1)+θ2(1))sinα](4)
设点DDD在坐标系{x1Ay1}\{x_1Ay_1\}{x1Ay1}的坐标为(xD′,yD′)(x_D',y_D')(xD′,yD′),则xD′=∣AD∣cosα,yD′=∣AD∣sinαx_D'=|AD|cos\alpha,y_D'=|AD|sin\alphaxD′=∣AD∣cosα,yD′=∣AD∣sinα,上式化简为:
{xD=L1cosθ1(1)+cos(θ1(1)+θ2(1))xD′−sin(θ1(1)+θ2(1))yD′yD=L1sinθ1(1)+sin(θ1(1)+θ2(1))xD′+cos(θ1(1)+θ2(1))yD′(5)\left \{ \begin{array}{c} x_D=L_1cos\theta_1^{(1)}+cos(\theta_1^{(1)}+\theta_2^{(1)})x_D'-sin(\theta_1^{(1)}+\theta_2^{(1)})y_D' \\ \tag 5 y_D=L_1sin\theta_1^{(1)}+sin(\theta_1^{(1)}+\theta_2^{(1)})x_D'+cos(\theta_1^{(1)}+\theta_2^{(1)})y_D' \end{array}\right. {xD=L1cosθ1(1)+cos(θ1(1)+θ2(1))xD′−sin(θ1(1)+θ2(1))yD′yD=L1sinθ1(1)+sin(θ1(1)+θ2(1))xD′+cos(θ1(1)+θ2(1))yD′(5)
在另一手系下,将点DDD对准机器人工作空间同一点,此时机器人两关节角度分别为θ1(2),θ2(2)\theta_1^{(2)},\theta_2^{(2)}θ1(2),θ2(2),同理可得:
{xD=L1cosθ1(2)+cos(θ1(2)+θ2(2))xD′−sin(θ1(2)+θ2(2))yD′yD=L1sinθ1(2)+sin(θ1(2)+θ2(2))xD′+cos(θ1(2)+θ2(2))yD′(6)\left \{ \begin{array}{c} x_D=L_1cos\theta_1^{(2)}+cos(\theta_1^{(2)}+\theta_2^{(2)})x_D'-sin(\theta_1^{(2)}+\theta_2^{(2)})y_D' \\ \tag 6 y_D=L_1sin\theta_1^{(2)}+sin(\theta_1^{(2)}+\theta_2^{(2)})x_D'+cos(\theta_1^{(2)}+\theta_2^{(2)})y_D' \end{array}\right. {xD=L1cosθ1(2)+cos(θ1(2)+θ2(2))xD′−sin(θ1(2)+θ2(2))yD′yD=L1sinθ1(2)+sin(θ1(2)+θ2(2))xD′+cos(θ1(2)+θ2(2))yD′(6)
令:
{a11=cos(θ1(2)+θ2(2))−cos(θ1(1)+θ2(1))a12=−sin(θ1(2)+θ2(2))+sin(θ1(1)+θ2(1))b1=L1(−cosθ1(2)+cosθ1(1))a21=sin(θ1(2)+θ2(2))−sin(θ1(1)+θ2(1))a22=cos(θ1(2)+θ2(2))+cos(θ1(1)+θ2(1))b2=L1(−sinθ1(2)+sinθ1(1))(7)\begin{cases} a_{11}=cos(\theta_1^{(2)}+\theta_2^{(2)}) - cos(\theta_1^{(1)}+\theta_2^{(1)}) \\ \tag 7 a_{12}= -sin(\theta_1^{(2)}+\theta_2^{(2)}) + sin(\theta_1^{(1)}+\theta_2^{(1)})\\ b_1 = L_1(-cos\theta_1^{(2)}+cos\theta_1^{(1)}) \\ a_{21}=sin(\theta_1^{(2)}+\theta_2^{(2)}) - sin(\theta_1^{(1)}+\theta_2^{(1)}) \\ a_{22}= cos(\theta_1^{(2)}+\theta_2^{(2)}) +cos(\theta_1^{(1)}+\theta_2^{(1)})\\ b_2 = L_1(-sin\theta_1^{(2)}+sin\theta_1^{(1)}) \\ \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧a11=cos(θ1(2)+θ2(2))−cos(θ1(1)+θ2(1))a12=−sin(θ1(2)+θ2(2))+sin(θ1(1)+θ2(1))b1=L1(−cosθ1(2)+cosθ1(1))a21=sin(θ1(2)+θ2(2))−sin(θ1(1)+θ2(1))a22=cos(θ1(2)+θ2(2))+cos(θ1(1)+θ2(1))b2=L1(−sinθ1(2)+sinθ1(1))(7)
联立式(5)和式(6),解得:
{xD′=−(a12b2−a22b1)/(a11a22−a12a21)yD′=(a11b2−a21b1)/(a11a22−a12a21)(8)\begin{cases} x_D'=-(a_{12}b_2 - a_{22}b_1)/(a_{11}a_{22} - a_{12}a_{21}) \\ y_D'=(a_{11}b_2 - a_{21}b_1)/(a_{11}a_{22} - a_{12}a_{21}) \\ \tag {8} \end{cases} {xD′=−(a12b2−a22b1)/(a11a22−a12a21)yD′=(a11b2−a21b1)/(a11a22−a12a21)(8)
工具TCPTCPTCP为:
{txD=xD′−L2tyD=yD′(9)\begin{cases} t_{xD}=x_D'-L_2 \\ t_{yD}=y_D' \\ \tag {9} \end{cases} {txD=xD′−L2tyD=yD′(9)
2、工具固定在末端
如上图,scara机器人大臂为L1=∣OA∣L_1=|OA|L1=∣OA∣,小臂为L2=∣AB∣L_2=|AB|L2=∣AB∣,固定在末端的工具为BDBDBD,其长度为RRR,θ1,θ2,θ4\theta_1,\theta_2,\theta_4θ1,θ2,θ4为关节角度,坐标系{x0Oy0}\{x_0Oy_0\}{x0Oy0}为机器人基坐标系,坐标系{xeBye}\{x_eBy_e\}{xeBye}为机器人末端坐标系。工具固定在末端的TCPTCPTCP即为点DDD在坐标系{xeBye}\{x_eBy_e\}{xeBye}的坐标,可以利用两点法求得。
将点DDD对准机器人工作空间里任意一点,此时机器人末端位姿为(xB(1),yB(1),cB(1))(x_B^{(1)},y_B^{(1)},c_B^{(1)})(xB(1),yB(1),cB(1)),根据运动学正解得:
{xD=xB(1)+Rcos(cB(1)+α)yD=yB(1)+Rsin(cB(1)+α)(10)\left \{ \begin{array}{c} x_D=x_B^{(1)}+Rcos(c_B^{(1)}+\alpha)\\ \tag {10} y_D=y_B^{(1)}+Rsin(c_B^{(1)}+\alpha) \end{array}\right. {xD=xB(1)+Rcos(cB(1)+α)yD=yB(1)+Rsin(cB(1)+α)(10)
上式展开得:
{xD=xB(1)+R[cos(cB(1))cosα−sin(cB(1))sinα]yD=yB(1)+R[sin(cB(1))cosα+cos(cB(1))sinα](11)\left \{ \begin{array}{c} x_D=x_B^{(1)} +R[cos(c_B^{(1)})cos\alpha-sin(c_B^{(1)})sin\alpha]\\ \tag {11} y_D=y_B^{(1)} +R[sin(c_B^{(1)})cos\alpha+cos(c_B^{(1)})sin\alpha] \end{array}\right. {xD=xB(1)+R[cos(cB(1))cosα−sin(cB(1))sinα]yD=yB(1)+R[sin(cB(1))cosα+cos(cB(1))sinα](11)
设点DDD在坐标系{xeBye}\{x_eBy_e\}{xeBye}的坐标为(txD,tyD)(t_{xD},t_{yD})(txD,tyD),则txD=Rcosα,tyD=Rsinαt_{xD}=Rcos\alpha,t_{yD}=Rsin\alphatxD=Rcosα,tyD=Rsinα,上式化简为:
{xD=xB(1)+cos(cB(1))txD−sin(cB(1))tyDyD=yB(1)+sin(cB(1))txD+cos(cB(1))tyD(12)\left \{ \begin{array}{c} x_D=x_B^{(1)} +cos(c_B^{(1)})t_{xD}-sin(c_B^{(1)})t_{yD}\\ \tag {12} y_D=y_B^{(1)} +sin(c_B^{(1)})t_{xD}+cos(c_B^{(1)})t_{yD} \end{array}\right. {xD=xB(1)+cos(cB(1))txD−sin(cB(1))tyDyD=yB(1)+sin(cB(1))txD+cos(cB(1))tyD(12)
在另一位姿下,将点DDD对准机器人工作空间同一点,此时机器人末端位姿为(xB(2),yB(2),cB(2))(x_B^{(2)},y_B^{(2)},c_B^{(2)})(xB(2),yB(2),cB(2)),同理可得:
{xD=xB(2)+cos(cB(2))txD−sin(cB(2))tyDyD=yB(2)+sin(cB(2))txD+cos(cB(2))tyD(13)\left \{ \begin{array}{c} x_D=x_B^{(2)} +cos(c_B^{(2)})t_{xD}-sin(c_B^{(2)})t_{yD}\\ \tag {13} y_D=y_B^{(2)} +sin(c_B^{(2)})t_{xD}+cos(c_B^{(2)})t_{yD} \end{array}\right. {xD=xB(2)+cos(cB(2))txD−sin(cB(2))tyDyD=yB(2)+sin(cB(2))txD+cos(cB(2))tyD(13)
令:
{a11=cos(cB(2))−cos(cB(1))a12=−sin(cB(2))+sin(cB(1))b1=−xB(2)+xB(1)a21=sin(cB(2))−sin(cB(1))a22=cos(cB(2))+cos(cB(1))b2=−yB(2)+yB(1)(14)\begin{cases} a_{11}=cos(c_B^{(2)}) - cos(c_B^{(1)}) \\ \tag {14} a_{12}= -sin(c_B^{(2)}) + sin(c_B^{(1)})\\ b_1 =-x_B^{(2)} +x_B^{(1)}\\ a_{21}=sin(c_B^{(2)}) - sin(c_B^{(1)}) \\ a_{22}= cos(c_B^{(2)}) +cos(c_B^{(1)})\\ b_2 = -y_B^{(2)} +y_B^{(1)} \\ \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧a11=cos(cB(2))−cos(cB(1))a12=−sin(cB(2))+sin(cB(1))b1=−xB(2)+xB(1)a21=sin(cB(2))−sin(cB(1))a22=cos(cB(2))+cos(cB(1))b2=−yB(2)+yB(1)(14)
联立式(11)和式(12),解得工具TCPTCPTCP为:
{txD=−(a12b2−a22b1)/(a11a22−a12a21)tyD=(a11b2−a21b1)/(a11a22−a12a21)(15)\begin{cases} t_{xD}=-(a_{12}b_2 - a_{22}b_1)/(a_{11}a_{22} - a_{12}a_{21}) \\ t_{yD}=(a_{11}b_2 - a_{21}b_1)/(a_{11}a_{22} - a_{12}a_{21}) \\ \tag {15} \end{cases} {txD=−(a12b2−a22b1)/(a11a22−a12a21)tyD=(a11b2−a21b1)/(a11a22−a12a21)(15)
scara机器人用户坐标系标定与工具坐标(TCP)标定相关推荐
- MotoSimEG-VRC软件:安川机器人用户坐标系介绍与标定方法
目录 概述 用户坐标系标定方法 用户坐标系标定注意事项 用户坐标系标定检查 本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注! 概述 在对安川机器人进行手动运 ...
- 工具坐标6点法_轻松学机器人系列之各坐标系关系
更多内容请点击上方安德鲁机器人关注.转载请先后台留言,请支持原创!谢谢 难得的机会让胖老师Johnny Pan跟大家开个车,可能速度有点快,各位系好安全带坐好.关于胖老师Johnny Pan这里就不作 ...
- 机器人杆长标定_一种SCARA机器人标定方法与流程
本发明涉及机器人零位标定技术领域,尤其涉及一种SCARA机器人标定方法. 背景技术: 零位是机器人坐标系的基准,没有零位机器人无法判断自身位置.在影响机器人绝对精度的因素中,零位误差所占比重高达97% ...
- abb机器人建立工件坐标系_【收藏】设定ABB机器人工具坐标的方法
随着工业机器人需求量的不断上升,市场上的机器人品牌越来越多,ABB机器人在全球享有极高的声誉,产品质量有保障,超强的性能,为工业生产带来更多帮助.有些用户在购买机器人机器人系统后,对abb机器人工具坐 ...
- abb四点法做tcp_什么是机器人的工具中心点(TCP)? | 北岛夜话
工业现场的机器人实际上是有多个轴的机械手臂.要想让机器人完成指定的生产任务,通常需要在机器人的末端固定一个工具,比如焊接机器人的焊枪.涂胶机器人的胶枪.搬运机器人的夹具等.由于各工具的大小.形状各不相 ...
- 机器人 工具坐标系的标定
概念 工具坐标系是把机器人腕部法兰盘所握工具的有效方向定为Z轴,把坐标定义在工具尖端点,所以工具坐标的方向随腕部的移动而发生变化. 工具坐标的移动,以工具的有效方向为基准,与机器人的位置.姿势无关,所 ...
- scara机器人dh参数表_两分钟带你了解机器人标定的因素
为什么机器人需要标定? 影响机器人本体精度因素分为两大类:运动学因素--加工误差.机械公差/装配误差.减速器精度.减速器空程等:动力学因素--质量.惯性张量.摩擦力.关节柔性.连杆柔性. 机器人本体的 ...
- 浅谈ABB机器人(工具坐标,工件坐标,有效载荷)
工具坐标(tool): 使tcl坐标偏移到工具上,例如焊接工作,使机器人工作点切入焊枪点上 mass:工具的重量 xyz:偏移距离的大小 验证:通过手动模式,切换至自定义工具,重定向 工件坐标(wob ...
- 机器人抓取(五)—— 手眼标定 hand eye calibration
1. 原理篇 参考:机器人手眼标定的基础理论分析 3D视觉之手眼标定 胡春旭:"手眼"结合完成物体抓取应用 在实际应用中,我们通常需要将相机观察到的外界环境中物体的姿态从相机坐标系 ...
- FANUC、ABB、YASKAWA、SCARA机器人入门书籍整理
1.工业机器人入门实用教程(FANUC机器人) 本书基于FANUC工业机器人,从机器人应用过程中需要找我的技能触发,由浅入深.循序渐进地介绍了FANUC机器人实用入门知识. 2.工业机器人入门实用教程 ...
最新文章
- java+自定义异常类+输入若干成绩 为负数时输出抛出异常_java+自定义异常类+输入若干成绩 为...
- 服务器中加速BIOS启动的方法
- 一个关于nvarchar字段排序,中英文混合排序的问题
- maven pom resources标签的使用示例
- 员工离职时被HR回复“猝死了再说”!HR道歉:没控制好情绪
- 多线程共享java_java多线程之共享资源
- 鸟哥的私房菜Linux 学习笔记之 Bash语法
- phpcms后台系统怎么去掉html目录_高标准 Vue+Antd 后台系统VueAntdAdmin
- Django + Uwsgi + Nginx 实现生产环境部署1
- Struts2不扫描jar包中的action
- Jsoup爬虫新手一
- Beego 使用笔记
- data1 op data2 c语言,编写一个简单计算器程序,输入格式为:data1 op data2。其中data1和data2是参加...
- Linux 系统设置静态ip地址
- tomcat6url请求400错误(%2F与%5C)
- 【AI视野·今日CV 计算机视觉论文速览 第186期】Fri, 6 Nov 2020
- 马蹄集------函数的幂
- java如何设置直线的宽度_设置线条的宽度lineWidth
- WinExec、ShellExecute、CreateProcess iexplore.exe打开网页
- 怎么解决电脑USB接口不识别U盘
热门文章
- Q-Vision+Kvaser CAN/CAN FD/LIN总线解决方案
- 【机器视觉】线阵相机模型说明以及使用HALCON标定助手对线阵相机进行标定
- 爬虫学习——大碗宽面b站和网易云可视化分析代码
- F28335学习之ADC配置
- scanf函数读取缓冲区数据的问题
- python有道批量单词音标整理-python调用有道智云API实现文件批量翻译
- 2021图像检索综述
- 雷电html查看程序编辑程序,NC程序编辑器(nEditor)
- 让你的手机不输kindle的3款epub阅读器
- 荐书 | 5本数学科普让你不再“畏惧”数学,感受数学的内在美