LeRobot documentation

LeKiwi

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

LeKiwi

LeKiwi

Aşağıdaki adımlarda, LeKiwi mobil robotunun nasıl monte edileceğini açıklıyoruz.

Parçaları temin edin

Bu README dosyasını izleyin. Parçaların temin edileceği bağlantıyı içeren malzeme listesini ve parçaların 3D baskı talimatlarını içerir. Ayrıca, ilk kez baskı yapıyorsanız veya bir 3D yazıcınız yoksa size öneriler sunar.

Kablolu sürüm

wired LeKiwi sürümüne sahipseniz, Raspberry Pi kurulumunu ve SSH yapılandırmasını atlayabilirsiniz. Hem teleoperasyon için LeKiwi betikleri hem de lider kol betikleri için tüm komutları doğrudan bilgisayarınızda çalıştırabilirsiniz.

Pi üzerinde yazılım kurma

Şimdi LeKiwi Robot üzerinde çalışacak uzak PC'yi yapılandırmamız gerekiyor. Bu genellikle bir Raspberry Pi'dir, ancak kameralar ve motor kontrol kartı için yeterli sayıda USB portuna (2 veya daha fazla) sahip ve 5V ile çalışabilen herhangi bir PC olabilir.

İşletim sistemini yükle

Raspberry Pi ve SD kartının kurulumu için bkz: Setup PI. Burada, Raspberry Pi OS veya Ubuntu kurmak için Imager'ın nasıl indirileceği açıklanmaktadır.

SSH Kurulumu

Pi'nizi kurduktan sonra, Pi'de ekran, klavye ve fare gerektirmeden laptopunuzdan Pi'ye giriş yapabilmek için SSH (Secure Shell Protocol) özelliğini etkinleştirmeli ve yapılandırmalısınız. Bunu nasıl yapacağınızı gösteren harika bir eğitim burada bulunabilir. Pi'nize giriş yapmak için Komut İstemi'ni (cmd) kullanabilir veya VSCode kullanıyorsanız bu eklentisini kullanabilirsiniz.

Pi üzerinde LeRobot'ı kurun 🤗

Raspberry Pi'nizde Yükleme Kılavuzu'muzu kullanarak LeRobot'u yükleyin

Bu talimatların yanı sıra, Pi'nizde Feetech motor desteği & ZeroMQ'yi de kurmanız gerekir:

pip install -e ".[lekiwi]"

LeRobot'u yerel olarak kurun

Laptop/PC'nizde LeRobot zaten yüklüyse bu adımı atlayabilirsiniz; aksi takdirde, Pi üzerinde yaptığımız adımları takip edin.

Kurulum Kılavuzumuzu izleyin

Bu talimatların yanı sıra, dizüstü bilgisayarınızda/masaüstü bilgisayarınızda Feetech motor desteği & ZeroMQ'yi de yüklemeniz gerekir:

pip install -e ".[lekiwi]"

Harika 🤗! LeRobot kurulumu tamamlandı ve SO100/SO101 kolları ile mobil tabanı birleştirmeye başlayabiliriz 🤖. Artık LeRobot'u kullanmak istediğinizde, LeRobot'u kurduğumuz ~/lerobot klasörüne gidip komutlardan birini çalıştırabilirsiniz.

Adım Adım Montaj Talimatları

Öncelikle iki SO100/SO101 kolunu monte edeceğiz. Biri mobil tabana bağlanacak, diğeri teleoperasyon için kullanılacak. Ardından mobil tabanı monte edeceğiz. Montaj talimatları şu iki sayfada bulunabilir:

Motor kartıyla ilişkili USB portlarını bulun

Her bus servo adaptörü için portu bulmak için bu betiği çalıştırın:

lerobot-find-port
Mac
Linux

Örnek çıktı:

Finding all available ports for the MotorBus.
['/dev/tty.usbmodem575E0032081']
Remove the USB cable from your MotorsBus and press Enter when done.

[...Disconnect corresponding leader or follower arm and press Enter...]

The port of this MotorsBus is /dev/tty.usbmodem575E0032081
Reconnect the USB cable.

Bulunan port: /dev/tty.usbmodem575E0032081, bu port sizin kartınıza karşılık gelmektedir.

Motorları yapılandır

Motorların yapılandırılmasına ilişkin talimatlar SO101 belgelerinde bulunabilir. Kol motorlarının kimlik numaralarının yanı sıra, mobil taban için motor kimlik numaralarını da ayarlamamız gerekir. Çalışabilmeleri için bunların belirli bir sırayda olması gerekir. Aşağıda mobil taban için motor kimlik numaraları ve motor montaj konumlarının bir görseli yer almaktadır. LeKiwi'de yalnızca bir Motor Kontrol kartı kullandığımızı unutmayın. Bu, tekerlekler için motor kimlik numaralarının 7, 8 ve 9 olduğu anlamına gelir.

LeKiwi için motorları yapılandırmak için bu komutu çalıştırabilirsiniz. Komut, önce kol motorlarını (id 6..1), ardından tekerlek motorlarını (9,8,7) yapılandırır.

lerobot-setup-motors \
    --robot.type=lekiwi \
    --robot.port=/dev/tty.usbmodem58760431551 # <- paste here the port found at previous step
Motor ID's for mobile robot

İletişim sorunlarını giderme

LeKiwi'ye bağlanırken sorun yaşıyorsanız, sorunu teşhis etmek ve çözmek için bu adımları izleyin.

1. IP Adresi Yapılandırmasını Doğrulayın

Komutlarda veya kodunuzda Pi için doğru IP adresinin kullanıldığından emin olun. Raspberry Pi'nin IP adresini kontrol etmek için (Pi komut satırında) şunu çalıştırın:

hostname -I

2. Pi'nin laptop/pc'den erişilebilir olup olmadığını kontrol edin

Laptopunuzdan Raspberry Pi'ye ping göndermeyi deneyin:

ping <your_pi_ip_address>

Ping başarısız olursa:

  • Pi'nin açıldığından ve aynı ağa bağlı olduğundan emin olun.
  • Pi üzerinde SSH'nin etkin olup olmadığını kontrol edin.

3. SSH bağlantısını deneyin

Pi'ye SSH ile bağlanamıyorsanız, doğru şekilde bağlı olmayabilir. Şunu kullanın:

ssh <your_pi_user_name>@<your_pi_ip_address>

Bağlantı hatası alırsanız:

  • Pi üzerinde SSH'nin etkin olduğundan emin olmak için şunu çalıştırın:
    sudo raspi-config
    Ardından şu yola gidin: Interfacing Options -> SSH ve etkinleştirin.

Kalibrasyon

Şimdi lider kolu ve takipçi kolu kalibre etmemiz gerekiyor. Tekerlek motorlarının kalibre edilmesine gerek yoktur. Kalibrasyon süreci, bir robot üzerinde eğitilen sinir ağının başka bir robot üzerinde çalışabilmesini sağladığı için çok önemlidir.

Takipçi kolu kalibre edin (mobil taban üzerinde)

Kolu Raspberry Pi'ye bağlı olduğundan emin olun ve takipçi kolun kalibrasyonunu başlatmak için bu betiği veya API örneğini (Raspberry Pi üzerinden SSH ile) çalıştırın:

lerobot-calibrate \
    --robot.type=lekiwi \
    --robot.id=my_awesome_kiwi # <- Give the robot a unique name

Çoğu robot için kalibrasyon yöntemini birleştirdik; bu nedenle LeKiwi kolunun kalibrasyon adımları, Koch ve SO101'in adımlarıyla aynıdır. Öncelikle robotu, her eklem aralığının ortasında olacak şekilde konumlandırmalı ve ardından Enter tuşuna basmalıyız. İkinci olarak, tüm eklemleri tam hareket aralıkları boyunca hareket ettirmeliyiz. Bu aynı sürecin SO101 için referans olarak çekilmiş videosuna buradan ulaşabilirsiniz.

Kablolu sürüm

wired LeKiwi sürümüne sahipseniz, lütfen tüm komutları dizüstü bilgisayarınızda çalıştırın.

Lider kolu kalibre et

Ardından, lider kolu (laptop/pc'ye bağlı olan) kalibre etmek için laptopunuzda API örneğindeki aşağıdaki komutu çalıştırın:

Komut
API örneği
# Use the port of your leader arm, and give the arm a unique name with --teleop.id
lerobot-calibrate \
    --teleop.type=so100_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \
    --teleop.id=my_awesome_leader_arm

LeKiwi'yi teleoperate edin

Mac kullanıyorsanız, teleoperation için Terminal'in klavyenize erişmesine izin vermeniz gerekebilir. Sistem Tercihleri > Güvenlik ve Gizlilik > Girdi İzleme bölümüne gidin ve Terminal için kutuyu işaretleyin.

Teleoperasyon yapmak için Raspberry Pi'nize SSH ile bağlanın ve conda activate lerobot ile bu komutu çalıştırın:

python -m lerobot.robots.lekiwi.lekiwi_host --robot.id=my_awesome_kiwi

Host, --host.connection_time_s saniyesinden (varsayılan olarak 30) sonra durur. Bir veri seti kaydetme gibi daha uzun oturumlar için bu değeri artırın, örneğin --host.connection_time_s=600.

Ardından dizüstü bilgisayarınızda da conda activate lerobot komutunu çalıştırın ve API örneğini çalıştırın; examples/lekiwi/teleoperate.py dosyasında doğru remote_ip ve port değerlerini ayarladığınızdan emin olun.

python examples/lekiwi/teleoperate.py

Şimdi lider kolu hareket ettirebilir ve klavyeyi (w,a,s,d) kullanarak ileri, sola, geri ve sağa gidebilirsiniz. (z,x) tuşlarını kullanarak sola veya sağa dönebilirsiniz. Mobil robotun hızını artırmak ve azaltmak için (r,f) tuşlarını kullanabilirsiniz. Üç hız modu vardır, aşağıdaki tabloya bakın:

Hız ModuDoğrusal Hız (m/s)Dönme Hızı (deg/s)
Hızlı0.390
Orta0.260
Yavaş0.130
AnahtarEylem
Wİleri git
ASola taşı
SGeriye git
DSağa taşı
ZSola dön
XSağa dön
RHız artışı
FHızı azalt

Farklı bir klavye kullanıyorsanız, her komut için tuşları LeKiwiClientConfig içinde değiştirebilirsiniz.

Kablolu sürüm

wired LeKiwi sürümüne sahipseniz, lütfen tüm komutları dizüstü bilgisayarınızda çalıştırın.

Bir veri seti kaydet

Teleoperasyona alıştığınızda, ilk veri setinizi kaydedebilirsiniz.

Veri setinizi yüklemek için Hugging Face hub özelliklerini kullanıyoruz. Daha önce Hub kullanmadıysanız, yazma erişimine sahip bir token ile cli üzerinden giriş yapabildiğinizden emin olun; bu token Hugging Face ayarlarından oluşturulabilir.

Bu komutu çalıştırarak token'ınızı CLI'ye ekleyin:

hf auth login --token ${HUGGINGFACE_TOKEN} --add-to-git-credential

Ardından Hugging Face deposu adınızı bir değişkene kaydedin:

HF_USER=$(hf auth whoami --quiet)
echo $HF_USER

Şimdi bir veri seti kaydedebilirsiniz. Epizotları kaydetmek ve veri setinizi hub'a yüklemek için, LeKiwi için uyarlanmış bu API örneğini çalıştırın. Önce betikte remote_ip, HF_REPO_ID, lider kol port ve TASK_DESCRIPTION değerlerini uyarlamayı unutmayın. Daha fazla veya daha uzun epizot kaydetmek için NUM_EPISODES, EPISODE_TIME_SEC ve RESET_TIME_SEC değerlerini değiştirin ve host'u, tüm oturumu kapsayan bir --host.connection_time_s değeriyle başlatın.

python examples/lekiwi/record.py

Veri seti yükleme

Yerel olarak veri setiniz bu klasörde saklanır: ~/.cache/huggingface/lerobot/{repo-id}. Veri kaydının sonunda, veri setiniz betikte belirlediğiniz HF_REPO_ID altında Hugging Face sayfanıza yüklenecektir (ör. https://huggingface.co/datasets/${HF_USER}/lekiwi_test). Bunu şu komutu çalıştırarak elde edebilirsiniz:

echo https://huggingface.co/datasets/${HF_USER}/lekiwi_test

Veri setiniz, topluluğun kolayca bulabilmesi için otomatik olarak LeRobot etiketiyle işaretlenir; ayrıca özel etiketler de ekleyebilirsiniz (örneğin bu durumda tutorial).

Hub'da LeRobot etiketlerini aratarak diğer LeRobot veri setlerini bulabilirsiniz.

Veri toplama ipuçları

Veri kaydı konusunda kendinizi rahat hissettiğinizde, eğitim için daha büyük bir veri seti oluşturabilirsiniz. İyi bir başlangıç görevi, bir nesneyi farklı konumlardan kavrayıp bir kutuya yerleştirmektir. En az 50 bölüm kaydetmenizi, her konum için 10 bölüm olacak şekilde öneriyoruz. Kameraları sabit tutun ve kayıtlar boyunca tutarlı bir kavrama davranışı sergileyin. Ayrıca manipüle ettiğiniz nesnenin kameralarda görünür olduğundan emin olun. İyi bir kural, yalnızca kamera görüntülerine bakarak bu görevi kendinizin yapabileceğidir.

Aşağıdaki bölümlerde sinir ağınızı eğiteceksiniz. Güvenilir kavrama performansına ulaştıktan sonra, veri toplama sırasında daha fazla çeşitlilik eklemeye başlayabilirsiniz; örneğin ek kavrama konumları, farklı kavrama teknikleri ve kamera konumlarını değiştirme.

Sonuçlarınızı olumsuz etkileyebileceğinden, çok fazla çeşitliliği çok hızlı eklemekten kaçının.

Bu önemli konuya daha derinlemesine inmek isterseniz, iyi bir veri setini neyin oluşturduğuna dair yazdığımız blog yazısını inceleyebilirsiniz.

Sorun Giderme:

  • Linux'ta, kayıt akış kontrol tuşları (ok tuşları, Escape), kaydı etkileşimli bir terminalden (odaklı tutarak) çalıştırdığınız sürece X11, Wayland ve headless/SSH oturumlarında çalışır; $DISPLAY yapılandırmasına gerek yoktur; harf karşılıkları olan n / r / q da çalışır. LeKiwi tabanının klavye ile teleoperasyonunun farklı olduğunu unutmayın: küresel bir tuş arka ucuna (key backend) dayanır ve bu nedenle yalnızca X11 oturumunda, Windows masaüstünde veya Erişilebilirlik/Giriş İzleme yetkileri verilmiş macOS'ta çalışır — Wayland veya headless makinelerde çalışmaz. pynput kısıtlamalarına bakın.

Bir bölümü yeniden oynat

Bir bölümü yeniden oynatmak için aşağıdaki API örneğini çalıştırın; remote_ip, port, LeRobotDatasetId ve bölüm dizinini değiştirdiğinizden emin olun.

python examples/lekiwi/replay.py

Tebrikler 🎉, robotunuz kendi başına bir görev öğrenmeye hazır. Bu öğreticinin eğitim bölümünden eğitimini başlatın: Gerçek dünya robotlarıyla başlangıç

Politikanızı değerlendirin

Politikanızı değerlendirmek için evaluate.py API örneğini çalıştırın; remote_ip, port, model.. değerlerini değiştirdiğinizden emin olun.

python examples/lekiwi/evaluate.py

Herhangi bir sorunuz varsa veya yardıma ihtiyacınız varsa, lütfen Discord üzerinden bize ulaşın.

Update on GitHub