lerobot/tests/test_control_robot.py

54 lines
1.4 KiB
Python
Raw Normal View History

from pathlib import Path
2024-07-10 20:11:53 +08:00
from lerobot.common.policies.factory import make_policy
from lerobot.common.robot_devices.robots.factory import make_robot
from lerobot.common.utils.utils import init_hydra_config
2024-07-26 23:07:09 +08:00
from lerobot.scripts.control_robot import record, replay, teleoperate
from tests.utils import DEFAULT_CONFIG_PATH, DEVICE, KOCH_ROBOT_CONFIG_PATH, require_koch
def make_robot_():
robot_cfg = init_hydra_config(KOCH_ROBOT_CONFIG_PATH)
robot = make_robot(robot_cfg)
return robot
@require_koch
def test_teleoperate(request):
2024-07-26 23:07:09 +08:00
robot = make_robot_()
teleoperate(robot, teleop_time_s=1)
teleoperate(robot, fps=30, teleop_time_s=1)
teleoperate(robot, fps=60, teleop_time_s=1)
del robot
@require_koch
2024-07-26 23:07:09 +08:00
def test_record_and_replay_and_policy(tmpdir, request):
env_name = "koch_real"
2024-07-10 06:07:40 +08:00
policy_name = "act_koch_real"
root = Path(tmpdir)
repo_id = "lerobot/debug"
2024-07-26 23:07:09 +08:00
robot = make_robot_()
dataset = record(
2024-07-10 20:11:53 +08:00
robot, fps=30, root=root, repo_id=repo_id, warmup_time_s=1, episode_time_s=1, num_episodes=2
)
2024-07-26 23:07:09 +08:00
replay(robot, episode=0, fps=30, root=root, repo_id=repo_id)
cfg = init_hydra_config(
DEFAULT_CONFIG_PATH,
overrides=[
f"env={env_name}",
f"policy={policy_name}",
f"device={DEVICE}",
2024-07-10 20:11:53 +08:00
],
)
policy = make_policy(hydra_cfg=cfg, dataset_stats=dataset.stats)
2024-07-09 06:22:30 +08:00
2024-07-26 23:07:09 +08:00
record(robot, policy, cfg, run_time_s=1)
2024-07-09 06:22:30 +08:00
del robot