簡體   English   中英

如何在保持 UNIX 格式的同時將“ros::Time”轉換為字符串?

[英]How to convert `ros::Time` to string while keeping the UNIX format?

上下文:我有圖像文件,其名稱為 UNIX 時間戳,例如1341846314.694004.png 這些名稱對應於發布圖像的 ROS.bag 文件的消息header.stamp 使用 Python 我為每個圖像生成邊界框文件並使用相同的模式來命名它們,例如1341846314.694004_bb.txt

問題:我無法將類型為ros::Time且格式為 UNIX 時間的 header.stamp 轉換為header.stamp中的字符串。

到目前為止,我閱讀的每個資源都告訴我要么使用header.stamp.toSec() (這無濟於事,因為相關信息正在丟失),或者將其轉換為其他時間格式,然后我反過來,將能夠轉換為字符串(這又不是他,因為我需要 UNIX 格式)。

時間類在PythonC++中提供秒和納秒字段。 所以你可以使用它們並將它們組合成一個字符串:

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;

兩種實現的 output 如下:

1612707880.149451971

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM