Webots

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Webots
E-puck robot in Webots.png
E-puck robot in Webots
Developer(s) Cyberbotics Ltd.
Stable release Webots 8.3.2 / Dec 17, 2015
Operating system Windows 7, Windows Vista, Windows XP, Linux 32 and 64 bit, Mac OS X 10.6, 10.5
Type Robotics suite
License Proprietary, with contributions from the community
Website Cyberbotics Web page

Webots is a professional robot simulator widely used for educational purposes. The Webots project started in 1996, initially developed by Dr. Olivier Michel at the Swiss Federal Institute of Technology (EPFL) in Lausanne, Switzerland.

Webots uses 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.

A large collection of freely modifiable robot models comes in the software distribution. In addition, it is also possible to build new models from scratch. 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.

Webots includes a set of sensors and actuators frequently used in robotic experiments, e.g. proximity sensors, light sensors, touch sensors, GPS, accelerometers, cameras, emitters and receivers, servo motors (rotational & linear), position and force sensor, LEDs, grippers, gyros and compass.

The robot controller programs can be written in C, C++, Java, Python and MATLAB. The AIBO, Nao and E-puck robot models can also be programmed with the URBI language (URBI license required).

Webots offers the possibility to take PNG screen shots and to record the simulations as MPEG (Mac/Linux) and AVI (Windows) movies. Webots worlds are stored in cross-platform .wbt files which format is based on the VRML language. It is also possible to import and export Webots worlds or objects in the VRML format. Another useful feature is that the user can interact with a running simulation at any time, i.e., it is possible to move the robots and other object with the mouse.

Webots is used in several online robot programming contests. The Robotstadium [1] competition is a simulation of the RoboCup Standard Platform League. In this simulation two teams of Nao play soccer with rules similar to regular soccer. The robots use simulated cameras, ultrasound and pressure sensors. In the Rat's Life [2] competition two simulated e-puck robots compete for energy resources in a Lego maze. Matches are run on a daily basis and the results can be watched in online videos.


File:Simulation of a KUKA youBot mounted with a Microsoft Kinect device in Webots.png
Simulation of a KUKA youBot mounted with a Microsoft Kinect device in Webots
File:Simulation of an iRobot Create in Webots.png
Simulation of an iRobot Create in Webots
Simulation of a Robotis DARwIn-OP in Webots
Simulation of a Pioneer 3-AT (Adept Mobile Robots) mounted a with SICK LMS 291 in Webots
Simulation of a Pioneer 3-DX (Adept Mobile Robots) in Webots

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.

#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;
}

Main Fields of Application

Included Robots Models

Cross Compilation Support

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. 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
  5. 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.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Bioloid

External links