Fiche de Nao

Le robot Nao est développé par la société Softbank Robotics. Il a été publiquement présenté la première fois en 2006, ce qui en fait le plus vieux robot d’interaction. C’est un petit robot bipède de 58 cm, et 5 kg. Il s’allume et s’éteint grâce au bouton rond placé sur son torse. Lorsqu’il est allumé, il est possible de connaître l’adresse IP du robot grâce à ce même bouton: en appuyant un coup bref, le robot va donner son nom suivi de son adresse IP s’il est connecté à un réseau.

Voici quelques caractéristiques:

  • autonomie: ~1h
  • degrés de liberté: 25
  • processeur: Intel Atom 1.6Ghz
  • compatibilité: Linux, Mac OS, Windows

Caractéristiques matérielles :

  1. capteurs tactiles:
    • 3 sur la tête (avant, milieu et arrière)
    • 1 sur le dessus de chaque main
    • 1 bumper au bout de chaque pied
    • 1 bouton sur le torse
  2. capteurs vidéos:
    • 1 caméra au dessus des yeux (orientée devant lui)
    • 1 caméra au niveau de la bouche (orientée sur ses pieds)
  3. capteurs sonores:
    • 4 micro sur la tête (de part et d’autre des capteurs tactiles)
  4. haut parleurs:
    • 1 de chaque côté de la tête
  5. capteurs de proximité:
    • 4 sonars sur le torse
  6. connectivité:
    • 1 prise RJ45 derrière la tête
    • 1 prise USB derrière la tête
    • connexion Wifi
  7. orientation:
    • 1 accéléromètre sur trois axes
    • 2 gyromètres

Caractéristiques Logicielles :

Le système d’exploitation de Nao est une distribution GNU/Linux basée sur Gentoo, développée spécifiquement pour les besoins de la robotique. Celui-ci s’appelle NAOqi.

Pour développer un programme sur Nao, il faut utiliser le logiciel constructeur Chorégraphe. Il existe d’autres moyens de programmer Nao, mais l’utilisation de Chorégraphe reste la plus simple et la plus rapide pour un novice. Ce logiciel permet de faire de la programmation graphique, à l’aide de boîtes reliées les unes aux autres, mais aussi une programmation classique en Python ou C++.

Il existe une librairie de boîtes existantes de base dans Chorégraphe (box libraries), qui permet une programmation simple. Mais il est aussi possible de créer des boîtes sur mesure, en faisant un clique droit dans la fenêtre principale de Chorégraphe, puis “create new box”. Il existe quatre type majeur de boîtes: Diagram, Timeline, Python, Dialog.

Il est important de développer un peu plus les boîtes de dialogue, étant donné leur caractère spécifique au développement des robots Nao et Pepper. En effet, une boîte de diagramme permet simplement de combiner plusieurs boîtes ensemble pour créer une boîte sur mesure plus complexe. La timeline, quant à elle, permet de faire des animations, ou établir une chronologie entre plusieurs actions. La boîte Python, comme son nom l’indique, permet d’intégrer des scriptes en Python, directement dans le programme.

Développons maintenant un peu plus les boîtes de dialogue. Elles permettent d’écrire ce que le robot va dire, en fonction de ce qu’il écoute, ce qui peut être un mot dit par la personne qui interagit avec le robot, ou un événement capté par la boîte. Ces événements sont typiquement l’entrée ou la sortie de la boîte de dialogue, qui sont, par défaut “onStart” (pour l’entrée) et “onStopped” (pour la sortie). Libre au développeur de modifier ou ajouter des entrées et sorties de sa boîte. Pour écouter un évènement, il suffit de le précéder de “e:” , pour lever un événement, il faut le précéder de $ et lui donner une valeur.

Typiquement:

u:(e:onStart) Bonjour $onStopped=1

Dès lors que la boîte est stimulée par son entrée “onStart”, le robot dira “Bonjour” puis sortira du dialogue par la sortie onStopped avec la valeur 1, “u:” étant le code nécessaire à chaque début d’écoute du robot. De manière analogue à l’exemple précédent, il est possible d’écouter ou de lever n’importe quel événement. Il est aussi possible d’écouter plusieurs événements, ou de les combiner avec l’écoute de mots, de récupérer de valeurs dynamiques ou de les utiliser… Pour plus d’informations, se référer à la documentation officielle: qiChat. En dernier point, il est aussi possible de varier le discours, avec des balises telles que:

pauses en millisecondes : \pau=100\

vitesse : \rspd=130\ 130 -> rapide, 100 -> normal

timbre: \vct=130\ 130 -> aigu, 100 -> normal

 

Pour plus d’information, en général sur les API NAOqi, se référer à la documentation.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *