97人洗澡人人澡人人爽人人模,欧美裸交xxxx,免费麻花豆传媒剧国产mv在线,欧美freesex10一13,67194熟妇在线观看线路

更多聯(lián)系我們

廣州子銳機(jī)器人技術(shù)有限公司

電話:400-878-2528
手機(jī):15889988091
傳真:020-32887675
地址:廣州市番禺區(qū)東環(huán)街金山谷創(chuàng)意八街1號(hào)109


官方微信


添加微信幫助解決機(jī)器人故障

首頁 > ABB機(jī)器人維修 >

ABB機(jī)器人維修-ABB機(jī)器人創(chuàng)建碼垛程序

日期:2018-05-22 人氣: 來源:www.sxjktj.cn 作者:ABB機(jī)器人維修

簡介:1)什么是碼垛? 有規(guī)律的移動(dòng)機(jī)器人進(jìn)行抓取及放置 2)ABB機(jī)器人維修-如何簡便碼垛程序 設(shè)置好工件坐標(biāo)系,工具,對(duì)第一個(gè)碼垛放置點(diǎn)進(jìn)行示教,xyz方向的間距和個(gè)數(shù)可設(shè) 3)如何創(chuàng)建 創(chuàng)建m_pallet模塊 建立兩個(gè) 在init 程序里,設(shè)置xyz方向個(gè)數(shù)和各方向間距……
  
  1)什么是碼垛?
  有規(guī)律的移動(dòng)機(jī)器人進(jìn)行抓取及放置
  2)ABB機(jī)器人維修-如何簡便碼垛程序
  設(shè)置好工件坐標(biāo)系,工具,對(duì)第一個(gè)碼垛放置點(diǎn)進(jìn)行示教,xyz方向的間距和個(gè)數(shù)可設(shè)
  3)如何創(chuàng)建
  創(chuàng)建m_pallet模塊
        ABB機(jī)器人維修-ABB機(jī)器人創(chuàng)建碼垛程序
  建立兩個(gè)
        ABB機(jī)器人維修-ABB機(jī)器人創(chuàng)建碼垛程序
  在init 程序里,設(shè)置xyz方向個(gè)數(shù)和各方向間距
        ABB機(jī)器人維修-ABB機(jī)器人創(chuàng)建碼垛程序
  在p_main程序里,創(chuàng)建機(jī)器人移動(dòng)到pHome點(diǎn),pPick位置(抓取位置),以及第一個(gè)放置點(diǎn)
  通過三層for循環(huán),進(jìn)行碼垛。實(shí)例程序?yàn)橄葂方向,再y方向,再z方向    
        ABB機(jī)器人維修-ABB機(jī)器人創(chuàng)建碼垛程序
 
  其中偏移如下:
  創(chuàng)建有規(guī)律的機(jī)器人旋轉(zhuǎn)
        ABB機(jī)器人維修-ABB機(jī)器人創(chuàng)建碼垛程序
  1)如果有上圖所示6個(gè)產(chǎn)品位置要吸取,如何最快速的創(chuàng)建點(diǎn)位?(純示教?Naive,太體力活了。)
  2)如下圖,我們可以發(fā)現(xiàn)1號(hào)位置和0號(hào)位置姿態(tài)一樣,1號(hào)相對(duì)于0號(hào)就是一個(gè)半徑的偏移,2-6號(hào)位置相對(duì)于0號(hào)也都是一個(gè)半徑的偏移,2-6號(hào)姿態(tài)均朝向圓心。由于圖中為6個(gè),即從2號(hào)開始,每個(gè)點(diǎn)姿態(tài)相對(duì)于1號(hào)旋轉(zhuǎn)了60°
        ABB機(jī)器人維修-ABB機(jī)器人創(chuàng)建碼垛程序
  3)是不是可以只要示教0號(hào)點(diǎn)位置,同時(shí)已知半徑(未知的話,自己量一下),就能自動(dòng)算出其他6個(gè)點(diǎn)位置而不用示教了呢?答案當(dāng)然是可以的。!
  4)由于涉及到坐標(biāo)系偏移和旋轉(zhuǎn),所以要做好Tool和工件坐標(biāo)系
  5)創(chuàng)建工具gripper_dual,假設(shè)z方向100,工具的Z方向?yàn)楣ぞ哐由旆较?br />          ABB機(jī)器人維修-ABB機(jī)器人創(chuàng)建碼垛程序
  6)如下圖創(chuàng)建坐標(biāo)系,圓心在中間,0號(hào)到1號(hào)方向?yàn)閄,y如圖。下圖中的工件坐標(biāo)系Z朝下(滿足右手法則)。這樣創(chuàng)建主要是為了計(jì)算方便。
         ABB機(jī)器人維修-ABB機(jī)器人創(chuàng)建碼垛程序
  7)在workwobject2坐標(biāo)系,gripper_dual工具下,示教中間產(chǎn)品位置Target_center,此時(shí)工具的Z必須垂直于產(chǎn)品平面,即工具的Z朝下。(其實(shí)只是要用這個(gè)點(diǎn)的姿態(tài)和z,這個(gè)點(diǎn)的xy都是0,因?yàn)檫@個(gè)點(diǎn)在workobject2坐標(biāo)系處于原點(diǎn),即xy都是0)
  8)設(shè)置圓心到第一個(gè)產(chǎn)品的距離(即半徑radius),這里舉例
  9)我們假設(shè)第一個(gè)位置叫Target1,則在workobject2坐標(biāo)系下
  Target1:=Target_center;!先讓Target1位置和姿態(tài)都等于
  Target1.trans.x:=radius*cos(60*0);!重新計(jì)算位置的
  Target1.trans.y:=radius*sin(60*0);!重新計(jì)算位置的
  Target1:=RelTool(Target1,0,0,0Rz:=0*60);!得到計(jì)算后的位置x和y后,tcp繞著工具的Z旋轉(zhuǎn)60°。
  10)通過上述例子,就得到了Target1位置,注意是在workobject2坐標(biāo)系下。
  11)再配合test等流程,就可以比較簡單的完成6個(gè)位置的計(jì)算和移動(dòng),如下
    PROC main()
    radius:=21.45;
    count1:=1;
    WHILEcount1<7 DO
    rHome;
    cal;
    routine1;
    count1:=count1+1;
    ENDWHILE
    ENDPROC 
    PROC routine1()
    MoveJoffs(Target_temp,0,0,-30),v500,z1,gripper_dualWObj:=Workobject_2;
    MoveLTarget_temp,v500,z1,gripper_dualWObj:=Workobject_2;
    WaitTime 1;
    MoveLoffs(Target_temp,0,0,-30),v500,z1,gripper_dualWObj:=Workobject_2;
    ENDPROC
    PROC cal()
    Target_temp:=Target_center;
    TEST count1
    CASE 1:
    Target_temp.trans.x:=radius*cos(60*(count1-1));
    Target_temp.trans.y:=radius*sin(60*(count1-1));
    Target_temp:=RelTool(Target_temp,0,0,0Rz:=(count1-1)*60);
    CASE 2:
    Target_temp.trans.x:=radius*cos(60*(count1-1));
    Target_temp.trans.y:=radius*sin(60*(count1-1));
    Target_temp:=RelTool(Target_temp,0,0,0Rz:=60);
    CASE 3:
    Target_temp.trans.x:=radius*cos(60*(count1-1));
    Target_temp.trans.y:=radius*sin(60*(count1-1));
    Target_temp:=RelTool(Target_temp,0,0,0Rz:=120);
    CASE 4:
    Target_temp.trans.x:=radius*cos(60*(count1-1));
    Target_temp.trans.y:=radius*sin(60*(count1-1));
    Target_temp:=RelTool(Target_temp,0,0,0Rz:=180);
    CASE 5:
    Target_temp.trans.x:=radius*cos(60*(count1-1));
    Target_temp.trans.y:=radius*sin(60*(count1-1));
    Target_temp:=RelTool(Target_temp,0,0,0Rz:=-120);
    CASE 6:
    Target_temp.trans.x:=radius*cos(60*(count1-1));
    Target_temp.trans.y:=radius*sin(60*(count1-1));
    Target_temp:=RelTool(Target_temp,0,0,0Rz:=-60);
    ENDTEST
    ENDPROC
    PROC rHome()
    MoveJpHome,v500,z1,gripper_dualWObj:=wobj0;
    ENDPROC

文章來源,工業(yè)機(jī)器人維修官網(wǎng):www.sxjktj.cn