Source code for rlightning.humanoid.retarget.base

from typing import Dict, Any, Sequence

import numpy as np

from rlightning.utils.config import Config


[docs] class Retargeter:
[docs] class RetargeterCfg(Config): robot_xml_path: str = "" solver: str = "" damping: float = 0.0 use_velocity_limit: bool = False ik_config_path: str = ""
def __init__(self): self.cfg: Retargeter.RetargeterCfg = None self._init_viewer() self.paused = False def __call__(self, frames: Sequence[Any], extras: Dict[str, Any]): return self.retarget(frames, extras) def _init_viewer(self): self.enable_viewer = False # self.config.viewer.enable_viewer # if self.enable_viewer: # self.viewer = RobotMotionViewer( # robot_config=self.config.robot, # camera_follow=self.config.viewer.camera_follow, # record_video=self.config.viewer.record_video, # video_path=os.path.join(HydraConfig.get().runtime.output_dir, 'recording.mp4'), # rate_limit=self.config.viewer.rate_limit, # key_callback=self.key_callback # ) pass
[docs] def retarget(self, frames: Sequence[Any], extras: Dict[str, Any]) -> np.ndarray: raise NotImplementedError
# def update(self, extras): # self.motion_fps = extras['fps'] # if self.enable_viewer: # self.viewer.update(self.motion_fps)
[docs] def finish(self): if self.enable_viewer: self.viewer.close()
[docs] def key_callback(self, keycode): if chr(keycode) == " ": self.paused = not self.paused