李志敏,林雅潔,張 砦,王友仁,曾慶喜
(南京航空航天大學 自動化學院,江蘇 南京 211106)
隨著智能技術(shù)的快速發(fā)展,地面移動機器人被廣泛應用于倉儲物流、智能巡檢、家居服務等各個行業(yè)中[1-3]。視覺相機因體積小、成本低、感知信息豐富等優(yōu)點,被廣泛應用于機器人的目標識別、導航定位和路徑規(guī)劃任務[4-6]。由于相機的內(nèi)外參數(shù)和安裝誤差會帶來較大的測量誤差,因此在使用前對相機進行參數(shù)標定是工程應用的必要環(huán)節(jié)和關(guān)鍵步驟[7]。
為了滿足高校創(chuàng)新創(chuàng)業(yè)教育改革[8]和儀器科學與技術(shù)專業(yè)研究生實驗教學需求,本文設(shè)計了基于地面移動機器人的單目相機綜合標定實驗。結(jié)合相機針孔模型和地面無人車運動特性構(gòu)建單目相機標定數(shù)學模型,基于EAI 移動機器人硬件平臺和機器人操作系統(tǒng)(robot operating system,ROS)軟件平臺同步采集圖像和機器人位姿信息,最后利用MATLAB 軟件的相機標定工具箱和數(shù)值運算功能實現(xiàn)標定參數(shù)的求解。通過該項綜合實驗幫助學生建立對攝像原理和三維坐標轉(zhuǎn)換概念的基本認識,了解串口通信和ROS 系統(tǒng)的使用方法,鍛煉實踐操作能力和自主創(chuàng)新能力。
視覺相機是目前應用最廣泛的感知器件之一。針對裝載于地面移動機器人的單目相機而言,需要標定的參數(shù)包括相機的內(nèi)部參數(shù)和安裝誤差,所涉及的坐標系和相關(guān)參數(shù)定義見表1。
基于上述定義分別建立相機內(nèi)部參數(shù)和安裝誤差數(shù)學模型。
常用的單目相機,通常簡化為針孔相機模型[9]。建立相機模型即建立世界坐標系中點到圖像平面的映射關(guān)系。其映射原理如圖1 所示。
圖1 針孔相機模型
設(shè)點P在相機坐標系中的坐標為Pc=[X Y Z]T,根據(jù)圖中的相似三角形原理,P點在圖像坐標系中的投影坐標為
其中,f為鏡頭焦距。由于像素平面通常是矩形而非正方形,且像素坐標的原點在成像平面的左上角,因此像素坐標可以表示為
其中,dx、dy表示像素與圖像之間的變換尺度,cx、cy為像素坐標原點相對于圖像坐標原點的平移。合并化簡式(1)和(2),并表示為齊次坐標形式,則相機的針孔模型可以建立為:
其中,矩陣K為相機內(nèi)參矩陣,待標定參數(shù)包括f x,f y,c x,cy。
由于相機在世界坐標系中是運動的,因此對于世界坐標系中的點Pw需要經(jīng)過坐標轉(zhuǎn)換為Pc。假設(shè)相機在世界坐標系中的位姿矩陣為,其中表示相機姿態(tài),表示相機光心相對于世界坐標系中心的平移。那么,將Pw轉(zhuǎn)換為Pc的齊次坐標公式為:
綜上,單目相機的投影模型可以表示為:
由于相機的內(nèi)部參數(shù)隨著相機出廠而固定,但是相機的外部參數(shù)隨著相機運動而變化,因此標定時僅需考慮相機內(nèi)參。
實際應用時相機需要固定在載體上,與載體平臺之間存在一定的安裝誤差角,安裝誤差會放大測量誤差,從而嚴重影響相機對環(huán)境的感知精度。由于相機與載體固連,構(gòu)成了典型的手眼標定問題[10]。相機的安裝參數(shù)表示為相機與機器人平臺之間的變換矩陣。根據(jù)矩陣轉(zhuǎn)換關(guān)系,可以分別在i和j時刻寫出:
由于地面移動機器人的平面運動特性,機器人的姿態(tài)變化可以簡化為繞載體z軸的旋轉(zhuǎn),即:
代入式(9)化簡為:
則式(12)可以表示為:
式中,rmn表示的第m行第n列元素。
則α2、α3可以求解為以下形式:
對于式(10),可以表示為:
對于α1、tx、ty,僅需要獲得地面移動機器人在2 個不同位置的位姿信息即可求得單目相機安裝誤差矩陣中除tz以外所有未知量的解析解。
通過上述模型的構(gòu)建,能夠讓學生掌握單目相機的成像原理,建立三維空間坐標轉(zhuǎn)換的基本認識,為傳感器的數(shù)據(jù)處理和機器人的控制操作奠定理論基礎(chǔ)。
EAI-D1 智能移動機器人平臺采用差分輪式驅(qū)動,穩(wěn)定可靠,地面適應能力強。機器人移動底盤內(nèi)置了慣性測量單元(IMU)、碼盤、超聲波等感知器件。平臺的輸入輸出接口板上擁有多個USB 和網(wǎng)線接口,可靈活加裝其他傳感器,可擴展性強。因此,該平臺適用于面向機器人感知與控制的各類教學實驗。在本實驗中學生需要將單目相機采用USB 接口連接加裝于EAI-D1 底座上,其硬件連接架構(gòu)如圖2 所示。
圖2 相機標定實驗硬件系統(tǒng)連接
其中,上位機是基于機器人操作系統(tǒng)構(gòu)建,與機器人平臺通過無線Wi-Fi 模塊遠程通信。機器人操作系統(tǒng)是連接計算機操作系統(tǒng)和機器人應用程序的中間橋梁,它將機器人原本松散的零部件耦合在一起,提供了一個統(tǒng)一的通信架構(gòu)。另外,通過上位機與機器人平臺的Wi-Fi 模塊配對,可實現(xiàn)遠程實時數(shù)據(jù)傳輸。相比傳統(tǒng)的數(shù)據(jù)線連接方式,無線傳輸方式不受線長約束,更加方便靈活。同時,數(shù)據(jù)可以通過局域網(wǎng)傳輸至計算機終端,方便課程教學與實驗數(shù)據(jù)分享。
移動機器人平臺內(nèi)部采用了64 位的ARM V8 處理器,構(gòu)建了導航模塊和控制模塊。導航模塊能夠?qū)崟r獲取機載傳感器數(shù)據(jù),解算機器人位姿信息,并通過串口實時輸出。控制模塊能夠根據(jù)目標位姿和當前位姿信息,計算控制信號,輸出給電機模塊,從而實現(xiàn)機器人平臺的位姿控制。
本實驗為了獲取單目相機的模型參數(shù)和安裝誤差,在上位機上構(gòu)建了基于Ubuntu 16.04 和ROS Kinetic的實驗環(huán)境,利用ROS 的分布式管理架構(gòu)同時進行機器人控制、導航數(shù)據(jù)和單目相機的圖像采集。通過實驗數(shù)據(jù)的采集,學生將掌握串口通信原理和ROS 的基本操作,進一步加強對軟、硬件系統(tǒng)構(gòu)架認識,鍛煉實踐創(chuàng)新能力。
基于上述構(gòu)建的移動機器人實驗平臺,學生可在實驗室環(huán)境下采集機器人的位姿數(shù)據(jù)和標準棋盤格圖像。實驗環(huán)境如圖3 所示。實驗所采集的部分棋盤格圖像如圖4 所示。
圖3 相機標定實驗環(huán)境
圖4 實驗采集的圖像數(shù)據(jù)
對所采集的圖像采用張正友標定方法[11],利用MATLAB 軟件內(nèi)置的相機標定工具箱求解單目相機的內(nèi)外參數(shù)[12]。棋盤格圖像角點提取的效果如圖5 所示。
圖5 棋盤格圖像的角點提取與誤差統(tǒng)計
由圖5 可知,對實驗中采集的16 幅圖像進行角點提取,總體平均誤差為0.14 個像素。相機在對應時刻所處的位姿如圖6 所示。
圖6 相機位姿示意圖
由MATLAB 相機標定工具箱自動解算獲得相機的內(nèi)參矩陣。相機的外參矩陣即相機位姿將進一步用于其安裝誤差矩陣的解算。將相機位姿和機器人位姿信息代入式(16),根據(jù)式(17)和(19),采用最小二乘法估算求得相機的安裝誤差矩陣,相機安裝偏移tx=-0.026 2 mm,ty=0 .197 6 mm。根據(jù)圖3 可知,上述結(jié)果符合實際相機與機器人平臺的坐標轉(zhuǎn)換關(guān)系。由此說明,學生能夠通過本實驗,在實驗室環(huán)境下快速有效地標定出單目相機的內(nèi)參矩陣和安裝誤差。
本文設(shè)計了基于地面移動機器人的相機標定綜合實驗。首先基于小孔成像和三維坐標變換原理構(gòu)建了單目相機的內(nèi)外參數(shù)和安裝誤差數(shù)學模型;通過靈活可擴展的地面移動機器人平臺,搭載單目相機采集了棋盤格標定板的圖像信息和機器人位姿信息;最終利用MATLAB 的相機標定工具箱和數(shù)值計算功能解算了相機的內(nèi)參矩陣和安裝誤差。實驗結(jié)果表明,該方法能夠快速有效地標定相機參數(shù),具有良好的可操作性和實際應用價值?;诘孛嬉苿訖C器人的相機標定實驗作為儀器學科的綜合設(shè)計實驗,充分結(jié)合了理論知識和實際操作,有利于學生鞏固專業(yè)知識,拓展創(chuàng)新思維,培養(yǎng)實踐能力。