當前位置: 華文問答 > 科學

如何自己動手做一個不會摔倒的人型機器人?

2020-06-20科學

如果題主指的是雙足機器人的話,那主要涉及姿態控制和步態規劃,波士頓動力的Atlas相信題主肯定了解過↓

Atlas機器人 https://www.zhihu.com/video/1112713151824596992

最新影片中其能跑能跳的機動能力技驚四座,可以說是世界範圍內目前人形雙足機器人的巔峰了。

但是這個層級的機器人,已經遠遠超出了自己DIY的範疇了:波士頓動力自從 MIT 誕生開始,所做的東西就目的十分明確,招納了大量高端人才,人才和資源絲毫不缺,MIT 的工程背景,軍方的支持,之後 2013 年被 Google 收購,2017 年又被賣給軟銀,realtime hydraulic drive system 技術世界領先,擁有大量專利...

以上種種才有影片中的驚艷表現,自己想DIY出這樣的一個機器人並不是很現實。不過呢,如果只是想以Atlas為目標朝這個這個方向去嘗試,那倒還是有很多可以玩的空間的。

比如我參與學校期間就做過一個類似的雙足機器人↓

全身24個自由度(不包括手指),全無刷電機加諧波減速器驅動。這麽大的機器人要想順暢又穩定地走起來是非常有難度的,不像網上賣的那些小型舵機機器人,基本都是靠著巨大的腳掌來保持平衡,在這樣真人大小的機器人中我們需要進行復雜的動力學分析和建模,動態調整電機力矩輸出和身體姿態來進行自平衡。

下半身的步態測試 https://www.zhihu.com/video/1112715889467756544

對於這個機器人,可以將其簡單看成一個高階倒立擺,當時控制演算法使用的還是相對基礎的ZMP零力矩點演算法,透過采集腳底下安裝的力矩傳感器,調整電機力矩輸出平衡運動慣性來保持穩定,基本可以實作直立行走,但是效果其實相對於Atlas來說還差得很遠,遠沒有那種行雲流水般的自然感。更何況Atlas使用的驅動方案還是液壓而並不是電機,控制難度有進一步的提高。總的來說,雙足是個大坑,如果有興趣的話,值得你投入很多年的時間去深入研究。

除此之外,回答中也有人提到了村田公司的自平衡機器人,像是騎單車的murata boy和騎獨輪車走單杠的murata girl↓

這一類機器人都是透過慣性飛輪和角動量守恒來維持平衡的,以前網絡上很火的Cubli方盒機器人也是一樣的原理。論難度來說,要比Atlas低上好幾個等級。這一類別的機器人個人在很多年前也曾經仿制過↓

獨輪機器人ONE https://www.zhihu.com/video/1112718971878543360

這種輪式機器人的控制就簡單很多了,ONE中我使用的控制器是一塊Cortex-M3內核的STM32,控制演算法使用簡單的LQR甚至PID就可以滿足要求了。透過陀螺儀和加速度計進行姿態解算得到位姿數據,經過PID控制器反饋到電機輸出,只要參數調得好很容易就可以出效果。

關於輪式的自平衡機器人我還做過很多,比如下面這個兩輪自平衡的超迷你機器人↓

全球最小自平衡機器人Nano https://www.zhihu.com/video/1112720739366670336

控制原理和上面的獨輪類似,PID足矣。Nano的詳細介紹可以參考我這一篇回答↓

最後簡單總結一下題主的問題,要DIY一個不會摔倒的機器人有幾種實作方式:

如果是想做輪式機器人的話,難度相對較低,去了解一下IMU傳感器、姿態解算、PID演算法,基本上就可以DIY一個自平衡機器人,推薦從兩輪自平衡開始入手。

如果是想DIY一個雙足機器人,那麽我認為題主應該是想要做小型的舵機雙足機器人,這種情況下,由於平衡主要是靠大腳掌支撐保證,那麽只需要事先編輯調整好步態序列,確認行走過程不會摔倒(摔倒就看方向調整舵機輸出值),然後記錄下來重復執行舵機輸出序列即可。

長期搞各種腦洞專案,大家不嫌棄的話也可以點上面關註一下~非週期性更新

順便微博@ _稚暉