cccat6's picture
Initial FlowMo-WM public code release
604e535 verified
"""PID / line-of-sight controller."""
import numpy as np
from experiments.shared.src.control.geometric import goal_action
from experiments.shared.src.vision.pose_from_image import estimate_pose_from_clean_image
def compute_action(observation, task_state, config):
"""Compute one controller action."""
pose = estimate_pose_from_clean_image(observation)
goal = np.asarray(task_state["goal"], dtype=np.float32)
return goal_action(pose, goal, int(config["action_dim"]), float(config["forward"]), float(config["kp_heading"]))