Architecture logicielle de Karotz
Aujourd’hui nous tenons à vous présenter l’architecture logicielle de Karotz, pour vous donner un premier aperçu des possibilités qu’il offrira.
Le système de Karotz repose sur le noyau Linux 2.6, la uClibC et BusyBox sur lequels viennent se greffer différentes bibliothèques système, multimédia, web…
Le lapin wifi Karotz se compose de différents modules indépendants dialoguant entre eux via un système de communication inter-processus, D-Bus en l’occurrence.
- Le contrôleur est le coeur de Karotz, il centralise les données venant de l’extérieur et supervise le fonctionnement général du Karotz.
- Karotz to Karotz est le module de communication VOIP entre Karotz.
- La KarotzVM est la machine virtuelle basée sur V8 (de Google) permettant d’exécuter des applications Javascript embarquées.
- Le Scheduler est l’ordonnanceur de Karotz. Il permet de planifier l’exécution de tâches et d’applications JavaScript dans le temps.
- Le Spirit Manager gère les différentes humeurs et le comportement du lapin.
Les modules suivants permettent d’interagir sur les entrées et sorties du lapin.
- RFID : Détection / Lecture de puces RFID
- Voice : Reconnaissance vocale et synthèse de parole
- Multimedia : lecture de fichiers multimedia depuis le lapin, un périphérique USB ou bien à distance en streaming (http, rtsp, mms)
- Webcam : Prise de photos à la demande
- Button : Détection de différents types de clics
- LED : Contrôle de la LED de Karotz. Gestion de la couleur, intensité et vitesse de pulsation
- Ears : Contrôle des oreilles et détection de mouvements
Il existera deux catégories d’applications possibles pour Karotz.
Les applications distantes
Elles utilisent l’API web (REST), et peuvent êtres développées dans n’importe quel langage et sur n’importe quel système (smartphone, windows, mac, linux, …)
Les applications embarquées
Ces dernières sont développées en JavaScript avec notre SDK et sont exécutées depuis Karotz dans un environnement défini et sécurisé. Une seule application JavaScript pourra fonctionner à la fois.
A lire aussi sur le blog de Karotz :
- Tweets that mention Karotz – Architecture logicielle du lapin wifi Karotz — Topsy.com
- L’architecture logicielle de Karotz, quelques infos | Le journal du lapin
- Karotz – plan de site
- Karotz, le petit lapin sort le 25 avril ! – Shy Robotics
- Jour 2/8 – 1 an d’Abavala avec Karotz « « Abavala !!!Abavala !!!





about 2 years ago
Une seule application JavaScript embarquee…ça ne fait pas un peu juste?
about 2 years ago
Le lapin pourra embarquer autant d’application que vous le souhaiterez. Il ne pourra juste en faire fonctionner qu’une à la fois.
La raison est simple, contrairement aux smartphones les “sorties” se résument aux oreilles, à la led et au haut parleur. Il n’y aurait aucun moyen simple de faire le discernement entre deux applications. C’est une question d’ergonomie pour l’utilisateur.
about 2 years ago
Donc imaginons si une application de type “facebook/twitter” fait parler la Karotz et que l’on reçoit en même temps un message sur l’API web pour bouger une oreille et lire un mp3, il faudra attendre que la première application se termine pour que les messages de la seconde soient exécutés. Comme sur le Nabaztag V2…..
about 2 years ago
Prenons l’exemple d’un smartphone avec “écran”. Il est possible de faire tourner plusieurs applications en même temps ET les identifier grâce à des retours de l’interface graphique. Cela vaut pour un ordinateur classique ou pour tout ce qui a une sortie plus complexe que le trio oreilles/led/HP.
Prenons maintenant le Karotz. Si plusieurs applications se mettent à fonctionner en même temps, vous n’avez plus la moindre idée de la signification d’un mouvement d’oreille si vous avez 50 applications installées sur votre Karotz qui se mettent à fonctionner en même temps. C’est un choix que nous avons fait pour gagner en ergonomie. Et puis honnêtement, 50 applications qui tourneraient en même temps, ça ne serait pas un peu le bazar ?
Donc, vous recevrez donc les messages à la suite tout simplement mais pas en même temps.
about 2 years ago
S’il peut bouger les oreilles, faire clignoter sa Led, et parler en même temps dans la même appli, ça me va.
about 2 years ago
C’est l’idée
about 2 years ago
Y aura-t’il une possibilité de sortie de signal par un des port usb ?
De sorte à pouvoir contrôler son pc par le biais du lapin, à la manière du mirror.
about 2 years ago
Pour l’USB, pas pour le moment.
Par contre, l’utilisation du Wifi ou de l’Ethernet permettra tout type d’application grâce au SDK ou à l’API web. Que ça soit vers le Karotz ou vers l’extérieur. Seule limite, l’imagination des développeurs
about 2 years ago
Mince, je ne pourrais pas branche mon Arduino sur le port USB…
Les possibilités d’utilisation aurait ete tres tres interessantes…..
about 2 years ago
L’idée est cependant à l’étude
about 2 years ago
Bonsoir, Linux magazine fait reference ce mois-ci au mirror et regrette l’obligation d’utiliser les serveurs violet pour l’usage, pourras t’on avec un Karotz, controler son père par une vm ??
Est-ce que Karatz sera limité au même rfid que son père ?
Est-ce que la webcam sera motorisé ??
Qu’en est il des licences serait-ce du libre ??
Continuez !!!
about 2 years ago
Bonsoir, Linux magazine fait reference ce mois-ci au mirror et regrette l’obligation d’utiliser les serveurs violet pour l’usage, pourras t’on avec un Karotz, controler son père par une vm ?
Avec une VM non, mais avec l’API et SDK oui. Un Karotz pourra même se connecter et contrôler autant de Karotz/Nabaztag que vous voudrez.
> Très bonne lecture
about 2 years ago
Est-ce que Karatz sera limité au même rfid que son père ?
> Oui pour le moment.
Qu’en est il des licences serait-ce du libre ?
> Nous utilisons de l’open source oui. Mais notre code ne le sera pas complètement. Seule la partie touchant à du code sous license GPL sera open source.
about 2 years ago
Bonjour
Je suis developpeur sur http://www.zcripts.com (que vous devez connaitre, je pense, enfin j’espère).
On utilise actuellement l’API mis à notre disposition. Pour Karotz, l’api restera-t-elle la même, ou est-ce qu’il va falloir revoir tous nos scripts ?
Si c’est le cas, est-ce qu’il serait possible d’avoir les specs de la nouvelle api ? eventuellement même avant la sortie de Karotz histoire que le max soit prêt pour sa sortie ?
about 2 years ago
Pour Karotz, l’api restera-t-elle la même, ou est-ce qu’il va falloir revoir tous nos scripts ?
> Il va falloir hélas revoir vos scripts pour le Karotz
Si c’est le cas, est-ce qu’il serait possible d’avoir les specs de la nouvelle api ?
> Ça va venir ! On espère avant la sortie.
about 2 years ago
+1
Qu’en est-il de la rétro-compatibilité pour l’API ?
Autres questions : quel type de processeur pour le Karotz ?
Un NDK sera-t-il mis à disposition ?
about 2 years ago
Qu’en est-il de la rétro-compatibilité pour l’API ?
Il n’y aura pas de rétro-compatibilité pour l’API du Nabaztag. Lorsque les Nabaztag basculeront sur les serveurs de Karotz, il faudra utiliser la nouvelle API.
quel type de processeur pour le Karotz ?
C’est un arm920t
Un NDK sera-t-il mis à disposition ?
Non.
about 2 years ago
Merci bien pour les réponses
about 7 months ago
Ma question serait plutôt : pourquoi du JavaScript ?
Je travaille dans l’informatique embarquée, j’utilise principalement du C, l’Ada est dédié à l’embarqué aussi, je comprends même qu’on puisse utiliser du Java… mais du JavaScript pour de l’embarqué ???
Et sinon, à quoi sert le Choreography Manager ? Le lapin peut danser, ou quelque chose comme ça ?
about 7 months ago
Le langage Javascript a été choisi pour créer les applications embarquées dans le lapin, parce que c’est le langage le plus accessible au plus grand nombre de personnes : nous ne souhaitions pas réserver la création d’applications à des programmeurs dont c’est la profession et qui ont l’habitude d’outils de développement complexes. C’est un langage facile à apprendre et à “tester”, dans n’importe quel navigateur Internet.
Le Choreography Manager permet quant à lui d’enchaîner simplement plusieurs actions “asynchrones”, nécessitant des échanges (aynschrones) avec la plateforme Karotz.
about 6 months ago
D’accord. C’est un module qu’on a besoin de contrôler ou c’est géré automatiquement (comme un ordonnanceur?) ?
Du javascript, pour les débutants. Pourquoi pas après tout, c’est vrai que c’est plutôt simple (j’avoue que j’aurais bien aimé démarrer avec ça plutôt qu’avec un basic qui était à mille lieux de la vraie programmation).
En fait, maintenant que j’ai enfin pu démarrer mon karotz, lui installer des applis, et commencer la prise en main le SDK, je comprends à peu près comment est foutu le truc.
Par contre, le Karotz est obligé d’être connecté pour lancer des applis ?
about 6 months ago
Bonjour Watchinofoye,
La gestion des actions / échanges asynchrones via le Choregraphy Manager est en effet faite automatiquement
Par contre, Karotz doit effectivement être connecté pour lancer des applications. En particulier, même en cours de développement, le Karotz a besoin d’être relié à Internet pour accéder aux services de TTS (text to speech) ou d’ASR (commandes vocales).
Au plaisir en tout cas de cous compter parmi les développeurs d’applications pour Karotz