From 9fc80130920cccb3068a1fab66ec2bdae16fc28f Mon Sep 17 00:00:00 2001 From: Henry <ehdykhne@uwaterloo.ca> Date: Tue, 19 Dec 2023 20:10:28 -0500 Subject: [PATCH] fixed divide by zero error. added check to make sure connector is not red for most of the scenario --- experiments/bulk_running_experiments.ipynb | 1587 +++++++++++++---- .../common/can_scenario_be_made_dangerous.py | 45 +- 2 files changed, 1296 insertions(+), 336 deletions(-) diff --git a/experiments/bulk_running_experiments.ipynb b/experiments/bulk_running_experiments.ipynb index cbf6750..8ebec39 100644 --- a/experiments/bulk_running_experiments.ipynb +++ b/experiments/bulk_running_experiments.ipynb @@ -127,7 +127,7 @@ "output_type": "stream", "text": [ "default_simulation\n", - "output_folder = \"../../data/nuplan/exp/exp/simulation/open_loop_boxes/2023.12.19.11.50.18\"\n" + "output_folder = \"../../data/nuplan/exp/exp/simulation/open_loop_boxes/2023.12.19.20.05.40\"\n" ] } ], @@ -170,20 +170,19 @@ "\n", "# scenario_types = ['stationary_at_traffic_light_without_lead']\n", "\n", - "scenario_builder = \"train_boston\" # [nuplan (uses trainval), nuplan_mini, test, val, train_boston, train_pittsburgh, train_singapore]\n", + "scenario_builder = \"val\" # [nuplan (uses trainval), nuplan_mini, test, val, train_boston, train_pittsburgh, train_singapore]\n", "DATASET_PARAMS = [\n", " f\"scenario_builder={scenario_builder}\",\n", " \"scenario_filter=all_scenarios\", # [all_scenarios, val14_split]\n", " f\"scenario_filter.scenario_types={scenario_types}\", # there are 70 scenario types in the trainingset and 58 in the validation set including \"unknown\" which make up the majority\n", - " # 'scenario_filter.scenario_types=[starting_unprotected_cross_turn, near_multiple_vehicles]', # [near_multiple_vehicles, on_pickup_dropoff, starting_unprotected_cross_turn, high_magnitude_jerk]', # select scenario types\n", - " # 'scenario_filter.ego_displacement_minimum_m=10', # use scenarios where the ego vehicle moves at least 10m\n", + " \"scenario_filter.ego_displacement_minimum_m=10\", # use scenarios where the ego vehicle moves at least 10m\n", " # 'scenario_filter.remove_invalid_goals=true', # remove scenarios where the goal is not invalid\n", " # 'scenario_filter.ego_start_speed_threshold=5', # Exclusive threshold that the ego's speed must rise above (meters per second) for scenario to be kept\n", " # 'scenario_filter.stop_speed_threshold=10', # Inclusive threshold that the ego's speed must fall below (meters per second) for scenario to be kept:\n", - " # 'scenario_filter.map_names=us-ma-boston', # [sg-one-north, us-ma-boston, us-pa-pittsburgh-hazelwood, us-nv-las-vegas-strip]\n", - " \"scenario_filter.num_scenarios_per_type=200\", # use 10 scenarios per scenario type\n", + " \"scenario_filter.map_names=[us-ma-boston]\", # [sg-one-north, us-ma-boston, us-pa-pittsburgh-hazelwood, us-nv-las-vegas-strip]\n", + " # \"scenario_filter.num_scenarios_per_type=200\", # use 10 scenarios per scenario type\n", " # 'scenario_filter.log_names=['2021.06.14.16.48.02_veh-12_04057_04438']', # specific scenrios to simulate\n", - " \"scenario_filter.limit_total_scenarios=0.1\", # use n total scenarios if int, or if float smaller than 1, use n as a fraction of total scenarios (changes sampling frequency, unchanged leaves the frequency at 20Hz)\n", + " \"scenario_filter.limit_total_scenarios=0.05\", # use n total scenarios if int, or if float smaller than 1, use n as a fraction of total scenarios (changes sampling frequency, unchanged leaves the frequency at 20Hz)\n", "]\n", "ckpt_dir = \"/home/ehdykhne/nuplan-devkit/experiments/pretrained_checkpoints/pdm_offset_checkpoint.ckpt\"\n", "#'/home/ehdykhne/nuplan-devkit/experiments/pretrained_checkpoints/urbandriver_checkpoint.ckpt'\n", @@ -281,739 +280,1687 @@ "name": "stdout", "output_type": "stream", "text": [ - "2023-12-19 11:50:18,595 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/worker_pool_builder.py:19} Building WorkerPool...\n", - "2023-12-19 11:50:18,644 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/utils/multithreading/worker_ray.py:78} Starting ray local!\n" + "2023-12-19 20:05:40,564 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/worker_pool_builder.py:19} Building WorkerPool...\n", + "2023-12-19 20:05:40,615 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/utils/multithreading/worker_ray.py:78} Starting ray local!\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "2023-12-19 11:50:20,337\tINFO worker.py:1636 -- Started a local Ray instance.\n" + "2023-12-19 20:05:42,229\tINFO worker.py:1636 -- Started a local Ray instance.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "2023-12-19 11:50:20,950 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/utils/multithreading/worker_pool.py:101} Worker: RayDistributed\n", - "2023-12-19 11:50:20,950 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/utils/multithreading/worker_pool.py:102} Number of nodes: 1\n", + "2023-12-19 20:05:42,875 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/utils/multithreading/worker_pool.py:101} Worker: RayDistributed\n", + "2023-12-19 20:05:42,875 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/utils/multithreading/worker_pool.py:102} Number of nodes: 1\n", "Number of CPUs per node: 32\n", "Number of GPUs per node: 4\n", "Number of threads across all nodes: 32\n", - "2023-12-19 11:50:20,951 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/worker_pool_builder.py:27} Building WorkerPool...DONE!\n", - "2023-12-19 11:50:20,951 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:32} Building experiment folders...\n", - "2023-12-19 11:50:20,951 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:35} \n", + "2023-12-19 20:05:42,875 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/worker_pool_builder.py:27} Building WorkerPool...DONE!\n", + "2023-12-19 20:05:42,875 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:32} Building experiment folders...\n", + "2023-12-19 20:05:42,875 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:35} \n", "\n", - "\tFolder where all results are stored: ../../data/nuplan/exp/exp/simulation/open_loop_boxes/2023.12.19.11.50.18\n", + "\tFolder where all results are stored: ../../data/nuplan/exp/exp/simulation/open_loop_boxes/2023.12.19.20.05.40\n", "\n", - "2023-12-19 11:50:20,952 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:70} Building experiment folders...DONE!\n", - "2023-12-19 11:50:20,952 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_callback_builder.py:52} Building AbstractCallback...\n", - "2023-12-19 11:50:20,953 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_callback_builder.py:68} Building AbstractCallback: 0...DONE!\n", - "2023-12-19 11:50:20,953 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:49} Building simulations...\n", - "2023-12-19 11:50:20,953 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:55} Extracting scenarios...\n", - "2023-12-19 11:50:20,953 INFO {/home/ehdykhne/nuplan-devkit/nuplan/common/utils/distributed_scenario_filter.py:83} Building Scenarios in mode DistributedMode.SINGLE_NODE\n", - "2023-12-19 11:50:20,953 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:18} Building AbstractScenarioBuilder...\n", - "2023-12-19 11:50:20,983 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:21} Building AbstractScenarioBuilder...DONE!\n", - "2023-12-19 11:50:20,983 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/scenario_filter_builder.py:35} Building ScenarioFilter...\n", - "2023-12-19 11:50:20,985 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/scenario_filter_builder.py:44} Building ScenarioFilter...DONE!\n" + "2023-12-19 20:05:42,886 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/folder_builder.py:70} Building experiment folders...DONE!\n", + "2023-12-19 20:05:42,886 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_callback_builder.py:52} Building AbstractCallback...\n", + "2023-12-19 20:05:42,886 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_callback_builder.py:68} Building AbstractCallback: 0...DONE!\n", + "2023-12-19 20:05:42,886 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:49} Building simulations...\n", + "2023-12-19 20:05:42,886 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:55} Extracting scenarios...\n", + "2023-12-19 20:05:42,886 INFO {/home/ehdykhne/nuplan-devkit/nuplan/common/utils/distributed_scenario_filter.py:83} Building Scenarios in mode DistributedMode.SINGLE_NODE\n", + "2023-12-19 20:05:42,887 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:18} Building AbstractScenarioBuilder...\n", + "2023-12-19 20:05:42,904 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:21} Building AbstractScenarioBuilder...DONE!\n", + "2023-12-19 20:05:42,904 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/scenario_filter_builder.py:35} Building ScenarioFilter...\n", + "2023-12-19 20:05:42,906 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/scenario_filter_builder.py:44} Building ScenarioFilter...DONE!\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 100%|██████████| 32/32 [00:13<00:00, 2.37it/s]\n" + "Ray objects: 100%|██████████| 32/32 [00:03<00:00, 10.56it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "2023-12-19 11:50:34,835 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:76} Building metric engines...\n", - "2023-12-19 11:50:35,041 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:78} Building metric engines...DONE\n", - "2023-12-19 11:50:35,041 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:82} Building simulations from 353 scenarios...\n", - "2023-12-19 11:50:36,769 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:142} Building simulations...DONE!\n", - "2023-12-19 11:50:36,769 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/run_simulation.py:114} Running simulation...\n", - "2023-12-19 11:50:36,770 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/utils.py:138} Executing runners...\n", - "2023-12-19 11:50:36,770 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/simulation/runner/executor.py:82} Starting 353 simulations using RayDistributed!\n" + "2023-12-19 20:05:46,057 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:76} Building metric engines...\n", + "2023-12-19 20:05:46,210 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:78} Building metric engines...DONE\n", + "2023-12-19 20:05:46,211 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:82} Building simulations from 7411 scenarios...\n", + "2023-12-19 20:06:13,674 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/simulation_builder.py:142} Building simulations...DONE!\n", + "2023-12-19 20:06:13,674 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/run_simulation.py:114} Running simulation...\n", + "2023-12-19 20:06:13,674 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/utils.py:138} Executing runners...\n", + "2023-12-19 20:06:13,674 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/simulation/runner/executor.py:82} Starting 7411 simulations using RayDistributed!\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 0%| | 0/353 [00:00<?, ?it/s]" + "Ray objects: 0%| | 0/7411 [00:04<?, ?it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4876)\u001b[0m 149 9 0.10004115104675293\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m 150 9 0.1000361442565918\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m/home/ehdykhne/nuplan-devkit/experiments/bulk_running_experiments.ipynb Cell 7\u001b[0m line \u001b[0;36m4\n\u001b[1;32m <a href='vscode-notebook-cell://ssh-remote%2Bwisedave.eng.uwaterloo.ca/home/ehdykhne/nuplan-devkit/experiments/bulk_running_experiments.ipynb#W6sdnNjb2RlLXJlbW90ZQ%3D%3D?line=0'>1</a>\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mnuplan\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mplanning\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mscript\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mrun_simulation\u001b[39;00m \u001b[39mimport\u001b[39;00m main \u001b[39mas\u001b[39;00m main_simulation\n\u001b[1;32m <a href='vscode-notebook-cell://ssh-remote%2Bwisedave.eng.uwaterloo.ca/home/ehdykhne/nuplan-devkit/experiments/bulk_running_experiments.ipynb#W6sdnNjb2RlLXJlbW90ZQ%3D%3D?line=2'>3</a>\u001b[0m \u001b[39m# Run the simulation loop (real-time visualization not yet supported, see next section for visualization)\u001b[39;00m\n\u001b[0;32m----> <a href='vscode-notebook-cell://ssh-remote%2Bwisedave.eng.uwaterloo.ca/home/ehdykhne/nuplan-devkit/experiments/bulk_running_experiments.ipynb#W6sdnNjb2RlLXJlbW90ZQ%3D%3D?line=3'>4</a>\u001b[0m main_simulation(cfg)\n", + "File \u001b[0;32m~/miniconda3/envs/nuplan/lib/python3.9/site-packages/hydra/main.py:44\u001b[0m, in \u001b[0;36mmain.<locals>.main_decorator.<locals>.decorated_main\u001b[0;34m(cfg_passthrough)\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[39m@functools\u001b[39m\u001b[39m.\u001b[39mwraps(task_function)\n\u001b[1;32m 42\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mdecorated_main\u001b[39m(cfg_passthrough: Optional[DictConfig] \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m Any:\n\u001b[1;32m 43\u001b[0m \u001b[39mif\u001b[39;00m cfg_passthrough \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m---> 44\u001b[0m \u001b[39mreturn\u001b[39;00m task_function(cfg_passthrough)\n\u001b[1;32m 45\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 46\u001b[0m args \u001b[39m=\u001b[39m get_args_parser()\n", + "File \u001b[0;32m~/nuplan-devkit/nuplan/planning/script/run_simulation.py:146\u001b[0m, in \u001b[0;36mmain\u001b[0;34m(cfg)\u001b[0m\n\u001b[1;32m 143\u001b[0m \u001b[39massert\u001b[39;00m cfg\u001b[39m.\u001b[39msimulation_log_main_path \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m, \u001b[39m'\u001b[39m\u001b[39mSimulation_log_main_path must not be set when running simulation.\u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m 145\u001b[0m \u001b[39m# Execute simulation with preconfigured planner(s).\u001b[39;00m\n\u001b[0;32m--> 146\u001b[0m run_simulation(cfg\u001b[39m=\u001b[39;49mcfg)\n\u001b[1;32m 148\u001b[0m \u001b[39mif\u001b[39;00m is_s3_path(Path(cfg\u001b[39m.\u001b[39moutput_dir)):\n\u001b[1;32m 149\u001b[0m clean_up_s3_artifacts()\n", + "File \u001b[0;32m~/nuplan-devkit/nuplan/planning/script/run_simulation.py:115\u001b[0m, in \u001b[0;36mrun_simulation\u001b[0;34m(cfg, planners)\u001b[0m\n\u001b[1;32m 112\u001b[0m common_builder\u001b[39m.\u001b[39mprofiler\u001b[39m.\u001b[39msave_profiler(profiler_name)\n\u001b[1;32m 114\u001b[0m logger\u001b[39m.\u001b[39minfo(\u001b[39m'\u001b[39m\u001b[39mRunning simulation...\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m--> 115\u001b[0m run_runners(runners\u001b[39m=\u001b[39;49mrunners, common_builder\u001b[39m=\u001b[39;49mcommon_builder, cfg\u001b[39m=\u001b[39;49mcfg, profiler_name\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39mrunning_simulation\u001b[39;49m\u001b[39m'\u001b[39;49m)\n\u001b[1;32m 116\u001b[0m logger\u001b[39m.\u001b[39minfo(\u001b[39m'\u001b[39m\u001b[39mFinished running simulation!\u001b[39m\u001b[39m'\u001b[39m)\n", + "File \u001b[0;32m~/nuplan-devkit/nuplan/planning/script/utils.py:139\u001b[0m, in \u001b[0;36mrun_runners\u001b[0;34m(runners, common_builder, profiler_name, cfg)\u001b[0m\n\u001b[1;32m 136\u001b[0m common_builder\u001b[39m.\u001b[39mprofiler\u001b[39m.\u001b[39mstart_profiler(profiler_name)\n\u001b[1;32m 138\u001b[0m logger\u001b[39m.\u001b[39minfo(\u001b[39m'\u001b[39m\u001b[39mExecuting runners...\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m--> 139\u001b[0m reports \u001b[39m=\u001b[39m execute_runners(\n\u001b[1;32m 140\u001b[0m runners\u001b[39m=\u001b[39;49mrunners,\n\u001b[1;32m 141\u001b[0m worker\u001b[39m=\u001b[39;49mcommon_builder\u001b[39m.\u001b[39;49mworker,\n\u001b[1;32m 142\u001b[0m num_gpus\u001b[39m=\u001b[39;49mcfg\u001b[39m.\u001b[39;49mnumber_of_gpus_allocated_per_simulation,\n\u001b[1;32m 143\u001b[0m num_cpus\u001b[39m=\u001b[39;49mcfg\u001b[39m.\u001b[39;49mnumber_of_cpus_allocated_per_simulation,\n\u001b[1;32m 144\u001b[0m exit_on_failure\u001b[39m=\u001b[39;49mcfg\u001b[39m.\u001b[39;49mexit_on_failure,\n\u001b[1;32m 145\u001b[0m verbose\u001b[39m=\u001b[39;49mcfg\u001b[39m.\u001b[39;49mverbose,\n\u001b[1;32m 146\u001b[0m )\n\u001b[1;32m 147\u001b[0m logger\u001b[39m.\u001b[39minfo(\u001b[39m'\u001b[39m\u001b[39mFinished executing runners!\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 149\u001b[0m \u001b[39m# Save RunnerReports as parquet file\u001b[39;00m\n", + "File \u001b[0;32m~/nuplan-devkit/nuplan/planning/simulation/runner/executor.py:83\u001b[0m, in \u001b[0;36mexecute_runners\u001b[0;34m(runners, worker, num_gpus, num_cpus, exit_on_failure, verbose)\u001b[0m\n\u001b[1;32m 81\u001b[0m number_of_sims \u001b[39m=\u001b[39m \u001b[39mlen\u001b[39m(runners)\n\u001b[1;32m 82\u001b[0m logger\u001b[39m.\u001b[39minfo(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mStarting \u001b[39m\u001b[39m{\u001b[39;00mnumber_of_sims\u001b[39m}\u001b[39;00m\u001b[39m simulations using \u001b[39m\u001b[39m{\u001b[39;00mworker\u001b[39m.\u001b[39m\u001b[39m__class__\u001b[39m\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\u001b[39m}\u001b[39;00m\u001b[39m!\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[0;32m---> 83\u001b[0m reports: List[RunnerReport] \u001b[39m=\u001b[39m worker\u001b[39m.\u001b[39;49mmap(\n\u001b[1;32m 84\u001b[0m Task(fn\u001b[39m=\u001b[39;49mrun_simulation, num_gpus\u001b[39m=\u001b[39;49mnum_gpus, num_cpus\u001b[39m=\u001b[39;49mnum_cpus), runners, exit_on_failure, verbose\u001b[39m=\u001b[39;49mverbose\n\u001b[1;32m 85\u001b[0m )\n\u001b[1;32m 86\u001b[0m \u001b[39m# Store the results in a dictionary so we can easily store error tracebacks in the next step, if needed\u001b[39;00m\n\u001b[1;32m 87\u001b[0m results: Dict[Tuple[\u001b[39mstr\u001b[39m, \u001b[39mstr\u001b[39m, \u001b[39mstr\u001b[39m], RunnerReport] \u001b[39m=\u001b[39m {\n\u001b[1;32m 88\u001b[0m (report\u001b[39m.\u001b[39mscenario_name, report\u001b[39m.\u001b[39mplanner_name, report\u001b[39m.\u001b[39mlog_name): report \u001b[39mfor\u001b[39;00m report \u001b[39min\u001b[39;00m reports\n\u001b[1;32m 89\u001b[0m }\n", + "File \u001b[0;32m~/nuplan-devkit/nuplan/planning/utils/multithreading/worker_pool.py:117\u001b[0m, in \u001b[0;36mWorkerPool.map\u001b[0;34m(self, task, verbose, *item_lists)\u001b[0m\n\u001b[1;32m 115\u001b[0m \u001b[39mif\u001b[39;00m verbose:\n\u001b[1;32m 116\u001b[0m logger\u001b[39m.\u001b[39minfo(\u001b[39mf\u001b[39m\u001b[39m'\u001b[39m\u001b[39mSubmitting \u001b[39m\u001b[39m{\u001b[39;00mmax_size\u001b[39m}\u001b[39;00m\u001b[39m tasks!\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m--> 117\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_map(task, \u001b[39m*\u001b[39;49maligned_item_lists, verbose\u001b[39m=\u001b[39;49mverbose)\n", + "File \u001b[0;32m~/nuplan-devkit/nuplan/planning/utils/multithreading/worker_ray.py:155\u001b[0m, in \u001b[0;36mRayDistributed._map\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 153\u001b[0m \u001b[39m\u001b[39m\u001b[39m\"\"\"Inherited, see superclass.\"\"\"\u001b[39;00m\n\u001b[1;32m 154\u001b[0m \u001b[39mdel\u001b[39;00m verbose\n\u001b[0;32m--> 155\u001b[0m \u001b[39mreturn\u001b[39;00m ray_map(task, \u001b[39m*\u001b[39;49mitem_lists, log_dir\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_log_dir)\n", + "File \u001b[0;32m~/nuplan-devkit/nuplan/planning/utils/multithreading/ray_execution.py:117\u001b[0m, in \u001b[0;36mray_map\u001b[0;34m(task, log_dir, *item_lists)\u001b[0m\n\u001b[1;32m 109\u001b[0m \u001b[39m\u001b[39m\u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 110\u001b[0m \u001b[39mInitialize ray, align item lists and map each item of a list of arguments to a callable and executes in parallel.\u001b[39;00m\n\u001b[1;32m 111\u001b[0m \u001b[39m:param task: callable to be run\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 114\u001b[0m \u001b[39m:return: list of outputs\u001b[39;00m\n\u001b[1;32m 115\u001b[0m \u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m--> 117\u001b[0m results \u001b[39m=\u001b[39m _ray_map_items(task, \u001b[39m*\u001b[39;49mitem_lists, log_dir\u001b[39m=\u001b[39;49mlog_dir)\n\u001b[1;32m 118\u001b[0m \u001b[39mreturn\u001b[39;00m results\n\u001b[1;32m 119\u001b[0m \u001b[39mexcept\u001b[39;00m (RayTaskError, \u001b[39mException\u001b[39;00m) \u001b[39mas\u001b[39;00m exc:\n", + "File \u001b[0;32m~/nuplan-devkit/nuplan/planning/utils/multithreading/ray_execution.py:100\u001b[0m, in \u001b[0;36m_ray_map_items\u001b[0;34m(task, log_dir, *item_lists)\u001b[0m\n\u001b[1;32m 97\u001b[0m object_result_map \u001b[39m=\u001b[39m \u001b[39mdict\u001b[39m\u001b[39m.\u001b[39mfromkeys(object_ids, \u001b[39mNone\u001b[39;00m)\n\u001b[1;32m 99\u001b[0m \u001b[39m# Asynchronously iterate through the object and track progress\u001b[39;00m\n\u001b[0;32m--> 100\u001b[0m \u001b[39mfor\u001b[39;00m object_id, output \u001b[39min\u001b[39;00m tqdm(_ray_object_iterator(object_ids), total\u001b[39m=\u001b[39m\u001b[39mlen\u001b[39m(object_ids), desc\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mRay objects\u001b[39m\u001b[39m'\u001b[39m):\n\u001b[1;32m 101\u001b[0m object_result_map[object_id] \u001b[39m=\u001b[39m output\n\u001b[1;32m 103\u001b[0m results \u001b[39m=\u001b[39m \u001b[39mlist\u001b[39m(object_result_map\u001b[39m.\u001b[39mvalues())\n", + "File \u001b[0;32m~/miniconda3/envs/nuplan/lib/python3.9/site-packages/tqdm/std.py:1182\u001b[0m, in \u001b[0;36mtqdm.__iter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1179\u001b[0m time \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_time\n\u001b[1;32m 1181\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m-> 1182\u001b[0m \u001b[39mfor\u001b[39;00m obj \u001b[39min\u001b[39;00m iterable:\n\u001b[1;32m 1183\u001b[0m \u001b[39myield\u001b[39;00m obj\n\u001b[1;32m 1184\u001b[0m \u001b[39m# Update and possibly print the progressbar.\u001b[39;00m\n\u001b[1;32m 1185\u001b[0m \u001b[39m# Note: does not call self.update(1) for speed optimisation.\u001b[39;00m\n", + "File \u001b[0;32m~/nuplan-devkit/nuplan/planning/utils/multithreading/ray_execution.py:25\u001b[0m, in \u001b[0;36m_ray_object_iterator\u001b[0;34m(initial_ids)\u001b[0m\n\u001b[1;32m 22\u001b[0m next_ids \u001b[39m=\u001b[39m initial_ids\n\u001b[1;32m 24\u001b[0m \u001b[39mwhile\u001b[39;00m next_ids:\n\u001b[0;32m---> 25\u001b[0m ready_ids, not_ready_ids \u001b[39m=\u001b[39m ray\u001b[39m.\u001b[39;49mwait(next_ids)\n\u001b[1;32m 26\u001b[0m next_id \u001b[39m=\u001b[39m ready_ids[\u001b[39m0\u001b[39m]\n\u001b[1;32m 28\u001b[0m \u001b[39myield\u001b[39;00m next_id, ray\u001b[39m.\u001b[39mget(next_id)\n", + "File \u001b[0;32m~/miniconda3/envs/nuplan/lib/python3.9/site-packages/ray/_private/auto_init_hook.py:18\u001b[0m, in \u001b[0;36mwrap_auto_init.<locals>.auto_init_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[39m@wraps\u001b[39m(fn)\n\u001b[1;32m 16\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mauto_init_wrapper\u001b[39m(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[1;32m 17\u001b[0m auto_init_ray()\n\u001b[0;32m---> 18\u001b[0m \u001b[39mreturn\u001b[39;00m fn(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n", + "File \u001b[0;32m~/miniconda3/envs/nuplan/lib/python3.9/site-packages/ray/_private/client_mode_hook.py:103\u001b[0m, in \u001b[0;36mclient_mode_hook.<locals>.wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[39mif\u001b[39;00m func\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m \u001b[39m!=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39minit\u001b[39m\u001b[39m\"\u001b[39m \u001b[39mor\u001b[39;00m is_client_mode_enabled_by_default:\n\u001b[1;32m 102\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mgetattr\u001b[39m(ray, func\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m)(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m--> 103\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n", + "File \u001b[0;32m~/miniconda3/envs/nuplan/lib/python3.9/site-packages/ray/_private/worker.py:2737\u001b[0m, in \u001b[0;36mwait\u001b[0;34m(object_refs, num_returns, timeout, fetch_local)\u001b[0m\n\u001b[1;32m 2735\u001b[0m timeout \u001b[39m=\u001b[39m timeout \u001b[39mif\u001b[39;00m timeout \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39melse\u001b[39;00m \u001b[39m10\u001b[39m\u001b[39m*\u001b[39m\u001b[39m*\u001b[39m\u001b[39m6\u001b[39m\n\u001b[1;32m 2736\u001b[0m timeout_milliseconds \u001b[39m=\u001b[39m \u001b[39mint\u001b[39m(timeout \u001b[39m*\u001b[39m \u001b[39m1000\u001b[39m)\n\u001b[0;32m-> 2737\u001b[0m ready_ids, remaining_ids \u001b[39m=\u001b[39m worker\u001b[39m.\u001b[39;49mcore_worker\u001b[39m.\u001b[39;49mwait(\n\u001b[1;32m 2738\u001b[0m object_refs,\n\u001b[1;32m 2739\u001b[0m num_returns,\n\u001b[1;32m 2740\u001b[0m timeout_milliseconds,\n\u001b[1;32m 2741\u001b[0m worker\u001b[39m.\u001b[39;49mcurrent_task_id,\n\u001b[1;32m 2742\u001b[0m fetch_local,\n\u001b[1;32m 2743\u001b[0m )\n\u001b[1;32m 2744\u001b[0m \u001b[39mreturn\u001b[39;00m ready_ids, remaining_ids\n", + "File \u001b[0;32mpython/ray/_raylet.pyx:2760\u001b[0m, in \u001b[0;36mray._raylet.CoreWorker.wait\u001b[0;34m()\u001b[0m\n", + "File \u001b[0;32mpython/ray/_raylet.pyx:444\u001b[0m, in \u001b[0;36mray._raylet.check_status\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m hi there\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m hi there\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m hi there\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m hi there\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m hi there\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m hi there\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m hi there\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m hi there\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m hi there\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m hi there\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m hi there\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m hi there\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87500)\u001b[0m hi there\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 3%|â–Ž | 12/353 [00:11<02:05, 2.71it/s]" + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87512)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87495)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4869)\u001b[0m 150 10 0.09998798370361328\u001b[32m [repeated 20x across cluster] (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to disable log deduplication, or see https://docs.ray.io/en/master/ray-observability/ray-logging.html#log-deduplication for more options.)\u001b[0m\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87489)\u001b[0m 149 10 0.09999680519104004\u001b[32m [repeated 24x across cluster] (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to disable log deduplication, or see https://docs.ray.io/en/master/ray-observability/ray-logging.html#log-deduplication for more options.)\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87488)\u001b[0m hi there\u001b[32m [repeated 755x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87496)\u001b[0m 149 10 0.0999748706817627\u001b[32m [repeated 9x across cluster]\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 8%|â–Š | 29/353 [00:15<01:49, 2.95it/s]" + "\u001b[2m\u001b[36m(wrapped_fn pid=87507)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\u001b[32m [repeated 274x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87507)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\u001b[32m [repeated 278x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87507)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\u001b[32m [repeated 3x across cluster]\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4870)\u001b[0m 149 9 0.10005402565002441\u001b[32m [repeated 10x across cluster]\u001b[0m\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87507)\u001b[0m hi there\u001b[32m [repeated 298x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87486)\u001b[0m 150 10 0.09993910789489746\u001b[32m [repeated 17x across cluster]\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 13%|█▎ | 45/353 [00:21<01:32, 3.32it/s]" + "\u001b[2m\u001b[36m(wrapped_fn pid=87498)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\u001b[32m [repeated 247x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87498)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\u001b[32m [repeated 273x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87498)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\u001b[32m [repeated 26x across cluster]\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4884)\u001b[0m 149 10 0.09996485710144043\u001b[32m [repeated 16x across cluster]\u001b[0m\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87490)\u001b[0m hi there\u001b[32m [repeated 649x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87483)\u001b[0m 150 10 0.09996986389160156\u001b[32m [repeated 15x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87485)\u001b[0m hi there\u001b[32m [repeated 259x across cluster]\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 16%|█▋ | 58/353 [00:26<01:45, 2.78it/s]" + "\u001b[2m\u001b[36m(wrapped_fn pid=87492)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\u001b[32m [repeated 59x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87492)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\u001b[32m [repeated 59x across cluster]\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4868)\u001b[0m 149 9 0.10001897811889648\u001b[32m [repeated 14x across cluster]\u001b[0m\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87509)\u001b[0m 149 10 0.09997081756591797\u001b[32m [repeated 17x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87511)\u001b[0m hi there\u001b[32m [repeated 344x across cluster]\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 21%|██ | 74/353 [00:32<01:22, 3.37it/s]" + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87485)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\u001b[32m [repeated 62x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87485)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\u001b[32m [repeated 71x across cluster]\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4862)\u001b[0m 149 10 0.09997081756591797\u001b[32m [repeated 17x across cluster]\u001b[0m\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87488)\u001b[0m 149 10 0.0999600887298584\u001b[32m [repeated 16x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87489)\u001b[0m hi there\u001b[32m [repeated 269x across cluster]\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 25%|██▌ | 89/353 [00:37<01:34, 2.78it/s]" + "\u001b[2m\u001b[36m(wrapped_fn pid=87484)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\u001b[32m [repeated 104x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87484)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\u001b[32m [repeated 104x across cluster]\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4869)\u001b[0m 149 10 0.09998106956481934\u001b[32m [repeated 13x across cluster]\u001b[0m\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87481)\u001b[0m 149 10 0.09997701644897461\u001b[32m [repeated 13x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87491)\u001b[0m hi there\u001b[32m [repeated 369x across cluster]\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 30%|██▉ | 105/353 [00:42<01:32, 2.67it/s]" + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87502)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87499)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\u001b[32m [repeated 72x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87499)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\u001b[32m [repeated 80x across cluster]\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4884)\u001b[0m 149 9 0.10009002685546875\u001b[32m [repeated 15x across cluster]\u001b[0m\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87508)\u001b[0m 149 9 0.10004401206970215\u001b[32m [repeated 18x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87506)\u001b[0m hi there\u001b[32m [repeated 540x across cluster]\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 35%|███■| 123/353 [00:47<01:11, 3.23it/s]" + "\u001b[2m\u001b[36m(wrapped_fn pid=87506)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\u001b[32m [repeated 8x across cluster]\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4875)\u001b[0m 150 9 0.10008382797241211\u001b[32m [repeated 18x across cluster]\u001b[0m\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87484)\u001b[0m 149 10 0.09999203681945801\u001b[32m [repeated 12x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87487)\u001b[0m hi there\u001b[32m [repeated 376x across cluster]\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 39%|███▊ | 136/353 [00:52<01:11, 3.05it/s]" + "\u001b[2m\u001b[36m(wrapped_fn pid=87485)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\u001b[32m [repeated 100x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87485)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\u001b[32m [repeated 112x across cluster]\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4882)\u001b[0m 149 10 0.09996199607849121\u001b[32m [repeated 14x across cluster]\u001b[0m\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87506)\u001b[0m 149 9 0.10001397132873535\u001b[32m [repeated 14x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87508)\u001b[0m hi there\u001b[32m [repeated 259x across cluster]\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 43%|████▎ | 151/353 [00:58<01:27, 2.31it/s]" + "\u001b[2m\u001b[36m(wrapped_fn pid=87485)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\u001b[32m [repeated 6x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87494)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\u001b[32m [repeated 71x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87494)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\u001b[32m [repeated 73x across cluster]\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4888)\u001b[0m 149 10 0.09992003440856934\u001b[32m [repeated 15x across cluster]\u001b[0m\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87497)\u001b[0m 149 9 0.10000300407409668\u001b[32m [repeated 20x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87486)\u001b[0m hi there\u001b[32m [repeated 658x across cluster]\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 48%|████▊ | 168/353 [01:03<00:28, 6.39it/s]" + "\u001b[2m\u001b[36m(wrapped_fn pid=87484)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\u001b[32m [repeated 6x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87496)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\u001b[32m [repeated 170x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87496)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\u001b[32m [repeated 178x across cluster]\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4872)\u001b[0m 149 10 0.09995388984680176\u001b[32m [repeated 17x across cluster]\u001b[0m\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87503)\u001b[0m 149 9 0.10002303123474121\u001b[32m [repeated 10x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87492)\u001b[0m hi there\u001b[32m [repeated 203x across cluster]\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 52%|█████■| 183/353 [01:08<00:43, 3.92it/s]" + "\u001b[2m\u001b[36m(wrapped_fn pid=87492)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\u001b[32m [repeated 8x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87508)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\u001b[32m [repeated 71x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87508)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\u001b[32m [repeated 97x across cluster]\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4864)\u001b[0m 149 9 0.10002899169921875\u001b[32m [repeated 14x across cluster]\u001b[0m\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87490)\u001b[0m 149 9 0.10002493858337402\u001b[32m [repeated 19x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87487)\u001b[0m hi there\u001b[32m [repeated 576x across cluster]\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 54%|█████■| 192/353 [01:14<01:34, 1.70it/s]" + "\u001b[2m\u001b[36m(wrapped_fn pid=87508)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: invalid value encountered in double_scalars\u001b[32m [repeated 20x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87481)\u001b[0m /home/ehdykhne/nuplan-devkit/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py:105: RuntimeWarning: divide by zero encountered in double_scalars\u001b[32m [repeated 171x across cluster]\u001b[0m\n", + "\u001b[2m\u001b[36m(wrapped_fn pid=87481)\u001b[0m if distance_to_connector / agent.velocity.magnitude() > 5:\u001b[32m [repeated 174x across cluster]\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4876)\u001b[0m 149 9 0.10004901885986328\u001b[32m [repeated 10x across cluster]\u001b[0m\n" + "\u001b[2m\u001b[36m(wrapped_fn pid=87509)\u001b[0m 149 10 0.09998583793640137\u001b[32m [repeated 15x across cluster]\u001b[0m\n" + ] + } + ], + "source": [ + "from nuplan.planning.script.run_simulation import main as main_simulation\n", + "\n", + "# Run the simulation loop (real-time visualization not yet supported, see next section for visualization)\n", + "main_simulation(cfg)" + ] + }, + { + "cell_type": "markdown", + "id": "4ace6fd1", + "metadata": {}, + "source": [ + "## Prepare the nuBoard config" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "output_folder_alt = []\n", + "output_folder_alt.append(\n", + " \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.09.21.59.48\"\n", + ")\n", + "output_folder_alt.append(\n", + " \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.09.23.21.13\"\n", + ")\n", + "output_folder_alt.append(\n", + " \"../../data/nuplan/exp/exp/simulation/closed_loop_nonreactive_agents/2023.12.10.07.32.41\"\n", + ")\n", + "output_folder_alt.append(\n", + " \"../../data/nuplan/exp/exp/simulation/closed_loop_nonreactive_agents/2023.12.10.08.29.23\"\n", + ")\n", + "output_folder_alt.append(\n", + " \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.11.00.41.30\"\n", + ")\n", + "output_folder_alt.append(\n", + " \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.10.09.31.44\"\n", + ")\n", + "output_folder_alt.append(\n", + " \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.13.12.21.28\"\n", + ")\n", + "output_folder_alt.append(\n", + " \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.13.13.07.48\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1bdb7bef", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# output_folder = '../../data/nuplan/exp/exp/simulation/open_loop_boxes/2023.12.09.21.19.06'\n", + "# output_folder = \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.09.21.59.48\"\n", + "# Location of path with all nuBoard configs\n", + "CONFIG_PATH = \"../nuplan/planning/script/config/nuboard\"\n", + "CONFIG_NAME = \"default_nuboard\"\n", + "\n", + "# Initialize configuration management system\n", + "hydra.core.global_hydra.GlobalHydra.instance().clear() # reinitialize hydra if already initialized\n", + "hydra.initialize(config_path=CONFIG_PATH)\n", + "\n", + "# Compose the configuration\n", + "cfg = hydra.compose(\n", + " config_name=CONFIG_NAME,\n", + " overrides=[\n", + " f\"scenario_builder={scenario_builder}\", # set the database (same as simulation) used to fetch data for visualization\n", + " f\"simulation_path={output_folder}\", # [output_folder, output_folder_alt] nuboard file path(s), if left empty the user can open the file inside nuBoard\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "91fe931f", + "metadata": {}, + "source": [ + "## Launch nuBoard (open in new tab - recommended)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e1f01dcc", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2023-12-19 17:39:32,564 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:18} Building AbstractScenarioBuilder...\n", + "2023-12-19 17:39:32,582 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:21} Building AbstractScenarioBuilder...DONE!\n", + "2023-12-19 17:39:32,583 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/nuboard.py:84} Opening Bokeh application on http://localhost:5006/\n", + "2023-12-19 17:39:32,583 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/nuboard.py:85} Async rendering is set to: True\n", + "2023-12-19 17:39:32,583 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/bokeh/server/server.py:403} Starting Bokeh server version 2.4.3 (running on Tornado 6.3.3)\n", + "2023-12-19 17:39:32,584 WARNING {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/bokeh/server/util.py:145} Host wildcard '*' will allow connections originating from multiple (or possibly all) hostnames or IPs. Use non-wildcard values to restrict access explicitly\n", + "2023-12-19 17:39:32,584 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/bokeh/server/tornado.py:360} User authentication hooks NOT provided (default user enabled)\n", + "2023-12-19 17:39:33,353 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:172} Minimum frame time=0.017 s\n", + "2023-12-19 17:39:33,434 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 0.0025 seconds.\n", + "2023-12-19 17:39:33,533 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET / (127.0.0.1) 269.38ms\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 59%|█████▉ | 210/353 [01:18<00:57, 2.49it/s]" + "INFO:tornado.access:200 GET / (127.0.0.1) 269.38ms\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4865)\u001b[0m 150 10 0.09994196891784668\u001b[32m [repeated 18x across cluster]\u001b[0m\n" + "2023-12-19 17:39:34,217 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:172} Minimum frame time=0.017 s\n", + "2023-12-19 17:39:34,297 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 0.0025 seconds.\n", + "2023-12-19 17:39:34,391 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET / (127.0.0.1) 258.64ms\n", + "2023-12-19 17:39:34,401 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 101 GET /ws (127.0.0.1) 0.42ms\n", + "2023-12-19 17:39:34,401 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/bokeh/server/views/ws.py:132} WebSocket connection opened\n", + "2023-12-19 17:39:34,401 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/bokeh/server/views/ws.py:213} ServerConnection created\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 65%|██████■| 228/353 [01:24<00:19, 6.46it/s]" + "INFO:tornado.access:200 GET / (127.0.0.1) 258.64ms\n", + "INFO:tornado.access:101 GET /ws (127.0.0.1) 0.42ms\n", + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 23.77it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4877)\u001b[0m 150 10 0.09999394416809082\u001b[32m [repeated 17x across cluster]\u001b[0m\n" + "2023-12-19 17:40:18,369 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.4032 seconds.\n", + "2023-12-19 17:48:27,771 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 0\n", + "2023-12-19 17:48:28,204 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 0\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 69%|██████▊ | 242/353 [01:29<00:39, 2.83it/s]" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 60.31it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4857)\u001b[0m 149 9 0.10003399848937988\u001b[32m [repeated 14x across cluster]\u001b[0m\n" + "2023-12-19 17:49:23,768 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.1506 seconds.\n", + "2023-12-19 17:49:34,732 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 0\n", + "2023-12-19 17:49:34,778 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 0\n", + "2023-12-19 17:49:40,748 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 23\n", + "2023-12-19 17:49:40,785 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 23\n", + "2023-12-19 17:49:40,884 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 17:49:41,786 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 26\n", + "2023-12-19 17:49:42,346 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 46\n", + "2023-12-19 17:49:42,787 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 46\n", + "2023-12-19 17:49:42,840 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 61\n", + "2023-12-19 17:49:43,026 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 67\n", + "2023-12-19 17:49:43,334 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 74\n", + "2023-12-19 17:49:43,788 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 74\n", + "2023-12-19 17:49:43,987 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 76\n", + "2023-12-19 17:49:44,149 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 69\n", + "2023-12-19 17:49:44,308 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 59\n", + "2023-12-19 17:49:44,343 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 56\n", + "2023-12-19 17:49:44,377 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 52\n", + "2023-12-19 17:49:44,421 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 47\n", + "2023-12-19 17:49:44,462 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 42\n", + "2023-12-19 17:49:44,629 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 17:49:44,790 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 26\n", + "2023-12-19 17:49:44,858 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 14\n", + "2023-12-19 17:49:45,790 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 14\n", + "2023-12-19 17:49:55,749 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 14\n", + "2023-12-19 17:49:55,796 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 14\n", + "2023-12-19 17:49:56,193 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 7\n", + "2023-12-19 17:49:56,523 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 8\n", + "2023-12-19 17:49:56,797 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 8\n", + "2023-12-19 17:49:57,098 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 22\n", + "2023-12-19 17:49:57,188 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 24\n", + "2023-12-19 17:49:57,260 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 27\n", + "2023-12-19 17:49:57,798 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 27\n", + "2023-12-19 17:49:59,140 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 47\n", + "2023-12-19 17:49:59,428 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 52\n", + "2023-12-19 17:49:59,429 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 53\n", + "2023-12-19 17:49:59,758 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 64\n", + "2023-12-19 17:49:59,799 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 64\n", + "2023-12-19 17:50:00,372 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 69\n", + "2023-12-19 17:50:00,421 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 67\n", + "2023-12-19 17:50:00,557 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 59\n", + "2023-12-19 17:50:00,664 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 57\n", + "2023-12-19 17:50:00,799 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 57\n", + "2023-12-19 17:50:00,972 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 53\n", + "2023-12-19 17:50:00,973 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 52\n", + "2023-12-19 17:50:01,244 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 44\n", + "2023-12-19 17:50:01,412 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 40\n", + "2023-12-19 17:50:01,539 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 38\n", + "2023-12-19 17:50:01,540 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 37\n", + "2023-12-19 17:50:01,799 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 37\n", + "2023-12-19 17:50:01,898 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 30\n", + "2023-12-19 17:50:02,006 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 27\n", + "2023-12-19 17:50:02,380 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 18\n", + "2023-12-19 17:50:02,441 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 15\n", + "2023-12-19 17:50:02,800 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 15\n", + "2023-12-19 17:50:03,100 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 17\n", + "2023-12-19 17:50:03,801 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 17\n", + "2023-12-19 17:50:04,497 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 18\n", + "2023-12-19 17:50:04,802 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 18\n", + "2023-12-19 17:50:04,959 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 6\n", + "2023-12-19 17:50:05,803 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 6\n", + "2023-12-19 17:50:07,390 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 4\n", + "2023-12-19 17:50:07,805 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 4\n", + "2023-12-19 17:50:08,640 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 7\n", + "2023-12-19 17:50:08,805 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 7\n", + "2023-12-19 17:50:20,481 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 42\n", + "2023-12-19 17:50:20,817 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 42\n", + "2023-12-19 17:50:20,954 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 51\n", + "2023-12-19 17:50:21,049 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 53\n", + "2023-12-19 17:50:21,697 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 57\n", + "2023-12-19 17:50:21,739 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 55\n", + "2023-12-19 17:50:21,740 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 54\n", + "2023-12-19 17:50:21,741 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 53\n", + "2023-12-19 17:50:21,817 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 53\n", + "2023-12-19 17:50:21,886 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 49\n", + "2023-12-19 17:50:21,887 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 48\n", + "2023-12-19 17:50:22,009 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 43\n", + "2023-12-19 17:50:22,266 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 40\n", + "2023-12-19 17:50:22,561 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 32\n", + "2023-12-19 17:50:22,818 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 32\n", + "2023-12-19 17:50:22,917 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 36\n", + "2023-12-19 17:50:22,921 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 37\n", + "2023-12-19 17:50:23,432 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 52\n", + "2023-12-19 17:50:23,819 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 52\n", + "2023-12-19 17:50:23,882 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 53\n", + "2023-12-19 17:50:23,906 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 50\n", + "2023-12-19 17:50:24,640 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 34\n", + "2023-12-19 17:50:24,821 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 34\n", + "2023-12-19 17:50:25,039 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 27\n", + "2023-12-19 17:50:25,197 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 24\n", + "2023-12-19 17:50:25,822 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 24\n", + "2023-12-19 17:50:33,424 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 24\n", + "2023-12-19 17:50:33,473 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 28\n", + "2023-12-19 17:50:33,830 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 28\n", + "2023-12-19 17:50:40,141 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 32\n", + "2023-12-19 17:50:40,836 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 32\n", + "2023-12-19 17:50:41,324 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 25\n", + "2023-12-19 17:50:41,837 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 25\n", + "2023-12-19 17:50:42,486 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 29\n", + "2023-12-19 17:50:42,838 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 29\n", + "2023-12-19 17:50:43,179 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 17:50:43,839 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 26\n", + "2023-12-19 17:50:44,947 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 29\n", + "2023-12-19 17:50:45,840 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 29\n", + "2023-12-19 17:50:46,718 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 32\n", + "2023-12-19 17:50:46,842 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 32\n", + "2023-12-19 17:50:47,477 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 35\n", + "2023-12-19 17:50:47,566 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 33\n", + "2023-12-19 17:50:47,842 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 33\n", + "2023-12-19 17:50:48,476 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 23\n", + "2023-12-19 17:50:48,477 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 24\n", + "2023-12-19 17:50:48,842 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 24\n", + "2023-12-19 17:50:49,777 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 28\n", + "2023-12-19 17:50:49,843 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 28\n", + "2023-12-19 17:50:49,868 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 17:50:50,119 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 18\n", + "2023-12-19 17:50:50,452 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 18\n", + "2023-12-19 17:50:50,705 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 30\n", + "2023-12-19 17:50:50,801 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 33\n", + "2023-12-19 17:50:50,843 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 33\n", + "2023-12-19 17:50:51,777 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 37\n", + "2023-12-19 17:50:51,843 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 37\n", + "2023-12-19 17:50:51,920 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 34\n", + "2023-12-19 17:50:52,278 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 30\n", + "2023-12-19 17:50:52,499 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 17:50:52,844 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 26\n", + "2023-12-19 17:50:53,161 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 17:50:53,462 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 33\n", + "2023-12-19 17:50:53,844 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 33\n", + "2023-12-19 17:50:54,975 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 45\n", + "2023-12-19 17:50:55,059 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 42\n", + "2023-12-19 17:50:55,324 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 37\n", + "2023-12-19 17:50:55,455 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 35\n", + "2023-12-19 17:50:55,629 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 31\n", + "2023-12-19 17:50:55,805 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 27\n", + "2023-12-19 17:50:55,845 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 27\n", + "2023-12-19 17:51:02,512 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 38\n", + "2023-12-19 17:51:02,853 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 38\n", + "2023-12-19 17:51:04,404 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 51\n", + "2023-12-19 17:51:04,406 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 50\n", + "2023-12-19 17:51:04,430 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 48\n", + "2023-12-19 17:51:04,474 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 46\n", + "2023-12-19 17:51:04,854 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 46\n", + "2023-12-19 17:51:06,133 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 17:51:06,137 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 25\n", + "2023-12-19 17:51:06,856 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 25\n", + "2023-12-19 17:51:07,256 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 20\n", + "2023-12-19 17:51:07,320 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 23\n", + "2023-12-19 17:51:07,856 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 23\n", + "2023-12-19 17:51:07,929 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 37\n", + "2023-12-19 17:51:08,463 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 46\n", + "2023-12-19 17:51:08,691 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 51\n", + "2023-12-19 17:51:08,857 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 51\n", + "2023-12-19 17:51:09,845 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 43\n", + "2023-12-19 17:51:09,858 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 43\n", + "2023-12-19 17:51:10,610 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 34\n", + "2023-12-19 17:51:10,859 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 34\n", + "2023-12-19 17:51:11,114 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 27\n", + "2023-12-19 17:51:11,689 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 23\n", + "2023-12-19 17:51:11,860 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 23\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 73%|███████▎ | 257/353 [01:34<00:23, 4.08it/s]" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 62.03it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4888)\u001b[0m 149 10 0.09994196891784668\u001b[32m [repeated 16x across cluster]\u001b[0m\n" + "2023-12-19 17:51:39,705 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.3115 seconds.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 76%|███████▌ | 268/353 [01:39<00:27, 3.11it/s]" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 90.53it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4871)\u001b[0m 149 10 0.09993791580200195\u001b[32m [repeated 13x across cluster]\u001b[0m\n" + "2023-12-19 17:52:07,141 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.5427 seconds.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 80%|████████ | 283/353 [01:44<00:26, 2.66it/s]" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 62.01it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4869)\u001b[0m 149 9 0.10002994537353516\u001b[32m [repeated 14x across cluster]\u001b[0m\n" + "2023-12-19 17:53:25,582 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.0993 seconds.\n", + "2023-12-19 17:54:12,021 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 1\n", + "2023-12-19 17:54:12,616 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 1\n", + "2023-12-19 17:54:18,827 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 3\n", + "2023-12-19 17:54:18,833 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 4\n", + "2023-12-19 17:54:18,871 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 6\n", + "2023-12-19 17:54:18,912 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 9\n", + "2023-12-19 17:54:19,613 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 9\n", + "2023-12-19 17:54:19,616 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 8\n", + "2023-12-19 17:54:19,619 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 8\n", + "2023-12-19 17:54:19,707 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 7\n", + "2023-12-19 17:54:20,621 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 7\n", + "2023-12-19 17:54:22,466 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 18\n", + "2023-12-19 17:54:22,625 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 15\n", + "2023-12-19 17:54:22,625 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 15\n", + "2023-12-19 17:54:23,318 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 10\n", + "2023-12-19 17:54:23,449 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 13\n", + "2023-12-19 17:54:23,549 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 15\n", + "2023-12-19 17:54:23,622 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 15\n", + "2023-12-19 17:54:24,084 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 14\n", + "2023-12-19 17:54:24,189 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 12\n", + "2023-12-19 17:54:24,424 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 6\n", + "2023-12-19 17:54:24,622 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 6\n", + "2023-12-19 17:54:26,984 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 7\n", + "2023-12-19 17:54:27,128 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 10\n", + "2023-12-19 17:54:27,625 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 10\n", + "2023-12-19 17:54:27,635 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 24\n", + "2023-12-19 17:54:27,901 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 33\n", + "2023-12-19 17:54:28,601 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 53\n", + "2023-12-19 17:54:28,626 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 53\n", + "2023-12-19 17:54:29,333 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 75\n", + "2023-12-19 17:54:29,434 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 80\n", + "2023-12-19 17:54:29,469 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 82\n", + "2023-12-19 17:54:29,568 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 88\n", + "2023-12-19 17:54:29,627 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 88\n", + "2023-12-19 17:54:29,701 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 93\n", + "2023-12-19 17:54:30,142 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 115\n", + "2023-12-19 17:54:30,627 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 115\n", + "2023-12-19 17:54:30,719 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 139\n", + "2023-12-19 17:54:30,817 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 144\n", + "2023-12-19 17:54:31,135 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 149\n", + "2023-12-19 17:54:31,628 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 149\n", + "2023-12-19 17:54:32,850 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 147\n", + "2023-12-19 17:54:32,852 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 146\n", + "2023-12-19 17:54:33,198 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 138\n", + "2023-12-19 17:54:33,349 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 132\n", + "2023-12-19 17:54:33,542 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 128\n", + "2023-12-19 17:54:33,548 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 127\n", + "2023-12-19 17:54:33,604 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 124\n", + "2023-12-19 17:54:33,631 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 124\n", + "2023-12-19 17:54:33,687 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 120\n", + "2023-12-19 17:54:33,721 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 118\n", + "2023-12-19 17:54:33,755 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 116\n", + "2023-12-19 17:54:33,802 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 114\n", + "2023-12-19 17:54:33,867 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 110\n", + "2023-12-19 17:54:33,969 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 105\n", + "2023-12-19 17:54:34,103 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 98\n", + "2023-12-19 17:54:34,202 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 95\n", + "2023-12-19 17:54:34,260 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 92\n", + "2023-12-19 17:54:34,385 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 86\n", + "2023-12-19 17:54:34,452 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 82\n", + "2023-12-19 17:54:34,520 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 79\n", + "2023-12-19 17:54:34,585 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 76\n", + "2023-12-19 17:54:34,620 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 74\n", + "2023-12-19 17:54:34,632 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 74\n", + "2023-12-19 17:54:34,651 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 72\n", + "2023-12-19 17:54:34,784 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 66\n", + "2023-12-19 17:54:34,912 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 60\n", + "2023-12-19 17:54:35,000 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 58\n", + "2023-12-19 17:54:35,526 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 60\n", + "2023-12-19 17:54:35,551 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 62\n", + "2023-12-19 17:54:35,633 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 62\n", + "2023-12-19 17:54:37,673 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 94\n", + "2023-12-19 17:54:37,977 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 92\n", + "2023-12-19 17:54:37,978 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 90\n", + "2023-12-19 17:54:37,984 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 88\n", + "2023-12-19 17:54:38,051 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 78\n", + "2023-12-19 17:54:38,087 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 73\n", + "2023-12-19 17:54:38,184 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 63\n", + "2023-12-19 17:54:38,251 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 57\n", + "2023-12-19 17:54:38,351 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 51\n", + "2023-12-19 17:54:38,386 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 48\n", + "2023-12-19 17:54:38,437 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 44\n", + "2023-12-19 17:54:38,586 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 32\n", + "2023-12-19 17:54:38,641 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 32\n", + "2023-12-19 17:54:38,672 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 27\n", + "2023-12-19 17:54:38,789 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 23\n", + "2023-12-19 17:54:38,793 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 22\n", + "2023-12-19 17:54:38,892 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 20\n", + "2023-12-19 17:54:39,003 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 16\n", + "2023-12-19 17:54:39,186 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 6\n", + "2023-12-19 17:54:39,636 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 6\n", + "2023-12-19 17:54:43,493 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 14\n", + "2023-12-19 17:54:43,623 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 16\n", + "2023-12-19 17:54:43,639 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 16\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 85%|████████■| 299/353 [01:49<00:15, 3.39it/s]" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 12.98it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4867)\u001b[0m 149 9 0.10001397132873535\u001b[32m [repeated 16x across cluster]\u001b[0m\n" + "2023-12-19 17:55:49,212 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.3948 seconds.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 88%|████████▊ | 311/353 [01:54<00:15, 2.73it/s]" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 62.35it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4866)\u001b[0m 150 9 0.10005402565002441\u001b[32m [repeated 13x across cluster]\u001b[0m\n" + "2023-12-19 17:58:54,228 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.3148 seconds.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 94%|█████████â–| 332/353 [02:00<00:05, 4.14it/s]" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 2.01it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4859)\u001b[0m 149 10 0.09996914863586426\u001b[32m [repeated 19x across cluster]\u001b[0m\n" + "2023-12-19 17:59:33,796 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.2329 seconds.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 99%|█████████▊| 348/353 [02:05<00:01, 2.92it/s]" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 10.73it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[2m\u001b[36m(wrapped_fn pid=4879)\u001b[0m 149 10 0.09998917579650879\u001b[32m [repeated 18x across cluster]\u001b[0m\n" + "2023-12-19 18:01:15,791 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.0548 seconds.\n", + "2023-12-19 18:01:32,578 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 1\n", + "2023-12-19 18:01:32,804 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 1\n", + "2023-12-19 18:01:40,330 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 7\n", + "2023-12-19 18:01:40,811 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 7\n", + "2023-12-19 18:01:41,053 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 17\n", + "2023-12-19 18:01:41,287 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 24\n", + "2023-12-19 18:01:41,352 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 18:01:41,552 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 33\n", + "2023-12-19 18:01:41,620 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 36\n", + "2023-12-19 18:01:41,719 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 43\n", + "2023-12-19 18:01:41,811 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 43\n", + "2023-12-19 18:01:41,820 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 48\n", + "2023-12-19 18:01:42,119 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 62\n", + "2023-12-19 18:01:42,367 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 74\n", + "2023-12-19 18:01:42,633 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 69\n", + "2023-12-19 18:01:42,818 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 69\n", + "2023-12-19 18:01:43,067 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 59\n", + "2023-12-19 18:01:43,504 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 53\n", + "2023-12-19 18:01:43,522 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 51\n", + "2023-12-19 18:01:43,676 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 42\n", + "2023-12-19 18:01:43,771 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 38\n", + "2023-12-19 18:01:43,812 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 38\n", + "2023-12-19 18:01:43,871 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 33\n", + "2023-12-19 18:01:44,103 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 20\n", + "2023-12-19 18:01:44,222 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 17\n", + "2023-12-19 18:01:44,225 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 16\n", + "2023-12-19 18:01:44,379 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 11\n", + "2023-12-19 18:01:44,382 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 10\n", + "2023-12-19 18:01:44,384 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 9\n", + "2023-12-19 18:01:44,430 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 6\n", + "2023-12-19 18:01:44,481 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 4\n", + "2023-12-19 18:01:44,579 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 0\n", + "2023-12-19 18:01:44,813 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 0\n", + "2023-12-19 18:01:45,770 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 3\n", + "2023-12-19 18:01:45,813 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 3\n", + "2023-12-19 18:01:45,820 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 7\n", + "2023-12-19 18:01:45,921 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 15\n", + "2023-12-19 18:01:46,030 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 24\n", + "2023-12-19 18:01:46,036 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 25\n", + "2023-12-19 18:01:46,073 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 28\n", + "2023-12-19 18:01:46,170 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 34\n", + "2023-12-19 18:01:46,815 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 34\n", + "2023-12-19 18:01:47,819 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 54\n", + "2023-12-19 18:01:47,819 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 54\n", + "2023-12-19 18:01:48,214 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 60\n", + "2023-12-19 18:01:48,593 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 66\n", + "2023-12-19 18:01:48,816 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 66\n", + "2023-12-19 18:01:50,241 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 74\n", + "2023-12-19 18:01:50,818 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 74\n", + "2023-12-19 18:01:51,086 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 65\n", + "2023-12-19 18:01:51,388 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 71\n", + "2023-12-19 18:01:51,805 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 71\n", + "2023-12-19 18:01:51,819 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 71\n", + "2023-12-19 18:01:52,008 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 65\n", + "2023-12-19 18:01:52,820 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 65\n", + "2023-12-19 18:01:53,153 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 58\n", + "2023-12-19 18:01:53,316 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 63\n", + "2023-12-19 18:01:53,496 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 66\n", + "2023-12-19 18:01:53,820 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 66\n", + "2023-12-19 18:01:54,171 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 69\n", + "2023-12-19 18:01:54,821 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 69\n", + "2023-12-19 18:01:55,597 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 59\n", + "2023-12-19 18:01:55,665 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 61\n", + "2023-12-19 18:01:55,732 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 63\n", + "2023-12-19 18:01:55,824 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 63\n", + "2023-12-19 18:01:56,789 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 66\n", + "2023-12-19 18:01:56,823 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 66\n", + "2023-12-19 18:02:05,570 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 66\n", + "2023-12-19 18:02:05,572 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 65\n", + "2023-12-19 18:02:05,831 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 65\n", + "2023-12-19 18:02:10,456 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 57\n", + "2023-12-19 18:02:10,560 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 51\n", + "2023-12-19 18:02:10,623 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 48\n", + "2023-12-19 18:02:10,835 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 48\n", + "2023-12-19 18:02:10,918 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 40\n", + "2023-12-19 18:02:10,986 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 36\n", + "2023-12-19 18:02:11,651 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 33\n", + "2023-12-19 18:02:11,723 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 39\n", + "2023-12-19 18:02:11,750 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 41\n", + "2023-12-19 18:02:11,836 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 41\n", + "2023-12-19 18:02:11,974 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 49\n", + "2023-12-19 18:02:12,110 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 54\n", + "2023-12-19 18:02:12,246 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 59\n", + "2023-12-19 18:02:12,343 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 63\n", + "2023-12-19 18:02:12,430 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 68\n", + "2023-12-19 18:02:12,577 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 72\n", + "2023-12-19 18:02:12,753 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 76\n", + "2023-12-19 18:02:12,836 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 76\n", + "2023-12-19 18:02:12,918 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 79\n", + "2023-12-19 18:02:13,653 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 99\n", + "2023-12-19 18:02:13,837 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 99\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Ray objects: 100%|██████████| 353/353 [02:06<00:00, 2.78it/s]\n" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 14.76it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "2023-12-19 11:52:43,720 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/simulation/runner/executor.py:127} Number of successful simulations: 353\n", - "2023-12-19 11:52:43,720 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/simulation/runner/executor.py:128} Number of failed simulations: 0\n", - "2023-12-19 11:52:43,720 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/utils.py:147} Finished executing runners!\n", - "2023-12-19 11:52:43,771 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/utils.py:74} Saved runner reports to ../../data/nuplan/exp/exp/simulation/open_loop_boxes/2023.12.19.11.50.18/runner_report.parquet\n", - "2023-12-19 11:52:43,772 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/simulation/main_callback/time_callback.py:27} Simulation duration: 00:02:25 [HH:MM:SS]\n", - "2023-12-19 11:52:45,903 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/simulation/main_callback/metric_file_callback.py:79} Metric files integration: 00:00:02 [HH:MM:SS]\n", - "2023-12-19 11:52:45,980 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/simulation/main_callback/metric_aggregator_callback.py:58} Running metric aggregator: open_loop_boxes_weighted_average\n", - "2023-12-19 11:52:46,169 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/simulation/main_callback/metric_aggregator_callback.py:69} Metric aggregator: 00:00:00 [HH:MM:SS]\n" + "2023-12-19 18:02:26,639 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.4191 seconds.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Rendering histograms: 100%|██████████| 11/11 [00:02<00:00, 4.99it/s]\n" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 21.66it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "2023-12-19 11:52:50,594 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/simulation/main_callback/metric_summary_callback.py:344} Metric summary: 00:00:04 [HH:MM:SS]\n", - "2023-12-19 11:52:50,595 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/run_simulation.py:116} Finished running simulation!\n" + "2023-12-19 18:03:24,898 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.6068 seconds.\n", + "2023-12-19 18:03:42,675 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 120\n", + "2023-12-19 18:03:42,744 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 117\n", + "2023-12-19 18:03:42,841 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 113\n", + "2023-12-19 18:03:43,153 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 113\n", + "2023-12-19 18:03:45,214 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 51\n", + "2023-12-19 18:03:46,154 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 51\n", + "2023-12-19 18:03:46,397 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 58\n", + "2023-12-19 18:03:46,420 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 55\n", + "2023-12-19 18:03:46,643 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 49\n", + "2023-12-19 18:03:46,892 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 41\n", + "2023-12-19 18:03:47,042 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 35\n", + "2023-12-19 18:03:47,155 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 35\n", + "2023-12-19 18:03:47,231 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 29\n", + "2023-12-19 18:03:47,548 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 30\n", + "2023-12-19 18:03:47,697 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 33\n", + "2023-12-19 18:03:47,834 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 37\n", + "2023-12-19 18:03:47,895 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 40\n", + "2023-12-19 18:03:47,992 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 45\n", + "2023-12-19 18:03:48,039 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 47\n", + "2023-12-19 18:03:48,156 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 47\n", + "2023-12-19 18:03:48,326 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 58\n", + "2023-12-19 18:03:49,169 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 58\n", + "2023-12-19 18:04:10,019 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 78\n", + "2023-12-19 18:04:10,183 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 78\n", + "2023-12-19 18:04:10,366 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 73\n", + "2023-12-19 18:04:11,184 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 73\n", + "2023-12-19 18:04:11,548 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 70\n", + "2023-12-19 18:04:12,184 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 70\n", + "2023-12-19 18:04:17,279 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 64\n", + "2023-12-19 18:04:17,402 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 62\n", + "2023-12-19 18:04:17,717 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 64\n", + "2023-12-19 18:04:17,829 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 67\n", + "2023-12-19 18:04:17,831 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 68\n", + "2023-12-19 18:04:18,133 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 74\n", + "2023-12-19 18:04:18,194 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 74\n", + "2023-12-19 18:04:19,996 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 119\n", + "2023-12-19 18:04:20,196 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 119\n" ] }, { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAJRCAYAAABY7oO4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAAArj0lEQVR4nO3deZjd893/8dckIRSJ1E5G7IRsllgTiSWC4taI7VakdmrXVpVeaJVbqyGW0tJK70bUUlvtRWJtf5ZaS6M0ZKklIp1JSEaS+f7+6OXcVcGHmgWPx3XNlZlzvst7lpw88z3f+Z66qqqqAADwoTq09QAAAJ8FogkAoIBoAgAoIJoAAAqIJgCAAqIJAKCAaAIAKCCaAAAKiCYAgAKiCQCggGiCVtKvX7/MnDmzRfcxfvz49OvXr0X38UFuuOGG/PGPf2yTfX+YtphrxIgROe+88z72ejfffHMGDx7causBH49oglbyxBNPZIkllviPttHc3Jzm5uZPaaJPl2gCPu9EE7SSurq6/OMf/0hzc3OOPPLI9OzZM3379s2GG26YOXPmfOB6p512WnbbbbcMHTo0vXr1yiuvvJI77rgjAwYMyIYbbpiNN94448aNe9968+bNy9ChQ7PRRhtlvfXWy3//93/nrbfeSpIMGTIk1157bW3Z8ePHZ/3110+SjB07NptssknWX3/99O3bN7/73e9qyw0ePDjf/OY3M3DgwKy++uo57LDDkiS33nprbrrppvz4xz9Ov379ctlll33g5/Nh2//LX/6SzTbbLOutt16GDRuW7bbbLqNHj06SzJw5MwcffHA23njj9OnTJ4ccckjeeeedT22u119/PcOGDUvv3r3Tq1ev/OxnP6vd99xzz2Xo0KHp06dP+vTpk0suuSRJMnXq1AwfPjy9e/dOnz598r3vfW+B379jjz229vGFF16YESNGJEnmzp2bI444ImuuueYCv4+//vWvs8kmm2SDDTbIlltumSeffLJoPaCFVECrSFLNmDGj+tOf/lSts8461fz586uqqqp//OMftfcX5NRTT61WWGGF6tVXX62qqqpefPHFatNNN60aGhqqqqqqv/71r9Xyyy9fzZkzpxo3blzVt2/fqqqqqrm5uXrjjTdq7x922GHVWWedVVVVVV1xxRXVV77yldo+9ttvv+r888+vqqqq3njjjaq5ubmqqqqaOHFitdxyy1Vz5sypqqqqBg0aVO26667V3Llzq7fffrtaZZVVqoceeqiqqqraf//9q3PPPfcjvw4ftv2NNtqo+uUvf1lVVVU9++yzVefOnavLL7+8qqqqOvjgg6tf/epXtc/nwAMPrH70ox99anPtscce1Xe+852qqqrqtddeq7p371794Q9/qObOnVutueaa1dixY2vLTps2raqqqho8eHB15pln1m5//fXX37fPU089tTrmmGNqy1xwwQXV/vvvX1VVVV144YXV1ltvXTU1NVVNTU3V4MGDq0GDBlVVVVUPPPBAtcMOO9S+Nvfdd1+17rrrfuR6QMvp1NbRBl80q622WubNm5cDDjggW221Vb7yla+kQ4cPP+i74447ZrnllkuS3H777XnhhRey5ZZb1u7v0KFDJk2a9J51qqrKueeem1tuuSXz5s1LQ0NDNt988yTJV7/61Rx99NF55ZVXssQSS+Tmm2/OyJEjkyQTJ07MPvvskylTpqRTp0558803M3HixKyzzjpJkj333DOdOnVKp06d0q9fv7z44ovZbLPNij//D9r+iiuumCeeeCL77bdfkqRnz54ZMGBAbb0bbrghf/jDH2pzzp49Ox07dqzd/5/Oddddd+Wxxx5Lkiy77LIZNmxY7rrrriyxxBKZM2dO9t5779qySy+9dGbNmpUHHnggd9xxR+32ZZZZpnh/SXL33Xdnv/32y8ILL5wkOeCAA/KLX/wiSXLjjTfmySefzCabbFJb/s0338zs2bM/dD2g5YgmaGVdu3bNM888k3vvvTfjxo3LSSedlPvuuy9rrLHGB66z+OKL196vqipDhgzJ2LFj37fc1KlTa++PHTs299xzT+6999506dIl559/fu65554kyaKLLprdd989v/71r7PMMstk6623zlJLLZUk2WuvvfI///M/GT58eJLky1/+8nuePlxkkUVq73fs2DHz5s37WJ//R23/X9XV1b3n8/7tb3+btdZaa4HL/qdzfdi+/xOdOnXK/Pnzax9/2FOx//757r///jnzzDM/ch+f1qzAh3NOE7SyadOm5a233sp2222XM888M6usskqeffbZ4vWHDh2au+66K0899VTttocffvh9y82YMSNLL710unTpkpkzZ9bODXrX17/+9Vx++eUZPXp0DjjggPest+qqqyZJxowZkxkzZhTN1aVLlzQ0NHzkch+0/S5duqRv374ZM2ZMkmTChAl54IEHauvtuuuuOfvss2sxNGPGjLzwwguf2lzbbrttLr300iT//B5dd911GTJkSNZee+186UtfypVXXllb9o033sjiiy+eLbfcMj/5yU9qt0+bNu19211jjTXy6KOPZv78+Xn77bfz29/+9j37HDNmTObOnZt33nknl19+ee2+XXbZJWPGjKkdQWxubs6jjz76kesBLUc0QSubPHlyhgwZkj59+qRXr17p1atXdthhh+L111hjjYwdOzaHHnpo+vbtm549ey7w19v322+/vP3221l77bWzww47ZODAge+5f+ONN07Hjh3zwgsvZLvttqvdPmrUqAwfPjzrr79+Hn/88ay88spFc+277765+uqrs/7663/oCdcftv3//d//zcUXX5xevXrlxBNPTP/+/bPkkksmSc4999wsuuii6devX/r06ZNtttkmL7300qc21/nnn5/nnnsuvXv3zlZbbZWTTz45m2yySTp16pQbb7wxl19+eXr37p2+ffvWwufXv/51Hn300ay33nrp169fLrzwwvdtd9iwYVlxxRXTs2fP7LTTTrUT7pPk4IMPzpprrpl11103AwYMeM/lIgYOHJgf/ehH+epXv5q+fftmvfXWy29+85uPXA9oOXVVVVVtPQRAksyaNSuLLbZY6urqMnHixGy22WZ55JFHUl9f39ajATinCWg/HnrooXzrW99KksyfPz/nnnuuYALaDUeaoB144oknatfu+Vf7779/jjvuuNYf6D9066235rvf/e77bj/ppJOy5557tsFE/9Re5wI+G0QTAEABJ4IDABQQTQAABUQTAEAB0QQAUEA0AQAUEE0AAAVEEwBAAdEEAFBANAEAFBBNAAAFRBMAQAHRBABQQDQBABQQTQAABUQTAEAB0QQAUEA0fU498cQTufjiiz+VbY0YMSLPPPPMp7Ktf3fDDTfk9ddfb5Ftf5Cf//znn/o2X3rppQwfPrxo2ZtvvjmnnXZa0bLDhw/PSy+99MkHA+BTI5o+p/r165fDDz/8Y63T3NzcQtN8sM9LNAHw+SeaPqfGjx+fE044ITvvvHMGDx6cwYMHZ86cOQtcbuedd85Xv/rVjB49OrfffnsGDhyYzTffPFdeeeV7ln3ttdey1VZbZeDAgRk+fHjmz5+fc845J1dddVWS5MUXX8zee++d5ubmbLvtthk0aFCGDBmSxsbGJEnPnj2z//77p1+/frniiisyceLE3H777fn617+eb3/72++b7YO2c+aZZ2azzTbL0UcfnQ022CBJ8re//S1Dhw7N4MGDc9xxxyVJRo8end122y0777xz+vfvn1deeSUXX3xxJkyYkMGDB+eee+553z6nTJmSbbfdNltuuWWOPPLIJMns2bOz9957Z9CgQdlmm22SJA8//HAGDBiQwYMH58c//vF7tjF48ODMmjUryf8dKWpoaMj222+f7bffPmPGjKktO3r06NrX+9157rrrrmywwQYZNmxYpk6d+qHfZwBaUcXn0rhx46pdd9212mOPPaqqqqrm5uYPXG7gwIFVc3Nz1dzcXG2++eZVU1NTNW/evGrzzTev5s2bV+2///7V008/XTU1NVVz586tqqqqjj766OrOO++sJk2aVA0bNqyqqqr64Q9/WF1//fVVVVXVW2+9VVVVVY0cObL6+c9/XlVVVS255JJVQ0ND1dDQUG288cZVVVW1bX+Qf9/OK6+8Um255ZZVc3NzNWHChGqVVVapqqqqdt999+qFF16oqqqqDjvssOqRRx6pLr/88urrX/96VVVV9dOf/rQaNWpUVVVVteGGG37g/r7xjW9Ut912W1VVVXXAAQdU9957bzVq1KjqnHPOqaqqqubPn19VVVVtvvnm1aRJk2q3TZw4sdptt92qqqqqQYMGVTNnzqyqqqp22223auLEidWPf/zj6mc/+1lVVVV14oknVqeeemr1xhtvVEOHDq2am5urWbNmVYMGDaqqqqo22WSTavr06dWcOXOqlVdeuZo4ceIHzgtA6+nU1tFGy1l99dVTX1+fr33ta+nRo0e+//3vp2PHju9bbqONNkpdXV1ef/31PP/889luu+2SJP/4xz8ybdq02nLTp0/P4YcfnhkzZuTvf/97NthggwwZMiQNDQ1pbGzMHXfckRNOOCGzZs3KoYcemilTpuTNN9+sneuz2mqrpUuXLkmS+fPnf+T8C9rOSy+9lD59+qSuri5rrbVWFl988STJX/7ylxx44IFJkpkzZ2bo0KFJkvXXXz9JUl9fn8cee+wj9/nCCy+kf//+SZL+/fvnr3/9a5577rnatjt0+OfB2XfeeSf19fXvue1ddXV1tferqqpt9+CDD65t9+mnn86LL76YP//5z9lqq62SpPa1nj9/fr785S8nSfr06fORMwPQOjw99zk2f/78HHXUURkzZkymTZuWBx98cIHLvfuP/tJLL5111lknd955Z8aPH58nnngiyy+/fG25sWPHZqeddsq9996b7bffvhYEu+66a84+++ysttpq6dy5c+64446suuqquffeezNixIjacv8aE+9aaKGFPjCgFrSdVVZZJc8880yqqspf//rX2tNga6+9dn71q19l/PjxefTRR7PTTju9b58fNse71lhjjTz88MNJkkceeSRrrrlmevbsmfvuuy/J/5331blz59pTZ/9+Lli3bt0yZcqUzJs3L3/+859r23388ceTJI8++miSf0Zknz59Mm7cuNrXO0k6duyYGTNmpKmpKU8//fQHzgpA63Kk6XPs5ZdfzqBBg9KxY8cstthitfN/PkiHDh1yyimnZMiQIenQoUOWWWaZXH311bX7t9lmm+y777753e9+l0UXXbR2++67756VV145N954Y5Jk0003zZlnnpnHH388yy23XFZeeeUP3OcOO+yQY489Nttuu21OPvnk99y3oO0sv/zyGTJkSDbbbLNsuOGGtSMyZ599dg477LDMmTMnHTt2zC9/+csP3Ofaa6+d3XbbLccff3y22GKL99x34oknZv/998+ZZ56ZXr16Zcstt0z//v0zYsSIDBo0KJ06dcrdd9+dkSNHZo899shCCy2Ur3zlK9l9991r2zjiiCOy++67p0+fPlluueWSJAcddFD22GOPXH311VlhhRWy6qqrZumll85ee+1V+x717t07559/fr7//e9nm222ySqrrPKhXzsAWldd9e5/v+EzYu7cuVlooYXy/PPP59hjj82tt97a1iMB8AXgSNMXyL333ptTTz31PbfdfffdCzzPqbVNmDAhhx566Htuu+KKK7LSSiu9b9lTTz01Dz74YGbPnp2f/vSnn3ifo0aNyvXXX1/7uHfv3rngggs+8fYA+HxzpAkAoIATwQEACogmAIACogkAoIBoAgAo8Jn77bnm5ub8/e9/zxJLLPGhFykEPv+qqsrMmTOz4oorvu/K7ACfts9cNP3973+vvXwFQJJMnjw53bt3b+sxgM+5z1w0LbHEEkn++SD57uuYAV9MjY2Nqa+vrz0uALSkz1w0vfuUXJcuXUQTXxjNzc1555132nqMdmPhhRd+z9NxnqoHWsNnLprgi6a5uTkvv/xy5syZ09ajtBuLLLJIevTo0dZjAF8wognauXfeeSdz5szJ8ssv/54XSv6imj17dl599VVH3oBWJ5rgM2LRRRfN9NXX/FjrrDR18vtuO+2003LKKaekU6cP/ut/wAEHpE+fPunfv3+22GKL2u2jR4/OgAEDssYaa3zkvsePH5+rr746c+fOzdlnn52RI0fmjDPO+FjzA7Qnogm+oEaNGpUOHTpk/vz5GTx4cK699tpMnz49e+65Z22ZpZZaKqecckrOOOOMnHLKKenQoUNef/31rLXWWll88cXTqVOnzJs3L2PGjMmQIUMya9asvP3225k3b1769++fYcOG5c0338yECROSJE888UTuu+++vPbaa/nhD3+Y7bffPttss0169uyZRx99NPX19XnssccycuTInHzyyVlqqaUycODAXH311dl0002z4447OtoGtBkXNoEvqEmTJuWoo47K5MmTc8cdd+SYY47JVlttlSRZccUVc+yxx2adddapLT9//vysttpqGTZsWLp165aqqjJ//vza8vvss0/uu+++dOvWLTNnzkySXHfddZkwYUL69++fJJk1a1Y6d+5ci6j1118/3/zmN/P//t//S5J87WtfyzLLLJMnn3wyTU1NWXHFFfPSSy9liSWWyD777JNu3bq12tcH4N+JJvgCOv/887PyyivnggsuyMorr5ztttsuo0aNyj333PO+p+3q6uoyZsyYNDQ0ZLXVVsuYMWOy1lpr5dZbb83tt9+eJLXfZNt6660zffr09OzZM0kybNiwfO9736tt8/HHH8/iiy+e5ubmJEnHjh1TV1eXqqre8/G6666bxRZbLLNmzUqvXr1cuBJoF+qqdx+tPiMaGxvTtWvXNDQ0uOQAXwhz5szJxIkTs+qqq2aRRRZpkX3MnDkzY8eOzV/+8pecfvrp7frv1r9+Pd555x2PB0CrcU4TkCWWWCKHHnpoW48B0K6JJviMmD17dluP0C74OgBtRTRBO7fwwgtnkUUWyauvvtrWo7QbiyyySBZeeGHXagJalWiCdq5Dhw7p0aOHQPgX//4yKgCtQTTBZ0CHDh1a7CRwAMr4rxoAQIEWPdL0t7/9LT/84Q/T0NCQa6+9NmPHjs24cePS1NSUiy++OElyxBFHZOGFF87gwYOzzz77tOQ4AACfWKtcp2n48OG59tprs/vuu+ea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RVE0HXPMMUmSt99+O7fddls22GCDDBgwoEUHAwBoT4rOaXrzzTeTJBdccEFWXXXVjBo1qkWHAgBob4qONJ177rnp2bNnVlxxxVx99dVZeOGFW3ouAIB2pSiafvCDH+Shhx7KNddckyOPPDKrr756S88FANCuFEXTOeeckzfffDNbbLFFbrzxxtTV1eW4445r6dkAANqNonOaGhoa8u1vfzvPPPNMjj/++Oyyyy4tPRcAQLtSFE077rhjLrvsshx00EFJ4uk5AOALp+jpuZdffjnHHnvsey5k+eKLL2batGnZdNNNW2w4AID2oiiaVlhhhRx66KGZPn167Yrgm222WQ455JCWng8AoF0oiqZBgwZl0KBBLT0LAEC75QV7AQAKiCYAgALF0bTffvvltttua8lZAADareJouuyyyzJt2rTstddeGTVqVN56662WnAsAoF0pjqbp06fnb3/7W7p06ZLll18+Bx54YEvOBQDQrhT99lzyz5dS+cY3vpHVVlstSVJfX99iQwEAtDfFR5oGDx5cC6bbbrstm2++eYsNBQDQ3hRH03333Vd7//7772+RYQAA2qvip+emTZuWu+++O3V1dXnllVdaciYAgHan+EjT+eefn+effz4TJkzIqFGjWnImAIB2pziaJk2alIaGhrz++us577zzWnAkAID2p/jpuZEjR+b444/PQgst1JLzAAC0S8XR1KtXr/Tq1aslZwEAaLeKo2ncuHEZP358OnfunLq6ulx99dUtORcAQLtSHE1XXnllnnvuufTv3z9TpkxpyZkAANqd4hPBjzvuuIwePTpJctZZZ7XUPAAA7VLxkaYlllgiSy65ZJJkkUUWaal5AADapeIjTUsvvXQeeuihfPOb30yHDsWrAQB8LhQfafrud7+bYcOGpaqq9OzZsyVnAgBod4qjae+9905dXV3efvvtJMkNN9zQUjMBALQ7H+u35941cuTIFhkGAKC9Ko6mZ599Nkkyb9682vsAAF8UxdF0zTXXpK6uLp07d85RRx3VkjMBALQ7xdG00UYbpa6uLkkyderUTJ06NTvuuGOLDQYA0J4UR9Nll12WAQMGJEkefPDB7Lrrri01EwBAu1McTeuss05OOOGEJMm0adOy3377tdhQAADtTXE01dXV5aCDDkpdXV2WW265lpwJAKDdKY6mM844I1OmTMmSSy7pZVQAgC+c4tdDOfbYY3P66aenS5cufnsOAPjCKY6mjh07pkePHkmSrl27tthAAADtUXE0de7cOc8991wuvPDCzJgxoyVnAgBod4rOaaqqKrvttlumT5+e5ubmHH744S09FwBAu1IUTXV1dRk3bly+/e1vt/Q8AADtUvFvz9100025++6706VLl9TV1eXqq69uybkAANqVomi66aab8sADD+Spp55Knz59WnomAIB2p+hE8Ntvvz1Jcskll7ToMAAA7VVRNL388su59dZba3/eeuutLT0XAEC7UvT03B577JFp06bV/qyrq2vpuQAA2pWiaNp///1beg4AgHat+OKWAABfZKIJAKCAaAIAKCCaAAAKiCYAgAKiCQCggGgCACggmgAACogmAIACogkAoIBoAgAoIJoAAAqIJgCAAqIJAKCAaAIAKCCaAAAKiCYAgAKiCQCggGgCACggmgAACogmAIACogkAoIBoAgAoIJoAAAqIJgCAAqIJAKCAaAIAKCCaAAAKdGrtHb711lsZNGhQTjvttEyYMCETJ07M3Llzc8kll6Surq61xwEAKNLqR5rOPvvs7LHHHmlubs6f/vSnXHjhhendu3ceeOCBBS7f1NSUxsbG97wBALS2Vo2m3//+91l33XWz7LLLpqGhIcsss0ySpEePHpkyZcoC1znrrLPStWvX2lt9fX1rjgwAkKSVn54bP3583nrrrTz77LPp2LFjunXrliSZNGlS+vTps8B1TjrppBx//PG1jxsbG4UTANDq6qqqqlp7p6NHj87SSy+d559/Pi+//HKamppy8cUXF53T1NjYmK5du6ahoSFdunQp2t/UlURWe7fS1MltPQKfQZ/k8QDgk2r1E8GTZMSIEW2xWwCAT8wlBwAACogmAIACogkAoIBoAgAoIJoAAAqIJgCAAqIJAKCAaAIAKCCaAAAKiCYAgAKiCQCggGgCACggmgAACogmAIACogkAoIBoAgAoIJoAAAqIJgCAAqIJAKCAaAIAKCCaAAAKiCYAgAKiCQCggGgCACggmgAACogmAIACogkAoIBoAgAoIJoAAAqIJgCAAqIJAKCAaAIAKCCaAAAKiCYAgAKiCQCggGgCACggmgAACogmAIACogkAoIBoAgAoIJoAAAqIJgCAAqIJAKCAaAIAKCCaAAAKiCYAgAKiCQCggGgCACggmgAACogmAIACogkAoIBoAgAoIJoAAAqIJgCAAqIJAKCAaAIAKCCaAAAKiCYAgAKiCQCggGgCACggmgAACogmAIACogkAoIBoAgAoIJoAAAqIJgCAAqIJAKCAaAIAKCCaAAAKiCYAgAKiCQCggGgCACggmgAACogmAIACogkAoIBoAgAoIJoAAAqIJgCAAqIJAKCAaAIAKCCaAAAKiCYAgAKiCQCggGgCACggmgAACogmAIACogkAoIBoAgAoIJoAAAqIJgCAAqIJAKBAp9bc2Q033JBbbrkljY2NOfDAA/P0009n4sSJmTt3bi655JLU1dW15jgAAMXqqqqqWnunM2bMyPHHH5933nknV1xxRS688ML07ds3AwcOfN+yTU1NaWpqqn3c2NiY+vr6NDQ0pEuXLkX7m7pS/ac2Oy1jpamT23oEPoMaGxvTtWvXj/V4APBJtcnTc2eccUYOOuigLLPMMkmSHj16ZMqUKQtc9qyzzkrXrl1rb/X1AggAaH2tGk1VVeXEE0/MDjvskP79++eNN95IkkyaNCndu3df4DonnXRSGhoaam+TJzsiAQC0vlY9p+mCCy7IXXfdlYaGhrzwwgvZYIMNcswxx6SpqSlHHHHEAtfp3LlzOnfu3JpjAgC8T5uc0/Sf+CTnMDinqf1zThOfhHOagNbkkgMAAAVEEwBAAdEEAFBANAEAFBBNAAAFRBMAQAHRBABQQDQBABQQTQAABUQTAEAB0QQAUEA0AQAUEE0AAAVEEwBAAdEEAFBANAEAFBBNAAAFRBMAQAHRBABQQDQBABQQTQAABUQTAEAB0QQAUEA0AQAUEE0AAAVEEwBAAdEEAFBANAEAFBBNAAAFRBMAQAHRBABQQDQBABQQTQAABUQTAEAB0QQAUEA0AQAUEE0AAAVEEwBAAdEEAFBANAEAFBBNAAAFRBMAQAHRBABQQDQBABQQTQAABUQTAEAB0QQAUEA0AQAUEE0AAAVEEwBAAdEEAFBANAEAFBBNAAAFRBMAQAHRBABQQDQBABQQTQAABUQTAEAB0QQAUEA0AQAUEE0AAAVEEwBAAdEEAFBANAEAFBBNAAAFRBMAQAHRBABQQDQBABQQTQAABUQTAEAB0QQAUEA0AQAUEE0AAAVEEwBAAdEEAFBANAEAFBBNAAAFRBMAQAHRBABQQDQBABQQTQAABUQTAEAB0QQAUEA0AQAUEE0AAAVEEwBAAdEEAFCgU1sPAK1p6kr1bT0CH2GlqZPbegSABXKkCQCggGgCACjQ5k/PvfXWWzniiCOy8MILZ/Dgwdlnn33aeiQAgPdp8yNN1113XYYPH55LL700N910U1uPAwCwQG1+pGnKlCnp3bt3kqRjx47vu7+pqSlNTU21jxsaGpIkjY2NxfuY2dz8H05JS/s438//hJ+F9u/j/Cy8u2xVVS01DkBNm0dT9+7dM2XKlPTr1y/NC/gH7ayzzsrpp5/+vtvr6/0W1OdK165tPQHtxSf4WZg5c2a6+hkCWlhd1cb/RXvrrbdy5JFHZpFFFsmAAQPed07Tvx9pam5uzptvvpmllloqdXV1rT1uu9DY2Jj6+vpMnjw5Xbp0aetxaENf9J+Fqqoyc+bMrLjiiunQoc3PNgA+59o8mvj4Ghsb07Vr1zQ0NHwh/6Hk//hZAGg9/msGAFBANAEAFBBNn0GdO3fOqaeems6dO7f1KLQxPwsArcc5TQAABRxpAgAoIJoAAAqIpnZo9OjR2XHHHXPYYYflhhtueM99w4cPb5uhaDOzZ8/OYYcdll122SUDBw7MYYcdlhdffNFVsAFaWZtfEZwFO+KII7LTTjvlBz/4QcaNG5fll18+J510Uu3+Qw45JF26dMl6662XfffdNyeffHKampoyf/78nHfeeQt8SRo+mxZddNFccsklGT9+fJ555plceeWVueaaa7L66qvntddey5FHHpm99torv/nNb3LVVVflj3/8YxobG3PUUUelX79+bT0+wOeGI03t1E9/+tMccsghaW5uTpcuXXLddde95/5XX301W221Vfbee+/8/ve/z0svvZQll1wys2bNytSpU9toalrDuuuum+985ztZZpll3nffhRdemK5du2bZZZfNww8/3AbTAXx+OdLUTh1xxBFZYYUVcsstt+QHP/hBHnjggffcf9VVV2XcuHEZMWJE9t1332yxxRY5+uij22haWtO7r7HWuXPnzJs3L8k/X44o+edRqdNOO62tRgP4XHOkqR1bY4018uSTT+acc87JtGnTarfPnTs3J5xwQu6+++6stdZaGTp0aJ566ql861vfysEHH5w5c+a04dS0lr59++bhhx/Oueeem5dffjlJ8rWvfS2HHHJIjjnmmNx5551tPCHA54vrNAEAFHCkCQCggGgCACggmgAACogmAIACogkAoIBoAgAoIJpoF0aPHp2bb765ePnTTjstzzzzTAtOBADv5YrgtBtXXnllxo0bl2WXXTZTp05Np06dMm/evJx//vn52c9+lqeeeiqNjY0577zzaus8/vjjGT16dObNm5fNNtssW2+9dS666KJMnz4922+/fXbdddf07t07I0aMyGOPPZZf/OIXWXTRRdvukwTgM8uRJtqN7bbbLj/5yU/yyCOPpGvXrhk5cmSWWmqpPPPMM7njjjty0UUX5aCDDsqVV15ZW2fkyJHp1q1blllmmTz++OPp1KlTmpqastxyy+WKK65IknTv3j0nnHBCNttsszzxxBNt9NkB8FnnSBPtzvz581NXV5ckqaury79etP7fP37nnXdyzDHHpFu3bkmSn/zkJ9lll12yySab5L/+67+SJIsttliSZKGFFkpTU1NrfRoAfM6IJtqNO+64I08++WQ23XTTTJ48Od/61rcye/bs9O7dO9tuu22OPvrozJgxI+eee24uvPDCJMmJJ56Yo446Ksstt1xWWWWVbL755rnkkkvy4IMPZuGFF27jzwiAzxOvPQcAUMA5TQAABUQTAEAB0QQAUEA0AQAUEE0AAAVEEwBAAdEEAFBANAEAFBBNAAAFRBMAQIH/DwgJRJ8sEfPbAAAAAElFTkSuQmCC", - "text/plain": [ - "<Figure size 600x600 with 2 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stderr", + "output_type": "stream", + "text": [ + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 38.17it/s]\n" + ] }, { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAJRCAYAAACz2Ti7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0OElEQVR4nO3de5yMdf/H8fesZRE75FTsoi2lHELWT87KsdK9t9wkkjPJIutMORSbwy2WiuJGonIod0Slg5xSbikWuZXDHqS0NGMts7vm+/ujn/m17aqvMrvDvp6Pxzxuc7quz0z3rJfrmr0uhzHGCAAAAH8oKK8HAAAAuFoQTgAAAJYIJwAAAEuEEwAAgCXCCQAAwBLhBAAAYIlwAgAAsEQ4AQAAWCKcAAAALBFOAAAAlggnALiCOnTooMWLF+f1GAD8hHACAACwRDgB17CdO3fqnnvuUd26dVW7dm2tXLlSkjR//nzdeuutqlOnjp555hk5HA7fc95//33VqVNHNWvWVNOmTbV///7fXUf37t3Vt29ftWjRQjfddJN69uypL774Qs2aNVNERISGDh3qe+yJEyfUsWNH1atXTzVq1NC4ceN89w0bNkyRkZGqVauWmjRpooMHD/ruczgcmjJliurVq6ebbrpJixYt+t2ZDh06pIYNG+rOO+/Msp4JEybooYce0j333KOqVauqXbt2SklJkSRlZGRo1KhRqlevnmrVqqWOHTvq9OnTkqQzZ86oT58+qlevnmrWrKm+ffsqPT1dkvTNN9+oQYMGqlatmqKiouR2u//wvwuAq5gBcE06ffq0qVWrljl+/LgxxpiTJ0+a8PBws2nTJnPDDTeY77//3hhjzNNPP20u/ij44YcfzPXXX2/27NljjDHmtddeM7fffrvxer2XXM9jjz1m6tevb86dO2c8Ho+5+eabTVRUlElPTzepqammbNmyJj4+3hhjTKtWrcymTZuMMcZkZGSY1q1bmxUrVhhjjPnxxx99y3z99ddN69atfdclmRkzZhhjjDlw4IApVqyYycjIuORMgwYNMlOmTPFdT0lJMcYYM378eFOmTBnfa3/88cdNnz59jDHGTJ482UyaNMn3nEmTJpkBAwYYY4zp06ePWbJkiTHGGK/Xa3r16mWmTZtmjDGmbt26ZsGCBcYYY/bs2WMKFSpkFi1adMnZAFzdgvM63AD4x/bt23X48GG1bds2y+1ff/212rRpoxtuuEGS1KdPH02aNEmS9Pnnn6tGjRqqUaOGJKlLly564oknlJycrLCwsEuu629/+5sKFy4sSapRo4Zat26tggULqmDBgrrjjjt06NAhVa5cWR999JF++OEH3/NSU1N9W5Y2btyoOXPm6MyZM/J6vTp16lSWdXTp0kWSVLVqVQUHB+vEiROXnKlJkyYaPny4UlNT1bRpU7Vo0cJ33/333+977X379lX79u0lSWvWrJHL5dLq1aslSenp6apcubLvvs8++0wzZ86UJJ07d04FChSQ2+3WV199pe7du/tee6NGjS75PgG4+hFOwDXKGKNq1app+/btWW6Pi4vLcv3Xu+n+rIvRJEkFChTIdj0zM1PGGEnSjh07stwvSQkJCRo4cKB27typm2++WXv27FGTJk1+dx2ZmZmXnOehhx5SgwYNtHHjRs2dO1ezZs3S+vXrc3zsxddvjNGcOXPUqlWrbI8xxmj16tW69dZbs9ye0265K/F+AghcfMcJuEY1aNBAR44c0Ycffui77auvvlLTpk31/vvv68cff5QkLVy40Hd//fr1tXfvXsXHx0uS3njjDVWoUEEVKlT4y/MUK1ZMzZs313PPPee77fjx40pKSpLL5VLBggV14403yhijuXPn/qV1HTp0SOXKlVO3bt00bdo07dixw3ff+vXrfVu9FixY4NsaFRUVpeeff15paWmSpLS0NO3bt89339SpU32xdvr0aX377bcKDQ1V7dq19eqrr0qS9u3bp61bt/6l2QEENrY4AdeokiVL6t1339WwYcMUExOjjIwMVaxYUWvWrNG4cePUsGFDFS9eXG3atJHT6ZQklSlTRsuWLVO3bt2UmZmpkiVLauXKlVdsK8qyZcs0dOhQVa9eXQ6HQ9ddd53mz5+vO++8Uw8//LCqVaumUqVKKSoq6i+tZ9WqVXrttddUqFAheb1ezZs3z3df48aN9cgjjyg5OVlVqlTxHTpg5MiR8ng8+p//+R/f6x05cqSqVaum559/XqNGjVKtWrUUFBSk4OBgTZs2TbfccoteffVV9ejRQ//85z9VpUqVbFvKAFxbHObi9nMA+caZM2dUvHhxSdLs2bP13nvvacOGDXk8lf9NmDBBP//8s2bNmpXXowC4SrHFCciHRo0apW3btikjI0Ply5fX/Pnz83okALgq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JcIJAADAEuGEPLF48eI/PLfdlTyYZm4emNPmtQEArk7BeT0Ari2LFy/WJ598oiJFiujGG29URkaG4uPj9fjjj2vDhg06d+6cHnroIW3dulVpaWmSpJCQEL377ru++44fP64PP/xQdevW1YULF3Ts2DE5nU4988wzOa7rjjvuUIECBTRs2DBNnjxZP/30k86cOaPnn39enTt3VoMGDRQZGamWLVv6nrt8+XJt2rRJxYsX15QpU7RmzRrt2LFDbrdb0dHR8nq9mjVrlkqXLq3evXvr0KFDWrt2rc6fP68JEyZo69at+vTTTxUREaGgoCCNHTtWo0aNkjFGBw8eVO/evXP1fQcA5A7CCVdc69at9cgjj+jee+/VRx99pClTpmju3Lm66667VKJECX3xxRdq1KiR70jj7dq1y3JfWFiY2rZtqy5duig6OlqRkZFq27Ztjutq2bKlunbtqocfflj79u3T5s2bdffdd+v8+fM6cOCAvF6vRowYoeDgrP9X/+6771SzZk397W9/U0hIiObOnat7771XhQsX1hdffKHNmzfr5ZdfVtGiRSVJTz31lFavXq1jx45pzpw5ql69utq0aaNOnTqpc+fOcrlcOnHihBYvXqypU6f6/T0GAOQNwglXXGhoqCSpTJkykqRChQopLS1N48aN8wXMq6++6nu81+vNct/ixYvldDolSbNnz9bOnTvVo0cPLV++3LfsizIzMyVJGRkZkqRq1appwoQJvvuLFi2aLZqkX0Lo66+/1vDhw/XMM8+oSJEiWZ736aef+k5q+2sOh0MXD7Z/8ZQjF68XKlRI0i9b0AAA1ybCCbmiSZMm6t27t66//nrVrVtXd955pyZPnqzMzEwNGjQoy32/Nm3aNP3000+6/vrrfVt/fu2DDz7Qnj17VK9ePVWrVk1BQUEaOnSozp07pzFjxlxynpdfflmHDh1SUFCQSpUqpa5du6pv374qUqSI7r//fj355JMaMGCAypUrp+7du6tr167q16+f0tLS9NRTT2n79u1Zlud0OnXjjTfqn//8p7Zt26ZbbrnlyrxxAICAwrnqcNUK1BMLAwCuXWxxwlXjvffe044dO3zXR40apcKFC/v9uQAAXMQWJwAAAEscxwkAAMAS4QQAAGCJcAIAALBEOAEAAFginAAAACwRTgAAAJYIJwAAAEuEEwAAgKX/BTcsAs6HSx1uAAAAAElFTkSuQmCC", - "text/plain": [ - "<Figure size 600x600 with 2 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "2023-12-19 18:08:48,681 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 1.6079 seconds.\n" + ] }, { - "data": { - "image/png": "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h+Kjjz5Cfn4+ACA/Px+///67pPm9+uqrUKvV+P777wEAp06dwt27d6v8a7P+/ftj165daNq0KRo1aoT+/ftjyZIl6N+/v9bhpbzP1enWrVuaX+7t3bsXLVu2hLW1Nfr374/Y2FgolUoAwJYtWzTh097eHmfPnkVJSQny8/M1W/Kepn///tizZw9ycnIghNAc30VUE3BLE9U4JSUl6NatG/Ly8rBhw4Zyu+Y6deqEESNGoGPHjmjevLnm5+bPa+fOnZgzZw4cHR0hk8nQqFEjbNmypdLdFk/66KOPsGDBAnTt2hVGRkYwMTHBmjVrcOXKFRw9ehSnT5/GP/7xD6xfvx5+fn44deoUgEe75+bPn49r166hefPm2L59O4BHu1GysrI0v5oqLi7GhAkT0K1bN63znzlzJiZPnox//OMfiImJ0frH+2mvn1wuh5+fHz7++GP88ccfmserUktl83jhhRewdetWDB06FHK5HAMGDEDjxo3RtGlTmJiY4ODBgwgODsZHH32EkpIStGjRArt27ZL0+n/55ZfYt28fOnfurKmrT58+2LRpU4XjzJ8/HyqVCq+//romZM2fPx8dO3Z86vxMTU2xb98+zJw5EyEhITAzM8PevXvRuHFj3L9/X1LNAODk5ASFQqHZBTZgwAAEBQVp7j9pzJgxGD9+POLi4vDuu+/C3t5e8ryeRceOHRETE4OZM2fC1NQUX3zxBWQyGd58800kJSWhV69eMDIyQufOnfHxxx8DAHx8fLBnzx44ODjA2toa3bp10wTTygwePBinT59G9+7dYW5ujjfffFOny0ZUFTJRul+CqAaQyWTIzs4u82ufui4mJgZxcXGIi4szdCl6k5OTozlOKC4uDqGhoWUCGhFRTcQtTUSkd5GRkfjyyy9RUlICc3PzCk8tQURUk3BLE1EVHT58GAsXLiz3eGhoKPz9/Q1QkXZhYWHYt29fuce/+uorvPzyywao6Nndu3dP64HaAwYMkPTrsosXL2rOEfS4cePGYfbs2dVR4lPV9PfDycmp3MHYHTt2ZKAlegxDExEREZEE/PUcERERkQQMTUREREQSMDQRERERScDQRERERCQBQxMRERGRBAxNRERERBIwNBERERFJwNBEREREJAFDExEREZEEDE1EREREEjA0EREREUnA0EREREQkAUMTERERkQQMTUREREQSMDQR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tZYaP348Nm7ciMaNGxuwSqrJYmJi0KJFC7i5uWHChAno1asXYmJikJSUBF9fX3zxxReYNWsWGjZsiEaNGmHJkiWYNm0aLC0t8ffffyMyMhJmZmaGXgyqREJCApKSknDr1i2sW7cO+fn5mDRpEpydnREdHY1Lly5h+/btOHnyJBo2bIi33noLAwcONHTZesXQRERERCQBj2kiIiIikoChiYiIiEgChiYiIiIiCRiaiIiIiCRgaCIiIiKSgKGJiIiISAKGJqoVYmJiyp2o80mPn7SRiEgKKb3lccuWLasR174kw+AZwcmgYmJiEB8fj4YNG6JVq1YoKipCUlISAgMDceTIERQUFGD48OE4efIk8vPzATw6S+2hQ4c0z92+fRs//PADnJycEBwcbNgFIqJa54svvkB8fDxeeOEFZGRkwMTEBMXFxdiwYQO2bNmCS5cuQalU4j//+Y9mnAsXLiAmJgbFxcXo1asX+vXrh02bNiErKwteXl4YOnQoOnXqhPHjx+PcuXPYtm0bGjZsaLiFpGrBLU1kcIMGDcLmzZtx/PhxrFixAj179sTGjRvRtGlTtGrVCqdPn4arqytGjRqFt99+Gxs2bCjzHAC8+eabDExE9EwGDhyIf//73zhz5gwsLCywfv16NG/eHElJSfj222+xadMmTJo0CV988YVmnPXr18PS0hJWVla4cOECTExMoFKp0LJlS+zcuRPAo8sXhYSEoFevXrh48aKBlo6qE7c0kcGVXgev9OKQpqamyM/Px+LFi2Fi8mgV3b59u2Z4tVpd5rmYmBjNtZKIiJ5VSUmJ5uLVMpkMj18w48n7hYWFmDVrFiwtLQEA//73vzFkyBC8/vrr+Oc//wkAaNSoEQCgQYMGUKlU+loM0iGGJqqR+vbti0mTJqFZs2ZwcnJCly5dsHLlShQXF2PmzJllniMieh7ffvstfvvtN7i4uCAtLQ1z585FQUEBOnXqhP79+2PmzJnIzs7GRx99hI0bNwIA5s+fjxkzZqBly5Zo164devfujc2bN+Pnn3+GqampgZeIdIXXniMiIiKSgMc0EREREUnA0EREREQkAUMTERERkQQMTUREREQSMDQRERERScDQRERERCQBQxMRERGRBAxNRERERBIwNBERERFJwNBEREREJAFDExEREZEEDE1EREREEjA0EREREUnA0EREREQkAUMT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MHDgQMhkMuzZswcPHjzQPOfq6gpXV1e4uLhUuiVFGyMjIyxevBgDBgyAkZERrKysEBsbW+VxoqOjsWjRInz99dfIz8/HqFGjNMdXHTlyBGFhYejSpQt69OiBjh07YsqUKZqwERISgo4dO5aZx5tvvong4GD0798fixYtKvPcnj178N5772nue3p6YvPmzRgzZgy+/PJLnD9/HkVFRRg8eLBmi0rpNEu3lGzfvh1t27YtM93JkycjICAAu3fvRsuWLTF//nwAwIgRI+Di4qI5Bszb2xs//vgjPD09IZPJEBAQgIkTJ1b6mmlbH57HqlWr8NZbb0EmkyEoKKjCaaalpSE6OhqJiYnYsmULfH19tS7nqVOnyo2bkpKCiRMnwtjYGI0aNUL37t2fu24iorpKJqrydZieSVFRERo0aKDZ5RMVFVVumGXLlsHJyQlvv/22ASp8Ph4eHjh48GCVwxwREVFtwi1NejB16lRcv34darUan332GSIiIrB//37N8506dULz5s0NWOGjLTQFBQWa+3PnzsVbb72ll3knJydj6tSpZR7buXMn2rRp81zT/fLLL8sEVCsrK+zZs+e5plnqp59+KneOpGPHjj31eCBdLSsREeketzQRERERScADwYmIiIgkYGgiIiIikoChiYiIiEgChiYiIiIiCerUr+fUajVu376NJk2alDmJHxHVLEII5OTkoHXr1pWeMJSIqCapU6Hp9u3bmstdEFHNl5aWBmtra0OXQUQkSZ0KTU2aNAHwqBGbm5sbuBoiqohSqYSNjY3mM0tEVBvUqdBUukvO3NycoYlqDLVajcLCQkOXUWM8fsFm7kYnotqkToUmoppGrVYjJSUFDx8+NHQpNYaZmRksLS0NXQYRUZXpNDTduHEDK1euhEKhwN69e7Fr1y7Ex8dDpVJpLm8xffp0mJqawsPDAyNGjMCcOXMAAGFhYfj9999x/fp1jBkzRpdlEulMYWEhHj58iBdffLFaLuJb2xUUFODu3bsoLi42dClERFWm09BkZ2eHbdu2wdfXFwCwf/9+7NmzBwcPHsS+ffsAAL6+vvD29oa/vz8GDBiAdu3aoW3btkhKSkJsbCwiIiIqnL5KpYJKpdLcVyqVulwcomfWsGFDZL38iuTh22SklXts2bJlWLx4MUxMKv7YTpgwAZ07d4azszP69OmjeTwmJgaurq6w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", - "text/plain": [ - "<Figure size 600x600 with 6 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stderr", + "output_type": "stream", + "text": [ + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 27.49it/s]\n" + ] }, { - "data": { - "image/png": "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iouLtceVnThxQtKWMKK6iFuaqN4qKSlBr169kJeXh02bNpXbNdetWzdMnDgRXbt2RatWrbQH3T6pPXv2YOHChXBycoJMJkOzZs2wbds2SbsvSn300UdYsmQJevbsCSMjI5iYmGD9+vW4du0ajh49inPnzuFf//oXQkND4eXlhbNnzwJ4sHvu3XffxY0bN9CqVSvtHy4fHx9kZWVpf1FVXFyM119/Hb169apw/gEBAXjzzTfxr3/9CxEREejZs+eTrZRHhIWFwdPTEy1btsSQIUMkNTuV8fHxwTPPPINXXnlF+9jJkyfRqlWrCod3cHBAZGQk/P39kZ+fj8LCQvTq1avCLU8Vee+99xAQEIBu3boBAF599VV4eXlVO/fQoUNx+PBh7a6oZ555Br169YKRUfnvqt27d0fXrl3h5OQEe3t7HDp0qNrzqy5ra2v06dMHSqUSc+bM0R6sHh0djYCAACxatAjm5ubYv3+/dutaeHg4xowZg1atWmm3Ij6Oqakpvv76a8yePRslJSVwdnZGjx49dLZcRLokE6X7G4jqEZlMhuzs7DK/5mnoIiIicPDgwcee44iIiHSDu+eIiIiIJOCWJiId+fbbb7F06dJyjwcGBmp/iVUXBAcHIzo6utzj//nPf/Dcc8/pbL4zZ87E//73v3KP//TTT2jatOljxx87dqz2F3GlrKysnuhM2dVx6dIl+Pn5lXt82rRp2jN9G5KhXleihoxNExEREZEE3D1HREREJAGbJiIiIiIJ2DQRERERScCmiYiIiEgCNk1EREREErBpIiIiIpKATRMRERGRBGyaiIiIiCRg00REREQkAZsmIiIiIgnYNBERERFJwKaJiIiISAI2TUREREQSsGkiIiIikoBNExEREZEEbJqIiIiIJGDTVE/17dvX0BF05tKlSzh37lylzysUCri6ukKhUGDx4sUAgE6dOmHw4MEYPHgwXn31VSQnJwMAIiIi0KlTJygUCigUCnz99dcVTrOm69Pf379G41UlJiYGgwYNgouLC/z8/KDRaGp9HkS1jTWp4dakhzP7+PjU+vTrExNDB6C6TaPRwMhIf721RqPBpUuXkJubi379+lU6XExMDJo3b669b2lpidjYWADA8ePHMXHiRPz0008AgHnz5mHOnDk6ybpt27Zan+5LL72EUaNGAQD8/Pxw9uxZuLi41Pp8iOoj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ScCmiYiIiEgCNk1EREREErBpIiIiIpKATRMRERGRBGyaiIiIiCRg00REREQkAZsmIiIiIgnYNBERERFJwKaJiIiISAI2TUREREQSsGkiIiIikoBNExEREZEEJvqcWWpqKgICAvDUU0+hc+fO6NChA2JjY6FWq7FlyxbExMQgMTER1tbWmDFjBubPn49169bBzMxMnzGJiIiIytHrlqb4+Hh4enri888/x8WLF3HgwAF89tln8PLyQnR0NC5cuIBly5bh1q1b2Lt3L8aPH8+GiYiIiOoEvTZN/fv3x44dOzBkyBCMHDkSMpkMAGBnZ4f09HRMmjQJK1asQP/+/XH58mXEx8djw4YNKCkpqXB6arUaKpWqzI2IiIhIF/TaNO3cuROrVq3C999/jyNHjmgfT01NhY2NDbp3747g4GCcP38evr6+KCwshL29PX799dcKpxcSEgJLS0vtzdbWVl+LQkRERI2MTAgh9DWzhIQEBAUFoXXr1mjevDl69+6N06dPo6CgAJ988gmaNWuG06dPIy0tDd7e3pgzZw6AB81Ry5Yty01PrVZDrVZr76tUKtja2kKpVMLCwkJfi0V6kNFeWkPcPiNNx0moNqhUKlhaWvKzSkT1il6bJl1jIW642DQ1LPysElF9xFMOEBEREUnApomIiIhIAjZNRERERBKwaSIiIiKSgE0TERERkQRsmoiIiIgkYNNEREREJIGkC/ZevXoVW7duRXJyMoyMjGBiYoIRI0bAz88PJiZ6veYvERERkUFI6ni+++47BAUFwcrKSvvYmTNncPr0aQwePFhn4YiIiIjqCklN07x58wAA+fn5iImJQe/eveHi4qLTYERERER1iaRjmu7duwcACA8Px7PPPouwsDCdhiIiIiKqayRtafroo4/g6OiIdu3aISoqCqamprrORURERFSnSGqa3n//fZw9exb79u3DnDlz8Nxzz+k6FxEREVGdIqlp2rhxI+7du4dBgwbhm2++gUwmw4IFC3SdjYiIiKjOkHRMk1KpxOLFi5GQkICFCxdi7Nixus5FREREVKdIappGjx6N7du3Y/r06QDA3XNERETU6EjaPZeSkoL58+eXOZHlzZs3kZmZif79++ssHBEREVFdIalpatu2Lfz9/ZGVlaU9I/iAAQMwY8YMXecjIiIiqhMkNU1yuRxyuVzXWYiIiIjqLL1eOE6j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", - "text/plain": [ - "<Figure size 600x600 with 6 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "2023-12-19 18:13:11,132 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.1623 seconds.\n" + ] }, { - "data": { - "image/png": "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UVXGpolIh8zMzGBubo67d+8aOkqlYW5uXuppE4iIKitWLiIdMjIygp2dHS+j8hQzMzNkZWUZOgYRUbmxaSLSMSMjI50cBE5ERPrF3wMTERERycCmiYiIiEgGNk1EREREMrBpIiIiIpKBTRMRERGRDGyaiIiIiGRg00REREQkA5smIiIiIhnYNBERERHJwKaJiIiISAY2TUREREQysGkiIiIikoFNExEREZEMJvqcWVJSEqZMmYIGDRqgdevWaN68OaKjo6HRaLBu3TocPHgQ8fHxsLa2xtixYzFt2jQsX74cSqVSnzGJiIiInqPXLU2xsbHw8/PDN998g/Pnz2PPnj34+uuv4e/vj6ioKJw9exbz589HQkICdu3ahYEDB7JhIiIiokpBr01Tt27dsGnTJvTq1QteXl5QKBQAADs7O6SkpGDIkCFYuHAhunXrhkuXLiE2NhYrV65EQUFBsdPTaDRQq9VFbkRERES6oNemafPmzVi8eDF++eUX/Pjjj9LjSUlJsLGxQbt27RASEoLTp09jxIgRyMvLg729Pc6dO1fs9EJDQ2FpaSndbG1t9bUoREREVMMohBBCXzOLi4vDokWL0KhRI9StWxedOnXC8ePHkZubiy+//BJ16tTB8ePHkZycjICAAEyaNAnAk+aofv36z01Po9FAo9FI99VqNWxtbaFSqWBhYaGvxSI9SG0mryFulpqs4yRUEdRqNSwtLflZJaIqRa9Nk66xEFdfbJqqF35Wiagq4ikHiIiIiGRg00REREQkA5smIiIiIhnYNBERERHJwKaJiIiISAY2TUREREQysGkiIiIikkHWBXuvXLmC9evX4/bt2zAyMoKJiQn69u2LUaNGwcREr9f8JSIiIjIIWR3PTz/9hEWLFsHKykp67MSJEzh+/Dh69uyps3BERERElYWspmnq1KkAgJycHBw8eBCdOnWCq6urToMRERERVSayjml68OABACA8PBwtW7ZEWFiYTkMRERERVTaytjR9/vnncHR0RNOmTREZGQkzMzNd5yIiIiKqVGQ1TZ9++ilOnjyJ3bt3Y9KkSXjttdd0nYuIiIioUpHVNK1atQoPHjxAjx49sG/fPigUCkyfPl3X2YiIiIgqDVnHNKlUKsyZMwdxcXGYMWMGBgwYoOtcRERERJWKrKapf//+2LhxI8aMGQMA3D1HRERENY6s3XOJ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", - "text/plain": [ - "<Figure size 600x600 with 6 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stderr", + "output_type": "stream", + "text": [ + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 46.25it/s]\n" + ] }, { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAJRCAYAAACz2Ti7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAABlbElEQVR4nO3dfXzO9f////uxmaHscF7ZRq2E3k4ivOVszs8+6b2WSCOFWHIWwkRaYcaSUU7eEUUqSpKzSpnT3r3jTZHS2+k23hWzjmNzshPH8/eHn+ObbLxWO3bMdrteLseF47XXns/H6zWvp/uer9fxetmMMUYAAAC4Lh9vFwAAAHCjIDgBAABYRHACAACwiOAEAABgEcEJAADAIoITAACARQQnAAAAiwhOAAAAFhGcAAAALCI4AQAAWERwApAns2bN0s8//3zd9W6//Xbt3btXkjR+/HjVqlVL9evXV6NGjfTpp596uMqCsWvXLvXs2VOS9Ntvv2natGlXfL1169ZavXq1FyoD4CkEJwCWuFwuuVwuy8Hp91q2bKk9e/bo22+/1aJFi9SjRw+dPXs2X+rKzs6+5vu8fG9eNWrUSO+//76knIMTgKKH4ATko2+++UZt27ZVo0aN1KBBA61cuVKStGDBAt19991q2LChXn75ZdlsNvf3fPrpp2rYsKHq1aun0NBQHThw4Jp9pKWl6amnnlKTJk1Ur149DRw4UJmZmTp48KCCgoJ05MgRSVJcXJw6d+4sl8ulJUuWqG3btnrwwQd1zz33qFWrVjp27Ji7zbi4ODVp0kQNGzZU586ddfz4cUnSiy++qIcfflidOnVSnTp19PLLL+vkyZPq2bOn7r33XveM0vV06dJFpUuXliTVrVtXxhidOnXqT+3LY8eOqVy5cho7dqwaNmyo1157Ta1bt9awYcN0//33q2PHjrp48aKee+451alTR3Xq1NHQoUOVmZkpSXriiSfUr18/tWrVSnXq1Mm1/2bNmmnnzp2SpDFjxigwMND9tZCQECUmJiohIUH33nuvJCkyMlJpaWm699571ahRI/e627dvV8uWLXXnnXcqMjLymtscFxengQMHut//9ttvqlSpks6cOaN9+/apRYsWatiwoe655x5NnjzZvV5gYKBOnjwpSerRo4eaNWsmScrIyFDFihWVkZFxzX4B5IEBkC9SU1PNvffea06ePGmMMebUqVMmODjYJCQkmFtvvdX873//M8YY88ILL5jLh94vv/xiKlSoYL777jtjjDHLli0ztWvXNi6XK9d+nnrqKfPWW28ZY4xxuVymf//+Zvr06cYYY5YvX27uu+8+s3nzZnP77bebX3/91RhjzOLFi03JkiXNgQMHjDHGxMbGmg4dOhhjjHnnnXfMgAEDTHZ2tjHGmLffftt07drVGGPMpEmTzG233WZ+/vlnd//Vq1c3e/bsue7+yG29hQsXmvr1619zG3Pbl8nJyebo0aNGknsfGGNMaGio6dSpk8nMzDTGGDN37lwTGhpqLly4YLKyskyXLl3MtGnTjDHG9O3b19SrV884nc5r1j9x4kQTHR1tjDHmvvvuM02aNDHff/+9OXTokKlRo4YxxpjNmzeb+vXrG2OMOXr0qLHb7Ve0ERoaasLCwkxWVpY5d+6cuf32283OnTuvud2VK1c2qampxhhjZs6cafr162eMMcbpdJoLFy4YY4w5d+6cuffee81XX31ljDGmT58+5q233jIXL140d999t7nnnnuMw+EwmzZtcv+cAeQPZpyAfLJz504dOXJEXbp00b333qv27dtLkr799lt17txZt956qyTpqaeecn/P119/rbp166pu3bqSpIiICJ08eVInTpzItZ/Vq1drxowZuvfee9WgQQNt27ZNhw4dkiT16tVLDRs2VKdOnbR06VJVrlzZ/X3NmjVT7dq1JUkDBw5UQkKCLl68qNWrV2vTpk267777dO+992r69OlKTEx0f1/Xrl11yy235Ms++uKLLxQdHa3333//ilm3P8ptXx48eFCS5Ofnp969e1/xPb1795afn58kadOmTXriiSfk7++vEiVK6KmnntLnn3/uXveRRx5R2bJlr1lr+/bttWnTJp0+fVolSpRQjx49tGnTJm3atEnt2rWzvM09e/ZUiRIlVLp0ad177706fPhwruuWK1dO3bt315tvviljjObNm6chQ4ZIks6fP68BAwaobt26atq0qY4fP+6e8btc6549e1S/fn21bdtWCQkJea4VwPWV8HYBQFFhjNHf/vY39+mdy2bPnn3F+2sFBqv9fPjhh7r77ruv+lp2drb279+vChUqXDN8/bG9qKioK04R/d7NN9/8l+q9bMuWLXryySf1ySefqGbNmtetKad9KV06VVemTBn5+Fz5e9+16vzjPreyTffff7/279+vjz/+WG3btlX79u01ceJE+fv7uy8It6JUqVLuv/v6+l73uqphw4bpwQcfVO3atVW5cmU1aNBA0qUL7CtVqqQ9e/aoRIkSCg8P14ULFyRdCk5RUVG655571L59e91yyy3atGmTvvrqK82bN89yrQCujxknIJ80a9ZMR48e1aZNm9zL9u7dq9DQUH366af69ddfJUmLFi1yf71p06bat2+f9u/fL0l67733FBgYeMX1NH8UFham2NhY93/Aqamp7hmncePGqWbNmtq2bZtGjx7tXi5JX331lX788UdJ0sKFC9WmTRv5+voqLCxM8+fP15kzZyRJWVlZ2rNnT679BwQEyOFw5GnfbN26VX369NHHH3+s+vXrX3f93Pbl5euUrqd9+/Z6++23lZmZqezsbC1cuFAdO3bMU81+fn5q2rSpXn75ZbVv31716tXTgQMHlJCQoLZt2161fkBAgM6fP2+5xtzUqlVLISEhGjhwoHu2Sbr0cw4KClKJEiV08ODBK2bQqlatKrvdrvnz56t9+/Zq06aN1q5dq2PHjqlhw4Z/qR4AV2LGCcgn5cuX17p16zR69GiNGjVKWVlZqlatmlavXq0JEyaoefPmKlu2rDp37iy73S5Jqly5st555x09/vjjys7OVvny5bVy5cprzkq9+uqrGjdunO699175+PioRIkSmj59un788Udt3LhR//73v1WmTBnNnDlTPXr0cM/aNGvWTGPHjtWhQ4dUsWJFvf3225IunR5MSUlRmzZtJF2aterXr597puOPhg0bpqeeekplypTRkiVL3BdHX0v//v2VkZGhJ5980r1s6dKl7lOUedmXVgwcOFCHDx92h4bWrVtrxIgRlr7399q3b6+EhAQ1b95cNptNTZo00cGDB1WhQoWr1q1QoYIef/xx1atXTzfffLN27dqV5/4ue+qppzRkyBB1797dvWzChAnq06eP3nrrLd15551Xhbf27dtr7dq1CgkJkSTdeuutatCgwVUzcwD+Gpsxxni7CKCoS0tLc19TEx8fr40bN2rDhg0F1v+SJUu0evVq7il0gxgyZIhuueUWTZw40dulAPgDZpyAAjBu3Djt2LFDWVlZqlq1qhYsWODtklAInTx5Um3btlWFChWKzE1CgaKGGSegEFq/fr3Gjx9/1fKoqKg8XZjsaS+99JJWrVp11fIPP/xQd95553W/PzIyUv/617+uWv7VV1+57/vkSb/++muO1z516NBBM2bM8Fi/3t5uAH8ewQkAAMAirhoEAACwiOAEAABgEcEJAADAIoITAACARQQnAAAAiwhOAAAAFhGcAAAALCI4AQAAWERwAgAAsIjgBAAAYBHBCQAAwCKCEwAAgEUEJwAAAIsITgAAABYRnAAAACwiOAEAAFhEcEKhkZCQoJ9++inXrzdq1EiSFB0draZNm6pp06ZatmxZQZWXJxs3btRHH30kSfrnP//pXt66dWulp6d7qywA13Hs2DF99tlnuX798jH8ySef6O9//7tatGih4cOHF2CF1v3888+aNGmSJGnJkiXKzMyUJL344otau3atN0u7oRGcUCi4XK7rBqfL+vTpo3/961/aunWrYmNjZYz5U/1d6/311r+ezp0766GHHpJ0ZXACUHi5XK7rBqfL6tevrx07dmj79u369ddftWvXrjz3Z4y5YvzK73Ho1ltvVXR0tKQrgxP+GoJTIZCQkKBOnTrpoYceUv369fX++++rU6dOatKkiVJSUtS+fXuFhoaqQ4cOcjqd+vnnn9WyZUtduHBBb775pvs3ij/atWuX2rRpo5YtWyouLk6SlJiYqObNm6tr16569NFHtWTJEknSqFGj1KJFC7Vt21bHjh2z3F6fPn2UkJCgX3/9VS1bttT58+f1xBNPqH///mrfvr169uypixcvyhijoUOHqk2bNmrfvr2Sk5MlSffcc4+efPJJPf3001qyZImioqL0+OOPX3N/hYSESJL8/Pzk6+ub63pTp05VaGioWrVqpX379kmSGjZsqOHDh6tPnz568cUX9cQTT6hr16767rvvctwHl+sbOXLkVe2PHz9eO3fu1OHDh1W6dGllZmbqrbfe0uLFi7VkyRK99tprmjdvng4ePKjWrVvryy+/lCS98MILatWqlYYMGZJj3a+++qqWL18uSfrpp58UEREhl8t11b+Dzz77TFOnTpUkVatWTVu3btXx48fVt2/fa+4/4Hp++eUX97HevXt3xcbG6v3335ckHT58WL169ZIkDR48WK1atdJzzz2n1q1b59jW6dOnFRYWprZt2yoiIkIXL15Udna2unfvrvbt2+uZZ57RE088IUl677339Pe//11NmzbVp59+arm9N954Q9HR0TLGqHPnzvrhhx+0ZMkShYWFqWvXrmrZsqVOnDgh6VKAaNmypZo1a+Y+Jlu3bq0xY8aoU6dOmjdvnt5//321bt1aZ86cyXUfVatWTSVKlJAklSxZUj4+Of93unHjRnd/7777riTpiSee0DPPPKOOHTvqgw8+ULdu3fTQQw9pyZIlOe6D39f3R9caB44dO6bu3bvrq6++0t69e9WlSxfNnDlTkvT++++ra9euCg0N1fnz569qd8+ePRo4cKCkS4Ht/vvvl8vl0siRIxUaGqomTZpo7969OnfunP7v//5PkvT444/rpZdectdcZBl43ebNm0379u2NMcYsWLDAhIWFGWOMmTVrllm0aJE5e/asMcaYmTNnmn/+85/GGGPee+89ExERYVq3bm0yMzNzbLddu3bmzJkzxhhjHnjgAfPzzz+bZ555xnz66afGGGN69eplFi9ebL755hvTs2dPY4wxW7duNU8++aTl9s6cOWOaNWtmHnzwQfP1118bY4zp27evWbBggTHGmLFjx5oPP/zQfPLJJ2bixInGGGP+9a9/mWeeecYYY0zZsmXdbU6aNMl88sknue6n++6774r3M2fONC+//HKO6+7bt888/vjjxhhjTpw4YR588EFjjDG33367+e9//+vub8KECcYYk+s++H19f7R+/Xozbdo0s3jxYtO5c2ezfft2079/f3Po0CGzePFiM2fOnKvqDg0NNVu2bDHGGNO0aVPz22+/XdXuL7/84q73hRdeMBs2bDDGmKv+HTidTvPAAw+Yo0ePms6dO5vJkyebpUuXmoULF+a6DwErMjIyTFZWljHGmGHDhpm3337bhIeHG2OMmTJlivnoo4/MN998Y3r16mWMMebTTz81oaGhObY1atQo88UXXxhjjJk2bZpZuXKlWblypYmKijLGXBrz+vbta7Kzs029evXM+fPnjcPhuOp4v1Z7xhjz4IMPmqeeesrExcUZY4xZvHixu74NGzaYoUOHmtOnT5tOnToZl8tl0tPT3TWHhoaaTZs2GWMujcejRo3Kdd+EhoaatLQ09/t///vfpnPnzjmu63K5TLNmzUxGRobJzs42zZo1M9nZ2aZv377u43Tz5s2mZcuWxuVy5boPfl/fH11rHDh69Kh5+OGHr6p70qRJJjo62hhjzJgxY8zHH3+cY9utWrUyFy5cMF9++aUZO3asMeb/jUP/+c9/zGOPPWaMMaZt27YmOzvb9OjRw/To0cMkJSWZPn365LoPb3QlvB3ccEm9evUkSVWrVnX/PTAwUN9//72eeuopJScn68yZM+revbsk6eGHH9bIkSMVGxsrPz+/HNv87rvv3KeLUlNTlZSUpEOHDum+++6TJPefhw4dUuPGjSVJjRs31vjx4y2316hRI7Vo0UK7d+9WkyZN3Otebrtx48b673//K5vNpo8++khbt26VMUbBwcGSpLvuukvly5fP8/767LPPtG3bNn3wwQc5fv3AgQPauXOn+7eeyzNT5cuX11133eVe7/J257YPrlVfs2bNNG/ePN16660aN26ctm7dqsOHD+vOO+/Utm3bcq29QYMGki79fH/77TfZ7fYrvl6lShX5+Pjol19+0RdffKEXXnhB6enpGjRo0BX/DsqWLauzZ89q8+bNGjJkiN5++20dP35czz333PV2H3BNKSkpevrpp5WamqqTJ0+qYcOGcjgccjqd+vTTTzVq1Ch99NFHV40lOTlw4IC+/vprvfTSSzp//rz69Omj9PT0K753586dOnXqlKpVq6ZSpUqpVKlS8vPzU3Z2tntW51rtSVJkZKR69uypX375xb3u78eh+Ph4HT58WN9//73atGkjSTp16pR73cvHf14kJydrxIgR7usZ/+jUqVP66aef1LFjR0nSb7/95u7z9/01atRINpst131wrfr+7DhweRwKDg5Wampqjus8+OCDWrdundavX68RI0ZIkmbMmKFNmzZJkvtn06BBA3388ce6/fbblZSUpC+//FItW7a8Zv83Mk7VFRI2my3Hv5cqVUp33HGHtmzZoieeeMJ9PnzatGkaPny4FixYkOvFxvXr19fHH3+shIQE/ec//9F9992nu+66S3v27JEk95933XWXvvnmG0nSN998oxo1alhu76efftLevXt11113acOGDe51L7e9a9cu3XXXXapVq5Z69OihhIQEbdmyRYsXL5akK6a3/fz8dPHixevuq3379unll1/W22+/nev0eK1atRQaGqqEhAQlJCRo48aNV/X3+/e57YPc2pcku92utLQ0ORwOtWjRQp999pluvfXWq9b7/c/zj+9NLtdnRUREaMSIEWrcuLF8fX316aef5vjvoH79+po3b55atmwpm82mH3/8MdefH2DV8uXL9cADD2jLli3q3LmzjDEKCwtTbGysQkJC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EiXUqFEj7d+/P8f2pk6dqtDQULVq1Ur79u2TJL311ltq1KiR+vbtq3vuuUeSlJycrPbt26tVq1YaMmRIrvX9sb2ff/5ZLVu21IULF/Tmm29q0qRJkqRatWqpV69eatSokZYvXy5JOnLkiDp16qTWrVvr2WeflXRpFunRRx9Vt27d9O677+rgwYNq3bq1+3tyUqpUKVWtWlWSVLJkSfn45PzP9/Tp0woLC1Pbtm0VERGhixcvKiEhQd26ddNDDz2kJUuWqGHDhho+fLj69OmT4z74fX0bN268qo/WrVtLkiZOnKj+/ftLkrp06aILFy6odevWSk9P17x58xQfH6+OHTtKkv73v/+pZ8+eqlu3rr788ssca2/VqpU7DI8fP16ff/65Pv/8c4WGhqpx48aaNm2aJCkiIkInT57UF198oTvvvFOSFB0drc2bN+e6/wAA+cCgUNi8ebNp3ry5cblc5sCBA6Zbt26mfv365rfffjP79+83vr6+JjMz0zRu3Nj9Pc8//7z59NNPr2pr37595vHHHzfGGHPixAnz4IMPmuzsbFO/fn1z4cIFk5KSYm6++WZjjDHPPPOM2bBhgzHGmH79+pktW7ZYas8YY9577z0TERFhWrdubTIzM40xxtx0000mJSXFXLhwwdSvX99kZ2ebRx55xBw6dMgYY0xkZKT55ptvzOLFi03v3r3dfdx333257pvFixebOXPmuN9nZGSYVq1amZ9++inH9UeNGmW++OILY4wx06ZNMytXrjSbN282LVu2NC6XyxhjzO23327++9//5roP/ljfH/Xo0cP8/PPP5tFHHzXdu3c3mZmZpmPHjsYYY0JDQ01aWtoVdR89etTcfffdJisryxw4cMA89NBDObb7yiuvmPfff9+4XC7TrFkzc/HiRXP27FljjDEXL140jRo1MufOnTNz58417733npk0aZLp0qWLSU5ONl26dDHnzp3LtWYAwF9XwtvBDf9PgwYNZLPZVLt2bf3vf//TtGnT9I9//EPVq1fX3//+d/n5+cnPz08ul0s+Pj5yOByqUKHCVe0cOHBAO3fudM+K+Pr66tSpUwoODpa/v7/8/f11++23S5IOHTqkxo0bS5IaN26s//73v2rVqtV125Okhx9+WCNHjlRsbKz8/PwkSXfccYe7puDgYJ0+fVo//vije1YmLS1NnTp1cvf3ZwwcOFCDBw9WjRo1cvz6gQMH9PXXX+ull17S+fPn1adPH1WqVEmNGjWSzWaTJJUvX1533XVXrvvA19f3mvW1bNlSmzZtkr+/vypXrqw1a9aoUaNG16y7Tp06KlGihIKDg5WamprjOhEREXr66ad122236f7775ePj492796t6OhoZWVl6dixY/r111/VsmVLzZs3T2fOnFH//v31xRdfKDs7W6VLl77u/gMA/HmcqitE9u7dK2OMDh48qNtuu02dO3dWQkKCnn/+edWtW1fSpf/YExISlJ2drd27d+tvf/vbVe3UqlVLoaGhSkhIUEJCgjZu3KjKlSsrOTlZmZmZSk1N1bFjxyRJd911l/s6nG+++SbHMJJTe5I0bdo0DR8+XAsWLFB6erqkSxdBp6amKiMjQ0lJSapUqZJq1qypt956SwkJCdq1a5ceeOABSbriVNvlQHM90dHRCgkJUc+ePXNdp1atWpo6daoSEhL09ddfa9CgQVf19/u/57YPcjsVKF0KTjNnzlSjRo3UsmVLTZ06VS1btrxiHT8/P128eDHHbTTG5NjuLbfcImOM4uPj1adPH0nS9OnTNX/+fG3evFmBgYEyxuhvf/ub9u7dq5IlS6pVq1aaPXu2GjZsmGu9AID8QXAqROx2u7p166bevXtr8uTJGjFihNq2bavx48dr8uTJkqSxY8cqJiZGrVq1UmRkZI4zDPXq1VONGjUUGhqqNm3aaMaMGfL19dWIESPUrFkzDRs2TNWqVXO3N2PGDLVs2dL9n7CV9r799lvt2rVLY8aM0bhx4zR69GhJl2aZhg0bpubNm2v06NHy9fVVbGysIiMj1aZNG3Xo0EEnT568qo82bdroH//4h1avXp3r/klKStLLL7+sL7/8Uq1bt1ZUVFSO6z3//PN69dVX1bZtW7Vt21bffvvtNfe7lX3wR3Xr1tXhw4fVqlUrtWrVSt9++62aN29+xTr333+/Vq5cqccee+y67f3eY489poMHD6p+/fqSLs3sPfTQQ+rdu7fKli0r6VIIq1ixou677z5VrlxZZ8+etVQ3AOCvsZncfvVFgUpISNDatWsVFxfnsT6ysrLk5+enM2fOqHPnzh75xFejRo20a9eufG+3OPnwww919OhRdxgFABQeXON0gzt48KD7VNRl77zzjgIDA69ad968eVq1apXS0tLcM1h/pT1PeP/9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xw4AFBhTDLz99ttmzZo1xhhjevTo4V4+YMAAk5qaan777TczcOBAc/z4cTNy5EhjjDGjR482iYmJhbLO33vooYcKbY0rV640CxcuNKNGjSqUNf7yyy+mY8eOZuzYsea1114r0BrzUmdqaqqJjIw0xhgTGRlpUlJSvF6jMcZs3rzZzJkzxxhjvH7sAEBBKRan6pKTk92PX8npGXl2u11paWk6ceKEe71q1aopOTm5UNZ52XvvvaeOHTsWyhp/+eUX7dmzR+3atSvQ+vJS45EjR1ShQgVNmzZNx48f1+HDhwtlnQEBAcrIyND//d//KSsrSxUqVPB6jX/k7WMHAApKsQhOl5+RJynHZ+Q5nU6VLVtWgYGB7vWSkpIUFBRUKOuULoWm48ePKzIyslDWuGXLFv3666966aWXtHnzZv3000+FrsbAwEB3CClXrpzS09MLrMa81Pmf//xHt99+u9atW6c77rhDe/fu9XqNf+TtYwcACkqxuB1BXp6RFxUVpYyMDPn7+7uvMylsdWZlZalbt2564IEHVKZMGc2cObPQ1Xj5Gqdjx47ptddeK/BrnKzWOHHiRJ09e1ZZWVmaM2dOgdWYlzpDQkLUv39/lS9fXqdPn9bixYt10003ebXGr776SjExMUpNTdWIESP08MMPe/XYAYCCUiyCEwAAQH4oFqfqAAAA8gPBCQAAwCKCEwAAgEUEJwAAAIsITgAAABYRnAAAACwiOKFQWLJkie677z65XC79+OOPevHFF71dEgAAVykWD/nFjaFu3bpatmyZmjRposzMTD355JOy2+2qUKGCXnjhBbVo0ULh4eHatWuX4uLilJWVpVdeeUXGGN15550aMWKEtzcBAFDEMeOEQqN79+5au3atLly4oM8++0ytWrXSrFmzdPz4cffjR0aOHKlevXppy5Ytmjt3rkqXLq2KFStq37593i4fAFAMMOOEQmXo0KGaPXu2jDGy2WxXfO3yY0b8/PyUkZEhl8ulPn36qF69et4oFQBQDBGcUKi0bNlSM2fOVMeOHbVlyxbt27dPwcHBCggIuGrdIUOGaPz48brttttUtmxZTZo0yQsVAwCKE55VBwAAYBHXOAEAAFhEcAIAALCI4AQAAGARwQkAAMAighMAAIBFBCcAAACLCE4AAAAWEZwAAAAsIjgBAABYRHACAACw6P8D91qJvKoAgscAAAAASUVORK5CYII=", - "text/plain": [ - "<Figure size 600x600 with 4 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "2023-12-19 18:19:53,860 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.1316 seconds.\n" + ] }, { - "data": { - "image/png": "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mmnHjh3q1KlThfvUqFHD87W/v7/KysrOub6+ffsqPj5eq1evVmpqql5//fXfPL7IGKPJkydrxIgRld5+rm0/9dRTqlevnrZt26aAgAD16dNHxcXFnvsGBQX99gP/hT9yUPX55j+XXz+uM9cdDoccDofKysqUkZGhN954Q19++aWuvvpqffTRR/rv//7v8z4GY4xuvPFGffHFFxfwiM5e3/mea9vXx69nHDp0qF588cVK72v75xcQEFAhVn85V8eOHZWZmak1a9YoPT1dzzzzjLZt28bxUkAlOMYJqER8fLy+/fZbbdy4UdLpA6ezs7NVrVo1NWzYUMYYpaam/qFtfPvtt2rQoIGGDBmil19+Wf/+978lSb1799asWbPkcrkknT7+RJKSk5OVlpZW4biYbdu2nXc7x48fV1hYmAICArRnzx6tXr3aar7atWsrNjbWc6zWvn37lJGRcVYs/tqXX36pb775RpI0d+5cdenSRf7+/hc8v43jx4+rdu3aqlu3rkpKSvT22297buvatas+++wzzzFPaWlpntvi4+OVnZ2tNWvWeL6XmZmpkpKSc26rW7dumjdvnowxcjqdWrJkSYU5LuS57tq1qxYvXqzS0lKVlpbqvffe89zWu3dvLVy4UDk5OZJOvxb/85//VLqeDh06KCsrSzt37pQkvf/++2rcuLEaN26spk2b6sCBA57X04IFCzzLZWdnKygoSP3799fs2bO1d+9enThxwmp24ErDHiegEqGhofrwww81ceJEFRYWys/PT88//7zuvfde3Xjjjapbt+4f/rX7Dz74QAsXLlT16tXldrs9f6FPmjRJTz/9tGJjY1WtWjU1atRIK1eu1MCBA5Wfn68uXbpIksrKyvTXv/5Vbdu2/c3tTJkyRYMHD9Y//vEPNWvWTF27drWecdGiRRo5cqRSU1PlcDg0d+5cNWnS5DeXiY+P16RJk7Rv3z7VrVvXEwEXOr+Nnj17auHChWrevLnq1q2rbt26ed6eatWqlaZOnarExEQFBQWpT58+nuVCQ0P1ySef6PHHH9fEiRNVWlqqJk2a/OZB8M8884yGDx+uFi1aqH79+kpISPBE7oU+1w8//LCysrLUsmVLhYaGKi4uTj/88IMkKTExUS+//LLuuecelZWVqaSkRHfccYfi4uLOWk/9+vW1aNEiDRkyRGVlZQoNDdWyZcvkcDjUqFEjPfnkk2rfvr0aNGhQ4e3J9evXa8aMGZ69YK+88opCQkKsZgeuNA5jjKnqIQDgSldYWKjatWurtLRUAwcO1E033aRJkyZV9VgAfoVwAgAfcPPNN8vlcqm4uFgJCQmaPXu2atasWdVjAfgVwgnwsri4uLMOAr7xxhu1aNGiKprojzl69Khuu+22s77fvXt3vfLKK797fc8995zS09PP+v7//u//qlmzZhc04x+VmZlZ6dnAhw4dqkcfffTSDwTAZxBOAAAAlvitOgAAAEuEEwAAgCXCCQAAwBLhBAAAYIlwAgAAsEQ4AQAAWCKcAAAALBFOAAAAlggnAAAAS4QTAACAJcIJAADAEuEEAABgiXACAACwRDgBAABYIpwAAAAsEU4AAACWCCdcFC+99JKys7Ot7x8XF+fFaX5bv379tH///gtatirnBgBUvYCqHgCXP7fbrb/97W9VPcafitvtlp8f/64BAF/DT2YfYozRI488osTERHXp0kULFixQ586dFRsbqwULFkiSpk6dqsGDB6tXr15KSkpSUVHRWespLS3VXXfdpc6dO6tz584qLi5WXl6e7rzzTiUlJWngwIGSpM8++0yJiYmKj4/XkiVLJEnDhg3TyJEj1b17dyUnJ8sYoyNHjqhLly5KTExUv379VF5erv3796tTp04aMGCApk+frmHDhmnnzp0qLy/XoEGDlJSUpDvuuEPHjx+v9LG63W6NGDFCHTt21CuvvCJJ+umnn5ScnKyuXbtq4MCBKi8vr3TZqKgoDR06VNHR0XrvvffUt29fRUdHa9OmTZKkxx57TElJSWrfvr0yMzMlSWvWrFFsbKz69OmjQ4cOSZKKi4s1aNAgde3aVb1795bT6ax0ewsWLFBcXJzuu+8+nThxQpK0evVqJSUlqV27dnrppZckSfPnz1ffvn111113qV27dvrxxx8lSS+++KI6duyocePGKTY2VpL0/fffq0ePHurcubMeffRRz/L33nuv7rrrLn322WeaMWOGOnbsqISEBG3dulVSxT1eZ75OS0tT+/bt1bVrV3344YeVPgYAwEVi4DNWrFhhxowZ47l+8uRJY4wxp06dMm3btjXGGPPss8+aadOmGWOMefLJJ82KFSvOWs++fftM//79jTHGuN1uY4wxjz76qPnggw+MMcaUl5cbt9tt4uPjjcvlMmVlZSY+Pt6UlZWZoUOHmn/84x/GGGP69+9vtm/fblwulyktLTXGGDNu3Djz+eefm+zsbNO0aVPjcrmMMcYMHTrUZGVlmWXLlplJkyYZY4x57733PLP+WmRkpPnmm29MeXm5SUxMNEeOHDETJ040a9euNcYY89JLL5lly5ZVumydOnVMYWGh2bNnj2nYsKEpKioymZmZZvDgwRWet61bt5r777/fGGPMzTffbPLz801xcbFp0qSJyc7ONrNnzzbvvvuuMcaY999/37zyyitnbausrMy0adPGFBcXm7y8PFOrVq0K2ygvLzdxcXHm1KlTZt68eeaBBx4wxhjz5ptvmlmzZpkff/zRdOrUybjdbrNnzx4TGRlpjDHmv/7rv8y+ffuMMcaMHDnSbN682cybN88MGjTIGGPMjz/+aBITE015ebnJzs423bp1M8YYc9NNN3lmO/N1ly5dTEFBgWceAID38FadD9m9e7eSkpI811etWqVZs2bJGKN9+/Z5vt+2bVtJUnh4eKV7dJo1a6b4+HgNGjRIEREReu6557R792499dRTkiQ/Pz8dPXpUe/fu1W233SZJ+vnnn5WXl1fp+vPz8zVq1CgdP35cP/zwg2JjY3X99derdevWql69eoVt79u3T+3atZMktWvXTp9//nmljzUoKEjNmzeXJLVu3VrZ2dnatWuXvvrqKz333HMqKirS4MGDK122adOmCgoKUqNGjXT99derRo0aaty4see5eOWVV7RmzRpJUkDA6Zd4eXm5rrrqKklSTEyMJGnXrl3avHmz3nvvPZWWlioxMfGsbeXl5SksLEyBgYEKDAzUtddeK0nasmWLpk2bptLSUu3fv19Hjx4967nbsmWL9u/fr5iYGDkcDt1www0KCgqSJH3zzTd68MEHJUmFhYXq0aOH5zmTpP3796t169by8/NTZGSkfv7557NmM8ZIOn182fjx42WM0eTJkz3PKwDg4iOcfEhUVJTWrFmjfv36SZKee+45ZWRkyOFwqGnTpp77ORwOz9dn/vL8JZfLpbFjx8rPz08jRozQpk2bFBUVpQ0bNqhPnz5yu92qV6+eWrRooc8//1zVq1dXaWmpqlWrVun6Fy9erDvvvFPDhw/X2LFjPdus7Bic6667Tl9//bX69u2rzZs36/rrr6/0sZ44cULffvutrrvuOu3YsUORkZFq0aKF7rnnHk/A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", - "text/plain": [ - "<Figure size 600x600 with 2 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stderr", + "output_type": "stream", + "text": [ + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 16.24it/s]\n" + ] }, { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAJRCAYAAACz2Ti7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAABhCUlEQVR4nO3deXxTVf7/8XcKNIC2YVehBe2IgMOiSB2HHZFFpE6tCGJBEFmKLEVawWr9IgqUYkUKLjiyqYBKFRlEUEcFEXBmlAG1gMxgERpQgdJJWpYu5Pz+4EF+IgVuoWm6vJ6PRx6Sm9tzPgnc47vnntxrM8YYAQAA4KIC/F0AAABAeUFwAgAAsIjgBAAAYBHBCQAAwCKCEwAAgEUEJwAAAIsITgAAABYRnAAAACwiOAEAAFhEcAIAALCI4ASgTJszZ45++eWXi+7XtWtXrVq16pztc+fOVcuWLdWqVSu1bt1aS5cu9UGVACqLqv4uAACK4vF4JJ0OTl27dtXVV199Se388Y9/1ObNm+VwOJSZmambb75Zf/7zn/WHP/zhsmssLCxU1apVz/v8Qs68v4AAfn8FyhOOWKAc+/rrr3X77berXbt2uvnmm5WWliZJevXVV3XDDTeobdu2evbZZ2Wz2bw/8/HHH6tt27Zq3bq1unTpop07d16wj5ycHI0YMUK33nqrWrdurZEjRyo/P1+7d+9WSEiIMjIyJEkpKSnq3bu3PB6PlixZottvv1133323brzxRnXu3Fk//fSTt82UlBTdeuutatu2rXr37q19+/ZJkp5++mnde++96tWrl1q2bKlnn31WBw8e1IABA3TTTTdp+/btxf6MunfvLofDIUkKDQ3V1VdfrczMzAv+zH//+1/dddddCg8PV+vWrfXiiy96X7PZbJoyZYrCw8OVkJCgoUOHatiwYercubNatmwpSXruuef0xz/+Ua1atVJ0dLRcLleR7+/nn38u9vsB4GcGQLmUnZ1tbrrpJnPw4EFjjDGHDx82oaGhZsOGDebqq682P//8szHGmP/7v/8zZw71X3/91dSpU8d89913xhhjli5dalq0aGE8Hs95+xkxYoR5/fXXjTHGeDwe8/DDD5tZs2YZY4xZvny5ueWWW8z69evNtddeaw4dOmSMMWbx4sUmMDDQ7Ny50xhjTHJysunRo4cxxphly5aZ4cOHm8LCQmOMMW+88Ybp06ePMcaYKVOmmGuuucb88ssv3v6bNGlitm3bdtHPo0uXLub999+/4D5///vfTcOGDU1ubu559yksLDS33HKL2bVrlzHGmGPHjplWrVqZf/3rX8YYYySZqVOnevcfMmSIad26tXG73cYYY9auXWuaN29usrOzjTGnP7+YmJjzvj8A5Qun6oByasuWLcrIyNCdd9551vZvv/1WvXv39p7aGjFihJ555hlJ0j//+U+1atVKrVq1kiRFR0drzJgxOnDggEJCQorsZ9WqVfrqq680e/ZsSdKJEydUpUoVSdLAgQO1fv169erVS5999pnq16/v/bn27durRYsWkqSRI0cqMTFRp06d0qpVq/T111/rlltukSSdOnXqrP769Omjq6666rI+m6J8//33euihh/TOO+/oiiuuOO9+u3fv1o4dO3T//fd7t+Xk5Gjnzp0KDw+XJA0bNuysn7nvvvsUFBQkSfr00081YMAA1apVS5I0evRo3Xfffd59ffX+AJQOghNQThlj9Mc//lFbtmw5a/vcuXPPev7b03SX2s97772nG2644ZzXCgsLlZ6erjp16ujAgQOW20tISNDIkSOLfP3KK6+8rHqLsnPnTvXt21eLFi1Sx44dL1pfnTp1Lnha8Pc1Xqjm33/+vnh/AEoPa5yAcqp9+/bau3evPv30U++27du3q0uXLvr444916NAhSdLChQu9r9922236/vvvlZ6eLkl6++231ahRIzVq1Oi8/URGRio5OVmFhYWSpOzsbO3Zs0eS9Pjjj6tZs2b68ssvFR8f790uSV999ZV++OEHSdKCBQvUrVs3ValSRZGRkZo/f76OHj0qSSooKNC2bdvO239wcLB3jdCl2LVrl/r06aO//vWv6tGjx0X3b9asmYKDg7V48WLvtj179njrvZg77rhDK1askNvtlnR6vVnPnj0vrXgAZQ4zTkA5Vbt2bX344YeKj49XXFycCgoK1LhxY61atUqJiYnq0KGDgoKC1Lt3b+/i6Pr162vZsmV68MEHVVhYqNq1aystLe2Cs1IvvPCCHn/8cd10000KCAhQ1apVNWvWLP3www/66KOP9K9//Us1a9bU7Nmz1b9/f+8MWPv27TV58mTt2bNHdevW1RtvvCHp9OnBrKwsdevWTdLpWathw4bp5ptvLrL/8ePHa8SIEapZs6aWLFmim2666by1Dh8+XGPHjvU+T0tL0//93//J5XJp8uTJmjx5siQpOTlZvXr1KrKNqlWras2aNZowYYJeeOEFnTp1SvXq1dPy5cvP2+9v3XnnnUpPT9ef//xnBQQEqHXr1nr55Zct/SyAss9mjDH+LgJAycrJyfGuuUlNTdVHH32kdevWlVr/S5Ys0apVq4q8rhIAlGfMOAEV0OOPP67NmzeroKBADRs21KuvvurvkgCgQmDGCYDWrl2rJ5544pztCQkJGjBggB8qKtozzzyjlStXnrP9vffeK/YFLUuyLQCVB8EJAADAIr5VBwAAYBHBCQAAwCKCEwAAgEUEJwAAAIsITgAAABYRnAAAACwiOAEAAFhEcAIAALCI4AQAAGARwQkAAMAighMAAIBFBCcAAACLCE4AAAAWEZwAAAAsIjgBAABYRHACAACwiOCECmvDhg36z3/+c97X27Vrd9bzDz74QH/605/UsWNHxcbG+ro8AJXETz/9pE8++eS8rw8dOlTp6ene53v37lWnTp3UpUsX3XXXXXK5XKVRJiwiOKFC8ng8Fw1Ov9emTRtt3rxZmzZt0qFDh/TNN98Uu19jjIwxZ9VxsToBVFwej+eiwen3atWqpQ8++EBffPGF7r77br322muX3HdRf7ayP86P4FQBbdiwQb169dI999yjNm3a6J133lGvXr106623KisrS3fccYe6dOmiHj16yO1265dfflGnTp108uRJLVq0SFOmTCmy3W+++UbdunVTp06dlJKSIknav3+/OnTooD59+uj+++/XkiVLJElxcXHq2LGjbr/9dv3000+W2xs8eLA2bNigQ4cOqVOnTjpx4oSGDh2qhx9+WHfccYcGDBigU6dOyRijcePGqVu3brrjjjvkdDolSTfeeKMeeughjR49WkuWLFFCQoIefPBBS59b48aNVbVqVUlSYGCgAgKKPjw++ugjderUSe3bt9dbb70l6fRvjGPGjFHPnj317rvvKiIiQvfcc4+WLFmit99+W3/6059022236eOPP5Ykde3aVZMmTVKvXr0s1QaUd7/++qv3eO/Xr5+Sk5P1zjvvSJJ+/PFHDRw4UJL0yCOPqHPnznrsscfUtWvXIts6cuSIIiMjdfvttys6OlqnTp1SYWGh+vXrpzvuuENjxozR0KFDJanI489Ke6+99pqmTp0qY4x69+6tXbt2acmSJYqMjFSfPn3UqVMnHThwQJK0ZMkS75jw+eefSzr7GH/llVf0zjvvqGvXrjp69OhFP6vatWurVq1aki48FmVkZKhXr17q2rWrHn30UW8t999/vyIiIvTRRx95x8SJEyfq+++/V8eOHdWhQwclJSVJkp5++mkNHTpUffr00XfffXfR2iDJoMJZv369ueOOO4wxxrz66qsmMjLSGGPMnDlzzMKFC82xY8eMMcbMnj3b/PWvfzXGGPP222+b6Oho07VrV5Ofn19ku927dzdHjx41xhjTt29f88svv5gxY8aYjz/+2BhjzMCBA83ixYvN119/bQYMGGCMMWbjxo3moYcestze0aNHTfv27c3dd99t/vnPfxpjjBkyZIh59dVXjTHGTJ482bz33nvmgw8+ME899ZQxxph//OMfZsyYMcYYY4KCgrxtTpkyxXzwwQfn/ZxuueWWIrf/61//Mr179y7yNY/HY9q3b2/y8vJMYWGhad++vSksLDRDhgwxCxYsMMac/vw7depkPB6PKSwsNK1btzYnTpwwLpfL22eXLl3Mp59+et7agIomLy/PFBQUGGOMGT9+vHnjjTdMVFSUMcaY6dOnm/fff998/fXXZuDAgcYYYz7++GPTpUuXItuKi4szn332mTHGmJkzZ5q0tDSTlpZmEhISjDGnx70hQ4ac9/iz0p4xxtx9991mxIgRJiUlxRhjzOLFi731rVu3zowbN84cOXLE9OrVy3g8HpObm+ut+bfH+Pr1601cXNx5P5shQ4aY77///pzt2dnZJjw83GRlZRX5c/fdd5/Zs2ePMcaYmJgY8/XXX5vFixebQYMGeff57ZjYt29fs3PnTuPxeEyPHj3M3r17zZQpU0xiYuJ5a8O5qvo7uME3WrduLUlq2LCh98+NGjXSjh07NGLECDmdTh09elT9+vWTJN17772aOHGikpOTVa1atSLb/O6773TPPfdIkrKzs5WZmak9e/bolltukSTvf/fs2aPw8HBJUnh4uJ544gnL7bVr104dO3bU1q1bdeutt3r3PdN2eHi4/vvf/8pms+n999/Xxo0bZYxRaGioJOn6669X7dq1L/FTk5xOpyZMmKD333+/yNcPHz6s//znP+rZs6ck6X//+58OHz7sre2Mdu3ayWaz6fDhw2rcuLGqV6+u6tWrq1q1aiosLDxnf6Ciy8rK0ujRo5Wdna2DBw+qbdu2crlccrvd+vjjjxUXF6f333//nPGkKDt37tQ///lPPfPMMzpx4oQGDx6s3Nzcs352y5Yt5z3+zswsX6g9SYqJidGAAQP066+/evf97ViUmpqqH3/8UTt27FC3bt0kyTsenNnnUhUUFCg6OlqzZ89WnTp1itznhx9+0MMPPyxJysnJ8c5g/7bf346Jv/zyi1q0aCFJatu2rX788cfLrrMyIjhVUDabrcg/V69eXdddd52WLVum559/Xjk5OZKkmTNnKjY2Vq+++qoiIyN15ZVXntNmmzZt9O6778rhcOjUqVMKCAjQ9ddfr23btumOO+7w/vf666/XqlWrJElff/21mjZtWmSNRbX3n//8R9u3b9f111+vdevW6c4775Qkbdu2Tbfccou++eYbtWvXTtWqVVP//v311FNPSTo9yEg6a0q7WrVqOnXqlOXPLCcnR/fff79effVVNWjQoMh96tWrp+bNm+uTTz5RYGCgCgoKvEHzt32f+XP9+vW1b98+nTx5Uvn5+crPz/cO2uebfgcqouXLl6tv374aPny4xo0bJ2OMIiMjlZycrLCwMNntdl1//fVas2aNpNPH/Pk0b95c99xzjzp16iTp9PH/t7/9Tdu2bdO9997r/dkLHX8Xay8vL08zZ87UM888o6efflrJycln1fXNN9/o+uuvV1hYmFq3bq01a9bIZrN5xyLp/x/jxR2LJGnkyJHq37+/OnbseN59mjVrppSUFDVp0kTGGJ06dUpLly4tciySpKuuukq7du1S8+bN9e9//1sxMTH68ssvGYuKieBUyZw8eVLr1q3Ttm3bdNVVV6lx48b69ttv9c0332jVqlX64x//qPj4eM2fP/+cn505c6aioqLk8Xhkt9v1/vvva9KkSRo4cKCef/551ahRQ9WqVVO7du10zTXXqGPHjqpataoWL15cZC2/b++9997T2LFjNX/+fDVo0EC9e/fWn/70J0nS1q1b9dZbb6lu3bp69tlnVaVKFX3++efq1q2bbDaboqOjvb95nXH77bdr8uTJ+vzzz5WamnpO/263W3fccYek0wPsjTfeqL1792rs2LGSpKlTp6pLly5n/UxAQIASExPVo0cPBQQEqH79+lqxYsV5P+8qVaro8ccfV+fOnRUQEKBp06Zd4G8HqLi6d++uwYMH64MPPlCNGjUkSffdd58aN26sv/3tb5JOz9QGBwerc+fOuvnmm887+/3kk09qxIgR3vWYs2bNUmRkpN5++211795dYWFhqlatmuXjr6j20tLS9Mgjj2jAgAEaOHCgNm/eLEnKz89X7969lZubq7feekv16tXT/fffry5duqhKlSpq1aqV5s6de1b7rVq1UkJCgu677z699tpr3vVLvzVixAhdccUVkqSnnnpKK1as0N69e7V48WLdc889RX7TNzk5WTExMTp58qSqVKmiRYsWXfDvYPr06Ro+fLiMMbrrrrt07bXXXnB/FM1mzG++AgQU02+nvR944AHFxsZ6w05JGTp0qOLj49WyZcsSbRdA2XNmFveTTz7R+++/r1deeaXYP/vXv/5V2dnZmjx5conWtmTJEuXm5np/uULlxIwTivTQQw9p79693ueDBw8+Z0ZHkvbt26ehQ4eqsLBQbdq0OW9ostqeL7hcLv3lL385a9vzzz9/wTUUZ9x55506ceKE9/ljjz2mu+66q8RrBHDaqFGj9OOPP8rj8ej1119XamrqWWsOW7VqpXnz5hX5s3/5y1+Um5sru93u/cbe7xWnPV+41LEwISFBX331lfd5jx499OSTT/qkRlwYM04AAAAWsSIMAADAIoITAACARQQnAAAAiwhOAAAAFlXIb9V5PB4dPHhQQUFBZ138EUDZYIxRTk6OGjZsWCkuvseYBJRtxRmTKmRwOnjwoPcWHADKrszMTIWEhPi7DJ9jTALKBytjUoUMTkFBQZJOfwDBwcF+rgbA77ndboWGhnqP1YqOMQko24ozJlXI4HRmKjw4OJhBCn7n8XiUn5/v7zLKjMDAQO+fK8tpK8YklBWMR2cLDAw869SclTGpQgYnoKzweDzem4zitOrVq3vv1g6g9DAenat69epq0qRJsX6G4AT4UH5+vk6ePKmrr77ae2PTyuzEiRP65ZdfVFhY6O9SgEqH8ehsZ8aj4s7AEZyAUlCjRg1l/aGp5f0bHcg8Z9vTTz+txMRE702VizJs2DC1bt1a4eHh6tChg3f7kiVL1LFjR11//fUX7XvDhg1asWKFCgoKlJycrNmzZ5/3rvIAyh/Go8tDcALKmdTUVAUEBOjUqVPq2rWr3n33XWVlZWnAgAHeferWravExERNmzZNiYmJCggI0KFDh3TDDTfoyiuvVNWqVVVYWKilS5eqR48eys3N1fHjx1VYWKjw8HBFRUXp6NGj2r17tyRp+/bt2rhxo3799VdNnz5dvXv3Vvfu3dWiRQt98803Cg0N1datWzV79mw9+eSTqlu3rjp16qQVK1botttuU58+fTg9B1RAlXE8qvgXUAEqmP3792vcuHHKzMzUxx9/rNjYWHXr1k2S1LBhQ02YMEHNmzf37n/q1CmFhYUpKipKtWvXljFGp06d8u4fHR2tjRs3qnbt2srJyZEkrVy5Urt371Z4eLgkee84f2bguvnmmxUfH69//vOfkqRBgwapfv36+vbbb5WXl6eGDRvqp59+UlBQkKKjowlNQAVVGccjghNQjsydO1eNGzfWvHnz1LhxY/Xs2VOpqan6/PPPz5kyt9lsWrp0qVwul8LCwrR06VLdcMMNWrt2rT766CNJ8n6b5Pbbb1dWVpZatGghSYqKitJTTz3lbXPbtm268sor5fF4JElVqlSRzWaTMeas5zfeeKOuuOIK5ebmqmXLlpXi4pZAZVVZxyObOdNTBeJ2u+VwOORyufjqL/zq5MmT2rt3r6677jpVr169xNvPycnR8uXL9cMPP2jq1Kll/t/7mc+jfv36ql+/fqU5RhmTUBYwHp3tt59Hfn6+5WOUNU5AORYUFKRRo0b5uwwAqDTjEcHJRw40sn57haK+sYCK5cSJE/4uoUzgc7g4xg74GsfhaZf6ORCcAB8KDAxU9erV9csvv/i7lDKjevXqF/wKMwDfYDw6V/Xq1RUYGFisazkxegE+FBAQoCZNmnCLg98IDAxUbm6uv8sAKh3Go3P9/pYrVvg0OB07dkxdunTR008/rd27d2vv3r0qKCjQ/PnzvfeDMcYoJiZGVatWVVhYmOLi4vTEE08oPz9fjzzyiCTpvffe02OPPebLUgGfCQgI8MlCTAAoLsajy+fT7wonJyerf//+8ng8+ve//60XX3xRrVq10qZNm7z7bNq0SS1bttRLL72k7du3Kz8/X8YYDRw4UFu3btXcuXMVGxt7wX7y8vLkdrvPegDAb2VkZOjhhx9Wv379vNsWLVqkLl26nLWfMUajRo3SmDFj9Pzzz0uSnnjiCcXHxysjI0MZGRl67rnnSrV2AGWHz4LT3//+d914441q0KCBXC6X6tevL0lq0qSJnE6ndz+n06nQ0NOLIRs0aKCsrCw1bdpUa9as0dGjR3XrrbcqJSVFH3zwwXn7SkpKksPh8D7OtAcAZ4SFhWnhwoXe5xkZGTpy5Ih3bDqDX+YAXIjPgtOGDRv0j3/8Q8uXL9fy5ct16NAhSaevMhoSEuLdLyQkxBukDh8+rLp162rYsGEaP3689u/fL6fTqZiYGG3evPm8fSUkJMjlcnkfmZl80wTA+Xk8Hj3//POaMGHCOa/xyxyAC/FZcJo+fbrmzJmjBx54QGPGjFG7du0UGxur77//Xh07dlRaWppWr16tjh07aseOHYqNjVWbNm0UGBgoSXruuecUFxen9u3ba8aMGXI4HOfty263Kzg4+KwHAJzPmdmmSZMm6dtvv9XatWu9r/HLHIAL8fm36oYOHVrk9vvuu8/751deeeWc12fMmCFJ6tixozp27OiT2gBUHllZWXryySe1bds2paWl6Z133pF0eoapT58+SktLk91uV0REhJYvX17kL3Px8fHauXOnZsyYobp16563L7vdLrvdXirvC0Dp4pYrPsJF7IDzKwvHaGkqzvtl7ABKX3GOUe7ACQAAYBHBCQAAwCKCEwAAgEUEJwAAAIsITgAAABYRnAAAACwiOAEAAFhEcAIAALCI4AQAAGARwQkAAMAighMAAIBFPr/JLwAA/sT9/1CSmHECAACwiOAEAABgEcEJAADAIoITAACARQQnAAAAiwhOAAAAFhGcAAAALPLpdZx27dql1NRUHTlyRN27d9fq1avVpEkTXXnllUpJSfHuZ4xRTEyMqlatqrCwMMXFxemJJ55Qfn6+HnnkEUnSe++9p8cee8yX5QIA/IxrLqGs82lwatGihebPny+Px6MHH3xQNWvWlMfj0VVXXXXWfps2bVLLli01btw4DR48WPn5+TLGaODAgdq6das2b96sWbNmnbefvLw85eXleZ+73W6fvScAAFB5+fxU3erVq3XXXXepT58+SktL01//+lf9/PPP+u6777z7OJ1OhYae/i2jQYMGysrKUtOmTbVmzRodPXpUt956q1JSUvTBBx8U2UdSUpIcDof3caYtAACAkuTz4HT33Xdr3bp1WrZsmQICTnfXoEED5ebmevcJCQmR0+mUJB0+fFh169bVsGHDNH78eO3fv19Op1MxMTHavHlzkX0kJCTI5XJ5H5mZTN8CAICS59NTdRs2bNDKlSuVl5enPn36aMiQIapZs6YKCws1adIkpaWlyW63KyIiQsuXL1dsbKzatGmjwMBASdJzzz2n+Ph47dy5UzNmzFDdunWL7Mdut8tut/vyrQAo5zIyMjR9+nS5XC69++67euihhxQYGKj8/HwtWLBAVapUkcSay/KkOOuhgJJiM8YYfxdR0txutxwOh1wul4KDg/1SAwscgfPz5zHar18/vfvuu97nsbGxio+P957i//LLL7V9+3bvmsuFCxdqypQp6tevnzIyMrxrLs/8gmdFcd5vZR87/B2GKuJniosrzjHK5QgAVFo//PCD8vLyzloXeblrLqXTX1hxu91nPQBUDAQnAJVSenq6UlJSNHfu3LO2X+6aS4kvrAAVGcEJQKWQlZWlmJgYbdu2TdOnT1ePHj3k8Xg0fvx4OZ1OpaWlafXq1erYsaN27NhR5JrLuLg4tW/fXjNmzJDD4ThvX3xhBai4WOPkI5V9nQJwIWXhGC1NrHGyjjVO8AfWOAEAAPgAwQkAAMAighMAAIBFBCcAAACLCE4AAAAWEZwAAAAsIjgBAABYRHACAACwiOAEAABgEcEJAADAIoITAACARQQnAAAAiwhOAAAAFhGcAAAALCI4AQAAWFTVl43v2rVLqampOnLkiLp37y6Hw6H169crLy9Pr7zyiq644grvvo8//riOHz+umjVraubMmZo5c6Zyc3PVt29fNW/eXMnJyUpKSvJluQAAABfk0xmnFi1aaP78+VqxYoU2b96s999/X6+99pr69++vlStXevfbv3+/CgoKNHfuXJ06dUqZmZlyuVx69NFH9eWXXyolJUXx8fG+LBUAAOCifH6qbvXq1brrrrvUp08f2Ww2SVKTJk3kdDq9+xw4cEChoaGSpMaNG8vpdCo8PFxz585V48aN1bBhQ7366qtaunRpkX3k5eXJ7Xaf9QAAAChpPg9Od999t9atW6dly5Z5t+3fv18hISHe540aNfIGqczMTIWEhCgqKkqJiYnasmWL6tWrp969eys9Pb3IPpKSkuRwOLyPMyEMAACgJPl0jdOGDRu0cuVK5eXlqU+fPqpdu7ZGjx6tEydO6KWXXtJXX32lbdu26ZFHHlG1atU0ceJE2e12b/CZO3euxo0bJ2OM5s6dq5o1axbZT0JCgiZOnOh97na7CU8AAKDE2Ywxxt9FlDS32y2HwyGXy6Xg4GC/1HCgkfXg1uhApg8rAcqesnCMlqbivN/KPnYU5/37QkX8THFxxTlGuRwBAACARQQnAAAAi3y6xgkAyoqMjAxNnz5dLpdL7777rpYvX8515QAUGzNOACqFsLAwLVy40Puc68oBuBQEJwCVkq+uKydxbTmgIiM4AajUSvq6chLXlgMqMoITgEohKytLMTEx2rZtm5KSkhQZGanRo0crLS1NUVFR+uqrr/Tyyy+rcePG3uvKValS5Zzryt18881avHixLnQll4SEBLlcLu8jM5OvuAMVBddx8pHKfi0W4ELKwjFamriOk3Vcxwn+wHWcAAAAfIDgBAAAYBHBCQAAwCKCEwAAgEUEJwAAAIsITgAAABYRnAAAACwiOAEAAFhU1cpOu3bt0vz58/XTTz8pICBAVatWVa9evTR06FBVrWqpCQAoMYxJAPzF0gjzySef6Omnn1bt2rW92zZt2qQvv/xS3bp181lxAFAUxiQA/mIpOMXGxkqSjh8/rnXr1qlt27bq2LGjTwsDgPNhTALgL5bWOB09elSSNG/ePF133XVKTU31aVEAcCGMSeXLgUahlh9AWWdpxumFF15QixYt1LBhQ61YsUKBgYGWGl+1apU+/PBDud1uPfzww0pMTFTbtm3VpEkTJSQkePc7duyYHnnkEQUGBqpr1666//77NXHiREnSM888ox07dujHH3/U4MGDL+EtAqhoLnVMAoDLZSk4Pfvss9qyZYvS0tI0duxY/eEPf7DUeGRkpCIjI5Wdna34+HhdccUVys/PV8OGDc/ab+XKlerXr58iIiI0YMAA9ejRQ9dee60aN26s9PR0rVixgt8oAXhd6pgEAJfLUnBKSUnR0aNH1aFDB/3tb3+TzWbTo48+armTadOmacyYMbrpppsUEBCgAQMGKCIiQnXq1JEkOZ1OtWrVSpJUpUoVNWjQQJL0ww8/KCMjQ126dFFSUpI6duyoTp06ndN+Xl6e8vLyvM/dbrfl2gCUP5c7JgHApbK0xsnlcmnSpElKT0/XxIkTdffdd1tq3BijyZMn684771Tbtm0VEHC6u9q1a+vkyZPe/UJCQuR0OiVJHo9HkvToo49qwIABCggI0Ndff63HH39cH374YZH9JCUlyeFweB+hoZwnByqySx2TgIthLRYuxtKMU58+fbRgwQINHz5ckixPi8+bN0+ffvqpXC6Xvv76a+3atUvVq1dXnTp11LBhQ82ePVvdunVTVFSUxo4dqw8//FARERFn/fxzzz2nVatW6f/+7/907bXXFtlPQkKCd02UdHrGifAEVFyXOiYBwOWyGWPMxXZ6++231a9fv7MuLPfjjz/q8OHDuu2223xa4KVwu91yOBxyuVwKDg72Sw3F+Y2k0YFMH1YClD2Xe4xW5DGpIo4dFXGGprx89rCmOMeopRmna665RqNGjVJWVpb3Kr1//vOfNXLkyBIpGACKgzEJgL9YCk5dunRRly5dfF0LAFjCmATAX7jJLwAAgEUEJwAAAIssB6cHH3xQ69at82UtAGAZYxIAf7C0xkmSFixYoLffflv333+//vznP2v48OG64oorfFkbAJwXY5L/VcRvywEXY3nGKSsrSxkZGQoODtbVV1+thx9+2Jd1AcAFlcSYtH//fkVGRmrYsGGaOXOmd3t6erqio6MVHR2t9PR0/fjjj4qLi1NiYqKk0/fK2717d4m9FwDlh+UZp5SUFI0ZM0ZhYWGSxAUmAfhVSYxJ33//vfr166dBgwZpwIAB3u2pqal66aWXZLPZNGnSJHXv3l2DBg3SO++8o4yMDBUWFqpZs2bnbZfbQAEVl+UZp65du3oHqHXr1ql9+/Y+KwoALqYkxqTbbrtNCxcu1O23367evXt7t7tcLtWqVUsOh0M5OTnq1auXVq9erWbNmik1NVVNmjTRjBkzdPDgwSLb5TZQQMVlOTht3LjR++cvv/zSJ8UAgFUlMSYtXrxYU6dO1eeff37WvTDPXEHY7XYrKChIDodDU6ZMkd1uV79+/bR161aNGjVKy5YtK7LdhIQEuVwu7yMzk6tMAxWF5VN1hw8f1meffSabzaaff/7ZlzUBwEWVxJjUu3dvPf3001q+fLmuvfZaDR48WG+++aZiY2M1btw4SdKkSZMkSdnZ2dqxY4ceeOABbdy4UUlJSYqKiiqyXbvdLrvdfmlvDECZZuleddLpc/RnfruKjo722z3grOBedUDZVhLHaEUdk8rT2FGZv1Xn788eJas4x6jlU3X79++Xy+XSoUOHNGfOnMutEQAuC2MSAH+wfKpu9uzZmjhxoqpVq+bLegDAEsYkAP5gOTi1bNlSLVu29GUtAGAZYxIAf7AcnNavX68NGzbIbrfLZrNpxYoVvqwLAC6IMQmAP1gOTm+99ZZ27dql8PBwOZ1OX9YEABfFmATAHywvDn/00Ue1ZMkSSacv7gYA/sSYBMAfLM84BQUFqVatWpKk6tWr+6oeALCEMQmAP1iecapXr562bNmi+Ph4BQRY/jEA8AnGJAD+YHnG6YknnlBUVJSMMWrRooWln1m1apU+/PBDud1uPfzww/r++++1d+9eFRQUaP78+bLZbJIkY4xiYmJUtWpVhYWFKS4uTk888YTy8/P1yCOPSJLee+89PfbYY5fwFgFURJcyJgHA5bIcnAYOHCibzabjx49LOh2KLiYyMlKRkZHKzs7WxIkTlZ+fr2XLlunFF1/Upk2b1KlTJ0nSpk2b1LJlS40bN06DBw9Wfn6+jDEaOHCgtm7dqs2bN2vWrFnn7Yc7kQOVz6WMSQBwuYr1rbozZs+eXaxOpk2bpuHDhystLU2S1KRJk7O+BeN0Or13D2/QoIGysrLUtGlTrVmzRldffbVuvfVWpaSkqFWrVoqIiDin/aSkJE2dOrVYNQEo3y5nTAKAS2V5YcDOnTu1c+dOfffdd9q5c6elnzHGaPLkybrzzjsVHh6uI0eOSDp9q4SQkBDvfiEhId4gdfjwYdWtW1fDhg3T+PHjtX//fjmdTsXExGjz5s1F9sOdyIHK51LGJAC4XJZnnNLS0mSz2WS32713Db+YefPm6dNPP5XL5dKePXvUtm1bxcbGKi8vT4888ojS0tJkt9sVERGh5cuXKzY2Vm3atFFgYKAk6bnnnlN8fLx27typGTNmqG7dukX2w53IgcrnUsYkALhcNmOMsbLjhx9+6F3MfUafPn18UtTlKok7r1+u8nSHc6C0lcQxWlHHpPI0dhSn1orG3589SlZxjlHLM04LFixQx44dJUmbN29WZGTkZRUJAJeDMQmAP1gOTs2bN1dcXJyk0+uQHnzwQZ8VBQAXw5gEwB8sByebzabhw4fLZrPpqquu8mVNAHBRjEkA/MFycJo2bZqcTqdq1arF7Q0A+B1jEgB/sHw5ggkTJmjq1KkKDg7mGywA/I4xCYA/WA5OVapUUZMmTSRJDofDZwUBgBWMSQD8wXJwstvt2rVrl1588UVlZ2f7siYAuCjGJAD+YGmNkzFG9957r7KysuTxeDR69Ghf1wUA58WYBMBfLAUnm82m9evXa9KkSb6uBwAuijEJgL9Y/lbd6tWr9dlnnyk4OFg2m00rVqzwZV0AcEElMSZ5PB499dRTcrvdateunYYMGSJJSk9PV1JSkqTT98KsUaOGXn75ZdWoUUPTpk3TCy+8oD59+qhZs2Yl+p4AlH2WgtPq1au1adMmfffdd2rdurWvawKACyqpMelvf/ubnE6n6tate9aNx1NTU/XSSy/JZrNp0qRJ6t69uwYNGqR33nlHGRkZKiwsvGBoysvLU15enve52+2+5BoBlC2WFod/9NFHkqT58+f7tBgAsKKkxqTdu3erffv2mj17tl555RXvdpfLpVq1asnhcCgnJ0e9evXS6tWr1axZM6WmpqpJkyaaMWOGDh48WGS7SUlJcjgc3kdoaOW9pxtQ0VgKTvv27dPatWu9/127dq2v6wKA8yqpMSkkJES1a9eWdPryBmecudmn2+1WUFCQHA6HpkyZIrvdrn79+mnr1q0aNWqUli1bVmS7CQkJcrlc3kdmJjeEBSoKS6fq+vfvr8OHD3v/+/s7kgNAaSqpMSkqKkrjxo3Tl19+qc6dO2vw4MF68803FRsb672o5pkF6NnZ2dqxY4ceeOABbdy4UUlJSYqKiiqyXbvdLrvdfmlvDkCZZjPGGH8XUdLcbrf3N8bg4GC/1HCgkfWp+UYH+G0UlUtZOEZLU3Heb3kaO4pTa0Xj788eJas4x6jlC2ACAABUdpYvRwAAKJ/K0ywWUNYx4wQAAGARwQkAAMAin56qy8jI0PTp0+VyufTuu+/qzjvvVJMmTXTllVcqJSXFu58xRjExMapatarCwsIUFxenJ554Qvn5+XrkkUckSe+9954ee+wxX5Z7Ub5aCGm1XabQAQDwL5/OOIWFhWnhwoXe5zVr1pTH49FVV1111n6bNm1Sy5Yt9dJLL2n79u3Kz8+XMUYDBw7U1q1bNXfuXMXGxvqyVAAAgIsq1VN1aWlp+utf/6qff/5Z3333nXe70+n0Xlm3QYMGysrKUtOmTbVmzRodPXpUt956q1JSUvTBBx8U2W5eXp7cbvdZDwAAgJJWqsEpIOB0dw0aNFBubq53e0hIiJxOpyTp8OHDqlu3roYNG6bx48dr//79cjqdiomJ0ebNm4tsl9sbAACA0uDTNU5ZWVl68skntW3bNiUlJemHH35QzZo1VVhYqEmTJiktLU12u10RERFavny5YmNj1aZNGwUGBkqSnnvuOcXHx2vnzp2aMWOG6tatW2Q/CQkJmjhxove52+0mPAEAgBLHlcOLwd9XyWVxOCoKrhx+fr645pKvruPk7zHRnxiPK5biHKNcAFOV++AHAADWcR0nAAAAiwhOAAAAFhGcAAAALCI4AQAAWERwAgAAsIjgBAAAYBHBCQAAwCKCEwAAgEUEJwAAAIsITgAAABYRnAAAACziXnUAUE5xn02g9DHjBKDSOnbsmNq1a6c1a9Z4t61fv15DhgxRdHS0Dh48qC1btigxMVGzZs2SJCUmJurIkSP+KhmAnzHjBKDSSk5OVv/+/c/aNn/+fL311lvauXOnFi5cKLvdrri4OCUnJ2vz5s1q3ry56tWr56eKAfgbM04AKqW///3vuvHGG9WgQYOzthtjFBAQoCZNmsjpdGrgwIGaM2eO2rZtqxUrVsjj8SgpKUm5ubnnbTsvL09ut/usB4CKgeAEoFLasGGD/vGPf2j58uV67bXX5PF4JEkBAQHyeDzav3+/QkJCFBoaqqlTpyozM1Njx47Vjh071LNnT61bt+68bSclJcnhcHgfoaGsRQIqCk7VAaiUpk+fLklasmSJ6tWrpyFDhujNN9/UyJEjNXz4cBUUFCg5OVmStGfPHklS06ZN5fF49Prrrys2Nva8bSckJGjixIne5263m/AEVBA2Y4zxdxElze12y+FwyOVyKTg4+KL7l5dvpjQ6kOnvEoASUdxjtLwrzvv193hUnHHG37X6E+NxxVKcY5RTdQAAABb59FRdRkaGpk+fLpfLpXfffVfLly/X+vXrlZeXp1deeUVXXHGFd9/HH39cx48fV82aNTVz5kzNnDlTubm56tu3r5o3b67k5GQlJSX5slwAqPQq8ywSYIVPZ5zCwsK0cOFC7/P3339fr732mvr376+VK1d6t+/fv18FBQWaO3euTp06pczMTLlcLj366KP68ssvlZKSovj4eF+WCgAAcFGleqrOZrNJkvdrvmccOHDAu3CycePGcjqdCg8P19y5c9W4cWM1bNhQr776qpYuXVpku3z1FwAAlAa/rHE68zXfMxo1auQNUpmZmQoJCVFUVJQSExO1ZcsW1atXT71791Z6enqR7fHVXwAAUBp8GpyysrIUExOjbdu2KSkpSZGRkRo9erTS0tIUFRWlr776Si+//LIaN26satWqaeLEiapSpYo3+MydO1fjxo3TzTffrMWLF+t8XwBMSEiQy+XyPjIz+bYDAAAoeVyOQOVnMSRff0VFweUIzq+8jEeVHeNxxcLlCAAAAHyA4AQAAGARwQkAAMAighMAAIBFBCcAAACLCE4AAAAWEZwAAAAsIjgBAABYRHACAACwiOAEAABgEcEJAADAoqr+LgAAgPKmOPcU5L52FQvBqRzhQAUAwL84VQcAAGARwQkAAMAighMAAIBFBCcAldaqVas0YsQIDRgwQJ988ol3+/r16zVkyBBFR0fr4MGD2rJlixITEzVr1ixJUmJioo4cOeKvsgH4EYvDAVRakZGRioyMVHZ2tuLj49WzZ09J0vz58/XWW29p586dWrhwoex2u+Li4pScnKzNmzerefPmqlevnp+rB+APzDgBqPSmTZumMWPGeJ8bYxQQEKAmTZrI6XRq4MCBmjNnjtq2basVK1bI4/EoKSlJubm5RbaXl5cnt9t91gNAxUBwAlBpGWM0efJk3XnnnWrbtq13e0BAgDwej/bv36+QkBCFhoZq6tSpyszM1NixY7Vjxw717NlT69atK7LdpKQkORwO7yM01PqlRFDxHGgUavmBsq9Ug9OGDRvUqVMnxcTEaMOGDd7trCcA4A/z5s3Tp59+qnfffVfz58/X4MGDJUkjR47U8OHDNXPmTD388MOSpD179kiSmjZtKo/Ho9dff/2ssPVbCQkJcrlc3kdmJtdVAyoKmzHGlFZnX3zxhWbOnKmrrrpKiYmJuv766yVJAwYM8K4neP/992W32zVixAglJycrIiJCe/fu1aBBg87bbl5envLy8rzP3W63QkND5XK5FBwcfNG6KmLK5wKYKMvcbrccDoflY7S8K877rYjjEaxj7PaP4hyjpTrj1KlTJ61bt07JycmaMmWKd/vlridgWhwAAJSGUg1OAQGnu6tdu/ZZM0SXu56AaXEAAFAaSvVyBCtXrtTHH3+s//3vfxo7dqwGDx6sN99807ueoKCgQMnJyZKKXk8QGxtbZLt2u112u73U3gcAAKicSnWNU2kp7vqJirimgPPkKMtY43R+FXE8gnWM3f5RZtc4AQAAlGdcORwAgDLC6owjM1P+w4wTAACARQQnAAAAiwhOAAAAFhGcAAAALGJxeAXFAkMAAEoeM04AAAAWEZwAAAAsIjgBAABYxBonAAAqMNa8liyCUyVXnPticVABACo7TtUBAABYRHACAACwiFN1AACUM8VZZoGSxYwTAACARQQnAAAAiwhOAAAAFrHGCQAA+P3yNL5Yt+WLOplxAgAAsKhUg9OxY8c0ZMgQjRgxQsuWLfNuT09PV3R0tKKjo5Wenq4ff/xRcXFxSkxMlCS98MIL2r17d2mWCqASYEwCUFyleqpu5cqV6tevnyIiIjRgwABFR0dLklJTU/XSSy/JZrNp0qRJ6t69uwYNGqR33nlHGRkZKiwsVLNmzc7bbl5envLy8rzPXS6XJMntdluqK8fjuYx3VXlY/TzLk4PNWljet+HuXX7r3xd9F0dJf05n/i0ZYy65ppJQFsckxiOUB774/4Ev/u1brbM4Y1KpBien06lWrVpJkqpUqeLd7nK5VKtWLUlSTk6OevXqpTlz5qhZs2ZKTU1Vhw4dNGPGDA0dOlQNGzY8p92kpCRNnTr1nO2hoVznokQ5HP6uwL/8+f7L02dfjFpzcnLk8ON7Y0wCLlF5GZOKWaeVMalUg1NISIicTqduuukmeX6TLB0Oh1wul2w2m4KCguRwODRlyhQtX75c/fr105o1azRp0iQtWrRIjz322DntJiQkaOLEid7nHo9HR48eVd26dWWz2S5Yk9vtVmhoqDIzMxUcHFxyb/Yi/NFvZXqv9Fu2+zXGKCcnp8jQUZrK2pjkr7/Dy0HNpaM81iyVn7qLMyaVanCKiorS2LFj9eGHHyoiIkKDBw/Wm2++qdjYWI0bN06SNGnSJElSdna2duzYoQceeEAbN25UUlKSoqKiimzXbrfLbrefte3Mb4tWBQcH++Uv1R/9Vqb3Sr9lt19/zjSdUVbHJH/9HV4Oai4d5bFmqXzUbXVMshl/LzLwM7fb7f3tsrR/Sy/tfivTe6Xfit9vRVQeP0tqLh3lsWap/NZ9IVyOAAAAwKJKH5zsdrumTJlyzrR6Rey3Mr1X+q34/VZE5fGzpObSUR5rlspv3RdS6U/VAQAAWFXpZ5wAAACsIjgBAABYRHACAACwqFSv4+Qvx44d0yOPPKLAwEB17drVe1uF9PR0JSUlSTp9wbqWLVvq8ccf1/Hjx1WzZk3NnDmz1Pr9wx/+oB49eqht27YaOXKkT/pdu3atXnzxRfXp00djx46VpFJ5v0X1Wxrvd+bMmdq7d6+OHDmi1NRUNWrUSDExMapatarCwsIUFxdXKv0WFhYqMjJSt912m3r06KF7773XJ/2uWrVKH330kTIzM/XUU0/ptttuK5W/36L6Lcm/34rIX2NSadU8atQobdmyRd9//73f6pWs11ytWjUlJyfLGKPmzZtr8uTJZb7mG2+8UaNHj9aJEydUs2ZNzZ8/v8zX3LJlS0lSTEyMrrzySqWkpPit5stiKoE33njDrF692hhjTP/+/b3bhw8fbrKzs83//vc/M3LkSLNv3z4zceJEY4wx8fHxZv/+/aXSrzHGtG7d2jz44INm7dq1l9Xnhfo1xpj169ebefPmGWNMqb3f3/drTOm9X2OMWblypXnjjTfMxo0bzdy5c40xxgwaNMjk5eWVSr979+41HTp0MIMHDzb/+te/LqtPK/3++9//NrNmzSrVv9/f9mtMyf79VkT+GpMuR3HGM2OMuffee0u9xt8rbs3GGHPPPfeUao2/dyk1R0dHm1OnTpVqnb9VnJrT0tLMggULTFxcnF9qLQmV4lSd0+n03iOqqPtRORwO5eTk6MCBA979GjduLKfTWSr9StK2bdu0aNEipaamXlafF+r390rr/RaltN5vbm6uVqxYocjIyLP2a9CggbKyskql3yZNmmjTpk2aP3++nn322cvq82L9Pv/883r00UfVu3fvUv37/W2/Usn+/VZE/hqTLkdxxrOyorg1v/322+rZs2ep1/lbxal5586dGjJkiGrVqqWAAP/979xqzb/++qu2bdum7t27+6vUElEpgtOZ+1FJKvJ+VG63W0FBQWrUqJF3v8zMTIWEhJRKv5IUEBCgKlWqqHr16mftW5L9/l5pvd+ilMb7dbvdGj16tGbNmqWgoKCz9jt8+LDq1q1bKv2euTdZzZo1L6u/i/UrSXFxcVqxYoVmz55dqn+/v+1XKtm/34rIX2PS5SjOeFZWFKfmt99+W/v27VNMTIxfaj2jODXfeOONev311+XxeLRv3z6/1CtZr/mLL77QoUOH9Mwzz2j9+vX6z3/+46+SL0uluI7TsWPHNHbsWFWvXl0dO3bURx99pDfffFPp6emaNWuWpNP3o2rZsqUSEhKUl5cnu93uPTfr637PnF+XpNatW2vChAk+6ferr75SUlKSsrOzNWHCBN17772l8n5/32/Lli1L5f1GRUWpoKBAjRo1Uv/+/dWtWzfvefjGjRuXyBonK/1Wq1ZNb7zxho4fP66IiAjdf//9Pul3wYIF+vbbb+VyuTRixAh16tSpVP5+f99vgwYNSvTvtyLy15hUWjU/+eSTevvtt9WjRw+lpqb67eKHVmsuKChQRESE+vbtq5o1a3p/ASjLNdepU0dJSUnyeDyqUqWK5syZ47dZp+L825Ckn376SS+++GK5XeNUKYITAABASagUp+oAAABKAsEJAADAIoITAACARQQnAAAAiwhOAAAAFhGcUOYtWbJEa9asueA+XCsIQGlhTKrcKsW96lA2LVmyROvXr1eNGjV0zTXXqKCgQOnp6Ro9erTWrVunEydO6N5779WmTZt0/PhxSZLdbteHH37ofe3gwYP69NNP1a5dO506dUr79u2Tw+EokSt0A6hcGJNgBddxgt8sWbJEgYGBeuCBB9S9e3d99tlnmjFjhr766ivdcsstkqSqVasqJCRE9erVU9++fRUREXHOa9WqVVN0dLTGjRun8PBw3Xnnnapfv74/3xqAcogxCVYw4wS/Cg4OliTvoBIYGKjjx48rMTFRVaue/uf5xhtvePf3eDxnvbZkyRI5HA5JUmpqqr7++ms99NBDWr58ubdtALCKMQkXQ3BCmdO5c2cNHz5cderUUbt27dSmTRtNnz5dhYWFGj9+/Fmv/dasWbN05MgR1alTp8TuCwcAjEn4LU7VAQAAWMS36gAAACwiOAEAAFhEcAIAALCI4AQAAGARwQkAAMAighMAAIBFBCcAAACLCE4AAAAWEZwAAAAsIjgBAABYRHACAACwiOAEAABgEcEJAADAIoITAACARQQnAAAAiwhOlchbb72l2267TV27dtXOnTslSb/88ot69uypDh06aOnSpX6usOT89a9/Pe9rGzZsUHx8/FnbRo0apfbt2+u2227T3//+d1+XBwAop2zGGOPvIuB7p06dUnh4uP75z3/q0KFDGjNmjFatWqVHH31Ud911l7p27apOnTpp/fr1ql69ur/LvSwej0e33nqrvvnmmyJf37Bhg9asWaOUlBTvtoyMDIWFhSk7O1u9evXSv/71r0vqNyDg9O8iZw4rm81maX8AQPnAqF1BbdiwQT179lRERITCw8O1adMmNWrUSNWqVVOjRo30ww8/SJL+9a9/6fbbb1fVqlXVrl07paenF9nejBkz1KVLF3Xu3Fnff/+9JOn1119Xu3btNGTIEN14442SJKfTqTvuuEOdO3fW2LFjz1vf79v75Zdf1KlTJ508eVKLFi3SlClTJEnNmzfXwIED1a5dOy1fvlzS6ZDTq1cvde3aVY8++qgkacmSJbr//vsVERGht956S7t371bXrl29P3MxYWFhkiS73X7esGOM0bhx49StWzfdcccdcjqdkqQbb7xRDz30kCZOnKihQ4dqzJgx6tmzpw4dOqRBgwapS5cuuuuuu5Sdna2ffvpJnTt31oABA5ScnGypNgBAGWJQIa1fv9506NDBeDwes3PnThMREWHatGlj/ve//5n09HRTpUoVk5+fb8LDw70/8+STT5qPP/74nLa+//578+CDDxpjjDlw4IC5++67TWFhoWnTpo05efKkycrKMldeeaUxxpgxY8aYdevWGWOMGTZsmPniiy8stWeMMW+//baJjo42Xbt2Nfn5+cYYY6644gqTlZVlTp48adq0aWMKCwvNfffdZ/bs2WOMMSYmJsZ8/fXXZvHixWbQoEHePm655ZYLfjZxcXFFvjZ+/Hjz5ptvFvnaBx98YJ566iljjDH/+Mc/zJgxY4wxxgQFBZmjR48aY4wZMmSIWbBggTHGmLS0NDN58mRjjDFvvPGGmTp1qtm7d68JCwszeXl5560PAFB2VfV3cIPv3HzzzbLZbGrRooV+/vlnzZw5U3/5y1/UpEkT/elPf1K1atVUrVo17ykjl8ulOnXqnNPOzp07tWXLFnXt2lWSVKVKFR0+fFihoaGy2+2y2+269tprJUl79uxReHi4JCk8PFz//e9/1blz54u2J0n33nuvJk6cqOTkZFWrVk2SdN1113lrCg0N1ZEjR/TDDz/o4YcfliTl5OSoV69e3v4ux6JFi1RYWKhBgwYV+frOnTv1/vvva+PGjTLGKDQ0VJJ0/fXXq3bt2t79ztTx+8/ik08+kSS1adNGgYGBl1UrAMA/OFVXgW3fvl3GGO3evVvXXHONevfurQ0bNujJJ59Uq1atJJ3+H/qGDRtUWFiorVu36o9//OM57TRv3lxdunTRhg0btGHDBn300UeqX7++nE6n8vPzvaegpNMh4sz6oK+//lpNmza11J4kzZw5U7GxsXr11VeVm5srSfrpp5+UnZ2tvLw8ZWZmql69emrWrJlef/11bdiwQd9884369u0rSWetF7rQ2qKifPrpp3rvvfeUmpp63n2aN2+u/v37a8OGDfriiy+0ePHic/r97fPzfRasawKA8osZpwrM4XAoIiJCv/76qxYuXKgJEybou+++U506dTR//nxJ0uTJk/Xggw8qMTFRMTExqlGjxjnttG7dWk2bNlWXLl0UEBCgHj166IknntCECRPUvn17tWjRQo0bN/a2N2TIEM2YMUMtW7Y8Z7bpfO3ddddd+uabb7Rq1Sr98Y9/VHx8vObPn6/Q0FCNHz9eu3btUnx8vKpUqaLk5GTFxMTo5MmTqlKlihYtWnROH926ddNf/vIXPfTQQ4qMjDzn9bS0NG3fvl2SNGjQID377LOqVauW7rjjDtWoUUPr1q0752ciIiL0+eefq1u3brLZbIqOjvbOfBUlMjJSK1euVOfOnXXllVdq6dKlcrvd590fAFD28a26Cqqob46VtIKCAlWrVk1Hjx5V7969L+mbaBfTrl278347DgCA0saME86ye/dujRo16qxty5YtU6NGjc7Z95VXXtHKlSuVk5OjadOmXXZ7vvDOO+/olVde8T6vX7++0tLSLvpzX3zxhfebfWd89tln3vVYAIDKiRknAAAAi1ilCgAAYBHBCQAAwCKCEwAAgEUEJwAAAIsITgAAABZVyMsReDweHTx4UEFBQcW+gjQA3zPGKCcnR0FBQQoODuY4BVBuVMjgdPDgQe99xACUbS6XS8HBwf4uAwAsqZDBKSgoSJKUmZnJgAyUQW63W6GhocrMzPQerwBQHlTI4HRm2j84OJjgBL/zeDzKz8/3dxllRmBgoPfPnKYDUN5UyOAElBUej0f79u3TyZMn/V1KmVG9enXVrl3b32UAwCUhOAE+lJ+fr5MnT+rqq69WjRo1/F2O3504cUK//PKLCgsL/V0KAFwSghNQCmrUqKGsPzS1vH+jA5nnbHv66aeVmJioqlXPf9gOGzZMrVu3Vnh4uDp06ODdvmTJEnXs2FHXX3/9RfvesGGDVqxYoYKCAiUnJ2v27NnnvYkzAFQ2BCegnElNTVVAQIBOnTqlrl276t1331VWVpYGDBjg3adu3bpKTEzUtGnTlJiYqICAAB06dEg33HCDrrzySlWtWlWFhYVaunSpevToodzcXB0/flyFhYUKDw9XVFSUjh49qt27d0uStm/fro0bN+rXX3/V9OnT1bt3b3Xv3l0tWrTQN998o9DQUG3dulWzZ8/Wk08+qbp166pTp05asWKFbrvtNvXp04fTcwAqBC6ACZQz+/fv17hx45SZmamPP/5YsbGx6tatmySpYcOGmjBhgpo3b+7d/9SpUwoLC1NUVJRq164tY4xOnTrl3T86OlobN25U7dq1lZOTI0lauXKldu/erfDwcElSbm6u7Ha7N0jdfPPNio+P1z//+U9J0qBBg1S/fn19++23ysvLU8OGDfXTTz8pKChI0dHRhCYAFQbBCShH5s6dq8aNG2vevHlq3LixevbsqdTUVH3++efnnMKz2WxaunSpXC6XwsLCtHTpUt1www1au3atPvroI0lSQMDpIeD2229XVlaWWrRoIUmKiorSU0895W1z27ZtuvLKK+XxeCRJVapUkc1mkzHmrOc33nijrrjiCuXm5qply5be9gGgorCZMyNfBeJ2u+VwOLiwHvzu5MmT2rt3r6677jpVr169xNvPycnR8uXL9cMPP2jq1Kll/t/7mc+jfv36ql+/PscogHKHNU7wiQONrF25vahF0LAuKChIo0aN8ncZAFBpEJyAUnDixAl/l1Am8DkAKO8IToAPBQYGqnr16vrll1/8XUqZUb169QteUgEAyjJGL8CHAgIC1KRJE2658huBgYHKzc31dxkAcEkIToCPBQQE+GRhOACg9PFdYQAAAIsITgAAABYRnAAAACwiOAEAAFhEcAIAALCI4AQAAGARwQkAAMAinwanjIwMPfzww+rXr59326JFi9SlS5ez9jPGaNSoURozZoyef/55SdITTzyh+Ph4ZWRkKCMjQ88995wvSwUAALgonwansLAwLVy40Ps8IyNDR44cUf369c/ab9OmTWrZsqVeeuklbd++Xfn5+TLGaODAgdq6davmzp2r2NhYX5YKAABwUaV2qs7j8ej555/XhAkTznnN6XQqNDRUktSgQQNlZWWpadOmWrNmjY4ePapbb71VKSkp+uCDD4psOy8vT263+6wHAABASSu14HRmtmnSpEn69ttvtXbtWu9rISEhcjqdkqTDhw+rbt26GjZsmMaPH6/9+/fL6XQqJiZGmzdvLrLtpKQkORwO7+NMCAMAAChJPr1XXVZWlp588klt27ZNaWlpeueddySdnmHq06eP0tLSZLfbFRERoeXLlys2NlZt2rRRYGCgJOm5555TfHy8du7cqRkzZqhu3bpF9pOQkKCJEyd6n7vdbsKTDxxoxGcKAKjcbMYY4+8iSprb7ZbD4ZDL5VJwcLC/y6kwfBGcGh3ILPE2UfZxjAIor7gcAQAAgEUEJwAAAIt8usYJZR/rlgAAsI4ZJwAAAIsITgAAABYRnAAAACxijZOsr/Phq/MAAFRuzDgBAABYRHACAACwiOAEAABgEcEJAADAIoITAACARQQnAAAAiwhOAAAAFhGcAAAALCI4AQAAWERwAgAAsIjgBAAAYBHBCQAAwCKCEwAAgEUEJwAAAIsITgAAABZV9WXjGRkZmj59ulwul95991099NBDCgwMVH5+vhYsWKAqVapIkowxiomJUdWqVRUWFqa4uDg98cQTys/P1yOPPCJJeu+99/TYY4/5slwAAIAL8umMU1hYmBYuXOh9vnjxYr366qsKDg7WwYMHvds3bdqkli1b6qWXXtL27duVn58vY4wGDhyorVu3au7cuYqNjfVlqQAAABdV6qfqfvjhB+Xl5Sk0NNS7zel0ep83aNBAWVlZatq0qdasWaOjR4/q1ltvVUpKij744IMi28zLy5Pb7T7rAQAAUNJKNTilp6crJSVFc+fOPWt7SEiInE6nJOnw4cOqW7euhg0bpvHjx2v//v1yOp2KiYnR5s2bi2w3KSlJDofD+/htKAMAACgpPg1OWVlZiomJ0bZt2zR9+nT16NFDHo9H48ePl9PpVFpamlavXq2OHTtqx44dio2NVZs2bRQYGChJeu655xQXF6f27dtrxowZcjgcRfaTkJAgl8vlfWRmZvrybQEAgErKZowx/i6ipLndbjkcDrlcLgUHB190/wONrM1QNTpQ8QKZ1ffuKxXxM8XFFfcYBYCygssRAAAAWERwAgAAsIjgBAAAYBHBCQAAwCKCEwAAgEUEJwAAAIsITgAAABYRnAAAACwiOAEAAFhEcAIAALCI4AQAAGARwQkAAMAighMAAIBFBCcAAACLCE4AAAAWEZwAAAAsIjgBAABYRHACAACwiOAEAABgEcEJAADAIoITAACARQQnAAAAi6r6svGMjAxNnz5dLpdL7777rpYvX67169crLy9Pr7zyiq644grvvo8//riOHz+umjVraubMmZo5c6Zyc3PVt29fNW/eXMnJyUpKSvJluQAAABfk0xmnsLAwLVy40Pv8/fff12uvvab+/ftr5cqV3u379+9XQUGB5s6dq1OnTikzM1Mul0uPPvqovvzyS6WkpCg+Pt6XpQIAAFxUqZ6qs9lskqQmTZrI6XR6tx84cEChoaGSpMaNG8vpdCo8PFxz585V48aN1bBhQ7366qtaunRpke3m5eXJ7Xaf9QAAAChpflnj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", - "text/plain": [ - "<Figure size 600x600 with 4 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "2023-12-19 18:20:25,935 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.1964 seconds.\n" + ] }, { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAJRCAYAAABY7oO4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAABTjklEQVR4nO3dfVhUdf7/8deAiqaCbJKlIsa2rpaampQaCJppuVHehRV5k/cVqaVZlHmXSaZLeZfW2kp5U2utWVnWtgWpuaVZpv5KyxsUNMtMGUAcFD6/P7ycbyToR2VmuHk+rmsunZkzn/M+M3PevObMmXMcxhgjAAAAnJWfrwsAAAAoDwhNAAAAFghNAAAAFghNAAAAFghNAAAAFghNAAAAFghNAAAAFghNAAAAFghNAAAAFghNAAAAFghNQClyOBw6evSor8soNUOGDFFqaqrP5j9p0iQdP37c4/Np1aqVsrOzJUkvvPCCDh48WKSG0aNHF/u4d999Vw8//PAFz/dsY3vD3LlzNXDgQJ/NHyhvCE1ABXTy5MlSGWfhwoXq1KlTqYz1R4WFhSosLDzrNJMnT/ZKaNq8ebNq164t6czQdDa33367nn/+eU+WBqAMITQB58nhcGj8+PFq3bq1mjRpoqVLlxY73dixYxUREaFWrVqpY8eO2rFjR5Expk2bpuuvv15XXnmlFi1a5L6vcePGmjBhgtq3b68rr7xSU6dOdd938OBBxcXF6frrr1eLFi00fvz4Io977LHHdP3112vAgAEl1j9w4EANGzZMXbp00ZVXXqlBgwZpw4YNiomJUXh4uB555BH3tDExMVq5cqWkUwHq6quvVqtWrdSiRQt9+eWXKiwsVEJCgpo1a6Zrr71W11133VlDzqRJk9S7d29169ZNzZs3108//VTi8zRixAhJUlRUlFq1aqVffvlF2dnZGjp0qK6//nq1bNlSw4YNU35+fonze+KJJzRt2jRJ0gcffCCHw6EffvhBkjRo0CC99tpr7tfj6NGjmjJlig4cOKC+ffuqVatW2rx5syTpp59+UmxsrK6++mp17txZv/32myQpJSVFPXr0kCSlpaWpefPmeuCBB3Tttdfqmmuu0VdffVVibadlZGSoc+fOatq0qWJjY3X48GFJUk5OjgYNGqTmzZurefPmmjx5crGviyT16dNHKSkpkk69vsOHD9dNN92kJk2aqFevXu7nKDs7W3379tVf//pXRUZGauvWreesD8DvGADnRZIZP368McaYXbt2meDgYLNnzx73fUeOHDHGGPPLL7+4H/P666+bbt26FRlj5syZxhhjvv/+e1OrVi1z4sQJY4wxYWFh5qGHHjLGGHPo0CETGBhoMjMzjTHGdO3a1aSlpRljjDlx4oTp1q2bWb58uftxgwcPNoWFhWetf8CAAaZdu3YmLy/PuFwu8+c//9n06NHD5Ofnm5ycHHPZZZeZbdu2GWOMiY6ONm+//bYxxpjAwEBz4MABY4wx+fn5Jjs723z99demadOmpqCgwBhjzNGjR93/L87EiRPNFVdcYQ4ePOi+7VzP0+nn0xhjhg4dal599VVjjDGFhYVm8ODB5rnnnitxfp988onp1KmTMcaY0aNHm/bt25t58+YZY4wJDQ01+/fvP2M+YWFh5ptvvilSc1hYmPn111+NMcb07dvXTJs2zRhjzKJFi8wdd9xhjDEmNTXV+Pv7my+++MIYY8z8+fNN165dS6zt9NghISHmp59+MsYYc//995uhQ4caY4wZN26cueeee0xBQYHJyckxrVq1Mm+88YYxpujrYowxvXv3NosWLTLGnHp9r7/+epObm2tOnjxpOnToYJYtW2aMMWbs2LGmX79+prCw0Bw9etQ0bdrUDBgw4Kw1Avg/VXya2IByasiQIZKk8PBwdezYUWvWrFHjxo2LTPPxxx9rzpw5ys7OVmFhoXvrxGnx8fGSpKZNm6pKlSo6ePCgGjZsKEm65557JEl169ZVeHi49uzZozp16uiTTz7Rzz//7B4jJyenyBasgQMHyuFwnLP+O+64Q9WrV5cktWjRQt26dVPVqlVVtWpVXX311frxxx91zTXXFHnMTTfdpH79+ik2Nla33nqrmjRpovDwcJ08eVKDBg1Sp06d9Le//U1+fmffgN29e3fVq1fP+nn6vZUrV+p///ufkpOTJUl5eXny9/cvcfobb7xRmzdvVl5enj777DPNnDlTc+fO1U033aSaNWuqfv3653yuJOmWW27RpZdeKklq3759iVtorrrqKt1www3u6WbOnHnOsf/2t7/p8ssvlyQNGzZMvXr1kiT997//1d///nf5+fmpZs2a6t+/vz7++GP17dv3nGP27NlTl1xyiSTp+uuv165duyRJn3zyiZ5//nk5HA4FBQXpnnvucd8H4NwITUAp+GNQ2bdvnxISErRx40b9+c9/1pYtW9SxY8ci05wOLZLk7+9fZD+k4u4zxkiSvvjiiyL3/16tWrWs6v3j+Ger5bR///vf2rRpk9LS0tS9e3dNnTpVd911l7Zt26bPPvtMqampSkxM1Jo1a3TVVVeVOO/f12jzPP2eMUb//ve/1aRJE6vlDAgIUNu2bfXmm2+qRo0aiomJ0bBhw/TRRx/ppptushpDOvtrdSHTnU1Joff3t1epUkUFBQXu63/8StS2DpuADeD/sE8TcAFO74OUnp6utWvXKioqqsj9WVlZqlq1qq644goZYzR37tyLnmetWrXUqVMnPfvss+7bDhw4oMzMzIse+1xOnjypXbt2qW3btho7dqz69OmjDRs26NChQ8rNzVXXrl01bdo0NW7cWN999531uOd6nmrXrq2srCz39R49emj69OnuEHDkyBHt3LnzrPPo0qWLJkyYoJtuukl+fn5q3bq1kpOT1aVLl2KnDwwMLDJPT/vggw/cWw8XLlzorqtLly565ZVXZIxRbm6uFi9erK5du0o6tUXryy+/lCTt2bNH69ats5pXly5dtGjRIhlj5HQ69frrr3tgiYCKi9AEXICCggK1bt1aXbt21ezZs8/4aq5Fixa66667dM011ygiIkKNGjUqlfkuXbpUO3fuVPPmzdWiRQv16tXLveOwJxUUFLh3Sm7VqpU2bdqkRx55RBkZGbr55pvVsmVL9w7Lt956q/W453qexowZo5tvvtm9I/jzzz+vGjVqqFWrVmrZsqVuuukmpaenn3UeXbp00d69e91h5Oabb1ZGRoZiYmKKnX7kyJEaOnRokR3BPSkqKkr33HOPmjZtqr1797p3XH/qqadUtWpVtWjRQjfccINuv/12xcXFSZLGjRun1NRUtWjRQomJie6vBM/lqaeeUl5enpo2baru3bsrMjLSY8sFVEQOc3qbPwArDodDR44cUZ06dXxdCgDAi9jSBAAAYIEdwYHzVB42zn7wwQd64oknzrg9MTHR6tdXF2Pz5s3FHmV6wIABF3X07LO5/fbbtW/fviK3BQcH+/Ro5qf54vkA4Bl8PQcAAGCBr+cAAAAsEJoAAAAsEJoAAAAsEJoAAAAsEJoAAAAsEJoAAAAsEJoAAAAsEJoAAAAsEJoAAAAsEJoAAAAsEJoAAAAsEJoAAAAsEJoAAAAsEJoAAAAsEJoAAAAsEJoAAAAsEJoqiLZt2/q6hBKlpKTof//7n8fGT0tL0w8//HBej4mJiVFOTs55z2v06NHKy8s778edzc8//6wOHTooOjpanTt31k8//VSq4wO+QE8qvz0pPT1dISEhiomJUUxMjA4dOlSq45dnVXxdAMqXwsJC+fmdX9YeOHCgR+edlpamtm3bqkmTJqUyn7PN/4UXXij1cevWrat169bJz89PKSkpeuWVVzR+/PhSnw9QEdGTXvDI2NHR0Xrrrbc8MnZ5xpamcigtLU1du3ZVbGysIiIitHXrVvd9H3/8saKjoxUREaFnn31W0qlPVb1793ZPf3pLRrNmzTRgwAC1atVKS5culSTt3r1b3bp1U0xMjB5++GH34++66y7Fxsbqww8/PKOegQMHavjw4erUqZOGDBmip59+Wu3bt9fYsWMlSZMmTdKqVau0a9cudejQQZ06ddLw4cMlSffdd5+ioqIUExOj9PT0M8ZOT09Xx44d1bdvX02fPl2LFy9WTEyM2rRpo8WLFysvL08pKSlKTExU//79ZYzRQw89pE6dOqlLly7KzMws8XmcMGGCOnbsqISEBEmS0+nU7bffrujoaN11113Kz89XWlqaYmNj1bNnT6WkpLg/DT7zzDOKiYlRx44dFRISIklKTk5W+/btFRkZqa+//lqS1KZNGyUkJOiGG27Q9OnTi63D39/f3Xizs7N1zTXXlFgzUBbRkypWT5Kkzz//XFFRUXriiSdkjClxukrHoNxJTU01N954oyksLDTfffediY2NNdddd50xxpjc3FxjjDEFBQWmbdu25tixY2bRokXmvvvuM8YY8+KLL5pZs2YZY4ypU6eOycrKMllZWeb66683xhhz5513mp07dxpjjBkxYoTZuHGjWbRokbn33ntLrGfAgAFmyZIlxhhj2rdvb1auXGmMMaZt27YmPz/fTJw40bz33ntm4cKFZt68ee768vPzTfv27U1hYaH7tj/as2ePCQ8PNy6Xq8jyHTt2zLRu3doYY9zjG2PMe++9Z5566iljjDFffPGFefDBB4utOTo62nz22WfGGGPatWtnjh49ambMmGHmz59vjDFmypQp5tVXXzWpqakmKirKXWN0dLTJzs52j/PYY4+ZhQsXmp9++slERUWZgoICs2fPHtOlSxdjjDFXXnmlSU9PNydPnjTXXHNNic/hN998Y66//nrTpEkTk56eXuJ0QFlET6pYPen48eMmJyfHFBYWmsGDB5u33nqrxOe6smFLUznVunVrORwONWvWrMg+MJs2bVKXLl3UqVMnpaen65dffnFPL0mhoaE6cuSIJCk8PFyBgYEKDAxUQUGBJGn79u0aPHiwYmJitGHDBvenooiIiLPW07JlS0lS/fr13f+vV6+enE6ne5q4uDjt2bNH8fHxWrJkiapWraoHH3xQ/fr106hRo3Ts2LFix7722mtVrVo1SdJHH32kmJgY3XLLLdq5c+cZ03733Xd6++23FRMTo3Hjxuno0aNnfQ4lqUGDBjp69Kh27tzpXs6IiAj9+OOPkk7tm+FwOM54/GuvvaYTJ05o8ODBSk9P17XXXis/Pz81btzYPd/g4GCFhYXJ399f1atXL7GWVq1a6csvv9TTTz+tpKSkEqcDyip6UsXpSQEBAapZs6YcDod69eqlb7/9tsSaKxv2aSqnNm/eLGOMfvjhB11xxRU6cOCAJOm5557TggULFB4erjZt2rg3q/5+BSvuttP++te/aubMmQoLC5MxRgUFBVqyZMk59xn4/VjFzUuSqlSpohkzZkiSrrnmGsXHxysuLk7x8fGaNm2aVqxYof79+58x9u/nPXXqVK1Zs0YOh0Ph4eGSpKpVq7obbNOmTRUXF6ennnpKknTixAmrmo0xuuqqq7RhwwZdd9112rhxo/7yl7+cMf/TPv/8c61cudL9nX/jxo21efNmFRYWat++fapTp84Z8yhJfn6+uwEHBQXpkksuOedjgLKGnlRxelJ2drZq164tSVq7dq2aNWt2zsdUFoSmciooKEixsbH6+eef9corr2jQoEGSpN69e6tnz55q0aKF+01/PqZPn64RI0bo+PHj8vf31z//+c9Sq/ndd9/V3LlzJUndunVTdna27rjjDjkcDjkcDvc+DGfTq1cvRUVFqU2bNgoODpYkde7cWY899pg+/fRTvfDCC/r000/VqVMnORwOxcfHa/DgwVb1DR06VPHx8XrjjTdUr149PfbYY1q/fn2x006YMEFZWVnq3LmzatWqpVWrVumOO+5Qhw4d5Ofnpzlz5lg+K6f+2IwdO9b9ya80n3PAW+hJFacnrVu3TuPHj9cll1yiK6+8Uk8//bT1Yys6hzHs4VXepKWladWqVZo5c6av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bnXf9/HHHys6OloRERF69tlnJZ361NW7d2/39D/99JMkqVmzZhowYIBatWqlpUuXSpJ2796tbt26KSYmRg8//LD78XfddZdiY2P14YcfnlHPwIEDNXz4cHXq1ElDhgzR008/rfbt27s/JU2aNEmrVq3Srl271KFDB3Xq1Mn9aem+++5TVFSUYmJilJ6efsbY6enp6tixo/r27avp06dr8eLFiomJUZs2bbR48WLl5eUpJSVFiYmJ6t+/v4wxeuihh9SpUyd16dJFmZmZJT6PEyZMUMeOHZWQkCBJcjqduv322xUdHa277rpL+fn5SktLU2xsrHr27KmUlBT3FqpnnnlGMTEx6tixo0JCQiRJycnJat++vSIjI/X1119Lktq0aaOEhATdcMMNmj59erF1NGzYUMYYGWN05MgR1a1bt8SaAV+g51xczzl27Jj+9re/SZL69++vKVOmSDq1xVs6tTXoj+NK0rZt29SzZ09de+212rZtm3va08vYr18/de/eXdHR0SVuAS8sLNSwYcPUvn17zZgxQ5KUmZmpLl26FOl/KSkpmjt3riRp1apVmjRpUomv2bfffquIiAjddttt2rJlS7HzrbAMyp3U1FRz4403msLCQvPdd9+Z2NhYc9111xljjMnNzTXGGFNQUGDatm1rjh07ZhYtWmTuu+8+Y4wxL774opk1a5Yxxpg6deqYrKwsk5WVZa6//npjjDF33nmn2blzpzHGmBEjRpiNGzeaRYsWmXvvvbfEegYMGGCWLFlijDGmffv2ZuXKlcYYY9q2bWvy8/PNxIkTzXvvvWcWLlxo5s2b564vPz/ftG/f3hQWFrpv+6M9e/aY8PBw43K5iizfsWPHTOvWrY0xxj2+Mca899575qmnnjLGGPPFF1+YBx98sNiao6OjzWeffWaMMaZdu3bm6NGjZsaMGWb+/PnGGGOmTJliXn31VZOammqioqLcNUZHR5vs7Gz3OI899phZuHCh+emnn0xUVJQpKCgwe/bsMV26dDHGGHPllVea9PR0c/LkSXPNNdcUW0tBQYG59957TZMmTUyjRo1MRkZGic814Av0nIvvOZ07dzYnT540cXFxJi4uzmRkZJh+/foZY4z7ufz9uKmpqaZz587GGGM++OAD8/DDD58x7eTJk40xxowbN8688847xc63cePGZvv27aagoMBERUWZn3/+2Tz44INm9erVxhhjBg0aZD777DOzaNEiM2fOHPcyTZw40RhT/Gt22223ucds3769SU1NLXbeFRFbmsqp1q1by+FwqFmzZu5PcZK0adMmdenSRZ06dVJ6erp++eUX9/SSFBoaqiNHjkiSwsPDFRgYqMDAQBUUFEiStm/frsGDBysmJkYbNmxwf2qKiIg4az0tW7aUJNWvX9/9/3r16snpdLqniYuL0549exQfH68lS5aoatWqevDBB9WvXz+NGjVKx44dK3bsa6+9VtWqVZMkffTRR4qJidEtt9yinTt3njHtd999p7ffflsxMTEaN26cjh49etbnUJIaNGigo0ePaufOne7ljIiI0I8//ijp1Cc7h8NxxuNfe+01nThxQoMHD1Z6erquvfZa+fn5qXHjxu75BgcHKywsTP7+/qpevXqxdfznP/9RlSpVtGPHDv373//WmDFjSqwZ8BV6zsX1nNatW+udd95R48aN5e/vr08//VRRUVFnXcZWrVpJKvoc/nHMs90vSbVq1dJf//pX+fn56dprr9WePXuK7XW/73HGGPf/i3vNDh486B7zuuuuO+syVDSEpnJq8+bNMsZox44duuKKK9y3P/fcc1qwYIFSU1PVoEED95u/uBWiuCDw17/+Va+++qrS0tL01Vdf6bbbbpMk+fmd/a3y+7FKWvmqVKmiGTNmaOnSpZo+fboKCgoUFxenJUuWqF69elqxYkWxY/9+3lOnTtX777+v1atX65JLLpEkVa1a1b0yN23aVHFxcUpLS9Nnn32mRYsWWdVsjNFVV12lDRs2SJI2btyov/zlLyUu++eff66VK1e6N3c3btxYmzdvVmFhodLT01WnTp0z5lESY4wuvfRSSVLdunWVlZV1zscA3kbPubieExUVpWeeeUZRUVFq3bq1Zs2adUZo+v24Z1su2/slKScnRz/++KOMMdqyZYsaN25cbK8LDg52B9Zvv/222HmcVq9ePfeYp3dFqCyq+LoAXJigoCDFxsbq559/1iuvvKJBgwZJknr37q2ePXuqRYsWql279nmPO336dI0YMULHjx+Xv7+//vnPf5Zaze+++677O/Nu3bopOztbd9xxhxwOhxwOh/v78rPp1auXoqKi1KZNGwUHB0uSOnfurMcee0yffvqpXnjhBX366afq1KmTHA6H4uPjNXjwYKv6hg4dqvj4eL3x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aAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBAaAIAALBQxZsz27dvn0aOHKk//elPatKkiRo1aqTU1FS5XC7Nnz9fq1ev1o4dOxQSEqJhw4Zp9OjRmj59ugICArxZJoBK7ly9qmbNmr4uEYAPeHVL09atW9WnTx/985//1DfffKO3335b//jHPxQXF6cVK1Zo06ZNevLJJ7V792698cYb6tmzJ4EJgNedq1cBqJy8GpratWunV155RZ07d9Ytt9wih8MhSQoLC1NmZqbuvvtuTZgwQe3atdOWLVu0detWzZgxQwUFBcWO53K55HQ6i1wA4GKdq1cVh34EVHxeDU2LFi3S5MmT9emnn+r99993375v3z41bNhQLVu21JQpU7Rx40b1799f+fn5Cg8P19dff13seElJSQoKCnJfQkNDvbUoACqwc/Wq4tCPgIrPYYwx3prZtm3bNGnSJNWtW1e1atVSmzZttHbtWuXl5WnevHmqWbOm1q5dq4yMDPXt21cJCQmSTjWjOnXqnDGey+WSy+VyX3c6nQoNDVVWVpYCAwO9tVjwgv0N7P4ANdif4eFKUBqcTqeCgoLK7Lpq06v+iH6Ektj2L5Q+278Jtj3Jq6HJ08p6I8aFIzRVLJVhXa0Mywg7hCbfKe3QxCEHAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALBCaAAAALFSxmej777/XggULlJ6eLj8/P1WpUkXdunXTwIEDVaWK1RAA4BX0KwCeYtVB/vOf/2jSpEkKDg5237Zu3TqtXbtW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GjBgQKnM7OOPP9bVV1+t48ePKysrSyEhIZKksLAwZWZmqlu3bpo4caJuuOEGbd++XStXrlStWrX0wAMPFDteUlKSJk+eXCq1AagYSqNfnatXFYd+BFR81r+eKw1paWnKzc3Vd999J39/fwUHB0uS9u3bp5YtWyoqKkoxMTEaNWqU7rzzTv3yyy/as2ePDh065G5av5eYmKhHHnnEfd3pdCo0NNRrywOgYjpXryoO/Qio+BzGGOPtmaakpKhu3br64YcftHfvXrlcLs2fP18Oh0PLli1TaGiomjdvrsTERPn7+2v27Nny9/c/57hOp1NBQUHKyspSYGCgF5YE3rK/gd0fnwb7MzxcCUpDeVlXz9arzqW8LCM8z7Z/ofTZ/k2wXV99Epo8hSZVcRGaKpbKsK5WhmWEHUKT75R2aLI+9xwAAEBlRmgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwQGgCAACwUMWbM1u5cqXef/99OZ1ODR48WFu3btWePXt04sQJLViwQC+99JIOHz6sZs2aKTY2VmPGjNHs2bO9WSIAnLNXORwOX5cIwAe8Gpp69OihHj166MiRI3rkkUeUn5+vpUuXau7cuVq3bp327t2radOm6YknntDevXuVkJBw1vFcLpdcLpf7utPp9PQiAKgEztWroqKizngM/Qio+Hzy9dzUqVM1ZMgQhYSESJLCwsKUmZmpbt26aeLEibrhhhvkcrm0cuVKvfjiiyWOk5SUpKCgIPclNDTUW4sAoBIoqVcVh34EVHxeDU3GGD322GO69dZbFRERoV9//VWStG/fPjVs2FAxMTGaMmWKUlNTFRkZqauuukp5eXk6dOhQseMlJiYqKyvLfcnIyPDm4gCooM7Vq4pDPwIqPq9+PTdnzhz997//VVZWlnbu3Kk2bdpo1KhRcrlceuCBByRJy5YtU58+fXTNNddoyZIl8vf315/+9KdixwsICFBAQIA3FwFAJWDTq/6IfgRUfA5jjPF1EaXF6XQqKChIWVlZCgwM9HU5KEX7G9h91dFgP5/uy4PKsK5WhmWEHdv+hdJn+zfBdn3lkAMAAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWCE0AAAAWqvi6gNzcXD3wwAOqVq2aYmJitGHDBknSlClT9P/+3//Trl271K9fPx9XCaCy+2Ovio+P93VJALzM51uaVqxYoT59+ugf//iHFi5cqMaNG6tjx47atm2b/vWvfxGYAJQJv+9V7777rq/LAeADPt/SlJmZqRYtWkiSrrjiCknS9u3btXv3bkVHRyspKUmRkZGKioo647Eul0sul8t9PSsrS5LkdDq9UDm8Kbuw0Go6Xvvy4fTrZIzxcSX2ft+r/P39z7iffoSS2PYvlD7b9c+2J/k8NDVs2FCZmZlq1aqVCgsL9fDDD2vnzp165513tHHjRk2bNk2JiYnFhqakpCRNnjz5jNtDQ0O9UTrKoqAgX1eA85Cdna2gcvKa/bFX/RH9CCiDzrO/nKsnOYyPP+rl5uYqISFB1atXV2RkpOLj4zVq1CjNmDFDK1eu1NatW9WgQQONGDHijMf+8ZNdYWGhfvvtN1166aVyOBzeXAxJp5JqaGioMjIyFBgY6PX5nw9q9YzyUquv6zTGKDs7W/Xr15efn8/3ErBSXK/6vbLWj7zJ1+8neE5leW1te5LPQ1NF4nQ6FRQUpKysrDL/5qJWzygvtZaXOlE+8H6quHhtiyofH/EAAAB8jNAEAABggdBUigICAjRx4kQFBAT4upRzolbPKC+1lpc6UT7wfqq4eG2LYp8mAAAAC2xpAgAAsEBoAgAAsEBoKgUHDhxQfHy8+vfvr9TU1DPu/+ijj3TVVVf5oLIzna3WRx99VMOHD1ffvn2VnZ3towpPHQ9nwIABGjp0qJYuXeq+fdu2bYqPj1d8fLy2bdvms/pOK6nOZ599VsOHD1fv3r2VmZnpwwr/T0m1StLWrVt12WWXKScnx0fVoTxISUlR9+7dNWLECK1cubLIfX369PFNUSgVeXl5GjFihG6//XZFRUVpxIgR2rVrV7k6Yr/XGFy0KVOmmC1btpiCggJz9913F7nvyJEj5vHHHze9e/f2UXVFna3W05KTk82aNWu8XNn/ee2118y7775rjDEmLi7OffuQIUPMkSNHzNGjR82wYcN8VZ5bSXWetmLFCvPaa695u6xilVRrfn6+GTlypOnfv7/Jzs72VXkoBxYtWmTee+89Y8ypPjJy5Egzbdo0Y4xx97ehQ4eaMWPGmH/+85/mxIkTZty4cWbUqFEmISHBnDx50me1w05qaqqZM2eO6dChg0lKSjLLly83c+bMMcYY07dvX2OMMW+88YYZPXq0GTRokPnmm298WK1vsKXpPG3dulW33XZbkcvu3bsVGhpa7FFEn3nmGT366KM+qPT8a5WkgwcP6quvvlKHDh28XO3/yczMdJ964vfn+MrKylKdOnUUFBTk0y1hp5VUpyTl5ORo+fLl6tGjhw8qO1NJtc6cOVMjR46s8EesRul48cUXNWzYMBUWFiowMFArVqwocv/BgwfVqVMn3X333fr444+Vnp6uOnXqKCcnR/v37/dR1ThfV199tR5//HGFhISccd/cuXMVFBSkyy67TBs2bPBBdb7l83PPlTctWrTQqlWritz29NNPKzMz84yjpebm5mrnzp2aMmWKvv32Wy1ZskT33ntvmaxVkvbv36/HH39c8+bNK/aEpN5S0jm+Th+V1uFwqHbt2j6r77SS6nQ6nXrwwQf13HPPlYk6pZJr3bx5s37++Wdt2LBBL730ksaMGePDKlHWPfDAA7riiiv0/vvv6+mnn9a6deuK3P+vf/1LqampGjhwoPr166cbb7xRI0eO9FG1uFCnz70WEBCgkydPSjr190ySatSooUmTJvmqNJ/jkAOl4MCBA3r88cdVpUoV3XvvvercubP69eunxYsXu6fp06eP3nrrLR9WecrZar3uuuvUpEkTBQUF6f7779e1117rkxr/eI6vDz/8UIsXL9a2bdv03HPPSZLGjRun5s2b+6S+c9XZq1cvnThxQg0aNFBcXJw6d+7s0zrPVutpAwcO1Ny5c1WrVi0fVomyLCUlRXXr1lVUVJQGDRqk9u3bKyUlRdu2bVOfPn30+uuva9SoUapRo4Zq1qypCRMmaMSIEQoODtbRo0c1Z84cVa9e3deLgbNIS0vTtm3blJ6erpkzZ+rYsWMaMmSIIiIitGjRIm3ZskWvvfaa1q1bpxo1auhvf/ubunbt6uuyvYrQBAAAYIF9mgAAACwQmgAAACwQmgAAACwQmgAAACwQmgAAACwQmgAAACwQmlCm/P7Ai9Kp44bMnTtXkrRgwQLt2rXLF2UBqKBSUlLOOAjw2UyaNKlMnPsSvsERwVEmpKSk6L///a+aNWum7OxsHTx4UOPHj9e6deu0fv161alTRwcPHlReXp6++OILvfjii5JOHaG4Xbt2Pq4eQHn2+uuvKzU1VZdddpn279+vKlWq6OTJk5o9e7ZeeuklbdmyRU6nUy+88IL7Md98841SUlJ08uRJtW/fXp07d9a8efN0+PBh3XLLLerRo4datGihgQMHatOmTXrllVdUo0YN3y0kSgVbmlBm3Hrrreratavy8/N1ySWXaMWKFYqMjFT37t2LnH5mzpw5evnll/Xyyy9r3rx5PqwYQEXQtWtX/f3vf9fGjRsVFBSk5ORkXXrppdq2bZs++ugjzZs3T0OGDNHrr7/ufkxycrKCg4MVEhKib775RlWqVJHL5VK9evW0dOlSSadOXzRmzBi1b99emzdv9tHSoTSxpQllRlBQkKZPn67XX39d69evV2pqarEnFjbGuE8wywHtAZSWgoICd29xOBxF+ssfr+fn52vUqFEKDg6WJP3973/X7bffrhtuuEF33HGHJKlmzZqSpKpVq8rlcnlrMeBBhCaUKdHR0Zo4caJyc3MVHBysJk2aKDk52d18JCkhIUEjRoyQdOrrOQC4GB999JG+/fZbtWvXThkZGXr00UeVl5enFi1aqEuXLho5cqSOHDmi559/3r2P5WOPPaaHHnpI9erVU+PGjdWhQwctWLBAn3/+uapVq+bjJYKncO45AAAAC+zTBAAAYIHQBAAAYIHQBAAAYIHQBAAAYIHQBAAAYIHQBAAAYIHQBAAAYIHQBAAAYIHQBAAAYIHQBAAAYOH/A8xYaETJsjelAAAAAElFTkSuQmCC", - "text/plain": [ - "<Figure size 600x600 with 4 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stderr", + "output_type": "stream", + "text": [ + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 13.26it/s]\n" + ] }, { - "data": { - "image/png": "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", - "text/plain": [ - "<Figure size 600x600 with 6 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from nuplan.planning.script.run_simulation import main as main_simulation\n", - "\n", - "# Run the simulation loop (real-time visualization not yet supported, see next section for visualization)\n", - "main_simulation(cfg)" - ] - }, - { - "cell_type": "markdown", - "id": "4ace6fd1", - "metadata": {}, - "source": [ - "## Prepare the nuBoard config" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "output_folder_alt = []\n", - "output_folder_alt.append(\n", - " \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.09.21.59.48\"\n", - ")\n", - "output_folder_alt.append(\n", - " \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.09.23.21.13\"\n", - ")\n", - "output_folder_alt.append(\n", - " \"../../data/nuplan/exp/exp/simulation/closed_loop_nonreactive_agents/2023.12.10.07.32.41\"\n", - ")\n", - "output_folder_alt.append(\n", - " \"../../data/nuplan/exp/exp/simulation/closed_loop_nonreactive_agents/2023.12.10.08.29.23\"\n", - ")\n", - "output_folder_alt.append(\n", - " \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.11.00.41.30\"\n", - ")\n", - "output_folder_alt.append(\n", - " \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.10.09.31.44\"\n", - ")\n", - "output_folder_alt.append(\n", - " \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.13.12.21.28\"\n", - ")\n", - "output_folder_alt.append(\n", - " \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.13.13.07.48\"\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "1bdb7bef", - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "# output_folder = '../../data/nuplan/exp/exp/simulation/open_loop_boxes/2023.12.09.21.19.06'\n", - "# output_folder = \"../../data/nuplan/exp/exp/simulation/closed_loop_reactive_agents/2023.12.09.21.59.48\"\n", - "# Location of path with all nuBoard configs\n", - "CONFIG_PATH = \"../nuplan/planning/script/config/nuboard\"\n", - "CONFIG_NAME = \"default_nuboard\"\n", - "\n", - "# Initialize configuration management system\n", - "hydra.core.global_hydra.GlobalHydra.instance().clear() # reinitialize hydra if already initialized\n", - "hydra.initialize(config_path=CONFIG_PATH)\n", - "\n", - "# Compose the configuration\n", - "cfg = hydra.compose(\n", - " config_name=CONFIG_NAME,\n", - " overrides=[\n", - " f\"scenario_builder={scenario_builder}\", # set the database (same as simulation) used to fetch data for visualization\n", - " f\"simulation_path={output_folder}\", # [output_folder, output_folder_alt] nuboard file path(s), if left empty the user can open the file inside nuBoard\n", - " ],\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "91fe931f", - "metadata": {}, - "source": [ - "## Launch nuBoard (open in new tab - recommended)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "e1f01dcc", - "metadata": { - "scrolled": false - }, - "outputs": [ + "name": "stdout", + "output_type": "stream", + "text": [ + "2023-12-19 18:20:59,618 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.3172 seconds.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 22.40it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2023-12-19 18:21:45,917 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 1.5985 seconds.\n", + "2023-12-19 18:54:58,876 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 0\n", + "2023-12-19 18:54:59,200 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 41.10it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2023-12-19 19:17:46,993 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.0285 seconds.\n", + "2023-12-19 19:18:05,179 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 1\n", + "2023-12-19 19:18:06,005 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 1\n", + "2023-12-19 19:18:17,561 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 2\n", + "2023-12-19 19:18:17,628 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 4\n", + "2023-12-19 19:18:18,016 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 4\n", + "2023-12-19 19:18:18,264 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 7\n", + "2023-12-19 19:18:18,265 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 8\n", + "2023-12-19 19:18:18,661 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 16\n", + "2023-12-19 19:18:18,730 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 19\n", + "2023-12-19 19:18:19,011 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 25\n", + "2023-12-19 19:18:19,017 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 25\n", + "2023-12-19 19:18:19,421 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 25\n", + "2023-12-19 19:18:19,428 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 24\n", + "2023-12-19 19:18:19,469 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 22\n", + "2023-12-19 19:18:19,546 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 18\n", + "2023-12-19 19:18:19,678 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 13\n", + "2023-12-19 19:18:19,846 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 6\n", + "2023-12-19 19:18:20,017 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 6\n", + "2023-12-19 19:18:23,164 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 4\n", + "2023-12-19 19:18:23,640 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 17\n", + "2023-12-19 19:18:23,641 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 18\n", + "2023-12-19 19:18:23,662 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 20\n", + "2023-12-19 19:18:23,918 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 23\n", + "2023-12-19 19:18:23,920 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 24\n", + "2023-12-19 19:18:23,969 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 27\n", + "2023-12-19 19:18:24,021 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 27\n", + "2023-12-19 19:18:25,431 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 35\n", + "2023-12-19 19:18:25,495 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 33\n", + "2023-12-19 19:18:25,645 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 30\n", + "2023-12-19 19:18:25,647 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 29\n", + "2023-12-19 19:18:25,846 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 19\n", + "2023-12-19 19:18:25,912 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 16\n", + "2023-12-19 19:18:25,979 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 11\n", + "2023-12-19 19:18:26,022 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 11\n", + "2023-12-19 19:18:26,812 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 4\n", + "2023-12-19 19:18:26,901 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 9\n", + "2023-12-19 19:18:26,980 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 15\n", + "2023-12-19 19:18:27,023 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 15\n", + "2023-12-19 19:18:27,096 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 19:18:27,130 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 29\n", + "2023-12-19 19:18:27,380 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 51\n", + "2023-12-19 19:18:27,416 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 55\n", + "2023-12-19 19:18:27,450 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 59\n", + "2023-12-19 19:18:27,481 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 62\n", + "2023-12-19 19:18:27,551 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 67\n", + "2023-12-19 19:18:27,615 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 71\n", + "2023-12-19 19:18:27,680 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 76\n", + "2023-12-19 19:18:27,778 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 83\n", + "2023-12-19 19:18:28,023 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 83\n", + "2023-12-19 19:18:28,296 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 83\n", + "2023-12-19 19:18:28,336 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 80\n", + "2023-12-19 19:18:28,344 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 79\n", + "2023-12-19 19:18:28,413 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 74\n", + "2023-12-19 19:18:28,452 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 71\n", + "2023-12-19 19:18:28,612 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 58\n", + "2023-12-19 19:18:28,778 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 50\n", + "2023-12-19 19:18:28,860 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 46\n", + "2023-12-19 19:18:29,023 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 46\n", + "2023-12-19 19:18:29,223 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 22\n", + "2023-12-19 19:18:29,616 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 1\n", + "2023-12-19 19:18:30,024 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 1\n", + "2023-12-19 19:18:30,610 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 2\n", + "2023-12-19 19:18:30,789 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 12\n", + "2023-12-19 19:18:30,904 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 17\n", + "2023-12-19 19:18:30,956 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 19\n", + "2023-12-19 19:18:31,025 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 19\n", + "2023-12-19 19:18:32,558 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 13\n", + "2023-12-19 19:18:33,026 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 13\n", + "2023-12-19 19:18:34,609 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 2\n", + "2023-12-19 19:18:34,679 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 6\n", + "2023-12-19 19:18:34,747 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 11\n", + "2023-12-19 19:18:34,939 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 19:18:34,991 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 31\n", + "2023-12-19 19:18:35,029 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 31\n", + "2023-12-19 19:18:35,148 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 37\n", + "2023-12-19 19:18:35,790 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 35\n", + "2023-12-19 19:18:35,879 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 29\n", + "2023-12-19 19:18:36,029 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 29\n", + "2023-12-19 19:18:36,176 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 15\n", + "2023-12-19 19:18:36,269 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 11\n", + "2023-12-19 19:18:36,359 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 8\n", + "2023-12-19 19:18:37,030 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 8\n", + "2023-12-19 19:18:46,568 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 9\n", + "2023-12-19 19:18:46,727 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 13\n", + "2023-12-19 19:18:47,039 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 13\n", + "2023-12-19 19:18:48,572 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 25\n", + "2023-12-19 19:18:49,042 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 25\n", + "2023-12-19 19:18:50,540 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 46\n", + "2023-12-19 19:18:50,790 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 52\n", + "2023-12-19 19:18:51,043 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 52\n", + "2023-12-19 19:18:51,840 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 46\n", + "2023-12-19 19:18:52,044 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 46\n", + "2023-12-19 19:18:52,085 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 35\n", + "2023-12-19 19:18:52,174 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 32\n", + "2023-12-19 19:18:52,416 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 23\n", + "2023-12-19 19:18:52,592 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 15\n", + "2023-12-19 19:18:53,045 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 15\n", + "2023-12-19 19:18:53,612 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 3\n", + "2023-12-19 19:18:53,713 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 10\n", + "2023-12-19 19:18:53,781 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 15\n", + "2023-12-19 19:18:54,015 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 25\n", + "2023-12-19 19:18:54,046 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 25\n", + "2023-12-19 19:18:54,610 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 36\n", + "2023-12-19 19:18:55,047 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 36\n", + "2023-12-19 19:19:01,237 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 76\n", + "2023-12-19 19:19:01,981 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 87\n", + "2023-12-19 19:19:02,054 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 87\n", + "2023-12-19 19:19:02,388 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 96\n", + "2023-12-19 19:19:02,782 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 88\n", + "2023-12-19 19:19:02,896 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 79\n", + "2023-12-19 19:19:03,053 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 79\n", + "2023-12-19 19:19:03,230 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 65\n", + "2023-12-19 19:19:03,894 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 58\n", + "2023-12-19 19:19:03,896 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 59\n", + "2023-12-19 19:19:04,054 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 59\n", + "2023-12-19 19:19:04,316 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 74\n", + "2023-12-19 19:19:04,643 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 82\n", + "2023-12-19 19:19:04,729 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 84\n", + "2023-12-19 19:19:04,914 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 90\n", + "2023-12-19 19:19:05,055 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 90\n", + "2023-12-19 19:19:05,191 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 98\n", + "2023-12-19 19:19:05,365 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 106\n", + "2023-12-19 19:19:05,642 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 121\n", + "2023-12-19 19:19:05,834 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 129\n", + "2023-12-19 19:19:06,055 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 129\n", + "2023-12-19 19:19:06,284 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 118\n", + "2023-12-19 19:19:06,417 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 107\n", + "2023-12-19 19:19:06,482 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 102\n", + "2023-12-19 19:19:06,567 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 97\n", + "2023-12-19 19:19:06,600 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 95\n", + "2023-12-19 19:19:06,698 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 86\n", + "2023-12-19 19:19:06,810 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 78\n", + "2023-12-19 19:19:07,056 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 78\n", + "2023-12-19 19:19:07,119 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 59\n", + "2023-12-19 19:19:07,232 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 54\n", + "2023-12-19 19:19:07,423 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 44\n", + "2023-12-19 19:19:07,740 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 27\n", + "2023-12-19 19:19:07,910 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 23\n", + "2023-12-19 19:19:08,056 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 23\n", + "2023-12-19 19:19:08,127 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 18\n", + "2023-12-19 19:19:08,356 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 11\n", + "2023-12-19 19:19:08,448 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 9\n", + "2023-12-19 19:19:08,534 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 6\n", + "2023-12-19 19:19:09,057 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 6\n", + "2023-12-19 19:19:09,459 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 4\n", + "2023-12-19 19:19:09,532 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 12\n", + "2023-12-19 19:19:09,557 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 15\n", + "2023-12-19 19:19:09,628 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 22\n", + "2023-12-19 19:19:09,657 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 24\n", + "2023-12-19 19:19:09,706 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 28\n", + "2023-12-19 19:19:09,808 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 34\n", + "2023-12-19 19:19:09,875 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 37\n", + "2023-12-19 19:19:10,057 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 37\n", + "2023-12-19 19:19:10,231 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 54\n", + "2023-12-19 19:19:10,436 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 63\n", + "2023-12-19 19:19:10,528 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 67\n", + "2023-12-19 19:19:10,851 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 80\n", + "2023-12-19 19:19:10,944 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 84\n", + "2023-12-19 19:19:11,033 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 89\n", + "2023-12-19 19:19:11,058 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 89\n", + "2023-12-19 19:19:11,244 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 101\n", + "2023-12-19 19:19:11,641 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 96\n", + "2023-12-19 19:19:11,643 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 95\n", + "2023-12-19 19:19:11,694 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 90\n", + "2023-12-19 19:19:11,849 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 75\n", + "2023-12-19 19:19:12,042 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 61\n", + "2023-12-19 19:19:12,058 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 61\n", + "2023-12-19 19:19:12,133 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 55\n", + "2023-12-19 19:19:12,222 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 46\n", + "2023-12-19 19:19:12,455 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 22\n", + "2023-12-19 19:19:12,632 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 6\n", + "2023-12-19 19:19:12,723 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 0\n", + "2023-12-19 19:19:13,060 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 0\n", + "2023-12-19 19:19:13,201 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 3\n", + "2023-12-19 19:19:13,229 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 7\n", + "2023-12-19 19:19:13,698 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 56\n", + "2023-12-19 19:19:13,794 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 62\n", + "2023-12-19 19:19:13,921 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 72\n", + "2023-12-19 19:19:14,060 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 72\n", + "2023-12-19 19:19:14,097 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 88\n", + "2023-12-19 19:19:14,186 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 94\n", + "2023-12-19 19:19:14,236 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 98\n", + "2023-12-19 19:19:14,500 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 110\n", + "2023-12-19 19:19:14,634 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 115\n", + "2023-12-19 19:19:14,928 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 129\n", + "2023-12-19 19:19:15,025 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 133\n", + "2023-12-19 19:19:15,060 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 133\n", + "2023-12-19 19:19:15,274 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 146\n", + "2023-12-19 19:19:16,062 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 146\n", + "2023-12-19 19:19:16,202 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 138\n", + "2023-12-19 19:19:16,230 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 134\n", + "2023-12-19 19:19:16,256 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 131\n", + "2023-12-19 19:19:16,461 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 115\n", + "2023-12-19 19:19:16,559 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 109\n", + "2023-12-19 19:19:16,730 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 99\n", + "2023-12-19 19:19:16,832 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 93\n", + "2023-12-19 19:19:17,053 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 78\n", + "2023-12-19 19:19:17,062 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 78\n", + "2023-12-19 19:19:17,143 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 74\n", + "2023-12-19 19:19:17,239 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 70\n", + "2023-12-19 19:19:17,406 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 61\n", + "2023-12-19 19:19:17,649 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 45\n", + "2023-12-19 19:19:17,822 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 38\n", + "2023-12-19 19:19:18,063 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 38\n", + "2023-12-19 19:19:18,092 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 19:19:18,231 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 20\n", + "2023-12-19 19:19:18,427 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 12\n", + "2023-12-19 19:19:18,750 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 0\n", + "2023-12-19 19:19:19,064 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 0\n", + "2023-12-19 19:19:19,512 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 5\n", + "2023-12-19 19:19:19,514 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 7\n", + "2023-12-19 19:19:19,575 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 13\n", + "2023-12-19 19:19:19,641 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 18\n", + "2023-12-19 19:19:19,777 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 28\n", + "2023-12-19 19:19:19,922 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 39\n", + "2023-12-19 19:19:20,067 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 39\n", + "2023-12-19 19:19:20,153 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 53\n", + "2023-12-19 19:19:20,444 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 57\n", + "2023-12-19 19:19:20,573 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 61\n", + "2023-12-19 19:19:20,677 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 64\n", + "2023-12-19 19:19:20,727 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 66\n", + "2023-12-19 19:19:20,944 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 77\n", + "2023-12-19 19:19:21,064 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 77\n", + "2023-12-19 19:19:21,184 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 86\n", + "2023-12-19 19:19:21,992 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 88\n", + "2023-12-19 19:19:22,048 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 84\n", + "2023-12-19 19:19:22,052 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 83\n", + "2023-12-19 19:19:22,068 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 83\n", + "2023-12-19 19:19:22,076 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 81\n", + "2023-12-19 19:19:22,244 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 69\n", + "2023-12-19 19:19:22,328 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 61\n", + "2023-12-19 19:19:22,651 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 33\n", + "2023-12-19 19:19:22,744 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 19:19:22,981 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 4\n", + "2023-12-19 19:19:23,070 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 4\n", + "2023-12-19 19:19:23,911 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 3\n", + "2023-12-19 19:19:23,913 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 5\n", + "2023-12-19 19:19:23,946 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 11\n", + "2023-12-19 19:19:24,066 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 11\n", + "2023-12-19 19:19:26,693 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 33\n", + "2023-12-19 19:19:27,069 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 33\n", + "2023-12-19 19:19:40,024 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 40\n", + "2023-12-19 19:19:40,080 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 40\n", + "2023-12-19 19:19:40,261 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 46\n", + "2023-12-19 19:19:40,604 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 54\n", + "2023-12-19 19:19:41,081 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 54\n", + "2023-12-19 19:19:41,449 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 69\n", + "2023-12-19 19:19:42,088 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 69\n", + "2023-12-19 19:19:42,091 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 85\n", + "2023-12-19 19:19:42,424 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 82\n", + "2023-12-19 19:19:42,475 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 80\n", + "2023-12-19 19:19:42,541 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 77\n", + "2023-12-19 19:19:42,592 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 74\n", + "2023-12-19 19:19:42,642 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 72\n", + "2023-12-19 19:19:42,774 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 67\n", + "2023-12-19 19:19:43,008 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 62\n", + "2023-12-19 19:19:43,082 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 62\n", + "2023-12-19 19:19:43,225 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 54\n", + "2023-12-19 19:19:43,293 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 51\n", + "2023-12-19 19:19:43,620 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 37\n", + "2023-12-19 19:19:43,626 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 36\n", + "2023-12-19 19:19:43,824 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 30\n", + "2023-12-19 19:19:44,067 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 25\n", + "2023-12-19 19:19:44,083 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 25\n", + "2023-12-19 19:19:44,696 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 12\n", + "2023-12-19 19:19:44,977 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 2\n", + "2023-12-19 19:19:45,084 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 2\n", + "2023-12-19 19:19:45,927 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 4\n", + "2023-12-19 19:19:45,930 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 5\n", + "2023-12-19 19:19:45,999 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 11\n", + "2023-12-19 19:19:46,085 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 11\n", + "2023-12-19 19:19:46,120 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 20\n", + "2023-12-19 19:19:46,213 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 23\n", + "2023-12-19 19:19:46,299 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 19:19:47,086 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 26\n", + "2023-12-19 19:19:51,753 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 34\n", + "2023-12-19 19:19:52,091 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 34\n", + "2023-12-19 19:20:13,477 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 32\n", + "2023-12-19 19:20:13,889 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 45\n", + "2023-12-19 19:20:13,981 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 49\n", + "2023-12-19 19:20:14,065 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 52\n", + "2023-12-19 19:20:14,112 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 52\n", + "2023-12-19 19:20:14,293 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 63\n", + "2023-12-19 19:20:14,610 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 82\n", + "2023-12-19 19:20:14,705 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 89\n", + "2023-12-19 19:20:14,963 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 107\n", + "2023-12-19 19:20:15,056 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 112\n", + "2023-12-19 19:20:15,113 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 112\n", + "2023-12-19 19:20:15,340 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 137\n", + "2023-12-19 19:20:15,435 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 146\n", + "2023-12-19 19:20:16,115 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 146\n", + "2023-12-19 19:20:16,563 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 146\n", + "2023-12-19 19:20:16,565 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 145\n", + "2023-12-19 19:20:16,567 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 143\n", + "2023-12-19 19:20:16,635 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 137\n", + "2023-12-19 19:20:16,687 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 133\n", + "2023-12-19 19:20:16,940 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 116\n", + "2023-12-19 19:20:16,941 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 113\n", + "2023-12-19 19:20:17,005 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 108\n", + "2023-12-19 19:20:17,091 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 104\n", + "2023-12-19 19:20:17,116 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 104\n", + "2023-12-19 19:20:17,137 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 102\n", + "2023-12-19 19:20:17,365 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 87\n", + "2023-12-19 19:20:17,434 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 81\n", + "2023-12-19 19:20:17,467 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 78\n", + "2023-12-19 19:20:17,983 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 31\n", + "2023-12-19 19:20:18,072 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 27\n", + "2023-12-19 19:20:18,116 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 27\n", + "2023-12-19 19:20:18,212 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 19\n", + "2023-12-19 19:20:18,305 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 15\n", + "2023-12-19 19:20:18,313 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 14\n", + "2023-12-19 19:20:18,504 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 3\n", + "2023-12-19 19:20:19,119 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 3\n", + "2023-12-19 19:20:19,410 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 8\n", + "2023-12-19 19:20:19,418 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 14\n", + "2023-12-19 19:20:19,443 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 17\n", + "2023-12-19 19:20:19,513 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 26\n", + "2023-12-19 19:20:19,561 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 29\n", + "2023-12-19 19:20:19,633 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 32\n", + "2023-12-19 19:20:19,680 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 34\n", + "2023-12-19 19:20:19,743 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 37\n", + "2023-12-19 19:20:19,981 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 46\n", + "2023-12-19 19:20:20,060 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 48\n", + "2023-12-19 19:20:20,119 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 48\n", + "2023-12-19 19:20:20,159 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 52\n", + "2023-12-19 19:20:20,211 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 54\n", + "2023-12-19 19:20:20,260 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 56\n", + "2023-12-19 19:20:20,931 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 61\n", + "2023-12-19 19:20:21,012 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 57\n", + "2023-12-19 19:20:21,061 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 55\n", + "2023-12-19 19:20:21,110 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 53\n", + "2023-12-19 19:20:21,120 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 53\n", + "2023-12-19 19:20:21,177 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 50\n", + "2023-12-19 19:20:21,344 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 45\n", + "2023-12-19 19:20:21,563 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 34\n", + "2023-12-19 19:20:21,611 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 31\n", + "2023-12-19 19:20:21,813 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 20\n", + "2023-12-19 19:20:21,902 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 17\n", + "2023-12-19 19:20:22,065 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 7\n", + "2023-12-19 19:20:22,121 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 7\n", + "2023-12-19 19:20:22,999 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 5\n", + "2023-12-19 19:20:23,002 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 8\n", + "2023-12-19 19:20:23,067 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 18\n", + "2023-12-19 19:20:23,094 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 22\n", + "2023-12-19 19:20:23,121 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 22\n", + "2023-12-19 19:20:23,306 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 48\n", + "2023-12-19 19:20:23,484 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 67\n", + "2023-12-19 19:20:23,866 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 99\n", + "2023-12-19 19:20:23,868 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 102\n", + "2023-12-19 19:20:23,871 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 104\n", + "2023-12-19 19:20:23,882 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 109\n", + "2023-12-19 19:20:24,122 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 109\n", + "2023-12-19 19:20:24,318 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 124\n", + "2023-12-19 19:20:24,350 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 120\n", + "2023-12-19 19:20:24,476 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 100\n", + "2023-12-19 19:20:24,702 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 69\n", + "2023-12-19 19:20:24,897 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 34\n", + "2023-12-19 19:20:25,044 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 15\n", + "2023-12-19 19:20:25,122 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 15\n", + "2023-12-19 19:20:29,662 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 4\n", + "2023-12-19 19:20:29,734 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 7\n", + "2023-12-19 19:20:29,973 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 19\n", + "2023-12-19 19:20:30,128 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 19\n", + "2023-12-19 19:20:30,827 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 12\n", + "2023-12-19 19:20:31,123 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 2\n", + "2023-12-19 19:20:31,128 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 2\n", + "2023-12-19 19:20:34,250 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 20\n", + "2023-12-19 19:20:34,699 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 19\n", + "2023-12-19 19:20:35,139 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 19\n", + "2023-12-19 19:20:35,382 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 5\n", + "2023-12-19 19:20:36,133 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 5\n", + "2023-12-19 19:20:40,064 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 3\n", + "2023-12-19 19:20:40,094 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 5\n", + "2023-12-19 19:20:40,138 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 5\n", + "2023-12-19 19:20:40,144 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 9\n", + "2023-12-19 19:20:40,528 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 20\n", + "2023-12-19 19:20:41,138 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 20\n", + "2023-12-19 19:20:41,754 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 40\n", + "2023-12-19 19:20:42,023 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 46\n", + "2023-12-19 19:20:42,145 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 46\n", + "2023-12-19 19:20:42,370 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 57\n", + "2023-12-19 19:20:42,504 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 61\n", + "2023-12-19 19:20:42,688 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 69\n", + "2023-12-19 19:20:42,780 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 72\n", + "2023-12-19 19:20:42,869 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 76\n", + "2023-12-19 19:20:42,954 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 79\n", + "2023-12-19 19:20:43,126 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 87\n", + "2023-12-19 19:20:43,139 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:902} Processing render queue for frame 87\n", + "2023-12-19 19:20:43,216 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 90\n", + "2023-12-19 19:20:43,915 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 86\n", + "2023-12-19 19:20:43,982 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 83\n", + "2023-12-19 19:20:44,102 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 79\n", + "2023-12-19 19:20:44,140 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 79\n", + "2023-12-19 19:20:44,585 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 68\n", + "2023-12-19 19:20:44,890 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 54\n", + "2023-12-19 19:20:44,981 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 49\n", + "2023-12-19 19:20:45,140 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 49\n", + "2023-12-19 19:20:45,253 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 38\n", + "2023-12-19 19:20:45,361 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 32\n", + "2023-12-19 19:20:45,449 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 30\n", + "2023-12-19 19:20:45,701 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 17\n", + "2023-12-19 19:20:46,013 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 5\n", + "2023-12-19 19:20:46,141 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 5\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 46.59it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2023-12-19 19:21:14,886 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.6776 seconds.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 29.18it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2023-12-19 19:21:38,697 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.2274 seconds.\n", + "2023-12-19 19:21:56,353 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 0\n", + "2023-12-19 19:21:56,711 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 1748.36it/s]\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ - "2023-12-19 11:52:53,594 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:18} Building AbstractScenarioBuilder...\n", - "2023-12-19 11:52:53,612 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/script/builders/scenario_building_builder.py:21} Building AbstractScenarioBuilder...DONE!\n", - "2023-12-19 11:52:53,613 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/nuboard.py:84} Opening Bokeh application on http://localhost:5006/\n", - "2023-12-19 11:52:53,613 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/nuboard.py:85} Async rendering is set to: True\n", - "2023-12-19 11:52:53,613 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/bokeh/server/server.py:403} Starting Bokeh server version 2.4.3 (running on Tornado 6.3.3)\n", - "2023-12-19 11:52:53,614 WARNING {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/bokeh/server/util.py:145} Host wildcard '*' will allow connections originating from multiple (or possibly all) hostnames or IPs. Use non-wildcard values to restrict access explicitly\n", - "2023-12-19 11:52:53,614 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/bokeh/server/tornado.py:360} User authentication hooks NOT provided (default user enabled)\n", - "2023-12-19 11:52:54,422 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:172} Minimum frame time=0.017 s\n", - "2023-12-19 11:52:54,503 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 0.0025 seconds.\n", - "2023-12-19 11:52:54,619 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET / (127.0.0.1) 289.77ms\n" + "2023-12-19 19:22:18,311 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.7320 seconds.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "INFO:tornado.access:200 GET / (127.0.0.1) 289.77ms\n", - "INFO:tornado.access:200 GET /resource/spectre.min.css (127.0.0.1) 3.28ms\n", - "INFO:tornado.access:200 GET /resource/spectre-exp.min.css (127.0.0.1) 0.51ms\n", - "INFO:tornado.access:200 GET /resource/spectre-icons.min.css (127.0.0.1) 0.34ms\n", - "INFO:tornado.access:200 GET /resource/style.css (127.0.0.1) 0.33ms\n", - "INFO:tornado.access:200 GET /resource/css/overview.css (127.0.0.1) 0.29ms\n", - "INFO:tornado.access:200 GET /resource/css/cloud.css (127.0.0.1) 0.33ms\n", - "INFO:tornado.access:200 GET /resource/css/scenario.css (127.0.0.1) 0.33ms\n", - "INFO:tornado.access:200 GET /resource/css/histogram.css (127.0.0.1) 0.29ms\n", - "INFO:tornado.access:200 GET /static/js/bokeh.min.js?v=3c61e952b808bb7e346ce828a565a5f23aaf7708d034fa9d0906403813355d45bb4e8d8b0b23a93f032c76831d4f0221846f28699c7f5147caa62e0d31668314 (127.0.0.1) 0.90ms\n", - "INFO:tornado.access:200 GET /static/js/bokeh-gl.min.js?v=e5df31fd9010eacff0aa72d315264604b5e34972ba445acea6fce98080eecf33acf2d2986126360faaa5852813cffa16f6f6f4889923318300f062497c02da4e (127.0.0.1) 0.37ms\n" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 32.01it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "2023-12-19 11:52:54,676 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /resource/spectre.min.css (127.0.0.1) 3.28ms\n", - "2023-12-19 11:52:54,677 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /resource/spectre-exp.min.css (127.0.0.1) 0.51ms\n", - "2023-12-19 11:52:54,694 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /resource/spectre-icons.min.css (127.0.0.1) 0.34ms\n", - "2023-12-19 11:52:54,697 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /resource/style.css (127.0.0.1) 0.33ms\n", - "2023-12-19 11:52:54,705 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /resource/css/overview.css (127.0.0.1) 0.29ms\n", - "2023-12-19 11:52:54,707 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /resource/css/cloud.css (127.0.0.1) 0.33ms\n", - "2023-12-19 11:52:54,715 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /resource/css/scenario.css (127.0.0.1) 0.33ms\n", - "2023-12-19 11:52:54,718 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /resource/css/histogram.css (127.0.0.1) 0.29ms\n", - "2023-12-19 11:52:54,731 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /static/js/bokeh.min.js?v=3c61e952b808bb7e346ce828a565a5f23aaf7708d034fa9d0906403813355d45bb4e8d8b0b23a93f032c76831d4f0221846f28699c7f5147caa62e0d31668314 (127.0.0.1) 0.90ms\n", - "2023-12-19 11:52:54,732 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /static/js/bokeh-gl.min.js?v=e5df31fd9010eacff0aa72d315264604b5e34972ba445acea6fce98080eecf33acf2d2986126360faaa5852813cffa16f6f6f4889923318300f062497c02da4e (127.0.0.1) 0.37ms\n", - "2023-12-19 11:52:54,825 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /static/js/bokeh-widgets.min.js?v=8a1ff6f5aa0d967f4998d275803bbb111d928fd9f605ef9e1f30cfd021df0e77224ee3d13f83edb3a942f6e4ccc569ee5dd8951a8aa6cb600602463b90c65a87 (127.0.0.1) 0.42ms\n", - "2023-12-19 11:52:54,860 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /static/js/bokeh-tables.min.js?v=ae2903e57cf57f52819fdf4d938c648982b51c34f73b6e653a0f3bb3c8ab44f338505931ace43eafc1636e215492e2314acf54c54baffb47813b86b4923a7fe0 (127.0.0.1) 0.45ms\n" + "2023-12-19 19:23:44,647 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 3.0736 seconds.\n", + "2023-12-19 19:23:57,712 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 95\n", + "2023-12-19 19:23:57,812 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 94\n", + "2023-12-19 19:23:58,509 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 95\n", + "2023-12-19 19:23:58,658 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 95\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "INFO:tornado.access:200 GET /static/js/bokeh-widgets.min.js?v=8a1ff6f5aa0d967f4998d275803bbb111d928fd9f605ef9e1f30cfd021df0e77224ee3d13f83edb3a942f6e4ccc569ee5dd8951a8aa6cb600602463b90c65a87 (127.0.0.1) 0.42ms\n", - "INFO:tornado.access:200 GET /static/js/bokeh-tables.min.js?v=ae2903e57cf57f52819fdf4d938c648982b51c34f73b6e653a0f3bb3c8ab44f338505931ace43eafc1636e215492e2314acf54c54baffb47813b86b4923a7fe0 (127.0.0.1) 0.45ms\n", - "INFO:tornado.access:200 GET /static/js/bokeh-mathjax.min.js?v=176c36fdbcd8fc1019fc828101a2804081a35baf4018d7f2633cd263156b593aa73112f400112b662daa0590138b74851bc91f1f2a5fbf5416ee8c876c3e0d0c (127.0.0.1) 1.36ms\n", - "INFO:tornado.access:200 GET /resource/scripts/utils.js (127.0.0.1) 0.30ms\n" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 38.15it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "2023-12-19 11:52:54,898 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /static/js/bokeh-mathjax.min.js?v=176c36fdbcd8fc1019fc828101a2804081a35baf4018d7f2633cd263156b593aa73112f400112b662daa0590138b74851bc91f1f2a5fbf5416ee8c876c3e0d0c (127.0.0.1) 1.36ms\n", - "2023-12-19 11:52:54,915 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /resource/scripts/utils.js (127.0.0.1) 0.30ms\n", - "2023-12-19 11:52:55,089 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET /resource/motional_logo.png (127.0.0.1) 6.84ms\n" + "2023-12-19 19:25:04,893 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 3.7040 seconds.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "INFO:tornado.access:200 GET /resource/motional_logo.png (127.0.0.1) 6.84ms\n" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 10.75it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "2023-12-19 11:52:55,454 WARNING {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 404 GET /favicon.ico (127.0.0.1) 0.32ms\n", - "2023-12-19 11:52:55,531 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 101 GET /ws (127.0.0.1) 0.44ms\n", - "2023-12-19 11:52:55,531 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/bokeh/server/views/ws.py:132} WebSocket connection opened\n", - "2023-12-19 11:52:55,531 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/bokeh/server/views/ws.py:213} ServerConnection created\n" + "2023-12-19 19:26:36,601 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.4362 seconds.\n", + "2023-12-19 19:26:49,801 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 1\n", + "2023-12-19 19:26:50,609 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 1\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "WARNING:tornado.access:404 GET /favicon.ico (127.0.0.1) 0.32ms\n", - "INFO:tornado.access:101 GET /ws (127.0.0.1) 0.44ms\n" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 37.75it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "2023-12-19 11:52:56,016 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:172} Minimum frame time=0.017 s\n", - "2023-12-19 11:52:56,097 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 0.0024 seconds.\n", - "2023-12-19 11:52:56,191 INFO {/home/ehdykhne/miniconda3/envs/nuplan/lib/python3.9/site-packages/tornado/web.py:2344} 200 GET / (127.0.0.1) 260.73ms\n" + "2023-12-19 19:29:18,671 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.2391 seconds.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "INFO:tornado.access:200 GET / (127.0.0.1) 260.73ms\n" + "Rendering a scenario: 100%|██████████| 1/1 [00:00<00:00, 14.72it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2023-12-19 19:30:10,168 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/tabs/scenario_tab.py:485} Rending scenario plot takes 2.1190 seconds.\n", + "2023-12-19 19:30:32,568 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:575} Frame deferred: 0\n", + "2023-12-19 19:30:33,187 INFO {/home/ehdykhne/nuplan-devkit/nuplan/planning/nuboard/base/simulation_tile.py:897} Frame dropped 0\n" ] } ], diff --git a/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py b/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py index bff93e8..cedc8e4 100644 --- a/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py +++ b/nuplan/planning/metrics/evaluation_metrics/common/can_scenario_be_made_dangerous.py @@ -101,8 +101,7 @@ class CanScenarioBeMadeDangerousStatistics(MetricBase): elif issubclass(type(closest_segment), Lane): distance_to_connector = closest_segment.baseline_path.length - progress #if we are moving so slowly, or are so far away that in 5 seconds the agent does not make it to the intersection, we are probably not in danger - print('hi there') - if distance_to_connector / agent.velocity.magnitude() > 5: + if distance_to_connector > 5 * agent.velocity.magnitude(): return {} connectors = closest_segment.outgoing_edges connectors = set(connectors) @@ -115,7 +114,7 @@ class CanScenarioBeMadeDangerousStatistics(MetricBase): return connectors - def get_traffic_light_status_at_iteration(self, iteration: int, scenario: AbstractScenario): + def get_traffic_light_status_at_iteration(self, iteration: int, scenario: AbstractScenario) -> Dict[TrafficLightStatusType, List[str]]: """_summary_ :param iteration: _description_ @@ -129,7 +128,17 @@ class CanScenarioBeMadeDangerousStatistics(MetricBase): for data in traffic_light_data: traffic_light_status[data.status].append(str(data.lane_connector_id)) return traffic_light_status - + + def is_connector_mostly_not_red_over_scenario(self, connector: LaneConnector, traffic_light_status_dict, history: SimulationHistory, step_size: int, threshold: int = 0.1) -> bool: + d, n = 0, 0 + for iteration in range(0, history.__len__(), int(step_size / history.interval_seconds)): + d += 1 + if connector.has_traffic_lights() and connector.id in traffic_light_status_dict[iteration][TrafficLightStatusType.RED]: + n += 1 + if n / d > threshold: + return False + return True + def can_scenario_be_made_dangerous(self, history: SimulationHistory, scenario: AbstractScenario) -> bool: """Checks if the scenario can be made dangerous for the ego vehicle (if there are active intersections with vehicles in them) :param history: _description_ @@ -140,16 +149,16 @@ class CanScenarioBeMadeDangerousStatistics(MetricBase): list_of_ego_states = history.extract_ego_state - step_size = 1 #in seconds + step_size = 1 # in seconds temp_connectors = [] - traffic_light_status_list = {} + traffic_light_status_dict = {} print(history.__len__(), int(step_size / history.interval_seconds), history.interval_seconds) for iteration in range(0, history.__len__(), int(step_size / history.interval_seconds)): - #here, we get the traffic light status at the current iteration - traffic_light_status_list[iteration] = self.get_traffic_light_status_at_iteration(iteration, scenario) + # here, we get the traffic light status at the current iteration + traffic_light_status_dict[iteration] = self.get_traffic_light_status_at_iteration(iteration, scenario) - ego_state = list_of_ego_states[iteration].agent #get agent from ego state - ego_connectors = self.get_non_red_connectors(traffic_light_status_list[iteration], map_api, ego_state) + ego_state = list_of_ego_states[iteration].agent # get agent from ego state + ego_connectors = self.get_non_red_connectors(traffic_light_status_dict[iteration], map_api, ego_state) if len(ego_connectors) == 1: temp_connectors.extend(ego_connectors) @@ -158,6 +167,9 @@ class CanScenarioBeMadeDangerousStatistics(MetricBase): ego_connector = max(temp_connectors, key=Counter(temp_connectors).get) # we grab the most common connector. this is to stop us from accedentally selecting a connector that looks like where the ego might go, but is in fact only temporarily aligned + if not self.is_connector_mostly_not_red_over_scenario(ego_connector, traffic_light_status_dict, history, step_size): + return False + ego_line = self.cut_piece(ego_connector.baseline_path.linestring, 0.05, 0.95)# cuts off first and last 5% of the line for iteration in range(0, int(history.__len__() / 2), int(step_size / history.interval_seconds)): # we only observe the first half of the simulation agent_connectors = dict() @@ -166,17 +178,18 @@ class CanScenarioBeMadeDangerousStatistics(MetricBase): ego_state = list_of_ego_states[iteration].agent #get agent from ego state at given iteration for agent in agents: - ## agents should be close enough to ego to matter but far enough to be able to put someone in between: >50m, <10m - if agent.center.distance_to(ego_state.center) > 50 or agent.center.distance_to(ego_state.center) < 10: + ## agents should be close enough to ego to matter but far enough to be able to put someone in between: >50m, <5m + if agent.center.distance_to(ego_state.center) > 80 or agent.center.distance_to(ego_state.center) < 5: agent_connectors[agent.metadata.track_token] = {} else: - agent_connectors[agent.metadata.track_token] = self.get_non_red_connectors(traffic_light_status_list[iteration], map_api, agent) + agent_connectors[agent.metadata.track_token] = self.get_non_red_connectors(traffic_light_status_dict[iteration], map_api, agent) for agent in agents: for connector in agent_connectors[agent.metadata.track_token]: - agent_line = self.cut_piece(connector.baseline_path.linestring, 0.05, 0.95)# cuts off first and last 5% of the line - if ego_line.intersects(agent_line) and ego_connector.id != connector.id: - return True + if self.is_connector_mostly_not_red_over_scenario(connector, traffic_light_status_dict, history, step_size): # we only bother checking the connector if is mostly not red + agent_line = self.cut_piece(connector.baseline_path.linestring, 0.05, 0.95)# cuts off first and last 5% of the line + if ego_line.intersects(agent_line) and ego_connector.id != connector.id: + return True return False -- GitLab