Skip to content

Support Nodes with Memory #2

@StefanoSoffiaUTRC

Description

@StefanoSoffiaUTRC

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.

image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions