1k
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill dartsim/dart --skill dart-io- SKILL.md1.4 KB
Overview
This skill provides a unified C++ API (dart::io) for loading robot and scene models in DART. It supports URDF, SDF, MJCF, and legacy SKEL formats and offers automatic format detection plus configurable read options. Use it to import robots, worlds, and animated rigs into DART-based simulations or tools.
How this skill works
The API exposes high-level helpers like readSkeleton and readWorld that parse files, resolve package paths, and build DART Skeleton/World objects. ReadOptions lets you add package directories, override detected formats, and tune resource resolution. Parsers map format-specific constructs (links, joints, collisions, visuals) into DART multibody and collision/visual structures.
When to use it
- Import ROS robot descriptions (URDF) into DART for simulation or control.
- Load Gazebo worlds and models (SDF) to recreate environments inside DART.
- Bring MuJoCo models (MJCF) or legacy DART SKEL files into a common runtime representation.
- Preprocess models before running inverse kinematics, dynamics, or collision tests.
- Automate batch conversion or validation of robot model files.
Best practices
- Add package directories via ReadOptions when using package:// URIs to ensure resource resolution.
- Force a specific ModelFormat when a file extension is ambiguous or when using in-memory buffers.
- Validate loaded Skeletons/Worlds (joint limits, mass properties, collision geometry) before running physics.
- Keep visuals and collision meshes organized and referenced by relative paths to simplify distribution.
- Use the C++ API entrypoints (readSkeleton/readWorld) for deterministic loading; use unit tests to catch parsing regressions.
Example use cases
- Load a URDF robot then run inverse kinematics and motion planning in DART.
- Import a Gazebo SDF world to compare sensor outputs and collision behavior between simulators.
- Batch-convert MJCF or SKEL files into standardized Skeleton objects for animation pipelines.
- Resolve package:// assets from custom directories for reproducible demos and CI tests.
- Use readWorld to assemble multi-robot scenes for multi-body dynamics experiments.
FAQ
The loader infers format from file extensions and content. If unsure, set ReadOptions.format to force a specific parser.
How do I make package:// URIs resolve?
Call options.addPackageDirectory("name", "/path/to/name") before reading. The loader will map package://name/... to the provided directory.