Skip to main content

Assets

Teleopit's Git repository contains code, not large robot meshes, policies or motion data. Installation shows the shortest download command for each user workflow; this page is the complete inventory and maintainer reference.

What's Not in Git

  • assets/robots/ - Canonical robot XML/meshes
  • teleopit/retargeting/gmr/assets/ - GMR retargeting assets, IK configs, and non-canonical robot descriptions
  • data/, ckpt/, checkpoints, caches
  • Demo media (assets/demo.gif, assets/demo.mp4)

Asset Inventory

GroupLocal resultUsed for
ckptckpt/track_g1.{onnx,pt}, ckpt/track_g1_neck_o6.{onnx,pt}Ready-to-run inference models and matching PyTorch checkpoints
robotsRobot XML variants and meshes under assets/robots/Training, MuJoCo inference, GMR and dataset FK
gmrteleopit/retargeting/gmr/assets/Retargeting models and IK configuration
bvhdata/sample_bvh/*.bvhSample motions used by the installation check and simulation tutorial
datadata/datasets/<dataset>/shard_*.h5Minimal distributed motion datasets; precompute before training

The current G1 robot bundle includes:

Model XMLSetup
assets/robots/unitree_g1/g1_29dof.xmlBase G1 model and the default
assets/robots/unitree_g1/g1_29dof_dex3.xmlG1 with Dex3 hand geometry and inertial properties
assets/robots/unitree_g1/g1_29dof_neck_o6.xmlG1 with neck active vision and O6 hand models

The default is not a model allowlist. Training can select another task-compatible XML with --robot_xml. XML files in the GMR asset directory belong to their retargeting configurations and are separate from the runtime robot bundle. Use the track_g1 policy pair with the base model and the track_g1_neck_o6 pair with the neck-and-O6 model.

Repositories

ModelScope (default download source)

RepositoryTypeContents
BingqianWu/Teleopit-modelsmodelCheckpoints, GMR retargeting assets, sample BVH
BingqianWu/Teleopit-datasetsdatasetTraining/validation datasets

HuggingFace (alternative)

RepositoryTypeContents
12e21/Teleopit-modelsmodelCheckpoints, GMR retargeting assets, sample BVH
12e21/Teleopit-datasetsdatasetTraining/validation datasets

Asset Group and Repository Mapping

GroupRepositoryRemote Path
ckptTeleopit-modelscheckpoints/track_g1.{onnx,pt}, checkpoints/track_g1_neck_o6.{onnx,pt}
robotsTeleopit-modelsarchives/robot_assets.tar.gz
gmrTeleopit-modelsarchives/gmr_assets.tar.gz
bvhTeleopit-modelsarchives/sample_bvh.tar.gz
dataTeleopit-datasetsdata/datasets/*/*.h5 (lafan1, pico_record, seed, twist2)

Download Behavior

Use the project download script (defaults to ModelScope):

# Download everything
python scripts/setup/download_assets.py

# Only inference essentials
python scripts/setup/download_assets.py --only robots gmr ckpt bvh

# Only training data
python scripts/setup/download_assets.py --only data

# Download from HuggingFace instead
python scripts/setup/download_assets.py --source huggingface

Local paths after download:

RemoteLocal
checkpoints/track_g1.onnxckpt/track_g1.onnx
checkpoints/track_g1.ptckpt/track_g1.pt
checkpoints/track_g1_neck_o6.onnxckpt/track_g1_neck_o6.onnx
checkpoints/track_g1_neck_o6.ptckpt/track_g1_neck_o6.pt
archives/robot_assets.tar.gzassets/robots/ (extracted)
archives/gmr_assets.tar.gzteleopit/retargeting/gmr/assets/ (extracted)
archives/sample_bvh.tar.gzdata/sample_bvh/ (extracted)
data/datasets/*/*.h5data/datasets/

Upload to ModelScope

Step 1: Prepare Upload Directory

python scripts/setup/prepare_modelscope_assets.py --only ckpt robots gmr bvh --clean
python scripts/setup/prepare_modelscope_assets.py --only data

Output goes to data/modelscope_upload/.

Step 2: Upload

# Model repo
modelscope upload --repo-type model BingqianWu/Teleopit-models \
data/modelscope_upload/checkpoints checkpoints --sync
modelscope upload --repo-type model BingqianWu/Teleopit-models \
data/modelscope_upload/archives archives

# Dataset repo
modelscope upload --repo-type dataset BingqianWu/Teleopit-datasets \
data/modelscope_upload/data data

The checkpoint upload intentionally uses --sync. Its deletion scope is the remote checkpoints/ directory, so obsolete policy names are removed without touching archives/. Do not add --sync to the archive upload unless the local staging directory contains every remote archive that must be retained.

Step 3: Tag Version

Only the model repo supports tags (dataset repo does not).

python - <<'EOF'
from modelscope.hub.api import HubApi
api = HubApi()
url = api.create_model_tag("BingqianWu/Teleopit-models", "vX.Y.Z")
print(url)
EOF

Tags should match Git tags for traceability.

Upload to HuggingFace

Step 1: Prepare and Upload

# Prepare and upload model assets (--clean ensures no leftover files)
python scripts/setup/upload_hf_assets.py --only ckpt robots gmr bvh --clean

# Prepare and upload dataset
python scripts/setup/upload_hf_assets.py --only data --clean

Use --dry-run to stage files locally without uploading.

warning

Always use --clean when running --only, otherwise the staging directory may carry leftover files from a previous run, causing unintended uploads.

Step 2: Tag Version

python - <<'EOF'
from huggingface_hub import HfApi
api = HfApi()
api.create_tag("12e21/Teleopit-models", tag="vX.Y.Z", repo_type="model")
EOF

Pre-Push Check

python scripts/dev/check_large_tracked_files.py

This blocks large binary files and checks tracked file size limits.