Minimal, self-contained teleoperation stack for SO-ARM101 using Isaac Sim 5.1.0 and Isaac Lab 2.3.0. This repo vendors only the SO-ARM101 URDF + meshes and provides a simple joint-space teleop script.
src/soarm_sim/robots/so_arm101/urdfincludes the SO-ARM101 URDF and meshes.src/soarm_sim/robots/so_arm101/so_arm101_cfg.pydefines the robot articulation.src/soarm_sim/tasks/teleop/teleop_env_cfg.pydefines a minimal scene (table + robot + light).src/soarm_sim/scripts/teleop.pyprovides keyboard teleop in joint space.
We build on top of the working Isaac Sim 5.1.0 image, then install Isaac Lab 2.3.0 + our code using uv.
- Choose the base image tag that works on your Vast.ai machine:
export ISAACSIM_BASE_IMAGE=nvcr.io/nvidia/isaac-sim:5.1.0- Build and run:
docker compose build
docker compose up -d- Enter the container:
docker compose exec soarm-sim bash- Run teleop:
uv run teleop --mode joint --device keyboard
uv run teleop --device keyboardMake sure X11 forwarding is allowed on the host. Example:
xhost +local:rootThe compose file mounts /tmp/.X11-unix and passes DISPLAY.
Keys set joint velocity commands; release stops movement.
W/S: shoulder_pan +/-E/D: shoulder_lift +/-R/F: elbow_flex +/-T/G: wrist_flex +/-Y/H: wrist_roll +/-O: toggle gripper open/close
- Isaac Lab runs inside Isaac Sim's Python environment. That is why the runtime image must be based on an Isaac Sim image.
- The dev container is intentionally minimal and does not include Isaac Lab or Isaac Sim.