Webots User Guide

previous page go up next page

Foreword

Thanks

1. Installing Webots

2. Getting Started with Webots

3. Sample Webots Applications

4. Language Setup

5. Development Environments

6. Programming Fundamentals

7. Tutorial: Modeling and simulating your robot

8. Using the e-puck robot

9. Frequently Asked Questions

10. Known Bugs

     

2.1 Introduction to Webots

2.1.1 What is Webots ?

Webots is a professional mobile robot simulation software package. It offers a rapid prototyping environment, that allows the user to create 3D virtual worlds with physics properties such as mass, joints, friction coefficients, etc. The user can add simple passive objects or active objects called mobile robots. These robots can have different locomotion schemes (wheeled robots, legged robots, or flying robots). Moreover, they may be equipped with a number of sensor and actuator devices, such as distance sensors, drive wheels, cameras, servos, touch sensors, emitters, receivers, etc. Finally, the user can program each robot individually to exhibit the desired behavior. Webots contains a large number of robot models and controller program examples to help users get started.

Webots also contains a number of interfaces to real mobile robots, so that once your simulated robot behaves as expected, you can transfer its control program to a real robot like e-puck, Khepera, Hemisson, LEGO Mindstorms, Aibo, etc.

2.1.2 What can I do with Webots ?

Webots is well suited for research and educational projects related to mobile robotics. Many mobile robotics projects have relied on Webots for years in the following areas:

  • Mobile robot prototyping (academic research, the automotive industry, aeronautics, the vaccum cleaner industry, the toy industry, hobbyists, etc.)

  • Robot locomotion research (legged, humanoids, quadrupeds robots, etc.)

  • Multi-agent research (swarm intelligence, collaborative mobile robots groups, etc.)

  • Adaptive behavior research (Genetic evolution, neural networks, adaptive learning, AI, etc.).

  • Mobile robotics teaching (robotics lectures, C/C++/Java/Python programming lectures, robotics contest, etc.)

2.1.3 What do I need to know to use Webots ?

Although no special knowledge is needed to simply view the robot simulation demos in Webots, you will need a minimal amount of technical knowledge to be able to develop your own simulations:

  • A basic knowledge of the C, C++, Java, Python or MATLABTM programming language is necessary to program your own robot controllers. However, even if you don't know these languages, you can still program the e-puck and Hemisson robots using a simple graphical programming language called BotStudio.

  • If you don't want to use existing robot models provided within Webots and would like to create your own robot models, or add special objects in the simulated environments, you will need a basic knowledge of 3D computer graphics and VRML97 3D description language. That will allow you to create 3D models in Webots or import them from 3D modelling software.

2.1.4 Webots simulation

A Webots simulation is composed of these things:

  1. A Webots world file that define one or more 3D robot and their environment.

  2. Controller programs for the above robots.

  3. An optional Supervisor.

2.1.5 What is a world ?

A world, in Webots, is a 3D description of the properties of robots and of their environment. It contains a description of every object: its position, orientation, geometry, appearance (like color or brightness), physical properties, type of object, etc. Worlds are organized as hierarchical structures where objects can contain other objects (like in VRML97). For example, a robot can contain two wheels, a distance sensor and a servo which itself contains a camera, etc. A world file doesn't contain the controller code of the robots; it only specifies the name of the controller that is required for each robot. Worlds are saved in .wbt files. The .wbt files are stored in the worlds subdirectory of each Webots project.

2.1.6 What is a controller ?

A controller is a computer program that controls a robot specified in a world file. Controllers can be written in any of the programming languages supported by Webots: C, C++, Java, URBI, Python or MATLABTM. When a simulation starts, Webots launches the specified controllers, each as a separate process, and it associates the controller processes with the simulated robots. Note that several robots can use the same controller code, however a distinct process will be launched for each robot.

Some programming languages need to be compiled (C and C++) other languages need to be interpreted (URBI, Python and MATLABTM) and some need to be both compiled and interpreted (Java). For example, C and C++ controllers are compiled to platform-dependent binary executables (for example .exe under Windows). URBI, Python and MATLABTM controllers are interpreted by the corresponding run-time systems (which must be installed). Java controller need to be compiled to byte code (.class files or .jar) and then interpreted by a Java Virtual Machine.

The source files and binary files of each controller are stored together in a controller directory. A controller directory is placed in the controllers subdirectory of each Webots project.

2.1.7 What is a Supervisor ?

The Supervisor is a privileged type of Robot that can execute operations that can normally only be carried out by a human operator and not by a real robot. The Supervisor is normally associated with a controller program that can also be written in any of the above mentioned programming languages. However in contrast with a regular Robot controller, the Supervisor controller will have access to privileged operations. The privileged operation include simulation control, for example, moving the robots to a random position, making a video capture of the simulation, etc.

previous page go up next page
^ page top ^

  E-mail to webmaster Last updated: Copyright © 2010 Cyberbotics Ltd.