
Productive Robotics
Absolute Encoder Calibration
Implemented absolute position calibration in C++ — a class of technique that resolves exact joint position across power cycles without homing sequences. The same class of absolute position sensing used in high-end industrial robots.
Implemented the absolute position calculation in C++. The approach combines paired encoder readings to recover the absolute revolution count from a single sample, with no homing motion required. Per-joint gear ratios and scaling are loaded from YAML configuration, with linear-scale conversion applied for prismatic joints to report position in meters.

The computed home offset is stored to the ROS parameter server and recalculated on each power-up via the calibration sequence. Polling the encoder hardware uses a multi-second timeout with retries while waiting for valid data.
The practical benefit is eliminating homing sequences entirely — the robot knows its absolute position immediately on power-up, without driving to a limit switch. This matters for three reasons in industrial robotics: safety (no unexpected motion on startup), uptime (no homing delay before the robot can start working), and crash recovery (the robot knows where it is even after an unexpected power loss, enabling safe recovery without operator intervention).