lfz_lehome_v2 / scripts /dataset.py
taikonauts's picture
Upload folder using huggingface_hub
1cc903b verified
Raw
History Blame Contribute Delete
2.49 kB
"""
Dataset management tool for operations NOT requiring Isaac Sim (SimulationApp).
This script handles dataset operations that do not require the Isaac Sim application:
- inspect: Inspect dataset metadata
- read: Read dataset states
- augment: Add end-effector pose to dataset
- merge: Merge multiple datasets
For operations requiring Isaac Sim (record, replay), use dataset_sim.py instead."""
import argparse
from pathlib import Path
from .utils import (
dataset_inspection,
dataset_processing,
setup_inspect_parser,
setup_read_parser,
setup_augment_parser,
setup_merge_parser,
)
def main():
"""Main entry point for dataset management tool (no Isaac Sim required)."""
parser = argparse.ArgumentParser(
description="LeHome dataset management tool (no Isaac Sim required)",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="Note: For operations requiring Isaac Sim (record, replay), use dataset_sim.py instead.",
)
subparsers = parser.add_subparsers(
dest="command", help="Available commands", required=True
)
setup_inspect_parser(subparsers)
setup_read_parser(subparsers)
setup_augment_parser(subparsers)
setup_merge_parser(subparsers)
args = parser.parse_args()
if args.command == "inspect":
dataset_inspection.inspect(
Path(args.dataset_root),
show_frames=args.show_frames,
show_stats=args.show_stats,
)
elif args.command == "read":
dataset_inspection.read_states(
Path(args.dataset_root),
num_frames=args.num_frames,
episode=args.episode,
output_csv=args.output_csv,
show_stats=args.show_stats,
)
elif args.command == "augment":
dataset_processing.augment_ee_pose(
Path(args.dataset_root).resolve(),
Path(args.urdf_path).resolve(),
state_unit=args.state_unit,
output_root=Path(args.output_root).resolve() if args.output_root else None,
overwrite=args.overwrite,
)
elif args.command == "merge":
import ast
source_roots = [Path(p) for p in ast.literal_eval(args.source_roots)]
dataset_processing.merge_datasets(
source_roots,
Path(args.output_root),
output_repo_id=args.output_repo_id,
merge_custom_meta=args.merge_custom_meta,
)
if __name__ == "__main__":
main()