Você deve usar uma mensagem ROS real em vez de uma classe personalizada para dados que você deseja publicar/assinar. Ver http://wiki.ros.org/ros/tutorials/creatingmsgandsrv Para como criar uma nova mensagem que você pode usar ao publicar dados. Usar uma mensagem ROS também significa que as ferramentas de ROS existentes, como rostopic
e ligações de idiomas inteiras, como rospy
para python ou rosjava
Para o Java, poderá interoperar facilmente com o seu nó C ++.
Para este caso em particular, você pode simplesmente usar a mensagem padrão da ROS para um ponto 3D, geometry_msgs/ponto. Você pode encontrar uma lista bastante abrangente das mensagens padronizadas no Common_msgs documentação. O uso de uma mensagem padronizada tem vários benefícios sobre a criação de sua própria mensagem com essencialmente o mesmo conteúdo - o maior é que existem muitas ferramentas ou outros softwares no ecossistema de ROS que você pode querer aproveitar mais tarde, o que será Um processo bastante indolor se você já estiver usando tipos de mensagens independentes.
Se você realmente precisa usar sua classe de posição personalizada (sem simplesmente convertê -la em uma mensagem de ROS), você pode olhar para o Serialização de Roscpp documentação. Eu poderia fortemente Sugira contra a serializar sua classe personalizada em vez de usar uma mensagem ROS real que você cria ou uma mensagem padronizada.