Buffers¶
Related Work¶
Additional Thoughts / Influences¶
- "Memory is an active system"
Available Concepts¶
- Short-term buffer
- Egocentric representation
- Prediction-correction pattern (usually requires some kind of transformation from input data to different output data)
- Event-based interface
- Discretizaton of space (from egosphere concept)
- Activation network (from egosphere concept)
- Reliability decay
- Temporal query / event notification
Use Cases and Comparable Approaches¶
- Temporal Coincidence Detection (things happen at the same time)
- Fusion
- Approach: Complex Event Processing
- Location coincidence Detection
- Fusion
- Approach: Complex Event Processing
- Lookup of past events
- When is this necessary?
- Probably only for higher-level tasks. Others use implicit temporal representation
- Thus, requires query capabilities for on-demand processing (e.g. user asked a question to the robot)
- Location-based activation (e.g. used as saliency):
- probably hard to implement with other means?
- Store fact-like knowledge:
- probably not short-term?
- Approach: simple database
- Centrally available state:
- Approach: root scope in RSB (assuming every component publishes it's state)
- Algorithms on central state:
- Approach: Complex event processing on root scope in RSB
Questions¶
- In which situations is it beneficial to have a shared state space?
- Fusion
- For system development: addition of new fusion components because all data required for the new algorithm is instantaneously available
- How to support multimodal integration / fusion?
- How to evaluate quantitatively the applicability of the concepts?
- Relational integrity? Is support required? (Contents of one buffer reference the other buffers' contents and will be updated when they are removed there)
- How does the event-based nature relate to sub-symbolic / connectionist approaches for memory?
Required Decisions¶
- general tool vs. enforcing a specific functional architecture
Possible Consequences¶
- Do we need a (single combined) memory at all?
- Separate active parts as usual RSB-attached processes and provide history lookup as a unique function in a separate component
- Events really must reflect state changes of components (as defined e.g. by Ted Faison)
Identified Problems¶
- Single scope hierarchy (we probably need multiple bands, otherwise scope modeling becomes tedious)
- Learning on unified representation not enforced (e.g. everything must be XML with position tags)
- Aggregation functionality of RSB is nice, representation in other middleware concepts could be more work
- Argumentation not possible on single component level. Instead, whole system needs to be analyzed
- Updates of state published by one component not easily possible by another (e.g. in same event). New event (on different scope) required.
Scope Idea¶
/data/{a,b,c}
/mean/{a,b,c}
/frequency/{a,b,c}
Representations¶
Common use cases in HUMAVIPS:
- Location information:
- Image coordinate system:
- 2D
- 3D
- 6D with pose or maybe only 4D in simple cases (2D + 2D)
- Localization coordinate system
- 2.5D? Maybe full 3D or even 6D?
- Spherical coordinates or polar coordinates for sound processing
- Reliability for percepts
- Tracking information (track ID)
- Result vector and reliabilities from a classification process