張施皛,唐天宇,張志明,馬國(guó)榮,高賀惟,余有靈
(同濟(jì)大學(xué) 電子與信息工程學(xué)院,上海 200092)
隨著信息技術(shù)與控制理論的發(fā)展,“人工智能+機(jī)器人”已經(jīng)成為現(xiàn)階段國(guó)內(nèi)外的研究熱點(diǎn)之一[1],機(jī)器人需要能模仿人類的感知行為來(lái)識(shí)別周圍環(huán)境與自身狀態(tài),并進(jìn)行分析和判斷,采取相應(yīng)的策略來(lái)完成相應(yīng)的任務(wù)。智能機(jī)器人的設(shè)計(jì)與開(kāi)發(fā),是一個(gè)典型的復(fù)雜工程問(wèn)題[2],在其方案論證、系統(tǒng)建模、硬件設(shè)計(jì)、算法編程、系統(tǒng)聯(lián)調(diào)等研究實(shí)踐中,由于需要綜合運(yùn)用電子電路技術(shù)、信號(hào)與系統(tǒng)、自動(dòng)控制原理、計(jì)算機(jī)控制、傳感檢測(cè)技術(shù)、嵌入式系統(tǒng)、機(jī)械設(shè)計(jì)與制造、人工智能等專業(yè)知識(shí),很難通過(guò)簡(jiǎn)單的一門或者若干門課程的形式實(shí)行實(shí)踐教學(xué)。
在自動(dòng)化及相關(guān)專業(yè)的高校本科培養(yǎng)體系中,學(xué)生的復(fù)雜工程問(wèn)題解決能力和綜合創(chuàng)新能力是課程教學(xué)質(zhì)量的直接體現(xiàn)[3-4],需要在專業(yè)理論基礎(chǔ)的指導(dǎo)下依托多樣化、多層次的實(shí)踐方式[5-6]開(kāi)展工作,服務(wù)于我國(guó)正在實(shí)施的“創(chuàng)新驅(qū)動(dòng)發(fā)展”“中國(guó)制造 2025”“新一代人工智能發(fā)展規(guī)劃”等一系列重大國(guó)家戰(zhàn)略,培養(yǎng)多學(xué)科交叉型與復(fù)合型人才[7-8]。以工程實(shí)踐和學(xué)科競(jìng)賽為背景,多學(xué)科交叉的機(jī)器人競(jìng)賽專業(yè)覆蓋面廣,極具趣味性和挑戰(zhàn)性,可以在常規(guī)教學(xué)之外,進(jìn)行科技創(chuàng)新實(shí)踐教學(xué)探索和改革[9-10],調(diào)動(dòng)學(xué)生主動(dòng)學(xué)習(xí)的積極性,全方位培養(yǎng)學(xué)生解決復(fù)雜工程問(wèn)題的能力,并在競(jìng)賽實(shí)踐中加以檢驗(yàn)和提高。
2019 年中國(guó)機(jī)器人大賽中設(shè)置仿人視覺(jué)挑戰(zhàn)項(xiàng)目[11],目的是推動(dòng)機(jī)器視覺(jué)在智能機(jī)器人中的應(yīng)用,與運(yùn)動(dòng)控制相互融合,基于單目視覺(jué)完成自主智能駕駛、定點(diǎn)停止和擊打標(biāo)靶等挑戰(zhàn)任務(wù)。參賽同學(xué)以此競(jìng)賽實(shí)踐項(xiàng)目為載體,跟蹤人工智能和機(jī)器人學(xué)科發(fā)展中的前沿技術(shù),通過(guò)針對(duì)性的理論學(xué)習(xí)和實(shí)踐鍛煉,課內(nèi)課外融合、理論實(shí)踐結(jié)合,有效地提高了大學(xué)生的綜合創(chuàng)新意識(shí)和全面解決復(fù)雜工程問(wèn)題的自主實(shí)踐能力。
在比賽場(chǎng)地中,分別設(shè)置啟動(dòng)區(qū)、停止(禁入)區(qū)和路障,如圖1 所示。其中啟動(dòng)區(qū)和停止區(qū)的圖案均為黑白相間的方格;路障則是不規(guī)則特征的圖案,位置隨機(jī)擺放;道路是連接啟動(dòng)區(qū)和停止區(qū)的白色路徑,黑色區(qū)域及圍檔是道路的邊界。機(jī)器人僅可以通過(guò)單目視覺(jué)傳感器獲取場(chǎng)地信息,自主行駛在道路上(不得駛出道路之外),并能順利跨越路障,在停止區(qū)前停住并打擊放置在終點(diǎn)位置上的靶標(biāo)。
圖1 仿人視覺(jué)機(jī)器人比賽場(chǎng)地[11](單位:mm)
視覺(jué)感知信息處理作為機(jī)器人的主要技術(shù)手段之一[12],也是最接近于人類感知外界環(huán)境的探測(cè)方式,其中,單目視覺(jué)通過(guò)機(jī)器人的移動(dòng)獲得環(huán)境中特征點(diǎn)的信息,適用于工作任務(wù)比較簡(jiǎn)單的情況[13]。若需要充分利用仿人機(jī)器人的視覺(jué)系統(tǒng)來(lái)獲取足夠多的信息,圖像處理與運(yùn)動(dòng)規(guī)劃就尤其重要[12-14],在運(yùn)動(dòng)過(guò)程中得到更好的決策,提高運(yùn)行效率。
近年來(lái)深度學(xué)習(xí)理論和技術(shù)日趨成熟,對(duì)機(jī)器人采集的圖像進(jìn)行識(shí)別、分類已成為一種方便且準(zhǔn)確的方法[13-14],本文中的仿人視覺(jué)機(jī)器人架構(gòu)如圖2 所示,基于卷積神經(jīng)網(wǎng)絡(luò)和PID 控制算法,采用樹(shù)莓派作為主控制器,通過(guò)單目攝像頭采集道路與目標(biāo)圖像信息,使用三電機(jī)驅(qū)動(dòng)的全向移動(dòng)底盤進(jìn)行位置移動(dòng),使用四自由度機(jī)械臂完成擊打目標(biāo)動(dòng)作,實(shí)現(xiàn)機(jī)器人運(yùn)動(dòng)控制和挑戰(zhàn)任務(wù)。
圖2 系統(tǒng)架構(gòu)設(shè)計(jì)
仿人視覺(jué)挑戰(zhàn)項(xiàng)目應(yīng)滿足控制器、傳感器、動(dòng)力模塊、供電模塊的安全規(guī)范,滿足速度、扭矩等參數(shù)要求,并且還需要滿足安全性、重量尺寸等要求。故機(jī)器人本體選用博創(chuàng)尚和公司的智元素-格斗機(jī)器人[15],其外形和結(jié)構(gòu)如圖3 所示,采用半人形加全向移動(dòng)底盤結(jié)構(gòu),同時(shí)具備STM32、Arduino 和樹(shù)莓派3B 等多種平臺(tái)硬件,全向移動(dòng)底盤、雙機(jī)械臂、樹(shù)莓派處理器背包等各模塊相互協(xié)作形成完整的機(jī)器人系統(tǒng),符合競(jìng)賽項(xiàng)目需求。
圖3 競(jìng)賽標(biāo)準(zhǔn)平臺(tái)機(jī)器人
在本系統(tǒng)中,樹(shù)莓派在軟件層面進(jìn)行數(shù)據(jù)采集、數(shù)據(jù)處理、控制算法等工作,在硬件層面與 STM32通信、實(shí)現(xiàn)各種電機(jī)和舵機(jī)的驅(qū)動(dòng),作為整個(gè)機(jī)器人系統(tǒng)的核心,起到承接軟硬件模塊的作用。
仿人視覺(jué)挑戰(zhàn)項(xiàng)目機(jī)器人先通過(guò)單目機(jī)載攝像頭采集典型道路圖像數(shù)據(jù),離線訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),識(shí)別賽道不同區(qū)域的特征分類;在完成自動(dòng)駕駛?cè)蝿?wù)的過(guò)程中,再使用訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)作為圖像處理模塊,對(duì)機(jī)器人實(shí)際環(huán)境信息進(jìn)行分類識(shí)別標(biāo)簽,然后送入到PID 控制器中,驅(qū)動(dòng)機(jī)器人底層電機(jī)實(shí)現(xiàn)移動(dòng)、循跡、轉(zhuǎn)彎及停止等動(dòng)作。數(shù)據(jù)處理及控制算法的總體流程圖如圖4 所示。用于數(shù)據(jù)處理的卷積神經(jīng)網(wǎng)絡(luò)算法和用于行駛控制的PID 算法構(gòu)成機(jī)器人本體系統(tǒng)控制器處理算法的核心,在最短時(shí)間內(nèi)完成規(guī)定動(dòng)作并取得好的成績(jī)。
圖4 數(shù)據(jù)處理及控制算法總流程圖
在本項(xiàng)目研究中,機(jī)器人的攝像頭采集到賽道圖像數(shù)據(jù)后,交由卷積神經(jīng)網(wǎng)絡(luò) CNN 模型進(jìn)行賽道元素的預(yù)測(cè),進(jìn)行初步的標(biāo)簽判定,再由控制算法做進(jìn)一步的機(jī)器人運(yùn)動(dòng)控制。
本項(xiàng)目中,競(jìng)賽機(jī)器人采用卷積神經(jīng)網(wǎng)絡(luò) CNN模型對(duì)賽道圖像進(jìn)行處理,通過(guò)數(shù)據(jù)采集、數(shù)據(jù)訓(xùn)練、數(shù)據(jù)預(yù)測(cè) 3 個(gè)子模塊來(lái)完成道路元素的分類預(yù)測(cè)功能。標(biāo)準(zhǔn)的卷積神經(jīng)網(wǎng)絡(luò)一般由輸入層、交替的卷積層和池化層的組合、全連接層和輸出層構(gòu)成。與普通全連接神經(jīng)網(wǎng)絡(luò)不同,卷積神經(jīng)網(wǎng)絡(luò)由于其本身具有的參數(shù)共享機(jī)制和連接稀疏性,可簡(jiǎn)化模型復(fù)雜度,減少模型參數(shù),從而降低計(jì)算量和過(guò)擬合的風(fēng)險(xiǎn)[16]。在實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)模型時(shí),已經(jīng)有很多開(kāi)發(fā)平臺(tái)和工具可供選擇,本文采用 Google 開(kāi)發(fā)的開(kāi)源框架TensorFlow[17-18],建立的CNN 模型層級(jí)結(jié)構(gòu)如圖5 所示,經(jīng)過(guò)訓(xùn)練后的模型可以下載部署到機(jī)器人主控制器中運(yùn)行。
圖5 卷積神經(jīng)網(wǎng)絡(luò)模型層級(jí)結(jié)構(gòu)
3.1.1 數(shù)據(jù)采集
數(shù)據(jù)采集階段需要通過(guò)鍵盤人為控制機(jī)器人運(yùn)動(dòng),在機(jī)器人運(yùn)行時(shí)配合樹(shù)莓派控制器通過(guò)單目攝像頭采集大量的賽道圖像數(shù)據(jù),獲得4 種典型類型的賽道圖像,并以標(biāo)簽(“前進(jìn)”“左轉(zhuǎn)”“右轉(zhuǎn)”“停止”)分別標(biāo)識(shí),經(jīng)過(guò)調(diào)整圖像大小與格式后存儲(chǔ)為灰度圖像集,最后壓縮為指定格式文件提供給數(shù)據(jù)訓(xùn)練模塊進(jìn)行訓(xùn)練。
3.1.2 數(shù)據(jù)訓(xùn)練
數(shù)據(jù)訓(xùn)練階段需要在高性能的計(jì)算機(jī)上離線運(yùn)行,從而提高訓(xùn)練的效率。首先讀取采集到的帶標(biāo)簽灰度圖像集,并劃分成多批數(shù)據(jù)為小批量梯度下降算法(MBGD)做準(zhǔn)備。在讀取數(shù)據(jù)之后,使用TensorFlow庫(kù)函數(shù)建立卷積神經(jīng)網(wǎng)絡(luò)模型,各層級(jí)的變量與結(jié)構(gòu)設(shè)計(jì)完畢后,設(shè)置損失(loss)最小化函數(shù)。一次訓(xùn)練過(guò)程 Session 包含一定數(shù)量的周期迭代,每個(gè)周期中啟動(dòng)CNN 模型進(jìn)行MBGD 算法,該周期的訓(xùn)練完成后,讀取數(shù)據(jù)集的一部分作為預(yù)測(cè)集,用來(lái)判斷模型的準(zhǔn)確率,若該訓(xùn)練權(quán)重文件準(zhǔn)確率高于歷史權(quán)重文件則保留,在不斷迭代中選擇準(zhǔn)確率最高的權(quán)重文件進(jìn)行保存,供給數(shù)據(jù)預(yù)測(cè)模塊進(jìn)行實(shí)時(shí)圖像的分類識(shí)別預(yù)測(cè)。
3.1.3 數(shù)據(jù)預(yù)測(cè)
數(shù)據(jù)預(yù)測(cè)階段在機(jī)器人的樹(shù)莓派控制器上在線運(yùn)行,讀取并保存數(shù)據(jù)訓(xùn)練模塊中得到的權(quán)重文件后,遠(yuǎn)程操作打開(kāi)機(jī)器人攝像頭,實(shí)時(shí)獲取機(jī)器人所在位置的賽道圖像,調(diào)用預(yù)測(cè)程序函數(shù)使用該權(quán)重文件進(jìn)行實(shí)時(shí)計(jì)算,預(yù)測(cè)和分類識(shí)別賽道,得到賽道圖像標(biāo)簽結(jié)果后,獲知機(jī)器人行進(jìn)方向的信息,交由控制器算法進(jìn)一步處理。
PID 控制策略是一種成熟的控制算法,其結(jié)構(gòu)簡(jiǎn)單、穩(wěn)定性好、可靠性高,并且易于實(shí)現(xiàn)[19]。雖然PID控制器的參數(shù)整定相當(dāng)煩瑣,需要很強(qiáng)的工程經(jīng)驗(yàn),但相對(duì)于其他控制算法,其編程簡(jiǎn)單、可操作性強(qiáng),故選為機(jī)器人運(yùn)動(dòng)控制器算法。由于競(jìng)賽機(jī)器人平臺(tái)沒(méi)有提供控制理論數(shù)學(xué)模型,故在調(diào)試過(guò)程中,使用試湊法來(lái)確定PID 控制器中的比例Kp、積分Ki 和微分Kd 參數(shù),根據(jù)各控制參數(shù)對(duì)系統(tǒng)響應(yīng)的作用影響,調(diào)整參數(shù)數(shù)值,確定最后的PID 控制參數(shù),以獲得滿意的響應(yīng)輸出。
機(jī)器人路徑規(guī)劃與駕駛控制系統(tǒng)采用閉環(huán)負(fù)反饋控制,在采集賽道圖像并經(jīng)過(guò) CNN 模型得到預(yù)測(cè)的結(jié)果后,將連續(xù)幾幀歷史圖像的預(yù)測(cè)結(jié)果保存在內(nèi)存中,進(jìn)行下一步處理,控制算法的流程圖如圖6 所示。若當(dāng)前圖像判斷為“前進(jìn)”標(biāo)簽,則再綜合考慮前若干歷史幀的標(biāo)簽,決定是否應(yīng)該加速;若是“左轉(zhuǎn)”或“右轉(zhuǎn)”標(biāo)簽,則采用OpenCV 的ROI 操作與直方圖計(jì)算得到左/右側(cè)黑白像素比例,換算出誤差,再經(jīng)過(guò)PID 控制算法調(diào)節(jié)機(jī)器人的行進(jìn)速度與方向;若是“停止”標(biāo)簽,則逐漸減速直至機(jī)器人停止運(yùn)動(dòng)并實(shí)現(xiàn)打擊靶標(biāo)動(dòng)作,完成擊靶任務(wù)。
圖6 基于PID 的路徑規(guī)劃與駕駛控制算法框圖
由于Python 編程逐點(diǎn)處理像素的效率較低,故將PID 控制算法與數(shù)字圖像處理計(jì)算函數(shù)編譯為C 共享庫(kù),再由Python 主程序調(diào)用。處理流程簡(jiǎn)述如下:先獲取圖像左右兩側(cè)矩形范圍內(nèi)黑色像素的點(diǎn)數(shù),兩側(cè)像素的累加值之差作為PID 控制器的輸入誤差量,計(jì)算得到標(biāo)簽識(shí)別后的轉(zhuǎn)向角度與速度控制量,最終輸入到驅(qū)動(dòng)程序中控制電機(jī)運(yùn)動(dòng)。
競(jìng)賽規(guī)則中提高了技術(shù)難度,在賽道中增加了迷彩路面特殊元素干擾,其在機(jī)器人運(yùn)行道路的位置隨機(jī)設(shè)定,因此需要設(shè)計(jì)適應(yīng)性較強(qiáng)的算法來(lái)對(duì)路障元素進(jìn)行處理,以減小對(duì)任務(wù)過(guò)程的干擾,避免賽道信息誤判。
首先在使用TensorFlow 建立的CNN 模型訓(xùn)練集中加入“路障”標(biāo)簽,通過(guò)神經(jīng)網(wǎng)絡(luò)初步判斷出路面迷彩元素后,再使用C 語(yǔ)言共享庫(kù)讀取攝像頭左右兩側(cè)的黑色像素個(gè)數(shù)。與常規(guī)非迷彩路面不同的是,此次檢測(cè)需要從兩側(cè)向中間掃描,在檢測(cè)到接近白色像素時(shí)當(dāng)前行掃描即停止;實(shí)測(cè)發(fā)現(xiàn),與普通路面處理流程相比較,需減小掃描寬度才能得到較好的結(jié)果。檢測(cè)完成后,經(jīng)過(guò)PID 控制器運(yùn)算獲得自動(dòng)駕駛電機(jī)運(yùn)動(dòng)控制參數(shù)。
路面迷彩路障處理的流程圖如圖7 所示。
圖7 路障處理算法流程圖
實(shí)驗(yàn)室調(diào)試賽道按競(jìng)賽標(biāo)準(zhǔn)賽道 1 : 1 搭建,如圖8 所示。機(jī)器人從啟動(dòng)區(qū)開(kāi)始,經(jīng)過(guò)若干彎道與迷彩路障,均正確識(shí)別并正常自主行駛,最后在停止禁入?yún)^(qū)前減速、停止并擊打靶標(biāo),順利完成自動(dòng)駕駛?cè)蝿?wù),運(yùn)動(dòng)過(guò)程中沒(méi)有壓到黑色邊界部分,賽道總長(zhǎng)約為10 m,全程花費(fèi)時(shí)間約為10 s,調(diào)試過(guò)程中的手動(dòng)秒表計(jì)時(shí)結(jié)果穩(wěn)定,偏差不超過(guò)±0.1 s。
圖8 實(shí)驗(yàn)室調(diào)試賽道及機(jī)器人實(shí)物照片
仿人機(jī)器人的視覺(jué)系統(tǒng)是機(jī)器人獲取外界環(huán)境信息的主要來(lái)源,是機(jī)器人決策的主要依據(jù),同時(shí)也是自身行為信息的一種反饋途徑。以機(jī)器人仿人視覺(jué)對(duì)抗競(jìng)賽項(xiàng)目為背景開(kāi)展綜合創(chuàng)新能力訓(xùn)練,提出基于卷積神經(jīng)網(wǎng)絡(luò)識(shí)別不同的路況條件情況并通過(guò)PID 控制使機(jī)器人按道路行駛的方案,并對(duì)視覺(jué)系統(tǒng)中的圖像分類、特征識(shí)別等問(wèn)題進(jìn)行了研究和實(shí)現(xiàn),最終實(shí)現(xiàn)的控制方案具有實(shí)時(shí)性高、抗干擾能力強(qiáng)的特點(diǎn)。
仿人視覺(jué)機(jī)器人系統(tǒng)以樹(shù)莓派為核心控制器,使用單目攝像頭采集道路信息,通過(guò) CNN 模型與 PID算法進(jìn)行數(shù)據(jù)處理與運(yùn)動(dòng)控制,對(duì)迷彩路障識(shí)別進(jìn)行特殊處理,最終實(shí)現(xiàn)機(jī)械臂擊靶動(dòng)作。實(shí)機(jī)測(cè)試能夠完整、高效地實(shí)現(xiàn)賽道識(shí)別與自主駕駛競(jìng)賽任務(wù),具有較強(qiáng)的穩(wěn)定性與可拓展性。該系統(tǒng)在應(yīng)對(duì)陌生道路元素時(shí)需要重新進(jìn)行數(shù)據(jù)采集與模型訓(xùn)練,后期可以嘗試從神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)與數(shù)據(jù)集類型的方向去優(yōu)化系統(tǒng),使其能夠應(yīng)對(duì)各種復(fù)雜道路環(huán)境,獲得更好的適應(yīng)性。
在參與該競(jìng)賽項(xiàng)目的學(xué)習(xí)與實(shí)踐過(guò)程中,通過(guò)文獻(xiàn)資料查詢、控制問(wèn)題凝煉、方案歸納總結(jié)以及自動(dòng)化工程設(shè)計(jì)與應(yīng)用,參賽本科學(xué)生的復(fù)雜工程問(wèn)題解決能力和綜合創(chuàng)新能力得到了有效的鍛煉,對(duì)控制系統(tǒng)與深度學(xué)習(xí)理論有了感性的認(rèn)識(shí)與體會(huì),同時(shí)在競(jìng)賽中也獲得了較好的成績(jī):首次參加2019 年中國(guó)高校智能機(jī)器人創(chuàng)意大賽獲得視覺(jué)對(duì)抗組第四名,改進(jìn)算法后參加 2019 年中國(guó)機(jī)器人大賽視覺(jué)挑戰(zhàn)項(xiàng)目以明顯優(yōu)勢(shì)獲得冠軍。