La meilleure plateforme est..... Aucune

Introduction

Cela fait des années que je me suis mis à l'IoT (Internet of Thing), mais toujours dans une approche orientée Intelligence Artificielle : Robotique mobile, Capteurs physiques, etc... Mais quel est la meilleure plateforme ? Quelle est la meilleure solution entre le RaspBerry Pi et le Jetson Nano ?


Arduino Nano, Arduino Mega 2560, Raspberry pi 3+, Raspberry 4, et Jetson Nano.

Mon approche a toujours été de distribuer mes process entre plusieurs hardwares et dans ce cas, après de nombreux essais, ma conclusion est simple : Aucun n'est meilleur, car ils sont tous spécifiques en terme d'application. 


Raspberry pi 4  contre Jetson Nano

Voila les deux dernières plateformes qui font le buzz.   

Le Raspberry Pi 4 

Le Raspberry Pi 4 est un Raspberry Pi mais 4 fois plus rapide, avec 4 fois plus de mémoire, que le précédent, avec le même OS. L'impression au début est fantastique, même si il chauffe énormément. Quand je fais tourner mes agents (Data Science, Intelligence Artificielle) la performance est top. Impressionnant, tant qu'on n'utilise de réseaux neurones.  

Le Jetson Nano 

Le Jetson est une sorte de Raspberry Pi avec 128 cores cuda, donc un GPU fait pour faire de l'IA. Quand on le prend en main, on se retrouve sur un Ubuntu. Mais l'impression est désagréable : quand on a l'habitude de travailler sur un PC Ubuntu, passer sur un Jetson Nano, c'est se retrouver sur une machine beaucoup plus lente, d'autant qu'on a des applications classiques fonctionnant sur la Jetson Nano... Si on utilise pas le GPU, le Jetson Nano est globalement moins performant que le RaspBerry Pi 4. Par contre si vous faites de l'intelligence artificielle, des réseaux neurones (entrainés sur une autre machine) là le Jetson Nano est sans concurrence, tant la performance est énorme. 


"Je vous mets quoi avec ?" "Bah les deux monsieur !" 

Développant des agents, au final je préfère combiner les deux : Le Raspberry Pi 4 pour les traitements déterministes et de la vision non AI ; Le Jetson Nano pour la mise en place de réseaux neurones, un peu comme le cerveau droit et le cerveau gauche, chacun étant utilisé pour ce qu'il fait de mieux ....

Quid des Arduinos ?

Contrairement aux Jetson et Raspberry Pi, les Arduinos disposent de convertisseurs analogiques / numériques embarqués. Certaines versions sont extrêmement puissantes. Mais au final, je préfère mélanger des Nano pour des fonctions "primaires" et des Mega 2560 avec une prise Ethernet pour se connecter aux réseaux.  

Conclusion

En robotique ou en Intelligence artificielle, mon approche consiste à mélanger tout cela. Un gros PC comme cerveaux central, quelques Raspberry Pi et Jetson Nano, des de nombreux Arduinos pour les actionneurs et capteurs analogiques.

Au final les avantages/désavantages de chacun :

- Jetson Nano : les + Le GPU et Ubuntu ; les - Pas de wifi, processeur ARM pas assez rapide
- Raspberry Pi 4 : les + Le confort, le wifi, le CPU ;  Les - Pas de GPU
- Arduino Mega 2560 + Shield Ethernet  : les + Robustesse, stabilité, et pas de micro SD; les - Micro contrôleur donc pas de développement sans machine extérieure
- Arduino Nano : les + Robustesse, stabilité, et pas de micro SD; les - Micro contrôleur donc pas de développement sans machine extérieure

Mon architecture est pyramidale :

  • Une grosse machine (le cerveau) pour les calcules de haut niveaux et les comportements
  • Un à x Raspberry pi pour implémenter des agents en Python NLP et CMU Sphynx (dans mon cas 3 Raspberry Pi )
  • Un à x Jetson Nano pour implémenter des réseaux neurones RNN/CNN (dans mon cas  2)
  • Des Arduino Mega 2560 pour des pilotages complexes des parties analogiques (dans mon cas 4)
  • Une floppée de nano pour rendre intelligence chaque actionneur
Le flux de décision ressemble à cela : 
  1. Le gros ordinateur dit "je veux aller dans telle pièce"
  2. Le Raspberry Pi ou le Jetson Nano calcule la stratégie de déplacement et l'exécute en disant "Va tout droit"
  3. Le Arduino Mega 2560 transforme "Va tout droit" en instruction à chaque moteur en composant cela avec des sensors (sonic, gyro)
  4. Les nano pilotes finement chaque actionneur et moteur

C'est l'architecture que j'ai 


Voila ce qu'on peut réaliser ....(Un Raspberry Pi + Arduino ) 


Commentaires