← All research topicsGitHub
Research topic

Robot manufacturing loops

Can general-purpose robot arms make and assemble things, planned and checked in simulation first? Assembly sequences, insertion and cells, with every claim kept to the simulator.

53 projects, each with its own page, code and tests. See them on the full research index.

Which assembly orders survive a better checker?

research/robofab-sequence · 10 tests

Assembly-order planning for a printed gearbox: exact subset DP, collision-only admits 10.6% of orders but support checking leaves 0.077%, the collision-only optimum is infeasible, greedy disassembly needs 4 direction changes vs 1 optimal. Stylised.

Abstract

Exact subset dynamic programming over assembly orders for a twelve-part printed gearbox, checked at three fidelity levels. Collision-only admits 4,227,168 of 39,916,800 orders (10.6%); adding quasi-static support leaves 30,760 (0.077%), and the collision-only optimum is infeasible once support is checked. Greedy disassembly needs 4 insertion-direction changes against an optimum of 1; one order written by the session agent (a single attempt, not a benchmark) passes with 2. Stylised axis-aligned boxes, no physics engine.

Does a quasi-static support rule agree with a physics engine?

research/robofab-settle · 7 tests

MuJoCo settle tests of all 2,048 partial gearbox assemblies vs the quasi-static support rule: 95.6% agreement, 81 mutual-support false accepts and 10 bore-capture false rejects, valid-order count unchanged at 30,760. Stylised.

Abstract

Validates the support rule of robofab-sequence against MuJoCo settle tests on all 2,048 partial assemblies of the printed gearbox. The rule agrees on 1,957 (95.6%): 81 states it accepts topple because a part can count as resting on a part that rests on it, and 10 it rejects hold because a gear bore captures the shaft. An acyclic-support variant reaches 99.5% (fitted on the same states). The count of valid orders is unchanged at 30,760 for three friction values, so this product's conclusions survive. Stylised boxes, static release, one product.

Does an insertion policy tuned in one simulator survive a better one?

research/robofab-insert · 6 tests

Peg-in-hole search policies tuned by CEM in MuJoCo at three fidelity levels or with domain randomisation: tuned on the simplest level 0.91 success there but 0.53 / 0.26 on a stiffer-contact / held-out level; training on the stiffer level or with randomisation gives 0.43–0.46 held-out and cannot be ranked with 5 seeds. Stylised, sim-to-sim.

Abstract

Cross-entropy-tuned five-parameter peg-in-hole search policies in MuJoCo, trained on three simulator fidelity levels or with domain randomisation and tested on all three plus a held-out parameter set. Tuned on the simplest level, success is 0.91 there but 0.53 on the stiffer-contact level and 0.26 on the held-out one; training on the stiffer level or with randomisation gives 0.43–0.46 on the held-out set, and with 5 seeds the two cannot be ranked. No seed exceeds 0.61 on the held-out level. Toy planar task; sim-to-sim only.

How much of the gap between “the twin passes” and “it fails for real” does each twin fidelity close?

research/robofab-program · 10 tests

Session-written pick-and-place programs checked in a kinematic SCARA twin at three fidelities against a held-out reference: of 69 reference-failing injected-bug mutants the levels reject 38, 46 and 60 with no false alarms; misses are unmodelled effects (stylised).

Abstract

A kinematic SCARA pick-and-place twin at three checking levels (geometry; plus joint, payload and deadline limits; plus stochastic grasp error, grip build-up and slip) against a held-out reference twin. Of 162 injected-bug mutants of three programs, 69 fail the reference; the levels reject 38, 46 and 60 of them, with no false alarms. The misses are effects the checker does not model, so the rates reflect how the reference was built. Four programs written by the building session: three failed the reference as drafted, and one failure (payload at long reach) was invisible to all three levels. Stylised, kinematic only, no language-model API called.

Which resource limits a small robot-printer-inspection cell, and does the busiest one tell you what to upgrade?

research/robofab-cell · 9 tests

Discrete-event twin of an arm, printers and an inspection station: printers have the highest utilisation at every size, yet at 6 printers an extra arm saves 10.9 min vs 2.3 for an extra inspection station; dispatch rules trade makespan for flow time; a mean-value twin is optimistic. Stylised, illustrative parameters.

Abstract

A discrete-event twin of one arm, 1–8 printers and one inspection station (30 parts, 200 replications, illustrative times). Printers have the highest utilisation at every size, yet at 6 printers an extra arm saves 10.9 min of makespan against 2.3 for an extra inspection station, because a printer is held while it waits for the arm. Dispatch rules trade makespan for mean flow time as textbook scheduling predicts, and a mean-value twin underestimates the stochastic makespan by 1–133 min. Stylised; parameters are invented, not measured.

Where is the bottleneck of an arm, printer and inspection cell?

research/robofab-cell-bound · 8 tests

Discrete-event twin of an arm, 3D printers and an inspection station: a utilisation bound names the bottleneck (printers to 10, the arm from 12, ~12.7 good parts/h) and the simulation sits 10–11% below it near the switch; a 25% faster arm lifts 11.34 to 12.68 parts/h at 12 printers, a second inspector nothing (stylised).

Abstract

A hand-written discrete-event twin of one arm that loads and unloads P 3D printers, plus an inspection station with reprints, against a utilisation bound. The bound names the bottleneck (printers up to 10 printers, the arm from 12, about 12.7 good parts/h) and the simulation reaches it within 1–2% far from the switch but sits 10–11% below it at 10–12 printers. A 25% faster arm lifts throughput from 11.34 to 12.68 parts/h at 12 printers while a second inspector does nothing; arm dispatch rules made no measurable gain, and WIP beyond one job per printer plus one only lengthens flow time. Stylised parameters of my choosing, no travel or breakdowns, 20 seeds.

Does exact queueing analysis predict a robot-printer cell's throughput better than a utilisation bound?

research/robofab-cell-mva · 8 tests

Exact mean value analysis of the arm, printers and inspection network against a discrete-event twin: a few per cent off for exponential times, up to 11% low for less variable ones, better than the utilisation bound in most real-semantics rows, and it overshoots saturation at high work in process. Stylised.

Abstract

Mean value analysis of a closed arm, printers and inspection network, checked against a hand-written discrete-event simulation that adds one departure from product form at a time (illustrative times, 20 seeds). The code matches the exact Markov-chain solution on small networks. With exponential times MVA is within −6% to +4% of simulation; with less variable times it is up to 11% low. With printers held while waiting for the arm, MVA beats the utilisation bound at 4, 8 and 12 printers but not at 16, and it overshoots the saturation plateau at high work in process (9.8 against 8.6 parts/h at 8 printers). Stylised, simulation-only; no physical cell.

Where does exact queueing analysis of a robot-printer cell stop working?

research/robofab-cell-cv · 6 tests

Coefficient-of-variation sweep and a measured printer stall share for the arm-printer-inspection queueing model: MVA's error crosses zero near cv 1 while the utilisation bound stays high, and held-printer capacity times (1 − stall) reproduces the saturated rate at 4 and 8 printers. Stylised.

Abstract

A follow-up to the mean-value-analysis project: a coefficient-of-variation sweep (0–2, lognormal times, 4–16 printers, 20 seeds) and a directly measured printer stall share (finished parts waiting for the arm). At 12 printers the MVA error runs from −6.2% to +8.4% and crosses zero near cv 1, while the utilisation bound stays 8–25% high. Stall is small (about 4.6% at 8 printers), but holding the printer through load and unload plus the stall reproduces the saturated rate at 4 and 8 printers (8.59 against 8.56 ± 0.09). Stylised, illustrative times, simulation only.

Is a print-failure camera worth it in a robot-arm 3D-printer cell?

research/robofab-cell-monitor · 8 tests

Is a print-failure camera worth it in a robot-arm printer cell? Blind printing against abort-on-failure: +6 to 10% good parts per hour at 2 to 10 printers, none once the arm limits the cell; break-even false-stop rate. Stylised.

Abstract

Adds mid-print failures (0.3 per printing hour) to the arm, printers and inspection cell and compares blind printing with a camera that aborts a failing print after a delay, including false stops, against an analytic bound and a 40-seed discrete-event simulation. With a 10 min delay the camera adds 6–10% good parts per hour at 2–10 printers, 4.5% at 12 and 0.8% at 16 where the arm limits the cell; the gain falls with detection delay (11% for an instant camera, about 0.5% at 80 min), vanishes between 0.1 and 0.2 false aborts per printing hour, and grows with the failure rate (28% at 1.0 per hour). Stylised: memoryless failures, a fixed detection delay, no real detector or measured farm.

Where should a print-failure detector's alarm threshold go in a robot-arm 3D-printer cell?

research/robofab-cell-detector · 9 tests

Where should a print-failure detector's alarm threshold go in a robot-arm printer cell? A look every 2 min makes a z = 2 threshold 19 to 23% worse than blind printing; the best z is 3 to 3.5, worth +6% (d' = 2) to +11% (d' = 4). Stylised.

Abstract

Replaces the monitor project's fixed detection delay with a detector that looks at a print every few minutes and has a Gaussian score (separation d′) and an alarm threshold z, and asks which z maximises good parts per hour, with an exact analytic bound and a 40-seed discrete-event simulation (6 printers, 0.3 failures per printing hour, looks every 2 min). A threshold that sounds strict (z = 2, 2.3% false alarms per look) makes the cell 19–23% worse than blind printing for every detector quality, because a 60 min print is looked at 30 times; the best z is 3–3.5, and the gain over blind printing is +5.8% at d′ = 2, +9.7% at 3 and +11.3% at 4, and within noise below d′ of about 1. Stylised: looks are independent, which real consecutive frames are not.

Where does a flow-equivalent-server decomposition of a robot-printer cell go wrong as the inspector speeds up or slows down?

research/robofab-cell-fescsweep · 4 tests

Where does the flow-equivalent-server decomposition of a robot-printer cell err as the inspector speed varies? Error is 0 for fast and slow inspectors but peaks at −2% to −5% just below the knee where inspector and subsystem rates match, ten times the earlier 0.3% mean. Stylised.

Abstract

A follow-up to the decomposition project, which reported a 0.32% mean error at one inspection time. Sweeping the inspection time from 0.1 to 100 min in 10 stylised cells (2–6 printers, Erlang-4 print time, illustrative times) against the exact Markov chain, the decomposition’s error is 0.000% for a fast inspector and at most 0.52% for a very slow one, but peaks at −2.2% to −5.0% (mean −3.2%) just below the knee t* = 1/H(N), where the inspector alone matches the subsystem’s rate (0.81–0.99 t*, grid-limited). It is never positive, and smaller cells err more. The explanation (ignored correlation between inspection queue and subsystem state) is untested. Stylised: one job class, exponential load, unload and inspect times.

Can a flow-equivalent-server decomposition predict a robot-printer cell's throughput without enumerating its states?

research/robofab-cell-fesc · 5 tests

Can a flow-equivalent-server decomposition predict a robot-printer cell without enumerating its states? Mean error 0.3% (max 1.6%) against the exact Markov chain in 42 settings, where plain MVA is off by up to 20%. Stylised.

Abstract

A follow-up to the exact Markov-chain project: Norton’s theorem applied to the same stylised cell (one arm, 2–6 printers held through load and unload, one inspector; Erlang print time; illustrative times). The arm-and-printers subsystem is solved exactly at each population and replaced by one load-dependent server. Over the same 42 settings the mean absolute error against the exact chain is 0.32% (maximum 1.57%), against 6.8% (up to 20.3%) for plain mean value analysis and 4.3% for the held-printer variant; in five cells of 8–12 printers it is 0.09–0.31%. It underestimates in 38 of 42 settings because the cell is not product form. The subsystem chain is about a tenth the size of the full chain, but both solve in under a second here, so no speed claim. Stylised: one job class, exponential load, unload and inspect times.

Is the error of queueing analysis of a robot-printer cell from print-time variability or from the cell's structure?

research/robofab-cell-ctmc · 6 tests

Is the error of queueing analysis of a robot-printer cell from print-time variability or from structure? An exact Markov chain says structure: cv 1 to 0.33 moves throughput by at most 0.71%, while plain MVA overshoots up to 20% beyond the printer count.

Abstract

An exact Markov-chain solution of a stylised cell (one arm, 2–6 printers held through load and unload, one inspector; Erlang print time, cv 0.33–1; illustrative times) used as a noise-free reference. It matches a simulation in 10 settings (largest |z| 1.73). Changing the print-time cv from 1 to 0.33 moves the exact throughput by at most 0.71%, so the error of mean value analysis is structural: plain MVA is within 0.6% when work in process equals the printer count but overshoots by up to 20.3% beyond it (mean error 12.8% at twice the printers), and held-demand MVA is 2.8% off at saturation but −5% to −12% off at low load. One job class, exponential load, unload and inspect times. Stylised, simulation-only.

Does holding the printer through load and unload fix queueing analysis of a robot-printer cell?

research/robofab-cell-held · 5 tests

Does adding load and unload time to the printer's demand fix MVA of the robot-printer cell? Mixed: it cuts the error at saturation (2.9% against 8.2%) but raises it elsewhere (7.3% against 3.6%), so overall plain MVA is better (4.7% against 6.2%). Stylised.

Abstract

A follow-up to the variability-sweep project: mean value analysis with the printer demand increased by the arm’s load and unload time, compared with plain MVA and two utilisation bounds against the simulated cell (cv 0.3 and 1.0, 4–16 printers, four loads, 20 seeds, 32 settings; illustrative times). The repair helps only at saturation (mean absolute error 2.9% against 8.2% for plain MVA) and hurts elsewhere (7.3% against 3.6%), so over all settings plain MVA is better (4.7% against 6.2%). A mixed result: no single demand setting is right across loads. Stylised and simulation-only.

Does an arm-wait-aware printer demand fix queueing analysis of a robot-printer cell?

research/robofab-cell-stall · 5 tests

Does adding the arm's queueing delay (a fixed point, no fitted parameter) to the held printer's demand fix MVA of the robot-printer cell? No: it underpredicts in all 32 settings and is worse overall (7.9% mean error against 6.2% for held-demand and 4.7% for plain MVA). Negative result. Stylised.

Abstract

A follow-up to the held-printer project: the printer’s demand is increased by the arm’s queueing delay, found as a fixed point from the arm’s own queue with no fitted parameter. Against the simulated cell (cv 0.3 and 1.0, 4–16 printers, four loads, 20 seeds, 32 settings; illustrative times) it underpredicts throughput in every setting and is worse overall: mean absolute error 7.9%, against 6.2% for held-demand MVA and 4.7% for plain MVA. At saturation it ties held demand (3.1% against 2.9%) but on the other 24 settings it is worse (9.5% against 7.3%). A negative result: a demand-side patch to product-form MVA is the wrong tool here. Stylised and simulation-only.

Can a blocking-aware correction to queueing analysis predict a robot-printer cell across loads?

research/robofab-cell-blocking · 5 tests

Can a blocking-aware correction to MVA predict the held-printer robot cell across loads? A fitted stall helps only at saturation (1.4% error) and worsens other loads (8.5%); keeping latency apart from capacity gives 3.6% against plain MVA's 4.7% on the design grid, but only ties plain MVA (3.4% against 3.5%) on a held-out job mix. Stylised.

Abstract

A follow-up to the held-printer project: held demand plus a fitted stall (printers waiting for the arm to unload them) helps only at saturation (1.4% mean error) and double-counts load and unload time elsewhere (8.5%). A predictor that keeps latency (plain demand plus stall) apart from capacity (held demand plus stall) scores 3.6% against 4.7% for plain MVA on 32 design settings, but ties plain MVA on a held-out job mix (3.4% against 3.5%) and still underestimates by up to 8% at moderate load. Stylised; illustrative times; 20 seeds.

Can a parallel-jaw arm assemble its own gripper?

research/robofab-selfparts · 8 tests

Can a parallel-jaw arm assemble its own toy gripper? A complete order exists only once the jaw opens to the widest part (30 mm); a top-down-only arm accepts 120 of 720 orderings against 384 with sideways moves; pad thickness changes nothing (negative). Stylised boxes.

Abstract

Exhaustive search over assembly orders of a seven-part toy gripper (axis-aligned boxes) by a modelled arm with a parallel-jaw grasp check, three approach-direction models and a swept jaw opening. No complete order exists below a 30 mm opening, the width of the widest part; above it, 384 of 720 orderings are valid when parts may be slid sideways and 120 when strictly top-down. Jaw-pad thickness from 2 to 10 mm changes nothing (a negative result for this geometry). Stylised single design, no reach, force or fasteners; simulation only.

Can a printed gripper assemble its own next generation?

research/robofab-bootstrap · 6 tests

Can a printed gripper assemble its own next generation? With fixed-size jaw pads a gripper builds a copy only at scale ≥ pad thickness in mm (4 mm pads: scale 4); a stroke cap of S mm needs 30·pad ≤ S; seeds of 130 and 140 mm sustain a chain, 60 and 100 mm decay. Largely algebraic given an assumed opening; stylised.

Abstract

A follow-up to the self-parts project: the arm that builds generation k+1 is the printed gripper of generation k, with an assumed jaw opening of 32s − 2t mm for fixed-size pads of thickness t. Exhaustive assembly search gives a required opening of exactly 30s mm, so a gripper can build a copy only at scale s ≥ t (scale 4 for 4 mm pads), and a stroke cap S admits one only if 30t ≤ S. Seeds of 130 and 140 mm sustain a chain; 60 and 100 mm seeds shrink and stop. Largely algebraic given the assumed opening; one toy design; simulation only.

How long an arm does it take to assemble its own toy gripper?

research/robofab-reach · 7 tests

How long an arm does it take to assemble its own toy gripper? A planar two-link arm needs 60–140 mm links as the tray moves 40–400 mm away, and a 90° elbow limit more than doubles it (stylised).

Abstract

A planar two-link arm on a turntable must reach a pick, place and lift point for each of the six free parts of the seven-part toy gripper from robofab-selfparts. With equal links and a 100 mm shoulder height the shortest arm is 60–140 mm per link as the tray moves from 40 to 400 mm away; an elbow limit of 90° raises it from 80 to 180 mm and 60° admits none up to 600 mm. Stylised: wrist point only, no collisions, payload or wrist orientation; results sit on a 10 mm grid.

Does the assembly order change the arm an arm needs to build its own gripper?

research/robofab-reachorder · 5 tests

Does the assembly order change the arm needed to build its own gripper? Across all 384 valid orders the shortest arm is identical in every setting tried (negative result, stylised).

Abstract

Combines the order search of robofab-selfparts (384 valid orders) with the two-link reach model of robofab-reach, letting each part’s lift height clear whatever is already assembled. Negative result: for every valid order the shortest arm is the same (for example 80 mm per link at a 100 mm shoulder and 120 mm tray gap, 120 mm at a 200 mm shoulder), because the cover’s own lift point bounds every order and the tray distance dominates. Stylised: wrist point only, 10 mm link grid, 20 mm base grid.

Can friction hold each printed part of a gripper?

research/robofab-grasp · 6 tests

Can friction hold each printed part of the toy gripper? The simulated minimum jaw force matches the m·g/(2μ) bound to within 5% over 33 cases and is at most 0.1 N, so the jaw opening, not friction, is the constraint (stylised).

Abstract

A follow-up to robofab-selfparts: for each of the six free parts of the toy gripper and each grasp axis that fits a 30 mm jaw opening, the smallest jaw force that holds the part against gravity by friction, from the bound m g/(2μ) and from a MuJoCo simulation, at μ = 0.3, 0.5 and 0.8. Over 33 cases the two agree to within 5%, and the force needed is at most 0.1 N, so in this model the jaw opening, not friction, is the binding constraint. A check on the simulator set-up rather than a new result. Stylised: static hold only, boxes, assumed density and friction, no tipping or insertion loads.

Does arm torque or jaw friction limit how fast an arm carries a printed part?

research/robofab-armaccel · 10 tests

Does arm torque or jaw friction limit how fast an arm carries a printed part? With 0.12 m links and 5 N m the carries take 0.06–0.10 s and the cover needs 1.25 N per jaw (21× static); grip binds below about 0.5 N (stylised, bound extrapolated beyond 40 m/s²).

Abstract

A follow-up to robofab-graspmove and robofab-reach: a planar two-link arm with assumed masses carries each of the six free parts of the toy gripper on a min-jerk joint move, as fast as an assumed joint torque limit allows. With 0.12 m links and 5 N m the carries take 0.06 to 0.10 s and the 5.95 g cover needs 1.25 N per jaw, 21× its static force; a jaw force under about 0.5 N makes the grip, not the arm, the limit. A larger arm is slower at a fixed torque. Stylised: assumed masses and torques, and the grip bound, simulated only up to 40 m/s2 earlier, is applied beyond that range.

How much carry time does a time-optimal move save over min-jerk, and what does it cost the jaws?

research/robofab-armbang · 14 tests

How much carry time does a time-optimal move save over min-jerk, and what does it cost the jaws? On the robofab-armaccel arm the six-part total falls by 21 to 29% while the jaw-force bound rises 1.2 to 2.4 times (stylised, assumed parameters).

Abstract

A follow-up to robofab-armaccel: the same planar two-link arm carries the six free parts of the toy gripper along the same joint-space line, once with min-jerk and once with the time-optimal speed profile under an assumed joint torque limit. Over nine arm and torque cases the six-part total time falls by 21–29%, but the per-jaw force bound rises 1.2–2.4×. Stylised: every parameter except the geometry is assumed, the grip bound is not re-simulated above 40 m/s2, and the path is fixed.

How fast can an arm carry a printed part when the jaw force is capped as well as the joint torque?

research/robofab-jawcap · 23 tests

How fast can an arm carry a printed part when the jaw force is capped as well as the joint torque? On the robofab-armbang arm the time-optimal move still beats min-jerk by 17 to 43% under caps of 1.25 to 10 times the static hold force, and a tight cap makes the torque limit irrelevant (stylised, assumed parameters).

Abstract

A follow-up to robofab-armbang: the time-optimal speed profile along the joint-space line is solved with an added cap on the per-jaw force bound (a quadratic constraint on the path acceleration), at 1.25–10× the static hold force, and compared with the fastest min-jerk move meeting the same two limits. Over nine arm and torque cases the time-optimal six-part total is 17–43% shorter, most when the cap is tightest, and at the tightest cap the torque limit no longer changes the time. Stylised: every parameter except the geometry is assumed, the caps are multiples of a friction hold force, the grip bound is not re-simulated above 40 m/s2, profiles overshoot the limits by up to 3%, and the path is fixed.

Does a joint-speed limit erase the time-optimal carry's advantage over min-jerk?

research/robofab-jointspeed · 29 tests

Does a joint-speed limit erase the time-optimal carry's advantage over min-jerk? On the robofab-jawcap arm it grows it: 28 to 46% shorter under speed limits of 6 to 1 rad/s, tending to the 47% set by the min-jerk profile shape (stylised, assumed parameters).

Abstract

A follow-up to robofab-jawcap (stylised, preliminary): a peak joint-speed limit is added to the torque and jaw-force limits of a planar two-link arm carrying printed parts. Over three arm sizes, three jaw caps and speed limits of 6 to 1 rad/s, the time-optimal profile is 28 to 46% shorter than min-jerk meeting the same limits (18 to 34% without a speed limit), and the saving tends to 1 − 1/1.875 = 47%, a property of the min-jerk profile shape, so a trapezoidal baseline would show less. All parameters are assumed; the speed limits are round numbers, not an actuator rating.

Is the time-optimal carry's speed-limited advantage just the min-jerk profile's shape?

research/robofab-trapezoid · 37 tests

Is the time-optimal carry's speed-limited advantage just the min-jerk shape? Against a tuned trapezoidal-velocity move it is only 0.4 to 2.9% at speed limits of 2 and 1 rad/s (46% over min-jerk), and 8.7 to 22.5% with no speed limit (stylised, assumed parameters).

Abstract

A follow-up to robofab-jointspeed (stylised, preliminary): the min-jerk comparator is replaced by a trapezoidal-velocity move with a tuned ramp fraction, under the same torque, jaw-force and joint-speed limits. Over three arm sizes, three jaw caps and speed limits of 6 to 1 rad/s, the time-optimal profile beats the best trapezoid by only 0.4 to 2.9% at 2 and 1 rad/s (0.4 to 0.8% at 1 rad/s), against 46% over min-jerk, so the earlier ceiling was mostly the comparator. Without a speed limit it still wins by 8.7 to 22.5%. The smallest ramp fraction tried (0.01) binds in most tight-limit rows, so the small gap is bounded by the grid. All parameters are assumed; the speed limits are round numbers, not an actuator rating.

How much of the time-optimal carry's edge survives a jerk-limited (S-curve) profile?

research/robofab-scurve · 42 tests

Does rounding the trapezoid's corners (a jerk-limited S-curve) change the time-optimal carry's edge? An S-curve is never faster than the trapezoid and costs 0.0 to 2.0% (half-jerk) or 0.0 to 7.0% (full-jerk) at speed limits of 2 and 1 rad/s, but 1.4 to 33.7% with no speed limit (stylised, assumed parameters).

Abstract

A follow-up to robofab-trapezoid (stylised, preliminary): the trapezoid's acceleration corners are rounded into jerk-limited S-curves (half- and full-jerk ramps) under the same torque, jaw-force and joint-speed limits. In none of 45 speed-limited rows is an S-curve faster than the trapezoid; at speed limits of 2 and 1 rad/s it costs 0.0 to 2.0% (half-jerk) or 0.0 to 7.0% (full-jerk), and the time-optimal profile is 1.3 to 9.2% faster than the full-jerk one. With no speed limit the S-curves cost 1.4 to 33.7% and the time-optimal profile is 22.5 to 36.8% faster than the full-jerk one. Jerk is limited by profile shape, not an absolute bound, and the ramp grid is coarse. Simulated only.

At tight joint-speed limits, is the time-optimal carry's edge over a trapezoid real or an artefact of the ramp grid?

research/robofab-scurvefine · 46 tests

Checks robofab-scurve on a finer ramp grid: sampling a 0.2% ramp is needed or the trapezoid wrongly beats the time-optimal solver; with it the time-optimal edge at 2 and 1 rad/s is −0.3 to +0.9%, below the solver's own ~0.5% node-count error (stylised, negative on the old figure).

Abstract

A check on robofab-scurve (stylised, negative on its old figure). Refining the ramp-fraction grid alone makes the trapezoid beat the time-optimal solver by up to 1.8%, because the 201-point torque check misses the acceleration peak of a 0.2% ramp. With extra samples inside each ramp the time-optimal edge at 2 and 1 rad/s is −0.3 to +0.9% (old figure 1.3 to 1.5%), and raising the solver from 400 to 6400 nodes moves one row by 0.5%, as large as the whole edge. Jerk-limited profiles are still never faster than the trapezoid. Only the speed-limited rows were re-run, and every parameter is assumed.

Once the solver is converged, is the time-optimal carry's edge over a tuned trapezoid still positive in all twelve speed-limited rows?

research/robofab-edgeconv · 47 tests

Re-solves the time-optimal carry at 400, 1600 and 6400 nodes in all 12 speed-limited rows of robofab-scurvefine: once converged the edge over a tuned trapezoid is positive everywhere, +0.1 to +0.9% (stylised).

Abstract

A follow-up to robofab-scurvefine (stylised). Re-solving the time-optimal carry at 400, 1600 and 6400 nodes lowers the six-part total by 0.01 to 0.46%, and the edge over a ramp-resolved trapezoid, negative in 7 of 12 rows at 400 nodes, becomes +0.11 to +0.88% in every row at 6400. A one-step extrapolation moves it by at most 0.03 percentage points. The trapezoid's own ramp grid is not re-converged, which can only shrink the edge, and every parameter is assumed.

Does tuning the trapezoid's ramp fraction beyond a grid shrink the time-optimal carry's edge, and is it still positive?

research/robofab-rampopt · 49 tests

Golden-section tuning of the trapezoid's ramp fraction shrinks the time-optimal carry's edge to +0.05 to +0.28% (still positive in all 12 rows; stylised).

Abstract

A follow-up to robofab-edgeconv (stylised). Golden-section refinement of the trapezoid's ramp fraction lowers its six-part total by 0.00 to 0.60% across the twelve speed-limited rows. With the solver at 6400 nodes the time-optimal edge, +0.11 to +0.88% over the grid-tuned trapezoid, falls to +0.05 to +0.28% over the refined one, still positive in every row. The smallest edges are comparable to the solver's residual discretisation error, so their sign is not firmly established. One planar arm, assumed parameters, no motor dynamics; simulated only.

Is the motor-line edge of the time-optimal carry converged in solver nodes?

research/robofab-motorconv · 28 tests

Repeats the robofab-motorcurve motor-line rows with the time-optimal solver at 400, 1600 and 6400 nodes: the edge over the tuned trapezoid moves by at most 0.28 points from 1600 to 6400 (the 0.08 m, k = 2, w0 = 4 row rises from 4.98 to 5.26%), and the missing cover profile was a node-count limit. Stylised.

Abstract

Follow-up to robofab-motorcurve (stylised, preliminary). The same nine rows and five motor no-load speeds are solved at 400, 1600 and 6400 nodes. From 1600 to 6400 nodes the six-part time-optimal total changes by at most 0.29% and the edge over the tuned trapezoid by at most 0.28 points, so the 3.5 to 28.6% range stands. The exception is the 0.08 m, k = 2 row at w0 = 4, whose edge rises from 4.98% to 5.26%. The cover part that had no profile at w0 = 4 was a node-count limit: it solves at 6400 nodes. Limits: three node counts only, toy arm, assumed motor line.

Does the time-optimal carry's edge over a tuned trapezoid survive a motor torque-speed line?

research/robofab-motorcurve · 58 tests

Re-solves the nine torque- and jaw-bound robofab-torquebound rows with a motor torque-speed line (no-load speed 4 to 20 rad/s): the time-optimal carry stays faster than the tuned trapezoid in all 45 cells, but its edge ranges 3.5 to 28.6% (9.0 to 22.9% under a constant limit), shrinking where a jaw cap binds and growing where only torque does. Stylised.

Abstract

Follow-up to robofab-torquebound (stylised, preliminary). The same nine torque- and jaw-bound rows are re-solved with each joint's torque limit falling linearly with speed, 5 N m × (1 − |speed|/w0), for no-load speeds w0 of 20, 10, 6 and 4 rad/s. The time-optimal carry stays faster than the tuned trapezoid in every one of the 45 cells, but its edge is no longer one number: 3.5% to 28.6%, against 9.0% to 22.9% under a constant limit. Where a jaw cap binds on the smaller arms the edge shrinks as w0 falls (22.9% to 5.0% for the 0.08 m arm, k = 2); where only torque binds it grows (9.0% to 28.6% for the 0.2 m arm). The constant-limit profiles reach joint speeds up to 139 rad/s, which no motor does. One planar arm, assumed parameters, a linear motor model, not checked in MuJoCo; simulated only.

Is the trapezoid's duration in the torque- and jaw-bound rows set by peaks a sparse check never looked at?

research/robofab-peakcheck · 60 tests

Re-checks the nine torque- and jaw-bound robofab-torquebound rows with a dense trapezoid peak check (10,000 whole-move samples, 1,000 per ramp, both sides of the acceleration corners): trapezoid totals move by under 0.16% and the time-optimal edge stays 9.5 to 23.0%, so the large edge does not rest on unseen trapezoid peaks. Stylised.

Abstract

Follow-up to robofab-torquebound (stylised, preliminary). The nine torque- and jaw-bound rows are re-solved with a trapezoid check of 10,000 whole-move samples, 1,000 per ramp and both sides of the acceleration corners, against 201 plus 160 per ramp before. The six-part trapezoid totals change by between −0.15% and +0.15%, the time-optimal edge stays 9.5% to 23.0% (9.4% to 23.0% before), and the dense answers hold at ten times the density with an estimated missed peak of at most 0.25% of a limit. The large edge does not rest on unseen trapezoid peaks. One row goes the other way (dense trapezoid 0.15% faster) and its cause is not investigated. Stylised toy arm; no hardware.

Do the robofab carry results survive an independent physics engine?

research/robofab-mujocotorque · 5 tests

Re-checks the 108 trapezoid and time-optimal carry profiles of the robofab-torquebound rows against MuJoCo inverse dynamics: the hand-written two-link torques agree to 1.8e-5 N m, peaks are within 0.73% of the 5 N m limit (stylised, joint torques only).

Abstract

Follow-up to robofab-torquebound (stylised, preliminary). The two-link arm behind every robofab carry result is rebuilt in MuJoCo and the 108 actual profiles (best trapezoid and time-optimal, nine rows, six parts each) are checked with MuJoCo inverse dynamics. The hand-written joint torques agree to at most 1.8e-5 N m against a 5 N m limit, so the 9 to 23% edge is not an artefact of a dynamics bug. Where only torque binds, MuJoCo puts the trapezoid's peak at up to 5.037 N m (0.73% over) and the time-optimal profile's at up to 5.011 N m (0.21% over). An open-loop replay drifts up to 0.023 rad and 1.4 mm. Joint torques only: the jaw-force bound and motor model are not checked. Planar toy arm, assumed parameters; simulated only.

Does the time-optimal carry's edge over a tuned trapezoid survive when torque or the jaw cap binds?

research/robofab-torquebound · 50 tests

Re-checks the torque- and jaw-bound rows of robofab-scurve (no speed limit) with a converged solver and denser trapezoid ramp sampling: the time-optimal carry is still 9.4 to 23.0% faster than the tuned trapezoid in all 9 rows, and the edge is stable to solver node count (under 0.1%) and rises by at most 0.4 points with denser sampling. Stylised.

Abstract

Follow-up to robofab-toppconv (stylised, preliminary). The nine no-speed-limit rows of robofab-scurve (three arm sizes, jaw cap 2×, 5× or none, six printed parts each) are recomputed with the time-optimal solver at 400 to 25600 nodes and the trapezoid on a fine ramp grid with 40 and 160 extra samples per ramp. The time-optimal carry is 9.4% to 23.0% faster than the trapezoid in every row; the solver is converged to within 0.004% by 6400 nodes, and denser ramp sampling slows the trapezoid by 0.05% to 0.5%, raising the edge by at most 0.4 points. So, unlike the sub-1% edge under a speed limit, the torque- and jaw-bound gap is not a resolution artefact in this toy. A trapezoid-only comparison on assumed parameters; not a claim about real arms.

Once the time-optimal solver's node count is converged, how big is its edge over a tuned trapezoid?

research/robofab-toppconv · 48 tests

Re-solves the time-optimal carry of robofab-scurvefine at 400 to 25600 nodes in all 12 rows: converged to 0.02% by 6400 nodes, the 400-node answer was up to 0.5% pessimistic, and the converged edge over a ramp-resolved trapezoid is 0.11 to 0.88% in every row; stylised, preliminary.

Abstract

Follow-up to robofab-scurvefine: all 12 rows (three arm sizes, jaw cap 5× or none, joint speed limit 2 or 1 rad/s, six printed parts each) are re-solved at 400, 1600, 6400 and 25600 nodes. The totals change by at most 0.02% between 6400 and 25600 nodes, while 400 nodes is up to 0.5% pessimistic, which explains the negative “edges” there (7 of 12 rows). At 25600 nodes the time-optimal profile is faster than the ramp-resolved trapezoid in every row, by 0.11–0.88%. The observed convergence order is noisy (1.1–3.2). Stylised and preliminary; the trapezoid side’s ramp sampling is not varied.

How hard must the jaws squeeze while the arm moves?

research/robofab-graspmove · 7 tests

How hard must the jaws squeeze while the arm moves? Simulated minimum force matches the m·sqrt((g+a)²)/(2μ) bound within 7% over 77 cases and is at most 0.3 N at 40 m/s²; a contact time constant that passes the static test reports slip at any force once the jaws accelerate (stylised).

Abstract

A follow-up to robofab-grasp: the jaw assembly accelerates upward or sideways at up to 40 m/s2 and the smallest holding force is compared with the bound m√((g+aup)2+aside2)/(2μ) at μ = 0.5. Over 77 cases the two agree to within 7%, and the heaviest part needs at most 0.3 N, so friction is still not the constraint. A fidelity finding: the contact time constant used for the static test (0.004 s) reports slip at any force once the jaws accelerate; 0.0005 s is needed. Stylised: boxes, rigid pads, assumed density and friction.

Does the jaw-force bound still hold at arm accelerations of 100 to 800 m/s²?

research/robofab-graspfast · 6 tests

Does the jaw-force bound still hold at arm accelerations of 100 to 800 m/s²? With fine MuJoCo contact settings the minimum force is 0.89–1.02× the bound over 39 cases; the earlier settings fail above 200 m/s² (stylised, prescribed acceleration, no arm).

Abstract

A follow-up to robofab-graspmove and robofab-armaccel, which applied the bound m√((g+aup)2+aside2)/(2μ) beyond the 40 m/s2 it had been tested to. Here a MuJoCo jaw assembly with prescribed constant acceleration (40 to 800 m/s2) holds three printed parts of a toy gripper. With a 0.05 ms timestep and 0.1 ms contact time constant the simulated minimum force is 0.89 to 1.02 times the bound over 39 cases (median 1.00); with the earlier settings no force up to 60 N holds a part at 400 or 800 m/s2, a contact-lag artefact. Stylised: rigid box pads, one friction coefficient, no arm dynamics or trajectory.

How fine must the MuJoCo contact settings be for a moving grasp?

research/robofab-solrefmap · 5 tests

How fine must MuJoCo contact settings be for a moving grasp? On all seven toy-gripper parts, solref 0.2 ms and below reproduce the jaw-force bound (0.98–1.04×) at 100–800 m/s²; 0.5 ms fails at 400 and above, and the adequate value falls with acceleration (stylised, upward load only).

Abstract

A follow-up to robofab-graspfast. On all seven printed parts of a toy gripper, a jaw assembly accelerating upward at 100, 400 and 800 m/s2 needs a simulated minimum force of 0.98–1.04 times the bound at contact time constants of 0.2 ms and below (63 cases). At 0.5 ms the bound is matched at 100 m/s2 but no force up to 60 N holds any part at 400 or 800. A scan on one part shows the largest adequate time constant falls with acceleration and is not a single threshold on their product. Stylised: upward load only, rigid box pads, one friction value, no arm.

Is it the contact time constant or the timestep that breaks a moving grasp?

research/robofab-solreftimestep · 6 tests

Is it solref or the timestep that breaks a moving MuJoCo grasp? On a 24-cell grid only 6 cells hold; a coarse step always fails, a finer step does not rescue a marginal solref, and solref 0.1 ms holds at steps of 0.1 ms and below (stylised).

Abstract

A follow-up to robofab-solrefmap. On the cover part of a toy gripper accelerating upward at 400 and 800 m/s2, a MuJoCo jaw-force test holds in only 6 of 24 cells of a grid of contact time constant (0.5, 0.3, 0.2 ms) and timestep (0.4 to 0.05 ms). A coarse timestep always fails, probably because MuJoCo raises the effective constant to twice the timestep. A finer timestep does not rescue a marginal constant (at 800 m/s2 and 0.2 ms only a 0.1 ms step holds, finer ones fail for an unexplained reason), while a 0.1 ms constant holds at every step of 0.1 ms and below. Stylised: one part, upward acceleration only, rigid box pads, no arm.

Is MuJoCo's refsafe clamp what breaks a moving grasp at a coarse timestep?

research/robofab-solrefsafe · 8 tests

Does MuJoCo's refsafe clamp break a moving grasp at a coarse timestep? Switching it off changes 7 of 32 grid cells' outcomes (11 hold on, 10 off), 10 runs go unstable, and the non-monotone timestep behaviour survives (stylised).

Abstract

A follow-up to robofab-solreftimestep, which only read the documentation on the refsafe flag. The same jaw-force test (cover part, 400 and 800 m/s2) is run over contact time constants of 0.5 to 0.1 ms and timesteps of 0.4 to 0.05 ms with the flag on and off. 11 of 32 cells hold with it on and 10 of 32 with it off, and the two settings disagree in 7 cells. With it off, 10 runs end in a solver instability, so the clamp protects some cells and costs others, and the non-monotone timestep behaviour survives with it off. Stylised: one part, upward acceleration only, rigid box pads, no arm.

Does an off-centre centre of mass need a harder grasp?

research/robofab-graspoffset · 6 tests

Does an off-centre centre of mass need a harder grasp? Ball-pad elliptic-cone bound matches MuJoCo within 1.1% (5× force at 20 mm offset); flat-pad MuJoCo lies between an equal-split and a best-split corner-contact bound (stylised).

Abstract

A follow-up to robofab-liftload, whose torque bracket was inconclusive. A 20 mm cube is pinched with its centre of mass shifted 0 to 20 mm in the pad plane. For ball pads (one point contact, an assumed torsional friction coefficient of 2 mm) the elliptic-cone bound matches MuJoCo within 1.1% and the needed force rises 5× (0.097 to 0.50 N). For flat pads the twist is resisted at the corner contacts: MuJoCo lies between an equal-split upper bound and a best-split lower bound at all eight offsets, and needs 0.39× the ball-pad force at 10 mm. The result is insensitive to the rotation tolerance (1, 3, 10°). Stylised: rigid pads, assumed friction, static hold only.

Does the friction-grasp bound survive lift acceleration and an off-centre centre of mass?

research/robofab-liftload · 7 tests

Does the friction-grasp bound survive lift acceleration and an off-centre centre of mass? Scaled bound matches MuJoCo within 6% over 66 cases; the torque bracket for an off-centre bar is inconclusive and depends on the rotation tolerance (stylised).

Abstract

A follow-up to robofab-grasp. With a constant lift or sideways acceleration applied as an effective gravity, the simulated minimum jaw force for the six free parts of the toy gripper stays within 6% of the scaled bound m √((g+az)2+at2)/(2μ) over 66 cases, at most 0.21 N. These parts are symmetric, so they test no torque. For a 10×10 mm bar held at one end the torque bracket is inconclusive: with a 5° rotation tolerance MuJoCo holds with less force than the lower bound in 11 of 12 cases, and with 1° the longer bars do not hold at 20 N. Stylised: constant load, boxes, assumed density and friction, thresholds chosen by me.

Is the off-centre bar result in robofab-liftload a grasp effect or solver creep?

research/robofab-sliprate · 7 tests

Is the off-centre bar result in robofab-liftload a grasp effect or solver creep? The bar creeps at about 3.7 deg/s from 0.3 to 3 N in MuJoCo, with a rate set by contact settings, so the earlier verdict reflects the simulator (stylised).

Abstract

A follow-up to robofab-liftload that replaces its pass/fail threshold with the bar’s rotation rate. A 10×10×40 mm bar held at one end creeps at about 3.7 deg/s from 0.3 to 3 N and still 2.2 deg/s at 20 N, so no force stops it. The rate scales with the contact time constant and drops tenfold when impratio goes from 1 to 10; torsional friction lowers it 2.5–3×. Free drops occur only at 0.1 N. The earlier verdict reflects simulator settings, not the grasp. Stylised: one engine, boxes, assumed density and friction.

Does a rate-based "holds" criterion make a MuJoCo grasp verdict independent of solver settings?

research/robofab-slipcrit · 5 tests

Does a rate-based "holds" criterion make a MuJoCo grasp verdict independent of solver settings? No: the minimum holding force still varies 33x to 400x or more across contact settings, like a 1 degree tolerance (negative, stylised).

Abstract

A follow-up to robofab-sliprate. Judging a bar held at one end by its extrapolated creep over a 3 s hold (under 2 mm) instead of a rotation tolerance does not help: across eight MuJoCo contact settings the minimum holding force varies by 33× to 400× or more, about as much as under a 1° tolerance. Only a loose 5° tolerance is stable, and only for bars up to 40 mm. Negative and preliminary: the settings, not the criterion, drive the verdict. Stylised, one engine, no physical grip.

Is any rate threshold settings-robust for a MuJoCo grasp "holds" verdict?

research/robofab-slipthresh · 6 tests

Is any rate threshold settings-robust for a MuJoCo "holds" verdict? Spread falls with the allowed tip speed and is 1.6 only at a loose 20 mm/s (0.5 s, 10 mm); 242.7 to 400 at 2 mm/s or less (stylised, preliminary).

Abstract

A follow-up to robofab-slipcrit that sweeps the rate criterion’s task time (0.5–10 s) and tip bound (1–10 mm) over four bars and eight MuJoCo contact settings. The worst-case spread of the minimum holding force falls with the allowed tip speed: 242.7–400× at 2 mm/s or less, 89.4× at 3.3–5 mm/s, 20× at 10 mm/s and 1.6× only at 20 mm/s (0.5 s, 10 mm), a loose threshold; 10 s holds fail at every bound. Robustness comes from a loose threshold, not a better criterion. Stylised and preliminary: one engine, boxes, assumed density and friction.

Does the loose 20 mm/s “holds” threshold stay settings-robust at other friction and under lift?

research/robofab-slipmu · 8 tests

Does the loose 20 mm/s "holds" threshold stay settings-robust at other friction and under lift? It is the only threshold under 5x spread in all six conditions (1.6 to 4.5), every other is at least 20x (stylised, preliminary).

Abstract

A follow-up to robofab-slipthresh, repeating its 16-threshold sweep at friction 0.3, 0.5 and 0.8, with and without a 5 m/s2 lift acceleration. The loose 20 mm/s threshold (10 mm in 0.5 s) is the only one with a worst-case spread of the minimum holding force under 5× in all six conditions: 1.6× in four, 2.7× at mu 0.5 with lift and 4.5× at mu 0.3 with lift. Every other threshold is at least 20×. Robustness comes from looseness, and it weakens at low friction under load. Stylised, one engine, no physical grip.

Does a stiffer friction cone make the held-bar result in robofab-liftload threshold-free?

research/robofab-barimpratio · 8 tests

Does a stiffer friction cone make the held-bar result threshold-free? Creep falls about as 1/impratio (3.66 to 0.004 deg/s); from impratio 10 the 1 and 5 degree forces agree within 26%, and MuJoCo needs 0.67 to 1.17 times the old torque bracket's lower bound (stylised).

Abstract

A follow-up to robofab-sliprate, which traced the bar’s creep to MuJoCo’s contact settings. Raising the impratio option from 1 to 1000 cuts the creep of a 10×10×40 mm bar held at one end from 3.66 to 0.004 deg/s, roughly as 1/impratio. From impratio 10 the minimum holding forces for 1° and 5° tolerances agree within 26% in all 12 cases, so the answer no longer depends on the threshold. The simulated force is below the uniform-pressure torque bracket in 10 of 12 cases (0.67–1.17× its lower bound) and 1.15–1.67× a point-contact bound built on the five contacts per pad MuJoCo reports. One engine, one bar section, no torsional friction. Stylised and preliminary.

How much clearance does a printed two-pin cover need to assemble, and how wasteful is worst-case stacking?

research/robofab-tolstack · 9 tests

How much clearance does a printed two-pin cover need to assemble, and how wasteful is worst-case stacking? At position sd 0.10 mm and size sd 0.05 mm, 99% yield needs 0.62 mm diametral clearance and a ±3σ worst-case stack asks for 2.0 mm (stylised, assumed process spreads).

Abstract

Monte Carlo of a printed base with two pins and a cover with two holes, each centre with a Gaussian position error and each diameter a Gaussian size error, translation-only assembly (exact two-disk test). With exact sizes, yield is 1 − exp(−c2/(8σp2)) (tested against simulation). For position sd 0.10 mm and size sd 0.05 mm, 99% yield needs 0.62 mm nominal diametral clearance and 99.9% needs 0.77 mm, while a ±3σ worst-case stack asks for 2.0 mm (3.0–3.4× the 99% requirement and 2.5–2.8× the 99.9% one across the six unbiased cases); a 3σ root-sum-square rule lands at 0.9990–0.9998 yield where the holes are unbiased. A hole bias adds to the needed clearance one for one. Assumed process spreads, not measured; two pins, no rotation, stylised.

When does the textbook milling chatter chart mislead?

research/infra-chatter · 9 tests

Zero-order milling stability lobes against semi-discretisation and time-domain simulation for a one-mode tool: exact at slotting, but at 10% up-milling the limit is up to 3.3 times too high at some speeds, and in down-milling the zero-order chart predicts no chatter while the tool goes unstable below 0.9 mm; the best spindle speed raises removal rate 5 to 18 times.

Abstract

A one-mode, two-tooth milling tool (benchmark values recalled from Insperger and Stepan, not a measured FRF) is analysed three ways: the Altintas-Budak zero-order solution, a semi-discretisation Floquet solution, and an RK4 time-domain simulation with a true delay. The zero-order minimum depth matches the closed form (0.311 mm for slotting) and agrees with the Floquet limit at 50 % up-milling, but at 10 % up-milling it overshoots by up to 3.3 times at some speeds (minimum 0.787 against 0.669 mm), and in down-milling at 10 and 50 % immersion the mean cutting coefficient is negative so it predicts no chatter while the Floquet limit is 0.65 to 0.88 mm. The Floquet multiplier and the time-domain run agree on stability at all 30 test points. Choosing the best spindle speed raises the stable removal rate 5 to 18 times over the minimum stable depth. No public tool-tip FRF was reachable: all tool constants are assumed benchmark values.

How far below a clairvoyant schedule is online pick dispatch in a robotic waste-sorting cell?

research/infra-sortbound · 8 tests

Follow-up to infra-sortvalue: an exact dynamic-programming bound on the best possible pick schedule (agreeable deadlines make arrival order optimal) shows highest-value-first dispatch reaches 96.5% of the clairvoyant optimum at 6 items/m and 93.9% at 10, FIFO 94.7% and 89.6%, and that the largest headroom (about 10 to 11%) sits at faster belts and slower arms, not at the loads where pick order helped most. A rolling-horizon rule that re-solves the schedule with a 1 s look ahead recovers most of it: 99.7% of the optimum at 6 items/m and 98.0% in the hardest cells.

Abstract

infra-sortvalue compared greedy pick orders with each other and asked how much headroom a better schedule would leave. Because every item has the same reach window, deadlines are in arrival order, so the best schedule for a single arm is a subsequence of the called items in arrival order, and a Pareto dynamic program over (finish time, value) solves it exactly; finish times on a grid, rounded up and down, bracket the optimum (width under 0.1 % of value at a 5 ms grid). A brute-force search over every subset and order agrees on 25 random small instances. On identical simulated arrival streams (TACO class mix, assumed values, 40 runs, paired), highest-value-first reaches 99.5 % of the optimum at 1 item/m, 96.5 % at 6 and 93.9 % at 10, against 99.4, 94.7 and 89.6 % for FIFO; value-per-second matches value-first. The gap is largest where the cell is overloaded in time rather than in items: 10 % (FIFO 11 %) at 0.75 m/s belt speed and 9 % for a 0.4 m/s arm, and it vanishes for a 5 m/s arm or a 0.25 m/s belt. Item values, arm speed, detector, grasp and reach are assumed (as in infra-sortvalue), the clairvoyant bound knows every arrival and travel time in advance, and a real cell is not measured. Added: a rolling-horizon rule (exact re-planning each time the arm is free, over the queue plus items arriving within L seconds) reaches 97.5 % of the optimum with queue only and 99.7 % with a 1 s look ahead at 6 items/m, and 98.0 % at both 0.75 m/s belt and 0.4 m/s arm; the look ahead sees called items exactly, so this is an upper estimate for a real upstream camera.

How fast can a belt run before a robot pick cell stops recovering recyclables?

research/infra-sorting · 6 tests

Single-robot conveyor pick cell fed with the class mix and object sizes of the 4,784 TACO litter annotations: with a 1 s pick and 1 m of reach, recovery of bottles and cans holds near 0.65 up to 0.5 m/s, falls to 0.48 at 1.0 m/s and is zero from 1.5 m/s (reach/pick-time is a hard limit); detector size threshold and false-call rate move purity and recovery more than the pick-order policy, which changes nothing.

Abstract

A discrete-event model of one robot picking bottles and cans (14.9 % of items) from a moving belt, with the item mix and linear sizes taken from the 4,784 annotations of the TACO litter dataset (Proença and Simões 2020). Items arrive as a Poisson stream (3 per metre), stay in a 1 m reach for reach/speed seconds, and are called by a detector whose recall grows with physical size (mean 0.69 on targets). At 1 s per pick, recovery is 0.66 at 0.1 m/s, 0.65 at 0.5, 0.55 at 0.75, 0.48 at 1.0 and zero from 1.5, since an item must stay in reach longer than one pick; the highest speed keeping 80 % of slow-belt recovery is 1.6, 0.8 and 0.4 m/s at 0.5, 1 and 2 s picks. Purity is set by the false-call rate (1.00 at 0, 0.80 at 3 %, 0.38 at 20 %), recovery by the size threshold of the detector (0.79 to 0.39 as it moves from 2 to 8 cm). FIFO, LIFO and largest-first pick orders tie. No detector was trained (no images or GPU here): recall curve, false-call rate, pick time, grasp success, reach and the photo scale are assumed and swept, not fitted; a real cell is not measured.

Does pick order matter for a robotic waste-sorting cell once items differ in value and arm travel?

research/infra-sortvalue · 6 tests

Follow-up to infra-sorting: with TACO's class mix, assumed item values (drink can = 4 plastic bottles) and 0.5 to 1.5 s of arm travel, picking the highest-value item first beats FIFO by only 0.1% at 1 item/m, 2.0% at 6/m and 4.8% at 10/m, and value-per-second picking matches it; belt speed and pick time matter far more than pick order.

Abstract

infra-sorting found that FIFO, LIFO and largest-first tie because every item had the same value, pick time and window. This project gives items a value by TACO category (assumed: a drink can is worth 4 plastic bottles, swept 1 to 16; glass 0.15) and a pick time of 0.5 to 1.5 s from lateral arm travel, and compares FIFO, highest-value-first and value-per-second dispatch on identical simulated arrival streams (40 runs, paired, 95 % intervals). Value-first beats FIFO by 0.1 % at 1 item/m, 0.6 % at 3, 2.0 % at 6 and 4.8 % at 10; the gain rises with can value (+1.1 % to +2.6 %), peaks for a mid-speed arm (0.6 m/s) and is near zero for a very slow or very fast one, and grows to +4.2 % when each contaminant costs two bottles. The two value-aware rules tie. Category values, arm speed, detector, grasp and reach are assumed (only can value and arm speed swept), the detector is not trained, and only greedy rules are tried, so this is no upper bound on dispatch gain; a real cell is not measured.

Other research topics

Proper scoring & elicitation28Effort & peer prediction9Verification games & slashing19Detection & tolerances14Markets as routers13Prediction-market design9Paying contributors8Decentralised training systems23Digital twins & sim-to-real164LLM chip design loops40Robot manufacturing loops53Ambient AI assistant46Self-replicating manufacturing34Simulation-first design64Engineered clothing45Task-specific AI accelerators40Algorithmic chip-design loops42Open-source purpose-built robots44The software-engineering loop43Adversarial human imitation41Open-source residential construction41Autonomous multi-angle capture34Sensing, imaging and 3D31Energy supply and dense energy storage39Robot societies among people31Agentic co-design of low-cost robots27Laundry-hanging robots25Machine learning on qualitative data23Robots on the building site27Civilizations & group psychology1History & human sciences1

Produced with AI assistance (Claude). Results are from the code in this repository and are simulated or stylised unless the abstract says otherwise; nothing here implies affiliation with or endorsement by any lab, researcher or company cited. MIT licensed.