Quel cerveau pour vos robots ?
#1
Posté 15 janvier 2014 - 06:22
C'est incontournable pour tout robot que d'avoir une caboche bien remplie pour accomplir sa fonction. Mais comme il en existe de toute sorte, je suis curieux de savoir quel(s) est(sont) votre(vos) microcontrôleur(s), FPGA, DSP etc. préféré(s) pour concevoir vos robots ?
Pourquoi l'avez vous choisi ? (prix, nombre d'E/S, langage, etc.) ?
Quel est son inconvénient majeur (et les autres)?
Je me disait simplement que cela pourrait aider bon nombre de roboticien cherchant à étendre leurs champ de vision sur le sujet.
-------------
Mes µC fétiche: Le 16F84A avec lequel j'ai appris les bases de l'ASM (merci Bigonoff). Le module ROVIN RV1000.
Pourquoi l'avoir choisi: Pour le 16F84A, à l'époque c'était pour le prix assez faible. Le ROVIN c'est pour sa puissance de calcul et sa grande quantité d'E/S.
Quel est son inconvénient majeur (et les autres): Pour le 16f84A c'est ses faibles capacités de calculs (bon à l'époque c'était pas mal, surtout pour apprendre). Le ROVIN c'est pour l'impossibilité de gérer les bibliothèques et son IDE à ch*** sans parler du fait de la communauté inexistante!
N'oubliez jamais que "Ban Ki-moon n'attrape pas mousse"
#2
Posté 18 janvier 2014 - 05:39
J'ai déjà utilisé:
Sur BOB2, il y a ~12 ans, un PC portable de récupération 486. C'était mes débuts, et ça m'a vraiment appris les bases de la robotique. Mais bon, trop encombrant, interfaces pas faciles (port parallèle + port série essentiellement). Mais de nos jours, ça n'a plus trop d'intérêt. A moins d'avoir besoin de grosse puissance de calcul, et d'embarquer un mini-PC par exemple.
Sur BOB3, j'ai utilisé une Foxboard (LX8-32 à l'époque).Très bien, car pas mal de RAM pour faire des algos sympas. On fait tourner un vrai OS dessus, donc on peut faire plein de choses (connexion Internet, serveur web, transfert de fichiers, logs...). Interfaces limitées (pas de sortie PWM, d'acquisition analogique), alors il était épaulé par un PICBASIC relié en série.
Sur BOB4, j'ai utilisé un "Embedded Master" de GHI-Electronics. Ca a été remplacé par ça. C'est sans doute une erreur, car ça n'est pas du tout temps réel, alors que pour faire un drone, il faut quelque chose de rapide. Pour faire des calculs et des acquisitions de capteurs, c'est peu optimisé. Par contre, pour faire des choses complexes (afficheur, connexion Internet), c'est pratique, c'est fait pour. Mais dans l'ensemble, bof. Ca se programme en C#.
Toujours sur ce BOB4, j'ai refait entièrement l'électronique de la radiocommande, et j'y ait intégré un PICBASIC. C'est une application très simple. Les picbasic sont très facile à prendre en main. Mais un Arduino fait tout aussi bien.
Pour finir, je vais m'acheter une carte ARIA (Acmesystems), pour une application autre que robotique. L'objectif étant d'avoir un système rapide et intelligent, mais très intégré, prenant peu de place, sur une platine que je ferais moi même, avec des composants USB montés directement sur le PCB, sans connecteur intermédiaire. Il faut pouvoir faire des PCB complexes pour intégrer ça, mais ça peut valoir le coup!
Avant de choisir, il faut se faire une idée concrète de ses besoins.
De quels types d'interface j'ai besoin?
Est-ce que je ferais une logique toute simple (Arduino suffit)? Ou alors des asservissements ultra rapides avec plein de calculs trigos (micro 32 bits)?
Est-ce que j'ai besoin de beaucoup de RAM pour faire des algos complexes (planif trajectoire, traitement d'image).
Leon.
BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)
#4
Posté 18 janvier 2014 - 10:58
Concernant le module Mbed, il y a un truc qui me chiffonne : le compilateur n'est vraiment accessible que par internet? En effet j'ai lu sur le site lextronic que:
"Le cordon USB (livré) vous permettra de raccorder le module "mbed" à votre PC afin d'y télécharger votre application. Celle-ci pourra être développée via un compilateur C++ accessible via Internet (sous environnement Windows™ ou Linux). "
Levend : ça compte pas sauf si tu l'extrait de ta boîte crânienne et que tu le place dans ton robot
N'oubliez jamais que "Ban Ki-moon n'attrape pas mousse"
#5
Posté 19 janvier 2014 - 02:43
Ma solution est d'avoir un cerveau et une moelle épinière.
C'est luxueux, mais c'est pour un projet de robot bipède footballeur.
Le cerveau est :
- soit un ordinateur, avec un logiciel écrit en C, par moi, pour l'écriture et la mise au point de scénarios
- soit un téléphone Android, avec un logiciel écrit en Java, par moi, qui exécute des scénarios
Le cerveau peut :
- envoyer des ordres de mouvement à des moteurs, et allumer et éteindre des diodes
- récupérer des données de capteurs simples, par exemple des boutons, des accéléromètres
- récupérer des images d'une caméra (pas encore programmé)
- faire des choix, des boucles (en cours de programmation)
La moelle épinière est :
- soit une carte Arduino
- soit une carte Pololu Mini Maestro
Le cerveau communique avec la moelle épinière via une liaison Bluetooth.
Au début, je pensais tout faire avec une Arduino. La Uno 3 étant limitée au niveau de la mémoire, j'avais regardé des modèles plus costauds comme la Arduino Mega. Puis j'avais pensé à une Raspberry Pi.
Mais finalement, j'ai vu que l'on trouve des téléphones Android à moins de 100 euros qui contiennent un processeur correct, une caméra, et une liaison blutooth. En plus, avec un seul téléphone, on peut commander plusieurs robots.
Et dans mon cas, le choix de la moelle épinière n'est pas encore totalement fixé. Avec un téléphone, je peux m'adresser à une Arduino ou à une Pololu sans avoir à réécrire de code.
Cela dit, pour des petits robots, il y a certainement des solutions plus simples et plus économiques.
#6
Posté 19 janvier 2014 - 07:14
C'est exactement ça! Il faut impérativement avoir un PC connecté à Internet pour compiler, et l'éditeur/compilateur est dans une page web. L'environnement de développement est très simple (pas de débugger, aucune option de compilation, importation de bibliothèques très simple). Pour les gens qui ne sont pas familiers avec les environnements de développement, et qui ne veulement pas se prendre la tête, c'est idéal. Tu n'as rien à installer, à configurer, c'est opérationnel tout de suite. Et puis tu peux te déplacer de PC en PC, tu retrouveras ton environnement de développement, avec tes programmes. Je comprend que ça ne convienne pas à tout le monde, mais moi j'aime bien.Concernant le module Mbed, il y a un truc qui me chiffonne : le compilateur n'est vraiment accessible que par internet?
C'est aussi conçu dans un esprit "cloud" et "communautaire", pour pouvoir partager ses projets en quelques clics, avec gestion automatique des sous-versions. Et la communauté commence à être importante. C'est rare que des entreprises commerciales (NXP ici) arrivent à mettre en place ce genre de communautés "libres", mais c'est le cas ici. C'est une grosse pub pour eux.
Sinon, avec un Mbed on peut aussi utiliser d'autres outils de développement, puisque le fichier .bin que l'on télécharge vers le Mbed peut être généré par tous compilateurs compatibles avec les micro étudiés. Mais ça n'a dans ce cas plus aucun intérêt à mon avis, dans ce cas autant acheter une platine microcontroleur moins chère (LPC Xpresso).
Ouah! Un bipède footballeur totalement autonome? C'est bien ça? C'est hyper ambitieux comme projet! Ou alors est-ce qu'il sera télécommandé par un humain, ce qui serait déjà très bien?c'est pour un projet de robot bipède footballeur
Tu as plus de détails sur ton projet? Quels composants utilisés (caméra, servos), quels algorithmes, etc...
Leon.
BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)
#7
Posté 19 janvier 2014 - 12:22
La moelle épinière est :
- soit une carte Arduino
- soit une carte Pololu Mini Maestro
Pour ton analogie, ta carte arduino ou pololu tiendrait davantage le rôle de cervelet non ?
Leon, effectivement je saisi les avantages d'un tel modèle mais les inconvénients, pour moi, sont trop grand. Si j'ai une coupure internet pour une raison x ou y je suis marron; De même que si l'entreprise à un problème de serveur ou met la clef sous la porte. Du coup rien me garanti que ce module sera programmable dans 10 ans.
Comme je dis plus haut, je ne parle que pour mon cas personnel, je ne cherche pas à dénigrer ce système.
N'oubliez jamais que "Ban Ki-moon n'attrape pas mousse"
#8
Posté 19 janvier 2014 - 01:19
Dans mon cas, je suis resté dans la sphère Arduino et RaspBerry. L'Arduino, parce que c'était le plus facile pour aborder de l'informatique embarquée, la RaspBerry, parce que j'étais curieux de voir ce que ça vaut et que ça reste du Linux, ce qui ne me pose pas de problèmes.
Lorsque j'aurais du temps, je compte bien essayer de passer directement sur des Atmel AVR et voir si ça vaut le coup de se libérer de la couche Arduino, et tester les PIC. Et à plus long terme, plonger dans les profondeurs de Linux et des distributions pour voir s'il est possible de faire une "distrib robotique". Mais déjà, je vais essayer de finir Froggy, ça serait un pas en avant !
#9
Posté 19 janvier 2014 - 01:24
Voir mes explications dans le fil OlivRobot V3 de la section Robots Bipèdes.Tu as plus de détails sur ton projet? Quels composants utilisés (caméra, servos), quels algorithmes, etc...
Mes cours de biologie sont loin. Je ne me souviens plus très bien des différences. Mais je crois que c'est tout de même la moelle épinière parce que la Arduino ou la Pololu font principalement de la transmission des signaux (vers les moteurs, ou depuis les capteurs). Ces cartes n'adaptent pas les mouvements en fonction de quoi que ce soit. Par exemple, c'est le cerveau qui va gérer l'équilibre du robot en fonction des accéléromètres et des boutons. La Pololu est intéressante parce que d'une part, elle peut commander jusqu'à 24 servos, et d'autre part, parce qu'elle peut recevoir un ordre pour un servo, lui indiquant non seulement la position finale du palonnier à atteindre, mais aussi la vitesse et l'accélération. Avec une Arduino, je pourrais aussi gérer la vitesse et l'accélération mais avec pas mal de lignes de code pour ça.Pour ton analogie, ta carte arduino ou pololu tiendrait davantage le rôle de cervelet non ?
#10
Posté 10 juin 2015 - 12:19
Robot de téléprésence : IOIO-OTG Robot WebRTC
Car RC : AilgorRC
Répondre à ce sujet
0 utilisateur(s) li(sen)t ce sujet
0 members, 0 guests, 0 anonymous users