LeRobot documentation
HopeJR
HopeJR
Ön koşullar
LeRobot'u Yükle
LeRobot'u yüklemek için kurulum talimatlarını izleyin.
HopeJR bağımlılıklarıyla LeRobot'u yükleyin:
pip install -e ".[hopejr]"Cihaz Yapılandırması
Kalibrasyon ve çalıştırma işlemlerine başlamadan önce, her bir HopeJR bileşeni için USB portlarını belirlemeniz gerekir. Kol, el, eldiven ve ekzoskelet için USB portlarını bulmak üzere bu betiği çalıştırın:
lerobot-find-port
Bu komut, kullanılabilir USB portlarını ve bunlara bağlı cihazları görüntüler. Veri kaydı, bölümlerin yeniden oynatılması veya teleoperasyon betiklerinin çalıştırılması sırasında --robot.port ve --teleop.port parametrelerinde belirtmeniz gerekeceğinden, port yollarını (ör. /dev/tty.usbmodem58760433331, /dev/tty.usbmodem11301) not edin.
Adım 1: Kalibrasyon
Teleoperasyon gerçekleştirmeden önce HopeJR’ın uzuvları kalibre edilmelidir. Kalibrasyon dosyaları ~/.cache/huggingface/lerobot/calibration dizininde kaydedilir.
1.1 Robot Eli Kalibrasyonu
lerobot-calibrate \
--robot.type=hope_jr_hand \
--robot.port=/dev/tty.usbmodem58760432281 \
--robot.id=blue \
--robot.side=rightKalibrasyon betiği çalıştırıldığında, bir kalibrasyon GUI'si açılır. Parmak eklemleri aşağıdaki gibi adlandırılır:
Daum:
- CMC: başparmağı el ile birleştiren temel eklem
- MCP: el bileği eklemi
- PIP: ilk parmak eklemi
- DIP : parmak ucu eklemi
İşaret, orta, yüzük ve serçe parmakları:
- Radial fleksör: Parmak tabanını başparmağa doğru hareket ettirir
- Ulnar fleksör: Parmak tabanını serçe parmağa doğru hareket ettirir
- PIP/DIP: Parmak distal ve proksimal falanksını bükme
Her biri, GUI üzerinden ayrı ayrı kalibre edilmelidir. Simetrik hareket elde edilebilmesi için ulnar ve radial fleksörlerin aynı büyüklükte (fakat farklı ofsetlere sahip) aralıklara sahip olması gerektiğini unutmayın.

Yukarıda gösterildiği gibi, her eklem için aralık sınırlarını ayarlamak üzere kalibrasyon arayüzünü kullanın.

Tüm eklemeler için uygun sınırları ayarladıktan sonra, kalibrasyon değerlerini motorlara kaydetmek için “Save” düğmesine tıklayın.
1.2 Teleoperatör Eldivenini Kalibre Et
lerobot-calibrate \
--teleop.type=homunculus_glove \
--teleop.port=/dev/tty.usbmodem11201 \
--teleop.id=red \
--teleop.side=rightHer parmağı başparmağınla başlayarak tam hareket aralığında hareket ettir.
Move thumb through its entire range of motion.
Recording positions. Press ENTER to stop...
-------------------------------------------
NAME | MIN | POS | MAX
thumb_cmc | 1790 | 1831 | 1853
thumb_mcp | 1497 | 1514 | 1528
thumb_pip | 1466 | 1496 | 1515
thumb_dip | 1463 | 1484 | 1514Her parmakla devam edin:
Move middle through its entire range of motion.
Recording positions. Press ENTER to stop...
-------------------------------------------
NAME | MIN | POS | MAX
middle_mcp_abduction | 1598 | 1718 | 1820
middle_mcp_flexion | 1512 | 1658 | 2136
middle_dip | 1484 | 1500 | 1547Kalibrasyon tamamlandığında, sistem kalibrasyonu /Users/your_username/.cache/huggingface/lerobot/calibration/teleoperators/homunculus_glove/red.json konumuna kaydeder.
1.3 Robot Kolunu Kalibre Et
lerobot-calibrate \
--robot.type=hope_jr_arm \
--robot.port=/dev/tty.usbserial-1110 \
--robot.id=whiteBu, her motor için aralık sınırlarını ayarlayabileceğiniz bir kalibrasyon arayüzünü açar. Kol hareketleri şu şekilde düzenlenmiştir:
- Omuz: pitch, yaw ve roll
- Diz: bük
- Bilek: pitch, yaw ve roll

Kalibrasyon arayüzünü kullanarak her eklem için aralık sınırlarını ayarlayın. Her eklemi tam hareket aralığı boyunca hareket ettirin ve minimum ile maksimum değerleri buna göre ayarlayın. Tüm eklemler için uygun sınırları belirledikten sonra kalibrasyonu kaydedin.
1.4 Teleoperatör Ekzoskeleti Kalibre Et
lerobot-calibrate \
--teleop.type=homunculus_arm \
--teleop.port=/dev/tty.usbmodem11201 \
--teleop.id=blackEkziskelet, robot kolunun kontrol edilmesini sağlar. Kalibrasyon sırasında, tüm eklem hareket açıklıklarının tamamı boyunca hareket etmeniz istenecektir:
Move all joints through their entire range of motion.
Recording positions. Press ENTER to stop...
-------------------------------------------
-------------------------------------------
NAME | MIN | POS | MAX
shoulder_pitch | 586 | 736 | 895
shoulder_yaw | 1257 | 1374 | 1390
shoulder_roll | 449 | 1034 | 2564
elbow_flex | 3023 | 3117 | 3134
wrist_roll | 3073 | 3096 | 3147
wrist_yaw | 2143 | 2171 | 2185
wrist_pitch | 1975 | 1993 | 2074
Calibration saved to /Users/your_username/.cache/huggingface/lerobot/calibration/teleoperators/homunculus_arm/black.jsonAdım 2: Teleoperasyon
Feetech ara yazılımındaki global değişken çakışmaları nedeniyle, kol ve el için teleoperasyon ayrı kabuk oturumlarında çalıştırılmalıdır:
El
lerobot-teleoperate \
--robot.type=hope_jr_hand \
--robot.port=/dev/tty.usbmodem58760432281 \
--robot.id=blue \
--robot.side=right \
--teleop.type=homunculus_glove \
--teleop.port=/dev/tty.usbmodem11201 \
--teleop.id=red \
--teleop.side=right \
--display_data=true \
--fps=30Arm
lerobot-teleoperate \
--robot.type=hope_jr_arm \
--robot.port=/dev/tty.usbserial-1110 \
--robot.id=white \
--teleop.type=homunculus_arm \
--teleop.port=/dev/tty.usbmodem11201 \
--teleop.id=black \
--display_data=true \
--fps=30Adım 3: Kaydet, Tekrar Oynat, Eğit
Kaydet, Tekrar Oynat ve Hope-JR ile Eğit hâlâ deneyseldir.
Kayıt
Bu adım, burada görülebilecek bir örnek olarak veri setini kaydeder.
lerobot-record \
--robot.type=hope_jr_hand \
--robot.port=/dev/tty.usbmodem58760432281 \
--robot.id=right \
--robot.side=right \
--robot.cameras='{"main": {"type": "opencv", "index_or_path": 0, "width": 640, "height": 480, "fps": 30}}' \
--teleop.type=homunculus_glove \
--teleop.port=/dev/tty.usbmodem1201 \
--teleop.id=right \
--teleop.side=right \
--dataset.repo_id=<USER>/hand_record_test_with_video_data \
--dataset.single_task="Hand recording test with video data" \
--dataset.num_episodes=1 \
--dataset.episode_time_s=5 \
--dataset.push_to_hub=true \
--dataset.private=true \
--dataset.streaming_encoding=true \
--dataset.encoder_threads=2 \
--display_data=true
# Optional: --dataset.rgb_encoder.vcodec=autoYeniden Oynat
lerobot-replay \
--robot.type=hope_jr_hand \
--robot.port=/dev/tty.usbmodem58760432281 \
--robot.id=right \
--robot.side=right \
--dataset.repo_id=<USER>/hand_record_test_with_camera \
--dataset.episode=0Eğit
lerobot-train \
--dataset.repo_id=<USER>/hand_record_test_with_video_data \
--policy.type=act \
--output_dir=outputs/train/hopejr_hand \
--job_name=hopejr \
--policy.device=mps \
--trackio.enable=true \
--policy.repo_id=<USER>/hand_test_policyDeğerlendir
lerobot-record \
--robot.type=hope_jr_hand \
--robot.port=/dev/tty.usbmodem58760432281 \
--robot.id=right \
--robot.side=right \
--robot.cameras='{"main": {"type": "opencv", "index_or_path": 0, "width": 640, "height": 480, "fps": 30}}' \
--display_data=false \
--dataset.repo_id=<USER>/eval_hopejr \
--dataset.single_task="Evaluate hopejr hand policy" \
--dataset.num_episodes=10 \
--dataset.streaming_encoding=true \
--dataset.encoder_threads=2 \
--policy.path=outputs/train/hopejr_hand/checkpoints/last/pretrained_model
# Optional: --dataset.rgb_encoder.vcodec=auto