R1 Lite VR Teleoperation Usage Tutorial ROS2
1. Pre-startup Preparation
1.1 Hardware Preparation
| Item | Quantity | Notes |
|---|---|---|
| Meta Quest 3 VR Device | 1 | Includes 1 headset, 2 hand controllers, and a Type-C cable. |
| R1 Lite Base | 1 | Robot body |
| R1 Lite Remote Controller | 1 | Controls the R1 Lite robot |
| R1 Lite Host Computer (Dual System, Non-virtual Machine) | 1 | System: Ubuntu 22.04 |
| Local Area Network | 1 | Used to connect VR device and R1 Lite Base |
1.2 Software Preparation
Check R1 Lite Software Version Update Log to get the latest SDK version. The complete machine ATC SDK version contains all product software resources.
Also, download the VR device configuration SDK:
-
Baidu Cloud: https://pan.baidu.com/s/1SCpvwFIjvAV7EtchW-cssA?pwd=vrvr
-
Meta Related Installation Package.zip: Used for new device activation.
- platform-tools-latest-windows.zip: ADB file, used to install the data collection APP inside the VR headset.
- vr_teleop-0.1.7-20250818.apk: Data collection APP for the VR headset.
2. VR Device Configuration
If your VR device is provided by Galaxea, you can skip Sections 2.1 to 2.5 and go directly to Section 2.6.
2.1 VR Device Developer Mode Activation
Please refer to Meta Quest 3 Developer Mode Instructions to complete activation.
2.2 VR Device SDK Installation (Requires Windows System Computer)
- Extract ADB file: Download and extract the
platform-tools-latest-windows.zipfile. - Connect VR device: Connect the VR device to the computer using a Type-C data cable.
- If you have installed an older version of the apk, please uninstall it first.

- Authorize USB connection: On the VR device, confirm and allow USB device connection (as shown in the figure).

- Enter ADB extraction path: Open File Explorer and enter the extracted ADB tools folder path.
- Copy APK file: Copy the
vr_teleop-0.1.7-20250818.apkfile to this path. - Install APK: Open Command Prompt (CMD) in this path and execute the following command to install the application:
If the command execution shows Success, the installation is successful.

2.3 VR Device Configuration
On the Meta Quest 3 initial interface, connect to the same WiFi network as the R1 Lite.
Note: It is normal to see a restricted network prompt because this network cannot access the Internet.

2.4 Disable Quest Boundary System
- Open Settings > Advanced > Developer.
- Turn off Real Space feature.

Note: - After turning off, the system will no longer prompt to set boundaries. During data collection, even if you move or leave the spot, the process will not be interrupted. - The passthrough view will not be available on the main menu page. - After disabling boundaries, please ensure the operating environment is safe to avoid collision risks.
2.5 Prevent System Sleep
- Open Menu → Settings
- Click General > Power > Display Off
- Set screen timeout to 4 hours

Note: Disabling system sleep is to achieve the "removable wearing" solution. After use, please manually click to turn off the Meta Quest 3S power to avoid battery drain.
Note: Please try to maintain sufficient battery levels for both the VR headset device and controllers, as low battery will affect the frame rate of VR controller pose transmission, causing teleoperation lag.
2.6 Get VR Device IP Address
In the VR device, click on the connected WiFi, open the network page, scroll down to find and record the IP address, such as 192.168.5.24. Hereafter referred to as ${VR_IP}.
2.7 Data Collection Wearing Method
To avoid discomfort from prolonged headset wear, we provide a "removable wearing" solution.
Before use, please complete the "prevent system sleep" and "disable boundary system" settings (the latest retail machines are pre-configured; if not configured, please refer to the above instructions).
- Remove the connection between the top strap and the top of the headset, and remove the facial interface connector to facilitate hanging around the neck for flexible adjustment.
- Hang the headset around your neck and adjust it to face forward, with the display surface perpendicular to the ground (as shown in the figure).

This mounting method ensures that the controllers remain within the camera's viewing range of the headset (approximately 100° horizontal field of view), avoiding going out of tracking range during operation. This wearing method not only ensures stable controller tracking but also makes long-term data collection operations more comfortable and easy.
⚠️ Note: Please use in a safe, open environment to ensure no collisions occur during operation.
3. R1 Lite Configuration
If you don't need to upgrade the robot's software version, please skip this chapter.
-
Download and copy the SDK file (e.g.:
{r1lite_vr_teleop_sdk_name}.tar.gz), execute the following command to copy the SDK to R1 Lite. -
Login to R1 Lite
-
Extract SDK to R1 Lite
-
Install additional dependencies
-
Configure device serial number and device name
# Get r1lite serial number (check shipping list, contact Galaxea customer service if not found) # Example: S2RL100P25110 sudo mkdir -p /opt/galaxea sudo chown -R r1lite:r1lite /opt/galaxea mkdir -p /opt/galaxea/body echo "S2RL100P25110" | tee /opt/galaxea/body/RSN > /dev/null echo "S2RL100P25110" | tee /opt/galaxea/body/RSN_REAL > /dev/null echo "R1LITE" | tee /opt/galaxea/body/ROBOT_NAME > /dev/null # Verify successful write cat /opt/galaxea/body/RSN cat /opt/galaxea/body/RSN_REAL cat /opt/galaxea/body/ROBOT_NAME -
Configure data collection module
Data recording and visualization platform EDP platform free trial - please check the First Data - EDP Getting Started Manual after completion.
After the upgrade is complete, power off the R1 Lite and restart it. After restarting, the software package configuration is complete, and the VR teleoperation function can be used.
After the upgrade is complete, power off the robot and restart it. After restarting, the software package configuration is complete, and the VR teleoperation function can be used.
4. Teleoperation Startup
Note: All operations in this chapter must be completed and confirmed every time you start.
4.1 R1 Lite Body Program Startup
-
Login to R1 Lite
-
Enter software package startup directory
-
Start program
4.2 VR Device Program Startup
Note: Please wear the VR device and hold both controllers before starting the following operations.
4.2.1. Connect WiFi
Confirm that the VR device has successfully connected to the same WiFi network as the R1 Lite body.
4.2.2. Start GalaxeaVR APP

-
Open GalaxeaVR Application:
Click the cube icon in the lower right corner to launch the GalaxeaVR application.
-
Enter R1 Lite IP Address:
After entering the GalaxeaVR application, point the ray emitted by the VR controller at the green IP input box.
Wait for the green input box to slightly change color, then click the input box with the T key (index finger key) of the right controller (the cursor position needs to be slightly lower).
After the keyboard pops up, enter the robot-side IP address (i.e., the R1 Lite IP address).
After setting the IP: Click the Start button to begin (or long press the right controller B key). If you have enabled the volume on the VR headset device, you can hear the connecting prompt tone and the connection successful prompt tone. If you don't hear the connection successful prompt tone, please check if the previous steps were performed incorrectly.
-
Control VR Device:
At this point, the default operation mode of VR is reset mode. Please refer to Section 5.3 to switch to bimanual control mode, then short press the G keys on both controllers to unpause bimanual teleoperation.
Note: The robot will synchronize your operations at this point, please be careful. Start with small movements to ensure there are no obstacles around.
Use the following steps to complete simple controller operations:
- Stop Operation: Long press the right controller B key for more than 2 seconds to stop VR teleoperation. (Note: After stopping, to re-enter teleoperation, you need to exit the GalaxeaVR application and re-enter.)
- Control Gripper: Hand movement controls robot arm movement. The T key on the left controller and the T key on the right controller control the closing of the left and right grippers respectively.
- Pause Right Arm: Short press the right controller G key once, the right arm will stop at the current position; press the G key again to unpause.
- Pause Left Arm: Short press the left controller G key once, the left arm will stop at the current position; press the G key again to unpause.
For detailed operation instructions, please refer to Section 6: Teleoperation Control Instructions.
5. Teleoperation Control Instructions
Please practice using this product in an open area while ensuring personnel and item safety.
It is recommended to become familiar with this product before starting formal data collection.
5.1 Controller Usage Instructions
5.1.1 R1 Lite Aviation Remote Controller
Remote controller usage instructions are as follows:

Note: Before performing any operation, please confirm that all toggle switches (SWA/SWB/SWC/SWD) are toggled to the uppermost position, so that the R1 Lite is in a stopped state to prevent accidental operation.
The operation instructions for switching each toggle switch to different positions under different functions are as follows:

- Host computer controls chassis (down-down-up-up): In this mode, the host computer must first start the chassis motion control program before control can be initiated
- Remote controller controls chassis (down-down-middle-up): After the robot is powered on, this mode can be used directly with the remote controller to control chassis movement, no host computer operation required
- Enable emergency stop function (D down): In any mode, SWD can be toggled down to enable emergency stop; but after enabling emergency stop, the robot must be restarted.
5.1.2 VR Handheld Controllers

5.2 VR Device APP Display Buttons

5.3 Mode Switching
After teleoperation startup, the default mode is reset mode. Users can switch between different operation modes using the VR device controllers.
Note: If you find that the teleoperation posture of the robotic arms is slightly abnormal after using the controller G key multiple times for pausing and unpausing, don't worry. This is caused by the incremental control mechanism of teleoperation. You can reset the robotic arms through the reset mode to better control the robot.
| Mode | Switching Method | Notes |
|---|---|---|
| Reset Mode (Reset) | Long press left joystick down for 1 second | Default mode |
| Bimanual Control Mode (BIMANUAL) | Long press both joysticks down simultaneously for 1 second | To control the chassis, you need to turn on the R1 Lite remote controller and toggle SWA, SWB, SWC, SWD all upward. |
| Torso Mode (Torso) | Long press right joystick down for 1 second |
5.3.1 Reset Mode
| Function | Description | Notes |
|---|---|---|
| Reset Both Arms to Initial Position | VR left controller T + G keys VR right controller T + G keys Press all four buttons together to reset the robot's arm positions to the initial startup position |
- |
5.3.2 Bimanual Control Mode
| Function | Description | Notes |
|---|---|---|
| Hand Following | The R1 Lite manipulator end positions will follow the movement of the VR handheld controllers. | - |
| Gripper Control | T key on VR right controller controls right gripper opening/closingT key on VR left controller controls left gripper opening/closing | - |
| Arm Pause | G key on VR right controller controls right arm pauseG key on VR left controller controls left arm pausePress once to pause, press again to unpause | - |
| Chassis Forward/Backward | VR left controller joystick forward/backward | - |
| Chassis Translation | VR left controller joystick left/right | - |
| Chassis Rotation | VR right controller joystick left/right | - |
5.3.3 Torso Mode
| Function | Description | Notes |
|---|---|---|
| Waist Pitch Forward/Backward (Joint 2) | VR left controller joystick forward/backward | |
| Torso Vertical Movement (Joint 3) | VR right controller joystick forward/backward | |
| Torso Pitch Forward/Backward (Joint 4) | VR right controller T/G keys |
# Modify the following to change the gripper range, please modify the joint position in the launch file
vim /home/r1lite/galaxea/install/teleoperation_ros2/share/teleoperation_ros2/launch/vr_teleoperation.launch.py
'gripper_openning_threshold', default value='80.0' #Maximum value: 100.0
'gripper_closing_threshold', default value='0.0' #Minimum value: 0.0
6. Data Collection Process
Data recording and visualization platform EDP platform free trial - please check the First Data - EDP Getting Started Manual after completion.
6.1 Data Format Introduction
The data collection file format is mcap, with file extension *.mcap.
6.2 Data Acquisition
Default storage path: /home/r1lite/GalaxeaDataset/{data}/
date is the current date, formatted as: 20250307
6.3 Data Recording Configuration File Introduction
The default data recording configuration file is located at:
Configuration File Description: The configuration file is used to describe information about this collection task, and users can modify it according to their needs.
{
"project_info": {
"project_name": "sop_test"
},
"task_info": {
"task_name": "sop_test_data_collection",
"task_owner": "hengyi.fei"
},
"operation_info": {
"teleoperation_type": "VR",
"location": "suzhou",
"operator_name": "jiahao.wu"
}
}
6.4 Data Storage File Introduction
Data is saved in folder + json format, with files corresponding one-to-one. For example:
# For example, the following folder and json file represent a data packet
# The folder contains .mcap data files and meta information
S2R12000P18245_20240213173320125_RAW
S2R12000P18245_20240213173320125_RAW.json
# Format is robot_serial_number+timestamp+RAW
# robot_serial_number: Robot serial number, located at /opt/galaxea/body/RSN
# timestamp: Data collection timestamp accurate to milliseconds.
# RAW: Represents raw data stored from data collection
6.5 Start Recording
Perform data recording operations using the VR left controller:
| Function | Operation | Description |
|---|---|---|
| Start Recording | Click left controller X key once | Start data recording |
| Stop Recording | Click left controller Y key once | Stop data recording |
| Delete Current Recording | Click left controller X key once | If a recording is already in progress, clicking the X key again will end and delete the current recording without saving to disk. |
6.6 Recording Prompt Tones
You can enable the function of playing data recording start and end status prompt tones on the VR headset device by configuring ${VR_IP} in the ~/.bashrc file.
# Open ~/.bashrc
vim ~/.bashrc
# Add the following content to ~/.bashrc, replacing ${VR_IP} with your VR device's address on the LAN (Section 2.6)
export VR_IP=${VR_IP}
# Restart the program
tmux kill-server
If you have any problems during installation and startup, please contact us at support@galaxea-dynamics.com or call 4008-780-980 for technical support!