A robot is a mechanical or virtual intelligent agent that can perform tasks automatically or with guidance, typically by remote control. In practice a robot is usually an electro-mechanical machine that is guided by computer and electronic programming. Robots can be autonomous, semi-autonomous or...
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
Lausanne
Lausanne is a city in Romandy, the French-speaking part of Switzerland, and is the capital of the canton of Vaud. The seat of the district of Lausanne, the city is situated on the shores of Lake Geneva . It faces the French town of Évian-les-Bains, with the Jura mountains to its north-west...
Switzerland name of one of the Swiss cantons. ; ; ; or ), in its full name the Swiss Confederation , is a federal republic consisting of 26 cantons, with Bern as the seat of the federal authorities. The country is situated in Western Europe,Or Central Europe depending on the definition....
The Open Dynamics Engine is a physics engine in C/C++. Its two main components are a rigid body dynamics simulation engine and a collision detection 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
Damping
In physics, damping is any effect that tends to reduce the amplitude of oscillations in an oscillatory system, particularly the harmonic oscillator.In mechanics, friction is one such damping effect...
constants.
Webots includes a set of sensors and actuators frequently used in robotic experiments, e.g. proximity sensors, light sensors, touch sensors, GPS, accelerometer
Accelerometer
An accelerometer is a device that measures proper acceleration, also called the four-acceleration. This is not necessarily the same as the coordinate acceleration , but is rather the type of acceleration associated with the phenomenon of weight experienced by a test mass that resides in the frame...
s, 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
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
MATLAB is a numerical computing environment and fourth-generation programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages,...
Nao is an autonomous, programmable, medium-sized humanoid robot, developed by Aldebaran Robotics, a French startup company headquartered in Paris. Project Nao was launched in 2004. On August 15, 2007, Nao replaced Sony's robot dog Aibo as the robot used in the Robot Soccer World Cup Standard...
and E-puck robot models can also be programmed with the URBI
URBI
Urbi is an open source cross-platform software platform in C++ used to develop applications for robotics and complex systems. Urbi is based on the UObject distributed C++ component architecture. It also includes the urbiscript orchestration language which is a parallel and event-driven script...
language (URBI license required).
Webots offers the possibility to take PNG screen shots and to record the simulations as MPEG (Mac/Linux) and AVI
Audio Video Interleave
Audio Video Interleave , known by its acronym AVI, is a multimedia container format introduced by Microsoft in November 1992 as part of its Video for Windows technology. AVI files can contain both audio and video data in a file container that allows synchronous audio-with-video playback...
(Windows) movies. Webots worlds are stored in cross-platform .wbt files which format is based on the VRML
VRML
VRML is a standard file format for representing 3-dimensional interactive vector graphics, designed particularly with the World Wide Web in mind...
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 possible to move the robots and other object with the mouse.
Webots is used in several online robot programming contests. The Robotstadiumhttp://www.robotstadium.org competition is a simulation of the RoboCup
RoboCup
RoboCup is an international robotics competition founded in 1997. The aim is to develop autonomous soccer robots with the intention of promoting research and education in the field of artificial intelligence...
Standard Platform League. In this simulation two teams of Nao
Nao (robot)
Nao is an autonomous, programmable, medium-sized humanoid robot, developed by Aldebaran Robotics, a French startup company headquartered in Paris. Project Nao was launched in 2004. On August 15, 2007, Nao replaced Sony's robot dog Aibo as the robot used in the Robot Soccer World Cup Standard...
play soccer with rules similar to regular soccer. The robots use simulated cameras, ultrasound and pressure sensors. In the Rat's Lifehttp://www.ratslife.org competition two simulated e-puck robots compete for energy resources in a Lego
Lego
Lego is a line of construction toys manufactured by the Lego Group, a privately held company based in Billund, Denmark. The company's flagship product, Lego, consists of colorful interlocking plastic bricks and an accompanying array of gears, minifigures and various other parts...
maze. Matches are run on a daily basis and the results can be watched in online videos.
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
include
include
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);
}
Swarm intelligence is the collective behaviour of decentralized, self-organized systems, natural or artificial. The concept is employed in work on artificial intelligence...
Artificial life is a field of study and an associated art form which examine systems related to life, its processes, and its evolution through simulations using computer models, robotics, and biochemistry. The discipline was named by Christopher Langton, an American computer scientist, in 1986...
Evolutionary robotics is a methodology that uses evolutionary computation to develop controllers for autonomous robots. Algorithms in ER frequently operate on populations of candidate controllers, initially selected from some distribution. This population is then repeatedly modified according to...
Computer vision is a field that includes methods for acquiring, processing, analysing, and understanding images and, in general, high-dimensional data from the real world in order to produce numerical or symbolic information, e.g., in the forms of decisions...
, commonly referred to as Sony, is a Japanese multinational conglomerate corporation headquartered in Minato, Tokyo, Japan and the world's fifth largest media conglomerate measured by revenues....
is a Japanese multinational information technology equipment and services company headquartered in Tokyo, Japan. It is the world's third-largest IT services provider measured by revenues....
An iCub is a 1 metre high humanoid robot testbed for research into human cognition and artificial intelligence.It was designed by the RobotCub Consortium, of several European universities and is now supported by other projects such as ITALK. The robot is open-source, with the hardware design,...
RobotCub was a 5 years long project funded by the European Commission through Unit E5 "Cognition" of the IST. The project started in 2004 and terminated in January 2010...
iRobot Create is a hobbyist robot manufactured by iRobot that is based on the Roomba platform and was introduced in 2007. However, iRobot Create is explicitly designed for robotics development, rather than simply hacking the Roomba...
iRobot Corporation is an American advanced technology company founded in 1990 and incorporated in Delaware in 2000, the iRobot Corporation designs robots such as an autonomous home vacuum cleaner , the Scooba that scrubs and cleans hard floors, and military and police robots, such as the PackBot...
The Khepera is a small differential wheeled mobile robot that was developed at the LAMI laboratory of Prof. Jean-Daniel Nicoud at EPFL in the mid '90s. It was developed by Edo...
The LEGO Mindstorm series of kits contain software and hardware to create small, customizable and programmable robots. They include a programmable 'Brick' computer that controls the system, a set of modular sensors and motors, and LEGO parts from the Technics line to create the mechanical...
Nao is an autonomous, programmable, medium-sized humanoid robot, developed by Aldebaran Robotics, a French startup company headquartered in Paris. Project Nao was launched in 2004. On August 15, 2007, Nao replaced Sony's robot dog Aibo as the robot used in the Robot Soccer World Cup Standard...
Unimate was the first industrial robot,which worked on a General Motors assembly line at the Inland Fisher Guide Plant in Ewing Township, New Jersey, in 1961.It was created by George Devol in the 1950s using his original patents...
The Khepera is a small differential wheeled mobile robot that was developed at the LAMI laboratory of Prof. Jean-Daniel Nicoud at EPFL in the mid '90s. It was developed by Edo...
The LEGO Mindstorm series of kits contain software and hardware to create small, customizable and programmable robots. They include a programmable 'Brick' computer that controls the system, a set of modular sensors and motors, and LEGO parts from the Technics line to create the mechanical...
leJOS is a firmware replacement for Lego Mindstorms programmable bricks. It currently supports the LEGO RCX brick and leJOS NXJ supports the NXT brick. It includes a Java virtual machine, which allows Lego Mindstorms robots to be programmed in the Java programming language. It is often used for...