国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配模型及裝配方法

      文檔序號(hào):10512454閱讀:375來(lái)源:國(guó)知局
      基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配模型及裝配方法
      【專(zhuān)利摘要】本發(fā)明公開(kāi)一種基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配模型及裝配方法,采用將虛擬裝配任務(wù)分解為裝配知識(shí)層、裝配決策層和用戶(hù)控制層,為每個(gè)層次賦予不同的職責(zé)。通過(guò)為裝配知識(shí)層定義虛擬裝配模型,來(lái)容納裝配知識(shí)和裝配語(yǔ)義,實(shí)現(xiàn)虛擬裝配的情境化。通過(guò)將決策層每個(gè)零件視作獨(dú)立的Agent,根據(jù)虛擬裝配過(guò)程的特點(diǎn)定義Agent之間的通信模板和決策規(guī)則,實(shí)現(xiàn)用戶(hù)引導(dǎo)規(guī)則化。同時(shí)本發(fā)明通過(guò)離線的聚類(lèi)算法,實(shí)現(xiàn)對(duì)用戶(hù)在特定裝配情境下的位置和朝向的預(yù)測(cè),減少用戶(hù)在調(diào)整攝像機(jī)的操作上花費(fèi)的時(shí)間。相比現(xiàn)有裝配感知技術(shù),本發(fā)明具有裝配模型輕量化,交互智能化,交互效率高的優(yōu)點(diǎn),可定制裝配過(guò)程引導(dǎo)用戶(hù)操作。
      【專(zhuān)利說(shuō)明】
      基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配模型及裝配方法
      技術(shù)領(lǐng)域
      [0001] 本發(fā)明涉及大型旋轉(zhuǎn)機(jī)械設(shè)備的虛擬裝配仿真技術(shù)領(lǐng)域,特別是一種基于情境感 知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配模型及裝配方法。
      【背景技術(shù)】
      [0002] 虛擬現(xiàn)實(shí)技術(shù)具有沉浸感、交互性和想象力等特征。虛擬裝配技術(shù)是虛擬現(xiàn)實(shí)技 術(shù)的典型應(yīng)用,在產(chǎn)品設(shè)計(jì)驗(yàn)證和計(jì)算機(jī)輔助裝配規(guī)劃上有廣泛應(yīng)用。虛擬感知技術(shù)是虛 擬裝配系統(tǒng)的重要組成部分,能減輕用戶(hù)對(duì)虛擬場(chǎng)景信息的認(rèn)知負(fù)擔(dān),在虛擬場(chǎng)景中準(zhǔn)確 便捷地與三維場(chǎng)景進(jìn)行交互操作。
      [0003] 現(xiàn)有虛擬裝配感知機(jī)制常用的有:幾何約束進(jìn)行特征匹配和語(yǔ)義約束進(jìn)行任務(wù)引 導(dǎo)。幾何約束的方法通過(guò)識(shí)別零件間的裝配約束關(guān)系來(lái)捕捉用戶(hù)的裝配意圖,實(shí)現(xiàn)零件的 精確定位。但存在幾何約束算法的復(fù)雜度與零件幾何形狀的復(fù)雜度成正比的問(wèn)題,而且識(shí) 別出的裝配意圖不完全準(zhǔn)確。語(yǔ)義約束的方法是通過(guò)將工程語(yǔ)義與幾何約束對(duì)應(yīng)來(lái)實(shí)現(xiàn) 的,該方法可以捕捉用戶(hù)語(yǔ)義層面的意圖,但存在未考慮約束施加的先后順序,缺乏任務(wù)層 面的裝配感知機(jī)制等問(wèn)題。
      [0004]隨著移動(dòng)設(shè)備的普及,位置信息挖掘技術(shù)得到了快速發(fā)展,現(xiàn)有的位置聚類(lèi)算法 可以分為基于密度的聚類(lèi),基于層次的聚類(lèi),基于時(shí)間的位置聚類(lèi)和基于劃分的聚類(lèi)等多 種?;诿芏鹊木垲?lèi)算法通過(guò)計(jì)算所有樣本點(diǎn)的密度來(lái)決定聚類(lèi)中心,但是存在密度半徑 難以確定的問(wèn)題。基于層次的聚類(lèi)初始時(shí)將每個(gè)樣本點(diǎn)視作一個(gè)類(lèi),將每個(gè)類(lèi)按照一定條 件逐層合并直到停止條件,層次聚類(lèi)算法存在運(yùn)算量比較大的問(wèn)題。基于時(shí)間的聚類(lèi)方法 以增量的形式沿時(shí)間軸對(duì)位置信息進(jìn)行聚類(lèi),并選定樣本點(diǎn)足夠密集且距離上一聚類(lèi)結(jié)果 有一定時(shí)間間隔的點(diǎn)作為新聚類(lèi)結(jié)果。基于劃分的聚類(lèi)算法主要有K-Means及其變體,不過(guò) K-Means算法需要事先知道分類(lèi)數(shù)量,各種變體方法對(duì)這方面進(jìn)行了有效改進(jìn)。

      【發(fā)明內(nèi)容】

      [0005] 本發(fā)明要解決的技術(shù)問(wèn)題為:以裝配情境定義為基礎(chǔ),將虛擬裝配場(chǎng)景分為多個(gè) 層次進(jìn)行建模,提高虛擬裝配對(duì)情境識(shí)別的靈活性,使得裝配信息結(jié)構(gòu)簡(jiǎn)單、系統(tǒng)結(jié)構(gòu)貼近 裝配問(wèn)題實(shí)質(zhì)。
      [0006] 本發(fā)明采取的技術(shù)方案為:基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配模型,其特征 是,包括裝配知識(shí)層、裝配決策層和用戶(hù)控制層,與虛擬裝配有關(guān)的知識(shí)保存于裝配信息文 件中;
      [0007] 裝配知識(shí)層中,將裝配過(guò)程中零件的連接看作零件之間特征的匹配過(guò)程,則虛擬 裝配任務(wù)的情景即某一時(shí)刻所有零件的特征狀態(tài)組成的集合;
      [0008] 裝配知識(shí)層包括對(duì)特征對(duì)象各個(gè)屬性的定義,以容納裝配信息文件中的裝配知 識(shí):
      [0009]特征對(duì)象=(特征名稱(chēng),特征類(lèi)型,特征節(jié)點(diǎn)集合,連接特征,特征狀態(tài),依賴(lài)關(guān)系 集合);
      [0010] 特征名稱(chēng)是各特征對(duì)象在場(chǎng)景中的唯一標(biāo)識(shí);特征類(lèi)型為零件之間點(diǎn)、線和面之 間的連接裝配關(guān)系,對(duì)應(yīng)包括點(diǎn)特征、線特征和面特征;特征節(jié)點(diǎn)集合為點(diǎn)特征、線特征和 面特征的位置及朝向;連接特征為可與當(dāng)前特征進(jìn)行匹配的特征名稱(chēng);特征狀態(tài)包括未就 緒、就緒、激活和完成匹配四種屬性取值;依賴(lài)關(guān)系集合是一個(gè)鍵-值集合,將特征名稱(chēng)對(duì)作 為鍵,對(duì)應(yīng)的值為0或1,根據(jù)場(chǎng)景中其他特征對(duì)象間的裝配情況更新依賴(lài)關(guān)系集合中各項(xiàng) 的取值;
      [0011] 當(dāng)依賴(lài)關(guān)系集合中所有特征名稱(chēng)對(duì)都完成裝配,則特征狀態(tài)從未就緒轉(zhuǎn)為就緒; 如果一對(duì)就緒特征的位置足夠靠近,且當(dāng)前沒(méi)有特征被激活,則這兩個(gè)就緒的特征對(duì)進(jìn)入 激活狀態(tài);如果一對(duì)特征對(duì)象完成匹配,且特征對(duì)象的依賴(lài)關(guān)系集合分別已經(jīng)被完全滿(mǎn)足, 則這對(duì)特征對(duì)象進(jìn)入"完成匹配"狀態(tài),否則返回未就緒狀態(tài);
      [0012] 裝配決策層中,包括多個(gè)零件Agent,不同零件Agent之間通過(guò)封裝有特征狀態(tài)參 數(shù)的消息模板進(jìn)行通信,零件Agent根據(jù)接收到的消息模板的內(nèi)容選擇不同裝配行為; [0013]裝配決策層對(duì)各零件對(duì)象的定義為:
      [0014]零件對(duì)象=(零件名稱(chēng),特征集合);
      [0015] 其中零件名稱(chēng)是零件對(duì)象在場(chǎng)景中的唯一標(biāo)識(shí);特征集合是相應(yīng)零件上所有點(diǎn)、 線及面特征的集合,表示該零件與其它零件所有可裝配的位置;
      [0016] 上述消息模板的定義為:
      [0017]消息模板=(發(fā)送者,接收者,消息體);發(fā)送者是發(fā)送消息的零件Agent的名稱(chēng),接 收者是接收消息的零件Agent的名稱(chēng),消息體為消息正文;
      [0018] 裝配決策層還包括:對(duì)零件對(duì)象的決策規(guī)則的謂詞進(jìn)行定義,用于描述零件對(duì)象 在場(chǎng)景中的各種基本行為,
      [0019] 對(duì)零件對(duì)象決策規(guī)則用到的常元進(jìn)行定義,用于描述規(guī)則中的各種對(duì)象和屬性的 取值,
      [0020] 以及對(duì)零件Agent的決策規(guī)則進(jìn)行定義,零件獲取虛擬裝配場(chǎng)景上下文信息后,根 據(jù)決策規(guī)則選擇對(duì)應(yīng)行為;所述裝配場(chǎng)景的上下文信息主要包含零件自身所包含的特征對(duì) 象的屬性信息,以及零件對(duì)象收到的消息中包含的各種消息內(nèi)容;
      [0021] 用戶(hù)控制層中,包括組件對(duì)象,組件對(duì)象為用戶(hù)控制的邏輯單位和零件的抽象集 合,定義為:
      [0022] 組件對(duì)象=(組件編號(hào),零件集合屬性,自由度列表)
      [0023]上述零件集合屬性即Parts屬性,包括多個(gè)零件Agent的名稱(chēng),當(dāng)兩個(gè)組件完成裝 配后,兩個(gè)組件的零件集合進(jìn)行合并;
      [0024]自由度列表屬性即D0F屬性,包括沿軸移動(dòng)、繞軸旋轉(zhuǎn)、延平面移動(dòng),空間移動(dòng)、繞 點(diǎn)旋轉(zhuǎn)和空屬性五種類(lèi)型;
      [0025] 當(dāng)兩個(gè)組件所包含的兩個(gè)零件之間完成一步特征匹配后,根據(jù)發(fā)生匹配的特征類(lèi) 型和組件對(duì)象當(dāng)前的自由度取值,來(lái)解算下一步裝配的自由度取值,直到這兩個(gè)零件之間 完全固定。
      [0026] 進(jìn)一步的,本發(fā)明所述零件之間進(jìn)行通信的消息模板包括turnAc t i ve、 makeOffset、partPosition、featurePosition、matchPair和adjustSure六種類(lèi)型,其中:
      [0027] par tPo s i t i on消息=(發(fā)送者=主動(dòng)件,接收者=所有Agent,消息體=(位置,就 緒特征名表));用于向場(chǎng)景廣播移動(dòng)零件Agent的位置和所有處于"就緒"狀態(tài)的特征名稱(chēng); [0028] featurePosition消息=(發(fā)送者=主動(dòng)件,接收者=所有Agent,消息體=(激活 狀態(tài)特征的頂點(diǎn)集));用于向場(chǎng)景廣播自己處于激活狀態(tài)的特征的頂點(diǎn)位置;
      [0029] turnActi ve消息=(發(fā)送者=從動(dòng)件,接收者=主動(dòng)件,消息體=特征名稱(chēng));從動(dòng) 件利用turnActive消息指定主動(dòng)件將特征調(diào)整為激活狀態(tài);
      [0030] makeOf f set消息=(發(fā)送者=從動(dòng)件,接收者=主動(dòng)件,消息體=(角度,軸線,位 移));從動(dòng)件利用makeOf f set消息讓主動(dòng)件做出旋轉(zhuǎn)和位移調(diào)整;
      [0031 ] ad justSure消息=(發(fā)送者=主動(dòng)件,接收者=從動(dòng)件,消息體=(特征名稱(chēng)集)); 主動(dòng)件利用AdjustSure消息告知從動(dòng)件已完成了位置調(diào)整;
      [0032] matchPair消息=(發(fā)送者=主動(dòng)件/從動(dòng)件,接收者=所有Agent,消息體=(零件 名稱(chēng)對(duì)));用于向場(chǎng)景中其它零件Agent廣播當(dāng)前完成裝配零件對(duì)的名稱(chēng)。
      [0033]本發(fā)明的裝配決策層中,對(duì)零件對(duì)象的決策規(guī)則的謂詞的定義包括:
      [0034]定義謂詞part(x),含義為"X是零件";comp(x),含義為"X是組件";posChg(x),含 義為"X的位置發(fā)生變化";fullfill(x),含義為"X的依賴(lài)集合被滿(mǎn)足";concAllU),含義為 "X的連接集合被滿(mǎn)足";ftof (x,y),含義為"X是y的特征";ptof (x,y),含義為"X是y的零 件";state(x,y),含義為"X的狀態(tài)是y" ;setSt(x,y),含義為"將X的狀態(tài)設(shè)置為y" ;send(x, y,z),含義為"x向y發(fā)送消息z" ;rev(x,y,z),含義為"x收到y(tǒng)發(fā)來(lái)的消息z" ;cont(x,y),含 義為"X包含在y中";conc(x,y),含義為"X可以與y匹配";offset(x,y),含義為"計(jì)算從X到y(tǒng) 的位移、旋轉(zhuǎn)偏移量";doOffset(x,y),含義為"按照y移動(dòng)、旋轉(zhuǎn)X" ;update(x,y),含義為 "更新X的y屬性";dep(x,y),含義為"X依賴(lài)于y"。
      [0035] 本發(fā)明裝配決策層中,零件對(duì)象決策規(guī)則用到的常元包括特征狀態(tài)常元和消息類(lèi) 型常元:
      [0036] 特征狀態(tài)常元中,特征狀態(tài)的取值包括inactive,ready,active,fixed四種,分別 對(duì)應(yīng)特征狀態(tài)屬性的未就緒、就緒、激活和完成匹配四個(gè)值;
      [0037] 消息類(lèi)型常元中,消息類(lèi)型的取值包括matchPair,makeOff set,partPosition, turnActive,featurePos it ion,ad justSure六種,分別對(duì)應(yīng)六種不同的消息模板。
      [0038]此外還定義了常元A11,用以指代場(chǎng)景中所有的零件Agent。
      [0039]本發(fā)明裝配決策層中,對(duì)零件Agent決策規(guī)則的定義包括:
      [0040]本發(fā)明裝配決策層中,零件對(duì)象決策規(guī)則用到的常元包括特征狀態(tài)常元和消息類(lèi) 型常元:
      [0041 ] 特征狀態(tài)常元中,特征狀態(tài)的取值包括inactive,ready,active,fixed四種,分別 對(duì)應(yīng)特征狀態(tài)屬性的未就緒、就緒、激活和完成匹配四個(gè)值;
      [0042] 消息類(lèi)型常元中,消息類(lèi)型的取值包括matchPair,makeOff set,partPosition, turnActive,featurePos it ion,ad justSure六種,分別對(duì)應(yīng)六種不同的消息模板。
      [0043]此外還定義了常元All,用以指代場(chǎng)景中所有的零件Agent。
      [0044] 本發(fā)明裝配決策層中,對(duì)零件Agent決策規(guī)則的定義包括:
      [0045] 定義推理規(guī)則"如果有零件p位置發(fā)生變化,并且p不存在狀態(tài)為active特征f,那 么P向場(chǎng)景所有零件發(fā)送消息partPosition",規(guī)則表示如下:
      [0047] 定義推理規(guī)則"如果零件p 1收到消息p a r t P o s i t i ο η,且p 1的特征f 1、和 partPosition消息包含的特征f2之間存在匹配關(guān)系,那么將f 1的狀態(tài)設(shè)置為active并發(fā)送 turnActive消息",規(guī)則表示如下:
      [0049] 定義推理規(guī)則"若零件pi收到消息turnActive,且pi有特征f狀態(tài)為ready并且包含 于消息turnActive中,則將f設(shè)置為active",規(guī)則表示如下:
      [0051]定義推理規(guī)則"如果零件p位置發(fā)生變化,并且p存在狀態(tài)為active的特征,那么零 件P發(fā)送消息featurePosition",規(guī)則表示如下:
      [0053] 定義推理規(guī)則"如果有零件pi收到featurePosition消息,并且存在pi的特征f 1狀 態(tài)為active和包含在featurePosition消息中的特征f2,那么計(jì)算f 1到f2之間的位移和旋 轉(zhuǎn)偏移量,并發(fā)送makeOffset消息",規(guī)則表示如下:
      [0055] 定義推理規(guī)則"如果零件pi收到makeOff set消息,且pi存在狀態(tài)為active的特征f, 且makeOffset中含有偏移矩陣m,且特征f的連接集合全部滿(mǎn)足,那么按偏移矩陣m移動(dòng)Pl, 并更新pi所屬組件c的DOF取值,并將特征f的狀態(tài)設(shè)置為fixed,并發(fā)送ad justSure消息和 matchPair消息",規(guī)則表示如下:
      [0057]注意,此條規(guī)則中,如果特征f的連接集合沒(méi)有全部滿(mǎn)足,則將f的狀態(tài)設(shè)置為 inactive,而非fixed,在此不再贅述。
      [0058] 定義推理規(guī)則"如果特征pi收到消息ad justSure,并且pi存在狀態(tài)為active且連接 集合全部滿(mǎn)足的特征f,則更新Pi所屬組件c的D0F取值,并將f狀態(tài)設(shè)置為fixed,同時(shí)發(fā)送 matchPair消息"規(guī)則表示如下:
      [0060]注意,此條規(guī)則中,如果特征f的連接集合沒(méi)有全部滿(mǎn)足,則將f的狀態(tài)設(shè)置為 inactive,而非fixed,在此不再贅述。
      [0061 ] 定義推理規(guī)則"如存在零件p收到matchPair消息,存在狀態(tài)為inactive的特征f屬 于p,并且matchPair消息中包含連接關(guān)系c,如果f依賴(lài)于c并且f的依賴(lài)集合被滿(mǎn)足,那么將 f的狀態(tài)調(diào)整為ready",規(guī)則表示如下:
      [0063] 本發(fā)明用戶(hù)控制層中,對(duì)自由度進(jìn)行解算時(shí),包括以下定義:
      [0064] 定義有限狀態(tài)自動(dòng)機(jī)M=(Q,Σ j,S,F(xiàn));其中:
      [0067] 初始狀態(tài)S定義為S= (point Rotate,spaceTranslate)
      [0068] 終止?fàn)顟B(tài)F定義為:F= {NULL};δ為狀態(tài)轉(zhuǎn)移函數(shù)。
      [0069] 本發(fā)明還公開(kāi)基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配方法,其包括以下步驟:
      [0070] 步驟Α:構(gòu)建虛擬裝配任務(wù)需要的各種零件模型,建立零件的三維模型,并標(biāo)定出 描繪零件特征的特征點(diǎn)的坐標(biāo)集合;
      [0071] 步驟Β:構(gòu)建虛擬裝配模型,根據(jù)零件包含特征的情況,特征的參數(shù)和裝配過(guò)程建 立虛擬裝配模型;
      [0072] 步驟C:根據(jù)虛擬裝配模型,建立虛擬裝配信息文件;
      [0073] 步驟D:基于幾何模型和虛擬裝配信息文件,啟動(dòng)虛擬裝配程序,對(duì)虛擬裝配模型 中的組件對(duì)象、零件對(duì)象和零件包含的特征對(duì)象進(jìn)行初始化;
      [0074] 步驟Ε:運(yùn)行虛擬裝配程序,零件對(duì)象按照裝載好的決策規(guī)則和消息模板,不斷發(fā) 送消息、讀取消息并進(jìn)行決策,直至裝配完成。
      [0075]具體的,步驟Ε中,
      [0076]當(dāng)用戶(hù)控制某零件相對(duì)另一零件移動(dòng)時(shí),移動(dòng)過(guò)程中被控零件不斷發(fā)送包含自己 坐標(biāo)位置和特征列表的par tPo s i t i on消息;
      [0077]場(chǎng)景中其他零件收到這個(gè)partPosition消息時(shí),判斷自己包含的特征是否與消息 中提到的特征存在匹配關(guān)系,若存在,則選擇一對(duì)相應(yīng)特征,發(fā)送turnActive消息,要求被 控零件將對(duì)應(yīng)特征狀態(tài)調(diào)整為active;
      [0078] 被控零件收到turnActive消息后,將對(duì)應(yīng)特征修改為active;此時(shí)用戶(hù)繼續(xù)控制 被控零件移動(dòng),被控零件發(fā)送featurePosition消息,向場(chǎng)景廣播active特征的位置;
      [0079] 可匹配零件收到featurePosition消息后,計(jì)算位移和旋轉(zhuǎn)偏移量,并通過(guò) makeOffset消息,要求被控零件完成位移和旋轉(zhuǎn)偏移;
      [0080]被控零件收到makeOffset消息后,根據(jù)其中包含的位移和旋轉(zhuǎn)偏移量改變自己的 坐標(biāo)矩陣,并更新自己的D0F取值,發(fā)送ad justSure消息,以及matchPair消息;
      [0081 ]場(chǎng)景中各個(gè)其它零件收到matchPair消息后,根據(jù)消息中提到的特征對(duì),更新自己 特征的依賴(lài)關(guān)系集合的狀態(tài)值;
      [0082] 可匹配零件收到adjustSure消息后,再選取下一對(duì)待匹配特征,通過(guò)turnActive 消息命令被控零件將對(duì)應(yīng)特征對(duì)狀態(tài)置為active;
      [0083] 直到兩個(gè)零件之間的所有特征完成匹配,將兩個(gè)零件所屬的組件進(jìn)行合并:一個(gè) 組件將自己的零件列表合并到另一個(gè)組件中,并將自己從場(chǎng)景中移除;合并完成后的組件 將D0F值重置,用戶(hù)可重新對(duì)其進(jìn)行自由操控。
      [0084] 本發(fā)明的虛擬裝配模型及方法適用于半自動(dòng)的虛擬裝配系統(tǒng),用戶(hù)能夠通過(guò)系統(tǒng) 界面查看到的裝配畫(huà)面,由系統(tǒng)的虛擬攝像機(jī)位置和朝向等因素決定。本發(fā)明還將用戶(hù)在 裝配過(guò)程中形成的位置和朝向信息視為用戶(hù)情境,并利用現(xiàn)有的位置聚類(lèi)算法,結(jié)合裝配 情境完成對(duì)用戶(hù)情境中關(guān)鍵位置點(diǎn)的抽取和使用。即,本發(fā)明基于情境感知的旋轉(zhuǎn)機(jī)械設(shè) 備虛擬裝配方法,還包括對(duì)虛擬裝配任務(wù)的用戶(hù)情境進(jìn)行提取,包括步驟:
      [0085] 1用戶(hù)情境定義:
      [0086] 用戶(hù)情境=(特征狀態(tài)集合,攝像機(jī)位置坐標(biāo),攝像機(jī)朝向坐標(biāo),攝像機(jī)頭頂坐 標(biāo)),
      [0087] 其中特征狀態(tài)集合是由一系列數(shù)字位組成的序列值,每一位的取值范圍為0到3, 分別對(duì)應(yīng)裝配情境中每個(gè)特征對(duì)象的inactive、ready、act ive和fixed四種特征狀態(tài)值;攝 像機(jī)位置坐標(biāo)是指用戶(hù)視線的起點(diǎn)坐標(biāo);攝像機(jī)朝向坐標(biāo)是用戶(hù)視線的終點(diǎn)坐標(biāo);攝像機(jī) 頭頂坐標(biāo)指與用戶(hù)視線垂直的頭頂正上方方向的終點(diǎn)坐標(biāo);
      [0088] 2用戶(hù)情景離線抽?。?br>[0089] 2.1收集用戶(hù)執(zhí)行同一虛擬裝配任務(wù)過(guò)程中產(chǎn)生的路徑信息,所述路徑信息包括 裝配任務(wù)在每一時(shí)刻的特征狀態(tài)集合,以及這一時(shí)刻用戶(hù)攝像機(jī)的位置坐標(biāo)、朝向坐標(biāo)和 頭頂坐標(biāo);
      [0090] 2.2對(duì)于上述收集到的路徑信息進(jìn)行預(yù)處理,將每條路徑按照不同的特征狀態(tài)集 合切分成不同的坐標(biāo)點(diǎn)集合;
      [0091] 2.3對(duì)于不同的特征狀態(tài)集合下的坐標(biāo)點(diǎn)集合,使用基于密度的聚類(lèi)算法,計(jì)算集 合中每個(gè)坐標(biāo)點(diǎn)周?chē)欢ǚ秶覂?nèi)的坐標(biāo)點(diǎn)的個(gè)數(shù);
      [0092] 2.4對(duì)聚類(lèi)后的坐標(biāo)點(diǎn)集合進(jìn)行清洗:首先合并密度相同的位置點(diǎn),然后取出局部 密度最大的位置點(diǎn),作為備選關(guān)鍵位置點(diǎn);
      [0093] 在對(duì)每一條路徑都處理結(jié)束之后,不同的特征狀態(tài)集合下均有對(duì)應(yīng)的一系列備選 關(guān)鍵位置點(diǎn);
      [0094] 2.5應(yīng)用基于層次的聚類(lèi)方法,對(duì)上述各特征狀態(tài)集合一系列備選關(guān)鍵位置點(diǎn)進(jìn) 行聚類(lèi):首先將每個(gè)特征點(diǎn)視為一類(lèi),然后計(jì)算各個(gè)聚類(lèi)之間的距離,再對(duì)于距離小于范圍 σ的兩個(gè)聚類(lèi)進(jìn)行合并;
      [0095]聚類(lèi)之間距離的計(jì)算公式為:
      [0096] dmean(Ci,Cj) = I |mi,mj I I
      [0097] 2.6重復(fù)步驟2.5,直到各個(gè)聚類(lèi)之間的距離全部大于范圍σ,則聚類(lèi)過(guò)程停止;
      [0098] 2.7查看各個(gè)聚類(lèi)被合并過(guò)的次數(shù),如果合并次數(shù)為零,說(shuō)明這個(gè)備選關(guān)鍵位置點(diǎn) 是一個(gè)離群點(diǎn),予以清除;
      [0099] 3用戶(hù)情景在線查詢(xún):
      [0100] 將步驟2得到的用戶(hù)情境數(shù)據(jù)結(jié)果保存為用戶(hù)情境文件,當(dāng)虛擬裝配程序啟動(dòng)后 加載用戶(hù)情境文件;
      [0101] 在用戶(hù)執(zhí)行裝配操作的過(guò)程中,系統(tǒng)比對(duì)判斷當(dāng)前正在裝配的各個(gè)特征形成的特 征狀態(tài)集合是否在用戶(hù)情境文件中出現(xiàn),如果是,則將對(duì)應(yīng)的攝像機(jī)坐標(biāo)位置和朝向位置 加載到虛擬裝配系統(tǒng)的攝像機(jī)上。
      [0102] 本發(fā)明對(duì)于用戶(hù)情境的提取,利用裝配情境標(biāo)記用戶(hù)的移動(dòng)路徑,應(yīng)用數(shù)據(jù)挖掘 算法找到用戶(hù)在裝配操作過(guò)程中的關(guān)鍵位置點(diǎn),從而在用戶(hù)正式使用過(guò)程中,結(jié)合當(dāng)前裝 配情境的特征狀態(tài)集合對(duì)用戶(hù)進(jìn)行位置推薦。
      [0103]此時(shí),用戶(hù)就可直接進(jìn)入易于拾取零件或者易于裝配零件的操作位置,或者只需 做少量調(diào)整就可以進(jìn)行需要的操作。有的裝配情境下,可能存在多個(gè)關(guān)鍵位置點(diǎn),用戶(hù)可以 在這些關(guān)鍵位置點(diǎn)之間進(jìn)行切換,找到最方便的位置。
      [0104]步驟2中,范圍σ的選定標(biāo)準(zhǔn),可以參考用戶(hù)在一秒鐘時(shí)間內(nèi)可以移動(dòng)的距離。
      [0105]有益效果
      [0106] 本發(fā)明結(jié)合多Agent技術(shù),提出了一種多層次的虛擬裝配建模方法,以及虛擬裝配 過(guò)程中對(duì)裝配情境的提取和識(shí)別方法。在虛擬裝配過(guò)程中,虛擬裝配系統(tǒng)將根據(jù)當(dāng)前裝配 任務(wù)進(jìn)行用戶(hù)情境推薦。在裝配情境已識(shí)別裝載的基礎(chǔ)上,本發(fā)明裝配模型將裝配知識(shí)保 存在特征之中,Agent零件的決策規(guī)則將當(dāng)前情境反映在用戶(hù)對(duì)組件的操作引導(dǎo)上。形成了 裝配知識(shí)到用戶(hù)操作之間的傳遞通路,極大提高了虛擬裝配對(duì)情境識(shí)別的靈活性。本發(fā)明 提出的虛擬裝配建模方法具有裝配信息結(jié)構(gòu)簡(jiǎn)單、系統(tǒng)結(jié)構(gòu)貼近裝配問(wèn)題實(shí)質(zhì)、開(kāi)發(fā)過(guò)程 靈活等優(yōu)點(diǎn),通過(guò)添加裝配信息模型的細(xì)節(jié)和改進(jìn)決策機(jī)制等方法可以方便地對(duì)系統(tǒng)進(jìn)行 擴(kuò)展升級(jí)。裝配情境的推薦可以極大地節(jié)省用戶(hù)在各個(gè)裝配步驟間調(diào)整攝像機(jī)位置和朝向 上花費(fèi)的時(shí)間,使得虛擬裝配系統(tǒng)的使用體驗(yàn)更加流暢。
      【附圖說(shuō)明】
      [0107] 圖1為本發(fā)明虛擬裝配模型的層次結(jié)構(gòu)示意圖;
      [0108] 圖2為本發(fā)明虛擬裝配模型的應(yīng)用原理示意圖;
      [0109] 圖3為本發(fā)明特征狀態(tài)轉(zhuǎn)換流程示意圖;
      [0110] 圖4為本發(fā)明自由度解算有限自動(dòng)機(jī)狀態(tài)轉(zhuǎn)換流程示意圖;
      [0111] 圖5所示為本發(fā)明用戶(hù)情景關(guān)鍵位置點(diǎn)的聚類(lèi)過(guò)程示意圖。
      【具體實(shí)施方式】
      [0112] 以下結(jié)合附圖和具體實(shí)施例進(jìn)一步描述。應(yīng)理解這些實(shí)例僅用于說(shuō)明本發(fā)明而不 用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對(duì)本發(fā)明的各種等價(jià)形式 的修改均落于本申請(qǐng)所附權(quán)利要求所限定的范圍。
      [0113] 參考圖1和圖2所示,本發(fā)明基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配模型,將虛擬 裝配模型分為裝配知識(shí)層、裝配決策層和用戶(hù)控制層,與虛擬裝配有關(guān)的知識(shí)保存于裝配 信息文件中;與虛擬裝配有關(guān)的知識(shí)包括裝配信息描述文件及模型信息文件,當(dāng)裝配情境 已定則裝配信息文件確定。
      [0114] 裝配信息文件是描述虛擬裝配任務(wù)中零件對(duì)象與特征對(duì)象之間包含關(guān)系,以及特 征對(duì)象之間匹配關(guān)系和依賴(lài)關(guān)系情況的知識(shí)文件。通過(guò)解析裝配信息文件,可以獲得虛擬 裝配任務(wù)中有關(guān)任務(wù)進(jìn)度,裝配關(guān)系等大量裝配知識(shí)信息。
      [0115] 裝配知識(shí)層用于創(chuàng)建和存儲(chǔ)特征對(duì)象,讀入并緩存各種裝配知識(shí);裝配決策層用 于創(chuàng)建零件Agent對(duì)象和決策規(guī)則,根據(jù)情境上下文來(lái)決策下一步的行為;裝配控制層用于 輔助用戶(hù)進(jìn)行控制,創(chuàng)建和維護(hù)一系列組件,通過(guò)更新D0F取值來(lái)引導(dǎo)用戶(hù)的操作。具體的:
      [0116] 裝配知識(shí)層中,將裝配過(guò)程中零件的連接看作零件之間特征的匹配過(guò)程,則虛擬 裝配任務(wù)的情景即某一時(shí)刻所有零件的特征狀態(tài)組成的集合;裝配知識(shí)層建模包括定義特 征對(duì)象的各個(gè)屬性,以容納裝配知識(shí):
      [0117] 定義特征對(duì)象=(特征名稱(chēng),特征類(lèi)型,特征節(jié)點(diǎn)集合,連接特征,特征狀態(tài),依賴(lài) 關(guān)系集合);
      [0118] 上述定義中,特征名稱(chēng)是各特征對(duì)象在場(chǎng)景中的唯一標(biāo)識(shí);特征類(lèi)型為零件之間 點(diǎn)、線和面之間的連接裝配關(guān)系,對(duì)應(yīng)包括點(diǎn)特征、線特征和面特征;特征節(jié)點(diǎn)集合為點(diǎn)特 征、線特征和面特征的位置及朝向;連接特征為可與當(dāng)前特征進(jìn)行匹配的特征名稱(chēng);特征狀 態(tài)包括未就緒、就緒、激活和完成匹配四種屬性取值;依賴(lài)關(guān)系集合是一個(gè)鍵-值集合,將特 征名稱(chēng)對(duì)作為鍵,對(duì)應(yīng)的值為0或1,根據(jù)場(chǎng)景中其他特征對(duì)象間的裝配情況更新依賴(lài)關(guān)系 集合中各項(xiàng)的取值;
      [0119] 特征名稱(chēng)對(duì)是將兩個(gè)特征名稱(chēng)拼接成的字符串,描述兩個(gè)特定特征之間存在依賴(lài) 關(guān)系。不同特征對(duì)象的依賴(lài)關(guān)系集合不相同,因?yàn)椴煌奶卣鲗?duì)象發(fā)生狀態(tài)轉(zhuǎn)換所依賴(lài)的 前提操作并不相同,每個(gè)特征對(duì)象只需在自己的依賴(lài)關(guān)系集合中保存上一步匹配操作的那 一對(duì)或者幾對(duì)特征的匹配情況。這樣,隨著裝配任務(wù)的發(fā)展,各個(gè)特征的狀態(tài)也就可以依次 進(jìn)行轉(zhuǎn)換,進(jìn)而激發(fā)其他特征對(duì)像也進(jìn)行相應(yīng)轉(zhuǎn)換。
      [0120] 當(dāng)依賴(lài)關(guān)系集合中所有特征名稱(chēng)對(duì)都完成裝配,則特征狀態(tài)從未就緒轉(zhuǎn)為就緒; 如果一對(duì)就緒特征的位置足夠靠近,且當(dāng)前沒(méi)有特征被激活,則這兩個(gè)就緒的特征對(duì)進(jìn)入 激活狀態(tài);如果一對(duì)特征對(duì)象完成匹配,且特征對(duì)象的依賴(lài)關(guān)系集合分別已經(jīng)被完全滿(mǎn)足, 則這對(duì)特征對(duì)象進(jìn)入"完成匹配"狀態(tài),否則返回未就緒狀態(tài);
      [0121] 裝配決策層包括多個(gè)零件Agent,不同零件Agent之間通過(guò)封裝有特征狀態(tài)參數(shù)的 消息模板進(jìn)行通信,零件Agent根據(jù)接收到的消息模板的內(nèi)容選擇不同裝配行為;
      [0122] 裝配決策層建模包括對(duì)各零件對(duì)象的定義:
      [0123] 零件對(duì)象=(零件名稱(chēng),特征集合);
      [0124] 其中零件名稱(chēng)是零件對(duì)象在場(chǎng)景中的唯一標(biāo)識(shí);特征集合是相應(yīng)零件上所有點(diǎn)、 線及面特征的集合,表示該零件與其它零件所有可裝配的位置;
      [0125] 消息模板的定義為:
      [0126] 消息模板=(發(fā)送者,接收者,消息體);發(fā)送者是發(fā)送消息的零件Agent的名稱(chēng),接 收者是接收消息的零件Agent的名稱(chēng),消息體為消息正文;
      [0127] 用戶(hù)控制層中,包括組件對(duì)象,組件對(duì)象為用戶(hù)控制的邏輯單位和零件的抽象集 合,定義為:
      [0128] 組件對(duì)象=(組件編號(hào),零件集合屬性,自由度列表)
      [0129] 上述零件集合屬性即Parts屬性,包括多個(gè)零件Agent的名稱(chēng),當(dāng)兩個(gè)組件完成裝 配后,兩個(gè)組件的零件集合進(jìn)行合并;
      [0130] 自由度列表屬性即D0F屬性,包括沿軸移動(dòng)、繞軸旋轉(zhuǎn)、延平面移動(dòng),空間移動(dòng)、繞 點(diǎn)旋轉(zhuǎn)和空屬性五種類(lèi)型;
      [0131] 當(dāng)兩個(gè)組件所包含的兩個(gè)零件之間完成一步特征匹配后,根據(jù)發(fā)生匹配的特征類(lèi) 型和組件對(duì)象當(dāng)前的自由度取值,來(lái)解算下一步裝配的自由度取值,直到這兩個(gè)零件之間 完全固定。
      [0132] 實(shí)施例
      [0133] 對(duì)于本發(fā)明裝配模型的應(yīng)用,以下結(jié)合零件的裝配過(guò)程為例進(jìn)行說(shuō)明,具體包括 以下步驟:
      [0134] 步驟A:構(gòu)建虛擬裝配任務(wù)需要的各種零件模型,建立零件的三維模型,并標(biāo)定出 描繪零件特征的特征點(diǎn)的坐標(biāo)集合;
      [0135] 步驟B:構(gòu)建虛擬裝配模型,根據(jù)零件包含特征的情況、特征的參數(shù)和裝配過(guò)程建 立虛擬裝配模型;如下例所示為一個(gè)虛擬裝配模型:
      [0136] Componenti={{trans_x,trans-y,trans_z},{Parti}}
      [0137]
      [0138] Component? = {{trans-x,trans-y ,trans-z}, {Part?}}
      [0139] Parti= {轉(zhuǎn)輪體殼,[Featurel ,Feature2. · · .Featurei6]}
      [0140] Part2= {獎(jiǎng)葉 1, [Featurei7,Featurei8,Featurei9}
      [0141]
      [0142] Part6= {下機(jī)架,[Feature29,Feature30]}
      [0143] Part7= {上泄水維,[Feature3i,Feature32]}
      [0144] Featurei = {轉(zhuǎn)輪體殼_孔1_軸線1 ,axis , {nodei ,node2} , {槳葉1_軸線1,0}, ready,{nil}}
      [0145]
      [0146] Featurei3= {轉(zhuǎn)輪體殼向上軸線,axis, {node29,node3〇} , {下機(jī)架向下軸線,0}, inactive,
      [0147] {(轉(zhuǎn)輪體殼_孔1_面:槳葉1_面,0),(轉(zhuǎn)輪體殼_孔2_面:槳葉2_面,0),
      [0148] (轉(zhuǎn)輪體殼_孔2_面:槳葉2_面,0),(轉(zhuǎn)輪體殼_孔2_面:槳葉2_面,0)}}
      [0149]
      [0150] Featurei7= {槳葉 1_軸線 1,axis, {node39,node4〇},{轉(zhuǎn)輪體殼_孔1_軸線 1,0}, ready,{nil}}
      [0151]
      [0152] Feature29= {下機(jī)架向下軸線,axis, {node57,node58},{轉(zhuǎn)輪體殼向上軸線,0}, inactive,
      [0153] {(轉(zhuǎn)輪體殼_孔1_面:槳葉1_面,0),(轉(zhuǎn)輪體殼_孔2_面:槳葉2_面,0),
      [0154] (轉(zhuǎn)輪體殼_孔2_面:槳葉2_面,0),(轉(zhuǎn)輪體殼_孔2_面:槳葉2_面,0)}}
      [0155]
      [0156] 以上模型中包括了對(duì)實(shí)例中所涉及的組件Component、零件Part、特征Feature的 定義。
      [0157] 步驟C:根據(jù)虛擬裝配模型,建立虛擬裝配信息文件;實(shí)例部分虛擬裝配信息文件 內(nèi)容如下:
      [0159] 步驟D:基于幾何模型和虛擬裝配信息文件,啟動(dòng)虛擬裝配程序,對(duì)虛擬裝配模型 中的組件對(duì)象、零件對(duì)象和零件包含的特征對(duì)象進(jìn)行初始化;即形成如圖1所示的虛擬裝配 豐旲型;
      [0160] 步驟E:運(yùn)行虛擬裝配程序,零件對(duì)象按照裝載好的決策規(guī)則和消息模板,不斷發(fā) 送消息、讀取消息并進(jìn)行決策,直至裝配完成。
      [0161] 具體的,步驟E中,假設(shè)用戶(hù)控制下板零件移向上板零件,移動(dòng)過(guò)程中下板零件會(huì) 不斷發(fā)送包含自己坐標(biāo)位置和特征列表的partPosition消息
      [0162]場(chǎng)景中其他零件收到這個(gè)partPosi tion消息,判斷自己包含的特征是否與消息中 提到的特征存在匹配關(guān)系。由于上板與下板存在匹配關(guān)系,所以上板選擇一對(duì)特征,發(fā)送 turnActive消息,要求下板將對(duì)應(yīng)特征狀態(tài)調(diào)整為active。
      [0163] 下板收到turnActive消息后,將對(duì)應(yīng)特征修改為active。用戶(hù)繼續(xù)移動(dòng)下板,此時(shí) 下板發(fā)送f eatur ePos i t i on消息,向場(chǎng)景廣播ac t i ve特征的位置。
      [0164] 上板收到featurePosition消息后,計(jì)算位移和旋轉(zhuǎn)偏移量,并通過(guò)makeOffset消 息發(fā)送,要求下板完成位移和旋轉(zhuǎn)偏移。
      [0165]下板收到makeOffset消息后,根據(jù)其中包含的位移和旋轉(zhuǎn)偏移量改變自己的坐標(biāo) 矩陣,按照?qǐng)D4所示的狀態(tài)轉(zhuǎn)移圖更新自己的D0F取值,發(fā)送adjustSure消息,并發(fā)送 matchPair 消息。
      [0166]場(chǎng)景中各個(gè)零件收到matchPair消息后,根據(jù)消息中提到的特征對(duì),更新自己特征 的依賴(lài)關(guān)系集合的狀態(tài)值,比如圖2中轉(zhuǎn)輪體殼_孔1_面和槳葉1_面特征之間完成完成匹配 后,F(xiàn)eature29中的轉(zhuǎn)輪體殼_孔1_面:槳葉1_面特征對(duì)的取值由0變?yōu)?。場(chǎng)景各個(gè)零件的特 征的狀態(tài)改變流程參考圖3.
      [0167] 上板收到adjustSure消息后,再選取下一對(duì)待匹配特征,通過(guò)turnActive消息命 令下板將對(duì)應(yīng)特征對(duì)狀態(tài)置為active。
      [0168] 直到兩個(gè)零件之間的所有特征完成匹配,兩個(gè)零件所屬的組件進(jìn)行合并。方法為 一個(gè)組件將自己的零件列表合并到另一個(gè)組件中,并將自己從場(chǎng)景中移除。合并完成后的 組件將D0F值重置,用戶(hù)可以重新對(duì)其進(jìn)行自由操控。
      [0169] 對(duì)于用戶(hù)情境的提取和應(yīng)用可參考圖5,首先需要在用戶(hù)執(zhí)行某一虛擬裝配任務(wù) 的過(guò)程中收集該用戶(hù)的情境信息文件。
      [0170] 用戶(hù)情境的定義為:
      [0171] 用戶(hù)情境=(特征狀態(tài)集合,攝像機(jī)位置坐標(biāo),攝像機(jī)朝向坐標(biāo),攝像機(jī)頭頂坐標(biāo))
      [0172] 其中特征狀態(tài)集合是由一系列數(shù)字位組成的序列值,每一位的取值范圍為0到3, 分別對(duì)應(yīng)裝配情境中每個(gè)特征對(duì)象的inactive、ready、acti ve和fixed四種特征狀態(tài)值。
      [0173] 攝像機(jī)位置坐標(biāo),是指用戶(hù)視線的起點(diǎn)坐標(biāo);而攝像機(jī)朝向坐標(biāo),是用戶(hù)視線的終 點(diǎn)坐標(biāo);攝像機(jī)頭頂坐標(biāo),指與用戶(hù)視線垂直的頭頂正上方方向的終點(diǎn)坐標(biāo)。
      [0174] 部分的用戶(hù)情境信息文件片段如下:
      [0175] 11011011011000000011011011011000 0 0 0-0.218044 0.975474 0.0301028 0.00656671-0.0293778 0.999547
      [0176] 11011011011000000011011011011000 0 0 0-0.429117 0.902702 0.0314112 0.0134857-0.0283689 0.999507
      [0177] 11011011011000000011011011011000 0.430511-0.902585-1,90413e-18 0.000212436-0.000445377 0.0314112 0.0135229-0.0283513 0.999507
      [0178] 11011011011000000011011011011000 3.8746-8.12327 4.27989e-17 3.4443-7.22113 0.0314112 0.0135229-0.0283513 0.999507
      [0179] 11011011011000000011011011011000 7.31869-15.3439-6.57569e-17 6.88839-14.4418 0.0314112 0.0135229-0.0283513 0.999507
      [0180] 然后進(jìn)行用戶(hù)情境的離線抽取,結(jié)合了基于密度的聚類(lèi)算法和基于層次的聚類(lèi)算 法:
      [0181] 首先收集用戶(hù)執(zhí)行同一虛擬裝配任務(wù)過(guò)程中產(chǎn)生的路徑信息,收集到的信息包括 裝配任務(wù)在每一時(shí)刻的特征狀態(tài)集合,以及這一時(shí)刻用戶(hù)攝像機(jī)的位置坐標(biāo)、朝向坐標(biāo)和 頭頂坐標(biāo)。之后對(duì)于這些路徑信息進(jìn)行預(yù)處理,將每條路徑按照不同的特征狀態(tài)集合切分 成不同的坐標(biāo)點(diǎn)集合。
      [0182] 對(duì)于不同的特征狀態(tài)集合分組下的坐標(biāo)點(diǎn)集,使用基于密度的聚類(lèi)算法,計(jì)算每 個(gè)坐標(biāo)點(diǎn)周?chē)欢ǚ秶覂?nèi)的坐標(biāo)點(diǎn)的個(gè)數(shù)。范圍σ的選定標(biāo)準(zhǔn),可以參考用戶(hù)在一秒鐘時(shí) 間內(nèi)可以移動(dòng)的距離。根據(jù)密度對(duì)坐標(biāo)點(diǎn)進(jìn)行初步聚類(lèi)后,需要進(jìn)行進(jìn)一步的清洗,首先合 并路徑中密度相同的位置點(diǎn),然后取出局部密度最大的位置點(diǎn),作為備選關(guān)鍵位置點(diǎn)。例 如,某條路徑中特征狀態(tài)集合為11011011011000000011011011011000的預(yù)備關(guān)鍵位置點(diǎn)的 文件片段如下:
      [0183] 84 29.13902-25.35789 19.28571 20.8943-43.2041 0.0484144 0.0265276-0.0404999 0.998827
      [0184] 115 165.31404-56.81834 25.17391 136.139-51.915 11.0719 0.0719227-0.00122397 0.997409
      [0185] 115 165.26404-56.65447 25.4087 132.236-50.9333 26.8942-0.104348 0.0176491 0.994384
      [0186] 74 35.96251-30.22539 22.98649 30.3583-39.6013 26.8864-0.1063 0.0401675 0.993522
      [0187] 84 26.95127-40.4446 24.36905 21.0549-61.4027 26.8682-0.109125 0.0739529 0.991273
      [0188] 51-16.38542-75.80609 45.52941-8.98877-90.6438 26.8747-0.0791292 0.0971949 0.992115
      [0189] 在對(duì)每一條路徑都處理結(jié)束之后,不同的特征狀態(tài)集合分組下會(huì)有一系列備選關(guān) 鍵位置點(diǎn)。應(yīng)用基于層次的聚類(lèi)方法,對(duì)這些位置點(diǎn)進(jìn)行聚類(lèi)。首先將每個(gè)特征點(diǎn)視為一 類(lèi),之后計(jì)算各個(gè)聚類(lèi)之間的距離,對(duì)于距離小于某一范圍σ的兩個(gè)聚類(lèi)進(jìn)行合并。聚類(lèi)之 間距離的計(jì)算公式如下:
      [0190] dmean(Ci,Cj) = I |mi,mj I I
      [0191] 反復(fù)這個(gè)過(guò)程,直到各個(gè)聚類(lèi)之間的距離全部大于σ聚類(lèi)過(guò)程停止。在聚類(lèi)停止之 后查看各個(gè)聚類(lèi)被合并過(guò)的次數(shù),如果合并次數(shù)為零,說(shuō)明這個(gè)位置點(diǎn)是一個(gè)離群點(diǎn),應(yīng)予 以清除。對(duì)于特征狀態(tài)集合為11011011011000000011011011011000的預(yù)備關(guān)鍵位置點(diǎn)最終 聚類(lèi)的結(jié)果如下:
      [0192] 24.63509-78.54458 27.32418 21.82889-77.03117 24.65229-0.04572 0.0346 1.01569 50
      [0193] 209.2763-91.23331 38.11522 168.72713-81.83374 31.61572-0.00867 0.00732 1.37146 3
      [0194] -333.8922-199.84819 59.78009-294.4945-207.0395 51.3173 0.11299 0.14357 1.4883 0
      [0195] 可以看到,三個(gè)關(guān)鍵位置點(diǎn)在聚類(lèi)過(guò)程中分別被合并了50次、3次和0次,合并0次 的位置點(diǎn)可以視為離群點(diǎn)進(jìn)行清除。
      [0196] 將離線的以上抽取結(jié)果保存入用戶(hù)情境文件,在進(jìn)行虛擬裝配任務(wù)時(shí),可對(duì)用戶(hù) 情境的聚類(lèi)結(jié)果進(jìn)行在線查詢(xún):
      [0197] 虛擬裝配系統(tǒng)啟動(dòng)后加載用戶(hù)情境文件。在用戶(hù)執(zhí)行裝配操作的過(guò)程中,系統(tǒng)會(huì) 不斷比對(duì)當(dāng)前各個(gè)特征形成的特征狀態(tài)集合是否在用戶(hù)情境中出現(xiàn),如果出現(xiàn),就將對(duì)應(yīng) 的攝像機(jī)坐標(biāo)位置和朝向位置加載到用戶(hù)攝像機(jī)上。這樣用戶(hù)就能直接進(jìn)入易于拾取零件 或者易于裝配零件的操作位置,只需做少量調(diào)整就可以進(jìn)行需要的操作了。有的裝配情境 下,可能存在多個(gè)關(guān)鍵位置點(diǎn),用戶(hù)可以在這些關(guān)鍵位置點(diǎn)之間進(jìn)行切換,找到最方便的位 置。
      [0198] 本發(fā)明的裝配模型相比于已有的模型更輕量,結(jié)構(gòu)更清晰,仿真效率較高,實(shí)時(shí)性 能得到較好的滿(mǎn)足。可將該裝配模型應(yīng)用于大型旋轉(zhuǎn)機(jī)械設(shè)備的虛擬裝配仿真系統(tǒng)中,使 系統(tǒng)設(shè)計(jì)人員脫離了復(fù)雜的裝配過(guò)程和邏輯設(shè)計(jì),專(zhuān)業(yè)分工更為合理,提高了整體的開(kāi)發(fā) 效率。同時(shí),本發(fā)明用戶(hù)情境信息的提取和應(yīng)用方法,可以有效減少用戶(hù)在執(zhí)行重復(fù)裝配任 務(wù)的過(guò)程中,需要對(duì)攝像機(jī)進(jìn)行的位置和朝向調(diào)整操作,使得人機(jī)交互更加友好,發(fā)揮了情 境裝配系統(tǒng)中裝配情境對(duì)用戶(hù)操作的輔助作用,提高了系統(tǒng)的工作效率。
      【主權(quán)項(xiàng)】
      1.基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配模型,其特征是,包括裝配知識(shí)層、裝配決策 層和用戶(hù)控制層,與虛擬裝配有關(guān)的知識(shí)保存于裝配信息文件中; 裝配知識(shí)層中,將裝配過(guò)程中零件的連接看作零件之間特征的匹配過(guò)程,則虛擬裝配 任務(wù)的情景即某一時(shí)刻所有零件的特征狀態(tài)組成的集合; 裝配知識(shí)層包括對(duì)特征對(duì)象各個(gè)屬性的定義,以容納裝配信息文件中的裝配知識(shí): 特征對(duì)象=(特征名稱(chēng),特征類(lèi)型,特征節(jié)點(diǎn)集合,連接特征,特征狀態(tài),依賴(lài)關(guān)系集 合); 特征名稱(chēng)是各特征對(duì)象在場(chǎng)景中的唯一標(biāo)識(shí);特征類(lèi)型為零件之間點(diǎn)、線和面之間的 連接裝配關(guān)系,對(duì)應(yīng)包括點(diǎn)特征、線特征和面特征;特征節(jié)點(diǎn)集合為點(diǎn)特征、線特征和面特 征的位置及朝向;連接特征為可與當(dāng)前特征進(jìn)行匹配的特征名稱(chēng);特征狀態(tài)包括未就緒、就 緒、激活和完成匹配四種屬性取值;依賴(lài)關(guān)系集合是一個(gè)鍵-值集合,將特征名稱(chēng)對(duì)作為鍵, 對(duì)應(yīng)的值為0或1,根據(jù)場(chǎng)景中其他特征對(duì)象間的裝配情況更新依賴(lài)關(guān)系集合中各項(xiàng)的取 值; 當(dāng)依賴(lài)關(guān)系集合中所有特征名稱(chēng)對(duì)都完成裝配,則特征狀態(tài)從未就緒轉(zhuǎn)為就緒;如果 一對(duì)就緒特征的位置足夠靠近,且當(dāng)前沒(méi)有特征被激活,則這兩個(gè)就緒的特征對(duì)進(jìn)入激活 狀態(tài);如果一對(duì)特征對(duì)象完成匹配,且特征對(duì)象的依賴(lài)關(guān)系集合分別已經(jīng)被完全滿(mǎn)足,則這 對(duì)特征對(duì)象進(jìn)入"完成匹配"狀態(tài),否則返回未就緒狀態(tài); 裝配決策層中,包括多個(gè)零件Agent,不同零件Agent之間通過(guò)封裝有特征狀態(tài)參數(shù)的 消息模板進(jìn)行通信,零件Agent根據(jù)接收到的消息模板的內(nèi)容選擇不同裝配行為; 裝配決策層對(duì)各零件對(duì)象的定義為: 零件對(duì)象=(零件名稱(chēng),特征集合); 其中零件名稱(chēng)是零件對(duì)象在場(chǎng)景中的唯一標(biāo)識(shí);特征集合是相應(yīng)零件上所有點(diǎn)、線及 面特征的集合,表示該零件與其它零件所有可裝配的位置; 上述消息模板的定義為: 消息模板=(發(fā)送者,接收者,消息體);發(fā)送者是發(fā)送消息的零件Agent的名稱(chēng),接收者 是接收消息的零件Agent的名稱(chēng),消息體為消息正文; 裝配決策層還包括:對(duì)零件對(duì)象的決策規(guī)則的謂詞進(jìn)行定義,用于描述零件對(duì)象在場(chǎng) 景中的各種基本行為, 對(duì)零件對(duì)象決策規(guī)則用到的常元進(jìn)行定義,用于描述規(guī)則中的各種對(duì)象和屬性的取 值, 以及對(duì)零件Agent的決策規(guī)則進(jìn)行定義,零件獲取虛擬裝配場(chǎng)景上下文信息后,根據(jù)決 策規(guī)則選擇對(duì)應(yīng)行為; 用戶(hù)控制層中,包括組件對(duì)象,組件對(duì)象為用戶(hù)控制的邏輯單位和零件的抽象集合,定 義為: 組件對(duì)象=(組件編號(hào),零件集合屬性,自由度列表) 上述零件集合屬性即Parts屬性,包括多個(gè)零件Agent的名稱(chēng),當(dāng)兩個(gè)組件完成裝配后, 兩個(gè)組件的零件集合進(jìn)行合并; 自由度列表屬性即DOF屬性,包括沿軸移動(dòng)、繞軸旋轉(zhuǎn)、延平面移動(dòng),空間移動(dòng)、繞點(diǎn)旋 轉(zhuǎn)和空屬性五種類(lèi)型; 當(dāng)兩個(gè)組件所包含的兩個(gè)零件之間完成一步特征匹配后,根據(jù)發(fā)生匹配的特征類(lèi)型和 組件對(duì)象當(dāng)前的自由度取值,來(lái)解算下一步裝配的自由度取值,直到這兩個(gè)零件之間完全 固定。2. 根據(jù)權(quán)利要求1所述的基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配模型,其特征是,所述 消息模板包括turnActive、makeOffset、partPosition、featurePosition、matchPaii^P adjustSure六種類(lèi)型,其中: partPos i t ion消息=(發(fā)送者=主動(dòng)件,接收者=所有Agent,消息體=(位置,就緒特 征名表));用于向場(chǎng)景廣播移動(dòng)零件Agent的位置和所有處于"就緒"狀態(tài)的特征名稱(chēng); featurePos i t ion消息=(發(fā)送者=主動(dòng)件,接收者=所有Agent,消息體=(激活狀態(tài) 特征的頂點(diǎn)集));用于向場(chǎng)景廣播自己處于激活狀態(tài)的特征的頂點(diǎn)位置; turnActive消息=(發(fā)送者=從動(dòng)件,接收者=主動(dòng)件,消息體=特征名稱(chēng));從動(dòng)件利 用turnActive消息指定主動(dòng)件將特征調(diào)整為激活狀態(tài); makeOffset消息=(發(fā)送者=從動(dòng)件,接收者=主動(dòng)件,消息體=(角度,軸線,位移)); 從動(dòng)件利用makeOf f s e t消息讓主動(dòng)件做出旋轉(zhuǎn)和位移調(diào)整; ad justSure消息=(發(fā)送者=主動(dòng)件,接收者=從動(dòng)件,消息體=(特征名稱(chēng)集));主動(dòng) 件利用AdjustSure消息告知從動(dòng)件已完成了位置調(diào)整; matchPair消息=(發(fā)送者=主動(dòng)件/從動(dòng)件,接收者=所有Agent,消息體=(零件名稱(chēng) 對(duì)));用于向場(chǎng)景中其它零件Agent廣播當(dāng)前完成裝配零件對(duì)的名稱(chēng)。3. 根據(jù)權(quán)利要求2所述的基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配模型,其特征是,裝配 決策層中,零件對(duì)象決策規(guī)則用到的常元包括特征狀態(tài)常元和消息類(lèi)型常元: 特征狀態(tài)常元中,特征狀態(tài)的取值包括inactive,ready,active, fixed四種,分別對(duì)應(yīng) 特征狀態(tài)屬性的未就緒、就緒、激活和完成匹配四個(gè)值; 消息類(lèi)型常元中,消息類(lèi)型的取值包括matchPair,makeOff set,partPosition, turnActive,featurePos it ion,ad justSure六種,分別對(duì)應(yīng)六種不同的消息模板。4. 根據(jù)權(quán)利要求1所述的基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配模型,其特征是,裝配 決策層中,所述對(duì)零件對(duì)象的決策規(guī)則的謂詞的定義包括: 定義謂詞part(x),含義為"X是零件";comp(x),含義為"X是組件";posChg(x),含義為 "X的位置發(fā)生變化";fullfill(x),含義為"X的依賴(lài)集合被滿(mǎn)足";concAllU),含義為"X的 連接集合被滿(mǎn)足";ftof (x,y),含義為"X是y的特征";ptof (x,y),含義為"X是y的零件"; state(x,y),含義為"X的狀態(tài)是y" ;setSt(x,y),含義為"將X的狀態(tài)設(shè)置為y" ;send(x,y, z),含義為"x向y發(fā)送消息z" ;rev(x,y,z),含義為"x收到y(tǒng)發(fā)來(lái)的消息z" ;cont(x,y),含義 為"X包含在y中";conc(x,y),含義為"X可以與y匹配";offset(x,y),含義為"計(jì)算從X至Ijy的 位移、旋轉(zhuǎn)偏移量";doOffset(x,y),含義為"按照y移動(dòng)、旋轉(zhuǎn)X" ;update(x,y),含義為"更 新X的y屬性";dep(x,y),含義為"X依賴(lài)于y"。5. 根據(jù)權(quán)利要求1所述的基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配模型,其特征是,裝配 決策層中,對(duì)零件Agent決策規(guī)則的定義包括: 定義推理規(guī)則"如果有零件P位置發(fā)生變化,并且P不存在狀態(tài)為active特征f,那么p向 場(chǎng)景所有零件發(fā)送消息partPosition" ; 定義推理規(guī)則"如果零件pi收到消息partPos it ion,且pi的特征fi、和partPos it ion消 息包含的特征f2之間存在匹配關(guān)系,那么將f 1的狀態(tài)設(shè)置為active并發(fā)送turnActive消 息"; 定義推理規(guī)則"若零件P1收到消息turnActive,且pi有特征f狀態(tài)為ready并且包含于消 息turnActive中,則將f設(shè)置為active" ; 定義推理規(guī)則"如果零件P位置發(fā)生變化,并且P存在狀態(tài)為active的特征,那么零件p 發(fā)送消息featurePosition" ; 定義推理規(guī)則"如果有零件pi收到featurePosition消息,并且存在pi的特征f 1狀態(tài)為 active和包含在featurePosition消息中的特征f2,那么計(jì)算f 1到f2之間的位移和旋轉(zhuǎn)偏 移量,并發(fā)送makeOffset消息"; 定義推理規(guī)則"如果零件pi收到makeOff set消息,且pi存在狀態(tài)為active的特征f,且 makeOffset中含有偏移矩陣m,且特征f的連接集合全部滿(mǎn)足,那么按偏移矩陣m移動(dòng)P1,并 更新P1所屬組件C的D0F取值,并將特征f的狀態(tài)設(shè)置為f ixed,并發(fā)送adjustSure消息和 matchPair消息";如果特征f的連接集合沒(méi)有全部滿(mǎn)足,則將f的狀態(tài)設(shè)置為inactive; 定義推理規(guī)則"如果特征pi收到消息adjustSure,并且pi存在狀態(tài)為active且連接集合 全部滿(mǎn)足的特征f,則更新Pi所屬組件c的D0F取值,并將f狀態(tài)設(shè)置為fixed,同時(shí)發(fā)送 matchPair消息";如果特征f的連接集合沒(méi)有全部滿(mǎn)足,則將f的狀態(tài)設(shè)置為inactive; 定義推理規(guī)則"如存在零件P收到matchPair消息,存在狀態(tài)為inactive的特征f屬于p, 并且matchPair消息中包含連接關(guān)系c,如果f依賴(lài)于c并且f的依賴(lài)集合被滿(mǎn)足,那么將f的 狀態(tài)調(diào)整為ready"。6. 根據(jù)權(quán)利要求1所述的基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配模型,其特征是,用戶(hù) 控制層中,對(duì)自由度進(jìn)行解算時(shí),包括以下定義: 定義有限狀態(tài)自動(dòng)機(jī)M=(Q, Σ J,S,F);其中: 狀態(tài)集合7輸入字母表定義為初始狀態(tài) S 定義為 S= (pointRotate, spaceTranslate) 終止?fàn)顟B(tài)F定義為:F= {NULL}; δ為狀態(tài)轉(zhuǎn)移函數(shù)。7. 基于情境感知的旋轉(zhuǎn)機(jī)械設(shè)備虛擬裝配方法,其特征是,包括以下步驟: 步驟Α:構(gòu)建虛擬裝配任務(wù)需要的各種零件模型,建立零件的三維模型,并標(biāo)定出描繪 零件特征的特征點(diǎn)的坐標(biāo)集合; 步驟Β:構(gòu)建虛擬裝配模型,根據(jù)零件包含特征的情況,特征的參數(shù)和裝配過(guò)程建立虛 擬裝配模型; 步驟C:根據(jù)虛擬裝配模型,建立虛擬裝配信息文件; 步驟D:基于幾何模型和虛擬裝配信息文件,啟動(dòng)虛擬裝配程序,對(duì)虛擬裝配模型中的 組件對(duì)象、零件對(duì)象和零件包含的特征對(duì)象進(jìn)行初始化; 步驟Ε:運(yùn)行虛擬裝配程序,零件對(duì)象按照裝載好的決策規(guī)則和消息模板,不斷發(fā)送消 息、讀取消息并進(jìn)行決策,直至裝配完成。8. 根據(jù)權(quán)利要求7所述的方法,其特征是,步驟E中, 當(dāng)用戶(hù)控制某零件相對(duì)另一零件移動(dòng)時(shí),移動(dòng)過(guò)程中被控零件不斷發(fā)送包含自己坐標(biāo) 位置和特征列表的par tPo s i t i on消息; 場(chǎng)景中其他零件收到這個(gè)partPosition消息時(shí),判斷自己包含的特征是否與消息中提 到的特征存在匹配關(guān)系,若存在,則選擇一對(duì)相應(yīng)特征,發(fā)送turnActive消息,要求被控零 件將對(duì)應(yīng)特征狀態(tài)調(diào)整為active; 被控零件收到turnActive消息后,將對(duì)應(yīng)特征修改為active ;此時(shí)用戶(hù)繼續(xù)控制被控 零件移動(dòng),被控零件發(fā)送featurePosition消息,向場(chǎng)景廣播active特征的位置; 可匹配零件收到featurePosition消息后,計(jì)算位移和旋轉(zhuǎn)偏移量,并通過(guò)makeOffset 消息,要求被控零件完成位移和旋轉(zhuǎn)偏移; 被控零件收到makeOffset消息后,根據(jù)其中包含的位移和旋轉(zhuǎn)偏移量改變自己的坐標(biāo) 矩陣,并更新自己的D0F取值,發(fā)送ad justSure消息,以及matchPair消息; 場(chǎng)景中各個(gè)其它零件收到matchPair消息后,根據(jù)消息中提到的特征對(duì),更新自己特征 的依賴(lài)關(guān)系集合的狀態(tài)值; 可匹配零件收到ad justSure消息后,再選取下一對(duì)待匹配特征,通過(guò)turnActive消息 命令被控零件將對(duì)應(yīng)特征對(duì)狀態(tài)置為active; 直到兩個(gè)零件之間的所有特征完成匹配,將兩個(gè)零件所屬的組件進(jìn)行合并:一個(gè)組件 將自己的零件列表合并到另一個(gè)組件中,并將自己從場(chǎng)景中移除;合并完成后的組件將D0F 值重置,用戶(hù)可重新對(duì)其進(jìn)行自由操控。9. 根據(jù)權(quán)利要求7所述的方法,其特征是,還包括對(duì)虛擬裝配任務(wù)的用戶(hù)情境進(jìn)行提 取,包括步驟: 1用戶(hù)情境定義: 用戶(hù)情境=(特征狀態(tài)集合,攝像機(jī)位置坐標(biāo),攝像機(jī)朝向坐標(biāo),攝像機(jī)頭頂坐標(biāo)), 其中特征狀態(tài)集合是由一系列數(shù)字位組成的序列值,每一位的取值范圍為〇到3,分別 對(duì)應(yīng)裝配情境中每個(gè)特征對(duì)象的inactive、ready、acti ve和fixed四種特征狀態(tài)值;攝像機(jī) 位置坐標(biāo)是指用戶(hù)視線的起點(diǎn)坐標(biāo);攝像機(jī)朝向坐標(biāo)是用戶(hù)視線的終點(diǎn)坐標(biāo);攝像機(jī)頭頂 坐標(biāo)指與用戶(hù)視線垂直的頭頂正上方方向的終點(diǎn)坐標(biāo); 2用戶(hù)情景離線抽?。? 2.1收集用戶(hù)執(zhí)行同一虛擬裝配任務(wù)過(guò)程中產(chǎn)生的路徑信息,所述路徑信息包括裝配 任務(wù)在每一時(shí)刻的特征狀態(tài)集合,以及這一時(shí)刻用戶(hù)攝像機(jī)的位置坐標(biāo)、朝向坐標(biāo)和頭頂 坐標(biāo); 2.2對(duì)于上述收集到的路徑信息進(jìn)行預(yù)處理,將每條路徑按照不同的特征狀態(tài)集合切 分成不同的坐標(biāo)點(diǎn)集合; 2.3對(duì)于不同的特征狀態(tài)集合下的坐標(biāo)點(diǎn)集合,使用基于密度的聚類(lèi)算法,計(jì)算集合中 每個(gè)坐標(biāo)點(diǎn)周?chē)欢ǚ秶覂?nèi)的坐標(biāo)點(diǎn)的個(gè)數(shù); 2.4對(duì)聚類(lèi)后的坐標(biāo)點(diǎn)集合進(jìn)行清洗:首先合并密度相同的位置點(diǎn),然后取出局部密度 最大的位置點(diǎn),作為備選關(guān)鍵位置點(diǎn); 在對(duì)每一條路徑都處理結(jié)束之后,不同的特征狀態(tài)集合下均有對(duì)應(yīng)的一系列備選關(guān)鍵 位置點(diǎn); 2.5應(yīng)用基于層次的聚類(lèi)方法,對(duì)上述各特征狀態(tài)集合一系列備選關(guān)鍵位置點(diǎn)進(jìn)行聚 類(lèi):首先將每個(gè)特征點(diǎn)視為一類(lèi),然后計(jì)算各個(gè)聚類(lèi)之間的距離,再對(duì)于距離小于范圍σ的 兩個(gè)聚類(lèi)進(jìn)行合并; 聚類(lèi)之間距離的計(jì)算公式為: dmean ( Ci , Cj ) - | Π?? , Hlj 2.6重復(fù)步驟2.5,直到各個(gè)聚類(lèi)之間的距離全部大于范圍σ,則聚類(lèi)過(guò)程停止; 2.7查看各個(gè)聚類(lèi)被合并過(guò)的次數(shù),如果合并次數(shù)為零,說(shuō)明這個(gè)備選關(guān)鍵位置點(diǎn)是一 個(gè)離群點(diǎn),予以清除; 3用戶(hù)情景在線查詢(xún): 將步驟2得到的用戶(hù)情境數(shù)據(jù)結(jié)果保存為用戶(hù)情境文件,當(dāng)虛擬裝配程序啟動(dòng)后加載 用戶(hù)情境文件; 在用戶(hù)執(zhí)行裝配操作的過(guò)程中,系統(tǒng)比對(duì)判斷當(dāng)前正在裝配的各個(gè)特征形成的特征狀 態(tài)集合是否在用戶(hù)情境文件中出現(xiàn),如果是,則將對(duì)應(yīng)的攝像機(jī)坐標(biāo)位置和朝向位置加載 到虛擬裝配系統(tǒng)的攝像機(jī)上。
      【文檔編號(hào)】G06F17/50GK105868478SQ201610197043
      【公開(kāi)日】2016年8月17日
      【申請(qǐng)日】2016年3月31日
      【發(fā)明人】劉惠義, 張加雪, 錢(qián)福軍, 宋晨, 鄭源, 趙林章, 李頻, 孟志偉, 樊錦川, 錢(qián)華清
      【申請(qǐng)人】河海大學(xué), 江蘇省泰州引江河管理處
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1