Webots User Guide

previous page go up next page

Foreword

Thanks

1. Installing Webots

2. Getting Started with Webots

3. Sample Webots Applications

4. Tutorial: Modeling and simulating your robot

5. Programming Controllers and Plugins

6. Using the e-puck robot

7. Using the KheperaTM robot

8. Using the IPRTM robots

9. Using the LEGO MindstormsTM robots

10. Using the AiboTM robots

11. Robot Soccer Lab

     

3.6 Real Robots

This section discusses worlds containing the Webots models of real robots. The world files for these examples are located in the robots / (robot_name) / world directory, and their corresponding controllers are in the robots / (robot_name) / controllers directory. These samples can be used as a basis for developing a world which uses one of these models.

3.6.1 aibo_ers210_rough.wbt

Keywords: CustomRobot, legged robot, uneven ground, IndexedFaceSet, texture, Aibo, IndexedFaceSet, Servo

aibo_ers210_rough

Figure 3.32: aibo_ers210_rough.wbt

In this example you can see a silver Aibo ERS-210 robot walking on uneven ground while a ball rolls around. The ground has been made using an IndexedFaceSet node for both the geometry and the boundingObject. After a few steps, the robot stops so that you can play with it using its control panel. The source code for this controller is in the ers210 directory.

3.6.2 aibo_ers7.wbt

Keywords: CustomRobot, legged robot, soccer field, Charger, texture, Aibo, IndexedFaceSet, Servo

aibo_ers7

Figure 3.33: aibo_ers7.wbt

In this example you can see a silver Aibo ERS-7 robot walking on a textured soccer field. On this field you can also see its toys : a ball, a charger and a bone. After a few steps, the robot stops so that you can play with it using its control panel. The source code for this controller is in the ers7 directory.

3.6.3 aibo_models.wbt

Keywords: CustomRobot, legged robot, soccer field, texture, Aibo, IndexedFaceSet, Servo

aibo_models

Figure 3.34: aibo_models.wbt

In this example you can see all the different types of Aibo models provided by Webots : silver ERS-210, bronze ERS-210, silver ERS-7 and blue ERS-7. This world is intended to be the example from which you can copy the models of Aibo robots for your own worlds. In this example, the robots have the void controller, so do not foget to select another one when you reuse one of these models.

3.6.4 alice.wbt

Keywords: DifferentialWheels, Braitenberg, DistanceSensor, texture, Alice

alice

Figure 3.35: alice.wbt

In this example you can see an Alice robot moving inside an arena while avoiding the walls. Like many other examples, this one uses the braitenberg controller. The source code for this controller is in the projects / default / controller / braitenberg directory.

3.6.5 boebot.wbt

Keywords: DifferentialWheels, DistanceSensor, LED, texture, BoeBot

boebot

Figure 3.36: boebot.wbt

In this example you can see the BoeBot robot moving inside an arena while avoiding the walls. When the robot detects an obstacle with one of its DistanceSensors, it turns on its corresponding LED device. The source code for this controller is in the boebot directory.

3.6.6 botstudio_line.wbt

Keywords: DifferentialWheels, BotStudio, texture, graphical programming, Hemisson

botstudio_line

Figure 3.37: The BotStudio interface and botstudio_line.wbt

In this example you can see a Hemisson robot which is controlled using the BotStudio interface. BotStudio is a graphical environment which allows you to program your robot easily by creating a finite-state machine. The interface allows you to create states and transitions for which you set the conditions intuitively by clicking on the corresponding device on the scheme of the Hemisson robot. In this world, a black line is drawn on the ground so that you can make the robot follow it. As it is BotStudio which controls the robot, there is no controller distributed with this example. But, as BotStudio allows the user to save and load finite-state machines, there are various examples which can be loaded in BotStudio. These examples are in the botstudio directory.

3.6.7 botstudio_maze.wbt

Keywords: DifferentialWheels, BotStudio, texture, graphical programming, Hemisson

botstudio_maze

Figure 3.38: botstudio_maze.wbt

In this example, a Hemisson robot is controlled using the BotStudio interface. The BotStudio interface used in this example is the same as in botstudio_line.wbt (for more information about BotStudio, refer to subsection 3.6.6). In this world, the robot is inside a maze with some black lines on the ground.

3.6.8 botstudio_obstacle.wbt

Keywords: DifferentialWheels, BotStudio, graphical programming, Hemisson

botstudio_obstacle

Figure 3.39: botstudio_obstacle.wbt

In this example, a Hemisson robot is controlled using the BotStudio interface. The BotStudio interface used in this example is the same as in botstudio_line.wbt (for more information about BotStudio, refer to subsection 3.6.6). In this world, the robot is inside a square arena with two rectangular obstacles to avoid.

3.6.9 botstudio_pen.wbt

Keywords: DifferentialWheels, BotStudio, Pen, texture, graphical programming, Hemisson

botstudio_pen

Figure 3.40: botstudio_pen.wbt

In this example, a Hemisson robot is controlled using the BotStudio interface. The BotStudio interface used in this example is the same as in botstudio_line.wbt (for more information about BotStudio, refer to subsection 3.6.6). In this world, the robot moves on a white floor while its Pen device draws on it.

3.6.10 e-puck.wbt

Keywords: DifferentialWheels, Braitenberg, texture, DistanceSensor, E-puck

e-puck

Figure 3.41: e-puck.wbt

In this example you can see the E-puck robot moving inside an arena while avoiding the walls. Like many other examples, this one uses the braitenberg controller. You can switch the camera display on or off by changing the name field of the robot. If the value of this field is "e-puck camera", then the camera will be turned on, if it is only "e-puck", then the camera is turned off. This change takes effect only after reverting. The source code for this controller is in the projects / default / controller / braitenberg directory.

3.6.11 e-puck_line.wbt

Keywords: DifferentialWheels, line following, texture, behavior-based robotics, E-puck

e-puck_line_world

Figure 3.42: e-puck_line.wbt

In this example you can see the E-puck robot following a black line drawn on the ground. In the middle of this line there is an obstacle which the robot is unable to avoid. This example has been developed as a practical assignment on behavior-based robotics. When completed, the controller should allow the E-puck robot to avoid this obstacle and recover its path afterwards. A solution for this assignment is shown in the world e-puck_line_demo.wbt (see subsection 3.6.12). The source code for this controller is in the e-puck_line directory.

3.6.12 e-puck_line_demo.wbt

Keywords: DifferentialWheels, line following, texture, behavior-based robotics, E-puck

e-puck_line_demo_world

Figure 3.43: e-puck_line_demo.wbt

This example is the solution for the assignement given in the e-puck_line_demo.wbt example (see subsection 3.6.11). In this case, you can see that the robot avoids the obstacle, then recovers its path along the line. As the controller used in this world is the solution to the assignment, the source code is not distributed.

3.6.13 hemisson_cross_compilation.wbt

Keywords: DifferentialWheels, Pen, cross-compilation, texture, Hemisson

hemisson_cross_compilation

Figure 3.44: hemisson_cross_compilation.wbt

In this example, a Hemisson robot moves on a white floor while avoiding the obstacles. Its Pen device draws a black line which slowly fades. This example is a cross-compilation example for the real Hemisson robot. The source code for this controller is in the hemisson directory.

3.6.14 hoap2_sumo.wbt

Keywords: CustomRobot, humanoid, texture, dancing, Hoap 2, IndexedFaceSet, Servo, active joint, force, TouchSensor

hoap2_sumo

Figure 3.45: hoap2_sumo.wbt

In this example, a Hoap2 robot from Fujitsu performs the Shiko dance (the dance which sumos perform before a match). This robot is equipped with TouchSensors on the soles of its feet; it measures and logs the pressure exerted by its body on the ground. The source code for this controller is in the hoap2 directory.

3.6.15 hoap2_walk.wbt

Keywords: CustomRobot, humanoid, texture, walking, Hoap 2, IndexedFaceSet, Servo, active joint, force, TouchSensor

hoap2_walk

Figure 3.46: hoap2_walk.wbt

In this example, a Hoap2 robot from Fujitsu walks straight forward on a tatami. This robot is equipped with TouchSensors on the soles of its feet; it measures and logs the pressure exerted by its body on the ground. The source code for this controller is in the hoap2 directory.

3.6.16 ipr_collaboration.wbt

Keywords: CustomRobot, robotic arm, collaboration, TCP/IP, client program, IPR, IndexedFaceSet, Servo, active joint

ipr_collaboration_world

Figure 3.47: ipr_collaboration.wbt

In this example, two IPR robots from Neuronics work together to put three red cubes into a basket which is on the opposite side of the world. All the IPR robots use the same controller, whose source code is in the ipr_serial directory. This particular example uses, in addition to this controller, a client program which coordinates the movements of the robots. The source code for this client is in the ipr_serial / client / ipr_collaboration.c file. For more information about the IPR robot, please read chapter 8.

3.6.17 ipr_cube.wbt

Keywords: CustomRobot, robotic arm, TCP/IP, client program, IPR, IndexedFaceSet, Servo, active joint

ipr_cube_world

Figure 3.48: ipr_cube.wbt

In this example, an IPR robots from Neuronics moves a small red cube onto a bigger one. All the IPR robots use the same controller, whose source code is in the ipr_serial directory. This example also uses a client program which drives the movements of the robot. The source code of this client is in the ipr_serial / client / ipr_cube.c file. For more information about the IPR robot, please read chapter 8.

3.6.18 ipr_factory.wbt

Keywords: CustomRobot, Supervisor, conveyor belt, robotic arm, TCP/IP, client program, IPR, IndexedFaceSet, Servo, active joint

ipr_factory_world

Figure 3.49: ipr_factory.wbt

In this example, two IPR robots from Neuronics take industrial parts from a conveyor belt and place them into slots. One of the robots detects the objects using an infrared sensor on the conveyor belt, while the other one waits. All the IPR robots use the same controller, whose source code is in the ipr_serial directory. This example also uses a client program which coordinates the movements of the robots. The source code for this client is in the file ipr_serial / client / ipr_factory.c. For more information about the IPR robot, please read chapter 8.

3.6.19 ipr_models.wbt

Keywords: CustomRobot, robotic arm, TCP/IP, IPR, IndexedFaceSet, Servo, active joint

ipr_models_world

Figure 3.50: ipr_models.wbt

In this example you can see all the different types of IPR model provided by Webots : HD6M180, HD6Ms180, HD6M90 and HD6Ms90. This world is intended to be the example from which you can copy the models of IPR robots into your own worlds. All the IPR robots use the same controller, whose source code is in the ipr_serial directory. For more information about the IPR robots, please read chapter 8.

3.6.20 khepera.wbt

Keywords: DifferentialWheels, DistanceSensor, Braitenberg, texture, Khepera

khepera

Figure 3.51: khepera.wbt

In this example you can see a Khepera robot from K-Team moving inside an arena while avoiding the walls. Like many other examples, this one uses the braitenberg controller. The source code for this controller is in the projects / default / controller / braitenberg directory. For more information about the Khepera robot, please read chapter 7.

3.6.21 khepera2.wbt

Keywords: DifferentialWheels, DistanceSensor, Braitenberg, texture, Khepera II

khepera2

Figure 3.52: khepera2.wbt

In this example you can see a Khepera II robot from K-Team moving inside an arena while avoiding the walls. Like many other examples, this one uses the braitenberg controller. The source code for this controller is in the projects / default / controller / braitenberg directory. For more information about the Khepera robot, please read chapter 7.

3.6.22 khepera3.wbt

Keywords: DifferentialWheels, DistanceSensor, Braitenberg, texture, Khepera III

khepera3

Figure 3.53: khepera3.wbt

In this example you can see a Khepera III robot from K-Team moving inside an arena while avoiding the walls. Like many other examples, this one uses the braitenberg controller. The source code for this controller is in the projects / default / controller / braitenberg directory. For more information about the Khepera robot, please read chapter 7.

3.6.23 khepera_fast2d.wbt

Keywords: DifferentialWheels, DistanceSensor, Braitenberg, custom Fast2D plugin, Khepera

khepera_fast2d

Figure 3.54: khepera_fast2d.wbt

In this example you can see two Khepera robots from K-Team moving inside an arena while avoiding each other and the walls. As this world is using a Fast2D plugin, it is a good example of how to use one of these plugins in Webots. This type of plugin allows very fast simulation by using only two dimensions; height and elevation are ignored when simulating the movements and collisions of the robots. The plugin used in this world is the enki plugin, whose source code is not provided by Webots. Like many other examples, this one uses the braitenberg controller. The source code for this controller is in the projects / default / controller / braitenberg directory. For more information about the Khepera robot, please read chapter 7. You will find more information about the Fast2D plugin in Webots Reference Manual.

3.6.24 khepera_gripper.wbt

Keywords: DifferentialWheels, Gripper, Khepera

khepera_gripper_world

Figure 3.55: khepera_gripper.wbt

In this example you can see a Khepera robot from K-Team equipped with a Gripper device. The robot uses its Gripper to grab a stick, move a bit with it and drop it on the ground. This behavior is repeated endlessly. The source code for this controller is in the khepera_gripper directory. For more information about the Khepera robot, please read chapter 7.

3.6.25 khepera_gripper_camera.wbt

Keywords: DifferentialWheels, Gripper, Camera, Khepera

khepera_gripper_camera

Figure 3.56: khepera_gripper_camera.wbt

In this example you can see a Khepera robot from K-Team equipped with a Gripper device and a Camera device. The robot uses its Gripper to grab a stick, move a bit with it and drop it on the ground. This behavior is repeated endlessly. In this world, the robot does not analyse the images it takes with its camera. The source code for this controller is in the khepera_gripper directory. For more information about the Khepera robot, please read chapter 7.

3.6.26 khepera_k213.wbt

Keywords: DifferentialWheels, DistanceSensor, K213, linear Camera, Khepera

khepera_k213

Figure 3.57: khepera_k213.wbt

In this example you can see a Khepera robot from K-Team equipped with a K213 Camera device. This camera is a linear vison turret with grey scales images. Using this device, the robot is able to translate the information contained in the image into text and print this result in the log window. When you load this world, the robot will not begin to move immediately. This is done to give you enough time to read the explanations concerning this world which print in the log window. The source code for this controller is in the khepera_k213 directory. For more information about the Khepera robot, please read chapter 7.

3.6.27 khepera_pipe.wbt

Keywords: DifferentialWheels, UNIX pipe, client program, Khepera

khepera_pipe

Figure 3.58: khepera_pipe.wbt

In this example you can see a Khepera robot from K-Team inside an arena. The controller for this robot opens a UNIX pipe in order to receive commands using the Khepera serial communication protocol. This example is provided with a sample client program which interacts with the controller of the robot to make it move straight forward until it detects an obstacle. This client program client must be launched separately from Webots. The source code for this controller and for the client program are in the pipe directory. For more information about the Khepera robot, please read chapter 7.

Note: As this example is based on standard UNIX pipes, it does not work under Windows.

3.6.28 khepera_tcpip.wbt

Keywords: DifferentialWheels, TCP/IP, client program, Khepera

khepera_tcpip

Figure 3.59: khepera_tcpip.wbt

In this example you can see a Khepera robot from K-Team inside an arena. The controller for this robot acts as a TCP/IP server, waiting for a connection. Through this connection, the robot can receive commands using the Khepera serial communication protocol. This example is provided with a sample client program which displays a command prompt, with which you can control the movements of the robot. This client program client must be launched separately from Webots. The source code for this controller and for the client program are in the tcpip directory. For more information about the Khepera robot, please read chapter 7.

3.6.29 koala.wbt

Keywords: DifferentialWheels, DistanceSensor, Braitenberg, Koala

koala_world

Figure 3.60: koala.wbt

In this example you can see a Koala robot from K-Team moving inside an arena while avoiding the walls. Like many other examples, this one uses the braitenberg controller. The source code for this controller is in the projects / default / controller / braitenberg directory.

3.6.30 magellan.wbt

Keywords: DifferentialWheels, DistanceSensor, Braitenberg, Magellan

magellan

Figure 3.61: magellan.wbt

In this example you can see a Magellan robot moving inside an arena while avoiding the walls. As this robot is no longer produced, its world file is in the other / world directory. Like many other examples, this one uses the braitenberg controller. The source code for this controller is in the projects / default / controller / braitenberg directory.

3.6.31 pioneer2.wbt

Keywords: DifferentialWheels, DistanceSensor, Braitenberg, Pioneer 2

pioneer2_world

Figure 3.62: pioneer2.wbt

In this example you can see a Pioneer 2 robot from ActivMedia Robotics moving inside an arena while avoiding the walls. Like many other examples, this one uses the braitenberg controller. The source code for this controller is in the projects / default / controller / braitenberg directory. This robot and its world are part of the Webots Tutorial; for more information about its construction, please read section 4.4.

3.6.32 rover.wbt

Keywords: DifferentialWheels, bumper, TouchSensor, line following, Rover, Java

rover_world

Figure 3.63: rover.wbt

In this example you can see the Mindstorms Rover robot from LEGO following a black line drawn on the ground. In the middle of this line there is an obstacle which the robot navigates around after detecting a collision with it. The robot will then recover its path. As this robot is a Mindstorms robot, its world file and its controller are in the mindstorms directory. This example is written both in Java and in C, as a reference for translating Webots code from one language to another. For more information about this robot, please read chapter 9. The source code for this controller is in the Rover directory.

3.6.33 scout2.wbt

Keywords: DifferentialWheels, DistanceSensor, Braitenberg, Scout 2

scout2

Figure 3.64: scout2.wbt

In this example a Scout 2 robot moves inside an arena while avoiding the walls. Like many other examples, this one uses the braitenberg controller. The source code for this controller is in the projects / default / controller / braitenberg directory.

3.6.34 shrimp.wbt

Keywords: CustomRobot, custom ODE plugin, keyboard, passive joint, uneven ground sponginess, Shrimp, linear Servo

shrimp

Figure 3.65: shrimp.wbt

This example contains a model of the Shrimp robot, which is a mobile platform for rough terrain from Bluebotics. It has 6 wheels and a passive structure which allows it to adapt to the terrain profile and climb obstacles. It can also turn on the spot. In this example the robot will first move on its own to the center of the world; then you may drive it yourself using the keyboard. To find out which keys will allow you to perform these operations, please read the explanation message printed at the begining of the simulation in the log window.

Because of its particular structure, this model is also an example of custom ODE plugins for:

  • how to create and manage ODE joints

  • how to add custom force

  • how to create spongy tires

The source code for this controller is in the projects / robots / shrimp / controllers / shrimp directory, and the ODE plugin is in the projects / robots / shrimp / plugins / physics / shrimp directory.

3.6.35 bioloid.wbt

Keywords: CustomRobot, legged robot, Servo, Bioloid, Camera, DistanceSensor, keyboard, modular robots, walking

bioloid

Figure 3.66: bioloid.wbt

In this example, the four-legged robot model (Figure figure 3.66 (a)) corresponds to a real Bioloid robot (Figure figure 3.66 (b)) developed by and commercially available from Tribotix. This dog-robot model was build from the Bioloid Comprehensive Kit.

Both the visual aspect and the physical properties of the real robot have been modelized. The physical dimensions, friction coefficients and mass distribution have been estimated after various measurements on the components of the real robot.

The source code for the controller of the robot, as well as the model of the robot are located under the Webots installation directory, in the projects / robots / bioloid sub folder:

  • controllers/bioloid/: controller directory.

  • worlds/bioloid.wbt: world definition file containing a Bioloid dog robot.

Using the keyboard, the user can control the quadruped robot by setting the walking direction (forward or backwards) and also the heading direction (right or left). Keyboard actions include:

  • Right Arrow: Turn right

  • Left Arrow: Turn left

  • B: Walk backwards

  • F: Walk forward

The walking gait used in the controller relies on an inverse kinematics model. Further details are available from BIRG web site. The controller included illustrates a trotting gait showing the best performance so far. The turning capabilities of the robot are based on the stride length modulation. When the robot is asked to turn right, the stride length of the right side and left side are respectively decreased and increased. During the walk, the extremity of each leg is describing an ellipsoid, the diameters of these elliposoids are updated according to the stride length to allow the robot to turn either right or left.

Other keyboard actions are also provided to fine tune the frequency and the stride length factor:

  • Q: Increase frequency

  • W: Decrease frequency

  • S: Increase stride length factor

  • A: Decrease stride length factor

previous page go up next page
^ page top ^

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