zoukankan      html  css  js  c++  java
  • 脚本:截取euroc数据集bag文件的其中一段

    脚本:截取euroc数据集bag文件的其中一段

    功能:截取euroc数据集bag中的一段供算法测试

    python脚本

    #!/usr/bin/env python
    
    # ------------------------------------------------------------------------------
    # Function : restamp ros bagfile (using header timestamps)
    # Project  : IJRR MAV Datasets
    # Author   : www.asl.ethz.ch
    # Version  : V01  21JAN2016 Initial version.
    # Comment  :
    # Status   : under review
    #
    # Usage    : python restamp_bag.py -i inbag.bag -o outbag.bag
    # ------------------------------------------------------------------------------
    
    import roslib
    import rosbag
    import rospy
    import sys
    import getopt
    from   std_msgs.msg import String
    from   std_msgs.msg import Time
    
    
    def main(argv):
    
        inputfile = ''
        outputfile = ''
    
        # parse arguments
        try:
            opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
        except getopt.GetoptError:
            print 'usage: restamp_bag.py -i <inputfile> -o <outputfile>'
            sys.exit(2)
        for opt, arg in opts:
            if opt == '-h':
                print 'usage: python restamp_bag.py -i <inputfile> -o <outputfile>'
                sys.exit()
            elif opt in ("-i", "--ifile"):
                inputfile = arg
            elif opt in ("-o", "--ofile"):
                outputfile = arg
    
        # print console header
        print ""
        print "restamp_bag"
        print ""
        print 'input file:  ', inputfile
        print 'output file: ', outputfile
        print ""
        print "starting restamping (may take a while)"
        print ""
    
        outbag = rosbag.Bag(outputfile, 'w')
        messageCounter = 0
        kPrintDotReductionFactor = 1000
        
    
        try:
            for topic, msg, t in rosbag.Bag(inputfile).read_messages():
                stamp = float(str(msg.header.stamp)) / 1000000000
                print stamp
                if (stamp < 1403636700.827958):
                    outbag.write(topic, msg, msg.header.stamp)
    
                # Write message in output bag with input message header stamp
                #outbag.write(topic, msg, msg.header.stamp)
    
                #if (messageCounter % kPrintDotReductionFactor) == 0:
                        #print '.',
                #        sys.stdout.write('.')
                #        sys.stdout.flush()
                #messageCounter = messageCounter + 1
    
        # print console footer
        finally:
            print ""
            print ""
            print "finished iterating through input bag"
            print "output bag written"
            print ""
            outbag.close()
    
    if __name__ == "__main__":
       main(sys.argv[1:])
  • 相关阅读:
    搜狗拼音输入法候选框有时会跑到屏幕的左上角
    力扣 94. 二叉树的中序遍历
    让我们了解 Ceph 分布式存储
    HDFS的架构和设计要点
    业级PPTP服务器搭建企
    FastCGI中fastcgi_param 详细说明
    LAMP两种模式
    CentOS 7.4搭建LAMP,LAMP:Linux、Apache、MySQL、PHP
    centos7 7.3php编译安装
    Linux下编译安装MariaDB
  • 原文地址:https://www.cnblogs.com/feifanrensheng/p/10712307.html
Copyright © 2011-2022 走看看