mrkeyoor.com_
Fri 16 Oct 21:34 UTC
Automationevaluationupdated 16 Oct 2026

microduck review

Microduck is the operating software for Pollen Robotics' small biped robot, covering motor control, device configuration and camera services. It loads learned movement policies and manages software updates; training those policies happens in a separate repository.

Verdict

Our Microduck run installed 547 packages, then its build and test commands both failed because pkg-config could not find GStreamer. Use this repository to work on Microduck's runtime if you can maintain the Linux libraries and board configuration its documentation requires. Choose the sibling training project for learning experiments, and require target-specific checks before relying on changed robot behavior.

We ran it

Lab card: what happened when we ran microduckScreenshot of microduck (pollen-robotics.com/microduck)
Install✓ · 23s547 packages
Build✗ · 114s
Tests✗ · 59sran, no count parsed
Repo449 files~157,746 lines of source · 9.1 MB · 10 CI workflows

Answers from our run

Does microduck build from source?

Dependencies installed in 23 seconds (547 packages), and the build failed. We cloned commit d7560ef into a clean Debian container with 3 CPUs and no project-specific setup.

Do microduck's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use microduck?

Researchers looking for the training environment: the README places policy training and ONNX export in microduck_rl.

What are the alternatives to microduck?

Open Duck Mini, Microduck RL. Our Microduck run installed 547 packages, then its build and test commands both failed because pkg-config could not find GStreamer.

Setup2/5547 packages installed, native GStreamer blocked build and tests
Docs4/5Specific Linux prerequisites, board setup and recovery guidance
Community4/5October releases, merged board fixes and active proposals
Maturity3/5Signed update design, with hardware checks still needed

Who it’s for

Microduck owners and contributors who need to operate or change the robot's Linux services.
Rust developers investigating how ONNX policies connect to robot control and device APIs.
Robotics teams prepared to maintain native media libraries, board provisioning and signed release configuration.

Who it’s NOT for

Researchers looking for the training environment: the README places policy training and ONNX export in microduck_rl.
Developers expecting Cargo dependencies alone to satisfy Linux setup: our build and test commands stopped on missing GStreamer, and the contributor guide lists required C libraries.
Teams treating host checks as board validation: the guide explicitly separates Linux-only NetworkManager and BlueZ paths from host results.
Applications equating an accepted command with completed movement: open pull request 417 reports that sitting can stop partway when a body pose is held.

Setup reality

Our run installed commit d7560ef in 23 seconds, adding 547 packages. The build failed with exit code 101 after 114 seconds, and tests failed with exit code 101 after 59 seconds. Both logs stop at missing GStreamer metadata for pkg-config, including gstreamer-1.0.pc.

The current contributor guide lists Linux native-library prerequisites. A physical development board also needs its OS and service configuration, network details, SSH key access and the appropriate signing-key trust settings. The guide makes GitHub credentials conditional on asset access or API limits. Policy training is separate.

The lab used image lab-rust:1 with 3 CPUs, 12 GB of RAM and no secrets. GStreamer 1.22 or newer was requested, and PKG_CONFIG_PATH was unset. Linux and macOS compile different paths, and a host result does not validate the board's radios or motors.

Installing the Rust packages doesn't provision a robot

Microduck's Rust dependency step succeeded in 23 seconds in our sandbox, then compilation stopped at a missing GStreamer library. That gap fits the project: this repository operates a particular robot, with camera services and board configuration alongside the movement code. Treat it as a robot software stack you're prepared to maintain. The first decision is whether you want to operate that hardware or work on a learning algorithm.

The README describes a small biped whose control daemon sends neural-policy outputs to its servos. Other daemons handle configuration, Bluetooth and camera streaming. Training lives in the separate microduck_rl repository, which exports ONNX policies for this runtime. That split is useful. You can study or change how an existing policy reaches the motors without adopting the policy-training workflow, and researchers can follow the training project without provisioning a physical duck.

What happened when we ran it

Our run installed commit d7560ef in 23 seconds, adding 547 packages. The build failed with exit code 101 after 114 seconds, and the test command failed with the same exit code after 59 seconds. The October 16, 2026 run used image lab-rust:1, an unprivileged container with 3 CPUs, 12 GB of RAM and no secrets. These are host-side results, without evidence of the runtime controlling a robot.

Both failing log tails identify the same native dependency: gstreamer-sys could not find GStreamer through pkg-config. The build request required GStreamer 1.22 or newer, and gstreamer-1.0.pc was unavailable in its search path. The log also says PKG_CONFIG_PATH was unset. That does not prove that setting the variable alone would solve it, since the required library and metadata file must actually exist. The test failure supplies no assertion results.

The checkout contained 449 files, roughly 157,746 source lines and 9.1 MB of files. Our scan recorded 10 CI workflow files. Those figures describe a substantial workspace with upstream automation, while our failed commands establish a narrower fact: the fresh lab image lacked a native prerequisite needed by the selected compilation path. We cannot turn that result into a judgment about walking stability, camera latency or successful rollback on hardware.

Linux needs C libraries that the contributor guide names

The contributor guide explicitly lists Linux packages including libudev-dev and GStreamer development packages. It explains that the media pipeline compiles differently on Linux and macOS. The top-level README links to this guide, so the dependency is documented beyond the landing page. Our container failure is a reason to read that platform section before starting, rather than evidence that the maintainers omitted the requirement everywhere.

The 547-package Rust installation therefore covered only part of setup. Board work adds an aarch64 Linux target, service configuration and policy assets. The development-board guide requires network details and SSH key access because provisioning reconnects after a reboot. It also distinguishes development signing keys from customer trust settings. I would keep the host's native packages and the board's provisioning procedure as separate records, since success at either step leaves the other unproven.

Signed updates and health checks are part of the runtime

Release daemon-v0.17.4 includes signed artifacts and a manifest, matching the documented update design. updaterd installs releases and can roll back when the robot comes up unhealthy. Configuration has its own daemon, separate from motor control, so troubleshooting access doesn't have to depend on the control process being healthy. These are practical choices for a machine whose software can fail while you're away from its keyboard.

The 114-second build failure prevented us from evaluating those mechanisms. Signed updates and rollback are documented capabilities here, without an endorsement from fault injection in our lab. Developer-board provisioning also intentionally changes which signing keys are trusted. Follow that route only for the matching board setup, and retain the documented recovery access. The distinction matters when moving beyond experiments to a robot whose installed software you expect to recover predictably.

MuJoCo runs the daemons without reproducing the board

The simulation guide describes real daemons communicating with a MuJoCo body through a simulated hardware connection. It gives contributors a way to investigate control and API behavior without a duck on the desk. That's a better match for software exploration than buying hardware before you've worked out which process or policy you want to change. Training new policies still belongs in the sibling learning repository.

Our 59-second test failure leaves that simulation route unverified too. The contributor guide warns that host checks do not validate Linux-specific NetworkManager and BlueZ paths. A current open pull request 417 also describes a held body pose interfering with sitting, even though the command reports acceptance. Its proposed fix is still open. If your application treats accepted commands as completed movement, this report gives you a concrete reason to reconsider that assumption.

October releases address real board behavior

GitHub recorded an October 16, 2026 push, 9,487 stars and 42 open issues and PRs. Release daemon-v0.17.4 shipped on October 15 with a beta-board serial identity fix. Nearby activity includes a merged release preparation and open proposals around controller behavior and mapping. The maintenance evidence is specific to operating robots, rather than just a star count. An open proposal remains a proposal until it lands.

For a build-it-yourself biped project with mechanical resources, compare Open Duck Mini. For policy training, start with Microduck RL and its simulation-to-ONNX workflow. Choose this runtime when you need Microduck's device services and update machinery enough to own the native Linux prerequisites. Before putting a modified release on a robot, get past the GStreamer blocker and check the exact behavior you changed on the intended target.

Alternatives

ProjectWhat it isPick it when
Open Duck Mini gh↗A biped robot project collecting mechanical, assembly and learning resources.pick this instead when building a different duck robot from its mechanical resources is the main goal.
Microduck RL gh↗The sibling learning environment that trains and exports Microduck movement policies.pick this instead when your work is training policies rather than operating the robot services.

What people are saying

  1. [github-trending] pollen-robotics/microduck

Sources

  1. Microduck runtime README and architecture links
  2. Contributor guide and Linux native prerequisites
  3. Development board provisioning and trust settings
  4. Microduck simulation guide
  5. Microduck daemon-v0.17.4 release
  6. Proposed fix for held body pose affecting sitting
  7. Open Duck Mini project resources
  8. Microduck RL training and ONNX export

More automation reviews

artemis · supersidian · genspark-claw · orc-claude-plugin · tiktok-views-bot · Ydisks-Xianyu-Helper · the whole board →