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