Vous devez utiliser un message ROS réel au lieu d'une classe personnalisée pour les données auxquelles vous souhaitez publier / vous abonner. Voir http://wiki.ros.org/ros/tutorials/creatingmsgandsrv Pour créer un nouveau message que vous pouvez ensuite utiliser lors de la publication de données. L'utilisation d'un message ROS signifie également que les outils ROS existants tels que rostopic
et des liaisons linguistiques entières telles que rospy
pour python ou rosjava
pour Java pourra facilement interagir avec votre nœud C ++.
Pour ce cas particulier, vous pouvez simplement utiliser le message ROS standard pour un point 3D, geometry_msgs / point. Vous pouvez trouver une liste assez complète des messages standardisés dans le Common_msgs Documentation. L'utilisation d'un message standardisé présente un certain nombre d'avantages sur la création de votre propre message avec essentiellement le même contenu - le plus important est qu'il existe de nombreux outils ou autres logiciels dans l'écosystème ROS que vous voudrez peut-être profiter plus tard, qui sera Un processus assez indolore si vous utilisez déjà des types de messages standard.
Si vous avez vraiment besoin d'utiliser votre classe de position personnalisée (sans simplement la convertir en un message ROS), vous pouvez consulter le Série ROSCPP Documentation. Je voudrais fortement Suggérez contre le sérialisation de votre classe personnalisée au lieu d'utiliser soit un message ROS réel que vous créez ou un message standardisé.