南通不锈钢保温工程 ABB位姿POSE
ABB机器东谈主摄取pose类型的数据来示意其在笛卡尔空间坐标系的位置南通不锈钢保温工程,常见的机器东谈主点位数据类型robtarget中的trans和rot即是个pose。
位姿=>位置+姿态 pose=>trans+rot
trans属于复型数据,内部有X,Y,Z三个元素,用来存储点位在空间中的位置。
rot属于复型数据,内部有q1,q2,q3,q4 四个元素,用来存储点位在空间位置的向(姿态) ,咱们经常称其为四元数。固然关于空间姿态,也可通过欧拉角示意(旋转章程为Z,Y,X)即坐标系先绕着原有的坐标系的Z轴旋转α度,然后再绕现时新的坐标系的Y轴旋转β度,后再绕现时新的坐标系的的X轴旋转γ度
***介怀 空间的旋转不抖擞交换律,不同的旋转章程会致不同的成果
经常咱们需要疗养角度是不好愚弄四元数进走运算的,需要将四元数转成欧拉角后,不错直不雅的去进行修改。
EulerZYX(\X,object.rot)领导不错将四元数转机成对应的欧拉角,举例上述领导用的可选参数是\X,那么索求出来的即是绕X轴旋转的角度,固然修改为\Y,或者\Z也可索求出来绕Y轴的角度和绕Z轴的角度。
OrientZYX(anglez,angley,anglex)领导将欧拉角鼎新为四元数,介怀3个参数区分是Rz,Ry,Rx,章程弗成安祥乱输入,上头才说了空间的旋转不抖擞交换律,不同的旋转章程会致不同的成果
如何取得个点位的位姿。从基坐标启动,先在空间中偏移Trans(X,Y,Z)到空间中去(坐标2),然后在坐标2的基础上进行RZ旋转(坐标3),铁皮保温施工然后在坐标3的基础上RY旋转(坐标4),后在坐标4的基础上RX旋转取得咱们的谈判点
个器具数据内部也包含了POSE(tframe)的数据
图片南通不锈钢保温工程南通不锈钢保温工程
个工件数据内部也包含了POSE(uframe)的数据
图片
到这里位姿的基本情况也就先容罢了,接下来望望位姿联系的函数应用。
、PoseMult - 倍增姿态数据
PoseMult(Pose Multiply)用于野心两次姿态鼎新的居品。典型用途是野心个新的姿态,以四肢影响初姿态的位移成果。
图片
(1坐倡导鼎新)接下来愚弄该领导完成工件Workobject_1上的点位鼎新为基坐标上的点位P30。
pose1即是工件数据的uframe,pose2即是P20在工件上的位姿。这么就得出来了P20在基坐倡导位姿AAA
地址:大城县广安工业区图片
MoveJ phome,V500,Z0,MyTool\WObj:=wobj0;盛开到待机点MoveL P10,V500,Z0,MyTool\WObj:=wobj0;盛开到wobj0上的P10,MoveJ phome,V500,Z0,MyTool\WObj:=wobj0;盛开到待机点MoveL P20,V500,Z0,MyTool\WObj:=Workobject_1;盛开到Workobject_1上的P20 AAA:=PoseMult(Workobject_1.uframe,[P20.trans,p20.rot]);将Workobject_1工件上点位P20的位姿索求出来p30.trans:=AAA.trans;P30.rot:=AAA.rot; 将索求出来的点位赋值到个新的点P30MoveJ phome,V500,Z0,MyTool\WObj:=wobj0;盛开到待机点MoveJ p30,V500,Z0,MyTool\WObj:=wobj0;盛开到wobj0上的P30(2位姿的疗养右乘,乘在右边)
关于欧拉角旋转的坐标系,旋转矩阵按右乘章程野心 现时坐标系的平移,旋转历久绕着本身坐标系进行(先平移再旋转)。接下来将P10点沿着现时点位X向偏移-500,然后RZ旋转45度取得个新的位姿AAA,然后将AAA赋值给新的点位P30.
图片
MoveJ phome,V500,Z0,MyTool\WObj:=wobj0;MoveJ P10,V500,Z0,MyTool\WObj:=wobj0;AAA:=PoseMult([P10.trans,p10.rot],[[-500,0,0],orientzyx(45,0,0)]);P30.trans:=AAA.trans;P30.rot:=AAA.rot;MoveJ P30,V500,Z0,MyTool\WObj:=wobj0;
(3位姿的左乘,乘在左边)
举例FANUC机器东谈主摄取的定角旋转的体式示意机器东谈主的位姿,现时坐标系的旋转平移历久围绕着固定的坐标系进行(先旋转再平移)。接下来将P10点绕基坐倡导RZ旋转45度取得个新的位姿AAA,然后将AAA赋值给新的点位P30.
图片
MoveJ phome,V500,Z0,MyTool\WObj:=wobj0;MoveJ P10,V500,Z0,MyTool\WObj:=wobj0;AAA:=PoseMult([[0,0,0],orientzyx(45,0,0)],[P10.trans,p10.rot]);P30.trans:=AAA.trans;P30.rot:=AAA.rot;MoveJ P30,V500,Z0,MyTool\WObj:=wobj0;由于ABB使用的是欧拉角(右乘),是以咱们就用乘在右边的就好了,左乘了解下旨趣就好。
追忆PoseMult即是不错更正现时的位置和姿态。
二、只旋转角度 ori new :=ori old * ori Delta
举例需要将P10确现时位置 需要RZ旋转45度,固然也有其他函数RelTool不错齐备
图片
MoveJ phome,V500,Z0,MyTool\WObj:=wobj0;MoveJ P10,V500,Z0,MyTool\WObj:=wobj0;P30:=P10;P30.rot:=P10.rot*orientzyx(45,0,0);MoveJ P30,V500,Z0,MyTool\WObj:=wobj0;
三、只更正位置 PoseVect
举例咱们不错修改现时TCP的位置产生个新的TCP,在Mytool的基础上沿着Z向偏移100产生个新的TCP Mytool2
图片
图片
MoveJ phome,V500,Z0,MyTool\WObj:=wobj0;MoveJ P10,V500,Z0,MyTool\WObj:=wobj0;MyTool2.tframe.trans:=PoseVect(Mytool.tframe,[0,0,100]);MoveJ P10,V500,Z0,MyTool2\WObj:=wobj0;四、位姿的逆运算
启动点P0变换位姿pose1取得P2,然后从P2若何大要回到P1呢,因为ABB使用的是欧拉角右乘(先平移,再Rz.Ry.Rx的固定则程旋转),是以接下来需要从点P2逆位姿变化取得P0
图片
图片
MoveJ phome,V500,Z0,MyTool\WObj:=wobj0; 盛开到待机点MoveJ P10,V500,Z0,MyTool\WObj:=wobj0;盛开到谈判点P10A:=PoseMult([P10.trans,p10.rot],[[-100,0,0],orientzyx(0,45,0)]);在点P10上位姿变化取得P20的位姿P20:=[A.trans,A.rot,P10.robconf,P10.extax];MoveJ P20,V500,Z0,MyTool\WObj:=wobj0;AA:=PoseInv([[-100,0,0],orientzyx(0,45,0)]);算出P10到P20的逆变换AAA:=PoseMult([P20.trans,p20.rot],AA);在P20上位姿逆运算回到P10P30:=[AAA.trans,AAA.rot,P20.robconf,P20.extax];此时的P30和P10是同位置MoveJ P30,V500,Z0,MyTool\WObj:=wobj0;本站仅提供存储就业,通盘实践均由用户发布,如发现存害或侵权实践,请举报。 相关词条:不锈钢保温施工
塑料管材生产线
钢绞线厂家玻璃棉板
