Webots User Guide - chapter 3 - section 5

Webots User Guide


3.5 Real Robots

This section discusses worlds containing models of real robots. The world files for these examples are located in the robots/(robot_name)/worlds directory, and the corresponding controllers are located in the robots/(robot_name)/controllers directory.

3.5.1 aibo_ers210_rough.wbt

Keywords: Aibo, Legged robot, uneven ground, IndexedFaceSet, texture

aibo_ers210_rough

Figure 3.33: aibo_ers210_rough.wbt

In this example, you can see a silver Aibo ERS-210 robot walking on an uneven floor while a ball rolls and falls off. The uneven floor is principally made of a IndexedFaceSet.

3.5.2 aibo_ers7.wbt

Keywords: Aibo, ERS-7, legged robot, soccer field, Charger, toys, beacon, bone

aibo_ers7

Figure 3.34: 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.

3.5.3 alice.wbt

Keywords: Alice, Braitenberg, DistanceSensor

alice

Figure 3.35: alice.wbt

In this example, you can see an Alice robot moving inside an arena while avoiding the walls. Its world file is in the others/worlds directory. Like many others, this example uses the braitenberg controller.

3.5.4 boebot.wbt

Keywords: BoeBot, DistanceSensor, LED

boebot

Figure 3.36: boebot.wbt

In this example, BoeBot moves inside an arena while avoiding the walls. When the robot detects an obstacle with one of its DistanceSensors, it turns the corresponding LED on.

3.5.5 e-puck.wbt

Keywords: DifferentialWheels, texture, Braitenberg, Accelerometer, Odometry, E-puck

e-puck

Figure 3.37: e-puck.wbt

In this example, you can see the e-puck robot avoiding obstacles inside an arena by using the Braitenberg technique. The odometry of the e-puck is computed at each simulation steps. The accelerometer values and an estimation the coverage distance and the orientation of the e-puck are displayed. The source code for this controller is in the resources/projects/default/controllers/braitenberg directory.

3.5.6 e-puck_line.wbt

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

e-puck_line_world

Figure 3.38: 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.5.7). The source code for this controller is in the e-puck_line directory.

3.5.7 e-puck_line_demo.wbt

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

e-puck_line_demo_world

Figure 3.39: e-puck_line_demo.wbt

This example is the solution for the assignment given in the e-puck_line_demo.wbt example (see subsection 3.5.6). 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.5.8 hemisson_cross_compilation.wbt

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

hemisson_cross_compilation

Figure 3.40: 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.5.9 hoap2_sumo.wbt

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

hoap2_sumo

Figure 3.41: 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.5.10 hoap2_walk.wbt

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

hoap2_walk

Figure 3.42: 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.5.11 ipr_collaboration.wbt

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

ipr_collaboration_world

Figure 3.43: 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.

3.5.12 ipr_cube.wbt

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

ipr_cube_world

Figure 3.44: 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.

3.5.13 ipr_factory.wbt

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

ipr_factory_world

Figure 3.45: 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.

3.5.14 ipr_models.wbt

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

ipr_models_world

Figure 3.46: 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.

3.5.15 khepera.wbt

Keywords: DifferentialWheels, DistanceSensor, Braitenberg, texture, Khepera

khepera

Figure 3.47: 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 located in the resources/projects/default/controllers/braitenberg directory.

3.5.16 khepera2.wbt

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

khepera2

Figure 3.48: 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 resources/projects/default/controllers/braitenberg directory.

3.5.17 khepera3.wbt

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

khepera3

Figure 3.49: 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 resources/projects/default/controllers/braitenberg directory.

3.5.18 khepera_fast2d.wbt

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

khepera_fast2d

Figure 3.50: 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 resources/projects/default/controllers/braitenberg directory. You will find more information about the Fast2D plugin in Webots Reference Manual.

3.5.19 khepera_gripper.wbt

Keywords: DifferentialWheels, Gripper, Khepera

khepera_gripper_world

Figure 3.51: khepera_gripper.wbt

In this example, you can see a Khepera robot from K-Team equipped with a gripper. 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.

3.5.20 khepera_gripper_camera.wbt

Keywords: DifferentialWheels, Gripper, Camera, Khepera

khepera_gripper_camera

Figure 3.52: khepera_gripper_camera.wbt

In this example, you can see a Khepera robot from K-Team equipped with a gripper and a Camera device. The robot uses its gripper to grab a stick, move a bit with it and drop it on the floor. 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.

3.5.21 khepera_k213.wbt

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

khepera_k213

Figure 3.53: 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 vision turret with greyscale images. Using this device, the robot is able to translate the information contained in the image into text and print this result in the Console window. When you load this world, the robot will not begin to move immediately. It will give you enough time to read the explanations printed in the Console window concerning this world. The source code for this controller is in the khepera_k213 directory.

3.5.22 khepera_pipe.wbt

Keywords: DifferentialWheels, UNIX pipe, client program, Khepera

khepera_pipe

Figure 3.54: 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.

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

3.5.23 khepera_tcpip.wbt

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

khepera_tcpip

Figure 3.55: 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.

3.5.24 koala.wbt

Keywords: DifferentialWheels, DistanceSensor, Braitenberg, Koala

koala_world

Figure 3.56: 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 located in the resources/projects/default/controllers/braitenberg directory.

3.5.25 magellan.wbt

Keywords: DifferentialWheels, DistanceSensor, Braitenberg, Magellan

magellan

Figure 3.57: 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 others/worlds directory. Like many other examples, this one uses the braitenberg controller. The source code for this controller is located in the resources/projects/default/controllers/braitenberg directory.

3.5.26 pioneer2.wbt

Keywords: DifferentialWheels, DistanceSensor, Braitenberg, Pioneer 2

pioneer2_world

Figure 3.58: 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 resources/projects/default/controllers/braitenberg directory.

3.5.27 rover.wbt

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

rover_world

Figure 3.59: 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 C, as a reference for translating Webots code from one language to another. The source code for this controller is in the Rover directory.

3.5.28 scout2.wbt

Keywords: DifferentialWheels, DistanceSensor, Braitenberg, Scout 2

scout2

Figure 3.60: scout2.wbt

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

3.5.29 shrimp.wbt

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

shrimp

Figure 3.61: 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 beginning of the simulation in the Console window.

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

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.5.30 bioloid.wbt

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

bioloid

Figure 3.62: bioloid.wbt

In this example, the four-legged robot model (Figure figure 3.62 (a)) corresponds to a real Bioloid robot (Figure figure 3.62 (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 modeled. 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:

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:

The walking gait used in the controller relies on an inverse kinematics model. Further details are available from BIRG web site. The included controller 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 ellipsoids 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:

release 7.0.2
Copyright © 2012 Cyberbotics Ltd. All right reserved.