{'fraction_non_alphanumeric': 0.03125, 'fraction_numerical': 0.011890243902439025, 'mean_word_length': 4.268219233085726, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 4, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 9, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Grasping Unknown Objects in Clutter by Superquadric Representation

In this paper, a quick and efficient method is presented for grasping unknown objects in clutter. The grasping method relies on real-time superquadric (SQ) representation of partial view objects and incomplete object modelling, well suited for unknown symmetric objects in cluttered scenarios which is followed by optimized antipodal grasping. The incomplete object models are processed through a mirroring algorithm that assumes symmetry to first create an approximate complete model and then fit for SQ representation. The grasping algorithm is designed for maximum force balance and stability, taking advantage of the quick retrieval of dimension and surface curvature information from the SQ parameters. The pose of the SQs with respect to the direction of gravity is calculated and used together with the parameters of the SQs and specification of the gripper, to select the best direction of approach and contact points. The SQ fitting method has been tested on custom datasets containing objects in isolation as well as in clutter. The grasping algorithm is evaluated on a PR2 and real time results are presented. Initial results indicate that though the method is based on simplistic shape information, it outperforms other learning based grasping algorithms that also work in clutter in terms of time-efficiency and accuracy.


I. INTRODUCTION
Accurate grasping of possibly unknown objects is one of the main needs for robotic systems in unstructured environments. In order to do so, robotic systems have to go through multiple costly calculations. First, the object of interest needs to be identified, which includes a segmentation step resulting in a suitable surface impression of the object. In the next stage, the precise position of the object in the world should be determined. Then, grasps needs to be synthesized by calculating the set of points on the object where the fingers can be placed followed by determining preferred approach directions. Finally, the system needs to plan a safe collision-free path of the manipulator towards the object.
Typical robotic grasping methods focus on optimization of stable grasp metrics. One common approach is to maintain a database of objects with their corresponding preferred grasps. When the system encounters an object that can be identified with an entry from the database, the corresponding suitable referred grasp is pulled out. In this case, the system has to explore and evaluate an increasingly large number of objects and grasps for a given scenario. One of the limitations of such kinds of systems is that the database has to be quite large in order to contain all of the common objects that a robot may encounter. If the system has to work in less structured environments, observing a novel object may be common. A methodology for grasping unknown objects is preferred here, rather than relying on the database. The rest of the paper is organized as follows: Section II presents a brief summary of previous work performed for grasping known and unknown objects. Section III explains the methodology for representation of Superquadrics (SQ). Completion of object models from perceived point cloud is explained in section IV. Section V describes the process of fitting SQ on completed point clouds, while finding antipodal grasps on those SQ is presented in section VI. The experimental results of fitting SQ on point cloud in real time for objects in isolation and clutter with an evaluation with other methods are presented in section VII. We conclude with the limitations and bottlenecks of the method in section VIII.

II. RELATED WORK
A considerable amount of work exists in the area of finding feasible grasping points on novel objects using vision based systems. Initial efforts using 2D images to find grasping points in presented in [1]. The arrival of economic RGB-D cameras allowed interpreting objects in 3D, which led to object identification as point clouds and derived parameters. Different models have been utilized for this task, such as representing objects by implicit polynomial and algebric invariants [2], spherical harmonics [3] [4], geons [5], generalized cylinders [6], symmetry-seeking models [7] [8], blob models [9], union of balls [10] and hyperquadrics [11], to name a few.
The representation of objects as SQ is found in [12] and later in [13]. The work in [14] shows fast object representation with SQ for household environments. An approach infast and efficient pose recovery of objects using SQ has been presented in [15]. In the work of [16] the authors try to fit SQ to piled objects.
Recent literature suggests that using a single-view point cloud to fit (SQ) can lead to erroneous shape and pose estimation. In general, the 3D sensors are noisy and obtain only a partial view of the object, from a single viewpoint. In order to obtain a full model of the object, several strategies have been developed. In [17], the shape of the object is completed from the partial view and a mesh of the completed model is generated for grasping. Generating a full model from a partial model can be approached in several ways, mainly symmetry detection [8] and symmetry plane [18] [19] [20]. Extrusionbased object completion has also been proposed in [21]. [22] presents a different strategy of changing the viewpoint in a controlled manner and registering all the partial views to create a complete model. This technique provides good results, yet it is not very suitable for real time systems and is prone to errors due to registration of several views. In addition, results are not satisfactory when the working environment becomes densely cluttered.
The calculation of feasible grasping points on a point cloud or a mesh is by nature iterative, hence computationally expensive. In [23], a large set of grasps is generated directly from the point cloud and evaluated using convolutional neural networks, obtaining good grasp success results. Such methods avoid the need for robust segmentation but cannot assure the assignment of the grasp to a target object. The method, denoted Grasp Pose Detection (GPD), has been combined with object pose detection in [24]. A similar approach uses Height Accumulated Features (HAF) [25], where local topographical information from the point cloud is retrieved to calculate antipodal grasps.
A different set of methods use the fitting of object models to the point clouds to generate smaller or simpler sets of grasp points. In [26], the calculation of grasp regions is combined with path planning. Curvature-based grasping using antipodal points for differentiable curves, in both convex and concave segments, was studied in [27], while in [28], a grasping energy function is used to calculate antipodal grasping points using local modelling of the surface.
A third set of methods relies on the recognition of objects and comparison to a database of objects with optimized grasping points already included as features of the object [20] [29].
The main contributions of the paper are as follows, 1) a novel method is presented to mirror the partial view point cloud obtaining an approximated full model of the object, 2) SQ fitting on the point cloud as part of the online process which is robust to change in the environment and 3) a novel shape based grasping algorithm which can obtain antipodal grasping points for frictional two-fingered grippers satisfying properties of maximum force balance and stability in a time efficient manner.

III. SUPERQUADRIC REPRESENTATION
A SQ can be defined as a generalized quadric in which the exponents of the implicit representation of the surface are arbitrary real numbers, allowing for a more flexible set of shapes while keeping the symmetric characteristics of the regular quadric.
The superellipsoid belongs to the family of SQ; other members of the family are the superhyperboloid and the supertoroid. A SQ can be obtained as the spherical product of two superellipses [12], S 1 and S 2 , to obtain the parametric equation and ω ∈ [−π, π], where a 1 , a 2 , a 3 are the scaling factors of the three principal axes. The exponent 1 controls the shape of the SQ's cross-section in the planes orthogonal to (x, y) plane, and 2 controls the shape of the SQ's cross-section parallel to the (x, y) plane. The pose of the SQ with respect to a world frame is specified by the six parameters that define a rigid motion, p x , p y , p z for the position vector and ρ, ψ, θ for defining a rotation matrix, for instance using roll, pitch, and yaw angles. The total set of parameters that fully defines the SQ consists of 11 variables, The SQ can also be expressed using an implicit equation in normal form as f (a, x, y, z) : It is easy to show that the SQ is bounded by the planes given by −a 1 ≤ x ≤ a 1 , −a 2 ≤ y ≤ a 2 , and −a 3 ≤ z ≤ a 3 . In [30], a method is proposed for uniform spatial sampling of points on SQ models. The arc length between two close points on x(θ) and x(θ + ∆ θ θ) on a curve can be estimated by Euclidean distance, where we can use a first-order approximation for ∆ θ θ, (4) By setting D(θ) to a constant sampling rate, the incremental updates of the angular parameters are where for θ → 0, and for θ → π 2 . This approach has been implemented for the SQ sampling in our work.

IV. PARTIAL-VIEW MODEL COMPLETION
In this section, the procedure for completion of object models from the partial view point cloud is described. A typical point cloud view from a point cloud capturing device is shown in Fig. 2a, where only a part of the object is captured. The other parts of the object are on the occluded side, so they can only be captured by a device situated on the other side of the table. Reconstruction of the full object model can then be performed by registering the two views from two individual devices. As most of the objects in our daily lives are symmetric by nature, by the law of symmetry it can be asserted that the occluded side of the object is merely a reflection of the visible part. By using only this assumption, the mirroring algorithm presented here creates the occluded part of the point cloud and reconstructs the object model online. The input to the system is an organized point cloud captured from a single view 3D point cloud capturing camera. The scenes can be captured by an RGB-D camera such as the Kinect, time-of-flight cameras, or stereo cameras. In our experiments, a single Kinect camera is used. The process is divided into three steps, a first segmentation step, second pose estimation step, and finally a mirroring step.

A. Segmentation
The initial scene contains objects situated on a table plane. After the dominant table plane is removed, we assume that the clusters present on the table plane correspond to objects. The Voxel Cloud Connectivity Segmentation (VCCS) [31] algorithm is used to separate the clusters. The 3D point clouds can be over-segmented into surface patches, which are considered as supervoxels. The algorithm utilizes a localregion growing variant of K-Means Clustering to generate individual supervoxels, represented asp i = (x i ,n i , N i ), wherē x i is the centroid,n i is the normal vector and e ∈ N i are the edges to adjacent supervoxels. The connections of supervoxels are checked for convexity and those belonging to same connectivity graph are segmented into individual clusters. The results of the segmented point clouds are visualized in Fig. 3c.

B. Pose estimation
Estimating correct pose is one of the most important characteristics of any grasping scenario. The most common approach to estimate pose from point clouds where ground truth orientation of the object model is not known is by using Principal Component Analysis (PCA) for orientation and centroid information for positions. The dominating eigen vectors from PCA are considered as the orientation of point clouds. But this approach utilizes the point cloud on the surface of the object. While the centroid from these methods may be the center of the point cloud, it is not the centroid of the object. Also, to deal with noisy point clouds from real sensors, the axes cannot be determined from PCA, as for every iteration, the number of points perceived varies rapidly. for each i in Objects do 5: Find pose (c x , c y , c z , ρ, ψ, θ) 6: Generate local frame at c x , c y , c z 7: for each point p in i do 8: Calculate Euclidean distance (c, p) The center of the object (c x , c y , c z ) can be estimated by taking the mean of the values of the points in all three dimensions. For completely unknown objects, the ground truth orientation is also unknown, so an assumption is asserted that the orientation of all the objects perceived are z-axis upwards. The problem of obtaining pose information (ρ, ψ, θ) is now limited to finding only the θ which control the rotation in z-axis. The volume V cloud can be calculated by maximum distances in each dimension(d x , d y , d z ), where the maximum distance is the difference between the maximum value and the minimum value in each plane. All the points in the point cloud are projected onto the table plane and a 2D convex hull is created around the projected cloud. The volume of a bounding box can also be estimated from length l and width w of the convex hull and h as the value of p Zmax . By rotating the convex hull in small iterations and minimizing error ( ) between the volume of the bounding box and the volume of the point cloud, the rotation θ in z-axis can be obtained.

C. Creating a mirrored surface
To obtain a complete approximated model of the perceived object, the points perceived are mirrored based on the pose (c x , c y , c z , 0, 0, θ) found in the previous step. A local reference frame is assumed at the center of the object and the euclidean distance of all the points from the centroid is calculated. All the points are reflected on the occluded side by scaling all of them by the negative value of 1 unit to the distance. So for every single point P i (p x , p y , p z ), a mirrored point M i (−p x , −p y , −p z ) is created where p x , p y , p z are distances in x, y, z directions from the center of the object. Though the pose does not contain any ρ and ψ values, this mirroring method can work on any arbitrary orientation of the object. To deal with noisy data, all the point clouds are processed through a series of outlier removal algorithms.
As shown in Fig. 2b, the objects are captured from a point of view (POV) where only a part of the object can be seen. After removing the points belonging to the table surface and segmenting out the object of interest from the environment, the object point clouds are depicted in Fig. 2c. The mirrored point cloud with object points are shown in Fig. 2d. It is worth noticeable that the pose of the box in Fig. 2 is such that only the smallest part of the box can be perceived, but the algorithm still creates the approximate model of the box. A scene with mirrored point clouds are shown in Fig. 2, where the points with distinct colors are mirrored from the object point cloud by the mirroring algorithm presented in Algorithm 1.

V. SUPERQUADRIC FITTING
To fit the SQ model to point cloud data, distance from the points to the function f (a, x, y, z) must be minimized. Radial distance |OP |, which is the distance between the points and the center of the SQ [13], is used instead of Euclidean distance, d(a, x, y, z) = min a 1 a 2 a 3 n k=0 ||OP || * (f (a, x, y, z) − 1)

VI. SUPERQUADRIC GRASP SYNTHESIS
This work focuses on the use of two-fingered grippers for grasping the objects. It is well known that antipodal grasps can be successful in both convex and concave objects in the presence of friction. Finding antipodal points on generallyshaped object models usually returns many candidates, which are ranked according to some metric. In order to make the grasp more stable and balanced, we impose two conditions: a) grasping closer to the centroid of the object and b) at the points of minimum curvature. In addition, we have constraints given by the depth and width of the robotic gripper and the task-based direction of approach.

A. Minimum curvature contact points
The gripper contact points for antipodal grasping with minimum curvature can be calculated from the SQ parameters to be where [T W K ] is the 4 × 4 homogeneous transformation from the world frame to the camera frame, [T KSi is the 4 × 4 homogeneous transformation from the camera frame to the principal frame of SQ i, and p a is the position vector of the contact points in the SQ frame, to be selected according to the criteria explained below and summarized in Table I. The SQ is convex for values of the exponent 0 < < 2; for larger values, it becomes concave at the corresponding cross section, as shown in Fig.4.
Curvature in SQ can be easily calculated from either their implicit or their parametric expression. Considering the implicit expression in eq (1) at the x − z plane obtained when ω = 0, the curvature is and similarly for the other two planes passing through the origin of the SQ's frame. Depending on the value of the exponent 1 , the minimum curvature will be found at the intersection with the axes or at 45 o from them. Fig.5 shows the effect of the exponent on the location of the minimum curvature; the curvature is constant for 1 = 1. For substantially different lengths of the semi-axes of the convex SQ, the points of minimum curvature at > 1 are not antipodal. Here, normal directions to the SQ are found with minimum angular deviation. Disregarding its sign, the normal to the SQ can be calculated for a coordinate plane passing through the origin as the second derivative of the parametrized curve. For x − z plane at ω = 0 normal n is 3 cos 2 1 +4 η sin 4 1 η+a 2 1 cos 4 1 η sin 2 1 +4 η a1 cos 2 1 η sin 1 +2 η √ a 2 3 cos 2 1 +4 η sin 4 1 η+a 2 1 cos 4 1 η sin 2 1 +4 η    (12) Fig. 6 shows an example of the antipodal points with minimum curvature on the x − z plane; if a solution exists, then there will always be another symmetric solution. In addition, the contact points at the major axes are antipodal, but depending on the value of the exponent, they may present higher curvature or a cusp for extreme cases. The angular parameter of the approximate antipodal points in the plane can be found by imposing that the normal line passes close enough to the origin, p a = min η ( a 1 a 3 cos 2 1 η sin 2 1 η a 2 3 cos 2 1+4 η sin 4 1 η + a 2 1 cos 4 1 η sin 2 1+4 η −1).
(13) For concave SQs, the curvature helps make the grasp closed. Antipodal points are sought using eq (13).

B. Direction of approach
Let us define the plane of grasping as the plane containing the contact points and normal to the fingers of the gripper.

Exponent Dimensions
Position vector < 1 a 1 > a 2 pa = (0, a 2 , 0, 1) a 1 = a 2 pa = (a 1 , 0, 0, 1) or pa = (0, a 2 , 0, 1) a 1 < a 2 pa = (a 1 , 0, 0, 1) = 1 a 1 > a 2 pa = (0, a 2 , 0, 1) a 1 = a 2 pa = (a 1 cos ω, a 1 sin ω, 0, 1) for all ω a 1 < a 2 pa = (a 1 , 0, 0, 1) > 1 a 1 = a 2 pa = (a 1 / √ 2, a 1 / √ 2, 0, 1) a 1 = a 2 pa(ω) as per Eq. (13) The direction of approach of the gripper is then perpendicular to this plane. Because of the condition of entered grasp, at least one of the dimensions of the superellipsoid at the plane of grasping, a i , needs to be smaller than the width of the gripper, w. In addition, the dimension of the major axis in the direction perpendicular to that plane needs to be smaller than the depth of the gripper, h. The plane of grasping to consider can be at an angle from the coordinate planes in order to accommodate verticality or the above conditions. As before, the direction of approach is calculating as where s a = x, y, or z or a coordinate rotation about one of those axes.
Algorithm 2 shows the summary of the process to select the plane of grasping and the contact points. It is intuitive that the algorithm always tries to approach object from the minimum ±a i direction. It shown in Fig. 8, where the first and last images shows grasping of the box from the minimum ±a i direction.

VII. EXPERIMENTAL RESULTS
This section discusses the results of the replication and SQ fitting method, and the results from the grasping algorithm. Our dataset consists of simple household items of various shapes: balls, cubes, paper rolls etc. For experiments, the end for 12: end procedure 13: procedure CalculateContactP oints 14: Select p a (Table I) 15: Calculate p W 16: end procedure approach direction s W in negative z direction is always discarded, as by our pose estimation process, we assumed that the pose is z-axis upwards. So the object can not be grasped through the table. Fig. 7 shows the visualization of potential grasps on a box and a cylinder SQ. The red grasps are easily discarded as the object can not be grasped from those directions. The dark yellow grasps are from those directions from where the object can be grasped. By incorporating motion planning and robot reachability with grasps, we decide on the grasp to be executed. The first grasp is at the min(a i ) direction. If the motion planner fails to reach the main grasp at direction min(a i ), we sample the grasps with varying angles at the same direction (yellow grasps in Fig.7). If all the grasps at this direction fails, we move to second min(a i ) direction.
We have performed the grasping experiments on a PR2 robot that uses a Kinect 1 to perceive objects. A grasp is considered to be successful if the object is been picked up from the table and placed in a bin situated on the other side of the setup (refer to Fig. 1 for the locations of the objects and bin).
To merge the fitting process with grasping as an online system, only the five parameters {a 1 , a 2 , a 3 , 1 , 2 } are optimized by Levenberg Marquardt [32] algorithm implemented by Ceras library. The other pose parameters {p x , p y , p z , ρ, ψ, θ } are optimized separately by the process described above in the pose estimation section of mirroring algorithm. While the range of 1 and 2 is constrained between the range of 0.1 and 1.9, the initial values of a 1 , a 2 and a 3 are eigenvalues of the covariance matrix of the point cloud. A cartesian planner has been implemented for the system to reach the grasp by defined approach and pick up the object. For the placing task, a joint controller is implemented.

A. Superquadric fitting
Our object dataset mostly consists of small symmetric objects, such as small boxes, cylinders and balls with varied parameters in x, y, z directions. For calculating the errors, in an offline scenario, we obtained the ground truth (a1, a2, a3) parameters of all the objects. The 1 and 2 are obtained by iterating over the values between 0.1 and 1.9 and choosing the volume that best fits the object. The error is radial distance error between the point cloud generated by ground truth information and the point cloud generated by obtained SQ parameters. For every object, 5 different poses are defined on the table and the objects are perceived from all 5 poses. The results shown in II are a comparison of recovered parameters between our method and [17]. As the result suggests, our method shows better improved results is SQ fitting in terms of time-efficiency and accuracy, as our method determines the pose on the approximated center of the object. Also, instead of optimizing 11 parameters of the object, we only optimize 5 parameters related to object shape. While the size of the

B. Grasping
For grasping objects both in single and dense cluttered scenarios, we compare our results with [23] and [25] in Table  II and Fig. 10, as these two methods are well-recognized grasping methods for unknown objects. These two methods have certain advantages over our method as they are learningbased methods. For single objects, the objects are kept in 3 different positions in the environment and the same process of grasping is been iterated 3 times. The average results are presented. For dense cluttered scenes, 5 experiments are performed and for all the experiments and the objects are kept the same for individual experiments. The objects chosen for each experiments are shown in Fig. 9.
As our system does not rely on iteration for finding grasps to execute, it provides better results in time efficiency than other methods. For single objects, location 2 is the place where every method struggled. The location is chosen deliberately far away from the camera frame, where the segmentation process is prone to failure. As the Agile method is not dependent on segmentation, it provides a better result for only one object (ball). It failed significantly for the rest of the objects. For cluttered scenes in Fig. 9 our system consumes much more time for the first and the last scenarios than the other scenarios, Fig. 10. Grasping result compared with methods presented in [23] and [25]. From left to right: a) avg. time and b)success rate for individual objects. Gray bars are [23], Red bars are [25] and while yellow bars are by Mirroring and SQ fitting as those contains the highest number of objects in a given scene. In experiment 1, though our method calculated all the grasp poses, the dice slipped from the gripper, affecting the accuracy. The vertical placement of the camera where it perceives the environment from the top explains the reason for the significantly poor performance of the Haf grasping method. As for the Agile grasping, the execution system of agile grasping is not based on most vertical grasps, so though in most of the cases, the objects are perceived properly for good grasps, it still failed to execute them.

VIII. CONCLUSIONS
In this work, we propose a fast antipodal grasping algorithm based on the properties of the SQ, which are fitted to single-view objects. The generation of contact points on the SQ is very fast and does not require a second phase of analysis of the potential contact points to select the optimal candidate. The method has been tested in regular objects and the results show good potential for real time and good grasping success. This method and its implementation is available and updated for open-source community at https://github.com/jontromanab/sq grasp