Grasp Plug-in provides two main functions; one is the grasp planning for multi-fingered hands and the other is the basic functions commonly used by other plug-ins. In the following, we will mainly explain the grasp planning function of this plug-in.
By using the bar entitled "=Planner=", the grasping posture can be planned.
For more detailed information, please refer Planner Bar Help .
The Grasp Plugin is for obtaining an appropriate position for the gripper for the purpose of grasping and setting and does not take into consideration how the entire arm will be moved. Use the PRM plugin to formulate a motion plan for the arm that does not interfere with the surrounding environment. Refer to PRM plug-in for details.
This plug-in uses a grasp planning algorithm where the bounding box models are used for both the hand grasping region and the object model. By using this plug-in, we can construct several grasping styles for multi-fingered hand such as the 3 fingered fingertip grasp, the 4 fingered fingertip grasp, and the enveloping grasp. Here, we call the bounding box expressing the grasping region as the Grasping Rectangular Convex (GRC). Also, we call the bounding box of the object model as the Obect Convex Polygon (OCP). By considering the geometrical relation between the GRC and the OCP, we can determine the approximate position/orientation of the palm. Then the final grasping posture is determined by using the random sampling of the palm position.
Also, we use the fast method for checking the force closure by using the ellipsoidal approximation of the friction cone. Here, since we also prepare the conventional method of force closure, you can use it. For more detailed information on the grasp planning algorithm, please see the references.
[1]Kensuke Harada, Kenji Kaneko, and Fumio Kanehiro, Fast Grasp Planning for Hand/Arm Systems Based on Convex Model, 2008 IEEE International Conference on Robotics and Automation, pp. 1162-1168, 2008.
[2]T. Tsuji, K. Harada, and K. Kaneko, Easy and Fast Evaluation of Grasp Stability by using Ellipsoidal Approximation of Friction Cone, Proc. of 2009 IEEE/RSJ Int. Conf. on Intelligent Robots and Systems,pp.1830-1837、2009.
[4]T. Tsuji, K. Harada, K. Kaneko, F. Kanehiro, and K. Maruyama, Grasp Planning for a Multifingered Hand with a Humanoid Robot, Journal of Robotics and Mechatronics, Vol.22 No.2, pp. 230-238, 2010.
This section describes how to prepare for the grasp planning stage when a new robot is introduced. HRP2JRL is used as an example of a robot model.
Edit the file “graspPlugin/RobotModels/HRP2JRL/HRP2.yaml” in a similar manner to that shown below. The meaning of each entry is explained on the right, after the “%” sign.
graspPluginSetting: name: HRP2 %Name of the Robot base: CHEST_JOINT1 %Base link used when IK is solved palm: RARM_JOINT5 %Wrist link used when IK is solved fingerEnds: [ RHAND_JOINT1, RHAND_JOINT4 ] %Finger-tip links prehensionList: [ prehension ] %File with reference postures for grasping (prehension.pos, prehension.prm), Multiple reference postures can be specified. armStandardPose: [0, 0, 0, -1.57, 0, 0] %Reference posture of the arm when IK is solved by iterative calculations(The Joint angle from the base to palm) fingerOpenPose: [0.78, -0.78, 0.78, -0.78, 0.78, -0.78] %Pose with the fingers opened to the maximum possible extent. interlink: [ [ RARM_JOINT6, 1.0 , RHAND_JOINT0, -1.0, RHAND_JOINT1, 1.0 ],[RHAND_JOINT2, -1.0, RHAND_JOINT3, 1.0, RHAND_JOINT4, -1.0]]%Interlocking link GrasplotPluginDir: Plugin % Name of the directory that contains the program which solves a specific ID.
Next, the “prehension.prm” and “prehension.pos files” are specified. These files are stored in the “graspPlugin/RobotModels/HRP2JRL/data” path.
Note:
The “prehension.prm” file contains descriptors that hold parameters related to the grasp types (3-fingered fingertip grasp, 4-fingered fingertip grasp, enveloping grasp, etc.) and the “prehension.pos” file contains the standard postures while grasping in any of the above grasp types.
Reference_Motion prehension Finger0Contact 0 1 0 Finger0Comp 0 0 0 Finger0Close 0.01 -0.01 0.01 Finger1Contact 0 1 0 Finger1Comp 0 0 0 Finger1Close -0.01 0.01 -0.01 GRCdes_Position 0.0 0.0 -0.19 GRCmax_Position 0.0 0.0 -0.30 GRCmin_Position 0.0 0.0 -0.19 GRCdes_Rpy -1.57 0 0 GRCmax_Rpy -1.57 0 0 GRCmin_Rpy -1.57 0 0 GRCdes_Edges 0.05 0.05 0.05 GRCmax_Edges 0.30 0.30 0.10 GRCmin_Edges 0.01 0.01 0.01 Max_Load 1.0 Min_Load 0
For example, the entries in this file are as shown below.
0 0.78 -0.78 0.78 -0.78 0.78 -0.78
The first 0 can be any arbitrary number, but the numbers after that specify the finger joint angles in the same order as specified in the VRML.
With this, the setup for using the Grasp Plug-in is complete.
GRCmax
GRCdes