Webots
Webots | ||
---|---|---|
![]() | ||
Información general | ||
Tipo de programa | Simulación de robots | |
Desarrollador | Cyberbotics | |
Lanzamiento inicial | 1996 | |
Licencia | Apache 2 | |
Información técnica | ||
Programado en | C++ | |
Versiones | ||
Última versión estable | R2023a ( 29 de noviembre de 2022 (1 año, 8 meses y 27 días)) | |
Enlaces | ||
Sitio web oficial Repositorio de código Seguimiento de errores | ||
[editar datos en Wikidata] |
Webots es un software de código abierto para simular robots móviles ampliamente usado con fines educativos. El proyecto Webots fue iniciado en 1996 por el Dr. Oliver Michel en el instituto federal Suizo de Tecnología EPFL en Lausanne. Una de sus principales ventajas es que permite al usuario interactuar con el modelo durante la simulación.
Webots hace uso de ODE (Open Dynamics Engine) para la detección de colisiones y simulación dinámica del cuerpo rígido. La biblioteca ODE permite simular la física de los objetos.
El programa Webots permite construir robots a través de la definición geométrica y dinámica de las partes que lo componen. Igualmente permite especificar colores y texturas para una mejor visualización.
Igualmente incluye una cantidad de sensores y actuadores de uso frecuente en robótica, con sus respectivos modelos dinámicos.
El control del robot puede ser escrito en C++, Java, Python, Matlab y ROS.
Webots ofrece la posibilidad de tomar 'screen shots' en formato PNG o JPEG y grabar simulaciones en formato MP4 (macOS/Linux) o AVI (Windows). Webots guarda los modelos en un archivos .wbt, los cuales están basado en el lenguaje VRML. Es posible exportar los modelos de .wbt a VRML o X3D al igual que objetos.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/45/Simulation_of_a_KUKA_youBot_mounted_with_a_Microsoft_Kinect_device_in_Webots.png/230px-Simulation_of_a_KUKA_youBot_mounted_with_a_Microsoft_Kinect_device_in_Webots.png)
Ejemplo de controlador para Webots
#include <webots/robot.h> #include <webots/differential_wheels.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); // control loop while (1) { // read sensors double v = wb_distance_sensor_get_value(ds); // if obstacle detected if (v > 512) { // turn around wb_differential_wheels_set_speed(-600, 600); } else { // go straight wb_differential_wheels_set_speed(600, 600); } // run a simulation step wb_robot_step(TIME_STEP); } return 0; }
Datos: Q1102289
Multimedia: Webots / Q1102289