Skip to the content.

HOW TO DESCRIBE ROS SYSTEMS USING THE LANGUAGE

In our case we consider a system to be a combination of nodes running at the same time. Basically, we use the typical component-based system concept, where each ROS node could be considered a component. Therefore the .rossystem file allows us to describe a series of nodes and the connections that are created between them using topics, services or actions. It also allows us to give values to the parameters.

The structure of the system description is as shown in the following diagram:

alt text

The format of a system is as follows:

my_awesome_system:
  fromFile: 'pkg_name/launch/file.launch.py'
  subSystems:
    another_awesome_system # From another .rossystem file
  processes:
    process1:
      nodes: [ node1 , node2 ]
      threads: 2
  nodes:
    node1:
      from: "my_awesome_pkg.awesome_node_provider" #From .ros2 file
      interfaces:
        - awesome_pub: pub-> "awesome::awesome_pub" # From .ros2 file
      parameters:
        - ParamName: "awesome::awesome_param"
         value: "Label"
    node2:
      from: "my_awesome_pkg.awesome_node_consumer" #From .ros2 file
      interfaces:
        - awesome_sub: sub-> "awesome::awesome_sub"
  connections:
    -[awesome_pub, awesome_sub]

Below we analyze each part that makes up the system and how it is formed:

The Editor of the models contains validators and the auto-complete function, which can be called with the combination of the keys Ctrl and space bar.

In the tutorials you will be guided to try all of these features.