張浩杰
(中國(guó)北方車(chē)輛研究所,北京,100072)
德國(guó)移動(dòng)技術(shù)公司(Locomotec GmbH,簡(jiǎn)稱LOC公司)成立于2010年,主要研究服務(wù)類(lèi)機(jī)器人,并實(shí)現(xiàn)商業(yè)化。該公司的研究方向和技術(shù)優(yōu)勢(shì)包括物品的移動(dòng)性和人類(lèi)的移動(dòng)性兩個(gè)方面,比如,在醫(yī)院、餐館及其他公共區(qū)域中,非結(jié)構(gòu)化環(huán)境下的物品自動(dòng)運(yùn)輸和利用機(jī)械臂進(jìn)行物品移動(dòng)操縱等;在人類(lèi)移動(dòng)領(lǐng)域,開(kāi)發(fā)輔助機(jī)器人系統(tǒng),主要用于恢復(fù)并提升個(gè)人健康。
RUFUS是一款全新的用于提升人類(lèi)健康的跑步服務(wù)機(jī)器人,它采用三輪純電驅(qū)動(dòng)形式,如圖1所示。在人類(lèi)跑步過(guò)程中,RUFUS充當(dāng)教練的角色,在跑步者前面進(jìn)行引導(dǎo),根據(jù)環(huán)境信息向用戶設(shè)定最優(yōu)的跑步路線和行進(jìn)速度。同時(shí),RUFUS通過(guò)跑步者穿戴的設(shè)備測(cè)量用戶當(dāng)前心率,將心率與設(shè)定的心率值進(jìn)行對(duì)比,然后調(diào)整RUFUS的速度,從而實(shí)現(xiàn)根據(jù)心率值引導(dǎo)跑步者的功能。RUFUS可實(shí)現(xiàn)自主巡航控制,全程自主運(yùn)動(dòng)不需要跑步者對(duì)其干預(yù),但RUFUS繞過(guò)死角時(shí)需要跑步者輔助,其性能參數(shù)如表1所示。
圖1 RUFUS原型
表1 RUFUS性能參數(shù)
LOC公司開(kāi)發(fā)的一款餐飲服務(wù)機(jī)器人原型樣機(jī)如圖2所示,并在進(jìn)行迭代開(kāi)發(fā)。該機(jī)器人能夠在室內(nèi)擁擠環(huán)境中完成引導(dǎo)服務(wù)任務(wù),比如機(jī)場(chǎng)、火車(chē)站、銀行和醫(yī)院等場(chǎng)所。它采用模塊化、低成本的設(shè)計(jì)理念,擁有可在大范圍室內(nèi)環(huán)境下實(shí)現(xiàn)的機(jī)器人導(dǎo)航技術(shù),如地圖生成、定位、路徑規(guī)劃、避障和柔性控制等,人們可以直接與機(jī)器人交互或者輕松推開(kāi)機(jī)器人,實(shí)現(xiàn)機(jī)器人在擁擠人群中被安全使用和友好操作。
圖2 餐飲服務(wù)機(jī)器人原型樣機(jī)
在安保機(jī)器人平臺(tái)上安裝機(jī)械臂,可以擴(kuò)展其功能和移動(dòng)范圍,比如,可以從人手中接過(guò)物品等,以及機(jī)械臂末端安裝的攝像頭還可以觀測(cè)車(chē)內(nèi)或者室內(nèi)情況。常見(jiàn)的工業(yè)機(jī)械臂通常不適用于高精度、高速及任務(wù)定制等應(yīng)用場(chǎng)景,為了適應(yīng)服務(wù)機(jī)器人市場(chǎng)的需求,新型機(jī)械臂需要解決人機(jī)交互、低功耗、低成本、重量輕及編程簡(jiǎn)單等問(wèn)題,最終實(shí)現(xiàn)機(jī)械臂動(dòng)作靈活和柔性控制。其中,機(jī)械臂柔性控制可以通過(guò)硬件或軟件兩方面實(shí)現(xiàn),比如,選用軟材質(zhì)材料,采用彈簧或拉線等結(jié)構(gòu)形式,采用力控制、阻尼控制或者其他柔性控制方法等途徑。
LOC公司將控制機(jī)械臂運(yùn)動(dòng)的電機(jī)移至機(jī)器人殼體內(nèi)部,而非安裝在機(jī)械臂關(guān)節(jié)上,并采用拉線連接的方式控制電機(jī)的輸出軸,最終通過(guò)可伸縮拉線實(shí)現(xiàn)機(jī)械臂的柔性控制,如圖3所示。這種特殊的拉線連接方式具有低摩擦、低彈性、細(xì)小及魯棒性強(qiáng)等特點(diǎn),采用鋁材導(dǎo)管引導(dǎo)拉線,可以預(yù)先定義節(jié)點(diǎn)單元,實(shí)現(xiàn)任意電機(jī)、減速器和驅(qū)動(dòng)電機(jī)之間的搭配。
圖3 機(jī)械臂及其部件布置
機(jī)械臂柔性控制過(guò)程可以分3個(gè)層次:
1)任務(wù)層。決定機(jī)械臂應(yīng)該執(zhí)行的任務(wù),比如,人類(lèi)操作者通過(guò)遠(yuǎn)程給定的控制輸入量。
2)運(yùn)動(dòng)規(guī)劃及執(zhí)行層。實(shí)現(xiàn)機(jī)械臂運(yùn)動(dòng)軌跡的規(guī)劃及執(zhí)行,所有的關(guān)節(jié)在同一坐標(biāo)系中運(yùn)動(dòng)。
3)低級(jí)控制層。實(shí)現(xiàn)每一個(gè)關(guān)節(jié)電機(jī)的激勵(lì)控制,尤其需要連接硬件設(shè)備,比如Elmo運(yùn)動(dòng)控制器等。
采用德國(guó)易格斯公司(igus)6自由度機(jī)械臂作為柔性控制測(cè)試的平臺(tái),其硬件配置如表2所示。
表2 機(jī)械臂關(guān)節(jié)參數(shù)
當(dāng)操作者將控制機(jī)械臂的速度指令下發(fā)后,通過(guò)反向運(yùn)動(dòng)學(xué)計(jì)算機(jī)械臂到達(dá)某一個(gè)點(diǎn)或者執(zhí)行某個(gè)動(dòng)作的軌跡,這些軌跡由一系列的軌跡點(diǎn)組成,并根據(jù)當(dāng)前的位置及機(jī)械臂關(guān)節(jié)的速度限制將軌跡點(diǎn)轉(zhuǎn)換為關(guān)機(jī)的速度指令。通過(guò)控制每一個(gè)關(guān)節(jié)達(dá)到期望的速度,實(shí)現(xiàn)機(jī)械臂運(yùn)動(dòng)到達(dá)指定位置。由于第一個(gè)關(guān)節(jié)上的拉線安裝在機(jī)械臂的外部,并沒(méi)有通過(guò)關(guān)節(jié)中心,因此無(wú)法對(duì)關(guān)節(jié)1進(jìn)行負(fù)載測(cè)試。圖4是對(duì)2、3、4、5、6關(guān)節(jié)軸進(jìn)行無(wú)負(fù)載及200g負(fù)載測(cè)試的結(jié)果。
基于低成本單目攝像頭的道路識(shí)別系統(tǒng)僅依賴一款廉價(jià)的攝像頭,就可實(shí)現(xiàn)對(duì)自行車(chē)道、人行道及公園道路的道路邊緣識(shí)別檢測(cè),識(shí)別率可達(dá)94%。道路識(shí)別系統(tǒng)主要用來(lái)識(shí)別、跟蹤非結(jié)構(gòu)化的道路邊界,主要適合于人行道和自行車(chē)道。
本系統(tǒng)主要由2個(gè)模塊組成,如圖5所示,一個(gè)是基于顏色信息的道路識(shí)別模塊,適用于道路與非道路之間色差非常明顯的場(chǎng)景;另一個(gè)是基于道路紋理信息的識(shí)別模塊,這種方法根據(jù)道路的紋理或者形狀識(shí)別道路邊界。這兩種方法在道路識(shí)別系統(tǒng)中并行運(yùn)行,并按照一定的權(quán)重比例融合。
道路識(shí)別系統(tǒng)采用無(wú)損卡爾曼濾波(Unscented Kalman Filter,UKF)估計(jì)、跟蹤道路邊界,整個(gè)過(guò)程包括測(cè)量更新和狀態(tài)更新兩個(gè)步驟,在測(cè)量更新過(guò)程中,采用兩個(gè)道路識(shí)別模塊的融合結(jié)果作為觀測(cè)量,同時(shí),基于設(shè)計(jì)的道路邊界運(yùn)動(dòng)學(xué)模型進(jìn)行道路邊界狀態(tài)更新。
圖4 機(jī)械臂關(guān)節(jié)軸空載及負(fù)載實(shí)驗(yàn)結(jié)果
圖5 道路識(shí)別系統(tǒng)框架
3.2.1 基于顏色信息的道路識(shí)別模塊
道路識(shí)別模塊使用RGB圖像,實(shí)現(xiàn)對(duì)自行車(chē)道、人行道等窄道路的邊緣計(jì)算,主要用于非結(jié)構(gòu)化道路識(shí)別。它采用低成本的網(wǎng)絡(luò)攝像頭對(duì)單向道路進(jìn)行檢測(cè)和跟蹤,這種方法基于HSV色空間,并不需要預(yù)先設(shè)計(jì)的模型或待檢測(cè)道路作為先驗(yàn)知識(shí)信息。
該道路識(shí)別模塊主要通過(guò)以下5個(gè)步驟來(lái)實(shí)現(xiàn)。
1)圖像預(yù)處理。
圖像預(yù)處理可以實(shí)現(xiàn)在使用圖片前對(duì)圖片進(jìn)行質(zhì)量?jī)?yōu)化,比如,去除一些不需要的特征、降低噪聲影響、消除光線影響等。通過(guò)圖像降維采樣,減小圖像尺寸,提高處理速度,之后,采用中值濾波降低噪聲,采用白平衡和RGB歸一化以增強(qiáng)圖像質(zhì)量,消除光照影響。
對(duì)于從網(wǎng)絡(luò)攝像頭獲取的圖像,采用降維采樣將圖像轉(zhuǎn)化為標(biāo)準(zhǔn)的640×480像素點(diǎn)的圖片,這樣有助于減少道路識(shí)別模塊在圖像后處理過(guò)程中的時(shí)間消耗。降維采樣采用最小臨近插值法實(shí)現(xiàn),可調(diào)用OpenCV庫(kù)中的DownSampler類(lèi)計(jì)算,具體過(guò)程如下:
圖像并不是每一個(gè)部分都可用于道路識(shí)別,對(duì)檢測(cè)結(jié)果有影響的區(qū)域?yàn)楦信d趣區(qū)域(ROI)。在道路識(shí)別模塊中,對(duì)于每一幀獲取的圖像,將圖像上方1/3區(qū)域及下方1/5區(qū)域去除,即獲得ROI區(qū)域,如圖6所示。
圖6 提取ROI區(qū)域后的圖像對(duì)比
道路識(shí)別模塊中的所有圖像都在室外獲取,室外條件下光照條件會(huì)隨時(shí)間變化,為了消除光照條件對(duì)圖像的影響,在項(xiàng)目中采用白平衡和歸一化方法對(duì)圖像進(jìn)行處理。白平衡法對(duì)整幅圖像調(diào)整色彩強(qiáng)度。對(duì)于每一個(gè)像素點(diǎn),其RGB值按照下式計(jì)算。
其中, Yavg為 ( Ravg+ Gavg+Bavg)/3,Ravg、Gavg、Bavg是RGB三通道的平均值。
歸一化法在白平衡之后使用,它重新計(jì)算圖像中每一個(gè)像素點(diǎn)的RGB值,其計(jì)算方法如下:
其中,R、G、B為像素點(diǎn)的三通道值。
2)道路特征提取。
在道路識(shí)別模塊中,通過(guò)提取圖像中的道路顏色特征生成道路顏色模型。在圖像中提取一個(gè)小的區(qū)域(50×50像素),將其從RGB轉(zhuǎn)化為HSV色空間。圖7所示為HSV特征提取結(jié)果。
圖7 HSV特征提取
HSV色空間比RGB更加有效,尤其在有陰影的環(huán)境精度更高。HSV色空間的中值按式(3)計(jì)算。
其中,i為色調(diào)飽和度通道,qi是中值,A、B分別為窗口的寬度和長(zhǎng)度, si是像素值。
為了避免道路識(shí)別失敗,道路識(shí)別算法采用meanshift算法迭代,將當(dāng)前圖像幀中的顏色直方圖與上一圖像幀中的進(jìn)行對(duì)比。采用式(4)更新顏色模型。
3)像素分割。
像素分割通過(guò)道路顏色模型,對(duì)圖像中的每一個(gè)像素是否屬于道路進(jìn)行評(píng)估。它輸出一幅包含道路/非道路分類(lèi)的二進(jìn)制圖像。整個(gè)過(guò)程由圖像幀分割和像素評(píng)估兩個(gè)步驟。
a)圖像幀分割:對(duì)于每一幀圖像,并不需要對(duì)每一個(gè)像素點(diǎn)評(píng)估是否屬于道路。相反地,道路識(shí)別模塊僅僅選取幾個(gè)像素。比如,每M行選擇一行,對(duì)于每一行,選擇N個(gè)像素點(diǎn)。M和N數(shù)值的設(shè)定可通過(guò)配置文件實(shí)現(xiàn)。每一個(gè)被選擇的像素點(diǎn)的像素值由它臨近的2個(gè)像素值及它自身的中值替換。
b)像素評(píng)估:圖像幀分割之后,對(duì)所有選取的像素點(diǎn)進(jìn)行評(píng)估,以確定它們是否屬于道路。這個(gè)方法通過(guò)計(jì)算像素點(diǎn)到道路特征的曼哈頓距離進(jìn)行評(píng)估,采用式(5)計(jì)算。
式中, ( i , j)是像素點(diǎn)坐標(biāo), H ue( i,j)與 S at(i,j)分別是色調(diào)值和飽和度值,H u e ,S a t是中值。
4)形態(tài)濾波。
圖像由于噪聲、陰影、水域、道路紋理及障礙物影響,像素分割過(guò)程會(huì)誤判一些像素的道路歸屬關(guān)系。對(duì)于這些誤判,采用形態(tài)濾波方法進(jìn)行修正,以獲取正確的道路區(qū)域。同時(shí),采用膨脹技術(shù)填充由于形態(tài)濾波噪聲生成的像素漏洞,采用腐蝕技術(shù)用以消除圖像幀中不連接的線段。
道路模型是道路識(shí)別算法的一個(gè)重要部分,通過(guò)道路模型特征,可以判斷一條線段是否是道路的一部分。在項(xiàng)目實(shí)施過(guò)程中,首先假定左、右道路是平行的,基于這個(gè)假設(shè),可知道路寬度將從圖像幀的下部到上部逐漸減??;其次,由于道路是連續(xù)的,那么道路中心線上的點(diǎn)不會(huì)發(fā)生突變。在道路識(shí)別模塊中,圖像幀中的線段必須同時(shí)滿足上述兩個(gè)條件時(shí),才被認(rèn)定是道路邊界。
5)道路邊界提取。
曲線擬合過(guò)程將道路左、右側(cè)的數(shù)據(jù)點(diǎn)擬合為曲線,最終的曲線近似于道路形狀。道路的每一邊擬合為二階多項(xiàng)式曲線,并基于指數(shù)擬合估算道路邊界。
擬合曲線表示如下:
對(duì)上式取對(duì)數(shù),可得
式(7)中采用的擬合值為:
其中, B =b, A =exp(a)
擬合的結(jié)果是以2個(gè)指數(shù)函數(shù)表征道路邊界的位置,結(jié)果如圖8所示。
圖8 基于顏色信息的道路識(shí)別結(jié)果
3.2.2 基于紋理信息的道路識(shí)別模塊
基于紋理信息的道路識(shí)別模塊不需要依據(jù)色差檢測(cè)道路,而是基于道路的紋理或者形狀。這種方法通過(guò)逆透視變換圖像(Inverse Perspective Mapping Image,簡(jiǎn)稱IPM)檢測(cè)直線,IPM圖像是將攝像頭的拍攝角度轉(zhuǎn)換為俯視后的圖像,這種圖的優(yōu)勢(shì)在于消除拍攝角度引起的變形。因此,在IPM圖像中,平行線將仍舊保持平行,而不出現(xiàn)滅點(diǎn),如圖9所示。
圖9 逆透視變化圖
為了獲取IPM圖像,在轉(zhuǎn)換過(guò)程中需要攝像頭的內(nèi)參和外參,這些參數(shù)通過(guò)棋盤(pán)格標(biāo)定獲得,且只需要標(biāo)定一次。根據(jù)轉(zhuǎn)換后的IPM圖像,采用Canny邊緣檢測(cè)算法識(shí)別垂直線。之后,清晰、明顯的邊緣通過(guò)Hough變換,以識(shí)別是否是道路邊界。Hough變換通過(guò)極坐標(biāo)系找出圖像特征,常用的是線特征。
通過(guò)Hough變換檢測(cè)到的垂直線,根據(jù)它們的位置可以分為左、右兩組。對(duì)于每一組垂直線,采用孤立點(diǎn)排除濾波估計(jì)道路邊界,識(shí)別結(jié)果如圖10所示。孤立點(diǎn)排除原則是線與線之間的距離超出標(biāo)準(zhǔn)線之間的距離。
圖10 基于紋理信息的道路識(shí)別結(jié)果
3.2.3 融合模塊
基于顏色信息和基于紋理信息檢測(cè)到的道路邊界通過(guò)權(quán)重平均算法融合。對(duì)于2個(gè)識(shí)別模塊,通過(guò)計(jì)算的測(cè)量值估計(jì)信任度。當(dāng)信任值越高,檢測(cè)到的道路邊界越可信,權(quán)重越高。每一個(gè)道路邊界檢測(cè)過(guò)程所采用的權(quán)重通過(guò)測(cè)量計(jì)算獲得,并且在每一個(gè)識(shí)別檢測(cè)周期內(nèi)更新。
1)基于顏色信息的道路識(shí)別模塊測(cè)量。
每一幀圖像的像素列的數(shù)目是固定的,在每一列都希望找到道路邊界。在圖11中,道路邊界以黑色圓圈表示,這些黑色圓圈在圖像分割過(guò)程中通過(guò)計(jì)算獲得。如果在一副圖像中,黑色圓圈的數(shù)目和圖像的列數(shù)相同,則表示100%檢測(cè)到道路邊界,因此,信任值越高;相反,如果圖像中黑色圓圈的數(shù)目偏低,則道路邊界很難檢測(cè)到或者僅僅部分檢測(cè)到,則信任值偏低,如圖12所示。
圖11 高信任值的道路邊界檢測(cè)結(jié)果
圖12 低信任值的道路邊界檢測(cè)結(jié)果
因此,基于顏色信息的道路識(shí)別模塊的信任值可以通過(guò)黑色圓圈占圖像列數(shù)的比例計(jì)算得到,由式(9)表示。
2)基于紋理信息的道路識(shí)別模塊測(cè)量。
原始圖像經(jīng)過(guò)IPM轉(zhuǎn)換及Canny邊緣檢測(cè)后,采用Hough變換識(shí)別出相似線段的垂直線。這些識(shí)別到的垂直線將分布在整副圖像,并分為左、右兩個(gè)組。這些垂直線的分布將表明道路邊界的識(shí)別質(zhì)量和信任值。這些垂直線的分散值越大,信任值越低,相反,分散值越小,信任值越高。圖13所示是對(duì)基于紋理信息的道路識(shí)別結(jié)果的信任值評(píng)估,左側(cè)垂直線是高分散值,信任值低,而右側(cè)垂直線是低分散值,信任值高。
圖13 檢測(cè)結(jié)果信任值評(píng)估
因此,基于紋理信息的道路識(shí)別模塊的信任值可通過(guò)垂直線的分布進(jìn)行計(jì)算,由式(10)表示。
通過(guò)公式(9)和公式(10)分別計(jì)算獲得了基于顏色信息的道路識(shí)別模塊和基于紋理信息的道路識(shí)別模塊的信任值后,通過(guò)采用權(quán)重平均將兩個(gè)識(shí)別結(jié)果融合為一個(gè),如式(11)所示。
在公式(11)中,以C-v簡(jiǎn)化表示基于顏色信息的道路識(shí)別模塊信任值,而以T-v簡(jiǎn)化表示基于紋理信息的道路識(shí)別模塊信任值。
3.2.4 實(shí)驗(yàn)測(cè)試結(jié)果
將道路識(shí)別系統(tǒng)集成在機(jī)器人平臺(tái)上,并針對(duì)適用場(chǎng)景選擇一條道路進(jìn)行檢測(cè)測(cè)試,在線實(shí)時(shí)輸出檢測(cè)結(jié)果,圖像處理頻率為20fps。圖14所示為部分識(shí)別結(jié)果,兩側(cè)紅線為檢測(cè)到的道路邊界。
圖14 道路識(shí)別結(jié)果
通過(guò)對(duì)60km道路的實(shí)驗(yàn)測(cè)試,實(shí)驗(yàn)涵蓋多種類(lèi)型場(chǎng)景、多種類(lèi)型道路和光照條件,用于測(cè)試的數(shù)據(jù)集包含2.4萬(wàn)多張圖片和4萬(wàn)多個(gè)GPS點(diǎn)。
根據(jù)道路條件,將其分為最佳道路、正常道路和糟糕道路,這些考慮的分類(lèi)條件包括環(huán)境條件(光照、天氣等)及結(jié)構(gòu)化條件(道路材質(zhì)、邊界狀態(tài))等。其中,最佳道路是指道路與邊界之間有清晰的顏色對(duì)比,沒(méi)有陰影、遮擋,道路的邊界平行,光照條件較好;正常道路是指道路、光照和天氣條件基本滿足環(huán)境需求,同時(shí)單行道滿足基本的光照條件要求;糟糕道路是指上述定義的環(huán)境和光照條件不滿足,尤其像強(qiáng)降雨、雪等天氣。圖15所示為一些道路示例,包含城市和鄉(xiāng)村的各種類(lèi)型的道路,比如,瀝青、碎石、石磚和混凝土道路等。
圖15 道路示例
表3為道路識(shí)別系統(tǒng)的識(shí)別率,這個(gè)表格基于2.4萬(wàn)多張圖片的識(shí)別結(jié)果進(jìn)行統(tǒng)計(jì)分析。這些圖像分為13類(lèi)道路,識(shí)別率為每一類(lèi)道路中識(shí)別正確的圖像占圖像總數(shù)的百分比,不管是基于顏色信息的道路識(shí)別或者基于紋理信息的道路識(shí)別,只要識(shí)別成功就認(rèn)為是道路識(shí)別成功。
表3 道路識(shí)別率統(tǒng)計(jì)結(jié)果
從表3可以看出,識(shí)別率的平均值約為96.6%,最低值是79.2%。統(tǒng)計(jì)數(shù)據(jù)表明,對(duì)于最佳道路,識(shí)別率可達(dá)99.78%,正常道路識(shí)別率為96.6%,而糟糕道路識(shí)別率為79.27%。