專利名稱:選擇拆卸序列規(guī)劃方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及機(jī)械工程領(lǐng)域,更具體的,涉及一種選擇拆卸序列規(guī)劃方法及裝置背景技術(shù)
拆卸是產(chǎn)品維修或回收的重要環(huán)節(jié)之一,根據(jù)拆卸操作的深度,拆卸可以分為完全拆卸與選擇拆卸兩類。選擇拆卸序列規(guī)劃,是指為了拆卸某個目標(biāo)零部件,根據(jù)產(chǎn)品結(jié)構(gòu)和裝配關(guān)系等信息,按照一定順序拆下一個或多個零部件的拆卸順序求解過程。
可行或較優(yōu)的拆卸序列是保障產(chǎn)品可維修性的前提。近年來隨著機(jī)電產(chǎn)品愈來愈趨向于復(fù)雜化,傳統(tǒng)的手工指定拆卸順序的方法已經(jīng)無法滿足機(jī)械產(chǎn)品的維護(hù)需求,如何自動化的對特定零件進(jìn)行選擇拆卸序列規(guī)劃逐漸成為國內(nèi)外研究的熱點(diǎn)問題?,F(xiàn)有的研究成果大都應(yīng)用在特定的機(jī)械環(huán)境下,在求解拆卸序列前通常需要獲取大量的裝配信息,并經(jīng)常需要手動輸入裝配或拆卸信息后才能進(jìn)行求解,算法的自動化程度不高,在通用性及后續(xù)工程應(yīng)用方面具有一定的局限性。
因此,現(xiàn)有技術(shù)中對選擇拆卸序列規(guī)劃方法存在自動化程度不高和通用性差的問題。發(fā)明內(nèi)容
本發(fā)明公開一種選擇拆卸序列規(guī)劃方法及裝置,用于解決現(xiàn)有技術(shù)中對選擇拆卸序列規(guī)劃方法存在自動化程度不高和通用性差的問題。
為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的第一方面,提供一種選擇拆卸序列規(guī)劃方法,并采用如下技術(shù)方案:
選擇拆卸序列規(guī)劃方法包括:通過運(yùn)動規(guī)劃算法判斷第一裝配體中所有零件的可拆卸性,并得出第一判斷結(jié)果;根據(jù)所述第一判斷結(jié)果對所述第一裝配體進(jìn)行層次化處理,得出所述所有零件的分層信息;對所述分層信息進(jìn)行約束關(guān)系分析,得到所述所有零件的相互拆卸約束關(guān)系;根據(jù)所述拆卸約束關(guān)系獲取所述第一裝配體中指定目標(biāo)拆卸零件的選擇拆卸序列。
進(jìn)一步地,所述通過運(yùn)動規(guī)劃算法判斷第一裝配體中所有零件的可拆卸性包括:對所述所有零件進(jìn)行遍歷,分別設(shè)定每一個零件為目標(biāo)零件;以所述目標(biāo)零件為起點(diǎn)設(shè)定第一搜索樹,外部空間的其中一點(diǎn)為起點(diǎn)設(shè)定第二搜索樹;根據(jù)選定的采樣算法在搜索空間中獲取采樣點(diǎn);根據(jù)所述采樣點(diǎn)和預(yù)設(shè) 步長度對所述第一搜索樹與所述第二搜索樹分別進(jìn)行多次擴(kuò)展,并記下每次擴(kuò)展后對應(yīng)的擴(kuò)展次數(shù),設(shè)定為第一次擴(kuò)展次數(shù);判斷每次擴(kuò)展后的所述第一搜索樹與所述第二搜索樹是否具有相同節(jié)點(diǎn),并得出第二判斷結(jié)果;在所述第二判斷結(jié)果為所述第一搜索樹與所述第二搜索樹具有相同節(jié)點(diǎn)時,確定所述目標(biāo)零件具有可拆卸性。
進(jìn)一步地,在所述第二判斷結(jié)果為所述第一搜索樹與所述第二搜索樹不具有相同節(jié)點(diǎn)時,所述選擇拆卸序列規(guī)劃方法還包括:步驟a:設(shè)定所述第一次擴(kuò)展次數(shù)的第一閾值;步驟b:判斷所述第一擴(kuò)展次數(shù)是否超出所述第一閾值;步驟C:在所述第一擴(kuò)展次數(shù)超出所述第一閾值時,新建第三搜索樹;步驟d:重新選擇所述采樣點(diǎn);步驟e:根據(jù)重新選擇的所述采樣點(diǎn)和所述預(yù)設(shè)步長對所述第三搜索樹進(jìn)行多次擴(kuò)展,并記下每次擴(kuò)展后對應(yīng)的擴(kuò)展次數(shù),設(shè)定為第二擴(kuò)展次數(shù);步驟f:判斷所述第三搜索樹分別與所述第一搜索樹和所述第二搜索樹是否均具有相同節(jié)點(diǎn),并得出第三判斷結(jié)果;步驟g:在所述第三判斷結(jié)果為所述第三搜索樹分別與所述第一搜索樹和所述第二搜索樹均具有相同節(jié)點(diǎn)時,合并所述第一搜索樹、所述第二搜索樹與所述第三搜索樹,并確定所述目標(biāo)零件具有可拆卸性。
進(jìn)一步地,在所述第三判斷結(jié)果為所述第三搜索樹與所述第一搜索樹和所述第二搜索樹不是均具有相同節(jié)點(diǎn)時,返回執(zhí)行所述步驟C至所述步驟g。
進(jìn)一步地,在所述第三判斷結(jié)果為所述第三搜索樹與所述第一搜索樹和所述第二搜索樹不是均具有相同節(jié)點(diǎn)時,所述選擇拆卸序列規(guī)劃方法還包括:設(shè)定所述第二擴(kuò)展次數(shù)的第二閾值;判斷所述第二擴(kuò)展次數(shù)是否大于所述第二閾值;在所述第二擴(kuò)展次數(shù)大于所述第二閾值時,給所述第一搜索樹的末梢節(jié)點(diǎn)、所述第二搜索樹的末梢節(jié)點(diǎn)以及所述第三搜索樹的末梢節(jié)點(diǎn)分 別設(shè)置一個連接值;根據(jù)選擇的所述采樣點(diǎn)與所述預(yù)設(shè)步長對所述末梢節(jié)點(diǎn)分別進(jìn)行擴(kuò)展嘗試,并判斷所述嘗試是否成功;在所述末梢節(jié)點(diǎn)每一次擴(kuò)展嘗試失敗時,將所述末梢節(jié)點(diǎn)的連接值進(jìn)行一次遞減;將遞減后的連接值與隨機(jī)產(chǎn)生的預(yù)設(shè)范圍內(nèi)的隨機(jī)數(shù)進(jìn)行對比,得出對比結(jié)果;在所述對比結(jié)果為所述遞減后的連接值小于所述隨機(jī)數(shù),則終止對嘗試失敗的末梢節(jié)點(diǎn)進(jìn)行擴(kuò)展嘗試。
進(jìn)一步地,所述根據(jù)所述第一判斷結(jié)果對所述第一裝配體進(jìn)行層次化處理包括:步驟A:獲取所述第一裝配體上所有能夠直接拆卸的第一部分零件,并將所述第一部分零件放入第一層集合中;步驟B:將所述第一部分零件從所述第一裝配體上去除,生成第二裝配體;步驟C:獲取所述第二裝配體上的所有能夠直接拆卸的第二部分零件,并將所述第二部分零件放入第二層集合中;步驟D:重復(fù)執(zhí)行所述步驟A至所述步驟C,得到所述第一裝配體的所有零件的分層關(guān)系。
進(jìn)一步地,所述對所述分層信息進(jìn)行約束關(guān)系分析,得到所述所有零件的相互拆卸約束關(guān)系包括:步驟E:任取所述分層信息中第二層中任一目標(biāo)分析零件;步驟F:去除將所述第一裝配體上的第一層零件,獲得第二裝配體;步驟G:獲取所述目標(biāo)分析零件的拆卸路徑,將所述目標(biāo)分析零件沿所述拆卸路徑與所述第二裝配體中所有零件進(jìn)行干涉檢測,獲取與所述目標(biāo)分析零件碰撞的零件集合Q ;
步驟H:將所述零件集合Q中的零件進(jìn)行一次全組合,若集合Q中有m個零件,則該集合中全組合的個數(shù)為( " + (:;將所述全組合按照零件個數(shù)從小到大排列,依次從所述第二裝配體中除去這些零件,并在每次去除后,對所述目標(biāo)分析零件進(jìn)行運(yùn)動規(guī)劃,判斷所述目標(biāo)分析零件的可拆卸性,直至所述目標(biāo)分析零件具備可拆卸性;步驟1:將所述目標(biāo)分析零件與所述步驟G中最后去除的一組零件,稱為第一零件組分別用箭頭連接起來;步驟J:在所述第二裝配體中加入下一層零件,并去除所述第一零件組,以及與所述第一零件組連接的零件,組成第三裝配體;重復(fù)步驟G至I,完成目標(biāo)分析零件的拆卸約束關(guān)系分析;步驟K:對所述第二層中所有零件重復(fù)所述步驟E至所述步驟J,完成所述第二層中所有零件的拆卸約束關(guān)系分析;步驟L:對所述第一裝配體中除所述第二層以外的層分別重復(fù)所述步驟E至所述步驟K,完成所述第一裝配體中所有零件的拆卸約束關(guān)系的分析。
進(jìn)一步地,所述根據(jù)所述約束關(guān)系獲取所述目標(biāo)拆卸零件的選擇拆卸序列包括:根據(jù)所述拆卸約束關(guān)系生成所述第一裝配體的零件拆卸約束關(guān)系圖;指定所述目標(biāo)拆卸零件,根據(jù)所述零件拆卸約束關(guān)系圖生成所述目標(biāo)拆卸零件的選擇拆卸序列。
根據(jù)本發(fā)明的另外一個方面,提供一種選擇拆卸序列規(guī)劃裝置,并采用如下技術(shù)方案:
選擇拆卸序列規(guī)劃裝置包括:第一判斷模塊,用于通過運(yùn)動規(guī)劃算法判斷第一裝配體中所有零件的可拆卸性,并得出第一判斷結(jié)果;層次化處理模塊,用于根據(jù)所述第一判斷結(jié)果對所述第一裝配體進(jìn)行層次化處理,得出所述所有零件的分層信息;分析模塊,用于對所述分層信息進(jìn)行約束關(guān)系分析,得到所述所有零件的相互拆卸約束關(guān)系;第一獲取模塊,用于根據(jù)所述拆卸約束關(guān)系獲取所述第一裝配體中指定目標(biāo)拆卸零件的選擇拆卸序列。
進(jìn)一步地,所述第一判斷模塊包括:遍歷模塊,用于對所述所有零件進(jìn)行遍歷,分別設(shè)定每一個零件為目標(biāo)零件;第一設(shè)定模塊,用于以所述目標(biāo)零件為起點(diǎn)設(shè)定第一搜索樹,外部空間的其中一點(diǎn)為起點(diǎn)設(shè)定第二搜索樹;第二獲取模塊,用于根據(jù)選定的采樣算法在搜索空間中獲取采樣點(diǎn);第一擴(kuò)展模塊,用于根據(jù)所述采樣點(diǎn)和預(yù)設(shè)步長度對所述第一搜索樹與所述第二搜索樹分別進(jìn)行多次擴(kuò)展,并記下每次擴(kuò)展后對應(yīng)的擴(kuò)展次數(shù),設(shè)定為第一次擴(kuò)展次數(shù);第二判斷模塊,用于判斷每次擴(kuò)展后的所述第一搜索樹與所述第二搜索樹是否具有相同節(jié)點(diǎn),并得出第二判斷結(jié)果;確定模塊,用于在所述第二判斷結(jié)果為所述第一搜索樹與所述第二搜索樹具有相同節(jié)點(diǎn)時,確定所述目標(biāo)零件具有可拆卸性。
進(jìn)一步地所述的選擇拆卸序列規(guī)劃裝置還包括:第二設(shè)定模塊,用于設(shè)定所述第一次擴(kuò)展次數(shù)的第一閾值;第三判斷模塊,用于判斷所述第一擴(kuò)展次數(shù)是否超出所述第一閾值;新建模塊,用于在所述第一擴(kuò)展次數(shù)超出所述第一閾值時,新建第三搜索樹;重新選擇模塊,用于重新選擇所述采樣點(diǎn);第二擴(kuò)展模塊,用于根據(jù)重新選擇的所述采樣點(diǎn)和所述預(yù)設(shè)步長對所述第三搜索樹進(jìn)行多次擴(kuò)展,并記下每次擴(kuò)展后對應(yīng)的擴(kuò)展次數(shù),設(shè)定為第二擴(kuò)展次數(shù);第四判斷模塊,用于判斷所述第三搜索樹分別與所述第一搜索樹和所述第二搜索樹是否均具有相同節(jié)點(diǎn),并得出第三判斷結(jié)果;合并模塊,用于在所述第三判斷結(jié)果為所述第三搜索樹分別與所述第一搜索樹和所述第二搜索樹均具有相同節(jié)點(diǎn)時,合并所述第一搜索樹、所述第二搜索·樹與所述第三搜索樹,并確定所述目標(biāo)零件具有可拆卸性。
進(jìn)一步地,所述的選擇拆卸序列規(guī)劃裝置還包括:第三設(shè)定模塊,用于設(shè)定所述第二擴(kuò)展次數(shù)的第二閾值;第五判斷模塊,用于判斷所述第二擴(kuò)展次數(shù)是否大于所述第二閾值;設(shè)置模塊,用于在所述第二擴(kuò)展次數(shù)大于所述第二閾值時,給所述第一搜索樹的末梢節(jié)點(diǎn)、所述第二搜索樹的末梢節(jié)點(diǎn)以及所述第三搜索樹的末梢節(jié)點(diǎn)分別設(shè)置一個連接值;第三擴(kuò)展模塊,用于根據(jù)選擇的所述采樣點(diǎn)與所述預(yù)設(shè)步長對所述末梢節(jié)點(diǎn)分別進(jìn)行擴(kuò)展嘗試,并判斷所述嘗試是否成功;遞減模塊,用于在所述末梢節(jié)點(diǎn)每一次擴(kuò)展嘗試失敗時,將所述末梢節(jié)點(diǎn)的連接值進(jìn)行一次遞減;對比模塊,用于將遞減后的連接值與隨機(jī)產(chǎn)生的預(yù)設(shè)范圍內(nèi)的隨機(jī)數(shù)進(jìn)行對比,得出對比結(jié)果;終止模塊,用于在所述對比結(jié)果為所述遞減后的連接值小于所述隨機(jī)數(shù),則終止對嘗試失敗的末梢節(jié)點(diǎn)進(jìn)行擴(kuò)展嘗試。
進(jìn)一步地,所述第一判斷模塊包括:第三獲取模塊,用于獲取所述第一裝配體上所有能夠直接拆卸的第一部分零件,并將所述第一部分零件放入第一層集合中;第一去除模塊,用于將所述第一部分零件從所述第一裝配體上去除,生成第二裝配體;第四獲取模塊,用于獲取所述第二裝配體上的所有能夠直接拆卸的第二部分零件,并將所述第二部分零件放入第二層集合中;重復(fù)執(zhí)行模塊,用于重復(fù)執(zhí)行所述獲取所述第一裝配體上所有能夠直接拆卸的第一部分零件,并將所述第一部分零件放入第一層集合中,將所述第一部分零件從所述第一裝配體上去除,生成第二裝配體,獲取所述第二裝配體上的所有能夠直接拆卸的第二部分零件,并將所述第二部分零件放入第二層集合中,得到所述第一裝配體的所有零件的分層關(guān)系。
進(jìn)一步地,所述第一獲取模塊包括:第一生成模塊,用于根據(jù)所述拆卸約束關(guān)系生成所述第一裝配體的零件拆卸約束關(guān)系圖;第二生成模塊,用于指定所述目標(biāo)拆卸零件,根據(jù)所述零件拆卸約束關(guān)系圖生成所述目標(biāo)拆卸零件的選擇拆卸序列。
基于運(yùn)動規(guī)劃的選擇拆卸序列規(guī)劃方法采用運(yùn)動規(guī)劃技術(shù)來判斷零件的可拆卸性,而運(yùn)動規(guī)劃算法的實(shí)現(xiàn)僅需獲得裝配體的幾何信息,不需要其他的工程語義信息,大大提高了算法的通用性;同時,該方法在應(yīng)用過程中,可自動生成指定目標(biāo)零件的可行拆卸序列而不需要人工交互干預(yù),提高了算法的自動化程度。
附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1表示本發(fā)明實(shí)施例所述的選擇拆卸序列規(guī)劃方法主要流程圖2表示本發(fā)明實(shí)施例所述的選擇拆卸序列規(guī)劃的一具體示例圖3表示本發(fā)明實(shí)施例所述的選擇拆卸序列規(guī)劃方法具體流程圖4表不本發(fā)明實(shí)施例所述的拆卸約束關(guān)系判斷流程圖5表示本發(fā)明實(shí)施例所述的裝配體層次化過程示例;
圖6表示本發(fā)明實(shí)施例所述的零件選擇拆卸序列自動生成流程圖7表示本發(fā)明實(shí)施例所述的運(yùn)動規(guī)劃算法極限情況實(shí)例圖8表示本發(fā)明實(shí)施例所述的樹節(jié)點(diǎn)連接值下降策略圖9 (a)表示本發(fā)明實(shí)施例所述的DSAMT算法測試用例圖9 (b)表示本發(fā)明實(shí)施例所述的DSAMT算法測試用例圖9 (C)表示本發(fā)明實(shí)施例所述的DSAMT算法測試用例圖10表示本發(fā)明實(shí)施例所述的選擇拆卸序列規(guī)劃裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明,但是本發(fā)明可以由權(quán)利要求限定和覆蓋的多種不同方式實(shí)施。
圖1表示本發(fā)明實(shí)施例所述的選擇拆卸序列規(guī)劃方法主要流程圖。
參見圖1所示,選擇拆卸序列規(guī)劃方法包括:
SlOl:通過運(yùn)動規(guī)劃算法判斷第一裝配體中所有零件的可拆卸性,并得出第一判斷結(jié)果;
S103:根據(jù)所述第一判斷結(jié)果對所述第一裝配體進(jìn)行層次化處理,得出所述所有零件的分層信息;
S105:對所述分層信息進(jìn)行約束關(guān)系分析,得到所述所有零件的相互拆卸約束關(guān)系;
S107:根據(jù)所述拆卸約束關(guān)系獲取所述第一裝配體中指定目標(biāo)拆卸零件的選擇拆卸序列。
在本實(shí)施例中,基于運(yùn)動規(guī)劃的選擇拆卸序列規(guī)劃的實(shí)現(xiàn)基礎(chǔ)是判斷零件在裝配體處于不同階段時的可拆卸性,即裝配體在其初始狀態(tài)或拆卸部分零件的狀態(tài)下,裝配體上的零件是否能夠找到一條無干涉的拆卸路徑到達(dá)裝配體外部自由空間。在步驟SlOl中,采用基于快速擴(kuò)展隨機(jī)樹(RRT)的運(yùn)動規(guī)劃技術(shù)對其進(jìn)行判斷。RRT算法是近幾年發(fā)展起來的一種解決包含障礙物和微分約束路徑規(guī)劃問題的新型算法,在機(jī)器人路基規(guī)劃問題上得到了非常廣泛的應(yīng)用。由于其在解決三維空間內(nèi)非凸、高維約束上的優(yōu)越性,該算法應(yīng)用在求解零件的拆卸路徑問題上也能達(dá)到非常好的效果,為自動識別零件可拆卸性提供了基礎(chǔ)。本發(fā)明根據(jù)零件拆卸問題中障礙物數(shù)量多、形狀復(fù)雜的特點(diǎn),提出一種基于自適應(yīng)動態(tài)多樹的RRT算法(DSAMT)。傳統(tǒng)的拆卸序列規(guī)劃算法在判斷零件的可拆卸性時,往往只判斷在零件連接處的正交方向(如+x,+y)處是否有局部自由度,即判斷在拆卸過程中,目標(biāo)零件是否能夠脫離裝配體成為一個可活動的零件。在實(shí)際操作中,由于在零件的拆卸路徑上可能會有其他零部件的干涉,該條件并不足以判斷零件的可拆卸性,而采用DSAMT運(yùn)動規(guī)劃技術(shù)來判斷零件能否達(dá)到全局自由空間,為判斷裝配體中零件的拆卸約束關(guān)系提供了算法基礎(chǔ),能夠較大提升RRT算法求解零件拆卸路徑的效率和成功率。針對復(fù)雜環(huán)境的運(yùn)動規(guī)劃,基于裝配體的三維模型,分析零件間的拆卸約束關(guān)系,通過運(yùn)動規(guī)劃技術(shù)求解零件是否有拆卸路徑。
針對一具體裝配體,包含多個零件,將可直接自由拆卸的零件放入第一層,除去第一層可拆卸零件后,繼續(xù)找可直接自由拆卸的零件,并將這部分零件放入第二層,如此類推的將該裝配體的全部零件進(jìn)行分層,具 體可按如下描述:
設(shè)Q = (Pi, i = 1,2夂]1}為待拆卸裝配體中所有的零件,其中n為裝配體中的零件個數(shù),Pto為目標(biāo)拆卸零件。根據(jù)零件裝配深度的不同,將裝配體分為若干層次,設(shè)4 =丨Pl- P:<丨為第n層零件集合,其中包含k個零件。集合Ln中的零件滿足以下兩個特點(diǎn):1)在Llri中的零件拆卸之前,Ln中的零件無法拆卸;2)僅在Ln中的零件拆卸后,Ln+1中的零件才可完成拆卸。設(shè)Ptm為Lk中的零件,為了求解Ptm的拆卸序列S = {pj, j = I, 2 —m, Pj G Q },需要分析0-k層零件次間的拆卸約束關(guān)系,找到拆卸目標(biāo)零件Ptm的相關(guān)前置條件,然后完成零件拆卸序列的求解
對于步驟S103至S105的方法,可通過圖2的具體實(shí)施例進(jìn)一步的闡明,圖2表示本發(fā)明實(shí)施例所述的選擇拆卸序列規(guī)劃的一具體示例圖。參見圖2所示,假設(shè)埋頭螺釘G出現(xiàn)故障需要進(jìn)行更換,傳統(tǒng)的拆卸序列算法需要提前明確該裝配體的裝配信息,連接信息等,然后采用圖搜索算法尋找零件G的拆卸序列。本文論述的方法首先導(dǎo)入圖示裝配體的三維模型,利用運(yùn)動規(guī)劃算法自動分析各個零件之間存在的拆卸約束關(guān)系,例如在初始狀態(tài)下,僅有螺釘D,F(xiàn),E,H可以到達(dá)外部自由空間,將這四個螺釘放入第一層L1中;在將以上四個零件拆除后,零件C可以在無干涉的情況下到達(dá)外部自由空間,則L2= {C};以上兩步拆卸完成后,目標(biāo)拆卸零件螺釘G即可以通過運(yùn)動規(guī)劃技術(shù)得到一條無干涉的拆卸路徑,即螺釘G屬于L3。通過分析螺釘D,F(xiàn),E, H與零件C的關(guān)系可知,僅有螺釘D與零件C的拆卸有關(guān),因此目標(biāo)拆卸零件G的拆卸序列應(yīng)為(D — C — G)。
采用本實(shí)施例的上述技術(shù)方案,通過運(yùn)動規(guī)劃技術(shù)求解零件是否有拆卸路徑,通過對裝配體自動層次化處理得到裝配體的零件拆卸約束關(guān)系圖,然后自動生成零件拆卸序列,與現(xiàn)有的規(guī)劃技術(shù)在求解拆卸序列前通常需要獲取大量的裝配信息,并經(jīng)常需要手動輸入裝配或拆卸信息后才能進(jìn)行求解相比,有效的提高了規(guī)劃方法的通用性和自動化程度。
更具體地,選擇拆卸序列規(guī)劃方法可按照圖3所示的步驟進(jìn)行。
圖3表示本發(fā)明實(shí)施例所述的選擇拆卸序列規(guī)劃方法具體流程參見圖3所示,選擇拆卸序列規(guī)劃方法包括:
步驟301:導(dǎo)入第一裝配體M1的三維幾何模型。
在此步驟中,在選擇拆卸序列問題中,目的是得到目標(biāo)零件的拆卸序列,該問題的輸入是目標(biāo)裝配體的三維幾何模型以及指定要拆卸的零部件,輸出是一個包含若干零部件編號的零件拆卸序列。
步驟303:通過運(yùn)動規(guī)劃技術(shù),對承載目標(biāo)零件的裝配體進(jìn)行自動層次化處理,生成裝配體零件拆卸約束關(guān)系圖。
在此步驟中,首先執(zhí)行步驟a:針對第一裝配體乂,通過運(yùn)動規(guī)劃技術(shù),找到所有能夠直接拆卸的零件P1, P2- Pi,并這些零件放入第一層集合中,L1 = (P1, P2...pj。其次執(zhí)行步驟b:將第一裝配體M1去除第一層的零件,形成第二裝配體M2,M2 = M1-L115再次執(zhí)行步驟c:針對第二裝配體仏,通過運(yùn)動規(guī)劃技術(shù),找到所有能夠直接拆卸的零件pi+1,pi+2...pi+J,并這些零件放入第二層集合中,L1 = {pi+1, pi+2...pi+J} 0之后重復(fù)步驟b和步驟c,獲得第一裝配體M1的所有零件分層L1, L2...Ln。
在應(yīng)用運(yùn)動規(guī)劃技術(shù)對零件進(jìn)行拆卸路徑分析的基礎(chǔ)上,進(jìn)行裝配體零件拆洗約束關(guān)系圖的構(gòu)建。裝配體零件拆卸約束關(guān)系圖的生成需要兩個步驟:1)裝配體結(jié)構(gòu)分層;2)分析裝配體不同層次間零件的拆卸約束關(guān)系。按照步驟301中的方法對裝配體結(jié)構(gòu)進(jìn)行分層。
I)裝配體結(jié)構(gòu)分層:設(shè)Q = (Pi, i = I, 2---n}表示裝配體中所有的零件;G = 0為已處理的零件,初始值為空集。首先對集合Q中的元素做遍歷,判斷零件的可拆卸性。在判斷目標(biāo)零件Ptal 可拆卸性的過程中,障礙物集合0 = (Pi, Pi G Q , Pi ^ ptar},即除了自身外所有未拆卸的裝配體零件。將具有可拆卸性的零件組成新的集合L1 = {pypj為當(dāng)前環(huán)境下可以找到拆卸路徑的零件},放入集合G中并記錄零件的拆卸路徑,供下文分析零件拆卸約束關(guān)系使用。新集合L1中的元素即為該裝配體的第一層元素;同時將已放入集合G中的元素從集合Q中剔除,準(zhǔn)備下一輪遍歷。由于在算法運(yùn)行的過程中,不斷從集合Q中剔除元素,因此障礙物集合0也會隨著計(jì)算的進(jìn)行而不斷減少。按照上述步驟分別得到其他層的零件,由于上文中假設(shè)已經(jīng)指明裝配體必定可以通過某種裝配序列完成裝配,因此每一輪遍歷中,都至少有I個拆卸單元滿足可拆卸性的條件,即每一次遍歷,Q中的元素都會減少,當(dāng)Q = 0時 計(jì)算結(jié)束,得到如5(a)所示的裝配體結(jié)構(gòu)層次圖。
2)零件間拆卸約束關(guān)系圖的建立:在將裝配體中的各個零部件進(jìn)行分層處理后,需要分析不同層次間零件的拆卸約束關(guān)系,具體流程可參見圖4所示。
步驟401:目標(biāo)分析零件p ;
即輸入目標(biāo)分析零件p的集合信息;
步驟402:判斷零件p層次N設(shè)定循環(huán)技術(shù)i=N_l ;
對于Ln (第n層)的零件< ,根據(jù)零件層次的定義可知,假如將L1至Llri層中的零件全部去除的話,該零件必然具備可拆卸性,但這種方法會涉及到大量不必要拆卸的零件,效率低下。因此本方法設(shè)定循環(huán)技術(shù),步驟如下:
判斷i是否為0,如是進(jìn)入步驟403,分析完成,若不是,執(zhí)行步驟404。
步驟404:獲取零件p拆卸路徑;
步驟405:去除i層中與零件p已經(jīng)有間接聯(lián)系的零件。
步驟406:與第i層的零件做干涉檢測并獲得干涉零件集合C ;
步驟407:計(jì)算干涉零件集合中的所有組合m種,并按照零件數(shù)由多到少排列,Cj為第j種組合;
步驟408:將第N層,N+層以及Cj中的零件組成新的裝配體;
步驟409:在新的裝配體中對零件p施加運(yùn)動規(guī)劃算法;
判斷運(yùn)動規(guī)劃算法是否成功,若是,執(zhí)行步驟410,若否返回執(zhí)行步驟408 ;
步驟410:更新零件p的拆卸路徑;
步驟411:連接零件p與集合(C-Cj)中的零件,然后繼續(xù)判斷判斷i是否為O。
上述實(shí)施例的技術(shù)方案是將/<保存的拆卸路徑與裝配體中的其他零件做干涉檢測,首先僅考慮Llri中的零件,設(shè)Llri中與該拆卸路徑有碰撞的零件個數(shù)為m個,在分別去掉這m個零件中的每一個零件后,對目標(biāo)拆卸零件進(jìn)行拆卸路徑檢測,障礙物集合O=IPnPiGa1Pi ^Ll-1. !丨+仏^^^“中剩余元素匕此時若能夠找到影響^拆卸的元素,即通過拆卸某零件可以使目標(biāo)零件P:找到拆卸路徑,則算法進(jìn)入Ln_2層的運(yùn)算,同時將A"的拆卸路徑更新為最后一次運(yùn)動規(guī)劃獲得的拆卸路徑;如果無法找到,則在m個零件中分別去掉2個零件,對目標(biāo)拆卸單元進(jìn)行拆卸路徑檢測,按照此方法循環(huán)下去,最多將進(jìn)行(I + (t +- + C次檢測。由于本文中論述的方法需要零件達(dá)到全局自由空間,在對零件進(jìn)行運(yùn)動規(guī)劃時,較低層的零件很有可能會成為未知障礙物阻礙拆卸過程的完成,因此僅僅分析Llri中的拆卸約束關(guān)系是不夠的。將上述操作應(yīng)用于Llri至L1層,即可得到對于零件<完整的拆卸約束關(guān)系,需要指出的是,在進(jìn)行Ln_2至L1層的檢測時,Llri層的相關(guān)約束零件以及低層中與之直接或間接連接的所有零件都將被剔除,這將使運(yùn)算量大大減少。將具有拆卸約束關(guān)系的零件用單向箭頭連接,箭頭由較低的層指向較高的層,當(dāng)且僅當(dāng)所有指向K的箭頭連接的零件被拆卸后,<才具有可拆卸性。當(dāng)裝配體中所有的零件由低層到高層逐一分析完成后,得到如5(b)所示的零件間拆卸約束關(guān)系圖。
步驟305:生成指定零件的拆卸序列。
由于在對裝配體間的零部件進(jìn)行拆卸約束關(guān)系分析的過程中,當(dāng)拆卸零件尋找到無干涉拆卸路徑后就會結(jié)束當(dāng)前循環(huán)進(jìn)入下一層零件的分析,因此在得到的拆卸約束關(guān)系圖中,針對某個目標(biāo)零部件,逐層尋找與該零件直接或間接相連的零件即可完成該目標(biāo)零件的拆卸序列。
自動生成拆卸序列的流程如圖6所示:
步驟601:目標(biāo)拆卸零件p ;
步驟602:判定零件層次n初始化序列S= { (p) },設(shè)定循環(huán)計(jì)數(shù)i=n_l;
在本步驟中,設(shè)目標(biāo)零件W為第n層零件,集合S儲存最終生成的拆卸序列,首先令S = Up;')}
判斷i是否為0,若是執(zhí)行步驟603,輸出序列S,若否,執(zhí)行步驟604。
步驟604:在第i層選擇所有與S中零件相關(guān)聯(lián)的零件。
在Llri中尋找所有與<相連的零件= {(pr\pT'---PT' )1 ,將其插入S的前端,使.狀1,…(1MaI5
步驟605:將第i層中選擇的零件放到序列S的前端。
隨后在Ln_2中尋找所有與S中元素相連的零件并插入S的前端,該運(yùn)算反復(fù)進(jìn)行到1^,得到的5={(/ ../^),(片,烤…片)...(夕廣,/^…0,沉)}即為目標(biāo)零件《的拆卸序列,括號“ 0 ”中的零件可以按照任意順序進(jìn)行拆卸。
對上述實(shí)施例中采用基于快速擴(kuò)展隨機(jī)樹(RRT)的運(yùn)動規(guī)劃技術(shù)對其進(jìn)行判斷。采用基于快速擴(kuò)展隨機(jī)樹(RRT)的運(yùn)動規(guī)劃技術(shù)對其進(jìn)行判斷。在描述RRT算法時,首先確定搜索目標(biāo)的起始位置與目標(biāo)位置,通過在三維空間中的隨機(jī)采樣過程,確定搜索樹的伸展方向。在樹的生長過程中,通過限制生長的步長以及與環(huán)境中障礙物的碰撞干涉檢測,逐步接近目標(biāo)位置。在運(yùn)動規(guī)劃算法中采用了形位空間的概念,對于三維空間中的裝配體零件,由于零件 P有三個平動自由度和三個轉(zhuǎn)動自由度,故求解空間是一個六維空間,用Cspace表示。設(shè)(Xpyi^i)和(a。Pi, Yi)分別表示第i個零件的位置向量與歐拉角轉(zhuǎn)動向量,則有為,了.)4f = (g,,/=丨,2…6)r_。設(shè) O = 1i, i = 1,2 — 111}表示拆卸該零件時三維空間里除該零件外所有其他零件,在求解該零件的拆卸路徑時,這些零件將被視作求解空間中的障礙物,m表示拆卸該零件時,裝配體中剩余的零件個數(shù)。對于指定的零件P,障礙區(qū)域Ca = Ui e C. mn.:P(q)rs° * 0},表示零件P與障礙物0發(fā)生碰撞的所有形位空間的集合。Cf_ = Cspara-Ctjbs表示零件在不與其他零件發(fā)生碰撞干涉的前提下,能夠到達(dá)的所有形位空間。因此,求解零件P的可拆卸性可以抽象為在零件P的Cftra空間內(nèi),找到一條連續(xù)的路徑,從該零件的初始裝配位置到達(dá)外部自由空間。
針對拆卸問題中零部件數(shù)量繁多,且形狀各異的情況,原始的RRT算法雖然能夠通過不斷的嘗試得到問題的解,但一個顯著的問題是算法的效率低。在實(shí)際操作過程中,求解零件的拆卸路徑平均需要運(yùn)行幾十次甚至更多次的計(jì)算才可以得到解。目前針對基本RRT算法的改進(jìn)方法雖然在一定程度上提高了算法的性能,但是都只針對某種特定的應(yīng)用環(huán)境而提出,在求解復(fù)雜結(jié)構(gòu)條件下的拆卸路徑時不具備通用性,效果也不理想。本發(fā)明根據(jù)零件拆卸問題中障礙物數(shù)量多、形狀復(fù)雜的特點(diǎn),提出一種基于自適應(yīng)動態(tài)多樹的RRT算法(DSAMT),能夠較大提升RRT算法求解零件拆卸路徑的效率和成功率。
其一,將傳統(tǒng)RRT中的單樹模式改進(jìn)為多樹模式。
以所述目標(biāo)零件為起點(diǎn)設(shè)定第一搜索樹,外部空間的其中一點(diǎn)為起點(diǎn)設(shè)定第二搜索樹;根據(jù)選定的采樣算法在搜索空間中獲取采樣點(diǎn);根據(jù)所述采樣點(diǎn)和預(yù)設(shè)步長度對所述第一搜索樹與所述第二搜索樹分別進(jìn)行多次擴(kuò)展,并記下每次擴(kuò)展后對應(yīng)的擴(kuò)展次數(shù),設(shè)定為第一次擴(kuò)展次數(shù);判斷每次擴(kuò)展后的所述第一搜索樹與所述第二搜索樹是否具有相同節(jié)點(diǎn),并得出第二判斷結(jié)果;在所述第二判斷結(jié)果為所述第一搜索樹與所述第二搜索樹具有相同節(jié)點(diǎn)時,確定所述目標(biāo)零件具有可拆卸性。
根據(jù)上述的技術(shù)方案,擴(kuò)展多次以后,仍然沒有找到第一搜索樹與第二搜索樹具有的相同節(jié)點(diǎn),則進(jìn)行動態(tài)添加新的搜索樹。步驟如下:
步驟a:設(shè)定所述第一次擴(kuò)展次數(shù)的第一閾值;
步驟b:判斷所述第一擴(kuò)展次數(shù)是否超出所述第一閾值;
步驟C:在所述第一擴(kuò)展次數(shù)超出所述第一閾值時,新建第三搜索樹;
步驟d:重新選擇所述采樣點(diǎn);
步驟e:根據(jù)重新選擇的所述采樣點(diǎn)和所述預(yù)設(shè)步長對所述第三搜索樹進(jìn)行多次擴(kuò)展,并記下每次擴(kuò)展后對應(yīng)的擴(kuò)展次數(shù),設(shè)定為第二擴(kuò)展次數(shù);
步驟f:判斷所述第三搜索樹分別與所述第一搜索樹和所述第二搜索樹是否均具有相同節(jié)點(diǎn),并得出第三判斷結(jié)果;
步驟g:在所述第三判斷結(jié)果為所述第三搜索樹分別與所述第一搜索樹和所述第二搜索樹均具有相同節(jié)點(diǎn)時,合并所述第一搜索樹、所述第二搜索樹與所述第三搜索樹,并確定所述目標(biāo)零件具有可拆卸性。
本實(shí)施例的上述技術(shù)方案,是對于零件數(shù)量眾多的拆卸序列問題而言,一個拆卸序列的生成需要計(jì)算若干個零件的拆卸路徑,對于拆卸序列中間的零件而言,由于在拆卸過程中某些零件已經(jīng)被移除了,故障礙物的集合是不可知的,若依然按照事先分析的數(shù)量來安排搜索樹,會造成計(jì)算機(jī)資源的浪費(fèi),降低算法效率。而本發(fā)明的基于動態(tài)多樹的RRT算法,在算法的執(zhí)行前期只構(gòu)建一個搜索樹,隨著搜索過程的一步步推進(jìn),根據(jù)搜索樹擴(kuò)張失敗的情況動態(tài)添加新的搜索樹,在能夠滿足算法功能需求的前提下,盡可能降低計(jì)算資源的占用,提聞計(jì)算效 率。
其二,根據(jù)搜索進(jìn)程動態(tài)調(diào)整樹節(jié)點(diǎn)的連接可能性。
在多次擴(kuò)展之后,搜索樹擴(kuò)張失敗后,動態(tài)調(diào)整樹節(jié)點(diǎn)的連接可能性,具體方法為:設(shè)定所述第二擴(kuò)展次數(shù)的第二閾值;判斷所述第二擴(kuò)展次數(shù)是否大于所述第二閾值;在所述第二擴(kuò)展次數(shù)大于所述第二閾值時,給所述第一搜索樹的末梢節(jié)點(diǎn)、所述第二搜索樹的末梢節(jié)點(diǎn)以及所述第三搜索樹的末梢節(jié)點(diǎn)分別設(shè)置一個連接值;根據(jù)選擇的所述采樣點(diǎn)與所述預(yù)設(shè)步長對所述末梢節(jié)點(diǎn)分別進(jìn)行擴(kuò)展嘗試,并判斷所述嘗試是否成功;在所述末梢節(jié)點(diǎn)每一次擴(kuò)展嘗試失敗時,將所述末梢節(jié)點(diǎn)的連接值進(jìn)行一次遞減;遞減后的連接值與隨機(jī)產(chǎn)生的預(yù)設(shè)范圍內(nèi)的隨機(jī)數(shù)進(jìn)行對比,得出對比結(jié)果;在所述對比結(jié)果為所述遞減后的連接值小于所述隨機(jī)數(shù),則終止對嘗試失敗的末梢節(jié)點(diǎn)進(jìn)行擴(kuò)展嘗試。
傳統(tǒng)的RRT算法在處理節(jié)點(diǎn)連接時采用的是就近連接的方法,即選擇距離采樣點(diǎn)最近的樹節(jié)點(diǎn)進(jìn)行連接,然后判斷該連接路徑是否與障礙物干涉。在如圖7所示的極限情況下,節(jié)點(diǎn)A等位于弧頂?shù)墓?jié)點(diǎn)顯然已經(jīng)不具備繼續(xù)擴(kuò)展的價(jià)值,而算法在區(qū)域B中進(jìn)行采樣的幾率又非常大,如果按照傳統(tǒng)的RRT算法,該算法將會在以上點(diǎn)處進(jìn)行大量的無意義嘗試,這種計(jì)算方法必然會對算法的效率產(chǎn)生很大的影響。而由于RRT算法非完備性的特點(diǎn),算法在運(yùn)行前會設(shè)定總嘗試擴(kuò)展次數(shù)的邊界,當(dāng)嘗試擴(kuò)展的次數(shù)大于邊界值時,算法將會返回為失敗,因此本發(fā)明提出了一種搜索樹節(jié)點(diǎn)自適應(yīng)的方法,給每一個節(jié)點(diǎn)設(shè)定連接值a,a的初始值為I。如圖8所示,該節(jié)點(diǎn)每一次失敗的連接嘗試都會導(dǎo)致a呈分段函數(shù)式(I)的形式遞減,在每一次采樣后,都會通過隨機(jī)數(shù)生成器隨機(jī)產(chǎn)生一個位于區(qū)間(O,I)的隨機(jī)數(shù),若該隨機(jī)數(shù)大于a,則不對該節(jié)點(diǎn)進(jìn)行擴(kuò)展嘗試。采用式(I)來設(shè)定a的遞減策略,當(dāng)失敗的嘗試次數(shù)在O到N1之間時,保持節(jié)點(diǎn)的連接值為1,可以避免早期搜索中一些不可避免的失敗擴(kuò)張對該連接值造成的影響;而在經(jīng)過若干次嘗試后,在逐漸判定該點(diǎn)為擴(kuò)展死點(diǎn)的情況下,又可以迅速降低連接值的數(shù)值,節(jié)約計(jì)算資源;最后當(dāng)失敗次數(shù)超過N2時,保持節(jié)點(diǎn)的連接值b,可以使該節(jié)點(diǎn)具備一定的可連接性,保留該點(diǎn)在未來的計(jì)算中可能重新被激活的可能。在圖7的例子中,當(dāng)弧頂?shù)墓?jié)點(diǎn)逐漸被判斷為死點(diǎn)的情況下,將優(yōu)先發(fā)展節(jié)點(diǎn)C。
針對上述給出的動態(tài)調(diào)整樹節(jié)點(diǎn)的連接可能性的算法,現(xiàn)給出實(shí)施例進(jìn)行測試,如圖9a至圖9c,當(dāng)N1=5,N2=30, b=0.2時,該算法與傳統(tǒng)RRT算法的數(shù)據(jù)對比如表I所示,其中迭代上限1500,每種算法運(yùn)算10次,結(jié)果取平均值。
權(quán)利要求
1.一種選擇拆卸序列規(guī)劃方法,其特征在于,包括: 通過運(yùn)動規(guī)劃算法判斷第一裝配體中所有零件的可拆卸性,并得出第一判斷結(jié)果; 根據(jù)所述第一判斷結(jié)果對所述第一裝配體進(jìn)行層次化處理,得出所述所有零件的分層信息; 對所述分層信息進(jìn)行約束關(guān)系分析,得到所述所有零件的相互拆卸約束關(guān)系; 根據(jù)所述拆卸約束關(guān)系獲取所述第一裝配體中指定目標(biāo)拆卸零件的選擇拆卸序列。
2.如權(quán)利要求1所述的選擇拆卸序列規(guī)劃方法,其特征在于,所述通過運(yùn)動規(guī)劃算法判斷第一裝配體中所有零件的可拆卸性包括: 對所述所有零件進(jìn)行遍歷,分別設(shè)定每一個零件為目標(biāo)零件; 以所述目標(biāo)零件為起點(diǎn)設(shè)定第一搜索樹,外部空間的其中一點(diǎn)為起點(diǎn)設(shè)定第二搜索樹; 根據(jù)選定的采樣算法在搜索空間中獲取采樣點(diǎn); 根據(jù)所述采樣點(diǎn)和預(yù)設(shè)步長度對所述第一搜索樹與所述第二搜索樹分別進(jìn)行多次擴(kuò)展,并記下每次擴(kuò)展后對應(yīng)的擴(kuò)展次數(shù),設(shè)定為第一次擴(kuò)展次數(shù); 判斷每次擴(kuò)展后的所述第一搜索樹與所述第二搜索樹是否具有相同節(jié)點(diǎn),并得出第二判斷結(jié)果; 在所述第二判斷結(jié)果為所述第一搜索樹與所述第二搜索樹具有相同節(jié)點(diǎn)時,確定所述目標(biāo)零件具有可拆卸性。
3.如權(quán)利要求2所述的選擇拆卸序列規(guī)劃方法,其特征在于,在所述第二判斷結(jié)果為所述第一搜索樹與所述第二搜索樹不具有相同節(jié)點(diǎn)時,所述選擇拆卸序列規(guī)劃方法還包括: 步驟a:設(shè)定所述第一次擴(kuò)展次數(shù)的第一閾值; 步驟b:判斷所述第一擴(kuò)展次數(shù)是否超出所述第一閾值; 步驟c:在所述第一擴(kuò)展次數(shù)超出所述第一閾值時,新建第三搜索樹; 步驟d:重新選擇所述采樣點(diǎn); 步驟e:根據(jù)重新選擇的所述采樣點(diǎn)和所述預(yù)設(shè)步長對所述第三搜索樹進(jìn)行多次擴(kuò)展,并記下每次擴(kuò)展后對應(yīng)的擴(kuò)展次數(shù),設(shè)定為第二擴(kuò)展次數(shù); 步驟f:判斷所述第三搜索樹分別與所述第一搜索樹和所述第二搜索樹是否均具有相同節(jié)點(diǎn),并得出第三判斷結(jié)果; 步驟g:在所述第三判斷結(jié)果為所述第三搜索樹分別與所述第一搜索樹和所述第二搜索樹均具有相同節(jié)點(diǎn)時,合并所述第一搜索樹、所述第二搜索樹與所述第三搜索樹,并確定所述目標(biāo)零件具有可拆卸性。
4.如權(quán)利要求3所述的選擇拆卸序列規(guī)劃方法,其特征在于,在所述第三判斷結(jié)果為所述第三搜索樹與所述第一搜索樹和所述第二搜索樹不是均具有相同節(jié)點(diǎn)時,返回執(zhí)行所述步驟c至所述步驟g。
5.如權(quán)利要求3或4所述的選擇拆卸序列規(guī)劃方法,其特征在于,在所述第三判斷結(jié)果為所述第三搜索樹與所述第一搜索樹和所述第二搜索樹不是均具有相同節(jié)點(diǎn)時,所述選擇拆卸序列規(guī)劃方法還包括: 設(shè)定所述第二擴(kuò)展次數(shù)的第二閾值;判斷所述第二擴(kuò)展次數(shù)是否大于所述第二閾值; 在所述第二擴(kuò)展次數(shù)大于所述第二閾值時,給所述第一搜索樹的末梢節(jié)點(diǎn)、所述第二搜索樹的末梢節(jié)點(diǎn)以及所述第三搜索樹的末梢節(jié)點(diǎn)分別設(shè)置一個連接值; 根據(jù)選擇的所述采樣點(diǎn)與所述預(yù)設(shè)步長對所述末梢節(jié)點(diǎn)分別進(jìn)行擴(kuò)展嘗試,并判斷所述嘗試是否成功; 在所述末梢節(jié)點(diǎn)每一次擴(kuò)展嘗試失敗時,將所述末梢節(jié)點(diǎn)的連接值進(jìn)行一次遞減;將遞減后的連接值與隨機(jī)產(chǎn)生的預(yù)設(shè)范圍內(nèi)的隨機(jī)數(shù)進(jìn)行對比,得出對比結(jié)果;在所述對比結(jié)果為所述遞減后的連接值小于所述隨機(jī)數(shù),則終止對嘗試失敗的末梢節(jié)點(diǎn)進(jìn)行擴(kuò)展嘗試。
6.如權(quán)利要求1所述的選擇拆卸序列規(guī)劃方法,其特征在于,所述根據(jù)所述第一判斷結(jié)果對所述第一裝配體進(jìn)行層次化處理包括: 步驟A:獲取所述第一裝配體上所有能夠直接拆卸的第一部分零件,并將所述第一部分零件放入第一層集合中; 步驟B:將所述第一部分零件從所述第一裝配體上去除,生成第二裝配體; 步驟C:獲取所述第二裝配體上的所有能夠直接拆卸的第二部分零件,并將所述第二部分零件放入第二層集合中; 步驟D:重復(fù)執(zhí)行所述步驟A至所述步驟C,得到所述第一裝配體的所有零件的分層關(guān)系O
7.如權(quán)利要求1所述的選擇拆卸序列規(guī)劃方法,其特征在于,所述對所述分層信息進(jìn)行約束關(guān)系分析,得到所述所有零件的相互拆卸約束關(guān)系包括: 步驟E:任取所述分層信息中第二層中任一目標(biāo)分析零件; 步驟F:去除將所述第一裝配體上的第一層零件,獲得第二裝配體;步驟G:獲取所述目標(biāo)分析零件的拆卸路徑,將所述目標(biāo)分析零件沿所述拆卸路徑與所述第二裝配體中所有零件進(jìn)行干涉檢測,獲取與所述目標(biāo)分析零件碰撞的零件集合Ω ;步驟H:將所述零件集合Ω中的零件進(jìn)行一次全組合,若集合Ω中有m個零件,則該集合中全組合的個數(shù)為( ..+ (:;將所述全組合按照零件個數(shù)從小到大排列,依次從所述第二裝配體中除去這些零件,并在每次去除后,對所述目標(biāo)分析零件進(jìn)行運(yùn)動規(guī)劃,判斷所述目標(biāo)分析零件的可拆卸性,直至所述目標(biāo)分析零件具備可拆卸性; 步驟1:將所述目標(biāo)分析零件與所述步驟G中最后去除的一組零件,稱為第一零件組分別用箭頭連接起來; 步驟J:在所述第二裝配體中加入下一層零件,并去除所述第一零件組,以及與所述第一零件組連接的零件,組成第三裝配體;重復(fù)步驟G至I,完成目標(biāo)分析零件的拆卸約束關(guān)系分析; 步驟K:對所述第二層中所有零件重復(fù)所述步驟E至所述步驟J,完成所述第二層中所有零件的拆卸約束關(guān)系分析; 步驟L:對所述第一裝配體中除所述第二層以外的層分別重復(fù)所述步驟E至所述步驟K,完成所述第一裝配體中所有零件的拆卸約束關(guān)系的分析。
8.如權(quán)利要求1所述的選擇拆卸序列規(guī)劃方法,其特征在于,所述根據(jù)所述約束關(guān)系獲取所述目標(biāo)拆卸零件的選擇拆卸序列包括:根據(jù)所述拆卸約束關(guān)系生成所述第一裝配體的零件拆卸約束關(guān)系圖; 指定所述目標(biāo)拆卸零件,根據(jù)所述零件拆卸約束關(guān)系圖生成所述目標(biāo)拆卸零件的選擇拆卸序列。
9.一種選擇拆卸序列規(guī)劃裝置,其特征在于,包括: 第一判斷模塊,用于通過運(yùn)動規(guī)劃算法判斷第一裝配體中所有零件的可拆卸性,并得出第一判斷結(jié)果; 層次化處理模塊,用于根據(jù)所述第一判斷結(jié)果對所述第一裝配體進(jìn)行層次化處理,得出所述所有零件的分層信息; 分析模塊,用于對所述分層信息進(jìn)行約束關(guān)系分析,得到所述所有零件的相互拆卸約束關(guān)系; 第一獲取模塊,用于根據(jù)所述拆卸約束關(guān)系獲取所述第一裝配體中指定目標(biāo)拆卸零件的選擇拆卸序列。
10.如權(quán)利要求9所述的選擇拆卸序列規(guī)劃裝置,其特征在于,所述第一判斷模塊包括: 遍歷模塊,用于對所述所有零件進(jìn)行遍歷,分別設(shè)定每一個零件為目標(biāo)零件; 第一設(shè)定模塊,用于以所述目標(biāo)零件為起點(diǎn)設(shè)定第一搜索樹,外部空間的其中一點(diǎn)為起點(diǎn)設(shè)定第二搜索樹; 第二獲取模塊,用于根據(jù)選定的采樣算法在搜索空間中獲取采樣點(diǎn); 第一擴(kuò)展模塊,用于根據(jù)所 述采樣點(diǎn)和預(yù)設(shè)步長度對所述第一搜索樹與所述第二搜索樹分別進(jìn)行多次擴(kuò)展,并記下每次擴(kuò)展后對應(yīng)的擴(kuò)展次數(shù),設(shè)定為第一次擴(kuò)展次數(shù); 第二判斷模塊,用于判斷每次擴(kuò)展后的所述第一搜索樹與所述第二搜索樹是否具有相同節(jié)點(diǎn),并得出第二判斷結(jié)果; 確定模塊,用于在所述第二判斷結(jié)果為所述第一搜索樹與所述第二搜索樹具有相同節(jié)點(diǎn)時,確定所述目標(biāo)零件具有可拆卸性。
11.如權(quán)利要求10所述的選擇拆卸序列規(guī)劃裝置,其特征在于,還包括: 第二設(shè)定模塊,用于設(shè)定所述第一次擴(kuò)展次數(shù)的第一閾值; 第三判斷模塊,用于判斷所述第一擴(kuò)展次數(shù)是否超出所述第一閾值; 新建模塊,用于在所述第一擴(kuò)展次數(shù)超出所述第一閾值時,新建第三搜索樹; 重新選擇模塊,用于重新選擇所述采樣點(diǎn); 第二擴(kuò)展模塊,用于根據(jù)重新選擇的所述采樣點(diǎn)和所述預(yù)設(shè)步長對所述第三搜索樹進(jìn)行多次擴(kuò)展,并記下每次擴(kuò)展后對應(yīng)的擴(kuò)展次數(shù),設(shè)定為第二擴(kuò)展次數(shù); 第四判斷模塊,用于判斷所述第三搜索樹分別與所述第一搜索樹和所述第二搜索樹是否均具有相同節(jié)點(diǎn),并得出第三判斷結(jié)果; 合并模塊,用于在所述第三判斷結(jié)果為所述第三搜索樹分別與所述第一搜索樹和所述第二搜索樹均具有相同節(jié)點(diǎn)時,合并所述第一搜索樹、所述第二搜索樹與所述第三搜索樹,并確定所述目標(biāo)零件具有可拆卸性。
12.如權(quán)利要求11所述的選擇拆卸序列規(guī)劃裝置,其特征在于,還包括: 第三設(shè)定模塊,用于設(shè)定所述第二擴(kuò)展次數(shù)的第二閾值; 第五判斷模塊,用于判斷所述第二擴(kuò)展次數(shù)是否大于所述第二閾值;設(shè)置模塊,用于在所述第二擴(kuò)展次數(shù)大于所述第二閾值時,給所述第一搜索樹的末梢節(jié)點(diǎn)、所述第二搜索樹的末梢節(jié)點(diǎn)以及所述第三搜索樹的末梢節(jié)點(diǎn)分別設(shè)置一個連接值;第三擴(kuò)展模塊,用于根據(jù)選擇的所述采樣點(diǎn)與所述預(yù)設(shè)步長對所述末梢節(jié)點(diǎn)分別進(jìn)行擴(kuò)展嘗試,并判斷所述嘗試是否成功; 遞減模塊,用于在所述末梢節(jié)點(diǎn)每一次擴(kuò)展嘗試失敗時,將所述末梢節(jié)點(diǎn)的連接值進(jìn)行一次遞減; 對比模塊,用于將遞減后的連接值與隨機(jī)產(chǎn)生的預(yù)設(shè)范圍內(nèi)的隨機(jī)數(shù)進(jìn)行對比,得出對比結(jié)果; 終止模塊,用于在所述對比結(jié)果為所述遞減后的連接值小于所述隨機(jī)數(shù),則終止對嘗試失敗的末梢節(jié)點(diǎn)進(jìn)行擴(kuò)展嘗試。
13.如權(quán)利要求9所述的選擇拆卸序列規(guī)劃裝置,其特征在于,所述第一判斷模塊包括: 第三獲取模塊,用于獲取所述第一裝配體上所有能夠直接拆卸的第一部分零件,并將所述第一部分零件放入第一層集合中; 第一去除模塊,用于將所述第一部分零件從所述第一裝配體上去除,生成第二裝配體; 第四獲取模塊,用于獲取所述第二裝配體上的所有能夠直接拆卸的第二部分零件,并將所述第二部分零件放入第二層集合中; 重復(fù)執(zhí)行模塊,用于重復(fù)執(zhí)行所述獲取所述第一裝配體上所有能夠直接拆卸的第一部分零件,并將所述第一部分零件放入第一層集合中,將所述第一部分零件從所述第一裝配體上去除,生成第二裝配體,獲取所述第二裝配體上的所有能夠直接拆卸的第二部分零件,并將所述第二部分零件放入第二層集合中,得到所述第一裝配體的所有零件的分層關(guān)系。
14.如權(quán)利要求9所述的選擇拆卸序列規(guī)劃裝置,其特征在于,所述第一獲取模塊包括: 第一生成模塊,用于根據(jù)所述拆卸約束關(guān)系生成所述第一裝配體的零件拆卸約束關(guān)系圖; 第二生成模塊,用于指定所述目標(biāo)拆卸零件,根據(jù)所述零件拆卸約束關(guān)系圖生成所述目標(biāo)拆卸零件的選擇拆卸序列。
全文摘要
本發(fā)明公開一種選擇拆卸序列規(guī)劃方法及裝置,用于解決現(xiàn)有技術(shù)中對選擇拆卸序列規(guī)劃方法存在自動化程度不高和通用性差的問題。該規(guī)劃方法包括通過運(yùn)動規(guī)劃算法判斷第一裝配體中所有零件的可拆卸性,并得出第一判斷結(jié)果;根據(jù)所述第一判斷結(jié)果對所述第一裝配體進(jìn)行層次化處理,得出所述所有零件的分層信息;對所述分層信息進(jìn)行約束關(guān)系分析,得到所述所有零件的相互拆卸約束關(guān)系;根據(jù)所述拆卸約束關(guān)系獲取所述第一裝配體中指定目標(biāo)拆卸零件的選擇拆卸序列。采用本發(fā)明的技術(shù)方案,使得運(yùn)動規(guī)劃算法的實(shí)現(xiàn)僅需獲得裝配體的三維幾何模型信息,可自動生成指定目標(biāo)零件的可行拆卸序列,大大提高了算法的通用性和自動化程度。
文檔編號G06F17/50GK103235862SQ20131017300
公開日2013年8月7日 申請日期2013年5月10日 優(yōu)先權(quán)日2013年5月10日
發(fā)明者劉檢華, 趙柏萱, 史建成, 劉少麗, 劉佳順 申請人:北京理工大學(xué)