MemoryX Overview

MemoryX, the memory layer of ArmarX, includes basic building blocks for memory structures which can be either held in the system’s memory or made persistent in a non-relational database. Based on these building blocks, the memory architecture illustrated the figure below is realized. A key element of MemoryX are network transparent access facilities which allows consistently updating or querying the memory within the distributed application. The architecture consists different memory types such as working memory (WM), long-term memory (LTM), and prior knowledge (PK). Each memory type is organized in segments which can be individually addressed and used to store arbitrary data types or classes. Such segments may cover data related to classes of known objects, perceived locations of object instances or positions and status of agents in the world.

Getting Started

Getting Started with MemoryX

Documentation Contents

Common Storage: A versatile storage backed up by MongoDB
CommonStorage provides an interface to the MongoDB database and several network transparent memory structures. It can be used independently to store source data or intermediate results during offline information processing (e.g. knowledge extraction from texts).
Working Memory: An abstract working memory, that gets updated in the loop
The Working Memory (WM) represents the current context of the robot’s internal state. It can be updated by perceptual processes or prior knowledge via an updater interface.
Prior Knowledge: Common sense knowledge database
Prior Knowledge (PK) contains information which is already known to the robot and which has been predefined by the user or operator. Entities in the PK can be enriched with known data such as 3D models or features for object detection.
Long-Term Memory: Offline memory, built mostly from earlier experience
The Long-Term Memory (LTM) provides long-term storage capabilities and offers an inference interface which allows attaching learning and inference processes. The LTM allows creating snapshots of the current WM state to be used for later re-loading.

Structure of a single memory

A memory (e.g. the Working Memory) consists of 0-N segments, which contain entities of each one type (ObjectInstanceSegment contains only ObjectInstances). These entities are subclasses of the Entity base class and provide convenience functions to the attribute list of the Entity base class. The Entity base class contains a name, id, type and a list of variable (Variants) Attributes associated with a probality.

Structure of a single memory (e.g. Working Memory)