Add stable grasp prediction stopping criteria

This commit is contained in:
Michel Breyer
2021-09-11 22:31:48 +02:00
parent 8d3f2c1a1a
commit e8dff9bf5c
2 changed files with 23 additions and 3 deletions

View File

@@ -24,7 +24,7 @@ class NextBestView(MultiViewPolicy):
self.view_candidates.append(view)
def update(self, img, x):
if len(self.views) > self.max_views:
if len(self.views) > self.max_views or self.best_grasp_prediction_is_stable():
self.done = True
else:
self.integrate(img, x)
@@ -37,6 +37,19 @@ class NextBestView(MultiViewPolicy):
nbv, _ = views[i], gains[i]
self.x_d = nbv
def best_grasp_prediction_is_stable(self):
if self.best_grasp:
t = (self.T_task_base * self.best_grasp.pose).translation
i, j, k = (t / self.tsdf.voxel_size).astype(int)
qs = self.qual_hist[:, i, j, k]
if (
np.count_nonzero(qs) == self.T
and np.mean(qs) > 0.9
and np.std(qs) < 0.05
):
return True
return False
def ig_fn(self, view, downsample=20):
fx = self.intrinsic.fx / downsample
fy = self.intrinsic.fy / downsample