Skip to content

Definition

Quick Access Poses helps to develop Programs faster. Define custom poses to make them easily accessible through the Control Panel.

Control panel

Create Quick Access Poses

Quick Access Poses are defined in ~/.dnb/data/quick_access_poses. Each needs a separate directory (e.g. ~/.dnb/data/quick_access_poses/example) containing a YAML file with the pose definition.

directory structure example

Structure

The following code shows the structure of a Quick Access Pose YAML file.

trajectory:   # list of poses
  - position?:  # list entry has to contain either 1. position and/or orientation
      x: float  #                                  2. joints
      y: float
      z: float
    orientation?:
      rz: float
      ry: float
      rx: float
  - joints?: float[]
precondition?:   # has to contain either 1. a position and/or orientation
  positon?:      #                       2. joints
    x: float
    y: float
    z: float
  position_tolerance?: float
  orientation?:
    rz: float
    ry: float
    rx: float
  orientation_tolerance?: float
  joints?: float[]
  joints_tolerance?: float
tcp?:
  translation:
    x: float
    y: float
    z: float
  rotation:
    rz: float
    ry: float
    rx: float
tooltip?: string   # tooltip shown if precondition is not fullfilled
image?: string   # name of the image file contained in the same directory as the yaml file
Fields marked with a ? are optional. The mark ? is just informative, please don't write it in the YAML file.

Trajectory

trajectory:   # list of poses
  - position?:  # list entry has to contain either 1. position and/or orientation
      x: float  #                                  2. joints
      y: float
      z: float
    orientation?:
      rz: float
      ry: float
      rx: float
  - joints?: float[]
In some cases moving directly to the target pose is not possible and therefore Quick Access Poses allows trajectories with several waypoints. Each waypoint can consist of

  1. position and/or orientation
  2. joints

If only a position is provided the orientation will stay as it is and vice versa. When using joints, the joints array should have as many entries as the robot has joints. Orientation and joints need to be set in radians.

Preconditions

precondition?:   # has to contain either a position or an orientation
  positon?:
    x: float
    y: float
    z: float
  position_tolerance?: float
  orientation?:
    rz: float
    ry: float
    rx: float
  orientation_tolerance?: float
  joints?: float[]
  joints_tolerance?: float
To ensure the robot is in a certain position before starting to move a precondition can be set. Preconditions need to have either

  1. position, orientation or both or
  2. joints

By default the robot needs to be inside a distance of 0.005 m for position and 0.005 rad for orientation/joints from the precondition pose. These values can be changed by setting the position_tolerance, the orientation_tolerance and the joints_tolerance fields. Orientation and joints need to be set in radians.

TCP

tcp?:
  translation:
    x: float
    y: float
    z: float
  rotation:
    rz: float
    ry: float
    rx: float
To ensure the robot is using a certain tcp the transformation of the tcp can be set. TCP needs to have a translation and a rotation. Setting a TCP is optional. When TCP is omitted, flange will be used as default value. Rotation needs to be set in radians.

Tool tip

tooltip?: string   # tool tip shown if precondition is not fulfilled
If preconditions are not fulfilled, a default tool tip is shown. To display a customized message the tool tip field can be set.

Image

image?: string   # name of the image file contained in the same directory as the YAML file
Each Quick Access Pose can have an image, which will be shown in the Control Panel. This can be achieved by adding an image to the directory of the Quick Access Pose and adding the filename to the image field of the YAML definition.