Utiliser les robots dans un simulateur

Robots Poppy simulés

Une version simulée de chaque robot Poppy est disponible (Humanoid, Torso, Ergo Jr).

On peut utiliser deux « simulateurs » avec les robots Poppy : CoppeliaSim : un simulateur de robotique avec de nombreuses possibilités et très utilisé un visualisateur web-3D : plus léger, mais sans simulation physique

Pour le moment seul l'Ergo Jr peut être utilisé dans le visualiseur web. Si vous souhaitez simuler d’autres créatures, vous devez utiliser CoppeliaSim. On souhaiterai prendre en charges les autres robots, mais aucun calendrier n'est fixé sur ce point là.

L'utilisation d'un simulateur est très intéressante. Cela permet de développer et d'essayer des programmes sans avoir besoin d'un vrai robot. Plus particulièrement, cela permet :

  • De découvrir et tester les possibilités du robot sans avoir à dépenser d'argent.
  • De travailler dans un contexte où plusieurs utilisateurs partagent un robot. Par exemple, dans une salle de classe, chaque élève peut travailler en utilisant le simulateur et venir valider son programme sur le robot tangible.
  • D'économiser du temps dans la conception et réalisation d'expériences.

Nous essayons de faire en sorte que le passage du robot virtuel au tangible soit aussi transparente et simple que possible. La plupart des exemples de programmation et de la de documentation du code sont ainsi valable aussi bien pour les robots simulés que tangibles. Le chapitre de la simulation au robot tangible vous guidera dans les étapes pour adapter votre programme fonctionnant dans le simulateur vers l'usage d'un robot tangible.

Si vous souhaitez utiliser des robots Poppy dans un simulateur vous devrez installer le simulateur ainsi que librairies logicielles sur votre ordinateur.

Installer les logiciels nécéssaire

: Une section entière est dédiée à comment installer tout en local dans le but d'utiliser un simulateur si vous avez besoin de plus de renseignements.

Alors que les robots physiques disposent d'un ordinateur embarqué pré-installé, vous devez installer certaines bibliothèques logicielles sur votre ordinateur pour contrôler les créatures Poppy simulées. Vous n'aurez pas accès à l'interface web du robot. Vous devrez lancer manuellement les différents services pour commencer à programmer votre robot (le terminal Jupyter pour les notebooks Pyhton ou le terminal Snap ! ).

Pour commencer à contrôler un robot Poppy, que ce soit en utilisant CoppeliaSim ou le visualiseur web, vous aurez besoin :

  • de Python > = 3.5
  • de la bilbiothèque Python nommée pypot
  • de la bibliothèque Python correspondant à votre créature (p. ex. poppy-ergo-jr).

Avec CoppeliaSim (anciennement V-REP)

CoppeliaSim est un simulateur de robotique très populaire aux nombreuses fonctionnalités. Il est très utilisé dans pour la recherche ou des fins éducatives. De plus, il est disponible gratuitement avec la license éducative. Il peut être téléchargé depuis le site de Copellia Robotics (fonctionne sous Mac OS, Windows et GNU/Linux).

Etant donné que CoppeliaSim effectue une simulation physique ainsi qu'un rendu graphique du robot, il nécessite un ordinateur puissant (surtout pour la carte graphique).

Poppy humanoide dans  CoppeliaSim

Tous les principaux robots Poppy sont disponibles dans CoppeliaSim : Poppy Humanoid Poppy Torso * Poppy Ergo Jr

V-REP permet d’apprendre à commander les moteurs, interroger les capteurs, mais aussi d’interagir avec l’environnement simulé. On peut commander les robots simulés en Python, avec Snap ! ou par le biais de l’API REST. Voici quelques exemples de ce que la communauté a déjà pu faire avec : Une activité pédagogique pour découvrir les différents moteurs de votre robot et comment ils peuvent être contrôlés. Une expérience scientifique, où un Poppy Torso apprend comment pousser un cube sur une table en face de lui.

Torso  CoppeliaSimTorso Explauto Res

Même si nous essayons de reproduire le comportement et le fonctionnement du robot, quelques différences persistent. Par exemple, si vous faites marcher un robot dans la simulation, cela ne veut pas dire que le robot physique marchera (et vice-versa).

Pour démarrer le robot simulé, il faut dans un premier temps ouvrir CoppeliaSim et instancier le robot avec simulateur = « vrep ». CoppeliaSim va ouvrir une popup qui vous devrez fermer pour permettre la communication entre CoppeliaSim et Python.

from pypot.creatures import PoppyErgoJr
robot = PoppyErgoJr(simulator='vrep')

Si vous souhaitez contrôler un robot simulé via Snap!, vous pouvez également le lancer directement depuis l' interface de ligne de commande poppy-services dans votre terminal (appelée invite de commande sous Windows) :

poppy-services --vrep --snap poppy-ergo-jr

En utilisant notre visualiseur web

Notre visualiseur web permet d'afficher une représentation 3D d’un robot Poppy. Pour ce faire, vous aurez besoin de le connecter soit à un vrai robot (via l’API REST) soit à un robot simulé sur votre ordinateur. Vous devez simplement définir la variable host depuis l’interface web pour pointer sur l’adresse de votre robot.

Présentation Simu Poppy

En Python, vous pouvez démarrer le robot simulé avec :

from pypot.creatures import PoppyErgoJr
robot = PoppyErgoJr(simulator='poppy-simu')

Ajouter un argument use_snap = True si vous souhaitez démarrer l'API Snap.

Si vous souhaitez contrôler un robot simulé avec Snap! ou avec Scratch, vous pouvez également le lancer directement avec l'outil interactif poppy-services dans un terminal (appelée ligne de commande sous Windows) :

poppy-services --poppy-simu --snap poppy-ergo-jr
poppy-services --poppy-simu --scratch poppy-ergo-jr

Vous devrez sélectionner l'API que vous souhaitez utiliser avec la case "API". Par défaut, l'API REST est utilisée (pour Scratch), mais vous devrez sélectionner l'API Snap pour contrôler votre robot avec Snap.

En ce qui concerne CoppeliaSim, vous pouvez contrôler votre robot en utilisant Python, Scratch, Snap!, ou l’API REST. Cependant il n’y a pas de support pour la simulation physique; c'est plus léger en terme d'exécution mais vous ne serez pas en mesure d’interagir avec des objets.

Voici un exemple avec Python :

Poppy simu en Python

results matching ""

    No results matching ""