mirror of
https://github.com/huggingface/lerobot.git
synced 2026-05-21 11:39:50 +00:00
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
"""
|
|
Script to convert Unitree json data to the LeRobot dataset v2.0 format.
|
|
|
|
python unitree_lerobot/utils/sort_and_rename_folders.py --data_dir $HOME/datasets/g1_grabcube_double_hand
|
|
"""
|
|
|
|
import os
|
|
import tyro
|
|
import uuid
|
|
from pathlib import Path
|
|
|
|
|
|
def sort_and_rename_folders(data_dir: Path) -> None:
|
|
# Get the list of folders sorted by name
|
|
folders = sorted([f for f in os.listdir(data_dir) if os.path.isdir(os.path.join(data_dir, f))])
|
|
|
|
temp_mapping = {}
|
|
|
|
# First, rename all folders to unique temporary names
|
|
for folder in folders:
|
|
temp_name = str(uuid.uuid4())
|
|
original_path = os.path.join(data_dir, folder)
|
|
temp_path = os.path.join(data_dir, temp_name)
|
|
os.rename(original_path, temp_path)
|
|
temp_mapping[temp_name] = folder
|
|
|
|
# Then, rename them to the final target names
|
|
start_number = 0
|
|
for temp_name, original_folder in temp_mapping.items():
|
|
new_folder_name = f"episode_{start_number:04d}"
|
|
temp_path = os.path.join(data_dir, temp_name)
|
|
new_path = os.path.join(data_dir, new_folder_name)
|
|
os.rename(temp_path, new_path)
|
|
start_number += 1
|
|
|
|
print("The folders have been successfully renamed.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
tyro.cli(sort_and_rename_folders)
|