from typing import List, Optional, Union
import motion3d as m3d
import numpy as np
from . import hm
from .base import HERWCalibrationBase
[docs]class Dornaika(HERWCalibrationBase):
"""| Simultaneous Robot-World and Hand-Eye Calibration
| F. Dornaika and R. Horaud
| IEEE Transactions on Robotics and Automation (Vol. 14, Issue 4), 1998"""
[docs] @staticmethod
def name():
return 'Dornaika'
[docs] def __init__(self):
super().__init__()
self._matrix_data = None
[docs] def _calibrate(self, **kwargs):
if self._matrix_data is None:
raise RuntimeError("Transformations are missing")
return hm.optimization.optimize_dornaika(self._matrix_data, **kwargs)