← Portfolio08 / ROBOTICS CASE STUDY

ROBOSKILL LAB · PHYSICS / CONTROL / EVALUATION

When a robot misses,
what should it do next?

From executing an instruction to checking the outcome and trying again.

A small block-pushing task makes physical error and recovery measurable. Explore the motivation, 24 recorded experiments, and the next improvements.

Actual MuJoCo render of the three-axis Cartesian pusher, red and blue blocks, and target region
Actual MuJoCo render · recovery after a disturbance

Disturbance · seed 0 · replans 4 · final error 1.43 cm

Project
RoboSkill Lab · 2026.09
Implementation
Python · MuJoCo · NumPy · JavaScript
Current scope
Rule controller · simulator coordinates · recorded runs
Success by strategy5/12 → 12/12Single push → observe and reapproach · development conditions
Mean simulation time7.05 → 17.71 sSingle push → observe and reapproach · distinct from compute time
Physics runs244 conditions × 3 seeds × 2 strategies · MuJoCo 3.13.0

01 / MOTIVATION

Connect an AI decision to a physical outcome

In MED-RAG I evaluated responses; in agent projects I connected actions; in VisionEye I compared source footage with perception results. I wanted to extend that work to a system that checks whether a commanded action actually moves an object to its goal.

The first task is “push the red block to the right goal.” A tool can complete its planned path while the block still misses the goal. I varied friction, mass, and an applied force to test whether observing the outcome and replanning could reduce this gap.

02 / SYSTEM

From instruction to contact and observation

MuJoCo runs on CPU with a 0.002-second timestep. The controller sets robot actuator targets; gravity, friction, and contact move the blocks. Separate approach, lower, push, lift, and observe phases make each run inspectable.

The published experiment uses a rule-based parser and ground-truth simulator coordinates. An optional Ollama adapter passes only validated task specifications and has response-contract tests. Actual LLM inference and camera perception are future steps.

  1. 01InstructionConstrained Korean/English grammar
  2. 02Task contractpush / object / goal
  3. 03ExecuteThree-axis robot · position actuators
  4. 04Observe and reviseObject position → reapproach
  5. 05VerifyStable arrival · trajectory and events

03 / PROTOCOL

The same starting state, two execution strategies

For each condition, a seed shifts the initial block positions by up to ±2.5 cm, with matching states for both strategies. Open loop executes one full push from the initial observation. Closed loop pushes at most 9.5 cm, reads the current position, and approaches again.

Success requires staying within 4.5 cm of the goal with linear speed below 2.5 cm/s and angular speed below 0.5 rad/s for 0.3 seconds. The other block must move less than 4 cm; leaving the workspace or exceeding 24 seconds counts as failure.

StrategyExecutionShared conditions
open_loopInitial observation → one full-distance pushSame seed, goal, actuators, speed, and 24-second budget
closed_loopPush up to 9.5 cm → observe and reapproachSame success criteria and distractor movement limit
  • This comparison changes push segments and reapproaches as well as observation frequency. Isolating the effect of observation is a planned follow-up.

04 / MEASURED · 2026.09.15

More goals reached, with more time spent

I executed four conditions, three seeds, and two strategies. The single-push strategy succeeded in 5 of 12 runs; observation and reapproach succeeded in all 12. Mean final distance fell from 13.28 cm to 1.08 cm, while mean simulation time rose from 7.05 to 17.71 seconds.

Both strategies succeeded in all three low-friction runs. Larger differences appeared when mass and friction increased together and when a force was applied. These conditions and seeds form a small development set also used while building the controller.

OPEN LOOP

Plan once, push once

5 / 12 successful

Mean simulation time
7.05 s
Mean final goal distance
13.28 cm

CLOSED LOOP

Observe again, revise the path

12 / 12 successful

Mean simulation time
17.71 s
Mean final goal distance
1.08 cm

Sep 15, 2026 · 4 conditions × 3 seeds × 2 strategies. These 24 development runs are not a held-out evaluation. Time is the simulated task duration.

ConditionSettingsSingle pushObserve and reapproach
NominalMass 80 g · friction 0.502/33/3
Low frictionMass 80 g · friction 0.123/33/3
Higher mass and frictionMass 180 g · friction 0.700/33/3
Applied forceNominal + 1.2 N along x for 0.10 s0/33/3
  • These values correspond to the saved JSON and summary. Simulation time is elapsed time in the simulated world; CPU execution time is recorded separately.

05 / CASE ANALYSIS

What changed after the applied force

For seed 0 in the force-disturbance condition, both strategies received the same force at 2.868 seconds. The single push ended 28.95 cm from the goal. The observation strategy replanned four times starting at 3.874 seconds and reached a stable position 1.43 cm from the goal at 16.81 seconds.

This successful run still touched the other block. Contact was recorded on 20 physics steps, and that block moved approximately 2.97 mm. It met the current tolerance, but remains an unwanted effect for the next controller to reduce.

Force disturbance · seed 0Single pushObserve and reapproach
Final goal distance28.95 cm1.43 cm
Replans04
Simulation time7.05 s16.81 s
Steps with distractor contact020 / 0.04 s
  • The records show a missed goal and recovery with replanning. This comparison does not isolate the contributions of friction, contact, or push segmentation.

06 / VALIDATION CHANGES

Make the result worth inspecting

I checked the experiment as well as the controller: whether initial positions survived setup, whether briefly passing the goal could count as success, and whether replay artifacts were distinguishable from execution evidence.

Issue checkedImplemented change
Recomputing model constants can reset initial positionsSave and restore qpos around mj_setConst; test repeatability and variation across seeds
Success based on one position and velocity sampleRequire 0.3 seconds within the goal and speed limits; reject timeouts
Confusing simulation evidence with display replayRecord code hashes, environment, trajectories, and events in JSON; the web viewer reads recorded results
Success can hide contact with the other blockRecord contact steps, distractor displacement, and peak force at an individual contact point

07 / NEXT EXPERIMENTS · PROPOSED

Fix the evaluation, then expand perception and AI

The next priorities are a more controlled comparison, camera perception, and actual LLM execution. The table below proposes work not yet run, with acceptance targets to fix before those experiments.

PriorityExperimentProposed acceptance target
01A matched baseline with the same push segments, reapproaches, and time budget; 100 unseen seedsReport success, time, and distractor contact together; isolate the added effect of updated observations
02Estimate block positions from rendered RGB; add occlusion and lighting conditionsOn held-out data: position-error p95 ≤2 cm and success drop ≤10 percentage points versus oracle coordinates
03Run a local LLM on valid, ambiguous, and unsupported instructionsOn 100 fixed instructions: task-specification accuracy ≥95% and zero executions on the refusal set
04Train an imitation policy from expert trajectories and compare on independent conditionsMatch baseline success within the same 24-second budget while reducing execution time or distractor contact

DESIGN DECISIONS

Three principles behind the implementation

01

Fix the task contract

Validate the action, object, and named goal as a task specification; the controller owns coordinates and motor commands. This keeps instruction errors distinct from physical execution failures.

02

Evaluate arrival and stability

A frame near the goal is insufficient, so speed and dwell time are part of success. The same check includes distractor movement and timeouts.

03

Keep the result inspectable

Pair success counts with time, contact, failure events, and trajectories. Recorded runs can be inspected in the browser and downloaded as JSON.

SCOPE / EVIDENCE

What is measured, and what comes next

  • The 24 runs belong to a small development set. The 12/12 result applies to these conditions; success in new environments is unmeasured.
  • Published measurements use a rule parser, a hand-coded controller, and simulator coordinates. LLM, VLM, VLA, and reinforcement-learning model performance has not been measured.
  • This is a tabletop pushing task with a three-axis Cartesian robot. Six-axis arms, grasping, and transfer to physical hardware remain future work.
  • This personal project was implemented and run with automation assistance. The public website replays saved trajectories, alongside executable code and original records.
RELATED WORKVisionEye ↗

Contact

hyunaeee@gmail.com ↗

South Korea · Korean / English

Portfolio PDF

A casebook with roles, engineering decisions, evidence, and source links.

Choose “Save as PDF” in the print dialog.