Czy ROS może działać na Raspberry Pi?

28

Czy ROS może działać na Raspberry Pi?

ROS zrezygnował z działania w sieci maszyn, z różnymi maszynami, nawet różnymi rdzeniami na tej samej maszynie wykonującymi różne zadania. Czy jedna z tych maszyn może być Raspberry Pi?

Zastanawiam się nad użyciem R-Pi jako mastera EtherCAT w robocie mobilnym, komunikującym się z głównym komputerem PC przez WiFi, za pomocą klucza sprzętowego.

  • Czy R-Pi może nawet w ogóle obsługiwać ROS?
  • Czy R-Pi miałby wystarczającą moc obliczeniową, aby wykonać serwo 1kHz?
  • Czy możliwe byłoby uruchomienie serwomechanizmu na hoście poprzez połączenie WiFi?
Rocketmagnet
źródło

Odpowiedzi:

16

Oficjalny system operacyjny RaspberryPi jest wersją Debiana, ale na ich stronie internetowej znajduje się również wersja ArchLinux .

Pomimo twierdzenia ROS o byciu wieloplatformowym, w tej chwili oficjalnie obsługują Ubuntu. Jednak według ros.org wykonano instalacje eksperymentalne dla następujących systemów operacyjnych :

  • OS X (Homebrew)
  • Fedora
  • Gentoo
  • OpenSUSE
  • Debian
  • Arch Linux
  • Windows

Chociaż nie mam doświadczenia z pierwszej ręki (moje dwie Pis wstydliwie siedzą w kącie), ros.org ma szybki i brudny przewodnik konfiguracji .

Podobne instrukcje znajdują się na stronie answer.ros.org .

Jeśli napotkasz jakiekolwiek problemy, fora RaspberryPi również mogą być pomocne. I, oczywiście, SE ma swój własny PI.SE (dzięki @Jivings i @ppumkin za przypomnienie).

W przeciwnym razie, po prostu google „ros raspberry pi” i powinieneś znaleźć dużo więcej informacji.

ThomasH
źródło
IMO, Debian jest lepszym wyborem dla Raspberry Pi. Wierzę, że będzie łatwiej i lepiej obsługiwany z perspektywy społeczności, w przeciwieństwie do innych wersji jądra Linux.
DogEatDog
3
@DogEatDog Nie zgadzam się, Arch jest również bardzo dobrze obsługiwany. Również tutaj bezwstydna wtyczka; Wszelkie problemy dotyczące Raspberry Pi z tego pytania będą z wdzięcznością przyjmowane zarówno na Raspberry Pi, jak i na oficjalnych forach.
Jivings,
@Jivings Nie mogę uwierzyć, że zapomniałem sprawdzić RaspberryPi.SE ... Jakkolwiek szybkie wyszukiwanie ROS jak dotąd nie powoduje żadnych wyników ;-)
ThomasH 12.12. O
@ThomasH - Czy uważasz, że możesz dodać do swojej odpowiedzi link do PI.SE Mamy tam wiele odpowiedzi i być może jakieś rozwiązania. Nie chcę po prostu edytować swoich odpowiedzi, ponieważ są poprawne.
Piotr Kula,
Ponieważ ROS działa pod BSD - nie jest obsługiwane do najnowszej wersji FreeBSD - i oczywiście źródło ROS będzie musiało również działać na najnowszym kodzie BSD. Wszystko to ma związek z hard float i niektórymi aktualizacjami sterowników dla tego konkretnego ARM-a wykonanego przez BroadCom (PS - Sterownik wideo z BCM zostanie otwarty jako źródło, więc w przyszłości powinno być więcej wsparcia)
Piotr Kula
6

Robotyka jest wystarczająco trudna, jak wtedy, gdy działają wszystkie twoje zależności. Ostatnią rzeczą, której potrzebujesz, są dodatkowe problemy wynikające z niekompatybilnych komponentów lub nieobsługiwanych kombinacji.

Przyglądałem się temu trochę i oto mój postęp:

Raspberry Pi nie obsługuje Ubuntu, ponieważ jego procesor ARM używa starszego zestawu instrukcji (ARM v6, czy wierzę?), A zespół Ubuntu zrezygnował z obsługi tego systemu w 2009 roku.

Beaglebone jest podobny do Raspberry Pi pod wieloma względami i ma nowszy zestaw instrukcji, więc będzie działał Ubuntu. Jednak „najlepsza” dystrybucja Ubuntu ARM wychodzi z projektu Linaro i wycofali wsparcie dla Beaglebone kilka wersji wstecz (ostatnia była Linaro 12.03), ponieważ używa starszego procesora TI OMAP 3 (witamy w cudownym świecie szybkiego smartfona postęp).

Kolejnym krokiem było przyjrzenie się TI Pandaboard, który korzysta z nowszego obecnie obsługiwanego procesora OMAP 4, ale kosztuje on mniej więcej 200 USD.

Ale teraz Ubuntu oficjalnie wydany na Nexusa 7. Przy 200 dolarach, Nexus 7 oferuje wszystko, co oferuje Raspberry Pi oraz wiele więcej. Pamiętaj, że nawet w przypadku Raspberry Pi, po dodaniu ładowarki, adaptera Wi-Fi, karty pamięci i kabli skradasz się bliżej 100 dolarów niż 35 dolarów, więc imho Nexus 7 jest znacznie lepszą ofertą.

Na koniec nie próbuj wyprowadzać sygnału 1 kHz z systemu operacyjnego czasu rzeczywistego. Podłącz tani mikrokontroler, taki jak PJRC Teensy (klon Arduino) i pozwól mu obsługiwać proste zadania w czasie rzeczywistym. W ten sposób tani procesor poświęcisz niedrogim procesorom. Przy 16 MHz z obsługą wielu timerów, niewielka jednostka AVR MCU może bez problemu obsłużyć pół tuzina takich zadań.

Jay Beavers
źródło
1
Uruchamianie robota za pomocą Ubuntu na Nexusie 7, świetny pomysł! Czy przypadkiem znasz jakieś projekty robotyki wykorzystujące nexus w ten sposób?
bit-pirate
5

To pytanie zostało dobrze odebrane przez ThomasH , ale dodatkowo po prostu chcę sugerować możliwość bezprzewodowego tethering quadcopter do laptopa. To znaczy, po prostu napisz ładny i szybki bezprzewodowy protokół komunikacyjny dla quadkoptera, a następnie wykonaj ciężkie operacje CPU na laptopie, przesyłając instrukcje i zapytania do czujnika R-PI. Wypróbowaliśmy wiele implementacji i zdecydowaliśmy się na podobną konfigurację dla wszystkich naszych małych robotów. W ten sposób konfiguruje się prawie każdą zadziwiającą implementację quadkoptera. Ułatwia to życie i pozwala korzystać z bibliotek z dużymi hitami bez poświęcania prędkości.

Bądźmy szczerzy, że quadcopter prawdopodobnie nie znajdzie się poza zasięgiem bezprzewodowym laptopa.

Josh Vander Hook
źródło
Dla jasności, kiedy mówimy tutaj o „ciężkich procesorach”, masz na myśli elementy sterujące wysokiego poziomu, które wiążą się z dużą liczbą awarii, takich jak SLAM lub wizja komputerowa. Kontrola lotu na niskim poziomie będzie musiała odbywać się w czasie rzeczywistym i na wystarczająco wysokich częstotliwościach, aby nie było to możliwe w przypadku połączenia bezprzewodowego.
yoos,
Sterowanie lotem, podobnie jak w wyjściach serwo, będzie musiało być generowane przez pokładową elektronikę, tak. Ale polecenia lotu, takie jak pożądane prędkości wirnika i takie mogą być generowane przez komputer na uwięzi (bluetooth jest do tego niesamowity), ale nie ma powodu, abyś mógł je uruchomić na R-Pi. Jeśli tak jest, to tak, „ciężkie procesory” odnoszą się do planowania na wysokim poziomie, koordynacji wielu pojazdów, SLAM, CV itp.
Josh Vander Hook
4

Tak , ale instalacja ROS na Debianie jest możliwa, ale nie trywialna.

joq
źródło
4

Eksperymentalne repozytorium zostało właśnie wypełnione pakietami ROS Groovy dla Raspbian (wheezy), instrukcje korzystania z niego można znaleźć tutaj:

http://www.ros.org/wiki/groovy/Installation/Raspbian

Repozytorium ma ponad 350 pakietów, a podstawowe pakiety ROS można zainstalować w ciągu kilku minut na nowej instalacji Raspbian.

Paul M.
źródło
2

Chciałbym sprawdzeniu rosserial projektu. Zasadniczo generuje kod dla Arduino do komunikacji szeregowej z węzłem ROS na komputerze. Założę się, że możesz przekonwertować go na Raspberry Pi, abyś mógł użyć innego protokołu do komunikacji między Pi a komputerem-hostem.

Chris Mansley
źródło
2

tak. Pewnie. Robimy tak długo.
ROS nie jest „systemem operacyjnym” i nie jest duży. To tylko „oprogramowanie pośrednie”, które działa dobrze w „raspbian”.
Po prostu nagrywamy oficjalnym raspbianem (więc mamy nadzieję, że może to zmusić nas do pracy w „stabilnym” środowisku) i skompilujemy ROS ze źródłem. oto link krok po kroku (dla Kinetic):
http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi
możesz wypróbować ros_comm lub komputer.
Próbowałem ros_comm, a następnie dodałem inne pakiety później.

Nick Qian
źródło
1
Dlaczego nie używasz Ubuntu Mate i po prostu instalujesz ROS z pakietów?
FooTheBar
ponieważ Ubuntu Mate działa wolno na układzie ARM na malinach, zarówno Pi2, jak i Pi3. Raspbian jest lite debianem i działa naprawdę dobrze na układzie ARM. @FooBar
Nick Qian
Jakieś źródło tego? Nie miałem żadnych problemów z prędkością.
FooTheBar
Nie próbowałem więcej po tym, jak wybrałem raspbian. może teraz Ubuntu Mate dist dla malin jest lepszy i płynniejszy w użyciu. Chciałbym spróbować ponownie, ponieważ w Ubuntu zarządzanie oprogramowaniem jest dobre. A co z GPIO? może nowa wersja Ubuntu ma również obsługę gpio, nie wiem ....
Nick Qian
1
Dlaczego więc mówisz, że jest powolny, jeśli nie testowałeś?
FooTheBar
1

Istnieje projekt o nazwie ROSpberry Pi, który możesz sprawdzić. A firma z Pasadeny o nazwie Acrobotic sprzedaje teraz preinstalowane obrazy SD ROSpberry.

Brian Dolan
źródło
1

W przeciwieństwie do tego, co zostało powiedziane w innych (raczej nieaktualne) odpowiedzi, ja z powodzeniem próbował działa ROS po obu Raspbian lub Ubuntu z Raspberry Pi 2 Model B .

Po przejściu tam i z powrotem będę się trzymał Ubuntu: Chociaż nie udało mi się uzyskać dostępu do modułu kamery Raspberry w Ubuntu, widzę główne zalety jego doskonałego zarządzania pakietami i kompatybilności z ROS. Potrzebujesz nowej dziwnej funkcji ROS? Tylko sudo aptitude installpakiet i wszystko gotowe.

Falko
źródło
0

Mam doświadczenie w instalowaniu ROS na Raspi przy użyciu Ubuntu Mate jako systemu operacyjnego. Zasadniczo jest to zwykły system operacyjny Ubuntu, ale na urządzeniu z ramieniem. Może zainstalować ROS za pomocą gotowych plików binarnych. Nie wymaga więcej konfiguracji niż zwykły laptop Ubuntu. Wiem, że jest jedna wersja Pi, która nie jest oficjalnie obsługiwana (myślę, że to 3B +, minęło trochę czasu od instalacji, na szczęście), ale ktoś wymyślił, jak obejść ten problem na postu na forum, który opublikowałem w Google.

thatrobotguy
źródło
link do postu na forum?
drerD
Mam już link do strony, abyś mógł pobrać partnera Ubuntu. Zainstalowanie systemu ROS jest dosłownie tak proste, jak zwykła maszyna Ubuntu. Nie wiem, dlaczego potrzebujesz linku do postu na forum ... To był projekt szkolny na prywatnych repozytoriach (więc kod źródłowy ROS nie jest publiczny), ale Ubuntu mate jest publicznie dostępny. Oto kolejny, bardziej szczegółowy link .
thatrobotguy
-2

tak,

znajdź plik do pobrania tutaj:

http://answers.ros.org/question/200504/raspbian-jessie-ros-indigo-download-image/

w tym sterownik bufora ramki dla wyświetlacza TFT C-Berry

Jaskółka oknówka
źródło
Niestety, Martin, ale odpowiedzi tylko na link nie są bardzo pomocne na Stack Exchange, jeśli zacytujesz odpowiednie informacje ze strony (jest to licencja CC-BY-SA), twoja odpowiedź byłaby znacznie bardziej użyteczna, a twoje głosy negatywne mogą się dostać wywrócony.
Mark Booth