Вы должны использовать реальное сообщение ROS вместо пользовательского класса для данных, на которые вы хотели бы опубликовать/подписаться. Видеть http://wiki.ros.org/ros/tutorials/creatingmsgandsrv Для того, чтобы создать новое сообщение, которое вы можете использовать при публикации данных. Использование сообщения ROS также означает, что существующие инструменты ROS, такие как rostopic
и целые языковые привязки, такие как rospy
для Python или rosjava
Для Java сможет легко взаимодействовать с вашим узлом C ++.
Для этого конкретного случая вы можете просто использовать стандартное сообщение ROS для 3D -точки, geometry_msgs/point. Анкет Вы можете найти довольно полный список стандартизированных сообщений в common_msgs документация. Использование стандартизированного сообщения имеет ряд преимуществ по сравнению с созданием собственного сообщения с тем же контентом - самое большое, что в экосистеме ROS есть много инструментов или других программ Довольно безболезненный процесс, если вы уже используете отдельные типы сообщений.
Если у вас действительно есть необходимость использовать свой пользовательский класс положения (не просто преобразовывая его в сообщение ROS), вы можете посмотреть на сериализация Roscpp документация. я бы сильно Предложите против сериализации вашего пользовательского класса вместо использования либо реального сообщения ROS, которое вы создаете, либо стандартизированное сообщение.