LeRobot documentation

reBot B601

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

reBot B601

reBot B601, Seeed Studio'nun taklit öğrenme ve somut yapay zeka için geliştirdiği açık kaynaklı bir robot koldur. Kurulum, teleoperasyon için 6-DOF takipçi kol, bir kavrama mekanizması ve reBot Arm 102 lider kolu içerir.

Follower, Damiao (DM) veya RobStride (RS) motorlarıyla kullanılabilir. Her iki yapı da aynı LeRobot robot türünü ve eklem adlarını kullanır; donanımı --robot.motor_family ile seçin.

Derlemotor_familyMotorlarVarsayılan bağlantı
B601-DMdmDamiao (4340P taban, 4310 bilek)Damiao seri köprü
B601-RSrsRobStride (rs-06 taban, rs-00 bilekler)Yerel CAN

Bu kılavuz, tek kollu ve iki kollu kurulumlar için donanım kurulumu, kalibrasyon, teleoperasyon ve kayıt işlemlerini kapsar.

reBot B601 follower arm reBot Arm 102 leader arm

B601 takipçi (sol) ve reBot Arm 102 lider (sağ). DM ve RS takipçileri aynı eklem düzenini ve genel görünümü paylaşır ancak farklı motorlar kullanır. Görseller Seeed Studio tarafından sağlanmıştır.

Donanım ve güvenlik

Takipçiniz için Seeed Studio rehberini kullanarak motorları birleştirin, kablolarını çekin ve yapılandırın: B601-DM veya B601-RS.

Secure the follower to a stable surface and keep its workspace clear. Support the arm whenever torque is disabled or the program disconnects because it can move under gravity. If power or a data cable disconnects during operation, stop the program, return the leader and follower to their zero positions, then reconnect and restart.

LeRobot 🤗'u Yükle

Yükleme Kılavuzu'nu izleyin, ardından reBot desteğini yükleyin:

pip install -e ".[rebot]"

Bu, takipçi için motorbridge ve reBot Arm 102 lideri için motorbridge-smart-servo paketlerini yükler.

Donanımı bağlayın

DM varsayılan olarak seri köprüsünü kullanır ve isteğe bağlı olarak yerel CAN kullanabilir. RS yerel CAN gerektirir.

can_adapterKullanÖrnek port
damiaoDamiao seri köprü; yalnızca DM/dev/ttyACM0
socketcanMotorBridge yerel CAN; RS için zorunludurcan0

Motor ailesi varsayılan adaptörü seçer. Bunun yerine DM'yi yerel CAN üzerinden çalıştırmak için --robot.can_adapter=socketcan ekleyin ve CAN kanalını --robot.port olarak kullanın.

Seri köprü

DM seri köprüsü ve lider portlarını belirlemek için lerobot-find-port kullanın. Adları ayırt etmesi zor ise seri cihazları birer birer bağlayın.

lerobot-find-port
On Linux, remove `brltty` (`sudo apt remove brltty`) if it captures a serial device. You may also need temporary access with `sudo chmod 666 /dev/ttyACM* /dev/ttyUSB*`.

Yerel CAN

socketcan yapılandırma adı tüm platformlarda korunur. Linux, SocketCAN kullanır. macOS, uyumlu bir PCAN adaptörü ve MacCAN PCBUSB çalışma zamanını gerektirir. Windows yerel-CAN desteği deneyseldir ve bir PEAK PCAN adaptörü ile PCAN-Basic gerektirir. Kurulum ayrıntıları için MotorBridge platform kurulumuna bakın.

Linux'ta, bir RS takipçisi bağlamadan önce her yerel CAN arayüzünü 1 Mbps olarak yapılandırın:

sudo ip link set can0 down
sudo ip link set can0 type can bitrate 1000000
sudo ip link set can0 up
ip -details link show can0

can0 değerini, CAN arka ucunuzun sağladığı kanal ile değiştirin. İki kollu yerel CAN kurulumları, her iki kolun da aynı motor kimliklerini kullandığı için can0 ve can1 gibi ayrı kanallara ihtiyaç duyar.

Cihaz türleri

TürCihaz
rebot_b601_followerTek takipçi
bi_rebot_b601_followerİki ellilik takipçi
rebot_102_leaderTek reBot Arm 102 lider
bi_rebot_102_leaderBimanual reBot Arm 102 lider

motor_family varsayılan olarak dm'dir. İki kollu bir yapılandırmada, her kolun kendi left_arm_config.* veya right_arm_config.* ayarları vardır ve motor ailesini bağımsız olarak seçebilir.

Kalibrasyon

Calibration, mevcut fiziksel pozisyonu motorun sıfır konumu olarak ayarlar ve bir LeRobot kalibrasyon dosyası kaydeder. Her kolu, aşağıda gösterilen sıfır konumuna, kavrayıcı tamamen kapalıyken yerleştirin ve istendiğinde ENTER tuşuna basın.

reBot B601 follower arm at its zero position reBot Arm 102 leader arm at its zero position

Takipçi sıfır konumu (sol) ve lider sıfır konumu (sağ). Görselde DM takipçisi gösterilmektedir; RS takipçisi aynı eklem düzenini kullanır.

LeRobot'ın kaydedilen kalibrasyonu yüklemesi için sonraki komutlarda aynı --robot.id ve --teleop.id değerlerini yeniden kullanın. Zaten bir kalibrasyon varsa, komut bunu yeniden kullanmanıza veya yeniden kalibre etmek için c girmenize olanak tanır.

Takipçi

Tek kolu (DM)
Tek kolu (RS)
Çift kollu (DM)
lerobot-calibrate \
    --robot.type=rebot_b601_follower \
    --robot.motor_family=dm \
    --robot.port=/dev/ttyACM0 \
    --robot.id=follower

Lider

Tek kol
İki kollu
lerobot-calibrate \
    --teleop.type=rebot_102_leader \
    --teleop.port=/dev/ttyUSB0 \
    --teleop.id=leader

Teleoperasyon

Küçük hareketlerle başlayın ve tam çalışma alanını kullanmadan önce her eklem yönünü doğrulayın.

Tek kolu (DM)
Tek kolu (RS)
Çift kollu (DM)
lerobot-teleoperate \
    --robot.type=rebot_b601_follower \
    --robot.motor_family=dm \
    --robot.port=/dev/ttyACM0 \
    --robot.id=follower \
    --teleop.type=rebot_102_leader \
    --teleop.port=/dev/ttyUSB0 \
    --teleop.id=leader

Bir veri seti kaydet

Kayıt yapmadan önce teleoperasyonu test edin. Bir kamera eklemek için, önce onu şununla belirleyin:

lerobot-find-cameras opencv

Tek kol

Bu örnek, tek bir OpenCV kamerasıyla beş DM bölümünü yerel olarak kaydeder:

lerobot-record \
    --robot.type=rebot_b601_follower \
    --robot.motor_family=dm \
    --robot.port=/dev/ttyACM0 \
    --robot.id=follower \
    --robot.cameras='{"front": {"type": "opencv", "index_or_path": 0, "width": 640, "height": 480, "fps": 30}}' \
    --teleop.type=rebot_102_leader \
    --teleop.port=/dev/ttyUSB0 \
    --teleop.id=leader \
    --dataset.repo_id=your_username/rebot-dm-test \
    --dataset.single_task="Pick up the object" \
    --dataset.num_episodes=5 \
    --dataset.episode_time_s=30 \
    --dataset.reset_time_s=10 \
    --dataset.push_to_hub=false \
    --display_data=true

RS için motor_family değerini rs olarak değiştirin ve robot portunu yerel CAN kanalına ayarlayın. Sadece motor testi için kamera argümanını kaldırın.

İki Ellilik

Bu DM örneği, paylaşılan bir üst kamera ve her kol için bir bilek kamerası kaydeder. Veri seti kamera anahtarları top, left_wrist ve right_wrist'dir.

lerobot-record \
    --robot.type=bi_rebot_b601_follower \
    --robot.id=bi_follower \
    --robot.left_arm_config.motor_family=dm \
    --robot.left_arm_config.port=/dev/ttyACM0 \
    --robot.right_arm_config.motor_family=dm \
    --robot.right_arm_config.port=/dev/ttyACM1 \
    --robot.cameras='{
      top: {
        type: opencv,
        index_or_path: "/dev/video2",
        width: 640,
        height: 480,
        fps: 30,
        fourcc: "MJPG"
      }
    }' \
    --robot.left_arm_config.cameras='{
      wrist: {
        type: opencv,
        index_or_path: "/dev/video0",
        width: 640,
        height: 480,
        fps: 30,
        fourcc: "MJPG"
      }
    }' \
    --robot.right_arm_config.cameras='{
      wrist: {
        type: opencv,
        index_or_path: "/dev/video4",
        width: 640,
        height: 480,
        fps: 30,
        fourcc: "MJPG"
      }
    }' \
    --teleop.type=bi_rebot_102_leader \
    --teleop.id=bi_leader \
    --teleop.left_arm_config.port=/dev/ttyUSB0 \
    --teleop.right_arm_config.port=/dev/ttyUSB1 \
    --dataset.repo_id=local/rebot-bimanual-dm-camera-test \
    --dataset.root=/tmp/rebot-bimanual-dm-camera-test \
    --dataset.single_task="Test coordinated movement of both reBot DM arms" \
    --dataset.fps=30 \
    --dataset.num_episodes=2 \
    --dataset.episode_time_s=20 \
    --dataset.reset_time_s=10 \
    --dataset.push_to_hub=false \
    --display_data=false

İki kollu bir RS kurulumu için her iki motor ailesini de rs olarak ayarlayın ve ayrı yerel CAN kanalları kullanın. Karışık bir kurulumda bir kol için dm, diğer kol için rs seçilebilir.

Bir politika yüklemek, yeniden oynatmak, eğitmek ve değerlendirmek için Robotlar için İmitasyon Öğrenimi sayfasına bakın.

Gelişmiş kontroller

Her iki derleme de aynı eklem adlarını ve derece cinsinden kamuya açık konumları sunar. LeRobot, her ailenin motor yön işaretlerini eylemlere ve gözlemlere uygular; bu nedenle politikalar ve teleoperatörler motor işaretlerini dönüştürmek zorunda değildir.

  • DM, kol için varsayılan olarak MIT kontrolünü ve kavrayıcı için force_pos kullanır. gripper_torque_ratio varsayılan değeri 0.07'dir; DM ayrıca --robot.control_mode=pos_vel seçeneğini de destekler.
  • RS, MotorBridge'in RobStride için force_pos sağlamaması nedeniyle MIT kontrolü ve kuvvet sınırlı empedans kavrayıcı kullanır. Ölçülen kavrayıcı hareketine bağlı olarak, komut verilen tork hareket sırasında 3.5 N·m, tutma sırasında ise 1.0 N·m ile sınırlandırılır. Geri besleme başarısız olursa LeRobot, sıfır kavrayıcı torku komut etmeye çalışır ve ardından kolu devre dışı bırakır.
  • mit_kp, mit_kd ve pos_vel_velocity parametreleri, her eklem için tek bir skaler değer ya da eklem anahtarlı bir eşleme kabul eder.
  • max_relative_target, bir komut ile en son ölçülen konum arasındaki farkı sınırlar. Örneğin, --robot.max_relative_target=5.0 her komut verilen eklemi beş derecelik bir değişimle sınırlar.
  • joint_limits, halka açık eklem derecelerinde aile varsayılanlarını isteğe bağlı olarak geçersiz kılar.

Follower motor yönleri, motor ailesinden içsel olarak seçilir. Teleoperasyon eklemi yanlış yönde hareket ederse, liderin joint_directions ayarlanabilir kalır.

DM and RS use the same coordinate convention, but their geometry, gains, and dynamics differ. Validate policies and datasets before transferring them between builds.

Sorun Giderme

SorunKontrol
Seri cihaz eksik veya meşgulBir cihazı bir kez yeniden bağlayın, lerobot-find-port komutunu yeniden çalıştırın, izinleri kontrol edin ve Linux'ta brltty paketini kaldırın.
Yerel CAN bağlantı kuramıyorAdaptör çalışma süresini, kanal adını, 1 Mbps bit hızını, motor gücünü, CAN kablolamasını ve sonlandırmayı kontrol edin.
Teleoperatörlü bir eklem yanlış yönde hareket ediyorProgramı durdurun, motor_family değerini doğrulayın ve liderin joint_directions ayarlarını kontrol edin.
Kalibrasyon yeniden kullanılmazKalibrasyon sırasında kullanılan aynı robot veya teleoperatör id'sini kullanın.

Montaj, kablolama ve donanıma özgü tanılamalar için B601-DM ve B601-RS için Seeed Studio kılavuzlarına bakın.

Update on GitHub