fix build frame

This commit is contained in:
Pepijn
2026-01-09 11:31:29 +01:00
parent bbaadc49c2
commit e92d6fa067
@@ -449,6 +449,7 @@ def actor_thread(
robot_observation_processor, robot_observation_processor,
interpolator: ActionInterpolator, interpolator: ActionInterpolator,
hz_tracker: HzTracker, hz_tracker: HzTracker,
dataset_features: dict,
): ):
"""Thread function to execute interpolated actions on the robot at high frequency.""" """Thread function to execute interpolated actions on the robot at high frequency."""
try: try:
@@ -496,13 +497,14 @@ def actor_thread(
action_for_dataset = teleop_action_processor((action_dict, None)) action_for_dataset = teleop_action_processor((action_dict, None))
frame = {} # Use build_dataset_frame to properly format keys
for key, value in obs_processed.items(): observation_frame = build_dataset_frame(
frame[f"observation.{key}"] = value dataset_features, obs_processed, prefix="observation"
for key, value in action_for_dataset.items(): )
frame[f"action.{key}"] = value action_frame = build_dataset_frame(
frame["task"] = cfg.task dataset_features, action_for_dataset, prefix="action"
)
frame = {**observation_frame, **action_frame, "task": cfg.task}
dataset.add_frame(frame) dataset.add_frame(frame)
# Get interpolated action and send to robot at robot_fps (highest rate) # Get interpolated action and send to robot at robot_fps (highest rate)
@@ -516,9 +518,6 @@ def actor_thread(
if i < len(interp_action): if i < len(interp_action):
action_dict[key] = interp_action[i].item() action_dict[key] = interp_action[i].item()
if velocity is not None: if velocity is not None:
# Convert to full motor name for velocity feedforward
motor_name = key.replace(".pos", "").replace(".", "_")
# Actually the key format is like "right_joint_1.pos"
motor_name = key.removesuffix(".pos") motor_name = key.removesuffix(".pos")
velocity_dict[motor_name] = velocity[i].item() velocity_dict[motor_name] = velocity[i].item()
@@ -791,6 +790,7 @@ def main(cfg: OpenArmsRTCInterpEvalConfig):
robot_observation_processor, robot_observation_processor,
interpolator, interpolator,
hz_tracker, hz_tracker,
dataset_features,
), ),
daemon=True, daemon=True,
name="Actor", name="Actor",