0機(jī)械臂控制和裝配計(jì)劃相結(jié)合的精密機(jī)械臂摘要本文研究了如何實(shí)現(xiàn)對(duì)兩個(gè)手指精密機(jī)械手進(jìn)行自動(dòng)裝配操作。提出了一個(gè)多層次裝配支持系統(tǒng)。在任務(wù)規(guī)劃層的基礎(chǔ)上,計(jì)算機(jī)輔助設(shè)計(jì)(CAD)模型、裝配序列最先產(chǎn)生,必要的技能信息也從此分解而得。裝配順序?yàn)樵诩寄芊纸鈱拥臋C(jī)器人技能。這些技能,在機(jī)器人控制層進(jìn)行管理和執(zhí)行。實(shí)驗(yàn)結(jié)果表明了該系統(tǒng)的可行性和有效性。關(guān)鍵詞 機(jī)械手 裝配計(jì)劃 程序分解 自動(dòng)裝配1 簡(jiǎn)介由于微電子機(jī)械系統(tǒng)(HEMS )技術(shù),許多產(chǎn)品都變得非常小而復(fù)雜的,如麥克風(fēng),微光學(xué)元件,微流體生物醫(yī)學(xué)設(shè)備,創(chuàng)造增加了對(duì)微型零件的自動(dòng)化精密裝配技術(shù)和系統(tǒng)的需求。在半自動(dòng)化或自動(dòng)化裝配中,許多努力都是以微組裝技術(shù)為重點(diǎn)。然而,高靈活性,效率高和可靠性好的微組裝技術(shù),還是有特深入研究。這篇文章研究了如何實(shí)現(xiàn)對(duì)兩個(gè)手指微操作機(jī)械手自動(dòng)裝配操作。提出了一個(gè)多層次裝配支持系統(tǒng)。自動(dòng)裝配是一個(gè)復(fù)雜的問(wèn)題,可能涉及許多不同的問(wèn)題,如任務(wù)計(jì)劃,裝配順序的產(chǎn)生,執(zhí)行和控制等等。它可以簡(jiǎn)單地分為兩個(gè)階段:裝配計(jì)劃和機(jī)器人控制。在裝配計(jì)劃階段,生成裝配所需的信息,如裝配順序。在機(jī)器人控制階段,由裝配計(jì)劃階段產(chǎn)生的信息驅(qū)動(dòng)機(jī)器人,并控制裝配作業(yè)。程序可以作為裝配計(jì)劃到機(jī)器人控制的接口?;诔绦蚧膸讉€(gè)機(jī)器人系統(tǒng)己有報(bào)道。這些系統(tǒng)背后的基本理論是機(jī)器人編程。機(jī)器人的動(dòng)作被指定為技術(shù)單元,在此基礎(chǔ)上,裝配的任務(wù)是手動(dòng)編寫(xiě)程序。通過(guò)這些程序,機(jī)器人被控制去自動(dòng)完成組裝任務(wù)。一個(gè)以程序?yàn)榛A(chǔ)的微操作系統(tǒng)已經(jīng)在作者的實(shí)驗(yàn)室完成,它可以實(shí)現(xiàn)許多顯微操作。在該系統(tǒng)中,裝配任務(wù)被手動(dòng)分成技能順序,并且編譯成一個(gè)文件。再導(dǎo)入文件到系統(tǒng)中,系統(tǒng)可自動(dòng)執(zhí)行裝配任務(wù)。本文試圖探討一個(gè)好用,并且簡(jiǎn)單的順序代法,以減輕手工編程的負(fù)擔(dān)。它是一種有效的方法,從幾何計(jì)算機(jī)輔助設(shè)計(jì) CAD 模型確定裝配順序。許多方法已經(jīng)被提出。本文采用一種簡(jiǎn)單的方法來(lái)生成裝配序列。它與低層次的 CAD 數(shù)據(jù)模型結(jié)構(gòu)無(wú)關(guān),并且可以與許多商業(yè) CAD 軟件包提供應(yīng)用程序編程接口(API)相連。在提出的方法中,不同的組件之間的關(guān)系圖是首先通過(guò)分析裝配模型而建立,然后,在圖的基礎(chǔ)上搜索可能的順序。根據(jù)某些標(biāo)準(zhǔn),最終得到最優(yōu)順序。1把裝配順序分解成機(jī)器人技術(shù)順序,有些作品被報(bào)道。在 Nnaji et al.的作品中,按照事先確定的格式,裝配任務(wù)命令被擴(kuò)展到更詳細(xì)的命令,它可以作為機(jī)器人技術(shù)出現(xiàn)。Mosemann 和 Wahl 的分解方法是基于自動(dòng)生成裝配計(jì)劃的圖表 AND/OR 的分析.本文提出了一種方法來(lái)指導(dǎo)程序分解。零件的裝配過(guò)程分成不同的階段,并且部件處于不同的狀態(tài)。具體的工作流程使部件從一個(gè)狀態(tài)到另一個(gè)狀態(tài)。每個(gè)工作流程與一個(gè)程序發(fā)生器相連。根據(jù)工作流程不同有開(kāi)始狀態(tài)和目標(biāo)狀態(tài),程序生成器產(chǎn)生一系列的命令,使部件進(jìn)一步到達(dá)它的最終狀態(tài)。這里提出了系統(tǒng)的層次結(jié)構(gòu),關(guān)于如何通過(guò)多個(gè)層次利用機(jī)器人組裝產(chǎn)品的轉(zhuǎn)配信息。最上層是裝配任務(wù)計(jì)劃。任務(wù)計(jì)劃和命令生成所需要的信息從 CAD 模型中提取,并保存在數(shù)據(jù)庫(kù)中。在 CAD 模型的基礎(chǔ)上,裝配任務(wù)順序生成。在命令分解層,任務(wù)分解為程序序列。生成的程序在機(jī)器人控制層管理和執(zhí)行。2 任務(wù)計(jì)劃程序是不能直接使用在裝配計(jì)劃階段,而是使用任務(wù)。一個(gè)任務(wù)可以完成了裝配的一系列操作,例如,從通過(guò)移動(dòng)部件定位一個(gè)部件,到和另一個(gè)部件進(jìn)行組裝。換句話說(shuō),一個(gè)任務(wù)包括許多功能,它們可能通過(guò)幾個(gè)不同程序來(lái)完成。一個(gè)任務(wù)是定義為:T=(基礎(chǔ)部件,組裝部件,操作)Base_Part 和 Assembly_Part 是兩個(gè)部件組裝在一起。Base_Part 固定在工作臺(tái)上,而Assembly_Part 是通過(guò)機(jī)器人的抓取,組裝到 Base_Part 上。操作描述了 Assembly_Part與 Base 一 Part 如何組裝。操作∈{Insertion_T, screw_T, align_T,…}.對(duì)微細(xì)結(jié)構(gòu)通常是簡(jiǎn)單的,他們可以通過(guò)實(shí)體幾何((CSG)來(lái)建立模型。目前,許多商業(yè) CAD 軟件包支持 3D CSG 建模。裝配模型包含兩個(gè)部件,具有一定的裝配關(guān)系——定義如何將這兩個(gè)部件進(jìn)行組裝。在 CAD 模型中,這種關(guān)系被幾何約束條件限定。幾何信息不能直接用于指導(dǎo)裝配操作,我們能從 CAD 模型裝配操作所需的必要信息。通過(guò)搜索裝配 CAD 模型中定義的裝配樹(shù)和幾何關(guān)系(配偶關(guān)系),我們可以生成一個(gè)零件之間的關(guān)系圖。在圖中,節(jié)點(diǎn)表示零件。如果節(jié)點(diǎn)連接,這意味著在連接的節(jié)點(diǎn)(零件 )有裝配關(guān)系。2. 1 裝配方向在 CSG 中,兩個(gè)零件之間的關(guān)系,幾何約束,最終表示為平面與線條之間的關(guān)系,如共線、共面、相切、垂直等。軸與孔的裝配,兩個(gè)零件之間的裝配關(guān)系包含兩個(gè)約束:軸 Lc_ shaft 的中心線與孔 Lc_hole 的中心線共線,平面 P_Hole 與平面 P_Shaft 共面。裝配方向是一個(gè)裝配操作的關(guān)鍵問(wèn)題。本文采用以下方法在幾何約束的基礎(chǔ)上計(jì)2算可能的裝配方向(以圖 3 所示的軸孔操作為例子):1.對(duì)關(guān)系圖中的一個(gè)零件,計(jì)算其每一個(gè)幾何約束的剩余自由度,也稱分離度。對(duì)于共面,剩余的自由度為 R1 一{x ,Y ,ROt z}。對(duì)于共線,剩余自由度為 R2 一{z,ROtz}。 R1R2 也可以表示為 R1={1,1,0,0,0,1) R2={0,0,1,0,0,1}。在這里,1 表示是有兩部分之間有一個(gè)的分離度。R 1∩R 2={0,0.0,0,0,1},因此,繞 Z 軸旋轉(zhuǎn)的自由度度在下面的步驟將被忽略。還會(huì)出現(xiàn)一種循環(huán)關(guān)系在關(guān)系圖中,例如圖中的 part5,part6 和 part7,在計(jì)算裝配方向之前,循環(huán)關(guān)系必須打破。假設(shè)在 CAD 模型的各個(gè)部分都完全約束,而不是過(guò)度約束,采用下面簡(jiǎn)單的方法循環(huán)中的 part t,利用公式計(jì)算個(gè)數(shù)Nti=Ri1∩R i2∩…∩R in,這兒的 Rik 是指在零件 Par i 約束下的剩余自由度,舉個(gè)例子,Upart5,part7,和 Upart6,part7 中 1s 的個(gè)數(shù)分別大于 Upart5,part6,和 Upart6,part5,那么可以認(rèn)為零件 part7 的位置是由 part5 和 part6 兩部分約束確定的,并且零件 part5 和零件 part6 可以通過(guò)它們之間的約束而完全約束。在圖中我們可以把零件 part5 和 part6 結(jié)合到一點(diǎn),也叫復(fù)合節(jié)點(diǎn)。復(fù)合節(jié)點(diǎn)將被視為一個(gè)單獨(dú)的部分,但很明顯,復(fù)合節(jié)點(diǎn)意味著裝配順序。2.在關(guān)系圖中為所有節(jié)點(diǎn)的計(jì)算裝配方向。再次,舉個(gè)例子,軸孔裝配的起始狀態(tài),在一個(gè)分離度中以一定的距離分離零件(大于最大公差),然后檢查是否發(fā)生干擾。在 R1 的 x 軸與 y 軸的分離造成軸與孔的干擾。Z 軸正方向的分離不會(huì)造成干擾。因此,選擇 z 軸正方向作為裝配方向,就是矢量 M 在裝配坐標(biāo)系統(tǒng)的測(cè)量。應(yīng)該指出的是,在某些情況下,對(duì)于一個(gè)零件可能有幾個(gè)可能的裝配方向。對(duì)于裝配方向即將結(jié)束的裝配操作應(yīng)該放在首位。裝配狀態(tài)時(shí),在裝配方向上,零件之間發(fā)生接觸,可以通過(guò)幾何約束很簡(jiǎn)單的檢查出來(lái),最后位置通過(guò)壓力傳感器測(cè)量,而位置信息作為最終條件3.計(jì)算抓的位置。在本文中,是通過(guò)兩個(gè)獨(dú)立探針來(lái)抓取操作零件,這將在第四部分進(jìn)行討論,而且抓取考慮零件的面或邊緣。在這種情況下會(huì)有幾個(gè)裝配方向,通過(guò) G1 ∩G2∩…∩Gi 尋找抓取平面,這兒的 Gi 指當(dāng)零件處于自由狀態(tài)時(shí)第 i 個(gè)裝配方向上可能的抓取面或邊。例如,在圖 4 中,對(duì)面 P1/Pl’,P2/P2’,和 P3/P3’,都可以作為抓取平面,抓取平面為末端執(zhí)行器接近的方向作為抓取平面的法向矢量量。很明顯,并非所有平面上所有點(diǎn)都可以抓取。下面的方法用來(lái)確定抓面積。末端執(zhí)行,器用長(zhǎng)方體作為模型,首先添加到 CAD 模型中,與抓取平面共面或者相切。一開(kāi)始在裝配方向上抓取的邊遠(yuǎn)離 Base_Part,在裝配方向上沿著抓取平面移動(dòng)末端執(zhí)行器直到末端執(zhí)行器完全抓取零件,抓取平面與末端執(zhí)行器完全接觸,或發(fā)生碰撞。記下這條邊及移動(dòng)的距離,兩者都是在零件的坐標(biāo)系統(tǒng)中測(cè)量而得。34.沿著裝配方向逐步分離兩個(gè)零件,同時(shí)檢查在其他自由度的干擾,直到在其他自由度上沒(méi)有干擾發(fā)生。顯然一定的分離距離能保證在每一個(gè)自由度都不發(fā)生干擾。這就是所謂的裝配方向上的安全長(zhǎng)度。這個(gè)長(zhǎng)度是用于無(wú)碰撞路徑計(jì)算,這將在下一節(jié)討論。2. 2 裝配順序有些依據(jù)可用于尋找最佳的裝配順序,如組件的機(jī)械穩(wěn)定性,并聯(lián)執(zhí)行的準(zhǔn)確度,固定裝置等等。但對(duì)于微裝配,在選擇裝配順序時(shí),我們應(yīng)該注意它的一個(gè)重要特征育限的工作空間。微裝配通常顯微鏡下進(jìn)行控制和監(jiān)測(cè),并且微裝配工作空間非常小。裝配順序給裝配效率帶來(lái)很大影響。例如,一個(gè)簡(jiǎn)單的三個(gè)零件的組裝。在方案 a 中,零件 A 首先裝配到 B 上,在這種情況下,因?yàn)榭臻g小零件 C 不能與組件 AB 裝配。為了將零件 C 與 AB 組裝,組件 AB 不得不從工作區(qū)卸載。然后,再把 C 的轉(zhuǎn)移和固定到工作區(qū)。之后,組件 AB 重新轉(zhuǎn)移到工作區(qū)。在方案 b 中,沒(méi)有卸載任何部件的必要。方案 a 顯然是效率低下并且可能帶來(lái)許多不確定性。換言之,在一個(gè)裝配順序中,組件的卸載次數(shù)越多,裝配越?jīng)]效率。在本文中,由于微裝配小型工作區(qū),部件的必耍卸載次數(shù)選擇盡可能卸載次數(shù)少的。本文提出以下辦法來(lái)尋求裝配順序。裝配關(guān)系圖是用來(lái)尋找最佳的裝配順序。采用試探的方法,減少搜索時(shí)間:1.檢查與兩個(gè)以上節(jié)點(diǎn)連接的節(jié)點(diǎn).如果它連接節(jié)點(diǎn)的裝配方向不同,把它們標(biāo)記為非活動(dòng)節(jié)點(diǎn),而標(biāo)記相同裝配方向?yàn)榛顒?dòng)裝配方向。2.選擇一個(gè)不是非活動(dòng)節(jié)點(diǎn)的節(jié)點(diǎn)。標(biāo)記當(dāng)前節(jié)點(diǎn)為基本節(jié)點(diǎn)(零件)。第一個(gè)零件固定在與裝配方向相反的工作區(qū)域(這是在 CAB 模型進(jìn)行 )。把基礎(chǔ)件的尺寸(例如重量或體積) 與它的連接件相比較,這些尺寸可以通過(guò)組裝材料清單((BOM)很容易得到。如果基礎(chǔ)件相對(duì)非常小,就標(biāo)記為非活動(dòng)節(jié)點(diǎn)。3.選擇一個(gè)與基本節(jié)點(diǎn)相連的節(jié)點(diǎn)作為裝配節(jié)點(diǎn)(零件).如果基本節(jié)點(diǎn)需要從工作區(qū)卸載就檢查裝配方向。如果需要,更新一個(gè)變量,比如 mount++,重新放置元件(注意,不僅有工作區(qū)中基礎(chǔ)零件;也可能有已經(jīng)組裝的其他零件 ),以便裝配方向保持向上4.在 CAD 模型,在可能的裝配方向上,將裝配件移動(dòng)到基礎(chǔ)件上,同時(shí)檢查是否有干擾( 碰撞)發(fā)生。如果發(fā)生干擾,標(biāo)記這個(gè)基本節(jié)點(diǎn)為非活動(dòng)節(jié)點(diǎn),接著進(jìn)入第 2步,根據(jù)零件的幾何特征選擇操作方式。在這一步中,也計(jì)算一個(gè)。bstacle Box.這個(gè)盒子,模擬長(zhǎng)一個(gè)長(zhǎng)方體,包括了工作區(qū)中的所有部件。它是用來(lái)計(jì)算移動(dòng)裝配件時(shí)的無(wú)碰撞路徑,這將在下一節(jié)介紹。這個(gè) Obstacle Box 用一個(gè)位置矢量和它的寬度,高度和長(zhǎng)度來(lái)描述。5.記錄裝配順序,包括操作類型,裝配方向,抓取定位6.如果搜尋所有節(jié)點(diǎn)之后,沒(méi)有發(fā)現(xiàn)非活動(dòng)節(jié)點(diǎn),就標(biāo)記第一基本節(jié)點(diǎn)為非活動(dòng)4節(jié)點(diǎn),轉(zhuǎn)到步驟 2。如果還沒(méi)有,選擇與裝配節(jié)點(diǎn)連接的節(jié)點(diǎn)。標(biāo)記為一個(gè)裝配節(jié)點(diǎn),把這個(gè)裝配節(jié)點(diǎn)作為一個(gè)基本節(jié)點(diǎn)。檢查這個(gè)裝配節(jié)點(diǎn)是否有一個(gè)裝配方向與之前的裝配方向之相同。如果有,在下面的步驟中使用之前的裝配方向,然后轉(zhuǎn)到步驟 3。整個(gè)圖形搜索完成后,我們可能有幾個(gè)裝配順序。比較 mount 值,選擇一個(gè)效率更高的方案。如果一個(gè)順序都沒(méi)反饋,用戶可能不得不人為選擇一個(gè)。如果在圖 2 所示的關(guān)系圖中有 N 個(gè)節(jié)點(diǎn)。所有這些都不是非活動(dòng)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)可能有 M 個(gè)裝配方向,則需耍 MN 次計(jì)算找出所有裝配順序。但是,因?yàn)橥ǔG闆r下,一個(gè)零件只有一個(gè)裝配方向和一些飛活動(dòng)節(jié)點(diǎn),計(jì)算應(yīng)少于 MN 次。應(yīng)該指出的是,在上述計(jì)算,涉及幾個(gè)坐標(biāo)系統(tǒng),如裝配順序坐標(biāo),基礎(chǔ)零件坐標(biāo)和裝配坐標(biāo)。坐標(biāo)之間由一個(gè) 4 × 4 變換矩陣來(lái)表示,這些都是在當(dāng)我們創(chuàng)建關(guān)系圖時(shí)在裝配 CAD 模型的基礎(chǔ)上計(jì)算得來(lái)。在數(shù)據(jù)庫(kù)中矩陣與所有相關(guān)零部件存儲(chǔ)在一起。他們還被用在程序分解。3 程序分解和執(zhí)行3.1 原始程序的定義原始程序使裝配計(jì)劃和機(jī)器人控制之間得以鏈接。己經(jīng)有一些對(duì)于原始程序的定義這些定義之間的根本區(qū)別是技能的復(fù)雜性以及它可以實(shí)現(xiàn)實(shí)現(xiàn)的功能。從裝配計(jì)劃的角度看,一個(gè)程序可以實(shí)現(xiàn)更多的功能顯然更好。然而,對(duì)于能實(shí)現(xiàn)許多功能的程序的控制可能就會(huì)變得復(fù)雜。在論文中,用來(lái)操作的部分是兩個(gè)不同的探針,而不是一個(gè)探頭或平行顎爪。即使是抓取操作,控制過(guò)程也是不容易的。此外,像移動(dòng)一個(gè)零件可能不僅涉及機(jī)械手,還有工作臺(tái)。因此,為了簡(jiǎn)化控制過(guò)程,在論文中定義的程序不包括許多功能。更重要的是,技能應(yīng)該很容易地應(yīng)用到各種組裝任務(wù),即一套程序應(yīng)該一般表達(dá)具體的任務(wù)。在程序之中不應(yīng)有重疊。在論文中,對(duì)機(jī)器人控制技術(shù)的原始程序定義為:Si=[Attributes-i,Action-i (Attributes-i),Start-i (Attributes-i),End-i(Attributes-i), Condition-i (Attributes-i)]Attributes_ i 要被執(zhí)行的信息。它們可分為必需屬性和選項(xiàng)屬性,或感官屬性和CAD 的模型驅(qū)動(dòng)的屬性。所代表的屬性通過(guò)不同層使用的全局變量表現(xiàn)出來(lái)Action_i 機(jī)器人的動(dòng)作,這是基本 sensormotion。在許多行動(dòng),如工作臺(tái)移動(dòng),探針移動(dòng),工作臺(tái)旋轉(zhuǎn),探針旋轉(zhuǎn),觸摸,插入,攻絲,抓取,對(duì)于一個(gè)程序,只有一個(gè)動(dòng)作。由于空間有限,行動(dòng)的細(xì)節(jié)將不在論文中討論。Star 七_(dá)i Action i 的初始狀態(tài),這是由傳感器測(cè)量。End i Action i 的最終狀態(tài),這是由傳感器值計(jì)算。Condition i 在何種 Action i 執(zhí)行的條件。從上面的定義我們可能會(huì)發(fā)現(xiàn),論文中的程序是在機(jī)器人開(kāi)始狀態(tài)和結(jié)束狀態(tài)的動(dòng)作,并且它們是在特定條件下執(zhí)行。論文中的裝配計(jì)劃生成機(jī)器人動(dòng)作序列,并分5配給這些行動(dòng)的屬性值。3. 2 程序分解一些方法已經(jīng)被提出用于程序分解。本文提出了一種新的方法來(lái)指導(dǎo)程序分解。如上所述,在本文中,一個(gè)任務(wù)是將 Assembly_Part 與 Base_Part 組裝。我們定義從自由的狀態(tài)的 Assembly_Part 到它與 Base_Part 裝配作為 Assembly_Part 的裝配周期。在裝配周期中,Assembly_Part 可能在不同的裝配狀態(tài)。圖 6 軸顯示為塊插入任務(wù)相關(guān)的工作流程。一個(gè)工作流程包含一組程序使 Assembly_Par 七從一個(gè)狀態(tài)到另一個(gè)狀態(tài)。一個(gè)工作流程是與一個(gè)特定的程序生成器相關(guān)聯(lián),程序生成器是有生成的程序控制。對(duì)于不同的裝配任務(wù),可能使用相同的工作流程,但由于不同的任務(wù)產(chǎn)生的特殊程序可能會(huì)有所不同。該系統(tǒng)提供默認(rèn)任務(wù)模板,其中定義了默認(rèn)狀態(tài)。在與相應(yīng)的 Assembly_Part 建立關(guān)系后,這些模板被導(dǎo)入到系統(tǒng)中并實(shí)例化。在某些情況下,默認(rèn)的模板中定義的一些狀態(tài)可能沒(méi)有用。例如,如果軸己被放置在工作區(qū),被夾具確定準(zhǔn)確位置,那么FREE 和 In_WS 狀態(tài)可以從軸的裝配周期中刪除。該系統(tǒng)為用戶提供了工具來(lái)修改這些模板或生成自己的模板。該工具的用戶界面將顯示在圖 7。對(duì)于一個(gè)工作流程,開(kāi)始狀態(tài)由感覺(jué)值來(lái)確定,而目標(biāo)狀態(tài)在 CAD 模型和感官的基礎(chǔ)上計(jì)算得來(lái)。根據(jù)開(kāi)始狀態(tài)和目標(biāo)狀態(tài),程序生成器生成一系列程序。在這里,我們用圖 6 作為一個(gè)例子來(lái)說(shuō)明如何生成程序。裝配任務(wù)(裝配周期) 啟動(dòng)后,模板被讀入 Coordinator 中。對(duì)于 Move 工作流程,它的啟動(dòng)狀態(tài)是 Grasped,這意味著 Assembly_Part 是機(jī)器人的末端執(zhí)行器抓住,顯然,Assembly_Part 位置也被確定。它的目標(biāo)狀態(tài)是 Adjusted,這它與 Base_Part 裝配前的狀態(tài) Adjusted 狀態(tài),對(duì) Assembly_Part 方向是由裝配方向決定,而 Safe Length 位置是由長(zhǎng)度決定。這些值被放置在任務(wù)規(guī)劃層,并存儲(chǔ)在數(shù)據(jù)庫(kù)中。當(dāng)任務(wù)模板導(dǎo)入,這些值讀入內(nèi)存坐標(biāo),進(jìn)入工作區(qū)的坐標(biāo)轉(zhuǎn)換。在程序分解中有一個(gè)重耍的和必耍的步驟—生成一個(gè)無(wú)碰撞軌跡。在這里,我們使用了直線,簡(jiǎn)單并且易于計(jì)算。假設(shè) P3 是 Assembly_Part 在 Adjusted 狀態(tài)的位置,P0 是在 Grasped 狀態(tài)的位置。以下方法生成路徑:1、對(duì) Assembly_Part 和裝配方向定位的基礎(chǔ)上,選擇程序 (Rotate_ Table 或Rotate_Probes),調(diào)整零件方向和賦值這些程序?qū)傩浴?、在 Obstacle Box 基礎(chǔ)上,裝配方向,Assembly_Part 的實(shí)際位置/ 方向,中間位置P1 和 P2 都需要來(lái)被計(jì)算。3、對(duì)于每段的路徑,驗(yàn)證是否 Move_Table 程序( 對(duì)于一個(gè)大范圍) 或 Move_Probe 程序(一個(gè)小范圍) 應(yīng)被使用。4、每個(gè)段生成的程序清單和對(duì)這些程序進(jìn)行標(biāo)記。3.3 程序運(yùn)行6在一組程序生成之后,這組程序使零件到達(dá)特定的狀態(tài),這些程序被轉(zhuǎn)移到技能管理模型。該系統(tǒng)使一個(gè)或多個(gè)程序進(jìn)入“正在運(yùn)行的”程序列表,同時(shí)派遣它們到微操作機(jī)械手。一旦該程序被機(jī)器人運(yùn)行完成,系統(tǒng)就會(huì)將他們從“正在運(yùn)行的任務(wù)”清單中刪除,并將其放在“已完成的任務(wù)”列表中。在所有的這些程序都被運(yùn)行后,零件的狀態(tài)被更新完成。對(duì)于一些狀態(tài),程序的運(yùn)行和程序的產(chǎn)生可同時(shí)進(jìn)行。例如,對(duì)于圖 6 中的 Insertion 循環(huán),如果零件的位置信息已知,移動(dòng)工作流程程序生成可以和程序的生成同時(shí)進(jìn)行。裝配過(guò)程對(duì)用戶開(kāi)放。通過(guò)目標(biāo)程序管理表結(jié)構(gòu),用戶可以很容易監(jiān)督和控制裝配過(guò)程。例如,用戶可以暫停正在運(yùn)行的程序,調(diào)整程序或修改錯(cuò)誤,直接輸入命令或?qū)C(jī)器人調(diào)整到手動(dòng)狀態(tài)。4 實(shí)驗(yàn)4.1 實(shí)驗(yàn)平臺(tái)本文使用的實(shí)驗(yàn)平臺(tái)對(duì)于微裝配操作,需要權(quán)衡精度和工作空間。為了獲得較大的工作空間并且有較高的精度,通常使用兩個(gè)階段的控制。這些系統(tǒng)通常是兩類不同的執(zhí)行機(jī)構(gòu);略顯不好的是是擁有較大的工作空間,但精度較低,更好的是有小的工作空間,但精度很高。在系統(tǒng)中,一個(gè)平面運(yùn)動(dòng)單元提供大范圍精度不高的移動(dòng)操作,以 2 微米的精度在 X 和 Y 方向移動(dòng),這是由 NSK 公司生產(chǎn)的線性工作臺(tái)控制。這個(gè)工作臺(tái)也可以提供 Z 軸旋轉(zhuǎn),它是由一個(gè)最大分辨率為 0.1°/步的步進(jìn)電機(jī)驅(qū)動(dòng)。在這個(gè)機(jī)械手中,兩個(gè)獨(dú)立的探測(cè)器,用來(lái)操縱微型部件,而不是單一探頭或平行領(lǐng)爪。這兩個(gè)探頭固定在兩個(gè)最大分辨率為 0.05°/步的步進(jìn)電機(jī)上.然后兩臺(tái)電機(jī)分別固定在平行運(yùn)動(dòng)機(jī)構(gòu)。這是一個(gè)平行六面體的運(yùn)動(dòng)鏈和一個(gè)平行四邊形的運(yùn)動(dòng)鏈的串行聯(lián)接。當(dāng) θ1,θ 2,θ 3 足夠小時(shí),最終效應(yīng)運(yùn)動(dòng)可以視為直線運(yùn)動(dòng)。勵(lì)磁器用來(lái)驅(qū)動(dòng)并聯(lián)機(jī)構(gòu),它包括一個(gè)空芯線圈和一個(gè)永磁體。永磁鐵連接到并行鏈節(jié),線圈固定在底座上。磁懸浮本質(zhì)上是不穩(wěn)定的,因?yàn)樗欠墙佑|性運(yùn)行,很容易受到外部干擾。為了盡量減少來(lái)自外部干擾的影響,一個(gè)基于觀測(cè)干擾的方法來(lái)用來(lái)控制我們的顯微操作。激光位移傳感器直接用來(lái)測(cè)量探頭的位置。反射器連接到末端執(zhí)行器。由 BL AUTOTEC 公司生產(chǎn)的納米力傳感器用來(lái)測(cè)量的力的大小。該微操作機(jī)械手的位置分辨率為 1 微米,最高解析度為 0. 8gf,而最大扭矩為 0. 5gfcm。一對(duì)機(jī)械手機(jī)構(gòu)更詳細(xì)的解釋中可以在圖[16] 中找到。所有裝配作業(yè)在由奧林巴斯公司生產(chǎn)的顯微鏡SZCTV B061 下進(jìn)行。由夏普 GPB 一 KPCI 圖像采集卡采集的圖像信息,它的工作頻率為 25 MHz。4.2 實(shí)驗(yàn)機(jī)械手組裝一個(gè)有三個(gè)組件的裝配件。這是一個(gè)在作者實(shí)驗(yàn)室研制的微型機(jī)器人的輪子。下面的幾何約束在 CAD 模型中定義:CL_cup 和 CL_axis 共線,CL_gear 和7CL_axis 共線,Plane_cup 和 Plane_gear_1 共面,Plane_gear_1 和 Plane_axis 共面根據(jù)上述幾何約束,三部分構(gòu)成一個(gè)循環(huán)關(guān)系圖。隨著商業(yè)軟件 Solidworks2005,創(chuàng)建了 CAD 模型,它的 API 函數(shù)用于開(kāi)發(fā)裝配計(jì)劃模型 Oracle 9.2 用來(lái)建立裝配信息數(shù)據(jù)庫(kù)。與程序開(kāi)發(fā)相關(guān)的模型用 Visual Basic 6.0。程序生成模型在 HP 工作站運(yùn)行在 Windows 2000 上,2. 0G 赫茲的 CPU 和 1. 0 GB 內(nèi)存。假設(shè)零件的位置可用,可事先花了大約 7 分鐘生成的程序順序。生成的裝配順序是將齒輪裝配到軸上,然后將軸套組裝到軸和齒輪上。在裝配操作中,零件被放置在專用夾具中,然后移動(dòng)到工作區(qū)域,它們的初始位置和方向可以確定。因此,在實(shí)驗(yàn)中,所有的不同零件的程序序列都可以產(chǎn)生,然后轉(zhuǎn)移到程序管理單元。該程序通過(guò) TCP/IP 通信傳輸?shù)轿⒉僮鳈C(jī)械手。因?yàn)槲⒉僮鳈C(jī)械手控制器是基于 DOS 運(yùn)行,WTTCP 工具套件適應(yīng) TCP/IP 通信協(xié)議。因?yàn)椋壳?,該裝置自動(dòng)化控制還沒(méi)有實(shí)現(xiàn),零件必須手動(dòng)固定到工作臺(tái)。不同的任務(wù)( 不同零件的裝配周期)之間的協(xié)調(diào)需要進(jìn)行手動(dòng)操作。圖 12 顯示了裝配過(guò)程中的一些截圖。a 圖中,軸固定在工作區(qū), b 圖中,齒輪固定在工作區(qū),從 c 到 e,探測(cè)器抓取齒輪,移動(dòng),并裝配到軸上,f 圖中,軸套固定在工作區(qū),從 g 到 i,軸套與齒輪和軸裝配??梢园l(fā)現(xiàn),該系統(tǒng)可以成功進(jìn)行裝配任務(wù)。5 結(jié)論本文介紹了一種以程序?yàn)榛A(chǔ)的操縱系統(tǒng)。在計(jì)算機(jī)輔助設(shè)計(jì)(CAD)模型的基礎(chǔ)上生成程序序列。通過(guò)尋找裝配關(guān)系,構(gòu)建一幅裝配圖。在幾何約束的基礎(chǔ)上本文提出的方法來(lái)得出裝配方向和抓取位置,幾何約束定義了不同零件之間的關(guān)系。因?yàn)槲⒉僮鳈C(jī)器人工作空間非常小,裝配順序會(huì)帶來(lái)太大的影響?,F(xiàn)在,在工作區(qū)安裝件所需的次數(shù)為標(biāo)準(zhǔn)來(lái)選擇最佳的裝配順序。本文介紹方法來(lái)指導(dǎo)程序分解。裝配過(guò)程被分為不同的階段。在一個(gè)階段,零件處于裝配狀態(tài)。一個(gè)特定的工作流程使它到達(dá)最終的目標(biāo)狀態(tài),這是裝配周期中的理想狀態(tài)并且是在 CAD 模型的信息和感覺(jué)信息的基礎(chǔ)上計(jì)算得來(lái)。一個(gè)特殊的程序生成器,與工作流程相連,產(chǎn)生程序使零件到達(dá)它的最終狀態(tài).程序序列生成以后,系統(tǒng)分派他們到機(jī)械手的控制器來(lái)驅(qū)動(dòng)機(jī)械手。用實(shí)驗(yàn)來(lái)驗(yàn)證所提出的方法,組裝了三個(gè)部件。實(shí)驗(yàn)結(jié)果證明了該系統(tǒng)的可行性。該系統(tǒng)已經(jīng)可以進(jìn)行自動(dòng)裝配操作。但是,仍然有許多問(wèn)題需要解決,以實(shí)現(xiàn)全自動(dòng)化裝配例如,目前,零部件的位保證是通過(guò)專用夾具來(lái)實(shí)現(xiàn)?,F(xiàn)在,基于 CAD 下的圖像處理模型正在發(fā)展中。預(yù)計(jì),隨著圖像的處理模型的發(fā)展,系統(tǒng)可以處理處于隨機(jī)位置和方向的零件。8A mechanical arm control and assembly program combining precision mechanicalAbstractThis paper researches how to realize the automatic assembly operation on a two-finger precision manipulator. A multi-layer assembly support system is proposed. At the task-planning layer, based on the computer-aided design (CAD) model, the assembly sequence is first generated, and the information necessary for skill decomposition is also derived. Then, the assembly sequence is decomposed into robot skills at the skill-decomposition layer. These generated skills are managed and executed at the robot control layer. Experimental results show the feasibility and efficiency of the proposed system.Keywords Manipulator Assembly planning Skill decomposition Automated assembly1 IntroductionOwing to the micro-electro-mechanical systems (MEMS) techniques, many products are becoming very small and complex, such as microphones, micro-optical components, and microfluidic biomedical devices, which creates increasing needs for technologies and systems for the automated precision assembly of miniature parts. Many efforts aiming at semi-automated or automated assembly have been focused on microassembly technologies. However, microassembly techniques of high flexibility, efficiency, and reliability still open to further research. Thispaper researches how to realize the automatic assembly operation on a two-finger micromanipulator. A multi-layer assembly support system is proposed.Automatic assembly is a complex problem which may involve many different issues, such as task planning, assembly sequences generation, execution, and control, etc. It can be simply divided into two phases; the assembly planning and the robot control. At the assembly-planning phase, the information necessary for assembly operations, such as the assembly sequence, is generated. At the robot control phase, the robot is driven based on the 9information generated at the assembly-planning phase, and the assembly operations are conducted Skill primitives can work as the interface of assembly planning to robot control. Several robot systems based on skill primitives have been reported. The basic idea behind these systems is the robot programming. Robot movements are specified as skill primitives, based on which the assembly task is manually coded into programs. With the programs, the robot is controlled to fulfill assembly tasks automatically.A skill-based micromauipulation system bas been developed in the authors' lab, and it can realize many micromauipulation operations.hthe system, the assembly task is manually discomposed into skill sequences and compiled into a file. After importing the file into the system, the system can automatically execute the assembly task. This paper attempts to explore a user-friendly, and at the same time easy, sequence-generation method, to relieve the burden of manually programming the skill sequence.It is an effective method to determine the assembly sequence from geometric computer-aided design (CAD) models. Many approaches have been proposed. This paper applies a simple approach to generate the assembly sequence. It is not involved with the low-level data structure of the CAD model, and can be realized with the application programming interface (API) functions that many commercial CAD software packages provide. In the proposed approach, a relations graph among different components is first constructed by analyzing the assembly model, and then, possible sequences are searched, based on the graph. According to certain criterion, the optimal sequence is finally obtained.To decompose the assembly sequence into robot skill sequences, some works have been reported. In Nnaji et al.'s work, the assembly task commands are expanded to more detailed commands, which can be seen as robot skills, according to a predefined format. The decomposition approach of Mosemann and Wahl is based on the analysis of hyperarcs of AND/OR graphs representing the automatically generated assembly plans. This paper proposes a method to guide the skill decomposition. The assembly processes of parts are grouped into different phases, and parts are at different states. Specific workflows push forward parts from one state to another state. Each workflow is associated with a skill generator. According to the different start state and target state of the workflow, the skill generator creates a series of skills that can promote the part to its target state.The hierarchy of the system proposed here ,the assembly information on how to assemble a product is transferred to the robot through multiple layers. The top layer is for the assembly-task planning. The information needed for the task planning and skill generation are extracted from the CAD model and are saved in the database. Based on the CAD model, the assembly task sequences are generated. At the skill-decomposition layer, tasks are 10decomposed into skill sequences. The generated skills are managed and executed at the robot control layer.2 Task planningSkills are not used directly at the assembly-planning phase. Inste,the concept of a task is used. A task can fulfill a series of assembly operations, for example, from locating a part, through moving the part, to fixing it with another part.hother words, one task includes many functions that may be fulfilled by several different skills. A task is defined as:T = (Base Part; Assembly Part; Operation)Base Part and Assembly Part are two parts that are assembled together. Basees Part is fixed on the worktable, while Assembly-Part is handled by robot's end-effector and assembled onto the Basees Part. Operation describes how the Assembly-Part is assembled with the Basees Park Operation ∈{Insertion T, screw T,align T,…}.The structure of microparts is usually uncomplicated, and they can be modeled by the constructive solid geometry (CSG) method. Currently, many commercial CAD software packages can support 3D CSG modeling. The assembly model is represented as an object that consists of two parts with certain assembly relations that define how the parts are to be assembled. In the CAD model, the relations are defined by geometric constraints. The geometric information cannot be used directly to guide the assembly operation-we have to derive the information necessary for assembly operations from the CAD model.Through searching the assembly tree and geometric relations (mates' relations) defined in the assembly's CAD model, we can generate a relation graph among parts, for example, In the graph, the nodes represent the parts. If nodes are connected, it means that there are assembly relations among these connected nodes (parts).2.1 Mating directionIn CSG, the relations of two parts, geometric constraints, are finally represented as relations between planes and lines, such as collinear, coplanar, tangential, perpendicular, etc. For example, a shaft is assembled in a hole. The assembly relations between the two parts may consist of such two constraints as collinear between the centerline of shaft Lc_shaft and the centerline of hole Lc_hole and coplanar between the plane P_Shaft and the plane P_Hole. The mating direction is a key issue for an assembly operation. This paper applies the following approach to compute the possible mating direction based on the geometric constraints (the shaft-in-hole operation of Fig. 3 is taken as an example):1. For a part in the relation graph, calculate its remaining degrees of freedoxn,also called degrees of separation, of each geometric constraint.11For the coplanar constraint, the remaining degrees of freedom are R1={x, y, Rotz}.For the collinear constraint, the remaining degrees of freedom are R2={z,Rotz}.R1 and R2 can also be represented as R1={1,1,0,0,0,1} and R2={0,0,1,0,0,1}. Here, 1 means that there is a degree of separation between the two parts. R1∩R2={0,0.0,0,0,1}, and so, the degree of freedom around the z axis will be ignored in the following steps.In the case that there is a loop in the relation graph, such as parts Part 5, Part 6, and Part 7 in Fig. 2, the loop has to be broken before the mating direction is calculated. Under the assumption that all parts in the CAD model are fully constrained and not over-constrained, the following simple approach is adopted. For the part tin the loop, calculate the number of is in Nti=Ri1∩R i2∩…∩R in;where Rik is the remaining degrees of freedom of constraint k by part i. For example, in Fig. 2, given that the number of is inUpart5,part7 and Upart6,part7 is larger than U part5,part6 and U part6,part5,respectively, then it can be regarded that the position of Part 7 is determined by constraints with both Part 5 and Part 6, while Part 5 and Part 6 can be fu比 constrained by constraints between Part 5 and Part 6. We can unite Part 5 and Part 6 as one node in the relation graph, also called a composite node, as shown in Fig. 2b. The composite node will be regarded as a single part, but it is obvious that the composite node implies an assembly sequence.2. Calculate mating directions for all nodes in the relation graph. Again, beginning at the state that the shaft and the hole are assembled, separate the part in one degree of separation by a certain distance (larger than the maximum tolerance), and then check if interference occurs. Separation in both ±x axis and±y axis of R1 causes the interference between the shaft and the hole. Separation in the +z direction raises no interference. Then, select the +z direction as the mating direction, which is represented as a vector M measured in the coordinate system of the assembly. It should be noted that, in some cases, there may be several possible mating directions for a part. The condition for assembly operation in the mating direction to be ended should be given. When contact occurs between parts in the mating direction at the assembled state, which can be checked simply with geometric constraints, the end condition is measured by force sensory information, whereas position information is used as an end condition.3. Calculate the grasping position. In this paper, parts are handled and manipulated with two separate probes, which will be discussed in the Sect. 4, and planes or edges are considered for grasping.hthe case that there are several mating directions, the grasping planes are selected as G1∩G2∩.∩Gi, where Gi is possible grasping plane/edge set for the 12ith mating direction wher the part is at its free state. For example, in Fig. 4, the pair planes Pl/Pl', P2/P2', and P3/P3' can serve as possible grasping planes, and then the grasping planes areGmating_dir1∩G mating_dir2∩G mating_dir3={P1/P 1',P2/P 2',P3/P 3'}∩{P1/P 1', P3/P 3'}