ROSSDL (ROS System Definition Language)

Dear ROS community,

@ipa-nhg and I have been worked, inside the CoreSense EU funded project, in ROSSDL. This is an attempt to bring Model-driven development principles to ROS. We will present it in the incoming ROSCon Spain 2024, in Seville next September.

ROSSDL_idea

Using ROSSDL, a ROS application (a system in ROSSDL terminology) can be defined in YAML files and used to generate the code for the skeleton of your application. Advantages:

  • Simplify coding. Concentrate efforts on the logic of the application without giving up on coding.
  • Avoid errors when connecting topics, especially when the application grows.
  • Develop graphical tools for developing, using ROSSDL files as the result
  • Generate different systems for many configurations. Compose systems from other existing systems.

I hope many of you find it useful.

Best
Francisco

4 Likes

This seems similar to NoDL. What are the differences between NoDL and ROSSDL? I guess NoDL is just the description.

2 Likes

I didn’t know NoDL, but It seems to be declarative. If any NoDL contributor doesn’t agree, please correct me.

ROSSDL generates code, in a similar way as the ROS interfaces are generated, out of the packages source directory, and lets create launchers with different configurations, also outside of the source directory. The code generation is triggered during the standard workspace build, calling colcon and being transparent to the developer.

There is much work ahead, but I just wanted to show what we are working on, just in case someone is interested in using It or contributing :slight_smile:

2 Likes

NoDL never really got adoption, but could be very interesting for describing tools to downstream tools. It seems that there are synergies between the two. Maybe ROSSDL could generate NoDL as an artifact that tools could use to validate the computation graph at runtime? All the data necessary would already be encoded in the ROSSDL and that could help get some more “critical mass” of software using the NoDL format.

1 Like

How do you compare ROSSDL to Robotics Language RoL?

As far as I have understood, RoL defines behaviors, not systems.