Article de reference

Webbots

Webots est un simulateur de robot 3D gratuit et open source utilisé dans l'industrie, l'éducation et la recherche. Le projet Webots a débuté en 1996, initialement développé par ...

Webots est un simulateur de robot 3D gratuit et open source utilisé dans l'industrie, l'éducation et la recherche.

Le projet Webots a débuté en 1996, initialement développé par le Dr Olivier Michel à l'École polytechnique fédérale de Lausanne ( EPFL ) , puis à partir de 1998 par Cyberbotics Ltd. en tant que logiciel sous licence propriétaire. Depuis décembre 2018, il est publié sous la licence libre et open source Apache 2.

Webots comprend une vaste collection de modèles de robots, de capteurs, d'actionneurs et d'objets librement modifiables. De plus, il est également possible de construire de nouveaux modèles à partir de zéro ou de les importer à partir d'un logiciel de CAO 3D. Lors de la conception d'un modèle de robot, l'utilisateur spécifie à la fois les propriétés graphiques et physiques des objets. Les propriétés graphiques comprennent la forme, les dimensions, la position et l'orientation, les couleurs et la texture de l'objet. Les propriétés physiques comprennent la masse, le facteur de frottement, ainsi que les constantes de ressort et d'amortissement . La dynamique des fluides simple est présente dans le logiciel.

Webots utilise un fork de l'ODE ( Open Dynamics Engine ) pour détecter les collisions et simuler la dynamique des corps rigides. La bibliothèque ODE permet de simuler avec précision les propriétés physiques des objets telles que la vitesse, l'inertie et le frottement.

Webots comprend un ensemble de capteurs et d'actionneurs fréquemment utilisés dans les expériences robotiques, par exemple des lidars, des radars, des capteurs de proximité , des capteurs de lumière, des capteurs tactiles, des GPS , des accéléromètres , des caméras, des émetteurs et des récepteurs, des servomoteurs (rotatifs et linéaires), des capteurs de position et de force, des LED, des pinces, des gyroscopes, des boussoles, des IMU, etc.

Les programmes du contrôleur de robot peuvent être écrits en dehors de Webots en C , C++ , Python , ROS , Java et MATLAB à l'aide d'une API simple.

Webots offre la possibilité de prendre des captures d'écran et d'enregistrer des simulations. Les mondes Webots sont stockés dans des fichiers *.wbt multiplateformes dont le format est basé sur le langage VRML . Il est également possible d'importer et d'exporter des mondes et des objets Webots au format VRML. Les utilisateurs peuvent interagir avec une simulation en cours d'exécution en déplaçant des robots et d'autres objets avec la souris. Webots peut également diffuser une simulation sur des navigateurs Web à l'aide de WebGL .

Simulation d'un robotis-Op3 dans Webots
Simulation d'un Pioneer 3-AT (Adept Mobile Robots) monté avec un SICK LMS 291 dans Webots
Simulation d'un Pioneer 3-DX (Adept Mobile Robots) dans Webots
Un modèle de simulation du robot PR2 dans Webots.
Un modèle de simulation du robot Khepera III avec pince dans Webots.
Un modèle de simulation d'un robot salamandre dans Webots qui a une peau déformable.
Un modèle de simulation du robot Boston Dynamics Atlas dans Webots.

Interface Web

Depuis le 18 août 2017, le site robotbenchmark.net propose un accès gratuit à une série de benchmarks robotiques basés sur des simulations Webots via l'interface Web Webots. Les instances Webots s'exécutent dans le cloud et les vues 3D s'affichent dans le navigateur de l'utilisateur. À partir de cette interface Web, les utilisateurs peuvent programmer des robots en Python et apprendre à contrôler les robots en suivant une procédure étape par étape.

Exemple de programmation du contrôleur

Il s'agit d'un exemple simple de programmation de contrôleur C/C++ avec Webots : un comportement trivial d'évitement de collision. Au début, le robot avance, puis lorsqu'un obstacle est détecté, il tourne sur lui-même pendant un moment, puis reprend le mouvement vers l'avant.

#include <webots/robot.h> #include <webots/motor.h> #include <webots/distance_sensor.h>
#define TIME_STEP 64
int main () { // initialiser Webots wb_robot_init ();
// Récupérer le handle et activer le capteur de distance 
WbDeviceTag ds = wb_robot_get_device ( " ds" ) ; wb_distance_sensor_enable ( ds , TIME_STEP ); // Récupérer le handle et initialiser les moteurs WbDeviceTag left_motor = wb_robot_get_device ( " left_motor " ) ; WbDeviceTag right_motor = wb_robot_get_device ( "right_motor" ); wb_motor_set_position ( left_motor , INFINITY ); wb_motor_set_position ( right_motor , INFINITY ); wb_motor_set_velocity ( left_motor , 0.0 ); wb_motor_set_velocity ( right_motor , 0.0 );
// boucle de contrôle 
while ( 1 ) { // lire les capteurs double v = wb_distance_sensor_get_value ( ds );
// si obstacle détecté 
if ( v > 512 ) { // faire demi-tour wb_motor_set_velocity ( left_motor , -600 ); wb_motor_set_velocity ( right_motor , 600 ); } else { // aller tout droit wb_motor_set_velocity ( left_motor , 600 ); wb_motor_set_velocity ( right_motor , 600 ); } // exécuter une étape de simulation wb_robot_step ( TIME_STEP ); }
wb_robot_cleanup (); 
renvoie 0 ; }

Principaux domaines d'application

Modèles de robots inclus

Une liste complète et à jour est fournie dans le guide d'utilisation de Webots.

Compilation croisée et prise en charge du contrôle à distance

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index