SceneEditor

This Plugin is an editor for the selected WorkingMemory which contains the current knowledge of the roboter about its environment. With this editor it is only possible to edit the scene and not relationships between objects or related properties.

This is a live-editor which means, that any changes made to the scene are directly transfered to the used WorkingMemory. Therefore it might happen that other plugins show inconsistent states of the WorkingMemory. This plugin on the other hand detects changes made by other instances and adjusts the shown scene immediately.

Starting the Editor

The config-dialog of the plugin

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

Parameter Name Example Value Required? Description
Select Configuration-File .../armarx/MemoryX/build/bin/SceneEditor.ini yes Settings for this plugin
Working Memory Name Working Memory yes ?
Working-Memory-Updates WorkingMemoryUpdates yes the topic that publishes changes in the selected working memory
Prior Memory Name PriorKnowledge Yes The name of the prior memory
Note
In order to use this plugin following memories must be available:
- WorkingMemory
- PriorKnowledge
- CommonStorage
- LongtermMemory

Make sure that these four components are getting started in the scenario-file you use.

Overview

The plugin's UI
  1. Object Explorer
    • Contains the every readable collection of addable objects.
    • By selecting an object its properties are shown in the Object Inspector.
    • Objects can be added to scene via Drag-and-Drop.
  2. Scene-ViewMemoryX-GuiPlugins-SceneEditor-groups
    • A 3D-Representation of the current content of the WorkingMemory
    • Two modes:
      • Editor-Mode: The scene can be manipulated, buttons for undo/redo and different manipulators are accessible.
      • Viewer-Mode: Manipulation not possible, can be used for presentations.
    • Navigation and Manipulation
  3. Object Inspector
  4. Minimap
    • Simply a top-view of the whole scene.
    • By clicking on it the camera of the Scene-View will be set to same position as in the minimap
  5. Group Explorer
    • List of all current groups
    • Two Buttons per Entry:
      • Add every object that is currently selected in the scene to that group
      • Add every object in that group to the current selection
    • All selected objects can be added to a new group
    • By double-clicking on a group the Group-Explorer opens. See Groups
  6. Snapshots and Settings
    • Buttons for ...
      • Loading/Saving Snapshots (Load-Save Snapshot)
      • Opening shortcut-settings where every shortcut working in this plugin can be found and edited.
      • Opening group explorer (Groups)
      • Clearing the whole scene and thus the whole working memory and deleting every object
      • Selecting language of the plugin

Load-Save Snapshot

Loading a Snapshot into the scene/working-memory
  • Select the snapshot to load and its content will be added to the current scene. The scene will not be cleared before the loading.
  • The objects in the loaded snapshot are always added together to a new group (Groups).
Saving the scene/working-memory into a snapshot
  • It is either possible to create a new snapshot or override an existing one. The name of a new snapshot has to start with the prefix "Snapshot_" otherwise it will be added to the name automatically.
  • By selecting 'Save all' every object of the scene is saved.
  • On the other hand you can select specific Groups and only the objects in these groups are saved.

Navigation and Manipulation

  • The navigation through the scene is quite similar to other 3D-Manipulation-Programs:
    • Left click to select objects ('Shift' + left-click to select several objects successively)
    • Hold mouse wheel + 'Shift' to move the camera
    • Hold mouse wheel to rotate the camera (for rotation shortcuts check the shortcut-settings)
    • Use mouse wheel to zoom
Buttons accessible in Editor-Mode
  1. Toggle between showing the visualisation meshes or the collision meshes of the objects
  2. (De-)Activate Rotation-Manipulator
    • Adds a sphere around selected objects which allows to rotate the object by clicking on and moving the green points.
    • If more than one object is selected all of them are rotated around their common center.
  3. (Se-)Activate Translation-Manipulator
    • Adds a cuboid around selected objects.
    • Left-CLick an -Hold on one side of the cuboid allows to move the objects within this level.
    • Additional holding 'Shift' allows to move only in one direction.
    • Additional holding 'Ctrl' allows to move only in the direction orthogonal to the selected side.
  4. Undo last action (select/move/rotate/add/remove object/s)
    • 'Ctrl' + 'Z'
  5. Redo last action
    • 'Ctrl' + 'Shift' + 'Z'
  6. Delete selected objects
    • 'Del'

Object Inspector

Object Inspector while an object in the scene is selected
  • Shows the instance attributes of the selected object
  • If several objects are selected the attributes of the object that has been selected last are shown (orange border in scene view)
  • Allows to edit the location and orientaion of an object in the scene. (Press 'Enter' to confirm input)
Note
Although it is possible to edit the orientation with the Object Inspector it is not very useful:
Due to the fact that quanternions are used to store the orientation and location the angle-axis-representation is not very practical for editing.
(You will see the values change after you hit 'Enter'.

Groups

You can create groups of objects in the scene to simplify your task. They provide the advantage that it is possible to easily select a large number of objects over and over with only one click. Check Overview to see how to create groups directly from the main-window.

Note
They exist only as long as the plugin is running, because they will not be saved in a snapshot.
The Group-Explorer for maintaining groups

Following actions are possible:

  • Changing the name of selected group
  • Deleting the selected group. (Only the group not the objects within the group)
  • Creating a new empty group
  • Showing the objects that belong to a group
  • Remove an object from a group (Button 'Delete Object')
See also
SceneEditorMainWindowController