Webots

Open-source robot simulator
title: "Webots" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["robotics-simulation-software", "1996-software", "1996-in-robotics", "driving-simulators"] description: "Open-source robot simulator" topic_path: "engineering" source: "https://en.wikipedia.org/wiki/Webots" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0
::summary Open-source robot simulator ::
::data[format=table title="Infobox software"]
| Field | Value |
|---|---|
| screenshot | Wbinterface.png |
| screenshot size | 230px |
| caption | Autonomous car in Webots |
| latest_release_version | Webots R2025a |
| latest release date | January 31st, 2025 |
| developer | Cyberbotics Ltd. |
| operating_system | Windows, Linux, macOS |
| genre | Robotics simulator |
| license | Apache 2 |
| website | |
| repo | |
| :: |
| name = | screenshot = Wbinterface.png | screenshot size = 230px | caption = Autonomous car in Webots | latest_release_version = Webots R2025a | latest release date = January 31st, 2025 | developer = Cyberbotics Ltd. | operating_system = Windows, Linux, macOS | genre = Robotics simulator | license = Apache 2 | website = | repo =
Webots is a free and open-source 3D robot simulator used in industry, education and research.
The Webots project started in 1996, initially developed by Dr. Olivier Michel at the Swiss Federal Institute of Technology (EPFL) in Lausanne, Switzerland and then from 1998 by Cyberbotics Ltd. as a proprietary licensed software. Since December 2018, it is released under the free and open-source Apache 2 license.{{cite web | publisher = Cyberbotics | year = 2018 | url = https://www.cyberbotics.com/doc/blog/Webots-2019-a-release | title = Version R2019a - Webots Goes Open Source
Webots includes a large collection of freely modifiable models of robots, sensors, actuators and objects. In addition, it is also possible to build new models from scratch or import them from 3D CAD software. When designing a robot model, the user specifies both the graphical and the physical properties of the objects. The graphical properties include the shape, dimensions, position and orientation, colors, and texture of the object. The physical properties include the mass, friction factor, as well as the spring and damping constants. Simple fluid dynamics is present in the software.
Webots uses a fork of the ODE (Open Dynamics Engine) for detecting of collisions and simulating rigid body dynamics. The ODE library allows one to accurately simulate physical properties of objects such as velocity, inertia and friction.
Webots includes a set of sensors and actuators frequently used in robotic experiments, e.g. lidars, radars, proximity sensors, light sensors, touch sensors, GPS, accelerometers, cameras, emitters and receivers, servo motors (rotational & linear), position and force sensor, LEDs, grippers, gyros, compass, IMU, etc.
The robot controller programs can be written outside of Webots in C, C++, Python, ROS, Java and MATLAB using a simple API.
Webots offers the possibility to take screenshots and record simulations. Webots worlds are stored in cross-platform *.wbt files whose format is based on the VRML language. One can also import and export Webots worlds and objects in the VRML format. Users can interact with a running simulation by moving robots and other objects with the mouse. Webots can also stream a simulation on web browsers using WebGL.
::figure[src="https://upload.wikimedia.org/wikipedia/commons/d/df/Robotisop3.png" caption="Simulation of a Robotis-Op3in Webots" alt=""] ::
::figure[src="https://upload.wikimedia.org/wikipedia/commons/e/ee/Pioneer3at.png" caption="Simulation of a Pioneer 3-AT (Adept Mobile Robots) mounted with a SICK LMS 291 in Webots" alt=""] ::
::figure[src="https://upload.wikimedia.org/wikipedia/commons/0/0a/Pioneer3DX.png" caption="Simulation of a Pioneer 3-DX (Adept Mobile Robots) in Webots"] ::
::figure[src="https://upload.wikimedia.org/wikipedia/commons/6/68/Pr2.png" caption="A simulation model of the PR2 robot in Webots." alt=""] ::
::figure[src="https://upload.wikimedia.org/wikipedia/commons/9/93/Khepera3.png" caption="A simulation model of the Khepera III robot with gripper in Webots." alt=""] ::
::figure[src="https://upload.wikimedia.org/wikipedia/commons/9/9c/SalamanderSimu.png" caption="A simulation model of a salamander robot in Webots which has a deformable skin." alt=""] ::
::figure[src="https://upload.wikimedia.org/wikipedia/commons/6/66/Atlas_robot_3D_model.png" caption="A simulation model of the Boston Dynamics Atlas robot in Webots."] ::
Web interface
Since August 18, 2017, the robotbenchmark.net website has offered free access to a series of robotics benchmarks based on Webots simulations through the Webots web interface. Webots instances are running in the cloud and the 3D views are displayed in the user browser. From this web interface, users can program robots in Python and learn robot control in a step-by-step procedure.
Controller programming example
This is a simple example of C/C++ controller programming with Webots: a trivial collision avoidance behavior. Initially, the robot runs forwards, then when an obstacle is detected it rotates around itself for a while and then resumes the forward motion.
::code[lang=c] #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; } ::
Main fields of application
- Fast prototyping of wheeled and legged robots
- Research on robot locomotion{{cite web | publisher = Biologically Inspired Robotics Group | year = 2007 | url = http://birg2.epfl.ch/publications/fulltext/sDegallier07.pdf | title = Hand placement during quadruped locomotion in a humanoid robot: A dynamical system approach | access-date = 2008-05-08 | archive-date = 2011-07-06 | archive-url = https://web.archive.org/web/20110706225147/http://birg2.epfl.ch/publications/fulltext/sDegallier07.pdf | url-status = dead
- Swarm intelligence (Multi-robot simulations){{cite book | last1 = Pugh | first1 = Jim | last2 = Martinoli | first2 = Alcherio | title = From Animals to Animats 10 | publisher = Swarm-Intelligent Systems Group | year = 2008 | chapter-url = http://infoscience.epfl.ch/record/118629 | chapter = Distributed Adaptation in Multi-Robot Search using Particle Swarm Optimization | series = Lecture Notes in Computer Science | volume = 5040 | pages = 393–402 | doi = 10.1007/978-3-540-69134-1_39 | isbn = 978-3-540-69133-4 | publisher = DISAL - Distributed Intelligent Systems and Algorithms Laboratory | year = 2008 | url = http://infoscience.epfl.ch/record/125777/files/Cianci_SIS2008.pdf | title = Assembly of Configurations in a Networked Robotic System: A Case Study on a Reconfigurable Interactive Table Lamp
- Artificial life and evolutionary robotics
- Simulation of adaptive behaviour
- Self-Reconfiguring Modular Robotics{{cite web | publisher = Biologically Inspired Robotics Group | year = 2008 | url = http://birg2.epfl.ch/publications/fulltext/aSproewitz08.pdf | title = An active connection mechanism for modular self-reconfigurable robotic systems based on physical latching | access-date = 2008-05-08 | archive-date = 2011-07-06 | archive-url = https://web.archive.org/web/20110706225320/http://birg2.epfl.ch/publications/fulltext/aSproewitz08.pdf | url-status = dead
- Experimental environment for computer vision
- Teaching and robot programming contests
Included robot models
A complete and up-to-date list is provided in the Webots user guide.
- AIBO ERS7 and ERS210,{{cite web | publisher = Biologically Inspired Robotics Group | year = 2006 | url = http://birg2.epfl.ch/publications/fulltext/hohl06.pdf | title = Aibo and webots: Simulation, wireless remote control and controller transfer | access-date = 2008-08-27 | archive-date = 2007-04-11 | archive-url = https://web.archive.org/web/20070411212941/http://birg2.epfl.ch/publications/fulltext/hohl06.pdf | url-status = dead
- BIOLOID (dog), Robotis
- Boe-Bot
- DARwIn-OP, Robotis
- E-puck
- Hemisson
- HOAP-2, Fujitsu Limited
- iCub, RobotCub Consortium
- iRobot Create, iRobot
- Katana IPR, Neuronics AG
- Khepera mobile robot I, II, III, K-Team Corporation
- KHR-2HV, KHR-3HV, Kondo
- Koala, K-Team Corporation
- Lego Mindstorms (RCX Rover model)
- Magellan
- Nao V2, V3, Aldebaran Robotics
- MobileRobots Inc Pioneer 2, Pioneer 3-DX, Pioneer 3-AT
- Puma 560, Unimate
- Scout 2
- Shrimp III, BlueBotics SA
- Surveyor SRV-1, Surveyor Corporation
- youBot, KUKA
Cross compilation and remote control support
References
References
- Louis-Emmanuel Martinet, Denis Sheynikhovich, Karim Benchenane, and Angelo Arleo (2011) Spatial Learning and Action Planning in a Prefrontal Cortical Network Model, PLoS Comput Biol 7(5): e1002045. {{doi. 10.1371/journal.pcbi.1002045
- Mannella F., Mirolli M., Baldassarre G., A computational model of the amygdala nuclei's role in second order conditioning. In M. Asada et al. (eds.), From Animals to Animats 10: Proceedings of the Tenth International Conference on the Simulation of Adaptive Behavior (SAB2008), pp. 321-330. LNAI 5040 Berlin: Springer.
- [[Bioloid]]
::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::