# UR10

Fixed-base 6-DOF manipulator. The most complete example in the gallery — all four workflows are implemented end to end. [→ source folder](https://github.com/thanhndv212/figaroh-examples/tree/main/examples/ur10)

## What's included

- `calibration.py` — kinematic calibration, combined with URDF export and viser visual validation behind flags
- `identification.py` — dynamic parameter identification
- `optimal_config.py` — D-optimal calibration configuration generation
- `optimal_trajectory.py` — exciting trajectory generation for identification
- `utils/ur10_tools.py` — `UR10Calibration` / `UR10Identification`, the `BaseCalibration`/`BaseIdentification` subclasses
- `config/ur10_unified_config.yaml` — extends [`manipulator_robot.yaml`](https://thanhndv212.github.io/figaroh-plus/examples/templates/index.md)

## Run

```
cd examples/ur10

# Kinematic calibration (full pipeline: calibrate → plot → save → export → viser viz)
python calibration.py
python calibration.py --calibrate-only      # solve only, skip URDF export
python calibration.py --update-model        # export URDF from a saved result

# Dynamic identification (html-report + verify on by default)
python identification.py
python identification.py --config config/UR10-007.yaml --verify --html-report

# Optimal experiment design
python optimal_config.py -n 20              # → results/ur10_optimal_configurations.yaml
python optimal_trajectory.py                # → results/ur10_optimal_trajectory.{yaml,csv}
```

All saved files are timestamped: `data/calibration/calibration_results_{ts}.npz`, `urdf/ur10_robot_modified_{ts}.urdf`.

## Outputs

`results/` contains `calibration_report.html`, `identification_report.html`, `identification_verification.json`, plus torque-comparison plots (`torque_compare_per_joint.png`). See [Reporting & Verification](https://thanhndv212.github.io/figaroh-plus/reporting_and_verification/index.md) for what these contain.

## See also

- [Calibration Walkthrough](https://thanhndv212.github.io/figaroh-plus/tutorials/calibration_walkthrough/index.md) / [Identification Walkthrough](https://thanhndv212.github.io/figaroh-plus/tutorials/identification_walkthrough/index.md) for the theory behind these scripts.
- Full README with problem statement, math, and expected accuracy figures: [figaroh-examples/examples/ur10/README.md](https://github.com/thanhndv212/figaroh-examples/blob/main/examples/ur10/README.md)
