Réponse rapide
Lorsqu’un client annule une action ROS 2, le serveur accuse réception, arrête ou met en sécurité la tâche selon son contrat, puis renvoie un résultat d’annulation explicite. Une course entre fin normale, annulation et perte réseau est arbitrée par une règle documentée. Le client ne considère pas l’annulation acquise tant que l’état n’est pas confirmé.
Définir la transition d’annulation
Le serveur distingue demande reçue, annulation acceptée, arrêt en cours, arrêt terminé et refus motivé. Contrôleur et actionneur appliquent la même priorité. Les ressources, charges et verrous sont libérés avant de déclarer la tâche terminée.
Tester les courses et la perte réseau
Essais annulent avant démarrage, pendant effort, juste avant la fin et après coupure du client. On mesure mouvement résiduel, délai, état du matériel et possibilité de reprendre. Le robot reste dans une configuration connue après timeout.
Ne pas supprimer la commande pour simuler une annulation
Fermer le client ne garantit pas l’arrêt du serveur. Une annulation doit atteindre le contrôleur et produire une preuve d’état. Si le réseau est perdu, un timeout local et une action sûre prennent le relais.
Sources et références
- [1] Robotics and Autonomous Systems — NIST