Error-model-based robot calibration using a modified CPC model