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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.
|
|
3.5.23 khepera_tcpip.wbt
Keywords: DifferentialWheels, TCP/IP, client program, Khepera

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

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

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

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

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

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

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:
-
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.5.30 bioloid.wbt
Keywords: Robot node, legged robot, Servo, Bioloid, Camera, DistanceSensor, keyboard, modular robots, walking

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:
-
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 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:
-
Q: Increase frequency
-
W: Decrease frequency
-
S: Increase stride length factor
-
A: Decrease stride length factor