ROS può funzionare su un Raspberry Pi?


28

ROS può funzionare su un Raspberry Pi?

ROS è dimesso per funzionare su una rete di macchine, con macchine diverse, anche con core diversi sulla stessa macchina che svolgono lavori diversi. Una di queste macchine può essere un Raspberry Pi?

Sto pensando di utilizzare un R-Pi come master EtherCAT su un robot mobile, comunicare con il PC principale tramite WiFi, usando un dongle.

  • Un R-Pi può persino far funzionare ROS?
  • Un R-Pi avrebbe una potenza di elaborazione sufficiente per eseguire alcuni servoing a 1kHz?
  • Sarebbe possibile eseguire alcuni servoing sull'host tramite la connessione WiFi?

Risposte:


16

Il sistema operativo ufficiale di RaspberryPi è una versione di Debian, ma c'è anche una versione di ArchLinux sul loro sito web .

Nonostante la richiesta di ROS di essere multipiattaforma, al momento supportano ufficialmente solo Ubuntu. Tuttavia, secondo ros.org sono state realizzate installazioni sperimentali per i seguenti sistemi operativi :

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

Anche se non ho alcuna esperienza diretta (i miei due Pis sono vergognosamente seduti in un angolo), ros.org ha una guida di installazione rapida e sporca .

Ci sono istruzioni simili su answer.ros.org .

In caso di problemi, i forum di RaspberryPi potrebbero essere di aiuto. E, naturalmente, SE ha il proprio PI.SE (grazie a @Jivings e @ppumkin per il promemoria).

Altrimenti, basta google "ros raspberry pi" e dovresti trovare molte più informazioni.


IMO, Debian è la scelta migliore per il Raspberry Pi. Credo che lo troverai più facile e meglio supportato dal punto di vista della comunità rispetto ad altri tipi di kernel Linux.
DogEatDog

3
@DogEatDog Non sono d'accordo, anche Arch è supportato molto bene. Inoltre, spina spudorato qui; Eventuali problemi di Raspberry Pi da questa domanda verranno ricevuti con gratitudine da Raspberry Pi e dai forum ufficiali.
Jivings,

@Jivings Non riesco a credere di aver dimenticato di controllare RaspberryPi.SE ... Anche se una rapida ricerca di ROS non ha prodotto alcun risultato finora ;-)
ThomasH,

@ThomasH - Pensi di poter aggiungere alla tua risposta un link per arrivare a PI.SE Abbiamo ricevuto molte risposte lì e forse alcune soluzioni. Non voglio solo modificare le tue risposte perché sono corrette.
Piotr Kula,

Poiché ROS funziona con BSD - Non è supportato fino alla versione più recente di FreeBSD - E ovviamente anche il sorgente ROS dovrà essere eseguito sul nuovo codice BSD. Tutto a che fare con il float e alcuni aggiornamenti dei driver per quello specifico ARM realizzato da BroadCom (PS - Il driver video di BCM sta andando open source quindi dovrebbe esserci più supporto in futuro)
Piotr Kula

6

La robotica è abbastanza dura come lo è quando tutte le dipendenze funzionano. L'ultima cosa di cui hai bisogno sono ulteriori problemi derivanti da componenti incompatibili o combinazioni non supportate.

Ho esaminato un po 'questo ed ecco la mia progressione:

Raspberry Pi non supporta Ubuntu perché la sua CPU ARM utilizza un set di istruzioni più vecchio (ARM v6 credo?) E il team Ubuntu ha abbandonato il supporto per questo nel 2009.

Beaglebone è simile a un Raspberry Pi in molti modi e ha un set di istruzioni più recente, quindi eseguirà Ubuntu. Tuttavia, la "migliore" distribuzione Ubuntu ARM sta uscendo dal progetto Linaro e hanno abbandonato il supporto per Beaglebone alcune revisioni (l'ultima era Linaro 12.03) perché utilizza un vecchio processore TI OMAP 3 (benvenuto nel meraviglioso mondo dello smartphone rapido progresso).

Il mio prossimo passo è stato quello di guardare il Pandaboard TI che utilizza il nuovo processore OMAP 4 attualmente supportato, ma costa più vicino alla gamma di $ 200.

Ma ora Ubuntu è stato ufficialmente rilasciato per il Nexus 7. A 200 dollari, il Nexus 7 ti offre tutto ciò che offre un Raspberry Pi e molto altro ancora. Tieni presente che anche con un Raspberry Pi, una volta aggiunto il caricabatterie, l'adattatore wifi, la scheda di memoria e i cavi, ti avvicini a 100 dollari a 35 dollari, quindi il Nexus 7 è un affare molto migliore.

Infine, non provare a emettere un segnale da 1 khz da un sistema operativo non in tempo reale. Collega un microcontrollore economico come il PJRC Teensy (clone di Arduino) e lascia che gestisca le semplici attività in tempo reale per te. In questo modo dedichi la CPU economica a questi semplici compiti sensibili al tempo. A 16 MHz con supporto per più timer, una piccola MCU AVR può gestire una mezza dozzina di attività come questa senza problemi.


1
Far funzionare il tuo robot con Ubuntu su un Nexus 7, bella idea! Per caso, conosci qualche progetto di robotica che usa il Nexus in questo modo?
Bit Pirate

5

ThomasH ha risposto bene a questa domanda , ma voglio solo suggerire la possibilità di collegare il quadricoptero wireless a un laptop. Cioè, basta scrivere un protocollo di comunicazione wireless (wifi ?, bluetooth?) Bello e veloce per il quadricoptero, quindi eseguire le pesanti operazioni della CPU su un laptop, trasmettendo le istruzioni e le richieste del sensore all'R-PI. Abbiamo provato molte implementazioni e abbiamo optato per una configurazione simile per tutti i nostri piccoli robot. Anche quasi tutte le implementazioni di quadricotteri strabilianti sono configurate in questo modo. Semplifica la vita e ti consente di utilizzare le librerie di big-hitter senza sacrificare la velocità.

Siamo onesti qui, che molto probabilmente il quadricottero non andrà fuori dalla portata wireless del tuo laptop.


Per essere chiari, quando dici "roba pesante per CPU" qui, intendi controlli di alto livello che implicano un sacco di scricchiolii di numeri, come SLAM o computer vision. Il controllo di volo a basso livello dovrà avvenire in tempo reale e a frequenze abbastanza elevate da non essere fattibile tramite una connessione wireless.
Yoos

Il controllo di volo, come nelle uscite servo, dovrà essere generato dall'elettronica di bordo, sì. Ma i comandi di volo, come le velocità del rotore desiderate e simili, possono essere generati da un PC collegato (il bluetooth è sorprendente per questo), ma non c'è motivo di poterli eseguire sull'R-Pi. In questo caso, allora sì, "roba pesante per CPU" si riferisce alla pianificazione di alto livello, alla coordinazione multi-veicolo, SLAM, CV, ecc.
Josh Vander Hook,

4

, ma installare ROS su Debian è fattibile, ma non banale.


4

Un repository sperimentale è stato appena popolato con i pacchetti di ROS Groovy per Raspbian (wheezy), le istruzioni per usarlo sono disponibili qui:

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

Il repository ha oltre 350 pacchetti e i pacchetti ROS principali possono essere installati in pochi minuti con una nuova installazione di Raspbian.


2

Vorrei dare un'occhiata al progetto rosseriale . Fondamentalmente, genera del codice per Arduino per comunicare via seriale a un nodo ROS sul computer. Scommetto che puoi convertirlo in Raspberry Pi, in modo da poter utilizzare qualche altro protocollo per comunicare tra il Pi e il computer host.


2

sì. Sicuro. Lo facciamo da tanto tempo.
ROS non è un "sistema operativo" e non è grande. È solo "middleware" che funziona bene in "raspbian".
Bruciamo semplicemente con la raspbian ufficiale (quindi speriamo che possa farci lavorare su un ambiente "stabile") e compiliamo il ROS con il sorgente. ecco il collegamento passo-passo (per Kinetic):
http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi
puoi provare ros_comm o desktop.
Ho provato ros_comm e successivamente ho aggiunto altri pacchetti.


1
Perché non usi Ubuntu Mate e semplicemente installi ROS dai pacchetti?
FooTheBar,

perché Ubuntu Mate funziona lentamente sul chip ARM su raspberry, sia Pi2 che Pi3. Raspbian è debian lite e funziona davvero bene sul chip ARM. @FooBar
Nick Qian,

Qualche fonte per quello? Non ho riscontrato problemi di velocità.
FooTheBar,

Non ho provato più dopo aver scelto raspbian. forse ora Ubuntu Mate dist per raspberry è meglio e senza problemi da usare. Ho interesse a riprovare perché in Ubuntu la gestione del software è buona. Ma che dire del GPIO? forse ubuntu new bersion ha anche il supporto gpio, non lo so ....
Nick Qian,

1
Quindi perché dici che è lento se non hai provato?
FooTheBar,


1

Contrariamente a quanto è stato detto nelle altre risposte (piuttosto obsolete), ho provato con successo a eseguire ROS su Raspbian o Ubuntu con un modello B di Raspberry Pi 2 .

Dopo alcuni avanti e indietro, continuerò con Ubuntu: anche se non sono riuscito ad accedere al modulo della videocamera Raspberry con Ubuntu, vedo grandi vantaggi nella sua gestione dei pacchetti superiore e compatibilità con ROS. Hai bisogno di qualche nuova strana funzione ROS? Solo sudo aptitude installil pacchetto e sei pronto.


0

Ho esperienza nell'installazione di ROS su un Raspi usando Ubuntu Mate come sistema operativo. È essenzialmente un normale sistema operativo Ubuntu, ma su un dispositivo arm. Può installare ROS tramite file binari predefiniti. Non richiede più configurazione di un normale laptop Ubuntu. So che esiste una versione del Pi che non è ufficialmente supportata (penso che sia il 3B +, è passato un po 'di tempo dall'installazione per fortuna), ma qualcuno ha capito come aggirare quel problema su un post del forum che ho cercato su Google.


link al post del forum?
DrDD

Ho già collegato al sito Web in modo che tu possa scaricare Ubuntu Mate. È letteralmente semplice come una normale macchina Ubuntu per installare ROS. Non so perché hai bisogno di un link al post sul forum ... Era per un progetto scolastico su repository privati ​​(quindi, codice sorgente ROS non pubblico), ma Ubuntu mate è pubblicamente disponibile. Ecco un altro link più specifico .
thatrobotguy,


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.