2.5. 規劃 - DrGuero2001公開的資料
1月 15, 2023
0
DrGuero2001公開的資料中,AI & Robot (ifdef.jp)最新的文章是 " Biped robot that does not fall. "
除了連結的Biped robot that does not fall. - YouTube說明影片,說明了使用的硬體和工具之外,還有附上robot使用的原始碼http://ai2001.ifdef.jp/uvcKHR/main.c。 理論上這是最有價值的,但是以我這個初學者而言太複雜,就先略過,先去學習下列的模擬環境運作的原始碼。
DrGuero2001公開的資料中,這應該是對我最重要的
ODE source code 2 (ifdef.jp) (英文)
=> 在ODE(Open Dynamics Engine)模擬環境運作的source code。
Q&A (ifdef.jp) (英文)
=> code內容的問與答。
以上雖然只是模擬環境的code,不是他實際在robot上執行的code,但是學習用已經很足夠了。
開始之後最困難的是,在幾乎沒有程式基礎的情況下,要去讀懂他人的code,把產生步態的部分,UVC修正步態的部分,ODE模擬的部分,區分出來。並且進一步讀理解產生步態與UVC修正的具體演算法物理意義。
DrGuero2001公開的四個source code檔案,雖然有簡單的英文說明,這邊整理一下我個人的解讀
[ DrGuero2001網頁連結同時有新舊版,在文章” 簡単な原理で歩く(Walk on a simple principle)”,文中的連結ODE source code (ifdef.jp)裡還是舊的檔案,文末” UVC application”的段落,提供的連結ODE source code 2 (ifdef.jp)才是新版,我拿舊版學習很久,整理要發在Blog才發現有更新,但是網頁更新日期都寫(Updated on June 1,2021)沒發現]。
Bipde.cpp =>
產生ODE的模擬環境,產生模擬需要的物件,機器人與障礙物等等。機器人關節是用位置驅動。
Biped.h =>
主要是產生模擬的Body與關節Joint的變數。但是數值是寫在biped.cpp。
core.cpp =>
產生步態的腳尖位置,再算出各關節角度,以及UVC計算修正的部分,最後週期產生各關節的角度,Biped.cpp會讀取這邊產生的關節角度,讓ODE中的Robot動起來。
core.h =>
定義計算步態與關節的相關變數
再全部讀過之後,其中對我最重要的是core.cpp的內容,這邊最花時間,沒有程式的基礎下,讀不懂寫法,要一直去查資料才能看懂寫法,非常吃力。計算方式對應到現實的物理意義,也花非常多時間去理解,但理解之後就是豁然開朗的感覺。
Bipde.cpp的部分,可以確定主要是ODE相關,基本上是沒有辦法看懂,但是至少確定,要控制實際的Robot時大部分都不需要,所以就確認用途後略過,不用再繼續研究。
Biped.h和core.h就比較單純,都是配合core.cpp與biped.cpp,只是我無法理解分開定義的好處。
UVC說明
DrGuero2001有在文章” 簡単な原理で歩く(Walk on a simple principle)”文章,有放上UVC (Upper Body Vertical Control)的說明
ODE物理演算 (ifdef.jp) (日文)
=> UVC(上体垂直制御)の説明
ODE Physics (ifdef.jp) (同上但是英文)
=> Description of UVC (Upper Body Vertical Control)
這部份很重要,但是我停留在理解概念,但是到底如何實作,還需要很多時間研究,不過目前的階段,還不要太在意,優先順序在下一階段。
Tags