gpt4 book ai didi

c++ - 如何在保持 UNIX 格式的同时将 `ros::Time` 转换为字符串?

转载 作者:行者123 更新时间:2023-12-05 02:45:12 25 4
gpt4 key购买 nike

上下文:我有名称为 UNIX 时间戳的图像文件,例如1341846314.694004.png。这些名称对应于发布图像的 ROS .bag 文件的消息 header.stamp。我使用 Python 为每个图像生成了边界框文件,并使用相同的模式来命名它们,例如1341846314.694004_bb.txt

问题:我无法将 ros::Time 类型和 UNIX 时间格式的 header.stamp 转换为 C++ 中的字符串。

到目前为止,我阅读的所有资源都告诉我要么使用 header.stamp.toSec()(这没有帮助,因为相关信息正在丢失),要么将其转换转换为其他时间格式,然后我可以将其转换为字符串(这同样无济于事,因为我需要 UNIX 格式)。

最佳答案

时间类在 Python 中为秒和纳秒提供字段和 C++ .所以你可以使用它们并将它们组合成一个字符串:

python :

stamp = rospy.Time.now()
print(str(stamp.secs) + '.' + str(stamp.nsecs))

C++:

ros::Time stamp = ros::Time::now();
std::stringstream ss;
ss << stamp.sec << "." << stamp.nsec;
std::cout << ss.str() << std::endl;

两种实现的输出如下:

1612707880.149451971

关于c++ - 如何在保持 UNIX 格式的同时将 `ros::Time` 转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66087573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com