**4. Experimental results**

A 3D model of the palletizer robot designed on Google SketchUp® is shown in **Figure 12**.

The experimental tests were performed on room with natural light, without any kind of obstacles around. The robot moves on a rectangular wood base sized 2 × 1.2 m, and the pallet is a square wood base of 30 cm located on the upper right corner of the base. Initially, the robot is located at the lower left corner as its start point. This information about the environment is registered as a matrix in a text file, with values '0' and '1' representing free and occupied cells in the environment, respectively. The size of the matrix is related to the navigable space, and in our case, the matrix is 20 × 12; therefore, each cell is 10 cm big, representing an environment of 2 × 1.2 m.

Some images of the robot arriving at the object location and picking it up with the gripper are included in **Figure 13**. Many orders are carried out during this first routine of the robotic arm: set, down, open, close and up gripper to take the object. The second routine of the robotic arm consists in placing the object on the final pallet. This routine starts with the arm up, and then, it goes down slowly. Once the gripper is located over the pallet, it opens, goes up and finally closes the gripper (**Figure 14**).

**Figure 12.** 3D model of the assembled palletizer robot.

**Figure 13.** Images illustrate the first routine performed by the robotic arm: picking up an object.

Design and Implementation of a Demonstrative Palletizer Robot with Navigation…

http://dx.doi.org/10.5772/intechopen.72872

181

**Figure 11.** (a) Simulation results of the A-star algorithm and (b) results of modified A-star algorithm.

Design and Implementation of a Demonstrative Palletizer Robot with Navigation… http://dx.doi.org/10.5772/intechopen.72872 181

**Figure 12.** 3D model of the assembled palletizer robot.

perform horizontal and vertical trajectories and left or right rotations. Diagonal movements cannot be performed, because the robot size is not considered for the final path computation, and, consequently, it is more important to avoid possible robot collisions than to get an optimal traversing path. For this reason, the virtual instrument (VI module) provided on the software is modified to exclude all diagonal nodes that could be included in the path. The modified class is called "*GetNeighbours*" of the library "*OccupancyGridWorldMap,"* and only we establish a fixed threshold value for the cost function of the diagonal nodes, such that it will always be higher than other possible nodes. **Figure 11(a)** illustrates simulation results of the A-star algorithm, and **Figure 11(b)** the modified version for the same environment before programming the mobile robot DaNI. Note that there are diagonal displacements on the path, yet they are not too close to the obstacles, so the risk of collision is minimal. Real tests of the final palletizer robot are presented in the next section.

A 3D model of the palletizer robot designed on Google SketchUp® is shown in **Figure 12**.

**Figure 11.** (a) Simulation results of the A-star algorithm and (b) results of modified A-star algorithm.

The experimental tests were performed on room with natural light, without any kind of obstacles around. The robot moves on a rectangular wood base sized 2 × 1.2 m, and the pallet is a square wood base of 30 cm located on the upper right corner of the base. Initially, the robot is located at the lower left corner as its start point. This information about the environment is registered as a matrix in a text file, with values '0' and '1' representing free and occupied cells in the environment, respectively. The size of the matrix is related to the navigable space, and in our case, the matrix is 20 × 12; therefore, each cell is 10 cm big, representing an environment of 2 × 1.2 m. Some images of the robot arriving at the object location and picking it up with the gripper are included in **Figure 13**. Many orders are carried out during this first routine of the robotic arm: set, down, open, close and up gripper to take the object. The second routine of the robotic arm consists in placing the object on the final pallet. This routine starts with the arm up, and then, it goes down slowly. Once the gripper is located over the pallet, it opens, goes up and finally

**4. Experimental results**

180 Advanced Path Planning for Mobile Entities

closes the gripper (**Figure 14**).

**Figure 13.** Images illustrate the first routine performed by the robotic arm: picking up an object.

**Figure 14.** Images illustrate the second routine performed by the robotic arm: placing object on the pallet.

The robotic arm motion is a program synchronized with the path planning strategy in the mobile robot; in contrast, the A-star algorithm was established as the main routine of the palletizer robot. That is, rather DaNI robot or NXT Lego performs their programmed tasks sequentially and the mobile robot has the master control. The path planning module on the robot consists of three stages: initial, intermediate and final. The first stage involves the A-star algorithm: it receives the initial map of the environment (the text file explained above), the start and end positions of the robot, and then, the module calculates the navigable path of the robot. In addition, this stage calculates an occupation map, indicating the cells that the robot must "visit" during navigation to get to the goal position.

In the intermediate stage, the occupation map with the resulted trajectory is analyzed and adequate in accordance with the robot dimensions and motor power: set velocity parameters, rotation angles, and warranty that all the movements could be performed by the DaNI robot. The interpretation and adequacy of the path in the robot consists in setting up when the robot moves straight, turns left or right or when the goal is reached. Thus, a straight motion is included (represented as '0') when the coordinates (*x,y*) of any pair of consecutive cells in the path change only in the 'x' or 'y' value. If both coordinates change, then a left or right motion ('1') is included depending on the change in the coordinates. As the cells in the path are evaluated in pairs of cells, the robot stops when the second *(x,y)* cell coordinates is the goal, represented as '2'. In this way, at the end of the intermediate stage, a chain of instructions that includes numbers '0', '1', '2' codes the physical movements that the robot must perform.

In our real environment, the first test carried out was to move the robot from (1,1) cell (initial robot position) to (2,2) cell (box location), without obstacles on the map (**Figure 16**). **Figure 17**

**Figure 16.** First path to move the robot from (1,1) initial position to (2,2) box location, without obstacles in the

Design and Implementation of a Demonstrative Palletizer Robot with Navigation…

http://dx.doi.org/10.5772/intechopen.72872

183

The second path performed consists of getting to a second final point, that is, the pallet location for leaving the box. Here the initial position will be the object location which corresponds to the final coordinate performed in the first stage. Thus, considering the pallet location as cell *(8, 3)*, the second path performed to get the pallet is illustrated in **Figures 18** and **19**: graphical

shows the first part of the proposed routine, when the robot takes the box.

interface results and the second part of the real robot performance.

**Figure 15.** Graphical interface of the robot navigation.

environment.

During the final stage, the movements and rotations planned for the robot are carried out in accordance with the chain of instructions provided by the intermediate stage. **Figure 15** illustrates a graphical interface that simulates robot navigation in an environment of *36 × 36* cells with obstacles, for an initial point and final point of *(1,1)* and *(20,20)*, respectively. The output path is shown in the left graph, while the output data of initial, intermediate and final stages, including the chain of instructions, are illustrated at the top of the graphical interface.

Design and Implementation of a Demonstrative Palletizer Robot with Navigation… http://dx.doi.org/10.5772/intechopen.72872 183

**Figure 15.** Graphical interface of the robot navigation.

The robotic arm motion is a program synchronized with the path planning strategy in the mobile robot; in contrast, the A-star algorithm was established as the main routine of the palletizer robot. That is, rather DaNI robot or NXT Lego performs their programmed tasks sequentially and the mobile robot has the master control. The path planning module on the robot consists of three stages: initial, intermediate and final. The first stage involves the A-star algorithm: it receives the initial map of the environment (the text file explained above), the start and end positions of the robot, and then, the module calculates the navigable path of the robot. In addition, this stage calculates an occupation map, indicating the cells that the robot

**Figure 14.** Images illustrate the second routine performed by the robotic arm: placing object on the pallet.

In the intermediate stage, the occupation map with the resulted trajectory is analyzed and adequate in accordance with the robot dimensions and motor power: set velocity parameters, rotation angles, and warranty that all the movements could be performed by the DaNI robot. The interpretation and adequacy of the path in the robot consists in setting up when the robot moves straight, turns left or right or when the goal is reached. Thus, a straight motion is included (represented as '0') when the coordinates (*x,y*) of any pair of consecutive cells in the path change only in the 'x' or 'y' value. If both coordinates change, then a left or right motion ('1') is included depending on the change in the coordinates. As the cells in the path are evaluated in pairs of cells, the robot stops when the second *(x,y)* cell coordinates is the goal, represented as '2'. In this way, at the end of the intermediate stage, a chain of instructions that includes numbers '0', '1', '2' codes the physical move-

During the final stage, the movements and rotations planned for the robot are carried out in accordance with the chain of instructions provided by the intermediate stage. **Figure 15** illustrates a graphical interface that simulates robot navigation in an environment of *36 × 36* cells with obstacles, for an initial point and final point of *(1,1)* and *(20,20)*, respectively. The output path is shown in the left graph, while the output data of initial, intermediate and final stages, including the chain of instructions, are illustrated at the top of the graphical interface.

must "visit" during navigation to get to the goal position.

ments that the robot must perform.

182 Advanced Path Planning for Mobile Entities


**Figure 16.** First path to move the robot from (1,1) initial position to (2,2) box location, without obstacles in the environment.

In our real environment, the first test carried out was to move the robot from (1,1) cell (initial robot position) to (2,2) cell (box location), without obstacles on the map (**Figure 16**). **Figure 17** shows the first part of the proposed routine, when the robot takes the box.

The second path performed consists of getting to a second final point, that is, the pallet location for leaving the box. Here the initial position will be the object location which corresponds to the final coordinate performed in the first stage. Thus, considering the pallet location as cell *(8, 3)*, the second path performed to get the pallet is illustrated in **Figures 18** and **19**: graphical interface results and the second part of the real robot performance.

If no more boxes must be palletized, the robot performs a third path to reach the initial position

**Figure 19.** Final part of the routine. (a) By rows: robot moves from initial position to the pallet carry on the box and (b)

Design and Implementation of a Demonstrative Palletizer Robot with Navigation…

http://dx.doi.org/10.5772/intechopen.72872

185

The task of moving an object from one place to another in an autonomous way requires many considerations: the mobile robot, the mechanism used to carry the object, the path planning strategy, and synchronization of all the systems involved in the task. In this chapter, the robotic NXT arm can be programmed at a maximal distance of 10 m. and some of the consid-

again, in our example cell (1,1).

**5. Conclusions and perspectives**

by rows: robot leaves carefully the box on the pallet.

erations to implement this kind of project are:

**1.** Validate ultrasonic sensor values when executing the trajectory.

**2.** Execute the trajectory in two stages: to reach the box and to place it in the pallet.

cient friction of the wheels against the floor, to establish speeds and distances.

An appropriate space must be found for robot navigation purposes to avoid excessive or defi-

The overall strategy programmed on the mobile robot should encourage beginners or young people interested in robotic developments. We are currently working on the integration of a method to verify if the second phase of the trajectory can be performed as initially established. In addition, we are also correcting odometric mistakes at a mechanical level. On both platforms, DaNI robot and NXT, LabView and LabView robotic modules are used respectively to

**Figure 17.** Real robot performance. (a) Robot path to the box location and (b) robot takes the box.

**Figure 18.** Path to move the robot from (2,2) to (8,3) cells, without obstacles in the environment.

**Figure 19.** Final part of the routine. (a) By rows: robot moves from initial position to the pallet carry on the box and (b) by rows: robot leaves carefully the box on the pallet.

If no more boxes must be palletized, the robot performs a third path to reach the initial position again, in our example cell (1,1).
