論文導讀:機場行李推車自主回收——Progressive Perception 搭配 NMPC + CBF 的模組化移動操作系統
Anxing Xiao, Hao Luan, Ziqi Zhao, Yue Hong, Jieting Zhao, Weinan Chen, Jiankun Wang, Max Q.-H. Meng · 2022原文連結
論文資訊卡
- 標題:Robotic Autonomous Trolley Collection with Progressive Perception and Nonlinear Model Predictive Control
- 作者:Anxing Xiao、Hao Luan、Ziqi Zhao、Yue Hong、Jieting Zhao、Weinan Chen、Jiankun Wang、Max Q.-H. Meng
- 發表:IEEE International Conference on Robotics and Automation (ICRA), 2022
- 核心方法標籤:Progressive Perception + NMPC + Control Barrier Functions (CBF) + Manipulator
- 方法類型:Modular Robotics(感知-規劃-控制分工的模組化架構),而非端到端學習策略
問題背景:機場裡的行李推車,是一個比看起來複雜得多的任務
目標是建立一台能在機場等複雜環境中自主完成整套流程的機器人:找到散落的行李推車(trolley)、從遠處安全接近、在移動過程中避開環境障礙物與行人、同時讓 trolley 全程保持在感測器的視野(Field of View, FOV)內、接近後精確估計 trolley 姿態、移動到適合抓取的位置、用前方的專用機構抓住 trolley,最後把它拖回指定的回收點。
這個任務表面上像是一個常見的「移動 + 抓取」問題,但拆開來看會發現它同時疊加了幾個各自獨立、卻又必須協調的子問題:遠距離要快速找到目標(不能用太昂貴或太慢的感知手段掃描整個航廈)、近距離要達到公分等級的定位精度(抓取機構的容錯空間很小)、移動過程中不能撞到人或障礙物(機場是高度動態且人流密集的公共空間),以及移動過程中不能把 trolley 弄丟出視野(一旦目標離開感測器視野,後續的姿態估計與規劃都會失效)。這篇論文的核心貢獻,正是針對這幾個子問題分別給出對應的技術方案,再把它們整合成一套完整可運作的系統。
整體 System Pipeline
Trolley
↓
┌──────────────────┐
│ Perception │
└──────────────────┘
↓
Trolley 3D Pose
↓
┌──────────────────┐
│ Motion Planning │
└──────────────────┘
↓
NMPC
↓
┌────────────┴────────────┐
↓ ↓
Obstacle CBF FOV CBF
↓ ↓
避免碰撞 保持目標在視野內
└────────────┬────────────┘
↓
Robot Motion
↓
Precise Docking
↓
Manipulator
↓
Catch Trolley
↓
Returning
方法核心:不是用一個模型做完所有事,而是模組化架構
這篇論文不是單純用一個神經網路完成所有事情,而是採用 Modular Robotics Architecture——把整個任務拆成「感知 → 姿態估計 → 運動規劃 → 安全約束 → 運動控制 → 操作」六個環節,每個環節用最適合的方法處理:
Perception → Pose Estimation → Motion Planning → Safety Constraints → Motion Control → Manipulation
論文用到的主要技術一覽:
| 技術 | 類型 | 主要功能 |
|---|---|---|
| YOLOv5 | Deep Learning | Trolley 物件偵測 |
| Stacked Hourglass | Deep Learning | Trolley 關鍵點偵測 |
| EPnP / PnP | 幾何視覺 | 由 2D 關鍵點求 3D 姿態 |
| 3D LiDAR | 感測器 | 近距離高精度感知 |
| RANSAC | 點雲處理 | Trolley 背板偵測 |
| Gmapping | SLAM | 建立佔據網格地圖 |
| AMCL | 定位 | 機器人在世界座標下的定位 |
| NMPC | 模型式規劃/控制 | 產生機器人運動 |
| Obstacle CBF | 安全約束 | 避免碰撞 |
| FOV CBF | 安全約束 | 保持 trolley 在感測器視野內 |
| Draw-wire Encoder | 感測回饋 | 判斷 manipulator 狀態 |
| ROS | 機器人框架 | 整合整個系統 |
| CasADi | 最佳化框架 | 建立 NMPC 問題 |
| IPOPT | 非線性求解器 | 求解 NMPC |
系統硬體
機器人本體由五個模組組成:底盤(Chassis)、感測器(Sensors)、機械臂式抓取機構(Manipulator)、高效能電腦、大容量電池。機身尺寸:高度 1.2 m、離地間隙 0.07 m、長度 0.45 m、寬度 0.416 m。
移動底盤採用兩個前方驅動輪加兩個後方萬向輪(後輪具備懸吊)的配置,每個前方驅動輪的動力鏈是「直流伺服馬達 → 減速器 → 輪子」,輸出扭矩達 31.75 N·m。
感測器系統配備 3D LiDAR、2 個 2D LiDAR、固態光達(Solid-state LiDAR)與 RGB-D 相機——因為機器人本身有足夠的電池容量與運算能力,感測器系統可以進一步擴充。
Manipulator(抓取機構) 是專門為 trolley 抓取設計的機構,主結構是「支撐底座 → 叉架(Fork) → 卡住 Trolley」,搭配 draw-wire encoder(拉線編碼器)與直流減速馬達。馬達驅動叉架繞樞軸旋轉,draw-wire encoder 透過週期性量測鋼索長度 及其變化量 ,判斷叉架是否到達指定位置、是否被 trolley 阻擋、以及是否成功抓住 trolley,形成一套 manipulator 的回饋控制機制——這一整套「拉線編碼器判斷機構狀態」的設計,不需要額外的視覺感測,就能低成本地為抓取動作提供閉迴路回饋。
Autonomy Framework:三階段任務分解
整個任務分成三個階段:Approaching(接近)→ Docking(對接)→ Returning(返回)。
Stage 1 — Approaching:從較遠的位置安全接近 trolley。機器人需要找到 trolley、得到 trolley 姿態、從 trolley 後方接近、調整自身朝向、同時避開環境障礙物。此階段主要用 RGB 相機、YOLOv5、關鍵點偵測、EPnP、NMPC 與 Obstacle CBF。
Stage 2 — Docking:精確移動到能讓 manipulator 抓住 trolley 的位置。此時機器人已經非常接近 trolley,需要更精確的姿態估計,改用固態光達取得點雲,經過濾波與 RANSAC 平面偵測找出 trolley 背板,得到精確姿態後再交給 NMPC 求解對接姿態,最後把 trolley 姿態轉換成機器人的抓取姿態。
Stage 3 — Returning:成功抓住 trolley 後,機器人拖著 trolley 移動回指定的回收地點。
Mapping & Localization:Gmapping + AMCL
系統用 Gmapping 從 LiDAR/感測器資料建立 2D 佔據網格地圖(Occupancy Grid Map),再用 AMCL 估計機器人在世界座標下的姿態。這讓機器人能把偵測到的 trolley 相對位置,轉換到全域(global/world)座標系下,這是後續把「相機看到的相對姿態」與「機器人自身的世界座標」結合、得到 trolley 全域姿態的必要前提。
核心一:Progressive Perception(漸進式感知)
這是論文最重要的概念之一。作者沒有在所有距離都使用同一種感知方法,而是依距離切換:
Long Distance → Monocular Camera → Coarse Pose → Robot Approaches
→ Short Distance → LiDAR → Accurate Pose → Docking
原因很直接:遠距離需要快速、低成本地找到 trolley;近距離對接則需要公分等級(centimeter-level)的精度,兩種需求沒有一種單一感測器方案能同時滿足。
長距離偵測 Pipeline
RGB Image → Downsampling → YOLOv5 → 2D Bounding Box → Crop Trolley
→ Stacked Hourglass → 6 Keypoints → EPnP → 3D Trolley Pose
YOLOv5 負責物件偵測:輸入 RGB 影像,輸出 bounding box ,目的不是直接得到精確姿態,而是快速找出 trolley 在影像中的大致位置。
Stacked Hourglass 接手後續:把 YOLO 找到的 bounding box 裁切出高解析度的 trolley 影像,輸入 Stacked Hourglass 網路,輸出 trolley 上 6 個具有固定幾何關係的關鍵點(keypoints)。因為關鍵點網路是在裁切後的影像上運作,還需要把關鍵點座標轉換回原始影像座標系。
相機投影模型:
其中 是 2D 影像關鍵點、 是相機座標系下的 3D 點、 是 trolley 座標系下的 3D 點、 是相機內參矩陣、 是旋轉與平移、 是尺度因子。
EPnP:已知 trolley 的 3D 關鍵點(幾何上固定)與影像上對應的 2D 關鍵點,用 EPnP 求解 ,也就是 trolley 相對於相機的 3D 姿態。
得到 Global Trolley Pose:相機求出的是 trolley 相對於相機的姿態,機器人本身又有透過 AMCL 得到的世界座標定位,兩者結合就能得到 trolley 的全域姿態:
姿態濾波:因為 trolley 大部分時間是靜止的,如果感知結果突然在連續幀之間跳動,很可能是偵測雜訊而非真實變化,系統因此加入濾波機制避免姿態出現不合理的突跳;若 trolley 暫時離開相機視野,則沿用最後一次有效的姿態估計。
短距離 LiDAR 姿態估計
當機器人已經接近 trolley,改用固態光達取得點雲 ,每個點 具有 。
為什麼需要 RANSAC:LiDAR 點雲裡不會只有 trolley,還會混雜地面、機器人本體、雜訊與其他物體的反射點,因此需要從點雲中專門找出 trolley 背板所在的平面。RANSAC 假設 trolley 背板是一個平面 ,從點雲中找出符合此平面方程式的子集 。
從平面得到 trolley 姿態:位置取濾波後平面點雲的中心作為背板中心;朝向則利用平面法向量 求得。整條鏈路是:
Point Cloud → RANSAC → Backplane → Center + Normal → Trolley Pose
為什麼要兩種感知方式:Camera 負責「找到」,LiDAR 負責「對準」
| Camera(長距離) | LiDAR(短距離) | |
|---|---|---|
| 使用距離 | Long | Short |
| 精度量級 | Decimeter(分米級) | Centimeter(公分級) |
| 方法性質 | Learning-based | Geometry-based |
| 優點 | 快速、可遠距離偵測 | 精確 |
| 用途 | Approaching | Docking |
實測的感知精度:長距離單目感知位置平均誤差約 0.17 m(變異數 0.0097 m²),角度平均誤差約 0.11 rad(約 6.3°,變異數 0.0085 rad²);短距離光達感知位置平均誤差約 0.03 m(約 3 cm,變異數 0.0002 m²),朝向平均誤差約 0.02 rad(約 1.15°,變異數 0.00036 rad²)。這組數字直接支持了論文的設計邏輯——長距離用相機的精度足以支撐 approaching 階段,但遠遠不足以支撐需要公分級精度的 docking;短距離換成 LiDAR 才能達到 docking 所需要的精度水準。
核心二:Safe Motion Planning——NMPC 決定怎麼走最好,CBF 決定哪些走法不安全
機器人要同時解決兩個問題:如何從現在位置到達目標,以及如何確保移動過程中的安全。整體結構是:
Motion Planning → NMPC → Safety Constraints ↙ Obstacle CBF ↘ FOV CBF
機器人狀態與目標姿態
機器人採用平面模型 ,目標姿態 ,運動模型是差動驅動(differential-drive):
控制輸入 (線速度與角速度)。
Control Barrier Function 的基本定義
CBF 定義一個安全集合:
其中 ,只要 ,機器人就處於安全區域。
Obstacle CBF:給定障礙物位置 與安全距離 ,屏障函數為:
要求 ,等價於機器人與障礙物的距離不能小於安全距離。
FOV CBF(這篇論文比較特殊的設計):除了不能撞障礙物,機器人還必須讓 trolley 保持在感測器視野內。定義 為機器人到 trolley 的單位方向向量、 為機器人朝向的單位向量、 為感測器最大視角,屏障函數為:
因為 ,所以 等價於 ,也就是 ——如果機器人轉向偏離 trolley 方向的夾角超過感測器最大視角,trolley 就可能離開視野,FOV CBF 正是用來限制機器人不能轉得太偏。
離散時間 CBF 約束:論文用離散時間版本的 CBF 條件:
這個約束用來保證機器人在離散時間軌跡中不會離開安全集合。
NMPC:預測未來、最佳化控制、只執行第一步
NMPC(Nonlinear Model Predictive Control)的運作方式是:用機器人動力學模型預測未來一段時間的軌跡,最佳化控制輸入使其滿足安全約束,執行當下時步的控制指令,下一個時步再重新求解一次:
Current State → Predict Future → Optimize → Safe Trajectory
→ Execute first control → New State → Re-optimize
Approaching 階段的 NMPC 目標函數:
約束條件包含動力學方程 、初始狀態 、狀態與控制輸入的可行域 ,以及 Obstacle CBF 約束 。目標函數第一項要求最終狀態接近目標,第二項懲罰過大的控制輸入,整體是在「到達目標」與「控制平滑合理」之間求平衡。
Docking 階段的 NMPC 目標函數:此階段同時需要 Obstacle CBF 與 FOV CBF,目標函數多了一個 slack 項:
Docking 階段的 FOV 約束改寫成帶 slack variable 的軟約束:
為什麼需要 slack variable:如果 trolley 已經快要離開視野,強制嚴格滿足 FOV 約束,可能導致整個最佳化問題沒有任何可行解(infeasible)。加入 slack variable 後,系統允許少量約束違反,但 增大會讓目標函數的懲罰項 隨之增加,形成「允許違反、但要付出代價」的軟性機制。
Hard Constraint vs Soft Constraint 的設計哲學:Obstacle 約束是硬約束 ,絕對不能撞;FOV 約束是軟化約束 ,必要時允許有限程度的違反。這個設計選擇背後的優先順序很清楚:碰撞安全的優先級高於視野保持約束——寧可暫時看丟 trolley,也不能讓機器人真的撞上障礙物或行人。
整體可以記成一句話:NMPC 決定「怎麼走最好」;CBF 決定「哪些走法不安全」。
求解實作
NMPC 用 CasADi 建立非線性最佳化問題,用 IPOPT 求解,整條鏈路是「機器人狀態 → CasADi 建模(含 Obstacle CBF、FOV CBF、動力學、約束)→ IPOPT 求解 → 最佳控制輸出」。
核心三:Task-specific Manipulation——用叉架 + 編碼器 + 馬達完成抓取
抓取機構不是通用型機械手臂,而是專門針對 trolley 幾何形狀設計的叉架(Fork)機構,搭配 draw-wire encoder 提供的鋼索長度回饋,判斷叉架運動是否到位、是否被 trolley 卡住、是否已經成功抓住——這是一種低成本但足夠可靠的機構層級回饋控制方案,不需要額外的視覺感測就能完成整個抓取動作的狀態監控。
實驗設計與資料集
論文建立了兩個獨立資料集,服務兩個不同的網路:
Object Detection Dataset(服務 YOLOv5):總共 1200 張影像,涵蓋不同光照、背景與視角,標註為 2D bounding box,切分為訓練 800 / 驗證 200 / 測試 200 張。
Keypoint Dataset(服務 Stacked Hourglass):總共 800 張裁切後的 trolley 影像,具有精確的關鍵點標註,切分為訓練 600 / 驗證 100 / 測試 100 張。
兩個資料集分開的原因很直接——兩個網路解決的是不同問題:YOLOv5 做物件偵測,Stacked Hourglass 做關鍵點偵測,屬於「兩階段感知、兩套資料集、兩個網路」的設計。
YOLOv5 訓練細節:硬體為 Intel i7-9750H + NVIDIA GTX 1660Ti,框架 PyTorch,優化器 SGD,300 epochs,batch size 16,初始學習率 0.01(第 150 epoch 降至 0.001,第 200 epoch 降至 0.0001),訓練時間約 14 小時。
Keypoint Network 訓練細節:框架 PyTorch,資料增強包含隨機縮放、隨機裁切、隨機翻轉與色彩變換,優化器 Adam,初始學習率 ,前 200 epochs 使用基礎學習率,之後每 10 epochs 將學習率乘以 0.95,batch size 8,訓練時間約 4 小時。
LiDAR 平面偵測不同於前兩個神經網路模組,不需要深度學習,而是用 Point Cloud Library (PCL) 完成「點雲 → 濾波 → RANSAC → 平面 → 姿態」的幾何處理鏈路。
實驗結果
感知精度驗證:讓 trolley 做不規則運動,機器人估計 trolley 姿態並與動作捕捉系統(Motion Capture System)提供的 ground truth 比較。結果:長距離位置誤差約 17 cm、角度誤差約 0.11 rad;短距離位置誤差約 3 cm、角度誤差約 0.02 rad,驗證了「長距離相機支撐 approaching、短距離光達支撐 docking」的設計假設。
完整自主展示:整套系統整合到 ROS,機載電腦為 Intel i7-1165G7 + NVIDIA GTX 2060,機器人可即時執行完整流程。實驗中讓 trolley 出現在不同位置與朝向、機器人從不同初始位置出發,並在機器人與 trolley 之間放置多個靜態障礙物,測試機器人是否能避障並完成整套收集流程。
動態行人實驗:額外加入一位搬著行李箱、會在機器人路徑前方橫越的行人,測試流程分為四段:(a) Approaching——機器人接近 trolley 時行人穿越其軌跡;(b) Avoidance——機器人減速、改變軌跡、同時避開行人與靜態障礙物,最後抵達 docking 目標;(c) Docking & Catching——精確感知、精確規劃、對接姿態、manipulator 動作、抓住 trolley;(d) Returning——成功抓取後拖著 trolley 返回指定地點。
軌跡與速度指令記錄(論文 Fig. 11)顯示:約 10–20 秒出現較大的速度變化峰值,對應機器人正在避開移動中的行人;約 27 秒出現第二個速度峰值,對應 approaching 階段結束、開始進入 docking;約 39 秒出現明顯變化,對應 docking 結束、開始 returning。
模組化架構的一項附帶優勢:故障可逐模組診斷
這種模組化架構的一大優點,是失敗發生時可以逐模組追查根因,而不是面對一個難以拆解的黑盒子:
- Perception Failure:YOLO bounding box 錯 → keypoint 錯 → EPnP 算出的 trolley pose 錯
- Pose Estimation Failure:LiDAR 點雲 → RANSAC 平面擬合錯 → docking pose 錯
- Planning Failure:姿態正確,但 NMPC 求出的軌跡錯
- Safety Constraint 介入:偵測到障礙物 → CBF 限制 NMPC → 機器人改變軌跡(這種情況不是故障,而是安全機制正常運作)
與 VLA 路線的比較:模組化機器人 vs 端到端學習策略
這篇論文屬於 Modular Robotics,而 VLA(Vision-Language-Action) 路線走的是端到端(end-to-end)、學習出來的策略(learned policy)。兩條路線的資料流分別是:
Modular(本文路線):Image → YOLO → Keypoint → EPnP → Pose → NMPC → CBF → Control → Manipulator
優點:可解釋、容易除錯、安全約束容易明確加入(如本文的 Obstacle CBF、FOV CBF)、控制精確、每個模組責任清楚(對應前面「逐模組診斷」的優勢)。
缺點:系統工程複雜、需要人工設計整條 pipeline、換一個任務可能需要重新設計大部分環節、對環境與幾何假設較敏感(例如 RANSAC 平面偵測假設 trolley 背板是平面)。
VLA:Image + Language → VLA → Action → Robot
優點:可以學習複雜行為、任務泛化能力可能更強、可以直接用語言指令下任務、能減少人工設計 pipeline 的工程負擔。
缺點:失敗歸因(failure attribution)困難、除錯比較困難、安全約束不容易像 CBF 這樣直接數學化保證、需要大量示範/訓練資料、不容易解釋模型為什麼輸出某個動作——這也是本站在 SAFE 論文導讀 中討論過的問題:VLA 模型內部決策不透明,才需要額外訓練一個探測器去讀取隱藏狀態判斷任務是否正在失敗,而這正是模組化架構透過「逐模組診斷」就能相對直接做到的事情。
論文真正想強調的設計哲學,不是「YOLO + Hourglass + PnP + LiDAR + RANSAC + NMPC + CBF 很多技術湊在一起」,而是把機器人任務拆成不同層級,每一層用最適合的方法:學習方法處理感知(Perception)、幾何方法處理姿態估計(Pose Estimation)、最佳化方法處理軌跡規劃(NMPC)、安全數學處理約束(CBF)、回饋控制處理操作機構(Manipulator)。這跟愈來愈多 VLA 論文強調「從大量資料中學出通用的感知到動作映射」,是機器人系統設計上兩種同樣活躍、但哲學截然不同的路線——傳統模組化機器人強調可控、可解釋、安全與精確;VLA 則更強調從資料中學習通用能力、減少人工設計負擔,兩者的取捨,某種程度上也呼應了本站在遠端遙控 vs 自主控制一文中討論過的「規則式系統 vs 學習式系統」的一般性權衡。
完整架構總覽
┌───────────────┐
│ Trolley │
└───────┬───────┘
↓
Long Distance → RGB Camera → YOLOv5
↓
Bounding Box → Stacked Hourglass → 6 Keypoints
↓
EPnP → Rough 3D Trolley Pose → Filtering
↓
┌───────────────┐
│ NMPC │ → Obstacle CBF → Approaching
└───────┬───────┘
↓
Robot gets closer → Short Distance → Solid LiDAR
↓
Point Cloud → RANSAC → Trolley Backplane
↓
Accurate Trolley Pose → NMPC → FOV CBF
↓
Precise Docking → Manipulator
↓
Fork + Encoder → Catch Trolley
↓
Returning → Return Destination
一句話理解整篇論文:遠距離用相機快速找到 trolley,近距離用光達精確對準 trolley,再用 NMPC 規劃運動,並透過 Obstacle CBF 與 FOV CBF 分別保證避障與保持 trolley 在感測器視野中,最後用專用 manipulator 完成抓取。
相關論文推薦
- 論文導讀:OpenVLA——70 億參數的開源 VLA——對照理解本文「模組化」路線與端到端 VLA 路線在架構哲學上的根本差異
- 論文導讀:SAFE——從 VLA 模型的隱藏狀態裡直接讀出失敗訊號——VLA 路線用探測器彌補「決策不透明」問題,恰好對照本文模組化架構天生具備的逐模組故障診斷能力
- 遠端遙控 vs 完全自主:機器人控制權該怎麼分配——規則式/模型式系統與學習式系統之間一般性取捨的延伸討論