Component parameterization

Introduction

Components in ArmarX are configured using properties. This page explains how property values can be passed to an application or component. The documentation on how to specify properties for applications and components can be found here: Properties

Property syntax

Each property consists of a key=value pair, that follow the convention

<DomainName>.<ComponentName>.<PropertyName>=value

where

  • <DomainName> is the domain of the component. For Ice properties the domain is Ice, for ArmarX properties, the domain is ArmarX, and for VisionX the domain is VisionX. The utilized domain is specified by the armarx::Application.
  • <ComponentName> is the name of the component. The name of the component is determined using armarx::Component::getDefaultName(). This name can be overridden by the application. Both DomainName and ComponentName are taken from the armarx::ComponentIdentifier. Usually ComponentName corresponds to the class name of the most derived class.
  • <PropertyName> is the name of the property.

Specifying properties

The properties can be specified on startup of an application either on command line or in a configuration file. Properties in the command line always overwrite properties in the configuration file.

Properties on command line

Properties can be specified in the command line using - -key=value

Properties in configuration file

A configuration file can be provided which contains an umlimited number of key=value pairs. The configuration file is specified with - -ArmarX.Config=filename on the command line.

Property Inheritance

Assuming an application consists of two or more component and most of them use or share the same properties, Property Inheritance can be used to set common properties. This way, defining the properties redundantly for each component can be avoided. Further more, property changes is simplified as well. Property inheritance can be specified via a reserved property with a namespace.

<DomainName>.<ComponentName>.inheritFrom = <namespace>

Example config:

    ArmarX.CommonProperties.FrameRate = 30
    ArmarX.CommonProperties.ColorMode = HSV
    ArmarX.CommonProperties.ShutterSpeed = 0.003
    ArmarX.CommonProperties.Aperture = 1.2
    ArmarX.CommonProperties.WhiteBalance = Auto
    ArmarX.CommonProperties.Metering = CenteredMean
    ArmarX.CommonProperties.Resolution = 640x480
    ArmarX.CommonProperties.CropFactor = 1.5

    VisionX.MyCapturer1.inheritFrom = ArmarX.CommonProperties
    VisionX.MyCapturer1.ColorMode = RGB

    VisionX.MyCapturer2.inheritFrom = ArmarX.CommonProperties
    VisionX.MyCapturer2.ShutterSpeed = 0.001

    VisionX.MyCapturer3.FrameRate = 60
    VisionX.MyCapturer3.inheritFrom = ArmarX.CommonProperties

The result is:

    ArmarX.CommonProperties.FrameRate = 30
    ...
    ...
    ArmarX.CommonProperties.CropFactor = 1.5

    VisionX.MyCapturer1.FrameRate = 30
    VisionX.MyCapturer1.ColorMode = RGB
    VisionX.MyCapturer1.ShutterSpeed = 0.003
    VisionX.MyCapturer1.Aperture = 1.2
    VisionX.MyCapturer1.WhiteBalance = Auto
    VisionX.MyCapturer1.Metering = CenteredMean
    VisionX.MyCapturer1.Resolution = 640x480
    VisionX.MyCapturer1.CropFactor = 1.5

    VisionX.MyCapturer2.FrameRate = 30
    VisionX.MyCapturer2.ColorMode = HSV
    VisionX.MyCapturer2.ShutterSpeed = 0.001
    VisionX.MyCapturer2.Aperture = 1.2
    VisionX.MyCapturer2.WhiteBalance = Auto
    VisionX.MyCapturer2.Metering = CenteredMean
    VisionX.MyCapturer2.Resolution = 640x480
    VisionX.MyCapturer2.CropFactor = 1.5

    VisionX.MyCapturer3.FrameRate = 60
    VisionX.MyCapturer3.ColorMode = HSV
    VisionX.MyCapturer3.ShutterSpeed = 0.003
    VisionX.MyCapturer3.Aperture = 1.2
    VisionX.MyCapturer3.WhiteBalance = Auto
    VisionX.MyCapturer3.Metering = CenteredMean
    VisionX.MyCapturer3.Resolution = 640x480
    VisionX.MyCapturer3.CropFactor = 1.5

Application Properties Overview

A list of all component and aplication properties can be found at: List of Application & Component Properties

Manually created properties documentation

Class CalibrationCreator
  • VisionX.CalibrationCreator.ImageProviderAdapterName: Name of the image provider that delivers the camera images.
  • VisionX.CalibrationCreator.RobotStateProxyName: Name of the robot state proxy used to obtain the current robot state.
  • VisionX.CalibrationCreator.HandFrameName: Name of the frame in the robot model that corresponds to the localized hand.
  • VisionX.CalibrationCreator.CameraFrameName: Name of the robot state frame of the primary camera
Class IEEE1394ImageProvider
  • VisionX.IEEE1394ImageProvider.CameraUIDs: Comma or space separated list of camera UIDs. If not set all cameras will be opened.
  • VisionX.IEEE1394ImageProvider.VideoMode: Defines the camera resolution.
    • 320x240
    • 640x480 (default)
    • 800x600
    • 768x576
    • 1024x768
    • 1280x960
    • 1600x1200
    • none
  • VisionX.IEEE1394ImageProvider.ColorMode: Specifies how image format of camera is interpreted and converted. Cameras may support only one color mode. Possible values:
    • gray-scale
    • rgb
    • bayer-pattern
    • bayer-pattern-to-rgb (default)
    • yuv411-to-rgb
  • VisionX.IEEE1394ImageProvider.BayerPatternType: Specifies the bayer pattern type. Required only if ColorMode uses a bayer pattern format. Possible values:
    • bayer-pattern-bg
    • bayer-pattern-gb
    • bayer-pattern-gr
    • bayer-pattern.rg (default)
  • VisionX.IEEE1394ImageProvider.FrameRate: Capture frame rate as float (default: 30fps)
  • VisionX.IEEE1394ImageProvider.Format7Mode: Enable or disable IEEE1394 format 7 mode (possible values: true, false (default)).
Class ImageSequenceProvider
  • VisionX.ImageSequenceProvider.PathLeft: Image directory of the left (base) camera.
  • VisionX.ImageSequenceProvider.PathRight: Image directory of the right camera. Leave this empty if stereo is not required.
Class KinectAndCameraCalibration
  • VisionX.KinectAndCameraCalibration.CameraImageProviderAdapterName: Ice Adapter name of the camera image provider.
  • VisionX.KinectAndCameraCalibration.KinectImageProviderAdapterName: Ice Adapter name of the Kinect image provider.
  • VisionX.KinectAndCameraCalibration.NumberOfImages: Number of images used for the calibration.
  • VisionX.KinectAndCameraCalibration.WaitingIntervalBetweenImages: Waiting time between captured images, in ms.
  • VisionX.KinectAndCameraCalibration.NumberOfRows: Number of rows on the calibration pattern.
  • VisionX.KinectAndCameraCalibration.NumberOfColumns: Number of columns on the calibration pattern.
  • VisionX.KinectAndCameraCalibration.PatternSquareSize: Size of the squares on the calibration pattern.
  • VisionX.KinectAndCameraCalibration.OutputFileName: Path to the file for saving the calibration.
Class ObjectLearningByPushing
  • VisionX.RobotHandLocalizationWithFingertips.ImageProviderAdapterName: Name of the image provider that delivers the camera images.
  • VisionX.RobotHandLocalizationWithFingertips.RobotStateProxyName: Name of the robot state proxy used to obtain the current robot state.
  • VisionX.RobotHandLocalizationWithFingertips.CameraFrameName: Name of the robot model frame of the primary camera
Class OpenNIImageProvider
  • VisionX.OpenNIImageProvider.CameraURI: The particular camera URI tha wanst to be addressed. If not set the first device on the USBus will be opened .
  • VisionX.OpenNIImageProvider.VideoMode: Defines the camera resolution.
    • 320x240 (default)
    • 640x480
  • VisionX.OpenNIImageProvider.ImageType: Specifies how image type is composed. Possible values:
    • rgb
    • PointsScan
    • ColoredPointsScan
  • VisionX.OpenNIImageProvider.FrameRate: Capture frame rate as float (default: 30fps)
Class RobotHandLocalizationWithFingertips
  • VisionX.RobotHandLocalizationWithFingertips.ImageProviderAdapterName: Name of the image provider that delivers the camera images.
  • VisionX.RobotHandLocalizationWithFingertips.RobotStateProxyName: Name of the robot state proxy used to obtain the current robot state.
  • VisionX.RobotHandLocalizationWithFingertips.HandFrameName: Name of the frame in the robot model that corresponds to the localized hand.
  • VisionX.RobotHandLocalizationWithFingertips.CameraFrameName: Name of the robot state frame of the primary camera
Class StereoCameraProvider
  • VisionX.StereoCameraProvider.CalibrationFile: The stereo calibration file of the stereo system.
Class VisualContactDetection
  • VisionX.VisualContactDetection.ImageProviderAdapterName: Name of the image provider that delivers the camera images.
  • VisionX.VisualContactDetection.RobotStateProxyName: Name of the robot state proxy used to obtain the current robot state.
  • VisionX.VisualContactDetection.HandFrameName: Name of the frame in the robot model that corresponds to the localized hand.
  • VisionX.VisualContactDetection.CameraFrameName: Name of the robot state frame of the primary camera