如何利用視覺運(yùn)動(dòng)學(xué)原理讓機(jī)器人狗行走
機(jī)器人運(yùn)動(dòng)學(xué)變成了一個(gè)充滿樂趣的視覺實(shí)驗(yàn)場(chǎng):我通過使用“小狗板”(PuppyPi)來實(shí)時(shí)觀察并調(diào)整機(jī)器人的行走、小跑和攀爬動(dòng)作,從而掌握了動(dòng)態(tài)步態(tài)的要領(lǐng)!
我一直對(duì)機(jī)器人的行走方式充滿好奇,但逆向運(yùn)動(dòng)學(xué)和步態(tài)規(guī)劃卻感覺像是抽象的數(shù)學(xué)知識(shí)——直到我接觸到了 Hiwonder PuppyPi 項(xiàng)目。這個(gè)項(xiàng)目旨在打破這些障礙。我不僅為機(jī)器人編寫了程序;我還實(shí)時(shí)地對(duì)它的行走步態(tài)進(jìn)行了可視化設(shè)計(jì)和調(diào)整,將復(fù)雜的理論轉(zhuǎn)化為我可以直接看到、觸摸和調(diào)試的東西。以下是我是如何使用 PuppyPi 讓機(jī)器狗行走、小跑甚至攀爬的,我只需拖動(dòng)滑塊并進(jìn)行可視化操作就能實(shí)現(xiàn)這一切。
項(xiàng)目目標(biāo):為何這并非一個(gè)“黑匣子”
我的目標(biāo)是超越僅僅成為一名“程序員”,而要成為一名“活動(dòng)設(shè)計(jì)師”。我想要:
通過視覺方式控制逆運(yùn)動(dòng)學(xué)(IK),從而能夠直觀地創(chuàng)建姿勢(shì)和動(dòng)作。
?通過調(diào)整實(shí)際參數(shù)來理解和優(yōu)化仿生步態(tài)(行走、小跑),而不僅僅是調(diào)用預(yù)先編好的函數(shù)。
?通過結(jié)合步態(tài)規(guī)劃和逆向運(yùn)動(dòng)學(xué)原理,可以解決諸如爬臺(tái)階這類實(shí)際的物理難題。
“小狗派”非常適合這項(xiàng)任務(wù),因?yàn)樗且粋€(gè)開放式的平臺(tái):其搭載的樹莓派 5 芯片、ROS 支持以及 8 個(gè)智能舵機(jī)提供了計(jì)算和物理方面的工具,而其軟件則使復(fù)雜的數(shù)學(xué)運(yùn)算變得易于操作。
免費(fèi)下載“小狗派”教程,您還能獲取所有電路圖、源代碼、視頻教程以及各種實(shí)驗(yàn)案例等。
硬件部分:一個(gè)反應(yīng)靈敏的機(jī)器人軀體
在搖晃的平臺(tái)上,你無法調(diào)整動(dòng)態(tài)步態(tài)。而 PuppyPi 的硬件設(shè)計(jì)旨在提供即時(shí)反饋:
?連桿腿設(shè)計(jì):這并非僅僅是為了美觀。四連桿系統(tǒng)能提供更寬廣、更自然的活動(dòng)范圍。它將伺服旋轉(zhuǎn)直接轉(zhuǎn)化為高效的腿部運(yùn)動(dòng),這是實(shí)現(xiàn)穩(wěn)定步態(tài)的基礎(chǔ)。
?帶反饋的無核心伺服系統(tǒng):這是關(guān)鍵所在。與普通伺服系統(tǒng)不同,這類系統(tǒng)會(huì)報(bào)告其位置并將其反饋回控制器。這種閉環(huán)反饋機(jī)制使得能夠?qū)崿F(xiàn)實(shí)時(shí)調(diào)整和保持穩(wěn)定姿態(tài)。
?輕質(zhì)鋁制框架:減小的慣性使得機(jī)器人能夠迅速啟動(dòng)和停止動(dòng)作,從而在桌面環(huán)境中實(shí)現(xiàn)步態(tài)的平穩(wěn)轉(zhuǎn)換并具有良好的響應(yīng)性。
軟件工具包:奇跡誕生之地
真正的突破在于這套軟件系統(tǒng)。它將抽象的坐標(biāo)轉(zhuǎn)化為鮮活的動(dòng)態(tài)畫面。
1. 視覺逆向運(yùn)動(dòng)學(xué)控制:這是我開始的起點(diǎn)。該軟件提供了一個(gè)三維空間,您只需將一只腳拖拽至新的位置即可。逆向運(yùn)動(dòng)學(xué)求解器會(huì)立即計(jì)算出所有必要的關(guān)節(jié)角度(髖關(guān)節(jié)、膝關(guān)節(jié))并移動(dòng)腿部。我從零開始,在幾分鐘內(nèi)就設(shè)計(jì)出了“弓形”和“波浪形”的姿勢(shì)——無需任何數(shù)學(xué)運(yùn)算。
2. 實(shí)時(shí)步態(tài)參數(shù)調(diào)整:這是實(shí)驗(yàn)的核心部分。該軟件展示了行走引擎的關(guān)鍵控制要素:
?步幅高度與長(zhǎng)度:控制雙腳抬升的高度以及伸展的幅度。
?步態(tài)周期:整個(gè)步態(tài)動(dòng)作序列的完成速度。
?步態(tài)系數(shù):表示一只腳著地時(shí)間與在空中時(shí)間的百分比。在狗狗行走時(shí)調(diào)整這一參數(shù),能讓你直觀地看到其效果。提高踏板高度和循環(huán)頻率,平穩(wěn)的行走(三只腳始終著地)就會(huì)轉(zhuǎn)變?yōu)樘S式的快步(雙腿交叉同步移動(dòng))。
實(shí)驗(yàn)內(nèi)容:讓其向上爬一步
了解這些工具只是第一步;將它們組合起來使用才會(huì)帶來樂趣。我設(shè)定了一個(gè)經(jīng)典的挑戰(zhàn):自主完成踩踏低臺(tái)階的動(dòng)作。
步驟 1:為保持穩(wěn)定而規(guī)劃步態(tài)。我讓機(jī)器人保持緩慢且穩(wěn)定的步行步態(tài)。這樣在向障礙物移動(dòng)的過程中就能保證有三個(gè)接觸點(diǎn)來維持平衡。
步驟 2:精確腳部位置的骨骼動(dòng)力學(xué)控制。當(dāng)前腿到達(dá)臺(tái)階時(shí),我沒有計(jì)算角度。而是利用可視化的骨骼動(dòng)力學(xué)工具將腳部目標(biāo)位置拖拽到臺(tái)階表面。骨骼動(dòng)力學(xué)求解器處理了復(fù)雜的軌跡,將腿抬起并精確放置到位。
步驟3:動(dòng)態(tài)姿勢(shì)調(diào)整。為了在攀爬時(shí)將重心向前轉(zhuǎn)移,我通過“身體姿勢(shì)”控制裝置,在行走時(shí)略微將軀干向前傾斜。這種實(shí)時(shí)調(diào)整確保了重心始終位于支撐腿之上。
步驟4:重復(fù)并迭代。我再次對(duì)后腿的操作流程進(jìn)行了嘗試,觀察身體姿勢(shì)和步態(tài)節(jié)奏如何相互協(xié)調(diào)。經(jīng)過幾次迭代后,小狗機(jī)器人成功平穩(wěn)地爬上了臺(tái)階。
挑戰(zhàn)、調(diào)試與關(guān)鍵經(jīng)驗(yàn)教訓(xùn)
1. 挑戰(zhàn):步伐轉(zhuǎn)換時(shí)出現(xiàn)踉蹌。起初,在行進(jìn)途中從“步行”狀態(tài)轉(zhuǎn)換到“快步”狀態(tài)時(shí)會(huì)引發(fā)踉蹌,這是因?yàn)闀r(shí)機(jī)把握不當(dāng)所致。
修正:我利用軟件中的步態(tài)相位圖來直觀展示每條腿的狀態(tài)。我為每條腿調(diào)整了“偏移”參數(shù),以確保過渡過程的流暢性,并親身體驗(yàn)到了不同腿部之間的協(xié)調(diào)配合。
2. 挑戰(zhàn):IK“奇異點(diǎn)”姿勢(shì)。有時(shí),如果一只腳在身體下方伸展得太遠(yuǎn),就會(huì)導(dǎo)致一種不流暢的動(dòng)作——這就是典型的 IK 奇異點(diǎn)現(xiàn)象。
解決方法:該軟件設(shè)定了關(guān)節(jié)角度的限制范圍。我學(xué)會(huì)了在這些可視界限內(nèi)操作,這讓我比閱讀任何教科書都更能了解機(jī)器人可行的姿態(tài)。
3. 關(guān)鍵收獲:最穩(wěn)定的步態(tài)是由小幅度、逐步的調(diào)整所形成的。一次性改變多個(gè)參數(shù)會(huì)導(dǎo)致難以理解其因果關(guān)系。實(shí)際操作的過程培養(yǎng)了對(duì)動(dòng)態(tài)平衡的直觀感受。
結(jié)論
該項(xiàng)目證明,PuppyPi 不僅僅是一個(gè)預(yù)先組裝好的機(jī)器人,它更是一個(gè)實(shí)踐性的運(yùn)動(dòng)學(xué)實(shí)驗(yàn)室。通過將逆運(yùn)動(dòng)學(xué)和步態(tài)參數(shù)可視化并使其可調(diào)節(jié),它將機(jī)器人領(lǐng)域中最難的課題轉(zhuǎn)化為一種觸覺的、實(shí)驗(yàn)性的過程。
本文編譯自hackster.io





