[論文梳理] 足式機器人規劃控制流程 - 接觸碰撞的控制 - 模型誤差 - 自動駕駛車的安全合規(4個課堂討論問題)

目錄

問題 1:足式機器人運動規劃 & 控制的典型流程 (pipline)

1.1 問題

1.2 目標

1.3 典型流程(Pipeline)

1.3.1?環境感知(Perception)

1.3.2?高層規劃(High-Level Planning)

1.3.3?足跡規劃(Footstep Planning)

1.3.4?身體軌跡生成(Body Trajectory Generation / Trajectory Optimization)

補充論文

1.3.5?全身控制(Whole-Body Control, WBC)

1.3.6?反饋閉環

問題 2:接觸事件建模 & 混合系統控制

2.1 問題

2.2 背景

2.3 接觸建模方法

2.4 混合系統控制方法

問題 3:處理模型誤差

3.1 問題

3.2 背景

3.3 處理方法

問題 4:自動駕駛汽車的安全交互 & 駕駛模式差異

4.1 問題

4.2 意外交互中的安全 & 合規

4.3 普通駕駛 vs. 賽車 的區別

  • 港科廣?馬老師?的機器人學 課堂討論 (seminar)?記錄
  • 問題驅動的學習,有助于進一步提出有價值的問題
  • 梳理機器人運動規劃和控制領域的主流問題技術
  • 以問題為框架梳理論文更高效

問題 1:足式機器人運動規劃 & 控制的典型流程 (pipline)

1.1 問題

足式機器人 因其在復雜地形中的高機動性而備受關注。那么,足式機器人的 運動規劃與控制典型流程(pipeline)是怎樣的?

1.2 目標

  • 使足式機器人在復雜環境中穩定、高效地移動

1.3 典型流程(Pipeline)

足式機器人的pipeline類似無人車,但機器人的控制是全身控制,比車更困難

1.3.1?環境感知(Perception)

  • 使用傳感器(激光雷達 LiDAR、攝像頭 Camera、慣性測量單元 IMU、關節編碼器、足底力傳感器等)獲取環境信息(地形、障礙物)和機器人自身狀態(位置、姿態、速度、接觸狀態)
  • 生成環境地圖(如點云圖、柵格圖、高程圖)和估計機器人狀態(State Estimation)。狀態估計通常融合 IMU、運動學和接觸信息
自動駕駛多模態視覺感知經典 [ ICCV'23 ]: arxiv.org/pdf/2303.03991 [2303.03991] OpenOccupancy: A Large Scale Benchmark for Surrounding Semantic Occupancy Perception (arxiv.org) arxiv.org/pdf/2303.03991

1.3.2?高層規劃(High-Level Planning)

  • 根據任務目標(如“到達 A 點”)和環境地圖,規劃出一條全局路徑(通常是機器人身體中心 質心 (CoM) [質量中心]?的路徑),避開大的障礙物。常用算法如圖搜索(A*, RRT*)

  • 最新的接入LLM的高層規劃導航方法有:
AAAI-2024 | 視覺語言導航-NavGPT: [2305.16986] NavGPT: Explicit Reasoning in Vision-and-Language Navigation with Large Language Models (arxiv.org)

1.3.3?足跡規劃(Footstep Planning)

  • 根據高層規劃的路徑和局部地形信息,規劃出一系列離散的足底落點位置和時間。
  • 需要考慮:運動學可達性(腿長限制)、運動穩定性(如基于 ZMP - Zero Moment Point、Capture Point 的判據)、地形適應性(尋找平坦、穩固的落腳點)、避免碰撞等
足式機器人步態和軌跡規劃 ETH PhD論文 [ RAL-2018 ]: research-collection.ethz.ch/bitstream/handle/20.500.11850/241888/18-ral-winkler_.pdf?sequence=1

1.3.4?身體軌跡生成(Body Trajectory Generation / Trajectory Optimization)

  • 根據規劃好的足跡,生成機器人身體(CoM)和擺動腿(Swing Leg)的連續運動軌跡
  • 通常是一個優化問題,目標是平滑、節能、穩定,同時滿足動力學約束(如 ZMP 約束)、運動學約束和足跡約束
意大利理工大學 和 曼切斯特大學 2022年開源的全身控制工作: [2211.12849] Whole-Body Trajectory Optimization for Robot Multimodal Locomotion (arxiv.org)
補充論文
  • 其它的軌跡生成的工作(不是全身軌跡,只是手臂軌跡生成)
ICL倫敦帝國理工-2023年的工作: [2309.07550] Naturalistic Robot Arm Trajectory Generation via Representation Learning (arxiv.org)
  • 最新的接入LLM的端到端視覺-語言-動作模型有:(直接從感知 -> 動作軌跡生成)
Google 2023年的 RT-2 的端到端訓練:在機器人和公開數據上共同微調了一個預訓練的視覺-語言模型(VLM)。得到的模型接收機器人攝像頭圖像,語言指令,當前動作,并直接預測機器人執行的動作
類似于LLaVA用transformer做next token prediction;輸入:視覺token+文本token+先前動作token;輸出:動作token (做下一步的規劃控制)

1.3.5?全身控制(Whole-Body Control, WBC)

  • 這是最底層的控制。根據期望的身體軌跡、足部軌跡和接觸狀態,計算需要施加到每個關節的力矩(Torque)
  • 通常也表述為一個優化問題(如二次規劃 QP),目標是精確跟蹤期望運動,同時滿足多個任務和約束:
    • 任務(優先級可能不同): 保持身體姿態、跟蹤 CoM 軌跡、跟蹤擺動腿軌跡、維持接觸力等。
    • 約束: 關節角度/速度/力矩限制、摩擦力約束(Friction Cone)、接觸運動學約束(著地腳速度為零)
  • 常用方法包括基于任務空間/操作空間(Task/Operational Space)的控制、基于逆動力學的控制等。
MIT 2019 年的經典WBC論文,用MPC+WBC,論文名:Highly Dynamic Quadruped Locomotion via Whole-Body Impulse Control and Model Predictive Control ( arxiv.org/pdf/1909.06586)

1.3.6?反饋閉環

  • 整個流程是閉環的。感知到的實際狀態會反饋給規劃和控制層,用于糾正偏差
  • 例如,如果實際落腳點與計劃不符,或身體姿態發生傾斜,控制器會實時調整
騰訊RoboticsX發表在 [RAL2021] 的 論文:? (PDF) Learning-Based Balance Control of Wheel-Legged Robots (researchgate.net)

問題 2:接觸事件建模 & 混合系統控制

2.1 問題

接觸事件 會導致系統狀態發生不連續的跳變(例如速度突變)。我們如何有效地在 系統動力學 中為這種接觸進行 建模?對于這類具有 非光滑動力學 特性的 混合系統(hybrid systems),我們又該如何進行 控制

2.2 背景

  • 接觸(如機器人腳落地、物體碰撞)是許多物理系統中常見的現象。它會導致速度、加速度等狀態量瞬間改變,使得系統的動力學模型在接觸點變得不連續、非光滑。這類系統既包含連續變化的動態(如空中飛行),又包含離散的事件(接觸瞬間),因此被稱為“混合系統”

2.3 接觸建模方法

  • 剛體碰撞模型(Impact Maps): 這是最經典的方法之一。假設碰撞時間無限短,利用沖量-動量定理來計算碰撞后的速度。通常會引入“恢復系數”(Coefficient of Restitution, e)來描述碰撞的能量損失程度(e=1 為完全彈性碰撞, e=0 為完全非彈性碰撞)。對于多點接觸或復雜幾何體,需要考慮接觸點的位置、法線方向以及摩擦(如庫侖摩擦模型)
  • 連續接觸力模型(Penalty Methods / Regularization): 這種方法避免了不連續性。它將接觸力模擬為非常“硬”的彈簧和阻尼器。當物體相互穿透時,會產生一個非常大的排斥力將它們推開。優點是模型是連續的,易于仿真和控制設計;缺點是需要選擇合適的剛度和阻尼系數,可能導致數值計算上的“剛性問題”(stiffness),并且物理真實性可能不如碰撞模型
  • 互補約束(Complementarity Constraints): 這是目前在機器人學和仿真中非常流行且物理意義明確的方法。它將接觸條件(如:不穿透距離 d≥0、接觸力 fn?≥0、兩者不能同時大于零 d?fn?=0)以及摩擦力(如最大靜摩擦力約束)表示為一組數學上的互補約束(通常是線性互補問題 LCP 或非線性互補問題 NCP)。這種方法能夠精確地描述“接觸/分離”的邏輯切換
  • 事件驅動方法(Event-Driven): 精確地檢測接觸事件發生的時間點,然后在事件點切換動力學模型或應用沖擊模型。這在仿真中很常用,但在實時控制中可能較難實現

2.4 混合系統控制方法

  • 分段控制/切換系統理論(Switched Systems): 為系統的每種模態(接觸/非接觸)分別設計控制器,并設計切換邏輯來保證穩定性。挑戰在于處理切換瞬間的狀態跳變和保證切換過程的穩定性
  • 模型預測控制(MPC): MPC 天然適合處理約束。可以將互補約束或接觸力約束直接納入優化問題中,預測未來一段時間的系統行為并計算最優控制輸入。對于混合系統,需要使用混合整數規劃(Mixed-Integer Programming)或專門處理互補約束的優化算法
  • 能量/耗散理論(Passivity-Based Control): 利用系統的能量特性來設計控制器,特別是在處理接觸時的能量交換和耗散
  • 力/阻抗控制(Force/Impedance Control): 不直接控制位置,而是控制機器人與環境交互時的力或表現出的機械阻抗(力與位移/速度的關系)。這對于處理接觸時的不確定性和保證柔順性非常有效。
  • 基于學習的控制: 利用強化學習等方法讓系統自主學習如何在接觸中穩定運動

問題 3:處理模型誤差

3.1 問題

模型 總歸是 近似 的。我們如何處理模型中存在的 誤差

3.2 背景

  • 任何數學模型都是對現實世界的簡化和近似。誤差來源包括:參數不確定(質量、摩擦系數未知)、未建模的動態(如柔性、驅動器延遲)、傳感器噪聲、環境干擾等

3.3 處理方法

  • 魯棒控制(Robust Control): 設計控制器時就考慮模型不確定性的存在范圍,目標是即使在最壞的模型誤差情況下,系統依然能保持穩定并滿足一定的性能指標。常用方法包括 H-infinity 控制、滑模控制(Sliding Mode Control)等。滑模控制對匹配不確定性(matching uncertainty)尤其魯棒
  • 自適應控制(Adaptive Control): 控制器能夠在線估計模型參數或不確定性的大小,并根據估計結果調整自身的控制律,以適應模型變化
  • 迭代學習控制(Iterative Learning Control, ILC): 適用于重復性任務。通過每次試驗的誤差來修正下一次試驗的控制輸入,逐步提高性能,對模型精度要求不高
  • 基于觀測器的控制: 設計狀態觀測器(如卡爾曼濾波器、擴展卡爾曼濾波器、無跡卡爾曼濾波器、粒子濾波器等)來估計系統內部狀態和干擾,并將估計值用于反饋控制,以補償模型誤差和噪聲的影響
  • 數據驅動/學習方法:
    • 系統辨識(System Identification): 在控制設計前,通過實驗數據更精確地估計模型參數或建立數據驅動模型
    • 殘差建模(Residual Modeling): 用機器學習模型(如高斯過程、神經網絡)來學習“標稱模型”(nominal model)與實際系統之間的差異(殘差),并將這個學習到的殘差加入到控制設計中
    • 強化學習(Reinforcement Learning): 直接從與環境的交互中學習最優控制策略,可以不依賴精確的模型
  • 增加反饋增益: 在一定范圍內,提高反饋控制器的增益可以增強系統抑制干擾和克服模型誤差的能力,但過高的增益可能導致系統不穩定或放大噪聲

問題 4:自動駕駛汽車的安全交互 & 駕駛模式差異

4.1 問題

自動駕駛汽車 有時需要進行 激進駕駛(aggressive driving)并與其它車輛進行復雜的 交互。在這種 意外交互 發生時,我們如何保證車輛行為的 安全合規(compliant)?此外,普通駕駛賽車(car racing)之間有什么 區別

4.2 意外交互中的安全 & 合規

  • 環境感知與預測: 精確感知周圍車輛、行人、障礙物的位置、速度和意圖。利用運動模型、交互模型甚至機器學習模型預測它們未來的行為軌跡
  • 風險評估: 實時評估潛在的碰撞風險(如 Time-to-Collision, TTC)和其他危險情況
  • 決策規劃:
    • 規則遵從: 嚴格遵守交通規則(如保持車道、安全距離、讓行規則)。形式化方法(如 RSS - Responsibility-Sensitive Safety)可以提供可驗證的安全保證
    • 防御性駕駛策略: 預留足夠的安全裕度,對其他道路使用者的不確定行為保持警惕,選擇風險最低的策略
    • 應急處理(Contingency Planning): 預先設計好應對突發危險情況(如前方急剎、鬼探頭)的緊急避險策略(緊急制動、緊急變道),并能在極短時間內觸發執行
  • 運動控制: 精確、平穩地執行規劃出的軌跡,同時具備快速響應能力以執行緊急操作
  • 冗余與容錯: 在傳感器、計算單元、執行器等關鍵部件上采用冗余設計,確保單一故障不會導致災難性后果
  • V2X 通信(Vehicle-to-Everything): 與其他車輛、基礎設施通信,提前獲取危險警告或意圖信息,有助于協同決策,但不能完全依賴

4.3 普通駕駛 vs. 賽車 的區別

  • 目標(Objective):
    • 普通駕駛:安全、舒適、高效(節能、省時)、遵守交通規則是首要目標
    • 賽車:唯一目標是最小化單圈時間。在規則允許范圍內,將車輛性能發揮到極限
  • 運行環境(Environment):
    • 普通駕駛:開放道路,環境復雜多變,充滿不確定性(其他車輛、行人、信號燈、天氣等)。需要遵守統一的交通法規
    • 賽車:封閉賽道,環境相對可控,對手是專業的賽車手(行為更激進但也相對可預測),有特定的比賽規則
  • 車輛極限(Vehicle Limits):
    • 普通駕駛:通常在車輛的遠低于極限的范圍內運行,追求平穩和舒適
    • 賽車:持續在車輛的物理極限(輪胎抓地力、發動機功率、剎車性能)邊緣駕駛
  • 駕駛策略(Strategy):
    • 普通駕駛:保持車道、平穩加減速、保持安全距離
    • 賽車:尋找最優“賽車線”(Racing Line),最大化利用賽道寬度,進行極限剎車、最大加速度出彎,容忍甚至利用輪胎的小幅滑移(Slip Angle)
  • 風險容忍度(Risk Tolerance):
    • 普通駕駛:極低,以避免任何事故為目標
    • 賽車:較高,為了追求速度,可以接受一定的失控風險(如打滑、沖出賽道)
  • 控制算法側重:
    • 普通駕駛:側重安全性(碰撞避免)、平順性、規則遵守、能耗優化
    • 賽車:側重極限性能下的軌跡跟蹤、狀態估計(如輪胎滑移率)、最優控制(如最小時間 MPC)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/81181.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/81181.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/81181.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里云短信接入實現示例

1&#xff09;構建Springboot項目 2) 添加依賴 <!--阿里云短信--> <dependency><groupId>com.aliyun</groupId><artifactId>alibabacloud-dysmsapi20170525</artifactId><version>3.0.0</version> </dependency><…

邏輯回歸之參數選擇:從理論到實踐

一、邏輯回歸概述 邏輯回歸雖然名字中帶有“回歸”&#xff0c;但它是一種用于處理二分類或多分類問題的算法。其核心思想是通過構建一個線性模型&#xff0c;將輸入特征進行線性組合&#xff0c;再利用邏輯函數&#xff08;如Sigmoid函數&#xff09;將線性組合的結果映射到0…

綜合案例建模(1)

文章目錄 滾花手扭螺絲機箱封蓋螺絲螺絲孔錐形墊片 滾花手扭螺絲 前視基準面畫草圖&#xff0c;旋轉生成主體 倒角0.5 頂面&#xff0c;草圖轉換實體引用&#xff0c;去復制邊線 生成螺旋線路徑 頂面繪制草圖 上一步畫的草圖沿螺旋線掃描切除 鏡像掃描特征 陣列鏡像掃描特征 創…

SQL語句練習 自學SQL網 多表查詢

目錄 Day 6 用JOINs進行多表聯合查詢 Day 7 外連接 OUTER JOINs Day 8 外連接 特殊關鍵字 NULLs Day 6 用JOINs進行多表聯合查詢 SELECT * FROM Boxoffice INNER JOIN movies ON movies.idboxoffice.Movie_id;SELECT * FROM Boxoffice INNER JOIN moviesON movies.idboxoffi…

游戲引擎學習第247天:簡化DEBUG_VALUE

歡迎。關于紋理傳輸的詳細情況。 上周我們剛剛完成了紋理下載的相關工作&#xff0c;但實際上并沒有完全解決這個問題。問題的核心是&#xff0c;當前關于紋理下載的正確方式仍然存在較大的不確定性。盡管我們在進行紋理下載的工作時已有一定進展&#xff0c;但依舊有不少模糊…

python將字符串轉成二進制數組

python將字符串轉成二進制數組 功能概述&#xff1a; save_binary_to_json() 函數&#xff1a;將字符串轉換為二進制數據&#xff08;字節的整數表示&#xff09;&#xff0c;并保存到JSON文件中。 load_binary_from_json() 函數&#xff1a;從JSON文件中讀取二進制數據并還原…

【springboot知識】配置方式實現SpringCloudGateway相關功能

配置方式實現SpringCloudGateway相關功能 Spring Cloud Gateway 核心功能與實戰實現指南一、核心功能架構二、六大核心功能實現1. 動態路由配置2. 斷言(Predicate)配置3. 過濾器(Filter)配置4. 負載均衡配置5. 熔斷降級配置6. 限流配置 三、高級配置技巧1. 跨域配置2. 重試機制…

Windows 10 環境二進制方式安裝 MySQL 8.0.41

文章目錄 初始化數據庫配置文件注冊成服務啟停服務鏈接服務器登錄之后重置密碼卸載 初始化數據庫 D:\MySQL\MySQL8.0.41\mysql-8.0.41-winx64\mysql-8.0.41-winx64\bin\mysqld -I --console --basedirD:\MySQL\MySQL8.0.41\mysql-8.0.41-winx64\mysql-8.0.41-winx64 --datadi…

流式通信技術對比:SSE vs WebSocket 應用場景與最佳實踐

在構建動態、實時交互的現代 Web 應用時&#xff0c;實時通信能力至關重要。Server-Sent Events&#xff08;SSE&#xff09; 和 WebSocket 是當前最主流的兩種技術方案&#xff0c;它們都支持服務器主動向客戶端推送數據&#xff0c;但在通信模式、應用場景和實現復雜度上存在…

復雜度和順序表(雙指針方法)

目錄 目錄 目錄 前言&#xff1a; 一、時間復雜度和空間復雜度 1.1概念 1.2規則 二、順序表 2.1靜態順序表 2.2動態順序表 三、雙指針法 四、總結 前言&#xff1a; 時間復雜度和空間復雜度是用于判斷算法好壞的指標&#xff0c;程序性能的核心指標。時間復雜度主要衡…

flutter 專題 六十四 在原生項目中集成Flutter

概述 使用Flutter從零開始開發App是一件輕松愜意的事情&#xff0c;但對于一些成熟的產品來說&#xff0c;完全摒棄原有App的歷史沉淀&#xff0c;全面轉向Flutter是不現實的。因此使用Flutter去統一Android、iOS技術棧&#xff0c;把它作為已有原生App的擴展能力&#xff0c;…

Java高階程序員學習計劃(詳細到天,需有一定Java基礎)

??致敬讀者 ??感謝閱讀??笑口常開??生日快樂?早點睡覺??博主相關 ??博主信息??博客首頁??專欄推薦??活動信息文章目錄 Java高階程序員學習計劃(詳細到天,需有一定Java基礎)第一階段(30天)Java基礎:Java生態工具鏈:設計模式與編碼規范:第二階段(15天…

JS自動化獲取網站信息開發說明

一、自動獲取信息的必要性 1. 提高效率與節省時間 批量處理&#xff1a;自動化可以快速抓取大量數據&#xff0c;比人工手動操作快得多。 24/7 運行&#xff1a;自動化工具可以全天候工作&#xff0c;不受時間限制。 減少重復勞動&#xff1a;避免人工反復執行相同的任務&am…

Android Kotlin 依賴注入全解:Koin appModule 配置與多 ViewModel 數據共享實戰指南

一、基礎配置與概念 1. 什么是 appModule appModule 是 Koin 依賴注入框架中的核心配置模塊&#xff0c;用于集中管理應用中的所有依賴項。它本質上是一個 Koin 模塊&#xff08;org.koin.core.module.Module&#xff09;&#xff0c;通過 DSL 方式聲明各種組件的創建方式和依…

學習記錄:DAY21

我的開發日志&#xff1a;類路徑掃描、DI 容器與動態代理 前言 我失憶了&#xff0c;完全不記得自己早上干了什么。 日程 早上 10 點左右開始&#xff0c;學了一早上&#xff0c;主要是類路徑掃描相關的調試。 晚上 8 點了&#xff0c;真不能再摸&#x1f41f;了。 學習記錄 計…

【Agent】MCP協議 | 用高德MCP Server制作旅游攻略

note MCP (Model Context Protocol) 代表了 AI 與外部工具和數據交互的標準建立。MCP 的本質&#xff1a;它是一個統一的協議標準&#xff0c;使 AI 模型能夠以一致的方式連接各種數據源和工具&#xff0c;類似于 AI 世界的"USB-C"接口。 它能夠在 LLM/AI Agent 與外…

使用 Spring Data Redis 實現 Redis 數據存儲詳解

使用 Spring Data Redis 實現 Redis 數據存儲詳解 Spring Data Redis 是 Spring 生態中操作 Redis 的核心模塊&#xff0c;它封裝了 Redis 客戶端的底層細節&#xff08;如 Jedis 或 Lettuce&#xff09;&#xff0c;提供了統一的 API 來操作 Redis 的數據結構。以下是詳細實現…

Qt5與現代OpenGL學習(四)X軸方向旋轉60度

把上面兩張圖像放到D盤1文件夾內&#xff1a; shader.h #ifndef SHADER_H #define SHADER_H#include <QDebug> #include <QOpenGLShader> #include <QOpenGLShaderProgram> #include <QString>class Shader { public:Shader(const QString& verte…

【Machine Learning Q and AI 讀書筆記】- 02 自監督學習

Machine Learning Q and AI 中文譯名 大模型技術30講&#xff0c;主要總結了大模型相關的技術要點&#xff0c;結合學術和工程化&#xff0c;對LLM從業者來說&#xff0c;是一份非常好的學習實踐技術地圖. 本文是Machine Learning Q and AI 讀書筆記的第2篇&#xff0c;對應原…

using var connection = connectionFactory.CreateConnection(); using var 是什么意思

在 .NET 中&#xff0c;??垃圾回收&#xff08;Garbage Collection, GC&#xff09;?? 確實是自動管理內存的機制&#xff0c;但它 ??僅適用于托管資源&#xff08;Managed Resources&#xff09;??&#xff08;如類實例、數組等&#xff09;。然而&#xff0c;對于 ?…