pji_run_test.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. ##################################################################
  4. #
  5. # Copyright (c) 2023 CICV, Inc. All Rights Reserved
  6. #
  7. ##################################################################
  8. """
  9. @Authors: yangzihao(yangzihao@china-icv.cn)
  10. @Data: 2024/04/21
  11. @Last Modified: 2024/04/21
  12. @Summary: Evaluation entrance
  13. """
  14. import os
  15. import sys
  16. import time
  17. from single_case_eval import single_case_eval
  18. from common import get_subfolders_name
  19. # from pjirebot_evaluate_csv import parsebag
  20. import log
  21. if __name__ == "__main__":
  22. from warnings import simplefilter
  23. # simplefilter(action="ignore", category=FutureWarning)
  24. simplefilter(action="ignore")
  25. # input_dict = {
  26. # "data_path": dataPath,
  27. # "resultPath": resultPath,
  28. # "trackPath": trackPath
  29. # }
  30. # if len(sys.argv) >= 3:
  31. # dataPath = sys.argv[1]
  32. # resultPath = sys.argv[2]
  33. # trackPath = sys.argv[3]
  34. # if len(sys.argv) > 4:
  35. # case_name = sys.argv[4]
  36. # else:
  37. # case_name = dataPath.split('/')[-1] # .split('.')[0]
  38. #
  39. # # logFileName = f'{resultPath}/log.log'
  40. # logFileName = os.path.join(resultPath, 'log.log')
  41. # log.setup_logger(logFileName)
  42. # logger = log.get_logger()
  43. #
  44. # if not os.path.exists(dataPath):
  45. # print('Invalid dataPath!')
  46. # logger.error(f"[case:{case_name}] SINGLE_CASE_EVAL: Invalid dataPath!")
  47. # sys.exit(-1)
  48. # else:
  49. # try:
  50. # logger.info(f"[case:{case_name}] SINGLE_CASE_EVAL: Start evaluating:")
  51. # print("SINGLE_CASE_EVAL程序开始运行:")
  52. # configPath = r"./config.json"
  53. # print(
  54. # f" configPath: {configPath},\n dataPath: {dataPath},\n resultPath: {resultPath},\n trackPath: {trackPath}")
  55. # t1 = time.time()
  56. # parsebag(dataPath, resultPath) # EgoState_pji.csv存放resultPath下
  57. # single_case_eval(configPath, resultPath, resultPath, trackPath, case_name)
  58. # t2 = time.time()
  59. # print(f"程序结束,执行时间:{int(t2 - t1)} s")
  60. # logger.info(f"[case:{case_name}] SINGLE_CASE_EVAL: End.")
  61. # sys.exit(0)
  62. # except Exception as e:
  63. # print("异常,退出...")
  64. # print(repr(e))
  65. # sys.exit(-1)
  66. # else:
  67. # print('No enough arguments!')
  68. # sys.exit(-1)
  69. # dataPath = './bag/2024-04-22-08-48-30_obstacledetection_30.bag'
  70. # dataPath = './task/case0613'
  71. # dataPath = './task/case0730'
  72. # dataPath = './task/test_0807-1'
  73. # dataPath = './task/test_0807-2'
  74. # dataPath = './task/test_0807-3'
  75. dataPath = './task/test_0807-3'
  76. # resultPath = './result/integration'
  77. resultPath = dataPath
  78. trackPath = f'{dataPath}/trajectory.png'
  79. logFileName = f'{resultPath}/log.log'
  80. log.setup_logger(logFileName) # 初始化或配置一个日志记录器,以便将日志信息输出到指定的文件(logFileName)
  81. logger = log.get_logger()
  82. case_name = dataPath.split('/')[-1].split('.')[0]
  83. # case_name = os.path.basename(os.path.dirname(dataPath))
  84. if not os.path.exists(dataPath):
  85. print('Invalid dataPath!')
  86. logger.error(f"[case:{case_name}] SINGLE_CASE_EVAL: Invalid dataPath!")
  87. sys.exit(-1)
  88. else:
  89. try:
  90. logger.info(f"[case:{case_name}] SINGLE_CASE_EVAL: Start evaluating:")
  91. print("SINGLE_CASE_EVAL程序开始运行:")
  92. # configPath = r"./config_comfort.json"
  93. # configPath = r"./config_safe.json"
  94. # configPath = r"./config_accurate.json"
  95. configPath = r"./config.json"
  96. print(f" configPath: {configPath},\n resultPath: {resultPath}")
  97. t1 = time.time()
  98. # parsebag(dataPath, resultPath)
  99. single_case_eval(configPath, resultPath, resultPath, trackPath, case_name)
  100. t2 = time.time()
  101. print(f"程序结束,执行时间:{int(t2 - t1)} s")
  102. logger.info(f"[case:{case_name}] SINGLE_CASE_EVAL: End.")
  103. sys.exit(0)
  104. except Exception as e:
  105. print("异常,退出...")
  106. print(repr(e))
  107. sys.exit(-1)