48 lines
1.3 KiB
Python
Executable File
48 lines
1.3 KiB
Python
Executable File
#!/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()
|