From 65d864861b3aa1485a81c53b1b282d8e6701b9d1 Mon Sep 17 00:00:00 2001 From: lzy <949777411@qq.com> Date: Sat, 26 Apr 2025 22:10:42 +0800 Subject: [PATCH] add --- .dockerignore | 0 .github/CODEOWNERS | 0 .github/workflows/pre-commit.yml | 0 .github/workflows/test.yml | 0 .gitignore | 2 + .gitmodules | 0 .pre-commit-config.yaml | 0 .python-version | 0 .vscode/settings.json | 0 CONTRIBUTING.md | 0 LICENSE | 0 README.md | 0 docs/docker.md | 0 docs/norm_stats.md | 0 docs/remote_inference.md | 0 examples/aloha_real/Dockerfile | 0 examples/aloha_real/README.md | 0 examples/aloha_real/compose.yml | 0 examples/aloha_real/constants.py | 0 .../convert_aloha_data_to_lerobot.py | 0 examples/aloha_real/env.py | 0 examples/aloha_real/main.py | 0 examples/aloha_real/real_env.py | 0 examples/aloha_real/requirements.in | 0 examples/aloha_real/requirements.txt | 0 examples/aloha_real/robot_utils.py | 0 examples/aloha_real/video_display.py | 0 examples/aloha_sim/Dockerfile | 0 examples/aloha_sim/README.md | 0 examples/aloha_sim/compose.yml | 0 examples/aloha_sim/env.py | 0 examples/aloha_sim/main.py | 0 examples/aloha_sim/requirements.in | 0 examples/aloha_sim/requirements.txt | 0 examples/aloha_sim/saver.py | 0 examples/droid/README.md | 0 examples/droid/main.py | 0 examples/inference.ipynb | 0 examples/libero/Dockerfile | 0 examples/libero/README.md | 0 examples/libero/compose.yml | 0 .../libero/convert_libero_data_to_lerobot.py | 0 examples/libero/main.py | 0 examples/libero/requirements.in | 0 examples/libero/requirements.txt | 0 examples/lyt_simple_client/Dockerfile | 32 +++++++ examples/lyt_simple_client/README.md | 30 +++++++ examples/lyt_simple_client/compose.yml | 42 +++++++++ examples/lyt_simple_client/main.py | 90 +++++++++++++++++++ examples/lyt_simple_client/requirements.in | 2 + examples/lyt_simple_client/requirements.txt | 27 ++++++ examples/policy_records.ipynb | 0 examples/simple_client/Dockerfile | 0 examples/simple_client/README.md | 0 examples/simple_client/compose.yml | 0 examples/simple_client/main.py | 0 examples/simple_client/requirements.in | 0 examples/simple_client/requirements.txt | 0 examples/ur5/README.md | 0 packages/openpi-client/pyproject.toml | 0 .../src/openpi_client/__init__.py | 0 .../src/openpi_client/action_chunk_broker.py | 0 .../src/openpi_client/base_policy.py | 0 .../src/openpi_client/image_tools.py | 0 .../src/openpi_client/image_tools_test.py | 0 .../src/openpi_client/msgpack_numpy.py | 0 .../src/openpi_client/msgpack_numpy_test.py | 0 .../src/openpi_client/runtime/agent.py | 0 .../runtime/agents/policy_agent.py | 0 .../src/openpi_client/runtime/environment.py | 0 .../src/openpi_client/runtime/runtime.py | 0 .../src/openpi_client/runtime/subscriber.py | 0 .../openpi_client/websocket_client_policy.py | 0 pyproject.toml | 0 scripts/__init__.py | 0 scripts/compute_norm_stats.py | 0 scripts/docker/compose.yml | 0 scripts/docker/serve_policy.Dockerfile | 0 scripts/serve_policy.py | 0 scripts/train.py | 0 scripts/train_test.py | 0 src/openpi/__init__.py | 0 src/openpi/conftest.py | 0 src/openpi/models/__init__.py | 0 src/openpi/models/gemma.py | 0 src/openpi/models/gemma_fast.py | 0 src/openpi/models/lora.py | 0 src/openpi/models/lora_test.py | 0 src/openpi/models/model.py | 0 src/openpi/models/model_test.py | 0 src/openpi/models/pi0.py | 0 src/openpi/models/pi0_fast.py | 0 src/openpi/models/pi0_test.py | 0 src/openpi/models/siglip.py | 0 src/openpi/models/tokenizer.py | 0 src/openpi/models/tokenizer_test.py | 0 src/openpi/models/vit.py | 0 src/openpi/policies/aloha_policy.py | 0 src/openpi/policies/droid_policy.py | 0 src/openpi/policies/libero_policy.py | 0 src/openpi/policies/policy.py | 0 src/openpi/policies/policy_config.py | 0 src/openpi/policies/policy_test.py | 0 src/openpi/py.typed | 0 src/openpi/serving/websocket_policy_server.py | 0 src/openpi/shared/__init__.py | 0 src/openpi/shared/array_typing.py | 0 src/openpi/shared/download.py | 0 src/openpi/shared/download_test.py | 0 src/openpi/shared/image_tools.py | 0 src/openpi/shared/image_tools_test.py | 0 src/openpi/shared/nnx_utils.py | 0 src/openpi/shared/normalize.py | 0 src/openpi/shared/normalize_test.py | 0 src/openpi/training/checkpoints.py | 0 src/openpi/training/config.py | 40 +++++++++ src/openpi/training/data_loader.py | 0 src/openpi/training/data_loader_test.py | 0 src/openpi/training/optimizer.py | 0 src/openpi/training/sharding.py | 0 src/openpi/training/utils.py | 0 src/openpi/training/weight_loaders.py | 0 src/openpi/transforms.py | 0 src/openpi/transforms_test.py | 0 uv.lock | 0 125 files changed, 265 insertions(+) mode change 100644 => 100755 .dockerignore mode change 100644 => 100755 .github/CODEOWNERS mode change 100644 => 100755 .github/workflows/pre-commit.yml mode change 100644 => 100755 .github/workflows/test.yml mode change 100644 => 100755 .gitignore mode change 100644 => 100755 .gitmodules mode change 100644 => 100755 .pre-commit-config.yaml mode change 100644 => 100755 .python-version mode change 100644 => 100755 .vscode/settings.json mode change 100644 => 100755 CONTRIBUTING.md mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README.md mode change 100644 => 100755 docs/docker.md mode change 100644 => 100755 docs/norm_stats.md mode change 100644 => 100755 docs/remote_inference.md mode change 100644 => 100755 examples/aloha_real/Dockerfile mode change 100644 => 100755 examples/aloha_real/README.md mode change 100644 => 100755 examples/aloha_real/compose.yml mode change 100644 => 100755 examples/aloha_real/constants.py mode change 100644 => 100755 examples/aloha_real/convert_aloha_data_to_lerobot.py mode change 100644 => 100755 examples/aloha_real/env.py mode change 100644 => 100755 examples/aloha_real/main.py mode change 100644 => 100755 examples/aloha_real/real_env.py mode change 100644 => 100755 examples/aloha_real/requirements.in mode change 100644 => 100755 examples/aloha_real/requirements.txt mode change 100644 => 100755 examples/aloha_real/robot_utils.py mode change 100644 => 100755 examples/aloha_real/video_display.py mode change 100644 => 100755 examples/aloha_sim/Dockerfile mode change 100644 => 100755 examples/aloha_sim/README.md mode change 100644 => 100755 examples/aloha_sim/compose.yml mode change 100644 => 100755 examples/aloha_sim/env.py mode change 100644 => 100755 examples/aloha_sim/main.py mode change 100644 => 100755 examples/aloha_sim/requirements.in mode change 100644 => 100755 examples/aloha_sim/requirements.txt mode change 100644 => 100755 examples/aloha_sim/saver.py mode change 100644 => 100755 examples/droid/README.md mode change 100644 => 100755 examples/droid/main.py mode change 100644 => 100755 examples/inference.ipynb mode change 100644 => 100755 examples/libero/Dockerfile mode change 100644 => 100755 examples/libero/README.md mode change 100644 => 100755 examples/libero/compose.yml mode change 100644 => 100755 examples/libero/convert_libero_data_to_lerobot.py mode change 100644 => 100755 examples/libero/main.py mode change 100644 => 100755 examples/libero/requirements.in mode change 100644 => 100755 examples/libero/requirements.txt create mode 100755 examples/lyt_simple_client/Dockerfile create mode 100755 examples/lyt_simple_client/README.md create mode 100755 examples/lyt_simple_client/compose.yml create mode 100755 examples/lyt_simple_client/main.py create mode 100755 examples/lyt_simple_client/requirements.in create mode 100755 examples/lyt_simple_client/requirements.txt mode change 100644 => 100755 examples/policy_records.ipynb mode change 100644 => 100755 examples/simple_client/Dockerfile mode change 100644 => 100755 examples/simple_client/README.md mode change 100644 => 100755 examples/simple_client/compose.yml mode change 100644 => 100755 examples/simple_client/main.py mode change 100644 => 100755 examples/simple_client/requirements.in mode change 100644 => 100755 examples/simple_client/requirements.txt mode change 100644 => 100755 examples/ur5/README.md mode change 100644 => 100755 packages/openpi-client/pyproject.toml mode change 100644 => 100755 packages/openpi-client/src/openpi_client/__init__.py mode change 100644 => 100755 packages/openpi-client/src/openpi_client/action_chunk_broker.py mode change 100644 => 100755 packages/openpi-client/src/openpi_client/base_policy.py mode change 100644 => 100755 packages/openpi-client/src/openpi_client/image_tools.py mode change 100644 => 100755 packages/openpi-client/src/openpi_client/image_tools_test.py mode change 100644 => 100755 packages/openpi-client/src/openpi_client/msgpack_numpy.py mode change 100644 => 100755 packages/openpi-client/src/openpi_client/msgpack_numpy_test.py mode change 100644 => 100755 packages/openpi-client/src/openpi_client/runtime/agent.py mode change 100644 => 100755 packages/openpi-client/src/openpi_client/runtime/agents/policy_agent.py mode change 100644 => 100755 packages/openpi-client/src/openpi_client/runtime/environment.py mode change 100644 => 100755 packages/openpi-client/src/openpi_client/runtime/runtime.py mode change 100644 => 100755 packages/openpi-client/src/openpi_client/runtime/subscriber.py mode change 100644 => 100755 packages/openpi-client/src/openpi_client/websocket_client_policy.py mode change 100644 => 100755 pyproject.toml mode change 100644 => 100755 scripts/__init__.py mode change 100644 => 100755 scripts/compute_norm_stats.py mode change 100644 => 100755 scripts/docker/compose.yml mode change 100644 => 100755 scripts/docker/serve_policy.Dockerfile mode change 100644 => 100755 scripts/serve_policy.py mode change 100644 => 100755 scripts/train.py mode change 100644 => 100755 scripts/train_test.py mode change 100644 => 100755 src/openpi/__init__.py mode change 100644 => 100755 src/openpi/conftest.py mode change 100644 => 100755 src/openpi/models/__init__.py mode change 100644 => 100755 src/openpi/models/gemma.py mode change 100644 => 100755 src/openpi/models/gemma_fast.py mode change 100644 => 100755 src/openpi/models/lora.py mode change 100644 => 100755 src/openpi/models/lora_test.py mode change 100644 => 100755 src/openpi/models/model.py mode change 100644 => 100755 src/openpi/models/model_test.py mode change 100644 => 100755 src/openpi/models/pi0.py mode change 100644 => 100755 src/openpi/models/pi0_fast.py mode change 100644 => 100755 src/openpi/models/pi0_test.py mode change 100644 => 100755 src/openpi/models/siglip.py mode change 100644 => 100755 src/openpi/models/tokenizer.py mode change 100644 => 100755 src/openpi/models/tokenizer_test.py mode change 100644 => 100755 src/openpi/models/vit.py mode change 100644 => 100755 src/openpi/policies/aloha_policy.py mode change 100644 => 100755 src/openpi/policies/droid_policy.py mode change 100644 => 100755 src/openpi/policies/libero_policy.py mode change 100644 => 100755 src/openpi/policies/policy.py mode change 100644 => 100755 src/openpi/policies/policy_config.py mode change 100644 => 100755 src/openpi/policies/policy_test.py mode change 100644 => 100755 src/openpi/py.typed mode change 100644 => 100755 src/openpi/serving/websocket_policy_server.py mode change 100644 => 100755 src/openpi/shared/__init__.py mode change 100644 => 100755 src/openpi/shared/array_typing.py mode change 100644 => 100755 src/openpi/shared/download.py mode change 100644 => 100755 src/openpi/shared/download_test.py mode change 100644 => 100755 src/openpi/shared/image_tools.py mode change 100644 => 100755 src/openpi/shared/image_tools_test.py mode change 100644 => 100755 src/openpi/shared/nnx_utils.py mode change 100644 => 100755 src/openpi/shared/normalize.py mode change 100644 => 100755 src/openpi/shared/normalize_test.py mode change 100644 => 100755 src/openpi/training/checkpoints.py mode change 100644 => 100755 src/openpi/training/config.py mode change 100644 => 100755 src/openpi/training/data_loader.py mode change 100644 => 100755 src/openpi/training/data_loader_test.py mode change 100644 => 100755 src/openpi/training/optimizer.py mode change 100644 => 100755 src/openpi/training/sharding.py mode change 100644 => 100755 src/openpi/training/utils.py mode change 100644 => 100755 src/openpi/training/weight_loaders.py mode change 100644 => 100755 src/openpi/transforms.py mode change 100644 => 100755 src/openpi/transforms_test.py mode change 100644 => 100755 uv.lock diff --git a/.dockerignore b/.dockerignore old mode 100644 new mode 100755 diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS old mode 100644 new mode 100755 diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml old mode 100644 new mode 100755 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index d7e3933..e777481 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,8 @@ __pycache__/ # C extensions *.so +third-party/* + # Distribution / packaging .Python build/ diff --git a/.gitmodules b/.gitmodules old mode 100644 new mode 100755 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml old mode 100644 new mode 100755 diff --git a/.python-version b/.python-version old mode 100644 new mode 100755 diff --git a/.vscode/settings.json b/.vscode/settings.json old mode 100644 new mode 100755 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/docs/docker.md b/docs/docker.md old mode 100644 new mode 100755 diff --git a/docs/norm_stats.md b/docs/norm_stats.md old mode 100644 new mode 100755 diff --git a/docs/remote_inference.md b/docs/remote_inference.md old mode 100644 new mode 100755 diff --git a/examples/aloha_real/Dockerfile b/examples/aloha_real/Dockerfile old mode 100644 new mode 100755 diff --git a/examples/aloha_real/README.md b/examples/aloha_real/README.md old mode 100644 new mode 100755 diff --git a/examples/aloha_real/compose.yml b/examples/aloha_real/compose.yml old mode 100644 new mode 100755 diff --git a/examples/aloha_real/constants.py b/examples/aloha_real/constants.py old mode 100644 new mode 100755 diff --git a/examples/aloha_real/convert_aloha_data_to_lerobot.py b/examples/aloha_real/convert_aloha_data_to_lerobot.py old mode 100644 new mode 100755 diff --git a/examples/aloha_real/env.py b/examples/aloha_real/env.py old mode 100644 new mode 100755 diff --git a/examples/aloha_real/main.py b/examples/aloha_real/main.py old mode 100644 new mode 100755 diff --git a/examples/aloha_real/real_env.py b/examples/aloha_real/real_env.py old mode 100644 new mode 100755 diff --git a/examples/aloha_real/requirements.in b/examples/aloha_real/requirements.in old mode 100644 new mode 100755 diff --git a/examples/aloha_real/requirements.txt b/examples/aloha_real/requirements.txt old mode 100644 new mode 100755 diff --git a/examples/aloha_real/robot_utils.py b/examples/aloha_real/robot_utils.py old mode 100644 new mode 100755 diff --git a/examples/aloha_real/video_display.py b/examples/aloha_real/video_display.py old mode 100644 new mode 100755 diff --git a/examples/aloha_sim/Dockerfile b/examples/aloha_sim/Dockerfile old mode 100644 new mode 100755 diff --git a/examples/aloha_sim/README.md b/examples/aloha_sim/README.md old mode 100644 new mode 100755 diff --git a/examples/aloha_sim/compose.yml b/examples/aloha_sim/compose.yml old mode 100644 new mode 100755 diff --git a/examples/aloha_sim/env.py b/examples/aloha_sim/env.py old mode 100644 new mode 100755 diff --git a/examples/aloha_sim/main.py b/examples/aloha_sim/main.py old mode 100644 new mode 100755 diff --git a/examples/aloha_sim/requirements.in b/examples/aloha_sim/requirements.in old mode 100644 new mode 100755 diff --git a/examples/aloha_sim/requirements.txt b/examples/aloha_sim/requirements.txt old mode 100644 new mode 100755 diff --git a/examples/aloha_sim/saver.py b/examples/aloha_sim/saver.py old mode 100644 new mode 100755 diff --git a/examples/droid/README.md b/examples/droid/README.md old mode 100644 new mode 100755 diff --git a/examples/droid/main.py b/examples/droid/main.py old mode 100644 new mode 100755 diff --git a/examples/inference.ipynb b/examples/inference.ipynb old mode 100644 new mode 100755 diff --git a/examples/libero/Dockerfile b/examples/libero/Dockerfile old mode 100644 new mode 100755 diff --git a/examples/libero/README.md b/examples/libero/README.md old mode 100644 new mode 100755 diff --git a/examples/libero/compose.yml b/examples/libero/compose.yml old mode 100644 new mode 100755 diff --git a/examples/libero/convert_libero_data_to_lerobot.py b/examples/libero/convert_libero_data_to_lerobot.py old mode 100644 new mode 100755 diff --git a/examples/libero/main.py b/examples/libero/main.py old mode 100644 new mode 100755 diff --git a/examples/libero/requirements.in b/examples/libero/requirements.in old mode 100644 new mode 100755 diff --git a/examples/libero/requirements.txt b/examples/libero/requirements.txt old mode 100644 new mode 100755 diff --git a/examples/lyt_simple_client/Dockerfile b/examples/lyt_simple_client/Dockerfile new file mode 100755 index 0000000..eebca39 --- /dev/null +++ b/examples/lyt_simple_client/Dockerfile @@ -0,0 +1,32 @@ +# Dockerfile for the simple client. + +# Build the container: +# docker build . -t simple_client -f examples/simple_client/Dockerfile + +# Run the container: +# docker run --rm -it --network=host -v .:/app simple_client /bin/bash + +FROM python:3.7-slim +COPY --from=ghcr.io/astral-sh/uv:0.5.1 /uv /uvx /bin/ + +WORKDIR /app + +# Copy from the cache instead of linking since it's a mounted volume +ENV UV_LINK_MODE=copy + +# Write the virtual environment outside of the project directory so it doesn't +# leak out of the container when we mount the application code. +ENV UV_PROJECT_ENVIRONMENT=/.venv + +# Copy the requirements files so we can install dependencies. +# The rest of the project is mounted as a volume, so we don't need to rebuild on changes. +# This strategy is best for development-style usage. +COPY ./examples/simple_client/requirements.txt /tmp/requirements.txt +COPY ./packages/openpi-client/pyproject.toml /tmp/openpi-client/pyproject.toml + +# Install python dependencies. +RUN uv venv --python 3.7 $UV_PROJECT_ENVIRONMENT +RUN uv pip sync /tmp/requirements.txt /tmp/openpi-client/pyproject.toml +ENV PYTHONPATH=/app:/app/src:/app/packages/openpi-client/src + +CMD /bin/bash -c "source /.venv/bin/activate && python examples/simple_client/main.py $SERVER_ARGS" diff --git a/examples/lyt_simple_client/README.md b/examples/lyt_simple_client/README.md new file mode 100755 index 0000000..bc381c1 --- /dev/null +++ b/examples/lyt_simple_client/README.md @@ -0,0 +1,30 @@ +# Simple Client + +A minimal client that sends observations to the server and prints the inference rate. + +You can specify which runtime environment to use using the `--env` flag. You can see the available options by running: + +```bash +uv run examples/simple_client/main.py --help +``` + +## With Docker + +```bash +export SERVER_ARGS="--env ALOHA_SIM" +docker compose -f examples/simple_client/compose.yml up --build +``` + +## Without Docker + +Terminal window 1: + +```bash +uv run examples/simple_client/main.py --env DROID +``` + +Terminal window 2: + +```bash +uv run scripts/serve_policy.py --env DROID +``` diff --git a/examples/lyt_simple_client/compose.yml b/examples/lyt_simple_client/compose.yml new file mode 100755 index 0000000..977e361 --- /dev/null +++ b/examples/lyt_simple_client/compose.yml @@ -0,0 +1,42 @@ +# Run with: +# docker compose -f examples/simple_client/compose.yml up --build +services: + runtime: + image: simple_client + depends_on: + - openpi_server + build: + context: ../.. + dockerfile: examples/simple_client/Dockerfile + init: true + tty: true + network_mode: host + volumes: + - $PWD:/app + environment: + - SERVER_ARGS + + openpi_server: + image: openpi_server + build: + context: ../.. + dockerfile: scripts/docker/serve_policy.Dockerfile + init: true + tty: true + network_mode: host + volumes: + - $PWD:/app + - ${OPENPI_DATA_HOME:-~/.cache/openpi}:/openpi_assets + environment: + - SERVER_ARGS + - OPENPI_DATA_HOME=/openpi_assets + - IS_DOCKER=true + + # Comment out this block if not running on a machine with GPUs. + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: 1 + capabilities: [gpu] diff --git a/examples/lyt_simple_client/main.py b/examples/lyt_simple_client/main.py new file mode 100755 index 0000000..bfc9a28 --- /dev/null +++ b/examples/lyt_simple_client/main.py @@ -0,0 +1,90 @@ +import dataclasses +import enum +import logging +import time + +import numpy as np +from openpi_client import websocket_client_policy as _websocket_client_policy +import tyro + + +class EnvMode(enum.Enum): + """Supported environments.""" + + ALOHA = "aloha" + ALOHA_SIM = "aloha_sim" + DROID = "droid" + LIBERO = "libero" + AGILEX_ALOHA = "agilex_aloha" + + +@dataclasses.dataclass +class Args: + host: str = "0.0.0.0" + port: int = 8000 + + env: EnvMode = EnvMode.ALOHA_SIM + num_steps: int = 10 + + +def main(args: Args) -> None: + obs_fn = { + EnvMode.ALOHA: _random_observation_aloha, + EnvMode.ALOHA_SIM: _random_observation_aloha, + EnvMode.DROID: _random_observation_droid, + EnvMode.LIBERO: _random_observation_libero, + }[args.env] + + policy = _websocket_client_policy.WebsocketClientPolicy( + host=args.host, + port=args.port, + ) + logging.info(f"Server metadata: {policy.get_server_metadata()}") + + # Send 1 observation to make sure the model is loaded. + policy.infer(obs_fn()) + + start = time.time() + for _ in range(args.num_steps): + policy.infer(obs_fn()) + end = time.time() + + print(f"Total time taken: {end - start:.2f} s") + print(f"Average inference time: {1000 * (end - start) / args.num_steps:.2f} ms") + + +def _random_observation_aloha() -> dict: + return { + "state": np.ones((14,)), + "images": { + "cam_high": np.random.randint(256, size=(3, 224, 224), dtype=np.uint8), + "cam_low": np.random.randint(256, size=(3, 224, 224), dtype=np.uint8), + "cam_left_wrist": np.random.randint(256, size=(3, 224, 224), dtype=np.uint8), + "cam_right_wrist": np.random.randint(256, size=(3, 224, 224), dtype=np.uint8), + }, + "prompt": "do something", + } + + +def _random_observation_droid() -> dict: + return { + "observation/exterior_image_1_left": np.random.randint(256, size=(224, 224, 3), dtype=np.uint8), + "observation/wrist_image_left": np.random.randint(256, size=(224, 224, 3), dtype=np.uint8), + "observation/joint_position": np.random.rand(7), + "observation/gripper_position": np.random.rand(1), + "prompt": "do something", + } + + +def _random_observation_libero() -> dict: + return { + "observation/state": np.random.rand(8), + "observation/image": np.random.randint(256, size=(224, 224, 3), dtype=np.uint8), + "observation/wrist_image": np.random.randint(256, size=(224, 224, 3), dtype=np.uint8), + "prompt": "do something", + } + + +if __name__ == "__main__": + logging.basicConfig(level=logging.INFO) + main(tyro.cli(Args)) diff --git a/examples/lyt_simple_client/requirements.in b/examples/lyt_simple_client/requirements.in new file mode 100755 index 0000000..276b901 --- /dev/null +++ b/examples/lyt_simple_client/requirements.in @@ -0,0 +1,2 @@ +numpy +tyro \ No newline at end of file diff --git a/examples/lyt_simple_client/requirements.txt b/examples/lyt_simple_client/requirements.txt new file mode 100755 index 0000000..b9777da --- /dev/null +++ b/examples/lyt_simple_client/requirements.txt @@ -0,0 +1,27 @@ +# This file was autogenerated by uv via the following command: +# uv pip compile examples/simple_client/requirements.in -o examples/simple_client/requirements.txt --python-version 3.7 +backports-cached-property==1.0.2 + # via tyro +docstring-parser==0.16 + # via tyro +eval-type-backport==0.1.3 + # via tyro +markdown-it-py==2.2.0 + # via rich +mdurl==0.1.2 + # via markdown-it-py +numpy==1.21.6 + # via -r examples/simple_client/requirements.in +pygments==2.17.2 + # via rich +rich==13.8.1 + # via tyro +shtab==1.7.1 + # via tyro +typing-extensions==4.7.1 + # via + # markdown-it-py + # rich + # tyro +tyro==0.9.1 + # via -r examples/simple_client/requirements.in diff --git a/examples/policy_records.ipynb b/examples/policy_records.ipynb old mode 100644 new mode 100755 diff --git a/examples/simple_client/Dockerfile b/examples/simple_client/Dockerfile old mode 100644 new mode 100755 diff --git a/examples/simple_client/README.md b/examples/simple_client/README.md old mode 100644 new mode 100755 diff --git a/examples/simple_client/compose.yml b/examples/simple_client/compose.yml old mode 100644 new mode 100755 diff --git a/examples/simple_client/main.py b/examples/simple_client/main.py old mode 100644 new mode 100755 diff --git a/examples/simple_client/requirements.in b/examples/simple_client/requirements.in old mode 100644 new mode 100755 diff --git a/examples/simple_client/requirements.txt b/examples/simple_client/requirements.txt old mode 100644 new mode 100755 diff --git a/examples/ur5/README.md b/examples/ur5/README.md old mode 100644 new mode 100755 diff --git a/packages/openpi-client/pyproject.toml b/packages/openpi-client/pyproject.toml old mode 100644 new mode 100755 diff --git a/packages/openpi-client/src/openpi_client/__init__.py b/packages/openpi-client/src/openpi_client/__init__.py old mode 100644 new mode 100755 diff --git a/packages/openpi-client/src/openpi_client/action_chunk_broker.py b/packages/openpi-client/src/openpi_client/action_chunk_broker.py old mode 100644 new mode 100755 diff --git a/packages/openpi-client/src/openpi_client/base_policy.py b/packages/openpi-client/src/openpi_client/base_policy.py old mode 100644 new mode 100755 diff --git a/packages/openpi-client/src/openpi_client/image_tools.py b/packages/openpi-client/src/openpi_client/image_tools.py old mode 100644 new mode 100755 diff --git a/packages/openpi-client/src/openpi_client/image_tools_test.py b/packages/openpi-client/src/openpi_client/image_tools_test.py old mode 100644 new mode 100755 diff --git a/packages/openpi-client/src/openpi_client/msgpack_numpy.py b/packages/openpi-client/src/openpi_client/msgpack_numpy.py old mode 100644 new mode 100755 diff --git a/packages/openpi-client/src/openpi_client/msgpack_numpy_test.py b/packages/openpi-client/src/openpi_client/msgpack_numpy_test.py old mode 100644 new mode 100755 diff --git a/packages/openpi-client/src/openpi_client/runtime/agent.py b/packages/openpi-client/src/openpi_client/runtime/agent.py old mode 100644 new mode 100755 diff --git a/packages/openpi-client/src/openpi_client/runtime/agents/policy_agent.py b/packages/openpi-client/src/openpi_client/runtime/agents/policy_agent.py old mode 100644 new mode 100755 diff --git a/packages/openpi-client/src/openpi_client/runtime/environment.py b/packages/openpi-client/src/openpi_client/runtime/environment.py old mode 100644 new mode 100755 diff --git a/packages/openpi-client/src/openpi_client/runtime/runtime.py b/packages/openpi-client/src/openpi_client/runtime/runtime.py old mode 100644 new mode 100755 diff --git a/packages/openpi-client/src/openpi_client/runtime/subscriber.py b/packages/openpi-client/src/openpi_client/runtime/subscriber.py old mode 100644 new mode 100755 diff --git a/packages/openpi-client/src/openpi_client/websocket_client_policy.py b/packages/openpi-client/src/openpi_client/websocket_client_policy.py old mode 100644 new mode 100755 diff --git a/pyproject.toml b/pyproject.toml old mode 100644 new mode 100755 diff --git a/scripts/__init__.py b/scripts/__init__.py old mode 100644 new mode 100755 diff --git a/scripts/compute_norm_stats.py b/scripts/compute_norm_stats.py old mode 100644 new mode 100755 diff --git a/scripts/docker/compose.yml b/scripts/docker/compose.yml old mode 100644 new mode 100755 diff --git a/scripts/docker/serve_policy.Dockerfile b/scripts/docker/serve_policy.Dockerfile old mode 100644 new mode 100755 diff --git a/scripts/serve_policy.py b/scripts/serve_policy.py old mode 100644 new mode 100755 diff --git a/scripts/train.py b/scripts/train.py old mode 100644 new mode 100755 diff --git a/scripts/train_test.py b/scripts/train_test.py old mode 100644 new mode 100755 diff --git a/src/openpi/__init__.py b/src/openpi/__init__.py old mode 100644 new mode 100755 diff --git a/src/openpi/conftest.py b/src/openpi/conftest.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/__init__.py b/src/openpi/models/__init__.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/gemma.py b/src/openpi/models/gemma.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/gemma_fast.py b/src/openpi/models/gemma_fast.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/lora.py b/src/openpi/models/lora.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/lora_test.py b/src/openpi/models/lora_test.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/model.py b/src/openpi/models/model.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/model_test.py b/src/openpi/models/model_test.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/pi0.py b/src/openpi/models/pi0.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/pi0_fast.py b/src/openpi/models/pi0_fast.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/pi0_test.py b/src/openpi/models/pi0_test.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/siglip.py b/src/openpi/models/siglip.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/tokenizer.py b/src/openpi/models/tokenizer.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/tokenizer_test.py b/src/openpi/models/tokenizer_test.py old mode 100644 new mode 100755 diff --git a/src/openpi/models/vit.py b/src/openpi/models/vit.py old mode 100644 new mode 100755 diff --git a/src/openpi/policies/aloha_policy.py b/src/openpi/policies/aloha_policy.py old mode 100644 new mode 100755 diff --git a/src/openpi/policies/droid_policy.py b/src/openpi/policies/droid_policy.py old mode 100644 new mode 100755 diff --git a/src/openpi/policies/libero_policy.py b/src/openpi/policies/libero_policy.py old mode 100644 new mode 100755 diff --git a/src/openpi/policies/policy.py b/src/openpi/policies/policy.py old mode 100644 new mode 100755 diff --git a/src/openpi/policies/policy_config.py b/src/openpi/policies/policy_config.py old mode 100644 new mode 100755 diff --git a/src/openpi/policies/policy_test.py b/src/openpi/policies/policy_test.py old mode 100644 new mode 100755 diff --git a/src/openpi/py.typed b/src/openpi/py.typed old mode 100644 new mode 100755 diff --git a/src/openpi/serving/websocket_policy_server.py b/src/openpi/serving/websocket_policy_server.py old mode 100644 new mode 100755 diff --git a/src/openpi/shared/__init__.py b/src/openpi/shared/__init__.py old mode 100644 new mode 100755 diff --git a/src/openpi/shared/array_typing.py b/src/openpi/shared/array_typing.py old mode 100644 new mode 100755 diff --git a/src/openpi/shared/download.py b/src/openpi/shared/download.py old mode 100644 new mode 100755 diff --git a/src/openpi/shared/download_test.py b/src/openpi/shared/download_test.py old mode 100644 new mode 100755 diff --git a/src/openpi/shared/image_tools.py b/src/openpi/shared/image_tools.py old mode 100644 new mode 100755 diff --git a/src/openpi/shared/image_tools_test.py b/src/openpi/shared/image_tools_test.py old mode 100644 new mode 100755 diff --git a/src/openpi/shared/nnx_utils.py b/src/openpi/shared/nnx_utils.py old mode 100644 new mode 100755 diff --git a/src/openpi/shared/normalize.py b/src/openpi/shared/normalize.py old mode 100644 new mode 100755 diff --git a/src/openpi/shared/normalize_test.py b/src/openpi/shared/normalize_test.py old mode 100644 new mode 100755 diff --git a/src/openpi/training/checkpoints.py b/src/openpi/training/checkpoints.py old mode 100644 new mode 100755 diff --git a/src/openpi/training/config.py b/src/openpi/training/config.py old mode 100644 new mode 100755 index 164d59b..6f0442f --- a/src/openpi/training/config.py +++ b/src/openpi/training/config.py @@ -613,6 +613,46 @@ _CONFIGS = [ weight_loader=weight_loaders.CheckpointWeightLoader("s3://openpi-assets/checkpoints/pi0_base/params"), num_train_steps=20_000, ), + TrainConfig( + name="pi0_weigh_a_reagent_bottle_by_a_balance", + # model=pi0.Pi0Config(), + model=pi0.Pi0Config(paligemma_variant="gemma_2b_lora", action_expert_variant="gemma_300m_lora"), + batch_size=8, + fsdp_devices=8, + log_interval=50, + save_interval=500, + data=LeRobotAlohaDataConfig( + repo_id="maic/weigh_a_reagent_by_a_balance_3camera", + assets=AssetsConfig( + assets_dir="/home/ubuntu/sas0/LYT/openpi/assets/pi0_weigh_a_reagent_bottle_by_a_balance/maic", + asset_id="weigh_a_reagent_by_a_balance_3camera", + ), + default_prompt="weigh a reagent bottle by a balance", + repack_transforms=_transforms.Group( + inputs=[ + _transforms.RepackTransform( + { + "images": { + "cam_high": "observation.images.cam_high", + "cam_left_wrist": "observation.images.cam_left_wrist", + "cam_right_wrist": "observation.images.cam_right_wrist", + }, + "state": "observation.state", + "actions": "action", + } + ) + ] + ), + base_config=DataConfig( + local_files_only=True, # Set to True for local-only datasets. + ), + ), + weight_loader=weight_loaders.CheckpointWeightLoader("s3://openpi-assets/checkpoints/pi0_base/params"), + freeze_filter=pi0.Pi0Config( + paligemma_variant="gemma_2b_lora", action_expert_variant="gemma_300m_lora" + ).get_freeze_filter(), + num_train_steps=20_000, + ), # This config is used to demonstrate how to train on a simple simulated environment. TrainConfig( name="pi0_aloha_sim", diff --git a/src/openpi/training/data_loader.py b/src/openpi/training/data_loader.py old mode 100644 new mode 100755 diff --git a/src/openpi/training/data_loader_test.py b/src/openpi/training/data_loader_test.py old mode 100644 new mode 100755 diff --git a/src/openpi/training/optimizer.py b/src/openpi/training/optimizer.py old mode 100644 new mode 100755 diff --git a/src/openpi/training/sharding.py b/src/openpi/training/sharding.py old mode 100644 new mode 100755 diff --git a/src/openpi/training/utils.py b/src/openpi/training/utils.py old mode 100644 new mode 100755 diff --git a/src/openpi/training/weight_loaders.py b/src/openpi/training/weight_loaders.py old mode 100644 new mode 100755 diff --git a/src/openpi/transforms.py b/src/openpi/transforms.py old mode 100644 new mode 100755 diff --git a/src/openpi/transforms_test.py b/src/openpi/transforms_test.py old mode 100644 new mode 100755 diff --git a/uv.lock b/uv.lock old mode 100644 new mode 100755