# Virtual Reality-Based Interface for Advanced Assisted Mobile Robot Teleoperation
## 2 Proposed Application
### High Level Controller: Mobile Robot Navigation with the Potential Field-Based Method  
The well-known conventional potential field-based method [59] is typically used for mobile robot navigation with collision avoidance. In particular, this approach consists of using virtual forces, i.e., attractive and repulsive forces, to determine the robot movement, as detailed below. The commonly used attractive and repulsive forces have the following form [60]:  
\[\mathbf{F}_{att}=K_{att}\Big{(}\mathbf{p}_{ref}-\mathbf{p}\Big{)} \tag{1}\]  
\[\mathbf{F}_{rep}=\left\{ \begin{matrix}K_{rep}\Big{(}\rho^{-1}-\rho_{0}^{-1} \Big{)}\rho^{-2}\
abla\rho&\text{ if }\rho<\rho_{0}\\ 0&\text{ otherwise,}\end{matrix} \right. \tag{2}\]  
where vector \(\mathbf{F}_{att}\) is the _attractive force_ to the reference; vector \(\mathbf{F}_{rep}\) is the _repulsive force_ from the obstacles; the positive constants \(K_{att}\) and \(K_{rep}\) represent the gains of the attractive and repulsive forces, respectively; vectors \(\mathbf{p}_{ref}\) and \(\mathbf{p}\) are the reference position and the actual robot position, respectively; \(\rho\) is the minimum distance from the obstacles to the mobile robot boundary; vector \(\
abla\rho\) represents the gradient of the mentioned minimum distance, i.e., a vector pointing from the closest obstacle to the mobile robot boundary; and \(\rho_{0}\) is a positive constant denoting the distance of influence of the obstacles for the repulsive force. Thus, the sum of all \"forces\" determines the magnitude and direction of the robot motion as follows:  
\[\hat{\mathbf{p}}_{t,c}=\mathbf{F}_{att}+\mathbf{F}_{rep}, \tag{3}\]where vector \(\dot{\mathbf{p}}_{t,c}\) represents the commanded value for the velocity of the robot _tracking point_, i.e., the point of the mobile robot that tracks the reference signal. Next, the specific mobile robot used in this work for the experimentation is taken into account to compute the minimum distance \(\rho\) between the detected obstacles and the mobile robot boundary, as well as the commands for the robot wheel velocities. As mentioned before, due to the shape of the Turtlebot3 Burger, the 2D boundary for the mobile robot is simple modeled in this work as a circle (Without loss of generality, other 2D boundaries could also be considered for other specific mobile robots, e.g., a square or an ellipse, details omitted for brevity). Therefore, the minimum distance \(\rho\) between the detected obstacles and the mobile robot boundary is given by  
\[\rho_{i} =R^{-2}\Big{(}P_{x,j}^{2}+P_{y,i}^{2}-R^{2}\Big{)} \tag{4}\] \[\rho =\min\{\rho_{i}\},\]  
where \(R\) is the radius of the circle used to model the mobile robot boundary, \(\mathbf{P}_{i}=[P_{x,i}\;\;P_{y,i}]^{\mathrm{T}}\) is the 2D position of the \(i\)-th detected point of the obstacles relative to the center of the boundary circle, and \(\rho_{i}\) is the normalized distance from point \(\mathbf{P}_{i}\) to the boundary circle. Note that this normalized distance has no units. Since the Turtlebot3 Burger is a differential-drive mobile robot [61], the tracking point considered in this work is located on the longitudinal symmetry axis of the mobile robot and at a distance \(M\) from the rotation axle of the fixed wheels [62]. Hence, the commanded value for the mobile robot motion is given by [63]  
\[ \begin{bmatrix}v_{c}\\ \omega_{c}\end{bmatrix}  = \begin{bmatrix}\cos(\theta)&\sin(\theta)\\ -\sin(\theta)/M&\cos(\theta)/M\end{bmatrix} \dot{\mathbf{p}}_{t,c} \tag{5}\] \[ \begin{bmatrix}\dot{\varphi}_{r,c}\\ \dot{\varphi}_{l,c}\end{bmatrix}  =r^{-1} \begin{bmatrix}1&L/2\\ 1&-L/2\end{bmatrix}\begin{bmatrix}v_{c}\\ \omega_{c}\end{bmatrix}