Skip to content

Latest commit

 

History

History
43 lines (26 loc) · 2.13 KB

File metadata and controls

43 lines (26 loc) · 2.13 KB

GraspGen Gripper Description

version: v.1.0.0

A gripper is specified by its unique name "gripper_name", which is an argument in the training script as well as the basename for the config files.

Each gripper need to have three assets defined

  1. YAML Config {gripper_name}.yaml
  2. Python Config {gripper_name}.py
  3. URDF for just the gripper

YAML Config

{gripper_name}.yaml has the following key variables used for data generation and training:

  • width: Distance between the fingers at its max joint angle in the open configuration
  • depth: Extents of the gripper along the z-axis, from base link frame to TCP frame
  • transform_offset_from_asset_to_graspgen_convention: Expressed as a list of translation and quaternion e.g. [[xyz],[xyzw]]

Our gripper definition follows the following convention shown below. The approach direction is the positive Z-axis while the gripper finger closing direction is along the X-axis.

If your gripper has a different convention, please use the transform_offset_from_asset_to_graspgen_convention variable to bring your gripper to this convention. The original URDF does not need to be modified.

Examples of the frames overlaid on the 3 gripper models we provided in the dataset (Suction, Robotiq 2f-140 and Franka-Panda) are shown below:

Python Config

The following variables and functions need to be defined in the python script {gripper_name}.py:

  • class GripperModel: Specifies how the collision and visual meshes of the gripper can be loaded from the gripper URDF
  • func load_control_points_for_visualization: Loads the control points needed for visualization in meshcat — func load_control_points: Loads the control points needed for applying training metrics

Optional: get_transform_from_base_link_to_tool_tcp: If this function is not specified, this is assumed to be a fixed positive Z-offset based on the depth value.

If you have feedback about this convetion, please add a GitHub issue!