This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a repository of ABB robot models providing plug-and-play USD and URDF assets for use in IsaacSim and other robotics applications. The repository contains 32+ ABB robot models including cobots, industrial robots, SCARA robots, palletizing robots, paint robots, and positioners.
library/- Reeady to use robot assets (URDF, USD, meshes, limits.xml)sources/- Source ROS packages with original robot descriptionsscripts/- Demo scripts for IsaacSim integrationtools/- Validation and utility scriptsisaacsim_typings/- Type stubs for IsaacSim (git submodule)dev_utils/- Development utilities for scene generationdocs/- various docs about the project and robot information from the manufacturertests/- test suite for ensuring FK matches manuals
# Clone with submodules (required for IsaacSim typings)
git clone --recurse-submodules https://github.com/work-r-labs/robots.git
# Create Python environment
uv venv
uv pip install -r requirements.txtuv run pytest# Validate a single URDF
uv run tools/validate_urdf.py path/to/robot.urdf
# Validate with verbose output
uv run tools/validate_urdf.py -v path/to/robot.urdf
# Validate all URDFs in repository
bash tools/validate_all_urdfs.sh# Format Python code
uv run ruff format# Basic hello world demo
~/isaacsim/python.sh scripts/hello_world.py library/ABB/CRB15000_10kg_152_v1/CRB15000_10kg_152.urdf
# Interactive inverse kinematics demo (requires PyRoKi)
~/isaacsim/python.sh -m pip install git+https://github.com/chungmin99/pyroki
~/isaacsim/python.sh scripts/ikdemo.py library/ABB/CRB15000_10kg_152_v1/CRB15000_10kg_152.urdfEach robot model follows this structure:
library/ABB/RobotName_v1/
├── RobotName.urdf # URDF file
├── RobotName/ # USD directory
│ └── RobotName.usd # USD file
├── meshes/ # STL mesh files
│ ├── base_link.stl
│ └── link_*.stl
└── limits.xml # Joint limits (if available)
- Robot models are designed for IsaacSim with proper USD conversion
- Scripts use
SingleArticulationfor robot control - Inverse kinematics integration through PyRoKi library
- Spatial transformation utilities in
spatial_utils.py
sources/contains original ROS packages from ABBlibrary/contains processed assets ready for use- Use git status to see deleted files from
sources/that were processed
- Always test new robot models with the validation script
- URDF files should be paired with corresponding USD files
- Mesh files must be in
meshes/subdirectory relative to URDF - Joint limits should be properly defined for articulated robots
- Use
~/isaacsim/python.shto run scripts with IsaacSim Python - Import IsaacSim modules after creating SimulationApp
- Use
SingleArticulationfor robot control - Always call
world.reset()andarticulation.initialize()before simulation
- IsaacSim type stubs are available in
isaacsim_typings/submodule - Use
typingssymlink for IDE support - Python environment requires
yourdfpyandruffpackages
tools/validate_all_urdfs.sh- Validates all URDF files in repositorytools/validate_urdf.py- URDF validation tool with detailed checksscripts/_ik_demo_utils.py- IK solving utilities using PyRoKiruff.toml- Code formatting configuration.claude/commands/update-info-table.md- Command to update README robot table
markitdown is a command-line tool that converts various file formats to markdown.
markitdown <filename>- Convert file to markdown (output to stdout)markitdown- Read from stdin if no filename providedmarkitdown file.pdf -o output.md- Save output to filemarkitdown file.pdf > output.md- Redirect output to file
-o OUTPUT- Specify output filename-x EXTENSION- Hint file extension when reading from stdin-m MIME_TYPE- Hint MIME type-c CHARSET- Hint charset (e.g. UTF-8)-d- Use Document Intelligence for extraction (requires endpoint)-p- Use 3rd-party plugins--list-plugins- Show available plugins--keep-data-uris- Preserve base64 images in output