秦國輝,張 勇
(合肥工業大學 儀器科學與光電工程學院,合肥 230009)
現代工業產品的設計,對復雜曲面的應用越來越廣泛。在汽車、航空、航天等產品的設計中,復雜曲面的應用更加普遍。然而,對于復雜曲面的檢測,傳統方法往往依賴人工操作檢測工具,其精度難以得到保證。而且測量路徑難以重復,還有可能部分區域檢測不到,而另一部分存在數據冗余。近年來,隨著激光掃描儀的精度和速度的提高,以及工業機器人技術的日趨成熟,利用工業機器人效率高、重復性好和激光掃描儀精度高等特點,將激光掃描儀安裝在工業機器人上的測量方法得到了廣泛應用。與傳統方法相比,這種測量方法具有典型的效率高、精度高、重復性好等優點。在此,介紹了Open CASCADE三維軟件平臺;利用該平臺實現了三維模型的導入和顯示,給出了針對復雜曲面模型的路徑文件;在機器人三維仿真軟件中進行了模擬仿真。
OpenCASCADE是一個開源的圖形開發平臺,來源于法國Matra Datavision公司[1]。它是一個面向對象的C++類庫,主要包括6大基本類庫:基礎類庫、模型數據類庫、模型算法類庫、可視化類庫、數據交換類庫以及應用框架類庫。通過這些類庫,OpenCASCADE可以提供二維和三維幾何體的創建、模型顯示和分析、數據交換等功能,可以用來快速開發二維和三維幾何建模軟件[2-4]。
OpenCASCADE技術可以用于包括CAD/CAM/CAE等方面的眾多三維程序的開發,至今已經被許多領域的商業公司所采用。使用者可以根據研究需要有選擇性的使用相關的庫函數,可以避免花費大量精力用于底層開發。早期的開發中大多結合Visual C++6.0平臺,開發出適合中小企業的簡單的CAD/CAM系統。在此所研究的三維掃描測量機器人系統軟件,其接口的開發采用OpenCASCADE 6.9.0和VS 2010平臺。
工業上常見的三維模型數據格式有IGES,STEP,CGM,等。其中,IGES是產生最早、應用最廣的數據標準,它以ASCII或二進制的形式進行存儲圖形信息,并可以在不同的CAD系統間進行信息交換[5]。本系統采用IGES格式的三維模型數據的讀取方法,具體過程是:①導入CAD模型,系統將模型數據存儲在TopDS_Shape類中;②將數據放入Top-Tools_HsequenceOfShape隊列中,通過交互模塊的形狀類,將數據傳輸到交互對象中;③將數據存儲在doc類中,并在View類中實現三維模型的顯示。實際的IGES模型導入后的顯示效果如圖1所示。

圖1 基于OpenCASCADE的曲面顯示Fig.1 Surface display based on OpenCASCADE
OpenCASCADE的可視化模塊主要提供了曲面的顯示、選取、交互服務應用以及三維顯示等功能,利用可視化模塊中的交互服務應用可以實現曲面的選取。具體實現是通過AIS_InteractiveContext類,其中包含了以下幾個重要的成員函數:
AIS_InteractiveContext::SetSelected, 將選擇的曲面存入隊列;
AIS_InteractiveContext::AddOrRemoveSellected,從隊列中添加或移除已選擇的實體;
AIS_InteractiveContext::HightSelected, 高亮顯示已選擇的實體;
AIS_InteractiveContext::ClearSelected,清空隊列中已選擇的實體。
通過AIS_InteractiveContext類實現曲面選取之后,還需要進行采樣點的計算。
在采樣點計算過程中用到2個重要算法,即deBoor算法和點在多邊形內外的判別算法。
此外,《巴斯蒂安鋼琴基礎教程》中還有“練習指導”和演奏提示,幫助學習者掌握練習和演奏的方法,并提出問題讓學生去尋找答案。同時,樂曲基本都配有歌詞和伴奏,并且很早就加入表情記號和力度記號,幫助培養學生的音樂情感和表現力。還有一些其他的細節設計,例如,在目錄部分提示教師給學生完成的樂曲打鉤,以此來提高學生的成就感,等等。這些都體現出巴斯蒂安在編寫時周密的考慮和用心。
設參數 t固定在區間[tj,tj+1),k≤j≤n。k 次 B 樣條曲線的求值算法[7]為

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

圖2 B樣條曲線的DeBoor求值法算Fig.2 DeBoor evaluation algorithm of the B-spline curve
判斷點在多邊形內外有許多算法,典型的算法有環繞數法和射線法。這些算法在使用時有其應用范圍,在此針對復雜曲面的研究,采用的算法利用了可見邊的概念,其原理如圖3所示。可見邊就是過S點作任意一條射線與多邊形P的邊界求交,如果距離S點最近的交點不是多邊形P的頂點,則該交點所在的邊就是S點的可見邊[6]。如圖所示,PiPi+1就是點S的可見邊,通過遍歷多邊形的每條邊,來尋找多邊形中相對于被判別點的可見邊,可見邊兩端的頂點和被判別點構成一個三角形,最后通過判別該三角形的方向與多邊形的方向是否一致,來判別點是否在多邊形內部。

圖3 可見邊算法原理Fig.3 Principle of visible edge algorithm
利用上述基礎算法,采樣點的計算便可以通過以下4步驟求出:
步驟1 首先計算NURUS曲面的等參線,并計算與等參線求交的一系列平面,再用等參線和平面求交,對得到的采樣點篩選后即可得到需要的采樣點;
步驟2 利用deBoor算法計算出等參線上的m個點和每個點的切向量,將該m個點和每個點處的切向量作為平面上的點和法矢,利用點法式公式,即可得到求交平面;
步驟4 計算曲面參數方向采樣點處的切向量au,bv,曲面采樣點處的法矢量即2個參數方向的切向量的叉乘積[7],公式為 n=au×bv。
掃描路徑的生成需要2個條件,即掃描位置和掃描方向。利用可視錐的性質,可以實現對采樣點的掃描位置進行計算和分析[8]。
若要獲取曲面上一個被掃描點坐標,需要滿足以下掃描約束條件[9]:
—視角,激光測頭的發射光束和零件曲面上被掃描點處法矢的夾角α應該小于特定角度β,理想情況下α為0°。
—視場,被掃描點位于視場范圍內。
—視深,被掃描點距離激光源的距離在一定范圍內,即位于近視深和遠視深之間。
以上約束條件如圖4所示。還有一些其他條件,如無遮擋、無碰撞等。

圖4 激光掃描約束條件Fig.4 Laser scanning constraints
將圖4倒立過來觀察。可以發現,位于圓錐體內的所有點都可以觀察到頂點。如果錐的主角為2α,那么在錐內任意2個從錐頂點出發的矢量夾角≤2α。則錐軸和錐內任意矢量的夾角<α[10]。
以采樣點作為錐頂,采樣點在曲面上的法矢為錐軸,近視深和遠視深為錐高,形成錐角、錐頂和錐軸相同,錐高不同的2個椎體。用大錐體減去小椎體,得到的空間圓臺就是激光測頭可以掃描到該采樣點的空間位置的集合。再用采樣點所在平面與該圓臺求交,得到空間等腰梯形。掃描位置如圖5所示,工件表面的每一個采樣點都有一個對應的等腰梯形,將位于同平面的采樣點對應的等腰梯形依次布爾求交,便可算出測頭的掃描位置。

圖5 掃描位置示意Fig.5 Schematic view of thescanning position
求出掃描位置以后,便可以得到掃描路徑。對單個求交平面,利用zigzag路徑算法產生掃描路徑[11]。單個求交平面的掃描路徑如圖6所示,圖6a中只有從點P1到P2這1條掃描線,圖6b中有從點P3開始到點P4的3條掃描線,當單個求交平面上起點位置確定后,其zigzag路徑和終點位置也隨之確定。當有多個求交平面時,優先搜索各個求交平面中具有相同法矢的采樣點,然后從當前求交平面的終點位置開始搜索其他求交平面中距離最近的采樣點,依次連接采樣點,便生成最終的掃描路徑。所生成的掃描路徑如圖7所示。

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

圖7 生成的掃描路徑Fig.7 Generated scanning path
得到生成的測量路徑后,需要在三維仿真軟件中進行模擬仿真,以保證實際測量時的安全性和準確性。采用WorkSpace 5.0工業機器人三維仿真軟件,依次導入CAD模型和工業機器人,然后將生成的測量路徑導進機器人中,路徑如圖8所示,機器人分別沿著生成的路徑運動,這樣便可以實現三維路徑仿真。在仿真過程中,可以檢查機器人與模型有無碰撞,如果有碰撞,需要調整掃描路徑,直到得到無碰撞路徑為止。
采用開源的OpenCASCADE三維幾何平臺,搭建了針對復雜曲面模型的自動檢測系統,可以實現復雜三維模型的輸入顯示,大幅提高開發速度;對掃描路徑進行了模擬仿真,驗證了路徑的正確性。基于CAD模型的復雜曲面的自動檢測是一項極具前景的研究內容,目前的研究工作尚處于起步階段,所做的工作對工業上復雜曲面工件的檢測具有一定的參考價值。
[1]Object libraries application framework user’s guide[EB/OL].http://www.opencascade.org/occ/faq,2017-3-20.
[2]陳宏宇,劉子健,艾彥迪.基于OpenCASCADE的“一元四體”模型實現技術研究[J].計算機工程與科學,2012,34(3):96-102.
[3]鄭盈盈,周來水,孫金虎.基于OpenCASCADE的DXF接口研究[J].機械設計與制造工程,2010,39(1):45-48.
[4]趙韓,劉達新,董玉德,等.基于CAD的坐標測量機檢測規劃系統的開發[J].儀器儀表學報,2009,30(9):1846-1853.
[5]李宏.三維模型數據格式轉化的技巧[J].金華職業技術學院學報,2008,8(6):15-17.
[6]李維詩,李江雄.平面多邊形方向以及內外點判斷的新方法[J].計算機輔助設計與圖形學報,2000,12(6):405-407.
[7]孫家廣,楊長貴.計算機圖形學[M].北京:清華大學出版社,1996:276-324.
[8]肖海軍.三維線掃描測量機器人的路徑規劃[D].合肥:合肥工業大學,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.