Executor - VerifiableRobotics/LTLMoP GitHub Wiki
The Executor connects the discrete strategy controller with continuous handler controllers to create a hybrid controller.
High-level Overview
In pseudo-code, assuming fast/slow execution for simplicity:
sensor_states = handlerSubsystem.getSensorValues(sensors)
strategy.chooseInitialState(sensor_states, actuator_states)
handlerSubsystem.setActuatorValues(strategy.getCurrentState().getActuatorValues())
while not quit:
sensor_states = handlerSubsystem.getSensorValues(sensors)
next_state = strategy.getNextState(sensor_states)
handlerSubsystem.setActuatorValues(next_state.getActuatorValues())
strategy.setState(next_state)
Features
- Act as server that can be connected to via GUI or other remote application to allow for status monitoring and execution control.
- Supports mechanisms for resynthesis, including proper propagation of state from old to new controllers.
- Support different execution modes ("normal", "fast/slow")