1. 程式人生 > 實用技巧 >機器人系統數學建模(現代控制理論1)

機器人系統數學建模(現代控制理論1)

這是現代控制理論番外篇的第一篇:主要圍繞機器人系統的狀態空間模型展開介紹。

建立機器人系統的數學模型是使用計算機控制機器人的第一步。主要分為如下五個部分:

為了使內容儘可能形象,這裡不介紹具體推導過程,以定性描述為主,計算和模擬等全部交給matlab和ROS。

課本中大量的示例圍繞電路系統的狀態空間模型,各種標準型,傳遞函式等,如何從這些知識平滑過渡到機器人系統建模呢???

看上圖最簡單的兩個公式。類比一下,電壓,電流和電阻,對應力,加速度和質量;那麼電路中的電容和電感等,也可以近似對應到機器人系統的彈性結構和阻尼結構。這樣的知識遷移能力對於快速掌握一門實用課程非常重要!!!

  • 運動學:不考慮機器人的慣性
  • 動力學:複雜但是模型精確

關於這部分內容可以詳細參考:

地面清掃機器人已經走入千家萬戶,這類機器人模型十分典型,如右圖所示,外觀酷炫的機器人,秒變符號圖示。

這些符號對於實際機器人系統具體的質量,輪子半徑,軸間距等各種引數。當我們建立好系統的狀態空間模型後,如果不將機器人放在這些數學符號旁,也許你不知道,它代表一個機器人,但是如果掌握現代控制理論,你將擁有這一特異功能。看下圖:

我們都知道兩輪的掃地機器人可以前進,後退,左轉和右轉,但是不能側向平移,為啥,如何更專業的描述這一特性,其數學模型給出了非常明確的答案!無論左輪和右輪如何旋轉,\nu _{y}

都是等於0的啊!

機器人建立準確的數學模型,對於理解,分析和控制此係統有著非常重要的作用。

這類掃地機器人的模型有個標準的名字:兩輪差動驅動機器人,依據機器人簡化模型示例可以寫出機器人的運動學模型,左右輪速度與機器人位姿變化的關係,這個模型對於控制機器人非常重要,但是不便於我們去思考和理解,於是有了下面的模型:

通常理解機器人可以前後和旋轉,分別對應線速度和角速度,與左右輪控制的變化關係也如圖所示。其實這個模型在模擬中如下圖所示:

如同一個拖車,後面的球體類似負載,如果使負載垂直於地面那機器人模型會發生變化嗎???

分別說明:兩輪差動+倒立擺???這個該如何是好??如何描述此係統,怎麼建立其數學模型呢??莫慌!

先硬著頭皮幹,這裡除了機器人位姿之外,還有擺杆與垂直方向夾角等,列出一串恐怖的狀態方程。然後再線性化:

得到一個熟悉的A和熟悉的B,但是這樣系統不可控,依據A和B算出,具體內容在能控性講解。問題出在哪裡???

  • 機器人系統既要地面運動,又要保持擺垂直,運動受到約束
  • 需要關注於擺而非空間位移的變化

一定要注意狀態空間模型建立過程中,狀態變數的選取!!!

矩陣抽象不便於理解,控制效果也不能直觀呈現,怎麼辦?引入三維模擬,逼真度高,效果好!

很酷炫是不是,昏昏欲睡的你是不是頓時又有了學習的慾望呢?如果將真實模型建模到模擬環境中,可以用於控制演算法測試,模型優化,提高效率,就像下面這樣,也是我們一直使用的案例:

注意:模擬的總體目標是以最小的時間成本在某種程度上重現現實,這種近似應成為設計機器人或評估現有機器人效能的具體目標。數字模型是現實的抽象。無需在Gazebo模型中複製物理機器人的每個細節。如果嘗試這樣做,那麼所需的工作量將非常大,以至於模擬的好處將無法彌補這種努力。相反,要做的就是複製這些特徵用於驗證機器人,應該先定義具體目標,然後建立最簡單的模型,使我們能夠遵守這些目標。

平衡車通常載人,假定人高1.8m,質量60kg,那麼直接簡化成一個高0.9米的連桿,球體重量為60kg。這樣就能實現對真實系統功能復現。將其所有細節考慮全面,得到了如下機器人數學模型,這是後續將持續介紹的。

模擬具體介紹連結: