李志敏,林雅潔,張 砦,王友仁,曾慶喜
(南京航空航天大學 自動化學院,江蘇 南京 211106)
隨著智能技術的快速發展,地面移動機器人被廣泛應用于倉儲物流、智能巡檢、家居服務等各個行業中[1-3]。視覺相機因體積小、成本低、感知信息豐富等優點,被廣泛應用于機器人的目標識別、導航定位和路徑規劃任務[4-6]。由于相機的內外參數和安裝誤差會帶來較大的測量誤差,因此在使用前對相機進行參數標定是工程應用的必要環節和關鍵步驟[7]。
為了滿足高校創新創業教育改革[8]和儀器科學與技術專業研究生實驗教學需求,本文設計了基于地面移動機器人的單目相機綜合標定實驗。結合相機針孔模型和地面無人車運動特性構建單目相機標定數學模型,基于EAI 移動機器人硬件平臺和機器人操作系統(robot operating system,ROS)軟件平臺同步采集圖像和機器人位姿信息,最后利用MATLAB 軟件的相機標定工具箱和數值運算功能實現標定參數的求解。通過該項綜合實驗幫助學生建立對攝像原理和三維坐標轉換概念的基本認識,了解串口通信和ROS 系統的使用方法,鍛煉實踐操作能力和自主創新能力。
視覺相機是目前應用最廣泛的感知器件之一。針對裝載于地面移動機器人的單目相機而言,需要標定的參數包括相機的內部參數和安裝誤差,所涉及的坐標系和相關參數定義見表1。
基于上述定義分別建立相機內部參數和安裝誤差數學模型。
常用的單目相機,通常簡化為針孔相機模型[9]。建立相機模型即建立世界坐標系中點到圖像平面的映射關系。其映射原理如圖1 所示。

圖1 針孔相機模型
設點P在相機坐標系中的坐標為Pc=[X Y Z]T,根據圖中的相似三角形原理,P點在圖像坐標系中的投影坐標為

其中,f為鏡頭焦距。由于像素平面通常是矩形而非正方形,且像素坐標的原點在成像平面的左上角,因此像素坐標可以表示為

其中,dx、dy表示像素與圖像之間的變換尺度,cx、cy為像素坐標原點相對于圖像坐標原點的平移。合并化簡式(1)和(2),并表示為齊次坐標形式,則相機的針孔模型可以建立為:

其中,矩陣K為相機內參矩陣,待標定參數包括f x,f y,c x,cy。
由于相機在世界坐標系中是運動的,因此對于世界坐標系中的點Pw需要經過坐標轉換為Pc。假設相機在世界坐標系中的位姿矩陣為,其中表示相機姿態,表示相機光心相對于世界坐標系中心的平移。那么,將Pw轉換為Pc的齊次坐標公式為:

綜上,單目相機的投影模型可以表示為:

由于相機的內部參數隨著相機出廠而固定,但是相機的外部參數隨著相機運動而變化,因此標定時僅需考慮相機內參。
實際應用時相機需要固定在載體上,與載體平臺之間存在一定的安裝誤差角,安裝誤差會放大測量誤差,從而嚴重影響相機對環境的感知精度。由于相機與載體固連,構成了典型的手眼標定問題[10]。相機的安裝參數表示為相機與機器人平臺之間的變換矩陣。根據矩陣轉換關系,可以分別在i和j時刻寫出:



由于地面移動機器人的平面運動特性,機器人的姿態變化可以簡化為繞載體z軸的旋轉,即:

代入式(9)化簡為:


則式(12)可以表示為:


式中,rmn表示的第m行第n列元素。

則α2、α3可以求解為以下形式:

對于式(10),可以表示為:


對于α1、tx、ty,僅需要獲得地面移動機器人在2 個不同位置的位姿信息即可求得單目相機安裝誤差矩陣中除tz以外所有未知量的解析解。
通過上述模型的構建,能夠讓學生掌握單目相機的成像原理,建立三維空間坐標轉換的基本認識,為傳感器的數據處理和機器人的控制操作奠定理論基礎。
EAI-D1 智能移動機器人平臺采用差分輪式驅動,穩定可靠,地面適應能力強。機器人移動底盤內置了慣性測量單元(IMU)、碼盤、超聲波等感知器件。平臺的輸入輸出接口板上擁有多個USB 和網線接口,可靈活加裝其他傳感器,可擴展性強。因此,該平臺適用于面向機器人感知與控制的各類教學實驗。在本實驗中學生需要將單目相機采用USB 接口連接加裝于EAI-D1 底座上,其硬件連接架構如圖2 所示。

圖2 相機標定實驗硬件系統連接
其中,上位機是基于機器人操作系統構建,與機器人平臺通過無線Wi-Fi 模塊遠程通信。機器人操作系統是連接計算機操作系統和機器人應用程序的中間橋梁,它將機器人原本松散的零部件耦合在一起,提供了一個統一的通信架構。另外,通過上位機與機器人平臺的Wi-Fi 模塊配對,可實現遠程實時數據傳輸。相比傳統的數據線連接方式,無線傳輸方式不受線長約束,更加方便靈活。同時,數據可以通過局域網傳輸至計算機終端,方便課程教學與實驗數據分享。
移動機器人平臺內部采用了64 位的ARM V8 處理器,構建了導航模塊和控制模塊。導航模塊能夠實時獲取機載傳感器數據,解算機器人位姿信息,并通過串口實時輸出。控制模塊能夠根據目標位姿和當前位姿信息,計算控制信號,輸出給電機模塊,從而實現機器人平臺的位姿控制。
本實驗為了獲取單目相機的模型參數和安裝誤差,在上位機上構建了基于Ubuntu 16.04 和ROS Kinetic的實驗環境,利用ROS 的分布式管理架構同時進行機器人控制、導航數據和單目相機的圖像采集。通過實驗數據的采集,學生將掌握串口通信原理和ROS 的基本操作,進一步加強對軟、硬件系統構架認識,鍛煉實踐創新能力。
基于上述構建的移動機器人實驗平臺,學生可在實驗室環境下采集機器人的位姿數據和標準棋盤格圖像。實驗環境如圖3 所示。實驗所采集的部分棋盤格圖像如圖4 所示。

圖3 相機標定實驗環境

圖4 實驗采集的圖像數據
對所采集的圖像采用張正友標定方法[11],利用MATLAB 軟件內置的相機標定工具箱求解單目相機的內外參數[12]。棋盤格圖像角點提取的效果如圖5 所示。

圖5 棋盤格圖像的角點提取與誤差統計
由圖5 可知,對實驗中采集的16 幅圖像進行角點提取,總體平均誤差為0.14 個像素。相機在對應時刻所處的位姿如圖6 所示。

圖6 相機位姿示意圖
由MATLAB 相機標定工具箱自動解算獲得相機的內參矩陣。相機的外參矩陣即相機位姿將進一步用于其安裝誤差矩陣的解算。將相機位姿和機器人位姿信息代入式(16),根據式(17)和(19),采用最小二乘法估算求得相機的安裝誤差矩陣,相機安裝偏移tx=-0.026 2 mm,ty=0 .197 6 mm。根據圖3 可知,上述結果符合實際相機與機器人平臺的坐標轉換關系。由此說明,學生能夠通過本實驗,在實驗室環境下快速有效地標定出單目相機的內參矩陣和安裝誤差。
本文設計了基于地面移動機器人的相機標定綜合實驗。首先基于小孔成像和三維坐標變換原理構建了單目相機的內外參數和安裝誤差數學模型;通過靈活可擴展的地面移動機器人平臺,搭載單目相機采集了棋盤格標定板的圖像信息和機器人位姿信息;最終利用MATLAB 的相機標定工具箱和數值計算功能解算了相機的內參矩陣和安裝誤差。實驗結果表明,該方法能夠快速有效地標定相機參數,具有良好的可操作性和實際應用價值。基于地面移動機器人的相機標定實驗作為儀器學科的綜合設計實驗,充分結合了理論知識和實際操作,有利于學生鞏固專業知識,拓展創新思維,培養實踐能力。