Czy da się zmienić polecenie robota w trakcie ruchu?
LeRobot 0.7 dodaje interaktywne sesje wykonania. Zobacz, jak zmienić polecenie pracującego robota, oddzielić odpowiedź o obrazie od ruchu i przygotować bezpieczniejszy pilotaż.
Robot sortuje piankowe klocki, gdy czerwony pojemnik się zapełnia. Następny klocek jest już w chwytaku. Użyteczny interfejs operatora powinien pozwolić zmienić następny krok, zapytać, co widzi kamera, albo przerwać przebieg. Każda z tych czynności ma inne skutki, gdy chwytak trzyma ciężar.
5 listopada Hugging Face wydał LeRobot 0.7.0, nową wersję otwartego zestawu narzędzi do zbierania demonstracji, trenowania polityk i uruchamiania ich na robotach. Interaktywna sesja utrzymuje połączenie z robotem i załadowaną politykę, gdy operator wydaje nowe polecenia w terminalu. Zgodna polityka lub zewnętrzny moduł planujący mogą też interpretować scenę i wybierać kolejne podzadanie. Wydanie zmienia również strumieniowanie zbiorów, trenowanie i inferencję zdalną. Sterowanie na żywo zasługuje na uwagę, bo zmienia to, co operator może zrobić w trakcie eksperymentu. Ogłoszenie LeRobot · Wydanie v0.7.0
Poniższe przykłady ze stanowiska pomagają zaplanować pilotaż. Rozróżniają to, o co prosisz model, to, co faktycznie wysyła sterownik, i to, co da się później zaobserwować.

Mocowanie kamery nadgarstkowej SO-101 sfotografowane przez The Robot Studio. Zdjęcie pokazuje przykładową pozycję kamery obsługiwaną przez ten sprzęt. Pochodzi z projektu SO-ARM100 na licencji Apache 2.0. Telli.sh przeskalował zdjęcie i dodał margines.
Trzy polecenia odpowiadają trzem różnym zamiarom operatora
Interaktywne polecenia i ich role. Ilustracja Telli.sh.
Rollout to działająca sesja, w której polityka otrzymuje obserwacje i wyznacza działania. Obserwacja może obejmować obrazy z kamery i zmierzone pozycje przegubów. W wersji 0.7 dodanie --interactive=true do skonfigurowanej sesji lerobot-rollout pozostawia połączenie z robotem, wagi polityki i procesory załadowane między poleceniami. Wydanie przedstawia pięć poleceń terminala. Pomiędzy /start i /stop są trzy sposoby sterowania działającą sesją lub zadawania jej pytań. Ogłoszenie LeRobot · Dokumentacja wykonania v0.7.0
| Polecenie terminala | Zamiar operatora | Oczekiwany wynik |
|---|---|---|
/subtask | Zastąp instrukcję dla polityki działania | Następny obserwowany ruch podąża za nowym celem albo operator interweniuje |
/vqa | Zapytaj, co widzi robot | System zwraca odpowiedź, którą operator może porównać ze sceną |
/autosteer | Przekaż cel i pozwól systemowi wybrać podzadania | System wybiera podzadania, a operator może odzyskać kontrolę |
W ogłoszeniu LeRobot wymienia FineART-VLA i Wall-OSS-0.5 jako przykłady polityk generujących tekst potrzebny do odpowiadania i obsługi celu. W przypadku polityki działania, która nie generuje tekstu, tę funkcję może zapewnić zgodny zewnętrzny model wizyjno-językowy. Wydanie opisuje użycie interfejsu zgodnego z OpenAI do planowania, lokalnie lub przez usługę zdalną. Moduł planujący może odpowiadać na pytania o obraz i dostarczać instrukcje polityce. Za przełożenie podzadania na ruchy robota nadal odpowiada polityka działania. Interaktywne sesje i zewnętrzny moduł planujący · Dokumentacja wykonania v0.7.0
Różnicę widać na zastawionym stole. Jeśli kamera nie widzi krawędzi pojemnika, płynna odpowiedź o pojemniku nadal dostarcza słabego dowodu. Gdy moduł planujący poprawnie wybierze niebieski klocek, a chwytak się ześlizgnie, warstwa językowa wykonała swoje zadanie, ale próba fizyczna się nie udała. Oddzielenie pytania, działania polityki i wyniku pomaga ustalić, czy przenieść kamerę, poprawić instrukcję czy zmienić sposób chwytania.
Zmień cel w ramach małego zadania
Weź dwa kolorowe pojemniki, trzy miękkie klocki i jedno obsługiwane ramię. Zacznij od znanej czynności, na przykład podniesienia czerwonego klocka, i wybierz drugi cel, z którym polityka już sobie radziła w podobnych warunkach. W pierwszej próbie zmień instrukcję przed kontaktem z klockiem. Gdy operator potwierdzi zmianę, powtórz próbę od nowego stanu początkowego i wyślij polecenie później w trakcie ruchu. Polecenie podczas ruchu ramienia i polecenie po zamknięciu chwytaka stawiają polityce inne wymagania.
Obserwuj pierwszy ruch w stronę nowego celu i miejsce, w którym ostatecznie znalazł się klocek. Znacznik czasu w nagraniu może pokazać, ile trwała widoczna zmiana kierunku. Czas terminala mówi, kiedy wpisano polecenie. Zapis obu pozwala zinterpretować opóźnienie również wtedy, gdy program przyjął wejście, ale zmiana ruchu była trudna do wykrycia. Ustalony wcześniej warunek zatrzymania zapobiega bezterminowemu czekaniu na poprawkę, która może nie nadejść.
Drugi przykład to uporządkowanie stanowiska po próbie. Zacznij z jednym przedmiotem poza miejscem i zapytaj, co pozostało na stole. Sprawdź widok odsłonięty i częściowo zasłonięty, zanim poprosisz o uprzątnięcie stanowiska. Jeśli odpowiedź zmienia się z kątem kamery, warto przemyśleć ustawienie sceny lub zawęzić cel. Dopóki uczysz się zachowania polityki, zlecaj robotowi jedną znaną czynność naraz.
W trzecim przebiegu przekaż /autosteer cel, na przykład przeniesienie dwóch piankowych klocków na jedną tacę. Zapisz decyzje pośrednie systemu. Może wybrać rozsądny pierwszy przedmiot, a mimo to potrzebować pomocy, gdy drugi jest poza zasięgiem. Przekazanie celu sprawdza się szczególnie wtedy, gdy każde podzadanie da się odnieść do prostej oczekiwanej kolejności. Zapis pokaże, czy moduł planujący wybrał zły krok, czy robot miał kłopot z dobrym krokiem.
Zatrzymanie programu i zatrzymanie maszyny wymagają osobnych prób
Sesja interaktywna pozwala wydawać polecenia osobie obserwującej robota. Może też powstać okres, w którym operator sądzi, że nowa instrukcja już działa, choć widać jeszcze stary ruch. W pilotażu zapisz cztery zdarzenia osobno. Kiedy wysłano instrukcję, kiedy mechanizm wykonawczy ją potwierdził, jeśli dostępny jest ten sygnał, kiedy pierwszy raz zmieniło się obserwowane zachowanie i w jakim stanie robot zakończył próbę. Jeśli potwierdzenia nie ma, zostaw pole puste. Pozostałe trzy dane nadal są przydatne.
Dokumentacja wdrożenia LeRobot dla tej wersji opisuje programowe utrzymanie położenia obsługiwanych robotów w trybie korekty. Odświeża ono ostatnią pozycję docelową zastosowaną przez sterownik. Ramię pod obciążeniem może jeszcze dążyć do tej pozycji, a zachowanie chwytaka trzeba sprawdzić na fizycznej maszynie. Interfejs językowy działa powyżej tego mechanizmu. Zachowaj procedury fizycznego zatrzymania i nadzoru właściwe dla sprzętu. Przed dodaniem zmian na żywo sprawdź ich skutki na wolnym stanowisku. Dokumentacja wykonania v0.7.0
Zapisz moment wysłania zmiany, zmianę ruchu i zakończenie przebiegu. Ilustracja Telli.sh.
To zmienia ocenę pozornie udanej próby. Jeden klocek na właściwej tacy może ukrywać dwa błędne ruchy przerwane przez operatora. Zapisuj częstość interwencji i to, jak często da się wznowić pracę ze stanu pozostawionego po błędzie. Polityka, która kontynuuje po typowym niepowodzeniu, daje operatorowi inne zadanie niż taka, która po każdej pomyłce potrzebuje pełnego resetu. Zmierz różnicę w porównywalnych próbach z tym samym stanowiskiem i przedmiotami.
FineART dodaje kroki pośrednie do danych treningowych
Drugi powód, by przyjrzeć się wydaniu, to sposób przedstawienia demonstracji. Jeśli nagranie pokazuje tylko prawidłowy początek i pomyślny koniec, trudno określić, czego polityka ma się nauczyć na wypadek zmiany instrukcji. Etykiety podzadań przekazują więcej informacji o przejściach, takich jak chwycenie przedmiotu, odłożenie go lub przejście do następnego.
Hugging Face i Scale AI podają ponad 40 000 epizodów dwuramiennych, 1718 godzin i ponad 533 000 adnotacji podzadań dla FineART. Ogłoszenie z 5 listopada określa rozmiar danych w formacie LeRobot na 1,9 TB. FineART-VLA rozwija π0.5 i dodaje głowicę językową, która może przewidzieć podzadanie słowne, zanim część sterująca wykona ruch. Liczby opisują zbiór autorów, a rozdział języka i ruchu opisuje konstrukcję modelu. Inny chwytak, kamera z węższym polem widzenia i przedmioty nieobecne w treningu nadal zmieniają wymagania oceny. Ogłoszenie i opis FineART · Dokumentacja FineART-VLA
Zbierając mały zbiór korekt, zdecyduj, co chcesz potem odtworzyć. Zapisz nową instrukcję, właściwy widok z kamery, stan w chwili zmiany i obserwowany wynik. Etykieta „czerwony pojemnik jest teraz pełny” pełni inną funkcję niż instrukcja „odłóż następny czerwony klocek na pustą tacę”. Pierwsza opisuje stan. Druga mówi polityce, co z nim zrobić. Zachowaj obie, gdy są potrzebne. Zapisuj również niepowodzenia, by przyszłą politykę można było sprawdzić w sytuacji, która skłoniła zespół do zmian.
Pierwszy pilotaż zmieści się na jednym stole
-
Ustal wersję i wybierz obsługiwane połączenie sprzętu i polityki. Zainstaluj LeRobot 0.7.0 zgodnie z instrukcją dla tej wersji. Sprawdź robota, konfigurację kamer i politykę na znanym zadaniu początkowym. Informacje o wydaniu z 5 listopada mówią, że domyślne kompilacje PyTorch dla Linuksa używają CUDA 13 i wymagają sterownika NVIDIA 580.65 lub nowszego. Dla starszych sterowników użyj opisanej alternatywy. Zmianę sterownika i zachowania robota potraktuj jako oddzielne eksperymenty. Dokumentacja instalacji · Wydanie v0.7.0
-
Wykonaj próbę odniesienia przed dodaniem sterowania. Użyj wolnego blatu, ruchu o ograniczonym zakresie i nadzoru odpowiedniego dla ramienia. Zapisz pozycję początkową i cel oraz sprawdź, czy polityka kończy zadanie. Zachowaj tę samą kamerę, oświetlenie i obiekty przy porównaniu przebiegu odniesienia i przebiegu ze zmianą polecenia. Konfiguracja SO-101
-
Dodaj opcję interaktywną do sprawdzonej sesji. Uruchom sesję w terminalu, wydaj jedno podzadanie, zmień je raz i zakończ przebieg. Poniższe polecenia pochodzą z wydania, a treść zadań jest przykładowa. Dokumentacja sesji interaktywnych
Zwykły tekst/start /subtask move the red block to the tray /subtask move the blue block to the tray /stop -
Dodaj pytania o obraz i mały przekazany cel po uzyskaniu powtarzalnego wyniku odniesienia. Wybierz politykę generującą tekst lub skonfiguruj zewnętrzny moduł zgodnie z dokumentacją. Zacznij od pytania, na które możesz odpowiedzieć na podstawie tego samego obrazu. Sprawdź cel o widocznym końcu i zapisz, co dzieje się, gdy moduł planujący nie jest dostępny lub nie daje użytecznego podzadania. Zewnętrzny interfejs może zmienić miejsce przetwarzania obrazu, co jest ważne, gdy kamera widzi coś poza stanowiskiem. Dokumentacja zewnętrznego modułu planującego
-
Porównaj odzyskanie kontroli oraz ukończenie zadania. Powtórz próbę kilka razy w tych samych warunkach i zachowaj każde niepowodzenie. Zapisz, czy operator mógł zauważyć przebieg, właściwie zareagować i potwierdzić stan końcowy. Niewielka liczba prób pomaga dopracować stanowisko. Wiarygodne twierdzenie o niezawodności wymaga znacznie więcej danych z oczekiwanych warunków pracy.
Wersja 0.7.0 zastępuje wcześniejszy asynchroniczny interfejs inferencji serwerem polityki i zdalnym trybem wykonania. Jeśli później przeniesiesz inferencję na serwer GPU, powtórz pomiary czasu i próby przerwania na rzeczywistym połączeniu. Serwer może dostarczyć więcej mocy obliczeniowej, a sieć dodaje zależność między nową obserwacją a kolejnym ruchem. Wolne lub niedostępne połączenie jest oddzielnym przypadkiem testowym. Zmiany niezgodne z wcześniejszym wydaniem v0.7.0 · Dokumentacja inferencji zdalnej
Najciekawsza próba odbywa się w połowie zadania
Ciekawy moment w pokazie robota nadchodzi, gdy przewidziany krok przestaje mieć sens. Pojemnik jest pełny, przedmiot się przesuwa albo operator dostrzega coś, czego kamera nie widzi. Polecenia LeRobot pozwalają uczynić tę chwilę częścią eksperymentu. Pytanie brzmi, czy osoba nadzorująca przebieg rozpozna zmianę, przekieruje następny ruch i potwierdzi wynik własnymi oczami.
Źródła
-
Zdjęcie mocowania kamery SO-101 od The Robot Studio i licencja repozytorium
-
Wydanie LeRobot v0.7.0 na GitHubie i uwagi dotyczące aktualizacji
Aby zachować decyzje i eksperymenty związane z pracą w przeszukiwalnym archiwum, załóż konto Telli.sh.