王愛輝 徐騰飛 王敏 王尚靜 陳勝希 王選擇
1.湖北工業(yè)大學機械工程學院,湖北武漢 430070;2. 湖北工業(yè)大學材料與化學工程學院,湖北武漢 430070
自從20 世紀世界上第一臺機器人誕生以來,在過去的幾十年里,隨著機械、電子以及計算機技術的迅猛發(fā)展,機器人技術逐步滲入工業(yè)、航天、搜救等領域。移動機器人是機器人中一個重要分支,它脫離了傳統(tǒng)固定位置機器人的線纜約束,具有自由移動的能力,極大地提高了機器人的靈活性。但是,對于移動機器人在具有更大工作范圍的同時,也面臨更加復雜的運行環(huán)境。因此,對機器人的運動和環(huán)境感知能力提出了更高的要求。機器人操作系統(tǒng)(Robot Operate System,ROS)的出現意義重大。在產品開發(fā)與應用方面,為機器人及其相關廠商提供了一套標準化的通信框架,使其可以在一套標準化的模型中編寫和制定相應的軟件及硬件;在科研領域,ROS 提供的通信框架和機器人控制算法方便研究人員進行二次開發(fā),不必重復底層的工作,完整的可視化工具為開發(fā)提高了效率,使開發(fā)者可以專注于某一問題在ROS 平臺上進行實驗而不必擔心機器人其他方面的問題。正因為如此,隨著人工智能時代的到來,未來機器人設計必將越來越多地使用ROS 進行開發(fā),從而實現更為復雜的功能[1]。
本文以ROS 為平臺,針對特定的圖像采集系統(tǒng),對機器人的相機進行參數標定和圖像矯正,應用單應性矩陣變換得到車道俯視圖,并在HSV 顏色空間中提取黃線與白線,擬合出適合尋跡的車道線信息?;趦奢啿钏偈揭苿釉恚瑢C器人進行運動學分析的基礎上,使用PD 控制器完成對機器人運動軌跡的閉環(huán)控制。
為了保證視野的開闊,囊括路徑規(guī)劃所必需的部分車道線,采用具有500 萬像素的OV5647 相機并且使用145°魚眼鏡頭,以采集必要的車道線信息。為了保證圖像傳輸速率和計算機處理效率,將圖像分辨率設置為320×240,并且根據環(huán)境狀況相應調整相機的焦距、曝光模式、ISO、白平衡等參數,以獲得清晰、特征分明的圖像。
對相機的圖像調整之后,需要對圖像進行內參數標定。ROS 中的camera_calibration 功能包已經集成OpenCV 中的張正友平面標定法,可以對相機進行標定矯正畸變[2]。在使用棋盤格標定板進行標定時,為了得到一個好的標定結果,應該使得標定板盡量出現在攝像頭視野的各個位置里,例如,移動標定板使其出現在相機視野的左邊、右邊、上邊和下邊,并且標定板不但有平行于視野平面的情況,還應該有傾斜放置的情況,最后還需要有棋盤格占據絕大多數視野的情況。按照上述情況緩慢調整和移動標定板即可完成相機標定。如圖1 所示,相機標定后圖像中的桶形畸變。
車道線在圖像中是兩條傾斜的直線,使用單應性矩陣進行透視校正可以得到兩條平行直線,這種視角變換方法可以去除圖像中車道線識別不需要的冗余信息,并且還原真實的車道信息,便于準確識別車道線和進行下一步的路徑提取。
首先,在機器人視野前方的車道線區(qū)域手動選定梯形車道線包圍區(qū)域,如圖2 所示,提取該梯形區(qū)域四個頂點的坐標值做為單應性變量,并計算與預先設定的俯視圖中的四個點的對應關系得到單應性矩陣,使用透視變換將原圖像按照單應性矩陣變換為俯視視角的圖像。最后,使用黑色像素點填充至變換后的圖像在底部左側和右側留下的三角形空白區(qū)域,如圖3所示。
經過單應性變換的圖像被轉換為1000×600 的高分辨率圖像后,再轉換為HSV 圖像空間的圖像,根據預先設定的色調(H)、飽和度(S)、明度(V)的參數范圍對HSV 圖像進行顏色閾值分割,提取出所需要的顏色。例如:我們需要提取出20mm 寬的黃色車道線,在HSV 顏色模型中,錐形邊界表示色相,水平軸表示飽和度,明度沿垂直軸測量,如圖4所示,根據該色域模型確定參數范圍,再根據光照強度以及畸變程度來適當調節(jié)參數,最后得到一條完整的車道提取線,如圖5 所示。在實際運行過程中,由于光線并不是完全均勻的,我們根據圖像中車道提取線像素點的數目來自動調整明度范圍,當像素點數過大時縮小提取明度范圍,當像素點數偏小時提高明度提取范圍。
將進行閾值分割后的圖像按位與原始圖像進行掩碼比較并掩膜覆蓋,再將車道線掩碼分為若干窗口,分別尋找直方圖左右部分的峰值,峰值點即代表左右車道線的起點。從峰值點出發(fā),計算出每個窗口的掩碼中心,使用各個窗口的中心坐標擬合二階多項式,得出當前車道線的完整軌跡,并進行迭代更新計算—舍棄容易產生變形(光照、畸變影響)的位于圖像邊緣窗口內的掩碼,依據掩碼主體來擬合車道線。同時,逐行疊加掩碼中提取的車道像素點,統(tǒng)計其數量,若數量較少說明提取到的該車道可信度較低,并設置可信度閾值與之比較。如圖6(a)和(b)所示,左邊紅色線為提取的左車道線,右邊藍色線為提取的右車道線。計算路徑中線時,把進行兩條邊線的可信度比較,當兩邊線可信度都高于可信度閾值時,說明提取到的車道線信息完整可靠,使用左右擬合邊線坐標來確定車道中線,當其中一邊高于可信度閾值而另一邊低于閾值時,說明提取到一條車道線可能大部分位于視野之外,則取可信度較高的車道邊線通過路寬來進行補償擬合車道中線。為消除攝像頭視野死區(qū)的影響,選擇位于圖像中下部點的橫坐標計算與視野中心橫坐標偏差,從而計算出當前的中線值,如圖6(a)和(b)中的黃色線。
對于一個空間中剛性移動機器人,在笛卡爾坐標系下,具有6 個自由度,即沿x、y、z 三個直角坐標軸方向的移動自由度和繞這三個坐標軸轉動的自由度,因此需要6 個獨立的參數才能完整的描述該機器人的位姿。對于二維平面內移動的機器人,其中3 個自由度被限制,所以只需要三個參數即可完整描述機器人的位姿,即二維平面內的坐標(x, y)和沿z 軸的旋轉角,如圖7 所示機器人,C 點為幾何中心,因此機器人的位姿P 可以表示為:
本文中的機器人采用的是差速驅動輪式機器人,它不能進行全向移動,即只有徑向速度和切向速度(v, ω),通過控制左右兩個電機的速度差控制機器人實現前進、后退、轉向等運動。該機器人的運動模式符合非完整性約束條件,即機器人的可控制自由度小于機器人的全部自由度[3]。
根據運動學方程可知,機器人左右輪速度與機器人的徑向速度和切向速度的關系為:
根據運動學方程可知,機器人的速度與位姿之間的關系為:
式中,v —機器人中心C 點的徑向速度;
ω —機器人中心C 點的切向速度;
vr—機器人右輪速度;
vl—機器人左輪速度;
θ —機器人中心C 點的旋轉角度;
l —機器人的輪距;
Ts—機器人的控制時間間隔。
通過式(2)~(4)可以描述機器人的位姿、速度與兩個驅動輪速度的關系。
在ROS 中,可以使用geometry_msgs 中的Twist發(fā)布機器人運動速度[4],其坐標系滿足笛卡爾坐標系,由空間中6 個自由度參數組成。根據兩輪差速驅動機器人的運動原理,其在平面內移動時,機器人只具有徑向速度linear.x 和切向速度angular.z,而在其他的分量linear.y、linear.z、angular.x 和angular.y 均為0。
當機器人偏離中線較大或者機器人進入彎道時,我們希望機器人能夠跟隨偏差適當的減小徑向速度,以能夠順滑地過彎而不至于出現轉向不足或轉向過度的情況。因此,如公式(5),對偏差的比例進行冪次運算使得偏差值與速度的關系呈近似平滑的曲線。如圖8 所示,在偏差值處于±30 之間時,不對速度進行衰減。機器人角速度控制采用PD 控制器,其控制方框圖如圖9 所示,根據式(6)計算出切向速度angular.z,控制機器人的行進方向。
由于光照不均勻和網絡延遲等因素,會不可避免地出現車道線識別失敗的情況。因此,預先設定trigger,當發(fā)生異常情況時,讓機器人重復上一次的運動控制命令。例如,當轉彎不及時導致車道線偏出相機視野,則繼續(xù)保持上一次的運動方向,使車道線重新進入視野。
在人員較為集中,存在較多移動設備或復雜網絡環(huán)境的情況下,機器人板載計算機與遠程計算機的wifi 通信受到極大的干擾,會出現嚴重的網絡延遲現象,ping 命令測試網絡其延遲在100ms~10000ms,并且出現數據包丟失的狀況造成無法實時傳輸圖像及數據。為了提高抗干擾能力,增強穩(wěn)定性,采用5GHz頻段的wifi 網絡能夠極大地提高網絡的穩(wěn)定性,并且保證較低的延遲以及數據傳輸的穩(wěn)定,同時,選取設備數最少,質量最高的信道作為通信信道,以此最大程度上地減少因為無線網絡問題造成的不穩(wěn)定。
本文提出了一種利用TurtleBot 機器人平臺使用ROS 進行開發(fā),結合OpenCV 中的相關視覺算法對圖像進行處理,并提取出所需要的車道線中值,基于兩輪差速式移動原理,使用PD 控制器完成對機器人運動軌跡的閉環(huán)控制。實驗表明,該方法能夠有效地識別并提取車道線,計算出中線值,精準地控制機器人完成循跡任務。