博舍

发那科机器人寄存器Ar 机器人编号数字代表什么

发那科机器人寄存器Ar

FANUC数据寄存器和位置寄存器的运用

一、寄存器指令Registers①寄存器指令R[i]i=1~200

②位置寄存器指令PR[i]i=1~100

③位置寄存器要素指令PR[i,j]i=1~100,j=1~6

其中,i表示寄存器的号码;j表示位置寄存器的要素号码;

若需要对默认寄存器数量进行扩展,可在控制启动模式中按图1所示完成设置:

(通过PREV+NEXT+重启控制柜进入控制启动(CTRLSTART)模式)

图1

(1)数值寄存器指令R[i]

数值寄存器指令支持“=”(赋值),“+”,“-”,“*”,“/”,“MOD”,“DIV”算术运算。

(2)位置寄存器指令PR[i]

位置寄存器指令支持“=”(赋值),“+”,“-”算术运算。

(3)位置寄存器要素指令PR[i,j]

位置寄存器要素指令支持“=”(赋值),“+”,“-”,“*”,“/”,“MOD”,“DIV”算术运算。

二、查看寄存器值(1)查看数值寄存器的值

步骤:

1)按【Data】键,再按F1【TYPE】(类型)出现以下内容(如下图2所示):

Registers:数值寄存器;

PositionReg:位置寄存器;

图2

2)移动光标选择【Registers】(数值寄存器),按【ENTER】(回车)值键,如图3所示;

图3

3)把光标移至寄存器号后,【ENTER】(回车)键,输入注释;

4)把光标移到值处,使用数字键可直接修改数值。

(2)查看位置寄存器的值

步骤:

1)按【Data】键,显示右图4;

图4

2)按F1【TYPE】(类型),出现以下内容:

Registers:数值寄存器;

PositionReg:位置寄存器;

3)移动光标选择【PositionReg】(位置寄存器),按【ENTER】(回车)键,如右图5所示;

图5

4)把光标移至寄存器号后,按【ENTER】(回车)键,输入注释。

5)把光标移到值处,按F4【POSITION】(位置)键,显示具体数据信息;

“R”表示已完成示教的位置寄存器

“*”表示尚未示教的位置寄存器

6)按F5【REPRE】(形式)键,如下图6所示,移动光标到所需要的项并按【ENTER】(回车)键,或通过数字键,可以切换数据形式;

•   Cartesian(正交):直角坐标系

•   Joint(关节):关节坐标系

图6

把光标移至数据处,可以用数字键直接修改数据。

6 机器人正运动学

目录

 

1.引言

2.齐次变换矩阵的三种解读

2.1坐标系表示

2.2坐标系变换

2.3点的操作算子

3.解决问题

3.1齐次变换矩阵的逆

3.2多重变换时的顺序

4.总结

1.引言

上一篇文章我们讲到了齐次变换矩阵,表面上看我们得到了一个十分简洁的表达式。如果你认为到这里关于齐次变换的问题已经十分明了那就大错特错了。相反,我认为这恰恰是混乱的开始。

举个例子,首先一个坐标系{A}绕其轴旋转得到坐标系{B},根据前面讲过的知识你很容易明白坐标系{A}和{B}之间的关系为。可是如果坐标系{B}再绕自身的轴旋转得到坐标系{C},那么坐标系{A}和坐标系{C}之间是什么关系呢?还有如果坐标系{B}绕坐标系{A}的轴旋转得到坐标系{D},那么坐标系{A}和坐标系{D}之间是什么关系呢?

你可能没有答案。课堂上这个问题也总是被匆匆略过,而我认为这里才是应该花大量的精力去讲解的地方。只告诉我当绕原坐标系旋转时变换矩阵要倒着乘,当绕新坐标系旋转时变换矩阵要正着乘我是无法接受的。

例子中的问题其实涉及到了齐次变换矩阵的几种解读,从这几种解读方式出发,我们很容易理解矩阵相乘的顺序到底是怎样的以及为什么是这样的。

2.齐次变换矩阵的三种解读

斯坦福大学公开课---机器人学,这门课对这三种解读给出了很恰当的总结:坐标系表示(coordinaterepresentation)、坐标系变换(coordinatetransformation)、点的操作算子(pointoperator)。接下来我们分别对它们进行解释。

2.1坐标系表示

所谓坐标系表示指的是,齐次变换矩阵可以用来表示一个坐标系。我们来看如下图两个坐标系{A}和{B}。通过上一篇文章机器人正运动学---齐次变换矩阵的介绍我们知道坐标系{A}和坐标系{B}之间的关系为:

                                      

在文章机器人正运动学---理解变换矩阵中我们介绍了旋转矩阵({A}和{B}的姿态关系)代表的是坐标系{B}三个轴的单位矢量在坐标系{A}中的投影(即在坐标系{A}中坐标系{B}的三轴单位矢量的坐标),在文章机器人正运动学---齐次变换矩阵中我们也看到({A}和{B}的位置关系)代表的是坐标系{B}的原点在坐标系{A}中的坐标。

我们知道,要想唯一确定一个坐标系需要两个要素,一个是原点,一个是轴矢量。这两个要素在上面的齐次变换矩阵中已经全部包含了,因此我们说齐次变换矩阵可以用来表示一个坐标系,而就是坐标系{B}在坐标系{A}中的表示

2.2坐标系变换

所谓坐标系变换指的是,齐次变换矩阵可以用来描述一个坐标系经过怎样的平移和旋转能够变换到另一个坐标系。举个例子,两个坐标系{A}和{B}之间的齐次变换矩阵可以表示为:

                                 

其中代表绕轴旋转对应的旋转矩阵,,代表在方向上平移1,2,3。这个时候我们就可以通过对坐标系{A}进行一些平移和旋转最终与坐标系{B}重合。这个操作过程对应于下面这张图。

我们把这个操作过程分为两个步骤。

第一步将坐标系{A}沿着橘色的向量平移至与坐标系{C}重合,我们很容易知道这个平移量是;

第二步将坐标系{C}绕它的轴旋转至与坐标系{B}重合,同样容易知道这个旋转量是。因此我们说齐次变换矩阵可以用来描述坐标系的变换关系,而就是坐标系{A}经过平移和旋转可以得到坐标系{B}。我们可以形象地描述(不一定恰当)这个变换为:

                                      

2.3点的操作算子

所谓点的操作算子指的是,齐次变换矩阵可以用来对同一个坐标系内的点进行平移和旋转操作。注意这种理解和前面两种大不一样。前两种都是在描述两个坐标系之间的关系。在讨论齐次变换矩阵对点的操作时我们的讨论仅限于一个坐标系。

举个例子在坐标系{A}中有一个点,我们希望这个点绕坐标系{A}的轴旋转得到一个新的点。这个时候应该怎么做呢?很简单,我们写出如下的变换矩阵:

                             

用这个变换矩阵去乘点就可以得到点啦。

如果你觉得理解这个有点困难,可以倒回到第一种理解来解释对点的操作问题。这个时候我们假设有一个坐标系{B}开始时与坐标系{A}完全重合,而点又固定在坐标系{B}中,这样在把点绕坐标系{A}的轴旋转时,坐标系{B}同样是绕坐标系{A}的轴旋转。此时两个坐标系之间的变换矩阵即为。由于点固定在坐标系{B}中,因此其在坐标系{B}中的坐标不变,因此经过旋转之后点在坐标系{A}中的坐标即为。我们可以看出这个点就是前面提到的在坐标系{A}中的点。

光用文字来描述似乎有些凌乱,下面我们用图把上面一段话再重新捋一遍,首先我们假设空间中一点在坐标系{A}中的坐标为,为了便于看图,坐标系我们只画出y,z两个轴,所有点的x坐标均为0。与点固连的坐标系称为{B}。坐标系{B}最开始与坐标系{A}重合,如下图所示就是问题的初始状态。

接下来开始旋转操作。我们是希望点沿坐标系{A}的轴旋转,注意因为坐标系{B}和点是固连在一起的,所以坐标系{B}也会绕着坐标系{A}的轴旋转,经过旋转之后就得到如下的图的状态。点就是点旋转之后对应的点。这里有一点需要特别注意,由于坐标系{B}与点固连,那么经过旋转后得到的点在坐标系{B}中的坐标数值实际上没有发生任何变化(和最开始的时候点在坐标系{A}中的坐标值是一样的),请仔细体会这句话。

 下面我们把变换前后的两种状态合并起来得到下面的图

至此我们可以得出这样一个结论,点在坐标系{A}中的坐标值与点在{B}中的坐标值是一致的。那么如何求解点在坐标系{A}中的坐标值呢?仔细思考一下是不是这样一种表达:

                

解释一下这个公式,代表点在坐标系{A}下的坐标。代表在坐标系{B}下的坐标。还记得我们之前说的吗,在坐标系{B}下的坐标数值上与在坐标系{A}中的坐标数值一致!以上公式可以改写为

               

至此我们看到实现了将点旋转到点。你也可以清晰的看到上一个公式点的上标都是A,和我们之前说的同一个空间点在不同坐标系下的表达还是有区别的。

3.解决问题3.1齐次变换矩阵的逆

上一篇文章机器人正运动学---齐次变换矩阵中我们遗留了一个问题就是齐次变换矩阵的逆。通常而言求任意矩阵的逆是比较困难的。但是由于齐次变换矩阵的良好性质以及很强的几何特征,我们很容易直接写出它的逆。

已知如下的齐次变换矩阵:

                                       

首先看旋转部分,在文章机器人正运动学---理解变换矩阵中我们提到过的列代表坐标系{B}的三轴矢量在坐标系{A}中的投影,行代表坐标系{A}的三轴矢量在坐标系{B}中的投影,因此,的转置就是其逆。

其次来看平移部分,代表坐标系{B}的原点在坐标系{A}中的坐标,而我们需要的是坐标系{A}的原点在坐标系{B}中的坐标,即,从几何的角度看,这两个向量恰好是相反向量,因此我们首先把向量取反得到。到这一步还没有完,因为目前为止这个向量是在坐标系{A}中描述的,因此我们要将它变换到坐标系{B}中的描述,即为,其中代表的转置。

至此我们得到了坐标系{A}相对于坐标系{B}的姿态,以及坐标系{B}中描述的坐标系{A}原点坐标。因此变换矩阵的逆即为:

                   

3.2多重变换时的顺序

在此我们解决文章开头提出的多重变换时如何排列变换矩阵。其实就是两种情况,第一种情况是所有的变换都相对于最开始的坐标系;第二种情况是所有变换都相对于新得到的坐标系。我们分情况讨论。

首先来看第一种情况,坐标系{A}绕其轴旋转得到坐标系{B},之后坐标系{B}又绕坐标系{A}的轴旋转得到坐标系{C}。此时我们用对齐次变换矩阵的第三种理解来求得坐标系{C}和坐标系{A}之间的关系。我们假设在坐标系{A}中有一个点,在第一次变换时我们假设有一个坐标系{T1}与坐标系{A}重合,同时点固定在坐标系{T1}中,经过第一次变换后得到在{A}中新的点的坐标为(注意这是点在坐标系{A}中的坐标)。在第二次变换时我们假设又有一个坐标系{T2}与坐标系{A}重合,同时点又固定在坐标系{T2}中,经过第二次变换后得到在{A}中新的点的坐标为,因此我们可以最终确定坐标系{A}和{C}之间的变换关系为:

                                      

再来看第二种情况,坐标系{A}绕其轴旋转得到坐标系{B},之后坐标系{B}又绕其轴旋转(注意这里是绕坐标系{B}的轴)。此时我们用齐次变换矩阵的第二种理解来求坐标系{C}和坐标系{A}之间的关系。设空间中有一个点,它在坐标系{C}中的坐标为,我们首先看坐标系{B}和坐标系{C}之间的关系,由于{B}绕自身的轴旋转就可以得到{C},因此,同一个空间点在坐标系{B}中的坐标为。我们又知道坐标系{A}绕其轴旋转得到坐标系{B},因此,同一个空间点在坐标系{A}中的坐标为,因此我们可以最终确定坐标系{A}和{C}之间的变换关系为:

                                      

这也验证了文章开头提出的结论,那就是绕着原坐标系旋转就倒着乘,绕着新坐标系旋转就正着乘。

4.总结

这篇文章主要介绍了齐次变换矩阵的三种理解以及解决了一个比较容易造成混乱的多重变换时变换矩阵的顺序问题。由于个人能力有限,所述内容难免存在疏漏,欢迎指出,欢迎讨论。

下一篇:7. 机器人正运动学---连杆坐标系与DH参数

ABB机器人编程基本知识汇总

3、Saveprogram:存储更改后的现有程序。

4、Saveprogramas:存储一个新程序。

5、Print:打印程序,现已经不使用。

6、Preferences:定义用户化指令集。

7、Checkprogram:检验程序,光标会提示错误。

8、Close:在程序储存器中关闭程序。

9、Savemodule:存储更改后的现有模块。(只在Module窗口中存在)

10、Savemoduleas:存储一个新模块。(只在Module窗口中存在)

2、菜单键Edit:

1、Cut:剪切,可能会丢失指令或数据。

2、Copy:复制。

3、Paste:粘贴,将剪切或复制的指令或数据粘贴到相应位置。

4、GotoTop:将光标移至顶端。

5、GotoBottom:将光标移至底端。

6、Mark:定义一块,涂黑部分。

7、ChangeSelected:修改指令中数据,可直接将光标移至相应位置按回车键。

8、Showvalue:输入数据,可直接将光标移至相应数据按回车键。

9、Modpos:修改机器人位置,功能键上有。

10、Search:寻找指令,程序复杂时很有用。

11、功能键:Copy、Paste、Modpos在菜单键Edit中可以找到。

三、指令:

1、基本运动指令:

MoveL:线性运动(Linear)

MoveJ:关节轴运动(Joint)

MoveC:圆周运动(Circular)

p1:目标位置。(robtarget)

v100:运行速度mm/s。(speeddata)

z10:转弯区尺寸mm。(zonedata)

tool1:工具中心点TCP。(tooldata)

(1)速度选择:mm/s

·将光标移至速度数据处,按回车键,进入选择窗口,选择所需速度。

·机器人运行速度属于数据类型speeddata。

·常用运行速度在Base模块中已经定义。

·特殊速度可自行定义。

·max速度为v5000,Base模块中定义最大速度为v7000,最大速度机器人未必能达到。

(2)转弯区尺寸选择:mm

·将光标移至转弯区尺寸数据处,按回车键,进入选择窗口,选择所需转弯区尺寸。

·机器人转弯区尺寸属于数据类型zonedata。

·常用转弯区尺寸在Base模块中已经定义。

·特殊转弯区尺寸可自行定义。

·fine指机器人TCP达到目标点,并在目标点速度降为零,连续运行时,机器人动作有停顿。

·zone指机器人TCP不达到目标点,连续运行时,机器人动作圆滑、流畅。

·Base模块中已经定义的转弯区尺寸最小为z1,最大为z200。

·尽量使用较大的转弯区尺寸。

(3)参变量:

光标指在当前指令时,按功能键OptArg,可选择参变量。

·[Conc](switch)协作运动。机器人未移动至目标点,已经开始执行下一个指令。

·[ToPoint](robtarget)在采用新指令时,目标点自动生成*。·[V](num)定义速度mm/s。

·[T](num)定义时间s。通过时间决定速度。

·[Z](num)定义转弯区尺寸mm。

·[Wobj](wobjdata)采用工件系座标系统。

(4)函数Offs:

MoveLp1,v100,…

MoveLp2v100,…

MoveLp3,v100,…

MoveLp4,v100,…

MoveLp1,v100,…

·为了精确确定p1、p2、p3、p4点,可以使用函数Offs。

·Offs(p1,x,y,z)代表一个离p1点X轴偏差量为x,Y轴偏差量为y,Z轴量为z的点。

·将光标移至目标点,按回车键,进入目标点选择窗口,在功能键上选择Func,采用切换选择所用函数Offs。

MoveLp1,v100,…

MoveLOffs(p1,100,0,0),v100,…

MoveLOffs(p1,100,-50,0),v100,…

MoveLOffs(p1,0,-50,0),,v100,…

MoveLp1,v100,…

2、输入输出群指令:

·do指机器人输出信号。

·di指输入机器人信号。

·输入输出信号必须在系统参数中定义。

·输入输出信号有两种状态,1(High)为接通,0(Low)为断开。

(1)输出信号指令:

A、输出输出信号指令:setdoldo1:输出信号名。(signaldo)将一个输出信号赋值为1。

B、复位输出信号指令:Resetdo1do1:输出信号名。(signaldo)将一个输出信号赋值为0。

C、输出脉冲信号指令:PulseDOPLength:=0.2,do1do1:输出信号名。(signaldo)输出一个脉冲信号,脉冲长度为0.2s。

参变量:

·[PLength](num)脉冲长度,0.1s-32s。

(2)输入信号指令:

WaitDIdi1,1

di1:输入信号名。(signaldi)

3、参变量:

·[MaxTime](num)等待输入信号最长时间s。

·[TimeFlag](bool)逻辑量,TRUE或FALSE。

如果只选用参变量[MaxTime],等待超过最长时间后,机器人停止运行,并显示相应出错信息。如果同时选用参变量[MaxTime]与参变量[TimeFlag],等待超过最长时间后,无论是满足等待的状态,机器人将自动执行下一句指令。如果在最长等待时间内得到相应信号,将逻辑量置为FALSE,如果超过最长等待时间,逻辑量置为TRUE。

4、通信指令(人机对话):

(1)清屏指令:TPErase

(2)写屏指令:PWriteStringtring:显示的字符串。(string)在示教器显示屏上显示字符串数据,也可以用"……"形式直接定义字符串,每一个写屏指令最多显示80个字符。

(3)功能键读取指令:TPReadFK,Answer,Text,FK1,FK2.FK3,FK4,FK5Answer:赋值数字变量。(num)Text:显示屏显示的字符串。(string)FK1:功能键1显示的字符串。(string)FK2:功能键2显示的字符串。(string)FK3:功能键3显示的字符串。(string)FK4:功能键4显示的字符串。(string)FK5:功能键5显示的字符串。(string)

在示教器显示屏上显示字符串数据,在功能键上显示相应字符串,选择按相应的功能键,机器人自动给数字变量赋于相应数值1-5。

5、程序运行停止指令:

(1)停止指令Stop:机器人停止运行,软停止指令(SoftStop),直接在下一句指令启动机器人。

(2)停止指令Exit:机器人停止运行,并且复位整个运行程序,将程序运行指针移至主程序第一行。机器人程序必须从头运行。

(3)停止指令Break:机器人立刻停止运行,有冲击,直接在下一句指令启动机器人。

6、计时指令:

(1)时钟复位指令:ClKResetClockClock:机器人时钟名称。(clock)

(2)时钟启动指令:ClKStartClockClock:机器人时钟名称。(clock)

(3)时钟停止指令:ClKStopClockClock:机器人时钟名称。(clock)

7、速度控制指令:VelSet,Override,Max

Override:机器人运行速率%。(num)

Max:机器人最大速度mm/s。(num)

每个机器人运动指令均有一个运行速度,在执行速度控制指令后,机器人实际运行速度为运动指令规定运行速度乘以机器人运行速率(Override),并且不超过机器人最大运行速度(Max)。

8、等待指令:

WaitTime,Time

Time:机器人等待时间s。(num)

等待指令只是让机器人程序运行停顿片刻。

9、赋值指令:

Data:=Value

Data:被赋值的数据。(All)

Value:数据被赋予的值。

举例:

ABB:=FALSE;(bool)

ABB:=reg1+reg3;(num)

ABB:="WELCOME";(string)

Home:=p1;(robotarget)

tool1.tframe.trans.x:=tool1.tframe.trans.x+20;(tooldata)

10、负载定义指令:

GripLoadLoad

Load:机器人当前负载,数据类型为Loaddata。

免责声明:本文系网络转载,版权归原作者所有。但因转载众多,无法确认真正原始作者,故仅标明转载来源。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容!本文内容为原作者观点,并不代表本公众号赞同其观点和对其真实性负责。返回搜狐,查看更多

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇