Similar to AdaGrasp [1]} and Transporter [2]}, we use cross convolution to do feature-level matching between the scene and end effector. \(\psi (\mathbf {e})\)  is used as a convolutional kernel translated across \(\phi (\mathbf {s})\) . This results in a feature map which is further processed by a convolutional decoder that outputs the dense action-value map. Encoder and decoder architecture details are based on those of AdaGrasp, but 3D convolutions are converted to 2D convolutions for simplicity and efficiency. This is repeated \(K=16\)  times as the end effector image is rotated in \(\theta =2\pi /K\)  intervals around its center for each possible action orientation. The final stacked output is a map \(Q \in \mathbb {R}^{H \times W \times K} \) , where \(Q(i,j,k)\)  corresponds to the score of specific pose parameters for an action primitive: \(ij\)  corresponds to an action position and \(k\)  corresponds to an action orientation.
