![]() |
4.3 My third world: pioneer2.wbtWe are now going to model and simulate a commercial robot from Activmedia Robotics: Pioneer 2-DXTM, as shown on the Activmedia Web site: http://www.activrobots.com. First, you must model the robots environment. Then, you can model a Pioneer 2TM robot with 16 sonars and simulate it with a controller. Please refer to the worlds/pioneer2.wbt and controllerss/pioneer2 files for the world and controller details. 4.3.1 EnvironmentThe environment consists of:
This environment is shown in figure 4.16. ![]() Figure 4.16: The walls of the Pioneer 2TM robot world 4.3.2 Robot with 16 sonarsThe robot (a DifferentialWheels node) is made up of six main parts:
The Pioneer 2 DXTM robot is depicted in figure 4.17. ![]() Figure 4.17: The Pioneer 2 DXTM robot Open the tree editor and add a DifferentialWheels node. Insert in the children field:
Modelling the sonars: The principle is the same as for the kiki robot. The sonars are cylinders with a radius of 0.0175 and a height of 0.002. There are 16 sonars, 8 on the front of the robot and 8 on the rear of the robot (see figure 4.23). The angles between the sonars and the initial position of the DEF SONAR Transform are shown in figure 4.24. A DEF SONAR Transform contains a Cylinder node in a Shape node with a rotation around the z axis. This DEF SONAR Transform must be rotated and translated to become the sensors FL1, RR4, etc. ![]() Figure 4.24: Angles between the Pioneer 2TM sonar sensors Each sonar is modelled as a DistanceSensor node, in which can be found a rotation around the y axis, a translation, and a USE SONAR Transform, with a name (FL1, RR4, ...) to be used by the controller.
Table 4.1: Translation and rotation of the Pioneer 2TM DEF SONAR Transforms To finish modelling the Pioneer 2TM robot, fill in the remaining fields of the DifferentialWheels node as shown in figure 4.25. ![]() Figure 4.25: Some fields od the Pioneer 2TM DifferentialWheels node 4.3.3 ControllerThe controller of the Pioneer 2TM robot is fairly complex. It implements a Braitenberg controller to avoid obstacles using its sensors. An activation matrix was determined by trial and error to compute the motor commands from the sensor measurements. However, since the structure of the Pioneer 2TM is not circular some tricks are used, such as making the robot go backwards in order to rotate safely when avoiding obstacles. The source code of this controller is a good programming example. The name of this controller is pioneer2. ![]() ![]() ![]() ^ page top ^ |
E-mail to webmaster | Last updated: | Copyright © 2002 Cyberbotics Ltd. |