如何在C ++中的ROS包文件中编写字符串消息

时间:2015-09-22 05:31:40

标签: c++ ros

我很确定这个基本问题在某个地方已经有了答案,但不幸的是我找不到它。

目前,我有以下内容(不编译):

rosbag::Bag my_bag;
my_bag.write("/test_topic", timestamp, "str")
// write() expects a message type, as a std_msgs::String

我想我必须把它写成一条消息,所以我尝试使用std_msgs :: String 但是我不知道如何使用它,documentation对这个主题不太有帮助。

我还尝试从here

调整以下Python代码
import rosbag

with rosbag.Bag('input.bag', 'a') as bag:
    from std_msgs.msg import String
    metadata = String(data='my metadata')

    for _, _, t in bag.read_messages():
        break
    bag.write('/metadata', metadata, t - roslib.rostime.Duration(0, 1))

如果重要的话,我正在使用ROS Groovy

提前致谢

1 个答案:

答案 0 :(得分:2)

我只需要构建一个ROS字符串消息。

以下是代码:

rosbag::Bag my_bag;
std_msgs::String str_message;
str_message.data = "message content";
my_bag.write("/test_topic", timestamp, str_message);