Unitree H1 Teleoperation
Demo of the Effect
Environmental Dependencies
This routine is tested under Ubuntu 20.04 and Ubuntu 22.04 operating systems. When building on other versions of the operating system, the conditions and steps required may differ from those described in this document. You can adjust the build process based on your actual usage.
双臂 Inverse Kinematics 环境配置
This section is used to configure the software library related to the solution of the terminal pose inverse kinematics of the H1 arms of the humanoid robot (a total of 14 degrees of freedom). After the Apple Vision Pro takes the left and right wrist poses, it uses the Pinocchio and CasADi libraries to load the URDF and perform inverse kinematics calculations to solve for the articular motor angle value that reaches the pose. The Meshcat library is used to visualize the end when debugging.
Note: It is possible that the installed Pinocchio is not the latest version 3.1.0, and this environment requires a 3.1.0 version, so please check carefully.
Pinocchio must be installed and ensured before TeleVision’s environment can be configured. Reversing the installation order may result in errors in the TeleVision environment that will be installed.
All of the following terminal commands should be executed within Conda’s TV environment unless otherwise noted.
unitree_dds_wrapper Configuration
This part is used to configure the unitree_dds_wrapper
between the computer host and the humanoid robot, and can be used to implement communication and control between the host and the robot. Run the following command to install it:
TeleVision 环境配置和 Apple Vision Pro 通信配置
This routine is modified on the basis of the TeleVision open-source project, and the following configurations can also refer to the project’s related pages. Here, the simulation environment is used to test the configuration correctness.
1. Basic Environment Configuration
After cloning this project to the local computer, go to the project path and install the basic function library:
2. Isaac Gym 安装
Download the installation package from the Isaac Gym download page, unzip it, and run the following command in the directory:
3. Configure the Certificate Generation
3.1 Install mkcert
3.2 Generate Certificates
Look at the local IP address:
Let’s assume the native IP address is 192.168.123.2
.
Create a certificate:
Copy the generated cert.pem
and key.pem
files to the project’s directory:
System firewall settings:
Install the certificate in Apple Vision Pro:
The above command can get the path to rootCA.pem
. Then send the file to the Apple Vision Pro through Apple’s AirDrop feature.
Note: Apple Vision Pro needs to enable file reception before receiving files by setting up >> Universal >> AirDrop >> Everyone (10 minutes).
4. Enable the WebXR Features of Apple Vision Pro
Go to:
- Set >> Apps >> Safari >> Advanced >> feature flags >> enable WebXR features.
5. Enter VR
Open the browser of Apple Vision Pro and type in https://192.168.123.2:8012?ws=wss://192.168.123.2:8012
, then allow tracking.
Hardware Adaptation
Hardware Inventory
Name | Quantity | Renders | Description |
---|---|---|---|
Apple Vision Pro | 1 | Reference: Apple 官方网址 | |
Computer | 1 | / | x86_64 Architecture |
Humanoid robot H1 | 1 | / | 具体型号为 H1_2 |
Dexterous hands | 1 | You can refer to this document | |
Binocular camera | 1 | Regular USB driverless binocular camera |
Equipment Placement Requirements
If you use real telemanipulation mode, make sure that the humanoid robot Unitree H1_2 does not collide with people or other objects within the range of hardware to avoid accidents.
- The humanoid robot Unitree H1_2 can be hoisted or seated upright (as shown in the Effects Demonstration section of this document) to avoid obvious collisions within the range of both arms.
- Operators should wear the Apple Vision Pro device correctly and follow the software configuration described above.
- The main role of the binocular camera is to assist the operator, and the Apple Vision Pro can see the view of the workspace from the robot’s point of view. For best results, adjust the mounting position and orientation of the camera appropriately depending on the camera model you are using and the desired workspace field of view.
Start the Program
Before performing the teleoperation program, it is necessary to start some service-backed programs in advance.
Turn on the Dexterous Hand Service
You can refer to Dexterous Hand Development to configure the relevant environment and compile the control program. First, download the Dexterous Hand Control Interface from this website and copy it to the PC2 of the robot Unitree H1_2. After the decompression in PC2 is complete, use the following command to compile:
If you find that all the fingers of the left and right dexterous hands are constantly opening and closing in a loop, it means that it is successful. Once you have confirmed that it is successful, you can close the program in Terminal 2:
Enable the Image Ingest Service
Copy the directory to PC2 of the robot Unitree H1_2 and run the following command in PC2:
Note: Here you need to check whether the parameters when OpenCV reads the image match the binocular camera hardware, and whether the default port 5555 used for ingest is available.
After the image ingest service is enabled, you can use it on the host terminal to test whether the communication is successful (remember to close the program after the test is successful):
Start the Teleoperation Program
Note 1: All personnel must keep a sufficient safety distance from the humanoid robot to avoid danger and accidents!
Note 2: When using the program and starting it, you must ensure that the input parameters and operating procedures are correct, and that you have a full expectation of the results of the various actions that the program may perform!
Code Directory
The overall structure of the code is the same as TeleVision, and only the file directories related to Unitree Robot are focused here:
Precautions
-
Be sure to install hardware devices and connect cables in accordance with the requirements of this document;
-
In the process of remote operation, please be sure to avoid the collision caused by the overlapping activity trajectory of the robot’s arms during remote operation! Ensure that the robot hardware does not collide with people or other objects within the range of activity to avoid accidents;
-
When using routines, it is necessary to ensure that the input parameters and operation flow are correct;
-
The robot will generate heat during operation, please do not touch the motor joints when running or just stopping;
-
After the routine is finished, be sure to turn off the routine and turn off the power;
Source
Official Documentation provided by Unitree Robotics