A novel algorithm for fast grasping of unknown objects using C-shape configuration

Increasing grasping efficiency is very important for the robots to grasp unknown objects especially subjected to unfamiliar environments. To achieve this, a new algorithm is proposed based on the C-shape configuration. Specifically, the geometric model of the used under-actuated gripper is approximated as a C-shape. To obtain an appropriate graspable position, this C-shape configuration is applied to fit geometric model of an unknown object. The geometric model of unknown object is constructed by using a single-view partial point cloud. To examine the algorithm using simulations, a comparison of the commonly used motion planners is made. The motion planner with the highest number of solved runs, lowest computing time and the shortest path length is chosen to execute grasps found by this grasping algorithm. The simulation results demonstrate that excellent grasping efficiency is achieved by adopting our algorithm. To validate this algorithm, experiment tests are carried out using a UR5 robot arm and an under-actuated gripper. The experimental results show that steady grasping actions are obtained. Hence, this research provides a novel algorithm for fast grasping of unknown objects.


I. INTRODUCTION
An unknown object can be defined as an item that has neither apparent information nor geometric model. 1 Fast grasping of unknown objects is quite important for robots efficiently to perform missions especially under unfamiliar environments.Due to the fact that various robots are increasingly dependent in contemporary society, improving grasping speed emerges as one essential challenge for fasting grasping of unknown objects.
3][4][5][6] Among them Ref. 2 is a well acknowledged fast grasping algorithm using Hough transformation to visualize the edges of objects into a 2D image.It can detect whether the edges have sufficient length and whether the parallel edges suit the width of the used grippers.In the work of Eppner and Brock, 3 the point cloud is transformed into shape primitives (i.e., cylinder, disk, sphere and box).A pre-grasp (configuration of the hand) is chosen according to shape primitives.Using the shape primitive, the scope of grasp searching is significantly reduced.However, this may result in lots of grasp uncertainty, which may lead to grasp failure.
Reference 4 applies the contact area of the grasping rectangle to determine the suitable grasps.The problem with this algorithm is that when the contact area is too small, the grasp is likely to fail, and thus has to be replaced by another one.Reference 5 utilizes principal axis and centroid of the object to synthesize a grasping action.Pas 6 attempted to fit the shape of the parallel gripper on the point cloud of the objects.They use a detailed segmentation to pick objects from dense clutters.This algorithm promotes quite efficient grasping action.These three fast grasping algorithms have a common character of using the normal of the table plane as the grasp approaching direction, which can accelerate grasp searching.However, due to the limitation that grasping from top is inapplicable for many objects that are placed in enclosed spaces, e.g., fridges and shelves, this type of simplification cannot be widely accepted.
As a summary, it is obtained that except Ref. 3, the other four fast grasping algorithms 2,4-6 are designed for parallel grippers.Furthermore, excluding Ref. 2 that uses RGB images as input of the grasping algorithm, the rest four grasping algorithms use a partial point cloud as input, which can reduce the computational time during a grasping process.In addition, four of them 2,4-6 use parallel grippers because parallel grippers have simpler geometry shape and are easier to control in comparison with dexterous hands.Nevertheless, the parallel grippers are not advocated in terms of flexibility.To make a trade-off, the under-actuated grippers are selected which have both sufficient flexibility and operational convenience.Fig. 1(a-c) shows three commonly used under-actuated grippers.All the three types of under-actuated grippers can be described as a C-shape with radii r 1 and r 2 as particularly displayed in Fig. 1(d).
Additionally, due to the fact that few grasping algorithms provided details on the actual motion planning of the robotic arm towards the unknown objects, grasping algorithms seem simply focusing on finding specific grasps on certain objects.As a result, researchers and users who plan to implement the grasping algorithms have to firstly bridge the gap of motion planning.Hence, they are required to investigate many different available motion planning methods before implementation, which introduces much time.The visual application of MoveIt!, 7 a motion planning interface in ROS, is convenient to operate and therefore widely used for robot manipulation.In order to enable researchers and users to quickly choose suitable motion planners, a comparison of motion planners available in the simulation system (Moveit!) is made.To execute grasps, the motion planner with the highest number of solved runs, lowest computing time and shortest path length found our grasping algorithm is used.
The goal of this paper is to design a fast and general grasping algorithm for unknown objects.In order to achieve this goal, the rest of this paper is organized as follows: Section II illustrates our fast grasping algorithm.Section III compares different online motion planners.Section IV presents the simulation results.Section V gives the experimental results.Finally, the conclusions are provided in section VI.

II. A NOVEL ALGORITHM
In order to understand this novel algorithm, this section firstly presents the mathematical description of the C-shape configuration.Next, the outline of our fast grasping algorithm is presented.It demonstrates that eight steps are required to execute an effective grasp.Using an example of grasping an unknown object, these eight steps are interpreted in details.

A. Mathematical description of the C-shape configuration
Fig. 2(a) shows the C-shape of the under-actuated grippers, in which w is the width of the griper.Fig. 2(b) demonstrates the area of the C-shape (C c ) from the perspective of x axis.Therefore, C c equals the outer cylinder space (C out ) minuses the inner cylinder space (C in ) and minuses the red area (C red ) (equation ( 1)).C red can be approximated as C red ={(0.5w≤x≤0.5w)∧(r 1 ≤y≤r 1 ) In order to calculate C out and C in in the 3D space, the parametric equation for a random circle on an arbitrary plane must be firstly obtained.Assuming that P (x 0 , y 0 , z 0 ) is the center and r is the radius of an arbitrary circle, the unit normal vector is given by N=(n x , n y , n z ) shown as the red line in Fig. 3.When the normal vector is projected to the XOY plane, XOZ plane and YOZ plane, the three project lines are obtained, i.e., the three green lines.γ, β and α are respectively the angles between the projected lines and the coordinate axes.Then the arbitrary plane can be obtained by transforming the XOY plane through this manner: first, rotating around the X axis by α; then, rotating around the Y axis by β; last, moving along the vector N to P (x 0 , y 0 , z 0 ).The entire transformation is expressed as equation (2).
Assuming that (x(t), y(t), z(t)) are the arbitrary points on the arbitrary circle, then the parametric equation of the circle can be obtained by the equation (3).
Where t should satisfy 0 ≤ t ≤ 2π.If {x(s,t), y(s,t), z(s,t)} is an arbitrary point on the cylinder, and the axis vector of the cylinder is N = (cos a , cos β , cos γ ), then parametric equations for an arbitrary cylinder in 3D space can be obtained using equation ( 4) x(s, t) = x 0 + r cos t cos β + r sin t sin a sin β + s cos a y(s, t) = y 0 + r sin t cos a + s cos β z(s, t) = z 0 + r sin t sin a cos β − r cos t sin β + s cos γ In which 0 ≤ s ≤ w, w is the width of the griper.Using equation ( 4), we can obtain equations for C out and C in .In combination with C red and using equation (1), the C-shape configuration can be mathematically expressed.

B. Outline of our fast grasping algorithm
The outline of our fast grasping algorithm is shown in Fig. 4. It can be seen that eight steps are required to execute fast grasping using our algorithm.In the following paragraphs, these eight steps are respectively explained in detail.

Step 1: Obtaining the point cloud of the target object
Fig. 5(a) shows the experimental setup, which consists of a robot arm, a 3D sensor and a target unknown object.The raw point cloud obtained from the 3D sensor contains the environment (for example the table plane).In order to quickly extract the point cloud of the target object, down-sampling and distance filtering are firstly applied on the raw point cloud from the 3D camera to reduce the computing time and remove the points out of the reach of the robot arm.To isolated point cloud of the target object, the Random Sample Consensus (RANSAC) method is applied to remove the table plane.

Step 2: Generation of normals
Surface normals are important properties of a geometric surface, and are widely used in many areas such as computer graphics applications.In this paper, normals are used to guide the configuration of the C-shape to accelerate grasp searching.The solution for estimating the surface normal is to analyze the eigenvectors and eigenvalues of a covariance matrix created from the nearest neighbors of the query point.Specifically, for each point P i , we assemble the covariance matrix C as follows: Where k is the number of points in the neighborhood of P i , P represents the 3D centroid of the nearest neighbors, λ j is the j-th eigenvalue of the covariance matrix, and V j is the j-th eigenvector.The first eigenvector corresponding to least eigenvalue will be the normal at each neighborhood.
As one normal has two possible directions (the red and blue arrow lines) shown in Fig. 6, it must be figured out which is the right direction of the normal.Since the point cloud datasets are acquired from a single viewpoint, the camera view point p c is used to solve the problem of the sign of the normal.The vector from the point p i to the camera view point p c is V i = p c p i , To orient all normals n i consistently towards the viewpoint, it must satisfy the equation: n i • V i > 0. Using this equation can constrain all the normals towards the camera viewpoint to obtain all normals (shown as all the red lines in Fig. 6) of the target object.

Step 3: Down-sampling of point cloud
As can be observed in Fig. 6, the normals of the target object are too dense.In order to accelerate the speed of grasp searching, the normals must be down-sampled.To down-sample the normals, the K-d tree is used.Fig. 7(a) shows the green points of the original point cloud (Ω) that is used to compute the normal, and the red points are the down-sampled point cloud Ω d .At each red point (P di ) of Ω d , we use KNN search to find the nearest neighbor point (P i ) in Ω (shown as Fig. 7(b)).Then the corresponding normal (n i ) of P i can be looked up in the dense normals obtained in step 2. Eventually, all the corresponding normals are combined to form the down-sampled normals shown as Fig. 7(c).

Step 4: Effective configuration of a C-shape
Configuration of the C-shape is abided by a SE (3) group, thus it can mean many possibilities.In order to reduce the possibilities to accelerate grasping searching, normals of the target object are used to work as the approaching direction of the C-shape.Then the configuration of the C-shape can be simplified from SE(3) to SE (2).In this step, we will explain how to configure the C-shape to find a FIG. 6. Normals of the target object.suitable grasp.Besides, we will also illustrate the method to tackle the unseen part of object because we cannot see the back side of the object when we use a single-view point cloud.
Fig. 8 shows the procedures to configure the C-shape.The blue line in Fig. 8(a) is a random normal.Fig. 8(b) is an partially enlarged image of Fig. 8(a).When a normal is chosen as the approaching direction of the C-shape, it means that the Z axis of the C-shape will align with the blue line in Fig. 8 As mentioned before, the C-shape axis is allocated around the normal with an incremental angle δ.Then a question comes out, i.e., how to decide the first axis of the C-shape to increase the possibility to find a suitable grasp?If δ is a big angle, for example 60 o , we may get two totally different allocations of C-shape axis shown in Fig. 9(a) and (b).The three cylinder axis in Fig. 9(a) will lead to no appropriate grasp, because all the three C-shapes will collide with the object.However, the C-shape axis in Fig. 9(b) can promote a suitable grasp candidate (shown as Fig. 9(c)).This difference is ascribed to the position of the first axis.Hereby it is suggested to use the principal axis of the local point cloud to work as the first C-shape axis.
Nevertheless, using a single-view partial point cloud of the object can also result in grasp uncertainty.For instance, if the C-shape is configured as Fig. 10(a), the gripper will collide with the target object.To overcome this, the boundary of the object is employed to eliminate the uncertainty.Specifically, the point cloud in the camera frame is used to work out the boundary points Ω b (shown as Fig. 10(b)).Fig. 10(c) illustrates our method to deal with the unseen part.In detail, the two red points are on Ω b , the two orange lines are obtained by connecting the origin point of camera frame with the two red points.These two orange dashed lines are obtained by extending the two orange lines.When applying this method to all the points on the boundary, we can obtain a point cloud shown as Fig. 10(d).After the unseen part is generated, the configuration space (C space) of the target object (C obj ) is divided into two parts, which are C obj (the green points in (d)) and C unseen (the orange points in Fig. 10(d)), as shown in equation (6).

Step 5: Determination of the center point of the C-shape
As mentioned in the previous step, the under-actuated gripper will approach the target object along the normal direction.Then the correct contact position for initiating a grasp must be determined.Therefore it is required to determine the center point of the C-shape.Fig. 11(a the corresponding C-shape.Due to the fact that the center point can go down, meaning that the two examples of center points of the C-shape are not useful.Fig. 11(c), (d) and (e) elaborate on the method to find out the best center point, which is given below.
When the abstracted point cloud in Fig. 11(b) is projected to the YOZ plane to get the projected point cloud (orange points shown as (c)), the convex hull of the projected point cloud is extracted shown as the green points in (c).The green point in Fig. 11(d) gives one point of the convex hull obtained in (c).When drawing a circle with r 1 as radius (shown as the green circle), we can obtain two intersects with Z axis (shown as the two purple points P 1 and P 2 ).Z = min(Z 1 ,Z 2 ) will work as the C-shape center.In the same way, we can get all the center points Z c = (Z c1 ,Z c2 ,•••,Z cn ) (shown as (e)) for all the green points in (c).The maximal Z c is used as the final C-shape center (shown as the equation ( 7)).The maximal Z c means the earliest contact point with the object when the C-shape tries to approach the object.

Step 6: Collision analysis of the C-shape
After the configuration of the C-shape is obtained, it is necessary to predict whether this configuration will collide with object.If the C-shape will not collide with object, then it means this configuration is possible to be an executable grasp candidate, otherwise this configuration should be ignored.In order to judge whether one configuration will collide with the object or not, points with X axis value between 0.5w and 0.5w are abstracted to form a point cloud Ω [0.5w,0.5w](shown as the red points in Fig. 12, w is the width of the gripper).If any points p i of Ω [0.5w,0.5w]falls inside of the C-shape space, it means the C-shape will collide with the target object, then the grasp candidate g i should be removed, otherwise g i is reserved for following analysis.Applying this method to all the C-shape configurations, it leads to a vector G = (g 1 , g 2 ...g n ) which is used to store all grasp candidates without collision with the target object.

Step 7: Local geometry analysis
Step 6 ensures that the C-shape will not collide with the object, which also means that the C-shape can envelope the object at this configuration.In this step, we will account for the local geometry of the points enveloped by the C-shape.Fig. 13(a) shows a grasp candidate, in which the local geometry shape may lead to grasp uncertainty.To tackle this scenario, two grasp sides are abstracted shown as the red points in Fig. 13(b).The distance between one red point and the blue line is defined as d i (0 < i ≤ n, and n is the total number of the red points).Thus a summation of the distances can be used to evaluate the variance v of the grasp (v = i=n i=1 d i ).For the variance is smaller than the threshold set by the system the grasp is saved.Otherwise, it is removed.

Step 8: Force balance optimization
All grasp candidates passed previous steps can form a new vector G j = (g j1 , g j2 ...g jn ), in which all the grasps can be executed without collision with the target object.Generally, researchers employ the physic property to do force balance computation, for instance, the friction coefficient.However, it is inapplicable in this research because the physic property is unknown.To choose the final grasp, we propose to use force balance optimization based on the local geometry shape.
Fig. 14(a) shows seven lines which stand for the C-shape axis of the grasps in vector G j .It is inferred that all the grasps from g j1 to g j7 can be executed.The blue points in Fig. 14(b) stand for the grasp candidate 1 (g j1 ).It is projected to the XOY plane to get the projected point cloud shown as Fig. 14(c).The two grasp sides are abstracted to shown as the red points in Fig. 14(d).Two orange lines (y = kx + b) can be fit out for the tow grasp sides.The two angles between the two fit lines and X axis are defined as ξ and θ.Fig. 14(e) shows three cases of allocation of ξ and θ.The sum (σ) of ξ and θ is used to evaluate the force balance quality of this grasp.σ can be obtained using σ = fabs(arctan (k θ )) + fabs(arctan(k ξ )).The bigger σ is, the higher possibility that the grasp forces are vertical to the grasp sides, correspondingly more stable the grasp is.The vector ψ = (ψ 1 ,ψ 2 ...ψ 7 ) is used to stand for all the force balance coefficients for the grasp vector G j = (g j1 , g j2 ...g j7 ).Fig. 14(f) displays a line graph of the vector ψ, the grasp with the largest ψ is chosen as the final grasp.Fig. 14(g) shows the returned best grasp, which corresponds to the 4th grasp in Fig. 14(a) and (f).
The above steps illustrate how the grasping algorithm work to find a suitable grasp at one normal of the target object.If the grasping algorithm cannot find a suitable grasp at one normal, another random normal will be used to repeat above steps until a suitable grasp is found.This was also identified in the outline of the algorithm in Figure 4.

III. SELECTION OF MOTION PLANNERS
Performance of motion planning depends on the chosen motion planner so that motion planning is a very important part for grasp execution.In this section, we will investigate the choice of motion planner based on the results of benchmark after a series of motion planner comparisons and parametric selections in MoveIt!.

A. Motion planning using MoveIt!
MoveIt! itself does not provide motion planning.Instead, it is designed to work with planners or planning libraries.Currently four main planners/planning libraries can be configured to use: namely, OMPL (Open Motion Planning Library), 8 STOMP (Stochastic Trajectory Optimization for Motion Planning), 9 CHOMP (Covariant Hamiltonian Optimization for Motion Planning) 10 and SBPL (Search-Based Planning Library). 11MPL 8 is a popular choice to solve a motion problem.
It is an open-source motion planning library that houses many state-of-the-art sampling based motion planners.OMPL is configured as the default set of planners for MoveIt!.Currently 23 sampling-based motion planners can be selected for use.STOMP 9 is an optimization-based motion planner.It is designed to plan smooth trajectories for robotic arms.The planner is currently partially supported in MoveIt!.CHOMP 10 mainly operates by using two terms, which are dynamical quantity term and obstacle term.The dynamical quantity term describes the smoothness of the trajectory.The obstacle term is similar to potential fields.The planner is not yet configured in the latest version of MoveIt!.SBPL 11 consists of a set of planners using search-based planning that discretize the space.The library is not yet configured in the latest version of MoveIt!.
Among the discussed four planning libraries, OMPL will be used to perform motion planning in MoveIt! to compare different motion planners.This planning library also gives a wide variety of choices to solve a motion planning problem because it contains 23 planners.

B. Overview of OMPL planners available in MoveIt!
Table I lists the 23 OMPL planners available in MoveIt!.Sampling-based motion planners in OMPL work by constructing roadmaps in the configuration space of the robot.This is done by connecting sampled configuration states with each other.Sampling-based motion planners are widely used due to their success in finding feasible paths in high dimensional and geometrically constraint environments.Moreover, they are proven to be probabilistically complete. 20The 23 sampling-based motion planners can be divided into two categories, i.e. none-asymptotically optimal planners and asymptotically optimal planners.None-asymptotically optimal planners include SBL, 12 EST, 13 BiEST based on Ref. 13  16 RRTConnect, 17 PDST, 18 STRIDE, 19 PRM 20 and LazyPRM. 15Asymptotically optimal planners contain RRTstar, 21 PRMstar based on Refs.20 and 21, LazyPRMstar based on Refs.15 and 21, FMT, 22 BFMT, 23 LBTRRT, 24 TRRT, 25 BiTRRT, 26 SPARS 27 and SPARStwo. 28

C. Methodologies of comparing motion planners in MoveIt!
To compare the performance of the 23 motion planners available in MoveIt!, we created two benchmarks shown in Fig. 15.The first benchmark resembles a grasp among dense obstacles and the second resembles a long motion grasp.The planners are analyzed on the three respects of the solved runs, computing time and path length.Solved runs, computing time and path length are used as metric in our experiments.We analyze the measures individually to provide the best performing planners in each one of the measures.Solved runs are analyzed by terms of percentage of total runs of the planner resulting in feasible paths, higher performance is considered for higher solved runs.Total computing time is measured for the time it takes for planners to produce feasible or optimal paths with path simplification, a shorter time is considered as higher performance.Moreover, planners with a small standard deviation from the average computing time and small interquartile range are considered as better performance.Path length is measured by the length of the sum of motions for a produced path.Shorter lengths are considered as higher performance.Finally, planners with a small standard deviation from the average path length and small interquartile range are considered as better performance.The benchmarking experiments are performed using one thread on a system with an Intel i5 2.70GHz processor and 8GB of memory.To obtain reliable data on the solved runs, computing time and path length, each algorithm was run 30 times for the given motion planning problem.The algorithms were given a maximum computing time of 3s and 10s to show the effect of time on different motion planners.The times are kept low since most robotics applications need to operate quickly.

D. Parameter selection
One important parameter can affect all planners, which is the distance parameter (longest valid segment fraction).This parameter is accounted when the planner detects collisions between two nodes.Collision detection is not detected when the distance between the nodes is smaller than the parameter value.In narrow passages and corners, this parameter can be critical.The parameter is set in meters and by default has a value of 0.005m.After conducting experiments with lower values, we found that reducing the value of this parameter did not play an immediate effect on the solved runs for both benchmark problems in Fig. 15.Among the 23 available planners in MoveIt!, 19 of them have their own parameters.For the two benchmarks, parameters of the 19 planners were set to values that benefit one or more performance measures, and the corresponding values are given in Table II.
While conducting parameter selections for LBTRRT, we found that this planner is behaving unreliable in our setup.We tested all parameter combinations for this planner when conducting motion planning, however, all parameter combinations resulted in crashes.As a result, we are unable to provide benchmark data for this particular planner.There is an important parameter for the used UR5 robot, i.e., joint limit settings for each joint.The parameter can be set as π or 2π.Validating by means of simple motion planning experiments, we found that setting the joint limits to π resulted in favorable performance for all the performance measures.

E. Comparison results
Results of benchmark 1 are shown in Fig. 16 and Table III.The motion problem affects planners EST, RRT, RRTstar, TRRT and SPARStwo since they were not able to solve all the runs with a percentage higher than 50% with a maximum computing time of 3s.For 10s of computing time, more solved runs were retrieved.SBL, BiEST, KPIECE, BKPIECE and LBKPIECE compute valid paths in a computing time shorter than one second.RRTConnect is the fastest planner and BiTRRT is the fastest asymptotically optimal planner.RRTConnect paths have the lowest median.However, the average is higher due to significant outliers.SBL has the lowest average path length with a small standard deviation.Planners SBL, KPIECE, LBKPIECE, FMT, and TRRT are able to plan paths of similar median and average lengths.For asymptotically optimal planners, BiTRRT has the lowest median path length.TRRT has the lowest average path length and standard deviation.Selecting a higher limit of computing time did not result in significant changes.Results of benchmark 2 are shown in Fig. 17 and Table IV.RRTstar, TRRT and SPARStwo have a lower solved runs compared to the other planner algorithms.SBL, BiEST, BKPIECE, LBKPIECE, RRTConnect and BiTRRT compute paths in under 0.1s, SBL is the fastest planner.Planners that have a time invariant stopping goal, except for FMT and TRRT, are producing valid paths within one second.BiTRRT is the fastest asymptotically optimal planner.Bi-directional planner variants compute valid paths faster.SBL and BiTRRT have the shortest paths.The planners that keep sampling the configuration space or optimizing the path until the maximum computing time is reached see improved performance with respect to path length.
To sum up, SBL, BKPIECE, LBKPIECE, RRTConnect and BiTRRT can achieve better performances than the other planners based on the comparison results of benchmark 1 and benchmark 2. These five planners can work better with respect to both circumstances of grasp in dense obstacles and grasp in a long motion.However, among these five planners, only BiTRRT is asymptotically optimal.Asymptotically optimal planners are able to exclude potential high-cost paths and rough motions, which can help to achieve a smoother path of the manipulator.Taking all factors into consideration, we will adopt BiTRRT to work as the motion planner for the UR5 manipulator to execute the final grasp.

IV. SIMULATION TESTS
In order to verify our grasping algorithm, the motion planner BiTRRT for the UR5 manipulator is used to perform grasp action.The simulation tests were performed using a personal computer (2 cores, 2.9GHz).Several objects with different geometry shapes are used in the simulation.Table V lists the simulation testes for five objects.The first column shows the setup of each test.The second column shows an example grasp found by the grasping algorithm.The third column shows the robot arm arrived at the grasp point by using BiTRRT as motion planner.The fourth column shows the number of points of the input partial point cloud.The last column shows the average computing time (10 trials for each object).For all the tested objects, it demonstrates that the algorithm can quickly find out a suitable grasp within two seconds.

V. EXPERIMENTAL TESTS
The experimental tests were conducted using a robot arm UR5 and an under-actuated Lacquey Fetch gripper.An Xtion pro live sensor is used to acquire the partial point cloud of the target object.The whole experiment setup and the objects chosen to do experiments are shown as the first column of Table VI.The second column shows the example grasp found by the grasping algorithm.The third column shows the robot arm arrives at the grasp position by using BiTRRT as motion planner.The fourth column shows the number of points of the input partial point cloud.The last column shows the computing time (10 trials for each object).
In comparison with the simulation tests in Table V, the point cloud in experiments may lose some points.For instance, the coffee jar in the sixth column of Table VI lost certain amount of points because the Xtion pro live sensor cannot detect transparent part.The neck of the coffee jar is transparent which is therefore we cannot find the points for neck of the coffee jar.From Table VI, we can see that even though the partial point cloud of the object has large number of points, our algorithm can quickly work out a suitable grasp within two seconds.Therefore, it demonstrates that the experimental tests are consistent with the simulation tests of using the grasping algorithm.Comparing with the five fast grasping algorithms, [2][3][4][5][6][29][30][31][32] it is summarized that our algorithm is distinguished from others according to the following five points: • Grasp adaptiveness: Our grasping algorithm is specially designed for under-actuated grippers, which adds compliance and dexterity without the need of adding additional actuators and sensors.
5][6] Meanwhile, the grasping algorithm proposed in this paper does not rely on object features, which means more adaptiveness than our previous work. 32 Object complexity: The presented grasping approach is applicable for relatively complex objects such as electric drill and the cleaner spray bottle.This makes it better than Refs.2, 4, and 5, which only considers simple objects.Reference 3 transforms the objects into simple shapes (cylinder, disk, sphere and box), which may result in loss of details of objects.Caging based grasping algorithms [29][30][31] are becoming popular in recent years because of their high flexibility, however, they are only applicable for simple flat objects.• Computing time: Our algorithm finds a suitable grasp for complex object within two seconds, which is lower in comparison with the results by Refs.3-6.It is noted that Ref. 2 uses a much lower time because it only uses a RGB image at the cost of losing depth information of the object that can involves grasp risks.• Grasping direction: Refs.2, 4, and 5 only consider grasping from top, which can result in unreliable grasp, for instance, picking up the wineglass.In some cases, it is unallowable to grasp the target object from top, for example, objects in fridges or shelves.Our grasping algorithm considers the local geometry property of the object.Moreover, we use the normal of the object for approaching direction, which resembles a human-like grasp.• Grasp execution: For the available fast grasp algorithms, only Ref. 6 considers grasp execution.
However, no information was given about motion planning.We showed by performing a comparison that using BiTRRT for grasp execution would result in high solved runs, low computing time and short path length.

VI. CONCLUSIONS
This paper introduces a novel algorithm for fast grasping of unknown object grasping is based on the C-shape configuration.For the grasping algorithm, the under-actuated grippers is simplified as a C-shape.To accelerate the computing speed, this algorithm uses a single view partial point cloud as input, which is also used for C-shape searching on the target object.The effectiveness and reliability of our grasping algorithm is verified using available objects by simulations and experiments.Our grasping algorithm can quickly work out a suitable grasp within two seconds for a test unknown object.In comparison with other fast grasping algorithms, our algorithm shows significant improvement in terms of the grasp speed and the applicability in practice.

FIG. 1 .
FIG. 1.Three widely used commercial under-actuated grippers (a-c) and the approximation of C-shape (d).

FIG. 2 .
FIG. 2. Mathematical description of the C-shape (a) 3D illustration (b) YOZ projection of the C-shape.

FIG. 3 .
FIG.3.Parametric definition for the space calculation of the C-shape.

FIG. 5 .
FIG. 5. Obtaining the point cloud of the target object (a) experimental setup (b) raw point cloud.
(a) and (b).Then the C-shape can solely rotate around the normal, thus that the C-shape are configured around the normal with an incremental angle δ (shown as Fig. 8(b)).Each red line in Fig. 8(a) and (b) means a possible axis for the C-shape.The X axis of the C-shape will match with every red line to construct a potential grasp candidate.Fig. 8(c) illustrates an example of a potential grasp candidate corresponding to the black axis in Fig. 8(b), in which the red points in Fig. 8(c) represent the points of the object covered by the C-shape.

FIG. 8 .
FIG. 8. Configuration of the C-shape (a) selection of a random normal (b) identification of the normal (c) a potential grasp candidate.
FIG. 11.Determination of the center point of the C-shape.(a) a possible grasp candidate (b) abstracted point cloud (c) convex hull of the projected point cloud (d) one obtained point of the convex hull (e) all obtained best center points.

FIG. 14 .
FIG. 14. Choose the best grasp using force balance optimization.(a) C-shape axis of the grasps (b) grasp candidate 1 (c) projected point cloud (d) the abstracted two grasp sides (e) three cases of allocation (f) a line graph (g) the returned best grasp.

TABLE I .
Available planners of OMPL in MoveIt!.

TABLE III .
Average values for benchmark 1.

TABLE IV .
Average values for benchmark 2.

TABLE V .
Experiment results.

TABLE VI .
Experiment results.