-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
Support nodes with memory, or starred nodes.
As already discussed over the phone, we have an open discussion to understand how nodes with memory shall be specified in COQ:
- As @miccol pointed out, this functionality can in principle be delegated to skills.
- On the other hand, it would be nice to have this functionality available directly in the BT interpreter itself because of usability (the behavior designer would otherwise have to focus on BT and the skills) and because this enables COQ to reason about the composition of BT and skills.
As for what concerns the implementation, classic functional approach to handle state is to let the semantic function (the tick function in this case) take the current state or store and return the updated state. The store is:
- Classically, a map from the variable names to the variable values. This approach would definitively work but it would also incur the additional complexity of handling disambiguation whan BT are composed.
- In order to support starred nodes, it is enough to have a boolean variable local to the node itself. For example see the proposed SMV implementation. The picture below highlights the differences between the binary sequence and the binary sequence with memory.
Metadata
Metadata
Assignees
Labels
No labels
