"""自定义TTC指标评测脚本示例 此脚本实现了一个自定义的TTC(Time To Collision)指标评测逻辑,并包含图表数据生成功能 """ from typing import Dict, Any import math from modules.lib.score import Score import logging import inspect from pathlib import Path def evaluate(data) -> Dict[str, Any]: """评测自定义TTC指标 Args: data: 评测数据,包含场景、轨迹等信息 config: 指标配置,包含阈值等参数 Returns: 评测结果,包含分数、详情等和图表数据 """ try: # 计算最小TTC值 min_ttc = calculate_min_ttc(data.ego_data) return min_ttc except Exception as e: logging.error(f"评测CustomTTC指标失败: {str(e)}") # 发生异常时返回错误信息 return { "details": { "error": str(e) } } def calculate_min_ttc(data): """计算最小TTC值 Args: data: 轨迹数据列表 Returns: 最小TTC值 """ # 这里是计算TTC的具体逻辑 # 实际应用中,应根据轨迹数据计算车辆之间的TTC # 以下是一个简化的示例 if data is None: raise ValueError("输入数据不能为空") # 初始化为一个较大的值 min_ttc = float('inf') # 假设trajectories是一个包含多个时间点的列表 # 每个时间点包含ego车辆和其他车辆的位置、速度等信息 # 这里应该实现实际的TTC计算逻辑 # 示例:遍历所有时间点,计算ego车辆与其他车辆的TTC # 临时使用固定值代替实际计算 min_ttc = 1.0 return {"CustomTTC":min_ttc}