## 4 Mobile Robot Simulator Platform  
To validate the performance of Algorithm 1, a mobile robot simulator was developed using the Pygame package in Python environment. This simulator can generate a 2D plane with random obstacles as that shown in Figure 1. It enables the vehicle to perform three motion types, such as go straight ahead, rotate to the left, and rotate to the right, i.e., \(m=3\), and the state change functions are defined as  
\[\begin{array}{l}\mathcal{F}_{1}(s(t))=[x(t)+v_{m}\cos(\theta(t))\;y(t)+v_{m} \sin(\theta(t))\;\theta(t)]^{\top},\\ \mathcal{F}_{2}(s(t))=[x(t)\;y(t)\;\theta(t)+v_{r}]^{\top},\\ \mathcal{F}_{3}(s(t))=[x(t)\;y(t)\;\theta(t)-v_{r}]^{\top},\end{array} \tag{18}\]  
where \(v_{m}\) is the motion speed, and \(v_{r}\) is the rotation speed. Note that the values of \(v_{m}\) and \(v_{r}\) can be customized in the configuration window of the simulator.  
This simulator can generate various occasions with random obstacles and collect the decisions made by the human test candidates, and an exemplary situation is shown in Figure 4. As can be seen from this figure, there were 17 laser detectors, i.e., \(m=17\), installed on the front half plane of the mobile robot. This simulator replicated a radar with 5 m measuring distance, and each pixel in the screen denoted 0.01 m. Therefore, the maximum detection distance was set as \(d_{max}=500\) in units of pixels. Since the laser detectors can only measure the information in the front 180\({}^{\circ}\) direction, the bottom half of the circular sight in this figure was covered when recording the human user's decisions to provide a fair navigation environment. The color \(c_{i}\) of the \(i\)-th laser beam followed the mechanism  
\[c_{i}=\begin{cases}\text{Green},\;0.6d_{max}<d_{i}\leqslant d_{max},\\ \text{Yellow},\;0.3d_{max}<d_{i}\leqslant 0.6d_{max},\\ \text{Red},\;\;\;\;\;\;\;\;\;\;\;\;\;0<d_{i}\leqslant 0.3d_{max},\end{cases} \tag{19}\]  
which alerted the human test candidates to potential nearby obstacles. Note that only a circular sight is shown in Figure 4, and it represents the exact region the mobile robot could detect using its laser sensors. The obtained decisions were recorded as the label \(l^{i}\), using the reference equation  
\[l^{i}=\begin{cases}0,\;\text{Go ahead},\\ 1,\;\text{Rotate to left},\\ 2,\;\text{Rotate to right}.\end{cases} \tag{20}\]  
The obtained labels were saved in the database together with the corresponding environmental information \(d_{i}\), \(i=1,\ldots,17\) and \(\phi^{i}\), which formed a complete labeled element.  
Figure 4: A straightforward example of user data collection.  
**Remark 2**.: _The generated occasions only provide the human test candidates with the exact information that the mobile robot can have. Therefore, with both having the same scope of obtained environmental information, a neural network model can be trained to replicate the human decision-making process in a fair manner._  
**Remark 3**.: _This simulator is capable of accurately modeling a navigation task in a 2D plane with random obstacles, and each human labeling process can be completed within \(1\) s. However, while using the automated algorithms, e.g., reinforcement learning, on a similar experimental established test platform in practice, it took time to build a limited range of real navigation scenarios. The mobile robot should not move too fast, i.e., less than \(0.2\) m/s, to avoid safety issues, which means they might take more than \(10\) s to obtain useful data. Therefore, the human labeling approach using this simulator has the advantages of data collection speed and data diversity._  
**Remark 4**.: _Note that the algorithm performance was affected by the number \(m\) of laser sensors, as the knowledge of the surrounding environmental information definitely increases with more sensors. In this sense, more detailed information helps the neural network to make more appropriate decisions. However, the implementation space of sensors is restricted on a remote robot, which means the number \(m\) cannot be too large._