mirror of
https://github.com/huggingface/lerobot.git
synced 2026-07-26 19:26:16 +00:00
fix(docker): download VLABench mesh assets (required for tasks)
Task configs reference object meshes (obj/meshes/fruit/, containers/*) via name2class_xml; without them, random.choice([]) crashes during task build. Install gdown and run VLABench's download_assets.py script to fetch the asset + scene archives from Google Drive. Made-with: Cursor
This commit is contained in:
@@ -24,11 +24,10 @@ FROM huggingface/lerobot-gpu:latest
|
|||||||
# Shallow-clone without submodule recursion (nested SSH-only submodules fail in CI).
|
# Shallow-clone without submodule recursion (nested SSH-only submodules fail in CI).
|
||||||
# Editable install (-e) because VLABench/utils/ has no __init__.py, so
|
# Editable install (-e) because VLABench/utils/ has no __init__.py, so
|
||||||
# find_packages() omits it from wheels; editable mode uses the source tree directly.
|
# find_packages() omits it from wheels; editable mode uses the source tree directly.
|
||||||
# Asset download (Google Drive via gdown) is skipped — unreliable in CI and not
|
# rrt-algorithms has the same packaging issue (rrt/ dir missing __init__.py).
|
||||||
# needed for our smoke test which uses its own eval pipeline.
|
|
||||||
# Patch: constant.py calls os.listdir on ~100 asset/obj/meshes/* dirs at import
|
# Patch: constant.py calls os.listdir on ~100 asset/obj/meshes/* dirs at import
|
||||||
# time; those dirs only exist after the Google Drive download. We guard the call
|
# time. Guard the call so missing dirs return [] instead of crashing (in case
|
||||||
# so missing dirs return [] instead of crashing.
|
# the asset download is partial).
|
||||||
RUN git clone --depth 1 https://github.com/OpenMOSS/VLABench.git ~/VLABench && \
|
RUN git clone --depth 1 https://github.com/OpenMOSS/VLABench.git ~/VLABench && \
|
||||||
git clone --depth 1 https://github.com/motion-planning/rrt-algorithms.git ~/rrt-algorithms && \
|
git clone --depth 1 https://github.com/motion-planning/rrt-algorithms.git ~/rrt-algorithms && \
|
||||||
python3 -c "\
|
python3 -c "\
|
||||||
@@ -40,7 +39,13 @@ p.write_text(t.replace( \
|
|||||||
'if not os.path.isdir(xml_dir): return []\n subdirs = os.listdir(xml_dir)'))" && \
|
'if not os.path.isdir(xml_dir): return []\n subdirs = os.listdir(xml_dir)'))" && \
|
||||||
uv pip install --no-cache -e ~/VLABench -e ~/rrt-algorithms \
|
uv pip install --no-cache -e ~/VLABench -e ~/rrt-algorithms \
|
||||||
mujoco==3.2.2 dm-control==1.0.22 \
|
mujoco==3.2.2 dm-control==1.0.22 \
|
||||||
open3d colorlog scikit-learn openai
|
open3d colorlog scikit-learn openai gdown
|
||||||
|
|
||||||
|
# Download VLABench mesh assets from Google Drive. Task configs reference
|
||||||
|
# object meshes (obj/meshes/fruit/, containers/basket/, etc.); without them
|
||||||
|
# the task builder crashes with IndexError on random.choice([]).
|
||||||
|
# gdown handles Google Drive's confirmation tokens for large files.
|
||||||
|
RUN python ~/VLABench/scripts/download_assets.py --choice all
|
||||||
|
|
||||||
# Overlay the PR's source code on top of the nightly image.
|
# Overlay the PR's source code on top of the nightly image.
|
||||||
COPY --chown=user_lerobot:user_lerobot . .
|
COPY --chown=user_lerobot:user_lerobot . .
|
||||||
|
|||||||
Reference in New Issue
Block a user