diff --git a/tools/sim/README.md b/tools/sim/README.md index 69a89aefab..b10c957c3e 100644 --- a/tools/sim/README.md +++ b/tools/sim/README.md @@ -1,58 +1,76 @@ openpilot in simulator ===================== -openpilot implements a [bridge](bridge.py) that allows it to run in the [CARLA simulator](https://carla.org/). +openpilot implements a [bridge](run_bridge.py) that allows it to run in the [MetaDrive simulator](https://github.com/metadriverse/metadrive) or [CARLA simulator](https://carla.org/). -## System Requirements +## Launching openpilot +First, start openpilot. +``` bash +# Run locally +./tools/sim/launch_openpilot.sh +``` -openpilot doesn't have any extreme hardware requirements, however CARLA requires an NVIDIA graphics card and is very resource-intensive and may not run smoothly on your system. -For this case, we have the simulator in low quality by default. +## Bridge usage +``` +$ ./run_bridge.py -h +usage: run_bridge.py [-h] [--joystick] [--high_quality] [--dual_camera] [--simulator SIMULATOR] [--town TOWN] [--spawn_point NUM_SELECTED_SPAWN_POINT] [--host HOST] [--port PORT] -You can also check out the [CARLA python documentation](https://carla.readthedocs.io/en/latest/python_api/) to find more parameters to tune that might increase performance on your system. +Bridge between the simulator and openpilot. -## Running the simulator -Start Carla simulator, openpilot and bridge processes located in tools/sim: -``` bash -# Terminal 1 -./start_carla.sh +options: + -h, --help show this help message and exit + --joystick + --high_quality + --dual_camera + --simulator SIMULATOR + --town TOWN + --spawn_point NUM_SELECTED_SPAWN_POINT + --host HOST + --port PORT +``` -# Terminal 2 - Run openpilot and bridge in one Docker: -./start_openpilot_docker.sh +#### Bridge Controls: +- To engage openpilot press 2, then press 1 to increase the speed and 2 to decrease. +- To disengage, press "S" (simulates a user brake) -# Running the latest local code execute - # Terminal 2: - ./launch_openpilot.sh - # Terminal 3 - ./bridge.py -``` +#### All inputs: -### Bridge usage -_Same commands hold for start_openpilot_docker_ ``` -$ ./bridge.py -h -Usage: bridge.py [options] -Bridge between CARLA and openpilot. +| key | functionality | +|------|-----------------------| +| 1 | Cruise Resume / Accel | +| 2 | Cruise Set / Decel | +| 3 | Cruise Cancel | +| r | Reset Simulation | +| i | Toggle Ignition | +| q | Exit all | +| wasd | Control manually | +``` -Options: - -h, --help show this help message and exit - --joystick Use joystick input to control the car - --high_quality Set simulator to higher quality (requires good GPU) - --town TOWN Select map to drive in - --spawn_point NUM Number of the spawn point to start in - --host HOST Host address of Carla client (127.0.0.1 as default) - --port PORT Port of Carla client (2000 as default) +## MetaDrive + +### Launching Metadrive +Start bridge processes located in tools/sim: +``` bash +./run_bridge.py --simulator metadrive ``` -To engage openpilot press 1 a few times while focused on bridge.py to increase the cruise speed. -All inputs: +## Carla -| key | functionality | -|:----:|:-----------------:| -| 1 | Cruise up 1 mph | -| 2 | Cruise down 1 mph | -| 3 | Cruise cancel | -| q | Exit all | -| wasd | Control manually | +openpilot doesn't have any extreme hardware requirements, however CARLA requires an NVIDIA graphics card and is very resource-intensive and may not run smoothly on your system. +For this case, we have the simulator in low quality by default. + +You can also check out the [CARLA python documentation](https://carla.readthedocs.io/en/latest/python_api/) to find more parameters to tune that might increase performance on your system. + +### Launching Carla +Start Carla simulator and bridge processes located in tools/sim: +``` bash +# Terminal 1 +./start_carla.sh + +# Terminal 2 +./run_bridge.py --simulator carla +``` ## Further Reading diff --git a/tools/sim/lib/keyboard_ctrl.py b/tools/sim/lib/keyboard_ctrl.py index 2f27e06969..a9d22c9757 100644 --- a/tools/sim/lib/keyboard_ctrl.py +++ b/tools/sim/lib/keyboard_ctrl.py @@ -19,15 +19,15 @@ STDIN_FD = sys.stdin.fileno() KEYBOARD_HELP = """ - | key | functionality | - ----------------------------- - | 1 | Cruise Resume | - | 2 | Cruise Set | - | 3 | Cruise Cancel | - | r | Reset Simulation | - | i | Toggle Ignition | - | q | Exit all | - | wasd | Control manually | + | key | functionality | + |------|-----------------------| + | 1 | Cruise Resume / Accel | + | 2 | Cruise Set / Decel | + | 3 | Cruise Cancel | + | r | Reset Simulation | + | i | Toggle Ignition | + | q | Exit all | + | wasd | Control manually | """ diff --git a/tools/sim/run_bridge.py b/tools/sim/run_bridge.py index 2f0b99b20d..9914503cd0 100755 --- a/tools/sim/run_bridge.py +++ b/tools/sim/run_bridge.py @@ -11,7 +11,7 @@ from openpilot.tools.sim.bridge.metadrive.metadrive_bridge import MetaDriveBridg def parse_args(add_args=None): - parser = argparse.ArgumentParser(description='Bridge between CARLA and openpilot.') + 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') diff --git a/tools/sim/tmux_script.sh b/tools/sim/tmux_script.sh index 333fce304b..2a1e74958a 100755 --- a/tools/sim/tmux_script.sh +++ b/tools/sim/tmux_script.sh @@ -2,5 +2,5 @@ tmux new -d -s carla-sim tmux send-keys "./launch_openpilot.sh" ENTER tmux neww -tmux send-keys "./bridge.py $*" ENTER +tmux send-keys "./run_bridge.py $*" ENTER tmux a -t carla-sim