{"code":200,"result":{"name_en":"demo_script","desc":"自定义评价示例脚本","system_data":true,"invalid":0,"modified_at":"2023-09-26 16:07:30","company_id":1,"script_path":null,"id":1,"desc_en":"A demo script ","name":"demo_script","user_id":1,"created_at":"2023-09-26 16:00:43","script_content":"#!/usr/bin/env python\n\"\"\"\n该 py 文件为用户自定义评价模板,用户基于该模板编写自己的评价指标代码。\n\n需要用户做以下操作:\n1、修改函数名,确保所有的自定义代码函数名不重复。\n2、根据 final_data、success_value、comparison_operator 三个入参来计算指标的得分,函数返回一个 float 数据。\n\"\"\"\n\n\nimport operator\n\n\ndef func_demo(\n final_data: dict = {},\n success_value: int = 0,\n comparison_operator=operator.lt,\n) -> float:\n \"\"\"\n\n Args:\n final_data: 场景运行整个过程 ego_vehicle 的所有数据,格式如下:\n {\n \"x\": [], location 的 x 方向值\n \"y\": [], location 的 y 方向值\n \"z\": [], location 的 z 方向值\n \"ttc\": [], 最小预期碰撞用时,自车与障碍物之间的距离除以相对速度得到TTC (Time to collision),取最小值,如果不存在前车,则为 None\n \"thw\": [], 最小车头时距,两车车距 /本车的车速得到 THW (Time headway),取最小值,如果不存在前车,则为 None。\n \"yaw\": [], 偏航角度,单位弧度\n \"roll\": [], 滚转角度,单位弧度\n \"pitch\": [], 俯仰角度,单位弧度\n \"jerk\": [], 加速度变化率\n \"jerk_x\": [], 加速度变化率 x 方向值\n \"jerk_y\": [], 加速度变化率 y 方向值\n \"jerk_z\": [], 加速度变化率 z 方向值\n \"brake\": [], 刹车 [0.0, 1.0] 之间取值\n \"steer\": [], 方向 [-1.0, 1.0] 之间取值\n \"throttle\": [], 油门 [0.0, 1.0] 之间取值\n \"game_time\": [], 仿真时间,单位 s\n \"velocity\": [], 车辆速度,单位 m/s\n \"velocity_x\": [], 车辆速度 x 方向值\n \"velocity_y\": [], 车辆速度 y 方向值\n \"velocity_z\": [], 车辆速度 z 方向值\n \"acceleration\": [], 车辆加速度,单位 m/s^2\n \"acceleration_x\": [], 车辆加速度 x 方向值\n \"acceleration_y\": [], 车辆加速度 y 方向值\n \"acceleration_z\": [], 车辆加速度 z 方向值\n \"relative_distance\": [], 相对前车距离,如果不存在前车,则为None\n \"relative_velocity\": [], 相对前车速度,如果不存在前车,则为None\n \"front_vehicles_count\": [], 前车数量\n }\n\n success_value: 该指标的期望成功值\n comparison_operator: 比较操作符,可选择的值类型有\n operator.gt: 表示大于 \"greaterThan\"\n operator.lt: 表示小于 \"lessThan\"\n operator.eq: 表示等于 \"equalTo\"\n operator.ge: 表示大于等于 \"greaterOrEqual\"\n operator.le: 表示小于等于 \"lessOrEqual\"\n operator.ne: 表示不等于 \"notEqualTo\"\n\n Returns:\n float: 指标得分,[0, 100] 之间的浮点型数据\n \"\"\"\n\n data = final_data[\"acceleration\"]\n\n if len(data) > 0:\n actual_value = round(max(data), 2)\n else:\n actual_value = 0.0\n\n if comparison_operator(actual_value, success_value):\n score = 100\n else:\n score = 0\n return score\n"},"message":""}