Kann ROS auf einem Raspberry Pi laufen?

28

Kann ROS auf einem Raspberry Pi laufen?

ROS ist zurückgetreten, um auf einem Computernetzwerk mit verschiedenen Computern ausgeführt zu werden, selbst wenn verschiedene Kerne auf demselben Computer unterschiedliche Aufgaben ausführen. Kann eine dieser Maschinen ein Himbeer-Pi sein?

Ich denke darüber nach, ein R-Pi als EtherCAT- Master auf einem mobilen Roboter zu verwenden, der mit einem Dongle über WLAN mit dem Haupt-PC kommuniziert.

  • Kann ein R-Pi überhaupt ROS ausführen?
  • Hätte ein R-Pi genug Rechenleistung, um ein 1-kHz-Servo durchzuführen?
  • Wäre es möglich, etwas Servo auf dem Host über die WiFi-Verbindung auszuführen?
Raketenmagnet
quelle

Antworten:

16

Das offizielle RaspberryPi-Betriebssystem ist eine Version von Debian, aber es gibt auch eine ArchLinux-Version auf ihrer Website .

Trotz der Behauptung von ROS, plattformübergreifend zu sein, wird Ubuntu derzeit nur offiziell unterstützt. Laut ros.org wurden jedoch experimentelle Installationen für die folgenden Betriebssysteme durchgeführt :

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

Während ich habe keine Erfahrungen aus erster Hand hat (meine zwei Pis sind schändlich in der Ecke sitzen), ros.org eine quick and dirty Setup - Anleitung .

Es gibt ähnliche Anweisungen auf answers.ros.org .

Falls Sie auf Probleme stoßen, können Ihnen auch die RaspberryPi-Foren weiterhelfen. Und natürlich hat SE eine eigene PI.SE (Danke an @Jivings und @ppumkin für die Erinnerung).

Ansonsten googeln Sie einfach "ros raspberry pi" und Sie sollten viele weitere Informationen finden.

ThomasH
quelle
IMO, Debian ist die bessere Wahl für den Raspberry Pi. Ich glaube, Sie werden es einfacher und aus Community-Sicht besser unterstützt finden als andere Varianten des Linux-Kernels.
DogEatDog
3
@DogEatDog Ich bin anderer Meinung, Arch wird auch sehr gut unterstützt. Auch schamloser Stecker hier; Alle Raspberry Pi-Fragen aus dieser Frage werden von Raspberry Pi sowie den offiziellen Foren dankbar entgegengenommen .
Jivings
@Jivings Ich kann nicht glauben, dass ich vergessen habe, RaspberryPi.SE zu überprüfen ... Obwohl eine schnelle Suche nach ROS noch keine Ergebnisse
liefert ;-)
@ThomasH - Glaubst du, du könntest deiner Antwort einen Link hinzufügen, um zu PI.SE zu gelangen ? Wir haben dort viele Antworten und möglicherweise einige Lösungen. Ich möchte deine Antworten nicht nur bearbeiten, da sie korrekt sind.
Piotr Kula
Weil ROS unter BSD läuft - Es wird erst mit dem neuesten Release von FreeBSD unterstützt. Und natürlich muss ROS-Quellcode auch auf dem neuesten BSD-Code laufen. Alles hängt mit Hard Float und einigen Treiberupdates für diesen speziellen ARM von BroadCom zusammen (PS - Der Videotreiber von BCM wird Open Source, daher sollte es in Zukunft mehr Unterstützung geben)
Piotr Kula
6

Robotik ist schon schwierig genug, wenn all Ihre Abhängigkeiten funktionieren. Das letzte, was Sie brauchen, sind zusätzliche Probleme, die von inkompatiblen Komponenten oder nicht unterstützten Kombinationen herrühren.

Ich habe ein wenig darüber nachgedacht und hier war mein Fortschritt:

Raspberry Pi unterstützt Ubuntu nicht, da die ARM-CPU einen älteren Befehlssatz verwendet (ARM v6, glaube ich?) Und das Ubuntu-Team die Unterstützung für dieses Problem bereits 2009 eingestellt hat.

Beaglebone ähnelt in vielerlei Hinsicht einem Raspberry Pi und verfügt über einen neueren Befehlssatz, mit dem Ubuntu ausgeführt werden kann. Die 'beste' Ubuntu-ARM-Distribution kommt jedoch aus dem Linaro-Projekt und sie haben die Unterstützung für das Beaglebone vor ein paar Revisionen eingestellt (zuletzt Linaro 12.03), weil es einen älteren TI OMAP 3-Prozessor verwendet (Willkommen in der wundervollen Welt des schnellen Smartphones) Fortschritt).

Mein nächster Schritt war ein Blick auf das TI Pandaboard, das den neueren OMAP 4-Prozessor verwendet, der derzeit unterstützt wird, aber näher an der 200-Dollar-Spanne liegt.

Aber jetzt ist Ubuntu offiziell für das Nexus 7 freigegeben. Für 200 Dollar bietet das Nexus 7 alles, was ein Raspberry Pi bietet, und noch viel mehr. Denken Sie daran, dass selbst mit einem Himbeer-Pi, sobald Sie Ladegerät, WLAN-Adapter, Speicherkarte und Kabel hinzufügen, Sie näher an 100 Dollar als 35 Dollar herankommen, so dass das Nexus 7 ein viel besseres Geschäft ist.

Versuchen Sie nicht, ein 1-kHz-Signal von einem Nicht-Echtzeit-Betriebssystem auszugeben. Schließen Sie einen billigen Mikrocontroller wie den PJRC Teensy (Arduino-Klon) an und lassen Sie ihn die einfachen Echtzeitaufgaben für Sie erledigen. Auf diese Weise widmen Sie die kostengünstige CPU diesen einfachen zeitkritischen Aufgaben. Mit 16 MHz und Unterstützung für mehrere Timer kann eine kleine AVR-MCU problemlos ein halbes Dutzend solcher Aufgaben erledigen.

Jay Beavers
quelle
1
Lasse deinen Roboter mit Ubuntu auf einem Nexus 7 laufen, coole Idee! Kennen Sie zufällig Robotikprojekte, bei denen der Nexus auf diese Weise verwendet wird?
Bit-Pirat
5

Diese Frage wurde von Thomas H gut beantwortet , aber zusätzlich möchte ich nur die Möglichkeit der drahtlosen Anbindung des Quadcopters an einen Laptop vorschlagen. Das heißt, schreiben Sie einfach ein schönes und schnelles drahtloses Kommunikationsprotokoll (WLAN ?, Bluetooth?) Für den Quadrocopter, und erledigen Sie dann die schweren CPU-Aufgaben auf einem Laptop, während Sie die Anweisungen und Sensorabfragen an den R-PI senden. Wir haben viele Implementierungen ausprobiert und uns für einen ähnlichen Aufbau für alle unsere kleinen Roboter entschieden. Auch fast jede atemberaubende Quadcopter-Implementierung ist auf diese Weise eingerichtet. Dies erleichtert das Leben und ermöglicht es Ihnen, die besten Bibliotheken zu nutzen, ohne Abstriche bei der Geschwindigkeit zu machen.

Seien wir ehrlich, der Quadcopter wird wahrscheinlich sowieso nicht aus der Reichweite Ihres Laptops kommen.

Josh Vander Hook
quelle
Um es klar auszudrücken: Wenn Sie hier von "viel CPU-Material" sprechen, meinen Sie Steuerelemente auf hoher Ebene, die viel Zahlenverarbeitung erfordern, wie z. B. SLAM oder Computer Vision. Low-Level-Flugsteuerung muss in Echtzeit und bei Frequenzen erfolgen, die über eine drahtlose Verbindung nicht möglich sind.
Yoos
Die Flugsteuerung muss wie bei den Servoausgängen von der Bordelektronik erzeugt werden, ja. Aber die Flugbefehle, wie die gewünschten Rotordrehzahlen und dergleichen, können von einem angebundenen PC erzeugt werden (Bluetooth ist dafür erstaunlich), aber es gibt keinen Grund, diese auf dem R-Pi auszuführen. Wenn das der Fall ist, dann bezieht sich "starker CPU-Aufwand" auf Planung auf hoher Ebene, Koordination mehrerer Fahrzeuge, SLAM, Lebenslauf usw.
Josh Vander Hook
4

Ja , aber die Installation von ROS unter Debian ist machbar, aber nicht trivial.

joq
quelle
4

Ein experimentelles Repository wurde soeben mit ROS Groovy-Paketen für Raspbian (wheezy) gefüllt. Eine entsprechende Anleitung finden Sie hier:

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

Das Repository enthält mehr als 350 Pakete, und die Kern-ROS-Pakete können bei einer neuen Raspbian-Installation in wenigen Minuten installiert werden.

Paul M
quelle
2

Ich würde das rosserial Projekt heraus überprüfen . Grundsätzlich generiert es einen Code für Arduino für die Kommunikation über serielle Verbindungen mit einem ROS-Knoten auf dem Computer. Ich wette, Sie können es in den Raspberry Pi konvertieren, so dass Sie ein anderes Protokoll verwenden können, um zwischen dem Pi und dem Host-Computer zu kommunizieren.

Chris Mansley
quelle
2

Ja. Sicher. Wir machen das schon lange.
ROS ist kein "Betriebssystem" und es ist nicht groß. Es ist nur "Middleware", die gut in "Raspbian" läuft.
Wir brennen nur mit dem offiziellen Raspbian (also hoffen wir, dass wir damit an einer "stabilen" Umgebung arbeiten können) und kompilieren das ROS mit Source. Hier ist der schrittweise Link (für Kinetic):
http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi
Sie können ros_comm oder desktop ausprobieren.
Ich habe es mit ros_comm versucht und später weitere Pakete hinzugefügt.

Nick Qian
quelle
1
Warum benutzt du nicht Ubuntu Mate und installierst einfach ROS aus den Paketen?
FooTheBar
weil Ubuntu Mate auf dem ARM-Chip auf Himbeere langsam läuft, sowohl Pi2 als auch Pi3. Raspbian ist Lite-Debian und läuft wirklich gut auf dem ARM-Chip. @FooBar
Nick Qian
Irgendeine Quelle dafür? Ich habe keine Geschwindigkeitsprobleme erfahren.
FooTheBar
Ich habe nicht mehr probiert, nachdem ich mich für Raspbian entschieden hatte. Vielleicht ist Ubuntu Mate dist für Himbeeren jetzt besser und problemloser zu verwenden. Ich habe Interesse, es noch einmal zu versuchen, weil in Ubuntu das Software-Management gut ist. Aber wie steht es mit dem GPIO? Vielleicht hat Ubuntu New Bersion auch GPIO-Unterstützung, ich weiß nicht ....
Nick Qian
1
Warum sagst du, dass es langsam ist, wenn du es nicht getestet hast?
FooTheBar
1

Es gibt ein Projekt namens ROSpberry Pi, das Sie ausprobieren können. Und eine Firma in Pasadena mit dem Namen Acrobotic verkauft jetzt SD-Images von ROSpberry, die vorinstalliert sind.

Brian Dolan
quelle
1

Im Gegensatz zu den anderen (eher veralteten) Antworten habe ich erfolgreich versucht, ROS auf Raspbian oder Ubuntu mit einem Raspberry Pi 2 Model B auszuführen .

Nach einigem Hin und Her bleibe ich bei Ubuntu: Obwohl ich mit Ubuntu nicht auf das Raspberry-Kameramodul zugreifen konnte, sehe ich große Vorteile in der überlegenen Paketverwaltung und der Kompatibilität mit ROS. Benötigen Sie eine seltsame neue ROS-Funktion? Nur sudo aptitude installdas Paket und fertig.

Falko
quelle
0

Ich habe Erfahrung mit der Installation von ROS auf einem Raspi mit Ubuntu Mate als Betriebssystem. Es ist im Wesentlichen ein reguläres Ubuntu-Betriebssystem, aber auf einem Arm-Gerät. Es kann ROS über vorgefertigte Binärdateien installieren. Es erfordert nicht mehr Konfiguration als ein normaler Ubuntu-Laptop. Ich weiß, dass es eine Version des Pi gibt, die nicht offiziell unterstützt wird (ich denke, es ist das 3B +, die Installation ist zum Glück eine Weile her), aber jemand hat in einem von mir gegoogelten Forumsbeitrag herausgefunden, wie man dieses Problem umgeht.

thatrobotguy
quelle
Link zum Forenbeitrag?
drerD
Ich habe bereits auf die Website verlinkt, damit Sie Ubuntu Mate herunterladen können. Es ist buchstäblich so einfach wie eine normale Ubuntu-Maschine, ROS zu installieren. Ich weiß nicht, warum Sie einen Forum-Post-Link benötigen ... Es war für ein Schulprojekt auf privaten Repositories (also ROS-Quellcode nicht öffentlich), aber Ubuntu-Kumpel ist öffentlich verfügbar. Hier ist ein weiterer, spezifischerer Link .
thatrobotguy
-2

Ja,

Den Download finden Sie hier:

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

inklusive Framebuffer-Treiber für C-Berry TFT-Display

Martin
quelle
Entschuldigung Martin, aber Antworten nur über Links sind bei Stack Exchange nicht sehr hilfreich. Wenn Sie die relevanten Informationen auf der Seite angeben (es ist CC-BY-SA-lizenziert), ist Ihre Antwort viel nützlicher und Ihre Abstimmungen werden möglicherweise schlechter rückgängig gemacht.
Mark Booth