/DGBench

DGBench: an open-source, reproducible benchmark for robotic grasping in dynamic environments.

Primary LanguageCMIT LicenseMIT

DGBench: An Open-Source, Reproducible Benchmark for Dynamic Grasping

Paper available here

Motivation

The dynamic grasping benchmark was motivated by a desire to encourage reproducible evaluation of robot performance on dynamic grasping tasks. Existing methods for measuring dynamic grasping performance differ greatly in the type and difficulty of task. Some systems are tested with objects moving on predictable trajectories only. In other cases the object is moved randomly by a human, but object motion stops before the robot completes the grasping action. A need was identified for a system that enables repeatable evaluation of robot performance on various dynamic grasping tasks.

Design

The design presented consists of an XY motion platform that can move objects through arbitrary trajectories at various speeds. The system uses a CoreXY motion platform design that is described here. All parts in the design can be 3D printed or easily sourced.

The dynamic workspace platform is controlled by an Arduino running Grbl that interprets and executes g-code commands, in the same way a 3D printer or CNC machine would. This allows for precise control of the platform, and therefore the induced object motion.

Dynamic Workspace Design

Construction

Bill of Materials

Purchased Parts

The table below provides a link to an Australian distributor for all purchased parts used in the construction of the dynamic workspace. All parts can be substiuted for a similar product from an alternative source.

Part Name Specification Quantity Source
Arduino CNC Shield 1 https://www.makerstore.com.au/product/cnc-shield-no-drivers/
Arduino UNO 1 https://www.makerstore.com.au/product/arduino-compatible-uno-r3-with-usb-cable/
GT2 Timing Belt 5mm Wide 5m https://www.makerstore.com.au/product/gt2-2mm-timing-belt/
GT2 Timing Pulley, 20 tooth 2 https://www.makerstore.com.au/product/gt2-2mm-timing-pulley-20/
Linear Bearing Blocks SCS10UU 6 https://www.makerstore.com.au/product/bear-scs10uu/
Limit Switch 2 https://www.makerstore.com.au/product/micro-limit-switch/
Nema 17 Stepper Motor 560mN.m 2 https://www.makerstore.com.au/product/elec-nema17-b/
Rubber Sealed Bearing 5x11x4mm 16 https://plaig.com.au/product/5x11x4mm-bearing-rubber-seals-mr115-2rs/
Stepper Motor Driver DRV8825 2 https://www.makerstore.com.au/product/elec-drv8825/
10mm Diameter Smooth Rod 500mm long 4 https://www.makerstore.com.au/product/hard-rod-10/
12mm MDF Sheet 650x600mm 1
12mm MDF Sheet 260x260mm 1

Fastners

Part Name Length Quantity Use
M5 Socket Head 55mm 8 Idler Pulley Axles
M5 Countersunk 30mm 16 Mounts to Base
M5 Socket Head 15mm 24 Carriage to Bearing Blocks
M5 Nyloc Nut 20
M5 Washers 16 Idler Pulley Spacers
M3 Socket Head 15mm 12 Motor to Mounts, Limit Switch to Mounts
M3 Nut 4

Printed Parts

All parts were printed in PLA with 20% infill.

Part Name Quantity File Name
Motor Mount Left 1 cad/stls/StepperMount_Left.stl
Motor Mount Right 1 cad/stls/StepperMount_Right.stl
Idler Block Left 1 cad/stls/IdlerBlock_Left.stl
Idler Block Right 1 cad/stls/IdlerBlock_Right.stl
Y Carriage End Block 2 cad/stls/YAxisEndBlock.stl
Idler Pulley 8 cad/stls/IdlerPulley.stl
X Carriage 1 cad/stls/XCarriage.stl
Belt Clip 4 cad/stls/BeltClip.stl

Build Instructions

  1. Start by assembling the object platform support consisting of the X Carriage and two linear bearings.
  2. Attach remaining linear bearings to the Y Carriage End Blocks.
  3. Attach stepper motors to motor mounts.
  4. Insert bearings and idler pulleys into the Idler Blocks and Y Carriage End Blocks. Take note of idler pulley orientation in the provided CAD files.
  5. Assemble parts on smooth rods to form a free standing assembly on top of the MDF base sheet. Mark, drill, and bolt holes to permanently mount motor mounts and idler blocks.
  6. Attach limit switches to Motor Mount Left.
  7. Attach CNC shield to Arduino and insert stepper motor drivers into shield. A guide for general usage of the shield is available here.
  8. Complete wiring of stepper motors and limit switches into shield.

Firmware Installation

The Arduino should be flashed with the grbl firware in this repository. Changes to the grbl code for this project are contained in config.h, defaults.h, defaults_mobile_workspace.h. To upload to Arduino, use Arduino IDE to open workspace_firmware/grbl-master/grbl/examples/grblUpload/grblUpload.ino and upload to board.

ROS Control

ROS control is provided by running the dynamic_workspace_controller/scripts/ros_control.py node. This node advertises two services.

  1. /reset_workspace: Will reset the workspace to a home position cancelling the current motion.
  2. /run_workspace_trajectory: Run a workspace trajectory at a given speed.

Custom trajectories can be added to trajectory_shapes.py.

Example Experiment

We present an example experiment to evaluate the performance of various perception systems on a dynamic grasping task. More details are available in the associated publication.

The experiment procedure is as follows:

  1. The robot drives to a home position 500mm above the center of the workspace and the fingers are openned.
  2. Simulatenously, a visual servoing controller is enabled, and the dynamic workspace begins a trajectory.
  3. The robot follows the actions of the controller until its fingers are closed, or the system loses tracking of the object.
  4. Once fingers are closed or task is abandoned, the hand is lifted from the workspace.
  5. Grasp success is evalued and the workspace and robot are reset.

For each perception system 20 trials were conducted at each speed. A set of 20 random trajectories was generated and used for each perception system and speed. The figure below presents 3 example trajectories from the set of 20.

Trajectories

For each trial, the time between the robot starting controller movement (step 2 in the above procedure) and the robot closing its fingers or losing tracking of the object was recorded. We also record the result of the trial categorised into one of three options:

  1. Success: The object is succesfully grasped and lifted from the workspace.
  2. Perception Failure: The object left the field of view of the perception system and tracking was lost.
  3. Control Failure: The system maintained tracking, but failure resulted from poor grasp pose synthesis or control.

The results below demonstrate the improved performance of a dual hand perception system compared to a conventional wrist mounted configuration. In particular, the perception failure rate is signficantly reduced. Results