Skip to content

R1 Lite Teleop Tutorial

In this tutorial, we provide detailed instructions to guide you step by step through unboxing, self-check, and connection procedures. Clear explanations are provided to help you quickly become familiar with the new device and ensure everything is ready. Please follow the steps carefully to successfully start your machine!

1. Unboxing

1.1 Preparation Before Unboxing

Item Quantity Notes
Laptop (X86 & Ubuntu 20.04 ROS Noetic) 1 unit Do not use R1 Lite Teleop in a virtual machine, as the Bluetooth controller may not connect properly.
LAN Cable / Network Cable 1 Used for communication between R1 Lite and R1 Lite Teleop.
For a more stable connection, it is recommended to prepare a cable.

1.2 Checklist of Items

Upon receiving the product, please check whether the items in the package are complete according to the following list.

Item Quantity
R1 Lite Teleop 1 set
JoyCon Controller 1 pair
G-Clamp Holder 1 pair
Power Adapter and Cables 1 set
Type-C Controller Charging Cable 1
Micro USB Data Cable 1

2. Connecting R1 Lite Teleop

  1. Fix the device: Use the G-clamp to secure the device on the table. It is recommended to keep the distance between the left and right devices within 30 cm.
  2. Place the device correctly: Ensure all linkages of the device are properly positioned and placed securely in the positioning slots.
  3. Connect the device to the host PC: Use a Micro USB cable to connect the device to the host PC.
  4. Connect the power supply: Connect one end of the power adapter to the DC port on the device, and the other end to a power outlet.
    R1_Lite_Teleop_connection
    Note:
    Before starting R1 Lite Teleop each time, make sure to adjust its posture to the initial pose, otherwise there may be operational risks.

3. Software Preparation

Note:
1. Using the main host as the upper-level PC is not recommended, as the Bluetooth connection may be unstable.
2. It is recommended to prepare a laptop with Ubuntu 20.04 and ROS Noetic as the R1 Lite Teleop upper-level PC.

3.1 Download and Extract the SDK

Visit Galaxea R1 Lite Software Version Changelog to get the latest SDK package and update information.

3.2 Install Software Dependencies

  1. Please configure the required environment dependencies on the R1 Lite Teleop upper-level PC.
sudo apt install tmuxp
sudo apt install tmux
sudo apt install ros-noetic-dynamixel-sdk
sudo apt install ros-noetic-trac-ik
pip install pyserial
pip install tyro
pip install evdev
  1. Add the host computer user to the "dialout" group. Replace "username" in the following command with the username of the host computer. Note: This command grants the host computer access to the /dev/ttyUSB device. You only need to run this command once; after that, you can shut down and restart the system.

    sudo usermod -aG dialout <username>
    

  2. USB port remapping

    echo 'SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", SYMLINK+="r1litet_usb"' | sudo tee /etc/udev/rules.d/litet.rules > /dev/null
    sudo udevadm control --reload-rules
    sudo udevadm trigger
    

4. Data Collection Process

Please follow the steps below to understand and configure the data collection process.

4.1 Data Format

The data collection file format is ROSbag, with the file extension *.bag.

4.2 Data Storage

The default storage path is: /home/GalaxeaDataset/{date}/ date represents the current date, formatted as follows: 20250307

4.3 Configuration File

4.3.1 Default Configuration File Location

The default configuration file used for data recording is located at:

/opt/galaxea/data_collection/data_task_config.json

4.3.2 Configuration File Description

The configuration file describes the information for this data collection task; you can modify it according to your needs.

{
   "project_info": {
        "project_name": "test"},
   "task_info": {
        "task_name": "test_data_collection",
        "task_owner": "galaxea" }
    "operation_info": {
        "teleoperation_type": "teleop",
        "location": "suzhou",
        "operator_name": "galaxea"}
}

4.4 Description of Data Storage Files

The data is stored in rosbag + json format, with one file corresponding to another. For example:

 # For example, the following two files represent a data package:
 S2R12000P18245_20240213173320125_RAW.bag
 S2R12000P18245_20240213173320125_RAW.json
 # The file naming format is: robot_serial_number + timestamp + RAW
 # robot_serial_number: The robot's serial number, located in /opt/galaxea/body/RSN
 # timestamp: The timestamp of data collection, accurate to milliseconds.
 # RAW: Indicates the raw data recorded during data collection.

5. Remote Operation Procedure

Please follow the steps below to configure and start the remote operation task.

5.1 Multi-Machine Communication Setup

5.1.1 Network Configuration

We provide two options: wired connection and wireless connection. We recommend using a wired connection for better stability in multi-machine communication.
The setup methods for both connection types are as follows: 1. Wired Connection: - Connect the R1 Lite NUC and the R1 Lite Teleop host computer via Ethernet, and set the Ethernet connection on the R1 Lite Teleop host computer to "Share to other computers"; - Connect the R1 Lite NUC and the R1 Lite Teleop host computer via Ethernet, and set the Ethernet connection on the R1 Lite Teleop host computer to "Share to other computers";
Note: The wired IP address of the R1 Lite NUC is usually 10.42.0.xxx; the wired IP address of the R1 Lite Teleop host computer is usually 10.42.0.1 2. Wireless Connection: - Connect the R1 Lite NUC and the R1 Lite Teleop host computer to the same local network. Use the ifconfig command to check the wireless IP addresses of both devices.

5.2 Modify Files

Note: Be sure to set the ROS MASTER IP address to the IP address of the R1 Lite NUC. In this multi-machine communication, the R1 Lite NUC acts as the master node, and roscore runs on the master node.

  1. Modify the NUC's ~/.bashrc file on R1 Lite:
    #R1Lite NUC ROS IP settings
    export ROS_MASTER_URI=http://{R1_Lite_IP}:11311
    export ROS_IP={R1_Lite_IP}
    
  2. Modify the ~/.bashrc file on the R1 Lite Teleop host computer:
    #R1Lite Teleoperation: Host PC ROS IP settings
    export ROS_MASTER_URI=http://{R1_Lite_IP}:11311
    export ROS_IP={R1_Lite-T_IP}
    
  3. Example The R1 Lite and R1 Lite Teleop control systems are both on the same network (192.168.10.0). Modify the ~/.bashrc file on both the R1 Lite and R1 Lite Teleop control systems as shown below. R1_Lite_bashrc_cn

5.2 Enabling Remote Control

5.2.1 Starting R1 Lite

Use the following command to start all nodes of R1 Lite: Bash cd ~{your_download_path}/install/share/startup_config/script/ ./robot_startup.sh boot ../session.d/ATCStandard/R1LITEBody.d

5.2.2 Starting R1 Lite Teleop

Note: Please ensure that all linkages of R1 Lite Teleop are placed at the zero position.

  1. Connect the Bluetooth controllers.
    a. Press and hold the power button on the inside of the Bluetooth controller. Once powered on successfully, you will see a blue running light.
    b. Open the Bluetooth settings on the host PC, search for JoyCon(L) and JoyCon(R), and connect both controllers.
    c. After successful connection, Bluetooth will indicate “Two devices connected,” and the blue running light on the controllers will turn into a solid blue light.
    d. If the solid blue light indicates the remaining battery level, this confirms that the Bluetooth controllers have been successfully connected.
    R1_Lite_Teleop_bluetooth_controllers_cn

  2. One-Click Startup.
    a. Use the following command to start all R1 Lite Teleop nodes:

    cd ${R1Lite-T_SDK_path}/install/share/startup_config/script/
    ./robot_startup.sh boot ../session.d/ATCHostStandard/R1LITET.d/
    
    b. After startup, you can enter the tmux background by typing tmux a in the terminal.
    c. Press Ctrl+B and release, then press W to view all sessions in the tmux background.
    d. You can switch between sessions using the keyboard’s up and down arrow keys.
    e. Press Enter to enter a session and check for any error messages.
    f. After completing the above steps, if no error messages appear, you can start full-body teleoperation of R1 Lite.

5.2.3 Controller Button Instructions

R1_Lite_Teleop_bluetooth_controllers_configuration

Joystick/Button Left Controller Right Controller
Joystick X Positive Chassis moves forward (Vx positive) Torso moves upward (Vz positive)
Joystick X Negative Chassis moves backward (Vx negative) Torso moves downward (Vz negative)
Joystick Y Positive Chassis moves left (Vy positive) Chassis rotates counterclockwise (Vw positive)
Joystick Y Negative Chassis moves right (Vy negative) Chassis rotates clockwise (Vw negative)
Button ↑ Torso pitch angle rotates positive -
Button ↓ Torso pitch angle rotates negative -
Button A - Torso moves forward (Vx positive)
Button B - Torso moves backward (Vx negative)
Button X - Start recording: press once to start
Delete data: press again after 5 seconds interval
Button Y - Stop recording data
Button ZL Left gripper close -
Button L Left gripper open -
Button ZR Right gripper close -
Button R Right gripper open -

The raw messages from the Bluetooth controller will be converted and published as rostopic. The source code is located at {R1Lite-T_SDK_path}/install/lib/joycon_evdev_publisher/joy_evdev_exe_node_.py.
You can adjust the order of msg elements to remap the controller buttons, as shown below:

R1_Lite_Teleop_remap_bluetooth_controller_buttons

5.3 Gripper Control Mode Switching

By modifying the launch file as follows, you can switch the gripper control mode. After modification, restart the program to apply the changes.

5.3.1 Toggle Control Mode

  1. Enter the following command to open the corresponding launch file:
    cd ${R1Lite-T_SDK_path}/install/share/mobiman/launch/simpleExample/
    vim tabletop_gello_tele_a1x.launch
    
  2. Change gripper_mode to mode1. In this mode, the gripper control logic is toggle control mode. R1_Lite_Teleop_gripper_mode1

5.3.2 Incremental Control Mode

  1. Enter the following command to open the corresponding launch file:
    cd ${R1Lite-T_SDK_path}/install/share/mobiman/launch/simpleExample/
    vim tabletop_gello_tele_a1x.launch
    
  2. Change gripper_mode to mode2. In this mode, the gripper control logic is incremental control mode. R1_Lite_Teleop_gripper_mode2

5.4 Chassis Linear Velocity Setting

When using isomorphic teleoperation, the default chassis linear velocity (Vx, Vy) is 0.2 m/s, and the default angular velocity (Vw) is 0.6 rad/s. The chassis linear velocity can be set in the following two ways.
Note: To avoid collisions due to excessive speed, please modify the chassis linear velocity carefully according to your needs.

5.4.1 Setting in the Launch File

  1. Enter the following command to open the corresponding launch file:
    cd ${R1Lite-T_SDK_path}/install/share/mobiman/launch/simpleExample/
    vim tabletop_gello_tele_a1x.launch
    
  2. Modify default_chassis_value. This parameter sets the default chassis linear velocity after the program starts. R1_Lite_Teleop_chassis_value

5.4.2 Setting via rostopic

After the teleoperation program has started, you can temporarily set the chassis linear velocity using rostopic pub. After restarting the program, it will use the parameter in the launch file as a reference.
For example, the following command sets the chassis linear velocity to 0.3 m/s:
For example, the following command sets the chassis linear velocity to 0.3 m/s:

source ${R1Lite-T_SDK_path}/install/setup.bash
rostopic pub /teleop_chassis_vel std_msgs/Float32 "data: 0.3"