晏祖根,肖俊,董旭涓
糖果包裝機虛擬拆裝碰撞檢測研究
晏祖根1*,肖俊1,董旭涓2
(1.哈爾濱商業大學,哈爾濱 150028;2.基巖科技(杭州)開發有限公司,杭州 311100)
為了提高虛擬裝配系統中碰撞檢測的效率,提出以AABB包圍盒粗檢測和深度圖細檢測的碰撞檢測方法。首先利用SolidWorks軟件建立BZ350糖果包裝機模型,以STL格式導入到引擎中,通過對零件先建立AABB包圍盒做粗檢測后,分別對2個零件獲取對應的深度圖,使用OpenCV對2張深度圖相疊加,根據疊加后像素值的大小來判斷零件是否發生了碰撞。實驗表明,當疊加后深度值小于100的數量占所有深度值不為0的數量的比例大于86.2736%時,即可認定兩零件發生碰撞。對比傳統檢測算法,此算法在保證了檢測速度和檢測精度的前提下,對復雜模型的檢測具有優勢,并且保證了運行的速度在40幀/s以上的流暢運行。
糖果包裝機;碰撞檢測;實驗研究
扭結式糖果包裝機是一種采用柔性包裝材料包裹糖果且在兩端開口處進行扭結處理的機器,在糖果生產中被大量使用[1]。對糖果包裝機進行拆裝工作是一個不可避免的過程,而且目前對糖果包裝機進行虛擬裝配方向研究的還比較少。為了確保糖果包裝機裝配可行性并提高裝配質量和效率[2-3],對其進行虛擬裝配研究是必要的。在裝配系統中,零件間的碰撞會導致損壞或者減少壽命,為了確保作業過程的真實性和高效性,必須做好零件之間發生碰撞后的檢測工作[4-6]。
碰撞檢測方法按空間域角度大致可分為基于圖像空間的碰撞檢測方法和基于實體空間的碰撞檢測方法,而基于圖像的算法優勢在于可通過圖形硬件(GPU)來分擔CPU的壓力[7]。廖偉東等[8]以包圍盒干涉檢查作為粗檢測,三角形面片相交檢測作為精確檢測,提出一種基于截距式方程的三角形干涉算法,實驗結果得出碰撞檢測時間為5~23 ms,使碰撞檢測效率提高。張振宇等[9]通過獲得機器人力矩偏差一階差分以及二階差分來判斷機器人發生的是有意碰撞還是無意碰撞,該方法以較小的誤差提高了碰撞檢測算法中預測力矩的準確性。陳晨等[10]利用了層次包圍盒二叉樹結構結合三角形面片相交的檢測方法,但其二叉樹遞歸剖分至單個三角形面片,當模型尺寸較大時會出現遞歸深度過大導致棧溢出的問題。陳果等[11]結合UG、3DMAX和Unity3d,開發一個虛擬培訓系統,提高用戶在鉆機生產裝配過程中的安全警惕性,極力避免安全事故的發生。
本文以BZ350糖果包裝機為研究對象,利用SolidWorks建立三維模型,開發基于糖果包裝機的虛擬現實人機交互系統,使用AABB包圍盒對模型進行粗檢測,提出一種基于深度圖的圖像碰撞檢測算法。對模型進行精確的碰撞檢測,既提高了檢測效率以及普適性,又能保證運行的速度穩定。
基于VR、多媒體等技術,虛擬拆裝實驗及支撐平臺,包括數據層、服務層、實驗層以及應用層,層與層之間相互聯系,下層為上層提供運行與服務,直到達到虛擬實驗項目的整體化、完整化的體系構建。基于虛擬實驗系統架構和功能需求分析,采用模塊化設計思想,建立基于虛擬手操作的包裝機虛擬拆裝實驗系統開發的功能模塊體系,各模塊主要功能如下:
1)用戶界面模塊。用戶與系統交互的橋梁,包括輸入設備與輸出設備。操作者通過手部控制器與軟件界面交互,完成學生信息管理、用戶注冊、實驗選擇、成績評定等功能;通過手部控制器與系統的虛擬環境對象交互;通過頭盔顯示器、電腦顯示器等輸出設備得到及時反饋。
2)數據接口模塊。系統的數據基礎,將SolidWorks等軟件建立的包裝機三維模型的零件幾何模型、零件物理特征信息等,通過一定的轉換處理,輸入到虛擬裝配環境模塊中,以生成適應系統不同需求的虛擬零件模型。
3)虛擬裝配環境模塊。系統的核心,包括虛擬現實技術和交互式裝配模擬兩部分。虛擬現實技術是系統開發的基礎,虛擬環境管理主要對裝配環境進行配置和渲染生成身臨其境的虛擬裝配環境,虛擬現實算法包括碰撞檢測算法、多細節層次模型算法等。交互式虛擬裝配包括虛擬手操作和裝配過程仿真,虛擬手操作關注虛擬手與零件的交互作用,裝配過程仿真關注零件與零件之間的交互作用。
4)數據輸出模塊。輸出產品虛擬模型、裝配路徑、裝配過程動畫等,為虛擬裝配相關應用提供數據支持。
碰撞檢測也被叫做相交測試或者是接觸測試,是用來判斷物體之間的位置關系,物體運動時總要判斷它們之間是否有相交的區域,什么時候相交,有多少相交區域[12-13]。通常的檢測方式就是通過對模型構建幾何機構找出相交物體,由于零件的不規則性,本文將選擇AABB包圍盒作為粗檢測的包圍盒。一方面是只是對其進行粗略檢測,加測出2個碰撞物體的編號;另一方面是該包圍盒簡單,可以優化系統的整體運行速度,如圖1所示。
AABB包圍盒定義為包裹待測模型且平行于空間坐標軸的最小長方體,通過計算待測模型在空間坐標軸方向上的最值點,就可確定一個AABB包圍盒,即6個點坐標表述一個軸對齊包圍盒。AABB包圍盒的相交測試快、性能好、應用廣泛,適用于直接從外部導入的模型。AABB區域如式(1)所示。

通過實時檢測零件的包圍盒是否與其他包圍盒存在交互,通過此判斷零件的交互情況。
上述的包圍盒粗略檢測階段只需判斷幾何體之間是否存在交集情況,接下來本文將通過使用深度圖來判斷幾何體之間的精確交互情況。
深度圖是3D渲染中的其中一種,在很高級效果實現中都起到了非常重要的作用,比如全局霧效、景深、特效柔和,基于屏幕空間的反射、陰影、貼花等。深度指像素到攝像機的距離,每一個像素經過渲染之后都會得到一個深度,距離攝像機越近,那么它的深度值也就越小[14-15],渲染的范圍只存在遠裁面以及近裁面之間的物體,其余區域都會被裁剪掉,原理見圖2。

圖2 深度圖原理
如圖2所示,通常說的深度是一個0~1內的值,當物體轉換到攝像機空間之后,如果頂點正好在近裁面上,那么深度值為0;如果在遠裁面上,那么深度值為1。因此在深度圖中,模型距離距離攝像機越近的像素,深度越接近0,顏色越接近黑色;模型距離攝像機越遠的像素,深度越接近1,顏色越接近白色。
深度圖之中存儲的都是非線性深度,需要將其轉化為線性深度從而完成后續的計算。首先頂點會通過模型變換以及視圖變換從本地空間轉化到世界空間,再從世界空間轉化成視圖空間,視圖空間還需要通過投影變換轉化成為裁切空間,轉換的規則如下:
投影變換矩陣如式(2)所示。


在NDC空間下值的范圍是?1~1,而深度的范圍是0~1,把結果歸一化到0到1之間,見式(4)。

通過式(4)就能使用深度圖來反算出線性深度的值,并且其線性深度的變化最為平滑,因此能夠作為準確評估距離的參數使用。
當2個零件的包圍盒出現交互情況的時候,碰撞的粗檢測通過后,開始對手上的零件進行深度圖獲取,如圖3所示。

圖3 攝像機設定
虛擬環境中用手抓取一個零件去和另外一個零件裝配碰撞時,當兩包圍盒交互時,粗檢測通過之后,會得到手上零件的模型名稱(以下稱手上零件)以及碰上的另一個零件的名稱(以下稱待測零件)。這時在虛擬環境中分別設置2個攝像機進行拍攝,分別是攝像機A以及攝像機B。
近裁面選擇的是零件的正面,目標是為了拍取手上零件的深度圖。考慮到攝像機設置過近的話無法拍出手上零件以及待測零件的整體輪廓,因此攝像機A設置的位置是距離近裁面=10 m的位置;而由于手上零件需要拍出其精確的深度變化,近裁面以及遠裁面的距離不易過大,因此遠裁面設置的位置是近裁面距離=255 mm的位置。由于像素的范圍是0~255,將距離設置為255 mm,既保證了能夠拍出零件精確深度圖的要求,又有利于做距離判斷,使得1個像素對應的是1 mm的距離。
近裁面選擇的是距離近裁面反方向=100 mm的位置,目標是為了拍取待測零件的深度圖。攝像機B設置的位置是近裁面距離=10 m的位置,遠裁面設置的位置是近裁面距離=255 mm的位置。
由圖3可知,從開始進行精確碰撞檢測獲取深度圖時,攝像機A拍出的手上零件的深度圖A是始終不會變化的,而攝像機B拍出的待測零件的深度圖B是始終變化的。
由上述分析可知,深度值的變化線性的,而且深度圖A以及深度圖B獲取結果穩定,因此以深度圖作為判斷兩零件的距離情況以及碰撞情況是可靠的。
虛擬拆裝實驗系統開發系統通過虛擬現實環境引擎與VS2019相結合,利用SolidWorks做前期的零件建模、虛擬環境渲染和動畫制作,利用Steam VR對頭盔顯示器、手部控制器等交互設備進行連接、定位及插件設置,采用Access數據庫支撐虛擬實驗系統數據信息的存取。使用SolidWorks建立BZ350糖果包裝機三維模型,如圖4所示。

圖4 BZ350糖果包裝機
雙端扭結式糖果包裝機模型,主要由理糖部件、進糖部件、供膜部件、扭結部件、工序盤以及箱體部件、傳動系統等組成,實現單層或雙層薄膜糖果雙端扭結裹包[16]。根據運行過程,扭結部件需要對糖果包裝紙進行夾取以及扭轉的工序,其零件發生干涉的情況比較多,比較具有代表性。將BZ350糖果包裝機模型以STL格式導入到引擎中使用,下面將以扭結部件為例,對其進行基于深度圖的碰撞檢測。
在虛擬裝配中,手上零件以及待測零件存在3種情況,分別是貼合情況、碰上情況以及分離情況,以端蓋以及扭結箱體為例,如圖5所示。

圖5 裝配過程3種碰撞狀態
當處于貼合的狀態時手上零件端蓋有一小凸起,因此凸起的深度圖A像素值有2個,分別是凸起位置像素值為0,以及平面像素值為6;深度為平整的一個平面,因深度圖B的像素值為94。
當碰上的時候,可以理解為待測零件距離近裁面的距離減少了,也就意味著深度圖A的像素值不變,但是深度圖B的像素值減小。
分離的情況與碰上的情況正好相反,手上零件與待測零件分離了意味著待測零件距離近裁面的距離增加了,那么也就是說明深度圖A的像素值不變,但是深度圖B的像素值增大。以上述3種碰撞狀態拍取深度圖,其側視圖如圖6所示。

圖6 碰撞狀態深度側視圖
圖6中拍取的深度圖A,即端蓋的深度圖是不變的;而深度圖B,即扭結箱體,根據其距離端蓋的距離不同,由遠及近它的顏色逐漸變深,其深度值也逐漸變小。
OpenCV提供能對讀取以及處理像素圖的API,通過使用OpenCV中的API來對深度圖A和深度圖B進行疊加處理,再對其進行統計。當手上零件以及待測零件處于貼合狀態時,得到的統計結果如表1所示。
表1 OpenCV實驗結果

Tab.1 OpenCV experimental results
當貼合時,通過OpenCV對2張深度圖進行相加疊加之后可以得出貼合時的像素值為100,但是由于像素值是有偏差的,經過OpenCV統計可知,當完全貼合的時候像素值剛好等于100的像素點數量占所有非255像素值的86.808 5%,那么只有當像素值為100的數量占比大于86.808 5%時候才能被認為是貼合。當碰上的時候,也就意味著深度圖A與深度圖B相加疊加的像素值小于100。當分離的時候,也就意味著深度圖A與深度圖B相加疊加的像素值大于100。
由于該實驗需要做的是判斷手上零件以及待測零件是否處于碰撞狀態,那么需要做的只需要用OpenCV統計出所有非255像素值中小于100的數量,要是該數量大于86.2736%即可判斷出手上零件與待測零件發生了碰撞。
使用者點擊扳機鍵選中零件,移動到需要裝配的零件對應位置上完成裝配,并且裝配過程中速度保持在40幀/s以上,如圖7所示。

圖7 裝配過程
裝配過程中,當手上零件碰撞到待測零件時或者松手時,手上零件將不再能被選中,拖動待測零件移動時手上零件將會跟隨移動,如圖8所示。

圖8 圓柱齒輪裝配完成
裝配完成時手上零件以及待測零件空間坐標位置以及旋轉值情況如圖9所示。
在對圓柱齒輪進行5次裝配后,分別記錄圓柱齒輪和二軸在完成裝配后的大地坐標位置以及旋轉值的情況如圖9a和圖9b所示。實驗結果顯示,圓柱齒輪和二軸完成裝配后,其大地坐標位置幾乎相同,可知兩零件實現了跟隨,達到了完成裝配的要求;反觀兩零件的旋轉值,由于一方面手部在裝配的過程中會有一定的抖動,另一方面受制于視角偏差,所以存在細微的差距,但是在允許范圍內。綜上,上述的旋轉值符合完成裝配的要求。

圖9 坐標位置以及旋轉值
本文以BZ350糖果包裝機為模型,對虛擬環境下模型間的碰撞檢測進行研究,實驗結果表明:
1)以深度圖作為碰撞精確判斷的主要依據,優勢在于只需要對模型建立最簡單的AABB包圍盒后,再使用深度圖做后續判斷即可。深度圖的獲取簡單,深度值的變化穩定,可靠,降低了對待模型的處理難度,提高了碰撞檢測的效率,并且在運行期間速度夠保持在40幀/s以上。
2)由于本算法是對深度圖的像素值進行判斷,因此不會因模型的復雜程度而改變其運算速度,因此對處理復雜模型有優勢
3)該虛擬裝配技術,可以以較低的成本模擬出裝配工藝。在整體布局和生產節拍方面為其他產品自動化生產方案的優化、升級改造提供了參考。
[1] 葉軍, 薛明瑞, 沈姍姍, 等. 新型糖果包裝機推糖機構設計[J]. 包裝工程, 2022, 43(1): 266-271.
YE J, XUE M R, SHEN S S, et al. Design of a New Feeding Mechanism for Candy Packaging Machine[J]. Packaging Engineering, 2022, 43(1): 266-271.
[2] 梅文娟, 鄭兆啟, 李占勇, 等. 生鮮食品包裝機的研究[J]. 包裝與食品機械, 2021, 39(1): 82-88.
MEI W J, ZHENG Z Q, LI Z Y, et al. Study on Packaging Machine for Fresh Food[J]. Packaging and Food Machinery, 2021, 39(1): 82-88.
[3] 陳亞琳. 三伺服枕式包裝機控制系統設計[J]. 包裝與食品機械, 2020, 38(1): 61-63.
CHEN Y L. Control System Design of Three Servo Pillow Food Packaging Machine[J]. Packaging and Food Machinery, 2020, 38(1): 61-63.
[4] 韓朝, 游有鵬, 王櫟, 等. 七軸機器人折彎仿真的路徑規劃[J]. 現代制造工程, 2023(6): 52-56.
HAN C, YOU Y P, WANG L, et al. Path Planning for Bending Simulation of Seven-Axis Robot[J]. Modern Manufacturing Engineering, 2023(6): 52-56.
[5] VISSER P M. Collision Detection for N-body Kepler Systems[J]. Astronomy & Astrophysics, 2023(669): 97.
[6] SINGH, SHIVANG S, MAYANK A, et al. Collision Detection and Prevention for the Visually Impaired Using Computer Vision and Machine Learning[J]. Advances in Engineering Software, 2023(179): 103424.
[7] 朱博承, 王志軍, 李占賢. 碰撞檢測及其在機器人領域中的應用研究綜述[J]. 機床與液壓, 2023, 51(16): 201-210.
ZHU B C, WANG Z J, LI Z X. A Review of Collision Detection and Its Application in Robotics[J]. Machine Tool & Hydraulics, 2023, 51(16): 201-210.
[8] 廖偉東, 李俊淵, 黃昕. 機器人仿真系統碰撞檢測技術研究[J]. 機床與液壓, 2021, 49(9): 67-70.
LIAO W D, LI J Y, HUANG X. Research on Collision Detection Technology of Robot Simulation System[J]. Machine Tool & Hydraulics, 2021, 49(9): 67-70.
[9] 張振宇, 鐘佩思, 張超, 等. 基于工業機器人動力學模型的差分力矩偏差碰撞檢測方法[J]. 制造技術與機床, 2023(3): 163-172.
ZHANG Z Y, ZHONG P S, ZHANG C, et al. Differential Torque Deviation Collision Detection Method Based on the Dynamic Model of Industrial Robot[J]. Manufacturing Technology & Machine Tool, 2023(3): 163-172.
[10] 陳晨, 張為民, 褚寧. 基于包圍盒和三角面片的碰撞檢測優化算法[J]. 制造技術與機床, 2013(6): 73-76.
CHEN C, ZHANG W M, CHU N. Optimized Collision Detection Algorithm Based on Bounding Volume Hierarchy and Triangular Facets[J]. Manufacturing Technology & Machine Tool, 2013(6): 73-76.
[11] 陳果, 劉桂芹. 基于Unity3D煤礦鉆機虛擬裝配培訓系統開發[J]. 包裝工程, 2022, 43(12): 106-112.
CHEN G, LIU G Q. Development and Application of Virtual Assembly Training System of Mine Drilling Rig Based on Unity3D[J]. Packaging Engineering, 2022, 43(12): 106-112.
[12] ZHANG X B, LIU J G. Research on Collision Detection Algorithm for Human-SRL Collaborative Motion Planning[J]. Journal of Physics: Conference Series, 2022, 2402(1): 1-11.
[13] MUBARAK S A, ALMUTAIRI K, CHIROMA H. Hybrid of Deep Recurrent Network and Long Short Term Memory for Rear-End Collision Detection in Fog Based Internet of Vehicles[J]. Expert Systems with Applications, 2023(213): 119033.
[14] LIANG B Y. Depth Map Guided Triplet Network for Deepfake Face Detection[J]. Neural Networks, 2023(159): 34-42.
[15] ROMERO-LUGO A, MAGADAN-SALAZAR A, FUENTES-PACHECO J, et al. A Comparison of Deep Neural Networks for Monocular Depth Map Estimation in Natural Environments Flying at Low Altitude[J]. Sensors (Basel), 2022, 22(24): 9830.
[16] 郎詩慧, 辛洪兵. 糖果包裝機推糖機構的運動精度分析[J]. 包裝工程, 2017, 38(5): 49-57.
LANG S H, XIN H B. Kinematic Accuracy of Candy Pusher of Candy Packaging Machine[J]. Packaging Engineering, 2017, 38(5): 49-57.
Virtual Disassembly Collision Detection of Candy Packaging Machine
YAN Zugen1*, XIAO Jun1, DONG Xujuan2
(1. Harbin University of Commerce, Harbin 150028, China; 2.Bedrock Technology (Hangzhou) Development Co., Ltd., Hangzhou 311100, China)
The work aims to propose a collision detection method combining AABB enclosing box coarse detection and depth map fine detection, in order to improve the efficiency of collision detection in the virtual assembly system. First of all, SolidWorks software was used to build a model of the BZ350 candy packaging machine and import it into the engine in STL format. An AABB enclosing box was built for the part to carry out coarse detection, and then the corresponding depth maps for the two parts were obtained respectively, and the two depth maps were superposed with OpenCV. Next, according to the superimposed pixel values, whether the parts collided or not was judged. The experiment showed that when the number of superimposed depth values less than 100 accounted for more than 86.2736% of all depth values other than 0, it could be recognized that the two parts collided. Compared with the traditional detection algorithm, this algorithm has advantages for the detection of complex models under the premise of guaranteeing the detection speed and detection accuracy and ensuring that the running speed is above 40 frames/s to run smoothly.
candy packaging machine; collision detection; experimental study
TP391.9
A
1001-3563(2024)09-0158-06
10.19554/j.cnki.1001-3563.2024.09.020
2023-09-26