LeRobot documentation

HopeJR

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.7.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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=right

Kalibrasyon 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.

Setting boundaries in the hand calibration GUI

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

Saving calibration values

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=right

Her 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 |   1514

Her 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 |   1547

Kalibrasyon 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=white

Bu, 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

Setting boundaries in the arm calibration GUI

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=black

Ekziskelet, 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.json

Adı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=30

Arm

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=30

Adı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=auto

Yeniden 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=0

Eğ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_policy

Değ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
Update on GitHub