跳到主要内容

Teleop Project (Onboard Orin)

当 Pico / XR 工具直接跑在 G1 的 onboard Orin 上时,使用这条路径。root project 仍然负责 policy runtime 和 scripts/real_bridge.py

Setup

uv --project venv/teleop sync

根据 onboard Orin 上的 JetPack 版本选择对应路径:

JetPack 5

先下载 JetPack 5 预编译包 并解压到 repo 根目录,保证 prebuilt/ 存在。

XRoboToolkit PC Service 继续从预编译包里安装:

sudo apt install -y \
./prebuilt/jetpack5-aarch64/xrobotservice/XRoboToolkit-PC-Service_1.0.0.0_arm64_ubuntu20.04.deb

JetPack 6

如果 onboard Orin 已经是 JetPack 6,比如刷过 Sonic,就不要再下载 JetPack 5 预编译包。

从下面的 GitHub Releases 页面下载 arm64 .deb

https://github.com/XR-Robotics/XRoboToolkit-PC-Service/releases

sudo apt install -y ./XRoboToolkit*.deb

启动服务:

bash /opt/apps/roboticsservice/runService.sh

Clone Pico SDK 仓库

mkdir -p external
git clone https://github.com/YanjieZe/XRoboToolkit-PC-Service-Pybind.git \
external/XRoboToolkit-PC-Service-Pybind
git clone https://github.com/XR-Robotics/XRoboToolkit-PC-Service.git \
external/XRoboToolkit-PC-Service
git -C external/XRoboToolkit-PC-Service checkout orin

这些仓库是给 xrobotoolkit_sdk 编译用的,和安装 XRoboToolkit PC Service.deb 来源是两回事。

仅 JetPack 5:替换上游 aarch64 gRPC 包

先按 XRobot gRPC JetPack 5 准备 JetPack 5 兼容包,再替换目录:

export sdk_grpc="external/XRoboToolkit-PC-Service/RoboticsService/Redistributable/linux_aarch64/grpc"
export local_grpc="prebuilt/jetpack5-aarch64/xrobot-grpc"

rm -rf "$sdk_grpc.upstream"
mv "$sdk_grpc" "$sdk_grpc.upstream"
cp -a "$local_grpc" "$sdk_grpc"

如果 onboard Orin 是 JetPack 6,这一步直接跳过,保留上游自带的 linux_aarch64/grpc 目录。

Build 并安装 xrobotoolkit_sdk

bash scripts/setup/setup_xrobot_pybind.sh --arch aarch64

Verify Installation

先在 G1 onboard Orin 上启动 live retarget publisher:

uv --project venv/teleop run sim2real/teleop/pico_retarget_pub.py \
--bind tcp://*:28701 \
--publish_hz 50 \
--actual_human_height 1.80

在第二个终端里启动 realtime viewer,并把 --connect 指到 G1 Orin 的 IP:

uv --project venv/teleop run sim2real/teleop/realtime_viewer.py \
--connect tcp://<g1-orin-ip>:28701 \
--viewer_hz 50

如果 viewer 里能看到实时更新的 G1 retarget 动作,说明 onboard teleop 环境已经打通。

Notes

  • 如果 onboard 机器也跑 policy 和 bridge,请同时在 repo 根目录执行 uv sync
  • 如果 Pico publisher 跑在另一台 PC 上,记得把 policy 的 --motion_zmq_connect 指到那台机器

Next Steps