Simulator: prepare to make bridge a PythonProcess (#31201)
* sim services * clean old-commit-hash: e49eb4c54fcac8bd8a4a136d8e116b654efa73ba
This commit is contained in:
@@ -27,14 +27,14 @@ def rk_loop(function, hz, exit_event: threading.Event):
|
||||
class SimulatorBridge(ABC):
|
||||
TICKS_PER_FRAME = 5
|
||||
|
||||
def __init__(self, arguments):
|
||||
def __init__(self, dual_camera, high_quality):
|
||||
set_params_enabled()
|
||||
self.params = Params()
|
||||
|
||||
self.rk = Ratekeeper(100, None)
|
||||
|
||||
self.dual_camera = arguments.dual_camera
|
||||
self.high_quality = arguments.high_quality
|
||||
self.dual_camera = dual_camera
|
||||
self.high_quality = high_quality
|
||||
|
||||
self._exit_event = threading.Event()
|
||||
self._threads = []
|
||||
|
||||
@@ -82,10 +82,10 @@ def create_map(track_size=60):
|
||||
class MetaDriveBridge(SimulatorBridge):
|
||||
TICKS_PER_FRAME = 5
|
||||
|
||||
def __init__(self, args):
|
||||
def __init__(self, dual_camera, high_quality):
|
||||
self.should_render = False
|
||||
|
||||
super(MetaDriveBridge, self).__init__(args)
|
||||
super(MetaDriveBridge, self).__init__(dual_camera, high_quality)
|
||||
|
||||
def spawn_world(self):
|
||||
sensors = {
|
||||
|
||||
@@ -6,6 +6,17 @@ from multiprocessing import Queue
|
||||
|
||||
from openpilot.tools.sim.bridge.metadrive.metadrive_bridge import MetaDriveBridge
|
||||
|
||||
def create_bridge(dual_camera, high_quality):
|
||||
queue: Any = Queue()
|
||||
|
||||
simulator_bridge = MetaDriveBridge(dual_camera, high_quality)
|
||||
simulator_process = simulator_bridge.run(queue)
|
||||
|
||||
return queue, simulator_process, simulator_bridge
|
||||
|
||||
def main():
|
||||
_, simulator_process, _ = create_bridge(True, False)
|
||||
simulator_process.join()
|
||||
|
||||
def parse_args(add_args=None):
|
||||
parser = argparse.ArgumentParser(description='Bridge between the simulator and openpilot.')
|
||||
@@ -16,23 +27,21 @@ def parse_args(add_args=None):
|
||||
return parser.parse_args(add_args)
|
||||
|
||||
if __name__ == "__main__":
|
||||
q: Any = Queue()
|
||||
args = parse_args()
|
||||
|
||||
simulator_bridge = MetaDriveBridge(args)
|
||||
p = simulator_bridge.run(q)
|
||||
queue, simulator_process, simulator_bridge = create_bridge(args.dual_camera, args.high_quality)
|
||||
|
||||
if args.joystick:
|
||||
# start input poll for joystick
|
||||
from openpilot.tools.sim.lib.manual_ctrl import wheel_poll_thread
|
||||
|
||||
wheel_poll_thread(q)
|
||||
wheel_poll_thread(queue)
|
||||
else:
|
||||
# start input poll for keyboard
|
||||
from openpilot.tools.sim.lib.keyboard_ctrl import keyboard_poll_thread
|
||||
|
||||
keyboard_poll_thread(q)
|
||||
keyboard_poll_thread(queue)
|
||||
|
||||
simulator_bridge.shutdown()
|
||||
|
||||
p.join()
|
||||
simulator_process.join()
|
||||
|
||||
Reference in New Issue
Block a user