A computer-implemented method for generating an action strategy to be executed by an autonomous system, the action strategy comprising a series of actions to be performed by the autonomous system to accomplish a corresponding active objective, the series of actions comprising one or more resource-bounded actions to be performed by the autonomous system if the autonomous system has limited resources to accomplish the active objective, the autonomous system comprising one or more sensing devices configured to sense state variables, the state variables defining a state of the autonomous system, the method comprising:
- accessing a first database populated with event descriptions corresponding to events detected by the autonomous system, the events occurring or having occurred in an environment where the autonomous system is configured to operate;
- accessing a second database populated with candidate objectives, each candidate objective defining a task accomplishable by the autonomous system and comprising:
- an activation condition corresponding to one or more event descriptions, the activation condition being fulfilled if determination is made that the corresponding one or more event descriptions are found in the first database;
- and
- a progressive task unit structure describing a hierarchy of actions to be performed in order to accomplish the corresponding candidate objective, the progressive task unit structure comprising executable modules configured to be executed by the autonomous system, each executable module corresponding to an action of the hierarchy of actions and being associated with a given state of the autonomous system, at least one progressive task unit structure comprising at least one failure recovery module corresponding to a resource-bounded action to be performed in response to a given failure state of the autonomous system being detected by the one or more sensing devices while performing an action strategy, the executable modules and failure recovery modules being associated with a execution score indicative of which modules should be preferentially executed during performance of the action strategy;
- selecting one or more candidate objectives from the second database by determining whether the activation conditions of the one or more candidate objectives are fulfilled based on the event descriptions;
- and
- executing the selected one or more candidate objectives, an execution of a candidate objective comprising:
- transferring parameters of at least one of the event descriptions that caused the selection of the candidate objective to the selected candidate objective, thereby generating the active objective;
- generating an action strategy from the progressive task unit structure, the action strategy comprising information about actions to be performed according to a state of the autonomous system such that, upon detection of a failure state of the autonomous system, a corresponding resource bounded-action is executed, the series of actions of the action strategy being based on the execution scores of the executable modules and failure recovery modules;
- and
- executing the series of actions of the action strategy based on the state of the autonomous system.