This repository contains USC GVL's custom Humanoid data collection pipeline, along with the re-engineering of Unitree's teleoperation of the G1 humanoid robots. For teleoperating and collecting data using the H1, please check out the H1 branch.
We use micromamba instead of conda for its lightweight.
micromamba create -n tv python=3.8
micromamba activate tv
micromamba install pinocchio -c conda-forge
pip install meshcat
pip install casadigit clone https://github.com/unitreerobotics/unitree_sdk2_python.git
cd unitree_sdk2_python
pip install -e .Note
You need to fix the dds issue by manually removing any code relevant to __domain__
pip install -r requirements.txtApple does not allow WebXR on non-https connections. To test the application locally, we need to create a self-signed certificate and install it on the client. You need a ubuntu machine and a router. Connect the VisionPro and the ubuntu machine to the same router.
- install mkcert: https://github.com/FiloSottile/mkcert
- check local ip address:
ifconfig | grep inetSuppose the local ip address of the ubuntu machine is 192.168.123.2
- create certificate:
mkcert -install && mkcert -cert-file cert.pem -key-file key.pem 192.168.123.2 localhost 127.0.0.1ps. place the generated cert.pem and key.pem files in teleop.
cp cert.pem key.pem teleop/- open firewall on server:
sudo ufw allow 8012- install ca-certificates on VisionPro:
mkcert -CAROOT
Copy the rootCA.pem via AirDrop to VisionPro and install it.
Settings > General > About > Certificate Trust Settings. Under "Enable full trust for root certificates", turn on trust for the certificate.
settings > Apps > Safari > Advanced > Feature Flags > Enable WebXR Related Features
-
open the browser on Safari on VisionPro and go to https://192.168.123.2:8012?ws=wss://192.168.123.2:8012
-
Click
Enter VRandAllowto start the VR session.
On G1's PC, install the image server's requirements
micromamba create -n vision python=3.8
micromamba activate vision
pip install pyrealsense2 opencv-python zmq numpyCompile and lidar's C++ point cloud recorder program
mkdir Livox-SDK2/build && cd Livox-SDK2/build
cmake ..
make -j
mv point_cloud_recordedr/point_cloud_recorder ../../avp_teleop/teleopCopy realsense_server.py in the teleop/image_server directory to the PC of Unitree G_1, and execute the following command in the PC:
micromamba activate vision
python realsense_server.py- Write down the task information in a json file inside
teleop/task_defsdirectory - In the
teleop/directory, runpython taskcreator.pyto generate the task metadata. Take a look atteleop/task_defs/example.jsonfor an example task's json format.
Warning : All persons must maintain an adequate safety distance from the robot to avoid danger!
- Connect your host computer to G1. Then, set up your local IP address to 192.168.123.123 with netmask 255.255.255.0 on G1's network interface.
- Connect both your computer and AVP to the same local router wifi in which you set up your cert with.
- Open robot and set to sports mode (using remote control by pressing L1 + A, then L1 + UP, and lastly R1 + X when the G1 is gently touching the ground).
- On G1 PC: start the image server as above.
- On host computer: run
export CYCLONEDDS_URI="<CycloneDDS><Domain><General><NetworkInterfaceAddress>192.168.123.123</NetworkInterfaceAddress></General></Domain></CycloneDDS>"- On host computer: run
python main.py --robot g1under theteleop/directory and wait until the robot is in ready state. The terminal should signal both "master" and "worker" processes are waiting for starting signal. - On AVP, connect to robot using https://<host_ip_address_on_your_local_router>:8012/?ws=wss://<host_ip_address_on_your_local_router>:8012. Then, press
Enter VRand thenAllowto enter the web interface for teleoperating the G1. - Back on host computer, enter
sto start recording an episode. - Type
qand enter if the episode is successful, otherwisedand enter to discard the last session. - Repeat by pressing
sto start recording the next episode. Record 40 episodes for each task. - Type
exitto shut down the program.
This code builds upon following open-source code-bases. Please visit the URLs to see the respective LICENSES:
- https://github.com/unitreerobotics/avp_teleoperate
- https://github.com/OpenTeleVision/TeleVision
- https://github.com/dexsuite/dex-retargeting
- https://github.com/vuer-ai/vuer
- https://github.com/stack-of-tasks/pinocchio
- https://github.com/casadi/casadi
- https://github.com/meshcat-dev/meshcat-python
- https://github.com/zeromq/pyzmq
- https://github.com/unitreerobotics/unitree_dds_wrapper
- https://github.com/tonyzhaozh/act
- https://github.com/facebookresearch/detr