from typing import List, Optional, Union
import motion3d as m3d
import numpy as np
from . import dq
from .base import HandEyeCalibrationBase
[docs]class Wei(HandEyeCalibrationBase):
"""| Calibration-Free Robot-Sensor Calibration approach based on Second-Order Cone Programming
| L. Wei, L. Naiguang, D. Mingli, and L. Xiaoping
| MATEC Web of Conferences, 2018"""
[docs] @staticmethod
def name():
return 'Wei'
[docs] def __init__(self):
super().__init__()
self._data = None
[docs] def _calibrate(self, **_):
if self._data is None:
raise RuntimeError("Transformation data are is missing")
return dq.optimization.optimize_wei(self._data)