Skip to content
Robot calibration · Dynamic identification · Experiment design

Turn your URDF and sensor logs into a model you can trust.

FIGAROH fits joint offsets, frame transforms, masses, inertias and friction from your measurements, plans the experiments that make them identifiable, and gives every result a pass/fail verdict.

$ git clone https://github.com/thanhndv212/figaroh-examples
$ cd figaroh-examples/examples/ur10
$ python calibration.py --calibrate-only --no-plot
→ HTML report→ verification JSON→ updated URDF

What do you want to do?

Pick a goal. You get what you need, what you get back, and the command that runs it.

You'll need

  • A URDF of your robot
  • Measured marker poses (mocap, laser tracker) with joint positions, as CSV
  • A YAML config that extends a robot template

You'll get

  • Identified offsets and transforms, with uncertainty for prior-based methods
  • An updated URDF
  • HTML report and a pass/fail verdict

Run it

cd figaroh-examples/examples/ur10
python calibration.py --calibrate-only --no-plot
Step-by-step calibration guide →

One workflow, five steps

Calibration and identification follow the same path. Each step explains the choices you make and how you know it worked.

  1. 01PlanState the goal, list your data, choose what to estimate.
  2. 02DesignGenerate postures or trajectories that excite the parameters.
  3. 03ConfigureWrite a YAML config that extends a shared template.
  4. 04FitRun the solver. Read conditioning and residuals.
  5. 05VerifyCheck held-out data. Get a report and a verdict.

Open the workflow guides →

Built for coding agents

Ask your agent. It already knows the workflow.

FIGAROH ships agent skills. They check your environment, pick the right config template, run the task and read the report back to you, in Claude Code or any agent that reads Markdown instructions.

Set up your agent →

youCalibrate my UR10 with the mocap poses in data/poses.csv and tell me if it passes.
skill figaroh-start → routes to calibration skill figaroh-setup-env → doctor.sh checks the environment skill figaroh-setup-calibration → config from template run   python calibration.py read  verification JSON → verdict