Skip to content

About

glTF authoring profile, conformance checking and asset assessment for robot simulation in Gazebo and RViz

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Honu Robotics' glTF asset framework

Honu Robotics' glTF asset framework for Gazebo and RViz. This is a beta release: two documents are ready for review, and the rest of the repository is planned work still in development. This project includes the following:

Ready for beta review

Only these two documents are evaluated in the beta. Both are being tried on real models while their open issues are resolved, and each open issue is marked where it occurs in the text.

  • Honu glTF Asset Profile, docs/profile.md. This document provides normative guidance that narrows, extends and clarifies the glTF 2.0 standard and makes it actionable for authoring 3D assets for robotics applications. The profile also aligns the robotics standards and conventions (ISO and ROS REP) and terminology in the context of glTF assets. The document describes normative rules for 3D visual robotic assets that MUST and SHOULD be adhered to by all.
  • Honu glTF Asset Workflow, docs/workflow.md. This document describes the step-by-step process of asset commissioning, authoring and conformance testing, and specifies who does what.
  • Coordiante System Orientation Walkthrough, docs/walkthroughs/coordinate_orientation_demo.md. This document illustrates the coordinate conventions of Blender, glTF 2.0 and Gazebo/RVIZ (ISO 9787 and ROS REP103) and how transfering from one to the other is done to maintain consistency across the toolchain.

In development, not ready for review

The items below are part of the plan and are listed so that reviewers know what is coming. They are incomplete, some were written against earlier drafts of the profile, and none of them is evaluated in the beta. Where one of them disagrees with the profile or the workflow, the profile and the workflow govern.

Supporting documentation:

  1. Walkthroughs, docs/walkthroughs/. Complete step-by-step examples and how-tos, each run end to end with the tools' real output. Three so far: a single mesh taken from Blender to Gazebo and RViz, exporting from Blender, and checking a delivery.
  2. Assessments, docs/assessments/ and assess/. Measurements of what glTF assets contain, criterion by criterion. Assets published by other projects are measured to learn what is in the field, not as a basis for the profile's rules, since a field asset is as likely as not to be non-compliant. assess/ holds the criteria, the list of assets, the written findings and the report generated by gltf-assess. Audits of our own deliveries are planned and will use the same tools.
  3. Reference, docs/reference/. The project glossary, and background for the profile's rules: coordinate systems, Blender's glTF export options, PBR materials and notes on glTF itself.

Tools and utilities, with their source code:

  1. Command-line tools, src/gltf_robotics/ with tests in tests/. A Python package with four commands: gltf-check tests a file against the profile's rules, gltf-manifest writes a part's manifest into its file from the commission, gltf-summary describes what a file contains without judging it, and gltf-assess measures a list of assets published elsewhere.
  2. Probes, probe/. Tools for questions that reading a file cannot answer. glb_probe loads a file through Gazebo's own loader and reports what was built, and a marker generator writes test assets for coordinate-system questions.
  3. Figures, figures/. A Python drawing kit and the scene scripts that generate the coordinate-system illustrations used in the documentation.

Models:

  1. Examples, examples/. The files behind the walkthroughs: the Blender source, exported .glb files, and the SDF, URDF and RViz configuration that load them.
  2. Exemplar, exemplar/. Planned as a reference model that satisfies the profile, with counterexamples that deliberately do not. At present it holds only a minimal glTF file used to explain the file structure.
  3. Demo, demo/. A Blender script that builds an axis-marker scene in Blender's own convention, front toward −Y, so that a default export conforms to the profile, for seeing how each consumer treats the axes.

Other:

  1. Reference documents, refs/. A local placeholder for licensed standards the documents cite, such as ISO 9787. Its contents are not committed or published.

Installing the tools

Install the command-line tools editable into a venv in the clone, so edits under src/ take effect without reinstalling, and link the commands onto your PATH. From the root of the clone:

python3 -m venv .venv
.venv/bin/pip install -e '.[dev]'
ln -s "$PWD"/.venv/bin/gltf-{check,summary,manifest,assess} ~/.local/bin/

Re-run the pip install line only when pyproject.toml changes, such as a new command or dependency. .venv/bin/pytest runs the tests.

License

Apache-2.0. See LICENSE and NOTICE.

About

glTF authoring profile, conformance checking and asset assessment for robot simulation in Gazebo and RViz

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages