#!/usr/bin/env python
import argparse
from typing import Any
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. ' )
parser . add_argument ( ' --joystick ' , action = ' store_true ' )
parser . add_argument ( ' --high_quality ' , action = ' store_true ' )
parser . add_argument ( ' --dual_camera ' , action = ' store_true ' )
return parser . parse_args ( add_args )
if __name__ == " __main__ " :
args = parse_args ( )
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 ( queue )
else :
# start input poll for keyboard
from openpilot . tools . sim . lib . keyboard_ctrl import keyboard_poll_thread
keyboard_poll_thread ( queue )
simulator_bridge . shutdown ( )
simulator_process . join ( )