示例#1
0
    def __init__(self, geo, tool_plane):
        ''' tool class for the robot 
        geo = tool geometry as list
        plane = defined tool plane
        geo_trfd = tool geometry transformed that the defined tool plane is aligned with the world xy plane
        '''

        self.geo = geo
        self.plane = tool_plane
        self.frame = Frame(self.plane, draw_geo=True)

        self.T = rg.Transform.PlaneToPlane(self.plane, rg.Plane.WorldXY)
        self.geo_WCS = ghcomp.Transform(self.geo,
                                        self.T)  # tool aligned_with_WCS

        self.plane_WCS = ghcomp.Transform(self.plane,
                                          self.T)  # should be WorldXY plane

        self.collision_geo = self.geo
        self.colors = [
            ghcomp.ColourRGB(100, 100, 150, 200)
            for i, part in enumerate(self.geo)
        ]
示例#2
0
 def __init__(self, geo, gantry_plane):
     ''' gantry class for the rfl 
     geo = gantry geometry as list
     plane = defined gantry plane - if default - [0,0,0,x,y]
     '''
     
     self.geo = geo
     self.plane = gantry_plane
     self.frame = Frame(self.plane, draw_geo=True)
     
     self.T = rg.Transform.PlaneToPlane(self.plane, rg.Plane.WorldXY)
     self.geo_WCS = ghcomp.Transform(self.geo, self.T) # gantry aligned_with_WCS
     
     self.plane_WCS = ghcomp.Transform(self.plane, self.T) # should be WorldXY plane
示例#3
0
    def get_tool0_pose_from_joint_values_world(self, joint_values):
        ''' the joint values (in degrees)'''

        frame = Frame(
            self.get_tool0_plane_from_joint_values_world(joint_values))
        return frame.get_pose_quaternion()
示例#4
0
 def get_tool_plane_from_pose_quaternion(self, pose_quaternion):
     ''' Returns the tool plane according to the given pose in angle axis. '''
     frame = Frame()
     frame.set_to_pose_quaternion(pose_quaternion)
     return frame.get_plane()
示例#5
0
    def get_tool_pose_in_RCS(self, tp_WCS):
        ''' returns the tool pose in the robot coordinate system from a plane in the world cs'''

        frame = Frame(self.get_tool_plane_in_RCS(tp_WCS))
        return frame.get_pose_angle_axis()
示例#6
0
 def get_frame(self):
     ''' returns the tool frame '''
     return Frame(self.get_plane())
示例#7
0
class Tool(object):

    #===========================================================================
    def __init__(self, geo, tool_plane):
        ''' tool class for the robot 
        geo = tool geometry as list
        plane = defined tool plane
        geo_trfd = tool geometry transformed that the defined tool plane is aligned with the world xy plane
        '''

        self.geo = geo
        self.plane = tool_plane
        self.frame = Frame(self.plane, draw_geo=True)

        self.T = rg.Transform.PlaneToPlane(self.plane, rg.Plane.WorldXY)
        self.geo_WCS = ghcomp.Transform(self.geo,
                                        self.T)  # tool aligned_with_WCS

        self.plane_WCS = ghcomp.Transform(self.plane,
                                          self.T)  # should be WorldXY plane

        self.collision_geo = self.geo
        self.colors = [
            ghcomp.ColourRGB(100, 100, 150, 200)
            for i, part in enumerate(self.geo)
        ]

    #===========================================================================
    def set_collision_geo(self, collision_geo):
        """ collision geo of the LWS tool"""
        self.collison_geo = collision_geo
        self.collison_geo_WCS = ghcomp.Transform(self.collison_geo, self.T)

    #===========================================================================
    def get_plane(self):
        ''' returns the tool plane '''
        return rg.Plane(self.plane)

    #===========================================================================
    def get_frame(self):
        ''' returns the tool frame '''
        return Frame(self.get_plane())

    #===========================================================================
    def get_frame_axes_as_lines(self):
        ''' this method allows you to visualize the tool axes as lines and gh colors '''

        tool_axes = self.frame.get_axes_as_lines(length=100)
        tool_axes_colors = [
            ghcomp.ColourRGB(255, 255, 0, 0),
            ghcomp.ColourRGB(255, 0, 255, 0),
            ghcomp.ColourRGB(255, 0, 0, 255)
        ]

        return tool_axes, tool_axes_colors

    #===========================================================================
    def get_frame_axes_as_lines_WCS(self):
        ''' this method allows you to visualize the tool axes as lines and gh colors transformed into the WCS'''

        tool_axes, tool_axes_colors = self.get_frame_axes_as_lines()
        tool_axes = ghcomp.Transform(tool_axes, self.T)  # aligned_with_WCS

        return tool_axes, tool_axes_colors

    #===========================================================================
    def get_pose_angle_axis(self):
        ''' returns the pose with the axis angle representation '''

        return self.frame.get_pose_angle_axis()

    #===========================================================================
    def get_transformed_geo(self, T):
        ''' returns the tool geo transformed by the input transformation matrix '''

        return ghcomp.Transform(self.geo, T)

    #===========================================================================
    def get_transformed_plane(self, T):
        ''' returns the tool plane transformed by the input transformation matrix '''

        return ghcomp.Transform(self.plane, T)

    #===========================================================================
    def get_transformed_geo_WCS(self, T):
        ''' returns the tool geo_trfd transformed by the input transformation matrix '''

        return ghcomp.Transform(self.geo_WCS, T)