## 3 Results  
For the experimental stage, the genetic micro-algorithm was used with binary representation, with populations of five individuals. Each individual is a binary string of 144 bits. The robot can perform 360\({}^{\circ}\) turns to the right or left, using 14 bits for each turn. It can also move forward 50 cm, which requires 10 bits. It follows that each individual will be able to perform six turns and six advances interspersed with each other, i.e., after a turn it performs an advance and after an advance it performs a turn. A mutation was implemented for each bit of (1/chain length) \(\times\) 10. A dynamic crossover process was implemented, varying between 6 and 23 bits per string fragment throughout the generations. Each fragment is made up of 24 bits, which represent a turn and an advance. Two of them are crossed randomly in each process. The robot starts at point (0, 0) and must move over a stage with obstacles until it reaches the goal, which is 2 m ahead of the starting point, has its center at (2, 0), and an area of 20 cm. Table 2 shows the parameters for matching virtual and real orientations and Table 3 shows the parameters for matching virtual distances with real distances. The first experiment consists of a scenario with a single obstacle between the goal and the starting point; this obstacle is 50 cm from the starting point (see Figure 6). \begin{table}
\begin{tabular}{c c c} \hline \hline
**Measured** & **Simulation** & **Robot** \\ \hline
360\({}^{\circ}\) & 358\({}^{\circ}\)–361\({}^{\circ}\) & 354\({}^{\circ}\)–366\({}^{\circ}\) \\ \hline
180\({}^{\circ}\) & 179\({}^{\circ}\)–181\({}^{\circ}\) & 173\({}^{\circ}\)–184\({}^{\circ}\) \\ \hline
90\({}^{\circ}\) & 89\({}^{\circ}\)–91\({}^{\circ}\) & 86\({}^{\circ}\)–94\({}^{\circ}\) \\ \hline
45\({}^{\circ}\) & 43\({}^{\circ}\)–46\({}^{\circ}\) & 43\({}^{\circ}\)–48\({}^{\circ}\) \\ \hline
10\({}^{\circ}\) & 9\({}^{\circ}\)–11\({}^{\circ}\) & 8\({}^{\circ}\)–12\({}^{\circ}\) \\ \hline
5\({}^{\circ}\) & 4\({}^{\circ}\)–7\({}^{\circ}\) & 3\({}^{\circ}\)–8\({}^{\circ}\) \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Turning parameters. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Measured** & **Simulation** & **Robot** \\ \hline
1 m & 98–102 cm & 94–107 cm \\ \hline
50 cm & 48–52 cm & 45–55 cm \\ \hline
25 cm & 24–27 cm & 21–28 cm \\ \hline
15 cm & 14–16 cm & 12–18 cm \\ \hline
10 cm & 9–11 cm & 8–12 cm \\ \hline
5 cm & 3–7 cm & 2–7 cm \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Advancing parameters. The real implementation of this scenario is shown in Figure 7.  
Figure 6: Simulated scenario with one obstacle: (1) goal, (2) obstacle, (3) home, and (4) robot. Figure 7: Scenario with one obstacle: (1) goal, (2) obstacle, (3) home, and (4) robot. After three hundred generations, the best movement combination was obtained. These movements make up the trajectory shown in Figure 8.  
The robot executed these movements using a similar trajectory to reach the goal (see Figure 9). Figure 8: Trajectory in simulated scenario with one obstacle: (1) goal, (2) obstacle, (3) home, (4) robot, and (5) trajectory. Figure 9: Trajectory in scenario with one obstacle: (1) goal, (2) obstacle, (3) home, (4) robot, and (5) trajectory. The best motion proposal obtained at the end of 300 generations is simulated. It describes the trajectory shown in Figure 13.  
The robot executed the proposed movements, which used a similar trajectory to reach the intended goal (see Figure 14). Figure 12: Scenario with two obstacles: (1) goal, (2,3) obstacles, (4) home, and (5) robot. Figure 13: Trajectory in simulated scenario with two obstacles: (1) goal, (2,3) obstacles, (4) home, (5) robot, and (6) trajectory. The behavior of the algorithm in a scenario with two obstacles can be seen in Figure 7.0 Compared to the first experiment, in which close approximations to the goal are achieved in a few generations, more generations are required to achieve better results when a second obstacle is added.