"""自定义TTC指标评测脚本 此脚本实现了一个自定义的TTC(Time To Collision)指标评测逻辑 """ from typing import Dict, Any import math from modules.lib.score import Score import logging from modules.lib.metric_registry import BaseMetric # 指定指标类别 METRIC_CATEGORY = "safety" class CustomTTCMetric(BaseMetric): """自定义TTC指标类""" def __init__(self, data: Any): """初始化指标 Args: data: 输入数据,包含场景、轨迹等信息 """ super().__init__(data) def calculate(self) -> Dict[str, Any]: """计算指标 Returns: 计算结果字典,包含指标值、评分和详细信息 """ try: # 计算最小TTC值 min_ttc = self._calculate_min_ttc() # 构建返回结果 result = {"CustomTTC": min_ttc} return result except Exception as e: logging.error(f"评测CustomTTC指标失败: {str(e)}") return { "value": 0.0, "score": 0, "details": {"error": str(e)} } def _calculate_min_ttc(self) -> float: """计算最小TTC值 Returns: 最小TTC值 """ if self.data is None or not hasattr(self.data, 'ego_data'): raise ValueError("输入数据不能为空或格式不正确") # 初始化为一个较大的值 min_ttc = float('inf') # 这里应该实现实际的TTC计算逻辑 # 示例:遍历所有时间点,计算ego车辆与其他车辆的TTC # 临时使用固定值代替实际计算 min_ttc = 1.0 return min_ttc