数据模型

MetaCar 库使用了丰富的数据模型来表示场景中的各种元素,包括道路、车辆、交通灯等。这些数据模型都是使用 pydantic 的 BaseModel 实现的,提供了类型提示、自动生成的初始化方法以及更好的代码可读性,使得开发者能够更清晰地理解和使用这些数据结构。

单位说明

除特别说明外,文档中涉及的物理量默认使用以下单位:

  • 长度(Length):米 (m)

  • 时间(Time):秒 (s)

  • 速度(Speed):米每秒 (m/s)

场景和道路相关

子场景信息

pydantic model metacar.SubSceneInfo[源代码]

子场景信息

field end_point: Vector3 | None [Required]

终点(VLA 场景为 None)

field name: str [Required]

子场景名称

field start_point: Vector3 | None [Required]

起点(VLA 场景为 None)

道路线类型

class metacar.LineType(*values)[源代码]

基类:Enum

道路线类型

MIDDLE_LINE = 1

中线

SIDE_LINE = 2

侧线

SOLID_LINE = 3

实线

STOP_LINE = 4

停止线

ZEBRA_CROSSING = 5

斑马线

DASH_LINE = 6

虚线

边界信息

pydantic model metacar.BorderInfo[源代码]

车道边界信息

field path_points: list[Vector2] [Required]

组成边界线的点,相邻点间隔约 3~5 米

field type: LineType [Required]

边界类型

车道信息

pydantic model metacar.LaneInfo[源代码]

车道信息

field id: str [Required]

车道 ID

field left_border: BorderInfo [Required]

左侧边界

field left_lane_id: str [Required]

左侧车道 ID

field path_points: list[Vector2] [Required]

车道中心线

field right_border: BorderInfo [Required]

右侧边界

field right_lane_id: str [Required]

右侧车道 ID

field width: float [Required]

车道宽度

道路驾驶类型

class metacar.DrivingType(*values)[源代码]

基类:Enum

行驶类型

MOTOR_VEHICLE_ALLOWED = 1

机动车可行驶

NON_MOTOR_VEHICLE_ALLOWED = 2

非机动车可行驶

PEDESTRIAN_ALLOWED = 3

行人可行

交通标志类型

class metacar.TrafficSignType(*values)[源代码]

基类:Enum

交通标志

NO_SIGN = 0

无标志

SPEED_LIMIT_SIGN = 1

限速标志

STOP_SIGN = 2

停止标志

V2X_SIGN = 3

V2X 标志

道路信息

pydantic model metacar.RoadInfo[源代码]

道路信息,一条道路(Road)由一个或多个车道(Lane)组成

field begin_pos: Vector3 [Required]

起点

field driving_type: DrivingType [Required]

行驶类型

field end_pos: Vector3 [Required]

终点

field id: str [Required]

道路 ID

field lanes: list[LaneInfo] [Required]

车道信息

field predecessor_ids: list[str] [Required]

前驱道路 ID

field stop_line: list[Vector2] [Required]

停止线位置

field successor_ids: list[str] [Required]

后继道路 ID

field traffic_sign_type: TrafficSignType [Required]

交通标志

场景静态数据

pydantic model metacar.SceneStaticData[源代码]

场景静态信息

field roads: list[RoadInfo] [Required]

道路信息(VLA 场景为空列表)

field route: list[Vector3] [Required]

路线(VLA 场景为空列表)

field sub_scenes: list[SubSceneInfo] [Required]

子场景信息

field vla_extension: VLAExtension | None [Required]

VLA 扩展信息,该字段不为 None 时表示是 VLA 场景

车辆和位置相关

位姿信息

pydantic model metacar.PoseGnss[源代码]

车辆位姿信息

field ori_x: float [Required]

欧拉角 X(单位:角度)

field ori_y: float [Required]

欧拉角 Y(单位:角度)

field ori_z: float [Required]

欧拉角 Z(单位:角度)

field pos_x: float [Required]

位置 X

field pos_y: float [Required]

位置 Y

field pos_z: float [Required]

位置 Z

field vel_x: float [Required]

速度 X

field vel_y: float [Required]

速度 Y

field vel_z: float [Required]

速度 Z

档位模式

class metacar.GearMode(*values)[源代码]

基类:Enum

档位模式

NEUTRAL = 0

空档

DRIVE = 1

前进档

REVERSE = 2

倒车档

PARKING = 3

停车档

主车信息

pydantic model metacar.MainVehicleInfo[源代码]

主车信息

field brake: float [Required]

刹车

field brake_lights_on: bool [Required]

刹车灯

field gear: GearMode [Required]

档位

field hazard_lights_on: bool [Required]

双闪

field headlights_on: bool [Required]

前灯

field height: float [Required]

高度

field id: int [Required]

主车 ID

field left_blinker_on: bool [Required]

左转向灯

field length: float [Required]

长度

field right_blinker_on: bool [Required]

右转向灯

field speed: float [Required]

车速

field steering: float [Required]

方向盘

field throttle: float [Required]

油门

field width: float [Required]

宽度

传感器相关

欧拉角

pydantic model metacar.models.EulerAngle[源代码]

欧拉角

field ori_x: float [Required]

欧拉角 X(单位:角度)

field ori_y: float [Required]

欧拉角 Y(单位:角度)

field ori_z: float [Required]

欧拉角 Z(单位:角度)

摄像头信息

pydantic model metacar.CameraInfo[源代码]

摄像头信息

field fov: float [Required]

视场角

field id: str [Required]

摄像头 ID

field image_height: int [Required]

图像高度

field image_width: int [Required]

图像宽度

field intrinsic_matrix: list[float] [Required]

内参矩阵

field orientation: EulerAngle [Required]

角度

field position: Vector3 [Required]

位置

传感器信息

pydantic model metacar.SensorInfo[源代码]

传感器信息

field ego_rgb_cams: list[CameraInfo] [Required]

主车摄像头

field v2x_cams: list[CameraInfo] [Required]

V2X 摄像头

障碍物相关

障碍物类型

class metacar.ObstacleType(*values)[源代码]

基类:Enum

障碍物类型

UNKNOWN = 0

未知障碍物

PEDESTRIAN = 4

行人

CAR = 6

小汽车

STATIC = 7

静态障碍物

BICYCLE = 8

自行车

ROAD_MARK = 12

道路标记

TRAFFIC_SIGN = 13

交通标志

TRAFFIC_LIGHT = 15

交通信号灯

RIDER = 17

骑手

TRUCK = 18

卡车

BUS = 19

公交车

SPECIAL_VEHICLE = 20

特种车辆

MOTORCYCLE = 21

摩托车

DYNAMIC = 22

动态障碍物

SPEED_LIMIT_SIGN = 26

限速标志(限速值以 "SpeedLimit|30"(单位:km/h) 的格式在 ObstacleInfo.extra_info 中给出)

BICYCLE_STATIC = 27

静止自行车

ROAD_OBSTACLE = 29

道路障碍物

PARKING_SLOT = 30

停车位

障碍物信息

pydantic model metacar.ObstacleInfo[源代码]

障碍物信息

field extra_info: str | None [Required]

额外信息

field height: float [Required]

高度

field id: int [Required]

障碍物 ID

field length: float [Required]

长度

field ori_x: float [Required]

欧拉角 X(单位:角度)

field ori_y: float [Required]

欧拉角 Y(单位:角度)

field ori_z: float [Required]

欧拉角 Z(单位:角度)

field pos_x: float [Required]

位置 X

field pos_y: float [Required]

位置 Y

field pos_z: float [Required]

位置 Z

field type: ObstacleType [Required]

障碍物类型

field vel_x: float [Required]

速度 X

field vel_y: float [Required]

速度 Y

field vel_z: float [Required]

速度 Z

field width: float [Required]

宽度

交通灯相关

交通灯状态

class metacar.TrafficLightState(*values)[源代码]

基类:Enum

交通灯状态

RED = 1

红灯

GREEN = 2

绿灯

YELLOW = 3

黄灯

交通灯信息

pydantic model metacar.TrafficLightInfo[源代码]

一排交通灯的信息

field id: str [Required]

交通灯 ID

field left_remaining_time: float [Required]

左转剩余时间

field left_state: TrafficLightState [Required]

左转状态

field position: Vector3 [Required]

位置

field right_remaining_time: float [Required]

右转剩余时间

field right_state: TrafficLightState [Required]

右转状态

field road_id: str [Required]

道路 ID

field straight_remaining_time: float [Required]

直行剩余时间

field straight_state: TrafficLightState [Required]

直行状态

交通灯组信息

pydantic model metacar.TrafficLightGroupInfo[源代码]

交通灯组信息,一组交通灯共同表示一个路口的信号灯信息。

field id: str [Required]

交通灯组 ID

field traffic_lights: list[TrafficLightInfo] [Required]

交通灯信息

场景状态与控制

场景状态

pydantic model metacar.SceneStatus[源代码]

场景状态信息

field end_point: Vector3 | None [Required]

终点(VLA 场景为 None)

field sub_scene_name: str [Required]

子场景名称

field time_limit: float [Required]

时间限制

field used_time: float [Required]

已用时间

仿真动态信息

pydantic model metacar.SimCarMsg[源代码]

仿真动态信息

field main_vehicle: MainVehicleInfo [Required]

主车信息

field obstacles: list[ObstacleInfo] [Required]

障碍物信息

field pose_gnss: PoseGnss [Required]

GNSS 数据

field scene_status: SceneStatus [Required]

场景状态信息

field sensor: SensorInfo [Required]

传感器信息

field traffic_light_groups: list[TrafficLightGroupInfo] [Required]

交通灯组信息

field trajectory: list[Vector3] [Required]

推荐轨迹

车辆控制信息

pydantic model metacar.VehicleControl[源代码]

车辆控制信息

field brake: float = 0.0

刹车(0~1)

field gear: GearMode = GearMode.DRIVE

档位

field hazard_lights_on: bool = False

双闪

field headlights_on: bool = False

前灯

field left_blinker_on: bool = False

左转向灯

field right_blinker_on: bool = False

右转向灯

field steering: float = 0.0

方向盘(-1~1)

field throttle: float = 0.0

油门(0~1)

摄像头图像数据

class metacar.CameraFrame(id: str, frame: ndarray)[源代码]

摄像头图像数据

frame: ndarray

图像数据

id: str

对应 CameraInfo.id

VLA 场景相关

VLA场景是一类特殊场景,详细说明和使用方法请参见 VLA 场景指南

VLA 建筑物信息

pydantic model metacar.BuildingInfo[源代码]

建筑物信息

field height: float [Required]

高度

field id: str [Required]

建筑物 ID

field length: float [Required]

长度

field name: str [Required]

建筑物名称

field ori_x: float [Required]

欧拉角 X(单位:角度)

field ori_y: float [Required]

欧拉角 Y(单位:角度)

field ori_z: float [Required]

欧拉角 Z(单位:角度)

field pos_x: float [Required]

位置 X

field pos_y: float [Required]

位置 Y

field pos_z: float [Required]

位置 Z

field width: float [Required]

宽度

VLA 区域类型

class metacar.RegionType(*values)[源代码]

基类:Enum

区域类型

NORMAL_PARKING = 0

正常停车区

RESTRICTED_PARKING = 1

禁停区

FUNCTION_ZONE = 2

功能区

VLA 区域信息

pydantic model metacar.RegionInfo[源代码]

区域信息

field id: str [Required]

区域 ID

field length: float [Required]

长度

field ori_x: float [Required]

欧拉角 X(单位:角度)

field ori_y: float [Required]

欧拉角 Y(单位:角度)

field ori_z: float [Required]

欧拉角 Z(单位:角度)

field pos_x: float [Required]

位置 X

field pos_y: float [Required]

位置 Y

field pos_z: float [Required]

位置 Z

field type: RegionType [Required]

区域类型

field width: float [Required]

宽度

VLA 场景扩展信息

pydantic model metacar.VLAExtension[源代码]

VLA 扩展信息

field buildings: list[BuildingInfo] [Required]

建筑物信息

field regions: list[RegionInfo] [Required]

区域信息

VLA 场景文本输出

pydantic model metacar.VLATextOutput[源代码]

VLA 场景的文本输出

field action_phrase: str [Required]

动作相关片段

field location_phrase: str [Required]

位置相关片段

field ocr_text: str [Required]

OCR 文本

field time_phrase: str [Required]

时间相关片段

VLA 功能区违规信息

pydantic model metacar.FunctionZoneViolation[源代码]

功能区违规信息

field rule_code: str [Required]

规则代码

field sticker_ids: list[str] [Required]

违规贴纸 ID 列表

VLA 功能区检测结果

pydantic model metacar.FunctionZoneResult[源代码]

功能区检测结果

field violations: list[FunctionZoneViolation] [Required]

违规列表

VLA 停车区检测结果

pydantic model metacar.ParkingResult[源代码]

停车区检测结果

field violating_sticker_ids: list[str] [Required]

违规贴纸 ID 列表

VLA 场景扩展输出

pydantic model metacar.VLAExtensionOutput[源代码]

VLA 场景的扩展输出

field function_zone_result: FunctionZoneResult | None = None

功能区检测结果

field parking_result: ParkingResult | None = None

停车区检测结果

field text_info: VLATextOutput | None = None

文本相关输出