diff --git a/scenarios/ArMemObjectMemory/config/ArVizStorage.cfg b/scenarios/ArMemObjectMemory/config/ArVizStorage.cfg index 0dcbd8d5775b8c0f562bba62b5f2fe282e2da6d0..302ac28c37dd28de3e68fb4fe4c2174faa4ec3bf 100644 --- a/scenarios/ArMemObjectMemory/config/ArVizStorage.cfg +++ b/scenarios/ArMemObjectMemory/config/ArVizStorage.cfg @@ -27,7 +27,7 @@ # ArmarX.ArVizStorage.EnableProfiling = false -# ArmarX.ArVizStorage.HistoryPath: Destination path where the history are serialized to +# ArmarX.ArVizStorage.HistoryPath: Destination path where the history is serialized to # Attributes: # - Default: RobotAPI/ArVizStorage # - Case sensitivity: yes @@ -68,7 +68,7 @@ # ArmarX.ArVizStorage.TopicName = ArVizTopic -# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx) +# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_CONFIG_DIR is set, the cache path will be made relative to ARMARX_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${ARMARX_WORKSPACE}/armarx_config) # Attributes: # - Default: mongo/.cache # - Case sensitivity: yes diff --git a/scenarios/ArMemObjectMemory/config/ArticulatedObjectLocalizerExample.cfg b/scenarios/ArMemObjectMemory/config/ArticulatedObjectLocalizerExample.cfg index 9d225df2f4efadbb731a79fd45dbf852189ec80b..ce2498f12be6b0ce2cd02bfab3ebdc4140a797ca 100644 --- a/scenarios/ArMemObjectMemory/config/ArticulatedObjectLocalizerExample.cfg +++ b/scenarios/ArMemObjectMemory/config/ArticulatedObjectLocalizerExample.cfg @@ -60,12 +60,19 @@ # ArmarX.ArticulatedObjectLocalizerExample.mem.obj.articulated.MemoryName = Object -# ArmarX.ArticulatedObjectLocalizerExample.mem.obj.articulated.ProviderName: +# ArmarX.ArticulatedObjectLocalizerExample.mem.obj.articulated.read.ProviderName: # Attributes: # - Default: PriorKnowledgeData # - Case sensitivity: yes # - Required: no -# ArmarX.ArticulatedObjectLocalizerExample.mem.obj.articulated.ProviderName = PriorKnowledgeData +# ArmarX.ArticulatedObjectLocalizerExample.mem.obj.articulated.read.ProviderName = PriorKnowledgeData + + +# ArmarX.ArticulatedObjectLocalizerExample.mem.obj.articulated.write.ProviderName: Name of this provider +# Attributes: +# - Case sensitivity: yes +# - Required: yes +ArmarX.ArticulatedObjectLocalizerExample.mem.obj.articulated.write.ProviderName = sim_track # ArmarX.ArticulatedObjectLocalizerExample.mns.MemoryNameSystemEnabled: Whether to use (and depend on) the Memory Name System (MNS). @@ -94,14 +101,6 @@ # ArmarX.ArticulatedObjectLocalizerExample.tpc.pub.DebugObserver = DebugObserver -# ArmarX.ArticulatedObjectLocalizerExample.tpc.sub.MemoryListener: Name of the `MemoryListener` topic to subscribe to. -# Attributes: -# - Default: MemoryUpdates -# - Case sensitivity: yes -# - Required: no -# ArmarX.ArticulatedObjectLocalizerExample.tpc.sub.MemoryListener = MemoryUpdates - - # ArmarX.ArticulatedObjectLocalizerExample.updateFrequency: Memory update frequency (write). # Attributes: # - Default: 25 @@ -110,7 +109,7 @@ # ArmarX.ArticulatedObjectLocalizerExample.updateFrequency = 25 -# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx) +# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_CONFIG_DIR is set, the cache path will be made relative to ARMARX_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${ARMARX_WORKSPACE}/armarx_config) # Attributes: # - Default: mongo/.cache # - Case sensitivity: yes diff --git a/scenarios/ArMemObjectMemory/config/DebugObserver.cfg b/scenarios/ArMemObjectMemory/config/DebugObserver.cfg index 4a0b9dac036cd4d103efd7d1b718d508f285d85a..8dc7ead26b3bd2f7678b3b3e7a1b00c01213225d 100644 --- a/scenarios/ArMemObjectMemory/config/DebugObserver.cfg +++ b/scenarios/ArMemObjectMemory/config/DebugObserver.cfg @@ -18,7 +18,7 @@ # ArmarX.ApplicationName = "" -# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx) +# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_CONFIG_DIR is set, the cache path will be made relative to ARMARX_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${ARMARX_WORKSPACE}/armarx_config) # Attributes: # - Default: mongo/.cache # - Case sensitivity: yes diff --git a/scenarios/ArMemObjectMemory/config/MemoryNameSystem.cfg b/scenarios/ArMemObjectMemory/config/MemoryNameSystem.cfg index 7dd22218243ca4f9e67e843da8b42916f3b8568a..b8bc70a66ca7f32a628886ad1bf13e373f9750d3 100644 --- a/scenarios/ArMemObjectMemory/config/MemoryNameSystem.cfg +++ b/scenarios/ArMemObjectMemory/config/MemoryNameSystem.cfg @@ -18,7 +18,7 @@ # ArmarX.ApplicationName = "" -# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx) +# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_CONFIG_DIR is set, the cache path will be made relative to ARMARX_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${ARMARX_WORKSPACE}/armarx_config) # Attributes: # - Default: mongo/.cache # - Case sensitivity: yes diff --git a/scenarios/ArMemObjectMemory/config/ObjectMemory.cfg b/scenarios/ArMemObjectMemory/config/ObjectMemory.cfg index e67a4c41162632026046dc8402466d2deb7ee233..5e0858b92c6caa5e2aba4453dac7bacef8367318 100644 --- a/scenarios/ArMemObjectMemory/config/ObjectMemory.cfg +++ b/scenarios/ArMemObjectMemory/config/ObjectMemory.cfg @@ -18,7 +18,7 @@ # ArmarX.ApplicationName = "" -# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx) +# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_CONFIG_DIR is set, the cache path will be made relative to ARMARX_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${ARMARX_WORKSPACE}/armarx_config) # Attributes: # - Default: mongo/.cache # - Case sensitivity: yes @@ -92,6 +92,14 @@ # ArmarX.LoggingGroup = "" +# ArmarX.ObjectMemory.ArVizStorageName: Name of the ArViz storage +# Attributes: +# - Default: ArVizStorage +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.ArVizStorageName = ArVizStorage + + # ArmarX.ObjectMemory.ArVizTopicName: Name of the ArViz topic # Attributes: # - Default: ArVizTopic @@ -134,14 +142,6 @@ # ArmarX.ObjectMemory.RemoteGuiName = RemoteGuiProvider -# ArmarX.ObjectMemory.RemoteStateComponentName: Name of the robot state component -# Attributes: -# - Default: RobotStateComponent -# - Case sensitivity: yes -# - Required: no -# ArmarX.ObjectMemory.RemoteStateComponentName = RobotStateComponent - - # ArmarX.ObjectMemory.cmp.KinematicUnitObserverName: Name of the kinematic unit observer. # Attributes: # - Default: KinematicUnitObserver @@ -150,55 +150,6 @@ # ArmarX.ObjectMemory.cmp.KinematicUnitObserverName = KinematicUnitObserver -# ArmarX.ObjectMemory.ltm.00_enabled: -# Attributes: -# - Default: true -# - Case sensitivity: yes -# - Required: no -# - Possible values: {0, 1, false, no, true, yes} -# ArmarX.ObjectMemory.ltm.00_enabled = true - - -# ArmarX.ObjectMemory.ltm.10_host: -# Attributes: -# - Default: localhost -# - Case sensitivity: yes -# - Required: no -# ArmarX.ObjectMemory.ltm.10_host = localhost - - -# ArmarX.ObjectMemory.ltm.11_port: -# Attributes: -# - Default: 25270 -# - Case sensitivity: yes -# - Required: no -# ArmarX.ObjectMemory.ltm.11_port = 25270 - - -# ArmarX.ObjectMemory.ltm.20_user: -# Attributes: -# - Default: "" -# - Case sensitivity: yes -# - Required: no -# ArmarX.ObjectMemory.ltm.20_user = "" - - -# ArmarX.ObjectMemory.ltm.21_password: -# Attributes: -# - Default: "" -# - Case sensitivity: yes -# - Required: no -# ArmarX.ObjectMemory.ltm.21_password = "" - - -# ArmarX.ObjectMemory.ltm.22_database: -# Attributes: -# - Default: Test -# - Case sensitivity: yes -# - Required: no -# ArmarX.ObjectMemory.ltm.22_database = Test - - # ArmarX.ObjectMemory.mem.MemoryName: Name of this memory server. # Attributes: # - Default: Object @@ -207,55 +158,6 @@ # ArmarX.ObjectMemory.mem.MemoryName = Object -# ArmarX.ObjectMemory.mem.articulated.cls.CoreSegmentName: Name of the object instance core segment. -# Attributes: -# - Default: ArticulatedObjectClass -# - Case sensitivity: yes -# - Required: no -# ArmarX.ObjectMemory.mem.articulated.cls.CoreSegmentName = ArticulatedObjectClass - - -# ArmarX.ObjectMemory.mem.articulated.cls.LoadFromObjectsPackage: If true, load the objects from the objects package on startup. -# Attributes: -# - Default: true -# - Case sensitivity: yes -# - Required: no -# - Possible values: {0, 1, false, no, true, yes} -# ArmarX.ObjectMemory.mem.articulated.cls.LoadFromObjectsPackage = true - - -# ArmarX.ObjectMemory.mem.articulated.cls.MaxHistorySize: Maximal size of object poses history (-1 for infinite). -# Attributes: -# - Default: -1 -# - Case sensitivity: yes -# - Required: no -# ArmarX.ObjectMemory.mem.articulated.cls.MaxHistorySize = -1 - - -# ArmarX.ObjectMemory.mem.articulated.cls.ObjectsPackage: Name of the objects package to load from. -# Attributes: -# - Default: PriorKnowledgeData -# - Case sensitivity: yes -# - Required: no -# ArmarX.ObjectMemory.mem.articulated.cls.ObjectsPackage = PriorKnowledgeData - - -# ArmarX.ObjectMemory.mem.articulated.inst.CoreSegmentName: Name of the object instance core segment. -# Attributes: -# - Default: ArticulatedObjectInstance -# - Case sensitivity: yes -# - Required: no -# ArmarX.ObjectMemory.mem.articulated.inst.CoreSegmentName = ArticulatedObjectInstance - - -# ArmarX.ObjectMemory.mem.articulated.inst.MaxHistorySize: Maximal size of object poses history (-1 for infinite). -# Attributes: -# - Default: -1 -# - Case sensitivity: yes -# - Required: no -# ArmarX.ObjectMemory.mem.articulated.inst.MaxHistorySize = -1 - - # ArmarX.ObjectMemory.mem.attachments.CoreSegmentName: Name of the object instance core segment. # Attributes: # - Default: Attachments @@ -272,14 +174,6 @@ # ArmarX.ObjectMemory.mem.attachments.MaxHistorySize = -1 -# ArmarX.ObjectMemory.mem.cls.CoreSegmentName: Name of the object clazz core segment. -# Attributes: -# - Default: Class -# - Case sensitivity: yes -# - Required: no -# ArmarX.ObjectMemory.mem.cls.CoreSegmentName = Class - - # ArmarX.ObjectMemory.mem.cls.Floor.EntityName: Object class entity of the floor. # Attributes: # - Default: Building/floor-20x20 @@ -323,28 +217,28 @@ # ArmarX.ObjectMemory.mem.cls.LoadFromObjectsPackage = true -# ArmarX.ObjectMemory.mem.cls.MaxHistorySize: Maximal size of object poses history (-1 for infinite). +# ArmarX.ObjectMemory.mem.cls.ObjectsPackage: Name of the objects package to load from. # Attributes: -# - Default: -1 +# - Default: PriorKnowledgeData # - Case sensitivity: yes # - Required: no -# ArmarX.ObjectMemory.mem.cls.MaxHistorySize = -1 +# ArmarX.ObjectMemory.mem.cls.ObjectsPackage = PriorKnowledgeData -# ArmarX.ObjectMemory.mem.cls.ObjectsPackage: Name of the objects package to load from. +# ArmarX.ObjectMemory.mem.cls.seg.CoreMaxHistorySize: Maximal size of the Class entity histories (-1 for infinite). # Attributes: -# - Default: PriorKnowledgeData +# - Default: -1 # - Case sensitivity: yes # - Required: no -# ArmarX.ObjectMemory.mem.cls.ObjectsPackage = PriorKnowledgeData +# ArmarX.ObjectMemory.mem.cls.seg.CoreMaxHistorySize = -1 -# ArmarX.ObjectMemory.mem.inst.CoreSegmentName: Name of the object instance core segment. +# ArmarX.ObjectMemory.mem.cls.seg.CoreSegmentName: Name of the Class core segment. # Attributes: -# - Default: Instance +# - Default: Class # - Case sensitivity: yes # - Required: no -# ArmarX.ObjectMemory.mem.inst.CoreSegmentName = Instance +# ArmarX.ObjectMemory.mem.cls.seg.CoreSegmentName = Class # ArmarX.ObjectMemory.mem.inst.DiscardSnapshotsWhileAttached: If true, no new snapshots are stored while an object is attached to a robot node. @@ -357,14 +251,6 @@ # ArmarX.ObjectMemory.mem.inst.DiscardSnapshotsWhileAttached = true -# ArmarX.ObjectMemory.mem.inst.MaxHistorySize: Maximal size of object poses history (-1 for infinite). -# Attributes: -# - Default: 25 -# - Case sensitivity: yes -# - Required: no -# ArmarX.ObjectMemory.mem.inst.MaxHistorySize = 25 - - # ArmarX.ObjectMemory.mem.inst.calibration.offset: Offset for the node to be calibrated. # Attributes: # - Default: 0 @@ -472,8 +358,9 @@ # ArmarX.ObjectMemory.mem.inst.scene.11_Directory = scenes -# ArmarX.ObjectMemory.mem.inst.scene.12_SnapshotToLoad: Scene snapshot to load on startup (e.g. 'Scene_2021-06-24_20-20-03'). -# You can also specify paths relative to 'Package/scenes/'. +# ArmarX.ObjectMemory.mem.inst.scene.12_SnapshotToLoad: Scene to load on startup (e.g. 'Scene_2021-06-24_20-20-03'). +# You can also specify paths relative to 'Package/scenes/'. +# You can also specify a ; separated list of scenes. # Attributes: # - Default: "" # - Case sensitivity: yes @@ -481,6 +368,22 @@ # ArmarX.ObjectMemory.mem.inst.scene.12_SnapshotToLoad = "" +# ArmarX.ObjectMemory.mem.inst.seg.CoreMaxHistorySize: Maximal size of the Instance entity histories (-1 for infinite). +# Attributes: +# - Default: 64 +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.inst.seg.CoreMaxHistorySize = 64 + + +# ArmarX.ObjectMemory.mem.inst.seg.CoreSegmentName: Name of the Instance core segment. +# Attributes: +# - Default: Instance +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.inst.seg.CoreSegmentName = Instance + + # ArmarX.ObjectMemory.mem.inst.visu.alpha: Alpha of objects (1 = solid, 0 = transparent). # Attributes: # - Default: 1 @@ -515,6 +418,32 @@ # ArmarX.ObjectMemory.mem.inst.visu.frequenzyHz = 25 +# ArmarX.ObjectMemory.mem.inst.visu.gaussians.position: Enable showing pose gaussians (orientation part). +# Attributes: +# - Default: false +# - Case sensitivity: yes +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.ObjectMemory.mem.inst.visu.gaussians.position = false + + +# ArmarX.ObjectMemory.mem.inst.visu.gaussians.positionDisplaced: Displace center orientation (co)variance circle arrows along their rotation axis. +# Attributes: +# - Default: false +# - Case sensitivity: yes +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.ObjectMemory.mem.inst.visu.gaussians.positionDisplaced = false + + +# ArmarX.ObjectMemory.mem.inst.visu.gaussians.positionScale: Scaling of pose gaussians (orientation part). +# Attributes: +# - Default: 100 +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.inst.visu.gaussians.positionScale = 100 + + # ArmarX.ObjectMemory.mem.inst.visu.inGlobalFrame: If true, show global poses. If false, show poses in robot frame. # Attributes: # - Default: true @@ -550,6 +479,31 @@ # ArmarX.ObjectMemory.mem.inst.visu.oobbs = false +# ArmarX.ObjectMemory.mem.inst.visu.predictions.linear.show: Show arrows linearly predicting object positions. +# Attributes: +# - Default: false +# - Case sensitivity: yes +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.ObjectMemory.mem.inst.visu.predictions.linear.show = false + + +# ArmarX.ObjectMemory.mem.inst.visu.predictions.linear.timeOffset: The offset (in seconds) to the current time to make predictions for. +# Attributes: +# - Default: 1 +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.inst.visu.predictions.linear.timeOffset = 1 + + +# ArmarX.ObjectMemory.mem.inst.visu.predictions.linear.timeWindow: The time window (in seconds) into the past to perform the regression on. +# Attributes: +# - Default: 2 +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.inst.visu.predictions.linear.timeWindow = 2 + + # ArmarX.ObjectMemory.mem.inst.visu.useArticulatedModels: Prefer articulated object models if available. # Attributes: # - Default: true @@ -559,6 +513,158 @@ # ArmarX.ObjectMemory.mem.inst.visu.useArticulatedModels = true +# ArmarX.ObjectMemory.mem.ltm..buffer.storeFreq: Frequency to store the buffer to the LTM in Hz. +# Attributes: +# - Default: 10 +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.ltm..buffer.storeFreq = 10 + + +# ArmarX.ObjectMemory.mem.ltm.depthImageExtractor.Enabled: +# Attributes: +# - Default: true +# - Case sensitivity: yes +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.ObjectMemory.mem.ltm.depthImageExtractor.Enabled = true + + +# ArmarX.ObjectMemory.mem.ltm.enabled: +# Attributes: +# - Default: false +# - Case sensitivity: yes +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.ObjectMemory.mem.ltm.enabled = false + + +# ArmarX.ObjectMemory.mem.ltm.exrConverter.Enabled: +# Attributes: +# - Default: true +# - Case sensitivity: yes +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.ObjectMemory.mem.ltm.exrConverter.Enabled = true + + +# ArmarX.ObjectMemory.mem.ltm.imageExtractor.Enabled: +# Attributes: +# - Default: true +# - Case sensitivity: yes +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.ObjectMemory.mem.ltm.imageExtractor.Enabled = true + + +# ArmarX.ObjectMemory.mem.ltm.memFreqFilter.Enabled: +# Attributes: +# - Default: false +# - Case sensitivity: yes +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.ObjectMemory.mem.ltm.memFreqFilter.Enabled = false + + +# ArmarX.ObjectMemory.mem.ltm.memFreqFilter.WaitingTime: Waiting time in MS after each LTM update. +# Attributes: +# - Default: -1 +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.ltm.memFreqFilter.WaitingTime = -1 + + +# ArmarX.ObjectMemory.mem.ltm.pngConverter.Enabled: +# Attributes: +# - Default: true +# - Case sensitivity: yes +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.ObjectMemory.mem.ltm.pngConverter.Enabled = true + + +# ArmarX.ObjectMemory.mem.ltm.sizeToCompressDataInMegaBytes: The size in MB to compress away the current export. Exports are numbered (lower number means newer). +# Attributes: +# - Default: 1024 +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.ltm.sizeToCompressDataInMegaBytes = 1024 + + +# ArmarX.ObjectMemory.mem.ltm.snapEqFilter.Enabled: +# Attributes: +# - Default: false +# - Case sensitivity: yes +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.ObjectMemory.mem.ltm.snapEqFilter.Enabled = false + + +# ArmarX.ObjectMemory.mem.ltm.snapEqFilter.MaxWaitingTime: Max Waiting time in MS after each Entity update. +# Attributes: +# - Default: -1 +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.ltm.snapEqFilter.MaxWaitingTime = -1 + + +# ArmarX.ObjectMemory.mem.ltm.snapFreqFilter.Enabled: +# Attributes: +# - Default: false +# - Case sensitivity: yes +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.ObjectMemory.mem.ltm.snapFreqFilter.Enabled = false + + +# ArmarX.ObjectMemory.mem.ltm.snapFreqFilter.WaitingTime: Waiting time in MS after each Entity update. +# Attributes: +# - Default: -1 +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.ltm.snapFreqFilter.WaitingTime = -1 + + +# ArmarX.ObjectMemory.mem.ltm.storagepath: The path to the memory storage (the memory will be stored in a seperate subfolder). +# Attributes: +# - Default: Default value not mapped. +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.ltm.storagepath = Default value not mapped. + + +# ArmarX.ObjectMemory.mem.robot_state.Memory: +# Attributes: +# - Default: RobotState +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.robot_state.Memory = RobotState + + +# ArmarX.ObjectMemory.mem.robot_state.descriptionSegment: +# Attributes: +# - Default: Description +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.robot_state.descriptionSegment = Description + + +# ArmarX.ObjectMemory.mem.robot_state.localizationSegment: +# Attributes: +# - Default: Localization +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.robot_state.localizationSegment = Localization + + +# ArmarX.ObjectMemory.mem.robot_state.proprioceptionSegment: +# Attributes: +# - Default: Proprioception +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectMemory.mem.robot_state.proprioceptionSegment = Proprioception + + # ArmarX.ObjectMemory.mns.MemoryNameSystemEnabled: Whether to use (and depend on) the Memory Name System (MNS). # Set to false to use this memory as a stand-alone. # Attributes: @@ -577,28 +683,28 @@ # ArmarX.ObjectMemory.mns.MemoryNameSystemName = MemoryNameSystem -# ArmarX.ObjectMemory.tpc.pub.DebugObserver: Name of the `DebugObserver` topic to publish data to. +# ArmarX.ObjectMemory.prediction.TimeWindow: Duration of time window into the past to use for predictions when requested via the PredictingMemoryInterface (in seconds). # Attributes: -# - Default: DebugObserver +# - Default: 2 # - Case sensitivity: yes # - Required: no -# ArmarX.ObjectMemory.tpc.pub.DebugObserver = DebugObserver +# ArmarX.ObjectMemory.prediction.TimeWindow = 2 -# ArmarX.ObjectMemory.tpc.pub.MemoryListener: Name of the `MemoryListener` topic to publish data to. +# ArmarX.ObjectMemory.robotName: # Attributes: -# - Default: MemoryUpdates +# - Default: Armar6 # - Case sensitivity: yes # - Required: no -# ArmarX.ObjectMemory.tpc.pub.MemoryListener = MemoryUpdates +# ArmarX.ObjectMemory.robotName = Armar6 -# ArmarX.ObjectMemory.tpc.sub.MemoryListener: Name of the `MemoryListener` topic to subscribe to. +# ArmarX.ObjectMemory.tpc.pub.DebugObserver: Name of the `DebugObserver` topic to publish data to. # Attributes: -# - Default: MemoryUpdates +# - Default: DebugObserver # - Case sensitivity: yes # - Required: no -# ArmarX.ObjectMemory.tpc.sub.MemoryListener = MemoryUpdates +# ArmarX.ObjectMemory.tpc.pub.DebugObserver = DebugObserver # ArmarX.ObjectMemory.tpc.sub.ObjectPoseTopic: Name of the `ObjectPoseTopic` topic to subscribe to. diff --git a/scenarios/ArMemObjectMemory/config/ObjectPoseClientExample.cfg b/scenarios/ArMemObjectMemory/config/ObjectPoseClientExample.cfg index f75bad15e903fd399e990eb38dce28887c537d98..e64f75326949fb3263f378a19067aa2b8f85c00d 100644 --- a/scenarios/ArMemObjectMemory/config/ObjectPoseClientExample.cfg +++ b/scenarios/ArMemObjectMemory/config/ObjectPoseClientExample.cfg @@ -18,7 +18,7 @@ # ArmarX.ApplicationName = "" -# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx) +# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_CONFIG_DIR is set, the cache path will be made relative to ARMARX_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${ARMARX_WORKSPACE}/armarx_config) # Attributes: # - Default: mongo/.cache # - Case sensitivity: yes @@ -92,6 +92,14 @@ # ArmarX.LoggingGroup = "" +# ArmarX.ObjectPoseClientExample.ArVizStorageName: Name of the ArViz storage +# Attributes: +# - Default: ArVizStorage +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectPoseClientExample.ArVizStorageName = ArVizStorage + + # ArmarX.ObjectPoseClientExample.ArVizTopicName: Name of the ArViz topic # Attributes: # - Default: ArVizTopic @@ -142,6 +150,22 @@ # ArmarX.ObjectPoseClientExample.ObjectName = "" +# ArmarX.ObjectPoseClientExample.predictions.NumberPerObject: How many predictions with increasing time offsets to make per object. +# Attributes: +# - Default: 5 +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectPoseClientExample.predictions.NumberPerObject = 5 + + +# ArmarX.ObjectPoseClientExample.predictions.TimeIncrement: The size of the prediction time offset increment in milliseconds. +# Attributes: +# - Default: 200 +# - Case sensitivity: yes +# - Required: no +# ArmarX.ObjectPoseClientExample.predictions.TimeIncrement = 200 + + # ArmarX.RedirectStdout: Redirect std::cout and std::cerr to ArmarXLog # Attributes: # - Default: true diff --git a/scenarios/ArMemObjectMemory/config/ObjectPoseProviderExample.cfg b/scenarios/ArMemObjectMemory/config/ObjectPoseProviderExample.cfg index 76fbf317102eb56ab01bfd0037544c69f85c6c27..5cb44d32cf1e0a1d8fea853e5b8c07603c4a0c6f 100644 --- a/scenarios/ArMemObjectMemory/config/ObjectPoseProviderExample.cfg +++ b/scenarios/ArMemObjectMemory/config/ObjectPoseProviderExample.cfg @@ -18,7 +18,7 @@ # ArmarX.ApplicationName = "" -# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx) +# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_CONFIG_DIR is set, the cache path will be made relative to ARMARX_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${ARMARX_WORKSPACE}/armarx_config) # Attributes: # - Default: mongo/.cache # - Case sensitivity: yes diff --git a/scenarios/ArMemObjectMemory/config/RemoteGuiProviderApp.cfg b/scenarios/ArMemObjectMemory/config/RemoteGuiProviderApp.cfg index 4fd690cefd94559b207493cf40e346a3e47f3b12..4b6abea40d72afd7d313ee47a9b191f3b26de30d 100644 --- a/scenarios/ArMemObjectMemory/config/RemoteGuiProviderApp.cfg +++ b/scenarios/ArMemObjectMemory/config/RemoteGuiProviderApp.cfg @@ -18,7 +18,7 @@ # ArmarX.ApplicationName = "" -# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx) +# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_CONFIG_DIR is set, the cache path will be made relative to ARMARX_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${ARMARX_WORKSPACE}/armarx_config) # Attributes: # - Default: mongo/.cache # - Case sensitivity: yes diff --git a/scenarios/ArViz/config/ArVizStorage.cfg b/scenarios/ArViz/config/ArVizStorage.cfg index 30b8ea5904d318cf689370e81d3d3a7c47d07a68..302ac28c37dd28de3e68fb4fe4c2174faa4ec3bf 100644 --- a/scenarios/ArViz/config/ArVizStorage.cfg +++ b/scenarios/ArViz/config/ArVizStorage.cfg @@ -27,7 +27,7 @@ # ArmarX.ArVizStorage.EnableProfiling = false -# ArmarX.ArVizStorage.HistoryPath: Destination path where the history are serialized to +# ArmarX.ArVizStorage.HistoryPath: Destination path where the history is serialized to # Attributes: # - Default: RobotAPI/ArVizStorage # - Case sensitivity: yes diff --git a/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.cpp b/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.cpp index 5c86b2dda49248a4148b5f3c83785272a94789f9..e838c4e7737fa9aa06a911b524e8f1b134ba704a 100644 --- a/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.cpp +++ b/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.cpp @@ -46,8 +46,10 @@ namespace armarx } HandUnitWidget::HandUnitWidget() : - handName("NOT SET YET"), - handUnitProxyName(""), + leftHandName("NOT SET YET"), + rightHandName("NOT SET YET"), + leftHandUnitProxyName(""), + rightHandUnitProxyName(""), setJointAnglesFlag(false) { // init gui @@ -60,7 +62,8 @@ namespace armarx void HandUnitWidget::onInitComponent() { - usingProxy(handUnitProxyName); + usingProxy(leftHandUnitProxyName); + usingProxy(rightHandUnitProxyName); //usingTopic(handName + "State"); //ARMARX_WARNING << "Listening on Topic: " << handName + "State"; } @@ -71,19 +74,19 @@ namespace armarx jointAngleUpdateTask->start(); updateInfoTimer->start(50); - handUnitProxy = getProxy<HandUnitInterfacePrx>(handUnitProxyName); - handName = handUnitProxy->getHandName(); + leftHandUnitProxy = getProxy<HandUnitInterfacePrx>(leftHandUnitProxyName); + leftHandName = leftHandUnitProxy->getHandName(); // @@@ In simulation hand is called 'Hand L'/'Hand R'. On 3b Hand is called 'TCP R' - if (handName != "Hand L" && handName != "Hand R" && handName != "TCP L" && handName != "TCP R") + if (leftHandName != "Hand L" && leftHandName != "Hand R" && leftHandName != "TCP L" && leftHandName != "TCP R") { //QMessageBox::warning(NULL, "Hand not supported", QString("Hand with name \"") + QString::fromStdString(handName) + " \" is not suppored."); - ARMARX_WARNING << "Hand with name \"" << handName << "\" is not supported."; + ARMARX_WARNING << "Hand with name \"" << leftHandName << "\" is not supported."; } //ui.labelInfo->setText(QString::fromStdString(handUnitProxyName + " :: " + handName)); - SingleTypeVariantListPtr preshapeStrings = SingleTypeVariantListPtr::dynamicCast(handUnitProxy->getShapeNames()); + SingleTypeVariantListPtr preshapeStrings = SingleTypeVariantListPtr::dynamicCast(leftHandUnitProxy->getShapeNames()); QStringList list; int preshapeCount = preshapeStrings->getSize(); @@ -121,7 +124,7 @@ namespace armarx void HandUnitWidget::configured() { - handUnitProxyName = dialog->proxyFinder->getSelectedProxyName().toStdString(); + leftHandUnitProxyName = dialog->proxyFinder->getSelectedProxyName().toStdString(); } void HandUnitWidget::preshapeHand() @@ -131,7 +134,7 @@ namespace armarx void HandUnitWidget::setJointAngles() { - if (!handUnitProxy) + if (!leftHandUnitProxy) { ARMARX_WARNING << "invalid proxy"; return; @@ -146,7 +149,7 @@ namespace armarx NameValueMap ja; - if (handName == "Hand L" || handName == "TCP L") + if (leftHandName == "Hand L" || leftHandName == "TCP L") { ja["Hand Palm 2 L"] = ui.horizontalSliderPalm->value() * M_PI / 180; ja["Index L J0"] = ui.horizontalSliderIndexJ0->value() * M_PI / 180; @@ -161,7 +164,7 @@ namespace armarx ja["Pinky L J0"] = rinkyValue; ja["Pinky L J1"] = rinkyValue; } - else if (handName == "Hand R" || handName == "TCP R") + else if (leftHandName == "Hand R" || leftHandName == "TCP R") { ja["Hand Palm 2 R"] = ui.horizontalSliderPalm->value() * M_PI / 180; ja["Index R J0"] = ui.horizontalSliderIndexJ0->value() * M_PI / 180; @@ -178,10 +181,10 @@ namespace armarx } else { - ARMARX_WARNING << "Hand with name \"" << handName << "\" is not supported."; + ARMARX_WARNING << "Hand with name \"" << leftHandName << "\" is not supported."; } - handUnitProxy->setJointAngles(ja); + leftHandUnitProxy->setJointAngles(ja); } void HandUnitWidget::requestSetJointAngles() @@ -211,25 +214,25 @@ namespace armarx void HandUnitWidget::updateInfoLabel() { - ui.labelInfo->setText(QString::fromStdString(handUnitProxyName + " :: " + handName + " State: " + handUnitProxy->describeHandState())); + ui.labelInfo->setText(QString::fromStdString(leftHandUnitProxyName + " :: " + leftHandName + " State: " + leftHandUnitProxy->describeHandState())); } void HandUnitWidget::setPreshape(std::string preshape) { ARMARX_INFO << "Setting new hand shape: " << preshape; - handUnitProxy->setShape(preshape); + leftHandUnitProxy->setShape(preshape); } void HandUnitWidget::loadSettings(QSettings* settings) { - handUnitProxyName = settings->value("handUnitProxyName", QString::fromStdString(handUnitProxyName)).toString().toStdString(); - handName = settings->value("handName", QString::fromStdString(handName)).toString().toStdString(); + leftHandUnitProxyName = settings->value("handUnitProxyName", QString::fromStdString(leftHandUnitProxyName)).toString().toStdString(); + leftHandName = settings->value("handName", QString::fromStdString(leftHandName)).toString().toStdString(); } void HandUnitWidget::saveSettings(QSettings* settings) { - settings->setValue("handUnitProxyName", QString::fromStdString(handUnitProxyName)); - settings->setValue("handName", QString::fromStdString(handName)); + settings->setValue("handUnitProxyName", QString::fromStdString(leftHandUnitProxyName)); + settings->setValue("handName", QString::fromStdString(leftHandName)); } diff --git a/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.h b/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.h index 2e7968738f29b200a0b5bf14f2f5358024762943..1b6420ccd9682bb073daac76e935744577e38982 100644 --- a/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.h +++ b/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.h @@ -130,11 +130,14 @@ namespace armarx Ui::HandUnitGuiPlugin ui; private: - std::string handName; + std::string leftHandName; + std::string rightHandName; //std::string preshapeName; - std::string handUnitProxyName; - HandUnitInterfacePrx handUnitProxy; + std::string leftHandUnitProxyName; + std::string rightHandUnitProxyName; + HandUnitInterfacePrx leftHandUnitProxy; + HandUnitInterfacePrx rightHandUnitProxy; //QPointer<QWidget> __widget; QPointer<HandUnitConfigDialog> dialog; diff --git a/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.ui b/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.ui index bda4f4ae305f68c0b8b31a63850f6b8e79e07fdd..7f9fbdc671eec73b87cae64033603a4bc934043c 100644 --- a/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.ui +++ b/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.ui @@ -19,239 +19,305 @@ <property name="windowTitle"> <string>Form</string> </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="1" column="3"> - <widget class="Line" name="line"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - </widget> - </item> - <item row="2" column="1" colspan="7"> - <widget class="QFrame" name="frame"> - <property name="frameShape"> - <enum>QFrame::StyledPanel</enum> - </property> - <property name="frameShadow"> - <enum>QFrame::Raised</enum> - </property> - <layout class="QGridLayout" name="gridLayout_2"> - <item row="7" column="0"> - <widget class="QLabel" name="label_8"> - <property name="text"> - <string>Rinky</string> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>Thumb J1</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QSlider" name="horizontalSliderThumbJ1"> - <property name="maximum"> - <number>90</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item row="7" column="1"> - <widget class="QSlider" name="horizontalSliderRinky"> - <property name="maximum"> - <number>90</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item row="6" column="0"> - <widget class="QLabel" name="label_7"> - <property name="text"> - <string>Middle J1</string> - </property> - </widget> - </item> - <item row="5" column="0"> - <widget class="QLabel" name="label_6"> - <property name="text"> - <string>Middle J0</string> - </property> - </widget> - </item> - <item row="4" column="0"> - <widget class="QLabel" name="label_5"> - <property name="text"> - <string>Index J1</string> - </property> - </widget> - </item> - <item row="6" column="1"> - <widget class="QSlider" name="horizontalSliderMiddleJ1"> - <property name="maximum"> - <number>90</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item row="5" column="1"> - <widget class="QSlider" name="horizontalSliderMiddleJ0"> - <property name="maximum"> - <number>90</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QSlider" name="horizontalSliderThumbJ0"> - <property name="maximum"> - <number>90</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>Thumb J0</string> - </property> - </widget> - </item> - <item row="3" column="0"> - <widget class="QLabel" name="label_4"> - <property name="text"> - <string>Index J0</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QSlider" name="horizontalSliderPalm"> - <property name="maximum"> - <number>90</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item row="3" column="1"> - <widget class="QSlider" name="horizontalSliderIndexJ0"> - <property name="maximum"> - <number>90</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item row="4" column="1"> - <widget class="QSlider" name="horizontalSliderIndexJ1"> - <property name="maximum"> - <number>90</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item row="3" column="2" rowspan="2"> - <widget class="QPushButton" name="buttonSetJointAngles"> - <property name="maximumSize"> - <size> - <width>50</width> - <height>16777215</height> - </size> - </property> - <property name="text"> - <string>Set</string> - </property> - </widget> - </item> - <item row="0" column="0"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Palm</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item row="1" column="7"> - <widget class="QPushButton" name="buttonRelaxHand"> - <property name="text"> - <string>Relax</string> - </property> - </widget> - </item> - <item row="1" column="5"> - <widget class="QPushButton" name="buttonCloseThumb"> - <property name="text"> - <string>Thumb</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QComboBox" name="comboPreshapes"/> - </item> - <item row="1" column="2"> - <widget class="QPushButton" name="buttonPreshape"> - <property name="maximumSize"> - <size> - <width>100</width> - <height>16777215</height> - </size> - </property> - <property name="text"> - <string>Preshape</string> - </property> - </widget> - </item> - <item row="1" column="6"> - <widget class="QPushButton" name="buttonCloseHand"> - <property name="text"> - <string>Close</string> - </property> - </widget> - </item> - <item row="1" column="4"> - <widget class="QPushButton" name="buttonOpenHand"> - <property name="text"> - <string>Open</string> - </property> - </widget> - </item> - <item row="0" column="1" colspan="7"> - <widget class="QLabel" name="labelInfo"> - <property name="maximumSize"> - <size> - <width>16777215</width> - <height>20</height> - </size> - </property> - <property name="font"> - <font> - <weight>75</weight> - <bold>true</bold> - </font> - </property> - <property name="text"> - <string><Info Here></string> - </property> - </widget> - </item> - </layout> + <widget class="Line" name="lineLeftHand"> + <property name="geometry"> + <rect> + <x>146</x> + <y>35</y> + <width>16</width> + <height>25</height> + </rect> + </property> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + </widget> + <widget class="QFrame" name="frameLeftHand"> + <property name="geometry"> + <rect> + <x>9</x> + <y>66</y> + <width>230</width> + <height>321</height> + </rect> + </property> + <property name="frameShape"> + <enum>QFrame::StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <layout class="QGridLayout" name="gridLayout_2"/> + </widget> + <widget class="QComboBox" name="comboLeftHandPreshapes"> + <property name="geometry"> + <rect> + <x>9</x> + <y>35</y> + <width>60</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QPushButton" name="buttonPreshapeLeftHand"> + <property name="geometry"> + <rect> + <x>71</x> + <y>35</y> + <width>80</width> + <height>25</height> + </rect> + </property> + <property name="maximumSize"> + <size> + <width>100</width> + <height>16777215</height> + </size> + </property> + <property name="text"> + <string>Preshape</string> + </property> + </widget> + <widget class="QPushButton" name="buttonOpenLeftHand"> + <property name="geometry"> + <rect> + <x>157</x> + <y>35</y> + <width>50</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Open</string> + </property> + </widget> + <widget class="QLabel" name="labelInfoLeftHand"> + <property name="geometry"> + <rect> + <x>9</x> + <y>9</y> + <width>85</width> + <height>17</height> + </rect> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>20</height> + </size> + </property> + <property name="font"> + <font> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string><Info Here></string> + </property> + </widget> + <widget class="QFrame" name="frameRightHand"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="geometry"> + <rect> + <x>330</x> + <y>66</y> + <width>230</width> + <height>321</height> + </rect> + </property> + <property name="frameShape"> + <enum>QFrame::StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + </widget> + <widget class="Line" name="line"> + <property name="geometry"> + <rect> + <x>310</x> + <y>0</y> + <width>20</width> + <height>401</height> + </rect> + </property> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + </widget> + <widget class="QPushButton" name="buttonSetLeftHandJointAngles"> + <property name="geometry"> + <rect> + <x>250</x> + <y>215</y> + <width>50</width> + <height>25</height> + </rect> + </property> + <property name="maximumSize"> + <size> + <width>50</width> + <height>16777215</height> + </size> + </property> + <property name="text"> + <string>Set</string> + </property> + </widget> + <widget class="QPushButton" name="buttonSetRightHandJointAngles"> + <property name="geometry"> + <rect> + <x>570</x> + <y>215</y> + <width>50</width> + <height>25</height> + </rect> + </property> + <property name="maximumSize"> + <size> + <width>50</width> + <height>16777215</height> + </size> + </property> + <property name="text"> + <string>Set</string> + </property> + </widget> + <widget class="QPushButton" name="buttonCloseLeftHand"> + <property name="geometry"> + <rect> + <x>209</x> + <y>35</y> + <width>50</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Close</string> + </property> + </widget> + <widget class="QPushButton" name="buttonRelaxLeftHand"> + <property name="geometry"> + <rect> + <x>261</x> + <y>35</y> + <width>50</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Relax</string> + </property> + </widget> + <widget class="QComboBox" name="comboRightHandPreshapes"> + <property name="geometry"> + <rect> + <x>330</x> + <y>35</y> + <width>60</width> + <height>25</height> + </rect> + </property> + </widget> + <widget class="QPushButton" name="buttonOpenRightHand"> + <property name="geometry"> + <rect> + <x>478</x> + <y>35</y> + <width>50</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Open</string> + </property> + </widget> + <widget class="QPushButton" name="buttonPreshapeRightHand"> + <property name="geometry"> + <rect> + <x>392</x> + <y>35</y> + <width>80</width> + <height>25</height> + </rect> + </property> + <property name="maximumSize"> + <size> + <width>100</width> + <height>16777215</height> + </size> + </property> + <property name="text"> + <string>Preshape</string> + </property> + </widget> + <widget class="QPushButton" name="buttonCloseRightHand"> + <property name="geometry"> + <rect> + <x>530</x> + <y>35</y> + <width>50</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Close</string> + </property> + </widget> + <widget class="QPushButton" name="buttonRelaxRightHand"> + <property name="geometry"> + <rect> + <x>582</x> + <y>35</y> + <width>50</width> + <height>25</height> + </rect> + </property> + <property name="text"> + <string>Relax</string> + </property> + </widget> + <widget class="QLabel" name="labelInfoRightHand"> + <property name="geometry"> + <rect> + <x>330</x> + <y>9</y> + <width>85</width> + <height>17</height> + </rect> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>20</height> + </size> + </property> + <property name="font"> + <font> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string><Info Here></string> + </property> + </widget> + <widget class="Line" name="lineRightHand"> + <property name="geometry"> + <rect> + <x>467</x> + <y>35</y> + <width>16</width> + <height>25</height> + </rect> + </property> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + </widget> </widget> <resources/> <connections/>