賴增亮,劉冠峰
(廣東工業大學,廣東 廣州510006)
部分鑄造工件由于鑄造工藝的問題,個體存在形狀偏差,使得機器人去毛刺時出現打磨過度或者未接觸的情況;另一方面,傳統離線編程去毛刺也無法根據個別較大毛刺做軌跡修改,導致出現毛刺去除不全的情況。使用機器視覺提取工件輪廓,可以根據每個工件的實際情況自動調整離線編程中的實際軌跡,從而滿足需求。
文獻[1-4]中對工件去毛刺質量做了相應研究,總結前人經驗給出了具有較高預測精度的預測模型。國內外的離線編程軟件中,常見的有加拿大的RobotMaster,ABB的RobotStudio,中國華航唯實RobotArt[5]。但主流的離線編程軟件一般沒有視覺模塊,當需要視覺輔助時,需要自己開發。文獻[6]中使用3D相機及Iterative Closest Point(ICP)算法,對存在尺寸偏差的工件進行重定位,處理工件形狀偏差問題。關于自動化去毛刺問題前人做了研究,有效的從自動化與誤差因素上面解決上述問題,但都存一些缺陷:未將毛刺大小與加工質量綜合考慮。為此,將毛刺大小及加工質量綜合考慮值得進一步研究。
對于一些工件的去毛刺工藝,只需要使用普通工業相機即可完成任務,本文將使用一款CCD二維相機獲取工件的邊緣輪廓,計算得到加工路徑和毛刺位置與大小,從而實現對每個實際工件的輪廓進行機器人軌跡調整。整個系統包含視覺輔助系統和自主開發的離線編程RobSim兩部分,機器人使用日本NACHI機器人。
視覺系統中使用IMAGINGSOURCE品牌的CCD相機,來提取實時工件的圖像信息。為了將視覺系統和OLP系統結合起來,CCD相機通過USB接口連接到一臺標準的Window系統計算機上。計算機接收傳感器采集到的圖像,然后OpenCV利用其功能對零件進行邊緣識別和毛刺大小計算,最終發送到RobSim離線系統中。
工件的加工部分圖像,如圖1所示。利用OpenCV的Canny算子與HoughLinesP算子獲取工件邊緣的位置并計算邊緣上毛刺的高度。

圖1 帶毛刺的爐灶架工件Fig.1 Raw Image of Workpiece
Canny邊緣檢測是一種非常流行和有效的邊緣特征檢測算子,在許多計算機視覺算法中用作預處理步驟。經過閾值處理后,使用Canny算子檢測得到邊緣,如圖2(a)所示。在此邊緣中,可清楚看見毛刺的投影。

圖2 Canny與HoughLinesP算子的處理Fig.2 Process of Canny and HoughLinesP
在此具體去毛刺過程中,使用了簡單好用的霍夫(Hough)變換來識別圖像中的直線。因此根據概率霍夫變換算法,利用OpenCV中的現有HoughLinesP算子進行直線檢測。最終在過濾同一邊緣上的重復線條后,將這些直線首尾相接。HoughLinesP的處理結果,如圖2(b)所示。
經過相機標定,物體在世界坐標系下的表示為:

式中:—物體和相機坐標系間的轉換;—指相機和世界坐標系之間的轉換。
為了計算CCD相機相對于世界坐標系的精確位置,已經利用此單元中的六自由度機器人對進行了標定。根據相機標定和圖像處理,可以計算出線條和毛刺信息:每條線條的起點和終點位置;毛刺的長度、高度和位置。OLP將用上述信息生成沿邊緣的軌跡,并去除所有毛刺。
RobSim離線編程系統是去毛刺系統的主要部分,它是對SolidWorks三維設計軟件的二次開發,RobSim離線編程的界面如圖3所示。通過在SolidWorks中構建零件加工的工作站模型,仿真機器人加工運動,導出機器人程序,使實際機器人完成符合要求的動作。通過UDP套接字通信,集成RobSim系統和視覺系統。RobSim向視覺系統發送采集請求,接收與邊緣和毛刺相關的數據,然后保持監聽狀態。完成識別和計算后,視覺系統將發回允許指令,允許RobSim完成任務剩余部分。

圖3 RobSim離線編程界面Fig.3 The Interface of RobSim
同時,結合去毛刺的實際工藝,離線編程的去毛刺模塊需要考慮去毛刺的工藝參數:主軸轉速,進給速度,打磨深度等,根據毛刺的大小自動修改機器人運動軌跡。
經過視覺標定,可以把圖像的坐標從像素空間轉換到實際坐標空間。再經過離線編程的去毛刺模塊的一系列處理,即可生成機器人加工的程序。
由于零件的特性,加工路徑在同一平面內,且都為直線。在生成直線軌跡時,我們對直線軌跡的定義如下:設定直線的起點坐標(x0;y0;z0),直線的方向=(m;n;p)和步長ti。因此,直線上任一點在直線上的描述如下:

對于一個目標點,除了位置,還需要點的姿態。此處,以路徑平面的法線方向定義姿態的一個方向n1=(μ1;ν1;ω1)。以直線自起點至終點的方向定義姿態的另一個方向。于是,第i個目標點pi的位姿可以用下面的齊次矩陣表示:

根據機器人運動學理論[7],目標點的位姿經過機器人逆運動學轉換成機器人各關節位姿,并賦予軌跡上各目標點初始速度。由于毛刺高度各異,應根據去毛刺工藝調整機器人的加工速度。文獻[8]中涉及Tipnis提出的去毛刺質量,即打磨面粗糙度Ra的數學模型:

式中:K,k1,k2,k3—鑄鐵材料對應的常數;V—主軸轉速(mm/s);f—進給速度(mm/s);a—切削深度(mm)。
根據第二節所述的邊緣檢測可以計算毛刺的高度。此外,通過檢測多個工件圖像得出毛刺的平均高度和標準偏差,并根據毛刺高度和平均值間的比較,毛刺高度可劃分為若干個等級范圍。參考相關的去毛刺過程,根據不同的毛刺高度分配機器人的加工速度。因此,可以通過在RobSim系統中應用去毛刺程序包完成去毛刺任務。
在RobSim中,我們可以利用視覺系統,根據記錄的目標點生成機器人的可執行代碼,機器人的離散運動以點對點的方式表示。其他運動參數通過定義指令的自變量來指定。具體而言,包括位置數據(與結束位置相對應的機器人目標)、速度數據(期望速度)、工具數據(如TCP位置)和工作對象數據(如當前坐標系)。創建路徑階段后,所有的SolidWorks對象和指令均轉化成NACHI編程語言,并自動生成代碼。部分運動指令,如圖4所示。

圖4 機器人軌跡代碼Fig.4 Robotic Code of Trajectory
圖中,MOVEX表示機器人運動插補方式,括號內為機器人關節轉動角,s即為軌跡需要調整的速度參數。在視覺檢測到的毛刺較大位置,需要降低速度。
我們開展了若干項實驗,以驗證去毛刺系統。實驗使用的裝置為NACHI MC20-01型號的工業機器人和IMAGESOURCE品牌的CCD相機。在本文中,我們預先并不知曉工件輪廓相關信息,所有數據均采集自圖像,并且依賴于相機校準的精確度。
比較邊緣檢測和邊緣檢測得到的直線,可以發現線條與邊緣檢測所得輪廓高度吻合,如圖5所示。然后,由于基線已經確定,我們能夠得出毛刺的位置、寬度和高度。

圖5 工件邊緣與提取直線的對比Fig.5 Comparison of Edges and Lines
標準邊緣和目標輪廓間的距離以像素為單位計算。像素單位表示每個毛刺的大小。為了規劃機器人的速度,我們獲取了五份工件視覺樣本及其相應的平均值和標準偏差,如圖6(a)所示。為了提高去毛刺效率,我們定義了四個高度等級,每個標準偏差都被劃分到一個與最佳去毛刺速度相對應的等級。機器人的加工速度可根據計算得出的平均值和標準偏差隨后分配。毛刺高度越高,去毛刺時,機器人的速度就越慢,如圖6(b)所示。實驗結果表明,通過識別的毛刺尺寸進行去毛刺速度調節,可以有效地去除所有毛刺。

圖6 毛刺高度分析及速度分配Fig.6 Analysation of Burrs Height and Speed Assignment
調節每個目標點的方向和速度后,機器人運動的軌跡就已確定。首先,在RobSim系統中模擬機器人的運動。一旦完成模擬,就將此類路徑數據轉化為可執行的代碼,導入到機器人中,由其付諸實施。未做速度修改處理的去毛刺結果,如圖7所示。縱軸表示殘余毛刺高度,橫軸表示工件邊緣路徑。明顯看出,部分邊緣位置依然存在較大毛刺。本次離線編程進行軌跡調整實驗的去毛刺效果,如圖8所示。

圖7 未做軌跡調整的毛刺殘余Fig.7 Residual Burr without Trajectory Adjusted

圖8 軌跡調整后的毛刺殘余Fig.8 Residual Burr by Trajectory Adjusted
經過打磨前與打磨后的工件對毛刺高度的分析,在毛刺較厚的位置,未經過軌跡調整的打磨,工件依舊存在部分毛刺,且毛刺高度較大;毛刺已去除寬度與工件邊緣路徑的占比,即毛刺去除率約為90%,打磨效果較難滿足生產要求;經過本次實驗的離線編程軌跡調整之后,毛刺高度基本未超過0.1mm,毛刺基本去除,毛刺去除率接近99%,邊緣光滑,基本滿足生產要求。
(1)結合視覺輔助,可以自動識別工件的邊緣信息和毛刺信息,從而利用離線編程自動生成路徑并調整,不再需要手動示教等繁瑣操作并排除了因鑄造引起的形狀偏差帶來的影響。
(2)利用去毛刺的數學模型,根據毛刺高度調整機器人末端的進給速度,可以去除干凈較大毛刺,從而提高去毛刺去除率,去除率提高將近9%。
實驗證明,視覺輔助的離線編程去毛刺系統是一種有效的去毛刺方法。