Webots: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Line 136: Line 136:
== External links ==
== External links ==
* [http://www.cyberbotics.com Cyberbotics Official Webpage]
* [http://www.cyberbotics.com Cyberbotics Official Webpage]
* [http://tech.groups.yahoo.com/group/webots-users Yahoo Tech Group about Webots]
* [http://www.ode.org Open Dynamics Engine]
* [http://www.ode.org Open Dynamics Engine]
* [http://robotstadium.org Robotstadium - a free programming contest based on Webots and the Nao humanoid robot]
* [http://robotstadium.org Robotstadium - a free programming contest based on Webots and the Nao humanoid robot]

Revision as of 11:04, 12 October 2008

Webots 5
Developer(s)Cyberbotics Ltd.
Stable release
Webots 5.9.2 / June 19, 2008
Repository
Operating systemWindows 2000, Windows XP, Windows Vista, Mac OS X 10.4 and 10.5 (Universal binary), and most Linux distributions: Ubuntu, Fedora, SUSE, Debian, etc. (x86 and x86-64 packages)
TypeRobotics suite
LicenseProprietary
WebsiteCyberbotics Web page

Webots is a professional robot simulator widely used in academic and education. 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 for simulating the rigid body dynamics. The ODE library allows to accurately simulate the physical properties of objects, such as velocity, inertia, friction, etc.

A large collection of robot models comes in the software distribution, these models can be modified whenever needed. 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 are: the shape, the dimensions, the position and orientation, the colors, the texture, etc. of the object. The physical properties are: the mass, the friction factor, the spring and damping constants, etc.

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, etc.

The robot controller programs can be written in C, C++, Java and Python or interfaced with other languages. The AIBO, Nao_(robot) 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 .wbt files which have a format very similar to VRML. 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 possible to move the robots and other object with the mouse.

File:WebotsGUI.png
Screenshot of Webots, showing a walking HOAP-2 simulation
File:Webots scene tree.png
Screenshot of Webots property editor
File:Webots e-puck.png
Screenshot of an e-puck robot simulated with Webots

Controller Programming Example

This is a simple example of C/C++ controller programming with Webots: a trivial collision avoidance behaviour. 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 <device/robot.h>
#include <device/differential_wheels.h>
#include <device/distance_sensor.h>

DeviceTag ds; // distance sensor

// controller initialization
static void reset(void) {
  ds = robot_get_device("ps0");  // get handle
  distance_sensor_enable(ds, 64);
}

// control loop
static int run(int ms) {

  int v = distance_sensor_get_value(ds);  // read sensor

  // if obstacle detected:
  if (v > 512) {  
    differential_wheels_set_speed(400, -400);  // turn around
    return 1280;  // for 1280 milliseconds
  }

  // otherwise
  differential_wheels_set_speed(600, 600);  // go straight
  return 64;  // for 64 milliseconds
}

int main() {
  robot_live(reset); // initialization
  robot_run(run);    // start control loop
  return 0;
}

Main Fields of Application

Included Robots Models

Cross Compilation Support

See also

References

  1. ^ "Hand placement during quadruped locomotion in a humanoid robot: A dynamical system approach" (PDF). Biologically Inspired Robotics Group. 2007.
  2. ^ "Distributed Adaptation in Multi-Robot Search using Particle Swarm Optimization". Swarm-Intelligent Systems Group. 2008.
  3. ^ "Assembly of Configurations in a Networked Robotic System: A Case Study on a Reconfigurable Interactive Table Lamp" (PDF). DISAL - Distributed Intelligent Systems and Algorithms Laboratory. 2008.
  4. ^ Louis-Emmanuel Martinet, Benjamin Fouque, Jean-Baptiste Passot, Jean-Arcady Meyer, and Angelo Arleo, Modelling the Cortical Columnar Organisation for Topological State-Space Representation, and Action Planning, In M. Asada et als (Eds.): SAB 2008, LNAI 5040, pp. 137-147, 2008, Springer-Verlag Berlin Heidelberg 2008.
  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. ^ "An active connection mechanism for modular self-reconfigurable robotic systems based on physical latching" (PDF). Biologically Inspired Robotics Group. 2008.
  7. ^ "Aibo and webots: Simulation, wireless remote control and controller transfer" (PDF). Biologically Inspired Robotics Group. 2006.

External links