• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于CAD模型的掃描測(cè)量機(jī)器人路徑規(guī)劃方法研究

      2018-03-30 01:29:23秦國輝
      自動(dòng)化與儀表 2018年1期
      關(guān)鍵詞:類庫多邊形曲面

      秦國輝,張 勇

      (合肥工業(yè)大學(xué) 儀器科學(xué)與光電工程學(xué)院,合肥 230009)

      現(xiàn)代工業(yè)產(chǎn)品的設(shè)計(jì),對(duì)復(fù)雜曲面的應(yīng)用越來越廣泛。在汽車、航空、航天等產(chǎn)品的設(shè)計(jì)中,復(fù)雜曲面的應(yīng)用更加普遍。然而,對(duì)于復(fù)雜曲面的檢測(cè),傳統(tǒng)方法往往依賴人工操作檢測(cè)工具,其精度難以得到保證。而且測(cè)量路徑難以重復(fù),還有可能部分區(qū)域檢測(cè)不到,而另一部分存在數(shù)據(jù)冗余。近年來,隨著激光掃描儀的精度和速度的提高,以及工業(yè)機(jī)器人技術(shù)的日趨成熟,利用工業(yè)機(jī)器人效率高、重復(fù)性好和激光掃描儀精度高等特點(diǎn),將激光掃描儀安裝在工業(yè)機(jī)器人上的測(cè)量方法得到了廣泛應(yīng)用。與傳統(tǒng)方法相比,這種測(cè)量方法具有典型的效率高、精度高、重復(fù)性好等優(yōu)點(diǎn)。在此,介紹了Open CASCADE三維軟件平臺(tái);利用該平臺(tái)實(shí)現(xiàn)了三維模型的導(dǎo)入和顯示,給出了針對(duì)復(fù)雜曲面模型的路徑文件;在機(jī)器人三維仿真軟件中進(jìn)行了模擬仿真。

      1 OpenCASCADE簡(jiǎn)介

      OpenCASCADE是一個(gè)開源的圖形開發(fā)平臺(tái),來源于法國Matra Datavision公司[1]。它是一個(gè)面向?qū)ο蟮腃++類庫,主要包括6大基本類庫:基礎(chǔ)類庫、模型數(shù)據(jù)類庫、模型算法類庫、可視化類庫、數(shù)據(jù)交換類庫以及應(yīng)用框架類庫。通過這些類庫,OpenCASCADE可以提供二維和三維幾何體的創(chuàng)建、模型顯示和分析、數(shù)據(jù)交換等功能,可以用來快速開發(fā)二維和三維幾何建模軟件[2-4]。

      OpenCASCADE技術(shù)可以用于包括CAD/CAM/CAE等方面的眾多三維程序的開發(fā),至今已經(jīng)被許多領(lǐng)域的商業(yè)公司所采用。使用者可以根據(jù)研究需要有選擇性的使用相關(guān)的庫函數(shù),可以避免花費(fèi)大量精力用于底層開發(fā)。早期的開發(fā)中大多結(jié)合Visual C++6.0平臺(tái),開發(fā)出適合中小企業(yè)的簡(jiǎn)單的CAD/CAM系統(tǒng)。在此所研究的三維掃描測(cè)量機(jī)器人系統(tǒng)軟件,其接口的開發(fā)采用OpenCASCADE 6.9.0和VS 2010平臺(tái)。

      2 系統(tǒng)體系結(jié)構(gòu)

      2.1 模型數(shù)據(jù)讀取

      工業(yè)上常見的三維模型數(shù)據(jù)格式有IGES,STEP,CGM,等。其中,IGES是產(chǎn)生最早、應(yīng)用最廣的數(shù)據(jù)標(biāo)準(zhǔn),它以ASCII或二進(jìn)制的形式進(jìn)行存儲(chǔ)圖形信息,并可以在不同的CAD系統(tǒng)間進(jìn)行信息交換[5]。本系統(tǒng)采用IGES格式的三維模型數(shù)據(jù)的讀取方法,具體過程是:①導(dǎo)入CAD模型,系統(tǒng)將模型數(shù)據(jù)存儲(chǔ)在TopDS_Shape類中;②將數(shù)據(jù)放入Top-Tools_HsequenceOfShape隊(duì)列中,通過交互模塊的形狀類,將數(shù)據(jù)傳輸?shù)浇换?duì)象中;③將數(shù)據(jù)存儲(chǔ)在doc類中,并在View類中實(shí)現(xiàn)三維模型的顯示。實(shí)際的IGES模型導(dǎo)入后的顯示效果如圖1所示。

      圖1 基于OpenCASCADE的曲面顯示Fig.1 Surface display based on OpenCASCADE

      2.2 曲面選取

      OpenCASCADE的可視化模塊主要提供了曲面的顯示、選取、交互服務(wù)應(yīng)用以及三維顯示等功能,利用可視化模塊中的交互服務(wù)應(yīng)用可以實(shí)現(xiàn)曲面的選取。具體實(shí)現(xiàn)是通過AIS_InteractiveContext類,其中包含了以下幾個(gè)重要的成員函數(shù):

      AIS_InteractiveContext::SetSelected, 將選擇的曲面存入隊(duì)列;

      AIS_InteractiveContext::AddOrRemoveSellected,從隊(duì)列中添加或移除已選擇的實(shí)體;

      AIS_InteractiveContext::HightSelected, 高亮顯示已選擇的實(shí)體;

      AIS_InteractiveContext::ClearSelected,清空隊(duì)列中已選擇的實(shí)體。

      通過AIS_InteractiveContext類實(shí)現(xiàn)曲面選取之后,還需要進(jìn)行采樣點(diǎn)的計(jì)算。

      2.3 采樣點(diǎn)計(jì)算

      在采樣點(diǎn)計(jì)算過程中用到2個(gè)重要算法,即deBoor算法和點(diǎn)在多邊形內(nèi)外的判別算法。

      此外,《巴斯蒂安鋼琴基礎(chǔ)教程》中還有“練習(xí)指導(dǎo)”和演奏提示,幫助學(xué)習(xí)者掌握練習(xí)和演奏的方法,并提出問題讓學(xué)生去尋找答案。同時(shí),樂曲基本都配有歌詞和伴奏,并且很早就加入表情記號(hào)和力度記號(hào),幫助培養(yǎng)學(xué)生的音樂情感和表現(xiàn)力。還有一些其他的細(xì)節(jié)設(shè)計(jì),例如,在目錄部分提示教師給學(xué)生完成的樂曲打鉤,以此來提高學(xué)生的成就感,等等。這些都體現(xiàn)出巴斯蒂安在編寫時(shí)周密的考慮和用心。

      2.3.1 deBoor算法

      設(shè)參數(shù) t固定在區(qū)間[tj,tj+1),k≤j≤n。k 次 B 樣條曲線的求值算法[7]為

      P(t)的值按式(1)遞歸 k-1 次求得。從幾何意義上理解,即為從控制多邊形Pj-k+1Pj-k+2Pj開始進(jìn)行k-1層割角,結(jié)合式(2)可得如圖2所示的幾何結(jié)果:第r層割角是用割去角最后得到的割角點(diǎn)即為所求的P(t)。該算法采用割角法,計(jì)算簡(jiǎn)單、穩(wěn)定。

      圖2 B樣條曲線的DeBoor求值法算Fig.2 DeBoor evaluation algorithm of the B-spline curve

      2.3.2 點(diǎn)在多邊形內(nèi)外判別算法

      判斷點(diǎn)在多邊形內(nèi)外有許多算法,典型的算法有環(huán)繞數(shù)法和射線法。這些算法在使用時(shí)有其應(yīng)用范圍,在此針對(duì)復(fù)雜曲面的研究,采用的算法利用了可見邊的概念,其原理如圖3所示。可見邊就是過S點(diǎn)作任意一條射線與多邊形P的邊界求交,如果距離S點(diǎn)最近的交點(diǎn)不是多邊形P的頂點(diǎn),則該交點(diǎn)所在的邊就是S點(diǎn)的可見邊[6]。如圖所示,PiPi+1就是點(diǎn)S的可見邊,通過遍歷多邊形的每條邊,來尋找多邊形中相對(duì)于被判別點(diǎn)的可見邊,可見邊兩端的頂點(diǎn)和被判別點(diǎn)構(gòu)成一個(gè)三角形,最后通過判別該三角形的方向與多邊形的方向是否一致,來判別點(diǎn)是否在多邊形內(nèi)部。

      圖3 可見邊算法原理Fig.3 Principle of visible edge algorithm

      2.3.3 采樣點(diǎn)計(jì)算步驟

      利用上述基礎(chǔ)算法,采樣點(diǎn)的計(jì)算便可以通過以下4步驟求出:

      步驟1 首先計(jì)算NURUS曲面的等參線,并計(jì)算與等參線求交的一系列平面,再用等參線和平面求交,對(duì)得到的采樣點(diǎn)篩選后即可得到需要的采樣點(diǎn);

      步驟2 利用deBoor算法計(jì)算出等參線上的m個(gè)點(diǎn)和每個(gè)點(diǎn)的切向量,將該m個(gè)點(diǎn)和每個(gè)點(diǎn)處的切向量作為平面上的點(diǎn)和法矢,利用點(diǎn)法式公式,即可得到求交平面;

      步驟4 計(jì)算曲面參數(shù)方向采樣點(diǎn)處的切向量au,bv,曲面采樣點(diǎn)處的法矢量即2個(gè)參數(shù)方向的切向量的叉乘積[7],公式為 n=au×bv。

      3 掃描路徑生成

      3.1 生成掃描路徑的條件

      掃描路徑的生成需要2個(gè)條件,即掃描位置和掃描方向。利用可視錐的性質(zhì),可以實(shí)現(xiàn)對(duì)采樣點(diǎn)的掃描位置進(jìn)行計(jì)算和分析[8]。

      3.1.1 可視錐性質(zhì)

      若要獲取曲面上一個(gè)被掃描點(diǎn)坐標(biāo),需要滿足以下掃描約束條件[9]:

      —視角,激光測(cè)頭的發(fā)射光束和零件曲面上被掃描點(diǎn)處法矢的夾角α應(yīng)該小于特定角度β,理想情況下α為0°。

      —視場(chǎng),被掃描點(diǎn)位于視場(chǎng)范圍內(nèi)。

      —視深,被掃描點(diǎn)距離激光源的距離在一定范圍內(nèi),即位于近視深和遠(yuǎn)視深之間。

      以上約束條件如圖4所示。還有一些其他條件,如無遮擋、無碰撞等。

      圖4 激光掃描約束條件Fig.4 Laser scanning constraints

      將圖4倒立過來觀察??梢园l(fā)現(xiàn),位于圓錐體內(nèi)的所有點(diǎn)都可以觀察到頂點(diǎn)。如果錐的主角為2α,那么在錐內(nèi)任意2個(gè)從錐頂點(diǎn)出發(fā)的矢量夾角≤2α。則錐軸和錐內(nèi)任意矢量的夾角<α[10]。

      3.1.2 掃描位置和方向計(jì)算

      以采樣點(diǎn)作為錐頂,采樣點(diǎn)在曲面上的法矢為錐軸,近視深和遠(yuǎn)視深為錐高,形成錐角、錐頂和錐軸相同,錐高不同的2個(gè)椎體。用大錐體減去小椎體,得到的空間圓臺(tái)就是激光測(cè)頭可以掃描到該采樣點(diǎn)的空間位置的集合。再用采樣點(diǎn)所在平面與該圓臺(tái)求交,得到空間等腰梯形。掃描位置如圖5所示,工件表面的每一個(gè)采樣點(diǎn)都有一個(gè)對(duì)應(yīng)的等腰梯形,將位于同平面的采樣點(diǎn)對(duì)應(yīng)的等腰梯形依次布爾求交,便可算出測(cè)頭的掃描位置。

      圖5 掃描位置示意Fig.5 Schematic view of thescanning position

      3.2 掃描路徑的生成

      求出掃描位置以后,便可以得到掃描路徑。對(duì)單個(gè)求交平面,利用zigzag路徑算法產(chǎn)生掃描路徑[11]。單個(gè)求交平面的掃描路徑如圖6所示,圖6a中只有從點(diǎn)P1到P2這1條掃描線,圖6b中有從點(diǎn)P3開始到點(diǎn)P4的3條掃描線,當(dāng)單個(gè)求交平面上起點(diǎn)位置確定后,其zigzag路徑和終點(diǎn)位置也隨之確定。當(dāng)有多個(gè)求交平面時(shí),優(yōu)先搜索各個(gè)求交平面中具有相同法矢的采樣點(diǎn),然后從當(dāng)前求交平面的終點(diǎn)位置開始搜索其他求交平面中距離最近的采樣點(diǎn),依次連接采樣點(diǎn),便生成最終的掃描路徑。所生成的掃描路徑如圖7所示。

      圖6 單個(gè)求交平面的掃描路徑Fig.6 Scanning path of single intersecting plane

      圖7 生成的掃描路徑Fig.7 Generated scanning path

      4 仿真

      得到生成的測(cè)量路徑后,需要在三維仿真軟件中進(jìn)行模擬仿真,以保證實(shí)際測(cè)量時(shí)的安全性和準(zhǔn)確性。采用WorkSpace 5.0工業(yè)機(jī)器人三維仿真軟件,依次導(dǎo)入CAD模型和工業(yè)機(jī)器人,然后將生成的測(cè)量路徑導(dǎo)進(jìn)機(jī)器人中,路徑如圖8所示,機(jī)器人分別沿著生成的路徑運(yùn)動(dòng),這樣便可以實(shí)現(xiàn)三維路徑仿真。在仿真過程中,可以檢查機(jī)器人與模型有無碰撞,如果有碰撞,需要調(diào)整掃描路徑,直到得到無碰撞路徑為止。

      5 結(jié)語

      采用開源的OpenCASCADE三維幾何平臺(tái),搭建了針對(duì)復(fù)雜曲面模型的自動(dòng)檢測(cè)系統(tǒng),可以實(shí)現(xiàn)復(fù)雜三維模型的輸入顯示,大幅提高開發(fā)速度;對(duì)掃描路徑進(jìn)行了模擬仿真,驗(yàn)證了路徑的正確性?;贑AD模型的復(fù)雜曲面的自動(dòng)檢測(cè)是一項(xiàng)極具前景的研究?jī)?nèi)容,目前的研究工作尚處于起步階段,所做的工作對(duì)工業(yè)上復(fù)雜曲面工件的檢測(cè)具有一定的參考價(jià)值。

      [1]Object libraries application framework user’s guide[EB/OL].http://www.opencascade.org/occ/faq,2017-3-20.

      [2]陳宏宇,劉子健,艾彥迪.基于OpenCASCADE的“一元四體”模型實(shí)現(xiàn)技術(shù)研究[J].計(jì)算機(jī)工程與科學(xué),2012,34(3):96-102.

      [3]鄭盈盈,周來水,孫金虎.基于OpenCASCADE的DXF接口研究[J].機(jī)械設(shè)計(jì)與制造工程,2010,39(1):45-48.

      [4]趙韓,劉達(dá)新,董玉德,等.基于CAD的坐標(biāo)測(cè)量機(jī)檢測(cè)規(guī)劃系統(tǒng)的開發(fā)[J].儀器儀表學(xué)報(bào),2009,30(9):1846-1853.

      [5]李宏.三維模型數(shù)據(jù)格式轉(zhuǎn)化的技巧[J].金華職業(yè)技術(shù)學(xué)院學(xué)報(bào),2008,8(6):15-17.

      [6]李維詩,李江雄.平面多邊形方向以及內(nèi)外點(diǎn)判斷的新方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)報(bào),2000,12(6):405-407.

      [7]孫家廣,楊長貴.計(jì)算機(jī)圖形學(xué)[M].北京:清華大學(xué)出版社,1996:276-324.

      [8]肖海軍.三維線掃描測(cè)量機(jī)器人的路徑規(guī)劃[D].合肥:合肥工業(yè)大學(xué),2014.

      [9]Reinhart G,Tekouo W.Automatic programming of robot-mounted 3D optical scanning devices to easily measure parts in hignvariant assembly[J].CIRP Annals-Manufacturing Technology,2009,58(1):25-28.

      [10]Elber G,Zussman E.Cone visibility decomposition of freeform surface[J].Computer-Aided Design,1998,30(4):315-320.

      [11]ElMaraghy H,Yang X.Computer-aided plannng of laser scanning of complex geometries[J].CIRP Annal-Manufacturing Technology,2003,52(1):411-414.

      猜你喜歡
      類庫多邊形曲面
      多邊形中的“一個(gè)角”問題
      多邊形的藝術(shù)
      用Java編寫客戶機(jī)/服務(wù)器端應(yīng)用程序
      解多邊形題的轉(zhuǎn)化思想
      多邊形的鑲嵌
      相交移動(dòng)超曲面的亞純映射的唯一性
      Python在數(shù)據(jù)可視化中的應(yīng)用
      圓環(huán)上的覆蓋曲面不等式及其應(yīng)用
      數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果
      軟件工程(2017年12期)2018-01-29 17:35:55
      數(shù)據(jù)結(jié)構(gòu)可視化類庫的設(shè)計(jì)與實(shí)現(xiàn)
      丰台区| 汪清县| 泰来县| 湘西| 鹤山市| 大安市| 怀化市| 宣武区| 靖州| 当阳市| 承德县| 银川市| 博白县| 孟州市| 略阳县| 道真| 左云县| 富民县| 资源县| 景宁| 隆德县| 平湖市| 左云县| 黑龙江省| 沙坪坝区| 龙海市| 碌曲县| 汝州市| 龙海市| 广州市| 多伦县| 临沭县| 万山特区| 建水县| 专栏| 明溪县| 达州市| 新蔡县| 肇庆市| 镇康县| 灵宝市|