# Virtual Reality-Based Interface for Advanced Assisted Mobile Robot Teleoperation
## 2 Proposed Application  
### Overview  
The application developed in this work consists of two workspaces: the local workspace in which the VR headset is used and the remote workspace in which the robotic system operates, as shown in Figure 1.  
In the _local workspace_, the user is able to visualize the robot and its environment by wearing the VR headset. Without loss of generality, this work uses the Oculus Quest 2 VR headset [53], with a LCD screen with a resolution of 1832 \(\times\) 1920 pixels per eye and refresh frequency of up to 90 Hz, 6 GB of RAM, and a Quadcomm Snapdragon XR2 processor. In addition, this device allows standalone applications. In this work, the _Utility Real-Time Development Platform_[54] is used to develop the virtual environment. Hence, the real robot is modeled and included in the virtual world. The location of the detected obstacles in the virtual world is updated according to that of the corresponding real-world objects, which is obtained online from sensor measurements. In particular, in the proposed application, the robot configuration is obtained reading the pose (i.e., position and orientation) values from the robot controller, whereas the accurate location of the detected objects is obtained using a 360\({}^{\circ}\) laser distance sensor (LDS) mounted on top of the robot. In addition, a gamepad device is used to allow the user to drag the reference through the virtual workspace, thus resulting in the movement of both real and virtual robots. A Bluetooth communication is established between the gamepad and the VR headset. In this work, the Xbox wireless controller (gamepad) [55] is used. Note that virtual reality headsets use a different set of controllers [53], one per hand, to allow free movement to the user in order to achieve a better virtual reality experience. However, the ergonomics of these controllers is not developed for applications such as the one presented in this work, which is more related to conventional games. Hence, this paper proposed the use of gamepads, which is more intuitive, known by users and ergonomic for robot teleoperation applications. In the _remote workspace_, the high level controller of the robot receives the position command from the VR application, which corresponds to the reference position in the  
Figure 1: Remote human–robot interaction using VR with data from LDS sensor and the robot odometry. virtual workspace that is given by the movement performed by user with the gamepad. The controller also receives from the LDS mentioned above the distance between the detected objects and the mobile robot boundary. Thus, according to these values, the high-level controller computes a proper robot velocity and commands the corresponding wheel speed values to the robot controller. In particular, the high-level controller used in this work is based on the well-known potential field method: on the one hand, the distance to the obstacles measured by the LDS sensor is used to compute a \"repulsive\" force in order to avoid collisions with the obstacles in the environment; on the other hand, the reference position provided by the user at every time instant is used to compute an \"attractive\" force. Therefore, this type of controller is purely _reactive_ to the user teleoperation commands and to the obstacles surrounding the mobile robot. Thus, there is no kind of high-level planning and, hence, there is no a priori path to be followed. More details about the mentioned high-level controller for the robotic system are given in Section 2.3. Without loss of generality, this work uses a commercial mobile robot, the Turtlebot3 Burger [56], which is equipped with two servos Dynamixel XL430-W250-T for the wheels, an OpenCR (32-bit ARM Cortex-M7) embedded controller (Robot controller), a Raspberry Pi-3 (High-level controller) and a 360\({}^{\circ}\) LiDAR sensor (LDS), see [56] for further details.