您应该使用实际的ROS消息,而不是要发布/订阅的数据的自定义类。看 http://wiki.ros.org/ros/tutorials/creatingmsgandsrv 对于如何创建新消息,您可以在发布数据时使用该消息。使用ROS消息还意味着现有的ROS工具,例如 rostopic
以及整个语言绑定,例如 rospy
对于Python或 rosjava
因为Java将能够轻松地与您的C ++节点进行互操作。
对于这种特殊情况,您可以简单地将标准ROS消息用于3D点, geometry_msgs/点. 。您可以在 common_msgs 文档。使用标准化的消息与使用基本相同的内容创建自己的消息具有许多好处 - 最大的是,ROS生态系统中有许多工具或其他软件,您可能需要以后利用,这将是如果您已经使用了标准的消息类型,则是一个相当无痛的过程。
如果您确实需要使用自定义位置类(不简单地将其转换为ROS消息),则可以查看 ROSCPP序列化 文档。我会 强烈 建议不要序列化您的自定义类,而不是使用您创建的实际ROS消息或标准化消息。