鄧迎忠 張海 夏園盟 張斌 曹文博 李金鍵
中國民航大學(xué)機器人研究所,中國·天津 300300
近些年來,隨著機器人的研究應(yīng)用領(lǐng)域的不斷深入,載人機器人成為當前服務(wù)型機器人的研究熱點。機器人運動控制依賴當前現(xiàn)有機器人系統(tǒng)的數(shù)學(xué)模型以及相應(yīng)的控制理論,輪式機器人廣泛應(yīng)用于人們的生活之中和室內(nèi)公眾環(huán)境中,情況復(fù)雜,要求機器人盡可能保證運行路徑可靠、安全,并保證局部軌跡的可通行性。課題重點研究機器人擾動情況下的穩(wěn)定控制方法,對研究、設(shè)計與實現(xiàn)輪式機器人的全局路徑規(guī)劃及局部軌跡規(guī)劃具有重要意義。
一方面,人群中自主通行方法研究是為了解決航站樓載運機器人在人機共存的公共環(huán)境下能夠安全順暢地將旅客送達目的地的問題,通行過程中遇到的問題主要包括人群中的行人檢測跟蹤、行人運動狀態(tài)預(yù)估、行人建模、可通行區(qū)域檢測、機器人控制器的設(shè)計等問題;另一方面,為了響應(yīng)民航局提出的提高民航的運行效率、服務(wù)品質(zhì),節(jié)省旅客在航站樓的行走時間和減輕旅客的負重等號召。
對航站樓服務(wù)機器人適應(yīng)性導(dǎo)航系統(tǒng)進行了設(shè)計。針對航站樓環(huán)境廣闊、場景復(fù)雜、旅客流動性大等情況,采用雙輪差速與多傳感器融合設(shè)計機器人硬件系統(tǒng);針對機器人運行中需與旅客進行交互,采用ROS 系統(tǒng)搭建可以實現(xiàn)運載旅客與行李、符合航站樓安全運行的機器人軟件系統(tǒng)。
通過對激光雷達識別的目標圖像進行處理并進行分類,提取重要的特征在海量數(shù)據(jù)中排除多余的信息;通過A*算法對路徑進行規(guī)劃;通過自抗擾控制(ADRC)算法對雙輪差速式移動機器人進行運動控制。
項目設(shè)計是一種應(yīng)用于機場航站樓的智能電動代步車原型系統(tǒng)。實現(xiàn)智能電動代步車的旅客自動識別與行程判斷、航班狀態(tài)推測和旅客運送等功能,解決自主導(dǎo)航與運動控制問題。本項目的主要研究內(nèi)容為面部識別和航班信息確認、旅客的運送與自主導(dǎo)航、代步車的運行控制。
通過對人群中的行人跟蹤檢測、行人運動狀態(tài)預(yù)估、行人動力學(xué)建模、可通行區(qū)域檢測、拓展可通行路徑和駕駛動作生成等問題的研究,解決人群中的自主路徑拓展的問題。人群中的自主路徑拓展不同于局部路徑規(guī)劃所給定的路徑,而且局部規(guī)劃的路徑在相鄰時間段內(nèi)是不變的,而對于人群中的自主路徑拓展所開辟的路徑是實時更新的,它更類似于給機器人指定運動的大致方向,機器人在已經(jīng)規(guī)劃好的路徑方向上,沿著路徑一直走下去,即便中途遇到行人阻擋,仍然沿著給定的方向一直探索、前進,以此來達到在人群中通行,最終行至目的地的目的。
旅客面部識別和航班信息確認,是基于面部識別技術(shù)對乘客的面部特征進行身份認證,通過攝像進行人臉采集,當用戶在攝像頭范圍內(nèi)時,設(shè)備會自動搜索并拍攝用戶的人臉圖像,確定圖像之后,對人臉中的眼、鼻器官進行特征提取,特征數(shù)據(jù)提取完畢后,通過與數(shù)據(jù)庫中儲存的數(shù)據(jù)特征進行搜索匹配,進行身份確認。
激光雷達的基本原理就是利用傳感器發(fā)射的激光束反射的時間差來實現(xiàn)對周圍物體的精準測距,但激光打在某些反射率較低的物體時,激光束無法返回傳感器,就造成該掃描線在那一時刻變成無效值,從整體點云看就是有該物體有部分點云缺失,比較典型的情況就是激光打在玻璃上或是打在黑色車輛上。這種情況會造成一個物體在聚類時會被分成多個小物體,因此為了改善這種情況需要對這些缺失的點進行補償。
激光雷達數(shù)據(jù)識別行人需要解決的問題是在復(fù)雜的背景中找到行人,并用矩形或立方體框標記他們的位置。因此,行人檢測屬于目標檢測的范疇,檢測行人的任務(wù)一直是有趣而艱巨的。計算機視覺被廣泛用于各種項目中,這在自動駕駛領(lǐng)域中尤為重要。自動駕駛技術(shù)能夠通過傳感器感應(yīng)周圍的環(huán)境并確定重要的環(huán)境目標,訪問重要信息,如行人和車輛的位置、深度、速度和移動距離,并幫助中央控制系統(tǒng)做出明智的決策。深度代表從目標到傳感器的距離,也是訪問信息的基礎(chǔ),如三維位置和速度。自動駕駛中的行人檢測研究可以幫助腳本系統(tǒng)做出更明智的決策,避免交通事故和死亡,因此這一點的意義顯而易見。
激光雷達的廣泛使用,可以精確地獲得準確的室外環(huán)境的深度信息以及從環(huán)境到傳感器的距離,對天氣和光照條件的影響較小。激光雷達獲取數(shù)據(jù)的形式為點云數(shù)據(jù),它的特征是無序性、稀疏性。
移動機器人依據(jù)某個或某些性能指標(如工作代價最小、行走路線最短、行走時間最短等),在運動空間中找到一條從起始狀態(tài)到目標狀態(tài)可以避開障礙物的最優(yōu)或者接近最優(yōu)的路徑。路徑規(guī)劃分為全局路徑規(guī)劃和局部路徑規(guī)劃。
全局路徑規(guī)劃:是宏觀的規(guī)劃,主要為機器人在運動中提供核心運動點,保證機器人安全到達目的地,但全局路徑規(guī)劃生成的可能不是一條軌跡,而是一些離散的點。
局部路徑規(guī)劃:為了使機器人的路線更加合理,還需要進行局部路徑規(guī)劃,對機器人的速度、加速度等進行約束。
論文局部規(guī)劃采用DWA 算法,全局規(guī)劃采用A*算法。
首先要做的就是對外部環(huán)境的實時獲取及車輛的動態(tài)路徑規(guī)劃。傳統(tǒng)機器人路徑規(guī)劃大致可分三種:
①靜態(tài)結(jié)構(gòu)化環(huán)境下的路徑規(guī)劃。
②動態(tài)已知環(huán)境下的路徑規(guī)劃。
③動態(tài)不確定環(huán)境下的路徑規(guī)劃。
將其與自動駕駛對應(yīng)起來,靜態(tài)的規(guī)劃就是根據(jù)地理信息以及交通規(guī)則在已知的全局地圖上進行道路循跡,但這個技術(shù)對于目前自動駕駛實現(xiàn)來說并沒有什么實際應(yīng)用價值。
自動駕駛需要的是對預(yù)先已選擇好的最優(yōu)路徑,甚至在未知的環(huán)境下,基于實時不確定的場景,進行動態(tài)調(diào)整的路徑規(guī)劃技術(shù),而地圖的需求、外部信息采集等就還是要依賴攝像頭、激光雷達、傳感器等硬件的支持。現(xiàn)有傳統(tǒng)機器人路徑規(guī)劃技術(shù)已經(jīng)發(fā)展得較為成熟,將該技術(shù)如何更為符合場景地應(yīng)用到自動駕駛技術(shù)上還有很長的探索階段,但現(xiàn)已存在的包括A*算法在內(nèi)的一系列最優(yōu)路徑算法將會在人工智能、機器人技術(shù)、自動駕駛等多學(xué)科的融合下得到更大的發(fā)展。
3.3.1 DWA 算法的原理
機器人的運動狀態(tài)包括其不停變換的位置及運動方向,實際上是由其當前的運動速度及角速度(轉(zhuǎn)向速度)決定的。那么,動態(tài)窗口法核心的動態(tài)窗口,其實就是根據(jù)機器人當前狀態(tài)(即當前速度、航向角)及機器人運動模型(機器人所能達到的最大速度、最大角速度、加速度、旋轉(zhuǎn)加速度)計算出當前機器人的最大最小速度及角速度,以此作為一個限定范圍,這個范圍就是窗口。在此范圍中計算每個速度及角速度下所能到達到的位置,再對每個位置進行測評(測評內(nèi)容包括據(jù)障礙物的距離、朝向終點的角度等),由此選出當前的最佳位置,然后再由這個最佳位置繼續(xù)重復(fù)以上過程建立新的窗口,這樣窗口就動起來了,即所謂的動態(tài)窗口。
3.3.2 DWA 算法的實現(xiàn)
在當前的狀態(tài)下對本狀態(tài)周圍進行采樣,獲得下一時刻的合理的動作變化,這個動作僅包括角速度和線速度。在這個方法中,我們把軌跡認為是一系列不同動作組合而產(chǎn)生的在窗口內(nèi)生成的軌跡。設(shè)定一個評價標準,選出最合理的軌跡。
首先將軌跡當成軌跡曲線,然后選取合理的速度組合生成動態(tài)窗口。選取速度有三個限制:
第一:按這個速度行駛,最大減速度停車都不能撞到最近的障礙物。
第二:加速度限制。當前狀態(tài)下,加減速變化都是有上下限的,因此下一時刻的狀態(tài)也是有上下限的。
第三:任何情況下都要遵守車輛本身的動力學(xué)限制。
動態(tài)窗口就是這三個限制的交集。
A*算法的原理:A*算法是將地圖虛化,并將其劃分為一個個小方塊,這樣可以用二維數(shù)組來表示地圖。劃分完成后在周圍不停的找點選出一個新的點作為起點后再循環(huán)的找點。
在計算機科學(xué)中,A*算法作為Dijkstra 算法的擴展,因其高效性而被廣泛應(yīng)用于尋路和圖的遍歷。在理解算法前,我們需要知道幾個概念:
①搜索區(qū)域(The Search Area):圖中的搜索區(qū)域被劃分為簡單的二維數(shù)組,數(shù)組每個元素對應(yīng)一個小方格,當然我們也可以將區(qū)域等分成是五角星、矩形等,通常將一個單位的中心點稱之為搜索區(qū)域節(jié)點(Node),而非方格(Squares)。
②開放列表(Open List):我們將路徑規(guī)劃過程中待檢測的節(jié)點存放于Open List 中,而已檢測過的格子則存放于Close List 中。
③父節(jié)點(Parent):在路徑規(guī)劃中用于回溯的節(jié)點,開發(fā)時可考慮為雙向鏈表結(jié)構(gòu)中的父結(jié)點指針。
④路徑排序(Path Sorting):具體往哪個節(jié)點移動由以下公式確定:
F(n)=G(n)+H(n)
式中,G 代表的是從初始位置A 沿著已生成的路徑到指定待檢測格子的移動開銷;H 代表的是待測格子到目標節(jié)點B 的估計移動開銷。
⑤啟發(fā)函數(shù)(Heuristics Function):H 為啟發(fā)函數(shù),也被認為是一種試探,由于在找到唯一路徑前,我們不確定在前面會出現(xiàn)什么障礙物,因此用了一種計算H 的算法,具體根據(jù)實際場景決定。在我們簡化的模型中,H 采用的是傳統(tǒng)的曼哈頓距離(Manhattan Distance),也就是橫縱向走的距離之和。
移動式兩輪差動驅(qū)動機器人結(jié)構(gòu)簡單、控制方便,是最常用的移動機器人,其運動模型是移動機器人研究的重要內(nèi)容。當前,對兩輪差速傳動移動機器人的研究經(jīng)常被忽視,它包含相關(guān)的動態(tài)因素,包括移動機器人下面的驅(qū)動電機的動態(tài)性能。但是,在實際的機器人系統(tǒng)中,當機器人負載發(fā)生變化時,驅(qū)動系統(tǒng)負載也會發(fā)生變化,這會影響驅(qū)動系統(tǒng)的動態(tài)響應(yīng)過程并導(dǎo)致機器人運動。具有差動驅(qū)動的兩輪移動機器人是多輸入多輸出控制系統(tǒng),其運動學(xué)模型具有典型的非完整約束,每個驅(qū)動電路通常使用內(nèi)部非線性連接的雙閉環(huán)控制系統(tǒng)。它是具有多個非線性結(jié)的非線性系統(tǒng),需要使用非線性建模技術(shù)來構(gòu)建模型。因此,我們創(chuàng)建了一個考慮了移動機器人動態(tài)行為的兩輪差速變速器移動機器人的運動模型,其中,控制具有非常重要的理論和實踐意義。
自動控制發(fā)展經(jīng)歷了經(jīng)典控制理論、現(xiàn)代控制理論到智能控制等幾個階段。伴隨著自動控制理論的不斷發(fā)展,控制算法越來越復(fù)雜,并且越來越多地體現(xiàn)出對控制系統(tǒng)模型依賴的特性。但是從總體上來看,方法的研究基本上都是基于理論和數(shù)值研究。單純的現(xiàn)代控制方法,對控制系統(tǒng)的分析和設(shè)計主要是通過對系統(tǒng)的狀態(tài)變量的描述來進行的,都是基于系統(tǒng)精確的數(shù)學(xué)模型而得出相應(yīng)的控制系統(tǒng),因此不可避免地存在魯棒性較差的問題。
而經(jīng)典的PID 控制不需要控制對象的機理或動態(tài)的數(shù)學(xué)模型,只需目標設(shè)定值與被控輸出量之間的誤差,通過適當對這個誤差進行加工產(chǎn)生的控制力來消除誤差。因而在當前的過程控制及運動控制兩大領(lǐng)域中,使用最廣泛的依舊是傳統(tǒng)的PID 控制。但是隨著一些高品質(zhì)控制設(shè)備的需求,傳統(tǒng)的PID 控制由于形式所限也遇到了很大的瓶頸,如何跳出現(xiàn)代控制論的模型框架,并且有效地克服PID 控制的缺點,發(fā)揚它的精髓,一直是控制理論研究工作者的一個努力方向。
在這樣思想的指導(dǎo)下,歷經(jīng)了近30年的發(fā)展,一種最大程度保持PID 控制形式,同時借助于現(xiàn)代控制理論中觀測器思想而不依賴于被控對象模型的自抗擾控制(Active Disturbance Rejection Control, ADRC)思想,成為面向工程從事現(xiàn)代理論思想應(yīng)用的典范。
①安排“過渡過程”。直接根據(jù)給定指令計算誤差可能會導(dǎo)致控制效果變差,如有些指令里包含了我們不希望的高頻信號,這類信號的例子有階躍指令、方波指令。為了將高頻信號解決掉,ADRC 提出了安排“過渡過程”的方法,類似于把給定指令進行低通濾波,得到一個更容易實現(xiàn)的指令,從而在犧牲一點快速性的同時大大降低超調(diào)。
②由誤差提取誤差微分的方法“跟蹤微分器”的設(shè)計。
③確定合適的“非線性組合”。傳統(tǒng)的線性反饋方式(就是誤差直接乘上一個增益)在收斂速度以及抗擾動能力上存在不足,ADRC 的方案是用非線性函數(shù)代替?zhèn)鹘y(tǒng)的增益,用非線性反饋代替線性反饋。
④擴張狀態(tài)觀測器的設(shè)計。積分的主要作用之一就是消除擾動(可以認為它是簡單的擾動觀測器),但是積分起作用比較慢,而且還會引起超調(diào)。所以,ADRC 直接把積分舍棄了,使用擴張狀態(tài)觀測器來觀測總擾動,將系統(tǒng)補償成純積分鏈的形式。
論文的仿真環(huán)境為開源機器人仿真軟件Vrep,Ubuntu16.04 ROS kinetic,使用的研華工控機未搭載NVIDIA GPU 設(shè)備,采用Intel 推出的開放式視覺推理和神經(jīng)網(wǎng)絡(luò)優(yōu)化工具套件Open VINO。
仿真實驗和實際場景實驗均使用Gmapping 激光SLAM方法構(gòu)建的環(huán)境柵格地圖,實際場景通過載運機器人單線激光雷達、Intel D435 深度相機進行行人檢測與跟蹤。其中深度相機行人檢測采用現(xiàn)有的基于SSD 目標檢測算法,部署環(huán)境為Intel OpenVino 2019R3,單線激光雷達行人檢測采用Unet算法,上述行人檢測結(jié)果通過坐標系變換至世界坐標系,并通過K 近鄰算法基于世界坐標系位置進行融合。
在人與機器都有的復(fù)雜環(huán)境中,安裝在運輸機器人上的單線激光雷達的探測高度為行人膝蓋的高度,因此當前提供的有關(guān)行人特征的信息受到限制,并且行人的檢測和位置也受到限制。機器人操作系統(tǒng)(ROS)提供的leg_detector 行人腿部檢測程序包,使用機器學(xué)習(xí)技術(shù)來檢測和匹配行人小腿信息以及行走時的行人小腿特征。這得益于用于深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,使用拉格朗日插值算法對單獨的單線激光雷達數(shù)據(jù)點進行了插值,從而獲得了具有結(jié)構(gòu)化屬性的二值圖像。根據(jù)行人小腿的特征,使用SSD 神經(jīng)網(wǎng)絡(luò)進行特征處理提取,最終實現(xiàn)行人的定位。
如圖1是自抗擾運動控制仿真結(jié)果;圖2是雙輪差速模型自抗擾控制仿真結(jié)果圖;圖3是智能代步車;圖4是程序流程圖。
圖1 雙輪差速機器人自抗擾控制simulink 仿真圖
圖2 雙輪差速模型自抗擾控制仿真結(jié)果圖
圖3 智能代步車正面圖
圖4 程序流程圖