Comprendre les paramètres
Objectif : Apprenez à obtenir, définir, enregistrer et recharger des paramètres dans ROS 2.
Niveau du tutoriel : Débutant
Durée : 5 minutes
Contenu
Arrière-plan
Un paramètre est une valeur de configuration d’un nœud. Vous pouvez considérer les paramètres comme des paramètres de nœud. Un nœud peut stocker des paramètres sous forme d’entiers, de flottants, de booléens, de chaînes et de listes. Dans ROS 2, chaque nœud gère ses propres paramètres. Pour plus d’informations sur les paramètres, veuillez consulter le document conceptuel.
Conditions préalables
Ce didacticiel utilise le package turtlesim.
Comme toujours, n’oubliez pas de sourcer ROS 2 dans chaque nouveau terminal que vous ouvrez.
Tâches
1 Configuration
Démarrez les deux nœuds turtlesim, /turtlesim
et /teleop_turtle
.
Ouvrez un nouveau terminal et exécutez :
ros2 run turtlesim turtlesim_node
Ouvrez un autre terminal et exécutez :
ros2 run turtlesim turtle_teleop_key
2 liste de paramètres ros2
Pour voir les paramètres appartenant à vos nœuds, ouvrez un nouveau terminal et saisissez la commande :
ros2 param list
Vous verrez les espaces de noms des nœuds, /teleop_turtle
et /turtlesim
, suivis des paramètres de chaque nœud :
/teleop_turtle:
qos_overrides./parameter_events.publisher.depth
qos_overrides./parameter_events.publisher.durability
qos_overrides./parameter_events.publisher.history
qos_overrides./parameter_events.publisher.reliability
scale_angular
scale_linear
use_sim_time
/turtlesim:
background_b
background_g
background_r
qos_overrides./parameter_events.publisher.depth
qos_overrides./parameter_events.publisher.durability
qos_overrides./parameter_events.publisher.history
qos_overrides./parameter_events.publisher.reliability
use_sim_time
Chaque nœud a le paramètre use_sim_time
; ce n’est pas unique à turtlesim.
D’après leurs noms, il semble que les paramètres de /turtlesim
déterminent la couleur d’arrière-plan de la fenêtre turtlesim en utilisant les valeurs de couleur RVB.
Pour déterminer le type d’un paramètre, vous pouvez utiliser ros2 param get
.
3 paramètres ros2 obtenir
Pour afficher le type et la valeur actuelle d’un paramètre, utilisez la commande :
ros2 param get <node_name> <parameter_name>
Découvrons la valeur actuelle du paramètre /turtlesim
background_g
:
ros2 param get /turtlesim background_g
Qui renverra la valeur :
Integer value is: 86
Vous savez maintenant que background_g
contient une valeur entière.
Si vous exécutez la même commande sur background_r
et background_b
, vous obtiendrez respectivement les valeurs 69
et 255
.
4 jeu de paramètres ros2
Pour modifier la valeur d’un paramètre lors de l’exécution, utilisez la commande :
ros2 param set <node_name> <parameter_name> <value>
Modifions la couleur de fond de /turtlesim
:
ros2 param set /turtlesim background_r 150
Votre terminal doit renvoyer le message :
Set parameter successful
Et le fond de votre fenêtre turtlesim devrait changer de couleur :

La définition des paramètres avec la commande set
ne les modifiera que dans votre session en cours, pas de façon permanente. Cependant, vous pouvez enregistrer vos paramètres et les recharger la prochaine fois que vous démarrez un nœud.
5 vidage des paramètres ros2
Vous pouvez afficher toutes les valeurs de paramètre actuelles d’un nœud à l’aide de la commande :
ros2 param dump <node_name>
La commande imprime sur la sortie standard (stdout) par défaut, mais vous pouvez également rediriger les valeurs des paramètres dans un fichier pour les enregistrer pour plus tard. Pour enregistrer votre configuration actuelle des paramètres de /turtlesim
dans le fichier turtlesim.yaml
, entrez la commande :
ros2 param dump /turtlesim > turtlesim.yaml
Vous trouverez un nouveau fichier dans le répertoire de travail dans lequel votre shell s’exécute. Si vous ouvrez ce fichier, vous verrez le contenu suivant :
/turtlesim:
ros__parameters:
background_b: 255
background_g: 86
background_r: 150
qos_overrides:
/parameter_events:
publisher:
depth: 1000
durability: volatile
history: keep_last
reliability: reliable
use_sim_time: false
Le vidage des paramètres est pratique si vous souhaitez recharger le nœud avec les mêmes paramètres à l’avenir.
6 chargement de paramètres ros2
Vous pouvez charger les paramètres d’un fichier vers un nœud en cours d’exécution à l’aide de la commande :
ros2 param load <node_name> <parameter_file>
Pour charger le fichier turtlesim.yaml
généré avec ros2 param dump
dans les paramètres du nœud /turtlesim
, entrez la commande :
ros2 param load /turtlesim turtlesim.yaml
Votre terminal renverra le message :
Set parameter background_b successful
Set parameter background_g successful
Set parameter background_r successful
Set parameter qos_overrides./parameter_events.publisher.depth failed: parameter 'qos_overrides./parameter_events.publisher.depth' cannot be set because it is read-only
Set parameter qos_overrides./parameter_events.publisher.durability failed: parameter 'qos_overrides./parameter_events.publisher.durability' cannot be set because it is read-only
Set parameter qos_overrides./parameter_events.publisher.history failed: parameter 'qos_overrides./parameter_events.publisher.history' cannot be set because it is read-only
Set parameter qos_overrides./parameter_events.publisher.reliability failed: parameter 'qos_overrides./parameter_events.publisher.reliability' cannot be set because it is read-only
Set parameter use_sim_time successful
Note
Les paramètres en lecture seule ne peuvent être modifiés qu’au démarrage et pas après, c’est pourquoi il y a des avertissements pour les paramètres « qos_overrides ».
7 Charger le fichier de paramètres au démarrage du nœud
Pour démarrer le même nœud en utilisant vos valeurs de paramètre enregistrées, utilisez :
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>
C’est la même commande que vous utilisez toujours pour démarrer turtlesim, avec les drapeaux ajoutés --ros-args
et --params-file
, suivis du fichier que vous voulez charger.
Arrêtez votre nœud turtlesim en cours d’exécution afin que vous puissiez essayer de le recharger avec vos paramètres enregistrés, en utilisant :
ros2 run turtlesim turtlesim_node --ros-args --params-file turtlesim.yaml
La fenêtre de turtlesim devrait apparaître comme d’habitude, mais avec le fond violet que vous avez défini précédemment.
Note
Dans ce cas, les paramètres sont modifiés au démarrage, de sorte que les paramètres en lecture seule spécifiés prendront également effet.
Résumé
Les nœuds ont des paramètres pour définir leurs valeurs de configuration par défaut. Vous pouvez obtenir
et définir
les valeurs des paramètres depuis la ligne de commande. Vous pouvez également enregistrer les réglages des paramètres dans un fichier pour les recharger lors d’une prochaine session.
Prochaines étapes
Pour revenir aux méthodes de communication ROS 2, dans le prochain didacticiel, vous découvrirez actions.