馬晶磊 姜永磊
江蘇省特種設(shè)備安全監(jiān)督檢驗研究院 南京 210036
起重機承擔(dān)著搬運、抓取物料的作用,現(xiàn)有的大多數(shù)起重機為人工操作,對位的精準(zhǔn)度操作難度在于控制如何準(zhǔn)確地對準(zhǔn)目標(biāo)吊具及吊載物品。具體而言,在于準(zhǔn)確判斷相關(guān)物體之間的相對位置關(guān)系,以及判斷起重機吊具和負(fù)載的運動狀態(tài),并在適當(dāng)?shù)臅r機采取正確的操作。針對此問題,國內(nèi)外的起重機制造企業(yè)一直致力于起重機自動化運行技術(shù)的研發(fā)工作。傳統(tǒng)起重機的自動定位技術(shù)主要依賴于傳感部件,例如常見的限位開關(guān)和編碼器,國外某公司則偏向于使用激光、紅外線來實現(xiàn)定位功能,以檢測起重機是否到達目標(biāo)位置。此外,通過PLC 系統(tǒng)和模糊PID 算法控制變頻電動機的運轉(zhuǎn),以實現(xiàn)精準(zhǔn)的起重操作[1,2]。采用該方法獲取控制數(shù)據(jù)信號存在以下缺點:一是起重機運行環(huán)境大多比較惡劣,傳感器的安全性和使用壽命往往得不到保障;二是該方法無法獲取使用現(xiàn)場的運行數(shù)據(jù),無法實現(xiàn)起重機遠程監(jiān)控以及對運行誤差做進一步的修正。
近年來,隨著智能機器視覺識別技術(shù)的迅速發(fā)展,其在起重機領(lǐng)域發(fā)揮著推動作用。非接觸式的視頻識別,無論起重機的工作環(huán)境如何變化,機器視覺系統(tǒng)都能夠完美適應(yīng)并實時提供數(shù)據(jù)監(jiān)控。尤其是在一些特殊使用環(huán)境的起重機,其運行過程中的定位準(zhǔn)確性與穩(wěn)定性是起重機工作運行的重要考慮因素。
本方案意在通過機器視覺系統(tǒng)測量獲取工作場景,對工作場景進行數(shù)據(jù)建立,系統(tǒng)框架圖如圖1 所示。通過圖像傳感器(Charge Coupled Device,CCD)雙目工業(yè)相機系統(tǒng)利用視野內(nèi)的場景圖像信息作為輸入,然后采用高性能處理技術(shù)進行分析和處理。工控機(Industrial Personal Computer,IPC)處理圖像單元,工業(yè)相機的參數(shù)主要包括匹配算法選擇和匹配閾值設(shè)置,利用GigE 接口獲取CCD 相機所拍攝的物料圖像數(shù)據(jù)。采用優(yōu)化算法進行起重機路徑的自動規(guī)劃。使用Modbus 通訊協(xié)議將數(shù)據(jù)信息傳輸?shù)竭\動控制器,運動控制器根據(jù)接收到的數(shù)據(jù)決定是否啟動吊運功能,計算物料與吊具之間的距離,之后利用這些計算結(jié)果控制運動機構(gòu)。同時,物料與吊具的實時相對坐標(biāo)作為反饋量,實現(xiàn)閉環(huán)控制[3]。
圖1 系統(tǒng)框架圖
本文以一臺加裝了機器視覺的自動化起重機為研究對象。選用InnoVision 品牌的IN-L1005 型相機,特點在于500 萬像素級CCD 攝像頭,高動態(tài)范圍(High Dynamic Range,HDR) 模式可捕獲高對比度場景,并提供軟件開發(fā)工具包(Software Development Kit,SDK),支持C++和C#語言編寫;起重機的大小車驅(qū)動機構(gòu)分別采用Yakawa 公司的∑系列電動機,起重用多功能CH700 變頻器,能在電源頻率的1.5 個周期(0.025 s)以內(nèi)進行啟動、暫停和反轉(zhuǎn)。網(wǎng)絡(luò)攝像機(IP Camera,IPC)是為滿足高速、高功能需求而設(shè)計的,其可以分析從采集回來的數(shù)據(jù)圖像中得到的大量像素,故選擇Intel7 處理器、4 T 硬盤、獨立顯卡等配置。
為了準(zhǔn)確恢復(fù)真實空間的參數(shù)信息,需要選擇與平面參數(shù)和成像坐標(biāo)系相匹配的圖形算法函數(shù),以便在基于圖像獲取和數(shù)字信號之間轉(zhuǎn)化的原理下獲得高精度的目標(biāo)位姿參數(shù)[4]。
如圖2 和圖3 所示,在相機模型中,小孔成像模型和雙目相機模型的組成起著重要作用。若假設(shè)空間中有一個點P(XC,YC,ZC),則該點在左右相機的投影平面上的Pl和Pr是2 個投影,通過分析由2 條射線OlPl和OrPr形成的交點確定P點的位置并獲取深度信息。在使用雙目相機時,相機通常不會完全保持正對目標(biāo),而是存在一定程度的旋轉(zhuǎn)和平移關(guān)系,故使用平移向量T和旋轉(zhuǎn)矩陣R可以相互聯(lián)系修正相機的偏差[5]。
圖3 雙目相機模型
由于人為誤差,芯片中心點通常偏離光軸,同時成像設(shè)備的像素形狀也由正方形變成矩形,需要引入新的參數(shù)Cx和Cv,以基于小孔成像原理實現(xiàn)更精確的成像,對屏幕投影坐標(biāo)中心點發(fā)生的預(yù)估偏移進行建模。假設(shè)P點的坐標(biāo)為(X,Y,Z),利用式(1)將該點的圖像投射到設(shè)備指定像素的位置(xs,ys)。
透過透鏡將光線彎曲,當(dāng)光線匯聚到投影點上時,由于透鏡形狀和加工工藝等因素的影響,會產(chǎn)生徑向畸變,導(dǎo)致離透鏡中心越遠的光線曲率越大,靠近透鏡邊緣的光線畸變越嚴(yán)重。雖然畸變較小,但可以使用泰勒級數(shù)展開前幾項描述r=0 周圍的畸變,并根據(jù)式(2)來調(diào)整成像設(shè)備上某點的徑向位置。切向畸變由透鏡和可讀寫的RAM 芯片(Complementary Metal Oxide Semiconductor,CMOS )(或CCD)的安裝誤差引起,可使用2 個額外參數(shù)進行調(diào)整。
假設(shè)xOy為圖像物理坐標(biāo)系,坐標(biāo)原點O,在像素圖像坐標(biāo)系x1O1y1中的坐標(biāo)為(cx,cy),得出dx、dy分別為像素在坐標(biāo)軸上所定義的物理尺寸(mm/px),故圖像中任意一個像素點轉(zhuǎn)換關(guān)系在坐標(biāo)系中體現(xiàn)為
齊次坐標(biāo)形式為
假設(shè)在空間中存在一個點P,其在Oc-XcYcZc雙目相機坐標(biāo)系中的坐標(biāo)點是(Xc,Yc,Zc),而其在圖像上的物理坐標(biāo)是(x,y)。通過小孔成像模型,可以推算出這個結(jié)果,即
齊次坐標(biāo)形式為
將式(7)帶入式(5)中,其中K為相機內(nèi)參數(shù)矩陣,有效焦距fx和fy分別為相機焦距f除以像素大小dx和dy,分別為水平方向和垂直方向上的比值。
如圖4 所示,由于物料存儲在一個頂端未密封的核廢料平臺,上方?jīng)]有障礙物的存在,故需對大小車運動速度進行合理給定。本文以物料在倉庫大門處的位置的坐標(biāo)為基準(zhǔn)點對大小車及吊具的運行距離進行計算[6]。
圖4 核廢料平臺
根據(jù)實際情況,整個核廢料區(qū)劃分成若干個正方形存儲小區(qū),分別用1 號、2 號、…、N號表示。選取其中一塊區(qū)域進行分析,每小格區(qū)域最多可存放5 行5 列3 層共75 個物料,將該區(qū)劃分為25 個小正方形,每個小正方形代表核廢料的一個固定存儲位置。為了便于存儲以及管理操作,分別對每個存儲位置進行編號,按照從下往上、從外向內(nèi)、從左往右的順序,如圖5 所示。
圖5 核廢料存儲示意圖
選取任意一個存儲位置N,則其對應(yīng)所處的列數(shù)、行數(shù)、層數(shù)分別用x、y、z表示,轉(zhuǎn)化關(guān)系如下:
若mod(N,25)=0,則有
若mod(N,25)≠0 且mod[mod(N,25),5]=0,則有
若mod(N,16)≠0 且mod[mod(N,16),4]≠0,則有
在平臺內(nèi)行車自動運行控制算法的設(shè)計中,需要使用取整操作Int 和取余操作Mod。對于1 號區(qū)域而言,已知核廢料料桶目標(biāo)存儲位置序號為j且合法,其實際坐標(biāo)為(m1,n1,l1)。根據(jù)給定的公式,可以計算出其對應(yīng)的實際坐標(biāo)(mj,nj,lj)為
式中:a為劃分的核廢料桶存儲區(qū)域的小正方形邊長,b為桶的高度,xj、yj、zj分別為由給定式(8)~式(10)推導(dǎo)出的j號位置核廢料桶所在的列數(shù)、行數(shù)以及層數(shù)。
另外,還需要知道在平臺入口位置處固料桶的坐標(biāo)為(m0,n0,l0),以便計算行車的小車在倉庫中的運行距離Δm,大車運行距離Δn以及吊鉤運行距離Δl,即
根據(jù)大車運行距離Δn以及小車運行距離Δm的數(shù)值,為提高效率,大小車同時向選定目標(biāo)運動,將核廢料桶運送至指定位置上方,然后下降吊鉤Δl將其擺放到目標(biāo)位置處。其他2 區(qū)域~25 區(qū)域的擺放工作原理與1 區(qū)域一致,只需標(biāo)定1 號存儲位置的實際坐標(biāo)即可實現(xiàn)對整塊平臺其他區(qū)域的定位。
4.2.1 圖像采集總體方案
圖像識別與測距是機器視覺起重機系統(tǒng)研究數(shù)據(jù)處理模塊的重要組成部分,該功能基于OpenCV 視覺處理算法實現(xiàn),主要功能為:1)提取特征,圖像處理;2)識別目標(biāo)點;3)加載推理相機中心與目標(biāo)區(qū)域的直線距離,模塊的工作流程如圖6 所示。
圖6 雙目相機工作流程圖
其中第1 個判斷框表示在相機視野中是否出現(xiàn)目標(biāo)點,以此來判斷后續(xù)動作,系統(tǒng)會提示起重機大小車電動機繼續(xù)運行,直至移動到目標(biāo)點進入雙目相機視野中。第2 個判斷框表示系統(tǒng)會通過調(diào)整位置跟蹤目標(biāo)點,使核廢料桶位于相機的視野中心,以達到提高測距精度的目的。
4.2.2 相機標(biāo)定
一般情況下,相機標(biāo)定需要使用一個標(biāo)定參照物,本文選用棋盤紙(見圖7),將其放置在相機視野范圍內(nèi)并進行圖像特征提取。本文使用Matlab 中的Calib _Toolbox 對相機進行標(biāo)定,該方法是通過在雙目相機獲取的圖像,利用局部檢測窗口提取特定區(qū)域的亮度、色彩、紋理或輪廓等特征點。具體而言,通過觀察窗口在各個方向微小移動時的平均能量變化,并在能量變化值超過設(shè)定閾值時將窗口中心像素點提取為角點[7]。角點即為黑、白方格之間的交接點,圖7 有9×12 個角點。具體步驟為:
1)使用預(yù)先設(shè)置好的OpenCV 圖像采集程序,獲取大約20 張棋盤格標(biāo)定板的圖像,這些圖像具有不同的角度和距離。將這些圖像按左右圖像進行命名,并將其拷貝到MatlabCalib_Toolbox 文件夾之中。
2)在Matlab 中設(shè)置工作目錄為Calib_Toolbox 所在的目錄,并通過點擊設(shè)置路徑,添加包含文件,并選中Calib_Toolbox,來完成路徑設(shè)置。
3)對左右相機進行標(biāo)定:打開Calib.m 文件并執(zhí)行,會彈出對話框。選擇相應(yīng)版本后,在對話框中選擇要標(biāo)定的圖像文件名稱和左右相機的圖像文件名稱,并選擇圖像格式。程序?qū)⒆詣舆x擇符合命名前綴和圖像格式的圖像。選擇手動提取角點,并處理所有圖像,設(shè)置窗口大小,按照從左到右、從上到下的順序依次點擊棋盤格子圖的4 個角點,并設(shè)置黑白格子的實際尺寸。完成后,處理下副圖像,直到所有圖像處理完成。在提取角點信息后進行標(biāo)定,程序?qū)⒆詣佑嬎阆鄼C的各種參數(shù)數(shù)值。
4.2.3 相機中心點與目標(biāo)點距離計算
本文采用OpenCV 中reProjectImageTo3D()函數(shù)計算出下方區(qū)域目標(biāo)點與相機中心的實際距離。10 次測距的數(shù)值如表1 所示,實際距離s為380 mm。
由于雙目相機的焦距會隨著目標(biāo)物距離的變化而變化,故通過測量多組數(shù)據(jù)擬合出相機的焦距,即有
式中:B為已知2 個相機之間的基線距離,B=160 mm;x2-x1為2 幀圖像的像差;H為匹配點的實際景深。
通過將焦距的擬合公式代入方程組,可以結(jié)合像差測量出目標(biāo)物距離。擬合公式為fx=g(s),s為實際距離,如表2 所示。
表2 實際距離與焦距的對應(yīng)關(guān)系 mm
在進行整體功能測試前,需要先檢查工控機和工業(yè)相機與系統(tǒng)的通信接口表之間的連接是否正常。通信接口表的檢查主要是用于確認(rèn)工控機和系統(tǒng)之間的通信是否正常,信息點位是否正確。同時,檢查工業(yè)相機的主要目的是驗證IP 配置是否正確,以及與系統(tǒng)的通信是否正常。
由于工控機的計算資源有限,為了達到最佳效果,對圖像分辨率按比例調(diào)整為1 200×800,并提取模板圖像。
首先在平面內(nèi)任意選定一個位置的核廢料桶,記錄其坐標(biāo)。接著啟動起重機,保證初始位置能在工業(yè)相機鏡頭中出現(xiàn)完整核廢料桶圖像。并通過移動大小車來改變采集位置,以便觀察實際情況。試驗采集到多個不同位置的圖像,對每個位置的核廢料桶進行多次試驗運行以驗證其準(zhǔn)確性。經(jīng)過近1 個星期的對比試驗,選取了部分實驗數(shù)據(jù)列于表3 中。
表3 部分測試數(shù)據(jù)
在起重機行駛過程中,運行方向和震動等因素會影響工業(yè)相機的外部參數(shù),尤其是俯仰角和方向角因素[8]。從表3 可以看出系統(tǒng)識別率達到90%以上。分析發(fā)現(xiàn),誤差的原因主要有2 方面:一方面是外部光線影響造成誤識別或識別失敗;另一個方面,當(dāng)起重機瞬間移動時,雙目相機與目標(biāo)之間的方向角度會發(fā)生變化,從而導(dǎo)致測量值與實際值產(chǎn)生誤差。
本文對利用物聯(lián)網(wǎng)、AI 和機器視覺技術(shù)應(yīng)用于起重機領(lǐng)域進行了分析研究,該系統(tǒng)利用雙目相機作為輔助,充分發(fā)揮可靠性強、價格低廉、通信信號穩(wěn)定的特點,具有較大推廣價值和應(yīng)用前景,為實現(xiàn)2025 工業(yè)自動化提供有力的技術(shù)支持,為加快起重機無人化作業(yè)進程邁向堅定的一步[9]。