数据模型
MetaCar 库使用了丰富的数据模型来表示场景中的各种元素,包括道路、车辆、交通灯等。这些数据模型都是使用 Python 的 dataclass 实现的,提供了类型提示、自动生成的初始化方法以及更好的代码可读性,使得开发者能够更清晰地理解和使用这些数据结构。
数据解析工具
场景和道路相关
子场景信息
- class metacar.SubSceneInfo(sub_scene_name: str, start_point: metacar.geometry.Vector3, end_point: metacar.geometry.Vector3)[源代码]
-
- sub_scene_name: str
子场景名称
地图配置
- class metacar.models.MapConfig(path: str, route: str, map: str, sub_scene_info: list[metacar.models.SubSceneInfo])[源代码]
- map: str
地图文件名
- path: str
地图目录路径
- route: str
路线文件名
- sub_scene_info: list[SubSceneInfo]
子场景信息
道路标记类型
边界信息
车道信息
- class metacar.LaneInfo(id: str, left_border: BorderInfo, right_border: BorderInfo, left_lane: str, right_lane: str, width: float, path_point: list[Vector2])[源代码]
车道信息
- id: str
车道 ID
- left_border: BorderInfo
左侧边界
- left_lane: str
左侧车道 ID
- right_border: BorderInfo
右侧边界
- right_lane: str
右侧车道 ID
- width: float
车道宽度
道路驾驶类型
交通标志类型
道路信息
- class metacar.RoadInfo(id: str, begin_pos: Vector3, end_pos: Vector3, driving_type: DrivingType, traffic_sign: TrafficSign, stop_line: list[Vector2], predecessor: list[str], successor: list[str], lane_data: list[LaneInfo])[源代码]
道路信息,一条道路(Road)由一个或多个车道(Lane)组成
- driving_type: DrivingType
行驶类型
- id: str
道路 ID
- predecessor: list[str]
前驱道路 ID
- successor: list[str]
后继道路 ID
- traffic_sign: TrafficSign
交通标志
场景静态数据
车辆和位置相关
位姿信息
- class metacar.PoseGnss(pos_x: float, pos_y: float, pos_z: float, vel_x: float, vel_y: float, vel_z: float, ori_x: float, ori_y: float, ori_z: float)[源代码]
车辆位姿信息
- ori_x: float
欧拉角 X(单位:角度)
- ori_y: float
欧拉角 Y(单位:角度)
- ori_z: float
欧拉角 Z(单位:角度)
- pos_x: float
位置 X
- pos_y: float
位置 Y
- pos_z: float
位置 Z
- vel_x: float
速度 X
- vel_y: float
速度 Y
- vel_z: float
速度 Z
GNSS数据
档位模式
主车信息
- class metacar.MainVehicleInfo(main_vehicle_id: int, speed: float, gear: GearMode, throttle: float, brake: float, steering: float, length: float, width: float, height: float, signal_light_left_blinker: bool, signal_light_right_blinker: bool, signal_light_double_flash: bool, signal_light_brake_light: bool, signal_light_front_light: bool)[源代码]
主车信息
- brake: float
刹车
- height: float
高度
- length: float
长度
- main_vehicle_id: int
主车 ID
- signal_light_brake_light: bool
刹车灯
- signal_light_double_flash: bool
双闪
- signal_light_front_light: bool
前灯
- signal_light_left_blinker: bool
左转向灯
- signal_light_right_blinker: bool
右转向灯
- speed: float
车速
- steering: float
方向盘
- throttle: float
油门
- width: float
宽度
欧拉角
传感器相关
摄像头信息
传感器信息
- class metacar.SensorInfo(ego_rgb_cams: list[CamaraInfo], v2x_cams: list[CamaraInfo])[源代码]
传感器信息
- ego_rgb_cams: list[CamaraInfo]
主车摄像头
- v2x_cams: list[CamaraInfo]
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
限速标志
- BICYCLE_STATIC = 27
静止自行车
- ROAD_OBSTACLE = 29
道路障碍物
- PARKING_SLOT = 30
停车位
障碍物信息
- class metacar.ObstacleInfo(id: int, type: ObstacleType, pos_x: float, pos_y: float, pos_z: float, vel_x: float, vel_y: float, vel_z: float, ori_x: float, ori_y: float, ori_z: float, length: float, width: float, height: float, redundant_value: str | None)[源代码]
障碍物信息
- height: float
高度
- id: int
障碍物 ID
- length: float
长度
- ori_x: float
欧拉角 X(单位:角度)
- ori_y: float
欧拉角 Y(单位:角度)
- ori_z: float
欧拉角 Z(单位:角度)
- pos_x: float
位置 X
- pos_y: float
位置 Y
- pos_z: float
位置 Z
- redundant_value: str | None
冗余值(包含限速标志的限速值)
- type: ObstacleType
障碍物类型
- vel_x: float
速度 X
- vel_y: float
速度 Y
- vel_z: float
速度 Z
- width: float
宽度
交通灯相关
交通灯状态
交通灯信息
- class metacar.TrafficLightInfo(id: str, road_id: str, position: Vector3, turn_left_state: TrafficLightState, turn_left_remainder: float, turn_right_state: TrafficLightState, turn_right_remainder: float, straight_state: TrafficLightState, straight_remainder: float)[源代码]
一排交通灯的信息
- id: str
交通灯 ID
- road_id: str
道路 ID
- straight_remainder: float
直行剩余时间
- straight_state: TrafficLightState
直行状态
- turn_left_remainder: float
左转剩余时间
- turn_left_state: TrafficLightState
左转状态
- turn_right_remainder: float
右转剩余时间
- turn_right_state: TrafficLightState
右转状态
交通灯组信息
- class metacar.TrafficLightGroupInfo(id: str, traffic_light_state: list[TrafficLightInfo])[源代码]
交通灯组信息
- id: str
交通灯组 ID
- traffic_light_state: list[TrafficLightInfo]
交通灯信息
场景状态与控制
场景状态
仿真动态信息
- class metacar.SimCarMsg(trajectory: list[Vector3], data_gnss: DataGnss, data_main_vehicle: MainVehicleInfo, sensor: SensorInfo, obstacle_entry_list: list[ObstacleInfo], traffic_light_state_lists: list[TrafficLightGroupInfo], scene_status: SceneStatus)[源代码]
仿真动态信息
- data_main_vehicle: MainVehicleInfo
主车信息
- obstacle_entry_list: list[ObstacleInfo]
障碍物信息
- scene_status: SceneStatus
场景状态信息
- sensor: SensorInfo
传感器信息
- traffic_light_state_lists: list[TrafficLightGroupInfo]
交通灯组信息
车辆控制
- class metacar.VehicleControl(throttle: float = 0.0, brake: float = 0.0, steering: float = 0.0, gear: metacar.models.GearMode = <GearMode.DRIVE: 1>, left_blinker: bool = False, right_blinker: bool = False, double_flash: bool = False, front_light: bool = False)[源代码]
- brake: float = 0.0
刹车(0~1)
- double_flash: bool = False
双闪
- front_light: bool = False
前灯
- left_blinker: bool = False
左转向灯
- right_blinker: bool = False
右转向灯
- steering: float = 0.0
方向盘(-1~1)
- throttle: float = 0.0
油门(0~1)