The vacuum zone manipulator

The gripper.json feature let you customize a gripper with one or more vacuum channels.

How it works

In order to have this functionality working, the position and the dimensions of the bounding rectangle should be defined for each vacuum zone as well as the digital output channels that control the vacuum valves and optionally the compressed air used at release.

note

See complete example further down

See complete example further down

The file structure:

name: name of the gripper

description: a short description of the gripper

picture: an optional picture in PNG format, encoded as a base64 string

dimensions:

properties:

tcp: the tool center point (TCP) of the gripper as [x, y, z, rx, ry, rz]

cog: the center of gravity (COG) of the empty gripper as [x, y, z]

zones: definition of each individually controllable vacuum area

configurations: list of valid combinations of vacuum areas that can be used together 

note

Lengths are specified in millimeters, weight in kilograms.

Lengths are specified in millimeters, weight in kilograms.

The gripper.json file

{
  "name": "4-channel gripper",
  "description": "test gripper for multiple product sizes",
  "dimensions": {
    "width": 100,
    "length": 200,
    "height": 100,
    "weight": 1.85,
    "foamHeight": 15
  },
  "properties": {
    "coveragePercent": 40,
    "edgeAlignment": false
  },
  "tcp": [0, 0, 100, 0, 0, 0],
  "cog": [0, 0, 0],
  "zones": [
    {
      "id": 1,
      "x": 0,
      "y": -50,
      "width": 100,
      "length": 100,
      "grip": {
        "type": "standard",
        "channel": 0,
        "inverse": false
      },
      "release": {
        "type": "standard",
        "channel": 1
      }
    },
    {
      "id": 2,
      "x": 0,
      "y": 50,
      "width": 100,
      "length": 100,
      "grip": {
        "type": "standard",
        "channel": 2
      },
      "release": {
        "type": "standard",
        "channel": 3
      }
    }
  ],
  "configurations": [ 
    [1,2], [1], [2] 
  ]
}
note

NOTE: Name the created json file “gripper.json“

NOTE: Name the created json file “gripper.json“

Example

The following diagram is an example of a 4-channel suction-cup gripper with its corresponding gripper.json file. The different colors indicate different groups of suction cups that can be controlled together.

 Gripper.json file

{
  "name": "4-channel gripper",
  "description": "test gripper for multiple product sizes"
  "dimensions": {
    "width": 400,
    "length": 200,
    "height": 150,
    "weight": 1.9,
    "foamHeight": 15
  },
  "properties": {
    "coveragePercent": 51,
    "edgeAlignment": false
  },
  "tcp": [0, 0, 150, 0, 0, 0],
  "cog": [0, 0, 0],
  "zones": [
    {
      "id": 1,
      "x": 0,
      "y": 0,
      "width": 110,
      "length": 180,
      "grip": {
        "type": "standard",
        "channel": 0,
        "inverse": false
      },
      "release": {
        "type": "standard",
        "channel": 1
      }
    },
    {
      "id": 2,
      "x": -110,
      "y": 0,
      "width": 50,
      "length": 180,
      "grip": {
        "type": "standard",
        "channel": 2
      },
      "release": {
        "type": "standard",
        "channel": 3
      }
    },
    {
      "id": 3,
      "x": 110,
      "y": 0,
      "width": 50,
      "length": 180,
      "grip": {
        "type": "standard",
        "channel": 4
      },
      "release": {
        "type": "standard",
        "channel": 5
      }
    },
    {
      "id": 4,
      "x": 0,
      "y": 0,
      "width": 380,
      "length": 50,
      "grip": {
        "type": "standard",
        "channel": 6
      },
      "release": {
        "type": "standard",
        "channel": 7
      }
    }
  ],
  "configurations": [ 
    [1,2,3,4], [4], [1,2,3], [1,2], [2,3], [1], [2], [3] 
  ]
}

Copy the above code and use as a template. Name the created file “gripper.json“

note

Note: TCP settings are optional and may not be included in older gripper.json files. If your gripper is mounted with a position/rotation offset, make sure that the TCP offset is properly set.

Note: TCP settings are optional and may not be included in older gripper.json files. If your gripper is mounted with a position/rotation offset, make sure that the TCP offset is properly set.