NoDL (Node Definition Language) is a schema and toolkit to describe a ROS 2 node's interface: parameters, topics (publishers and subscriptions), services (clients and servers), and actions (clients and servers).
Find complete documentation at https://nodl.readthedocs.io/en/latest/
NoDL is split into packages for the schema, code generators, documentation generation, and ROS 2 integration.
The nodl metapackage pulls in the common ones, so most users only need to depend on it.
The package list in the documentation describes each package.
The NoDL schema, key to this whole thing, is nodl.schema.yaml.
Outside the packages:
- design/: Design documents for NoDL features
- examples/: Example packages that the tutorials build on
- nodl/doc/: Documentation source for the ReadTheDocs page
- test_ament_nodl/, test_nodl_generators/ and test_nodl_generators_downstream/: Integration tests for the CMake macros and the code generators
- tools/: Scripts supporting development and build workflows
See RELEASING.md for versioning and tag releases.
- Clone the repo and install pre-commit hooks:
pre-commit install
pre-commit install --hook-type prepare-commit-msgThe prepare-commit-msg hook will automatically add the Signed-off-by line to your commits. If you prefer to sign off manually, use git commit -s.
The packages in this repository use a few package only available from pip as test_depends.
For the buildfarm environment, these dependencies and tests are disabled, because a package may not be packaged into a deb/rpm against dependencies from another package manager (pip).
To install all dependencies and run the full test suite, export environment variable ENABLE_PIP_TEST_DEPENDS=1 - which the GitHub Action CI for this repo does.
| Distro | Dev | Doc | Ubuntu Bin |
|---|---|---|---|
| Humble | |||
| Jazzy | |||
| Lyrical | |||
| Rolling |
These ROS distributions will receive no future release updates or code compatibility support.
| Distro | Date Support Ended | Reason |
|---|---|---|
| Kilted Kaiju | October 5, 2026 | Distro EOL in November |
