from typing import List, Optional, Union
import motion3d as m3d
import numpy as np
from . import hm
from .base import HERWCalibrationBase, HERWData
[docs]class Wang(HERWCalibrationBase):
"""| Accurate Calibration of Multi-Perspective Cameras from a Generalization of the Hand-Eye Constraint
| Y. Wang, W. Jiang, K. Huang, S. Schwertfeger, and L. Kneip
| IEEE International Conference on Robotics and Automation (ICRA), 2022"""
[docs] @staticmethod
def name():
return 'Wang'
[docs] def __init__(self):
super().__init__()
self._wang_data = None
self._frame_ids = None
[docs] def _calibrate(self, **kwargs):
if self._wang_data is None:
raise RuntimeError("Linear formulation is missing")
return hm.analytic.solve_wang(self._wang_data, self._frame_ids, **kwargs)