AU

Research project · Build log

Iyan

A robot arm that learns to turn poundo yam from videos of people making it. Iyan is Yoruba for pounded yam.

Started 19 Oct 2026 · Base arm: FR3 · Next: understanding the task

Poundo, in three pictures

  1. Two people pounding boiled yam in a wooden mortar with a long pestle
    01

    Then: pounded by hand

    Pounded yam is a smooth, stretchy West African staple, eaten with soups like egusi. It was made by pounding boiled yam in a wooden mortar.

  2. An open sack of fine white yam flour at a market stall
    02

    Now: yam flour

    Today most people make poundo from yam flour instead. The flour is stirred into hot water in a pot.

  3. A woman turning a steaming yam-flour dough in a pot over a fire with a long wooden stick
    03

    The turn the robot learns

    Then it’s turned hard with a wooden stick until smooth. The dough starts loose and ends thick and sticky, so the resistance keeps changing. Hot, heavy, repetitive work.

Photos: HarunaSylvester; Blackcoffeegirl; Koutchika Lihouenou Gaspard; all CC BY-SA 4.0, cropped; via Wikimedia Commons. 02 and 03 show elubo and amala, poundo’s yam-flour cousin; the stir and the turn are the same.

Research question

Can I teach a robot to make food from video while incorporating uncertainties like poundo’s properties, all without a force sensor, for a simpler product?

  1. 01

    Learn from video

    The motion comes from clips of people turning poundo. The stick-tip path is tracked and retargeted to a robot arm.

  2. 02

    Handle uncertainty

    The dough goes from loose flour and water to a thick, sticky mass, and no two pots behave the same. The robot has to adapt as the resistance changes.

  3. 03

    No force sensor

    The policy never reads force. A load-cell stick measures what a real turn takes, and the FR3’s joint torque sensors are used only to check the policy’s work, never as its input.

Franka Research 3 robot arm, bent in a posed configuration, standing on a checkered floor in the MuJoCo simulator
The Franka Research 3 (FR3 v2 model) posed in MuJoCo on my own machine.
01

Poundo, and the problem

Poundo yam is a West African staple and my favourite food. You stir yam flour into hot water, then keep turning it hard with a wooden stick until it's smooth and stretchy. It's tedious, and it takes real effort.

For a robot it's a hard task. The dough starts as loose flour and water and turns into a thick, sticky mass, so the stick is pushing through something whose resistance keeps changing. The pot wants to move. And the only "instructions" that exist are videos of people doing it, which show how the stick moves but not how hard it's being pushed.

02

Goal

Design an arm and a first gripper that turn a pot of poundo from loose flour to smooth, lump-free swallow, with the motion learned from videos of people turning it.

It's also practice in building efficiently: one project, documented as it goes, failures included.

03

Approach

System overview: videos of people turning poundo go through pose and motion extraction, then a policy and inverse kinematics, which drive the FR3 arm, gripper and stick. A load-cell stick provides force data to the policy. Videos people turning poundo Pose & motion stick tip and hands Policy / IK retarget to the arm FR3 arm + gripper + wooden stick Load-cell stick force and torque data System overview: videos, then pose and motion extraction, then policy and inverse kinematics, then the FR3 arm with gripper and stick. A load-cell stick feeds force data into the policy. Videos people turning poundo Pose & motion stick tip and hands Policy / IK retarget to the arm FR3 arm + gripper + wooden stick Load-cell stick force data

Motion from video. Clips of people turning poundo are tracked for the stick-tip path, then retargeted to the arm with IK.

Force from a sensor. Video can't show force, so a load-cell stick logs what a real turn takes.

Franka Research 3 as the base, with a gripper on its ISO 9409-1-50-4-M6 flange holding a plain wooden stick.

Simulation first, in MuJoCo, before anything touches a real pot.

04

Roadmap

  1. P0

    Setup

    Tools installed on Windows; arm sim runs locally (SO-101 first, now FR3).

    Done
  2. P1

    Understand the task

    Stages of turning broken down; 30+ clips collected and curated.

    Up next
  3. P2

    Measure the dough

    Instrumented stick built; peak force and torque logged across stages.

    Not started
  4. P3

    Requirements

    Requirements table set from measured loads.

    Not started
  5. P4

    Mechanical design

    v1 stick gripper on the FR3 flange; pot fixture; torque sheet.

    Not started
  6. P5

    Motion from video

    Stick-tip trajectories extracted and retargeted to the arm in sim.

    Not started
  7. P6

    Learning and control

    A policy or scripted mapping replays turning strokes in MuJoCo.

    Not started
  8. P7

    Validation

    Sim beside the original clip; optional real pot test.

    Not started
  9. P8

    Presentation

    A short deck and a demo video.

    Not started
05

Decisions

Build a robot that turns poundo, taught from videos

Why
My own idea from an earlier post. It means something to me, it's a hard contact-rich task, and it puts physical-AI tools to real use.
Also considered
A humanoid ankle, a knee actuator, a finger, a weldment frame, a gesture-driven arm.

v1 end effector: a gripper holding a wooden turning stick

Why
Keeping the human tool means the videos map over directly. Iterate later.
Also considered
A built-in paddle; a scoop.

Base arm: Franka Research 3 (FR3), replacing SO-101

Decided
21 Oct 2026
Why
Its 3 kg payload suits dough loads. It has the largest MuJoCo and robot-learning ecosystem, including the franka_fr3_v2 model in MuJoCo Menagerie. Its seven joint torque sensors give ground truth to validate a policy that runs without a force sensor.
Also considered
UR5e.

Start from SO-101 (Apache-2.0), credited, then redesign for dough loads

Status
Superseded on 21 Oct 2026 by the FR3 decision above.
Why
Open STEP, URDF and MuJoCo files, and it works natively with LeRobot.
Also considered
AR4 (SolidWorks files, but non-commercial with no redistribution); PAROL6 (STEP files paid, not open).

Instrument a stick with a load cell

Why
Videos give motion but no force.
Also considered
Estimating loads from the literature.

Stay on Windows; use WSL2 only if ROS 2 is needed

Why
SolidWorks is Windows-only, and LeRobot and MuJoCo both run on Windows.
Also considered
Switching to Linux.
06

Build log

  1. Base arm switched to the Franka Research 3

    Replaced SO-101 with the FR3: 3 kg payload, the biggest MuJoCo and robot-learning ecosystem, and seven joint torque sensors to check a policy that never reads force. UR5e was the backup. Opened the FR3 v2 model from MuJoCo Menagerie in the MuJoCo viewer on my own machine. The tool flange is ISO 9409-1-50-4-M6: four M6 bolts on a 50 mm circle, with a Ø6 H7 dowel. Next: break turning into stages and start collecting clips.

  2. SO-101 opens in the MuJoCo viewer. Setup is done.

    Cloned SO-ARM100 and opened the SO-101 model in the MuJoCo viewer on my own machine. That closes P0. Next: break turning into stages and start collecting clips.

  3. Environment up

    Git, Cursor and Miniforge installed; a conda env with Python 3.12 and ffmpeg; LeRobot, MuJoCo and FiftyOne installed and importing. The SO-101 MuJoCo model loads and simulates on MuJoCo 3.16.0, with 6 joints and 6 actuators.

  4. Kickoff

    Picked the project, wrote the brief, and compared open base arms: SO-101 (Apache-2.0), AR4 MK5 (non-commercial licence), PAROL6 (paid STEP). Chose SO-101 and decided to stay on Windows. Set up the engineering log and a task board. Learned: video only gives kinematics, so force has to come from my own measurements, and open-hardware licences differ a lot.

07

Open questions

  1. Copy the human motion, or learn the goal: smooth, lump-free swallow?
  2. How do you model a material like poundo, which goes from runny to thick and sticky as it’s turned?
  3. How does the robot tell the dough is done: motor current, a camera, or stroke count?
  4. What holds the pot: a fixture, a second arm, or a smarter stroke?
  5. What breaks first under peak load: the stick, the grip, the wrist, or the fixture?
  6. What are the real peak force and torque at the stick? That's what P2 is for.
08

Credits

Franka Research 3 by Franka Robotics, the base arm. The FR3 model is derived from Franka’s franka_description.

MuJoCo Menagerie franka_fr3_v2 by Google DeepMind, released under the Apache-2.0 licence. The FR3 MuJoCo model comes from here.

SO-ARM100 / SO-101 by The Robot Studio, released under the Apache-2.0 licence. The first base arm and its MuJoCo model, used until 21 Oct 2026.

MuJoCo, the physics simulator the arm runs in.

LeRobot by Hugging Face, for robot learning.

FiftyOne by Voxel51, for curating the video clips.

Poundo photos from Wikimedia Commons, all under CC BY-SA 4.0, cropped: pounding boiled yam by HarunaSylvester; a woman selling elubo (yam flour) in Ipata market, Ilorin by Blackcoffeegirl; making of amala in Badagry, Lagos by Koutchika Lihouenou Gaspard.

← All projects Email