ROS bag 데이터를 학습 가능한 LeRobot 형식으로 전처리하는 도구 모음입니다.
learning_data_preprocessing/
├── rosbag_preprocessing/ # ROS bag 전처리 (MaskACT mask 추가 등)
├── conversion/ # ROS bag → LeRobot 변환
├── postprocessing/ # 변환 후 통계 생성
├── inference/ # 실시간 inference 도구
├── utils/ # 공통 유틸리티
├── scripts/ # 실행 스크립트
└── docs/ # 문서 및 노트
ROS bag에 mask 이미지와 end pose 정보를 추가합니다.
python rosbag_preprocessing/maskact/convert_maskact.py \
--bag-dirs-root /workspace/rosbag2/dkim/ffw_sg2_rev1_dkim/ \
--out-root /workspace/dkim_result_3 \
--image-topic /zed/zed_node/left/image_rect_color/compressed \
--out-topic /mf_perception/ch0_binary_image_sam2/compressed \
--visualize \
--dump-tf-pairs \
--base-left arm_l_link1 \
--ee-left arm_l_link7 \
--base-right arm_r_link1 \
--ee-right arm_r_link7자세한 내용: rosbag_preprocessing/README.md
전처리된 ROS bag을 LeRobot 데이터셋 형식으로 변환합니다.
python conversion/batch_convert_rosbag_to_lerobot.py \
--input-dir /workspace/dkim_result_3 \
--output-dir /workspace/lerobot_datasets_6 \
--repo-id dkim/ffw_sg2_rev1_offline2 \
--fps 10 \
--robot-type ffw_sg2_rev1 \
--task-name default_task \
--validate \
--reference-observation observation.images.cam_head자세한 내용: conversion/README.md
변환된 데이터셋의 통계 정보를 생성합니다.
python postprocessing/generate_stats.py \
--root /workspace/lerobot_datasets_6/dkim_ffw_sg2_rev1_offline2 \
--repo-id dkim/ffw_sg2_rev1_offline2 \
--num-workers 8자세한 내용: postprocessing/README.md
학습된 모델을 사용하여 실시간으로 mask 이미지를 생성합니다.
python3 inference/maskact/inference_time_topic.py \
--image-topic /zed/zed_node/left/image_rect_color/compressed \
--out-topic /mf_perception/ch0_binary_image_sam2/compressed \
--pruning-topic /mf_perception/ch0_pruning_indicator \
--base-left arm_l_link1 --ee-left arm_l_link7 \
--base-right arm_r_link1 --ee-right arm_r_link7 \
--window-w 1280 --window-h 720 \
--max-tf-dt-sec 0.5 \
--visualize \
--use-sam --sam-checkpoint rosbag_preprocessing/maskact/sam2_b.pt자세한 내용: inference/README.md
- ROS Bag Preprocessing - 전처리 가이드
- Conversion - 변환 가이드
- Postprocessing - 후처리 가이드
- Inference - Inference 가이드
- Scripts - 보조 실행 스크립트 (mask 분포, 비디오 리사이즈 등)
- Utils - 유틸리티 설명
- 데이터 수집: ROS bag으로 로봇 데이터 수집
- 전처리: mask 이미지 및 end pose 추가
- 변환: LeRobot 형식으로 변환
- 통계 생성: 데이터셋 통계 계산
- 학습: LeRobot으로 모델 학습
- Inference: 실시간 mask 생성 및 제어
- 데이터 수집: ROS bag으로 로봇 데이터 수집
- 변환: LeRobot 형식으로 변환 (multi-camera 지원)
- 통계 생성: 데이터셋 통계 계산
- 비디오 리사이즈: 모든 카메라를 동일한 해상도로 통일
- 통계 재생성: 리사이즈 후 통계 재계산
- 학습: GR00T fine-tuning
자세한 문제 해결 가이드는 각 단계별 README.md를 참조하세요.