WO2021261024A1 - ロボット制御システム、制御プログラムおよび制御方法 - Google Patents

ロボット制御システム、制御プログラムおよび制御方法 Download PDF

Info

Publication number
WO2021261024A1
WO2021261024A1 PCT/JP2021/008671 JP2021008671W WO2021261024A1 WO 2021261024 A1 WO2021261024 A1 WO 2021261024A1 JP 2021008671 W JP2021008671 W JP 2021008671W WO 2021261024 A1 WO2021261024 A1 WO 2021261024A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
work
control
positioning error
control system
Prior art date
Application number
PCT/JP2021/008671
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 WO2021261024A1 publication Critical patent/WO2021261024A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements

Definitions

  • This technology relates to robot control systems, control programs and control methods.
  • robots are used in various applications.
  • an example of using it in combination with a visual sensor for assembling or mounting a component is known.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2001-036295 is a component that superimposes a real image of a mounting component and a mounting substrate on an image pickup unit and then adjusts the relative position of the mounted component while visually recognizing the captured image. Disclose the mounting device and the like.
  • Patent Document 2 Japanese Patent Application Laid-Open No. 10-224095 is an electronic component mounting device operated at high speed, and is an electronic component mounting method capable of mounting components on a printed circuit board with high accuracy even if the influence of vibration becomes large. And so on.
  • Patent Document 3 discloses an electronic component mounting method that can secure a relative position between a plurality of components with high accuracy.
  • Patent Documents 1 to 3 employ a method of measuring and correcting the positional error of parts that occurs in assembly or mounting in advance. According to such a method, only the statically generated position error can be corrected, and the dynamic position error that can occur due to various factors cannot be dealt with.
  • the purpose of this technology is to provide a robot control system that enables more accurate positioning control.
  • the robot control system causes the first robot to grip and move the first work, the second robot to support the second work, and the first work to approach the second work. It is calculated by the first control unit that gives a control command to the first robot, the error calculation unit that calculates the positioning error that occurs when the first robot approaches the second work, and the error calculation unit. It includes a second control unit that gives a control command to the second robot so as to compensate for the positioning error.
  • the positioning error that occurs when the first robot that grips and moves the first work is moved at high speed is calculated, and it is compensated based on the calculated positioning error.
  • the error calculation unit may calculate the positioning error due to the vibration generated in the first robot based on the state value of the movable portion of the first robot. According to this configuration, a component caused by vibration, which is a factor of positioning error when the first robot is moved at high speed, can be appropriately calculated.
  • the error calculation unit may calculate the positioning error due to the deflection caused in the first robot based on the temporal change of the state value of the movable portion of the first robot. According to this configuration, a component due to deflection, which is a factor of positioning error when the first robot is moved at high speed, can be appropriately calculated.
  • the second control unit may enable the control command for compensating for the positioning error when the calculated magnitude of the positioning error satisfies a predetermined condition.
  • the control command for compensating for the positioning error is valid only when the calculated magnitude of the positioning error satisfies a predetermined condition, so that it is excessive for the second robot. Control commands can be suppressed.
  • the first control unit, the error calculation unit, and the second control unit may execute the processing synchronously at a predetermined cycle. According to this configuration, since the calculation of the control command for the first robot and the second robot can be performed in synchronization, the control accuracy when the first robot and the second robot are linked can be improved.
  • the first robot may be a vertical articulated robot, and the second robot may be a Cartesian robot having a plurality of axes. According to this configuration, the first work can be approached from various directions, and the control for the second robot can be simplified.
  • the robot control system may further include an image processing device that optically detects the position of the second work supported by the second robot. According to this configuration, stable control can be realized even if the position where the second work is arranged varies.
  • the image processing device may detect the position of the first work in addition to the position of the second work.
  • the error calculation unit may calculate the positioning error based on the position of the first work and the position of the second work detected by the image processing device. According to this configuration, the positioning error actually occurring in the first robot or the first work can be detected, so that more accurate control can be realized.
  • a control program executed by a computer of a robot control system including a first robot that grips and moves the first work and a second robot that supports the second work.
  • the control program includes a step of giving a control command to the first robot so that the computer approaches the first work, and positioning that occurs when the first robot approaches the first work to the second work.
  • the step of calculating the error and the step of giving a control command to the second robot so as to compensate for the calculated positioning error are executed.
  • a control method executed by a robot control system including a first robot that grips and moves the first work and a second robot that supports the second work. Will be done.
  • the control method calculates a step of giving a control command to the first robot so that the first work approaches the second work, and a positioning error that occurs when the first robot approaches the first work to the second work.
  • a step of giving a control command to the second robot so as to compensate for the calculated positioning error is included.
  • FIG. 1 is a schematic diagram showing an outline of the robot control system 1 according to the present embodiment.
  • the robot control system 1 includes a first robot 200 that grips and moves the first work 50, and a second robot 300 that supports the second work 60.
  • the second robot 300 includes a stage plate 310 on which the second work 60 is arranged, and movable shafts 312, 314, and 316 that can be repositioned in directions orthogonal to each other.
  • the first robot 200 causes the first work 50 to approach the second work 60 supported by the second robot 300.
  • the robot control system 1 has a control module 30 for controlling the robot control system 1.
  • the control module 30 may be realized in any mounting form.
  • control module 30 includes a first control module 32, an error calculation module 34, and a second control module 36.
  • the first control module 32 is a control logic in charge of controlling the first robot 200, and gives a control command to the first robot 200 so that the first work 50 approaches the second work 60. Further, the first control module 32 acquires a state value (for example, encoder information indicating the position of each joint) from the first robot 200.
  • a state value for example, encoder information indicating the position of each joint
  • the error calculation module 34 calculates a positioning error (in FIG. 1, simply referred to as “error”) that occurs when the first robot 200 approaches the first work 50 to the second work 60.
  • the second control module 36 is a control logic in charge of controlling the second robot 300, gives a control command to the second robot 300, and gives a state value (for example, encoder information indicating the position of each axis) from the second robot 300. Etc.) to get.
  • the second control module 36 gives a control command to the second robot 300 so as to compensate for the positioning error calculated by the error calculation module 34.
  • the second robot 300 is controlled so as to calculate the positioning error generated in the process in which the first robot 200 conveys the first work 50 and to compensate for the calculated positioning error. This makes it possible to realize a robot control system 1 capable of more accurate positioning control.
  • FIG. 2 is a schematic diagram illustrating the overall configuration of the robot control system 1 according to the present embodiment.
  • FIG. 2 shows, as an example, an application for assembling two parts.
  • the robot control system 1 includes a first robot 200 that grips and moves the first work 50, and a second robot 300 that supports and positions the second work 60.
  • the first robot 200 assembles the first work 50 to the second work 60 supported by the second robot 300.
  • the first work 50 includes an electronic component 52 having a pair of pins 54.
  • the second work 60 includes a substrate 62 and an electronic component 64 arranged on the substrate 62.
  • the electronic component 64 is provided with a pair of holes 66 that are inserted into the pair of pins 54.
  • a positioning marker 68 is provided on the substrate 62.
  • the camera 400 is arranged so that the first work 50 is included in the visual field range, and the positioning marker 68 is optically recognized by the image pickup by the camera 400.
  • the first robot 200 is typically a vertical articulated robot.
  • the first robot 200 includes a plurality of links 202, a joint 204 connecting the links 202 to each other, and a hand 210 attached to the tip.
  • the joint 204 sometimes referred to as a shaft, is driven by a drive source such as a servomotor.
  • the joint 204 of the first robot 200 is mechanically coupled to a drive source (not shown), and its relative position or absolute position is detected by the drive source or a sensor (typically, an encoder) attached to the joint 204. It is possible.
  • the first robot 200 is not limited to a vertical articulated robot, but any robot such as a horizontal articulated (scalar) robot or a parallel link robot can be used.
  • the second robot 300 is typically an orthogonal robot that can move in a plurality of axial directions orthogonal to each other.
  • FIG. 2 as an example of a Cartesian robot, an example in which an XYZ stage that can move in three axial directions is used is shown.
  • the second robot 300 includes a stage plate 310 on which the second work 60 is arranged, and movable axes 312, 314, 316 that can be repositioned in directions orthogonal to each other.
  • the stage plate 310 can be arranged in any three axial directions (X-axis, Y-axis, Z-axis).
  • the movable shafts 312, 314, 316 of the second robot 300 are mechanically coupled to the servomotor 330 (see FIG. 5 and the like), and the sensor (typically) attached to the servomotor 330 or the movable shafts 312, 314, 316.
  • the encoder makes it possible to detect its relative position or absolute position.
  • the second robot 300 is not limited to the XYZ stages that can move in the three axial directions, but may adopt an X stage that can move in one axial direction or an XY stage that can move in two axial directions. .. Alternatively, a Cartesian robot that can move in more axial directions may be adopted.
  • FIG. 3 is a diagram for explaining a problem that arises in an assembly application using a robot.
  • a horizontal or diagonal approach is required to insert the pair of pins 54 extending from the first work 50 including the electronic component 52 into the pair of holes 66 provided in the second work 60. Is required.
  • a vertical articulated robot having a high degree of freedom of movement is required.
  • FIG. 4 is a diagram for explaining another problem that arises in an assembly application using a robot.
  • the link 202 is bent due to the weight of the robot and the weight of the gripped work, and the hand 210 attached to the tip is positioned. It is difficult to secure sufficient accuracy.
  • the first robot 200 having a relatively high degree of freedom of movement and the second robot 300 having a relatively high positioning accuracy are combined.
  • various assembly processes can be realized at high speed and with high accuracy.
  • FIG. 5 is a schematic diagram illustrating the system configuration of the robot control system 1 according to the present embodiment.
  • the robot control system 1 includes a control device 100, a robot controller 250 networked with the control device 100 via a field network 10, a servo controller 350, and an image processing device 450. ..
  • the control device 100 exchanges data with a device connected to the field network 10 and executes a process as described later.
  • the control device 100 may be typically realized by a PLC (programmable logic controller).
  • the robot controller 250 is in charge of controlling the first robot 200. More specifically, the robot controller 250 functions as an interface with the first robot 200, outputs a command for driving the first robot 200 according to a command from the control device 100, and outputs a command for driving the first robot 200. The state value of 200 is acquired and output to the control device 100.
  • the servo controller 350 is in charge of controlling the servo motor 330 that drives the axis of the second robot 300. More specifically, the servo controller 350 functions as an interface with the second robot 300, and corresponds to a command for driving one axis constituting the second robot 300 according to a command from the control device 100. In addition to outputting to the servo motor 330, the state value of the corresponding servo motor 330 of the second robot 300 is acquired and output to the control device 100.
  • the image processing device 450 executes various image recognition processes on the image captured by the camera 400.
  • the image processing device 450 detects the position of the second work 60 by performing search processing of the marker 68 and the like. Further, the image processing device 450 can also detect the position of the first work 50 when the first work 50 is included in the field of view of the camera 400.
  • the image processing device 450 may detect the position of the first work 50 in addition to the position of the second work 60.
  • EtherCAT registered trademark
  • EtherNet / IP protocols for industrial networks
  • EtherCAT is adopted as the protocol
  • data can be exchanged between the control device 100 and the device connected to the field network 10 at a fixed cycle of, for example, several hundred ⁇ s to several m seconds.
  • the first robot 200 and the second robot 300 included in the robot control system 1 can be controlled with high speed and high accuracy.
  • the control device 100 may be connected to the display device 600 and the server device 700 via the upper network 20.
  • the upper network 20 a protocol for an industrial network, EtherNet / IP, or the like can be used.
  • the control device 100 may be connected to a support device 500 for installing a user program executed by the control device 100 and performing various settings.
  • FIG. 6 is a schematic diagram showing a hardware configuration example of the control device 100 constituting the robot control system 1 according to the present embodiment.
  • the control device 100 includes a processor 102, a main memory 104, a storage 110, a memory card interface 112, an upper network controller 106, a field network controller 108, a local bus controller 116, and a USB. (Universal Serial Bus) Includes a USB controller 120 that provides an interface. These components are connected via the processor bus 118.
  • the processor 102 corresponds to an arithmetic processing unit that executes control operations, and is composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. Specifically, the processor 102 reads a program stored in the storage 110, expands it in the main memory 104, and executes it to realize a control operation for a controlled object.
  • a CPU Central Processing Unit
  • GPU Graphics Processing Unit
  • the main memory 104 is composed of a volatile storage device such as a DRAM (Dynamic Random Access Memory) or a SRAM (Static Random Access Memory).
  • the storage 110 is composed of, for example, a non-volatile storage device such as an SSD (Solid State Drive) or an HDD (Hard Disk Drive).
  • the storage 110 stores a system program 1102 for realizing basic functions, an IEC program 1104 and an application program 1106 created according to a control target, and the like.
  • the IEC program 1104 includes a group of instructions necessary for realizing the assembly process in the robot control system 1 according to the present embodiment.
  • the IEC program 1104 may typically include sequence and motion instructions.
  • the IEC program 1104 may be written in any language specified by IEC 61131-3 as defined by the International Electrotechnical Commission (IEC). However, the IEC program 1104 may include a program described in a manufacturer's own language other than the language specified in IEC61131-3.
  • the application program 1106 includes instructions for controlling the operation of the first robot 200 and / or the second robot 300.
  • the application program 1106 may include instructions written in a predetermined programming language (for example, a programming language for robot control such as V + language or a programming language related to NC control such as G code).
  • control module 30 first control module 32, error calculation module 34 and second control module 36 shown in FIG. 1 is realized by executing the IEC program 1104 and / or the application program 1106 by the processor 102. good.
  • the memory card interface 112 accepts a memory card 114, which is an example of a removable storage medium.
  • the memory card interface 112 can read and write arbitrary data to and from the memory card 114.
  • the host network controller 106 exchanges data with an arbitrary information processing device (display device 600, server device 700, etc. shown in FIG. 5) via the host network 20.
  • an arbitrary information processing device display device 600, server device 700, etc. shown in FIG. 5
  • the field network controller 108 exchanges data with each device via the field network 10.
  • the field network controller 108 may function as a communication master of the field network 10.
  • the local bus controller 116 exchanges data with an arbitrary functional unit 130 included in the control device 100 via the local bus 122.
  • the functional unit 130 is, for example, an analog I / O unit that is in charge of input and / or output of an analog signal, a digital I / O unit that is in charge of input and / or output of a digital signal, a counter unit that receives pulses from an encoder, and the like. And so on.
  • the USB controller 120 exchanges data with an arbitrary information processing device (support device 500, etc.) via a USB connection.
  • FIG. 7 is a schematic diagram showing a hardware configuration example of the robot controller 250 constituting the robot control system 1 according to the present embodiment.
  • the robot controller 250 includes a field network controller 252 and a control processing circuit 260.
  • the field network controller 252 mainly exchanges data with the control device 100 via the field network 10.
  • the control processing circuit 260 executes arithmetic processing necessary for driving the first robot 200.
  • the control processing circuit 260 includes a processor 262, a main memory 264, a storage 270, and an interface circuit 268.
  • the processor 262 executes a control operation for driving the first robot 200.
  • the main memory 264 is composed of, for example, a volatile storage device such as a DRAM or SRAM.
  • the storage 270 is composed of, for example, a non-volatile storage device such as an SSD or an HDD.
  • the storage 270 stores a system program 272 for realizing control for driving the first robot 200.
  • the system program 272 includes an instruction for executing a control operation related to the operation of the first robot 200 and an instruction for an interface with the first robot 200.
  • FIG. 8 is a schematic diagram showing a hardware configuration example of the servo controller 350 constituting the robot control system 1 according to the present embodiment.
  • the servo controller 350 includes a field network controller 352, a control processing circuit 360, and a drive circuit 380.
  • the field network controller 352 mainly exchanges data with the control device 100 via the field network 10.
  • the control processing circuit 360 executes arithmetic processing necessary for controlling the servomotor 330 that drives the second robot 300.
  • the control processing circuit 360 includes a processor 362, a main memory 364, and a storage 370.
  • the processor 362 executes the control calculation related to the servomotor 330 that drives the second robot 300.
  • the main memory 364 is composed of, for example, a volatile storage device such as a DRAM or SRAM.
  • the storage 370 is composed of, for example, a non-volatile storage device such as an SSD or an HDD.
  • the storage 370 stores a system program 372 for realizing drive control of the servomotor 330.
  • the system program 372 includes an instruction for executing a control operation related to the operation of the second robot 300 and an instruction for an interface with the second robot 300.
  • the drive circuit 380 includes a converter circuit, an inverter circuit, and the like, generates electric power having a specified voltage, current, and phase according to a command value calculated by the control processing circuit 360, and supplies the electric power to the servomotor 330.
  • the servomotor 330 is mechanically coupled to any of the axes constituting the second robot 300.
  • a motor having characteristics corresponding to the second robot 300 can be adopted.
  • the name is not limited to the servo motor, and any of an inductive motor, a synchronous motor, a permanent magnet motor, and a reluctance motor may be adopted, and not only a rotary motor but also a linear motor may be adopted.
  • FIG. 9 is a schematic diagram showing a hardware configuration example of the image processing device 450 constituting the robot control system 1 according to the present embodiment.
  • the image processing apparatus 450 includes a processor 452, a main memory 454, a storage 460, a memory card interface 462, an upper network controller 456, a field network controller 458, a USB controller 470, and a camera. Includes interface 466 and. These components are connected via the processor bus 468.
  • the processor 452 corresponds to an arithmetic processing unit that executes image processing, and is composed of a CPU, a GPU, and the like. Specifically, the processor 452 reads a program stored in the storage 460, expands it in the main memory 454, and executes it to realize arbitrary image processing.
  • the main memory 454 is composed of a volatile storage device such as DRAM or SRAM.
  • the storage 460 is composed of, for example, a non-volatile storage device such as an SSD or an HDD.
  • the storage 460 stores a system program 4602 for realizing basic functions, an image processing program 4604 created according to a control target, and the like.
  • the memory card interface 462 accepts a memory card 464, which is an example of a removable storage medium.
  • the upper network controller 456 exchanges data with an arbitrary information processing device via the upper network.
  • the field network controller 458 exchanges data with each device via the field network 10.
  • the USB controller 470 exchanges data with an arbitrary information processing device via a USB connection.
  • the camera interface 466 acquires the image captured by the camera 400 and gives various commands to the camera 400.
  • the support device 500 constituting the robot control system 1 according to the present embodiment may be realized by using a general-purpose personal computer as an example. Since the basic hardware configuration example of the support device 500 is well known, detailed description thereof will not be given here.
  • the display device 600 constituting the robot control system 1 according to the present embodiment may be realized by using a general-purpose personal computer as an example. Since the basic hardware configuration example of the display device 600 is well known, detailed description thereof will not be given here.
  • the server device 700 constituting the robot control system 1 according to the present embodiment may be realized by using a general-purpose personal computer as an example. Since the basic hardware configuration example of the server device 700 is well known, detailed description thereof will not be given here.
  • E8 Other forms 6 to 9 show configuration examples in which one or more processors provide necessary functions by executing a program, but some or all of these provided functions are provided by dedicated hardware. It may be implemented using a hardware circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • 10 to 12 are diagrams for explaining an assembly process using the robot control system 1 according to the present embodiment.
  • a process of specifying the position where the second work 60 is arranged and determining the relative position between the first work 50 and the second work 60 is performed. More specifically, the second work 60 is imaged by the camera 400, and the positioning marker 68 provided on the substrate 62 of the second work 60 is recognized, so that the second work 60 is arranged on the stage plate 310. The position of the second work 60 is determined.
  • the trajectory 70 for approaching the first work 50 to the second work 60 is calculated. Then, the assembly process using the first robot 200 and the second robot 300 is started.
  • the first robot 200 moves along the calculated trajectory 70.
  • the second robot 300 compensates for the positioning error that occurs when the first robot 200 moves along the trajectory 70.
  • the positioning error generated in the first work 50 is sequentially calculated and in order to compensate for the calculated positioning error.
  • the movable shafts 312, 314, 316 of the second robot 300 are sequentially driven.
  • the position of the second work 60 arranged on the stage plate 310 is adjusted so as to compensate for the positioning error that occurs in the first work 50. Will be done.
  • the position of the second work 60 is adjusted so that the positioning error due to vibration and deflection caused by moving the first robot 200 at a relatively high speed is absorbed. This absorbs the predetermined relative positional deviation between the first work 50 and the second work 60.
  • FIGS. 10 to 12 show a configuration example in which the camera 400 and the image processing device 450 are used to optically recognize the position of the positioning marker 68, the camera 400 and the image processing device 450 are indispensable. If the position where the second work 60 is arranged is predetermined instead of the configuration, the camera 400 and the image processing device 450 may be omitted.
  • a plurality of devices cooperate to realize processing.
  • the position information managed by each device is often defined by a coordinate system independent of each other. Therefore, positioning control may be realized using a common reference coordinate system.
  • FIG. 13 is a diagram showing an example of a coordinate system defined in the robot control system 1 according to the present embodiment. With reference to FIG. 13, the position control of the entire robot control system 1 is realized by a common reference coordinate system.
  • the tip position of the first robot 200 (the position of the end of the link 202 farthest from the base) is defined by the first robot coordinate system defined based on the installation position of the first robot 200. ..
  • a hand 210 is attached to the tip of the first robot 200, and the position of the first work 50 held by the hand 210 is also defined by the first robot coordinate system. Therefore, the position of the first work 50 can be defined by using the first robot position (first robot coordinate system).
  • the current position of the second robot 300 (typically, the current position of the area where the second work 60 is arranged on the stage plate 310) is defined based on the installation position of the second robot 300. It is defined by the second robot coordinate system. That is, the position of the second robot 300 can be defined as the second robot position by the second robot coordinate system.
  • the position of the second work 60 is also detected by the camera 400 and the image processing device 450.
  • the position of the second work 60 to be detected is defined by the camera coordinate system (or image coordinate system) defined with reference to the inside of the image captured by the camera 400. That is, the position of the second work 60 can be defined by the camera coordinate system.
  • the relative position After converting the position specified in each coordinate system as described above to the position specified in the common reference coordinate system, the relative position may be calculated and the position may be controlled.
  • FIG. 14 is a diagram for explaining an example of position information exchanged in the robot control system 1 according to the present embodiment.
  • the robot controller 250 acquires (1) the first robot position (first robot coordinate system) from the first robot 200 and periodically sends it to the control device 100.
  • Each of the servo controllers 350 acquires the state value of the corresponding servomotor 330 and periodically sends it to the control device 100.
  • the set of the state values of each servomotor 330 constituting the second robot 300 is (2) the second robot position (second robot coordinate system).
  • the image processing device 450 identifies the position where the second work 60 is arranged by image recognition processing based on the image captured by the camera 400, and (3) controls the position (camera coordinate system) of the second work 60. It is periodically sent to the device 100.
  • the control device 100 converts each position into a position in the reference coordinate system by using a conversion formula acquired in advance based on the positional relationship of the robot arrangement, calibration, and the like, and then executes the processing necessary for the positioning control. do.
  • FIG. 15 is a flowchart showing a processing procedure of an assembly process in the robot control system 1 according to the present embodiment. Each step shown in FIG. 15 is typically realized by the processor 102 of the control device 100 executing a program. The series of processes shown in FIG. 15 are repeatedly executed in a predetermined cycle (control cycle).
  • control device 100 detects the position of the second work 60 arranged on the stage plate 310 (step S2), and the trajectory 70 for inserting the first work 50 into the second work 60. Is calculated (step S4). Then, the following processes of steps S10 to S26 are repeated until the first work 50 is inserted into the second work 60.
  • control device 100 acquires the encoder information of each joint of the first robot 200 and the encoder information of each axis of the second robot 300 (step S10).
  • the control device 100 calculates the current position (theoretical value) of the first work 50 held by the hand 210 of the first robot 200 based on the acquired encoder information (step S12).
  • the "theoretical value” is a value calculated based on the encoder information of each joint of the first robot 200, and does not reflect the positioning error caused by the deflection described later.
  • the control device 100 calculates the correction amount of the second robot 300 caused by the vibration corresponding to the positioning error caused by the vibration caused by the first robot 200 (step S14).
  • the control device 100 vibrates in the first robot 200 based on the state value (for example, encoder information) of the movable portion (typically indirect) of the first robot 200. Calculate the positioning error due to.
  • the control device 100 calculates the amount of deflection generated in each link 202 of the first robot 200 based on the acquired encoder information (step S16).
  • the control device 100 calculates the current position (actual value) of the first work 50 based on the calculated amount of deflection (step S18).
  • the control device 100 calculates the correction amount of the second robot 300 due to the deflection corresponding to the positioning error caused by the first robot 200 due to the deflection (step S20).
  • the control device 100 calculates the positioning error caused by the deflection caused in the first robot 200 as an example of the positioning error.
  • the control device 100 determines whether or not the combined result of the correction amount of the second robot 300 due to vibration and the correction amount of the second robot 300 due to bending is within a predetermined threshold value (step). S22). That is, the control device 100 calculates the positioning error that occurs when the first robot 200 approaches the first work 50 to the second work 60.
  • control device. 100 updates the target position of the second robot 300 for compensating for the error between the target position of the first work 50 and the current position (actual value) (step S24).
  • step S24 If the error between the target position of the first work 50 and the current position (actual value) is within a predetermined threshold value (YES in step S22), the process of step S24 is skipped.
  • control device 100 outputs the target position of the next cycle of the first robot 200 to the robot controller 250 and outputs the target position of the second cycle of the second robot 300 to the servo controller 350 (step S26). ). That is, the control device 100 gives a control command to the first robot 200 so that the first work 50 approaches the second work 60 along the trajectory 70. Further, the control device 100 gives a control command to the second robot 300 so as to compensate for the calculated positioning error (particularly, when YES in step S22).
  • step S2 the image processing apparatus 450 detects the position (camera coordinate system) of the second work 60 by performing the search process of the marker 68 on the image captured by the camera 400.
  • the control device 100 converts the position of the second work 60 (camera coordinate system) into the position of the reference coordinate system, and calculates the initial position P w2 (0) of the second work 60. That is, the image processing device 450 optically detects the position of the second work 60 supported by the second robot 300.
  • step S4 the control device 100 calculates the initial position P w1 (0) of the first work 50 based on the initial position of the first robot 200, and the calculated initial position P w1 (0) and the initial position P w2. Based on (0), the trajectory 70 for inserting the first work 50 into the second work 60 is calculated.
  • the orbit 70 may be defined as a set of points (reference coordinate system) to be passed by the first work 50 held by the first robot 200, or may be defined by using a function defined in the reference coordinate system. May be good.
  • the target position of the first robot 200 at the time t which is the current cycle, is R d (t), and the current position of the first robot 200 is R (t).
  • the control device 100 determines the current position (theoretical value) R (t) of the first robot 200 based on the encoder information of the first robot 200 (encoder value E Ri (t) of each joint i). Is calculated, and further, the current position (theoretical value) P w1 (t) of the first work 50 is calculated. At the same time, the control device 100 calculates the current position S (t) of the second robot 300 based on the encoder information of the second robot 300 (encoder value E Si (t) of each axis i).
  • the function f includes a time rate of change of the encoder value E Ri of each joint (t) and an encoder value E Ri of each joint (t) as an input variable.
  • Controller 100 calculates the amount of deflection occurs each joint calculated by that torque tau i from (t) are generated in the link 202 [delta] j (t). Finally, the control device 100 synthesizes the deflection amount ⁇ j (t) generated in each link 202 to calculate the correction amount ⁇ f (t) of the second robot 300 due to the deflection.
  • the positioning error due to the deflection may be calculated based on the temporal change of the state value (for example, encoder information) of the movable portion (typically indirect) of the first robot 200.
  • the control device 100 on the basis of the track 70 which is calculated in advance, the target position of the first workpiece 50 from the target position P dw1 the first workpiece 50 at time t (t) at time t + 1 is the next period P dw1 (T + 1) is calculated, and further, the target position R d (t + 1) of the first robot 200 is calculated. In this way, the control device 100 calculates a new target position of the first robot 200 based on the current position of the first work 50.
  • Positioning control based on camera image
  • state values for example, encoder information
  • Positioning control may be performed using the positions of the first work 50 and the second work 60 that are recognized.
  • control device 100 calculates the positioning error based on the position of the first work 50 and the position of the second work 60 detected by the image processing device 450.
  • FIG. 16 is a flowchart showing another processing procedure of the assembly processing in the robot control system 1 according to the present embodiment.
  • Each step shown in FIG. 16 is typically realized by the processor 102 of the control device 100 executing a program.
  • the series of processes shown in FIG. 16 are repeatedly executed in a predetermined cycle (control cycle).
  • the processing procedure shown in FIG. 16 is obtained by changing steps S10 to S26 included in the processing procedure shown in FIG. 15 to steps S30 to S40.
  • control device 100 acquires the positions of the first work 50 and the second work 60 detected based on the image captured by the camera 400 (step S30).
  • the control device 100 calculates the positioning error generated in the first robot 200 based on the acquired positions of the first work 50 and the second work 60 (step S32), and compensates for the calculated positioning error of the second robot 300.
  • the correction amount of is calculated (step S34).
  • the control device 100 determines whether or not the calculated correction amount of the second robot 300 is within a predetermined threshold value (step S36).
  • step S36 When the calculated correction amount of the second robot 300 exceeds a predetermined threshold value (NO in step S36), the control device 100 compensates for the positioning error occurring in the first robot 200.
  • the target position of the second robot 300 is updated (step S38).
  • step S36 If the calculated correction amount of the second robot 300 is within a predetermined threshold value (YES in step S36), the process of step S38 is skipped.
  • control device 100 outputs the target position of the next cycle of the first robot 200 to the robot controller 250 and outputs the target position of the second cycle of the second robot 300 to the servo controller 350 (step S40). ).
  • the processing procedure shown in FIG. 15 and the processing procedure shown in FIG. 16 may be combined.
  • the processing procedure shown in FIG. 15 may be executed until the first work 50 reaches the field of view of the camera 400, and after that, the processing procedure shown in FIG. 16 may be executed.
  • the control device 100 satisfies a predetermined condition (in this example, exceeding the threshold value) for the calculated magnitude of the positioning error (FIG. 15).
  • a predetermined condition in this example, exceeding the threshold value
  • the control command for compensating for the positioning error is enabled in step S22 and step S36) in FIG. 16, the control for compensating for the positioning error is performed regardless of whether or not the predetermined conditions are satisfied.
  • the directive may always be valid.
  • the first control module 32, the error calculation module 34, and the second control module 36 included in the control module 30 of FIG. 1 are processed synchronously at a predetermined cycle. Will be executed.
  • FIG. 17 is a diagram showing a part of variations of the configuration example of the robot control system 1 according to the present embodiment.
  • FIG. 17 shows the five basic functions of the robot control system 1 by using the symbols “LD”, “RC”, “RA”, “MC”, and “SA”.
  • LD includes a function of executing a control operation related to the assembly process as shown in FIG. 15 above.
  • the control device 100 is in charge of the "LD". More specifically, the IEC program 1104 executed by the processor 102 of the control device 100 includes instructions necessary for realizing "LD".
  • “LD” includes a function corresponding to the error calculation module 34 of FIG.
  • RC includes a function of executing a control operation related to the operation of the first robot 200.
  • the control calculation related to the operation of the first robot 200 includes the calculation of the trajectory of the first robot 200, the calculation of the target angle of each joint included in the first robot 200 at each time, and the like.
  • “RC” may be realized by the application program 1106 stored in the control device 100 and the system program 272 stored in the robot controller 250.
  • RA includes a function related to the interface with the first robot 200. Specifically, “RA” is a function of converting the calculation result by the RC function into a value (voltage, etc.) required for the actual operation of the first robot 200 and outputting it, and is obtained from the first robot 200. Includes a function to output data (pulse value, etc.) to the RC function. “RA” may be realized by the system program 272 stored in the robot controller 250.
  • the “RC” and “RA” include functions corresponding to the first control module 32 in FIG.
  • the “MC” includes a function of executing a control operation related to the operation of the second robot 300.
  • the control calculation related to the operation of the second robot 300 includes calculation of the trajectory of the second robot 300, calculation of the target angle or target speed of each axis included in the second robot 300 at each time, and the like. include.
  • the "MC" may be realized by the application program 1106 stored in the control device 100 and the system program 372 stored in the servo controller 350.
  • SA includes a function related to the interface with the second robot 300. Specifically, “SA” is a function of converting the calculation result by the MC function into a value (voltage, etc.) required for the actual operation of the second robot 300 and outputting it, and is obtained from the second robot 300. Includes a function to output data (pulse value, etc.) to the MC function. “SA” may be realized by the system program 372 stored in the servo controller 350.
  • FIG. 17 shows 16 types of configuration examples as an example.
  • the configuration example number “1” is an implementation example corresponding to the robot control system 1 described above, and the control device 100 is in charge of positioning control, and the control device 100 and the robot controller are used to control the first robot 200.
  • the 250 is in charge, and the control device 100 and the servo controller 350 are in charge of controlling the second robot 300.
  • the same function may be shared by a plurality of devices.
  • the configuration example number “2” means a configuration example in which the control device 100 and the robot controller 250 are integrated, and for example, the robot controller 250 may be incorporated into the control device 100 and mounted.
  • control device 100 the robot controller 250, and the servo controller 350 may be integrated and configured.
  • the mounting example shown in FIG. 17 is an example, and may be mounted using, for example, a plurality of control devices. Further, the image processing device 450 may be configured independently or integrated with the control device 100.
  • the robot control system 1 may adopt any mounting form as long as the required functions can be realized by any method.
  • Robot control system (1) The first robot (200) that grips and moves the first work (50), With the second robot (300) supporting the second work (60), A first control unit (32; 100) that gives a control command to the first robot so that the first work approaches the second work. An error calculation unit (34; 100) that calculates a positioning error that occurs when the first robot approaches the second work. A robot control system including a second control unit (36; 100) that gives a control command to the second robot so as to compensate for the positioning error calculated by the error calculation unit.
  • the first robot is a vertical articulated robot.
  • the image processing apparatus detects the position of the first work in addition to the position of the second work.
  • Step (S26) of giving a control command to the first robot so that the first work approaches the second work Steps (S14, S20) for calculating the positioning error generated when the first robot approaches the second work, and A control method comprising a step (S24, S26) of giving a control command to the second robot so as to compensate for the calculated positioning error.
  • a positioning error (caused by vibration and / or deflection) that occurs when the first robot 200 that grips and moves the first work 50 is moved at a high speed or the like.
  • the cause is sequentially calculated, and a control command is given to the second robot 300 that supports the second work 60 so as to compensate for the calculated positioning error.
  • 1 robot control system 10 field network, 20 upper network, 30 control module, 32 1st control module, 34 error calculation module, 36 2nd control module, 50 1st work, 60 2nd work, 52, 64 electronic parts, 54 pins, 62 boards, 66 holes, 68 markers, 70 orbits, 100 control devices, 102,262,362,452 processors, 104,264,364,454 main memory, 106,456 upper network controller, 108,252,352 , 458 field network controller, 110,270,370,460 storage, 112,462 memory card interface, 114,464 memory card, 116 local bus controller, 118,468 processor bus, 120,470 USB controller, 122 local bus, 130 Functional unit, 200 second robot, 202 link, 204 joint, 210 hand, 250 robot controller, 260, 360 control processing circuit, 268 interface circuit, 272,372,1102,4602 system program, 300 second robot, 310 stage plate , 312, 314, 316 movable shaft, 330 servo motor, 350 servo controller

Abstract

ロボット制御システムは、第1ワークを把持して移動させる第1ロボットと、第2ワークを支持する第2ロボットと、第1ワークを第2ワークへアプローチさせるように、第1ロボットに制御指令を与える第1制御部と、第1ロボットが第1ワークを第2ワークにアプローチさせるときに発生する位置決め誤差を算出する誤差算出部と、誤差算出部により算出された位置決め誤差を補償するように、第2ロボットに制御指令を与える第2制御部とを含む。

Description

ロボット制御システム、制御プログラムおよび制御方法
 本技術は、ロボット制御システム、制御プログラムおよび制御方法に関する。
 FA(Factory Automation)分野においては、ロボットが様々なアプリケーションに用いられている。アプリケーションの一例として、視覚センサと組み合わせて、部品の組み立てや実装などに用いる例が知られている。
 例えば、特開2001-036295号公報(特許文献1)は、実装部品と実装基板との実像を撮像ユニットにて重ね合わせた上で、この撮像画像を視認しつつ両者の相対位置を調整する部品実装装置などを開示する。
 特開平10-224095号公報(特許文献2)は、高速動作させた電子部品実装装置で、振動の影響が大きくなっても、精度良くプリント基板に部品を実装することが可能な電子部品実装方法などを開示する。
 特開2002-076695号公報(特許文献3)は、複数部品間の相対位置を高精度で確保することができる電子部品実装方法などを開示する。
特開2001-036295号公報 特開平10-224095号公報 特開2002-076695号公報
 特許文献1~3に開示される技術は、組み立てまたは実装において生じる部品の位置誤差を予め計測して修正する方法を採用する。このような手法によれば、静的に発生する位置誤差のみを修正できるにすぎず、様々な要因で発生し得る動的な位置誤差には対応できない。
 本技術は、より精度の高い位置決め制御が可能なロボット制御システムを提供することを目的とする。
 本技術のある実施の形態に係るロボット制御システムは、第1ワークを把持して移動させる第1ロボットと、第2ワークを支持する第2ロボットと、第1ワークを第2ワークへアプローチさせるように、第1ロボットに制御指令を与える第1制御部と、第1ロボットが第1ワークを第2ワークにアプローチさせるときに発生する位置決め誤差を算出する誤差算出部と、誤差算出部により算出された位置決め誤差を補償するように、第2ロボットに制御指令を与える第2制御部とを含む。
 この構成によれば、第1ワークを把持して移動させる第1ロボットを高速で移動させた場合などに生じる位置決め誤差を算出するとともに、算出された位置決め誤差に基づいて、それを補償するように、第2ワークを支持する第2ロボットに制御指令を与える。第1ロボットと第2ロボットとを組み合わせることで、より精度の高い位置決め制御を実現できる。
 誤差算出部は、第1ロボットの可動部の状態値に基づいて、第1ロボットに生じる振動に起因する位置決め誤差を算出するようにしてもよい。この構成によれば、第1ロボットを高速で移動させた場合の位置決め誤差要因である、振動に起因する成分を適切に算出できる。
 誤差算出部は、第1ロボットの可動部の状態値の時間的変化に基づいて、第1ロボットに生じるたわみに起因する位置決め誤差を算出するようにしてもよい。この構成によれば、第1ロボットを高速で移動させた場合の位置決め誤差要因である、たわみに起因する成分を適切に算出できる。
 第2制御部は、算出された位置決め誤差の大きさが予め定められた条件を満たした場合に、位置決め誤差を補償するための制御指令を有効化するようにしてもよい。この構成によれば、算出された位置決め誤差の大きさが予め定められた条件を満たした場合に限って、位置決め誤差を補償するための制御指令が有効化されるので、第2ロボットに対する過剰な制御指令を抑制できる。
 第1制御部、誤差算出部および第2制御部は、予め定められた周期で同期して処理を実行するようにしてもよい。この構成によれば、第1ロボットおよび第2ロボットに対する制御指令の算出を同期して行えるので、第1ロボットと第2ロボットとを連係させた場合の制御精度を高めることができる。
 第1ロボットは、垂直多関節ロボットであり、第2ロボットは、複数の軸を有する直交ロボットであってもよい。この構成によれば、第1ワークを様々な方向からアプローチさせることができるとともに、第2ロボットに対する制御を簡素化できる。
 ロボット制御システムは、第2ロボットに支持される第2ワークの位置を光学的に検出する画像処理装置をさらに含んでいてもよい。この構成によれば、第2ワークが配置される位置にばらつきがあっても、安定した制御を実現できる。
 画像処理装置は、第2ワークの位置に加えて、第1ワークの位置も検出するようにしてもよい。誤差算出部は、画像処理装置により検出された、第1ワークの位置および第2ワークの位置に基づいて、位置決め誤差を算出するようにしてもよい。この構成によれば、第1ロボットあるいは第1ワークに実際に生じている位置決め誤差を検出できるので、より精度の高い制御を実現できる。
 本技術の別の実施の形態によれば、第1ワークを把持して移動させる第1ロボットと、第2ワークを支持する第2ロボットとを備えるロボット制御システムのコンピュータで実行される制御プログラムが提供される。制御プログラムは、コンピュータに、第1ワークを第2ワークへアプローチさせるように、第1ロボットに制御指令を与えるステップと、第1ロボットが第1ワークを第2ワークにアプローチさせるときに発生する位置決め誤差を算出するステップと、算出された位置決め誤差を補償するように、第2ロボットに制御指令を与えるステップとを実行させる。
 本技術のさらに別の実施の形態によれば、第1ワークを把持して移動させる第1ロボットと、第2ワークを支持する第2ロボットとを含むロボット制御システムで実行される制御方法が提供される。制御方法は、第1ワークを第2ワークへアプローチさせるように、第1ロボットに制御指令を与えるステップと、第1ロボットが第1ワークを第2ワークにアプローチさせるときに発生する位置決め誤差を算出するステップと、算出された位置決め誤差を補償するように、第2ロボットに制御指令を与えるステップとを含む。
 本技術によれば、より精度の高い位置決め制御が可能なロボット制御システムを実現できる。
本実施の形態に係るロボット制御システムの概略を示す模式図である。 本実施の形態に係るロボット制御システムの全体構成を概略する模式図である。 ロボットを用いた組み立てアプリケーションにおいて生じる課題を説明するための図である。 ロボットを用いた組み立てアプリケーションにおいて生じる別の課題を説明するための図である。 本実施の形態に係るロボット制御システムのシステム構成を概略する模式図である。 本実施の形態に係るロボット制御システムを構成する制御装置のハードウェア構成例を示す模式図である。 本実施の形態に係るロボット制御システムを構成するロボットコントローラ250のハードウェア構成例を示す模式図である。 本実施の形態に係るロボット制御システムを構成するサーボコントローラのハードウェア構成例を示す模式図である。 本実施の形態に係るロボット制御システムを構成する画像処理装置のハードウェア構成例を示す模式図である。 本実施の形態に係るロボット制御システムを用いた組み立て処理を説明するための図である。 本実施の形態に係るロボット制御システムを用いた組み立て処理を説明するための図である。 本実施の形態に係るロボット制御システムを用いた組み立て処理を説明するための図である。 本実施の形態に係るロボット制御システムにおいて定義された座標系の一例を示す図である。 本実施の形態に係るロボット制御システムにおいてやり取りされる位置情報の一例を説明するための図である。 本実施の形態に係るロボット制御システムにおける組み立て処理の処理手順を示すフローチャートである。 本実施の形態に係るロボット制御システムにおける組み立て処理の別の処理手順を示すフローチャートである。 本実施の形態に係るロボット制御システムの構成例のバリエーションの一部を示す図である。
 本技術の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
 <A.適用例>
 まず、本技術が適用される場面の一例について説明する。図1は、本実施の形態に係るロボット制御システム1の概略を示す模式図である。
 図1を参照して、本実施の形態に係るロボット制御システム1は、第1ワーク50を把持して移動させる第1ロボット200と、第2ワーク60を支持する第2ロボット300とを含む。第2ロボット300は、第2ワーク60が配置されるステージプレート310と、互いに直交する方向に位置を変更可能な可動軸312,314,316とを含む。第1ロボット200は、第1ワーク50を第2ロボット300により支持された第2ワーク60へアプローチさせる。
 ロボット制御システム1は、ロボット制御システム1を制御するための制御モジュール30を有している。なお、制御モジュール30については、どのような実装形態で実現してもよい。
 より具体的には、制御モジュール30は、第1制御モジュール32と、誤差算出モジュール34と、第2制御モジュール36とを含む。
 第1制御モジュール32は、第1ロボット200の制御を担当する制御ロジックであり、第1ワーク50を第2ワーク60へアプローチさせるように、第1ロボット200に制御指令を与える。また、第1制御モジュール32は、第1ロボット200から状態値(例えば、各関節の位置を示すエンコーダ情報など)を取得する。
 誤差算出モジュール34は、第1ロボット200が第1ワーク50を第2ワーク60にアプローチさせるときに発生する位置決め誤差(図1においては、単に「誤差」と記す。)を算出する。
 第2制御モジュール36は、第2ロボット300の制御を担当する制御ロジックであり、第2ロボット300に制御指令を与えるとともに、第2ロボット300から状態値(例えば、各軸の位置を示すエンコーダ情報など)を取得する。特に、第2制御モジュール36は、誤差算出モジュール34により算出された位置決め誤差を補償するように、第2ロボット300に制御指令を与える。
 このような第1ロボット200が第1ワーク50を搬送する過程で生じる位置決め誤差を算出するとともに、算出された位置決め誤差を補償するように、第2ロボット300が制御される。これによって、より精度の高い位置決め制御が可能なロボット制御システム1を実現できる。
 <B.全体構成例>
 本実施の形態に係るロボット制御システム1の全体構成例について説明する。
 図2は、本実施の形態に係るロボット制御システム1の全体構成を概略する模式図である。図2には、一例として、2つの部品を組み立てるアプリケーションを示す。
 より具体的には、ロボット制御システム1は、第1ワーク50を把持して移動させる第1ロボット200と、第2ワーク60を支持および位置決めする第2ロボット300とを含む。第1ロボット200は、第1ワーク50を第2ロボット300により支持された第2ワーク60に組み付ける。
 第1ワーク50は、一対のピン54を有する電子部品52を含む。第2ワーク60は、基板62と、基板62上に配置された電子部品64とを含む。電子部品64には、一対のピン54に挿入される一対のホール66が設けられている。基板62上には、位置決め用のマーカ68が設けられている。第1ワーク50が視野範囲に含まれるようにカメラ400が配置されており、位置決め用のマーカ68はカメラ400での撮像により光学的に認識される。
 第1ロボット200は、典型的には、垂直多関節ロボットが用いられる。垂直多関節ロボットが用いられた場合には、第1ロボット200は、複数のリンク202と、リンク202同士を連結する関節204と、先端に装着されたハンド210とを含む。関節204は、軸と称されることもあり、サーボモータなどの駆動源によって駆動される。第1ロボット200の関節204は、図示しない駆動源と機械的に結合されるとともに、駆動源あるいは関節204に取り付けられたセンサ(典型的には、エンコーダ)によって、その相対位置または絶対位置が検出可能になっている。
 なお、第1ロボット200としては、垂直多関節ロボットに限らず、水平多関節(スカラ)ロボット、パラレルリンクロボットなどの任意のロボットを用いることができる。
 第2ロボット300は、典型的には、互いに直交する複数の軸方向に移動可能な直交ロボットが用いられる。図2に示す例では、直交ロボットの一例として、3つの軸方向に移動可能なXYZステージが用いられる例を示す。より具体的には、第2ロボット300は、第2ワーク60が配置されるステージプレート310と、互いに直交する方向に位置を変更可能な可動軸312,314,316とを含む。可動軸312,314,316の各々は、対応する軸方向に移動することで、ステージプレート310を任意の3軸方向(X軸,Y軸,Z軸)に配置できる。第2ロボット300の可動軸312,314,316は、サーボモータ330(図5など参照)と機械的に結合されるとともに、サーボモータ330あるいは可動軸312,314,316に取り付けられたセンサ(典型的には、エンコーダ)によって、その相対位置または絶対位置が検出可能になっている。
 なお、第2ロボット300としては、3つの軸方向に移動可能なXYZステージに限らず、1つの軸方向に移動可能なXステージや2つの軸方向に移動可能なXYステージを採用してもよい。あるいは、より多くの軸方向に移動可能な直交ロボットを採用してもよい。
 <C.課題および解決手段>
 次に、ロボットを用いた組み立てアプリケーションにおいて生じるいくつかの課題について説明する。
 図3は、ロボットを用いた組み立てアプリケーションにおいて生じる課題を説明するための図である。図3を参照して、電子部品52を含む第1ワーク50から延びる一対のピン54を第2ワーク60に設けられた一対のホール66に挿入するためには、水平方向あるいは斜め方向かのアプローチが必要になる。このように、垂直方向だけではなく、水平方向および斜め方向を含む多方向にワークを移動させるためには、移動自由度の高い垂直多関節ロボットなどが必要になる。
 一方、移動自由度の高いロボットを採用した場合には、ロボットを高速で移動させると、振動が発生し、先端に装着されたハンド210の位置決め精度を十分に確保すること難しい。その結果、部品の組み立てに係るサイクルタイムを大幅に短縮することができない。
 図4は、ロボットを用いた組み立てアプリケーションにおいて生じる別の課題を説明するための図である。図4を参照して、ロボットでワークを把持して移動させると、ロボットの自重および把持しているワークの重さなどにより、リンク202にたわみが発生し、先端に装着されたハンド210の位置決め精度を十分に確保すること難しい。
 このような課題に対して、本実施の形態に係るロボット制御システム1においては、移動自由度が相対的に高い第1ロボット200と、位置決め精度が相対的に高い第2ロボット300とを組み合わせて採用する。特性の異なるロボットを組み合わせることで、第1ロボット200に生じる位置決め誤差を補償するとともに、多種多様なワークの高速での移動を可能にする。これによって、様々な組み立て処理を高速かつ高精度に実現できる。
 <D.システム構成例>
 次に、本実施の形態に係るロボット制御システム1のシステム構成例について説明する。
 図5は、本実施の形態に係るロボット制御システム1のシステム構成を概略する模式図である。図5を参照して、ロボット制御システム1は、制御装置100と、フィールドネットワーク10を介して制御装置100とネットワーク接続された、ロボットコントローラ250と、サーボコントローラ350と、画像処理装置450とを含む。
 制御装置100は、フィールドネットワーク10に接続されたデバイスとの間でデータをやり取りして、後述するような処理を実行する。制御装置100は、典型的には、PLC(プログラマブルロジックコントローラ)により実現されてもよい。
 ロボットコントローラ250は、第1ロボット200の制御を担当する。より具体的には、ロボットコントローラ250は、第1ロボット200との間のインターフェイスとして機能し、制御装置100からの指令に従って、第1ロボット200を駆動するための指令を出力するとともに、第1ロボット200の状態値を取得して制御装置100へ出力する。
 サーボコントローラ350は、第2ロボット300の軸を駆動するサーボモータ330の制御を担当する。より具体的には、サーボコントローラ350は、第2ロボット300との間のインターフェイスとして機能し、制御装置100からの指令に従って、第2ロボット300を構成する1つの軸を駆動するための指令を対応するサーボモータ330へ出力するとともに、第2ロボット300の対応するサーボモータ330の状態値を取得して制御装置100へ出力する。
 画像処理装置450は、カメラ400により撮像された画像に対して各種の画像認識処理を実行する。本実施の形態に係るロボット制御システム1においては、画像処理装置450は、マーカ68の探索処理などを行うことで、第2ワーク60の位置を検出する。また、画像処理装置450は、第1ワーク50がカメラ400の視野範囲に含まれる場合には、第1ワーク50の位置を検出することもできる。
 このように、画像処理装置450は、第2ワーク60の位置に加えて、第1ワーク50の位置も検出するようにしてもよい。
 フィールドネットワーク10には、産業用ネットワーク用のプロトコルである、EtherCAT(登録商標)やEtherNet/IPなどを用いることができる。プロトコルとしてEtherCATを採用した場合には、制御装置100とフィールドネットワーク10に接続されたデバイスとの間で、例えば、数百μ秒~数m秒の定周期でデータをやり取りできる。このような定周期でのデータのやり取りによって、ロボット制御システム1に含まれる第1ロボット200および第2ロボット300を高速高精度に制御できる。
 制御装置100は、上位ネットワーク20を介して、表示装置600およびサーバ装置700に接続されてもよい。上位ネットワーク20には、産業用ネットワーク用のプロトコルであるやEtherNet/IPなどを用いることができる。
 制御装置100には、制御装置100で実行されるユーザプログラムのインストールや各種設定を行うためのサポート装置500が接続されてもよい。
 <E.ハードウェア構成例>
 次に、図5に示すロボット制御システム1を構成する主要装置のハードウェア構成例について説明する。
 (e1:制御装置100)
 図6は、本実施の形態に係るロボット制御システム1を構成する制御装置100のハードウェア構成例を示す模式図である。図6を参照して、制御装置100は、プロセッサ102と、メインメモリ104と、ストレージ110と、メモリカードインターフェイス112と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、ローカルバスコントローラ116と、USB(Universal Serial Bus)インターフェイスを提供するUSBコントローラ120とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
 プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラムを読み出して、メインメモリ104に展開して実行することで、制御対象に対する制御演算を実現する。
 メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
 ストレージ110には、基本的な機能を実現するためのシステムプログラム1102、および、制御対象に応じて作成されたIECプログラム1104およびアプリケーションプログラム1106などが格納される。
 IECプログラム1104は、本実施の形態に係るロボット制御システム1における組み立て処理を実現するために必要な命令群を含む。IECプログラム1104は、典型的には、シーケンス命令およびモーション命令を含み得る。IECプログラム1104は、国際電気標準会議(IEC:International Electrotechnical Commission)が定めるIEC61131-3で規定されるいずれかの言語で記述されてもよう。但し、IECプログラム1104は、IEC61131-3で規定される言語以外のメーカ独自言語で記述されるプログラムを含んでいてもよい。
 アプリケーションプログラム1106は、第1ロボット200および/または第2ロボット300の動作を制御するための命令を含む。アプリケーションプログラム1106は、所定のプログラミング言語(例えば、V+言語などのロボット制御用プログラミング言語やGコードなどのNC制御に係るプログラミング言語)で記述された命令を含んでいてもよい。
 図1に示される制御モジュール30(第1制御モジュール32、誤差算出モジュール34および第2制御モジュール36)は、IECプログラム1104および/またはアプリケーションプログラム1106がプロセッサ102により実行されることで実現されてもよい。
 メモリカードインターフェイス112は、着脱可能な記憶媒体の一例であるメモリカード114を受け付ける。メモリカードインターフェイス112は、メモリカード114に対して任意のデータの読み書きが可能になっている。
 上位ネットワークコントローラ106は、上位ネットワーク20を介して、任意の情報処理装置(図5に示される表示装置600およびサーバ装置700など)との間でデータをやり取りする。
 フィールドネットワークコントローラ108は、フィールドネットワーク10を介して、それぞれのデバイスとの間でデータをやり取りする。図5に示すシステム構成例において、フィールドネットワークコントローラ108は、フィールドネットワーク10の通信マスタとして機能してもよい。
 ローカルバスコントローラ116は、ローカルバス122を介して、制御装置100に含まれる任意の機能ユニット130との間でデータをやり取りする。機能ユニット130は、例えば、アナログ信号の入力および/または出力を担当するアナログI/Oユニット、デジタル信号の入力および/または出力を担当するデジタルI/Oユニット、エンコーダなどからのパルスを受け付けるカウンタユニットなどからなる。
 USBコントローラ120は、USB接続を介して、任意の情報処理装置(サポート装置500など)との間でデータをやり取りする。
 (e2:ロボットコントローラ250)
 図7は、本実施の形態に係るロボット制御システム1を構成するロボットコントローラ250のハードウェア構成例を示す模式図である。図7を参照して、ロボットコントローラ250は、フィールドネットワークコントローラ252と、制御処理回路260とを含む。
 フィールドネットワークコントローラ252は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。
 制御処理回路260は、第1ロボット200を駆動するために必要な演算処理を実行する。一例として、制御処理回路260は、プロセッサ262と、メインメモリ264と、ストレージ270と、インターフェイス回路268とを含む。
 プロセッサ262は、第1ロボット200を駆動するための制御演算を実行する。メインメモリ264は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ270は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
 ストレージ270には、第1ロボット200を駆動するための制御を実現するためのシステムプログラム272が格納される。システムプログラム272は、第1ロボット200の動作に係る制御演算を実行する命令、および、第1ロボット200との間のインターフェイスに係る命令を含む。
 インターフェイス回路268は、第1ロボット200との間でデータをやり取りする。
 (e3:サーボコントローラ350)
 図8は、本実施の形態に係るロボット制御システム1を構成するサーボコントローラ350のハードウェア構成例を示す模式図である。図8を参照して、サーボコントローラ350は、フィールドネットワークコントローラ352と、制御処理回路360と、ドライブ回路380とを含む。
 フィールドネットワークコントローラ352は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。
 制御処理回路360は、第2ロボット300を駆動するサーボモータ330の制御に必要な演算処理を実行する。一例として、制御処理回路360は、プロセッサ362と、メインメモリ364と、ストレージ370とを含む。
 プロセッサ362は、第2ロボット300を駆動するサーボモータ330に係る制御演算を実行する。メインメモリ364は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ370は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
 ストレージ370には、サーボモータ330の駆動制御を実現するためのシステムプログラム372が格納される。システムプログラム372は、第2ロボット300の動作に係る制御演算を実行する命令、および、第2ロボット300との間のインターフェイスに係る命令を含む。
 ドライブ回路380は、コンバータ回路およびインバータ回路などを含み、制御処理回路360により算出された指令値に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ330へ供給する。
 サーボモータ330は、第2ロボット300を構成するいずれかの軸と機械的に結合されている。サーボモータ330としては、第2ロボット300に応じた特性のモータを採用できる。サーボモータとの名称に限定されず、誘導型モータ、同期型モータ、永久磁石型モータ、リラクタンスモータのいずれを採用してもよいし、回転型だけではなく、リニアモータを採用してもよい。
 (e4:画像処理装置450)
 図9は、本実施の形態に係るロボット制御システム1を構成する画像処理装置450のハードウェア構成例を示す模式図である。図9を参照して、画像処理装置450は、プロセッサ452と、メインメモリ454と、ストレージ460と、メモリカードインターフェイス462と、上位ネットワークコントローラ456と、フィールドネットワークコントローラ458と、USBコントローラ470と、カメラインターフェイス466とを含む。これらのコンポーネントは、プロセッサバス468を介して接続されている。
 プロセッサ452は、画像処理を実行する演算処理部に相当し、CPUやGPUなどで構成される。具体的には、プロセッサ452は、ストレージ460に格納されたプログラムを読み出して、メインメモリ454に展開して実行することで、任意の画像処理を実現する。
 メインメモリ454は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ460は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。ストレージ460には、基本的な機能を実現するためのシステムプログラム4602、および、制御対象に応じて作成された画像処理プログラム4604などが格納される。
 メモリカードインターフェイス462は、着脱可能な記憶媒体の一例であるメモリカード464を受け付ける。
 上位ネットワークコントローラ456は、上位ネットワークを介して、任意の情報処理装置との間でデータをやり取りする。フィールドネットワークコントローラ458は、フィールドネットワーク10を介してそれぞれのデバイスとの間でデータをやり取りする。
 USBコントローラ470は、USB接続を介して、任意の情報処理装置との間でデータをやり取りする。
 カメラインターフェイス466は、カメラ400が撮像した画像を取得するとともに、カメラ400に対して各種指令を与える。
 (e5:サポート装置500)
 本実施の形態に係るロボット制御システム1を構成するサポート装置500は、一例として、汎用パソコンを用いて実現されてもよい。サポート装置500の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
 (e6:表示装置600)
 本実施の形態に係るロボット制御システム1を構成する表示装置600は、一例として、汎用パソコンを用いて実現されてもよい。表示装置600の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
 (e7:サーバ装置700)
 本実施の形態に係るロボット制御システム1を構成するサーバ装置700は、一例として汎用パソコンを用いて実現されてもよい。サーバ装置700の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
 (e8:その他の形態)
 図6~図9には、1または複数のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
 <F.処理概要>
 次に、本実施の形態に係るロボット制御システム1を用いて2つの部品を組み立て処理の概要について説明する。
 図10~図12は、本実施の形態に係るロボット制御システム1を用いた組み立て処理を説明するための図である。
 図10を参照して、まず、第2ワーク60が配置された位置を特定して、第1ワーク50と第2ワーク60との相対位置を決定する処理が行われる。より具体的には、カメラ400で第2ワーク60を撮像して、第2ワーク60の基板62上に設けられている位置決め用のマーカ68を認識することで、ステージプレート310上に配置された第2ワーク60の位置が決定される。
 第2ワーク60の位置が決定されることで、第1ワーク50を第2ワーク60へアプローチさせるための軌道70を算出できる。すなわち、第1ロボット200で把持した第1ワーク50を第2ワーク60と組み合わせるための軌道70が算出される。そして、第1ロボット200および第2ロボット300を用いた組み立て処理が開始される。
 組み立て処理においては、第1ロボット200は、算出された軌道70に沿って移動する。第1ロボット200が軌道70に沿って移動する際に生じる位置決め誤差を第2ロボット300が補償する。
 図11を参照して、第1ロボット200が第1ワーク50を把持して移動中には、第1ワーク50に生じる位置決め誤差が逐次算出されるとともに、算出された位置決め誤差を補償するために、第2ロボット300の可動軸312,314,316が逐次駆動される。第2ロボット300の可動軸312,314,316が逐次駆動されることで、第1ワーク50に生じる位置決め誤差を補償するように、ステージプレート310上に配置された第2ワーク60の位置が調整される。
 このように、第1ロボット200を相対的に高速に移動させることで生じる、振動やたわみによる位置決め誤差が吸収されるように、第2ワーク60の位置が調整される。これによって、予め定められた第1ワーク50と第2ワーク60との間の相対位置のずれを吸収する。
 最終的には、図12に示すように、第1ワーク50の一対のピン54が第2ワーク60の一対のホール66に挿入されて、組み立て処理が完了する。
 なお、図10~図12には、カメラ400および画像処理装置450を用いて、位置決め用のマーカ68の位置を光学的に認識する構成例を示すが、カメラ400および画像処理装置450は必須の構成ではなく、第2ワーク60の配置される位置が予め定められている場合には、カメラ400および画像処理装置450を省略してもよい。
 <G.ロボット制御システムにおけるデータのやり取り>
 本実施の形態に係るロボット制御システム1は、複数のデバイスが連携して処理を実現する。それぞれのデバイスが管理する位置の情報は、互いに独立した座標系で規定されることも多い。そのため、共通の基準座標系を用いて位置決め制御を実現してもよい。
 図13は、本実施の形態に係るロボット制御システム1において定義された座標系の一例を示す図である。図13を参照して、ロボット制御システム1全体の位置制御は、共通の基準座標系で実現される。
 第1ロボット200について、第1ロボット200の先端位置(基部から最も遠いリンク202の端部の位置)は、第1ロボット200の設置位置を基準に定義された第1ロボット座標系により規定される。第1ロボット200の先端にはハンド210が装着されており、ハンド210が把持している第1ワーク50の位置についても、第1ロボット座標系により規定される。したがって、第1ワーク50の位置は、第1ロボット位置(第1ロボット座標系)を用いて規定できる。
 第2ロボット300について、第2ロボット300の現在位置(典型的には、ステージプレート310上の第2ワーク60が配置される領域の現在位置)は、第2ロボット300の設置位置を基準に定義された第2ロボット座標系により規定される。すなわち、第2ロボット300の位置は、第2ロボット座標系により第2ロボット位置として規定できる。
 第2ワーク60の位置は、カメラ400および画像処理装置450によっても検出される。検出される第2ワーク60の位置は、カメラ400により撮像される画像内を基準に定義されたカメラ座標系(あるいは、画像座標系)により規定される。すなわち、第2ワーク60の位置は、カメラ座標系により規定できる。
 上述したようなそれぞれの座標系で規定された位置を共通の基準座標系で規定された位置に変換した上で、相対位置の算出および位置制御などを行うようにしてもよい。
 図14は、本実施の形態に係るロボット制御システム1においてやり取りされる位置情報の一例を説明するための図である。図14を参照して、ロボットコントローラ250は、第1ロボット200から、(1)第1ロボット位置(第1ロボット座標系)を取得して、制御装置100へ周期的に送出する。
 サーボコントローラ350の各々は、対応するサーボモータ330の状態値を取得して、制御装置100へ周期的に送出する。第2ロボット300を構成するそれぞれのサーボモータ330の状態値の集合が(2)第2ロボット位置(第2ロボット座標系)となる。
 画像処理装置450は、カメラ400により撮像された画像に基づく画像認識処理により、第2ワーク60が配置された位置を特定して、(3)第2ワーク60の位置(カメラ座標系)を制御装置100へ周期的に送出する。
 制御装置100は、ロボット配置の位置関係やキャリブレーションなどに基づいて予め取得された変換式を用いて、それぞれの位置を基準座標系の位置に変換した上で、位置決め制御に必要な処理を実行する。
 このように、図14に示す構成例を採用することで、必要な位置の情報は、共通の基準座標系を用いて制御装置100により統一的に管理および処理できる。そのため、制御性能を高めることができる。
 <H.処理手順>
 次に、本実施の形態に係るロボット制御システム1における処理手順について説明する。
 (h1:状態値に基づく位置決め制御)
 まず、第1ロボット200および第2ロボット300から取得される状態値(例えば、エンコーダ情報など)を用いて位置決め制御を行う処理例について説明する。
 図15は、本実施の形態に係るロボット制御システム1における組み立て処理の処理手順を示すフローチャートである。図15に示す各ステップは、典型的には、制御装置100のプロセッサ102がプログラムを実行することで実現される。図15に示される一連の処理は、予め定められた周期(制御周期)で繰り返し実行される。
 図15を参照して、制御装置100は、ステージプレート310上に配置された第2ワーク60の位置を検出し(ステップS2)、第1ワーク50を第2ワーク60に挿入するための軌道70を算出する(ステップS4)。そして、第1ワーク50が第2ワーク60に挿入されるまで、以下のステップS10~S26の処理が繰り返される。
 より具体的には、制御装置100は、第1ロボット200の各関節のエンコーダ情報、および、第2ロボット300の各軸のエンコーダ情報を取得する(ステップS10)。
 制御装置100は、取得したエンコーダ情報に基づいて、第1ロボット200のハンド210に把持されている第1ワーク50の現在位置(理論値)を算出する(ステップS12)。ここで、「理論値」としているのは、第1ロボット200の各関節のエンコーダ情報にも基づいて算出された値であり、後述のたわみに起因する位置決め誤差が反映されていないからである。そして、制御装置100は、振動に起因して第1ロボット200に生じる位置決め誤差に対応する、振動に起因する第2ロボット300の補正量を算出する(ステップS14)。このように、制御装置100は、位置決め誤差の一例として、第1ロボット200の可動部(典型的には、間接)の状態値(例えば、エンコーダ情報)に基づいて、第1ロボット200に生じる振動に起因する位置決め誤差を算出する。
 制御装置100は、取得したエンコーダ情報に基づいて、第1ロボット200の各リンク202に発生しているたわみ量を算出する(ステップS16)。制御装置100は、算出したたわみ量に基づいて、第1ワーク50の現在位置(実際値)を算出する(ステップS18)。そして、制御装置100は、たわみに起因して第1ロボット200に生じる位置決め誤差に対応する、たわみに起因する第2ロボット300の補正量を算出する(ステップS20)。このように、制御装置100は、位置決め誤差の一例として、第1ロボット200に生じるたわみに起因する位置決め誤差を算出する。
 制御装置100は、振動に起因する第2ロボット300の補正量およびたわみに起因する第2ロボット300の補正量の合成結果が予め定められたしきい値以内であるか否かを判断する(ステップS22)。すなわち、制御装置100は、第1ロボット200が第1ワーク50を第2ワーク60にアプローチさせるときに発生する位置決め誤差を算出する。
 振動に起因する第2ロボット300の補正量およびたわみに起因する第2ロボット300の補正量の合成結果が予め定められたしきい値を超えている場合(ステップS22においてNO)には、制御装置100は、第1ワーク50の目標位置と現在位置(実際値)との誤差を補償するための第2ロボット300の目標位置を更新する(ステップS24)。
 第1ワーク50の目標位置と現在位置(実際値)との誤差が予め定められたしきい値以内である場合(ステップS22においてYES)には、ステップS24の処理はスキップされる。
 最終的に、制御装置100は、第1ロボット200の次の周期の目標位置をロボットコントローラ250へ出力するとともに、第2ロボット300の次の周期の目標位置をサーボコントローラ350へ出力する(ステップS26)。すなわち、制御装置100は、第1ワーク50を軌道70に沿って第2ワーク60へアプローチさせるように、第1ロボット200に制御指令を与える。また、制御装置100は、算出された位置決め誤差を補償するように、第2ロボット300に制御指令を与える(特に、ステップS22においてYESの場合)。
 以下、図15に示す処理手順を実現するための具体的な演算処理の一例について説明する。
 ステップS2において、画像処理装置450は、カメラ400により撮像された画像に対してマーカ68の探索処理を行うことで、第2ワーク60の位置(カメラ座標系)を検出する。制御装置100は、第2ワーク60の位置(カメラ座標系)を基準座標系の位置に変換して、第2ワーク60の初期位置Pw2(0)を算出する。すなわち、画像処理装置450は、第2ロボット300に支持される第2ワーク60の位置を光学的に検出する。
 ステップS4において、制御装置100は、第1ロボット200の初期位置に基づいて、第1ワーク50の初期位置Pw1(0)を算出し、算出した初期位置Pw1(0)および初期位置Pw2(0)に基づいて、第1ワーク50を第2ワーク60に挿入するための軌道70を算出する。軌道70は、第1ロボット200に把持された第1ワーク50が通過すべき点(基準座標系)の集合として規定されてもよいし、基準座標系で定義された関数を用いて規定されてもよい。
 ここで、現周期である時刻tにおける第1ロボット200の目標位置をR(t)とし、第1ロボット200の現在位置をR(t)とする。組み立て処理の開始前に、初期状態(t=0)として、R(0)=R(0)と初期設定される。
 ステップS12~S14において、制御装置100は、第1ロボット200のエンコーダ情報(各関節iのエンコーダ値ERi(t))に基づいて、第1ロボット200の現在位置(理論値)R(t)を算出し、さらに第1ワーク50の現在位置(理論値)Pw1(t)を算出する。併せて、制御装置100は、第2ロボット300のエンコーダ情報(各軸iのエンコーダ値ESi(t))に基づいて、第2ロボット300の現在位置S(t)を算出する。
 制御装置100は、現周期の第1ワーク50の目標位置Pdw1(t)を用いて、振動に起因する第2ロボット300の補正量σ(t)=Pdw1(t)-Pw1(t)を算出する。
 ステップS16~S20において、制御装置100は、取得したエンコーダ情報に基づいて、第1ロボット200の各関節の現在角度および角度の時間変化率を算出し、各関節iに発生しているトルクτ(t)=f(ERi(t),E’Ri(t))を算出する。ここで、関数fは、各関節のエンコーダ値ERi(t)および各関節のエンコーダ値ERi(t)の時間変化率を入力変数として含む。
 制御装置100は、算出した各関節に発生しているトルクτ(t)から各リンク202に発生しているたわみ量δ(t)を算出する。最終的に、制御装置100は、各リンク202に発生しているたわみ量δ(t)を合成して、たわみに起因する第2ロボット300の補正量σ(t)を算出する。
 このように、たわみに起因する位置決め誤差は、第1ロボット200の可動部(典型的には、間接)の状態値(例えば、エンコーダ情報)の時間的変化に基づいて算出されてもよい。
 最終的に、振動に起因する第2ロボット300の補正量σ(t)と、たわみに起因する第2ロボット300の補正量σ(t)との合成結果が予め定められたしきい値を超えている場合には、制御装置100は、第2ロボット300の次の周期の目標位置S(t+1)=S(t)+σ(t)+σ(t)を算出する。なお、合成結果が予め定められたしきい値を超えていない場合には、制御装置100は、第2ロボット300の次の周期の目標位置S(t+1)=S(t)と算出する。すなわち、第2ロボット300の次の周期の目標位置S(t+1)は、第2ロボット300の現在位置S(t)に維持される。
 一方、制御装置100は、予め算出した軌道70に基づいて、時刻tにおける第1ワーク50の目標位置Pdw1(t)を算出する。そして、制御装置100は、振動に起因する第2ロボット300の補正量σ(t)=Pdw1(t)-Pw1(t)を算出する。
 併せて、制御装置100は、予め算出した軌道70に基づいて、時刻tにおける第1ワーク50の目標位置Pdw1(t)から次の周期である時刻t+1における第1ワーク50の目標位置Pdw1(t+1)を算出し、さらに第1ロボット200の目標位置R(t+1)を算出する。このように、制御装置100は、第1ワーク50の現在位置に基づいて、第1ロボット200の新たな目標位置を算出する。
 (h2:カメラ画像に基づく位置決め制御)
 上述の処理手順においては、第1ロボット200および第2ロボット300から取得される状態値(例えば、エンコーダ情報など)を用いて位置決め制御を行う処理例を示したが、カメラ400での撮像により光学的に認識される第1ワーク50および第2ワーク60の位置を用いて位置決め制御を行うようにしてもよい。
 この場合には、制御装置100は、画像処理装置450により検出された、第1ワーク50の位置および第2ワーク60の位置に基づいて、位置決め誤差を算出する。
 図16は、本実施の形態に係るロボット制御システム1における組み立て処理の別の処理手順を示すフローチャートである。図16に示す各ステップは、典型的には、制御装置100のプロセッサ102がプログラムを実行することで実現される。図16に示される一連の処理は、予め定められた周期(制御周期)で繰り返し実行される。
 図16に示す処理手順は、図15に示す処理手順に含まれるステップS10~S26をステップS30~S40に変更したものである。
 より具体的には、制御装置100は、カメラ400により撮像された画像に基づいて検出された第1ワーク50および第2ワーク60の位置を取得する(ステップS30)。制御装置100は、取得した第1ワーク50および第2ワーク60の位置に基づいて、第1ロボット200に生じる位置決め誤差を算出するとともに(ステップS32)、算出した位置決め誤差を補償する第2ロボット300の補正量を算出する(ステップS34)。
 制御装置100は、算出した第2ロボット300の補正量が予め定められたしきい値以内であるか否かを判断する(ステップS36)。
 算出した第2ロボット300の補正量が予め定められたしきい値を超えている場合(ステップS36においてNO)には、制御装置100は、第1ロボット200に生じている位置決め誤差を補償するための第2ロボット300の目標位置を更新する(ステップS38)。
 算出した第2ロボット300の補正量が予め定められたしきい値以内である場合(ステップS36においてYES)には、ステップS38の処理はスキップされる。
 最終的に、制御装置100は、第1ロボット200の次の周期の目標位置をロボットコントローラ250へ出力するとともに、第2ロボット300の次の周期の目標位置をサーボコントローラ350へ出力する(ステップS40)。
 (h3:変形例および応用例)
 上述の図15に示す処理手順と図16に示す処理手順とを組み合わせてもよい。例えば、カメラ400の視野範囲に第1ワーク50が到達するまでは、図15に示す処理手順を実行し、到着後は、図16に示す処理手順を実行するようにしてもよい。
 図15および図16に示す処理手順においては、制御装置100は、算出された位置決め誤差の大きさが予め定められた条件(この例では、しきい値を超える)を満たした場合(図15のステップS22および図16のステップS36)に、位置決め誤差を補償するための制御指令を有効化しているが、予め定められた条件を満たしているか否かにかかわらず、位置決め誤差を補償するための制御指令を常に有効化してもよい。
 図15および図16に示すように、図1の制御モジュール30に含まれる、第1制御モジュール32と、誤差算出モジュール34と、第2制御モジュール36は、予め定められた周期で同期して処理を実行することになる。
 <I.様々な構成例>
 上述のロボット制御システム1においては、制御装置100が主として制御演算を実行する構成について例示したが、これに限らず、必要な機能を1または複数のデバイスに分散配置してもよい。
 図17は、本実施の形態に係るロボット制御システム1の構成例のバリエーションの一部を示す図である。図17には、ロボット制御システム1が有している基本的な5つの機能を「LD」、「RC」、「RA」、「MC」、「SA」という記号を用いて示している。
 「LD」は、上述の図15に示すような組み立て処理に係る制御演算を実行する機能を含む。上述のロボット制御システム1において、「LD」は制御装置100が担当する。より具体的には、制御装置100のプロセッサ102が実行するIECプログラム1104は、「LD」を実現するために必要な命令を含む。「LD」は、図1の誤差算出モジュール34に相当する機能を含む。
 「RC」は、第1ロボット200の動作に係る制御演算を実行する機能を含む。具体的には、第1ロボット200の動作に係る制御演算は、第1ロボット200の軌道の算出、および、第1ロボット200に含まれる各関節の各時間における目標角度の算出などを含む。「RC」は、制御装置100に格納されたアプリケーションプログラム1106、および、ロボットコントローラ250に格納されたシステムプログラム272により実現されてもよい。
 「RA」は、第1ロボット200との間のインターフェイスに係る機能を含む。具体的には、「RA」は、RC機能による算出結果を実際の第1ロボット200の動作に必要な値(電圧など)に変換して出力する機能、および、第1ロボット200から得られたデータ(パルス値など)をRC機能に出力する機能を含む。「RA」は、ロボットコントローラ250に格納されたシステムプログラム272により実現されてもよい。
 「RC」および「RA」は、図1の第1制御モジュール32に相当する機能を含む。
 「MC」は、第2ロボット300の動作に係る制御演算を実行する機能を含む。具体的には、第2ロボット300の動作に係る制御演算は、第2ロボット300の軌道の算出、および、第2ロボット300に含まれる各軸の各時間における目標角度あるいは目標速度の算出などを含む。「MC」は、制御装置100に格納されたアプリケーションプログラム1106、および、サーボコントローラ350に格納されたシステムプログラム372により実現されてもよい。
 「SA」は、第2ロボット300との間のインターフェイスに係る機能を含む。具体的には、「SA」は、MC機能による算出結果を実際の第2ロボット300の動作に必要な値(電圧など)に変換して出力する機能、および、第2ロボット300から得られたデータ(パルス値など)をMC機能に出力する機能を含む。「SA」は、サーボコントローラ350に格納されたシステムプログラム372により実現されてもよい。
 「MC」および「MA」は、図1の第2制御モジュール36に相当する機能を含む。
 図17には、一例として、16種類の構成例を示す。例えば、構成例番号「1」は、上述のロボット制御システム1に相当する実装例であり、制御装置100が位置決め制御を担当するとともに、第1ロボット200の制御については、制御装置100およびロボットコントローラ250が担当し、第2ロボット300の制御については、制御装置100およびサーボコントローラ350が担当する。図17に示すように、同一の機能を複数のデバイスで分担することもある。
 構成例番号「2」は、制御装置100およびロボットコントローラ250が一体化した構成例を意味し、例えば、ロボットコントローラ250が制御装置100に取り込まれて、実装されてもよい。
 その他の構成例についても同様であり、制御装置100、ロボットコントローラ250およびサーボコントローラ350の全部または一部を統合して構成してもよい。
 なお、図17に示す実装例は一例であり、例えば、複数の制御装置を用いて実装してもよい。また、画像処理装置450についても、独立して構成してもよいし、制御装置100と一体化してもよい。
 上述したように、本実施の形態に係るロボット制御システム1は、必要な機能が任意の方法で実現できれば、どのような実装形態を採用してもよい。
 <J.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
 ロボット制御システム(1)であって、
 第1ワーク(50)を把持して移動させる第1ロボット(200)と、
 第2ワーク(60)を支持する第2ロボット(300)と、
 前記第1ワークを前記第2ワークへアプローチさせるように、前記第1ロボットに制御指令を与える第1制御部(32;100)と、
 前記第1ロボットが前記第1ワークを前記第2ワークにアプローチさせるときに発生する位置決め誤差を算出する誤差算出部(34;100)と、
 前記誤差算出部により算出された位置決め誤差を補償するように、前記第2ロボットに制御指令を与える第2制御部(36;100)とを備える、ロボット制御システム。
[構成2]
 前記誤差算出部は、前記第1ロボットの可動部の状態値に基づいて、前記第1ロボットに生じる振動に起因する位置決め誤差を算出する、構成1に記載のロボット制御システム。
[構成3]
 前記誤差算出部は、前記第1ロボットの可動部の状態値の時間的変化に基づいて、前記第1ロボットに生じるたわみに起因する位置決め誤差を算出する、構成1または2に記載のロボット制御システム。
[構成4]
 前記第2制御部は、前記算出された位置決め誤差の大きさが予め定められた条件を満たした場合に、前記位置決め誤差を補償するための前記制御指令を有効化する、構成1~3のいずれか1項に記載のロボット制御システム。
[構成5]
 前記第1制御部、前記誤差算出部および第2制御部は、予め定められた周期で同期して処理を実行する、構成1~4のいずれか1項に記載のロボット制御システム。
[構成6]
 前記第1ロボットは、垂直多関節ロボットであり、
 前記第2ロボットは、複数の軸を有する直交ロボットである、構成1~5のいずれか1項に記載のロボット制御システム。
[構成7]
 前記第2ロボットに支持される前記第2ワークの位置を光学的に検出する画像処理装置(400)をさらに備える、構成1~6のいずれか1項に記載のロボット制御システム。
[構成8]
 前記画像処理装置は、前記第2ワークの位置に加えて、前記第1ワークの位置も検出し、
 前記誤差算出部は、画像処理装置により検出された、前記第1ワークの位置および前記第2ワークの位置に基づいて、位置決め誤差を算出する、構成7に記載のロボット制御システム。
[構成9]
 第1ワーク(50)を把持して移動させる第1ロボット(200)と、第2ワーク(60)を支持する第2ロボット(300)とを備えるロボット制御システム(1)のコンピュータ(100)で実行される制御プログラム(1102,1104,1106)であって、前記コンピュータに
 前記第1ワークを前記第2ワークへアプローチさせるように、前記第1ロボットに制御指令を与えるステップ(S26)と、
 前記第1ロボットが前記第1ワークを前記第2ワークにアプローチさせるときに発生する位置決め誤差を算出するステップ(S14,S20)と、
 前記算出された位置決め誤差を補償するように、前記第2ロボットに制御指令を与えるステップ(S24,S26)とを実行させる、制御プログラム。
[構成10]
 第1ワーク(50)を把持して移動させる第1ロボット(200)と、第2ワーク(60)を支持する第2ロボット(300)とを備えるロボット制御システム(1)で実行される制御方法であって、
 前記第1ワークを前記第2ワークへアプローチさせるように、前記第1ロボットに制御指令を与えるステップ(S26)と、
 前記第1ロボットが前記第1ワークを前記第2ワークにアプローチさせるときに発生する位置決め誤差を算出するステップ(S14,S20)と、
 前記算出された位置決め誤差を補償するように、前記第2ロボットに制御指令を与えるステップ(S24,S26)とを備える、制御方法。
 <K.利点>
 本実施の形態に係るロボット制御システム1においては、第1ワーク50を把持して移動させる第1ロボット200を高速で移動させた場合などに生じる位置決め誤差(振動に起因、および/または、たわみに起因)を逐次算出するとともに、算出される位置決め誤差に基づいて、それを補償するように、第2ワーク60を支持する第2ロボット300に制御指令を与える。このように、第1ロボット200と第2ロボット300とを組み合わせることで、部品を組み立てるアプリケーションにおいて、より精度の高い位置決め制御を実現できる。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 ロボット制御システム、10 フィールドネットワーク、20 上位ネットワーク、30 制御モジュール、32 第1制御モジュール、34 誤差算出モジュール、36 第2制御モジュール、50 第1ワーク、60 第2ワーク、52,64 電子部品、54 ピン、62 基板、66 ホール、68 マーカ、70 軌道、100 制御装置、102,262,362,452 プロセッサ、104,264,364,454 メインメモリ、106,456 上位ネットワークコントローラ、108,252,352,458 フィールドネットワークコントローラ、110,270,370,460 ストレージ、112,462 メモリカードインターフェイス、114,464 メモリカード、116 ローカルバスコントローラ、118,468 プロセッサバス、120,470 USBコントローラ、122 ローカルバス、130 機能ユニット、200 第2ロボット、202 リンク、204 関節、210 ハンド、250 ロボットコントローラ、260,360 制御処理回路、268 インターフェイス回路、272,372,1102,4602 システムプログラム、300 第2ロボット、310 ステージプレート、312,314,316 可動軸、330 サーボモータ、350 サーボコントローラ、380 ドライブ回路、400 カメラ、450 画像処理装置、466 カメラインターフェイス、500 サポート装置、600 表示装置、700 サーバ装置、1104 IECプログラム、1106 アプリケーションプログラム、4604 画像処理プログラム。

Claims (10)

  1.  ロボット制御システムであって、
     第1ワークを把持して移動させる第1ロボットと、
     第2ワークを支持する第2ロボットと、
     前記第1ワークを前記第2ワークへアプローチさせるように、前記第1ロボットに制御指令を与える第1制御部と、
     前記第1ロボットが前記第1ワークを前記第2ワークにアプローチさせるときに発生する位置決め誤差を算出する誤差算出部と、
     前記誤差算出部により算出された位置決め誤差を補償するように、前記第2ロボットに制御指令を与える第2制御部とを備える、ロボット制御システム。
  2.  前記誤差算出部は、前記第1ロボットの可動部の状態値に基づいて、前記第1ロボットに生じる振動に起因する位置決め誤差を算出する、請求項1に記載のロボット制御システム。
  3.  前記誤差算出部は、前記第1ロボットの可動部の状態値の時間的変化に基づいて、前記第1ロボットに生じるたわみに起因する位置決め誤差を算出する、請求項1または2に記載のロボット制御システム。
  4.  前記第2制御部は、前記算出された位置決め誤差の大きさが予め定められた条件を満たした場合に、前記位置決め誤差を補償するための前記制御指令を有効化する、請求項1~3のいずれか1項に記載のロボット制御システム。
  5.  前記第1制御部、前記誤差算出部および第2制御部は、予め定められた周期で同期して処理を実行する、請求項1~4のいずれか1項に記載のロボット制御システム。
  6.  前記第1ロボットは、垂直多関節ロボットであり、
     前記第2ロボットは、複数の軸を有する直交ロボットである、請求項1~5のいずれか1項に記載のロボット制御システム。
  7.  前記第2ロボットに支持される前記第2ワークの位置を光学的に検出する画像処理装置をさらに備える、請求項1~6のいずれか1項に記載のロボット制御システム。
  8.  前記画像処理装置は、前記第2ワークの位置に加えて、前記第1ワークの位置も検出し、
     前記誤差算出部は、画像処理装置により検出された、前記第1ワークの位置および前記第2ワークの位置に基づいて、位置決め誤差を算出する、請求項7に記載のロボット制御システム。
  9.  第1ワークを把持して移動させる第1ロボットと、第2ワークを支持する第2ロボットとを備えるロボット制御システムのコンピュータで実行される制御プログラムであって、前記コンピュータに
     前記第1ワークを前記第2ワークへアプローチさせるように、前記第1ロボットに制御指令を与えるステップと、
     前記第1ロボットが前記第1ワークを前記第2ワークにアプローチさせるときに発生する位置決め誤差を算出するステップと、
     前記算出された位置決め誤差を補償するように、前記第2ロボットに制御指令を与えるステップとを実行させる、制御プログラム。
  10.  第1ワークを把持して移動させる第1ロボットと、第2ワークを支持する第2ロボットとを備えるロボット制御システムで実行される制御方法であって、
     前記第1ワークを前記第2ワークへアプローチさせるように、前記第1ロボットに制御指令を与えるステップと、
     前記第1ロボットが前記第1ワークを前記第2ワークにアプローチさせるときに発生する位置決め誤差を算出するステップと、
     前記算出された位置決め誤差を補償するように、前記第2ロボットに制御指令を与えるステップとを備える、制御方法。
PCT/JP2021/008671 2020-06-25 2021-03-05 ロボット制御システム、制御プログラムおよび制御方法 WO2021261024A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020109512A JP2022006926A (ja) 2020-06-25 2020-06-25 ロボット制御システム、制御プログラムおよび制御方法
JP2020-109512 2020-06-25

Publications (1)

Publication Number Publication Date
WO2021261024A1 true WO2021261024A1 (ja) 2021-12-30

Family

ID=79282258

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/008671 WO2021261024A1 (ja) 2020-06-25 2021-03-05 ロボット制御システム、制御プログラムおよび制御方法

Country Status (2)

Country Link
JP (1) JP2022006926A (ja)
WO (1) WO2021261024A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020017426A1 (ja) * 2018-07-20 2020-01-23 オムロン株式会社 制御システム、制御システムの制御方法、および制御システムのプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020017426A1 (ja) * 2018-07-20 2020-01-23 オムロン株式会社 制御システム、制御システムの制御方法、および制御システムのプログラム

Also Published As

Publication number Publication date
JP2022006926A (ja) 2022-01-13

Similar Documents

Publication Publication Date Title
EP2767370A2 (en) Robot system and method for controlling the same
WO2015111298A1 (ja) モータ制御装置
US20060186849A1 (en) Servo control device and method of adjusting servo system
JP2007237312A (ja) 制御装置
CN110581946B (zh) 控制系统、控制装置、图像处理装置以及存储介质
WO2020017426A1 (ja) 制御システム、制御システムの制御方法、および制御システムのプログラム
EP1886771B1 (en) Rotation center point calculating method, rotation axis calculating method, program creating method, operation method, and robot apparatus
CN111687838B (zh) 机械手轨迹跟随误差的在线补偿方法、系统及存储介质
CN110581945B (zh) 控制系统、控制装置、图像处理装置以及存储介质
US11141855B2 (en) Robot system, method of controlling robot arm, recording medium, and method of manufacturing an article
WO2021261024A1 (ja) ロボット制御システム、制御プログラムおよび制御方法
WO2021261023A1 (ja) ロボット制御システム、制御プログラムおよび制御方法
WO2021261025A1 (ja) ロボット制御システム、制御プログラムおよび制御方法
JP2006293624A (ja) 多軸制御装置
CN110682287B (zh) 自动机械以及控制装置
JP5343609B2 (ja) 動作軌道生成装置、動作軌道生成方法、ロボット制御装置及びロボット制御方法
JP5565503B2 (ja) 動作軌道生成装置、動作軌道生成方法、ロボット制御装置及びロボット制御方法
Kawamura et al. Encoderless robot motion control using vision sensor and back electromotive force
US11955917B2 (en) Motor control system, motor control apparatus, and motor control method
JP2020140646A (ja) 制御装置および位置合わせ装置
WO2022162958A1 (ja) 制御装置、プログラム実行方法およびプログラム
CN110581944B (zh) 控制系统、控制装置以及存储介质
JP2023038747A (ja) コントローラシステムおよびその制御方法
CN115723139A (zh) 一种绳驱柔性机械臂操作空间柔顺控制方法及装置
JP2019217592A (ja) ロボット装置及びその制御方法、プログラム、記録媒体、物品の製造方法

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: 21829265

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: 21829265

Country of ref document: EP

Kind code of ref document: A1