49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
|
from pathlib import Path
|
||
|
|
||
|
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
|
||
|
from lerobot.scripts.control_robot import record_dataset, replay_episode, run_policy, teleoperate
|
||
|
from tests.utils import DEFAULT_CONFIG_PATH, DEVICE, require_koch
|
||
|
|
||
|
|
||
|
@require_koch
|
||
|
def test_teleoperate(request):
|
||
|
robot = make_robot("koch")
|
||
|
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
|
||
|
def test_record_dataset_and_replay_episode_and_run_policy(tmpdir, request):
|
||
|
robot_name = "koch"
|
||
|
env_name = "koch_real"
|
||
|
policy_name = "act_koch_real"
|
||
|
|
||
|
root = Path(tmpdir)
|
||
|
repo_id = "lerobot/debug"
|
||
|
|
||
|
robot = make_robot(robot_name)
|
||
|
dataset = record_dataset(
|
||
|
robot, fps=30, root=root, repo_id=repo_id, warmup_time_s=1, episode_time_s=1, num_episodes=2
|
||
|
)
|
||
|
|
||
|
replay_episode(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}",
|
||
|
],
|
||
|
)
|
||
|
|
||
|
policy = make_policy(hydra_cfg=cfg, dataset_stats=dataset.stats)
|
||
|
|
||
|
run_policy(robot, policy, cfg, run_time_s=1)
|
||
|
|
||
|
del robot
|