Reproducibility at a robotics conference means something different than at an ML venue: no reader can rerun your hardware trials without your robot, your room, and your objects. The achievable standard is therefore two-tier — rerunnable (code, simulation, analysis) and auditable (hardware evidence logged well enough that a skeptic can verify you did what you claim). ICRA papers earn trust by being explicit about which tier each result sits in.
A robotics result is unreproducible if the platform is underspecified. The paper (body, since there is no appendix escape) plus released materials should pin:
| Layer | Must specify | Example of "enough" |
|---|---|---|
| Robot | model, DOF, payload, firmware version | "UR5e, PolyScope 5.11" |
| End effector | model, mods, wear state if relevant | "Robotiq 2F-85, stock pads" |
| Sensors | model, resolution, rate, mounting frame | "D435i @ 640×480, 30 Hz, wrist" |
| Compute | on-board vs off-board, GPU, latency path | "off-board 3080, 5G-free wired" |
| Middleware | ROS distro, key package versions | "ROS 2 Humble, MoveIt 2.5.4" |
| Control | loop rates, gains or their source | "impedance @ 500 Hz, gains in repo" |
| Calibration | method + residual error | "hand-eye via [ref], 1.8 mm RMS" |
| Objects/scenes | identity, source, dimensions | "YCB subset listed in Tab. II" |
Standard object sets (YCB and similar) exist precisely so that "graspable household objects" can be a checkable claim; use them or publish the object specs.
trial_<cond>_<idx>_<date>.bag; the
analysis pipeline should consume these logs, so paper numbers regenerate from
raw data with one command.Hardware trials are not seed-reproducible — contact, cables, lighting, and thermal drift see to that. Split the claims accordingly:
repo/
├── README.md # claim → command map (Table III = run_hw_analysis.sh)
├── env/ # Dockerfile or rosdep/lockfiles, pinned
├── sim/ # simulation experiments, seeds fixed
├── control/ # controllers/planners as ROS packages
├── hw_protocol.md # step-by-step trial procedure, success criterion,
│ # reset procedure, safety notes
├── logs/ # rosbags or download script (size!), session sheets
├── analysis/ # regenerates every figure/table from logs/
└── video/ # raw clips ↔ trial IDs mapping
Anonymize the repository for review under the double-anonymous policy (2026
cycle onward): anonymized hosting or an artifact stripped of names — an org URL
is an identity leak (see icra-submission).
Robotics adds a real-time dimension absent from ML reproducibility norms:
Honest, specific statements outperform boilerplate promises:
[Tier split] rerunnable: <tables/figs> | auditable: <tables/figs>
[Spec ledger] missing rows: <list or none>
[Log coverage] trials logged <n>/<n>, analysis regenerates: y/n
[Determinism] seeds/versions pinned for sim+training: y/n
[Release] scaffold complete? anonymized? size plan?
[Statement] honest-specific / boilerplate-risk — rewrite: <line>