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() cfg = TeleoperateConfig( robot=robot_cfg, teleop=teleop_cfg, teleop_time_s=0.1, ) teleoperate(cfg) 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)