Microduck nedir, nasıl eğitiliyor?

Aynı kamera, aynı ölçek, ayakta duruş pozu. Solda Microduck (~25 cm), sağda Open Duck Mini v2 (~42 cm). Bizim render’ımız. Microduck modeli: pollen-robotics/microduck_rl; 3B ağ dosyaları © Pollen Robotics, CC BY-NC-SA 4.0. Bu görsel de CC BY-NC-SA 4.0 lisanslıdır. Open Duck Mini v2 modeli: Open_Duck_Playground, Apache-2.0.
Kısaca
Bölüm başlığı “Kısaca”Microduck, Hugging Face’e ait Pollen Robotics’in 27 Ağustos 2026’da duyurduğu iki ayaklı ördek robot (Pollen blog). Monte edilmiş geliyor, vergi ve kargo hariç 399 $. Yazılımı açık (Apache-2.0), donanımı kapalı. Davranışları, simülasyonda reinforcement learning (pekiştirmeli öğrenme) ile eğitilmiş küçük neural network’ler.
- Ne yapıyor (iddia): kumandayla yürüme, oturup kalkma, tekme, gagayla küçük nesne alma, aksesuarla paten, düşünce kalkma, lazer noktası takibi.
- Ne yapmıyor: konuşmuyor; ses tanıma, SLAM, navigasyon ve özerk kavrama henüz yok. Pollen bunları topluluk hedefi olarak tanımlıyor (The Register).
- Ne zaman: mağazadaki güncel uyarıya göre mevcut ön siparişler Nisan 2027’den sonra gönderilecek. Türkiye satış bölgeleri arasında yok (Pollen mağazası).
Donanım
Bölüm başlığı “Donanım”| Bileşen | Değer |
|---|---|
| Boy, ağırlık | 25 cm; mağazaya göre 780 g (diğer resmî sayfalar “800 g”, “800 g’dan az”) |
| Motorlar | 15 adet Dynamixel XL330: 14’ü yürüme policy’sinde, 1’i gaga |
| İşlemci | Rockchip RK3566 (4× Cortex-A55), 1 GB RAM, 32 GB depolama, 0,8 TOPS NPU |
| Sensörler | geniş açılı kamera, 8×8 ToF derinlik sensörü, 2 IMU (gövde, kafa), mikrofon, hoparlör, 2 NFC anteni |
| Batarya | çıkarılabilir NP-F550, yaklaşık 1 saat |
| Taşıma | yaklaşık 100 g (Pollen’ın sözlü tahmini, resmî değer değil) |
Kaynaklar: mağaza, policy-manifest.md, robotd-design.md, npu-bringup.md.
İlginç bir ayrıntı: NPU yürümek için kullanılmıyor. Policy’ler işlemcide ONNX Runtime ile saniyede 50 kez çalışıyor; NPU yalnızca kameradaki küçük bir “ördek dedektörünü” (YOLO11n, INT8) koşturuyor.
Yazılım: davranış = Hub’daki bir ONNX dosyası
Bölüm başlığı “Yazılım: davranış = Hub’daki bir ONNX dosyası”Robotun içinde Rust ile yazılmış birkaç servis (daemon) çalışıyor. Motorlara yalnızca robotd dokunuyor; diğer her şey ona JSON-RPC ile niyet gönderiyor (architecture.md). Bir yürüme komutu tek satır:
{"jsonrpc":"2.0","method":"robot.move","params":{"vx":0.2,"vy":0.0,"vyaw":0.4}}Her davranış, Hugging Face Hub’da duran bir ONNX policy dosyası (policy.onnx + manifest.json). Tüm policy’ler aynı sözleşmeyi kullanıyor: 61 sayı girer, 14 eklem hedefi çıkar, saniyede 50 kez. Bu sayede robot yürüme, kalkma ve numara policy’leri arasında anında geçiş yapabiliyor. Resmî policy’ler pollen-robotics/microduck-policies deposunda (Apache-2.0): yürüme, ayakta durma, oturup kalkma, yerden alma, sağ/sol tekme, takla, paten ve yürüme + düşünce kalkma (velstand).
Ayrı bir doküman sitesi ve PyPI’da Python SDK’sı yok. Asıl dokümanlar microduck/docs/ altındaki Markdown dosyaları; başlamak için en iyi kapı cheatsheet.md.
Nasıl eğitiliyor?
Bölüm başlığı “Nasıl eğitiliyor?”Kavramlar sayfasındaki her şey burada da geçerli: simülasyonda binlerce kopya, bir reward, PPO. Farklar araçlarda ve reward’da.
| Microduck (microduck_rl) | |
|---|---|
| Simülatör | mjlab (MuJoCo Warp, GPU’da MuJoCo) |
| Algoritma | PPO (rsl_rl, PyTorch), 4.096 parallel environment |
| Süre | tek CUDA GPU’da kullanılabilir yürüyüş 1–2 saat (README) |
| Ağ | actor ve critic 512-256-128 |
| Reward | imitation yok: hız takibi, dik durma, poz, adım başına havada kalma, kafa takibi; kayma, öz çarpışma, sarsıntı cezası |
| Motor modeli | XL330 için BAM M6: voltaj kontrol yasası, geri EMK, sürtünme |
| Randomization | kütle ×0,95–1,05, sürtünme 0,9–1,1, ağırlık merkezi ±8 mm’ye kadar, batarya voltajı, voltaj düşüşü, komut gecikmesi, itmeler |
| Backlash | her servoya ±1° backlash (dişli boşluğu), ayrı görev ikizleri |
Kaynak: microduck_velocity_env_cfg.py, AGENTS.md.
İki karar öğrenen biri için özellikle değerli:
- Imitation reward’ı bırakmışlar. Open Duck Mini v2 bir reference motion’ı taklit ederek öğreniyordu. Microduck yalnız görev reward’larıyla (task reward) öğreniyor. Takla görevinde anahtar kare taklidi denenmiş ve bırakılmış: ara noktalar verilince policy o noktalarda “takılıp kalıyormuş”. Bir poz görevi en baştan tek bir hedef veriyor; yolu bulmak RL’in işi.
- Gerçekliği motor modeli taşıyor. Depo, bu ölçekte sim2real farkının büyük kısmının motordan geldiğini söylüyor; motor ideal bir denetleyici yerine voltaj yasasına kadar modelleniyor. Bu, bizim 3. bölümde gördüğümüzle aynı ders: Open Duck’ın simdeki motor sınırı katalog değerinin ~%70 üstünde ve sınırı kataloğa indirmek tek başına mesafeyi yarıya indiriyor.
Open Duck Mini v2 ile farkı
Bölüm başlığı “Open Duck Mini v2 ile farkı”Pollen resmî olarak “Open Duck Mini’den türedi” demiyor. Ama 14 eklem aynı adlarla ve aynı sırayla duruyor, araç zinciri aynı (Onshape → onshape-to-robot → MJCF, BAM, 50 Hz, ONNX) ve eğitim kodunun en çok katkı veren yazarı Open Duck Mini’nin yaratıcısı Antoine Pirrone. Doğru çerçeve: aynı ekipten, aynı fikirle, ayrı bir ticari ürün.
| Open Duck Mini v2 (bu sitedeki ördek) | Microduck | |
|---|---|---|
| Boy, ağırlık | ~42 cm | 25 cm, ~780–800 g |
| Servo | Feetech STS3215 | Dynamixel XL330 |
| Bilgisayar | Raspberry Pi Zero 2W, Python | RK3566, Rust |
| Simülasyon + RL | MuJoCo Playground (MJX/JAX) + Brax PPO | mjlab (MuJoCo Warp) + rsl_rl PPO |
| Reward | Disney BDX tarzı imitation + tracking | imitation yok, task reward’lar + curriculum |
| Motor modeli | BAM değerleri sabit kp/sönüm/sürtünmeye aktarılmış | BAM M6 simülasyon döngüsünün içinde |
| Donanım | açık (CAD, BOM, Apache-2.0) | kapalı; ağ dosyaları CC BY-NC-SA |
Mac’te ne yapabilirsin?
Bölüm başlığı “Mac’te ne yapabilirsin?”Resmî yığın Mac’i çalıştırmak ve değerlendirmek için destekliyor, eğitmek için desteklemiyor (mjlab).
| Basamak | Ne | Resmî mi? | Not |
|---|---|---|---|
| 0. Tarayıcı | Gerçek policy’leri microduck-simulator Space’inde sür | evet | kurulum yok; MuJoCo tarayıcıda (WebAssembly) |
1. infer_policy.py |
Bir ONNX policy’yi işlemcide MuJoCo + BAM ile klavyeden sür | evet | --no-bam ile basit motora geç, farkı gör; Mac’te uv sync resmî olarak test edilmemiş |
2. duck-sim |
Robotun gerçek Rust yazılımını simüle gövdeye karşı çalıştır | evet, macOS desteği var | Rust, mjpython; kamera için Homebrew GStreamer |
| 3. Eğitim | Kendi policy’ni eğit | yalnız CUDA GPU ya da ücretli --hf-jobs |
Mac CPU için topluluk portları var, doğrulanmadı |
# Basamak 1 (denemedik; komutlar microduck_rl README'sinden)git clone https://github.com/pollen-robotics/microduck_rl ~/Pollen/microduck_rlcd ~/Pollen/microduck_rluv run scripts/infer_policy.py --walking <policy>.onnx # kıyas için: --no-bamMac CPU’da eğitmek istersen topluluk portları: microduck-lab (CPU MuJoCo + Stable-Baselines3), microduck-rl-torch (PyTorch, Apple MPS), microduck-mjbatch (toplu CPU MuJoCo), microdux (JAX/MJX). JAX yolunu seçersen bizim karşılaştığımız tuzak geçerli: jax-metal Cholesky’yi derleyemiyor, JAX’in CPU arka ucunu kullan.
Bir başka not: Microduck Arena’sı Mac’teki sonuçların sunucudakinden farklı çıkacağını açıkça söylüyor; servo modeli birkaç saniyelik simülasyondan sonra ıraksayacak kadar kaotik (microduck-arena).
Dikkat: çelişen bilgiler
Bölüm başlığı “Dikkat: çelişen bilgiler”| Konu | Ne deniyor | Bizim okumamız |
|---|---|---|
| Teslimat | blog: “Noel 2026’dan önce” · 24 Ekim basın: 4–6 ay · mağaza: “Nisan 2027’den sonra” | en güncel olan mağaza uyarısı |
| Ağırlık | 780 g / 800 g / “800 g’dan az” | 780 g en spesifik resmî değer |
| Servo | resmî depolar XL330 · bir satıcı “Microduck için” Feetech HD-1910 satıyor | HD-1910 klonlarda; STS3215 Open Duck’ın |
| Taşıma | ~100 g · bazı sitelerde “800 g” | 800 g robotun kendi ağırlığı |
| “Açık kaynak” | ürün başlığı “open-source biped” · basın kiti: yalnız yazılım | donanım kapalı |
| Eğitim çerçevesi | resmî depo mjlab · bazı basın Isaac Lab / Newton | resmî hat mjlab |
| GTC sahnesi | TechCrunch kusursuz anlatıyor · Reuters, CNBC: bazı ördekler düştü, komutları kaçırdı | birden çok kaynak aksaklık bildiriyor |
Ayrıntılı, kaynaklı rapor: araştırma notlarımızdan derlendi (27 Ekim 2026). Bir şeyi yanlış ya da eskimiş bulursan issue aç.