AutoVerse-ai / Verse-library

Library for modeling, simulation, and verification of interacting autonomous agents
https://autoverse-ai.github.io/Verse-library/
University of Illinois/NCSA Open Source License
29 stars 18 forks source link

Error in computing reachtubes #23

Open crides opened 1 year ago

crides commented 1 year ago

Details will be provided later.

15:26:27 ❯ py8 ./demo/vehicle/intersection.py blvp
`polytope` failed to import `cvxopt.glpk`.
will use `scipy.optimize.linprog`
seed: 1682022390
2023-04-20 15:26:36,363 INFO worker.py:1529 -- Started a local Ray instance. View the dashboard at http://127.0.0.1:8265
(pid=3963093) `polytope` failed to import `cvxopt.glpk`.
(pid=3963093) will use `scipy.optimize.linprog`
(compute_full_reachtube_step pid=3963093) node 0 start: 0
(compute_full_reachtube_step pid=3963093) {'car0': ['Accel', 'WS_2'], 'car1': ['Accel', 'NE_2'], 'car2': ['Accel', 'ES_1'], 'car3': ['Accel', 'WE_1'], 'car4': ['Accel', 'SN_0'], 'car5': ['Accel', 'SE_1'], 'car6': ['Accel', 'NS_2'], 'car7': ['Accel', 'NE_2'], 'car8': ['Accel', 'EW_1']}
(compute_full_reachtube_step pid=3963093) 0
(compute_full_reachtube_step pid=3963093) car1 NE_2 Accel SwitchLeft -> NE_2_1
(compute_full_reachtube_step pid=3963093) node 1 start: 37.4
(compute_full_reachtube_step pid=3963093) {'car0': ['Accel', 'WS_2'], 'car1': ('SwitchLeft', 'NE_2_1'), 'car2': ['Accel', 'ES_1'], 'car3': ['Accel', 'WE_1'], 'car4': ['Accel', 'SN_0'], 'car5': ['Accel', 'SE_1'], 'car6': ['Accel', 'NS_2'], 'car7': ['Accel', 'NE_2'], 'car8': ['Accel', 'EW_1']}
(compute_full_reachtube_step pid=3963093) 0
(compute_full_reachtube_step pid=3963093) car1 NE_2_1 SwitchLeft Accel -> NE_1
(compute_full_reachtube_step pid=3963093) node 2 start: 39.3
(compute_full_reachtube_step pid=3963093) {'car0': ['Accel', 'WS_2'], 'car1': ('Accel', 'NE_1'), 'car2': ['Accel', 'ES_1'], 'car3': ['Accel', 'WE_1'], 'car4': ['Accel', 'SN_0'], 'car5': ['Accel', 'SE_1'], 'car6': ['Accel', 'NS_2'], 'car7': ['Accel', 'NE_2'], 'car8': ['Accel', 'EW_1']}
Traceback (most recent call last):
  File "./demo/vehicle/intersection.py", line 76, in <module>
    run(True)
  File "./demo/vehicle/intersection.py", line 20, in run
    traces = bench.run(60, 0.05)
  File "/home/haoqing/classes/cs584/verse/verse/scenario/scenario.py", line 291, in run
    self.traces = f(*a, **kw)
  File "/home/haoqing/classes/cs584/verse/verse/scenario/scenario.py", line 226, in verify
    tree = self.verifier.compute_full_reachtube(init_list, init_mode_list, static_list, uncertain_param_list, self.agent_dict, self.sensor, time_horizon,
  File "/home/haoqing/classes/cs584/verse/verse/analysis/verifier.py", line 509, in compute_full_reachtube
    id, later, next_nodes, traces, assert_hits, cache_tube_updates, cache_trans_tube_updates = ray.get(res)
  File "/home/haoqing/.local/lib/python3.8/site-packages/ray/_private/client_mode_hook.py", line 105, in wrapper
    return func(*args, **kwargs)
  File "/home/haoqing/.local/lib/python3.8/site-packages/ray/_private/worker.py", line 2309, in get
    raise value.as_instanceof_cause()
ray.exceptions.RayTaskError(AssertionError): ray::compute_full_reachtube_step() (pid=3963093, ip=130.126.139.18)
  File "/home/haoqing/classes/cs584/verse/verse/analysis/verifier.py", line 223, in compute_full_reachtube_step
    cur_bloated_tube, cache_tube_update = Verifier.calculate_full_bloated_tube_simple(agent_id,
  File "/home/haoqing/classes/cs584/verse/verse/analysis/verifier.py", line 162, in calculate_full_bloated_tube_simple
    cur_bloated_tube = calc_bloated_tube(mode_label,
  File "/home/haoqing/classes/cs584/verse/verse/analysis/dryvr.py", line 258, in calc_bloated_tube
    cur_reach_tube: np.ndarray = get_reachtube_segment(np.array(traces), np.array(cur_delta), "PW")
  File "/home/haoqing/classes/cs584/verse/verse/analysis/dryvr.py", line 119, in get_reachtube_segment
    assert np.any(np.abs(training_traces[trace_ind, 0, 1:]-center_trace[0, 1:]) > initial_radii)
AssertionError