LeRobot documentation
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
Ö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.
Linux'ta, USB portlarına erişim vermek için şunu çalıştırmanız gerekebilir:
sudo chmod 666 /dev/ttyACM0
sudo chmod 666 /dev/ttyACM1Örnek çıktı:
Finding all available ports for the MotorBus.
['/dev/ttyACM0']
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/ttyACM0
Reconnect the USB cable.Bulunan port: /dev/ttyACM0, bu da 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
İ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: Ardından şu yola gidin: Interfacing Options -> SSH ve etkinleştirin.
sudo raspi-config
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:
# 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_armfrom lerobot.teleoperators.so_leader import SO100LeaderConfig, SO100Leader
config = SO100LeaderConfig(
port="/dev/tty.usbmodem58760431551",
id="my_awesome_leader_arm",
)
leader = SO100Leader(config)
leader.connect(calibrate=False)
leader.calibrate()
leader.disconnect()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 Modu | Doğrusal Hız (m/s) | Dönme Hızı (deg/s) |
|---|---|---|
| Hızlı | 0.3 | 90 |
| Orta | 0.2 | 60 |
| Yavaş | 0.1 | 30 |
| Anahtar | Eylem |
|---|---|
| W | İleri git |
| A | Sola taşı |
| S | Geriye git |
| D | Sağa taşı |
| Z | Sola dön |
| X | Sağa dön |
| R | Hız artışı |
| F | Hızı azalt |
Farklı bir klavye kullanıyorsanız, her komut için tuşları
LeKiwiClientConfigiç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-credentialArdı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_testVeri 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;
$DISPLAYyapılandırmasına gerek yoktur; harf karşılıkları olann/r/qda ç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
Update on GitHubHerhangi bir sorunuz varsa veya yardıma ihtiyacınız varsa, lütfen Discord üzerinden bize ulaşın.