Webots - Webots
Desarrollador (es) | Cyberbotics Ltd. |
---|---|
Lanzamiento estable | Webots R2021b / 16 de julio de 2021 |
Repositorio | GitHub |
Sistema operativo | Windows 10, Linux de 64 bits, Mac OS X 10.14, 10.13 |
Tipo | Simulador de robótica |
Licencia | Apache 2 |
Sitio web | Página web de Cyberbotics |
Webots es un simulador de robot 3D gratuito y de código abierto que se utiliza en la industria, la educación y la investigación.
El proyecto Webots comenzó en 1996, inicialmente desarrollado por el Dr. Olivier Michel en el Instituto Federal Suizo de Tecnología ( EPFL ) en Lausana , Suiza y luego a partir de 1998 por Cyberbotics Ltd. como software propietario con licencia. Desde diciembre de 2018, se lanza bajo la licencia Apache 2 gratuita y de código abierto .
Webots incluye una gran colección de modelos de robots, sensores, actuadores y objetos libremente modificables. Además, también es posible construir nuevos modelos desde cero o importarlos desde el software CAD 3D. Al diseñar un modelo de robot, el usuario especifica las propiedades gráficas y físicas de los objetos. Las propiedades gráficas incluyen la forma, dimensiones, posición y orientación, colores y textura del objeto. Las propiedades físicas incluyen la masa, el factor de fricción, así como las constantes de amortiguación y resorte . La dinámica de fluidos simple está presente en el software.
Webots utiliza una bifurcación del ODE ( Open Dynamics Engine ) para detectar colisiones y simular la dinámica de la carrocería rígida. La biblioteca ODE permite simular con precisión las propiedades físicas de los objetos, como la velocidad, la inercia y la fricción.
Webots incluye un conjunto de sensores y actuadores que se utilizan con frecuencia en experimentos robóticos, por ejemplo, lidares, radares, sensores de proximidad , sensores de luz, sensores táctiles, GPS , acelerómetros , cámaras, emisores y receptores, servomotores (rotativos y lineales), sensor de posición y fuerza. , LED, pinzas, giroscopios, brújula, IMU, etc.
Los programas del controlador del robot se pueden escribir fuera de Webots en C , C ++ , Python , ROS , Java y MATLAB utilizando una API simple.
Webots ofrece la posibilidad de realizar capturas de pantalla y grabar simulaciones. Los mundos de Webots se almacenan en archivos multiplataforma * .wbt cuyo formato se basa en el lenguaje VRML . También se pueden importar y exportar mundos y objetos de Webots en formato VRML. Los usuarios pueden interactuar con una simulación en ejecución moviendo robots y otros objetos con el mouse. Los webots también pueden transmitir una simulación en navegadores web utilizando WebGL .
interfaz web
Desde el 18 de agosto de 2017, el sitio web robotbenchmark.net ofrece acceso gratuito a una serie de pruebas comparativas de robótica basadas en simulaciones de Webots a través de la interfaz web de Webots. Las instancias de Webots se ejecutan en la nube y las vistas 3D se muestran en el navegador del usuario. Desde esta interfaz web, los usuarios pueden programar robots en Python y aprender a controlarlos en un procedimiento paso a paso.
Ejemplo de programación del controlador
Este es un ejemplo simple de programación de controladores C / C ++ con Webots: un comportamiento trivial para evitar colisiones. Inicialmente, el robot corre hacia adelante, luego, cuando se detecta un obstáculo, gira alrededor de sí mismo durante un tiempo y luego reanuda el movimiento hacia adelante.
#include <webots/robot.h>
#include <webots/motor.h>
#include <webots/distance_sensor.h>
#define TIME_STEP 64
int main() {
// initialize Webots
wb_robot_init();
// get handle and enable distance sensor
WbDeviceTag ds = wb_robot_get_device("ds");
wb_distance_sensor_enable(ds, TIME_STEP);
// get handle and initialize the motors
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);
// control loop
while (1) {
// read sensors
double v = wb_distance_sensor_get_value(ds);
// if obstacle detected
if (v > 512) {
// turn around
wb_motor_set_velocity(left_motor, -600);
wb_motor_set_velocity(right_motor, 600);
}
else {
// go straight
wb_motor_set_velocity(left_motor, 600);
wb_motor_set_velocity(right_motor, 600);
}
// run a simulation step
wb_robot_step(TIME_STEP);
}
wb_robot_cleanup();
return 0;
}
Principales campos de aplicación
- Creación rápida de prototipos de robots con ruedas y patas
- Investigación sobre locomoción robótica
- Inteligencia de enjambre (simulaciones de múltiples robots)
- Vida artificial y robótica evolutiva
- Simulación de comportamiento adaptativo
- Robótica modular autoconfigurable
- Entorno experimental para visión artificial
- Concursos de enseñanza y programación de robots
Modelos de robot incluidos
En la guía del usuario de Webots se proporciona una lista completa y actualizada.
- AIBO ERS7 y ERS210, Sony Corporation
- BIOLOID (perro), Robotis
- Boe-Bot
- DARwIn-OP, Robotis
- Disco electrónico
- Hemisson
- HOAP-2, Fujitsu Limited
- iCub , RobotCub Consortium
- iRobot Create , iRobot
- Katana IPR, Neuronics AG
- Robot móvil Khepera I, II, III, K-Team Corporation
- KHR-2HV, KHR-3HV, Kondo
- Koala, Corporación K-Team
- Lego Mindstorms (modelo RCX Rover)
- Magallanes
- Nao V2, V3, Aldebaran Robotics
- MobileRobots Inc Pioneer 2, Pioneer 3-DX, Pioneer 3-AT
- Puma 560, Unimate
- Explorador 2
- Camarón III, BlueBotics SA
- Surveyor SRV-1, Surveyor Corporation
- youBot, KUKA
Compatibilidad con compilación cruzada y control remoto
- Disco electrónico
- DARwIn-OP y Robotis OP2
- NAO
- Thymio II