def collision_check(self, x, y): t2 = fcl.Transform(np.array([x, y, 0])) o2 = fcl.CollisionObject(self.g2, t2) request = fcl.ContinuousCollisionRequest() result = fcl.ContinuousCollisionResult() ret = fcl.continuousCollide(self.o1, self.t1, o2, t2, request, result) return ret == 0.0
def __init__(self, dx, dy, dz): self.dx = dx self.dy = dy self.dz = dz self.num_edges = 12 self.fcl_shape = fcl.Box(dx, dy, dz) self.request = fcl.CollisionRequest() self.result = fcl.CollisionResult() self.c_req = fcl.ContinuousCollisionRequest() self.c_res = fcl.ContinuousCollisionResult()
def __init__(self, radius, length, approx_faces=8): self.r = radius self.l = length # the number of faces to use in the polyherdron approximation self.nfac = approx_faces self.num_edges = 3 * self.nfac self.fcl_shape = fcl.Cylinder(radius, length) self.request = fcl.CollisionRequest() self.result = fcl.CollisionResult() self.c_req = fcl.ContinuousCollisionRequest() self.c_res = fcl.ContinuousCollisionResult()
def test_pairwise_continuous_collisions(self): request = fcl.ContinuousCollisionRequest() result = fcl.ContinuousCollisionResult() box = fcl.CollisionObject(self.geometry['box']) cone = fcl.CollisionObject(self.geometry['cone'], fcl.Transform(np.array([0.0, 0.0, -2.0]))) ret = fcl.continuousCollide(box, fcl.Transform(), cone, fcl.Transform(), request, result) '''
dist = fcl.distance( fcl.CollisionObject(box, fcl.Transform()), fcl.CollisionObject(box, fcl.Transform(np.array([1.01, 0.0, 0.0]))), req, res) print_distance_result('Box', 'Box', res) #===================================================================== # Pairwise continuous collision checking #===================================================================== print('=' * 60) print('Testing Pairwise Continuous Collision Checking') print('=' * 60) print() req = fcl.ContinuousCollisionRequest() res = fcl.ContinuousCollisionResult() dist = fcl.continuousCollide( fcl.CollisionObject(box, fcl.Transform()), fcl.Transform(np.array([5.0, 0.0, 0.0])), fcl.CollisionObject(cyl, fcl.Transform(np.array([5.0, 0.0, 0.0]))), fcl.Transform(np.array([0.0, 0.0, 0.0])), req, res) print_continuous_collision_result('Box', 'Cylinder', res) #===================================================================== # Managed collision checking #===================================================================== print('=' * 60) print('Testing Managed Collision and Distance Checking') print('=' * 60) print('')