Physical AI & Robotics · first target
Palletizer CORE
The target is not a demonstration. The target is: a customer can deploy faster and operate cheaper than with the incumbent alternative. Until a pilot with a kill date says so, every number below is a dash.
github.com/iceccarelli/palletizerpypi · palletizer-full-stack 0.2.0palletizer-app.vercel.app (stated, not verified here)
Last commit (snapshot). Apache-2.0. Python, TypeScript, C++. Detail: /registry/palletizer.
What exists
- Deterministic orchestrator loop with hazard evaluation, fault detection and telemetry publication.
- Mixed-SKU pallet optimizer with a stability number that can be checked; C++ shelf/skyline packer via pybind11 with tested invariants.
- Hardware-agnostic
RobotInterfaceandGripperController; robot-arm profiles; WMS CSV ingestion. - MCP stdio JSON-RPC server exposing planning as agent tools (plan and simulate — never actuate).
- ROS 2 integration package and browser physics demos (React Three Fiber + Rapier).
- Test suite across orchestrator, planning, optimizer, motion, power, MCP server and native invariants; PyPI package
palletizer-full-stack 0.2.0.
What does not exist
- A customer, a pilot, a deployed cell, or any measured KPI.
- A certified vendor driver for any robot brand. “Robot-agnostic” is an interface, not a compatibility list.
- A simulation harness that writes the twelve KPIs as a versioned JSON snapshot (the next experiment).
Evidence of work done
Releases, commits and decisions with the source of every date; then the test suite mapped onto the stack. This is the work that exists. It is deliberately drawn next to the KPIs that do not.
Dates and sources
| Date | Kind | Event | Source |
|---|---|---|---|
| release | palletizer 0.1.0 — control stack, 40+ tests | palletizer/CHANGELOG.md | |
| release | robot-lidar-fusion 0.1.0 on PyPI | pypi.org/project/robot-lidar-fusion | |
| release | robot-lidar-fusion 0.2.1 on PyPI | pypi.org/project/robot-lidar-fusion | |
| release | palletizer-full-stack 0.2.0 on PyPI | pypi.org/project/palletizer-full-stack | |
| release | robot-lidar-fusion 0.4.0 on PyPI — SE(3) projection, KITTI loader, diagnostics CLI | pypi.org/project/robot-lidar-fusion | |
| commit | palletizer last public commit (construction pack, ROS 2 reference, README) | github.com/iceccarelli/palletizer | |
| decision | Cluster control engine; decisions D-001…D-008; register snapshot | this register | |
| due | Kill decision due: K-001 construction pack, K-002 ai-agent-control | /decisions#kill | |
| due | Discovery target due: ten buyer conversations | /report#2026-W36 |
- Perceptionno test evidence—
- World modelno test evidence—
- Task planner
test_planning.pytest_optimizer.py · stability numbertest_native_invariants.py · C++ vs Pythontest_construction.py · EXPERIMENTtest_mcp_server.py · agent tools5 - Motion planner
test_motion_controller.py1 - Simulatorno test evidence—
- Safety / constraint engine
test_hazard_manager.pytest_fault_detection.pytest_power.py · battery, thermal3 - Robot controller
test_orchestrator.py · fixed-rate looptest_joint_synchronization.pytest_gripper_controller.pytest_memory_management.pytest_concurrency.pytest_config.py6 - Actuationno test evidence—
- Telemetry
test_communication.py1 - Failure analysisno test evidence—
- Learningno test evidence—
web/ at the 2026-07-31 commit (clone of github.com/iceccarelli/palletizer at the last public commit). Perception, world model, simulator, actuation, failure analysis and learning have no tests in this repository.The twelve KPIs
| KPI | Definition | Measured | Method |
|---|---|---|---|
Cycles / hourcycles/h | Completed pick-place cycles per hour of scheduled run time. | unmeasured | Simulation harness on a fixed fixture set first; cell telemetry (orchestrator loop) on hardware. |
Successful pickscount | Picks that place the case within tolerance without re-grip. | unmeasured | Orchestrator task log; verified by the post-place check. |
Failed pickscount | Picks aborted, dropped or placed out of tolerance. | unmeasured | Fault detector events joined to task ids. |
Intervention rateper 1,000 cycles | Human interventions per 1,000 cycles. | unmeasured | Operator acknowledgements in telemetry; the number that decides the economics. |
Changeover timemin | Minutes from last case of SKU set A to first case of SKU set B. | unmeasured | Pattern manager timestamps. |
Deployment timedays | Working days from site survey to first production pallet. | unmeasured | Pilot log, signed by the customer. |
Robot utilisation% | Share of scheduled time the arm is executing a task. | unmeasured | Controller state telemetry. |
Gripper utilisation% | Share of cycles using each end effector; idle tooling is cost. | unmeasured | Gripper controller events. |
SKU complexitySKUs/order | Distinct case geometries per order; mixed-SKU share. | unmeasured | WMS CSV ingestion statistics. |
Downtimemin/shift | Unscheduled minutes per shift attributable to the cell. | unmeasured | Fault detector; classified by cause. |
Labour savingsh/shift | Operator hours displaced per shift, at the customer’s loaded rate. | unmeasured | Customer baseline before pilot; never a modelled figure presented as a result. |
Payback periodmonths | Months until cumulative savings equal deployment cost. | unmeasured | Derived from the eleven KPIs above and the signed pilot invoice. Absent until then. |
Snapshot schema: PalletizingKpiSnapshot 0.1.0. JSON: /api/cluster/kpis.
Shared perception IP — robot-lidar-fusion CORE
ROS 2 LiDAR–camera fusion: SE(3) extrinsic projection, pinhole intrinsics, z-buffer occlusion, KITTI calibration loader, diagnostics CLI. Shared perception IP for palletizing and inspection.
pypi · robot-lidar-fusion 0.4.0github repository not public
| KPI | Definition | Measured | Method |
|---|---|---|---|
Precision% | Detected objects that are real, on the benchmark set. | unmeasured | Benchmark dataset with ground truth; KITTI calibration loader exists in 0.4.0. |
Recall% | Real objects detected, on the benchmark set. | unmeasured | Same benchmark run. |
Latencyms | Wall-clock from sensor frame to fused output, p50 and p99. | unmeasured | Diagnostics CLI on stated hardware; hardware named with the number. |
Failure rate% | Frames with no valid fused output. | unmeasured | Diagnostics CLI over the benchmark set, including degraded sequences. |
Localisation errorcm | Position error of fused detections against ground truth. | unmeasured | Benchmark with calibrated extrinsics; error under sensor dropout reported separately. |
GeneralisationΔ% | Metric change when the benchmark scene family changes. | unmeasured | Held-out scene families; occlusion and degraded-environment subsets. |
Evaluation covers localisation, object detection, tracking, uncertainty, sensor calibration, sensor failure, degraded environments, occlusion, robustness and latency. Hardware is named with every latency figure.
Autonomous inspection RESEARCH
Electrical-infrastructure inspection is the strategic bridge to the Energy cluster and is not commercialised before the chain is demonstrated end to end:
- DETECTION
- CLASSIFICATION
- LOCALISATION
- INSPECTION PLAN
- SAFE ROBOT EXECUTION
- EVIDENCE
- REPORT
Customer outcome: less dangerous human work, lower inspection cost, higher inspection frequency, earlier fault detection. Result contract: InspectionResult 0.1.0. No repository exists yet; the register says so.