ROS peut-il fonctionner sur un Raspberry Pi?

28

ROS peut-il fonctionner sur un Raspberry Pi?

ROS est résigné pour fonctionner sur un réseau de machines, avec différentes machines, voire différents cœurs sur la même machine effectuant des tâches différentes. Une de ces machines peut-elle être un Raspberry Pi?

J'envisage d'utiliser un R-Pi comme maître EtherCAT sur un robot mobile, communiquant avec le PC principal via WiFi, à l'aide d'un dongle.

  • Un R-Pi peut-il même exécuter ROS?
  • Un R-Pi aurait-il une puissance de traitement suffisante pour effectuer un asservissement à 1 kHz?
  • Serait-il possible d'exécuter un certain asservissement sur l'hôte via la connexion WiFi?
Rocketmagnet
la source

Réponses:

16

Le système d'exploitation officiel RaspberryPi est une version de Debian, mais il y a aussi une version ArchLinux sur leur site Web .

Malgré la prétention de ROS d'être multiplateforme, ils ne prennent officiellement en charge Ubuntu que pour le moment. Cependant, selon ros.org , des installations expérimentales ont été réalisées pour les systèmes d'exploitation suivants :

  • OS X (Homebrew)
  • Feutre
  • Gentoo
  • OpenSUSE
  • Debian
  • Arch Linux
  • les fenêtres

Bien que je n'ai aucune expérience de première main (mes deux Pis sont honteusement assis dans le coin), ros.org a un guide d'installation rapide et sale .

Il y a des instructions similaires sur answers.ros.org .

Si vous rencontrez des problèmes, les forums RaspberryPi pourraient également vous être utiles. Et, bien sûr, SE a son propre PI.SE (Merci à @Jivings et @ppumkin pour le rappel).

Sinon, il suffit de google "ros framboise pi" et vous devriez trouver beaucoup plus d'informations.

ThomasH
la source
OMI, Debian est le meilleur choix pour le Raspberry Pi. Je pense que vous le trouverez plus facile et mieux pris en charge du point de vue de la communauté, contrairement aux autres versions du noyau Linux.
DogEatDog
3
@DogEatDog Je ne suis pas d'accord, Arch est également très bien soutenu. Aussi, branchez sans vergogne ici; Tous les problèmes de Raspberry Pi de cette question seront reçus avec gratitude sur Raspberry Pi ainsi que sur les forums officiels.
Jivings
@Jivings Je n'arrive pas à croire que j'ai oublié de vérifier RaspberryPi.SE ... Bien qu'une recherche rapide de ROS ne donne aucun résultat jusqu'à présent ;-)
ThomasH
@ThomasH - Pensez-vous que vous pourriez ajouter à votre réponse un lien pour accéder à PI.SE Nous avons reçu beaucoup de réponses et éventuellement des solutions.Je ne veux pas simplement modifier vos réponses car elles sont correctes.
Piotr Kula,
Parce que ROS fonctionne sous BSD - Il n'est pas pris en charge jusqu'à la dernière version de FreeBSD - Et bien sûr, la source ROS devra également fonctionner sur le dernier code BSD. Tout cela est lié à un flotteur dur et à certaines mises à jour de pilotes pour cet ARM spécifique créé par BroadCom (PS - Le pilote vidéo de BCM devient open source, il devrait donc y avoir plus de support à l'avenir)
Piotr Kula
6

La robotique est déjà assez difficile comme c'est le cas lorsque toutes vos dépendances fonctionnent. La dernière chose dont vous avez besoin est des problèmes supplémentaires provenant de composants incompatibles ou de combinaisons non prises en charge.

Je me suis penché un peu là-dessus et voici ma progression:

Raspberry Pi ne prend pas en charge Ubuntu car son processeur ARM utilise un ensemble d'instructions plus ancien (ARM v6 je crois?) Et l'équipe Ubuntu a abandonné la prise en charge de cela en 2009 comme.

Beaglebone est similaire à un Raspberry Pi à bien des égards et possède un jeu d'instructions plus récent, de sorte qu'il exécutera Ubuntu. Cependant, la `` meilleure '' distribution Ubuntu ARM sort du projet Linaro et ils ont abandonné la prise en charge du Beaglebone il y a quelques révisions (la dernière était Linaro 12.03) car il utilise un processeur TI OMAP 3 plus ancien (bienvenue dans le monde merveilleux du smartphone rapide le progrès).

Ma prochaine étape était de regarder la TI Pandaboard qui utilise le nouveau processeur OMAP 4 qui est actuellement pris en charge, mais cela coûte plus près de la gamme de 200 $.

Mais maintenant Ubuntu est officiellement sorti pour le Nexus 7. À 200 dollars, le Nexus 7 vous offre tout ce qu'un Raspberry Pi offre et bien plus encore. Gardez à l'esprit que même avec un Raspberry Pi, une fois que vous ajoutez le chargeur, l'adaptateur wifi, la carte de stockage et les câbles, vous vous rapprochez de 100 dollars à 35 dollars, alors à mon humble avis, le Nexus 7 est une bien meilleure affaire.

Enfin, n'essayez pas de produire un signal de 1 kHz à partir d'un système d'exploitation en temps non réel. Attachez-vous un microcontrôleur bon marché comme le PJRC Teensy (clone Arduino) et laissez-le gérer les tâches simples en temps réel pour vous. De cette façon, vous dédiez le processeur peu coûteux à ces tâches simples et sensibles au temps. À 16 MHz avec prise en charge de plusieurs minuteries, un petit AVU MCU peut gérer une demi-douzaine de tâches comme celle-ci sans problème.

Jay Beavers
la source
1
Faire fonctionner votre robot avec Ubuntu sur un Nexus 7, bonne idée! Par hasard, connaissez-vous des projets de robotique utilisant le nexus de cette manière?
bit-pirate
5

ThomasH a bien répondu à cette question , mais en plus, je veux juste suggérer la possibilité d' attacher sans fil le quadcopter à un ordinateur portable. Autrement dit, il suffit d'écrire un protocole de communication sans fil agréable (wifi?, Bluetooth?) Pour le quadcopter, puis de faire le gros travail du processeur sur un ordinateur portable, tout en transmettant les instructions et les requêtes de capteur au R-PI. Nous avons essayé de nombreuses implémentations et opté pour une configuration similaire pour tous nos petits robots. De plus, presque toutes les implémentations de quadcopter à couper le souffle sont configurées de cette manière. Il vous facilite la vie et vous permet d'utiliser les bibliothèques de gros frappeurs sans sacrifier la vitesse.

Soyons honnêtes ici, ce quadcopter ne sortira probablement pas de la portée sans fil de votre ordinateur portable de toute façon.

Josh Vander Hook
la source
Pour être clair, quand vous dites «gros trucs de CPU» ici, vous voulez dire des contrôles de haut niveau qui impliquent beaucoup de calculs, tels que SLAM ou la vision par ordinateur. Le contrôle de vol à basse altitude devra se produire en temps réel et à des fréquences suffisamment élevées pour que cela ne soit pas possible sur une connexion sans fil.
2012 à 7h42
La commande de vol, comme dans les sorties servo, devra être générée par l'électronique embarquée, oui. Mais les commandes de vol, comme les vitesses de rotor souhaitées et autres, peuvent être générées par un PC captif (le bluetooth est incroyable pour cela), mais il n'y a aucune raison de savoir si vous pouvez les exécuter sur le R-Pi. Si tel est le cas, alors oui, "les trucs lourds du CPU" se réfèrent à la planification de haut niveau, à la coordination multi-véhicules, au SLAM, au CV, etc.
Josh Vander Hook
4

Oui , mais installer ROS sur Debian est faisable, mais pas trivial.

joq
la source
4

Un référentiel expérimental vient d'être rempli avec des packages ROS Groovy pour Raspbian (wheezy), les instructions pour l'utiliser peuvent être trouvées ici:

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

Le référentiel contient plus de 350 packages et les packages ROS principaux peuvent être installés en quelques minutes sur une nouvelle installation Raspbian.

Paul M
la source
2

Je vérifierais le projet rosserial . Fondamentalement, il génère du code pour Arduino pour communiquer via série à un nœud ROS sur l'ordinateur. Je parie que vous pouvez le convertir en Raspberry Pi, afin que vous puissiez utiliser un autre protocole pour communiquer entre le Pi et l'ordinateur hôte.

Chris Mansley
la source
2

Oui. Sûr. Nous faisons cela depuis longtemps.
ROS n'est pas un "OS" et ce n'est pas grand. C'est juste un "middleware" qui fonctionne bien dans "raspbian".
Nous venons de graver avec le raspbian officiel (donc nous espérons qu'il peut nous faire travailler sur un environnement "stable") et compiler le ROS avec la source. voici le lien étape par étape (pour Kinetic):
http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi,
vous pouvez essayer ros_comm ou le bureau.
J'ai essayé ros_comm, puis j'ai ajouté d'autres packages plus tard.

Nick Qian
la source
1
Pourquoi n'utilisez-vous pas Ubuntu Mate et installez-vous simplement ROS à partir des packages?
FooTheBar
car Ubuntu Mate tourne lentement sur la puce ARM sur framboise, à la fois Pi2 et Pi3. Raspbian est Debian Lite et fonctionne très bien sur la puce ARM. @FooBar
Nick Qian
Une source pour ça? Je n'ai rencontré aucun problème de vitesse.
FooTheBar
Je n'ai pas essayé plus après avoir choisi la raspbian. peut-être que maintenant Ubuntu Mate dist pour framboise est meilleur et facile à utiliser. J'ai intérêt à réessayer car dans ubuntu la gestion des logiciels est bonne. Mais qu'en est-il du GPIO? peut-être que ubuntu new bersion a aussi le support de gpio, je ne sais pas ....
Nick Qian
1
Alors pourquoi dites-vous que c'est lent si vous n'avez pas testé?
FooTheBar
1

Il existe un projet appelé ROSpberry Pi que vous pouvez consulter. Et une entreprise à Pasadena appelée Acrobotic vend maintenant des images SD de ROSpberry préinstallées.

Brian Dolan
la source
1

Contrairement à ce qui a été dit dans les autres (plutôt périmées) réponses, je l' ai avec succès essayé de courir sur ERO soit Raspbian ou Ubuntu avec un Raspberry Pi 2 Modèle B .

Après quelques allers-retours, je m'en tiendrai à Ubuntu: même si je n'ai pas réussi à accéder au module de caméra Raspberry avec Ubuntu, je vois des avantages majeurs dans sa gestion de package supérieure et sa compatibilité avec ROS. Vous avez besoin d'une nouvelle fonctionnalité ROS étrange? Juste sudo aptitude installle paquet et tout est prêt.

Falko
la source
0

J'ai de l'expérience en installant ROS sur un Raspi en utilisant Ubuntu Mate comme système d'exploitation. Il s'agit essentiellement d'un système d'exploitation ubuntu normal, mais sur un périphérique armé. Il peut installer ROS via des fichiers binaires pré-construits. Il ne nécessite pas plus de configuration qu'un ordinateur portable Ubuntu classique. Je sais qu'il existe une version du Pi qui n'est pas officiellement prise en charge (je pense que c'est le 3B +, cela fait un certain temps depuis l'installation, heureusement), mais quelqu'un a compris comment contourner ce problème sur un post du forum que j'ai googlé.

thatrobotguy
la source
lien vers le message du forum?
drerD
J'ai déjà créé un lien vers le site Web afin que vous puissiez télécharger Ubuntu mate. Il est littéralement aussi simple qu'une machine Ubuntu standard d'installer ROS. Je ne sais pas pourquoi vous avez besoin d'un lien vers un forum ... C'était pour un projet d'école sur des dépôts privés (donc, le code source ROS n'est pas public), mais Ubuntu mate est accessible au public. Voici un autre lien , plus spécifique .
thatrobotguy
-2

Oui,

retrouvez le téléchargement ici:

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

y compris le pilote framebuffer pour l'écran TFT C-Berry

Martin
la source
Désolé Martin, mais les réponses de lien seulement ne sont pas vraiment très utiles sur Stack Exchange, si vous citez les informations pertinentes de la page (il est sous licence CC-BY-SA) votre réponse serait beaucoup plus utile, et vos votes négatifs pourraient obtenir renversé.
Mark Booth