mirror of
https://github.com/huggingface/lerobot.git
synced 2026-05-22 03:59:42 +00:00
fix build frame
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
Reference in New Issue
Block a user