Skip to main content

Install Teleopit

Install only the parts you need. All commands below run from the repository root and require Python 3.10 or newer.

1. Get the Code

git clone https://github.com/BotRunner64/Teleopit.git
cd Teleopit

You only need Git submodules for a physical G1 or optional LinkerHand control; those steps appear later on this page.

2. Create a Python Environment

Choose one environment tool. Do not run all three sections.

uv

uv venv --python 3.10
source .venv/bin/activate

When this page shows pip install, you may use uv pip install instead.

pip and venv

python3.10 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip

Conda

conda create -n teleopit python=3.10
conda activate teleopit

Conda creates the environment; use pip install inside that environment to install Teleopit.

3. Install the Profile You Need

Each extra includes the base Teleopit package. Start with the row matching your goal; you can install another extra later in the same environment.

GoalInstall commandWhat it adds
Run a motion controller in MuJoCopip install -e .Core inference, GMR, MuJoCo and ONNX Runtime
Use Pico in simulation or on G1pip install -e '.[pico4]'Pico receiver plus the sim2real runtime
Replay BVH on a physical G1 without Picopip install -e '.[sim2real]'G1 runtime and OpenCV
Train a controllerpip install -e '.[train]'mjlab, RSL-RL and experiment loggers
Record Pico sim2real episodespip install -e '.[recording]'Pico runtime and MP4 writing
Review saved recordingspip install -e '.[review]'OpenCV and the MuJoCo/Viser reviewer
Use OpenNeck with Picopip install -e '.[openneck]'Pico runtime and the OpenNeck driver
Run the test suitepip install -e '.[dev]'pytest and coverage tools

4. Download the Matching Assets

The Python package does not contain robot meshes, policies or motion datasets. Install the default ModelScope downloader once:

pip install modelscope

Then download the bundle for your goal:

GoalCommand
Simulation, Pico VR or G1 inferencepython scripts/setup/download_assets.py --only robots gmr ckpt bvh
Training from the distributed datasetspython scripts/setup/download_assets.py --only robots data
Everythingpython scripts/setup/download_assets.py

Use HuggingFace instead of ModelScope when needed:

python scripts/setup/download_assets.py \
--source huggingface \
--only robots gmr ckpt bvh

The inference bundle creates the track_g1 and track_g1_neck_o6 ONNX/checkpoint pairs under ckpt/, plus the G1 model files, GMR files and a sample BVH under their expected project paths. See Assets for the complete inventory and asset group mapping.

5. Additional Setup for a Physical G1

Build the C++ DDS bridge on the computer that will run Teleopit:

git submodule update --init --recursive
bash scripts/setup/setup_g1_bridge.sh

The bridge is required for both Pico and BVH control on a real G1. See Companion Projects if the build or robot connection fails.

6. Optional Hardware

LinkerHand L6 or O6

Only install these local packages when hands.enabled=true:

git submodule update --init --recursive
pip install -e third_party/linkerhand-python-sdk
pip install -e third_party/somehand
bash scripts/setup/download_somehand_assets.sh

OpenNeck

The openneck extra already includes the Pico profile. Calibrate the device before enabling it:

pip install -e '.[openneck]'
openneck calibrate

Teleopit uses the OpenNeck angle API. Old normalized calibration fields are not supported.

RealSense Recording or Preview

Install pyrealsense2 separately when a RealSense camera is enabled. On Arm machines, use conda-forge:

conda install -c conda-forge pyrealsense2

Pico body tracking itself does not require RealSense.

7. Verify the Environment

Run the core import check:

python -c "import teleopit; print('teleopit OK')"

If you installed Pico or training dependencies, run the matching check:

python -c "from pico_bridge import PicoBridge; print('Pico OK')"
python -c "import train_mimic.tasks; print('training OK')"

For an inference profile with the robots gmr ckpt bvh assets, finish with one sample simulation:

python scripts/run/run_sim.py \
controller.policy_path=ckpt/track_g1.onnx \
input.bvh_file=data/sample_bvh/aiming1_subject1.bvh

The installation is ready when a MuJoCo window opens and the simulated G1 follows the sample motion. Close the window to stop, then continue with one of the four task-based tutorials.