# Sampling-Based Path Planning Algorithm for a Plug & Produce Environment
## 3 Results
Fine positioning is used when very high accuracy is required. This setting is preferred for a task that requires high precision, for example, assembling small components or handling delicate objects. To set up fine positioning, the zone data values should be reduced, i.e., \(X=2\) mm, \(Y=2\) mm, and \(Z=2\) mm. Z100 positioning is a standard accuracy level suitable for most general tasks. It balances accuracy with speed and is commonly used in manufacturing applications. To set up Z100 positioning, the zone data values should be configured as \(X=100\) mm, \(Y=100\) mm, and \(Z=100\) mm. Z150 positioning offers a slightly larger accuracy zone, allows for a bit more tolerance, and maintains reasonable precision. This is mainly preferred where the speed is more critical than accuracy. To configure Z150 zone data, the values should be set as \(X=150\) mm, \(Y=150\) mm, and \(Z=150\) mm. A Z200 position provides a larger accuracy zone, and it is best suited for tasks where precision is less, and the speed of the robot is a primary concern. To configure Z200 zone data, the values are \(X=200\) mm, \(Y=200\) mm, and \(Z=200\) mm. These zone values can be changed by accessing the robot's controller. The higher zone values are smoothening the corners of the paths more. Due to that, the energy consumption of the path will be considerably lower, whereas the lesser values are reaching the corner of each node generated so that the robot encounters a greater number of accelerations and decelerations, thereby consuming more energy. Even though PRM requires longer computational time, it creates nodes and edges for the entire workspace of the environment and applies the [PERSON] optimization iteration. If the environment is not changed, it does not need to create nodes and edges every time; thus, it will generate the path quickly after some iterations, meaning that it counts only [PERSON]'s optimal path finding time. For different speeds, the energy is measured to be at least five times higher, and the average values are calculated and centralized in Table 4. From the measured data, it is evident that less energy is consumed at a lower speed, i.e., \(50\) mm/s. When the speed increases, the energy consumption also increases linearly. Energy consumption depends on many factors, e.g., the number of nodes generated for each path, payload, robot configuration, speed of the robot, zone values, and the temperature of the gearbox in the robot. Figure 4: More constraint environment where the adaptive RRT* generates the path, while RRT* fails. (A) tooltip; (B) generated path; (C) obstacles (D); the gap between the obstacles. The energy consumed by each path was measured through API available in Robot-Studio called the signal analyzer online, and the measured data validated with an energy measuring instrument C. A 8335 Power Quality Analyzer. It is apparent from the response given in Figure 5 that when the speed increases more than 1000 mm/s, the energy consumption also increases rapidly. Generally, PRM consumes more energy and takes more computation time and move-along time. Even though an adaptive RRT* consumes more energy than RRT* due to the additional node it generates when it encounters obstacles. Thus, it is preferred in the Plug & Produce environment for online path planners when there are more constraints in the process modules. \begin{table}
\begin{tabular}{c c c c c c c c c c c c} \hline \hline \multirow{2}{*}{**Speed in mm/s**} & \multicolumn{6}{c}{**Move-Along Time of the Generated Path (Secs)**} \\ \cline{2-11}  & **RRT** & **Adaptive RRT** & **PRM** & **RRT\({}^{*}\)** & **Adaptive RRT\({}^{*}\)** \\ \hline
400 & 9.9 & 12.8 & 6.2 & 5.8 & 5.8 & 5.8 \\ \hline
500 & 7.7 & 10.3 & 4.9 & 4.7 & 4.7 \\ \hline
600 & 6.9 & 8.6 & 4.2 & 3.9 & 3.9 \\ \hline
700 & 5.8 & 7.6 & 3.3 & 3.4 & 3.5 \\ \hline
800 & 4.7 & 6.5 & 3 & 3 & 3 & 3 \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Average values of the move-along time of the generated path are centralized.