LeRobot documentation
Kısa özet
Kısa özet
LeRobot komutlarının tümü tek bir yerde. Belirli bir komutun nasıl kullanılacağını unuttuysanız veya yeni bir komut hakkında bilgi edinmek istiyorsanız bunu burada yapabilirsiniz.
Aşağıda listelenen tüm komutlar için portları/adları/kimlikleri kendi değerlerinizle değiştirmeyi unutmayın!
Tüm komutları incelemenin ve bunları kendi özel kurulumunuza göre yapılandırmanın harika bir başka yolu da bu Jupyter Notebook'u kullanmaktır.
Kurulum ve yükleme
Kurulum için LeRobot Kurulumu bölümüne bakın.
İşinize yarayacak araçlar
Portu bul
Robotlarınızın hangi seri portlara bağlı olduğunu belirlemek için bunu kullanın. Terminaldeki talimatları izleyin: USB kablosunu çıkarması ve Enter tuşuna basmanız istenecektir. Betik, ardından o robot için doğru seri portu algılayıp yazdırır.
lerobot-find-port
Kameraları bul
Kamera indekslerini hızla bulun ve çıktıları doğrulayın. Bu komut, kamera bilgilerini terminalde görüntüler ve her algılanan kameradan test karelerini outputs/captured_images dizinine kaydeder.
lerobot-find-cameras
Kalibrasyon
Çoğu durumda, her robot ve teleoperasyon cihazı için kalibrasyonu yalnızca bir kez yapmanız gerekir. Kalibrasyonu yapmadan önce, tüm eklemlerin yaklaşık orta konumda olduğundan emin olun.
lerobot-calibrate \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower_armKalibrasyon sırasında kullanılan aynı kimlikleri (ID) daha sonraki diğer betiklerde de kullandığınızdan emin olun. LeRobot, kalibrasyon dosyalarını bu şekilde bulur.
Teleoperasyon
İki kamera ile teleoperasyon ve Rerun ile veri görüntüleme.
lerobot-teleoperate \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower_arm \
--robot.cameras="{ top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30} }" \
--teleop.type=so101_leader \
--teleop.port=/dev/ttyACM1 \
--teleop.id=my_leader_arm \
--display_data=trueBir veri seti kaydetme
Veri seti, repo_id altında Hugging Face Hub'a otomatik olarak yüklenir. CLI ile HF hesabınıza giriş yaptığınızdan emin olun (https://huggingface.co/settings/tokens adresinden bir token alabilirsiniz) ve aşağıdaki komutların kullandığı kullanıcı adınızı HF_USER değişkeninde saklayın:
lerobot-record \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower_arm \
--robot.cameras="{ top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30} }" \
--teleop.type=so101_leader \
--teleop.port=/dev/ttyACM1 \
--teleop.id=my_leader_arm \
--dataset.repo_id=${HF_USER}/so101_dataset_test \
--dataset.num_episodes=30 \
--dataset.single_task="put the red brick in a bowl" \
--dataset.streaming_encoding=true \
--display_data=trueVeri setini toplarken süreci klavyenizle kontrol edebilirsiniz:
- Sağ Ok (
→) veyantuşuna basın: Bölümü kaydet ve sonrakine geç. - Sol Ok (
←) veyartuşuna basın: Mevcut bölümü silin ve yeniden deneyin. - Escape (
ESC) veyaqtuşuna basın: Durdurun, videoları kodlayın ve yükleyin.
lerobot-record, oturumun tarih ve saatini--dataset.repo_idsonuna ekler; bu nedenle${HF_USER}/so101_dataset_test,${HF_USER}/so101_dataset_test_YYYYMMDD_HHMMSSolarak kaydedilir. Tam adı Hugging Face profilinizde veyals ~/.cache/huggingface/lerobot/${HF_USER}komutuyla bulabilir ve aşağıdaki eğitim komutlarında kullanabilirsiniz. Adı aynen korumak için--dataset.no_stamp=trueekleyin.
Derinlik kaydı
Intel RealSense kameraları (type: intelrealsense), use_depth: true ayarlandığında derinlik akışı kaydeder. Derinlik, 12 bit kodlara kuantize edilir ve kendi videosu olarak saklanır.
lerobot-record \
... \
--robot.cameras="{ head: {type: intelrealsense, serial_number_or_name: \"0123456789\", width: 640, height: 480, fps: 30, use_depth: true} }" \
--dataset.repo_id=${HF_USER}/so101_depth_test \
--dataset.single_task="put the red brick in a bowl" \
--dataset.depth_encoder.depth_min=0.01 \
--dataset.depth_encoder.depth_max=10.0 \
--dataset.depth_encoder.shift=0.0 \
--dataset.depth_encoder.use_log=trueVideo kodlama parametreleri
RGB ve derinlik akışları, --dataset.rgb_encoder.* ve --dataset.depth_encoder.* anahtarları aracılığıyla bağımsız olarak kodlanır.
lerobot-record \
... \
--dataset.rgb_encoder.vcodec=h264 \
--dataset.rgb_encoder.pix_fmt=yuv420p \
--dataset.rgb_encoder.crf=23 \
--dataset.depth_encoder.vcodec=hevc \
--dataset.depth_encoder.extra_options='{"x265-params": "lossless=1"}'Eğitim
Donanımınıza bağlı olarak politikanın eğitimi birkaç saat sürebilir. Basit bir ACT politikasını eğitmenin yolu şudur:
lerobot-train \
--dataset.repo_id=${HF_USER}/so101_dataset_test_YYYYMMDD_HHMMSS \
--policy.type=act \
--output_dir=outputs/train/act_so101_test \
--job_name=act_so101_test \
--policy.device=cuda \
--trackio.enable=true \
--policy.repo_id=${HF_USER}/policy_test \
--steps=20000- Yaygın politika türleri:
act,diffusion,multi_task_dit,smolvla,pi0,pi05,pi0_fast,groot,xvla. Her politikanın kenar çubuğundaki Politikalar bölümünde kendi sayfası vardır ve Hesaplama ve Donanım Kılavuzu, hangilerinin GPU'nuzla uyumlu olduğunu gösterir. - Cihazlar:
cuda(NVIDIA),mps(Apple Silicon),cpu
--policy.type, bu türde yeni bir politika oluşturur ve onu veri setinizde sıfırdan eğitir (bazı politikalar, yapılandırmalarında tanımlanan ön eğitilmiş görme veya dil omurgalarından başlar). Bunun yerine mevcut bir modeli ince ayar yapmak için, yerel bir kontrol noktası veya Hub depo kimliği ile --policy.path parametresini iletin: politika türü ve yapılandırması buradan okunacağı için --policy.type gerekmez.
lerobot-train \
--dataset.repo_id=${HF_USER}/so101_dataset_test_YYYYMMDD_HHMMSS \
--policy.path=username/the_policy_to_finetune \
--policy.device=cuda \
--policy.repo_id=${HF_USER}/policy_finetuned_test \
--output_dir=outputs/train/finetuned_so101_test \
--steps=20000Yerel GPU yok mu? Herhangi bir komuta --job.target=<flavor> (ör. a10g-small) ekleyin ve lerobot-train bunu Hugging Face Jobs üzerinde çalıştırsın — size özel olarak yalnızca yerel bir veri seti yükler ve eğitilen modeli iter. Lezzetleri listelemek için hf jobs hardware kullanın. İşin metriklerini izlemek için --trackio.enable=true --trackio.space_id=<user>/<space> ekleyin: pod’un yerel Trackio veritabanı işin sona ermesiyle kaybolur.
Devam etmek için --config_path parametresini bir kontrol noktasına yönlendirin ve --resume=true ekleyin. Yerel bir yol veya Hub depo kimliği kabul eder (en son kontrol noktası alınır) ve --job.target=<flavor> ekleyerek yerel olarak veya bir iş üzerinde çalışır:
lerobot-train --config_path=${HF_USER}/policy_test --resume=true --job.target=a10g-smallÇıkarım
Inference, eğitilmiş politika/modelin bir robot üzerinde çalıştırılması anlamına gelir. Bunun için lerobot-rollout kullanılır. Politikanızın yolunu belirtmeniz gerekir. Bu, yerel bir yol veya bir Hugging Face depo kimliği olabilir; örneğin yukarıdaki eğitim komutundaki ${HF_USER}/policy_test. Veri setini toplarken kullandığınızla aynı portu, --robot.id, kamera yapılandırmasını ve görev açıklamasını kullanın. --duration saniye cinsindendir; belirtilmezse politika, durdurulana kadar çalışmaya devam eder.
v0.5.x ve önceki sürümlerde
lerobot-rolloutmevcut değildir ve bunun yerinelerobot-recordkullanmanız gerekir. Daha fazla bilgi burada.
lerobot-rollout \
--strategy.type=base \
--policy.path=${HF_USER}/policy_test \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower_arm \
--robot.cameras="{ top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30} }" \
--task="put the red brick in a bowl" \
--duration=60