toy-sorting-env / README.md
AshDash93's picture
Upload env source code
b41fdde verified
---
license: cc-by-nc-4.0
library_name: lerobot
tags:
- robotics
- manipulation
- isaac-lab
- lerobot
- so-arm101
- simulation
---
# SO-ARM 101 Toy Sorting — Isaac Lab EnvHub
Simulation-first manipulation learning with Isaac Lab + LeRobot.
SO-ARM 101 sorts colored toys into matching trays on a wooden kitchen table.
## LeRobot EnvHub
This repo follows the [LeRobot EnvHub](https://huggingface.co/docs/lerobot/en/envhub) standard.
`env.py` at the root exposes `make_env()` and is loadable via `trust_remote_code=True`.
```python
from lerobot.envs.factory import make_env
envs = make_env("AshDash93/toy-sorting-env", trust_remote_code=True)
```
## Quick Start
```bash
# 1. Download scene assets from HuggingFace Hub
docker compose run sim uv run python assets/download.py --download
# 2. Install Isaac Lab + Isaac Sim (pip, Linux only)
docker compose run sim uv sync --extra sim
# 3. Visualise (headless)
docker compose run sim uv run python scripts/visualize_env.py --headless
# 3b. Visualise with GUI (X forwarding — run these on the server first)
# ssh -X user@your-server-ip
# xhost +local:docker
docker compose run sim uv run python scripts/visualize_env.py
```
## Assets
On a developer machine with the original Lightwheel packs, extract assets locally:
```bash
uv run python assets/download.py --extract # populate assets/toy_sorting/
uv run python assets/download.py --upload # push to HF Hub (needs HF_TOKEN in .env)
```
## Layout
```
env.py # EnvHub entrypoint (make_env)
src/manipulator_learning/
envhub.py # thin factory
envs/
toy_sorting_env.py # ToySortingEnv (InteractiveScene-backed gym env)
toy_sorting_scene_cfg.py # InteractiveSceneCfg: table + robot + bowls + toys
so_arm101_cfg.py # ArticulationCfg for SO-ARM 101
test_scene_cfg.py # minimal scene for robot-only testing (no USD assets)
zmq_server.py # Phase 2 stub (sim↔train bridge)
tasks/toy_sorting/
task_spec.py # high-level task spec (colors, bin names, instruction)
assets/
download.py # asset extract / upload / download
scripts/
visualize_env.py # run full toy-sorting scene until window closed
test_robot.py # minimal robot URDF test (no scene assets required)
toy_sorting_envhub.py # backwards-compat wrapper; prefer visualize_env.py
inspect_assets.py # inspect USD asset bounding boxes (usd-core only)
```
## Attribution
Table asset (`assets/toy_sorting/Table049/`) is from the Lightwheel Kitchen pack
by Lightwheel AI, licensed under
[CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/).
Toy shapes and sorting containers (`assets/toy_sorting/Kit1/`) are from the
Lightwheel Toyroom pack by Lightwheel AI, licensed under
[CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/).
SO-ARM 101 URDF and meshes are from
[TheRobotStudio/SO-ARM100](https://github.com/TheRobotStudio/SO-ARM100).