背景
通過前期在家庭拖地機(jī)器人方面的工程實踐,我們發(fā)現(xiàn)處理這種類似場景(封閉場所乏德,環(huán)境相對靜態(tài),低速行動吠昭,需要機(jī)器人主體在2D平面上自主導(dǎo)航)的應(yīng)用喊括,有太多相似的地方,可以模塊化矢棚,提供硬件平臺+軟件平臺的打包方式郑什,幫助工程應(yīng)用迅速完成導(dǎo)航,感知蒲肋,決策蘑拯,運動控制方面比較專業(yè)和困難的任務(wù),快速應(yīng)用和市場化肉津。我們把這個可復(fù)用强胰,通過簡單配置的即插即用的硬件+軟件平臺,統(tǒng)稱為運動控制平臺妹沙。 目前除了家庭掃地,拖地機(jī)器人應(yīng)用外熟吏,我們還在 下一代智能AGV小車(自動導(dǎo)引車)距糖,進(jìn)行工程導(dǎo)引,解決傳統(tǒng)的AGV小車需要為某個特定路線預(yù)設(shè)磁條牵寺,修改路線非常困難的痛點悍引。
目前人工智能領(lǐng)域普遍被認(rèn)為是移動互聯(lián)之后,下一個風(fēng)口帽氓,但是看到能夠落地的工程應(yīng)用不多趣斤,其中自動駕駛是其中最炙手可熱的可落地領(lǐng)域±栊荩互聯(lián)網(wǎng)巨擎(谷歌浓领,uber,百度為首)玉凯,傳統(tǒng)汽車大廠, tier1供應(yīng)商联贩,學(xué)術(shù)明星和領(lǐng)域知名專家的初創(chuàng)公司漫仆,紛紛進(jìn)入該領(lǐng)域,投入到這場轟轟烈烈的全新的交通運輸生態(tài)的創(chuàng)建中泪幌。截止2017年6月18日以來盲厌,共有34家公司獲得美國加州路測資格,其中中國背景的公司就有9家祸泪,見下圖(來自公開互聯(lián)網(wǎng)):
通過對自動駕駛技術(shù)的了解吗浩,發(fā)現(xiàn)自動駕駛與我們的運動控制平臺無論從技術(shù)框架構(gòu)成,還是到硬件平臺應(yīng)用理解没隘,軟件核心算法上都基本契合拓萌。本文通過比較自動駕駛和運動控制平臺的技術(shù)棧,具體實現(xiàn)算法升略,普及自動駕駛技術(shù)微王,分析自動駕駛技術(shù)發(fā)展給我們留下的切入點和機(jī)會,及運動控制平臺未來的擴(kuò)展點品嚣。
下文的比較炕倘,自動駕駛主要拿百度的Apollo技術(shù)作為描述比較主體,因為目前自動駕駛技術(shù)翰撑,百度公開的最為徹底罩旋,它所用的思想,代表了目前做自動駕駛的主流路線眶诈。
技術(shù)框架(運動控制平臺vs自動駕駛)
下圖是我們運動控制平臺的技術(shù)棧分層:
上圖中涨醋,橙色部分是我們運動控制平臺的主體,其中運算單板是運動控制平臺提供的硬件模塊部分逝撬,由ARM CPU浴骂,NEON, Mali GPU, FPGA 組成的嵌入式異構(gòu)并行計算平臺宪潮。其中感知溯警,定位,避障狡相,地圖梯轻,路徑規(guī)劃,導(dǎo)航尽棕,跟蹤是封裝的軟件算法模塊喳挑,工程應(yīng)用通過配置就可即插即用。藍(lán)色模塊,是配套伊诵,硬件部分根據(jù)工程實踐的需要進(jìn)行選取单绑,軟件操作系統(tǒng)層和仿真層是目前開源的軟件棧。
運動底座是工程方進(jìn)行設(shè)計提供日戈,在我們的家庭拖地車實踐中询张,我們自己設(shè)計了結(jié)合拖地要求的底座。在AGV小車的工程實踐中浙炼,傳統(tǒng)的AGV小車輪式結(jié)構(gòu)可以直接拿來用份氧。 一般來說,對于低速移動的場景應(yīng)用弯屈,差分輪式運動底座是應(yīng)用比較普遍的選擇蜗帜。 有兩個主動輪,可以分別控制轉(zhuǎn)速和轉(zhuǎn)的方向资厉, 前面有一個被動萬向輪厅缺。運動底座向上提供的基本接口包括:線形速度,角速度或者曲率控制宴偿, 查詢當(dāng)前里程計信息(運動底座通過輪半徑湘捎,轉(zhuǎn)動數(shù)目進(jìn)行統(tǒng)計),完成上層對于運動底座的底層控制和信息查詢窄刘,通過低速的串行接口通訊就基本滿足要求窥妇。做對機(jī)器人做算法學(xué)術(shù)研究,或者前期對運動控制算法做驗證階段娩践,會選擇商用的運動底盤提供商的產(chǎn)品活翩,如比較有名的kobuki運動平臺,從圖中可以看到翻伺,它的提供了豐富的接口材泄,非常方便對于傳感器和計算單元的擴(kuò)展。
在與運算單板同層的其他模塊吨岭,都是感知單元拉宗。按照工程實踐的實際要求,進(jìn)行選取未妹。這些感知單元涵蓋了目前主流的環(huán)境感知技術(shù)簿废,傳感單元中 沒有包含gps。 這跟我們目前運動控制平臺主要的應(yīng)用場景和要求有關(guān)络它。 我們的工程應(yīng)用目前在室內(nèi)的比較多, gps 在室內(nèi)環(huán)境是沒有信號的歪赢,對于定位沒有幫助化戳。 傳感單元中提供了碰撞傳感的選項,在室內(nèi)掃地拖地場景中,低速機(jī)器人是要求盡量全覆蓋点楼,尤其是墻角邊緣扫尖,這樣是需要碰撞傳感結(jié)合滿足要求的。 在其他場景如AGV小車掠廓,則不能碰撞换怖,不需要與障礙物無限靠近。激光雷達(dá)的選擇蟀瞧,結(jié)合成本和當(dāng)前應(yīng)用場景的要求沉颂,單線雷達(dá)就滿足要求。 傳感器的作用相當(dāng)于悦污,機(jī)器人的眼睛铸屉,跟上層軟件功能棧配合,完成定位算法切端,物體識別彻坛,物體跟蹤,建圖踏枣,避障昌屉,動作規(guī)劃功能。
操作系統(tǒng)層面茵瀑,我們的軟件建立在目前主流的機(jī)器人操作系統(tǒng)ROS(Robot operation system)间驮。ROS是Willow Garage公司在2010年發(fā)布的開源機(jī)器人操作系統(tǒng),由于其具有點對點設(shè)計瘾婿,不依賴于編程語言蜻牢,分布式架構(gòu),強大的硬件抽象偏陪,廣泛的社區(qū)參與貢獻(xiàn)抢呆,豐富的可復(fù)用,知名的開源庫資源笛谦,已經(jīng)成為機(jī)器人設(shè)計的不二選擇抱虐。對于低速運動場景,原生的ROS環(huán)境完全滿足設(shè)計要求饥脑。
Gazebo 仿真平臺是機(jī)器人設(shè)計人員的主流選擇恳邀。在算法驗證階段,我們不可能缺省認(rèn)為運動底座灶轰,傳感器谣沸,單板,驅(qū)動都準(zhǔn)備就緒的機(jī)器人笋颤,立在那里等我們上板調(diào)試乳附。也不可能有戶型各異,障礙物擺放各異的室內(nèi)環(huán)境讓我們?nèi)L試。仿真平臺對于機(jī)器人設(shè)計至關(guān)重要赋除。 Gazebo 仿真平臺是一個開源的仿真工具阱缓,通過Gazebo,我們可以在pc上設(shè)計我們的機(jī)器人外觀举农,各種傳感方式荆针,機(jī)器人各部分相對移動方式(如機(jī)械手臂6個自由度的移動)。我們可以設(shè)計任何三維環(huán)境颁糟,根據(jù)設(shè)計師三維建模水平而定航背,可以設(shè)計無限逼真的三維仿真環(huán)境。當(dāng)然滚停,簡單的環(huán)境仿真沃粗,直接通過所見即所得的方式,拖拽一些缺省模塊键畴,可以快速建立一個室內(nèi)仿真環(huán)境最盅。 我們曾經(jīng)為商場掃地車工程實踐, 設(shè)計過一比一的掃地車起惕,和商場模型涡贱,玻璃窗和地面的光反射,激光透射玻璃都相當(dāng)逼真惹想。我們可以在pc 的Gazebo平臺上问词,使用我們預(yù)先建立的機(jī)器人模型和環(huán)境模型,驗證算法嘀粱。Gazebo 仿真平臺目前是商用自主移動機(jī)器人激挪,無人機(jī)設(shè)計的主流選擇。
下圖是自動駕駛Apollo技術(shù)框架(來自于互聯(lián)網(wǎng)):
百度的自動駕駛分為四層技術(shù)棧:
1. 參考汽車平臺: 一輛汽車锋叨, 必須可以實現(xiàn)電子化的控制垄分,也就是線控。百度目前的參考設(shè)計使用的是Lincoln MKZ, enhanced by Autonomous Stuff, 為用戶提供了一個無障礙的自動車輛平臺娃磺。該平臺為用戶提供了一整套硬件和軟件解決方案薄湿。用戶可以直接獲得車輛某些模塊控制權(quán)限,如檔位偷卧,速度和指示燈豺瘤。見下圖:
2.? 參考硬件平臺: 為了實現(xiàn)高性能穩(wěn)定的計算,百度采用的是工業(yè)級PC Neousys宸曜科技 Nuvo-5095GC作為運算單元听诸, 配置6th-Gen Intel? Core? i7/i5 LGA1151 CPU 和NVIDIA? GeForce? GTX 1050* GPU坐求,可以工作在-25度到60度的工作范圍。
GPS/IMU采用的是NovAtel SPAN-IGM-A1晌梨,理論上 rtk-gps加IMU的融合方案出來的精度能達(dá)到厘米級別瞻赶。在apollo 1.0 沒有公開攝像頭赛糟,Lidar(雷達(dá))派任,Radar(毫米波雷達(dá))信息砸逊,不過根據(jù)百度以前無人駕駛車的信息,有一個Velodyn 64線HDL64E雷達(dá)掌逛,配套一個長距毫米波雷達(dá)和中距毫米波雷達(dá)师逸,一個魚眼攝像頭和一個攝像機(jī)鏡頭。
3. 操作系統(tǒng): Apollo 采用 ubuntu 14.04+ ROS indigo豆混。 其中ROS是做了定制化修改的篓像,使得更適合自動駕駛的要求,后面章節(jié)會詳細(xì)介紹皿伺。
4. 上層算法:算法模塊的構(gòu)成與運動模塊基本類似员辩。多了端對端和HMI。HMI是百度自動駕駛提供的人機(jī)交互界面鸵鸥,方便操作者統(tǒng)計奠滑,調(diào)試。 端對端算法是一種所見即行動的一種思想妒穴,通過深度學(xué)習(xí)宋税,將感知直接轉(zhuǎn)化為控制,這是一種實驗性質(zhì)的算法讼油,目前的狀況不應(yīng)該是主流應(yīng)用杰赛。
5. 云: 主要有三個作用, ?訓(xùn)練模型, 自動駕駛仿真矮台, 高精地圖提供乏屯。
從上面關(guān)于運動導(dǎo)航模塊和自動駕駛技術(shù)棧的描述,我們可以看到兩者之間有頗多相似的地方瘦赫。
1. ?運動底盤 vs 參考汽車平臺:都是運動的控制主體辰晕,為上層算法提供控制接口進(jìn)行驅(qū)動,提供查詢接口進(jìn)行反饋耸彪。 運動底盤和汽車控制的時候都是要滿足非完整約束仙蛉,就是不在作出向前移動的情況下壹士,無法單獨完成橫向位移。 相比于運動底盤,汽車平臺的動力學(xué)模型會更加復(fù)雜瞧省,除了速度不是一個量級的 ,慣性因素會使得控制更加復(fù)雜械媒。 汽車的橫向位移(轉(zhuǎn)彎)靠前輪的朝向與前輪后輪形成直線的夾角的變化蛀骇,屬于自行車模型。 運動控制模塊多采用差分輪運動底盤荧呐,橫向位移靠兩個輪子相互反方向旋轉(zhuǎn)汉形,靠不同的旋轉(zhuǎn)速度比纸镊,來滿足不同曲率的要求。在控制算法的選取中概疆,會有不同逗威。
2. 硬件平臺: 運算單元和感知單元部分。 運算單元岔冀, 運動控制平臺采用的是嵌入式異構(gòu)計算單板凯旭, 滿足低速簡單運動場景的感知算法,決策使套,控制算法的計算要求罐呼。 汽車應(yīng)對的高速,絕對可靠安全的場景侦高,運算量不是一個量級嫉柴,目前多采用工業(yè)級PC的方案,里面多采用英偉達(dá)的GPU奉呛,來滿足感知對于運算量的要求计螺。芯片廠商, 英偉達(dá)侧馅,德州儀器危尿,賽靈克斯,intel馁痴, 也紛紛推出自己的芯片方案谊娇,中國的寒武紀(jì),中星微也有自己的芯片方案罗晕,后續(xù)運算單元平臺將是百花爭妍的局面济欢。感知單元, 運動控制平臺和自動駕駛采用的傳感器大多重疊小渊。有幾個不同地方法褥。 深度攝像頭可以在運動控制平臺應(yīng)用場景中的室內(nèi)場景中使用,深度主要靠結(jié)構(gòu)光技術(shù)酬屉,抗干擾能力差半等,目前的技術(shù)上,在室外場景不可靠呐萨。 自動駕駛多采用雙目攝像頭來完成深度識別杀饵。 運動控制平臺采用超聲和紅外完成被動障礙感知, 自動駕駛采用汽車電子方面非常成熟的毫米波雷達(dá)方案谬擦。
3. ?操作系統(tǒng)切距, 兩者都使用 ubuntu 14.04+ ROS indigo。汽車對于實時性惨远, 帶寬谜悟, 分布式要求會更加嚴(yán)苛话肖。 原生的ROS 對于這三方面都無法達(dá)到自動駕駛的要求,雖然 ROS 2.0 會在這三個方面有很大的提升葡幸,但是仍然處于實驗階段最筒。 大部分自動駕駛廠商,包括百度礼患,都是在ROS基礎(chǔ)上作深度定制是钥。?
4. 上層算法:模塊分類基本類似,所采用的算法實現(xiàn)有很多借鑒的地方缅叠, 在后面的章節(jié)詳細(xì)描述。
5. ?仿真: 運動控制平臺的場景相對簡單虏冻,采用開源的gazebo 仿真技術(shù)肤粱,在一些相對高配置的pc上基本滿足要求。 自動駕駛一般要自動駕駛廠商自己搭建仿真平臺厨相, 汽車要仿真的環(huán)境非常復(fù)雜领曼,計算量消耗很大,一般要采用云技術(shù)分布式平臺蛮穿。?
6. 地圖: 運動控制平臺的地圖創(chuàng)建所描繪的場景比較簡單庶骄, 一般2d 場景地圖大概滿足要求,在運算單元上可以完成創(chuàng)建和使用践磅。 自動駕駛需要高精地圖单刁, 3維點云,精確到厘米級別府适,全國地圖羔飞。 特點是需要提前采集,需要花費巨大成本用采集車去采集檐春,生成的高精地圖要隨時去更新逻淌,消耗大量的存儲,一般要放在云端疟暖,自動駕駛車通過高速無線網(wǎng)絡(luò)下載當(dāng)時位置的高精地圖滿足實時決策要求卡儒。?
7. 訓(xùn)練: 運動控制平臺會對地墊,椅子俐巴,人有簡單識別要求骨望,實際情況根據(jù)工程需要。模型提前可以在服務(wù)器端訓(xùn)練窜骄,訓(xùn)練數(shù)據(jù)相對不多锦募。 汽車有海量的數(shù)據(jù)要進(jìn)行訓(xùn)練,滿足高可靠性的物體識別任務(wù)邻遏,要在云端進(jìn)行訓(xùn)練糠亩。
8. 運動控制平臺的多機(jī)協(xié)作要求 vs 車聯(lián)網(wǎng)方案: 目前運動控制平臺的設(shè)計沒有過多考慮多機(jī)協(xié)作的要求虐骑,不過會在以后擴(kuò)展,應(yīng)用場景如 多個AGV小車互聯(lián)互通共同完成調(diào)度任務(wù)赎线,是車車通信的一種方式廷没。 車聯(lián)網(wǎng)方案是自動駕駛的一條路徑,在百度Apollo框架中并沒有提及垂寥。 包含V2V(車車通信)颠黎,V2I( 車路通信), V2P(車人通信)滞项,完成信息共享后的汽車決策狭归,控制算法。目前通信標(biāo)準(zhǔn)主要是歐美主推的DSRC(專用短程通信)和中國主推的5G標(biāo)準(zhǔn)LTE-V文判。
后面的章節(jié)过椎,會對具體的一些算法和模塊進(jìn)行一些詳細(xì)比較和描述。