当您调用ROS rosbag info abag.bag时,您会得到以下内容
path: abag.bag
version: 2.0
duration: 1:35s (95s)
start: Aug 23 2021 03:34:46.34 (1629689686.34)
end: Aug 23 2021 03:36:21.45 (1629689781.45)
size: 1.1 GB
messages: 952
compression: none [952/952 chunks]
types: sensor_msgs/Image [060021388200f6f0f447d0fcd9c64743]
topics: image_results 952 msgs : sensor_msgs/Image是否有方法从bash shell文件中调用此程序,然后仅提取一个字段(例如消息)来比较
在伪代码中,类似于
call rosbag info and get messages
if messages== 952
then print("everything ok")
else print("some messages were skipped"这在bash脚本中是可能的吗?
发布于 2021-08-23 13:40:57
是的你真的可以。rosbag info有一个标志,-k,用于提取特定字段;您还需要使用-y才能工作。因此,在您的示例中,提取消息的数量类似于rosbag info -y -k messages abag.bag。如果您想将所有这些都放在bash脚本中,它可以类似于将预期的消息数作为命令行参数传递到其中的位置:
expectedNum=$1
actualNum=$(rosbag info -y -k messages abag.bag)
if (( expectedNum==actualNum )); then
echo "everything okay"
else
echo "everything not okay"
fihttps://stackoverflow.com/questions/68893446
复制相似问题