WO2022119222A1 - 다수 공작물 좌표계 간의 모션 제어 방법, 장치 및 시스템 - Google Patents

다수 공작물 좌표계 간의 모션 제어 방법, 장치 및 시스템 Download PDF

Info

Publication number
WO2022119222A1
WO2022119222A1 PCT/KR2021/017362 KR2021017362W WO2022119222A1 WO 2022119222 A1 WO2022119222 A1 WO 2022119222A1 KR 2021017362 W KR2021017362 W KR 2021017362W WO 2022119222 A1 WO2022119222 A1 WO 2022119222A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion
path
coordinate system
driving
setting
Prior art date
Application number
PCT/KR2021/017362
Other languages
English (en)
French (fr)
Inventor
서영호
Original Assignee
엘에스일렉트릭 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘에스일렉트릭 주식회사 filed Critical 엘에스일렉트릭 주식회사
Publication of WO2022119222A1 publication Critical patent/WO2022119222A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23KSOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
    • B23K11/00Resistance welding; Severing by resistance heating
    • B23K11/10Spot welding; Stitch welding
    • B23K11/11Spot welding
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23QDETAILS, COMPONENTS, OR ACCESSORIES FOR MACHINE TOOLS, e.g. ARRANGEMENTS FOR COPYING OR CONTROLLING; MACHINE TOOLS IN GENERAL CHARACTERISED BY THE CONSTRUCTION OF PARTICULAR DETAILS OR COMPONENTS; COMBINATIONS OR ASSOCIATIONS OF METAL-WORKING MACHINES, NOT DIRECTED TO A PARTICULAR RESULT
    • B23Q15/00Automatic control or regulation of feed movement, cutting velocity or position of tool or work
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39219Trajectory tracking

Definitions

  • the present invention relates to a method, apparatus and system for motion control, and more particularly, to a method for controlling motion between a plurality of product coordinate systems (PCS) such as pick-and-place. , devices and systems.
  • PCS product coordinate systems
  • industrial controllers such as motion controllers are not limited to a specific maker or product and are designed to follow the PLCopen standard for mutual compatibility. That is, the PLCopen standard defines function blocks of various commands, and in particular, has standards for motion control and safety related technologies in addition to the I/O sequence control of the existing PLC.
  • the motion control-related functions include single-axis and multi-axis control technology, and CAM and synchronize control technology for group operation are implemented together in the multi-axis control technology.
  • the synchronous control technology of multi-axis control is divided into a technology for 'shortened vs. shortened', a technology for 'single-to-multi-axis', and a technology for 'multi-axis versus multiple axes'.
  • MCS machine coordinate system
  • PCS product coordinate system
  • the linear/non-linear profile trajectory
  • FIG. 1 shows an example of motion control according to the state of an object. That is, FIG. 1A shows an example of motion control when the object is in a stationary state, and FIG. 1B shows an example of motion control when the object is in a moving state.
  • axis-group refers to a group including multiple axes, in which the coordinate system for all other axes (slave axes) can be expressed through the expression of the coordinate system for one axis (master axis).
  • axis-group means that each slave axis has a specific relationship with respect to the master axis (that is, a relationship in which the position of the slave axis is determined linearly or non-linearly depending on the position of the master axis), and the profile for this specific relationship is already known. is a group
  • the robots are configured in axis-groups to enable synchronous control for one axis or multiple axes.
  • a plurality of PCSs for different mechanical devices such as pick-and-place (hereinafter referred to as “”), etc.
  • pick-and-place hereinafter referred to as “”.
  • the present invention is a complex type of operation situation that cannot be responded to with commands according to the existing PLCopen standard, such as Pick-and-Place (PnP) between multiple PCS coordinate systems.
  • PLCopen standard such as Pick-and-Place (PnP) between multiple PCS coordinate systems.
  • PnP Pick-and-Place
  • an object of the present invention is to provide a technology that enables PnP operation of a robot between a plurality of different PCS coordinate systems in which tracking is in progress on a specific axis or axis-group.
  • Another object of the present invention is to provide a technology capable of synchronizing an event input in an external environment and signaling an event during PnP operation.
  • Another object of the present invention is to provide a technique for configuring a library-type command (User defined function block) by utilizing the command defined in the PLCOpen standard as a basic building block.
  • a motion control method for solving the above problems is a method performed in a system including a motion controller for motion control between a plurality of product coordinate systems (PCS), and a plurality of points
  • a first setting step of setting a driving route including; a second setting step of setting, for the workpiece coordinate system of each point of the driving path, a work coordinate system based on a machine coordinate system (MCS) of a machine located at the last point of the driving path as a reference; and a driving step of performing a motion operation according to a set work coordinate system and a driving path.
  • PCS product coordinate systems
  • MCS machine coordinate system
  • the starting point and the ending point may be points in different workpiece coordinate systems according to different mechanical devices.
  • the second setting step may include reflecting tracking according to the movement of the mechanical device with respect to the workpiece coordinate system of the respective points.
  • the driving path may be an arch-shaped path for driving a pick and place (PnP).
  • the arcuate path includes a first motion path of upward movement of height h up , a third motion path of downward movement of height h down , and a second motion path of l width unidirectional movement between the first and third motions.
  • the first curved motion path has a path of specific curvature for a distance d 1 from h up and l, respectively
  • the second curved motion path has a specific curvature of a specific curvature for a distance d 2 from h down and l, respectively.
  • the first setting step may include setting a plurality of driving paths and indexes of input/output events for each driving path.
  • the second setting step may include setting a work coordinate system for each point of the driving path matching the index of the input/output event.
  • the driving may include driving a driving route matching an index of an input/output event.
  • the second setting step and the driving step may be sequentially and repeatedly performed for each of the set driving routes.
  • the motion control method according to an embodiment of the present invention is applicable when there is no command of the PLCopen standard for tracking a plurality of PCS coordinate systems, but the second setting step and the operation step include a command according to the PLCopen standard. It can be performed using
  • the command for performing the first setting step may receive an output setting value of an end-effector driver of the robot and a correction value of a sensor required for each driving path.
  • the command for performing the driving step may include an input for updating to compensate for the movement/rotation amount of the tracking object and an input for overriding a speed set for the current driving path, respectively.
  • a motion controller is a controller for motion control between a plurality of product coordinate systems (PCS).
  • PCS product coordinate systems
  • a path setting unit for setting a driving path that is a point of the work coordinate system
  • a coordinate system setting unit that sets the workpiece coordinate system of each point of the driving path to a work coordinate system based on a machine coordinate system (MCS) of a machine located at the last point of the driving path
  • MCS machine coordinate system
  • driving control unit configured to operate a motion according to a set work coordinate system and a driving path.
  • the coordinate system setting unit may reflect tracking according to the movement of the mechanical device when setting the work coordinate system of the respective points.
  • a motion control system is a system for motion control between a plurality of product coordinate systems (PCS).
  • PCS product coordinate systems
  • a driver for driving a motion device wherein the motion controller sets a driving path that includes a plurality of points, but a starting point and an ending point are points in different workpiece coordinate systems according to different mechanical devices, each of the driving paths Set the work coordinate system based on the machine coordinate system (MCS) of the machine located at the last point of the driving path with respect to the work coordinate system of the points, and control the operation of motion according to the set work coordinate system and driving path do.
  • MCS machine coordinate system
  • the present invention configured as described above has the advantage of enabling motion control for complex types of driving situations that cannot be responded to with commands according to the existing PLCopen standard, such as Pick-and-Place (PnP) between multiple PCS coordinate systems. .
  • PLCopen standard such as Pick-and-Place (PnP) between multiple PCS coordinate systems.
  • the present invention has the advantage of enabling PnP operation of the robot between a plurality of different PCS coordinate systems in which tracking is in progress on a specific axis or axis-group.
  • the present invention has an advantage in that it is possible to synchronize an event input of an external environment during PnP operation and to signal an event.
  • the present invention has the advantage that it is possible to implement a library-type command (User defined function block) by utilizing the command defined in the PLCOpen standard as a basic building block.
  • the driving route can be updated based on the PCS coordinate system of the mechanical device to which the last point belongs, so memory is small and cost is low. There is an advantage.
  • FIG 1 shows an example of motion control according to the state of an object.
  • FIG. 2 is a block diagram showing a motion control system 10 according to an embodiment of the present invention.
  • FIG. 4 shows an example of a profile and a command of the axis-to-axis synchronization of a master and a slave according to the PLCopen standard.
  • FIG. 5 shows an example of commands and parameters for setting a work coordinate system (PCS) according to the PLCopen standard.
  • PCS work coordinate system
  • FIG. 6 shows an example of an axis-group to axis-group tracking and a command thereof.
  • FIG. 10 shows an interface configuration of a driving route teaching command.
  • 11 shows an interface configuration of a route driving command.
  • FIG. 12 shows another expanded example of a general form of tracking between an axis-group versus an axis-group.
  • terms such as “or” and “at least one” may indicate one of the words listed together, or a combination of two or more.
  • “or B” and “at least one of B” may include only one of A or B, or both A and B.
  • 'first' and 'second' may be used to describe various components, but the components should not be limited by the above terms.
  • the above terms should not be construed as limiting the order of each component, and may be used for the purpose of distinguishing one component from another.
  • a 'first component' may be referred to as a 'second component'
  • a 'second component' may also be referred to as a 'first component'.
  • FIG. 2 is a block diagram showing a motion control system 10 according to an embodiment of the present invention.
  • the motion control system 10 is a system for controlling a plurality of motion devices (or actuators) such as a servo motor, a step motor, and the like, and as shown in FIG. 2 , an external device 100 , a motion controller 200 , a driver 300 , and a motion device (not shown).
  • a plurality of motion devices such as a servo motor, a step motor, and the like, and as shown in FIG. 2 , an external device 100 , a motion controller 200 , a driver 300 , and a motion device (not shown).
  • the external device 100 is a device that manages all control operations of the motion control system 10 . That is, a user or an administrator may access the motion controller 200 through the external device 100 to set and manage control of the operation of each drive 300 . For example, the external device 100 may transmit a control command such as a driving command or a tuning command to the motion controller 200 .
  • the external device 100 may be an electronic device such as a computing capable terminal or a programmable logic controller (PLC).
  • the terminal includes a desktop personal computer (PC), a laptop personal computer (PC), a tablet personal computer (PC), a netbook computer, a smart phone, and a smart pad. , or a personal digital assistant (PDA), etc., but is not limited thereto.
  • PC personal computer
  • PC laptop personal computer
  • PC tablet personal computer
  • PDA personal digital assistant
  • a control command may be transmitted to the motion controller 200 through a user interface (not shown) such as a manipulation panel.
  • the motion controller 200 is connected to each drive 300 and controls the operation of each drive 300 according to a control command received from the external device 100 or a user interface.
  • the motion controller 200 may control the operation of each drive 300 according to the PLCopen standard.
  • the motion controller 200 may drive each drive 300 based on data such as pre-stored driving profile information and tuning parameter information.
  • the drive 300 is a device for driving a motion device according to a control signal received from the motion controller 200 .
  • the drive 300 is provided with a plurality (300-1, ... where n is a natural number greater than or equal to 2), and each drive 300 drives each motion device individually.
  • the drive 300 may be a step motor driver or a servo motor driver, but is not limited thereto.
  • the plurality of drives 300 may be connected to the motion controller 200 in various topologies.
  • the topology may be a bus topology, a star topology, a ring topology, a tree topology, or a mesh topology, but is not limited thereto. not.
  • a drive that is a master and a drive that is a slave may be included.
  • the motion control system 10 may include a plurality of mechanical devices such as a robot, a conveyor, and a rotary table.
  • at least one motion device may be provided in one mechanical device.
  • the position of the object may vary according to the driving of the motion device.
  • the motion controller 200 may include a path setting unit 210 , a coordinate system setting unit 220 , and a driving control unit 230 , and these components are hardware processors. ) or may be included in a process that is software executed by the processor, but is not limited thereto. Also, the route setting unit 210 , the coordinate system setting unit 220 , and the driving control unit 230 may be included in the configuration of the external device 100 .
  • the types of coordinate systems defined in the PLCopen standard include an axis coordinate system (ACS), a machine coordinate system (MCS), and a product coordinate system (PCS). At this time, it is possible to obtain MCS from ACS and homogeneously convert to PCS.
  • ACS axis coordinate system
  • MCS machine coordinate system
  • PCS product coordinate system
  • FIG. 4 shows an example of a profile and a command of the axis-to-axis synchronization of a master and a slave according to the PLCopen standard. That is, FIG. 4(a) shows an example of a profile of a master axis versus a slave axis, and FIG. 4(b) shows an example of a function block of a synchronization command for a master axis versus a slave axis.
  • MC_CamIn defined as a synchronization command between axes may be used.
  • FIG. 5 shows an example of commands and parameters for setting a work coordinate system (PCS) according to the PLCopen standard. That is, FIG. 5(a) shows an example of a function block of a PCS setting command, and FIG. 5(b) is an example of translation parameters, that is, an example of coordinate system transformation from MCS to PCS by translation and rotation. , and FIG. 5( c ) shows an example of rotation parameters.
  • PCS work coordinate system
  • the following process may be performed for PCS setting. That is, if A and B are configured as an axis-group, the MCS coordinate system of the A axis-group is expressed as MCS A , the PCS coordinate system is expressed as PCS A , the MCS coordinate system of the B axis-group is MCS B , and the PCS coordinate system is PCS It can be expressed as B.
  • MCS A MCS A
  • PCS B MCS B
  • PCS coordinate system PCS It can be expressed as B.
  • Equation (1) represents a homogeneous transformation matrix composed of the PCS coordinate system origin (P PCSORG ) and the rotation matrix (R) for the P point of the MCS coordinate system
  • Equation (2) is the MCS coordinate system and the PCS coordinate system.
  • Equation (3) represents the mapping of the A-axis-group PCS coordinate system and the B-axis-group PCS coordinate system to the coordinate system transformation between the A-axis-group and B-axis-group.
  • a coordinate system transformation between axes-groups A and B can use the command of MC_SetDynCoordTransform defined as a function block.
  • the coordinate system transformation within axis-group B can use the command of MC_SetCoordinateTransform defined as a function block.
  • FIG. 6 shows an example of an axis-group to axis-group tracking and a command thereof. That is, FIG. 6(a) shows tracking for a conveyor belt, and FIG. 6(b) shows a function block of commands for tracking the conveyor belt. In addition, that is, FIG. 6(c) shows tracking for a rotary table, and FIG. 6(d) shows a function block of commands for tracking the rotary table.
  • Axes-group versus axis-to-group tracking commands can be defined for synchronization between axis-groups.
  • the synchronized motion trajectory can be viewed as a superposition of two independent motions.
  • a method of applying multidimensional gear operation (linear superposition by coordinates) (the first implementation method) and applying a coordinate system transformation matrix (that is, a function block according to PLCOpen standard)
  • a coordinate system transformation matrix that is, a function block according to PLCOpen standard
  • a function block parameterized exclusively for the conveyor belt can be defined as a command of MC_TrackConveyorBelt, as shown in FIG. configurable.
  • the amount of movement of the conveyor belt (TransMCS_ CB ) and the amount of rotation of the conveyor belt (RotMCS_ CB ) can be obtained.
  • the movement amount (TransCB_ PCS ) of the PCS coordinate system and the rotation amount (RotCB_ PCS ) of the PCS coordinate system can be obtained.
  • the position of the object (P PCS ) can be obtained.
  • Figure 6 (b) shows a case in which the robot is placed on a rotary table to track a rotating object.
  • the function block parameterized exclusively for the rotary table can be defined as the command of MC_TrackRotaryTable, as shown in FIG.
  • the interface is configurable. Specifically, the movement amount of the rotary table and the rotation amount of the rotary table can be obtained based on the MCS coordinate system of the robot. In addition, based on the MCS coordinate system of the rotary table, the movement amount and rotation amount of the PCS coordinate system can be obtained. In addition, the position of the object can be obtained based on the PCS coordinate system of the rotary table.
  • FIG. 7 shows an example of a situation in which Pick-and-Place (PnP) is required between two PCSs being tracked for a specific axis. That is, FIG. 7 shows equipment for performing PnP operation using a robot between different pallets that are rotating/moving on a rotary table and a conveyor belt, respectively.
  • the case of FIG. 7 corresponds to a complex case having a plurality of PCS, and corresponds to a case in which implementation is difficult only with motion control commands defined in the conventional PLCOpen standard.
  • a pallet is attached to the rotary table and rotates together with the rotary table.
  • a sensor (rotary encoder) is attached to the conveyor to know the conveying amount of the conveyor belt from the reference position.
  • a sensor (encoder) is attached to the rotary table to know the rotation amount of the rotary table from the reference position.
  • the conveyor has a sensor that can detect the presence of pallets, and when the sensor detects, it is possible to measure the coordinates of the origin of the pallet at the time of detection and the misaligned angle of the origin through machine vision.
  • Pallets of conveyor belts and rotary tables are grooved at regular intervals, and the grooves contain objects (eg, iron marbles) (hereinafter, it is assumed that the objects are iron marbles).
  • objects eg, iron marbles
  • - Delta robot is equipped with an electromagnet on a gripper, and the electromagnet is used to pick up iron beads from a moving pallet on a conveyor belt in turn, and transfer the iron beads to a rotating pallet on a rotary table.
  • the rotary table rotates in synchronization with the movement of the conveyor belt.
  • both the conveyor belt and the rotary table have their machine origins at different positions on the XY plane.
  • a conveyor belt is skewed by 20 degrees and a rotary table by 45 degrees with respect to the origin of a delta robot machine along the Z axis (with instrument interference at other positions or angles)
  • the rotary table must move or contain all the iron beads on the pallet passing the conveyor belt within a certain angle range (other angles interfere with the mechanism on the rotary table side)
  • Synchronization operation for the rotary table rotation axis (slave) is possible according to the CAM profile set according to the conveyor axis (master) by using the command (MC_CamIn) related to synchronization between axes
  • the robot After setting the PCS coordinate system for the pallet placed on the conveyor using the command (MC_SetCoordinateTransform) related to the coordinate system transformation within the axis-group, the robot moves the conveyor movement axis by using the command (MC_TrackConveyorBelt) to track the object placed on the conveyor belt. can be tracked for
  • the robot After setting the PCS coordinate system for the pallet placed on the rotary table using the command (MC_SetCoordinateTransform) related to the coordinate system transformation within the axis-group, the robot is placed on the rotary table to track the rotating object by using the command ( MC_TrackRotaryTable). Can be tracked on the axis of rotation of the table
  • the following will present a technology that enables PnP operation of a robot between a plurality of different PCS coordinate systems in which tracking is in progress on a specific axis or axis-group.
  • it is intended to present a technology capable of synchronizing an event input in an external environment and signaling an event during PnP operation.
  • FIG. 8 shows a definition of an arc-shaped motion for Pick and Place
  • FIG. 9 shows a configuration of a state machine
  • FIG. 10 shows an interface configuration of a driving route teaching command
  • FIG. 11 shows an interface configuration of a route driving command.
  • the control according to FIGS. 8 to 11 may be performed through the external device 100 or the motion controller 200 .
  • the route setting according to FIG. 8 and control according to the driving route teaching command of FIG. 10 may be performed by the route setting unit 210, and the control according to S101 and S102 of FIG. 9 may be performed by the coordinate system setting unit 220.
  • the control according to the route driving command of FIG. 11 and the control according to S103 to S105 of FIG. 9 may be performed by the driving controller 230 .
  • the driving path teaching command of FIG. 10 is a command for setting a driving path, and details of the input/output are shown in Table 1 below.
  • LS_TRobotPathCfg PathCfg Store all configuration data in the function block Input BOOL Enable Input data is continuously updated at a high level LS_TRobotCoordCfg CoordCfg Coordinate system configuration data
  • route driving command of FIG. 11 is a command for performing driving along a set route, and the contents of the input/output are shown in Table 2 below.
  • Input BOOL Execute Sequentially executes the learned paths stored in the PathCfg array between StartPathIdx and EndPathIdx LS_TRobotPathCfg PathCfg Path configuration data indexed in PathCfg array
  • BOOL EnableWaitNum Enables waiting for events that occur in the start and finish sessions of the route BOOL EnableSetObj Must be set to true to update object position at path start UINT InWaitNum Event numbers that must match to start traversing the route UINT OutWaitNum Event number to complete route movement LREAL[0..5] ObjectPosition If EnableSetObj is true, the current object position can be changed to the newly measured position ObjectPosition[X, Y, Z, A, B, C] BOOL EnableTestStep Must be set to true to convert point-by-point movement to point-to-point movement to step through path LREAL VelOverFactor Overrides the speed set for the current driving route
  • Function block increases or decreases the NextPathIdx value compared to the EndPathIdx value.
  • BOOL StopPathRun 1 Stop the current path 0: Wait for the execution trigger to restart the function block from the path marked by NextPathIdx Output BOOL Done Configured Full Path Step Completed BOOL Busy
  • the function block is processing BOOL Active Indicates that the function block is controlling the axis group BOOL Error Notifies that an error has occurred within a function block BOOL CommandAborted Command is aborted by another command WORD ErrorID Error identification UINT SignalNum Signals event number both in the initiation of the path and in the completion of the path LREAL EffectorForce Outputs it at the beginning of the path and holds it until another function block changes it to 0.
  • the path of a PnP motion may include multiple points, the starting point and the ending point of which are in different workpiece coordinate systems (i.e., along the conveyor belt) according to different mechanical devices (i.e., conveyor belt and rotary table). PCS and PCS according to the rotary table).
  • the path of the PnP motion may be defined in an arcuate shape, with a first motion moving in an upward direction (the length is h up ) and a third motion moving in a downward direction (the length being h down ). ) and a second motion (the length of which is l) moving in one direction between the first motion and the third motion may be included, respectively.
  • the path of the PnP motion is between the first and second motions and between the second and third motions, in order to minimize the impact caused by a sudden change in direction, a motion that moves in a curved shape (hereinafter, “each It may be desirable to further include the "first and second curved motions"). That is, between the first and second motions, the first curved motion is a distance from h up and l by d 1 , respectively. It can move in a curved form of a specific curvature with respect to the distance in the upper direction and one direction). Also, between the second and third motions, the second curved motion may move in a curved form of a specific curvature for a distance (a distance in a lateral direction and a downward direction) of d 2 in h down and l, respectively.
  • the PnP path of FIG. 8 includes P 0 (x 0 , y 0 , z 0 ) that is information on the start point of the first motion (the start point of h up ), and the last point of the first motion (the end of h up ).
  • P 0 corresponds to the starting point of the path
  • P 3 corresponds to the last point of the path.
  • Equations (4) and (5) may be used.
  • min(a, b) represents a smaller (minimum) length value among a and b
  • ArchBlendRatio represents a ratio value (0.0 ⁇ 1.0) to the minimum length value. That is, d 1 and d 2 have a length corresponding to a specific selected ratio from the corresponding minimum length value.
  • the InWait event the driving route including the complex route for the PnP motion of FIG. 7 (the corresponding route may have Discrete, Continuous, and Synchronized characteristics), and the OutWait event number Each input (teaching) can be received.
  • the state machine according to FIG. 9 performs initialization while outputting InSignal (S101), and after performing MCS/PCS coordinate system setting and tracking setting synchronized to a specific axis/axis-group (S102), a determined path is performed (S103), and then, while outputting an OutSignal event and ending driving for one route (S104), the route index value is updated (S105).
  • the state machine performs S103 only when an InWait event is received after performing S102, and outputs an OutWait event after S104.
  • the InWait event may be generated according to an operation of a previous state machine, a sensor, or the like.
  • Such an operation of the state machine may be performed for all paths (a plurality of arc-shaped paths, that is, a plurality of paths according to FIG. 7 ) for each path. That is, when the operation of one state machine is finished, the operation of the next state machine may be performed.
  • operations of a plurality of state machines ie, generation of each arch-shaped path and path operation
  • S102 includes a coordinate system setting (PCS Setting) step and a tracking setting (Tracking Setting) step.
  • PCS Setting coordinate system setting
  • Tracking Setting tracking setting
  • the step of setting the coordinate system is a step of setting the PCS coordinate system for each point of the path at the first point of the path based on the MCS coordinate system of the mechanical device located at the last point of the path.
  • P 0 which is the starting point of the arcuate path
  • P 3 which is the end (completed) point of the arcuate path
  • P 0 is a point at which the robot picks the iron bead in the first mechanical device
  • P 3 is a point where the robot places the iron ball with the second mechanical device.
  • each point of the corresponding arcuate path (ie, P 0 , P 3 , and the first and second curved motions) Set the PCS coordinate system for the point).
  • the point at the moment when the robot picks the iron beads from the conveyor belt is P 0
  • the point at the moment when the robot places the iron beads on the rotary table is P 3
  • the PnP route including these P 0 and P 3 as the starting point and the last point is set as one driving route (hereinafter referred to as the “first driving route”)
  • the The PCS coordinate system based on the MCS coordinate system is set.
  • the first driving path and its PCS coordinate system for PnP for the plurality of beads may be set at the time of execution of different state machines, respectively. At this time, since the positions of the iron beads are different, the positions of P 0 and P 3 in these first driving paths may also be different.
  • the point at the moment when the robot picks the iron beads from the rotary table is P 0
  • the point at the moment when the robot places the iron beads on the conveyor belt is P 3 .
  • the PnP path including these P 0 and P 3 as the starting point and the last point is set as one driving path (hereinafter, referred to as a “second driving path”)
  • the second driving path and the PCS coordinate system for PnP for the plurality of marbles may be set when different state machines are executed. At this time, since the positions of the iron beads are different, the positions of P 0 and P 3 in these second driving paths may also be different.
  • the tracking setting step is a step of setting to reflect the movement of the mechanical device with respect to the PCS coordinate system of the path set in the coordinate system setting step.
  • the PCS coordinate system for the arch-shaped path (ie, any first driving path) is set in the coordinate system setting stage, and the tracking setting stage for the set PCS coordinate system
  • the reflection of the movement of the mechanical device (rotary table) of the last point is set.
  • one state machine performs PCS coordinate system setting and tracking setting for one first driving path.
  • each of the first driving route setting, the PCS coordinate system setting, and the tracking setting may be performed one by one when different state machines are operated. That is, for PnP for any one metal ball of the conveyor belt, while one state machine is operating, any one first driving route setting, the PCS coordinate system setting, and tracking setting are sequentially performed. After that, for PnP of the other metal bead of the conveyor belt, while the other state machine is operating, the other first driving route setting, the PCS coordinate system setting, and the tracking setting are sequentially performed. This setting can be repeated until all the iron beads of the conveyor belt are PnP moved to the rotary table.
  • the PCS coordinate system for the arch-shaped path ie, any second driving path
  • the tracking setting stage for the set PCS coordinate system The reflection of the movement of the mechanical device (conveyor belt) of the last point is set.
  • one state machine performs PCS coordinate system setting and tracking setting for one second driving path.
  • each of the second driving route setting, the PCS coordinate system setting, and the tracking setting may be performed one by one when different state machines are operated. That is, for PnP for any one metal ball of the rotary table, while one state machine is operating, any one second driving route setting, the PCS coordinate system setting, and the tracking setting are sequentially performed. Thereafter, for PnP of the other metal ball of the rotary table, while the other state machine operates, another second driving route setting, the PCS coordinate system setting, and the tracking setting are sequentially performed. These settings can be repeated until all the iron beads on the rotary table are PnP moved to the conveyor belt.
  • the present invention is the last point when performing PnP between points in different workpiece coordinate systems (ie, PCS along conveyor belt and PCS along rotary table) according to different mechanical devices (ie, conveyor belt and rotary table). Because the driving route can be updated based on the PCS coordinate system of the mechanical device to which it belongs (that is, it is not necessary to update every PCS coordinate every time), memory and cost can be low.
  • the coordinate system setting step and the tracking setting step can be set using a command according to the PLCOpen standard.
  • the coordinate system setting step may be performed using commands such as MC_SetCoordinateTransfrom and MC_SetCartesianTransfroms
  • the tracking setting step may be performed using commands such as MC_SetDynCoordTransform, MC_TrackConveyorBelt, MC_TrackRotaryTable, etc. not.
  • MC_SetCoordinateTransfrom and MC_SetCartesianTransfroms are commands for converting a coordinate system, and as shown in FIG. 13 , only the arguments of each command are different. That is, by using these commands, as shown in FIG. 5( b ), the coordinate system transformation is possible from the MCS corresponding to the World coordinate system to the PCS corresponding to the Local coordinate system.
  • MC_SetCoordinateTransform is configured in a more general form. TransX, TransY, TransZ, RotAng1, RotAng2, and RotAng3 are not separately input to the input called CoordTransform, but a matrix including all of them is directly input.
  • the state machine of FIG. 9 is performed for every path within the path operation command of FIG. 11, and the PLCOpen command is used as it is for MCS/PCS coordinate system setting, tracking setting, and Discrete/Continuous/Synchronized motion.
  • the set value of the robot gripper actuator can be input (teaching) for every path, and output is possible for every path in the state machine of FIG. 9 .
  • the driving route teaching command of FIG. 10 may receive input (teaching) InSignal and OutSignal event numbers, and the route driving command of FIG. 11 may output corresponding InSignal and OutSignal event numbers through the state machine of FIG. 9 .
  • an initial object position value (ObjectPosition) of the PCS coordinate system of the current path may be received, and may be updated with a new position value when tracking is set in the state machine of FIG. 9 .
  • the driving route is set in the form corresponding to FIG. 8, collisions and speed discontinuities may not occur when performing PnP motion from a pallet at one point to a pallet at another point.
  • the path operation command of FIG. 11 can be operated as a motion command of the PLCOpen standard through the state machine of FIG. 9 .
  • PnP operation is possible between PCS coordinate systems set (teaching) to infinite number.
  • This PnP operation is possible because the state machine of FIG. 9 is executed in the route driving command block of FIG. 11 while switching to the PCS coordinate system number of the current route received (teaching) from the driving route teaching command of FIG. 10 .
  • the present invention even when switching to the PCS coordinate system of the current route while driving, an object of the newly recognized PCS coordinate system can be accurately tracked. This is because, in the route driving command of FIG. 11, the initial object position value (ObjectPosition) of the PCS coordinate system of the current route can be received and updated with a new position value when tracking is set in the state machine of FIG. will be.
  • the present invention it is possible to determine the exact timing of switching to the PCS coordinate system of the current route while driving. This is because the InWait and OutWait event numbers input (teaching) from the driving path teaching command of FIG. 10 are monitored by receiving the input from the path driving command of FIG. 11, and the state transitions in the state machine of FIG. 9 in synchronization with the input. Such an accurate timing determination is possible.
  • the InWait and OutWait event numbers may be provided by the user calling the route driving command of FIG. 11 . This is because the state machine of FIG. 9 signals the InSignal and OutSignal event numbers to the user as the route driving command output of FIG. 11 , so the user can know the timing of providing the InWait and OutWait event numbers.
  • the robot can interact with the complex surrounding environment in addition to driving the inputted entire path do.
  • sequence coding events such as InWait, OutWait, InSignal, and OutSignal with respect to changes in the surrounding environment, and the driving path teaching command of FIG. Since it includes the actuator's setpoint, the required sensor correction value, and the speed override value, such a mutual coordination is possible.
  • the driving path teaching command of FIG. 10 includes input of an output setting value of an end-effector driver of the robot and a correction value of a sensor required for each driving path, and the path driving command of FIG. 11 is being tracked. It may include an input for updating to compensate the movement/rotation amount of the object, and an input for overriding a speed set for the current driving route.
  • FIG. 12 shows another expanded example of a general form of tracking between an axis-group versus an axis-group.
  • FIG. 12 corresponds to a case where two robots prepare an iron plate, and the other robot performs spot welding sequentially while tracking the two iron plates. That is, in the case of the above-described conveyor belt and rotary table, the movement and rotation axes are tracked by the PCS coordinate system, and in the case of FIG. 12, the axis-group called the robot is tracked by the PCS coordinate system.
  • the state machine of FIG. 9 may be extended to call a coordinate system transformation command (MC_SetDynCoordTransform) between axis-groups for tracking between axes-groups.
  • MC_SetDynCoordTransform coordinate system transformation command
  • the motion of the robot arm must be performed according to the path sequence of point 1 -> point 2 -> point 3 -> point 1.
  • the first point is the start point of the first route and the last point of the third route
  • the second point is the last point of the first route and the starting point of the second route
  • the third point is the last point of the second route.
  • Points 1 and 2 are points in different PCS coordinate systems
  • Points 2 and 3 are also points in different PCS coordinate systems
  • Points 3 and 1 are also points in different PCS coordinate systems.
  • the first state machine when the robot arm is positioned at one point, the first state machine is operated and the first setting is performed. That is, the first setting includes setting of the first driving route, setting of the PCS coordinate system based on the MCS of the next two points, and setting of tracking, respectively. According to the first setting, the motion driving according to the corresponding driving path is performed in the first state machine.
  • the second state machine operates, and the second setting is performed. That is, the second setting includes setting of the second driving route, setting of the PCS coordinate system based on the MCS of the next three points, and setting of tracking, respectively. According to the second setting, the motion driving according to the corresponding driving path is performed in the second state machine.
  • the third state machine operates and the third setting is performed. That is, the third setting includes setting of the third driving route, setting of the PCS coordinate system based on the MCS of the next point, point 1, and setting of tracking, respectively. According to this third setting, the third state machine performs motion driving according to the corresponding driving path.
  • the present invention configured as described above has the advantage of enabling motion control for complex types of driving situations that cannot be responded to with commands according to the existing PLCopen standard, such as Pick-and-Place (PnP) between multiple PCS coordinate systems. have. That is, the present invention has the advantage of enabling PnP operation of the robot between a plurality of different PCS coordinate systems in which tracking is in progress on a specific axis or axis-group. In addition, the present invention has an advantage in that it is possible to synchronize an event input of an external environment during PnP operation and to signal an event.
  • PLCopen standard such as Pick-and-Place
  • the present invention has the advantage that it is possible to implement a library-type command (User defined function block) by utilizing the command defined in the PLCOpen standard as a basic building block.
  • the driving route can be updated based on the PCS coordinate system of the mechanical device to which the last point belongs, so memory is small and cost is low. There is an advantage.
  • the present invention can provide a method, apparatus and system for controlling motion between a plurality of product coordinate systems (PCS), such as pick-and-place, and thus has industrial applicability.
  • PCS product coordinate systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Numerical Control (AREA)
  • Selective Calling Equipment (AREA)

Abstract

본 발명은 다수 공작물 좌표계 간의 모션 제어 방법, 장치 및 시스템에 관한 것이다. 본 발명의 일 실시예에 따른 모션 제어 방법은 다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 모션 제어기를 포함한 시스템에서 수행되는 방법으로서, 다수의 지점을 포함하는 운전 경로를 설정하는 제1 설정 단계; 운전 경로의 각 지점들의 공작물 좌표계에 대해, 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하는 제2 설정 단계; 및 설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 수행하는 운전 단계;를 포함한다.

Description

다수 공작물 좌표계 간의 모션 제어 방법, 장치 및 시스템
본 발명은 모션 제어를 위한 방법, 장치 및 시스템에 관한 것으로서, 더욱 상세하게는 픽 앤 플레이스(pick-and-place) 등과 같이 다수개의 공작물 좌표계(product coordinate system; PCS) 간의 모션을 제어하기 위한 방법, 장치 및 시스템에 관한 것이다.
일반적으로 모션 제어기(motion controller) 등의 산업용 제어기는 특정 메이커 또는 제품으로 한정되지 않고 상호 호환성을 위해 PLCopen 규격을 따르도록 설계된다. 즉, PLCopen 규격은 다양한 명령어의 펑션 블록(function block)에 대해 정의하고 있으며, 특히 기존 PLC의 I/O 시퀀스 제어 외에도 모션 제어 및 Safety 관련 기술에 대한 규격을 가진다. 이때, 모션 제어 관련 기능은 단축 및 다축 제어 기술을 포함하는데, CAM 및 그룹 운전을 위한 동기(synchronize) 제어 기술 등이 다축 제어 기술에서 함께 구현된다.
이러한 PLCopen 규격에서, 다축 제어의 동기 제어 기술은 '단축 대(vs) 단축'에 대한 기술, '단축 대 다축'에 대한 기술, '다축 대 다축'에 대한 기술로 구분된다. 이때, 기계 좌표계(machine coordinate system; MCS) 외에 공작물 좌표계(product coordinate system; PCS)(또는 “사용자 좌표계”라고도 지칭)를 설정하여, 선형/비선형의 프로파일(궤적)을 좌표계가 트래킹(tracking)하면서, 동기(synchronize) 제어가 가능하도록 구현된다.
도 1은 오브젝트(object)의 상태에 따른 모션 제어의 일 예를 나타낸다. 즉, 도 1(a)는 오브젝트가 정지 상태인 경우에 대한 모션 제어의 일 예를 나타내고, 도 1(b)는 오브젝트가 움직이는 상태인 경우에 대한 모션 제어의 일 예를 나타낸다.
즉, 도 1(a)의 경우, 오브젝트인 가공물은 정지 상태이며, 로봇 B가 그 가공물을 잡고 있으면 그 가공물의 위치와 자세에 맞춰서 로봇 A가 점 용접의 작업을 수행한다. 또한, 도 1(b)의 경우, 오브젝트인 쿠키는 움직이는 상태이며, 직교 로봇 A가 컨베이어 벨트 B 위에서 움직이고 있는 쿠키 위에 초콜렛을 묻혀주는 작업을 수행한다.
도 1(a) 및 (b)의 경우 모두, B가 마스터 모션이 되고 A가 그 모션을 따라가는 형태이며, MCS와 PCS 간의 축-그룹 동기(synchronize)가 1:1로 매칭될 수 있는 경우에 해당한다.
이때, “축-그룹”은 다수 축을 포함하는 그룹으로서, 그 중에 어느 한 축(마스터 축)에 대한 좌표계 표현을 통해 나머지 다른 모든 축(슬레이브 축)에 대한 좌표계 표현이 가능한 그룹을 의미한다. 즉, 축-그룹 은 마스터 축에 대해 각 슬레이브 축이 특정 관계(즉, 마스터 축의 위치에 따라 선형 또는 비선형적으로 슬레이브 축의 위치가 결정되는 관계)를 가지며, 이러한 특정 관계에 대한 프로파일이 이미 알려진 상태인 그룹이다.
일반적으로, 로봇(직교 로봇, 스카라 로봇, 수직 다관절 로봇 등)을 활용하는 애플리케이션에서, 로봇은 축-그룹으로 구성되어 단축 또는 다축에 대해 동기 제어가 가능하다. 하지만, 도 1의 단순한 경우(즉, 1:1 동기 제어가 가능한 경우)와 달리, 픽 앤 플레이스(pick-and-place, 이하 “”라고 지칭함) 등과 같이 서로 다른 기계 장치에 대해 다수개의 PCS에 대한 트래킹을 수행해야 하는 복잡한 상황의 경우, 종래 PLCopen 규격의 펑션 블록만으로는 그 모션 제어의 운용이 어려운 문제점이 있었다. 이는 PLCopen 규격의 경우, 1:1 동기 제어가 가능한 단순한 경우에 대한 펑션 블록만을 정의하고 있기 때문이다.
상기한 바와 같은 종래 기술의 문제점을 해결하기 위하여, 본 발명은 다수개 PCS 좌표계 간의 Pick-and-Place(PnP) 등과 같이, 기존 PLCopen 규격에 따른 명령어로는 대응이 되지 않는 복잡한 유형의 운전 상황에 대해 모션 제어가 가능한 기술을 제공하는데 그 목적이 있다.
즉, 본 발명은 특정 축 혹은 축-그룹에 트래킹이 진행 중인 서로 다른 다수 개의 PCS 좌표계 간에 로봇의 PnP 운전이 가능하게 하는 기술을 제공하는데 그 목적이 있다.
또한, 본 발명은 PnP 운전 중에 외부 환경의 이벤트 입력에 동기 가능하고 이벤트의 시그널링이 가능하는 기술을 제공하는데 그 다른 목적이 있다.
또한, 본 발명은 PLCOpen 규격에 정의된 명령어를 기본 빌딩 블록으로 활용하여 라이브러리 형태의 명령어(User defined function block)을 구성하는 기술을 제공하는데 그 또 다른 목적이 있다.
다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제에 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 과제를 해결하기 위한 본 발명의 일 실시예에 따른 모션 제어 방법은 다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 모션 제어기를 포함한 시스템에서 수행되는 방법으로서, 다수의 지점을 포함하는 운전 경로를 설정하는 제1 설정 단계; 운전 경로의 각 지점들의 공작물 좌표계에 대해, 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하는 제2 설정 단계; 및 설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 수행하는 운전 단계;를 포함한다.
상기 운전 경로에서, 그 시작 지점과 그 마지막 지점은 서로 다른 기계 장치에 따른 서로 다른 공작물 좌표계의 지점일 수 있다.
상기 제2 설정 단계는 상기 각 지점들의 공작물 좌표계에 대해 기계 장치의 움직임에 따른 트래킹(tracking)을 반영하는 단계를 포함할 수 있다.
상기 운전 경로는 픽 앤 플레이스(Pick and Place; PnP)의 운전을 위한 아치 형태의 경로일 수 있다.
상기 아치 형태의 경로는 hup 높이의 상향 방향 이동의 제1 모션 경로와, hdown 높이의 하향 방향 이동의 제3 모션 경로와, 제1 및 제3 모션 사이에서 l 너비의 일측 방향 이동의 제2 모션 경로와, 제1 및 제2 모션 경로 사이의 제1 만곡 모션 경로와, 제2 및 제3 모션 경로 사이의 제2 만곡 모션 경로를 포함할 수 있다.
상기 제1 만곡 모션 경로는 hup 및 l에서 각각 d1 만큼의 거리에 대해 특정 곡률의 경로를 가지고, 상기 제2 만곡 모션 경로는 hdown 및 l에서 각각 d2 만큼의 거리에 대해 특정 곡률의 경로를 가지며, d1 및 d2는 하기 식을 이용하여 구할 수 있다.
d1 = min(l, hup) × ArchBlendRatio
d2 = min(l, hdown) × ArchBlendRatio
(단, min(a, b)는 a 및 b 중에 더 작은(최소) 길이 값을 나타내며, ArchBlendRatio는 그 최소 길이 값에 대한 비율 값을 나타냄)
상기 제1 설정 단계는 다수의 운전 경로와, 각 운전 경로에 대한 입출력 이벤트의 인덱스를 설정하는 단계를 포함할 수 있다.
상기 제2 설정 단계는 입출력 이벤트의 인덱스에 매칭하는 운전 경로의 각 지점들에 대한 공작물 좌표계를 설정하는 단계를 포함할 수 있다.
상기 운전 단계는 입출력 이벤트의 인덱스에 매칭하는 운전 경로에 대한 운전을 수행하는 단계를 포함할 수 있다.
상기 설정된 각 운전 경로에 대해 상기 제2 설정 단계 및 상기 운전 단계가 차례로 반복 수행될 수 있다.
본 발명의 일 실시예에 따른 모션 제어 방법은 다수의 PCS 좌표계에 대한 트래킹을 위한 PLCopen 규격의 명령어가 부재한 경우에 적용 가능하되, 상기 제2 설정 단계와 상기 운전 단계는 PLCopen 규격에 따른 명령어를 이용하여 수행될 수 있다.
상기 제1 설정 단계의 수행을 위한 명령어는 각 운전 경로 별로 요구되는 로봇의 그리퍼(end-effector) 구동기의 출력 설정 값과 센서의 보정 값을 입력 받을 수 있다.
상기 운전 단계의 수행을 위한 명령어는 트래킹 중인 오브젝트의 이동/회전량을 보상하기 위한 업데이트하기 위한 입력과, 현재 운전 경로에 대해 설정된 속도를 오버라이드(override)하기 위한 입력을 각각 포함할 수 있다.
본 발명의 일 실시예에 따른 모션 제어기는 다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 제어기로서, 다수의 지점을 포함하되 시작 지점과 마지막 지점이 서로 다른 기계 장치에 따른 서로 다른 공작물 좌표계의 지점인 운전 경로를 설정하는 경로 설정부; 운전 경로의 각 지점들의 공작물 좌표계에 대해, 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하는 좌표계 설정부; 설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 수행하는 운전 제어부;를 포함한다.
상기 좌표계 설정부는 상기 각 지점들의 공작물 좌표계에 대한 설정 시 기계 장치의 움직임에 따른 트래킹(tracking)을 반영할 수 있다.
본 발명의 일 실시예에 따른 모션 제어 시스템은 다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 시스템으로서, 드라이브의 운전을 제어하는 모션 제어기와, 모션 제어기로부터 수신한 제어 신호에 따라 모션 장치를 구동하는 드라이버를 포함하며, 상기 모션 제어기는, 다수의 지점을 포함하되 시작 지점과 마지막 지점이 서로 다른 기계 장치에 따른 서로 다른 공작물 좌표계의 지점인 운전 경로를 설정하고, 운전 경로의 각 지점들의 공작물 좌표계에 대해 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하며, 설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 제어한다.
상기와 같이 구성되는 본 발명은 다수의 PCS 좌표계 간의 Pick-and-Place(PnP) 등과 같이, 기존 PLCopen 규격에 따른 명령어로는 대응이 되지 않는 복잡한 유형의 운전 상황에 대해 모션 제어가 가능한 이점이 있다.
즉, 본 발명은 특정 축 혹은 축-그룹에 트래킹이 진행 중인 서로 다른 다수 개의 PCS 좌표계 간에 로봇의 PnP 운전이 가능하게 하는 이점이 있다.
또한, 본 발명은 PnP 운전 중에 외부 환경의 이벤트 입력에 동기 가능하고 이벤트의 시그널링이 가능한 이점이 있다.
또한, 본 발명은 PLCOpen 규격에 정의된 명령어를 기본 빌딩 블록으로 활용하여 라이브러리 형태의 명령어(User defined function block)의 구현이 가능한 이점이 있다.
또한, 본 발명은 다른 기계 장치에 따른 서로 다른 PCS 좌표계 지점 간의 모션 수행 시, 마지막 지점이 속하는 기계 장치의 PCS 좌표계를 기준으로 그 운전 경로를 업데이트 하면 되기 때문에 메모리가 적게 들고 비용이 적게 들 수 있는 이점이 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 오브젝트(object)의 상태에 따른 모션 제어의 일 예를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 모션 제어 시스템(10)의 블록 구성도를 나타낸다.
도 3는 PLCopen 규격에서 정의한 좌표계 종류를 나타낸다.
도 4는 PLCopen 규격에 따른 마스터(master)와 슬레이브(slave)의 축 대 축 간의 동기화(synchronize)의 프로파일(profile) 및 명령어의 일 예를 나타낸다.
도 5는 PLCopen 규격에 따른 공작물 좌표계(PCS) 설정의 명령어 및 파라미터의 일 예를 나타낸다.
도 6는 축-그룹 대 축-그룹 간의 트래킹(tracking) 및 그 명령어의 일 예를 나타낸다.
도 7은 특정 축에 대해 트래킹 중인 2개의 PCS 간에 Pick-and-Place(PnP)가 요구되는 상황에 대한 일 예를 나타낸다.
도 8은 Pick and Place를 위한 아치 형태의 모션에 대한 정의를 나타낸다.
도 9은 스테이트 머신(state machine)의 구성을 나타낸다.
도 10는 운전 경로 티칭(teaching) 명령어의 인터페이스 구성을 나타낸다.
도 11은 경로 운전 명령어의 인터페이스 구성을 나타낸다.
도 12는 축-그룹 대 축-그룹 간의 일반적 형태의 트래킹(tracking)에 대한 확장된 다른 일 예를 나타낸다.
도 13은 MCS에서 PCS로의 변환 명령어에 대한 다른 일 예를 나타낸다.
본 발명의 상기 목적과 수단 및 그에 따른 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 경우에 따라 복수형도 포함한다. 본 명세서에서, "포함하다", “구비하다”, “마련하다” 또는 “가지다” 등의 용어는 언급된 구성요소 외의 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
본 명세서에서, “또는”, “적어도 하나” 등의 용어는 함께 나열된 단어들 중 하나를 나타내거나, 또는 둘 이상의 조합을 나타낼 수 있다. 예를 들어, “또는 B”“및 B 중 적어도 하나”는 A 또는 B 중 하나만을 포함할 수 있고, A와 B를 모두 포함할 수도 있다.
본 명세서에서, “예를 들어” 등에 따르는 설명은 인용된 특성, 변수, 또는 값과 같이 제시한 정보들이 정확하게 일치하지 않을 수 있고, 허용 오차, 측정 오차, 측정 정확도의 한계와 통상적으로 알려진 기타 요인을 비롯한 변형과 같은 효과로 본 발명의 다양한 실시 예에 따른 발명의 실시 형태를 한정하지 않아야 할 것이다.
본 명세서에서, 어떤 구성요소가 다른 구성요소에 '연결되어' 있다거나 '접속되어' 있다고 기재된 경우, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성 요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 명세서에서, 어떤 구성요소가 다른 구성요소의 '상에' 있다거나 '접하여' 있다고 기재된 경우, 다른 구성요소에 상에 직접 맞닿아 있거나 또는 연결되어 있을 수 있지만, 중간에 또 다른 구성요소가 존재할 수 있다고 이해되어야 할 것이다. 반면, 어떤 구성요소가 다른 구성요소의 '바로 위에' 있다거나 '직접 접하여' 있다고 기재된 경우에는, 중간에 또 다른 구성요소가 존재하지 않은 것으로 이해될 수 있다. 구성요소 간의 관계를 설명하는 다른 표현들, 예를 들면, '~사이에'와 '직접 ~사이에' 등도 마찬가지로 해석될 수 있다.
본 명세서에서, '제1', '제2' 등의 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 해당 구성요소는 위 용어에 의해 한정되어서는 안 된다. 또한, 위 용어는 각 구성요소의 순서를 한정하기 위한 것으로 해석되어서는 안되며, 하나의 구성요소와 다른 구성요소를 구별하는 목적으로 사용될 수 있다. 예를 들어, '제1구성요소'는 '제2구성요소'로 명명될 수 있고, 유사하게 '제2구성요소'도 '제1구성요소'로 명명될 수 있다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 모션 제어 시스템(10)의 블록 구성도를 나타낸다.
본 발명의 일 실시예에 따른 모션 제어 시스템(10)은 서보 모터, 스텝 모터 등과 같은 다수의 모션 장치(또는 액추에이터)를 제어하기 위한 시스템으로서, 도 2에 도시된 바와 같이, 외부 장치(100), 모션 제어기(200), 드라이버(300), 모션 장치(미도시) 등을 포함한다.
외부 장치(100)는 모션 제어 시스템(10)의 모든 제어 동작을 관리하는 장치이다. 즉, 사용자 또는 관리자 등은 외부 장치(100)를 통해 모션 제어기(200)에 접속하여 각 드라이브(300)의 동작에 대한 제어를 설정 관리할 수 있다. 가령, 외부 장치(100)는 운전 명령, 튜닝 명령 등의 제어 명령을 모션 제어기(200)에 전달할 수 있다.
외부 장치(100)은 컴퓨팅(computing)이 가능한 단말 또는 PLC(Programmable Logic Controller) 등과 같은 전자 장치일 수 있다. 예를 들어, 단말은 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 태블릿 PC(tablet personal computer), 넷북 컴퓨터(netbook computer), 스마트폰(smart phone), 스마트패드(smart pad), 또는 PDA(personal digital assistant) 등일 수 있으나, 이에 한정되는 것은 아니다.
다만, 이러한 외부 장치(100) 외에, 조작 패널 등의 사용자 인터페이스(미도시)를 통해 모션 제어기(200)로 제어 명령을 전달할 수도 있다.
모션 제어기(200)는 각 드라이브(300)와 연결되며, 외부 장치(100) 또는 사용자 인터페이스로부터 수신된 제어 명령에 따라 각 드라이브(300)의 운전을 제어한다. 이때, 모션 제어기(200)는 PLCopen 규격에 따라 각 드라이브(300)의 운전을 제어할 수 있다. 가령, 모션 제어기(200)는 기 저장된 운전용 프로파일 정보, 튜닝 파라미터 정보 등의 데이터에 기초하여, 각 드라이브(300)를 운전할 수 있다.
드라이브(300)는 모션 제어기(200)로부터 수신한 제어 신호에 따라 모션 장치를 구동하는 장치이다. 이러한 드라이브(300)는 복수개(300-1, …단, n은 2이상의 자연수)가 구비되며, 각 드라이브(300)가 개별적으로 각 모션 장치를 구동한다. 예를 들어, 드라이브(300)는 스텝 모터 드라이버, 또는 서보 모터 드라이버 등일 수 있으나, 이에 한정되는 것은 아니다.
이러한 복수의 드라이브(300)는 모션 제어기(200)와 다양한 방식의 토폴로지(topology)로 연결될 수 있다. 예를 들어, 이러한 토폴로지는 버스 토폴로지(bus topology), 스타 토폴로지(star topology), 링 토폴로지(ring topology), 트리 토폴로지(tree topology), 또는 메시 토폴로지(mesh topology) 등일 수 있으나, 이에 한정되는 것은 아니다. 또한, 이들 드라이브(300) 중에는 마스터(master)인 드라이브와 슬레이브(slave)인 드라이브를 포함할 수 있다.
한편, 본 발명의 일 실시예에 따른 모션 제어 시스템(10)은 로봇, 컨베이어(conveyor), 로터리 테이블(rotary table) 등과 같은 복수의 기계 장치를 포함할 수 있다. 이때, 하나의 기계 장치에는 적어도 하나의 모션 장치가 구비될 수 있다. 또한, 모션 장치의 구동에 따라 오브젝트(object)의 위치가 달라질 수 있다.
한편, 모션 제어기(200)는, 도 2에 도시된 바와 같이, 경로 설정부(210), 좌표계 설정부(220) 및 운전 제어부(230)를 포함할 수 있으며, 이들 구성은 하드웨어인 프로세서(processor)에 포함되거나, 해당 프로세서에서 수행되는 소프트웨어인 프로세스(process)에 포함될 수 있으나, 이에 한정되는 것은 아니다. 또한, 경로 설정부(210), 좌표계 설정부(220) 및 운전 제어부(230)는 외부 장치(100)의 구성으로 포함될 수도 있다.
도 3는 PLCopen 규격에서 정의한 좌표계 종류를 나타낸다.
도 3을 참조하면, PLCopen 규격에서 정의한 좌표계의 종류로는 축 좌표계(axis coordinate system; ACS), 기계 좌표계(machine coordinate system; MCS), 공작물 좌표계(product coordinate system; PCS) 등이 있다. 이때, ACS로부터 MCS를 얻고 PCS로 동차 변환할 수 있다.
도 4는 PLCopen 규격에 따른 마스터(master)와 슬레이브(slave)의 축 대 축 간의 동기화(synchronize)의 프로파일(profile) 및 명령어의 일 예를 나타낸다. 즉, 도 4(a)는 마스터 축 대 슬레이브 축의 프로파일의 일 예를 나타내고, 도 4(b)는 마스터 축 대 슬레이브 축에 대한 동기화 명령어의 펑션 블록(function block)의 일 예를 나타낸다.
도 4를 참조하면, 축 대 축 간 동기화를 위해, 축 간의 동기화 명령어로 정의된 MC_CamIn을 사용할 수 있다.
도 5는 PLCopen 규격에 따른 공작물 좌표계(PCS) 설정의 명령어 및 파라미터의 일 예를 나타낸다. 즉, 도 5(a)는 PCS 설정 명령어의 펑션 블록의 일 예를 나타내고, 도 5(b)는 변환 파라미터(translation parameters)의 일 예, 즉 translation 및 rotation되어 MCS에서 PCS로 좌표계 변환되는 일 예를 나타내며, 도 5(c)는 회전 파라미터(rotation parameters)의 일 예를 나타낸다.
한편, 도 5를 참조하면, PCS 설정을 위해 다음과 같은 과정을 수행할 수 있다. 즉, A 및 B를 축-그룹으로 구성하면, A 축-그룹의 MCS 좌표계는 MCSA, 그 PCS 좌표계는 PCSA로 표현하고, B 축-그룹의 MCS 좌표계는 MCSB, 그 PCS 좌표계는 PCSB로 표현할 수 있다. 이들 좌표계는 하기 식(1) 내지 식(3)을 이용한 변환이 가능하다.
Figure PCTKR2021017362-appb-img-000001
(1)
Figure PCTKR2021017362-appb-img-000002
(2)
Figure PCTKR2021017362-appb-img-000003
(3)
이때, 식(1)은 MCS 좌표계의 P점에 대해 PCS 좌표계 원점(PPCSORG) 및 회전 행렬(R)로 구성된 동차 변환 행렬(Homogeneous transformation matrix)을 나타내고, 식(2)는 MCS 좌표계와 PCS 좌표계 간의 역행렬을 나타낸다. 또한, 식(3)은 A 축-그룹의 PCS 좌표계와 B 축-그룹의 PCS 좌표계를, A 축-그룹과 B 축-그룹 간의 좌표계 변환으로 매핑하는 것을 나타낸다.
가령, 축-그룹 A 및 B 간(즉, 축-그룹들 간)에 좌표계 변환(
Figure PCTKR2021017362-appb-img-000004
)은 펑션 블록으로 정의된 MC_SetDynCoordTransform의 명령어를 이용할 수 있다. 또한, 축-그룹 B 내에서 좌표계 변환(
Figure PCTKR2021017362-appb-img-000005
)은 펑션 블록으로 정의된 MC_SetCoordinateTransform의 명령어를 이용할 수 있다.
도 6는 축-그룹 대 축-그룹 간의 트래킹(tracking) 및 그 명령어의 일 예를 나타낸다. 즉, 도 6(a)는 컨베이어 벨트(conveyor belt)에 대한 트래킹을 나타내고, 도 6(b)는 컨베이어 벨트의 트래킹을 위한 명령어의 펑션 블록을 나타낸다. 또한, 즉, 도 6(c)는 로터리 테이블(rotary table)에 대한 트래킹을 나타내고, 도 6(d)는 로터리 테이블의 트래킹을 위한 명령어의 펑션 블록을 나타낸다.
축-그룹 대 축-그룹 간 트래킹 명령어는 축-그룹 간의 동기화를 위해 정의될 수 있다. 이때, 동기화된 모션 궤적은 두 독립 모션의 중첩(superposition)으로 볼 수 있다. 이러한 축-그룹 대 축-그룹 간 트래킹 명령어의 구현을 위해, 다차원 기어 운전(좌표 별 선형 중첩) 적용하는 방법(제1 구현 방법)과, 좌표계 변환 행렬을 적용(즉, PLCOpen 규격에 따른 펑션 블록을 채택)하는 방법(제2 구현 방법)이 있을 수 있다.
도 6(a)는 로봇이 컨베이어 벨트 위에 놓인 물체를 트래킹하는 경우를 나타낸다. 이 경우, 컨베이어 벨트 전용으로 파라미터화한 펑션 블록을, 도 6(b)와 같이, MC_TrackConveyorBelt의 명령어를 정의할 수 있는데, 축-그룹들 간에 좌표계 변환의 명령어(MC_SetDynCoordTransform)를 통해 구현하여 그 인터페이스를 구성할 수 있다. 구체적으로, 로봇의 MCS 좌표계를 기준으로, 컨베이어 벨트의 이동량(TransMCS_CB)와 컨베이어 벨트의 회전량(RotMCS_CB)을 구할 수 있다. 또한, 컨베이어 벨트의 MCS 좌표계를 기준으로, PCS 좌표계의 이동량(TransCB_PCS)과 PCS 좌표계의 회전량(RotCB_PCS)을 구할 수 있다. 또한, 컨베이어 벨트의 PCS 좌표계 기준으로, 오브젝트의 위치(PPCS)를 구할 수 있다.
한편, 도 6(b)는 로봇이 로터리 테이블에 놓여 회전하는 물체를 트래킹하는 경우를 나타낸다. 이 경우, 로터리 테이블 전용으로 파라미터화한 펑션 블록을, 도 6(d)와 같이, MC_TrackRotaryTable의 명령어로 정의할 수 있는데, 축-그룹들 간)에 좌표계 변환의 명령어(MC_SetDynCoordTransform)를 통해 구현하여 그 인터페이스 구성할 수 있다. 구체적으로, 로봇의 MCS 좌표계 기준으로, 로터리 테이블의 이동량과 로터리 테이블의 회전량을 구할 수 있다. 또한, 로터리 테이블의 MCS 좌표계 기준으로, 그 PCS 좌표계의 이동량 및 회전량을 구할 수 있다. 또한, 로터리 테이블의 PCS 좌표계를 기준으로, 오브젝트의 위치를 구할 수 있다.
도 7은 특정 축에 대해 트래킹 중인 2개의 PCS 간에 Pick-and-Place(PnP)가 요구되는 상황에 대한 일 예를 나타낸다. 즉, 도 7은 로터리 테이블 및 컨베이어 벨트에서 각각 회전/이동 중인 서로 다른 팔레트(pallet) 간에, 로봇을 이용해 PnP 운전을 수행해야하는 장비를 나타낸다. 이러한 도 7의 경우는 다수개의 PCS를 가지는 복잡한 경우에 해당하며, 종래에 PLCOpen 규격에서 정의된 모션 제어 명령어만으로는 그 구현이 어려운 경우에 해당한다.
구체적으로, 도 7의 경우에 대한 운용 시나리오는 다음과 같다.
<운용 시나리오>
- 컨베이어 벨트 위에는 팔레트가 무작위의 위치와 각도로 놓인 채 컨베이어 벨트를 따라 이동함
- 로터리 테이블 위에는 팔레트가 부착되어 로터리 테이블과 함께 회전함
- 컨베이어에는 기준 위치로부터 컨베이어 벨트의 이송량을 알 수 있는 센서(로터리 엔코더)가 부착됨
- 로터리 테이블에는 기준 위치로부터 로터리 테이블의 회전량을 알 수 있는 센서(엔코더)가 부착됨
- 컨베이어에는 팔레트의 유무를 감지할 수 있는 센서가 있으며, 그 센서가 감지하는 시점에 머신 비전(machine vision)을 통해, 감지 시점 기준의 팔레트 원점 좌표와 틀어진 원점의 틀어진 각도에 대한 측정이 가능함
- 컨베이어 벨트 및 로터리 테이블의 팔레트는 정해진 간격으로 홈이 파여 있고 그 홈에는 오브젝트(가령, 쇠구슬 등)(이하, 오브젝트가 쇠구슬인 것으로 가정)가 들어 있음
- 델타 로봇은 전자석을 그리퍼(gripper)에 장착하고 있고 그 전자석으로 컨베이어 벨트에서 이동 중인 팔레트의 쇠구슬을 차례로 집어서 로터리 테이블에서 회전 중인 팔레트에 쇠구슬을 옮겨 놓아야 함
- 로터리 테이블은 컨베이어 벨트의 이동과 동기화되어 회전함
- 로터리 테이블의 쇠구슬을 모두 옮기고 난 후, 반대로 로터리 테이블로부터 컨베이어 벨트의 빈 팔레트로 쇠구슬을 다시 차례로 옮겨야 함
또한, 도 7의 경우에 따른 운용 시나리오에서, 기구적 제한 조건은 다음과 같다.
<기구적 제한 조건>
- 델타 로봇의 기계 원점에 대해, 컨베이어 벨트와 로터리 테이블 모두 그 기계 원점이 XY 평면 상에서 서로 다른 위치에 존재함. 가령, Z축 기준으로 델타 로봇 기계 원점에 대해 컨베이어 벨트는 20도, 로터리 테이블은 45도 틀어짐(다른 위치나 각도에서는 기구 간섭이 있음)
- 머신 비전은 컨베이어의 특정 위치를 기준으로 정렬됨(제1안: 카메라가 컨베이어에 부착, 제2안: 컨베이어에 간섭이 심할 경우 로봇의 그리퍼에 부착)
- 컨베이어 벨트를 지나는 팔레트의 쇠구슬은 로터리 테이블이 특정 각도 범위에서 모두 옮기거나 담아야 함(이외의 각도는 로터리 테이블 쪽 기구에 간섭이 있음)
- 컨베이어 벨트의 이송 속도가 빨라지면 로터리 테이블의 동기 구간의 속도도 함께 빨라져야 함(물류 충돌 방지 가정)
한편, 상술한 운용 시나리오와 기구적 제한 조건을 모두 만족시키기 위한 방법은 다음과 같다.
<운용 시나리오 및 기구적 제한 조건의 만족을 위한 방법>
- 컨베이어 이송 축의 속도 변화에 따른 로터리 테이블의 동기 회전:
축 간의 동기화에 관련된 명령어(MC_CamIn)를 이용함으로써, 컨베이어 축(마스터)에 따라 설정된 CAM 프로파일 대로 로터리 테이블 회전 축(슬레이브)에 대한 동기화 운전 가능
- 컨베이어 벨트 위에서 이동하는 팔레트 트래킹(tracking) :
축-그룹 내에서의 좌표계 변환에 관련된 명령어(MC_SetCoordinateTransform)를 이용하여 컨베이어에 놓인 팔레트에 대해 PCS 좌표계를 설정한 후, 로봇이 컨베이어 벨트 위에 놓인 물체를 트래킹하는 명령어(MC_TrackConveyorBelt)를 이용함으로써 컨베이어 이동 축에 대한 트래킹 가능
- 로터리 테이블 위에서 회전하는 팔레트 트래킹(tracking) :
축-그룹 내에서의 좌표계 변환에 관련된 명령어(MC_SetCoordinateTransform)를 이용하여 로터리 테이블에 놓인 팔레트에 대해 PCS 좌표계를 설정 후, 로봇이 로터리 테이블에 놓여 회전하는 물체를 트래킹하는 명령어(MC_TrackRotaryTable)를 이용함으로써 로터리 테이블의 회전 축에 대한 트래킹 가능
- 컨베이어 벨트의 팔레트와 로터리 테이블의 팔레트 간에 Pick and Place(PnP) : 기존의 PLCOpen 규격 상으로는 이러한 PnP를 위한 명령어가 별도로 존재하지 않음(즉, 종래 기술의 문제점이 발생하는 경우에 해당)
즉, 컨베이어 벨트의 팔레트와 로터리 테이블의 팔레트 간에 PnP와 관련하여, 1개의 로봇 MCS에서 2개의 서로 다른 PCS 좌표계를 동시에 운용하는 것은 PLCOpen 규격에서 별도로 정의되지 않았다. 즉, 현재의 PLCOpen 규격 상, 다수의 MCS 좌표계 간에서도 오직 1개의 PCS 좌표계만을 그 타겟으로 트래킹할 수 있을 뿐이다.
이에 따라, 이하에서는 특정 축 혹은 축-그룹에 트래킹이 진행 중인 서로 다른 다수 개의 PCS 좌표계 간에 로봇의 PnP 운전이 가능하게 하는 기술에 대해 제시하고자 한다. 또한, PnP 운전 중에 외부 환경의 이벤트 입력에 동기 가능하고 이벤트의 시그널링이 가능하는 기술에 대해 제시하고자 한다. 또한, PLCOpen 규격에 정의된 명령어를 기본 빌딩 블록으로 활용하여 라이브러리 형태의 명령어(User defined function block)을 구성하는 기술에 대해 제시하고자 한다.
도 8은 Pick and Place를 위한 아치 형태의 모션에 대한 정의를 나타내고, 도 9은 스테이트 머신(state machine)의 구성을 나타낸다. 또한, 도 10는 운전 경로 티칭(teaching) 명령어의 인터페이스 구성을 나타내며, 도 11은 경로 운전 명령어의 인터페이스 구성을 나타낸다.
이러한 도 8 내지 도 11에 따른 제어는 외부 장치(100) 또는 모션 제어기(200)를 통해 수행될 수 있다. 가령, 도 8에 따른 경로 설정 및 도 10의 운전 경로 티칭 명령어에 따른 제어는 경로 설정부(210)에 의해 수행될 수 있고, 도 9의 S101 및 S102에 따른 제어는 좌표계 설정부(220)에 의해 수행될 수 있으며, 도 11의 경로 운전 명령어에 따른 제어와 도 9의 S103 내지 S105에 따른 제어는 운전 제어부(230)에 의해 수행될 수 있다.
도 10의 운전 경로 티칭 명령어는 운전 경로를 설정하기 위한 명령어로서, 그 입력/출력(Input/Output)에 대한 상세 내용은 다음의 표 1과 같다.
Input/Output
LS_TRobotPathCfg PathCfg 모든 구성 데이터(all configuration data)를 펑션 블록에 저장
Input
BOOL Enable 입력 데이터는 높은 수준(high level)에서 지속적으로(continuously) 업데이트됨
LS_TRobotCoordCfg CoordCfg 좌표계 구성 데이터(Coordinate system configuration data)
UINT PathType 지점 간 이동(Point-to-Point movement): 간헐적인 속도(intermittent speed)로 경로에 인접 (1: LinearTo, 2: ArchTo, 3: CircularEnd)지점 대 지점(Point-via-Point) 이동:
가속/감속 속도 프로파일이 없는 경로 (4: LinearBy, 5: CircularMid)
LREAL[0..2] MovePosXYZ 경로(path)를 위한 타켓 [X, Y, Z]의 위치
LREAL[0..2] MovePosABC 경로를 위한 타켓 [A, B, C]의 위치
LREAL MoveVelocity 경로의 속도 설정
UINT TrajLinearType 선형 경로의 속도 프로파일 유형(0: (0: Trapezoid, 1: Sine1, 2: Sine2):저부하(low load) 및 고속용(high speed) Sine1;고부하(high load) 및 중속용(medium speed) Sine2
LREAL[0..2] TrajCircPar [가속, 감속, 저크(Jerk)] 순으로, 순환 경로의 속도 프로파일 파라미터
LREAL ArchUpHeight 아치 형태(ArchTo) 경로의 상부 거리(hup) 설정
LREAL ArchDownHeight 아치 형태(ArchTo) 경로의 하부 거리(hdown) 설정
LREAL ArchBlendRatio 아치 형태(ArchTo) 경로의 혼합 비율(blending ratio) 설정(0.0 ~ 1.0)
UINT InSignalNum 경로가 시작될 때 신호 보낼 고유 이벤트 번호의 설정(0: 없음, 1~: 이벤트 번호)
UINT OutSignalNum 경로가 완료될 때 신호 보낼 고유 이벤트 번호의 설정(0: 없음, 1~: 이벤트 번호)
UINT InWaitNum 경로가 시작될 때 기다려야할 고유 이벤트 번호의 설정(0: 없음, 1~: 이벤트 번호)또한, 펑션 블록은 이벤트 번호가 0인지 확인하며, 이 경우 할당된 이벤트가 없음을 의미할 수 있음
UINT OutWaitNum 경로 완료(path is completed) 때 기다려야할 고유 이벤트 번호의 설정(0: 없음, 1~: 이벤트 번호)또한, 펑션 블록은 이벤트 번호가 0인지 확인하며, 이 경우 할당된 이벤트가 없음을 의미할 수 있음
LREAL EffectorForce 경로 시작 부분의 end-effector에서 액추에이터의 필요한 토크 또는 On/Off 상태를 나타내는 힘을 설정하고, 이러한 설정은 경로 끝까지 유지됨(end of path)
Output
BOOL Valid 유효한 출력을 사용할 수 있으면 참(true)
Busy BOOL 펑션 블록이 완료되지 않았음
Error BOOL 펑션 블록 내에서 오류가 발생했음을 알림
ErrorID WORD 오류 식별자(Error identification)
또한, 도 11의 경로 운전 명령어는 설정된 경로를 따른 운전을 수행하기 위한 명령어로서, 그 입력/출력(Input/Output)에 대한 내용은 다음의 표 2와 같다.
Input/Output
UINT AxesGroup 축 그룹(1 ~ 16)을 참조
UINT NextPathIdx 펑션 블록이 현재 경로를 실행한 후, PathCfg 배열의 현재 경로 인덱스는 StartPathIdx 및 EndPathIdx에 비해 증가 또는 감소할 것임
Input
BOOL Execute StartPathIdx와 EndPathIdx 사이의 PathCfg 배열에 저장된 학습된 경로를 순차적으로 실행함
LS_TRobotPathCfg PathCfg PathCfg 배열에서 인덱싱된 경로 구성 데이터
BOOL EnableWaitNum 경로의 시작 및 완료 세션에서 발생한 이벤트 대기를 활성화함
BOOL EnableSetObj 경로 시작 시의 오브젝트(object) 위치를 업데이트하려면 참(true)으로 설정해야 함
UINT InWaitNum 경로 이동을 시작하기 위해 일치해야 하는 이벤트 번호
UINT OutWaitNum 경로 이동을 완료하기 위한 이벤트 번호
LREAL[0..5] ObjectPosition EnableSetObj가 참(true)이면, 현재의 오브젝트 위치를 새로 측정된 위치인 ObjectPosition[X, Y, Z, A, B, C]로 변경할 수 있음
BOOL EnableTestStep 경로를 단계별로 확인하기 위해, 지점 별(Point-By-Point) 이동을 지점 간(Point-To-Point) 이동으로 변환하려면 참(true)으로 설정해야 함
LREAL VelOverrFactor 현재 운전 경로에 대해 설정된 속도를 오버라이드(override)함(0.0: 제로 속도, 0.5: 절반 속도, 1.0: 동일한 속도)
UINT StartPathIdx 시작 단계를 PathCfg 배열의 인덱스로 설정NextPathIdx는 초기에 StartPathIdx 값을 가져야 함
UINT EndPathIdx 종료 단계를 PathCfg 배열의 인덱스로 설정함펑션 블록은 EndPathIdx 값에 비해 NextPathIdx 값을 증가 또는 감소시킴
BOOL StopPathRun 1: 현재 경로를 중지함0: NextPathIdx로 표시된 경로로부터 펑션 블록을 다시 시작할 때까지 실행 트리거를 기다림
Output
BOOL Done 구성된 전체 경로 단계가 완료됨
BOOL Busy The function block is processing펑션 블록이 처리 중에 있음
BOOL Active 펑션 블록이 축 그룹을 제어하고 있음을 나타냄
BOOL Error 펑션 블록 내에서 오류가 발생했음을 알림
BOOL CommandAborted Command is aborted by another command명령이 다른 명령에 의해 중단되었음
WORD ErrorID 오류 식별자(Error identification)
UINT SignalNum Signals event number both in the initiation of the path and in the completion of the path경로 시작(initiation of path) 및 경로 완료(completion of path) 시의 모든 경우에 이벤트 번호를 알림
LREAL EffectorForce 경로의 시작 부분에 출력하고 다른 펑션 블록이 이를 0으로 변경할 때까지 유지함
먼저, PnP 모션의 구체적인 경로에 대한 정의가 필요하다. 즉, PnP 모션의 경로는 다수의 지점을 포함할 수 있는데, 그 시작 지점과 그 마지막 지점은 서로 다른 기계 장치(즉, 컨베이어 벨트 및 로터리 테이블)에 따른 서로 다른 공작물 좌표계(즉, 컨베이어 벨트에 따른 PCS 및 로터리 테이블에 따른 PCS)의 지점일 수 있다. 도 8을 참조하면, PnP 모션의 경로는 아치 형태로 정의될 수 있는데, 상향 방향으로 이동하는 제1 모션(그 길이는 hup)과, 하향 방향으로 이동하는 제3 모션(그 길이는 hdown)과, 제1 모션과 제3 모션 사이에서 일측 방향으로 이동하는 제2 모션(그 길이는 l)을 각각 포함할 수 있다. 또한, PnP 모션의 경로는, 제1 및 제2 모션의 사이와, 제2 및 제3 모션의 사이에서, 급격한 방향 변경에 따른 충격을 최소화하기 위해, 만곡 형태로 이동하는 모션(이하, 각각 “제1 및 제2 만곡 모션”일 지칭함)이 더 포함하는 것이 바람직할 수 있다.즉, 제1 및 제2 모션의 사이에서, 제1 만곡 모션은 hup 및 l에서 각각 d1 만큼의 거리(상부 방향 및 일측 방향의 거리)에 대해 특정 곡률의 만곡 형태로 이동할 수 있다. 또한, 제2 및 제3 모션의 사이에서, 제2 만곡 모션은 hdown 및 l에서 각각 d2 만큼의 거리(일측 방향 및 하부 방향의 거리)에 대해 특정 곡률의 만곡 형태로 이동할 수 있다.
즉, 도 8의 PnP의 경로는, 제1 모션의 시작점(hup의 시작점)에 대한 정보인 P0(x0, y0, z0)와, 제1 모션의 마지막점(hup의 마지막점)에 대한 정보인 P1(x0, y0, z0+hup)와, 제1 및 제2 만곡 모션에 대한 정보와, 제3 모션의 시작점(hdown의 시작점)에 대한 정보인 P2(x1, y1, z1+hdown)와, 제3 모션의 마지막점(hdown의 마지막점)에 대한 정보인 P3(x1, y1, z1)를 각각 포함하는 것으로, 파라미터화 할 수 있다. 이때, 제1 모션의 마지막점(hup의 마지막점)에 대한 정보인 P1(x0, y0, z0+hup)는 제2 모션의 시작점(l의 시작점)에 대한 정보에 해당하며, 제3 모션의 시작점(hdown의 시작점)에 대한 정보인 P2(x1, y1, z1+hdown)은 제2 모션의 마지막점(l의 마지막점)에 대한 정보에 해당한다. 즉, 어느 한 PnP 경로에서, P0이 그 경로의 시작 지점에 해당하고, P3이 그 경로의 마지막 지점에 해당한다.
특히, 제1 및 제2 만곡 모션에 대한 정보를 파악하기 위해, 하기의 식(4) 및 식(5)를 이용할 수 있다.
d1 = min(l, hup) × ArchBlendRatio (4)
d2 = min(l, hdown) × ArchBlendRatio (5)
이때, min(a, b)는 a 및 b 중에 더 작은(최소) 길이 값을 나타내며, ArchBlendRatio는 그 최소 길이 값에 대한 비율 값(0.0 ~ 1.0)을 나타낸다. 즉, d1 및 d2는 해당 최소 길이 값에서 특정 선택된 비율만큼의 길이를 가진다.
즉, PnP 운전을 위해, 도 7에 따른 모션 경로, 즉 hup, l 및 hdown에 따른 3개의 모션 경로와, 이들의 연결부에서의 식(4)와 식(5)의 곡률 방법에 따른 2개의 만곡 모션 경로에 대해 파라미터화 하여 이를 하나의 경로로 설정할 수 있다. 이러한 파라미터는 도 10의 운전 경로 티칭 명령어에 입력(티칭)될 수 있으며, 그 입력 결과, 도 11의 경로 운전 명령어에 따른 실제 운전 수행 시에 실시간 연산을 통해 해당 경로가 생성될 수 있다.
도 9의 운전 경로 티칭 명령어에서는, InWait 이벤트와, 도 7의 PnP 모션을 위한 복합적 형태의 경로를 포함하는 운전 경로(해당 경로는 Discrete, Continuous, Synchronized 특징을 가질 수 있음)와, OutWait 이벤트 번호를 각각 입력(티칭) 받을 수 있다.
도 9에 따른 스테이트 머신은 InSignal을 출력하면서 초기화를 수행하고(S101), MCS/PCS 좌표계 설정과 특정 축/축-그룹에 동기화되는 트래킹 설정을 함께 수행한 뒤(S102), 정해진 경로(path)의 운전을 수행하며(S103), 이후 OutSignal 이벤트를 출력하면서 하나의 경로에 대한 운전을 끝내면서(S104), 경로 인덱스 값을 업데이트한다(S105). 특히, 스테이트 머신은 S102 수행 후 InWait 이벤트가 수신되는 경우에만 S103를 수행하며, S104 이후에 OutWait 이벤트를 출력한다. 이때, InWait 이벤트는 이전 스테이트 머신, 센서 등의 동작에 따라 발생될 수 있다. 이와 같은 스테이트 머신의 동작은 모든 경로(다수의 아치 형태 경로, 즉 다수의 도 7에 따른 경로)에 대해 그 경로 마다 수행될 수 있다. 즉, 하나의 스테이트 머신의 동작이 끝다면 다음의 스테이트 머신의 동작이 수행될 수 있다. 또한, 오브젝트인 쇠구슬의 개수만큼 다수의 스테이트 머신의 동작(즉, 각 아치 형태 경로의 생성 및 경로 운전)이 수행될 수 있다.
특히, S102는 좌표계 설정(PCS Setting) 단계와 트래킹 설정(Tracking Setting) 단계를 포함한다.
이때, 좌표계 설정 단계는 경로 마지막 지점에 위치하는 기계 장치의 MCS 좌표계를 기준으로, 경로의 처음 지점에서 해당 경로의 각 지점에 대한 PCS 좌표계를 설정하는 단계이다.
구체적으로, 도 7의 아치 형태 경로에 대한 좌표계 설정 단계에 대해 설명하도록 한다. 즉, 좌표계 설정 단계에서, 아치 형태 경로의 시작 지점인 P0은 로봇이 제1 기계 장치에서 쇠구슬을 피킹(picking)하는 지점이며, 그 지점이 로봇의 현재 위치 값으로 설정된다. 또한, 아치 형태 경로의 종료(완료) 지점인 P3은 로봇이 제2 기계 장치로 쇠구슬을 플레이싱(placing)하는 지점이다. 이에 따라, 좌표계 설정 단계에서는 이러한 P3이 위치하는 부분인 제2 기계 장치의 MCS 좌표계를 기준으로, 해당 아치 형태 경로의 각 지점(즉, P0, P3와 제1 및 제2 만곡 모션의 지점)에 대한 PCS 좌표계를 설정한다.
가령, 컨베이어 벨트에서 로터리 테이블로 PnP를 수행할 경우, 로봇이 컨베이어 벨트의 쇠구슬을 피킹하는 순간의 지점이 P0이며, 로봇이 로터리 테이블에 쇠구슬을 플레이싱하는 순간의 지점이 P3이다. 즉, 이러한 P0 및 P3를 시작 지점 및 마지막 지점으로 포함하는 PnP 경로가 하나의 운전 경로(이하, “제1 운전 경로”라 지칭함)로 설정되고, 그 제1 운전 경로에 대해 로터리 테이블의 MCS 좌표계를 기준으로 한 PCS 좌표계가 설정된다. 물론, 컨베이어 벨트의 팔레트에 다수의 쇠구슬이 있는 경우, 다수의 구슬에 대한 PnP를 위한, 제1 운전 경로 및 그 PCS 좌표계가 각각 서로 다른 스테이트 머신의 수행 시에 설정될 수 있다. 이때, 각 쇠구슬의 위치가 다르므로, 이들 제1 운전 경로에서 그 P0 및 P3의 위치도 다를 수 있다.
반대로, 로터리 테이블에서 컨베이어 벨트로 PnP를 수행할 경우, 로봇이 로터리 테이블의 쇠구슬을 피킹하는 순간의 지점이 P0이며, 로봇이 컨베이어 벨트에 쇠구슬을 플레이싱하는 순간의 지점이 P3이다. 즉, 이러한 P0 및 P3를 시작 지점 및 마지막 지점으로 포함하는 PnP 경로가 하나의 운전 경로(이하, “제2 운전 경로”라 지칭함)로 설정되고, 그 제2 운전 경로에 대해 컨베이어 벨트의 MCS 좌표계를 기준으로 한 PCS 좌표계가 설정된다. 물론, 로터리 테이블의 팔레트에 다수의 쇠구슬이 있는 경우, 다수의 구슬에 대한 PnP를 위한, 제2 운전 경로 및 그 PCS 좌표계가 각각 서로 다른 스테이트 머신의 수행 시에 설정될 수 있다. 이때, 각 쇠구슬의 위치가 다르므로, 이들 제2 운전 경로에서 그 P0 및 P3의 위치도 다를 수 있다.
한편, 트래킹 설정 단계는 좌표계 설정 단계에서 설정된 경로의 PCS 좌표계에 대해 기계 장치의 움직임을 반영하도록 설정하는 단계이다.
즉, 도 7의 아치 형태 경로에 대한 좌표계 설정 단계의 경우, P0와 P3 사이의 아치 형태 경로에 대한 PCS 좌표계의 설정에 불과하며, 그 경로에 대한 설정과 실제 운전 간의 시간 동안에 P3에 위치한 제2 기계 장치는 계속 움직일 수 있으므로, 이러한 움직임에 대한 반영이 필요하며, 이를 트래킹 설정 단계에서 수행한다.
가령, 컨베이어 벨트에서 로터리 테이블로 PnP를 수행할 경우, 좌표계 설정 단계에서 그 아치 형태 경로(즉, 어느 한 제1 운전 경로)에 대한 PCS 좌표계가 설정되며, 그 설정된 PCS 좌표계에 대해 트래킹 설정 단계에서 마지막 지점의 기계 장치(로터리 테이블)의 움직임에 대한 반영이 설정된다. 이때, 하나의 스테이트 머신에서는 하나의 제1 운전 경로에 대해, PCS 좌표계 설정 및 트래킹 설정을 수행한다.
즉, 각 제1 운전 경로 설정, 그 PCS 좌표계 설정 및 트래킹 설정은 서로 다른 스테이트 머신의 동작 시에 하나씩 수행될 수 있다. 즉, 컨베이어 벨트의 어느 한 쇠구슬에 대한 PnP를 위해, 하나의 스테이트 머신이 동작하면서, 어느 한 제1 운전 경로 설정, 그 PCS 좌표계 설정 및 트래킹 설정이 차례로 수행된다. 이후, 컨베이어 벨트의 다른 한 쇠구슬에 대한 PnP를 위해, 다른 스테이트 머신이 동작하면서, 다른 한 제1 운전 경로 설정, 그 PCS 좌표계 설정 및 트래킹 설정이 차례로 수행된다. 이러한 설정은 컨베이어 벨트의 쇠구슬들이 로터리 테이블로 모두 PnP 이동될 때까지 반복될 수 있다.
반대로, 로터리 테이블에서 컨베이어 벨트로 PnP를 수행할 경우, 좌표계 설정 단계에서 그 아치 형태 경로(즉, 어느 한 제2 운전 경로)에 대한 PCS 좌표계가 설정되며, 그 설정된 PCS 좌표계에 대해 트래킹 설정 단계에서 마지막 지점의 기계 장치(컨베이터 벨트)의 움직임에 대한 반영이 설정된다. 이때, 하나의 스테이트 머신에서는 하나의 제2 운전 경로에 대해, PCS 좌표계 설정 및 트래킹 설정을 수행한다.
즉, 각 제2 운전 경로 설정, PCS 좌표계 설정 및 트래킹 설정은 서로 다른 스테이트 머신의 동작 시에 하나씩 수행될 수 있다. 즉, 로터리 테이블의 어느 한 쇠구슬에 대한 PnP를 위해, 하나의 스테이트 머신이 동작하면서, 어느 한 제2 운전 경로 설정, 그 PCS 좌표계 설정 및 트래킹 설정이 차례로 수행된다. 이후, 로터리 테이블의 다른 한 쇠구슬에 대한 PnP를 위해, 다른 스테이트 머신이 동작하면서, 다른 한 제2 운전 경로 설정, 그 PCS 좌표계 설정 및 트래킹 설정이 차례로 수행된다. 이러한 설정은 로터리 테이블의 쇠구슬이 컨베이어 벨트로 모두 PnP 이동될 때까지 반복될 수 있다.
상술한 바와 같이, 본 발명은 다른 기계 장치(즉, 컨베이어 벨트 및 로터리 테이블)에 따른 서로 다른 공작물 좌표계(즉, 컨베이어 벨트에 따른 PCS 및 로터리 테이블에 따른 PCS)의 지점 간의 PnP 수행 시, 마지막 지점이 속하는 기계 장치의 PCS 좌표계를 기준으로 그 운전 경로를 업데이트 하면 되기 때문에(즉, 모든 PCS 좌표에 대해 매순간 업데이트하지 않아도 되기 때문에) 메모리가 적게 들고 비용이 적게 들 수 있다.
도 13은 MCS에서 PCS로의 변환 명령어에 대한 다른 일 예를 나타낸다.
특히, 좌표계 설정 단계와 트래킹 설정 단계는 PLCOpen 규격에 따른 명령어를 이용하여 각 설정을 수행할 수 있다. 가령, 좌표계 설정 단계는 MC_SetCoordinateTransfrom, MC_SetCartesianTransfroms 등의 명령어를 이용하여 해당 설정을 수행할 수 있고, 트래킹 설정 단계는 MC_SetDynCoordTransform, MC_TrackConveyorBelt, MC_TrackRotaryTable 등의 명령어를 이용하여 해당 설정을 수행할 수 있으나, 이에 한정되는 것은 아니다.
이때, MC_SetCoordinateTransfrom 및 MC_SetCartesianTransfroms는 좌표계 변환을 하는 명령어이며, 도 13에 도시된 바와 같이, 각 명령어의 인수만 다르다. 즉, 이들 명령어를 이용하면, 도 5(b)에 도시된 바와 같이, 모두 World 좌표계에 해당하는 MCS에서 Local 좌표계에 해당하는 PCS로 좌표계 변황이 가능하다. 다만, MC_SetCoordinateTransform은 더 일반적인 형태로 구성되는데, CoordTransform라는 입력에 TransX, TransY, TransZ, RotAng1, RotAng2 및 RotAng3이 분리되어 입력되는 것이 아닌, 이들이 모두 포함된 matrix를 직접 입력 받도록 사양 정의된다.
도 9의 스테이트 머신은 도 11의 경로 운전 명령어 내부에서 매 경로마다 수행되며, MCS/PCS 좌표계 설정, 트래킹 설정 및 Discrete/Continuous/Synchronized 모션은 PLCOpen 명령어를 그대로 사용한다.
도 10의 운전 경로 티칭 명령어에서는 로봇 그리퍼(end-effector) 액추에이터의 설정 값을 매 경로마다 입력(티칭) 받을 수 있고, 도 9의 스테이트 머신에서 매 경로마다 출력이 가능하다.
도 10의 운전 경로 티칭 명령어는 InSignal 및 OutSignal 이벤트 번호를 입력(티칭) 받을 수 있고, 도 9의 스테이트 머신을 통해 도 11의 경로 운전 명령어가 해당 InSignal 및 OutSignal 이벤트 번호를 출력할 수 있다.
도 11의 경로 운전 명령어에서는 현재 경로의 PCS 좌표계의 초기 오브젝트 위치 값(ObjectPosition)을 받을 수 있고, 도 9의 스테이트 머신에서 트래킹 설정 시에 신규 위치 값으로 업데이트될 수 있다.
특히, 도 8에 해당하는 형태로 운전 경로가 설정되기 때문에, 한 지점의 팔레트에서 다른 지점의 팔레트로의 PnP 모션 수행 시에 충돌 및 속도 불연속점이 생기지 않을 수 있다. 동시에, 식(4)와 식(5)을 통한 PnP 모션 경로의 파라미터화에 따라, 도 11의 경로 운전 명령어는 도 9의 스테이트 머신을 통해 PLCOpen 규격의 모션 명령어로 운전이 가능하다.
이론적으로, 본 발명은 무한 개로 설정(티칭)된 PCS 좌표계 간에 PnP 운전이 가능하다. 이는, 도 9의 스테이트 머신을 도 11의 경로 운전 명령어 블록에서 수행하면서, 도 10의 운전 경로 티칭 명령어에서 입력(티칭) 받은 현재 경로의 PCS 좌표계 번호로 스위칭을 하기 때문에, 그러한 PnP 운전이 가능한 것이다.
한편, 본 발명은 운전 중에 현재 경로의 PCS 좌표계로 스위칭하더라도, 새롭게 인식된 PCS 좌표계의 오브젝트(object)를 정확히 트래킹할 수 있다. 이는, 도 11의 경로 운전 명령어에서는 현재 경로의 PCS 좌표계의 초기 오브젝트 위치 값(ObjectPosition)을 받아서, 도 9의 스테이트 머신에서 트래킹 설정 시에 신규 위치 값으로 업데이트할 수 있기 때문에, 그러한 정확한 트래킹이 가능한 것이다.
또한, 본 발명은 운전 중에 현재 경로의 PCS 좌표계로 스위칭을 하는 정확한 타이밍의 판단이 가능하다. 이는, 도 10의 운전 경로 티칭 명령어에서 입력(티칭) 받은 InWait 및 OutWait 이벤트 번호를 도 11의 경로 운전 명령어에서 입력을 받아 모니터링하다가 그 입력에 동기하여 도 9의 스테이트 머신에서 스테이트를 천이시키기 때문에, 그러한 정확한 타이밍 판단이 가능한 것이다.
InWait 및 OutWait 이벤트 번호는 도 11의 경로 운전 명령어를 호출하는 사용자에 의해 제공될 수 있다. 이는, 도 9의 스테이트 머신이 도 11의 경로 운전 명령어 출력으로 InSignal 및 OutSignal 이벤트 번호를 사용자에게 시그널링을 해 주기 때문에, 사용자는 InWait 및 OutWait 이벤트 번호의 제공 타이밍을 알 수 있다.
도 10의 운전 경로 티칭 명령어를 이용한 전체 운전 경로의 입력(티칭)과, 도 11의 경로 운전 명령어의 호출을 통해, 로봇은 입력된 해당 전체 경로에 대한 운전 외에도 복잡한 주변 환경과의 상호 협응이 가능하다. 이는, InWait, OutWait, InSignal 및 OutSignal과 같은 이벤트를 주변 환경 변화에 대해 시퀀스 코딩함으로써 인터랙션(interaction)이 가능해지고, 도 10의 운전 경로 티칭 명령어가 각 경로의 티칭 시 로봇 그리퍼(end-effector)의 액추에이터의 설정 값, 필요 센서 보정 값 및 속도 오버라이드 값을 포함하기 때문에, 그러한 상호 협응이 가능한 것이다. 즉, 도 10의 운전 경로 티칭 명령어는 각 운전 경로 별로 요구되는 로봇의 그리퍼(end-effector) 구동기의 출력 설정 값과 센서의 보정 값의 입력을 포함할 있으며, 도 11의 경로 운전 명령어는 트래킹 중인 오브젝트의 이동/회전량을 보상하기 위한 업데이트하기 위한 입력과, 현재 운전 경로에 대해 설정된 속도를 오버라이드(override)하기 위한 입력을 포함할 수 있다.
도 12는 축-그룹 대 축-그룹 간의 일반적 형태의 트래킹(tracking)에 대한 확장된 다른 일 예를 나타낸다.
즉, 도 7을 참조하여, 컨베이어와 로터리 테이블의 이동/회전량을 트래킹하는 PCS 좌표계 간의 PnP에 대해 상술하였지만, 이러한 서로 다른 PCS 좌표계들 간의 트래킹 원리는 도 12와 같은 구성에서도 마찬가지로 적용될 수 있다.
구체적으로, 도 12는 두 대의 로봇이 철판을 준비하면 다른 한 대의 로봇이 그 두 철판을 트래킹하면서 차례로 점 용접을 하는 경우에 해당한다. 즉, 상술한 컨베이어 벨트와 로터리 테이블의 경우에 그 이동축과 회전축을 해당 PCS 좌표계가 트래킹하는 경우에 해당하며, 도 12의 경우는 로봇이라는 축-그룹을 PCS 좌표계가 트래킹하는 경우에 해당한다. 이러한 도 12의 경우, 도 9의 스테이트 머신에서는 축-그룹들 간의 트래킹을 위해, 축-그룹들 간의 좌표계 변환 명령어(MC_SetDynCoordTransform)를 호출하도록 확장할 수 있다.
예를 들어, 로봇의 동작을 위해, 제1 운전 경로, 제2 운전 경로 및 제3 운전 경로에 따른 모션의 운전이 필요할 수 있다. 즉, 1지점->2지점->3지점->1지점의 경로 순서에 따라 로봇 팔의 모션이 수행되어야 한다. 이때, 1지점은 제1 경로의 시작 지점이자 제3 경로의 마지막 지점, 2지점은 제1 경로의 마지막 지점이자 제2 경로의 시작 지점, 3지점은 제2 경로의 마지막 지점이다. 즉, 1지점과 2지점은 서로 다른 PCS 좌표계의 지점이고, 2지점과 3지점도 서로 다른 PCS 좌표계의 지점이며, 3지점과 1지점도 서로 다른 PCS 좌표계의 지점이다.
이 경우, 로봇 팔이 1지점에 위치하면, 제1 스테이트 머신이 동작하면서, 제1 설정이 수행된다. 즉, 제1 설정은 제1 운전 경로의 설정, 다음 지점인 2지점의 MCS를 기준으로 한 PCS 좌표계의 설정 및 트래킹 설정을 각각 포함한다. 이러한 제1 설정에 따라 제1 스테이트 머신에서는 해당 운전 경로에 따른 모션 운전이 수행된다.
이후, 로봇 팔이 2지점에 위치함에 따라, 제2 스테이트 머신이 동작하면서, 제2 설정이 수행된다. 즉, 제2 설정은 제2 운전 경로의 설정, 다음 지점인 3지점의 MCS를 기준으로 한 PCS 좌표계의 설정 및 트래킹 설정을 각각 포함한다. 이러한 제2 설정에 따라 제2 스테이트 머신에서는 해당 운전 경로에 따른 모션 운전이 수행된다.
이후, 로봇 팔이 3지점에 위치함에 따라, 제3 스테이트 머신이 동작하면서, 제3 설정이 수행된다. 즉, 제3 설정은 제3 운전 경로의 설정, 다음 지점인 1지점의 MCS를 기준으로 한 PCS 좌표계의 설정 및 트래킹 설정을 각각 포함한다. 이러한 제3 설정에 따라 제3 스테이트 머신에서는 해당 운전 경로에 따른 모션 운전이 수행된다.
상술한 바와 같이 구성되는 본 발명은 다수의 PCS 좌표계 간의 Pick-and-Place(PnP) 등과 같이, 기존 PLCopen 규격에 따른 명령어로는 대응이 되지 않는 복잡한 유형의 운전 상황에 대해 모션 제어가 가능한 이점이 있다. 즉, 본 발명은 특정 축 혹은 축-그룹에 트래킹이 진행 중인 서로 다른 다수 개의 PCS 좌표계 간에 로봇의 PnP 운전이 가능하게 하는 이점이 있다. 또한, 본 발명은 PnP 운전 중에 외부 환경의 이벤트 입력에 동기 가능하고 이벤트의 시그널링이 가능한 이점이 있다. 또한, 본 발명은 PLCOpen 규격에 정의된 명령어를 기본 빌딩 블록으로 활용하여 라이브러리 형태의 명령어(User defined function block)의 구현이 가능한 이점이 있다. 또한, 본 발명은 다른 기계 장치에 따른 서로 다른 PCS 좌표계 지점 간의 모션 수행 시, 마지막 지점이 속하는 기계 장치의 PCS 좌표계를 기준으로 그 운전 경로를 업데이트 하면 되기 때문에 메모리가 적게 들고 비용이 적게 들 수 있는 이점이 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되지 않으며, 후술되는 청구범위 및 이 청구범위와 균등한 것들에 의해 정해져야 한다.
본 발명은 픽 앤 플레이스(pick-and-place) 등과 같이 다수개의 공작물 좌표계(product coordinate system; PCS) 간의 모션을 제어하기 위한 방법, 장치 및 시스템을 제공할 수 있으므로, 산업상 이용가능성이 있다.

Claims (13)

  1. 다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 모션 제어기를 포함한 시스템에서 수행되는 방법으로서,
    다수의 지점을 포함하는 운전 경로를 설정하는 제1 설정 단계;
    운전 경로의 각 지점들의 공작물 좌표계에 대해, 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하는 제2 설정 단계; 및
    설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 수행하는 운전 단계;
    를 포함하는 모션 제어 방법.
  2. 제1항에 있어서,
    상기 운전 경로에서, 그 시작 지점과 그 마지막 지점은 서로 다른 기계 장치에 따른 서로 다른 공작물 좌표계의 지점인 모션 제어 방법.
  3. 제2항에 있어서,
    상기 제2 설정 단계는 상기 각 지점들의 공작물 좌표계에 대해 기계 장치의 움직임에 따른 트래킹(tracking)을 반영하는 단계를 포함하는 모션 제어 방법.
  4. 제3항에 있어서,
    상기 운전 경로는 픽 앤 플레이스(Pick and Place; PnP)의 운전을 위한 아치 형태의 경로인 모션 제어 방법.
  5. 제4항에 있어서,
    상기 아치 형태의 경로는 hup 높이의 상향 방향 이동의 제1 모션 경로와, hdown 높이의 하향 방향 이동의 제3 모션 경로와, 제1 및 제3 모션 사이에서 l 너비의 일측 방향 이동의 제2 모션 경로와, 제1 및 제2 모션 경로 사이의 제1 만곡 모션 경로와, 제2 및 제3 모션 경로 사이의 제2 만곡 모션 경로를 포함하는 모션 제어 방법.
  6. 제5항에 있어서,
    상기 제1 만곡 모션 경로는 hup 및 l에서 각각 d1 만큼의 거리에 대해 특정 곡률의 경로를 가지고, 상기 제2 만곡 모션 경로는 hdown 및 l에서 각각 d2 만큼의 거리에 대해 특정 곡률의 경로를 가지며, d1 및 d2는 하기 식을 이용하여 구하는 모션 제어 방법.
    d1 = min(l, hup) × ArchBlendRatio
    d2 = min(l, hdown) × ArchBlendRatio
    (단, min(a, b)는 a 및 b 중에 더 작은(최소) 길이 값을 나타내며, ArchBlendRatio는 그 최소 길이 값에 대한 비율 값을 나타냄)
  7. 제3항에 있어서,
    상기 제1 설정 단계는 다수의 운전 경로와, 각 운전 경로에 대한 입출력 이벤트의 인덱스를 설정하는 단계를 포함하고,
    상기 제2 설정 단계는 입출력 이벤트의 인덱스에 매칭하는 운전 경로의 각 지점들에 대한 공작물 좌표계를 설정하는 단계를 포함하며,
    상기 운전 단계는 입출력 이벤트의 인덱스에 매칭하는 운전 경로에 대한 운전을 수행하는 단계를 포함하는 모션 제어 방법.
  8. 제7항에 있어서,
    상기 설정된 각 운전 경로에 대해 상기 제2 설정 단계 및 상기 운전 단계가 차례로 반복 수행되는 모션 제어 방법.
  9. 제3항에 있어서,
    다수의 PCS 좌표계에 대한 트래킹을 위한 PLCopen 규격의 명령어가 부재한 경우에 적용 가능하되, 상기 제2 설정 단계와 상기 운전 단계는 PLCopen 규격에 따른 명령어를 이용하여 수행되는 모션 제어 방법.
  10. 제7항에 있어서,
    상기 제1 설정 단계의 수행을 위한 명령어는 각 운전 경로 별로 요구되는 로봇의 그리퍼(end-effector) 구동기의 출력 설정 값과 센서의 보정 값을 입력 받을 수 있으며,
    상기 운전 단계의 수행을 위한 명령어는 트래킹 중인 오브젝트의 이동/회전량을 보상하기 위한 업데이트하기 위한 입력과, 현재 운전 경로에 대해 설정된 속도를 오버라이드(override)하기 위한 입력을 각각 포함하는 모션 제어 방법.
  11. 다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 모션 제어기로서,
    다수의 지점을 포함하되, 시작 지점과 마지막 지점이 서로 다른 기계 장치에 따른 서로 다른 공작물 좌표계의 지점인 운전 경로를 설정하는 경로 설정부;
    운전 경로의 각 지점들의 공작물 좌표계에 대해, 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하는 좌표계 설정부;
    설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 수행하는 운전 제어부;
    를 포함하는 모션 제어기.
  12. 제10항에 있어서,
    상기 좌표계 설정부는 상기 각 지점들의 공작물 좌표계에 대한 설정 시 기계 장치의 움직임에 따른 트래킹(tracking)을 반영하는 모션 제어기.
  13. 다수의 공작물 좌표계(product coordinate system; PCS) 간의 모션 제어를 위한 모션 제어 시스템으로서,
    드라이브의 운전을 제어하는 모션 제어기와, 모션 제어기로부터 수신한 제어 신호에 따라 모션 장치를 구동하는 드라이버를 포함하며,
    상기 모션 제어기는,
    다수의 지점을 포함하되 시작 지점과 마지막 지점이 서로 다른 기계 장치에 따른 서로 다른 공작물 좌표계의 지점인 운전 경로를 설정하고, 운전 경로의 각 지점들의 공작물 좌표계에 대해 그 운전 경로의 마지막 지점에 위치하는 기계 장치의 기계 좌표계(machine coordinate system; MCS)를 기준으로 하는 공작물 좌표계로 설정하며, 설정된 공작물 좌표계 및 운전 경로에 따라 모션의 운전을 제어하는 모션 제어 시스템.
PCT/KR2021/017362 2020-12-01 2021-11-24 다수 공작물 좌표계 간의 모션 제어 방법, 장치 및 시스템 WO2022119222A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200165453A KR102423658B1 (ko) 2020-12-01 2020-12-01 다수 공작물 좌표계 간의 모션 제어 방법, 장치 및 시스템
KR10-2020-0165453 2020-12-01

Publications (1)

Publication Number Publication Date
WO2022119222A1 true WO2022119222A1 (ko) 2022-06-09

Family

ID=81854171

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/017362 WO2022119222A1 (ko) 2020-12-01 2021-11-24 다수 공작물 좌표계 간의 모션 제어 방법, 장치 및 시스템

Country Status (2)

Country Link
KR (1) KR102423658B1 (ko)
WO (1) WO2022119222A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120069745A (ko) * 2009-10-30 2012-06-28 마키노 밀링 머신 주식회사 공구 경로의 생성 방법 및 장치
JP2016209995A (ja) * 2016-06-22 2016-12-15 オムロン株式会社 画像処理装置および画像処理システム、ならびにそれらに向けられたガイダンス装置
JP2017004300A (ja) * 2015-06-11 2017-01-05 株式会社Kmc 工作機械の数値制御装置、工作機械、工作機械の制御方法及びプログラム
KR20170124768A (ko) * 2016-05-03 2017-11-13 화천기공 주식회사 공작 기계의 가공경로 보정방법
KR20200047123A (ko) * 2018-10-26 2020-05-07 연세대학교 산학협력단 가상 공작 기계를 활용하여 가공 오차를 제한하는 수치 제어 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120069745A (ko) * 2009-10-30 2012-06-28 마키노 밀링 머신 주식회사 공구 경로의 생성 방법 및 장치
JP2017004300A (ja) * 2015-06-11 2017-01-05 株式会社Kmc 工作機械の数値制御装置、工作機械、工作機械の制御方法及びプログラム
KR20170124768A (ko) * 2016-05-03 2017-11-13 화천기공 주식회사 공작 기계의 가공경로 보정방법
JP2016209995A (ja) * 2016-06-22 2016-12-15 オムロン株式会社 画像処理装置および画像処理システム、ならびにそれらに向けられたガイダンス装置
KR20200047123A (ko) * 2018-10-26 2020-05-07 연세대학교 산학협력단 가상 공작 기계를 활용하여 가공 오차를 제한하는 수치 제어 장치

Also Published As

Publication number Publication date
KR20220076698A (ko) 2022-06-08
KR102423658B1 (ko) 2022-07-22

Similar Documents

Publication Publication Date Title
US7282882B2 (en) Robot controller
US5254923A (en) Industrial robot synchronous control method and apparatus
US7558646B2 (en) Cooperative control system of robots
WO2017052350A2 (ko) 로봇 제어 방법 및 장치
CN107206593B (zh) 用于协调地控制至少两个操纵器的操纵器系统
CN109626002A (zh) 自动码垛机器人及其控制方法
EP1395911A2 (en) A communication method and common control bus interconnecting a controller and a precision measurement assembly
WO2013065955A1 (ko) 실시간 위빙 모션 제어 장치 및 그 방법
WO2011084012A2 (ko) 마그네틱 랜드마크를 이용한 모바일 로봇의 전역 위치 추정 및 보정 방법
WO2022119222A1 (ko) 다수 공작물 좌표계 간의 모션 제어 방법, 장치 및 시스템
US20190275667A1 (en) Control device, control method, and recording medium
WO2018214147A1 (zh) 一种机器人标定方法、系统、机器人及存储介质
WO2020246808A1 (ko) 피니싱 작업을 위한 매니퓰레이터 및 그의 제어 방법
WO2016195176A1 (ko) 델타 로봇 캘리브레이션 방법 및 델타 로봇 캘리브레이션 장치
WO2023163373A1 (ko) 아핀 변환의 파라미터 캘리브레이션 방법 및 이를 이용하는 모션 제어 시스템
EP3540541B1 (en) Control device, control method, and program
CN114683276B (zh) 机器人系统
US11014237B2 (en) Methods, systems, and apparatuses, for path planning and execution in a robotic system
WO2022050610A1 (ko) 이동 로봇 및 이동 로봇을 이용한 반도체 매거진 작업 시스템
JP7294144B2 (ja) ロボット装置及び電子機器の製造方法
US11173612B2 (en) Robot system, robot controller, robot control method, and robot program
WO2022196948A1 (ko) 공작기계 수납물 수납장치의 정위치 설정 장치 및 설정 방법
WO2024111753A1 (ko) 리모트 브레인형 다족보행 ai 로봇 제어 시스템
CN114063557B (zh) 于弧形路径中控制端效器追踪对象的方法
WO2023128583A1 (ko) 로봇 핸드

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21900910

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21900910

Country of ref document: EP

Kind code of ref document: A1