作者: Mattia Fussi、Mattia Salvi、Michele Gesino、Ugo Pattacini 和 Marco Maggiali,意大利技術研究所 (IIT)
我們的團隊隸屬于意大利技術研究所 (IIT) 下設的 iCub Tech 機構,負責設計、開發和構建 iCub 開源機器人平臺。目前,iCub 人形機器人廣泛應用于全球 50 多個研究中心和研究所。它身高 1 米,具有 53 個自由度,其中頭部有 6 個自由度,頸部有 3 個自由度,眼部有 3 個自由度。這款機器人還配備有 50 多個電機,以及力扭矩傳感器和慣性測量單元。我們主要研究機電設計和低級控制固件,而我們在其他研究領域的同事負責開發更高級別的先進控制軟件以支持各種應用,包括人與機器人接口和分身機器人系統。
iCub 平臺十分復雜,這使得設計理念很難在硬件中真正實現之前得到驗證。例如,過去,我們在 CAD 工具中完成設計,并在三維機器人仿真器(如 Gazebo)中運行高級仿真,但這需要編寫自定義代碼,以對復雜的動力學進行建模。我們也只有在完成了新設計,用控制固件運行了測試,并手動調節了控制器增益后,才能了解新設計的效果如何。我們面臨的許多挑戰都源于無法使用機器人機械設計的逼真模型進行精確的動態仿真。
為了應對這些挑戰,我們的團隊最近驗證了一種新方法,即使用 Simulink 和 Simscape 創建 iCub 機器人頭部和頸部的數字孿生。此模型使我們能夠自動調節控制增益,并顯著改進軌跡跟蹤性能。此外,它還讓我們可以精準放置質點,輕松引入真實的非線性效應,并精確仿真作動系統,而這些功能對于設計可以安全應用于機器人的可靠控制算法至關重要。
CAD 裝配體的導入和模型的線性化
首先,我們使用 Simscape Multibody Link 插件將頸部裝配體從 PTC Creo CAD 軟件導出到 Simscape Multibody(圖 2)。該插件讓我們可以很輕松地從 CAD 中導出模型。導出模型時會生成一組幾何形狀文件(每個剛性部件對應一個文件),以及一個唯一的 XML 文件(包含有關如何裝配每個部件的信息)。此 XML 文件由 smimport 函數解析,該函數會自動創建一個定義所有模型參數的數據結構體,以及一個將此數據結構體加載到其模型工作區中的 Simscape Multibody 模塊圖。以這個導入的基線裝配體作為起點,我們用 Simscape Multibody 創建了機器人頸部的電纜差動系統的精確模型,并用 Simscape Driveline 創建了其傳動系統模型(圖 3)。
圖 2. iCub 頸部機制模型,左圖渲染自 CAD 軟件,右圖渲染自 Simscape。
圖 3. 電纜差動系統模型(左)和外部傳動系統模型(右)。
接下來,我們使用 Simulink Control Design 中的模型線性化器,以交互方式對頭部垂直放置的 Simscape 模型進行了線性化。在線性化后,該模型包含 38 個狀態。我們隨后使用 Control System Toolbox 中的模型降階器將其減至 18 個狀態。
雖然我們能為此模型創建一個穩定的控制器,但我們覺得它仍過于復雜。線性化過程中產生了帶有許多狀態的大型矩陣。這未能很好地反映實際設計。部分原因在于我們構建 CAD 模型的方式。該模型中的某些剛性元素并未顯式定義為此類元素,這使得導出表示具有額外的自由度。為了糾正這一錯誤,我們在 PTC Creo 中更新了裝配體,從而在降低了復雜度的同時,保持系統的主要動力學特性不變。然后,我們將更新的模型重新導入 Simscape,并再次運行線性化過程。我們最終得到了一個更小型、更簡單也更易于追溯的模型,便于我們理解頻率響應和傳遞函數。例如,我們使用 Robust Control Toolbox 分別為俯仰和滾動關節創建了不確定的線性化狀態空間模型。這些模型包含不確定的參數(我們為這些參數定義了各種可能的值),使我們能夠識別一組分離的傳遞函數(圖 4)。對于每個關節,我們都在下面三個不同的工況點處運行了線性化過程:頭部處于垂直狀態、頭部完全傾斜至最小角度,以及頭部完全傾斜至最大角度。
圖 4. 具有不確定參數的系統的頻率響應,這些參數表示分離的俯仰角。
提高控制器的跟蹤性能
有了更精確的 iCub 頭頸模型,我們就可以開始調節俯仰和滾動離散比例-積分-微分 (PID) 控制器的增益了。我們為調節過程定義了軟目標和硬目標,并使用 Control System Toolbox 中的 systune 函數來調節控制器增益。
此前,我們已經憑經驗基于對實際頭頸裝配體的多次試驗確定了一組增益值。Simulink 中的調節過程表明,我們需要顯著提高這些根據經驗確定的值的增益。特別是,我們需要將積分增益提高近 30 倍,因為這對于補償作用于頭部的重力至關重要(表 1)。
表 1. PID 增益的原始值和調節后的值。
我們在 Simulink 中使用 Simscape 被控對象模型測試了基本控制器模型的新增益。在這些測試中,我們讓頭部移過 minimum-jerk 多項式軌跡上的一系列路徑點,該軌跡是我們用 Robotics System Toolbox 生成的(圖 5)。
圖 5. 在 Simscape 中仿真的俯仰和滾動角動力學動畫,同時顯示跟蹤 minimum-jerk 軌跡。
仿真結果表明,軌跡跟蹤性能有了顯著提高。例如,對于俯仰跟蹤,均方根誤差 (RMSE) 減少了 80% 以上,而對于滾動跟蹤,均方根誤差則減少了 75% 以上。然后,我們在 iCub 機器人上測試了新的增益值,結果證實了我們在仿真中觀測到的跟蹤誤差和仿真時間有了顯著改進(表 2)。
表 2. 俯仰和滾動跟蹤的仿真與測量 RMSE 以及默認增益值與調節后的增益值。
驗證我們的模型和方法
通過簡單的目測就能清楚地看出,我們的 Simscape 模型能夠準確表示真實機器人的運動(圖 6)。
圖 6. 頸部裝配體的真實移動和仿真移動。
然而,為了進一步驗證該模型,我們對仿真和測量的俯仰角和滾動角進行了直接比較。我們發現,仿真結果和真實測試結果之間幾乎沒有差別(圖 7)。
圖 7. 仿真測試(藍色)與真實機器人測試(紅色)期間俯仰角和滾動角隨時間變化的圖。
在物理硬件上測試之前,我們可以采用仿真流程。通過該流程,我們成功地提高了控制器性能,這也驗證了我們的整體方法。我們相信,這種方法可應用于其他 iCub 肢體和組件,從而幫助構建機器人的完整數字孿生。我們已將這種方法運用到了另一個關于 ergoCub 機器人的項目,旨在確保物理機器人可供測試之前,控制器的所有性能要求都得到了滿足。
展望未來,我們計劃在模型中添加復雜的非線性效應,如皮帶松弛、皮帶輪壓扁和摩擦等,并繼續在生產之前盡早仿真新硬件功能的動態特性。憑借精確建模和仿真物理現象的功能,我們還可以在將來開始對我們的機器人平臺執行預測性維護。
-
傳感器
+關注
關注
2560文章
52172瀏覽量
761511 -
機器人
+關注
關注
212文章
29264瀏覽量
210821 -
Simulink
+關注
關注
22文章
538瀏覽量
63419 -
人形機器人
+關注
關注
4文章
645瀏覽量
17256 -
數字孿生
+關注
關注
4文章
1421瀏覽量
12670
原文標題:iCub Tech | 使用 Simulink 和 Simscape 構建人形機器人頭部的數字孿生
文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論