如何在 C++ 中的 ROS 包文件中写入字符串消息
how to write a string message in a ROS bag file in C++
我很确定这个基本问题已经在某个地方找到了答案,但不幸的是我找不到它。
目前,我有以下内容(无法编译):
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
提前致谢
我只需要构建一个 ROS 字符串消息。
代码如下:
rosbag::Bag my_bag;
std_msgs::String str_message;
str_message.data = "message content";
my_bag.write("/test_topic", timestamp, str_message);
我很确定这个基本问题已经在某个地方找到了答案,但不幸的是我找不到它。
目前,我有以下内容(无法编译):
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
提前致谢
我只需要构建一个 ROS 字符串消息。
代码如下:
rosbag::Bag my_bag;
std_msgs::String str_message;
str_message.data = "message content";
my_bag.write("/test_topic", timestamp, str_message);