進行中 Robotics Hardware OpenDuck

OpenDuck Mini:從零組一隻雙足小鴨

以開源的 Open Duck Mini 為藍本,自己列印、組裝骨架,並在沒有電子背景的情況下學會焊接、自己設計電池供電,完成第一次通電和 Pi Zero 開機。接下來要接舵機、做姿態校準,讓它照官方的 RL 策略走起來,並升級到 Raspberry Pi 5。

組裝完成的 Open Duck Mini:白色方形頭殼亮著兩顆圓眼,站在藍色切割墊上

Open Duck Mini 的完成體,也是我這台的目標(圖片來源:網路)。

這是我以開源專案 Open Duck Mini 為藍本、自己組的雙足步行小機器人。列印、骨架組裝、焊接、電池供電設計到 Linux 環境,都是自己動手完成的。其中最大的挑戰是電路:我原本沒有電子背景,這個專案讓我從焊第一塊板開始,一路做到自己設計整台的供電。目前骨架、電路和主控都已完成,下一步是接上舵機讓它走起來。

用一分半看完組裝過程和遇到的困難。畫面裡的照片和影片都是我自己拍的實拍(開頭和結尾的走路影片是 Open Duck Mini 官方影片,apirrone/Open_Duck_Mini,Apache-2.0);旁白是 AI 語音(Gemini TTS)。

列印與組裝骨架#

五月底買了 3D 印表機,白色的底座和頭殼都是自己印的。七月初開始組裝,順手把 Raspberry Pi 設定好;14 顆舵機逐一校正,每顆都手寫編號標籤,避免之後接線搞混。

左右兩條腿放在桌上,每顆舵機都貼著手寫的編號標籤 兩條腿分開立在桌上,舵機線還垂在外面

每顆舵機都手寫編號,兩條腿先分開組。

組裝中碰到零件斷裂,換件後繼續;也發現右腳裝反,整條腿拆掉重組。之後我改成每組完一段就對照模型檢查一次,再往下走。七月中,整副骨架順利站起來。

雙腿裝上軀幹的正面,舵機線還沒整理 完整的黑色骨架立在桌上

雙腿裝上軀幹;七月中整副骨架站起來了。

最大的挑戰:電路與電池#

七月中,我第一次拿起烙鐵,焊好了控制板。

整個專案最累的是電池和電線。我的電池和官方 BOM 不同型號,沒辦法照官方接線直接做,必須自己設計電池盒和整台的供電;沒有電路背景,光是「一顆電池怎麼同時供給控制板和 Raspberry Pi」就花了一段時間釐清。我先畫接線規劃、想清楚再動手,八月中完成整套 2S 電池供電:電池一路直接供給控制板,另一路經過 7A 的 UBEC 降壓到 5V 給 Raspberry Pi,另外再拉一條 USB-C 充電線。

桌上打開頭殼的機器人,旁邊是藍色 2S 電池、DC 線材和三用電表 手繪的供電圖:電池經 Y 型分線接到控制板,另一路經 7A UBEC 降到 5V 給 Raspberry Pi,另有 USB-C 充電線

左邊是接線工作桌,三用電表是這段時間最好的夥伴;右邊是我手繪的供電圖。

接線時我給自己定了一套固定流程:接之前先用三用電表量過極性、每條線都先上錫再接、一次只接一塊板子通電。照這個流程,第一次通電就成功。

組裝桌上,骨架旁邊是降壓模組、白色頭殼和線材 白色頭殼內部:兩顆喇叭、綠色電路板和兩顆藍色小舵機

降壓模組與拆下的頭殼;右邊是頭殼裡的電子零件和天線舵機。

主控開機#

我的策略是先照官方把基本版完成,避免一次改太多東西。八月中,Raspberry Pi Zero 2 W 設定完成:擴充板可以靠自己的電池開機,Wi-Fi 和遠端連線都正常;八月底裝好執行環境,教學中「接線」的部分全部完成。九月起,我也開始系統性地補電子學基礎,讓之後的電路設計不只靠試錯。

之後主控會再升級成 Raspberry Pi 5(16GB),供電架構也要跟著調整,多拉一路 5V 給 Pi 5。

骨架架在白色 3D 列印支架上,旁邊是控制板和線材

架在測試支架上的骨架,準備接舵機線。

未來方向#

接下來的路線:

  1. 接上所有舵機線,逐顆調整,再做全身姿態校準。
  2. 載入官方的 RL 步行策略,讓它先走起來。
  3. 升級到 Raspberry Pi 5(16GB)並調整供電,加上相機,負責更高階的任務和視覺。
  4. 在 MuJoCo Playground 裡自己訓練策略,並補上表情功能:LED 眼睛、喇叭和麥克風。

官方和社群已經把這隻小鴨做到很遠了,下面這些就是我想一步步追上的樣子。

從模擬走到實體#

官方先在模擬裡訓練,再把同一套策略搬到實體上:左邊是模擬,右邊是真的小鴨照同一套策略走路。這是我這台下一個要達成的里程碑。

模擬與實體同步行走(來源:apirrone/Open_Duck_Mini,Apache-2.0)。

穩定行走與抗干擾#

策略練好之後,小鴨不只能穩穩地走、邊走邊擺頭,被人從旁邊推一把也能自己調整腳步站穩。

左:邊走邊擺頭;右:被推之後自己站穩(來源:apirrone/Open_Duck_Mini,Apache-2.0)。

自己訓練策略#

走路的策略是用模仿學習加強化學習練出來的:先產生一套「像鴨子走路」的參考動作,再讓策略在 MuJoCo Playground 裡一邊模仿、一邊學會不跌倒。我想照這條路線,自己訓練出不同步態,例如轉彎、原地踏步,甚至更有個性的走法。

模仿學習用的參考動作(來源:apirrone/Open_Duck_reference_motion_generator)。

在 MuJoCo Playground 裡的 RL 訓練(來源:apirrone/Open_Duck_Mini,Apache-2.0)。

社群做出來的小鴨#

世界各地已經有很多人組出自己的 Open Duck Mini,外殼顏色和造型各有巧思。我的這隻,也會是其中一員。

社群成員組出的各種 Open Duck Mini 拼貼,外殼顏色和造型各不相同

Open Duck Mini 社群作品(來源:apirrone/Open_Duck_Mini)。

參考專案#

apirrone
/
Open_Duck_Mini
Making a mini version of the BDX droid. https://discord.gg/UtJZsgfQGe
4.1K
535
Apache-2.0

Antoine Pirrone 開源的雙足小機器人,外型參考迪士尼的 BDX 小機器人,並獲得 Hugging Face/Pollen Robotics 贊助。v2 版高約 42 公分、零件成本不到 400 美元,由 14 顆 STS3215 舵機驅動雙腿和頭部,主控是 Raspberry Pi Zero 2 W,搭配 IMU 和腳底感測器。它先在 MuJoCo Playground 裡用強化學習(加上模仿獎勵)學會走路,再把策略搬到實體上。repo 採 Apache-2.0。

apirrone
/
Open_Duck_Mini_Runtime
Runtime code for Open Duck Mini
184
114
no-license

跑在機器人上的程式:在 Raspberry Pi Zero 2 W 上讀取感測器、執行訓練好的步行策略。

apirrone
/
Open_Duck_Playground
Open Duck Project's Mujoco playground RL environments
190
92
no-license

在 MuJoCo Playground 裡訓練步行策略的環境,之後想自己訓練策略就從這裡開始。

tnkr.ai 上的 Open Duck Mini v2 文件
tnkr.ai/explore/docs/open-duck-mini/open-duck-mini-v2

官方的 BOM、零件和組裝資料。

子豪兄的 Open Duck Mini 組裝教學
zihao-ai.feishu.cn/wiki/JvFxwcLNFiGMewkO3bBcV4Xbndf

中文的逐步組裝教學,是我組裝時主要跟著走的路線;教學沒涵蓋的部分,就對照官方模型自己摸索。

roy4222
/
Roy-OpenDuck-Mini
Making a mini version of the BDX droid. https://discord.gg/UtJZsgfQGe
0
0
Apache-2.0

我自己的組裝與接線紀錄。