1
Object sequencing
Graph-based selection
Which object to move next?
We segment the scene with UOIS-Net-3D and build an accessibility graph: one vertex per object plus the robot, with an edge wherever a collision-free straight-line end-effector path exists. Paths from the robot vertex capture which objects are blocking which.
For each object we delete its vertex and score how close the remaining graph Gt − vi is to the goal graph Gg, using SimGNN to approximate graph edit distance:
v* = arg maxi SimGNN( Gt − vi, Gg )
The object behind the largest difference from the goal goes first, which keeps the action count low. Non-target objects tend to be cleared early, thinning the clutter for what follows.
2
Action selection
Push or grasp
How to manipulate it?
A goal-conditioned POMDP solved with deep Q-learning. A DenseNet-121 encoder and fully-convolutional heads turn the RGB-D image into pixel-wise Q-values, at 16 rotations each for push and grasp: 32 maps in total.
The grasp maps are masked to the object chosen in stage 1, and the robot executes the single highest-value action. Rewards are sparse:
-
GRASP
1.0 if the gripper fingers stay apart, so the object is held
-
PUSH
0.5 if the depth image changes past a threshold
The higher grasp reward makes the robot grasp whenever it can; pushes are only for singulating objects that cannot yet be grasped.
3
Object placement
Correspondence-based placing
Where to put it?
Placement is template matching. ResNet features of the grasped region, cropped around the executed grasp, are cross-correlated with features of the goal image. A depth cross-correlation is subtracted, so occupied pixels score lower:
φplace = φsimilarity − φdepth
This keeps objects off one another and out of other objects' goal locations, which is what makes swaps possible. Orientation comes from evaluating 16 rotations. If no location matches well enough, the object is not in the goal and goes to the bin.