器人感知定位傳感器選型指南:從視覺、激光雷達(dá)到IMU的實(shí)戰(zhàn)解析)
1. 項(xiàng)目概述從“眼睛”和“耳朵”說起搞機(jī)器人開發(fā)無論是做一臺能滿屋跑的掃地機(jī)還是一個能在工廠里精準(zhǔn)抓取的機(jī)械臂甚至是未來能和你對話的人形伙伴第一個繞不開的坎就是“感知定位”。你可以把它想象成機(jī)器人的“眼睛”和“耳朵”甚至是“皮膚”和“平衡感”。沒有這些機(jī)器人就是個又聾又瞎的鐵疙瘩別說完成復(fù)雜任務(wù)連自己在哪兒、周圍有什么都搞不清楚。我這些年折騰過不少機(jī)器人項(xiàng)目從簡單的循線小車到復(fù)雜的移動平臺深刻體會到感知定位系統(tǒng)的選型和搭建直接決定了項(xiàng)目的上限和下限。今天咱們就拋開那些高大上的算法名詞先扎扎實(shí)實(shí)地聊聊構(gòu)成這套系統(tǒng)的物理基礎(chǔ)——感知定位元件。這是整個大廈的地基地基不穩(wěn)后面用再牛的SLAM即時定位與地圖構(gòu)建算法也建不起高樓。所謂感知定位元件就是那些能把物理世界的信息比如距離、光線、圖像、聲音、姿態(tài)轉(zhuǎn)換成機(jī)器人“大腦”通常是主控計(jì)算機(jī)能理解的數(shù)字信號的設(shè)備。它們?yōu)闄C(jī)器人提供了關(guān)于自身狀態(tài)和外部環(huán)境的第一手?jǐn)?shù)據(jù)。這上半篇我們重點(diǎn)梳理兩大類最核心、應(yīng)用最廣泛的元件用于環(huán)境感知的傳感器如視覺傳感器、激光雷達(dá)和用于自身狀態(tài)感知的傳感器如慣性測量單元。我們會深入它們的工作原理、選型要點(diǎn)、以及在實(shí)際項(xiàng)目中那些文檔里不會寫的“坑”。理解了這些你才能明白為什么有的方案用攝像頭有的必須上激光雷達(dá)以及為什么你的機(jī)器人老是“迷路”或者“撞墻”。2. 核心需求解析機(jī)器人到底需要知道什么在開始挑選具體的傳感器之前我們必須先明確機(jī)器人需要獲取哪些信息。這就像出門旅行前列清單你得知道要帶什么。對于機(jī)器人而言其感知需求可以歸納為三個根本性問題我在哪里 (定位 - Localization)絕對位置我在世界坐標(biāo)系下的x, y, z坐標(biāo)和朝向偏航角、俯仰角、橫滾角。例如無人機(jī)需要知道自己的經(jīng)緯高和機(jī)頭方向。相對位置我相對于某個已知參照物如一個二維碼、一個墻角、上一個時刻的自己的位置和姿態(tài)變化。這是里程計(jì)Odometry的核心任務(wù)。我周圍有什么 (感知 - Perception)幾何信息周圍物體的形狀、大小、距離。這決定了機(jī)器人能否避障、導(dǎo)航和操作物體。比如掃地機(jī)器人需要知道前方20厘米處有一把椅子腿。語義信息周圍物體是什么。這是一把椅子、一個人、一扇門還是一個紅色的停止標(biāo)志這需要更高級的感知能力通常結(jié)合視覺和人工智能算法。動態(tài)信息周圍物體是否在運(yùn)動速度、方向如何這對于在動態(tài)環(huán)境中如人機(jī)共融車間安全運(yùn)行至關(guān)重要。我自身狀態(tài)如何 (狀態(tài)估計(jì) - State Estimation)運(yùn)動狀態(tài)我當(dāng)前的速度線速度、角速度、加速度。姿態(tài)狀態(tài)我身體的傾斜角度對于平衡機(jī)器人如兩輪自平衡車、四足機(jī)器人至關(guān)重要。不同的機(jī)器人形態(tài)和任務(wù)對這三類信息的精度、頻率、可靠性要求天差地別。一個在結(jié)構(gòu)化倉庫里沿著磁條行走的AGV自動導(dǎo)引車可能只需要讀磁條的傳感器和輪子編碼器就夠了。而一個在復(fù)雜野外環(huán)境勘探的移動機(jī)器人則需要激光雷達(dá)、視覺、GPS、IMU慣性測量單元等多傳感器深度融合。理解你的核心需求是進(jìn)行傳感器選型的第一步也是避免過度設(shè)計(jì)或設(shè)計(jì)不足的關(guān)鍵。3. 環(huán)境感知核心元件一視覺傳感器視覺傳感器簡單說就是給機(jī)器人裝上“眼睛”。它是目前信息量最豐富、成本相對較低的感知方式但同時也是最復(fù)雜、受環(huán)境影響最大的。3.1 單目攝像頭成本與深度的博弈單目攝像頭就是我們手機(jī)上最常見的那個攝像頭。它價(jià)格低廉能提供高分辨率的2D圖像信息非常適合做物體識別、顏色跟蹤、二維碼識別等任務(wù)。工作原理將三維世界投影到二維平面丟失了深度信息。你從照片里無法直接知道一個物體離你有多遠(yuǎn)。如何獲取深度需要通過算法從單張圖像中推斷單目深度估計(jì)精度有限或者通過移動攝像頭拍攝多幀圖像利用視差原理計(jì)算運(yùn)動恢復(fù)結(jié)構(gòu)SFM但這依賴于運(yùn)動且計(jì)算量大。實(shí)操要點(diǎn)與避坑鏡頭選擇焦距決定視野FOV。廣角鏡頭視野大但邊緣畸變嚴(yán)重長焦鏡頭視野窄但看得遠(yuǎn)、畸變小。根據(jù)機(jī)器人工作距離選擇。標(biāo)定是生命線必須進(jìn)行相機(jī)標(biāo)定獲取內(nèi)參焦距、主點(diǎn)、畸變系數(shù)和外參相機(jī)相對于機(jī)器人本體的位置和姿態(tài)。標(biāo)定不準(zhǔn)后續(xù)所有視覺處理都是空中樓閣。推薦使用張正友標(biāo)定法用棋盤格工具反復(fù)多角度拍攝進(jìn)行標(biāo)定。光照是頭號敵人光線過暗、過亮、逆光、陰影都會極大影響圖像質(zhì)量。在工業(yè)場景中必須考慮增加補(bǔ)光燈或選擇對光照不敏感的視覺算法如基于邊緣的特征。算力要求做實(shí)時圖像處理如目標(biāo)檢測對機(jī)器人的計(jì)算單元CPU/GPU有較高要求。注意不要指望單目攝像頭能提供穩(wěn)定、精確的深度信息來做實(shí)時避障。它更擅長“是什么”而不是“有多遠(yuǎn)”。3.2 雙目/多目視覺主動恢復(fù)深度為了解決單目無深度的問題雙目視覺模仿了人眼的原理。工作原理使用兩個經(jīng)過嚴(yán)格標(biāo)定、位置固定的攝像頭同時拍攝同一場景。通過尋找兩幅圖像中相同特征點(diǎn)的像素位置差異視差結(jié)合已知的相機(jī)間距基線利用三角測量原理直接計(jì)算出每個特征點(diǎn)的深度信息生成深度圖。優(yōu)勢被動式不主動發(fā)光適合室外等對主動光源有干擾或限制的場景能同時獲得彩色圖像和深度信息。劣勢與避坑計(jì)算復(fù)雜度高立體匹配算法是計(jì)算密集型任務(wù)對硬件要求高實(shí)時性挑戰(zhàn)大。紋理依賴在缺乏紋理的平坦區(qū)域如白墻、純色桌面難以找到匹配特征點(diǎn)會導(dǎo)致深度圖出現(xiàn)大面積空洞。標(biāo)定要求極高兩個相機(jī)的相對位置旋轉(zhuǎn)和平移必須精確標(biāo)定并保持穩(wěn)定。任何微小的機(jī)械形變?nèi)缯饎印崦浝淇s都會導(dǎo)致標(biāo)定失效深度計(jì)算錯誤?;€選擇基線越長測距越遠(yuǎn)、越準(zhǔn)但視野重疊區(qū)域越小近處物體可能無法成像。需要根據(jù)測距范圍權(quán)衡。3.3 結(jié)構(gòu)光與ToF飛行時間深度相機(jī)主動投射直接測距這類相機(jī)主動向環(huán)境投射特定的光圖案結(jié)構(gòu)光或脈沖光ToF通過分析反射光來直接獲取深度信息是目前機(jī)器人領(lǐng)域特別是室內(nèi)服務(wù)機(jī)器人、機(jī)械臂引導(dǎo)的主流選擇。結(jié)構(gòu)光如Intel RealSense D4xx系列原理投射一組已知的、有編碼特征的點(diǎn)陣或條紋圖案到物體表面。由于物體表面凹凸不平圖案會發(fā)生形變。相機(jī)捕獲形變后的圖案通過與原始圖案對比計(jì)算出每個點(diǎn)的深度。特點(diǎn)精度較高在近距離通常0.1-4米表現(xiàn)好分辨率高。但容易受強(qiáng)環(huán)境光特別是太陽光干擾室外基本無法使用。投射的圖案也可能被人眼看到通常為不可見紅外光但部分型號仍有微弱紅光。ToF如微軟Azure Kinect 部分手機(jī)前置深感鏡頭原理發(fā)射調(diào)制的近紅外光脈沖測量光脈沖從發(fā)射到被物體反射回來的飛行時間直接換算成距離。特點(diǎn)抗環(huán)境光干擾能力比結(jié)構(gòu)光強(qiáng)幀率高測距范圍可以更遠(yuǎn)可達(dá)數(shù)米。但傳統(tǒng)ToF相機(jī)分辨率相對較低存在多徑干擾光通過多個路徑反射回來和邊緣混疊問題。iToF間接ToF通過測量相位差來計(jì)算距離是目前主流。選型與實(shí)操心得室內(nèi)vs室外室內(nèi)優(yōu)先考慮結(jié)構(gòu)光或ToF室外或光線復(fù)雜場景雙目視覺或激光雷達(dá)更可靠。精度與范圍仔細(xì)閱讀數(shù)據(jù)手冊中的“精度”曲線圖。深度相機(jī)的精度通常隨距離增加而急劇下降。例如某相機(jī)在1米處精度±1mm在4米處可能只有±5cm。多機(jī)干擾如果同一個場景有多臺同型號主動深度相機(jī)同時工作它們發(fā)出的光圖案會相互干擾導(dǎo)致深度圖出現(xiàn)大量噪點(diǎn)。需要從硬件或軟件上做同步或編碼區(qū)分。對透明/吸光物體無效玻璃、鏡面、純黑色物體吸收紅外光會導(dǎo)致測距失敗。4. 環(huán)境感知核心元件二激光雷達(dá)如果說視覺傳感器是“眼睛”那激光雷達(dá)LiDAR就是一把極其精確的“尺子”。它通過激光束掃描周圍環(huán)境生成高精度的點(diǎn)云數(shù)據(jù)是機(jī)器人定位、建圖和避障的黃金標(biāo)準(zhǔn)傳感器。4.1 工作原理與核心指標(biāo)激光雷達(dá)的核心原理是激光測距。它向目標(biāo)發(fā)射激光脈沖接收反射信號通過測量光的飛行時間ToF與ToF相機(jī)原理類似或相位差來計(jì)算距離。通過內(nèi)部的旋轉(zhuǎn)鏡片或固態(tài)掃描裝置讓激光束在水平方向有時也包括垂直方向進(jìn)行掃描從而獲得周圍環(huán)境一系列點(diǎn)的距離和角度信息形成點(diǎn)云。選型時必須關(guān)注以下幾個核心指標(biāo)測距范圍與精度最遠(yuǎn)能測多遠(yuǎn)在不同距離下的誤差是多少室內(nèi)機(jī)器人可能只需要10-20米而自動駕駛汽車則需要200米以上。掃描頻率與角度分辨率每秒完成多少次全周掃描Hz水平方向上兩個相鄰點(diǎn)之間的角度間隔是多少°這決定了點(diǎn)云的密度和更新速度。高頻率和高分辨率意味著更細(xì)膩的環(huán)境感知和更快的反應(yīng)速度但數(shù)據(jù)量和價(jià)格也更高。線數(shù)主要指機(jī)械旋轉(zhuǎn)式雷達(dá)的垂直方向激光束數(shù)量。如16線、32線、64線、128線。線數(shù)越多垂直視野越寬獲取的環(huán)境三維信息越豐富價(jià)格也呈指數(shù)級增長。對于地面機(jī)器人低線數(shù)雷達(dá)如16線結(jié)合其安裝俯仰角通常也能獲得很好的地面和障礙物信息。抗干擾能力在多雷達(dá)同時工作或強(qiáng)陽光直射下能否穩(wěn)定輸出好的雷達(dá)會有光學(xué)濾波和信號處理機(jī)制來抑制干擾。4.2 2D與3D激光雷達(dá)的選擇2D激光雷達(dá)單線掃描特點(diǎn)在一個平面上進(jìn)行掃描獲得一條“線”狀的點(diǎn)云數(shù)據(jù)。經(jīng)典產(chǎn)品如SICK、Hokuyo的系列以及國內(nèi)的石墨、思嵐等。應(yīng)用場景室內(nèi)移動機(jī)器人如掃地機(jī)、倉儲AGV的絕對主力。用于構(gòu)建2D占據(jù)柵格地圖如Gmapping、Cartographer算法、實(shí)現(xiàn)2D SLAM和導(dǎo)航。因?yàn)樗鼉r(jià)格相對低廉、數(shù)據(jù)量小、算法成熟穩(wěn)定。局限無法感知地面上的小障礙物如電源線、玩具或低于掃描平面的懸空物體如桌沿。解決方案通常是加裝多個以不同角度安裝的2D雷達(dá)或者使用3D雷達(dá)。3D激光雷達(dá)多線掃描或固態(tài)掃描特點(diǎn)通過多線束或面陣掃描直接獲得三維空間點(diǎn)云。包括機(jī)械旋轉(zhuǎn)式Velodyne, Livox、 MEMS微振鏡式、光學(xué)相控陣OPA式等。應(yīng)用場景自動駕駛、無人機(jī)、高端服務(wù)機(jī)器人、三維測繪。可以實(shí)現(xiàn)更精確的3D SLAM如LOAM, LeGO-LOAM、復(fù)雜地形導(dǎo)航、物體識別與抓取。實(shí)操心得數(shù)據(jù)量巨大64線雷達(dá)一幀的點(diǎn)云數(shù)據(jù)可達(dá)百萬級對網(wǎng)絡(luò)帶寬通常使用千兆以太網(wǎng)和處理器算力是巨大挑戰(zhàn)必須考慮點(diǎn)云下采樣、濾波和高效處理算法。安裝與標(biāo)定復(fù)雜雷達(dá)在機(jī)器人上的安裝位置和角度需要精心設(shè)計(jì)以平衡視野和盲區(qū)。多雷達(dá)融合時需要精確的外參標(biāo)定即雷達(dá)之間的相對位姿。價(jià)格昂貴高線數(shù)雷達(dá)曾是阻礙普及的主要因素但隨著國產(chǎn)雷達(dá)如速騰聚創(chuàng)、禾賽、大疆Livox的崛起價(jià)格已大幅下降。4.3 激光雷達(dá)的“坑”與應(yīng)對策略動態(tài)物體干擾激光雷達(dá)會忠實(shí)地記錄所有移動物體人、車的點(diǎn)云這些“鬼影”會污染地圖影響定位。需要在SLAM前端或后端加入動態(tài)物體濾除算法。玻璃、鏡面等特殊材質(zhì)激光可能穿透玻璃測到后面的物體或在鏡面發(fā)生鏡面反射導(dǎo)致測距失敗在點(diǎn)云中形成空洞。在環(huán)境部署時需要留意或融合視覺信息進(jìn)行補(bǔ)充。點(diǎn)云畸變對于機(jī)械旋轉(zhuǎn)式雷達(dá)在機(jī)器人自身高速運(yùn)動時由于一幀點(diǎn)云數(shù)據(jù)是在一段時間內(nèi)采集的機(jī)器人自身的運(yùn)動會導(dǎo)致點(diǎn)云發(fā)生“運(yùn)動畸變”影響匹配精度。高端雷達(dá)自帶IMU進(jìn)行運(yùn)動補(bǔ)償或者需要在算法中進(jìn)行去畸變處理。外參標(biāo)定這是多傳感器融合的基礎(chǔ)卻極易被忽視。雷達(dá)和機(jī)器人本體或與其他雷達(dá)、相機(jī)之間的變換矩陣必須精確標(biāo)定??梢允褂脤iT的標(biāo)定板如AprilTag棋盤格在雷達(dá)和相機(jī)共同視野內(nèi)進(jìn)行自動或半自動標(biāo)定。5. 自身狀態(tài)感知核心慣性測量單元IMU慣性測量單元是機(jī)器人的“內(nèi)耳”和“運(yùn)動神經(jīng)”它不關(guān)心外部環(huán)境只專注于測量機(jī)器人自身的運(yùn)動狀態(tài)。5.1 IMU的構(gòu)成與原理一個典型的IMU包含三個核心MEMS微機(jī)電系統(tǒng)傳感器三軸加速度計(jì)測量物體在三個軸向上的線性加速度包括重力加速度。通過積分理論上可以獲得速度變化和位移但由于噪聲和漂移積分誤差會隨時間迅速累積單獨(dú)用于定位很快就會“飄走”。三軸陀螺儀測量物體繞三個軸旋轉(zhuǎn)的角速度。通過積分可以獲得角度變化姿態(tài)角。同樣陀螺儀存在零偏Bias積分后會導(dǎo)致角度漂移。可選三軸磁力計(jì)測量環(huán)境中的磁場強(qiáng)度用于提供絕對的方向參考類似于指南針可以校正陀螺儀的航向角偏航角Yaw漂移。但磁力計(jì)極易受環(huán)境中鐵磁物質(zhì)干擾如鋼筋、電機(jī)、桌子可靠性不高。5.2 IMU在機(jī)器人中的核心作用IMU的數(shù)據(jù)雖然不能獨(dú)立用于精確的長期定位但其高頻通常100Hz以上、短期精度高的特性使其在機(jī)器人系統(tǒng)中扮演著不可替代的角色姿態(tài)解算AHRS融合加速度計(jì)和陀螺儀數(shù)據(jù)常采用互補(bǔ)濾波或卡爾曼濾波算法實(shí)時估算機(jī)器人的橫滾角Roll、俯仰角Pitch如果融合了磁力計(jì)還可以估算偏航角Yaw。這對于無人機(jī)、平衡車、人形機(jī)器人等需要保持自身平衡的機(jī)器人至關(guān)重要。運(yùn)動約束與里程計(jì)輔助在輪式機(jī)器人中編碼器里程計(jì)在打滑、空轉(zhuǎn)時會失效。IMU提供的角速度信息可以作為一個獨(dú)立的運(yùn)動觀測與輪式里程計(jì)融合得到更魯棒的機(jī)器人本體運(yùn)動估計(jì)機(jī)器人學(xué)中常稱為“航跡推算”。傳感器數(shù)據(jù)的時間同步與運(yùn)動補(bǔ)償如前文提到的激光雷達(dá)點(diǎn)云去畸變就需要用到同一時間段內(nèi)IMU提供的的高頻運(yùn)動數(shù)據(jù)。在視覺慣性里程計(jì)VIO中IMU數(shù)據(jù)用于彌補(bǔ)相機(jī)在快速運(yùn)動或紋理缺失時的跟蹤失敗。零速修正ZUPT對于足式機(jī)器人或穿戴設(shè)備當(dāng)檢測到腳部與地面接觸靜止時通過加速度計(jì)和陀螺儀數(shù)據(jù)判斷可以將此時的速度強(qiáng)制設(shè)為零從而有效抑制IMU積分帶來的位置漂移。這是很多慣性導(dǎo)航系統(tǒng)的關(guān)鍵技巧。5.3 選型與校準(zhǔn)一分錢一分貨IMU的等級和價(jià)格差異巨大核心區(qū)別在于傳感器的零偏穩(wěn)定性、噪聲密度和溫漂。消費(fèi)級幾十到幾百元如MPU6050、MPU9250。零偏大噪聲高溫漂嚴(yán)重。適合對精度要求不高的玩具、教學(xué)演示或作為濾波算法的學(xué)習(xí)對象。切記不要指望用它們做可靠的長時間姿態(tài)估計(jì)或定位。工業(yè)級/戰(zhàn)術(shù)級數(shù)千到數(shù)萬元如ADI公司的系列產(chǎn)品或Xsens、VectorNav等品牌的模塊。零偏穩(wěn)定性好噪聲低帶有溫度補(bǔ)償。適用于大多數(shù)商用機(jī)器人、無人機(jī)、自動駕駛領(lǐng)域。導(dǎo)航級數(shù)十萬元以上用于導(dǎo)彈、航天器這里不展開。實(shí)操中必須做的兩件事校準(zhǔn)任何IMU在使用前都必須校準(zhǔn)特別是消費(fèi)級和工業(yè)級。校準(zhǔn)主要包括六面法校準(zhǔn)加速度計(jì)將IMU靜止放置在六個不同的正交面上采集數(shù)據(jù)計(jì)算每個軸的零偏和尺度因子。多位置旋轉(zhuǎn)法校準(zhǔn)陀螺儀通過多個位置的靜止測量估計(jì)陀螺儀的零偏。磁力計(jì)橢圓擬合校準(zhǔn)通過在空中“畫8字”等方式采集大量數(shù)據(jù)擬合出硬鐵和軟鐵干擾的補(bǔ)償參數(shù)。很多IMU模塊廠商會提供上位機(jī)軟件完成自動校準(zhǔn)。理解噪聲模型在編寫融合濾波算法如卡爾曼濾波時必須為加速度計(jì)和陀螺儀設(shè)置合理的噪聲協(xié)方差矩陣Q矩陣。這個參數(shù)需要根據(jù)IMU數(shù)據(jù)手冊中的噪聲密度和零偏不穩(wěn)定性等參數(shù)進(jìn)行估算或者通過采集靜止數(shù)據(jù)統(tǒng)計(jì)得出。參數(shù)設(shè)置不當(dāng)濾波效果會大打折扣。6. 其他常見感知定位元件簡介除了上述三大類機(jī)器人系統(tǒng)中還有一些常用的感知元件它們往往在特定場景下發(fā)揮關(guān)鍵作用。超聲波傳感器原理發(fā)射超聲波接收回波通過時間測距。特點(diǎn)成本極低測距范圍短幾厘米到幾米精度較低易受溫度、濕度、物體表面材質(zhì)影響。波束角大指向性差。應(yīng)用簡單的避障如掃地機(jī)防撞、液位檢測。不適合用于精確的定位或建圖。編碼器光電/磁電原理安裝在電機(jī)或輪軸上通過計(jì)數(shù)光柵或磁極變化測量電機(jī)的旋轉(zhuǎn)角度或圈數(shù)。特點(diǎn)提供高精度的相對位移信息里程計(jì)是輪式機(jī)器人最基礎(chǔ)、最重要的本體傳感器。注意編碼器測量的是輪子轉(zhuǎn)動的“理想”距離。當(dāng)輪子打滑、空轉(zhuǎn)、或地面不平時編碼器數(shù)據(jù)會嚴(yán)重失真稱為“里程計(jì)漂移”。因此絕不能單獨(dú)依賴編碼器進(jìn)行長期定位必須與IMU、視覺、激光雷達(dá)等傳感器融合。全球?qū)Ш叫l(wèi)星系統(tǒng)GNSS如GPS、北斗。原理接收衛(wèi)星信號進(jìn)行絕對定位。特點(diǎn)在室外開闊地帶能提供全局、絕對的位置坐標(biāo)經(jīng)緯高。但信號易受建筑物、樹木遮擋多路徑效應(yīng)影響精度從米級單點(diǎn)定位到厘米級RTK差分定位不等。應(yīng)用戶外移動機(jī)器人、自動駕駛車輛的全局定位源。通常與IMU緊耦合GNSS-INS組合導(dǎo)航在GNSS信號丟失時由IMU進(jìn)行短時間航位推算。毫米波雷達(dá)原理發(fā)射毫米波頻段的電磁波通過分析反射波的頻率變化多普勒效應(yīng)和延遲不僅能測距還能直接測量目標(biāo)的速度。特點(diǎn)抗天氣干擾能力強(qiáng)雨、霧、塵能直接測速價(jià)格介于激光雷達(dá)和超聲波之間。但點(diǎn)云比激光雷達(dá)稀疏分辨率較低。應(yīng)用汽車ADAS自動緊急剎車、自適應(yīng)巡航、機(jī)器人對動態(tài)障礙物特別是車輛、行人的速度感知。7. 傳感器選型綜合決策指南面對琳瑯滿目的傳感器如何為自己的機(jī)器人項(xiàng)目做選擇這里沒有一個標(biāo)準(zhǔn)答案但可以遵循一個決策框架明確核心任務(wù)與場景場景室內(nèi)/室外結(jié)構(gòu)化/非結(jié)構(gòu)化靜態(tài)/動態(tài)環(huán)境光照條件如何任務(wù)只需要避障還是需要建圖導(dǎo)航需要識別特定物體嗎對精度和實(shí)時性的要求是什么例子室內(nèi)倉儲AGV在固定路線、光照穩(wěn)定、地面平整的環(huán)境下工作。核心需求是循跡和停準(zhǔn)。那么磁導(dǎo)航傳感器/二維碼視覺輪編碼器可能就是最優(yōu)解完全不需要昂貴的激光雷達(dá)。定義性能邊界與約束精度定位需要厘米級還是米級避障需要探測多遠(yuǎn)的障礙物頻率傳感器數(shù)據(jù)需要多快的更新頻率10Hz還是100Hz算力主控處理器能承受多大的數(shù)據(jù)量和多復(fù)雜的算法成本這是最現(xiàn)實(shí)的約束。在預(yù)算內(nèi)尋找滿足性能下限的方案。功耗與尺寸對于小型或移動機(jī)器人至關(guān)重要。遵循“必要性”與“互補(bǔ)性”原則必要性優(yōu)先選擇能直接、可靠滿足核心需求的傳感器。不要堆砌用不上的功能?;パa(bǔ)性沒有一種傳感器是完美的??紤]傳感器之間的優(yōu)勢互補(bǔ)。例如激光雷達(dá)幾何準(zhǔn) 視覺語義豐激光雷達(dá)提供精確的距離和地圖視覺提供物體類別和紋理實(shí)現(xiàn)更智能的導(dǎo)航。編碼器高頻相對 GNSS低頻絕對編碼器提供平滑的局部軌跡GNSS提供全局校正抑制累積誤差。IMU高頻自身運(yùn)動 任何外部傳感器低頻絕對觀測IMU彌補(bǔ)外部傳感器數(shù)據(jù)更新慢的間隙提供連續(xù)的運(yùn)動估計(jì)??紤]開發(fā)與集成成本生態(tài)支持該傳感器是否有成熟的ROS/ROS2驅(qū)動包社區(qū)資料是否豐富標(biāo)定難度多傳感器融合的標(biāo)定工作是否復(fù)雜是否有可靠工具數(shù)據(jù)處理 pipeline從原始數(shù)據(jù)到可用信息需要投入多少算法開發(fā)工作一個經(jīng)典的室內(nèi)移動機(jī)器人如科研常用的TurtleBot3傳感器配置是一個2D激光雷達(dá)建圖導(dǎo)航 一個IMU輔助里程計(jì)和姿態(tài) 輪編碼器基礎(chǔ)里程計(jì)。這個組合已經(jīng)能解決絕大多數(shù)室內(nèi)定位導(dǎo)航問題。如果需要增加物體識別或更豐富的語義信息再考慮加入一個RGB-D相機(jī)。8. 多傳感器融合從“感覺”到“感知”單個傳感器提供的信息是片面、有噪聲、甚至可能失效的。多傳感器融合Sensor Fusion的目的就是像人類大腦一樣綜合來自不同感官的信息形成一個對自身和環(huán)境更一致、更可靠、更完整的“感知”。融合的層次數(shù)據(jù)級融合最底層直接融合原始數(shù)據(jù)如將雙目攝像頭的左右圖像合成立體深度圖。要求傳感器高度同步和標(biāo)定。特征級融合中間層各自提取特征后融合。如視覺提取ORB特征點(diǎn)激光雷達(dá)提取邊緣點(diǎn)然后將這兩類特征點(diǎn)一起用于位姿估計(jì)。決策級融合最高層各自做出局部決策后融合。如視覺模塊判斷“前方是門”激光雷達(dá)模塊判斷“前方無障礙物”決策系統(tǒng)綜合判斷“可以通過”。核心融合算法卡爾曼濾波器KF/EKF/UKF適用于線性/近似線性高斯系統(tǒng)是融合IMU和輪式里程計(jì)、GNSS的經(jīng)典方法。它基于狀態(tài)空間模型進(jìn)行“預(yù)測-更新”的遞歸估計(jì)。擴(kuò)展卡爾曼濾波器EKF針對非線性系統(tǒng)如機(jī)器人運(yùn)動模型和觀測模型通常都是非線性的在局部進(jìn)行線性化是機(jī)器人狀態(tài)估計(jì)中最常用的濾波器之一。粒子濾波器PF適用于非高斯、多模態(tài)分布的系統(tǒng)如 kidnapped robot機(jī)器人被搬動問題。但計(jì)算量較大。圖優(yōu)化Graph Optimization現(xiàn)代SLAM的主流后端方法如g2o, GTSAM, Cartographer的后端。它將位姿和觀測約束構(gòu)建成一個圖通過優(yōu)化整個圖來得到全局一致的狀態(tài)估計(jì)。它比濾波器更能處理回環(huán)檢測和全局優(yōu)化。融合框架實(shí)踐機(jī)器人操作系統(tǒng)ROS/ROS2提供了強(qiáng)大的消息通信機(jī)制Topic/Service/Action和眾多現(xiàn)成的傳感器驅(qū)動、融合算法包如robot_localization包用于融合里程計(jì)、IMU、GPSrtabmap_ros包用于視覺激光雷達(dá)融合SLAM是快速搭建多傳感器系統(tǒng)的利器。實(shí)操心得融合的開始不是急于寫代碼而是做好時間同步Time Synchronization和外參標(biāo)定Extrinsic Calibration。使用message_filters進(jìn)行近似時間同步或使用硬件觸發(fā)信號進(jìn)行精確同步。外參標(biāo)定不準(zhǔn)融合結(jié)果必然發(fā)散。9. 常見問題與排查技巧實(shí)錄在實(shí)際項(xiàng)目中感知定位系統(tǒng)出問題是家常便飯。以下是一些典型問題及排查思路問題現(xiàn)象可能原因排查步驟與解決思路機(jī)器人定位突然跳變或丟失1. 傳感器數(shù)據(jù)中斷或異常。2. 環(huán)境發(fā)生劇烈變化如人搬動了家具。3. 激光雷達(dá)/視覺特征匹配失敗如面對長走廊、白墻。4. 回環(huán)檢測錯誤。1.檢查數(shù)據(jù)流用rostopic hz或rqt_graph查看關(guān)鍵傳感器話題是否正常發(fā)布頻率是否穩(wěn)定。2.檢查傳感器數(shù)據(jù)用rviz可視化激光雷達(dá)點(diǎn)云、相機(jī)圖像看是否有異常如點(diǎn)云全為零、圖像花屏。3.增加運(yùn)動約束在特征匱乏區(qū)域依賴IMU和輪式里程計(jì)進(jìn)行短時間航位推算。4.審查回環(huán)檢查回環(huán)檢測的匹配閾值或暫時關(guān)閉回環(huán)檢測功能看定位是否穩(wěn)定。建圖有重影或地圖扭曲1. 里程計(jì)誤差過大輪子打滑。2. 激光雷達(dá)運(yùn)動畸變未補(bǔ)償。3. 傳感器外參標(biāo)定不準(zhǔn)。1.驗(yàn)證里程計(jì)讓機(jī)器人走一個正方形看最終位置是否閉合。不閉合說明里程計(jì)有漂移需檢查編碼器或融合IMU。2.啟用去畸變在SLAM配置中開啟激光雷達(dá)運(yùn)動去畸變選項(xiàng)并確保提供了高頻率的IMU或里程計(jì)數(shù)據(jù)。3.重新標(biāo)定外參特別是雷達(dá)與機(jī)器人基座base_link之間的變換。可以使用tf工具查看坐標(biāo)變換是否合理。深度相機(jī)在陽光下無法工作環(huán)境光特別是太陽光中的紅外成分過強(qiáng)淹沒了相機(jī)自身的主動紅外光信號。1.物理遮光為相機(jī)加裝遮光罩。2.更換傳感器類型在強(qiáng)光室外場景考慮改用雙目視覺被動光或激光雷達(dá)。3.調(diào)整參數(shù)有些相機(jī)可調(diào)節(jié)激光功率但在陽光下作用有限。IMU姿態(tài)角特別是Yaw持續(xù)漂移1. IMU零偏未校準(zhǔn)或溫漂嚴(yán)重。2. 磁力計(jì)受干擾提供的航向參考錯誤。3. 融合濾波器中IMU的噪聲參數(shù)設(shè)置不當(dāng)。1.重新校準(zhǔn)IMU嚴(yán)格按照流程進(jìn)行六面法和陀螺儀校準(zhǔn)。2.禁用磁力計(jì)在室內(nèi)或干擾多的環(huán)境嘗試在融合算法中不使用磁力計(jì)數(shù)據(jù)僅用加速度計(jì)和陀螺儀融合出Roll和PitchYaw角由視覺或激光SLAM提供。3.調(diào)整噪聲參數(shù)增大陀螺儀零偏的噪聲協(xié)方差讓濾波器更“信任”其他觀測源如視覺、磁力計(jì)來校正漂移。多傳感器時間不同步各傳感器時間戳來自不同的時鐘源系統(tǒng)時鐘、傳感器硬件時鐘存在微小偏移和漂移。1.使用message_filters在ROS中使用message_filters.ApproximateTime策略進(jìn)行軟件同步適用于大多數(shù)對同步要求不極端的場景。2.硬件觸發(fā)對于激光雷達(dá)和相機(jī)融合等要求嚴(yán)格同步的場景使用硬件觸發(fā)線讓一個主設(shè)備發(fā)送脈沖信號觸發(fā)從設(shè)備同時采集。3.時間戳對齊在數(shù)據(jù)預(yù)處理環(huán)節(jié)根據(jù)時間戳進(jìn)行插值對齊。最后分享一個我踩過的大坑早期做一個項(xiàng)目激光雷達(dá)和相機(jī)分別用USB和網(wǎng)線接到工控機(jī)上。SLAM運(yùn)行時總是不穩(wěn)定。排查了很久才發(fā)現(xiàn)工控機(jī)在高壓負(fù)載時USB控制器和網(wǎng)絡(luò)控制器的時間戳?xí)l(fā)生不可預(yù)測的微小抖動。后來換用了帶有精密時鐘同步功能的多合一傳感單元如某些品牌的組合導(dǎo)航系統(tǒng)或者為所有傳感器外接一個統(tǒng)一的硬件同步器問題才徹底解決。所以當(dāng)你的多傳感器系統(tǒng)行為詭異時在懷疑算法之前先花時間檢查一下最基礎(chǔ)的供電、通信和時鐘同步。傳感器融合功夫往往在算法之外。