您現在的位置是:首頁 > 綜合

硬核up主花三個月自制“機器人心臟”,可承載機械戰甲

  • 由 良藥苦口利於病 發表于 綜合
  • 2021-12-15
簡介稚暉君做廢的板子~一次次的失敗也讓稚暉君感到十分沮喪,但他並沒有放棄,經過軟硬體幾十次的修復,終於成功的做出了這款FOC向量控制驅動器~稚暉君表示,這款驅動器的硬體設計參考了VESC和ODrive,在此基礎上他進行了一些改進,也添加了很多功

無刷電機如何驅動

還記得今年3月火遍b站的技術宅稚暉君嗎?他的一則自制迷你電視的影片在b站有著397萬的播放量,更是超越眾多二次元影片榮登全站排行榜第5名。

為什麼這則影片這麼火?因為這個電視相當“硬核”,內行外行看了都覺得厲害的那種。

其實這是個長成電視模樣的迷你Linux電腦,連個滑鼠就能用!而且它還集人臉識別、語音助手等AI技術於一體,可以檢測到人臉,還能用語音喚醒,充當一個迷你的語音助手。

稚暉君,一位自稱野生鋼鐵俠的AI演算法工程師,他自己也做過不少機器人專案。前不久,他帶著新的作品來了,他自制了一款FOC(Field-Oriented Control)驅動器。

這塊驅動器的厲害之處就在於,是稚暉君獨自一人耗時三個月製成,軟硬體通通由他一人開發。而且這塊驅動器有“機器人心臟”之稱,就連業界在製作機器人的時候也常會用到此方法來做驅動,比如MIT Mini Cheetah四足機器人的驅動單元中就用到了FOC製作的基礎部件。

硬核up主花三個月自制“機器人心臟”,可承載機械戰甲

不僅如此,這塊驅動器還被稚暉君稱為“全能開發板”,除了應用在機器人領域,還能用來模擬各種物理效果!

話不多說,一起來看看。

驅動器變身全功能開發板,理論上能承載“機械外骨骼”

稚暉君表示,這個驅動器可以驅動市面上幾乎所有型別的無刷電機,而且可以新增很多自定義功能。

這就是驅動器的全貌~ 帶有CAN、USB、I2C等通訊介面,單路最大驅動電流超過100A。除此之外,還有一塊小小的OLED螢幕,解析度為128x80。

硬核up主花三個月自制“機器人心臟”,可承載機械戰甲

迷你版雙通道無刷電機驅動器

這塊板子能幹嘛呢?它可以同時驅動兩個無刷電機和兩個舵機。有點難懂?來看下面的例子。

比如透過控制電機1(下方),電機0(上方)也能隨之驅動:

硬核up主花三個月自制“機器人心臟”,可承載機械戰甲

上面這個是最基礎的,稍微調整一下,還可以變成單向驅動的棘輪。如下圖所示,電機0可以跟隨電機1在順時針方向同步旋轉,而電機0卻無法逆時針迴轉,它只能做單向間歇運動。

硬核up主花三個月自制“機器人心臟”,可承載機械戰甲

看了這麼多,那這兩個電機有什麼用途?接下來就要展示這個板子最酷的成果了——模擬機器人零件之間的協作,展示一下機器人是怎麼動起來的。

現在這兩個電機彼此之間是沒有感應的,也就是說,當其中一方受到阻力,另一方是不知道的,顯然這樣是做不成機器人的。所以需要做一些調整,讓其中一方感受到力的反饋。

於是,稚暉君又在韌體裡面新建了一個使用者APP,把電機1的位置同步到電機0,同時把電機0的力矩縮小5倍之後同步給電機1。從下圖中可以看到,電機1收到電機0的反饋後能明顯感到阻力~

硬核up主花三個月自制“機器人心臟”,可承載機械戰甲

所謂的機械戰甲、機械外骨骼就是人用肢體動作控制機器人外殼做出一模一樣的動作。看到稚暉君展示的效果,是不是覺得有內味兒了~

稚暉君做了這樣一個驅動器,明顯是要搞事情啊!沒錯,這塊板子就是稚暉君為後面的一個機器人專案準備的零件之一,這塊板子將作為“機器人的心臟”。他之前還開發了一款夸克核心版,將作為這個機器人專案的“大腦”。

硬核up主花三個月自制“機器人心臟”,可承載機械戰甲

左手“心臟”,右手“大腦”

讓我們小小的期待一下稚暉君的這個機器人專案吧~

話說回來,再看看稚暉君是怎麼做成這塊板子的吧。

花費三個月,經歷數次失敗,終於做出這塊“機器人的心臟”

稚暉君感嘆道,這是他在所有設計中,做的最曲折的一塊板子,花了將近3個月的時間。因為這個是電流達到幾十安的大功率器件,焊好的板子不能有一點bug,否則就廢掉了。

硬核up主花三個月自制“機器人心臟”,可承載機械戰甲

稚暉君做廢的板子~

一次次的失敗也讓稚暉君感到十分沮喪,但他並沒有放棄,經過軟硬體幾十次的修復,終於成功的做出了這款FOC向量控制驅動器~

稚暉君表示,這款驅動器的硬體設計參考了VESC和ODrive,在此基礎上他進行了一些改進,也添加了很多功能。改進後的板子長這樣

硬核up主花三個月自制“機器人心臟”,可承載機械戰甲

迷你版雙通道無刷電機驅動器

別看板子這麼小,介面可真不少,帶有CAN、USB、I2C等通訊介面,單路最大驅動電流超過100A。除此之外,還有一塊小小的OLED螢幕,解析度為128x80。

最重要的是,這款驅動器還帶有兩路可配置的PWM輸出,也就是說這個板子可以同時驅動兩個無刷電機和兩個舵機。

這塊板子只是稚暉君的其中一種設計,他還設計了一種分立疊板式的驅動器。分立式設計的好處就是可以把控制電路和驅動電路分離,如果想換成更大功率的電機,替換下面的驅動電路的可以了。

但他也表示,自己還是喜歡第一種的一體式設計。

除了機器人領域,這塊驅動器還可以用來模擬各種物理效果

稚暉君稱,這款驅動器的電路設計其實不算很複雜,其核心在於FOC演算法和韌體程式碼的實現。

FOC(Field-Oriented Control),直譯是磁場定向控制,也被稱作向量控制(VC,Vector Control),是目前無刷直流電機(BLDC)和永磁同步電機(PMSM)高效控制的最優方法之一。FOC旨在透過精確地控制磁場大小與方向,使得電機的運動轉矩平穩、噪聲小、效率高,並且具有高速的動態響應。

FOC演算法可以對無刷電機進行力矩、速度和位置三個閉環控制,FOC驅動器可以驅動無刷電機在極地的轉速下保持力矩,而且超高轉速也完全能hold住。這也是無刷電機被廣泛用於機器人專案的重要原因。

更多關於FOC演算法以及相關理論實現,可以在稚暉君的部落格看到

http://pengzhihui。xyz/2020/07/02/foc/#more

最後,再來感受一下稚暉君口中的這塊“全能驅動器”。之所以全能,是因為除了機器人領域,力矩控制還可以用來模擬各種物理效果。

比如,可以將這個無刷電機模擬成各種旋鈕的效果!

可以把它調整為帶彈簧的旋鈕:

硬核up主花三個月自制“機器人心臟”,可承載機械戰甲

如果設定一定的阻尼,彈簧就可以這樣慢慢回彈:

硬核up主花三個月自制“機器人心臟”,可承載機械戰甲

還能變成多檔開關的效果:

硬核up主花三個月自制“機器人心臟”,可承載機械戰甲

最後,還可以讓它放飛自我:

硬核up主花三個月自制“機器人心臟”,可承載機械戰甲

看到這裡,有沒有覺得很酷呢~

在影片最後,稚暉君表示在這個“機器人心臟”上還有一個腦洞。

Top