# Framework for Fast Experimental Testing of Autonomous Navigation Algorithms
## 6 Experiments
### Initial Framework Experiments  
To test the initial framework implementation described in Section 4, we carried out an experimental session in the surroundings of the University Institute for Computing Research building, where the secondary laboratory of our research group is located (Figure 10, right). For this experiment,  
\begin{table}
\begin{tabular}{c c c c} \hline \hline
**Module** & **Parameter** & **Value** & **Units** \\ \hline GMapping & Grid resolution & 0.05 & m \\  & Maximum map dimensions & \(100\times 100\) & m \\  & Number of particles & 30 & none \\ \hline AMCL & \(\alpha_{1}\) & 1.12 & none \\  & \(\alpha_{2}\) & 0.1 & none \\  & \(\alpha_{3}\) & 1.05 & none \\  & \(\alpha_{4}\) & 0.1 & none \\ \hline Planning & Subsampling distance & 2.0 & m \\ \hline Control & Constant \(k_{d}\) & 8.0 & none \\  & Constant \(k_{a}\) & 0.5 & none \\  & Maximum speed & 1.0 & m/s \\  & Minimum speed & 0.6 & m/s \\  & Maximum steering & 25.0 & deg \\ \hline Kalman filter & Noise model for \(xy\) components & 0.05 & m \\  & Noise model for \(\theta\) component & 0.58 & deg \\ \hline Integrity monitoring & Mahalanobis distance threshold & 3.0 & none \\  & AMCL correction threshold for \(xy\) components & 3.0 & m \\  & AMCL correction threshold for \(\theta\) component & 10 & deg \\ \hline \hline \end{tabular}
\end{table}
Table 1: Adjustable parameters grouped in subsystems. The table shows the values used in the experimental sessions. Some parameters depend on the robot, as is the case with the parameters \(\alpha\) of AMCL, while others depend on the environment, as the map resolution in GMapping.  
we used our framework to create a basic but complete autonomous navigation application able to navigate indefinitely repeating the same trajectory in the described environment. Following the procedure detailed in Section 4, the experimental session was divided into two phases: pre-execution, and execution.  
In the pre-execution phase, we recorded a dataset in manual driving making a closed loop around the building shown in Figure 10, right. Then, offline we ran this dataset in order to generate the inputs for the architecture shown in Figure 2. As result of this process we obtained a grid map (shown in Figure 10, left) and a subsampled trajectory as described in Section 4.2.2. Thanks to the use of standard ROS launch files we can run the whole pre-execution system with just one click. In the online execution phase, we used the architecture shown in Figure 3 to replicate autonomously the trajectory obtained in the previous phase, cyclically and indefinitely.  
The use of a roslaunch file made the starting process fast and easy. During the experiment, the system behavior was quite good. The localization was very stable, allowing the robot to complete the experiment--consisting in five consecutive laps around the building--without interruption. The system demonstrated a good repetitiveness with very small variations in the trajectories from lap to lap. The control was smooth and stable along the entire path adapting perfectly to the given trajectories without suffering any oscillations. This first experiment proved that our framework is able to produce a real autonomous navigation application quickly and easily, requiring just the execution of two launch files. As we can see in [24], it would be also possible to perform an equivalent experiment using the tools provided by the navigation stack and some plug-ins. However, in the following section, we demonstrate the versatility of our framework by changing the localization system to navigate on and off-map, which would have not been possible using the navigation stack.