Paper [IDETC]: Human Failure Representation
This paper covers the exploration and analysis of error producing conditions by a human operator in the rover model.
For the paper Irshad, L., & Hulse, D. (2022, August). Resilience modeling in complex engineered systems with human-machine interactions. In International Design Engineering Technical Conferences and Computers and Information in Engineering Conference (Vol. 86212, p. V002T02A024). American Society of Mechanical Engineers.
Copyright © 2024, United States Government, as represented by the Administrator of the National Aeronautics and Space Administration. All rights reserved.
The “"Fault Model Design tools - fmdtools version 2"” software is licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
from fmdtools_examples.navigating_rover.model_human import RoverHuman
from fmdtools_examples.navigating_rover.model_main import plot_map
import fmdtools.sim.propagate as prop
import fmdtools.analyze as an
from fmdtools.sim.sample import ParameterSample, ParameterDomain, FaultSample, FaultDomain
import numpy as np
import matplotlib.pyplot as plt
Visualizing Rover Structure
mdl = RoverHuman()
mdl.fxns
{'power': power Power
- t=Time(time=-0.1, timers={})
- s=PowerState(charge=100.0, power=0.0)
- m=PowerMode(mode='off', faults=set(), sub_faults=False)
- ee_15=EE(s=(v=0.0, a=0.0))
- ee_5=EE(s=(v=0.0, a=0.0))
- ee_12=EE(s=(v=0.0, a=0.0))
- switch=Switch(s=(power=False)),
'perception': perception Perception
- t=Time(time=-0.1, timers={})
- m=PerceptionMode(mode='off', faults=set(), sub_faults=False)
- pos=Pos(s=(x=0.0, y=0.0, vel=0.0, ux=1.0, uy=0.0))
- pos_signal=Pos(s=(x=0.0, y=0.0, vel=0.0, ux=1.0, uy=0.0))
- ground=Ground(s=(in_bound=True), c=(), ga=())
- ee=EE(s=(v=0.0, a=0.0))
- video=Video(s=(lin_ux=1.0, lin_uy=0.0, lin_dx=0.0, lin_dy=0.0, quality=1.0)),
'communications': communications Communications
- t=Time(time=-0.1, timers={})
- ee_12=EE(s=(v=0.0, a=0.0))
- comms=Comms(s=(pos=PosState(x=0.0, y=0.0, vel=0.0, ux=1.0, uy=0.0), ctl=ControlState(rpower=0.0, lpower=0.0), video...
- pos_signal=Pos(s=(x=0.0, y=0.0, vel=0.0, ux=1.0, uy=0.0))
- video=Video(s=(lin_ux=1.0, lin_uy=0.0, lin_dx=0.0, lin_dy=0.0, quality=1.0)),
'operator': operator Operator
- t=Time(time=-0.1, timers={})
- m=Mode(mode='nominal', faults=set(), sub_faults=False)
- switch=Switch(s=(power=False))
- control=Control(s=(rpower=0.0, lpower=0.0))
- pos_signal=Pos(s=(x=0.0, y=0.0, vel=0.0, ux=1.0, uy=0.0))
- comms=Comms(s=(pos=PosState(x=0.0, y=0.0, vel=0.0, ux=1.0, uy=0.0), ctl=ControlState(rpower=0.0, lpower=0.0), video...
- video=Video(s=(lin_ux=1.0, lin_uy=0.0, lin_dx=0.0, lin_dy=0.0, quality=1.0))
- psfs=PSFs(s=(attention=10.0))
- ground=Ground(s=(in_bound=True), c=(), ga=())
- aa=HumanActions(m=(mode='nominal', faults=set(), sub_faults=False)),
'plan_path': plan_path PlanPath
- t=Time(time=-0.1, timers={})
- m=PlanPathMode(mode='standby', faults=set(), sub_faults=False)
- s=PlanPathState(u_self=[0. 0.], u_lin=[0. 0.], u_lin_dev=[0. 0.], rdiff=0.0, vel_adj=1.0)
- video=Video(s=(lin_ux=1.0, lin_uy=0.0, lin_dx=0.0, lin_dy=0.0, quality=1.0))
- pos_signal=Pos(s=(x=0.0, y=0.0, vel=0.0, ux=1.0, uy=0.0))
- ground=Ground(s=(in_bound=True), c=(), ga=())
- control=Control(s=(rpower=0.0, lpower=0.0))
- fault_sig=FaultSig(s=(transfer=1.0, friction=0.0, drift=0.0)),
'override': override Override
- t=Time(time=-0.1, timers={})
- m=OverrideMode(mode='off', faults=set(), sub_faults=False)
- comms=Comms(s=(pos=PosState(x=0.0, y=0.0, vel=0.0, ux=1.0, uy=0.0), ctl=ControlState(rpower=0.0, lpower=0.0), video...
- ee=EE(s=(v=0.0, a=0.0))
- motor_control=Control(s=(rpower=0.0, lpower=0.0))
- auto_control=Control(s=(rpower=0.0, lpower=0.0)),
'drive': drive Drive
- t=Time(time=-0.1, timers={})
- m=DriveMode(mode='nominal', faults=set(), sub_faults=False)
- s=FaultStates(transfer=1.0, friction=0.0, drift=0.0)
- fault_sig=FaultSig(s=(transfer=1.0, friction=0.0, drift=0.0))
- ground=Ground(s=(in_bound=True), c=(), ga=())
- pos=Pos(s=(x=0.0, y=0.0, vel=0.0, ux=1.0, uy=0.0))
- motor_control=Control(s=(rpower=0.0, lpower=0.0))
- ee_in=EE(s=(v=0.0, a=0.0))}
#%matplotlib qt
#an.graph.set_pos(mdl, gtype='fxnflowgraph')
#%matplotlib inline
g = mdl.as_modelgraph()
fig, ax = g.draw()
fig.savefig("outputs_paper_idetc_human/rover_structure.pdf", format="pdf", bbox_inches = 'tight', pad_inches = 0)
Visualizing Action Sequence Graph for the Controller
from fmdtools_examples.navigating_rover.model_human import asg_pos
ag = mdl.fxns['operator'].aa.as_modelgraph()
ag.set_pos(**asg_pos)
fig, ax = ag.draw()
fig.savefig("outputs_paper_idetc_human/action_graph.pdf", format="pdf", bbox_inches = 'tight', pad_inches = 0)
Testing behavioral simulation
Execution order
g.set_exec_order(mdl)
fig, ax = g.draw()
Performance on turn
mdl = RoverHuman(p={'ground': 'turn'})
endresults, mdlhist = prop.nominal(mdl)
plot_map(mdl, mdlhist)
(<Figure size 400x400 with 1 Axes>, <Axes: xlabel='x', ylabel='y'>)
Performance on sine map
mdl = RoverHuman()
endresults, mdlhist = prop.nominal(mdl)
plot_map(mdl, mdlhist)
(<Figure size 400x400 with 1 Axes>, <Axes: xlabel='x', ylabel='y'>)
from fmdtools.analyze.phases import from_hist
pm = from_hist(mdlhist)
pm
{'power': PhaseMap({np.str_('off'): [np.float64(0.0), np.float64(0.0)], np.str_('supply'): [np.float64(1.0), np.float64(109.0)]}, {np.str_('off'): {np.str_('off')}, np.str_('supply'): {np.str_('supply')}}),
'perception': PhaseMap({np.str_('off'): [np.float64(0.0), np.float64(1.0)], np.str_('feed'): [np.float64(2.0), np.float64(109.0)]}, {np.str_('off'): {np.str_('off')}, np.str_('feed'): {np.str_('feed')}}),
'look': PhaseMap({np.str_('nominal'): [np.float64(0.0), np.float64(109.0)]}, {np.str_('nominal'): {np.str_('nominal')}}),
'percieve': PhaseMap({np.str_('nominal'): [np.float64(0.0), np.float64(0.0)], np.str_('no_action'): [np.float64(1.0), np.float64(1.0)], 'nominal1': [np.float64(2.0), np.float64(109.0)]}, {np.str_('nominal'): {np.str_('nominal'), 'nominal1'}, np.str_('no_action'): {np.str_('no_action')}}),
'comprehend': PhaseMap({np.str_('nominal'): [np.float64(0.0), np.float64(109.0)]}, {np.str_('nominal'): {np.str_('nominal')}}),
'project': PhaseMap({np.str_('nominal'): [np.float64(0.0), np.float64(109.0)]}, {np.str_('nominal'): {np.str_('nominal')}}),
'decide': PhaseMap({np.str_('nominal'): [np.float64(0.0), np.float64(109.0)]}, {np.str_('nominal'): {np.str_('nominal')}}),
'reach': PhaseMap({np.str_('nominal'): [np.float64(0.0), np.float64(109.0)]}, {np.str_('nominal'): {np.str_('nominal')}}),
'plan_path': PhaseMap({np.str_('standby'): [np.float64(0.0), np.float64(4.0)], np.str_('drive'): [np.float64(5.0), np.float64(109.0)]}, {np.str_('standby'): {np.str_('standby')}, np.str_('drive'): {np.str_('drive')}}),
'override': PhaseMap({np.str_('off'): [np.float64(0.0), np.float64(1.0)], np.str_('override'): [np.float64(2.0), np.float64(109.0)]}, {np.str_('off'): {np.str_('off')}, np.str_('override'): {np.str_('override')}})}
phase_fig = pm['override'].plot()
Testing Faults
#app=SampleApproach(mdl, faults='Controller', phases={'drive':phases['Operations']['drive']})
fd = FaultDomain(mdl)
fd.add_all_fxn_modes('operator')
fd
FaultDomain with faults:
-('roverhuman.fxns.operator.aa.acts.look', 'failed_no_action')
-('roverhuman.fxns.operator.aa.acts.percieve', 'failed_no_action')
-('roverhuman.fxns.operator.aa.acts.percieve', 'not_visible')
-('roverhuman.fxns.operator.aa.acts.percieve', 'wrong_position')
-('roverhuman.fxns.operator.aa.acts.comprehend', 'failed_no_action')
-('roverhuman.fxns.operator.aa.acts.project', 'failed_fast')
-('roverhuman.fxns.operator.aa.acts.project', 'failed_no_action')
-('roverhuman.fxns.operator.aa.acts.project', 'failed_slow')
-('roverhuman.fxns.operator.aa.acts.project', 'failed_turn_left')
-('roverhuman.fxns.operator.aa.acts.project', 'failed_turn_right')
-...more
fs = FaultSample(fd, phasemap = pm['override'])
fs.add_fault_phases('override')
fs
FaultSample of scenarios:
- roverhuman_fxns_operator_aa_acts_look_failed_no_action_t56p0
- roverhuman_fxns_operator_aa_acts_percieve_failed_no_action_t56p0
- roverhuman_fxns_operator_aa_acts_percieve_not_visible_t56p0
- roverhuman_fxns_operator_aa_acts_percieve_wrong_position_t56p0
- roverhuman_fxns_operator_aa_acts_comprehend_failed_no_action_t56p0
- roverhuman_fxns_operator_aa_acts_project_failed_fast_t56p0
- roverhuman_fxns_operator_aa_acts_project_failed_no_action_t56p0
- roverhuman_fxns_operator_aa_acts_project_failed_slow_t56p0
- roverhuman_fxns_operator_aa_acts_project_failed_turn_left_t56p0
- roverhuman_fxns_operator_aa_acts_project_failed_turn_right_t56p0
- ... (19 total)
fs.scenarios()
[SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.look': ['failed_no_action']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.look', fault='failed_no_action', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_look_failed_no_action_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.percieve': ['failed_no_action']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.percieve', fault='failed_no_action', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_percieve_failed_no_action_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.percieve': ['not_visible']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.percieve', fault='not_visible', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_percieve_not_visible_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.percieve': ['wrong_position']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.percieve', fault='wrong_position', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_percieve_wrong_position_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.comprehend': ['failed_no_action']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.comprehend', fault='failed_no_action', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_comprehend_failed_no_action_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.project': ['failed_fast']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.project', fault='failed_fast', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_project_failed_fast_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.project': ['failed_no_action']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.project', fault='failed_no_action', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_project_failed_no_action_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.project': ['failed_slow']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.project', fault='failed_slow', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_project_failed_slow_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.project': ['failed_turn_left']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.project', fault='failed_turn_left', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_project_failed_turn_left_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.project': ['failed_turn_right']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.project', fault='failed_turn_right', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_project_failed_turn_right_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.decide': ['failed_fast']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.decide', fault='failed_fast', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_decide_failed_fast_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.decide': ['failed_no_action']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.decide', fault='failed_no_action', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_decide_failed_no_action_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.decide': ['failed_slow']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.decide', fault='failed_slow', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_decide_failed_slow_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.decide': ['failed_turn_left']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.decide', fault='failed_turn_left', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_decide_failed_turn_left_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.decide': ['failed_turn_right']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.decide', fault='failed_turn_right', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_decide_failed_turn_right_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.reach': ['failed_no_action']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.reach', fault='failed_no_action', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_reach_failed_no_action_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.press': ['failed_left']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.press', fault='failed_left', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_press_failed_left_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.press': ['failed_right']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.press', fault='failed_right', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_press_failed_right_t56p0', time=np.float64(56.0), phase=np.str_('override')),
SingleFaultScenario(sequence={56.0: Injection(faults={'roverhuman.fxns.operator.aa.acts.press': ['no_press']}, disturbances={})}, times=(np.float64(56.0),), function='roverhuman.fxns.operator.aa.acts.press', fault='no_press', rate=np.float64(1.0), name='roverhuman_fxns_operator_aa_acts_press_no_press_t56p0', time=np.float64(56.0), phase=np.str_('override'))]
ecs, hists = prop.fault_sample(mdl, fs)
SCENARIOS COMPLETE: 100%|██████████| 19/19 [00:04<00:00, 4.10it/s]
fig, ax = plot_map(mdl, hists)
fig, ax = plot_map(mdl, hists)
ax.set_xlim(10, 20)
ax.set_ylim(-5, 5)
(-5.0, 5.0)
Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.
fig.savefig("outputs_paper_idetc_human/rover_map.pdf", format="pdf", bbox_inches = 'tight', pad_inches = 0)
Below shows the impact of each fault:
tab = an.tabulate.result_summary_fmea(ecs, hists,
*mdl.flows, *mdl.fxns,
metrics = ["in_bound", "at_finish", "end_dist", "faults", "classification", "end_x", "end_y"])
tab
| degraded | faulty | in_bound | at_finish | end_dist | faults | classification | end_x | end_y | |
|---|---|---|---|---|---|---|---|---|---|
| nominal | [] | [] | True | True | 0.0 | [] | nominal mission | 29.254775 | -0.782764 |
| roverhuman_fxns_operator_aa_acts_look_failed_no_action_t56p0 | ['ground', 'psfs', 'pos_signal', 'pos', 'video... | ['operator'] | False | False | 13.663813 | [look.failed_no_action] | incomplete mission faulty | 15.24424 | -0.529458 |
| roverhuman_fxns_operator_aa_acts_percieve_failed_no_action_t56p0 | [] | [] | True | True | 0.0 | [] | nominal mission | 29.254775 | -0.782764 |
| roverhuman_fxns_operator_aa_acts_percieve_not_visible_t56p0 | [] | [] | True | True | 0.0 | [] | nominal mission | 29.254775 | -0.782764 |
| roverhuman_fxns_operator_aa_acts_percieve_wrong_position_t56p0 | [] | [] | True | True | 0.0 | [] | nominal mission | 29.254775 | -0.782764 |
| roverhuman_fxns_operator_aa_acts_comprehend_failed_no_action_t56p0 | ['ground', 'psfs', 'pos_signal', 'pos', 'video... | ['operator'] | False | False | 13.663813 | [percieve.not_visible, comprehend.failed_no_ac... | incomplete mission faulty | 15.24424 | -0.529458 |
| roverhuman_fxns_operator_aa_acts_project_failed_fast_t56p0 | ['ground', 'pos_signal', 'pos', 'ee_15', 'vide... | ['operator'] | False | False | 12.955107 | [percieve.not_visible, project.failed_fast] | incomplete mission faulty | 16.023518 | 0.480458 |
| roverhuman_fxns_operator_aa_acts_project_failed_no_action_t56p0 | ['ground', 'psfs', 'pos_signal', 'pos', 'video... | ['operator'] | False | False | 13.663813 | [percieve.not_visible, project.failed_no_action] | incomplete mission faulty | 15.24424 | -0.529458 |
| roverhuman_fxns_operator_aa_acts_project_failed_slow_t56p0 | ['psfs', 'pos_signal', 'pos', 'ee_15', 'video'... | ['operator'] | True | False | 9.31949 | [project.failed_slow] | incomplete mission faulty | 19.740872 | 0.81243 |
| roverhuman_fxns_operator_aa_acts_project_failed_turn_left_t56p0 | ['ground', 'pos_signal', 'pos', 'video', 'auto... | ['operator'] | False | False | 14.057688 | [percieve.not_visible, project.failed_turn_left] | incomplete mission faulty | 14.862043 | -0.251773 |
| roverhuman_fxns_operator_aa_acts_project_failed_turn_right_t56p0 | ['ground', 'pos_signal', 'pos', 'video', 'auto... | ['operator'] | False | False | 13.693675 | [percieve.not_visible, project.failed_turn_right] | incomplete mission faulty | 15.363988 | 1.140047 |
| roverhuman_fxns_operator_aa_acts_decide_failed_fast_t56p0 | ['psfs', 'pos_signal', 'pos', 'ee_15', 'video'... | ['operator'] | True | False | 14.2601 | [decide.failed_fast] | incomplete mission faulty | 14.759409 | 0.904491 |
| roverhuman_fxns_operator_aa_acts_decide_failed_no_action_t56p0 | ['ground', 'psfs', 'pos_signal', 'pos', 'video... | ['operator'] | False | False | 13.663813 | [percieve.not_visible, decide.failed_no_action] | incomplete mission faulty | 15.24424 | -0.529458 |
| roverhuman_fxns_operator_aa_acts_decide_failed_slow_t56p0 | ['psfs', 'pos_signal', 'pos', 'ee_15', 'video'... | ['operator'] | True | False | 14.2601 | [decide.failed_slow] | incomplete mission faulty | 14.759409 | 0.904491 |
| roverhuman_fxns_operator_aa_acts_decide_failed_turn_left_t56p0 | ['psfs', 'pos_signal', 'pos', 'ee_15', 'video'... | ['operator'] | True | False | 14.2601 | [decide.failed_turn_left] | incomplete mission faulty | 14.759409 | 0.904491 |
| roverhuman_fxns_operator_aa_acts_decide_failed_turn_right_t56p0 | ['psfs', 'pos_signal', 'pos', 'ee_15', 'video'... | ['operator'] | True | False | 14.2601 | [decide.failed_turn_right] | incomplete mission faulty | 14.759409 | 0.904491 |
| roverhuman_fxns_operator_aa_acts_reach_failed_no_action_t56p0 | ['ground', 'psfs', 'pos_signal', 'pos', 'video... | ['operator'] | False | False | 13.663813 | [percieve.not_visible, reach.failed_no_action] | incomplete mission faulty | 15.24424 | -0.529458 |
| roverhuman_fxns_operator_aa_acts_press_failed_left_t56p0 | ['operator'] | ['operator'] | True | True | 0.0 | [press.failed_left] | faulty | 29.254775 | -0.782764 |
| roverhuman_fxns_operator_aa_acts_press_failed_right_t56p0 | ['operator'] | ['operator'] | True | True | 0.0 | [press.failed_right] | faulty | 29.254775 | -0.782764 |
| roverhuman_fxns_operator_aa_acts_press_no_press_t56p0 | ['operator'] | ['operator'] | True | True | 0.0 | [press.no_press] | faulty | 29.254775 | -0.782764 |
tab.sort_values('end_dist', ascending=False)
| degraded | faulty | in_bound | at_finish | end_dist | faults | classification | end_x | end_y | |
|---|---|---|---|---|---|---|---|---|---|
| roverhuman_fxns_operator_aa_acts_decide_failed_turn_right_t56p0 | ['psfs', 'pos_signal', 'pos', 'ee_15', 'video'... | ['operator'] | True | False | 14.2601 | [decide.failed_turn_right] | incomplete mission faulty | 14.759409 | 0.904491 |
| roverhuman_fxns_operator_aa_acts_decide_failed_fast_t56p0 | ['psfs', 'pos_signal', 'pos', 'ee_15', 'video'... | ['operator'] | True | False | 14.2601 | [decide.failed_fast] | incomplete mission faulty | 14.759409 | 0.904491 |
| roverhuman_fxns_operator_aa_acts_decide_failed_slow_t56p0 | ['psfs', 'pos_signal', 'pos', 'ee_15', 'video'... | ['operator'] | True | False | 14.2601 | [decide.failed_slow] | incomplete mission faulty | 14.759409 | 0.904491 |
| roverhuman_fxns_operator_aa_acts_decide_failed_turn_left_t56p0 | ['psfs', 'pos_signal', 'pos', 'ee_15', 'video'... | ['operator'] | True | False | 14.2601 | [decide.failed_turn_left] | incomplete mission faulty | 14.759409 | 0.904491 |
| roverhuman_fxns_operator_aa_acts_project_failed_turn_left_t56p0 | ['ground', 'pos_signal', 'pos', 'video', 'auto... | ['operator'] | False | False | 14.057688 | [percieve.not_visible, project.failed_turn_left] | incomplete mission faulty | 14.862043 | -0.251773 |
| roverhuman_fxns_operator_aa_acts_project_failed_turn_right_t56p0 | ['ground', 'pos_signal', 'pos', 'video', 'auto... | ['operator'] | False | False | 13.693675 | [percieve.not_visible, project.failed_turn_right] | incomplete mission faulty | 15.363988 | 1.140047 |
| roverhuman_fxns_operator_aa_acts_reach_failed_no_action_t56p0 | ['ground', 'psfs', 'pos_signal', 'pos', 'video... | ['operator'] | False | False | 13.663813 | [percieve.not_visible, reach.failed_no_action] | incomplete mission faulty | 15.24424 | -0.529458 |
| roverhuman_fxns_operator_aa_acts_comprehend_failed_no_action_t56p0 | ['ground', 'psfs', 'pos_signal', 'pos', 'video... | ['operator'] | False | False | 13.663813 | [percieve.not_visible, comprehend.failed_no_ac... | incomplete mission faulty | 15.24424 | -0.529458 |
| roverhuman_fxns_operator_aa_acts_project_failed_no_action_t56p0 | ['ground', 'psfs', 'pos_signal', 'pos', 'video... | ['operator'] | False | False | 13.663813 | [percieve.not_visible, project.failed_no_action] | incomplete mission faulty | 15.24424 | -0.529458 |
| roverhuman_fxns_operator_aa_acts_look_failed_no_action_t56p0 | ['ground', 'psfs', 'pos_signal', 'pos', 'video... | ['operator'] | False | False | 13.663813 | [look.failed_no_action] | incomplete mission faulty | 15.24424 | -0.529458 |
| roverhuman_fxns_operator_aa_acts_decide_failed_no_action_t56p0 | ['ground', 'psfs', 'pos_signal', 'pos', 'video... | ['operator'] | False | False | 13.663813 | [percieve.not_visible, decide.failed_no_action] | incomplete mission faulty | 15.24424 | -0.529458 |
| roverhuman_fxns_operator_aa_acts_project_failed_fast_t56p0 | ['ground', 'pos_signal', 'pos', 'ee_15', 'vide... | ['operator'] | False | False | 12.955107 | [percieve.not_visible, project.failed_fast] | incomplete mission faulty | 16.023518 | 0.480458 |
| roverhuman_fxns_operator_aa_acts_project_failed_slow_t56p0 | ['psfs', 'pos_signal', 'pos', 'ee_15', 'video'... | ['operator'] | True | False | 9.31949 | [project.failed_slow] | incomplete mission faulty | 19.740872 | 0.81243 |
| roverhuman_fxns_operator_aa_acts_press_failed_right_t56p0 | ['operator'] | ['operator'] | True | True | 0.0 | [press.failed_right] | faulty | 29.254775 | -0.782764 |
| roverhuman_fxns_operator_aa_acts_press_failed_left_t56p0 | ['operator'] | ['operator'] | True | True | 0.0 | [press.failed_left] | faulty | 29.254775 | -0.782764 |
| nominal | [] | [] | True | True | 0.0 | [] | nominal mission | 29.254775 | -0.782764 |
| roverhuman_fxns_operator_aa_acts_percieve_wrong_position_t56p0 | [] | [] | True | True | 0.0 | [] | nominal mission | 29.254775 | -0.782764 |
| roverhuman_fxns_operator_aa_acts_percieve_not_visible_t56p0 | [] | [] | True | True | 0.0 | [] | nominal mission | 29.254775 | -0.782764 |
| roverhuman_fxns_operator_aa_acts_percieve_failed_no_action_t56p0 | [] | [] | True | True | 0.0 | [] | nominal mission | 29.254775 | -0.782764 |
| roverhuman_fxns_operator_aa_acts_press_no_press_t56p0 | ['operator'] | ['operator'] | True | True | 0.0 | [press.no_press] | faulty | 29.254775 | -0.782764 |
print(tab.to_latex())
\begin{tabular}{llllllllll}
\toprule
& degraded & faulty & in_bound & at_finish & end_dist & faults & classification & end_x & end_y \\
\midrule
nominal & [] & [] & True & True & 0.000000 & [] & nominal mission & 29.254775 & -0.782764 \\
roverhuman_fxns_operator_aa_acts_look_failed_no_action_t56p0 & ['ground', 'psfs', 'pos_signal', 'pos', 'video', 'auto_control', 'motor_control', 'comms', 'power', 'operator', 'plan_path'] & ['operator'] & False & False & 13.663813 & ['look.failed_no_action'] & incomplete mission faulty & 15.244240 & -0.529458 \\
roverhuman_fxns_operator_aa_acts_percieve_failed_no_action_t56p0 & [] & [] & True & True & 0.000000 & [] & nominal mission & 29.254775 & -0.782764 \\
roverhuman_fxns_operator_aa_acts_percieve_not_visible_t56p0 & [] & [] & True & True & 0.000000 & [] & nominal mission & 29.254775 & -0.782764 \\
roverhuman_fxns_operator_aa_acts_percieve_wrong_position_t56p0 & [] & [] & True & True & 0.000000 & [] & nominal mission & 29.254775 & -0.782764 \\
roverhuman_fxns_operator_aa_acts_comprehend_failed_no_action_t56p0 & ['ground', 'psfs', 'pos_signal', 'pos', 'video', 'auto_control', 'motor_control', 'comms', 'power', 'operator', 'plan_path'] & ['operator'] & False & False & 13.663813 & ['percieve.not_visible', 'comprehend.failed_no_action'] & incomplete mission faulty & 15.244240 & -0.529458 \\
roverhuman_fxns_operator_aa_acts_project_failed_fast_t56p0 & ['ground', 'pos_signal', 'pos', 'ee_15', 'video', 'auto_control', 'motor_control', 'comms', 'power', 'operator', 'plan_path'] & ['operator'] & False & False & 12.955107 & ['percieve.not_visible', 'project.failed_fast'] & incomplete mission faulty & 16.023518 & 0.480458 \\
roverhuman_fxns_operator_aa_acts_project_failed_no_action_t56p0 & ['ground', 'psfs', 'pos_signal', 'pos', 'video', 'auto_control', 'motor_control', 'comms', 'power', 'operator', 'plan_path'] & ['operator'] & False & False & 13.663813 & ['percieve.not_visible', 'project.failed_no_action'] & incomplete mission faulty & 15.244240 & -0.529458 \\
roverhuman_fxns_operator_aa_acts_project_failed_slow_t56p0 & ['psfs', 'pos_signal', 'pos', 'ee_15', 'video', 'auto_control', 'motor_control', 'comms', 'power', 'operator', 'plan_path'] & ['operator'] & True & False & 9.319490 & ['project.failed_slow'] & incomplete mission faulty & 19.740872 & 0.812430 \\
roverhuman_fxns_operator_aa_acts_project_failed_turn_left_t56p0 & ['ground', 'pos_signal', 'pos', 'video', 'auto_control', 'motor_control', 'comms', 'power', 'operator', 'plan_path'] & ['operator'] & False & False & 14.057688 & ['percieve.not_visible', 'project.failed_turn_left'] & incomplete mission faulty & 14.862043 & -0.251773 \\
roverhuman_fxns_operator_aa_acts_project_failed_turn_right_t56p0 & ['ground', 'pos_signal', 'pos', 'video', 'auto_control', 'motor_control', 'comms', 'power', 'operator', 'plan_path'] & ['operator'] & False & False & 13.693675 & ['percieve.not_visible', 'project.failed_turn_right'] & incomplete mission faulty & 15.363988 & 1.140047 \\
roverhuman_fxns_operator_aa_acts_decide_failed_fast_t56p0 & ['psfs', 'pos_signal', 'pos', 'ee_15', 'video', 'auto_control', 'motor_control', 'comms', 'power', 'operator', 'plan_path'] & ['operator'] & True & False & 14.260100 & ['decide.failed_fast'] & incomplete mission faulty & 14.759409 & 0.904491 \\
roverhuman_fxns_operator_aa_acts_decide_failed_no_action_t56p0 & ['ground', 'psfs', 'pos_signal', 'pos', 'video', 'auto_control', 'motor_control', 'comms', 'power', 'operator', 'plan_path'] & ['operator'] & False & False & 13.663813 & ['percieve.not_visible', 'decide.failed_no_action'] & incomplete mission faulty & 15.244240 & -0.529458 \\
roverhuman_fxns_operator_aa_acts_decide_failed_slow_t56p0 & ['psfs', 'pos_signal', 'pos', 'ee_15', 'video', 'auto_control', 'motor_control', 'comms', 'power', 'operator', 'plan_path'] & ['operator'] & True & False & 14.260100 & ['decide.failed_slow'] & incomplete mission faulty & 14.759409 & 0.904491 \\
roverhuman_fxns_operator_aa_acts_decide_failed_turn_left_t56p0 & ['psfs', 'pos_signal', 'pos', 'ee_15', 'video', 'auto_control', 'motor_control', 'comms', 'power', 'operator', 'plan_path'] & ['operator'] & True & False & 14.260100 & ['decide.failed_turn_left'] & incomplete mission faulty & 14.759409 & 0.904491 \\
roverhuman_fxns_operator_aa_acts_decide_failed_turn_right_t56p0 & ['psfs', 'pos_signal', 'pos', 'ee_15', 'video', 'auto_control', 'motor_control', 'comms', 'power', 'operator', 'plan_path'] & ['operator'] & True & False & 14.260100 & ['decide.failed_turn_right'] & incomplete mission faulty & 14.759409 & 0.904491 \\
roverhuman_fxns_operator_aa_acts_reach_failed_no_action_t56p0 & ['ground', 'psfs', 'pos_signal', 'pos', 'video', 'auto_control', 'motor_control', 'comms', 'power', 'operator', 'plan_path'] & ['operator'] & False & False & 13.663813 & ['percieve.not_visible', 'reach.failed_no_action'] & incomplete mission faulty & 15.244240 & -0.529458 \\
roverhuman_fxns_operator_aa_acts_press_failed_left_t56p0 & ['operator'] & ['operator'] & True & True & 0.000000 & ['press.failed_left'] & faulty & 29.254775 & -0.782764 \\
roverhuman_fxns_operator_aa_acts_press_failed_right_t56p0 & ['operator'] & ['operator'] & True & True & 0.000000 & ['press.failed_right'] & faulty & 29.254775 & -0.782764 \\
roverhuman_fxns_operator_aa_acts_press_no_press_t56p0 & ['operator'] & ['operator'] & True & True & 0.000000 & ['press.no_press'] & faulty & 29.254775 & -0.782764 \\
\bottomrule
\end{tabular}
As shown, most modes now have an effect.
Examining Performance Shaping Factors
from fmdtools_examples.navigating_rover.model_human import RoverHumanParam
pd = ParameterDomain(RoverHumanParam)
#pd.add_constant('ground.linetype', 'sine')
#pd.add_constant('ground.amp', 4)
pd.add_variable('psfs.fatigue', var_lim=(0, 11))
pd.add_variable('psfs.attention', var_lim=(0, 11))
pd
ParameterDomain with:
- variables: {'psfs.fatigue': (0, 11), 'psfs.attention': (0, 11)}
- constants: {}
- parameter_initializer: RoverHumanParam
ps = ParameterSample(pd)
ps.add_variable_ranges(comb_kwargs={'resolution': 1})
ps
ParameterSample of scenarios:
- rep0_range_0
- rep0_range_1
- rep0_range_2
- rep0_range_3
- rep0_range_4
- rep0_range_5
- rep0_range_6
- rep0_range_7
- rep0_range_8
- rep0_range_9
- ... (144 total)
ps.scenarios()
[ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(0), 'attention': np.int64(0)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(0), 1: np.int64(0)}, rangeid='', name='rep0_range_0'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(0), 'attention': np.int64(1)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(0), 1: np.int64(1)}, rangeid='', name='rep0_range_1'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(0), 'attention': np.int64(2)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(0), 1: np.int64(2)}, rangeid='', name='rep0_range_2'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(0), 'attention': np.int64(3)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(0), 1: np.int64(3)}, rangeid='', name='rep0_range_3'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(0), 'attention': np.int64(4)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(0), 1: np.int64(4)}, rangeid='', name='rep0_range_4'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(0), 'attention': np.int64(5)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(0), 1: np.int64(5)}, rangeid='', name='rep0_range_5'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(0), 'attention': np.int64(6)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(0), 1: np.int64(6)}, rangeid='', name='rep0_range_6'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(0), 'attention': np.int64(7)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(0), 1: np.int64(7)}, rangeid='', name='rep0_range_7'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(0), 'attention': np.int64(8)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(0), 1: np.int64(8)}, rangeid='', name='rep0_range_8'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(0), 'attention': np.int64(9)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(0), 1: np.int64(9)}, rangeid='', name='rep0_range_9'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(0), 'attention': np.int64(10)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(0), 1: np.int64(10)}, rangeid='', name='rep0_range_10'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(0), 'attention': np.int64(11)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(0), 1: np.int64(11)}, rangeid='', name='rep0_range_11'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(1), 'attention': np.int64(0)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(1), 1: np.int64(0)}, rangeid='', name='rep0_range_12'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(1), 'attention': np.int64(1)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(1), 1: np.int64(1)}, rangeid='', name='rep0_range_13'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(1), 'attention': np.int64(2)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(1), 1: np.int64(2)}, rangeid='', name='rep0_range_14'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(1), 'attention': np.int64(3)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(1), 1: np.int64(3)}, rangeid='', name='rep0_range_15'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(1), 'attention': np.int64(4)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(1), 1: np.int64(4)}, rangeid='', name='rep0_range_16'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(1), 'attention': np.int64(5)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(1), 1: np.int64(5)}, rangeid='', name='rep0_range_17'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(1), 'attention': np.int64(6)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(1), 1: np.int64(6)}, rangeid='', name='rep0_range_18'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(1), 'attention': np.int64(7)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(1), 1: np.int64(7)}, rangeid='', name='rep0_range_19'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(1), 'attention': np.int64(8)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(1), 1: np.int64(8)}, rangeid='', name='rep0_range_20'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(1), 'attention': np.int64(9)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(1), 1: np.int64(9)}, rangeid='', name='rep0_range_21'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(1), 'attention': np.int64(10)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(1), 1: np.int64(10)}, rangeid='', name='rep0_range_22'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(1), 'attention': np.int64(11)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(1), 1: np.int64(11)}, rangeid='', name='rep0_range_23'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(2), 'attention': np.int64(0)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(2), 1: np.int64(0)}, rangeid='', name='rep0_range_24'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(2), 'attention': np.int64(1)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(2), 1: np.int64(1)}, rangeid='', name='rep0_range_25'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(2), 'attention': np.int64(2)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(2), 1: np.int64(2)}, rangeid='', name='rep0_range_26'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(2), 'attention': np.int64(3)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(2), 1: np.int64(3)}, rangeid='', name='rep0_range_27'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(2), 'attention': np.int64(4)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(2), 1: np.int64(4)}, rangeid='', name='rep0_range_28'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(2), 'attention': np.int64(5)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(2), 1: np.int64(5)}, rangeid='', name='rep0_range_29'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(2), 'attention': np.int64(6)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(2), 1: np.int64(6)}, rangeid='', name='rep0_range_30'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(2), 'attention': np.int64(7)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(2), 1: np.int64(7)}, rangeid='', name='rep0_range_31'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(2), 'attention': np.int64(8)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(2), 1: np.int64(8)}, rangeid='', name='rep0_range_32'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(2), 'attention': np.int64(9)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(2), 1: np.int64(9)}, rangeid='', name='rep0_range_33'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(2), 'attention': np.int64(10)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(2), 1: np.int64(10)}, rangeid='', name='rep0_range_34'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(2), 'attention': np.int64(11)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(2), 1: np.int64(11)}, rangeid='', name='rep0_range_35'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(3), 'attention': np.int64(0)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(3), 1: np.int64(0)}, rangeid='', name='rep0_range_36'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(3), 'attention': np.int64(1)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(3), 1: np.int64(1)}, rangeid='', name='rep0_range_37'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(3), 'attention': np.int64(2)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(3), 1: np.int64(2)}, rangeid='', name='rep0_range_38'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(3), 'attention': np.int64(3)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(3), 1: np.int64(3)}, rangeid='', name='rep0_range_39'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(3), 'attention': np.int64(4)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(3), 1: np.int64(4)}, rangeid='', name='rep0_range_40'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(3), 'attention': np.int64(5)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(3), 1: np.int64(5)}, rangeid='', name='rep0_range_41'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(3), 'attention': np.int64(6)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(3), 1: np.int64(6)}, rangeid='', name='rep0_range_42'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(3), 'attention': np.int64(7)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(3), 1: np.int64(7)}, rangeid='', name='rep0_range_43'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(3), 'attention': np.int64(8)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(3), 1: np.int64(8)}, rangeid='', name='rep0_range_44'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(3), 'attention': np.int64(9)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(3), 1: np.int64(9)}, rangeid='', name='rep0_range_45'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(3), 'attention': np.int64(10)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(3), 1: np.int64(10)}, rangeid='', name='rep0_range_46'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(3), 'attention': np.int64(11)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(3), 1: np.int64(11)}, rangeid='', name='rep0_range_47'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(4), 'attention': np.int64(0)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(4), 1: np.int64(0)}, rangeid='', name='rep0_range_48'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(4), 'attention': np.int64(1)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(4), 1: np.int64(1)}, rangeid='', name='rep0_range_49'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(4), 'attention': np.int64(2)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(4), 1: np.int64(2)}, rangeid='', name='rep0_range_50'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(4), 'attention': np.int64(3)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(4), 1: np.int64(3)}, rangeid='', name='rep0_range_51'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(4), 'attention': np.int64(4)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(4), 1: np.int64(4)}, rangeid='', name='rep0_range_52'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(4), 'attention': np.int64(5)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(4), 1: np.int64(5)}, rangeid='', name='rep0_range_53'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(4), 'attention': np.int64(6)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(4), 1: np.int64(6)}, rangeid='', name='rep0_range_54'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(4), 'attention': np.int64(7)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(4), 1: np.int64(7)}, rangeid='', name='rep0_range_55'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(4), 'attention': np.int64(8)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(4), 1: np.int64(8)}, rangeid='', name='rep0_range_56'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(4), 'attention': np.int64(9)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(4), 1: np.int64(9)}, rangeid='', name='rep0_range_57'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(4), 'attention': np.int64(10)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(4), 1: np.int64(10)}, rangeid='', name='rep0_range_58'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(4), 'attention': np.int64(11)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(4), 1: np.int64(11)}, rangeid='', name='rep0_range_59'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(5), 'attention': np.int64(0)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(5), 1: np.int64(0)}, rangeid='', name='rep0_range_60'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(5), 'attention': np.int64(1)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(5), 1: np.int64(1)}, rangeid='', name='rep0_range_61'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(5), 'attention': np.int64(2)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(5), 1: np.int64(2)}, rangeid='', name='rep0_range_62'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(5), 'attention': np.int64(3)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(5), 1: np.int64(3)}, rangeid='', name='rep0_range_63'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(5), 'attention': np.int64(4)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(5), 1: np.int64(4)}, rangeid='', name='rep0_range_64'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(5), 'attention': np.int64(5)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(5), 1: np.int64(5)}, rangeid='', name='rep0_range_65'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(5), 'attention': np.int64(6)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(5), 1: np.int64(6)}, rangeid='', name='rep0_range_66'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(5), 'attention': np.int64(7)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(5), 1: np.int64(7)}, rangeid='', name='rep0_range_67'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(5), 'attention': np.int64(8)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(5), 1: np.int64(8)}, rangeid='', name='rep0_range_68'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(5), 'attention': np.int64(9)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(5), 1: np.int64(9)}, rangeid='', name='rep0_range_69'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(5), 'attention': np.int64(10)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(5), 1: np.int64(10)}, rangeid='', name='rep0_range_70'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(5), 'attention': np.int64(11)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(5), 1: np.int64(11)}, rangeid='', name='rep0_range_71'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(6), 'attention': np.int64(0)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(6), 1: np.int64(0)}, rangeid='', name='rep0_range_72'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(6), 'attention': np.int64(1)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(6), 1: np.int64(1)}, rangeid='', name='rep0_range_73'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(6), 'attention': np.int64(2)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(6), 1: np.int64(2)}, rangeid='', name='rep0_range_74'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(6), 'attention': np.int64(3)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(6), 1: np.int64(3)}, rangeid='', name='rep0_range_75'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(6), 'attention': np.int64(4)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(6), 1: np.int64(4)}, rangeid='', name='rep0_range_76'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(6), 'attention': np.int64(5)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(6), 1: np.int64(5)}, rangeid='', name='rep0_range_77'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(6), 'attention': np.int64(6)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(6), 1: np.int64(6)}, rangeid='', name='rep0_range_78'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(6), 'attention': np.int64(7)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(6), 1: np.int64(7)}, rangeid='', name='rep0_range_79'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(6), 'attention': np.int64(8)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(6), 1: np.int64(8)}, rangeid='', name='rep0_range_80'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(6), 'attention': np.int64(9)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(6), 1: np.int64(9)}, rangeid='', name='rep0_range_81'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(6), 'attention': np.int64(10)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(6), 1: np.int64(10)}, rangeid='', name='rep0_range_82'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(6), 'attention': np.int64(11)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(6), 1: np.int64(11)}, rangeid='', name='rep0_range_83'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(7), 'attention': np.int64(0)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(7), 1: np.int64(0)}, rangeid='', name='rep0_range_84'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(7), 'attention': np.int64(1)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(7), 1: np.int64(1)}, rangeid='', name='rep0_range_85'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(7), 'attention': np.int64(2)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(7), 1: np.int64(2)}, rangeid='', name='rep0_range_86'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(7), 'attention': np.int64(3)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(7), 1: np.int64(3)}, rangeid='', name='rep0_range_87'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(7), 'attention': np.int64(4)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(7), 1: np.int64(4)}, rangeid='', name='rep0_range_88'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(7), 'attention': np.int64(5)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(7), 1: np.int64(5)}, rangeid='', name='rep0_range_89'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(7), 'attention': np.int64(6)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(7), 1: np.int64(6)}, rangeid='', name='rep0_range_90'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(7), 'attention': np.int64(7)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(7), 1: np.int64(7)}, rangeid='', name='rep0_range_91'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(7), 'attention': np.int64(8)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(7), 1: np.int64(8)}, rangeid='', name='rep0_range_92'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(7), 'attention': np.int64(9)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(7), 1: np.int64(9)}, rangeid='', name='rep0_range_93'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(7), 'attention': np.int64(10)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(7), 1: np.int64(10)}, rangeid='', name='rep0_range_94'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(7), 'attention': np.int64(11)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(7), 1: np.int64(11)}, rangeid='', name='rep0_range_95'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(8), 'attention': np.int64(0)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(8), 1: np.int64(0)}, rangeid='', name='rep0_range_96'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(8), 'attention': np.int64(1)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(8), 1: np.int64(1)}, rangeid='', name='rep0_range_97'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(8), 'attention': np.int64(2)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(8), 1: np.int64(2)}, rangeid='', name='rep0_range_98'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(8), 'attention': np.int64(3)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(8), 1: np.int64(3)}, rangeid='', name='rep0_range_99'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(8), 'attention': np.int64(4)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(8), 1: np.int64(4)}, rangeid='', name='rep0_range_100'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(8), 'attention': np.int64(5)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(8), 1: np.int64(5)}, rangeid='', name='rep0_range_101'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(8), 'attention': np.int64(6)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(8), 1: np.int64(6)}, rangeid='', name='rep0_range_102'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(8), 'attention': np.int64(7)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(8), 1: np.int64(7)}, rangeid='', name='rep0_range_103'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(8), 'attention': np.int64(8)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(8), 1: np.int64(8)}, rangeid='', name='rep0_range_104'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(8), 'attention': np.int64(9)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(8), 1: np.int64(9)}, rangeid='', name='rep0_range_105'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(8), 'attention': np.int64(10)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(8), 1: np.int64(10)}, rangeid='', name='rep0_range_106'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(8), 'attention': np.int64(11)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(8), 1: np.int64(11)}, rangeid='', name='rep0_range_107'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(9), 'attention': np.int64(0)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(9), 1: np.int64(0)}, rangeid='', name='rep0_range_108'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(9), 'attention': np.int64(1)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(9), 1: np.int64(1)}, rangeid='', name='rep0_range_109'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(9), 'attention': np.int64(2)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(9), 1: np.int64(2)}, rangeid='', name='rep0_range_110'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(9), 'attention': np.int64(3)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(9), 1: np.int64(3)}, rangeid='', name='rep0_range_111'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(9), 'attention': np.int64(4)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(9), 1: np.int64(4)}, rangeid='', name='rep0_range_112'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(9), 'attention': np.int64(5)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(9), 1: np.int64(5)}, rangeid='', name='rep0_range_113'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(9), 'attention': np.int64(6)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(9), 1: np.int64(6)}, rangeid='', name='rep0_range_114'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(9), 'attention': np.int64(7)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(9), 1: np.int64(7)}, rangeid='', name='rep0_range_115'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(9), 'attention': np.int64(8)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(9), 1: np.int64(8)}, rangeid='', name='rep0_range_116'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(9), 'attention': np.int64(9)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(9), 1: np.int64(9)}, rangeid='', name='rep0_range_117'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(9), 'attention': np.int64(10)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(9), 1: np.int64(10)}, rangeid='', name='rep0_range_118'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(9), 'attention': np.int64(11)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(9), 1: np.int64(11)}, rangeid='', name='rep0_range_119'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(10), 'attention': np.int64(0)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(10), 1: np.int64(0)}, rangeid='', name='rep0_range_120'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(10), 'attention': np.int64(1)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(10), 1: np.int64(1)}, rangeid='', name='rep0_range_121'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(10), 'attention': np.int64(2)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(10), 1: np.int64(2)}, rangeid='', name='rep0_range_122'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(10), 'attention': np.int64(3)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(10), 1: np.int64(3)}, rangeid='', name='rep0_range_123'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(10), 'attention': np.int64(4)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(10), 1: np.int64(4)}, rangeid='', name='rep0_range_124'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(10), 'attention': np.int64(5)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(10), 1: np.int64(5)}, rangeid='', name='rep0_range_125'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(10), 'attention': np.int64(6)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(10), 1: np.int64(6)}, rangeid='', name='rep0_range_126'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(10), 'attention': np.int64(7)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(10), 1: np.int64(7)}, rangeid='', name='rep0_range_127'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(10), 'attention': np.int64(8)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(10), 1: np.int64(8)}, rangeid='', name='rep0_range_128'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(10), 'attention': np.int64(9)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(10), 1: np.int64(9)}, rangeid='', name='rep0_range_129'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(10), 'attention': np.int64(10)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(10), 1: np.int64(10)}, rangeid='', name='rep0_range_130'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(10), 'attention': np.int64(11)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(10), 1: np.int64(11)}, rangeid='', name='rep0_range_131'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(11), 'attention': np.int64(0)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(11), 1: np.int64(0)}, rangeid='', name='rep0_range_132'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(11), 'attention': np.int64(1)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(11), 1: np.int64(1)}, rangeid='', name='rep0_range_133'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(11), 'attention': np.int64(2)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(11), 1: np.int64(2)}, rangeid='', name='rep0_range_134'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(11), 'attention': np.int64(3)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(11), 1: np.int64(3)}, rangeid='', name='rep0_range_135'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(11), 'attention': np.int64(4)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(11), 1: np.int64(4)}, rangeid='', name='rep0_range_136'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(11), 'attention': np.int64(5)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(11), 1: np.int64(5)}, rangeid='', name='rep0_range_137'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(11), 'attention': np.int64(6)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(11), 1: np.int64(6)}, rangeid='', name='rep0_range_138'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(11), 'attention': np.int64(7)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(11), 1: np.int64(7)}, rangeid='', name='rep0_range_139'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(11), 'attention': np.int64(8)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(11), 1: np.int64(8)}, rangeid='', name='rep0_range_140'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(11), 'attention': np.int64(9)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(11), 1: np.int64(9)}, rangeid='', name='rep0_range_141'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(11), 'attention': np.int64(10)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(11), 1: np.int64(10)}, rangeid='', name='rep0_range_142'),
ParameterScenario(sequence={}, times=(), p={'psfs': {'fatigue': np.int64(11), 'attention': np.int64(11)}}, r={}, sp={}, prob=0.006944444444444444, inputparams={0: np.int64(11), 1: np.int64(11)}, rangeid='', name='rep0_range_143')]
ers, hists = prop.parameter_sample(mdl, ps)
SCENARIOS COMPLETE: 100%|██████████| 144/144 [01:12<00:00, 1.98it/s]
plot_map(mdl, hists)
(<Figure size 400x400 with 1 Axes>, <Axes: xlabel='x', ylabel='y'>)
ers.get_values("end_x")
rep0_range_0.tend.classify.end_x: 29.254775331608617
rep0_range_1.tend.classify.end_x: 29.254775331608617
rep0_range_2.tend.classify.end_x: 29.254775331608617
rep0_range_3.tend.classify.end_x: 29.254775331608617
rep0_range_4.tend.classify.end_x: 29.254775331608617
rep0_range_5.tend.classify.end_x: 29.254775331608617
rep0_range_6.tend.classify.end_x: 29.254775331608617
rep0_range_7.tend.classify.end_x: 29.254775331608617
rep0_range_8.tend.classify.end_x: 29.254775331608617
rep0_range_9.tend.classify.end_x: 29.254775331608617
rep0_range_10.tend.classify.end_x: 29.254775331608617
rep0_range_11.tend.classify.end_x: 29.254775331608617
rep0_range_12.tend.classify.end_x: 29.254775331608617
rep0_range_13.tend.classify.end_x: 29.254775331608617
rep0_range_14.tend.classify.end_x: 29.254775331608617
rep0_range_15.tend.classify.end_x: 29.254775331608617
rep0_range_16.tend.classify.end_x: 29.254775331608617
rep0_range_17.tend.classify.end_x: 29.254775331608617
rep0_range_18.tend.classify.end_x: 29.254775331608617
rep0_range_19.tend.classify.end_x: 29.254775331608617
rep0_range_20.tend.classify.end_x: 29.254775331608617
rep0_range_21.tend.classify.end_x: 29.254775331608617
rep0_range_22.tend.classify.end_x: 29.254775331608617
rep0_range_23.tend.classify.end_x: 29.254775331608617
rep0_range_24.tend.classify.end_x: 29.254775331608617
rep0_range_25.tend.classify.end_x: 29.254775331608617
rep0_range_26.tend.classify.end_x: 29.254775331608617
rep0_range_27.tend.classify.end_x: 29.254775331608617
rep0_range_28.tend.classify.end_x: 29.254775331608617
rep0_range_29.tend.classify.end_x: 29.254775331608617
rep0_range_30.tend.classify.end_x: 29.254775331608617
rep0_range_31.tend.classify.end_x: 29.254775331608617
rep0_range_32.tend.classify.end_x: 29.254775331608617
rep0_range_33.tend.classify.end_x: 29.254775331608617
rep0_range_34.tend.classify.end_x: 29.254775331608617
rep0_range_35.tend.classify.end_x: 29.254775331608617
rep0_range_36.tend.classify.end_x: 29.254775331608617
rep0_range_37.tend.classify.end_x: 29.254775331608617
rep0_range_38.tend.classify.end_x: 29.254775331608617
rep0_range_39.tend.classify.end_x: 29.254775331608617
rep0_range_40.tend.classify.end_x: 29.254775331608617
rep0_range_41.tend.classify.end_x: 29.254775331608617
rep0_range_42.tend.classify.end_x: 29.254775331608617
rep0_range_43.tend.classify.end_x: 29.254775331608617
rep0_range_44.tend.classify.end_x: 29.254775331608617
rep0_range_45.tend.classify.end_x: 29.254775331608617
rep0_range_46.tend.classify.end_x: 29.254775331608617
rep0_range_47.tend.classify.end_x: 29.254775331608617
rep0_range_48.tend.classify.end_x: 29.254775331608617
rep0_range_49.tend.classify.end_x: 29.254775331608617
rep0_range_50.tend.classify.end_x: 29.254775331608617
rep0_range_51.tend.classify.end_x: 29.254775331608617
rep0_range_52.tend.classify.end_x: 29.254775331608617
rep0_range_53.tend.classify.end_x: 29.254775331608617
rep0_range_54.tend.classify.end_x: 29.254775331608617
rep0_range_55.tend.classify.end_x: 29.254775331608617
rep0_range_56.tend.classify.end_x: 29.254775331608617
rep0_range_57.tend.classify.end_x: 29.254775331608617
rep0_range_58.tend.classify.end_x: 29.254775331608617
rep0_range_59.tend.classify.end_x: 29.254775331608617
rep0_range_60.tend.classify.end_x: 29.254775331608617
rep0_range_61.tend.classify.end_x: 29.254775331608617
rep0_range_62.tend.classify.end_x: 29.254775331608617
rep0_range_63.tend.classify.end_x: 29.254775331608617
rep0_range_64.tend.classify.end_x: 29.254775331608617
rep0_range_65.tend.classify.end_x: 29.254775331608617
rep0_range_66.tend.classify.end_x: 29.254775331608617
rep0_range_67.tend.classify.end_x: 29.254775331608617
rep0_range_68.tend.classify.end_x: 29.254775331608617
rep0_range_69.tend.classify.end_x: 29.254775331608617
rep0_range_70.tend.classify.end_x: 29.254775331608617
rep0_range_71.tend.classify.end_x: 29.254775331608617
rep0_range_72.tend.classify.end_x: 29.254775331608617
rep0_range_73.tend.classify.end_x: 29.254775331608617
rep0_range_74.tend.classify.end_x: 29.254775331608617
rep0_range_75.tend.classify.end_x: 29.254775331608617
rep0_range_76.tend.classify.end_x: 29.254775331608617
rep0_range_77.tend.classify.end_x: 29.254775331608617
rep0_range_78.tend.classify.end_x: 29.254775331608617
rep0_range_79.tend.classify.end_x: 29.254775331608617
rep0_range_80.tend.classify.end_x: 29.254775331608617
rep0_range_81.tend.classify.end_x: 29.254775331608617
rep0_range_82.tend.classify.end_x: 29.254775331608617
rep0_range_83.tend.classify.end_x: 29.254775331608617
rep0_range_84.tend.classify.end_x: 29.254775331608617
rep0_range_85.tend.classify.end_x: 29.254775331608617
rep0_range_86.tend.classify.end_x: 29.254775331608617
rep0_range_87.tend.classify.end_x: 29.254775331608617
rep0_range_88.tend.classify.end_x: 29.254775331608617
rep0_range_89.tend.classify.end_x: 29.254775331608617
rep0_range_90.tend.classify.end_x: 29.254775331608617
rep0_range_91.tend.classify.end_x: 29.254775331608617
rep0_range_92.tend.classify.end_x: 29.254775331608617
rep0_range_93.tend.classify.end_x: 29.254775331608617
rep0_range_94.tend.classify.end_x: 29.254775331608617
rep0_range_95.tend.classify.end_x: 29.254775331608617
rep0_range_96.tend.classify.end_x: 29.254775331608617
rep0_range_97.tend.classify.end_x: 29.254775331608617
rep0_range_98.tend.classify.end_x: 29.254775331608617
...144 lines
from fmdtools.analyze.tabulate import NominalEnvelope
na = NominalEnvelope(ps, ers, 'at_finish', 'p.psfs.fatigue', 'p.psfs.attention', func= lambda x: x)
fig, ax = na.plot_scatter()
fig.savefig("outputs_paper_idetc_human/nominal_psfs.pdf", format="pdf", bbox_inches = 'tight', pad_inches = 0)
mdl = RoverHuman(p={'ground': {'linetype': 'turn'}})
endresults, mdlhist = prop.one_fault(mdl, 'operator.aa.acts.look', 'failed_no_action', time=15)
endresults
nominal.tend.classify.rate: 1.0
nominal.tend.classify.cost: 0
nominal.tend.classify.prob: 1.0
nominal.tend.classify.expected_cost: 0
nominal.tend.classify.in_bound: True
nominal.tend.classify.at_finish: True
nominal.tend.classify.line_dist: 1
nominal.tend.classify.num_modes: 0
nominal.tend.classify.end_dist: 0.0
nominal.tend.classify.tot_deviation: 0.005246344989065292
nominal.tend.classify.faults: array(0)
nominal.tend.classify.classification: nominal mission
nominal.tend.classify.end_x: 29.813614084369863
nominal.tend.classify.end_y: 17.26588133276667
nominal.tend.classify.endpt: array(2)
operator_aa_acts_loo 1.0
operator_aa_acts_loo 0
operator_aa_acts_loo 1.0
operator_aa_acts_loo 0
operator_aa_acts_loo False
operator_aa_acts_loo False
operator_aa_acts_loo 1
operator_aa_acts_loo 1
operator_aa_acts_loo 23.466067426611588
operator_aa_acts_loo 0.2759017544282031
operator_aa_acts_loo array(1)
operator_aa_acts_looincomplete mission faulty
operator_aa_acts_loo 13.33333333333334
operator_aa_acts_loo 0.0
operator_aa_acts_loo array(2)
traj_fig = plot_map(mdl, mdlhist)
mdlhist.plot_trajectories('flows.pos.s.x', 'flows.pos.s.y')
(<Figure size 400x400 with 1 Axes>, <Axes: xlabel='x', ylabel='y'>)
mdlhist.plot_line('flows.pos.s.vel', 'flows.pos.s.ux', 'flows.pos.s.uy')
(<Figure size 600x400 with 4 Axes>,
array([<Axes: title={'center': 'flows.pos.s.vel'}, xlabel=' '>,
<Axes: title={'center': 'flows.pos.s.ux'}, xlabel='time'>,
<Axes: title={'center': 'flows.pos.s.uy'}, xlabel='time'>,
<Axes: >], dtype=object))
fs = FaultSample(fd)
fs.add_fault_times([j for j in range(0, 30, 5)])
fs
FaultSample of scenarios:
- roverhuman_fxns_operator_aa_acts_look_failed_no_action_t0
- roverhuman_fxns_operator_aa_acts_look_failed_no_action_t5
- roverhuman_fxns_operator_aa_acts_look_failed_no_action_t10
- roverhuman_fxns_operator_aa_acts_look_failed_no_action_t15
- roverhuman_fxns_operator_aa_acts_look_failed_no_action_t20
- roverhuman_fxns_operator_aa_acts_look_failed_no_action_t25
- roverhuman_fxns_operator_aa_acts_percieve_failed_no_action_t0
- roverhuman_fxns_operator_aa_acts_percieve_failed_no_action_t5
- roverhuman_fxns_operator_aa_acts_percieve_failed_no_action_t10
- roverhuman_fxns_operator_aa_acts_percieve_failed_no_action_t15
- ... (114 total)
ers, hists = prop.fault_sample(mdl, fs)
SCENARIOS COMPLETE: 100%|██████████| 114/114 [00:44<00:00, 2.56it/s]
fig, ax = plot_map(mdl, hists)
fig.savefig("outputs_paper_idetc_human/nocon_trajectories.pdf", format="pdf", bbox_inches = 'tight', pad_inches = 0)
fig, ax = hists.plot_line('flows.psfs.s.attention')
fig.savefig("outputs_paper_idetc_human/nocon_attention.pdf", format="pdf", bbox_inches = 'tight', pad_inches = 0)
mdl = RoverHuman(p={'ground': {'linetype': 'sine', 'amp': 2, 'period': 2/3.14*30}})
ers, hists = prop.fault_sample(mdl, fs)
SCENARIOS COMPLETE: 100%|██████████| 114/114 [00:39<00:00, 2.89it/s]
fig, ax = plot_map(mdl, hists)
fig.savefig("outputs_paper_idetc_human/nocon_trajectories_sine.pdf", format="pdf", bbox_inches = 'tight', pad_inches = 0)
fig, ax = hists.plot_line('flows.psfs.s.attention')
fig.savefig("outputs_paper_idetc_human/nocon_attention_sine.pdf", format="pdf", bbox_inches = 'tight', pad_inches = 0)