Il est composée de deux cartes, reliées entre elles par des headers… soudés 🙁 Décidément, ils font un peu tout bizarrement chez Aisoy 😕 Ces deux cartes sont respectivement :
- une carte de développement Freescale FRDM-KL25Z
- une carte d’I/O
Ces deux cartes communiquent via des interfaces USB, très certainement en virtual serial port
La carte Freescale
Elle est architecturée autour d’un Cortex M0, et peut se programmer à l’aide de l’environnement mBed (ce qui explique la procédure de mise à jour du firmware décrite sur le site Aisoy.
Elle présente par ailleurs des capacités originales :
- un slider tactile (à droite sur la photo) et qui semble être exploité par les 3 capteurs de toucher de l’Aisoy
- une LED RGB
- un accéléromètre
- des connecteurs d’extension au format Arduino
La reprogrammation utilise le mécanisme OpenSDA, qui simule un mass storage. Reliée à un ordinateur via USB, la carte est vue comme un disque USB sur lequel il suffit de copier le binaire.
L’interfaçage de cette carte avec ROS est fournie dans le stack aisoy_sensorimotor. Le module freedom_driver.py définit une classe nommée Arduino, sans doute inspirée par le stack ros_arduino_bridge, qui gère le dialogue via la liaison série over USB, tout en proposant des méthodes reproduisant les digitalRead et consorts chères aux Arduinistes. La partie ROS de ce stack founit un node correspondant qui expose les différents services utiles aux interactions avec le robot :
L’exploration des sources de ce stack permet de découvrir que le dialogue entre la RasPi et la Freescale (aka freedom) est basé sur des messages ASCII, composés d’une commande sur un caractère suivie de ses paramètres séparés par des blancs et terminée par un CR. La définition des commandes est stockée dans le parameter server de ROS, sous l’id commands du namespace freedom. On peut les récupérer via :
Du coup on peut s’amuser en direct avec les commandes :
$ echo "r 1 0 1" > /dev/ttyACM0
déplace le servo 1 (rotation de la tête) en position 0 en 1 seconde.
Comment on connaît les paramètres ? En continuant d’étudier le module freedom_driver.py, et plus précisément la ligne ack = self.execute_ack... de la méthode Arduino.moveServo().
La carte I/O
Il s’agit d’une carte maison développée par Aisoy, dans laquelle on trouve des choses intéressantes :
- un PCA9685 de NXP, générateur PWM 16 canaux 12 bits PWM contrôlé en I2C. C’est fait pour du pilotage de LEDS RGB à l’origine, mais ici ça sert ici à piloter les servos [1]
- un ampli audio LM871 de TI
- un ADS7830 de TI, ADC 8 canaux avec interface I2C
Vos commentaires
# Le 28 juillet 2015 à 11:35, par pascal En réponse à : Le JetPack
Bonjour,
je compte effectivement utiliser le RPi 2 que j’ai , l’OS 4.3 Airos (parce que je n’es pas encore les compétences pour développer mon propre OS) et la carte Servo Pi en attente de réception....
L’idée est de réussir à piger le fonctionnent de l’aisoy(airOS4.3) et de débuter en robotique "social" type JIBO https://www.jibo.com/ , qui me passionne plus que les robots autonome et limité dans leur interaction avec l’Humain.
Il me semble "avec mon niveau de connaissance actuel" que ce genre d’OS et matériel est un début plutôt stable-fiable", à moins que je me trompe ?
# Le 28 juillet 2015 à 22:22, par Eric P. En réponse à : Le JetPack
Je te rassure, je n’ai pas développé d’OS ;) Ce que j’ai évoqué (nROS) est une architecture de communication entre des process Linux tout ce qu’il y a de plus standard.
Je comprends ton intérêt pour les robots sociaux, étant moi-même curieux à titre professionnel quant à leurs possibilités. Airos est dans l’absolu une option intéressante, mais mon constat est que le ticket d’entrée en efforts est un peu cher, car d’une part il faut apprivoiser leur environnement, et d’autre part il faut assimiler ROS. Or si tu remplaces leur carte d’interface par autre chose, cela veut dire que tu vas en plus devoir faire les modifications qui vont bien à leur architecture pour fonctionner avec cette nouvelle base matérielle.
C’est ce raisonnement, ajouté au temps que j’ai passé à explorer ROS sur la RasPi et à lutter contre les bugs de la version d’Airos en ma possession (sans parler des perfs un peu pourries) qui m’a fait considérer repartir from scratch sur quelque chose de plus maitrisé. C’est peut-être prétentieux de ma part, mais je pense que c’est jouable. Juste une question de temps libre en quantité suffisante :/
Cordialement
Eric
Répondre à ce message
# Le 19 juillet 2015 à 13:51, par pascal En réponse à : Le JetPack
bonjour,
Pensez qu’il puisse être possible d’utiliser sur le raspberry la carte Servo pi D’AB electronics
à la place de la carte Aisoy Jet Pack ?
Naturellement il n’y aura pas toute les options apportées par la carte Aisoy Jet Pack, mais au moins
il pourrait être possible de piloter des servo ?
d’avance Merci Pascal.
# Le 19 juillet 2015 à 14:04, par Eric P. En réponse à : Le JetPack
Bien entendu, et cela faisait partie des mods que j’envisageais.
D’autant plus que les capteurs avancés (toucher, accéléro,...) sont gérés par la carte Freescale. Si Aisoy avait eu la bonne idée de ne pas souder les headers en liaison avec leur carte IO, le test serait facile à faire. Ceci étant la carte Freescale est assez facile (j’espère que c’est toujours vrai) à trouver et est peu chère.
Si j’avais du temps, c’est une manip que j’aimerais bien tenter, mais pour l’instant c’est mal parti :/ Si jamais tu fais des essais, tiens-nous au courant.
Cordialement
Eric
# Le 22 juillet 2015 à 11:26, par pascal En réponse à : Le JetPack
Salut,
J’ai contacté la Ste Aisoy, mais il est impossible d’acquérir auprès d’eux la carte aisoy_jet_pack, donc je viens de laissé tomber le plan A, par contre je garde la volonté de construire mon robot "social" avec l’OS airos V4-V5"avenir", du coup ça fait super plaisir de lire ta réponse, j’ai dans mon panier la carte Servo Pi.
sait tu s’il me faut aussi une carte qui contiens le ADS 7830(je comprend pas trop encore a quoi il sert) ?
Lorsque de charge l’OS airos 4.3, j’ai des erreurs ic2, le systeme cherche une communication qu’il ne peut pas établir. et un bout d’un moment le raspberry s’éteint.
Mai si je fait un ’arret defil’ au clavier, j’ai largement le temps d’entrer par la page web d’aisoy1 de modifier la langue... mais il me demande d’enregistrer le aisoy1 avec mail et et S/N de celui-ci, évidement je n’en ai pas !
et je me demande si ça pas être un nouvel obstacle dans le projet ?
# Le 22 juillet 2015 à 14:49, par Eric P. En réponse à : Le JetPack
Cela ne me surprend pas car avec la succession effrénée de versions, il s’agit d’une édition périmée et qui ne doit plus être fabriquée.
Très sincèrement, après avoir pas mal trituré l’objet, et en avoir constaté les performances assez décevantes, je pense qu’il est préférable de dumper les entrailles et de travailler avec une RasPi équipée de cartes d’extensions (celles de chez ABElec ou autres). Ce sera nettement plus ouvert et maîtrisable.
De plus leur choix de ROS est certes intellectuellement séduisant mais pas adaptée à une cible comme la RasPi : ça rame que ça n’en peut plus. ROS est très intéressant dans l’absolu mais dans un contexte de recherche où on souhaite pouvoir substituer un sous-ensemble par un autre sans impacter le reste du système. Dans le cas d’Aisoy la configuration est figée par nature. Alors pourquoi s’embêter ?
D’autant plus qu’il y a beaucoup plus léger et efficace pour faire de l’archi distribuée, modulaire et multi-langages : D-Bus par exemple. Je l’ai pas mal exploré, et ai même basé un projet professionnel dessus (cf http://cstbox.cstb.fr). J’ai aussi commencé à développer nROS (nano-ROS) un substitut light de ROS basé sur D-Bus.
Au vu des expérimentations faites, ma stratégie future est de ne réutilser que la mécanique et l’électronique de base (display, LED RGB,...) et de refaire tout le reste à base de choses mieux maitrisées.
Répondre à ce message