Réponse rapide
L’annulation et la préemption doivent être traitées comme des transitions contrôlées : le serveur arrête ou ralentit les commandes, libère les ressources, confirme l’état atteint et n’accepte un nouvel objectif qu’après une décision explicite.
Relier demande et arrêt
Une demande d’annulation déclenche une procédure locale, par exemple un arrêt progressif ou un retour vers une position sûre. Le résultat distingue annulation réussie, refusée et encore en cours.
Arbitrer les objectifs
La préemption précise si le nouvel objectif attend, remplace l’ancien ou est refusé. Un propriétaire unique des moteurs et des ressources partagées évite deux commandes concurrentes.
Gérer la perte du client
Un délai d’absence du client active un comportement défini par le serveur. Les limites physiques et l’intervention indépendante restent disponibles même si le middleware ne répond plus.
Une annulation logicielle ne prouve pas l’arrêt
Le système doit vérifier le mouvement réel, l’énergie résiduelle et l’état des actionneurs avant de déclarer la tâche arrêtée. Une coupure de communication ne doit jamais être considérée comme une consignation.
Sources et références
- [1] Interfaces: topics, services and actions — ROS 2 — Open Robotics