Skip to content

jig

  • Software
  • Middleware
  • Tool

Jig generates strongly typed C++ and Python ROS 2 lifecycle node scaffolding from a single YAML file that declares publishers, subscribers, services, actions and parameters.

Made by nineyards-robotics.

Source on GitHub: github.com/nineyards-robotics/jig (opens in a new tab). Facts read at commit 8008a99 (opens in a new tab).

Licenses

Code
Apache-2.0 (opens in a new tab)

Read by Robotheca from LICENSE (opens in a new tab) (Apache-2.0) at commit 8008a99 (opens in a new tab), on 16 Oct 2026.

Commercial use
Yes

What it does

  • Turns a per-node interface.yaml into generated session classes with publishers, subscribers, services, actions, parameters and optional TF2 support.
  • Nodes use a lifecycle Session object with free-function callbacks for configure, activate, deactivate, cleanup and shutdown.
  • A single jig_auto_package() CMake macro detects C++ and Python nodes in nodes/, generates code, builds, registers components and installs.
  • Supports synchronised subscriber groups that pair messages from 2 to 9 topics using message_filters, approximate or exact policy.
  • QoS settings are required for publishers and subscribers and can reference read-only parameters for launch-time configuration.
  • Jig_auto_interface_package() discovers msg, srv and action files and generates interface packages with dependencies read from package.xml.

Written by Robotheca from the project's README (opens in a new tab) at commit 8008a99.

Getting started

Difficulty
Intermediate

Maintenance

Status
Active: a commit in the last 90 days
Newest commit
1 Sept 2026 on main
Latest release
None published on GitHub

Checked on GitHub on 16 Oct 2026.

Robots that can run it

No robot on Robotheca is linked to it yet. Links come from a robot's robot.yaml, from its dependency files read as text, or from Robotheca's editors.

Robotheca lists software as a reference: nothing is hosted or run here, and every fact links to where it was read.