Migration des fichiers de paramètres YAML de ROS 1 vers ROS 2

Ce guide décrit comment adapter les fichiers de paramètres ROS 1 pour ROS 2.

Exemple de fichier YAML

YAML est utilisé pour écrire des fichiers de paramètres dans ROS 1 et ROS 2. La principale différence dans ROS 2 est que les noms de nœud doivent être utilisés pour adresser les paramètres. En plus du nom de nœud complet, nous utilisons la clé « ros__parameters » pour signaler le début des paramètres du nœud.

Par exemple, voici un fichier de paramètres dans ROS 1 :

lidar_name: foo
lidar_id: 10
ports: [11312, 11311, 21311]
debug: true

Supposons que les deux premiers paramètres sont pour un nœud nommé /lidar_ns/lidar_node_name, le paramètre suivant est pour un nœud nommé /imu, et le dernier paramètre que nous voulons définir sur les deux nœuds.

Nous construirions notre fichier de paramètres ROS 2 comme suit :

/lidar_ns:
  lidar_node_name:
    ros__parameters:
      lidar_name: foo
      id: 10
imu:
  ros__parameters:
    ports: [2438, 2439, 2440]
/**:
  ros__parameters:
    debug: true

Notez l’utilisation de caractères génériques (/**) pour indiquer que le paramètre debug doit être défini sur n’importe quel nœud dans n’importe quel espace de noms.

Parité des fonctionnalités

Certaines fonctionnalités des fichiers de paramètres ROS 1 n’existent pas dans ROS 2 :

  • Les types mixtes dans une liste ne sont pas encore pris en charge (problème connexe)

  • Les substitutions deg et rad ne sont pas prises en charge