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
- 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.
- Place the device correctly: Ensure all linkages of the device are properly positioned and placed securely in the positioning slots.
- Connect the device to the host PC: Use a Micro USB cable to connect the device to the host PC.
- 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.
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
- 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
-
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.
-
USB port remapping
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:
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.
- Modify the NUC's
~/.bashrc
file on R1 Lite: - Modify the
~/.bashrc
file on the R1 Lite Teleop host computer: - 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.
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.
-
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.
-
One-Click Startup.
a. Use the following command to start all R1 Lite Teleop nodes:
b. After startup, you can enter the tmux background by typingcd ${R1Lite-T_SDK_path}/install/share/startup_config/script/ ./robot_startup.sh boot ../session.d/ATCHostStandard/R1LITET.d/
tmux a
in the terminal.
c. PressCtrl+B
and release, then pressW
to view all sessions in the tmux background.
d. You can switch between sessions using the keyboard’s up and down arrow keys.
e. PressEnter
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
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:
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
- Enter the following command to open the corresponding launch file:
- Change
gripper_mode
tomode1
. In this mode, the gripper control logic is toggle control mode.
5.3.2 Incremental Control Mode
- Enter the following command to open the corresponding launch file:
- Change
gripper_mode
tomode2
. In this mode, the gripper control logic is incremental control mode.
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
- Enter the following command to open the corresponding launch file:
- Modify
default_chassis_value
. This parameter sets the default chassis linear velocity after the program starts.
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: