Files
Adeeb Shihadeh e475d10adc more ruff (#38377)
* lil more ruff

* no exclusions!

* rm nb exception

* and generated

* not used

* c408

* random

* all

* unittest is fine
2026-07-19 08:51:16 -07:00

94 lines
2.6 KiB
Python

import math
from multiprocessing import Queue
from metadrive.component.sensors.base_camera import _cuda_enable
from metadrive.component.map.pg_map import MapGenerateMethod
from openpilot.tools.sim.bridge.common import SimulatorBridge
from openpilot.tools.sim.bridge.metadrive.metadrive_common import RGBCameraRoad, RGBCameraWide
from openpilot.tools.sim.bridge.metadrive.metadrive_world import MetaDriveWorld
from openpilot.tools.sim.lib.camerad import W, H
def straight_block(length):
return {
"id": "S",
"pre_block_socket_index": 0,
"length": length
}
def curve_block(length, angle=45, direction=0):
return {
"id": "C",
"pre_block_socket_index": 0,
"length": length,
"radius": length,
"angle": angle,
"dir": direction
}
def create_map(track_size=60):
curve_len = track_size * 2
return {
"type": MapGenerateMethod.PG_MAP_FILE,
"lane_num": 2,
"lane_width": 4.5,
"config": [
None,
straight_block(track_size),
curve_block(curve_len, 90),
straight_block(track_size),
curve_block(curve_len, 90),
straight_block(track_size),
curve_block(curve_len, 90),
straight_block(track_size),
curve_block(curve_len, 90),
]
}
class MetaDriveBridge(SimulatorBridge):
TICKS_PER_FRAME = 5
def __init__(self, dual_camera, high_quality, test_duration=math.inf, test_run=False):
super().__init__(dual_camera, high_quality)
self.should_render = False
self.test_run = test_run
self.test_duration = test_duration if self.test_run else math.inf
def spawn_world(self, queue: Queue):
sensors = {
"rgb_road": (RGBCameraRoad, W, H, )
}
if self.dual_camera:
sensors["rgb_wide"] = (RGBCameraWide, W, H)
config = {
"use_render": self.should_render,
"vehicle_config": {
"enable_reverse": False,
"render_vehicle": False,
"image_source": "rgb_road",
},
"sensors": sensors,
"image_on_cuda": _cuda_enable,
"image_observation": True,
"interface_panel": [],
"out_of_route_done": False,
"on_continuous_line_done": False,
"crash_vehicle_done": False,
"crash_object_done": False,
"arrive_dest_done": False,
"traffic_density": 0.0, # traffic is incredibly expensive
"map_config": create_map(),
"decision_repeat": 1,
"physics_world_step_size": self.TICKS_PER_FRAME/100,
"preload_models": False,
"show_logo": False,
"anisotropic_filtering": False
}
return MetaDriveWorld(queue, config, self.test_duration, self.test_run, self.dual_camera)