grasp
power-grasp

A module that, given a 3D point cloud representing an object, finds the best position on the object where the hand should be placed to obtain a successful power grasp. More...

A module that, given a 3D point cloud representing an object, finds the best position on the object where the hand should be placed to obtain a successful power grasp.

For further information:

I.Gori, U. Pattacini, V. Tikhanoff, G. Metta Ranking the Good Points: A Comprehensive Method for Humanoid Robots to Grasp Unknown Objects In Proceedings of IEEE International Conference on Advanced Robotics (ICAR), 2013.

Description

This module, given a set of 3D points, returns the best end-effector position and orientation that will lead to a successful grasp. It commands directly to the actionsRenderingEngine module, which is equipped with a dedicated function called powerGrasp. It usually takes the 3D point cloud from the object-reconstruction module.

Commands:

The commands sent as bottles to the module port /<modName>/rpc are described in the following:

HELP
format: [help]
action: a list of all the possible commands to send to the rpc port is printed.

SET_VISUALIZATION
format: [set visualization param]
action: if param is set to on, a 3D viewer containing the reconstructed point cloud along with the chosen end-effector position and orientation is depicted. Otherwise this functionality is disabled.

SET_WINDOW
format: [set param1 param2]
action: param1 can be x, y, w or h, and it refers respectively to the x position, the y position, the width and the height of the 3D viewer. param2 has to be set to the value that is wanted to assign.

SET_TRAIN
format: [set train param]
action: if param is set to on, the module runs in training modality; this means that points will be chosen randomly and saved to a dedicated file for a later training stage.

SET_TESTSVM
format: [set testWithSVM param]
action: if param is set to on, the module uses the function learned through SVM, which associate a curvature to the successful probability of the grasp. Usually this parameter is set to off, as we already know the best curvature that should be chosen for the hand of the iCub.

SET_OFFSET
format: [set param1 x y z]
action: param1 can be offsetL, for the left arm, or offsetR, for the right arm. It sets an offset on the corresponding arm (represented by x, y and z), in case there is some error in the mapping between the eye and the arm.

SET_MODALITY
format: [set modality param]
action: param can be set to right, left, center or top. It imposes the corresponding area of the object from which candidate end-effector positions should be chosen.

SET_FILTER
format: [set filter param]
action: param can be set to on or off. It is usually set to on, as the stereo vision library provides noisy point clouds. A statistical outlier removal filter is usually needed to obtain clearer point clouds.

SET_WRITE
format: [set write param]
action: param can be set to on or off. If it is set to on, the current point cloud is saved in the path specified in the config file.

BLOCK
format: [block param]
action: param can be set to right or left. It is useful if it is wanted to force the iCub to use a specific arm. The arm can be unblocked using the command UNBLOCK.

UNBLOCK
format: [unblock param]
action: param can be set to right or left. It serves to unblock an arm that was previously blocked using the command BLOCK.

GRASP
format: [grasp (x y)] "wait"
action: the algorithm runs to find a good end-effector position and orientation, and sends such pose to the actionsRenderingEngine module, which executes the grasp. If the optional parameter wait is present, the grasp is computed and depicted but it is not executed. If then the user wants to execute the grasp, he has to use the command GO. Otherwise, to reset the computation, he can use the command DONT.

GO
format: [go]
action: if the computation of the grasp was successful but the grasp has not been executed yet because the wait command has been added to GRASP, go makes the robot execute the grasp.

DONT
format: [dont]
action: it resets all the information that has been previously computed. It is usually used when a grasp (x y) wait command has been sent, and the computed grasp is not satisfactory.

ISGRASPED
format: [isGrasped]
action: returns ACK if the grasp has been successfully executed by ARE, otherwise returns NACK.

Libraries

Ports Created

Parameters

The following are the options that are usually contained in the configuration file:

–name name

–robot robot

–nAngles nAngles

– radiusSearch radiusSearch

– numberOfBestPoints numberOfBestPoints

– curvature curvature

– handSize handSize

– fingerSize fingerSize

– path path

– fromFile fromFile

– useLearning useLearning

– x x

– y y

– w w

– h h

– disableRight disableRight

– disableLeft disableLeft

– offsetR offsetR

– offsetL offsetL

– outputDir outputDir

– lssvm

Tested OS

Windows, Linux

Author
Ilaria Gori