Hardware API redesign (#777)
Co-authored-by: Pepijn <138571049+pkooij@users.noreply.github.com> Co-authored-by: Steven Palma <imstevenpmwork@ieee.org> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Steven Palma <steven.palma@huggingface.co> Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com> Co-authored-by: Pepijn <pepijn@huggingface.co>
This commit is contained in:
97
tests/test_control_robot.py
Normal file
97
tests/test_control_robot.py
Normal file
@@ -0,0 +1,97 @@
|
||||
import time
|
||||
|
||||
from lerobot.calibrate import CalibrateConfig, calibrate
|
||||
from lerobot.record import DatasetRecordConfig, RecordConfig, record
|
||||
from lerobot.replay import DatasetReplayConfig, ReplayConfig, replay
|
||||
from lerobot.teleoperate import TeleoperateConfig, teleoperate
|
||||
from tests.fixtures.constants import DUMMY_REPO_ID
|
||||
from tests.mocks.mock_robot import MockRobotConfig
|
||||
from tests.mocks.mock_teleop import MockTeleopConfig
|
||||
|
||||
|
||||
def test_calibrate():
|
||||
robot_cfg = MockRobotConfig()
|
||||
cfg = CalibrateConfig(robot=robot_cfg)
|
||||
calibrate(cfg)
|
||||
|
||||
|
||||
def test_teleoperate():
|
||||
robot_cfg = MockRobotConfig()
|
||||
teleop_cfg = MockTeleopConfig()
|
||||
expected_duration = 0.1
|
||||
cfg = TeleoperateConfig(
|
||||
robot=robot_cfg,
|
||||
teleop=teleop_cfg,
|
||||
teleop_time_s=expected_duration,
|
||||
)
|
||||
start = time.perf_counter()
|
||||
teleoperate(cfg)
|
||||
actual_duration = time.perf_counter() - start
|
||||
|
||||
assert actual_duration <= expected_duration * 1.1
|
||||
|
||||
|
||||
def test_record_and_resume(tmp_path):
|
||||
robot_cfg = MockRobotConfig()
|
||||
teleop_cfg = MockTeleopConfig()
|
||||
dataset_cfg = DatasetRecordConfig(
|
||||
repo_id=DUMMY_REPO_ID,
|
||||
single_task="Dummy task",
|
||||
root=tmp_path / "record",
|
||||
num_episodes=1,
|
||||
episode_time_s=0.1,
|
||||
reset_time_s=0,
|
||||
push_to_hub=False,
|
||||
)
|
||||
cfg = RecordConfig(
|
||||
robot=robot_cfg,
|
||||
dataset=dataset_cfg,
|
||||
teleop=teleop_cfg,
|
||||
play_sounds=False,
|
||||
)
|
||||
|
||||
dataset = record(cfg)
|
||||
|
||||
assert dataset.fps == 30
|
||||
assert dataset.meta.total_episodes == dataset.num_episodes == 1
|
||||
assert dataset.meta.total_frames == dataset.num_frames == 3
|
||||
assert dataset.meta.total_tasks == 1
|
||||
|
||||
cfg.resume = True
|
||||
dataset = record(cfg)
|
||||
|
||||
assert dataset.meta.total_episodes == dataset.num_episodes == 2
|
||||
assert dataset.meta.total_frames == dataset.num_frames == 6
|
||||
assert dataset.meta.total_tasks == 1
|
||||
|
||||
|
||||
def test_record_and_replay(tmp_path):
|
||||
robot_cfg = MockRobotConfig()
|
||||
teleop_cfg = MockTeleopConfig()
|
||||
record_dataset_cfg = DatasetRecordConfig(
|
||||
repo_id=DUMMY_REPO_ID,
|
||||
single_task="Dummy task",
|
||||
root=tmp_path / "record_and_replay",
|
||||
num_episodes=1,
|
||||
episode_time_s=0.1,
|
||||
push_to_hub=False,
|
||||
)
|
||||
record_cfg = RecordConfig(
|
||||
robot=robot_cfg,
|
||||
dataset=record_dataset_cfg,
|
||||
teleop=teleop_cfg,
|
||||
play_sounds=False,
|
||||
)
|
||||
replay_dataset_cfg = DatasetReplayConfig(
|
||||
repo_id=DUMMY_REPO_ID,
|
||||
episode=0,
|
||||
root=tmp_path / "record_and_replay",
|
||||
)
|
||||
replay_cfg = ReplayConfig(
|
||||
robot=robot_cfg,
|
||||
dataset=replay_dataset_cfg,
|
||||
play_sounds=False,
|
||||
)
|
||||
|
||||
record(record_cfg)
|
||||
replay(replay_cfg)
|
||||
Reference in New Issue
Block a user