WO2020170306A1 - Robot control device - Google Patents
Robot control device Download PDFInfo
- Publication number
- WO2020170306A1 WO2020170306A1 PCT/JP2019/005855 JP2019005855W WO2020170306A1 WO 2020170306 A1 WO2020170306 A1 WO 2020170306A1 JP 2019005855 W JP2019005855 W JP 2019005855W WO 2020170306 A1 WO2020170306 A1 WO 2020170306A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- command
- smoothing
- speed
- robot
- unit
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
Definitions
- the present invention relates to a robot control device that controls a robot.
- the corrected angular velocity command for adjusting the operation speed of the robot is directly output to the servo motor, so that there is a problem that acceleration and vibration exceeding the allowable value of the servo motor occur.
- the robot controller when the robot controller outputs a command to the servo motor, it is necessary to perform smoothing processing on the generated command in order to realize a smooth motion of the robot.
- the trapezoidal pattern is used to generate the angular velocity command output to the servo motor based on the displacement amount between the initial angle and the final angle of the servo motor, if the angular velocity command is not smoothed, the command start point , The end point, and the change point of the angular velocity command such as the apex of the trapezoid may cause acceleration and vibration exceeding the allowable value of the servo motor.
- the smoothing process is a process for suppressing the occurrence of acceleration and vibration that exceed the above allowable values.
- the present invention has been made in view of the above, and provides a robot control device that operates a robot at an operating speed within a limit value even if a process of smoothing a command is performed to smoothly operate the robot. With the goal.
- the present invention is a robot control device for controlling a robot having a plurality of arms, wherein smoothing is a command for driving a plurality of arms of the robot.
- Pre-smoothing command generation unit that generates a pre-command
- a smoothing unit that smoothes the pre-smoothing command generated by the pre-smoothing command generation unit to generate a post-smoothing command
- a smoothing unit And a command output unit that outputs a command after smoothing to the robot.
- the present invention is a speed estimation for estimating an operation speed of a monitoring point provided in a robot based on a pre-smoothing command generated by a pre-smoothing command generation unit and a post-smoothing command generated by a smoothing unit.
- a override correction unit that corrects the override that is the virtual time correction rate based on the operation speed estimated by the speed estimation unit and the predetermined speed limit.
- the pre-smoothing command generation unit generates a pre-smoothing command using the override obtained by the override correction unit.
- the robot can be operated at the operation speed within the limit value even if the process of smoothing the command is performed to smoothly operate the robot.
- FIG. 1 is a diagram showing a hardware configuration of a robot controller according to the first embodiment
- Block diagram for explaining the function of the robot controller according to the first embodiment 2 is a flowchart showing the procedure of the operation of the robot controller according to the first embodiment.
- FIG. 3 is a diagram showing a configuration of a pre-smoothing command generation unit included in the robot control device according to the first embodiment. 6 is a flowchart showing the procedure of the operation of the pre-smoothing command generation unit included in the robot control device according to the first embodiment.
- Block diagram for explaining the function of the robot controller according to the second embodiment 6 is a flowchart showing the procedure of the operation of the suppression unit included in the robot control device according to the second embodiment.
- Block diagram for explaining the function of the robot controller according to the third embodiment 6 is a flowchart showing a procedure of an operation of a speed estimation unit included in the robot control device according to the third embodiment.
- a processor in the case where some or all of the functions of a pre-smoothing command generation unit, a smoothing unit, a command output unit, a speed estimation unit, and an override correction unit included in the robot control device according to the first embodiment are realized by the processor.
- FIG. 1 A processing circuit in the case where a part or all of a pre-smoothing command generation unit, a smoothing unit, a command output unit, a speed estimation unit, and an override correction unit included in the robot control device according to the first embodiment is realized by a processing circuit.
- the robot posture means a robot hand position and a robot hand posture.
- the robot hand position is the position of the robot hand in a reference coordinate system set at an arbitrary position serving as a reference in a three-dimensional space.
- the robot hand posture can be represented by coordinate conversion from the coordinates of the tool coordinate system defined at the robot hand position.
- a coordinate conversion matrix, an Euler angle, a quaternion or a Rodrigues parameter is used.
- the robot posture is described as the position and posture of the robot hand, but in the coordinate system moved by performing a predetermined coordinate conversion from the coordinate system set for the robot hand, the position is the same as that of the robot hand.
- the attitude can be calculated.
- the robot posture is not limited to the robot hand position and the robot hand posture.
- FIG. 1 is a diagram showing a hardware configuration of the robot controller 1 according to the first embodiment.
- the robot control device 1 is a device that controls a robot having a plurality of arms, and stores a CPU (Central Processing Unit) 2 that operates to control the robot, and data used by the CPU 2 when the CPU 2 operates.
- a storage device 3 that operates.
- CPU2 is an example of a processor.
- the storage device 3 stores data indicating a housing model of the robot controlled by the robot control device 1 and data indicating a robot posture.
- An example of the storage device 3 is a ROM (Read Only Memory), a HDD (Hard Disk Drive), or a RAM (Random Access Memory).
- the robot control device 1 further includes an IO (Input Output) interface 4 having a function of transmitting a signal to the receiving device 6 and a function of receiving a signal transmitted from the input device 7.
- the receiving device 6 and the input device 7 are also shown in FIG.
- the IO interface 4 is connected to the receiving device 6 by a cable 8 and is connected to the input device 7 by a cable 9.
- the receiving device 6 receives the signal transmitted from the robot control device 1.
- An example of the receiving device 6 is a lamp or a buzzer that notifies the outside of the robot control device 1 of the operation state of the robot controlled by the robot control device 1.
- the input device 7 transmits a signal to the robot control device 1.
- An example of the input device 7 is a light curtain or an area sensor.
- the robot control device 1 further includes a bus 5 that interconnects the CPU 2, the storage device 3, and the IO interface 4.
- FIG. 2 is a block diagram for explaining the function of the robot control device 1 according to the first embodiment.
- the robot control device 1 is a device that controls the robot 30.
- the robot 30 is also shown in FIG.
- the robot 30 has a plurality of arms and a robot hand provided at the tip of each of the plurality of arms. Each arm is rotatably connected to the main body of the robot 30.
- connection part of each arm with the main body is defined as a joint part.
- a drive device for changing the angle of the joint and a joint angle detector for measuring the rotation angle of the joint are attached to each joint.
- the drive device is a device that drives the joint portion and has an electric motor. Examples of electric motors are servomotors or stepping motors.
- the joint angle detector has an image sensor and an encoder. The position and orientation of each arm of the robot 30 changes as the drive device changes the angle of each joint.
- the robot controller 1 outputs the robot operation command 1a to the robot 30 at a predetermined control cycle.
- the robot drive command 1a is a joint angle command output to a drive device provided in each joint of the robot 30, and is a command for controlling the operation of a plurality of arms of the robot 30.
- the robot control device 1 includes a pre-smoothing command generation unit 11 that generates a pre-smoothing command 11a that is a command for driving a plurality of arms of the robot 30. Details of the pre-smoothing command generation unit 11 will be described later with reference to FIGS. 4 and 5.
- the robot control device 1 further includes a smoothing unit 12 that smoothes the pre-smoothing command 11a generated by the pre-smoothing command generating unit 11 to generate a post-smoothing command 12a.
- the post-smoothing command 12a is the robot drive command 1a.
- the smoothing unit 12 may generate the post-smoothing command 12a by using the average of changes in the values included in the pre-smoothing command 11a, or may use the filter corresponding to the Nth delay element to perform the post-smoothing command. 12a may be generated.
- N is an integer of 1 or more.
- the robot control device 1 further includes a command output unit 13 that outputs the smoothed command 12 a generated by the smoothing unit 12 to the robot 30.
- the smoothed command 12 a output from the command output unit 13 to the robot 30 is the robot drive command 1 a for driving the robot 30.
- the robot control device 1 determines the monitoring location of the robot 30 based on the pre-smoothing command 11a generated by the pre-smoothing command generation unit 11 and the post-smoothing command 12a generated by the smoothing unit 12. It further has a speed estimation unit 14 for estimating an operation speed.
- the monitoring points are preset in the robot 30, and the number of monitoring points is one or more.
- the operation speed estimated by the speed estimation unit 14 is the representative monitoring speed 14a. Details of the speed estimation unit 14 will be further described later with reference to FIGS. 6 and 7.
- the robot control device 1 further includes an override correction unit 15 that corrects the override, which is a virtual time correction rate, based on the representative monitoring speed 14a estimated by the speed estimation unit 14 and a predetermined speed limit.
- the data indicating the speed limit is stored in the storage device 3 of FIG.
- the override correction unit 15 obtains the corrected override 15a by performing the correction.
- the override 15a is a value obtained by dividing the target operation speed of the robot 30 by the representative monitoring speed 14a, and is a value from 0 to 1.
- the override 15a is represented by "OVRD” and the target operation speed of the robot 30 is represented by "Vlim”
- the override 15a is obtained by the following equation (1).
- OVRD min(1,max(0,Vlim/V)) (1)
- the target operation speed of the robot 30 may be input to the robot controller 1 from the input device 7 and stored in the storage device 3, or may be stored in the storage device 3 in advance.
- the storage device 3 stores a plurality of target operation speeds, and one of the plurality of target operation speeds is selected depending on the operation state of the robot 30 or the signal transmitted from the input device 7 to the robot control device 1. The operating speed may be selected.
- the functions of the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15 are realized by the CPU 2.
- the CPU 2 realizes the functions of the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15 by reading and executing the program stored in the storage device 3.
- the storage device 3 stores a program in which the steps executed by the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15 are eventually executed. It is also a device for doing.
- the program stored in the storage device 3 causes the CPU 2 to execute the procedure or method executed by the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15. is there.
- the pre-smoothing command 11a includes a pre-smoothing command value
- the post-smoothing command 12a includes a post-smoothing command value.
- the pre-smoothing command value and the post-smoothing command value are the angle command value and the angular velocity command value of each joint of the robot 30.
- the robot drive command 1a output to the robot 30 by the robot controller 1 in each control cycle includes an angle command value.
- the angle command value before smoothing is represented as ⁇ _i
- the angular velocity command value before smoothing is represented as ⁇ _i
- the angle command value after smoothing is represented as ⁇ _i
- the angular velocity command after smoothing is represented.
- the value may be represented as ⁇ _i.
- the subscript i is a number that identifies each joint.
- FIG. 3 is a flowchart showing an operation procedure of the robot controller 1 according to the first embodiment.
- the CPU 2 processes a program stored in advance in the storage device 3 to determine whether or not there is an operation command (S1).
- the CPU 2 acquires data indicating a joint angle from a joint angle detector attached to each joint of the robot 30 in order to acquire data indicating the current robot posture. After that, the CPU 2 calculates the position and orientation of the robot hand from the joint angle of the robot 30 using the data indicating the housing model of the robot 30 stored in the storage device 3.
- calculating the position and orientation of the robot hand from the joint angle of the robot 30 using the data indicating the housing model of the robot 30 stored in the storage device 3 is referred to as “forward conversion”.
- the CPU 2 performs a process of acquiring a target robot posture (S3).
- the CPU 2 initializes the virtual time (S4).
- the order in which each process from step S2 to step S4 is performed is not limited.
- the pre-smoothing command generation unit 11 updates the pre-smoothing command 11a for moving the robot 30 from the current posture to the target posture every control cycle (S5).
- the pre-smoothing command generation unit 11 acquires the data indicating the joint angle from the joint angle detector attached to each joint of the robot 30 and performs the forward conversion, for example, as in the process of step S2. By doing so, data indicating the current posture of the robot 30 in each control cycle is acquired.
- the pre-smoothing command generation unit 11 may store the attitude data updated in each control cycle and use the attitude data of one cycle before as the data indicating the current attitude in the next control cycle.
- the smoothing unit 12 smoothes the pre-smoothing command 11a to generate the post-smoothing command 12a (S6).
- the speed estimation unit 14 estimates the operation speed of the monitoring location (S7).
- the override correction unit 15 corrects the override (S8).
- the command output unit 13 outputs a drive command to the robot 30 (S9).
- the drive command is the smoothed command 12a generated by the smoothing unit 12.
- the CPU 2 determines whether the current posture of the robot 30 has reached the target posture in each control cycle (S10), and when it determines that the current posture has reached the target posture (Yes in S10), the operation is performed. finish.
- the operation of the robot controller 1 proceeds to step S5.
- FIG. 4 is a diagram showing a configuration of the pre-smoothing command generation unit 11 included in the robot control device 1 according to the first embodiment.
- the pre-smoothing command generation unit 11 includes a virtual time calculation unit 111 that calculates a virtual time 111a different from the actual control time based on the override 15a.
- the pre-smoothing command generation unit 11 further includes a motion planning unit 112 that acquires from the storage device 3 the motion parameters 112a of acceleration/deceleration and maximum speed when the robot 30 operates.
- the pre-smoothing command generating unit 11 is a command for generating the pre-smoothing command 11a using the operation parameter 112a acquired by the motion planning unit 112 based on the virtual time 111a obtained by the virtual time calculating unit 111. It further has a value updating unit 113.
- the operation planning unit 112 acquires the operation parameter 112 a previously stored in the storage device 3 from the storage device 3 and outputs it to the command value updating unit 113.
- the motion parameter 112a includes data of angular acceleration/deceleration and maximum angular velocity for generating an angular velocity pattern until each joint moves from the current angle to the target angle.
- the operation planning unit 112 corresponds to the operation status of the robot 30 from the plurality of data sets stored in the storage device 3.
- the operation parameter 112a may be selected and output to the command value updating unit 113.
- FIG. 5 is a flowchart showing an operation procedure of the pre-smoothing command generation unit 11 included in the robot control device 1 according to the first embodiment.
- the virtual time calculation unit 111 updates the virtual time 111a based on the override 15a which is the virtual time correction rate (S11).
- the override 15a may be represented as “OVRD” and the virtual time may be represented as “KT”.
- the virtual time calculation unit 111 updates the virtual time using the following equation (2).
- KT(k) KT(k ⁇ 1)+OVRD(k) ⁇ T (2)
- ⁇ T is a control cycle
- KT(k) represents virtual time at k steps.
- OVRD is a real number from 0 to 1.
- the command value updating unit 113 determines whether to update the command value based on the virtual time KT(k) (S12). When the virtual time KT(k) exceeds the j-th command value update time T(j), the command value updating unit 113 determines to update the command value (Yes in S12), and the virtual time KT(k) is When the command value update time T(j) for the jth time is not exceeded, it is determined that the command value is not updated (No in S12). When it is determined that the command value is not updated (No in S12), the command value updating unit 113 continues to output the previously output command value.
- the command value updating unit 113 determines not to update the command value (No in S12)
- the operation of the pre-smoothing command generating unit 11 ends.
- the command value updating unit 113 determines to update the command value (Yes in S12)
- ⁇ m_i is the maximum angular velocity command value at the joint i
- ⁇ a_i(k) is the angular velocity command value when the joint i is accelerated by the angular velocity increase amount ⁇ _i
- ⁇ b_i(k) is the remaining movement amount ⁇ _i( which is obtained by subtracting the current angle command value ⁇ _i(k) from the target angle ⁇ f_i, when the angular velocity is decelerated by the angular velocity decrease amount ⁇ _i and stops.
- k) abs( ⁇ f_i ⁇ _i(k)).
- ⁇ b_i(k) is calculated by the following equation (5).
- ⁇ b_i(k) sqrt(2 ⁇ _i(k) ⁇ _i) (5)
- the angle command value of each joint is updated by the following equation (6) based on the updated angular velocity command value.
- ⁇ _i(k) ⁇ _i(k ⁇ 1)+ ⁇ _i(k) ⁇ T (6)
- FIG. 6 is a diagram showing a configuration of the speed estimation unit 14 included in the robot control device 1 according to the first embodiment.
- the speed estimation unit 14 generates a pre-smoothing command 11a including the angle command value of each joint before smoothing, a post-smoothing command 12a including the angle command value of each joint after smoothing, and an override 15a.
- the operating speeds of one or more monitoring points are estimated, and the representative monitoring speed 14a that is a representative of the operating speeds of the one or more monitoring points is output.
- the monitoring point may be described as a monitoring point.
- the speed estimation unit 14 receives the pre-smoothing command 11a and calculates the difference ( ⁇ _i(k)- ⁇ _i(k-1)) between the joint angle command values before smoothing, which is updated in each control cycle, before smoothing. It has the 1st movement amount acquisition part 141 which acquires as command value movement amount 141a.
- the velocity estimation unit 14 receives the smoothed command 12a and smoothes the difference ( ⁇ _i(k)- ⁇ _i(k-1)) between the smoothed joint angle command values updated in each control cycle. It further has the 2nd moving amount acquisition part 142 acquired as command value moving amount 142a.
- the speed estimation unit 14 receives the pre-smoothing command value movement amount 141a and the post-smoothing command 12a, and sets the post-smoothing joint angle command value ⁇ _i(k) as the pre-smoothing command value movement amount ( ⁇ _i(k) ⁇ _i It further includes a first monitoring point position calculation unit 143 that calculates the first monitoring point position corresponding to the joint angle command value to which (k-1)) is added.
- the first monitoring point position may be described as “first monitoring point position P_A143a”.
- the velocity estimation unit 14 receives the smoothed command 12a and the smoothed command value movement amount 142a, and converts the smoothed command value movement amount ( ⁇ _i(k)- ⁇ _i) into the smoothed joint angle command value ⁇ _i(k).
- a second monitoring point position calculation unit 144 that calculates the second monitoring point position corresponding to the joint angle command value to which (k-1)) is added is further included.
- a 2nd monitoring point position may be described as "2nd monitoring point position P_B144a.”
- the velocity estimation unit 14 further includes a third monitoring point position calculation unit 145 that receives the smoothed command 12a and calculates a third monitoring point position corresponding to the smoothed joint angle command value ⁇ _i(k).
- the third monitoring point position may be described as “third monitoring point position P_C145a”.
- the speed estimation unit 14 calculates a first estimated speed 146a obtained by dividing the difference between the value of the first monitoring point position P_A143a and the value of the third monitoring point position P_C145a by the control cycle ⁇ T. Further has 146.
- the first speed calculator 146 calculates the position of the monitoring point calculated based on the post-smoothing command 12a and the pre-smoothing position that is the movement amount of the monitoring point calculated based on the pre-smoothing command 11a.
- the first estimated speed 146a of the monitoring location is calculated based on the command value movement amount 141a.
- the first speed calculation unit 146 calculates the pre-smoothing command value movement amount 141a based on the pre-smoothing command 11a which is the basis of the post-smoothing command 12a output to the robot 30 one cycle before. Then, the first estimated speed 146a is calculated using the pre-smoothing command value movement amount 141a obtained by the calculation.
- the first estimated speed 146a is an estimated speed of motion.
- the speed estimation unit 14 calculates a second estimated speed 147a obtained by dividing the difference between the value of the second monitoring point position P_B144a and the value of the third monitoring point position P_C145a by the control cycle ⁇ T. Further has 147. That is, the second speed calculation unit 147 calculates the position of the monitoring point calculated based on the post-smoothing command 12a and the smoothed position that is the movement amount of the monitoring point calculated based on the post-smoothing command 12a. The second estimated speed 147a of the monitoring location is calculated based on the command value movement amount 142a.
- the second speed calculator 147 calculates the smoothed command value movement amount 142a based on the smoothed command 12a output to the robot 30 one cycle before, and the smoothed command obtained by the calculation.
- the second estimated speed 147a is calculated using the value movement amount 142a.
- the second estimated speed 147a is an estimated speed of motion.
- the speed estimation unit 14 further includes a representative speed calculation unit 148 that receives the first estimated speed 146a, the second estimated speed 147a, and the override 15a and calculates the representative monitored speed 14a at the monitoring location. That is, the representative speed calculation unit 148 estimates the speed of the monitoring location based on the first estimated speed 146a and the second estimated speed 147a. Specifically, the representative speed calculation unit 148 estimates the larger estimated speed of the first estimated speed 146a and the second estimated speed 147a as the operating speed of the monitoring location.
- FIG. 7 is a flowchart showing an operation procedure of the speed estimation unit 14 included in the robot control device 1 according to the first embodiment.
- the CPU 2 initializes the representative monitoring speed (S21).
- the representative monitoring speed may be represented as “representative monitoring speed V”.
- the CPU 2 initializes the representative monitoring speed to 0.
- the first movement amount acquisition unit 141 calculates the pre-smoothing command value movement amount 141a
- the second movement amount acquisition unit 142 calculates the smoothed command value movement amount 142a (S22). Either the pre-smoothing command value movement amount 141a or the post-smoothing command value movement amount 142a may be calculated first.
- the robot controller 1 sets one or more monitoring points in the robot 30 in order to monitor the operation speed of the robot 30.
- the monitoring location is a predetermined location on the housing of the robot 30 or a location away from the location in a predetermined direction by a predetermined distance, and corresponds to the motion of the joint of the robot 30. Move.
- the monitoring point may be a hand position of the robot 30, or may be a position away from the hand position by a predetermined distance in a designated direction.
- the data indicating the monitoring location is stored in the storage device 3 similarly to the data indicating the housing model of the robot 30.
- the robot control device 1 can calculate the position of the monitoring point from the angle of each joint of the robot 30 by performing the same process as the process for the robot posture.
- each of the first monitoring point position calculation unit 143, the second monitoring point position calculation unit 144, and the third monitoring point position calculation unit 145 monitors the operation speed of the robot 30.
- One monitoring point is selected (S23).
- each of the first monitoring point position calculation unit 143, the second monitoring point position calculation unit 144, and the third monitoring point position calculation unit 145 is one of the plurality of monitoring points.
- each of the first monitoring point position calculation unit 143, the second monitoring point position calculation unit 144, and the third monitoring point position calculation unit 145 selects from a list including data indicating the monitoring points.
- One monitoring location may be selected at random, or one monitoring location may be selected according to a predetermined rule.
- the first monitoring point position calculation unit 143 calculates the first monitoring point position P_A143a
- the second monitoring point position calculation unit 144 calculates the second monitoring point position P_B144a
- the third monitoring point position calculation unit 145 The three monitoring point position P_C145a is calculated (S24).
- the first monitoring point position P_A143a is a command value movement amount before the smoothing ( ⁇ _i( which is a difference between the smoothed joint angle command values ⁇ _i(k) and the respective joint angle command values before the smoothing for the selected monitoring point. k) ⁇ _i(k ⁇ 1)) is added to the joint angle for forward conversion.
- the second monitoring point position P_B144a is the smoothed command value movement amount ( ⁇ _i( which is the difference between the smoothed joint angle command values ⁇ _i(k) and the respective smoothed joint angle command values for the selected monitoring point. k) ⁇ _i(k ⁇ 1)) is added to the joint angle for forward conversion.
- the third monitoring point position P_C145a is calculated by forward-converting the smoothed joint angle command value ⁇ _i(k) for the selected monitoring point.
- the first monitoring point position P_A143a, the second monitoring point position P_B144a, and the third monitoring point position P_C145a may be calculated in any order.
- the first speed calculation unit 146 calculates the first estimated speed
- the second speed calculation unit 147 calculates the second estimated speed (S25).
- the first estimated speed may be represented as “first estimated speed V1” and the second estimated speed may be represented as “second estimated speed V2”. Either the first estimated speed V1 or the second estimated speed V2 may be calculated first.
- the first estimated speed V1 is calculated by the following equation (7)
- the second estimated speed V2 is calculated by the following equation (8).
- V1 norm(P_AP_C)/ ⁇ T/OVRD (7)
- V2 norm(P_B-P_C)/ ⁇ T/OVRD (8)
- the first monitoring point position P_A143a, the second monitoring point position P_B144a, and the third monitoring point position P_C145a are all three-dimensional positions.
- the norm operator calculates the Euclidean norm of an array.
- Each of the first estimated speed V1 and the second estimated speed V2 can be converted into a speed when the override is 1 by dividing by the value of the override 15a.
- step S23 each of the first monitoring point position calculation unit 143, the second monitoring point position calculation unit B144, and the third monitoring point position calculation unit 145 monitors all the monitoring points to the monitoring points selected in step S23 from the previous time. One monitoring point is selected from the monitoring points excluding.
- the representative speed calculation unit 148 determines that the processing from step S24 to step S28 has been performed for all the monitoring points (Yes in S29), it outputs the current representative monitoring speed V (S30).
- the representative speed calculator 148 outputs the current representative monitoring speed V, the operation of the speed estimator 14 ends.
- the robot control device 1 uses the pre-smoothing command 11a generated by the pre-smoothing command generation unit 11 and the post-smoothing command 12a generated by the smoothing unit 12 as a basis.
- the robot 30 has a speed estimation unit 14 that estimates the speed of a monitoring location provided on the robot 30. That is, the robot control device 1 estimates the speed estimated for adjusting the operation speed of the robot 30, using the command before the smoothing of the drive command that is actually output to the robot 30.
- the robot control device 1 can estimate the future operation speed that is closer to the actually detected operation speed of the robot 30 by the time required for the smoothing process, and the robot 30 is estimated using the estimated operation speed.
- the operating speed of can be adjusted. That is, the robot control device 1 can estimate the increase in the operation speed of the robot 30 in the near future.
- the robot control device 1 has an override correction unit 15 that corrects an override that is a virtual time correction rate based on the representative monitoring speed 14a estimated by the speed estimation unit 14 and a predetermined speed limit. Therefore, the robot control device 1 can output a smooth drive command after smoothing to the robot 30, and can suppress the possibility that the operating speed of the robot 30 exceeds the speed limit.
- the robot control device 1 can operate the robot 30 at an operation speed within the limit value even if the process of smoothing the command is performed to smoothly operate the robot 30. Furthermore, the robot control device 1 estimates the operating speed of the monitoring location provided in the robot 30 based on the pre-smoothing command 11a and the post-smoothing command 12a. Therefore, the robot control device 1 suppresses the operating speed of the monitoring location within the speed limit without generating acceleration or vibration exceeding the allowable value of the electric motor of the drive device attached to each joint of the robot 30. The robot 30 can be operated.
- FIG. 8 is a block diagram for explaining the function of the robot control device 1A according to the second embodiment.
- the robot controller 1 ⁇ /b>A has a pre-smoothing command generation unit 11, a smoothing unit 12, a command output unit 13, a speed estimation unit 14, and an override correction unit 15, and is obtained by the override correction unit 15.
- the suppression unit 20 that receives the override 15a and outputs the suppression override 20a is included.
- the pre-smoothing command generation unit 11 uses the suppression override 20a output from the suppression unit 20 to generate the pre-smoothing command 11a.
- FIG. 9 is a flowchart showing an operation procedure of the suppression unit 20 included in the robot control device 1A according to the second embodiment.
- the suppression unit 20 acquires the override 15a output from the override correction unit 15 (S31).
- the suppression unit 20 performs suppression processing on the acquired override 15a (S32) and generates the suppression override 20a. Details of the suppression processing will be described later.
- the suppression unit 20 stores the generated suppression override 20a (S33), and then outputs the suppression override 20a to the pre-smoothing command generation unit 11 (S34).
- the suppression unit 20 has a memory for storing information.
- the suppression unit 20 determines whether the acquired value of the override 15a is larger than the value of the suppressed override 20a stored in the immediately preceding control cycle. When the suppression unit 20 determines that the acquired value of the override 15a is larger than the value of the suppressed override 20a stored in the immediately preceding control cycle, the suppression unit 20 sets the value of the suppressed override 20a in the current control cycle to the value of the acquired override 15a. The value is set to a value between the value and the stored value of the suppression override 20a, and the suppression override 20a after the setting is output. When the suppression unit 20 determines that the acquired value of the override 15a is less than or equal to the value of the suppression override 20a stored in the immediately previous control cycle, the suppression unit 20 outputs the suppression override 20a in the current control cycle.
- the suppression unit 20 suppresses the rate of increase in the value of the suppression override 20a output in step S34 in each control cycle by performing the above-described processing in step S32.
- the suppression unit 20 may suppress the increase amount by presetting the upper limit of the stored increase amount of the suppression override 20a in each control cycle.
- the suppression unit 20 suppresses the increase amount by adding to the stored suppression override 20a a value obtained by multiplying the difference between the stored suppression override 20a and the input override 15a by a constant discount rate. Good.
- the suppression unit 20 suppresses the increase width of the override 15a when the override 15a increases. Therefore, the robot control device 1A according to the second embodiment can suppress the increase rate of the operating speed of the robot 30 and reduce the possibility that the operating speed exceeds the speed limit. Since the robot control device 1A does not affect the command for making the operation of the robot 30 relatively slow, the operation of the robot 30 is made relatively slow when it is determined that the operating speed of the robot 30 exceeds the speed limit. It is possible to immediately output the command to perform, and it is possible to reduce the possibility that the operating speed of the robot 30 exceeds the speed limit.
- the override modifying unit 15 may obtain the modified overriding so that the amount of increase of the overriding 15a obtained by performing the modification in each control cycle is less than a predetermined value.
- the robot control device 1A does not have to include the suppression unit 20.
- the robot control device 1A can reduce the possibility that the operating speed of the robot 30 exceeds the speed limit by suppressing the increase width of the override.
- FIG. 10 is a block diagram for explaining the function of the robot control device 1B according to the third embodiment.
- the robot control device 1B includes a pre-smoothing command generation unit 11, a smoothing unit 12, a command output unit 13, a speed estimation unit 14A, and an override correction unit 15. That is, the robot control device 1B has a speed estimation unit 14A instead of the speed estimation unit 14 included in the robot control device 1 according to the first embodiment.
- the speed estimation unit 14A includes a first speed calculation unit 146 and a second speed calculation unit 147.
- the first speed calculation unit 146 included in the speed estimation unit 14A calculates the pre-smoothing command value movement amount 141a based on the pre-smoothing command 11a which is the basis of the post-smoothing command 12a output to the robot 30 in the future. To do.
- the second speed calculator 147 included in the speed estimator 14A calculates the smoothed command value movement amount 142a based on the smoothed command 12a output to the robot 30 in the future.
- FIG. 11 is a flowchart showing an operation procedure of the speed estimation unit 14A included in the robot control device 1B according to the third embodiment.
- the same steps as those shown in FIG. 7 are designated by the same reference numerals.
- the description of the steps described in the first embodiment will be omitted.
- step S42 the speed estimation unit 14A updates the pre-smoothing command 11a and the post-smoothing command 12a based on the current value of the override 15a. Then (S42), the operation of the speed estimating unit 14A proceeds to step S22.
- the process of step S42 is similar to the process performed by the pre-smoothing command generation unit 11 and the smoothing unit 12.
- the speed estimating unit 14A estimates the drive command to be output to the robot 30 in the future under the current override 15a in the current control cycle by executing the processes of steps S22 to S29, step S41, and step S42. Then, the operation speed of the robot 30 is estimated based on the estimated drive command. Therefore, in the processing from step S22 to step S29, step S41, and step S42, when the drive command based on the current override 15a is continuously output to the robot 30, the future operation speed of the robot 30 becomes the speed limit. In other words, it is a process for determining whether or not there is a possibility of exceeding.
- the process of step S41 is a process of considering the operation speed of the robot 30 according to a drive command output to the robot 30 a certain number of times from the current control period in the future control period.
- the number of times may be set in advance or may be the number of times the drive command is output to the robot 30 until the posture of the robot 30 reaches the target point.
- the number of times may be specified not to be a fixed number of times but to increase as the operation speed of the robot 30 increases.
- the speed estimation unit 14A determines, The operation speed of the robot 30 in the future can be estimated. Therefore, the robot control device 1B according to the third embodiment can adjust the operation speed of the robot 30 according to the estimated operation speed, and thus the operation speed of the robot 30 may exceed the speed limit. It can be reduced.
- FIG. 12 is a partial or all function of the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15 that the robot control device 1 according to the first embodiment has.
- FIG. 9 is a diagram showing a processor 81 when is realized by a processor 81. That is, some or all of the functions of the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15 execute the processor 81 that executes the program stored in the memory 82. May be realized by The processor 81 is a processing device, a computing device, a microprocessor, or a DSP (Digital Signal Processor).
- the memory 82 is also shown in FIG.
- the processor 81 When a part or all of the functions of the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15 are realized by the processor 81, the part or all of the functions are performed. Is realized by the processor 81 and software, firmware, or a combination of software and firmware. The software or firmware is described as a program and stored in the memory 82. The processor 81 reads a program stored in the memory 82 and executes the program to execute a part of the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15, or Realize all functions.
- the robot control device 1 When some or all of the functions of the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15 are realized by the processor 81, the robot control device 1 performs smoothing. It stores a program that results in the steps executed by part or all of the pre-ization command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15. It has a memory 82 for. The program stored in the memory 82 causes a computer to execute a procedure or method executed by a part or all of the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15. It can also be said to be something to be executed.
- the memory 82 is, for example, a nonvolatile or volatile semiconductor memory such as RAM, ROM, flash memory, EPROM (Erasable Programmable Read Only Memory), EEPROM (registered trademark) (Electrically Erasable Programmable Read-Only Memory), a magnetic disk, It is a flexible disk, an optical disk, a compact disk, a mini disk or a DVD (Digital Versatile Disk).
- the memory 82 may be the storage device 3 or may be included in the storage device 3.
- FIG. 13 shows that part or all of the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15 included in the robot control device 1 according to the first embodiment are processed. It is a figure which shows the processing circuit 91 when implement
- the processing circuit 91 is dedicated hardware.
- the processing circuit 91 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field-Programmable Gate Array), or a combination thereof. Is.
- the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15 some of the plurality of functions are realized by software or firmware. The rest of the plurality of functions may be realized by dedicated hardware. As described above, the plurality of functions of the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, and the override correction unit 15 are implemented by hardware, software, firmware, or a combination thereof. Can be realized.
- Some or all of the functions of the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, the override correction unit 15, and the suppression unit 20 included in the robot control device 1A according to the second embodiment. May be implemented by a processor executing a program stored in memory. In the memory, some or all steps executed by the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, the override correction unit 15, and the suppression unit 20 are executed as a result. It is a memory for storing a program to be executed.
- the processor is the same processor or CPU as the processor 81.
- a part or all of the functions of the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14, the override correction unit 15, and the suppression unit 20 may be realized by a processing circuit.
- the processing circuit is a processing circuit similar to the processing circuit 91.
- Some or all of the functions of the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14A, and the override correction unit 15 included in the robot control device 1B according to the third embodiment are stored in a memory. It may be realized by a processor that executes a stored program. In the memory, some or all steps executed by the pre-smoothing command generation unit 11, the smoothing unit 12, the command output unit 13, the speed estimation unit 14A, and the override correction unit 15 are executed as a result. Is a memory for storing the program.
- the processor is the same processor or CPU as the processor 81.
- the processing circuit is a processing circuit similar to the processing circuit 91.
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
Description
本発明は、ロボットを制御するロボット制御装置に関する。 The present invention relates to a robot control device that controls a robot.
近年、作業者とロボットとが安全柵で仕切られることなく作業空間を共有する人協調ロボットシステムの開発が進んでいる。人協調ロボットシステムでは、ロボットが人に衝突する可能性を下げるために、人が指定された範囲に侵入した場合にロボットの動作速度を決められた制限値以下にしてロボットを動作させる機能が必要とされている。従来、ロボットの動作周期毎にロボットに取り付けられたサーボモータの駆動角速度を算出し、算出された駆動角速度から求められるロボットの動作速度と制限速度との比率をもとにサーボモータの駆動角速度を低下させる技術が提案されている(例えば、特許文献1参照)。 In recent years, the development of a human-cooperative robot system in which the worker and the robot share a work space without being separated by a safety fence is in progress. In the human collaborative robot system, in order to reduce the possibility of the robot colliding with a person, when the person invades a specified range, it is necessary to have a function to operate the robot by setting the operation speed of the robot below a predetermined limit value. It is said that. Conventionally, the drive angular velocity of the servo motor attached to the robot is calculated for each operation cycle of the robot, and the drive angular velocity of the servo motor is calculated based on the ratio between the robot operation velocity and the speed limit obtained from the calculated drive angular velocity. Techniques for reducing the amount have been proposed (for example, see Patent Document 1).
しかしながら、従来の技術では、ロボットの動作速度を調整するために修正した角速度指令をサーボモータに直接出力するため、サーボモータの許容値を超える加速度及び振動が発生するという課題がある。 However, in the conventional technology, the corrected angular velocity command for adjusting the operation speed of the robot is directly output to the servo motor, so that there is a problem that acceleration and vibration exceeding the allowable value of the servo motor occur.
一般的に、ロボットの制御装置がサーボモータに指令を出力する場合、ロボットの滑らかな動作を実現するために、生成された指令に対して平滑化処理を行われる必要がある。サーボモータの初期角度と最終角度との変位量をもとにサーボモータに出力される角速度指令を台形パターンで生成する場合、角速度指令に対して平滑化処理が行われなければ、指令の開始点、終了点、及び台形の頂点部といった角速度指令の変化地点でサーボモータの許容値を超える加速度及び振動が発生する可能性がある。平滑化処理は、上記の許容値を超える加速度及び振動が発生することを抑制するための処理である。 Generally, when the robot controller outputs a command to the servo motor, it is necessary to perform smoothing processing on the generated command in order to realize a smooth motion of the robot. When the trapezoidal pattern is used to generate the angular velocity command output to the servo motor based on the displacement amount between the initial angle and the final angle of the servo motor, if the angular velocity command is not smoothed, the command start point , The end point, and the change point of the angular velocity command such as the apex of the trapezoid may cause acceleration and vibration exceeding the allowable value of the servo motor. The smoothing process is a process for suppressing the occurrence of acceleration and vibration that exceed the above allowable values.
平滑化処理を行ってロボットの動作速度を制限値以下に制御する場合、サーボモータに出力される実指令である平滑化処理後の指令をもとにロボットの動作速度を演算する必要がある。しかしながら、ロボットの動作速度を制限速度以下にするための角速度指令における値を低下させる処理は平滑化前の指令について行われる処理であるため、当該処理が反映されるタイミングが平滑化処理の分だけ遅れてロボットの動作速度が制限速度を超過する可能性があるという課題がある。 When performing the smoothing process to control the robot's operating speed below the limit value, it is necessary to calculate the robot's operating speed based on the command after the smoothing process, which is the actual command output to the servo motor. However, since the process of lowering the value of the angular velocity command for making the operation speed of the robot less than or equal to the speed limit is the process performed for the command before smoothing, the timing at which the process is reflected is only the smoothing process. There is a problem that the operation speed of the robot may exceed the speed limit with a delay.
本発明は、上記に鑑みてなされたものであって、ロボットを滑らかに動作させるために指令を平滑化する処理を行ってもロボットを制限値以内の動作速度で動作させるロボット制御装置を得ることを目的とする。 The present invention has been made in view of the above, and provides a robot control device that operates a robot at an operating speed within a limit value even if a process of smoothing a command is performed to smoothly operate the robot. With the goal.
上述した課題を解決し、目的を達成するために、本発明は、複数のアームを有するロボットを制御するロボット制御装置であって、ロボットが有する複数のアームを駆動するための指令である平滑化前指令を生成する平滑化前指令生成部と、平滑化前指令生成部によって生成された平滑化前指令を平滑化して平滑化後指令を生成する平滑化部と、平滑化部によって生成された平滑化後指令をロボットに出力する指令出力部とを有する。本発明は、平滑化前指令生成部によって生成された平滑化前指令と平滑化部によって生成された平滑化後指令とをもとにロボットに設けられた監視箇所の動作速度を推定する速度推定部と、速度推定部によって推定された動作速度とあらかじめ決められた制限速度とをもとに仮想時間修正率であるオーバーライドを修正するオーバーライド修正部とを更に有する。平滑化前指令生成部は、オーバーライド修正部によって得られたオーバーライドを用いて平滑化前指令を生成する。 In order to solve the above-mentioned problems and to achieve the object, the present invention is a robot control device for controlling a robot having a plurality of arms, wherein smoothing is a command for driving a plurality of arms of the robot. Pre-smoothing command generation unit that generates a pre-command, a smoothing unit that smoothes the pre-smoothing command generated by the pre-smoothing command generation unit to generate a post-smoothing command, and a smoothing unit And a command output unit that outputs a command after smoothing to the robot. The present invention is a speed estimation for estimating an operation speed of a monitoring point provided in a robot based on a pre-smoothing command generated by a pre-smoothing command generation unit and a post-smoothing command generated by a smoothing unit. And a override correction unit that corrects the override that is the virtual time correction rate based on the operation speed estimated by the speed estimation unit and the predetermined speed limit. The pre-smoothing command generation unit generates a pre-smoothing command using the override obtained by the override correction unit.
本発明によれば、ロボットを滑らかに動作させるために指令を平滑化する処理を行ってもロボットを制限値以内の動作速度で動作させることができるという効果が得られる。 According to the present invention, it is possible to obtain the effect that the robot can be operated at the operation speed within the limit value even if the process of smoothing the command is performed to smoothly operate the robot.
以下に、本発明の実施の形態にかかるロボット制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。 A robot controller according to an embodiment of the present invention will be described below in detail with reference to the drawings. The present invention is not limited to this embodiment.
本明細書において、ロボット姿勢は、ロボット手先位置及びロボット手先姿勢を意味する。ロボット手先位置は、3次元空間の基準となる任意の位置に設定された基準座標系におけるロボット手先の位置である。ロボット手先姿勢は、ロボット手先位置に定義されたツール座標系の座標からの座標変換で表すことができる。座標変換には、例えば、座標変換行列、オイラー角、クォータニオン又はロドリゲスパラメータが用いられる。本明細書では、ロボット姿勢をロボット手先の位置及び姿勢として説明するが、ロボット手先に設定された座標系からあらかじめ決められた座標変換を行って移動させた座標系においてはロボット手先と同様に位置及び姿勢を計算することが可能である。ロボット姿勢は、ロボット手先位置及びロボット手先姿勢に限定されない。 In this specification, the robot posture means a robot hand position and a robot hand posture. The robot hand position is the position of the robot hand in a reference coordinate system set at an arbitrary position serving as a reference in a three-dimensional space. The robot hand posture can be represented by coordinate conversion from the coordinates of the tool coordinate system defined at the robot hand position. For the coordinate conversion, for example, a coordinate conversion matrix, an Euler angle, a quaternion or a Rodrigues parameter is used. In this specification, the robot posture is described as the position and posture of the robot hand, but in the coordinate system moved by performing a predetermined coordinate conversion from the coordinate system set for the robot hand, the position is the same as that of the robot hand. And the attitude can be calculated. The robot posture is not limited to the robot hand position and the robot hand posture.
実施の形態1.
図1は、実施の形態1にかかるロボット制御装置1のハードウェア構成を示す図である。ロボット制御装置1は、複数のアームを有するロボットを制御する装置であって、ロボットを制御するために動作するCPU(Central Processing Unit)2と、CPU2が動作する際にCPU2によって用いられるデータを記憶する記憶装置3とを有する。CPU2は、プロセッサの一例である。記憶装置3は、ロボット制御装置1によって制御されるロボットの筺体モデルを示すデータと、ロボット姿勢を示すデータとを記憶している。記憶装置3の例は、ROM(Read Only Memory)、HDD(Hard Disk Drive)、又は、RAM(Random Access Memory)である。
FIG. 1 is a diagram showing a hardware configuration of the
ロボット制御装置1は、受信装置6に信号を送信する機能と入力装置7から送信された信号を受信する機能とを有するIO(Input Output)インターフェース4を更に有する。図1には、受信装置6及び入力装置7も示されている。IOインターフェース4は、ケーブル8によって受信装置6に接続されており、ケーブル9によって入力装置7に接続されている。受信装置6は、ロボット制御装置1から送信された信号を受信する。受信装置6の例は、ロボット制御装置1によって制御されるロボットの動作の状態をロボット制御装置1の外部に報知するランプ又はブザーである。入力装置7は、ロボット制御装置1に信号を送信する。入力装置7の例は、ライトカーテン又はエリアセンサである。ロボット制御装置1は、CPU2、記憶装置3及びIOインターフェース4を相互に接続するバス5を更に有する。
The
図2は、実施の形態1にかかるロボット制御装置1の機能を説明するためのブロック図である。ロボット制御装置1は、ロボット30を制御する装置である。図2には、ロボット30も示されている。ロボット30は、複数のアームと、複数のアームの各々の先端に設けられたロボット手先とを有する。各アームは、回転することができる状態でロボット30の本体に接続されている。
FIG. 2 is a block diagram for explaining the function of the
各アームの本体との接続部は、関節部と定義される。各関節部には、関節部の角度を変更させるための駆動装置と、関節部の回転角を計測する関節角度検出器とが取り付けられている。駆動装置は、関節部を駆動する装置であって、電動モータを有する。電動モータの例は、サーボモータ又はステッピングモータである。関節角度検出器は、画像センサ及びエンコーダを有する。駆動装置が各関節部の角度を変更することにより、ロボット30の各アームの位置及び姿勢は変化する。
The connection part of each arm with the main body is defined as a joint part. A drive device for changing the angle of the joint and a joint angle detector for measuring the rotation angle of the joint are attached to each joint. The drive device is a device that drives the joint portion and has an electric motor. Examples of electric motors are servomotors or stepping motors. The joint angle detector has an image sensor and an encoder. The position and orientation of each arm of the
ロボット制御装置1は、あらかじめ決められた制御周期でロボット30にロボット動作指令1aを出力する。ロボット駆動指令1aは、ロボット30の各関節部に設けられた駆動装置に出力される関節角度指令であって、ロボット30が有する複数のアームの動作を制御する指令である。
The
ロボット制御装置1は、ロボット30が有する複数のアームを駆動するための指令である平滑化前指令11aを生成する平滑化前指令生成部11を有する。平滑化前指令生成部11の詳細については、後に図4及び図5を用いて更に説明する。
The
ロボット制御装置1は、平滑化前指令生成部11によって生成された平滑化前指令11aを平滑化して平滑化後指令12aを生成する平滑化部12を更に有する。平滑化後指令12aは、ロボット駆動指令1aである。平滑化部12は、平滑化前指令11aに含まれる値の変化の平均を用いて平滑化後指令12aを生成してもよいし、N次遅れ要素に対応するフィルタを用いて平滑化後指令12aを生成してもよい。Nは、1以上の整数である。
The
ロボット制御装置1は、平滑化部12によって生成された平滑化後指令12aをロボット30に出力する指令出力部13を更に有する。指令出力部13がロボット30に出力する平滑化後指令12aは、ロボット30を駆動するためのロボット駆動指令1aである。
The
ロボット制御装置1は、平滑化前指令生成部11によって生成された平滑化前指令11aと平滑化部12によって生成された平滑化後指令12aとをもとにロボット30に設けられた監視箇所の動作速度を推定する速度推定部14を更に有する。監視箇所はロボット30にあらかじめ設定された場所であって、監視箇所の個数は1個以上である。速度推定部14によって推定された動作速度は、代表監視速度14aである。速度推定部14の詳細については、後に図6及び図7を用いて更に説明する。
The
ロボット制御装置1は、速度推定部14によって推定された代表監視速度14aとあらかじめ決められた制限速度とをもとに仮想時間修正率であるオーバーライドを修正するオーバーライド修正部15を更に有する。制限速度を示すデータは、図1の記憶装置3に記憶されている。オーバーライド修正部15は、修正を行うことによって修正後のオーバーライド15aを得る。
The
オーバーライド15aは、ロボット30の目標動作速度を代表監視速度14aで除することによって得られる値であって、0から1までの値である。オーバーライド15aを「OVRD」と表し、ロボット30の目標動作速度を「Vlim」と表すと、オーバーライド15aは下記の式(1)によって得られる。
OVRD=min(1,max(0,Vlim/V)) ・・・(1)
The
OVRD=min(1,max(0,Vlim/V)) (1)
ロボット30の目標動作速度は、入力装置7からロボット制御装置1に入力されて記憶装置3に記憶されてもよいし、記憶装置3にあらかじめ記憶されていてもよい。記憶装置3が複数の目標動作速度を記憶していて、ロボット30の動作の状態により、又は、入力装置7がロボット制御装置1に送信する信号により、複数の目標動作速度のなかからひとつの目標動作速度が選択されてもよい。
The target operation speed of the
平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15の機能は、CPU2によって実現される。CPU2は、記憶装置3に記憶されたプログラムを読み出して実行することにより、平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15の機能を実現する。記憶装置3は、平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15によって実行されるステップが結果的に実行されることになるプログラムを格納するための装置でもある。記憶装置3に格納されるプログラムは、平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15が実行する手順又は方法をCPU2に実行させるものである。
The functions of the pre-smoothing
平滑化前指令11aは平滑化前指令値を含み、平滑化後指令12aは平滑化後指令値を含む。本明細書において、平滑化前指令値及び平滑化後指令値は、ロボット30の各関節部の角度指令値及び角速度指令値である。毎制御周期においてロボット制御装置1がロボット30に出力するロボット駆動指令1aは、角度指令値を含む。本明細書では、平滑化前の角度指令値はθ_iと表され、平滑化前の角速度指令値はω_iと表され、平滑化後の角度指令値はφ_iと表され、平滑化後の角速度指令値はψ_iと表される場合がある。添え字iは、各関節部を識別する番号である。
The
図3は、実施の形態1にかかるロボット制御装置1の動作の手順を示すフローチャートである。CPU2は、記憶装置3にあらかじめ記憶されているプログラムを処理することにより、動作指令が存在するか否かを判断する(S1)。
FIG. 3 is a flowchart showing an operation procedure of the
CPU2は、動作指令が存在しないと判断した場合(S1でNo)、動作を開始せず待機する。つまり、CPU2は、動作指令が存在しないと判断した場合(S1でNo)、ステップS1の処理を繰り返し行う。CPU2は、動作指令が存在すると判断した場合(S1でYes)、現在のロボット姿勢の取得処理を行う(S2)。
When the
CPU2は、現在のロボット姿勢を示すデータを取得するために、ロボット30の各関節部に取り付けられた関節角度検出器から関節角を示すデータを取得する。その後、CPU2は、記憶装置3に記憶されているロボット30の筐体モデルを示すデータを用いてロボット30の関節角度からロボット手先の位置及び姿勢を演算する。以下では、記憶装置3に記憶されているロボット30の筐体モデルを示すデータを用いてロボット30の関節角度からロボット手先の位置及び姿勢を演算することは、「順変換」と記載される。
The
その後、CPU2は、目標となるロボット姿勢の取得処理を行う(S3)。次に、CPU2は、仮想時間を初期化する(S4)。ステップS2からステップS4までの各処理が行われる順番は、限定されない。
After that, the
その後、平滑化前指令生成部11は、ロボット30を現在姿勢から目標姿勢へ動作させるための平滑化前指令11aを制御周期毎に更新する(S5)。ステップS5の処理において、平滑化前指令生成部11は、例えば、ステップS2の処理と同様にロボット30の各関節部に取り付けられた関節角度検出器から関節角を示すデータを取得して順変換することで毎制御周期のロボット30の現在姿勢を示すデータを取得する。平滑化前指令生成部11は、毎制御周期で更新された姿勢データを記憶しておき、1周期前の姿勢データを次制御周期における現在姿勢を示すデータとして用いてもよい。
After that, the pre-smoothing
その後、平滑化部12は平滑化前指令11aを平滑化して平滑化後指令12aを生成する(S6)。次に、速度推定部14は監視箇所の動作速度を推定する(S7)。次に、オーバーライド修正部15はオーバーライドを修正する(S8)。次に、指令出力部13は駆動指令をロボット30に出力する(S9)。駆動指令は、平滑化部12によって生成された平滑化後指令12aである。
After that, the smoothing unit 12 smoothes the
その後、CPU2は、制御周期毎にロボット30の現在姿勢が目標姿勢に到達したかを判断し(S10)、現在姿勢が目標姿勢に到達していると判断した場合(S10でYes)、動作を終了する。CPU2が、ロボット30の現在姿勢が目標姿勢に到達していないと判断した場合(S10でNo)、ロボット制御装置1の動作はステップS5に移行する。
After that, the
図4は、実施の形態1にかかるロボット制御装置1が有する平滑化前指令生成部11の構成を示す図である。平滑化前指令生成部11は、オーバーライド15aをもとに、実際の制御時間とは別の仮想時間111aを演算する仮想時間計算部111を有する。平滑化前指令生成部11は、ロボット30の動作時の加減速度及び最高速度の動作パラメータ112aを記憶装置3から取得する動作計画部112を更に有する。平滑化前指令生成部11は、仮想時間計算部111によって得られた仮想時間111aをもとに、動作計画部112によって取得された動作パラメータ112aを用いて、平滑化前指令11aを生成する指令値更新部113を更に有する。
FIG. 4 is a diagram showing a configuration of the pre-smoothing
動作計画部112は、記憶装置3にあらかじめ記憶されている動作パラメータ112aを記憶装置3から取得して指令値更新部113に出力する。動作パラメータ112aは、各関節部が現在角度から目標角度に動作するまでの角速度パターンを生成するための角加減速度及び最大角速度のデータを含む。記憶装置3が動作パラメータ112aについての複数のデータの組を記憶している場合、動作計画部112は、記憶装置3に記憶されている複数のデータの組から、ロボット30の動作状況に対応した動作パラメータ112aを選択して指令値更新部113に出力してもよい。
The
図5は、実施の形態1にかかるロボット制御装置1が有する平滑化前指令生成部11の動作の手順を示すフローチャートである。仮想時間計算部111は、仮想時間修正率であるオーバーライド15aをもとに仮想時間111aを更新する(S11)。以下では、オーバーライド15aは「OVRD」と表される場合があり、仮想時間は「KT」と表される場合がある。
FIG. 5 is a flowchart showing an operation procedure of the pre-smoothing
具体的には、仮想時間計算部111は、下記の式(2)を用いて仮想時間を更新する。
KT(k)=KT(k-1)+OVRD(k)×ΔT ・・・(2)
ΔTは制御周期であり、KT(k)はkステップ時の仮想時間を表している。OVRDは、0から1までの実数である。
Specifically, the virtual
KT(k)=KT(k−1)+OVRD(k)×ΔT (2)
ΔT is a control cycle, and KT(k) represents virtual time at k steps. OVRD is a real number from 0 to 1.
次に、指令値更新部113は、仮想時間KT(k)をもとに、指令値を更新するか否かを判定する(S12)。指令値更新部113は、仮想時間KT(k)がj回目の指令値更新時間T(j)を超過する場合、指令値を更新すると判定し(S12でYes)、仮想時間KT(k)がj回目の指令値更新時間T(j)を超過しない場合、指令値を更新しないと判定する(S12でNo)。指令値更新部113は、指令値を更新しないと判定した場合(S12でNo)、前回出力した指令値を継続して出力する。指令値更新部113が指令値を更新しないと判定した場合(S12でNo)、平滑化前指令生成部11の動作は終了する。指令値更新部113は、指令値を更新すると判定した場合(S12でYes)、指令値更新時間を下記の式(3)を用いて更新する(S13)。
T(j+1)=T(j)+ΔT ・・・(3)
Next, the command
T(j+1)=T(j)+ΔT (3)
指令値更新部113は、ステップS13の処理を行った後、平滑化前の各関節部の角度指令及び角速度指令である平滑化前指令11aを生成する(S14)。つまり、ステップS14において、指令値更新部113は平滑化前指令11aを更新して新たな平滑化前指令11aを生成する。例えば、指令値更新部113は、平滑化前指令11aを更新する際、下記の式(4)を用いて角速度指令値ω_iを更新した後、更新することによって得られた角速度指令値ω_iを用いて角度指令値θ_iを更新する。
ω_i(k)=min(ωm_i,ωa_i(k),ωb_i(k)) ・・・(4)
After performing the process of step S13, the command
ω_i(k)=min(ωm_i, ωa_i(k), ωb_i(k)) (4)
ωm_iは関節部iにおける最大角速度指令値であり、ωa_i(k)は関節部iの現在の角速度から角速度増加量α_iだけ加速した際の角速度指令値である。ωb_i(k)は、角速度減少量β_iにより角速度が減速して停止した際、当該過程において変化した角度量を、目標角度θf_iから現在の角度指令値θ_i(k)を引いた残移動量Δθ_i(k)=abs(θf_i-θ_i(k))とするための角速度である。 Ωm_i is the maximum angular velocity command value at the joint i, and ωa_i(k) is the angular velocity command value when the joint i is accelerated by the angular velocity increase amount α_i. ωb_i(k) is the remaining movement amount Δθ_i( which is obtained by subtracting the current angle command value θ_i(k) from the target angle θf_i, when the angular velocity is decelerated by the angular velocity decrease amount β_i and stops. k)=abs(θf_i−θ_i(k)).
ωb_i(k)は、下記の式(5)によって計算される。
ωb_i(k)=sqrt(2×Δθ_i(k)×β_i) ・・・(5)
各関節部の角度指令値は、更新された角速度指令値をもとに、下記の式(6)によって更新される。
θ_i(k)=θ_i(k-1)+ω_i(k)×ΔT ・・・(6)
ωb_i(k) is calculated by the following equation (5).
ωb_i(k)=sqrt(2×Δθ_i(k)×β_i) (5)
The angle command value of each joint is updated by the following equation (6) based on the updated angular velocity command value.
θ_i(k)=θ_i(k−1)+ω_i(k)×ΔT (6)
図6は、実施の形態1にかかるロボット制御装置1が有する速度推定部14の構成を示す図である。速度推定部14は、平滑化前の各関節部の角度指令値を含む平滑化前指令11aと、平滑化後の各関節部の角度指令値を含む平滑化後指令12aと、オーバーライド15aとを受け取って、1箇所以上の監視箇所の動作速度を推定し、1箇所以上の監視箇所の動作速度の代表となる代表監視速度14aを出力する。監視箇所は、監視点と記載される場合がある。
FIG. 6 is a diagram showing a configuration of the
速度推定部14は、平滑化前指令11aを受け取って、毎制御周期で更新される平滑化前の各関節角指令値の差分(θ_i(k)-θ_i(k-1))を平滑化前指令値移動量141aとして取得する第1移動量取得部141を有する。速度推定部14は、平滑化後指令12aを受け取って、毎制御周期で更新される平滑化後の各関節角指令値の差分(φ_i(k)-φ_i(k-1))を平滑化後指令値移動量142aとして取得する第2移動量取得部142を更に有する。
The
速度推定部14は、平滑化前指令値移動量141a及び平滑化後指令12aを受け取って、平滑化後関節角指令値φ_i(k)に平滑化前指令値移動量(θ_i(k)-θ_i(k-1))を加えた関節角指令値に対応する第1監視点位置を演算する第1監視点位置演算部143を更に有する。以下では、第1監視点位置は「第1監視点位置P_A143a」と記載される場合がある。速度推定部14は、平滑化後指令12a及び平滑化後指令値移動量142aを受け取って、平滑化後関節角指令値φ_i(k)に平滑化後指令値移動量(φ_i(k)-φ_i(k-1))を加えた関節角指令値に対応する第2監視点位置を演算する第2監視点位置演算部144を更に有する。以下では、第2監視点位置は「第2監視点位置P_B144a」と記載される場合がある。速度推定部14は、平滑化後指令12aを受け取って、平滑化後関節角指令値φ_i(k)に対応する第3監視点位置を演算する第3監視点位置演算部145を更に有する。以下では、第3監視点位置は「第3監視点位置P_C145a」と記載される場合がある。
The
速度推定部14は、第1監視点位置P_A143aの値と第3監視点位置P_C145aの値との差を制御周期ΔTで除すことによって得られる第1推定速度146aを演算する第1速度演算部146を更に有する。つまり、第1速度演算部146は、平滑化後指令12aをもとに演算される監視箇所の位置と、平滑化前指令11aをもとに演算される監視箇所の移動量である平滑化前指令値移動量141aとをもとに、監視箇所の第1推定速度146aを演算する。例えば、第1速度演算部146は、1周期前にロボット30に出力された平滑化後指令12aのもとになった平滑化前指令11aをもとに平滑化前指令値移動量141aを演算し、演算によって得られた平滑化前指令値移動量141aを用いて第1推定速度146aを演算する。第1推定速度146aは、動作の推定速度である。
The
速度推定部14は、第2監視点位置P_B144aの値と第3監視点位置P_C145aの値との差を制御周期ΔTで除すことによって得られる第2推定速度147aを演算する第2速度演算部147を更に有する。つまり、第2速度演算部147は、平滑化後指令12aをもとに演算される監視箇所の位置と、平滑化後指令12aをもとに演算される監視箇所の移動量である平滑化後指令値移動量142aとをもとに、監視箇所の第2推定速度147aを演算する。例えば、第2速度演算部147は、1周期前にロボット30に出力された平滑化後指令12aをもとに平滑化後指令値移動量142aを演算し、演算によって得られた平滑化後指令値移動量142aを用いて第2推定速度147aを演算する。第2推定速度147aは、動作の推定速度である。
The
速度推定部14は、第1推定速度146a、第2推定速度147a及びオーバーライド15aを受け取って、監視箇所における代表監視速度14aを演算する代表速度演算部148を更に有する。つまり、代表速度演算部148は、第1推定速度146a及び第2推定速度147aをもとに監視箇所の速度を推定する。具体的には、代表速度演算部148は、第1推定速度146aと第2推定速度147aとのうちの大きい方の推定速度を監視箇所の動作速度と推定する。
The
図7は、実施の形態1にかかるロボット制御装置1が有する速度推定部14の動作の手順を示すフローチャートである。CPU2は、代表監視速度を初期化する(S21)。代表監視速度は、「代表監視速度V」と表される場合がある。具体的には、ステップS21より後に第1推定速度と第2推定速度とが比較されるので、CPU2は、代表監視速度を0に初期化する。その後、第1移動量取得部141は平滑化前指令値移動量141aを演算し、第2移動量取得部142は平滑化後指令値移動量142aを演算する(S22)。平滑化前指令値移動量141aと平滑化後指令値移動量142aとは、どちらが先に計算されてもよい。
FIG. 7 is a flowchart showing an operation procedure of the
ロボット制御装置1は、ロボット30の動作速度を監視するために、ロボット30において、1個以上の監視箇所を設定する。監視箇所は、ロボット30の筐体の上のあらかじめ決められた箇所か、当該箇所からあらかじめ決められた向きにあらかじめ決められた距離離れた箇所であって、ロボット30の関節部の動作に対応して移動する。監視箇所は、ロボット30の手先位置であってもよいし、当該手先位置から指定された向きにあらかじめ決められた距離離れた位置であってもよい。監視箇所を示すデータは、ロボット30の筐体モデルを示すデータと同様に記憶装置3によって記憶されている。ロボット制御装置1は、ロボット姿勢についての処理と同様の処理を行うことにより、ロボット30の各関節部の角度から監視箇所の位置を演算することができる。
The
ステップS22の処理が行われた後、第1監視点位置演算部143、第2監視点位置演算部144及び第3監視点位置演算部145の各々は、ロボット30の動作速度を監視するために、1個の監視箇所を選択する(S23)。複数の監視箇所が設定されている場合、第1監視点位置演算部143、第2監視点位置演算部144及び第3監視点位置演算部145の各々は、複数の監視箇所のなかから1個の監視箇所を選択する。複数の監視箇所が設定されている場合、第1監視点位置演算部143、第2監視点位置演算部144及び第3監視点位置演算部145の各々は、監視箇所を示すデータを含むリストからランダムに1個の監視箇所を選択してもよいし、あらかじめ決められている規則にしたがって1個の監視箇所を選択してもよい。
After the process of step S22 is performed, each of the first monitoring point
その後、第1監視点位置演算部143は第1監視点位置P_A143aを演算し、第2監視点位置演算部144は第2監視点位置P_B144aを演算し、第3監視点位置演算部145は第3監視点位置P_C145aを演算する(S24)。第1監視点位置P_A143aは、選択された監視箇所について、平滑化後関節角指令値φ_i(k)に平滑化前の各関節角指令値の差分である平滑化前指令値移動量(θ_i(k)-θ_i(k-1))を加えた関節角度を順変換することにより演算される。第2監視点位置P_B144aは、選択された監視箇所について、平滑化後関節角指令値φ_i(k)に平滑化後の各関節角指令値の差分である平滑化後指令値移動量(φ_i(k)-φ_i(k-1))を加えた関節角度を順変換することにより演算される。第3監視点位置P_C145aは、選択された監視箇所について、平滑化後関節角指令値φ_i(k)を順変換することにより演算される。第1監視点位置P_A143a、第2監視点位置P_B144a及び第3監視点位置P_C145aの演算の順序は、どのような順序であってもよい。
Then, the first monitoring point
次に、第1速度演算部146は第1推定速度を演算し、第2速度演算部147は第2推定速度を演算する(S25)。第1推定速度は「第1推定速度V1」と表され、第2推定速度は「第2推定速度V2」と表される場合がある。第1推定速度V1と第2推定速度V2とは、いずれが先に演算されてもよい。第1推定速度V1は下記の式(7)によって計算され、第2推定速度V2は下記の式(8)によって計算される。
V1=norm(P_A-P_C)/ΔT/OVRD ・・・(7)
V2=norm(P_B-P_C)/ΔT/OVRD ・・・(8)
第1監視点位置P_A143a、第2監視点位置P_B144a及び第3監視点位置P_C145aはいずれも、3次元の位置である。norm演算子は、配列のユークリッドノルムを計算する。第1推定速度V1及び第2推定速度V2の各々は、オーバーライド15aの値で除することにより、オーバーライドが1である場合における速度に換算することができる。
Next, the first speed calculation unit 146 calculates the first estimated speed, and the second speed calculation unit 147 calculates the second estimated speed (S25). The first estimated speed may be represented as “first estimated speed V1” and the second estimated speed may be represented as “second estimated speed V2”. Either the first estimated speed V1 or the second estimated speed V2 may be calculated first. The first estimated speed V1 is calculated by the following equation (7), and the second estimated speed V2 is calculated by the following equation (8).
V1=norm(P_AP_C)/ΔT/OVRD (7)
V2=norm(P_B-P_C)/ΔT/OVRD (8)
The first monitoring point position P_A143a, the second monitoring point position P_B144a, and the third monitoring point position P_C145a are all three-dimensional positions. The norm operator calculates the Euclidean norm of an array. Each of the first estimated speed V1 and the second estimated speed V2 can be converted into a speed when the override is 1 by dividing by the value of the
代表速度演算部148は、第1推定速度V1及び第2推定速度V2が演算された後、第1推定速度V1と第2推定速度V2とのうちのいずれが大きいのかを判定する(S26)。代表速度演算部148は、第1推定速度V1が第2推定速度V2以上であると判定した場合(S26でYes)、代表監視速度VをV=max(V,V1)で更新する(S27)。つまり、ステップS27において、代表速度演算部148は第1推定速度V1を代表監視速度Vとする。代表速度演算部148は、第1推定速度V1が第2推定速度V2より小さいと判定した場合(S26でNo)、代表監視速度VをV=max(V,V2)で更新する(S28)。つまり、ステップS28において、代表速度演算部148は第2推定速度V2を代表監視速度Vとする。ステップS21において代表監視速度Vが初期化されているため、一度目の処理では代表監視速度Vは第2推定速度V2となる。
After the first estimated speed V1 and the second estimated speed V2 are calculated, the representative
その後、代表速度演算部148は、設定されている監視箇所のすべてについてステップS24からステップS28までの処理が行われたか否かを判定する(S29)。代表速度演算部148がすべての監視箇所についてステップS24からステップS28までの処理が行われていないと判定した場合(S29でNo)、速度推定部14の動作は、ステップS23に移行する。ステップS23において、第1監視点位置演算部143、第2監視点位置演算部B144及び第3監視点位置演算部145の各々は、すべての監視箇所から前回までのステップS23で選択された監視箇所を除いた監視箇所のなかから1個の監視箇所を選択する。ステップS23の処理が行われた後、上述のステップS24からステップS28までの処理が行われる。
Thereafter, the representative
代表速度演算部148は、すべての監視箇所についてステップS24からステップS28までの処理が行われたと判定した場合(S29でYes)、現在の代表監視速度Vを出力する(S30)。代表速度演算部148が現在の代表監視速度Vを出力することにより、速度推定部14の動作は終了する。
When the representative
上述の通り、実施の形態1にかかるロボット制御装置1は、平滑化前指令生成部11によって生成された平滑化前指令11aと平滑化部12によって生成された平滑化後指令12aとをもとにロボット30に設けられた監視箇所の速度を推定する速度推定部14を有する。つまり、ロボット制御装置1は、ロボット30の動作速度を調整するために推定する速度を、実際にロボット30に出力する駆動指令の平滑化前の指令を用いて推測する。
As described above, the
そのため、ロボット制御装置1は、実際に検出されるロボット30の動作速度よりも平滑化処理にかかる時間分だけ近い未来の動作速度を推定することができ、推定した動作速度を利用してロボット30の動作速度を調整することができる。つまり、ロボット制御装置1は、近い未来におけるロボット30の動作速度の増加を推測することができる。
Therefore, the
ロボット制御装置1は、速度推定部14によって推定された代表監視速度14aとあらかじめ決められた制限速度とをもとに仮想時間修正率であるオーバーライドを修正するオーバーライド修正部15を有する。そのため、ロボット制御装置1は、ロボット30に平滑化後の滑らかな駆動指令を出力すると共に、ロボット30の動作速度が制限速度を超過する可能性を抑制することができる。
The
すなわち、ロボット制御装置1は、ロボット30を滑らかに動作させるために指令を平滑化する処理を行ってもロボット30を制限値以内の動作速度で動作させることができる。更に言うと、ロボット制御装置1は、平滑化前指令11aと平滑化後指令12aとをもとにロボット30に設けられた監視箇所の動作速度を推定する。そのため、ロボット制御装置1は、ロボット30の各関節部に取り付けられた駆動装置が有する電動モータの許容値を超える加速度又は振動を発生させることなく、監視箇所の動作速度を制限速度以内に抑えてロボット30を動作させることができる。
That is, the
実施の形態2.
図8は、実施の形態2にかかるロボット制御装置1Aの機能を説明するためのブロック図である。図8では、図2に示されている構成要素と同一の構成要素には同一の符号が付与されている。実施の形態2では、実施の形態1において説明した構成要素の説明を省略する。ロボット制御装置1Aは、平滑化前指令生成部11と、平滑化部12と、指令出力部13と、速度推定部14と、オーバーライド修正部15とを有するとともに、オーバーライド修正部15によって得られたオーバーライド15aを受け取って抑制オーバーライド20aを出力する抑制部20を有する。平滑化前指令生成部11は、抑制部20から出力された抑制オーバーライド20aを用いて平滑化前指令11aを生成する。
FIG. 8 is a block diagram for explaining the function of the
図9は、実施の形態2にかかるロボット制御装置1Aが有する抑制部20の動作の手順を示すフローチャートである。抑制部20は、オーバーライド修正部15から出力されたオーバーライド15aを取得する(S31)。抑制部20は、取得したオーバーライド15aに対して抑制処理を行い(S32)、抑制オーバーライド20aを生成する。抑制処理の詳細については、後述する。抑制部20は、生成した抑制オーバーライド20aを記憶し(S33)、その後、抑制オーバーライド20aを平滑化前指令生成部11に出力する(S34)。なお、抑制部20は情報を記憶するためのメモリを有する。
FIG. 9 is a flowchart showing an operation procedure of the
次に、ステップS32において行われる抑制処理について説明する。抑制部20は、取得したオーバーライド15aの値が1つ前の制御周期で記憶した抑制オーバーライド20aの値より大きいか否かを判断する。抑制部20は、取得したオーバーライド15aの値が1つ前の制御周期で記憶した抑制オーバーライド20aの値より大きいと判断した場合、現在の制御周期における抑制オーバーライド20aの値を、取得したオーバーライド15aの値と記憶している抑制オーバーライド20aの値との間の値となるように設定し、設定後の抑制オーバーライド20aを出力する。抑制部20は、取得したオーバーライド15aの値が1つ前の制御周期で記憶した抑制オーバーライド20aの値以下であると判断した場合、現在の制御周期における抑制オーバーライド20aを出力する。
Next, the suppression process performed in step S32 will be described. The
抑制部20は、ステップS32において上述の処理を行うことにより、ステップS34で出力する抑制オーバーライド20aの毎制御周期における値の増加率を抑える。抑制部20は、記憶した抑制オーバーライド20aの毎制御周期における増加量の上限をあらかじめ設定することにより増加量を抑えてもよい。抑制部20は、記憶している抑制オーバーライド20aと入力されるオーバーライド15aとの差に対して一定の割引率を乗じた値を記憶している抑制オーバーライド20aに加えることにより増加量を抑えてもよい。
The
実施の形態2では、抑制部20は、オーバーライド15aが増加する場合にオーバーライド15aの増加幅を抑制する。そのため、実施の形態2にかかるロボット制御装置1Aは、ロボット30の動作速度の増加率を抑えて動作速度が制限速度を超過する可能性を低減することができる。ロボット制御装置1Aは、ロボット30の動作を比較的低速にする際の指令に影響を与えないため、ロボット30の動作速度が制限速度を超過すると判断した場合にロボット30の動作を比較的低速にする指令を即座に出力することができ、ロボット30の動作速度が制限速度を超過する可能性を低減することができる。
In the second embodiment, the
なお、オーバーライド修正部15は、修正を行うことによって得られるオーバーライド15aの毎制御周期における増加量があらかじめ決められた値未満となるように修正後のオーバーライドを得てもよい。その場合、ロボット制御装置1Aは抑制部20を有しなくてもよい。その場合、ロボット制御装置1Aは、オーバーライドの増加幅を抑制することにより、ロボット30の動作速度が制限速度を超過する可能性を低減することができる。
Note that the
実施の形態3.
図10は、実施の形態3にかかるロボット制御装置1Bの機能を説明するためのブロック図である。図10では、図2に示されている構成要素と同一の構成要素には同一の符号が付与されている。実施の形態3では、実施の形態1において説明した構成要素の説明を省略する。ロボット制御装置1Bは、平滑化前指令生成部11と、平滑化部12と、指令出力部13と、速度推定部14Aと、オーバーライド修正部15とを有する。つまり、ロボット制御装置1Bは、実施の形態1にかかるロボット制御装置1が有する速度推定部14の代わりに速度推定部14Aを有する。
Embodiment 3.
FIG. 10 is a block diagram for explaining the function of the
速度推定部14Aは、速度推定部14と同様に、第1速度演算部146及び第2速度演算部147を有する。速度推定部14Aが有する第1速度演算部146は、ロボット30に将来出力される平滑化後指令12aのもとになる平滑化前指令11aをもとに平滑化前指令値移動量141aを演算する。速度推定部14Aが有する第2速度演算部147は、ロボット30に将来出力される平滑化後指令12aをもとに平滑化後指令値移動量142aを演算する。
Like the
図11は、実施の形態3にかかるロボット制御装置1Bが有する速度推定部14Aの動作の手順を示すフローチャートである。図11では、図7に示されているステップと同一のステップには同一の符号が付与されている。実施の形態3では、実施の形態1において説明したステップの説明を省略する。速度推定部14Aは、図7を用いて説明したステップS29の処理を実行した後、ステップS22からステップS29までの処理を繰り返し実行するか否かを判定する(S41)。
FIG. 11 is a flowchart showing an operation procedure of the
速度推定部14Aは、ステップS22からステップS29までの処理を繰り返し実行しないと判定した場合(S41でNo)、現在の代表監視速度Vを出力する(S30)。速度推定部14Aは、現在の代表監視速度Vを出力すると、動作を終了する。速度推定部14Aは、ステップS22からステップS29までの処理を繰り返し実行すると判定した場合(S41でYes)、現在のオーバーライド15aの値をもとに平滑化前指令11a及び平滑化後指令12aを更新し(S42)、速度推定部14Aの動作はステップS22に移行する。なお、ステップS42の処理は、平滑化前指令生成部11及び平滑化部12が行う処理と同様の処理である。
When it is determined that the processing from step S22 to step S29 is not repeatedly executed (No in S41), the
速度推定部14Aは、ステップS22からステップS29、ステップS41及びステップS42の処理を実行することによって、現在の制御周期において、現在のオーバーライド15aのもとにロボット30に将来出力される駆動指令を推定し、推定した駆動指令をもとにロボット30の動作速度を推定する。そのため、ステップS22からステップS29、ステップS41及びステップS42の処理は、現在のオーバーライド15aをもとにする駆動指令をロボット30に継続して出力した場合にロボット30の将来の動作速度が制限速度を超過する可能性があるか否かを判断するための処理であると換言することができる。
The
ステップS41の処理は、現在の制御周期からある回数だけ将来の制御周期でロボット30に出力される駆動指令によるロボット30の動作速度を考慮する処理である。当該回数は、あらかじめ設定されていてもよいし、ロボット30の姿勢が目標地点まで到達するまでにロボット30に出力される駆動指令の出力回数であってもよい。当該回数は、一定の回数ではなく、ロボット30の動作速度が増加するにしたがって増加するように指定されてもよい。
The process of step S41 is a process of considering the operation speed of the
速度推定部14Aは、現在のオーバーライド15aをもとにする駆動指令がロボット30に継続して出力されると仮定した場合において、ロボット30に将来出力されることになる駆動指令をもとに、将来のロボット30の動作速度を推定することができる。そのため、実施の形態3にかかるロボット制御装置1Bは、推定された動作速度に対応してロボット30の動作速度を調整することができ、ひいてはロボット30の動作速度が制限速度を超過する可能性を低減することができる。
Based on the drive command to be output to the
図12は、実施の形態1にかかるロボット制御装置1が有する平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15の一部又は全部の機能がプロセッサ81によって実現される場合のプロセッサ81を示す図である。つまり、平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15の一部又は全部の機能は、メモリ82に格納されるプログラムを実行するプロセッサ81によって実現されてもよい。プロセッサ81は、処理装置、演算装置、マイクロプロセッサ、又はDSP(Digital Signal Processor)である。図12には、メモリ82も示されている。
FIG. 12 is a partial or all function of the pre-smoothing
平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15の一部又は全部の機能がプロセッサ81によって実現される場合、当該一部又は全部の機能は、プロセッサ81と、ソフトウェア、ファームウェア、又は、ソフトウェア及びファームウェアとの組み合わせにより実現される。ソフトウェア又はファームウェアは、プログラムとして記述され、メモリ82に格納される。プロセッサ81は、メモリ82に記憶されたプログラムを読み出して実行することにより、平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15の一部又は全部の機能を実現する。
When a part or all of the functions of the pre-smoothing
平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15の一部又は全部の機能がプロセッサ81によって実現される場合、ロボット制御装置1は、平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15の一部又は全部によって実行されるステップが結果的に実行されることになるプログラムを格納するためのメモリ82を有する。メモリ82に格納されるプログラムは、平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15の一部又は全部が実行する手順又は方法をコンピュータに実行させるものであるともいえる。
When some or all of the functions of the pre-smoothing
メモリ82は、例えば、RAM、ROM、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable Programmable Read-Only Memory)等の不揮発性もしくは揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク又はDVD(Digital Versatile Disk)等である。メモリ82は、記憶装置3であってもよいし、記憶装置3に含まれていてもよい。 The memory 82 is, for example, a nonvolatile or volatile semiconductor memory such as RAM, ROM, flash memory, EPROM (Erasable Programmable Read Only Memory), EEPROM (registered trademark) (Electrically Erasable Programmable Read-Only Memory), a magnetic disk, It is a flexible disk, an optical disk, a compact disk, a mini disk or a DVD (Digital Versatile Disk). The memory 82 may be the storage device 3 or may be included in the storage device 3.
図13は、実施の形態1にかかるロボット制御装置1が有する平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15の一部又は全部が処理回路91によって実現される場合の処理回路91を示す図である。つまり、平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15の一部又は全部は、処理回路91によって実現されてもよい。
FIG. 13 shows that part or all of the pre-smoothing
処理回路91は、専用のハードウェアである。処理回路91は、例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、又はこれらを組み合わせたものである。 The processing circuit 91 is dedicated hardware. The processing circuit 91 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field-Programmable Gate Array), or a combination thereof. Is.
平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15が有する複数の機能について、当該複数の機能の一部がソフトウェア又はファームウェアで実現され、当該複数の機能の残部が専用のハードウェアで実現されてもよい。このように、平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14及びオーバーライド修正部15が有する複数の機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせによって実現することができる。
Regarding the plurality of functions of the pre-smoothing
実施の形態2にかかるロボット制御装置1Aが有する平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14、オーバーライド修正部15及び抑制部20の一部又は全部の機能は、メモリに格納されるプログラムを実行するプロセッサによって実現されてもよい。当該メモリは、平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14、オーバーライド修正部15及び抑制部20によって実行される一部又は全部のステップが結果的に実行されることになるプログラムを格納するためのメモリである。当該プロセッサは、プロセッサ81と同様のプロセッサ又はCPUである。平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14、オーバーライド修正部15及び抑制部20の一部又は全部の機能は、処理回路によって実現されてもよい。当該処理回路は、処理回路91と同様の処理回路である。
Some or all of the functions of the pre-smoothing
実施の形態3にかかるロボット制御装置1Bが有する平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14A及びオーバーライド修正部15の一部又は全部の機能は、メモリに格納されるプログラムを実行するプロセッサによって実現されてもよい。当該メモリは、平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14A及びオーバーライド修正部15によって実行される一部又は全部のステップが結果的に実行されることになるプログラムを格納するためのメモリである。当該プロセッサは、プロセッサ81と同様のプロセッサ又はCPUである。平滑化前指令生成部11、平滑化部12、指令出力部13、速度推定部14A及びオーバーライド修正部15の一部又は全部の機能は、処理回路によって実現されてもよい。当該処理回路は、処理回路91と同様の処理回路である。
Some or all of the functions of the pre-smoothing
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略又は変更することも可能である。 The configurations described in the above embodiments are examples of the content of the present invention, and can be combined with another known technique, and the configurations of the configurations are not deviated from the scope not departing from the gist of the present invention. It is also possible to omit or change parts.
1,1A,1B ロボット制御装置、1a ロボット動作指令、2 CPU、3 記憶装置、4 IOインターフェース、5 バス、6 受信装置、7 入力装置、8,9 ケーブル、11 平滑化前指令生成部、11a 平滑化前指令、12 平滑化部、12a 平滑化後指令、13 指令出力部、14,14A 速度推定部、14a 代表監視速度、15 オーバーライド修正部、15a オーバーライド、20 抑制部、20a 抑制オーバーライド、30 ロボット、111 仮想時間計算部、111a 仮想時間、112 動作計画部、112a 動作パラメータ、113 指令値更新部、141 第1移動量取得部、141a 平滑化前指令値移動量、142 第2移動量取得部、142a 平滑化後指令値移動量、143 第1監視点位置演算部、144 第2監視点位置演算部、145 第3監視点位置演算部、146 第1速度演算部、146a 第1推定速度、147 第2速度演算部、147a 第2推定速度、148 代表速度演算部、81 プロセッサ、82 メモリ、91 処理回路。 1, 1A, 1B robot control device, 1a robot operation command, 2 CPU, 3 storage device, 4 IO interface, 5 bus, 6 receiving device, 7 input device, 8, 9 cable, 11 pre-smoothing command generation unit, 11a Pre-smoothing command, 12 smoothing part, 12a post-smoothing command, 13 command output part, 14,14A speed estimation part, 14a representative monitoring speed, 15 override correction part, 15a override, 20 suppression part, 20a suppression override, 30 Robot, 111 virtual time calculation unit, 111a virtual time, 112 operation planning unit, 112a operation parameter, 113 command value updating unit, 141 first movement amount acquisition unit, 141a pre-smoothing command value movement amount, 142 second movement amount acquisition Part, 142a smoothed command value movement amount, 143 first monitoring point position calculation part, 144 second monitoring point position calculation part, 145 third monitoring point position calculation part, 146 first speed calculation part, 146a first estimated speed 147 second speed calculation unit, 147a second estimated speed, 148 representative speed calculation unit, 81 processor, 82 memory, 91 processing circuit.
Claims (6)
前記ロボットが有する前記複数のアームを駆動するための指令である平滑化前指令を生成する平滑化前指令生成部と、
前記平滑化前指令生成部によって生成された前記平滑化前指令を平滑化して平滑化後指令を生成する平滑化部と、
前記平滑化部によって生成された前記平滑化後指令を前記ロボットに出力する指令出力部と、
前記平滑化前指令生成部によって生成された前記平滑化前指令と前記平滑化部によって生成された前記平滑化後指令とをもとに前記ロボットに設けられた監視箇所の動作速度を推定する速度推定部と、
前記速度推定部によって推定された動作速度とあらかじめ決められた制限速度とをもとに仮想時間修正率であるオーバーライドを修正するオーバーライド修正部とを備え、
前記平滑化前指令生成部は、前記オーバーライド修正部によって得られたオーバーライドを用いて前記平滑化前指令を生成する
ことを特徴とするロボット制御装置。 A robot controller for controlling a robot having a plurality of arms,
A pre-smoothing command generation unit that generates a pre-smoothing command that is a command for driving the plurality of arms of the robot;
A smoothing unit that smoothes the pre-smoothing command generated by the pre-smoothing command generation unit to generate a post-smoothing command;
A command output unit that outputs the smoothed command generated by the smoothing unit to the robot,
A speed for estimating the operation speed of a monitoring point provided in the robot based on the pre-smoothing command generated by the pre-smoothing command generation unit and the post-smoothing command generated by the smoothing unit An estimation section,
An override correction unit that corrects an override that is a virtual time correction rate based on an operation speed estimated by the speed estimation unit and a predetermined speed limit,
The robot controller according to claim 1, wherein the pre-smoothing command generation unit generates the pre-smoothing command using the override obtained by the override correction unit.
前記平滑化後指令をもとに演算される前記監視箇所の位置と、前記平滑化前指令をもとに演算される前記監視箇所の移動量である平滑化前指令値移動量とをもとに、前記監視箇所の第1推定速度を演算する第1速度演算部と、
前記平滑化後指令をもとに演算される前記監視箇所の位置と、前記平滑化後指令をもとに演算される前記監視箇所の移動量である平滑化後指令値移動量とをもとに、前記監視箇所の第2推定速度を演算する第2速度演算部と、
前記第1推定速度及び前記第2推定速度をもとに前記監視箇所の動作速度を推定する代表速度演算部と
を有することを特徴とする請求項1に記載のロボット制御装置。 The speed estimation unit,
Based on the position of the monitoring point calculated based on the post-smoothing command and the pre-smoothing command value movement amount that is the movement amount of the monitoring point calculated based on the pre-smoothing command. And a first speed calculator for calculating a first estimated speed of the monitoring point,
Based on the position of the monitoring point calculated based on the post-smoothing command and the smoothed command value movement amount that is the movement amount of the monitoring point calculated based on the post-smoothing command. And a second speed calculator for calculating the second estimated speed of the monitoring point,
The robot controller according to claim 1, further comprising: a representative speed calculator that estimates an operation speed of the monitoring location based on the first estimated speed and the second estimated speed.
前記第2速度演算部は、1周期前に前記ロボットに出力された前記平滑化後指令をもとに前記平滑化後指令値移動量を演算する
ことを特徴とする請求項2に記載のロボット制御装置。 The first speed calculation unit calculates the pre-smoothing command value movement amount based on the pre-smoothing command, which is the basis of the post-smoothing command output to the robot one cycle ago,
The robot according to claim 2, wherein the second speed calculator calculates the smoothed command value movement amount based on the smoothed command output to the robot one cycle before. Control device.
前記第2速度演算部は、前記ロボットに将来出力される前記平滑化後指令をもとに前記平滑化後指令値移動量を演算する
ことを特徴とする請求項2に記載のロボット制御装置。 The first speed calculation unit calculates the pre-smoothing command value movement amount based on the pre-smoothing command, which is the basis of the post-smoothing command to be output to the robot in the future,
The robot controller according to claim 2, wherein the second speed calculator calculates the smoothed command value movement amount based on the smoothed command that is output to the robot in the future.
ことを特徴とする請求項2から4のいずれか1項に記載のロボット制御装置。 The representative speed calculation unit estimates a larger estimated speed of the first estimated speed and the second estimated speed as an operation speed of the monitoring location. The robot controller according to item 1.
ことを特徴とする請求項1から5のいずれか1項に記載のロボット制御装置。 6. The overriding correction unit obtains the overriding after the correction so that the amount of increase in each overriding control cycle obtained by performing the correction is less than a predetermined value. The robot controller according to item 1.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2019/005855 WO2020170306A1 (en) | 2019-02-18 | 2019-02-18 | Robot control device |
| JP2021501161A JP7053941B2 (en) | 2019-02-18 | 2019-02-18 | Robot control device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2019/005855 WO2020170306A1 (en) | 2019-02-18 | 2019-02-18 | Robot control device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020170306A1 true WO2020170306A1 (en) | 2020-08-27 |
Family
ID=72144237
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2019/005855 Ceased WO2020170306A1 (en) | 2019-02-18 | 2019-02-18 | Robot control device |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP7053941B2 (en) |
| WO (1) | WO2020170306A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001216008A (en) * | 2000-02-04 | 2001-08-10 | Mitsubishi Electric Corp | Robot control method |
| JP2014117787A (en) * | 2012-12-19 | 2014-06-30 | Daihen Corp | Controller |
| JP2016043452A (en) * | 2014-08-22 | 2016-04-04 | 株式会社デンソーウェーブ | Device and method for controlling robot |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4528577B2 (en) * | 2004-08-06 | 2010-08-18 | 株式会社神戸製鋼所 | Industrial robot |
-
2019
- 2019-02-18 WO PCT/JP2019/005855 patent/WO2020170306A1/en not_active Ceased
- 2019-02-18 JP JP2021501161A patent/JP7053941B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001216008A (en) * | 2000-02-04 | 2001-08-10 | Mitsubishi Electric Corp | Robot control method |
| JP2014117787A (en) * | 2012-12-19 | 2014-06-30 | Daihen Corp | Controller |
| JP2016043452A (en) * | 2014-08-22 | 2016-04-04 | 株式会社デンソーウェーブ | Device and method for controlling robot |
Also Published As
| Publication number | Publication date |
|---|---|
| JP7053941B2 (en) | 2022-04-12 |
| JPWO2020170306A1 (en) | 2021-09-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2835228B1 (en) | Robot apparatus and robot controlling method | |
| JP5383911B2 (en) | Robot controller | |
| JP6717768B2 (en) | Robot for learning control considering operation in production line and control method thereof | |
| US10618164B2 (en) | Robot system having learning control function and learning control method | |
| JP4736607B2 (en) | Robot controller | |
| JP6700669B2 (en) | Control method, robot device, program, recording medium, and article manufacturing method | |
| US20120010747A1 (en) | Robot, control device for robot, and control method of robot | |
| US11040449B2 (en) | Robot control system and method of controlling a robot | |
| CN101432103A (en) | Apparatus and method for controlling robot arm, robot, and robot arm control program | |
| JPH11277468A (en) | Control device for robot | |
| JP6386516B2 (en) | Robot device with learning function | |
| JP6564433B2 (en) | Robot system | |
| JP7068133B2 (en) | Control systems, control methods, and control programs | |
| JP7160118B2 (en) | Control device, control method, program | |
| CN110891741A (en) | Control of a robot cell | |
| JP7464391B2 (en) | Mechanical system with trajectory estimation using motor encoders and sensors | |
| JP7388870B2 (en) | Robot systems and control equipment | |
| JP5904445B2 (en) | Robot controller | |
| JP6088601B2 (en) | Robot controller that suppresses tool tip deflection in robot with traveling axis | |
| JP7053941B2 (en) | Robot control device | |
| CN116985136B (en) | Quaternion-based forward control method and device for robot arm node attitude speed | |
| JPH06312392A (en) | Control device for articulated robot | |
| JP2007102748A (en) | POSITION CONTROL DEVICE, POSITION CONTROL METHOD, AND POSITION CONTROL PROGRAM | |
| JP7028083B2 (en) | Robot control device and robot system | |
| US20240337118A1 (en) | Method and System for Controlling a Movement of an Adjustable Distributor Boom, and Method for Distributing Construction Material and/or Thick Matter by Means of a Construction Material and/or Thick Matter Pumping Device Having an Adjustable Distributor Boom |
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: 19915738 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2021501161 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19915738 Country of ref document: EP Kind code of ref document: A1 |