def __init__(self, header=None, orientation=None, link_name=None, absolute_x_axis_tolerance=0.0, absolute_y_axis_tolerance=0.0, absolute_z_axis_tolerance=0.0, weight=1): """ Notes ----- The naming of the absolute_x/y/z_axis_tolerances might be misleading: If you specify the absolute_x/y/z_axis_tolerances with [0.01, 0.01, 6.3], it means that the frame's x-axis and y-axis are allowed to rotate about the z-axis by an angle of 6.3 radians, whereas the z-axis can only change by 0.01. """ self.header = header or Header() self.orientation = orientation or Quaternion( ) # geometry_msgs/Quaternion self.link_name = link_name or "" self.absolute_x_axis_tolerance = float(absolute_x_axis_tolerance) self.absolute_y_axis_tolerance = float(absolute_y_axis_tolerance) self.absolute_z_axis_tolerance = float(absolute_z_axis_tolerance) self.weight = float(weight)
def __init__(self, header=None, id="collision_obj", type=None, primitives=None, primitive_poses=None, meshes=None, mesh_poses=None, planes=None, plane_poses=None, subframe_names=None, subframe_poses=None, operation=0): self.header = header or Header( ) # a header, used for interpreting the poses self.id = id # the id of the object (name used in MoveIt) self.type = type or ObjectType( ) # The object type in a database of known objects # solid geometric primitives self.primitives = primitives or [] self.primitive_poses = primitive_poses or [] # meshes self.meshes = meshes or [] self.mesh_poses = mesh_poses or [] # bounding planes self.planes = planes or [] self.plane_poses = plane_poses or [] self.operation = operation # ADD or REMOVE or APPEND or MOVE
def from_msg(cls, msg): kwargs = {} kwargs['header'] = Header.from_msg(msg['header']) kwargs['id'] = msg['id'] kwargs['type'] = ObjectType.from_msg(msg['type']) kwargs['pose'] = Pose.from_msg( msg['pose']) if 'pose' in msg else Pose() kwargs['primitives'] = [ SolidPrimitive.from_msg(i) for i in msg['primitives'] ] kwargs['primitive_poses'] = [ Pose.from_msg(i) for i in msg['primitive_poses'] ] kwargs['meshes'] = [Mesh.from_msg(i) for i in msg['meshes']] kwargs['mesh_poses'] = [Pose.from_msg(i) for i in msg['mesh_poses']] kwargs['planes'] = [Plane.from_msg(i) for i in msg['planes']] kwargs['plane_poses'] = [ Pose.from_frame(i) for i in msg['plane_poses'] ] kwargs['operation'] = msg['operation'] return cls(**kwargs)
def __init__(self, header=None, id="collision_obj", type=None, primitives=None, primitive_poses=None, meshes=None, mesh_poses=None, planes=None, plane_poses=None, subframe_names=None, subframe_poses=None, operation=0, pose=None): self.header = header or Header( ) # a header, used for interpreting the poses self.id = id # the id of the object (name used in MoveIt) self.type = type or ObjectType( ) # The object type in a database of known objects self.pose = pose or Pose( ) # currently not actively used in FAB, but needed to be present otherwise ROS Noetic complains about empty quaternion # solid geometric primitives self.primitives = primitives or [] self.primitive_poses = primitive_poses or [] # meshes self.meshes = meshes or [] self.mesh_poses = mesh_poses or [] # bounding planes self.planes = planes or [] self.plane_poses = plane_poses or [] self.operation = operation # ADD or REMOVE or APPEND or MOVE
def __init__(self, header=None, link_name=None, target_point_offset=None, constraint_region=None, weight=None): self.header = header or Header() self.link_name = link_name or "" self.target_point_offset = target_point_offset or Vector3(0., 0., 0.) # geometry_msgs/Vector3 self.constraint_region = constraint_region or BoundingVolume() # moveit_msgs/BoundingVolume self.weight = float(weight) or 1.
def __init__(self, header=Header(), min_corner=Vector3(-1000, -1000, -1000), max_corner=Vector3(1000, 1000, 1000)): self.header = header self.min_corner = min_corner self.max_corner = max_corner
def __init__(self, header=None, link_name=None, target_point_offset=None, constraint_region=None, weight=None): self.header = header if header else Header() self.link_name = link_name if link_name else "" self.target_point_offset = target_point_offset if target_point_offset else Vector3(0.,0.,0.) # geometry_msgs/Vector3 self.constraint_region = constraint_region if constraint_region else BoundingVolume() # moveit_msgs/BoundingVolume self.weight = float(weight) if weight else 1.
def from_collision_mesh(cls, collision_mesh): """Creates a collision object from a :class:`compas_fab.robots.CollisionMesh` """ kwargs = {} kwargs['header'] = Header(frame_id=collision_mesh.root_name) kwargs['id'] = collision_mesh.id kwargs['meshes'] = [Mesh.from_mesh(collision_mesh.mesh)] kwargs['mesh_poses'] = [Pose.from_frame(collision_mesh.frame)] return cls(**kwargs)
def __init__(self, header=None, min_corner=None, max_corner=None): self.header = header or Header() self.min_corner = min_corner or Vector3(-1000, -1000, -1000) self.max_corner = max_corner or Vector3(1000, 1000, 1000)