This widget allows you to inspect the current state of the working memory.

You can inspect the current working memory. The 3D viewer shows the currently known 3D workspace. In the table in the center of the widget you find a list of all object and agent instances and their attributes that are currently in the working memory.

When you add the widget to the Gui, you need to specify the following parameters:

Parameter Name Example Value Required? Description
Gui Plugin Name WorkingMemoryGuiPlugin ? ?
Working Memory Name Working Memory ? ?
Working Memory Updates Topic WorkingMemoryUpdates ? ?
Object Instances Segment Name objectInstances ? The name of the segment in memory containing the object instances.
Agent Instances Segment Name agentInstances ? The name of the segment in memory containing the agent instances.
World State Segment Name worldState ? The name of the world state.
Extend datapaths with additional ArmarX packages (comma-separated) Armar 3, Armar 4 ? ?
In order to use this widget there must be working memory available.

An example scenario for viewing and editing the WorkingMemory


The collection db.snapshots of memdb contains all snapshots such as

  • MobileKitchen_mm (millimeter)
  • KitchenKK

Those snapshots contain a list with segment names. Each entry in this list refers to a collection name which contains all objects in the scene for this segment. An object entry contains:

  • object name
  • object class
  • object pose
  • object certainty

The WorkingMemoryExample contains several tests which load one Snapshot into WorkingMemory and operates on it. It is located in


The configuration file WorkingMemory.cfg contains important parameters such as

  • "DatabaseName": name of the main database (should be memdb in our case)
  • "KalmanFilter": object positions can be fused with a filter
  • "WMExample.SnapshotName": name of the snapshot to load
  • "WMExample.TestToRun": name of the test to execute
  • "WMExample.CommonPlacesSnapshot": name of the CommonPlaces snapshot which should be used
  • "MemoryX.PriorKnowledge.ClassCollections": which collections should be used for PriorKnowledge

After the configuration files are in the wanted state the Gui can be started with


After the Gui has loaded click on the "addWidget()" menu and then select "WorkingMemoryGui".

  • ->setClass("cup", ..)

WorkingMemoryEditor API Documentation WorkingMemoryController

See also