# Virtual Reality-Based Interface for Advanced Assisted Mobile Robot Teleoperation
## 2 Proposed Application
### Virtual Environment  
The virtual environment consists of an \"infinite\" floor divided by a grid of 1m side squares. The user can modify the height of this floor to accommodate it to his/her point of view. The rest of the elements are put over this floor. In order to help the user to have a quick idea of the distance between objects, each square of the grid is divided into four small squares of 0.5 m of the side, depicting a mosaic of gray colors that allows to easily distinguish one from the others. In addition, a dark theme to the sky is chosen to facilitate the user visibility of the relevant elements present in the VE; see Figure 2. Next, a description of each element and the functionality of the proposed VE are detailed. Figure 2 shows the main elements of the proposed VE. As commented before, the Turtlebot3 Burger mobile robot for the experimental sections is used in this work; see Section 3 for further details. The 3D model, representing the robot in the virtual space, consists of the main structure (body, in blue), the LDS sensor attached to the body, and the wheels of the mobile robot (in gray). It is worth mentioning that, in the virtual environment, the wheels rotate independently of each other to simulate the real movement of the robot. Note that in the proposed approach, the user does not directly move the mobile robot; rather, the user indicates the reference position that the robot has to track. If this reference position can be reached by the robot, the robot will move to the indicated location. Otherwise, the robot will hold on as close as possible to the indicated reference position, avoiding collisions with the obstacles in its environment. As shown in Figure 2a, the reference position provided by the user, which has to be tracked by the mobile robot, is represented as a blue circle, whereas the detected obstacles are represented by a set of quads getting into virtual brown \"walls\"; see Figure 2b,d. The transparency, color and height of these \"walls\" are chosen to indicate the presence of obstacles without disturbing the visibility of the user during the teleoperation task. In addition, a 2D map is also developed to allow the user to have an orthogonal view of the 3D environment; see Figure 2a,b. The 2D map can be activated and deactivated by the user at any moment by pressing and releasing, respectively, a stick of the gamepad. Moreover, when the 2D map is activated, the user can still command the robot and simultaneously modify the map view, i.e., zoom in/out or move around the map. The user can see the following information in the 2D map: the detected objects (in yellow); the robot position (blue circumference); the reference position (green circumference); and a 1 m side square grid to easily locate the different elements in the map. Once the teleoperation task is finished, the user can save the 2D resulting map generated. Furthermore, the user can activate a panel showing relevant task information, such as robot speed or the remaining distance to the target. This information automatically disappears after 3 s to reduce the number of command buttons. Note that, if the proposed element for the mobile robot boundary (i.e., the circle in 2D or cylinder in 3D; see Figure 2e) was shown at any moment, the user view of the robot and the other virtual objects would be difficult and may affect the user task performance. In order to overcome this, a new shader was developed [57] to measure the minimum distance between the detected obstacles and the mobile robot boundary. In this way, only the affected part of the boundary element is displayed. In addition, as the closest obstacle approaches to the mobile robot boundary, the corresponding part of the boundary element is gradually displayed; see Figure 2f. Figure 2: VE overview. (**a**) The 2D map view and 3D view. (**b**) Requested information data. (**c**) Teleporting (blue arrowed circle). (**d**) Detected objects (elements in brown). (**e**) Mobile robot boundary (full view). (**f**) Mobile robot boundary (local view).