Control device, robot system, control method, and control program
The control device uses a conveyor's dynamic characteristic model to estimate movement, allowing robots to track workpieces accurately without encoders, simplifying the system and avoiding additional sensors.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- FANUC LTD
- Filing Date
- 2025-01-16
- Publication Date
- 2026-07-23
AI Technical Summary
Existing robot control systems face complexity when tracking workpieces on conveyors without encoders, necessitating additional sensors like cameras, which complicates the system.
A control device for a robot system that includes a dynamic characteristic model of the conveyor, allowing it to estimate movement without an encoder by using a processor to calculate the conveyor's movement based on operation commands and a virtual encoder count.
Enables accurate robot tracking of workpieces on conveyors without encoders, simplifying the system and eliminating the need for additional sensors, thus maintaining system simplicity.
Smart Images

Figure JP2025001157_23072026_PF_FP_ABST
Abstract
Description
Control Device, Robot System, Control Method, and Control Program
[0001] The present disclosure relates to a control device, a robot system, a control method, and a control program.
[0002] There is known a control device that executes a so-called tracking operation of causing a robot to execute a predetermined operation while causing the robot to follow a workpiece conveyed by a conveyor (see, for example, Patent Document 1).
[0003] Japanese Patent Application Laid-Open No. 2007-290128
[0004] In the above control, generally, the position of the workpiece moving based on the count number of an encoder attached to the conveyor is detected, but an encoder is not always attached to the conveyor. When an encoder is not attached to the conveyor, it is necessary to provide a camera or the like for detecting the position of the workpiece, which complicates the entire system. Therefore, even when an encoder is not mounted on the conveyor, it is desired that the robot can accurately follow the workpiece moved by the conveyor without complicating the entire system.
[0005] One aspect of the present disclosure is a control device for a robot system including a transport device that transports a workpiece and a robot that executes a predetermined operation on the workpiece moved by the transport device, the control device including at least one memory and at least one processor, the memory storing a dynamic characteristic model indicating dynamic characteristics of the transport device, and the processor obtaining an operation command for driving the transport device and calculating an estimated value of the amount of movement of the transport device based on the operation command and the dynamic characteristic model.
[0006] This is a schematic diagram showing the configuration of a robot system according to one embodiment of the present disclosure. This is a graph showing the operation commands output by the conveyor control device of the robot system shown in Figure 1. This is a graph showing the motor rotation speed when an operation command is input to Figure 2. This is a block diagram showing the configuration of a control device according to one embodiment of the present disclosure. This is a flowchart showing a part of the control method according to one embodiment of the present disclosure. This is a flowchart showing a part of the control method according to one embodiment of the present disclosure. This is a graph showing the relationship between the operation commands output by the control device shown in Figure 4 and the estimated amount of conveyor movement.
[0007] A robot system 1, a control device 10, a control method, and a control program 2e according to one embodiment of the present disclosure will be described below with reference to the drawings. The robot system 1 includes, for example, a conveyor (transport device) 20 that transports a workpiece W in one direction, as shown in Figure 1, a robot 30 that performs a predetermined operation on the workpiece W transported by the conveyor 20, and a control device 10. Here, the workpiece W in this embodiment is, for example, a box-shaped object with an open top. The predetermined operation in this embodiment is the operation of storing an object (not shown) in the workpiece W that has entered a work area X set on the conveyor 20.
[0008] The conveyor 20 is, for example, a belt conveyor. Specifically, the conveyor 20 includes a belt 21 integrally wound around a plurality of drive rollers (not shown) and a plurality of driven rollers (not shown), and a drive unit 22 that rotates the drive rollers and makes the belt 21 circulate. The conveyor 20 also includes a conveyor control device 23 that controls the drive unit 22, and a sensor 24 positioned upstream of the work area X that detects the passage of the workpiece W.
[0009] The drive unit 22 includes a motor 22a that rotates each drive roller, and a driver circuit 22b that controls the operation of the motor 22a based on various control signals output from the conveyor control device 23, which will be described later.
[0010] As shown in Figure 2, the conveyor control device 23 generates operation commands, i.e., drive commands and stop commands, that specify the ON / OFF operation of the motor 22a according to a predetermined program. The generated operation commands are output to the drive unit 22 and the control device 10, which will be described later. In this case, the predetermined program is, for example, a program that drives the motor 22a when no workpiece W has entered the work area X, and stops the motor 22a for a certain period of time when a workpiece W has entered the work area X. That is, the conveyor control device 23 transports multiple workpieces W on the belt 21 from the upstream side to the downstream side, and when any of the workpieces W enter the work area X, it temporarily stops the rotation of the belt 21, performing so-called intermittent transport. In this case, the determination of whether or not a workpiece W has entered the work area X is made using a sensor (not shown) placed near the work area X or a sensor (not shown) attached to the robot 30, etc.
[0011] Furthermore, the conveyor control device 23 outputs the generated operation command (see Figure 2) to the drive unit 22 as a control signal for accelerating and decelerating the operation of the motor 22a. As a result, for example, if the conveyor control device 23 outputs a drive command between time 0 and t4, as shown in Figure 2, and outputs a stop command between time t4 and t6, the rotational speed of the motor 22a changes as shown in Figure 3. In other words, in this case, the rotational speed of the motor 22a is gradually accelerated to speed V from the timing when the drive command is output (time 0), and is maintained at speed V while the drive command is being output (until t4). Then, after the timing when the drive command switches to a stop command (time t4), the rotational speed of the motor 22a gradually decelerates toward speed 0. And while the stop command is being output, the motor 22a stops.
[0012] The sensor 24 is an optical sensor that, for example, as shown in Figure 1, positions a laser A extending in the width direction of the belt 21 upstream of the work area X. The sensor 24 includes a light-emitting unit 24a that emits the laser A, which is positioned on one side in the width direction of the belt 21, and a light-receiving unit 24b that is positioned on the other side in the width direction of the belt 21 and receives the laser A emitted from the light-emitting unit 24a. As a result, the sensor 24 can detect the arrival of the workpiece W, that is, the position of the moving workpiece W, when the laser A is blocked by the workpiece W moving by the conveyor 20.
[0013] The robot 30 is, for example, a 6-axis articulated robot positioned near the conveyor 20. A hand 32 for grasping objects to be stored in the workpiece W is attached to the wrist 31 at the tip of the robot 30.
[0014] As shown in Figure 4, the control device 10 includes at least one memory 2 such as ROM and RAM, at least one processor 3 such as a CPU, and a transmitting / receiving device 4. The memory 2 stores, for example, a system program 2a and an application program 2b that are responsible for the basic functions of the control device 10, and an operation program 2c that causes the robot 30 to perform a predetermined task. The memory 2 also stores a dynamic characteristics model 2d that shows the dynamic characteristics of the conveyor 20, a movement amount estimation program (control program) 2e that estimates the amount of movement of the conveyor 20, and a scale 2f.
[0015] The motion program 2c is a program that rotates each joint of the robot 30 to move the wrist 31 in three dimensions and to open and close the hand 32. In other words, the motion program 2c is a program that causes the hand 32 to grasp the object to be stored, and while maintaining that state, moves the hand 32 toward the workpiece W located in the work area X and stores the object inside the workpiece W.
[0016] The dynamic characteristics model 2d is a model that mathematically represents the dynamic characteristics of the conveyor 20 measured by prior experiments, for example. In other words, the dynamic characteristics model 2d is a mathematical representation of the relationship between the operation command transmitted from the conveyor control device 23 to the drive unit 22 and the amount of movement, velocity, and acceleration of the conveyor 20 when the operation command is input. For example, if the conveyor 20 has dynamic characteristics in which the rotational speed of the motor 22a is accelerated or decelerated as shown in Figure 3 when an operation command as shown in Figure 2 is input, the dynamic characteristics model 2d will be a set of mathematical equations that include a cubic function.
[0017] The movement amount estimation program 2e is a program for estimating the amount of movement of the conveyor 20. Specifically, the movement amount estimation program 2e is a program that calculates an estimated value of the amount of movement of the conveyor 20 based on the operation command for driving the motor 22a and the dynamic characteristic model 2d stored in memory 2.
[0018] Scale 2f is a coefficient used to convert the estimated amount of movement of the conveyor 20, calculated by executing the movement estimation program 2e, into the rotational speed of the motor 22a. In other words, scale 2f is a coefficient used to convert the estimated amount of movement of the conveyor 20 into the count of an encoder virtually set on the conveyor 20. Scale 2f is a value uniquely determined by the configuration of the conveyor 20, particularly the specifications or configuration of the motor 22a and the transmission mechanism that transmits the rotation of the motor 22a to the belt 21, and is determined in advance through experiments or other means.
[0019] The processor 3 executes the operation program 2c and the movement amount estimation program 2e according to the system program 2a and the application program 2b stored in the memory 2.
[0020] The transceiver 4 is a communication interface device that communicates with the conveyor control device 23, the sensor 24, and the robot 30 by wire or wireless means. The transceiver 4 acquires information on operation commands, i.e., drive commands and stop commands, that the conveyor control device 23 outputs to the drive unit 22 in real time. The transceiver 4 also receives a signal indicating that the workpiece W has reached the laser A transmitted from the sensor 24. Furthermore, the transceiver 4 transmits various commands based on the operation program 2c and the movement amount estimation program 2e executed by the processor 3 to the robot 30 and the conveyor control device 23.
[0021] The control method of the control device 10 of the robot system 1 configured in this embodiment will be explained in accordance with the flowcharts shown in Figures 5 and 6. In the following explanation, we will describe an example in which the robot 30 is instructed to perform the task of placing predetermined items into each of the multiple workpieces W that are sequentially transported by the conveyor 20 of the robot system 1 shown in Figure 1.
[0022] In this case, multiple workpieces W are sequentially entered into the work area X from the upstream side. In other words, the conveyor 20 stops each time a workpiece W enters the work area X, so the workpieces W are intermittently transported from the upstream side to the downstream side of the belt 21, repeatedly being transported and stopped.
[0023] Here, the processor 3 of the control device 10 executes the operation program 2c and the movement amount estimation program 2e in accordance with the system program 2a and the application program 2b. As a result, the processor 3 acquires information I1 regarding the ON / OFF status of the operation commands output by the conveyor control device 23, as shown in Figure 5 (step S11). In other words, the processor 3 acquires time-series information of the drive commands and stop commands output by the conveyor control device 23 in real time.
[0024] Then, the processor 3 calculates the amount of movement of the belt 21 in the circumferential direction based on the acquired ON / OFF information I1 of the operation command and the dynamic characteristic model 2d stored in memory 2. In other words, the processor 3 continuously calculates a set of mathematical formulas (dynamic characteristic model 2d) that represent the dynamic characteristics of the conveyor 20, which have been determined in advance, based on the ON / OFF status of the operation command output by the conveyor control device 23. As a result, the processor 3 can estimate the amount of movement of the belt 21 based on the operation command from the conveyor control device 23, as shown in Figure 7 (step S12).
[0025] Furthermore, the processor 3 converts the estimated movement of the belt 21 into the rotational speed of the motor 22a by multiplying the estimated movement of the belt 21 by the scale 2f stored in memory 2. In other words, the processor 3 calculates the estimated movement of the belt 21 as if it were the number of counts detected by an encoder mounted on the conveyor 20, a so-called virtual encoder (step S13). The processor 3 then stores the virtual encoder count, which is calculated as needed based on the operation command to the conveyor 20, in memory 2. That is, the virtual encoder count stored in memory 2 is constantly updated (step S14).
[0026] In this embodiment, the processor 3 repeats each of the processes from step S11 to step S14 described above until the execution of the movement amount estimation program 2e is completed (step S15).
[0027] Furthermore, the processor 3 executes a different task in parallel with the task that performs each process from step S11 to step S15, according to the movement amount estimation program 2e (see Figure 6). Specifically, the processor 3 acquires a signal I2 that is output from the sensor 24 when the workpiece W being transported on the conveyor 20 reaches the laser A, that is, a signal I2 indicating that the workpiece W has reached the laser A (step S21). Then, at the time the signal I2 is acquired, the processor 3 saves the count number N1 of the virtual encoder stored in memory 2 to another area of memory 2 (step S22).
[0028] Next, the workpiece W is intermittently transported downstream, and when it enters the work area X, the workpiece W is detected by sensors placed near the work area X or by sensors attached to the robot 30. A signal I3 indicating that the workpiece W has entered the work area X is output from these sensors and sent to the processor 3 via the transmitting / receiving device 4 (step S23). The processor 3 also calculates the difference between the virtual encoder count N2 stored in memory 2 at the time the signal I3 is acquired and the count N1 that has been saved in another area of memory 2 (step S24). In this way, the processor 3 can acquire the virtual encoder count from the time the workpiece W reaches laser A until it enters the work area X.
[0029] Then, based on the calculated difference, the processor 3 can estimate the amount of movement of the belt 21, that is, the amount of movement of the workpiece W since it reached the laser A (step S25). As a result, the processor 3 can accurately estimate the position of each workpiece W within the work area X as it is transported on the conveyor 20, which is not equipped with an encoder.
[0030] In other words, the processor 3 can execute the operation program 2c using the position information of the workpiece W within the work area X obtained by executing the movement amount estimation program 2e. Therefore, the processor 3 can operate the robot 30 and move the hand 32, which is gripping the object to be stored, toward the workpiece W that has entered the work area X. The robot 30 can also be instructed to store the object gripped by the hand 32 into the workpiece W that has entered the work area X.
[0031] As a result, the execution of the predetermined operation for one workpiece W is completed. Then, the processor 3 repeats each of the processes from step S21 to step S25 described above until there are no more workpieces W to be transported (step S26). In this way, the predetermined operation can be performed on all workpieces W.
[0032] As described above, according to this embodiment, by pre-measuring the dynamic characteristics of the conveyor 20, the amount of movement of the conveyor 20 can be estimated based on the operation command to the conveyor 20. This allows the robot 30 to perform a predetermined task while following the workpiece W, even if the conveyor 20 transporting the workpiece W is not equipped with an encoder. In other words, even if the conveyor 20 provided in the robot system 1 that performs tracking work is not equipped with an encoder, it is not necessary to add sensors such as cameras to determine the position of the transported workpiece W. In short, the robot system 1 does not need to be made more complex.
[0033] Furthermore, in this embodiment, the control device 10 converts the estimated amount of movement of the belt 21 into the count of a so-called virtual encoder of the conveyor 20. As a result, the control device 10 can use an operation program 2c that assumes a conveyor 20 equipped with an encoder, and therefore does not need to be significantly modified depending on whether the conveyor 20 has an encoder or not.
[0034] In this embodiment, the dynamic characteristics model 2d was a set of mathematical equations showing the relationship between the operation command shown in Figure 2 and the amount of movement, velocity, and acceleration of the conveyor 20 when the operation command is input. Alternatively, the dynamic characteristics model 2d may be generated taking into account the rate of change of acceleration, also known as jerk. In other words, the dynamic characteristics model 2d may be a set of mathematical equations showing the relationship between the operation command shown in Figure 2 and the jerk of the motor 22a when the operation command is input.
[0035] In this case, the conveyor 20 can be test-driven in advance, and the acceleration of the motor 22a at that time can be measured. Then, by analyzing (time differentiation) the measured acceleration data and obtaining time-series data of jerk, the jerk of the motor 22a in response to the operation command can be determined. In this way, by using a dynamic characteristic model 2d that also takes jerk into consideration, the amount of movement of the belt 21 can be estimated with greater accuracy.
[0036] Furthermore, for example, if the speed change of the conveyor 20 is small, the dynamic characteristics model 2d may be a set of mathematical formulas that show the relationship between the motion command and the amount and speed of movement of the conveyor 20 corresponding to the motion command, or the amount of movement of the conveyor 20. In this case, the dynamic characteristics model 2d can be simplified, which has the advantage of reducing the computational load on the processor 3.
[0037] Furthermore, in this embodiment, the scale 2f stored in memory 2 may be a changeable value. In this case, if there is a change in the specifications of the belt 21, motor 22a, or the transmission mechanism that transmits the rotation of the motor 22a to the drive roller, or if the workpiece W is changed, the value of the scale 2f can be adjusted according to the change. This makes it possible to calculate the rotational speed of the motor 22a more accurately without changing the complex dynamic characteristic model 2d, and improves the accuracy of detecting the position of the workpiece W.
[0038] Furthermore, in this embodiment, the conveyor 20 performs intermittent conveying, repeatedly transporting and stopping, but the operation of the conveyor 20 is not limited to this. For example, the conveyor 20 may operate so that the belt 21 rotates at high speed when no workpiece W is in the work area X, and rotates at low speed when a workpiece W enters the work area X. Even in this case, the amount of movement of the belt 21 can be estimated in the same manner as described above by obtaining a dynamic characteristic model 2d that shows the relationship between the operation command and the rotational speed of the motor 22a when the operation command is input through prior experiments.
[0039] Although embodiments of this disclosure have been described in detail above, this disclosure is not limited to the individual embodiments described above. These embodiments can be added, replaced, modified, partially deleted, etc., in any way that does not depart from the gist of the invention or from the spirit and intent of the invention derived from the claims and their equivalents. For example, the order of operations and processes in the embodiments described above are shown as examples only and are not limited thereto.
[0040] With respect to the above embodiments and modifications, the following additional notes are disclosed. (Addendum 1) A control device for a robot system comprising a transport device for transporting a workpiece and a robot for performing a predetermined operation on the workpiece moved by the transport device, comprising at least one memory and at least one processor, wherein the memory stores a dynamic characteristic model showing the dynamic characteristics of the transport device, the processor acquires an operation command to drive the transport device, and calculates an estimated value of the amount of movement of the transport device based on the operation command and the dynamic characteristic model. (Addendum 2) The control device according to Addendum 1, wherein the processor controls the robot based on the estimated value and causes the robot to follow the workpiece. (Addendum 3) The control device according to Addendum 1 or Addendum 2, wherein the memory stores a scale showing the relationship between the amount of movement and the number of counts of a virtual encoder in the transport device, and the processor converts the estimated value to the number of counts of the virtual encoder based on the scale. (Addendum 4) The control device according to Addendum 3, wherein the scale is changeable. (Note 5) A control device according to any one of Notes 1 to 4, wherein the dynamic characteristics model is generated based on information on the jerk when the transport device is driven. (Note 6) A robot system comprising a transport device for transporting a workpiece, a robot that performs a predetermined operation on the workpiece moved by the transport device, and a control device, wherein the control device comprises at least one memory and at least one processor, the memory storing a dynamic characteristics model showing the dynamic characteristics of the transport device, the processor acquiring a control signal to drive the transport device, and calculating an estimated value of the amount of movement of the transport device based on the control signal and the dynamic characteristics model. (Note 7) A control method for a robot system comprising a transport device for transporting a workpiece, a robot that performs a predetermined operation on the workpiece moved by the transport device, and a control device, wherein the control method stores a dynamic characteristics model showing the dynamic characteristics of the transport device, acquires a control signal to drive the transport device, and estimates the amount of movement of the transport device based on the control signal and the dynamic characteristics model.(Note 8) A control program for a robot system comprising a transport device for transporting a workpiece, a robot for performing predetermined tasks on the workpiece moved by the transport device, and a control device, wherein the control program stores a dynamic characteristic model showing the dynamic characteristics of the transport device, acquires a control signal to drive the transport device, and causes a computer to calculate an estimated value of the amount of movement of the transport device based on the control signal and the dynamic characteristic model.
[0041] 1 Robot system 2 Memory 2d Dynamic characteristics model 2f Scale 3 Processor 10 Control device 20 Conveyor (transport device) 30 Robot W Work
Claims
1. A control device for a robot system comprising a transport device for transporting a workpiece and a robot for performing a predetermined operation on the workpiece moved by the transport device, the control device comprising at least one memory and at least one processor, wherein the memory stores a dynamic characteristic model indicating the dynamic characteristics of the transport device, the processor acquires an operation command to drive the transport device, and calculates an estimated value of the amount of movement of the transport device based on the operation command and the dynamic characteristic model.
2. The control device according to claim 1, wherein the processor controls the robot based on the estimated value and causes the robot to follow the workpiece.
3. The control device according to claim 1 or 2, wherein the memory stores a scale indicating the relationship between the amount of movement and the count of a virtual encoder in the transport device, and the processor converts the estimated value to the count of the virtual encoder based on the scale.
4. The control device according to claim 3, wherein the scale is changeable.
5. The control device according to any one of claims 1 to 4, wherein the dynamic characteristic model is generated based on information of the jerk when the conveying device is driven.
6. A robot system comprising a transport device for transporting a workpiece, a robot for performing predetermined operations on the workpiece moved by the transport device, and a control device, wherein the control device comprises at least one memory and at least one processor, the memory storing a dynamic characteristics model representing the dynamic characteristics of the transport device, the processor acquiring a control signal to drive the transport device, and calculating an estimated value of the amount of movement of the transport device based on the control signal and the dynamic characteristics model.
7. A control method for a robot system comprising a transport device for transporting a workpiece, a robot for performing a predetermined operation on the workpiece moved by the transport device, and a control device, the method comprising: storing a dynamic characteristic model showing the dynamic characteristics of the transport device; acquiring a control signal to drive the transport device; and estimating the amount of movement of the transport device based on the control signal and the dynamic characteristic model.
8. A control program for a robot system comprising a transport device for transporting a workpiece, a robot for performing a predetermined operation on the workpiece moved by the transport device, and a control device, wherein the control program stores a dynamic characteristic model showing the dynamic characteristics of the transport device, acquires a control signal to drive the transport device, and causes a computer to calculate an estimated value of the amount of movement of the transport device based on the control signal and the dynamic characteristic model.