WO2023007574A1 - Robot control device and robot control method - Google Patents

Robot control device and robot control method Download PDF

Info

Publication number
WO2023007574A1
WO2023007574A1 PCT/JP2021/027680 JP2021027680W WO2023007574A1 WO 2023007574 A1 WO2023007574 A1 WO 2023007574A1 JP 2021027680 W JP2021027680 W JP 2021027680W WO 2023007574 A1 WO2023007574 A1 WO 2023007574A1
Authority
WO
WIPO (PCT)
Prior art keywords
command value
robot
motion path
corrected
value candidate
Prior art date
Application number
PCT/JP2021/027680
Other languages
French (fr)
Japanese (ja)
Inventor
卓矢 岡原
浩司 白土
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to JP2021574265A priority Critical patent/JPWO2023007574A1/ja
Priority to PCT/JP2021/027680 priority patent/WO2023007574A1/en
Priority to JP2023003653A priority patent/JP2023030226A/en
Publication of WO2023007574A1 publication Critical patent/WO2023007574A1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme

Definitions

  • the present disclosure relates to a robot control device and a robot control method for correcting the motion of a robot based on an external sensor or the like.
  • a robot control device presets a target position and operates the robot according to a motion program composed of a motion path passing through the motion start position and the target position. This is called teaching playback control.
  • teaching playback control if there is an error between the preset target position and the actual target position to be reached, the robot may not be able to perform correct movements and may stop due to an error.
  • visual feedback control there is a method of correcting the motion path based on the image data acquired from the imaging device. This is called visual feedback control. Note that the image data includes a target position to be actually reached.
  • Patent Document 1 discloses a robot control device that realizes visual feedback control. First, the robot controller generates a first command value according to a preset operation program. Next, the robot controller generates a second command value based on the image of the robot at the current position and the image of the robot at the target position to be reached. Next, the robot control device calculates a command value by adding each of the first command value and the second command value with a predetermined weight. Finally, the robot controller operates the robot according to the calculated command value.
  • Patent Document 1 there are cases where the robot interferes with the surrounding environment because the motion path passing through the superimposed command values deviates from the motion path determined by the motion program. In order to prevent this, it is necessary to stop the robot urgently, and there is a problem that recovery work takes time.
  • the present disclosure has been made to solve the above-described problems, and provides a robot control device and a robot control method that minimize emergency stoppages of a robot even when the motion of the robot is corrected based on an external sensor. for the purpose.
  • a robot control apparatus provides a motion program configured with a pre-generated motion path of a robot, and based on a previous command value output to the robot last time or motion information of the robot, to the robot.
  • a command value candidate generating unit for generating a command value candidate of, a command value candidate correcting unit for correcting the command value candidate to be a post-correction command value candidate based on the external correction amount accompanying the change of the motion path;
  • a corrected motion path determination unit for determining whether the robot is operable or inoperable with respect to a corrected motion path passing through the corrected command value candidates and outputting a determination result;
  • a command value output unit that calculates a command value for the robot using the value candidate or the corrected command value candidate, and outputs the command value.
  • the robot control method is based on an operation program including a pre-generated robot operation path and a previous command value output to the robot last time or operation information of the robot. a step of generating a command value candidate for a robot; a step of correcting the command value candidate to a post-correction command value candidate based on an external correction amount associated with a change in the motion path; a step of determining whether the modified motion path passing through is operable or inoperable and outputting a determination result; and based on the determination result, using the command value candidate or the corrected command value candidate to the robot and calculating a command value of and outputting the command value
  • the robot control device and the robot control method can minimize emergency stops of the robot even when the motion of the robot is corrected based on the external sensor.
  • FIG. 3 is a diagram showing a hardware configuration of a robot control device according to Embodiments 1 to 3;
  • FIG. 1 is a block diagram showing an example of a robot control device according to Embodiment 1;
  • FIG. 4 is a block diagram showing an example of a command value candidate generating section in Embodiments 1 and 2;
  • FIG. 10 is a block diagram showing an example of a command value output section in Embodiment 2;
  • FIG. FIG. 10 is a schematic diagram showing an example of the motion of the robot in Embodiment 2; 9 is a flow chart showing an example of the operation of the robot control device according to Embodiment 2; 9 is a flow chart showing an example of the operation of a command value output unit according to Embodiment 2; 10 is a flow chart showing another example of the operation of the command value output unit according to Embodiment 2;
  • FIG. 11 is a block diagram showing an example of a robot control device according to Embodiment 3;
  • FIG. 11 is a block diagram showing an example of a command value candidate generation unit according to Embodiment 3;
  • FIG. 12 is a schematic diagram showing an example of the motion of the robot in Embodiment 3; 14 is a flow chart showing an example of the operation of the robot control device according to Embodiment 3; FIG. 11 is a flow chart showing an example of the operation of a post-correction motion path determination unit according to Embodiment 3. FIG. 14 is a flow chart showing an example of the operation of a command value candidate generation unit according to Embodiment 3;
  • FIG. 1 is a diagram showing a hardware configuration of a robot control device 1 according to Embodiment 1.
  • a robot control device 1 is a device for controlling a robot 10, and includes a CPU (Central Processing Unit) 2 that operates to control the robot 10, and a storage device 3 that stores data used when the CPU 2 operates. , and an IO (Input Output) interface 4 .
  • the robot control device 1 will be described later in detail with reference to FIG.
  • the CPU 2 controls the robot 10 by implementing the functions of each part of the robot control device 1 using software (software, firmware, or software and firmware).
  • CPU2 is an example of a processor. Therefore, the control of the robot 10 is not limited to the CPU 2, and may be, for example, a microprocessor, a microcomputer, or a DSP (Digital Signal Processor).
  • the storage device 3 stores data indicating the housing model of the robot 10 , data indicating the position and orientation of the hand (not shown) of the robot 10 , and an operation program for the robot 10 .
  • the motion program consists of a pre-generated motion path of the robot 10 , and this motion path includes at least the motion start position and the target position of the robot 10 .
  • a motion path obtained by converting the position and posture of the hand at the motion start position into joint angles and a motion path obtained by converting the position and posture of the hand at the target position into joint angles are used as the motion program. may be configured in this motion path.
  • the storage device 3 is, for example, a ROM (Read Only Memory), a HDD (Hard Disk Drive), or a RAM (Random Access Memory).
  • the IO interface 4 outputs signals to the receiving device 6 .
  • the receiving device 6 is, for example, a lamp or a buzzer that notifies the operating state of the robot 10 to the outside.
  • the signal output to the receiving device 6 is, for example, an instruction command for notifying the operating state of the robot 10 to the outside.
  • the IO interface 4 inputs a signal from the input device 7 .
  • the input device 7 is, for example, an external sensor such as a light curtain, an area sensor or an imaging device.
  • the signal from the input device 7 is, for example, the position of the surrounding environment detected from the image acquired by the input device 7 .
  • the surrounding environment is, for example, obstacles such as safety fences, work benches, or work jigs around the robot 10 .
  • the surrounding environment may refer to the imaging device itself.
  • the position of the surrounding environment is acquired by, for example, geometric information or point group information.
  • the geometric information is CAD (Computer Aided Design) data of the surrounding environment, and cylinders, cuboids, and the like that contain the surrounding environment.
  • the point group information is information obtained when the input device 7 is an RGB-D (Red Green Blue-Depth) sensor or a LiDAR (Light Detection and Ranging) sensor.
  • the robot 10 has a plurality of arms (not shown) and a hand provided at the tip of each arm. Each arm is connected to the main body of the robot 10 so as to be rotatable about the connecting portion of the adjacent arm. Also, a portion where the main body of the robot 10 and the arm are connected is defined as a joint portion.
  • the robot 10 has one or more joints. Moreover, each joint part is provided with a driving device (not shown) for changing the joint angle.
  • the robot control device 1 can control the position and posture of the hand by controlling the driving device.
  • the connecting portion can also be provided with a driving device like the joint portion, and the driving device can change the rotation angle of the connecting portion. Therefore, hereinafter, the connection portion and the joint portion will be collectively referred to as the joint portion.
  • the driving device may be, for example, an electric motor typified by a servomotor or a stepping motor, or a cylinder using pneumatic pressure or hydraulic pressure, but is not limited to these.
  • the joint is equipped with a joint angle measuring device (not shown).
  • the joint angle measuring device is, for example, an encoder or imaging device.
  • the joint angle can be obtained using an image acquired by the imaging device.
  • the command value is the joint angle transmitted from the IO interface 4 to the robot 10, or the position and posture of the hand. If the command value is the position and orientation of the hand, it is necessary to convert the position and orientation of the hand into joint angles based on the housing model of the robot 10 stored in the storage device 3 .
  • command values are described as joint angles unless otherwise specified. That is, the information input and output between each component of the robot control device 1 is information regarding joint angles.
  • FIG. 2 is a block diagram showing an example of the robot control device 1 according to the first embodiment.
  • the robot control device 1 includes an operation program storage unit 11, a command value candidate generation unit 12, an external correction amount acquisition unit 13, a command value candidate correction unit 14, and a post-correction motion path calculation unit. 15 , a post-correction motion path determination unit 16 , and a command value output unit 17 .
  • FIG. 2 is a block diagram when the robot control device 1 controls the robot 10 in a certain control period.
  • the robot control device 1 outputs command values to the robot 10 at predetermined control cycles.
  • a command value is a joint angle output to a driving device corresponding to one or more joints. Therefore, the command value is composed of one or more joint angles.
  • the robot 10 drives a plurality of arms of the robot 10 by inputting joint angles from the robot control device 1 .
  • the motion program storage unit 11 is a part of the storage device 3 and stores one or more data indicating the position and orientation of the hand of the robot 10 and the motion program of the robot 10 .
  • the operation program may be set in advance by the operator before the robot operates. At this time, it is desirable that the motion path constituting the motion program is generated so that the robot 10 does not interfere with the surrounding environment.
  • the command value candidate generation unit 12 generates command value candidates for the robot 10 based on the operation program from the operation program storage unit 11 and the previous command value output to the robot 10 last time. Alternatively, the command value candidate generator 12 generates command value candidates based on the motion program and the motion information of the robot 10 .
  • the previous command value is a command value output from the command value output unit 17 to the robot 10 in the previous control cycle starting from a certain control cycle.
  • the motion information of the robot 10 is information acquired by the joint angle measuring device of the joint of the robot, and is information acquired at the timing when the command value candidate generation unit 12 generates command value candidates.
  • the command value candidate generator 12 will be described later in detail with reference to FIG.
  • the external correction amount acquisition unit 13 acquires the external correction amount associated with the change of the motion path, particularly the target position, stored in the motion program storage unit 11 . That is, the external correction amount acquisition unit 13 acquires the external correction amount used by the robot control device 1 to correct the command value candidate when the target position is changed during operation of the robot 10 .
  • the target position is changed when there is an error between the preset target position and the target position to be actually reached, and when the preset target position itself is changed.
  • the latter is, for example, the case where the container is moved by a belt conveyor or the like when storing the parts gripped by the robot 10 in the container.
  • the target position that is, the position of the container, is changed during operation of the robot 10 .
  • the amount of external correction is calculated based on an image of the robot in a certain control cycle acquired by an external sensor such as an imaging device and an image of the robot at the target position to be reached. Specifically, the external correction amount is calculated based on the position of the robot and the position of the target position to be reached in a certain control cycle, obtained from the image.
  • the external correction amount is not the difference between the two positions itself, but a value with a certain step size for the difference between the two positions. That is, the external correction amount is a value that gradually reduces the difference between the two positions.
  • the external correction amount may be the same value in each control cycle, or may be a different value.
  • the external correction amount acquisition unit 13 acquires an external correction amount calculated outside the robot control device 1, but is not limited to this.
  • the external correction amount acquisition unit 13 may have a function of calculating as well as acquiring the external correction amount.
  • the command value candidate correction unit 14 corrects the command value candidate from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and uses this as a post-correction command value candidate.
  • the post-correction motion path calculation unit 15 calculates a post-correction motion path passing through the post-correction command value candidates from the command value candidate correction unit 14 .
  • a method for calculating the modified motion path will be described later in detail.
  • the post-correction motion path determination unit 16 determines whether the robot 10 is operable or inoperable with respect to the post-correction motion path from the post-correction motion path calculation unit 15, and outputs the determination result. If the robot 10 can follow the corrected motion path, the corrected motion path determining unit 16 determines that the robot 10 can move. There are static determination and dynamic determination for determining whether or not the robot 10 can follow.
  • the static determination is, for example, a determination as to whether or not the robot 10 can move on the post-correction motion path within the physical movable range of the joint angles.
  • the static determination is, for example, whether the robot 10 can move on the corrected motion path without interfering with the surrounding environment, or whether the robot 10 can move on the modified motion path within the set work space.
  • Dynamic determination is, for example, a determination as to whether or not the robot 10 can move on the corrected motion path within a predetermined period of time. This corresponds to determining whether or not the angular velocity and angular acceleration of the joints required for moving on the modified motion path are equal to or less than the upper limit values of the angular velocity and angular acceleration of the joints that the robot 10 can output. .
  • the command value output unit 17 uses the command value candidate from the command value candidate generation unit 12 or the corrected command value candidate from the command value candidate correction unit 14 based on the determination result from the corrected operation path determination unit 16. A command value to the robot 10 is calculated using the controller 10, and the command value is output. In the first embodiment, the command value output unit 17 uses the corrected command value candidate as the command value when the determination result is operable, and commands the command value candidate when the determination result is inoperable. value.
  • FIG. 3 is a block diagram showing an example of the command value candidate generator 12 according to the first embodiment.
  • the command value candidate generation unit 12 includes an interpolation point setting unit 121 , a previous interpolation point holding unit 122 , a relative value calculation unit 123 , and a command value candidate calculation unit 124 .
  • the interpolation point setting unit 121 sets an interpolation point J(k) in a certain control cycle k among the interpolation points passing through the operation path from the operation program storage unit 11 .
  • k is k ⁇ 0, and is an integer that is incremented according to the number of command value outputs from the start of the robot 10 operation.
  • k originally indicates an index of the control period, hereinafter, it is simply described as "control period" for the sake of simplification.
  • control period k When the control period k is 0, it means that the robot 10 is set at the motion start position, and the command value is output in advance as the motion start position. Therefore, it is treated as k>0 hereinafter.
  • the interpolation point J(k) is the joint angle of the robot 10 assuming that the external correction amount from the external correction amount acquisition unit 13 is always zero.
  • the interpolation point J(k) is desirably set so that the angular velocity and angular acceleration of the joint are equal to or less than different predetermined values.
  • This predetermined value is a value having a likelihood (for example, 80%) with respect to the upper limit values of joint angular velocities and angular accelerations that can be output by the robot 10 .
  • the previous interpolation point holding unit 122 holds the previous interpolation point J(k-1) in the control cycle (k-1) one before a certain control cycle k.
  • the relative value calculation unit 123 calculates a relative value in a certain control cycle k based on the interpolation point J(k) from the interpolation point setting unit 121 and the interpolation point J(k ⁇ 1) from the previous interpolation point holding unit 122. Compute dJ(k).
  • the relative value dJ(k) is given by Equation (1) below.
  • n is n ⁇ 1 and is an integer indicating the control cycle at the target position of the movement path.
  • the command value candidate calculation unit 124 outputs the command value J 0 (k ⁇ 1) in the previous control period (k ⁇ 1) from the command value output unit 17, the relative value dJ(k) from the relative value calculation unit 123, and A command value candidate J p (k) in a certain control cycle k is calculated based on .
  • the command value candidate J p (k) is given by Equation (2) below. Note that the motion information of the robot 10 may be J 0 (k ⁇ 1) instead of the command value in the previous control cycle (k ⁇ 1).
  • the calculation method differs according to the magnitude of the control period k and the control period n at the target position.
  • the post-correction motion path calculation unit 15 directly sets the post-correction command value candidate from the command value candidate correction unit 14 as the post-correction motion path.
  • the post-correction motion path calculation unit 15 calculates the post-correction motion path by the following method.
  • the post-correction motion path calculation unit 15 defines a motion path T(k) from a certain control cycle k to a control cycle n at the target position, passing through the command value candidates, as shown in Equation (3) below.
  • the post-correction motion path calculation unit 15 sets the interpolation point after the control cycle (k+1) and calculates the relative value using the formula (1), thereby obtaining the motion path T(k) shown in the formula (3). set. Next, the post-correction motion path calculation unit 15 defines a motion path difference dT(k) from a given control cycle k to a control cycle n up to the target position as shown in Equation (4) below.
  • the post-correction motion path calculation unit 15 passes through the post-correction command value candidate J m (k) and calculates the post-correction motion path T m (k) from a certain control cycle k to the control cycle n at the target position as follows: is defined as in Equation (5).
  • the modified motion path T m (k) is the modified command value candidate J m (k) and the motion path T (k) passing through the command value candidate J (k). It is the difference (J m (k)-J(k)) from the command value candidate J(k).
  • FIGS. 4A to 4C show the robot 10 when the target position is changed to GLb while the robot 10 is moving from the motion start position ST toward the target position GLa along the preset motion path Ra. 10 shows the operation of FIG.
  • FIG. 4(a) is a diagram showing the operation of the robot 10 when the surrounding environment SO does not exist around the robot 10.
  • FIG. 4(b) and 4(c) are diagrams showing the motion of the robot 10 when the surrounding environment SO exists.
  • control cycle 1 when the control cycle is 0, the operator or the robot control device 1 sets the hand of the robot 10 to the motion start position ST.
  • the command value candidate generator 12 sets an interpolation point P1 on the motion path Ra.
  • the command value output unit 17 outputs to the robot 10 a command value corresponding to the interpolation point P1.
  • the command value candidate generation unit 12 sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate.
  • the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P21.
  • the external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2.
  • the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Based on the interpolation points P3, P4, . . .
  • the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidates P21, positions P31, P41, . . . judge. As shown in FIG. 4A, the surrounding environment SO does not exist on the post-correction motion path R1. It is also assumed that the angular velocity and angular acceleration of the joints required for moving along the corrected motion path R1 are equal to or less than the upper limit values of the angular velocity and angular acceleration of the joints that the robot 10 can output. In this case, the corrected motion path determination unit 16 determines that the robot 10 is operable.
  • the command value output unit 17 outputs to the robot 10 a command value corresponding to the post-correction command value candidate P21.
  • the command value candidate generation unit 12 generates a command value candidate P31 based on the difference between the interpolation point P3 and the interpolation point P2 and the previous command value P21. Further, the command value candidate correction unit 14 corrects the command value candidate P31 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the command value candidate after correction P32. .
  • the external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P32 and the command value candidate P31.
  • the post-correction motion path calculator 15 sets positions P42, . . . based on the positions P41, . A corrected motion path R2 passing through is calculated.
  • the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidate P32, the position P42, . . . do. As shown in FIG. 4A, the surrounding environment SO does not exist on the post-correction motion route R2. It is also assumed that the angular velocity and angular acceleration of the joints required for moving along the corrected motion path R2 are equal to or less than the upper limit values of the angular velocity and angular acceleration of the joints that the robot 10 can output. In this case, the corrected motion path determination unit 16 determines that the robot 10 is operable.
  • the command value output unit 17 outputs to the robot 10 a command value corresponding to the post-correction command value candidate P32.
  • the command value candidate generator 12 In control cycle 4, the command value candidate generator 12 generates a command value candidate P42 based on the difference between the interpolation point P4 and the interpolation point P3 and the previous command value P32. Since the motion path R2 passing through the command value candidate P42 passes through the changed target position GLb, the external correction amount in the control cycle 4 becomes zero. Therefore, after control period 4, the robot 10 operates on the motion route R2 passing through the command value candidate P42.
  • the robot 10 is controlled to pass through the motion start position ST, position P1, position P21, position P32, position P42, .
  • the operator or the robot control device 1 sets the hand of the robot 10 to the motion start position ST.
  • the command value candidate generator 12 sets an interpolation point P1 on the motion path Ra.
  • the command value output unit 17 outputs to the robot 10 a command value corresponding to the interpolation point P1.
  • the command value candidate generation unit 12 sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate.
  • the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P21.
  • the external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2.
  • the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Based on the interpolation points P3, P4, . . .
  • the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidates P21, positions P31, P41, . . . judge. As shown in FIG. 4(b), the surrounding environment SO exists on the corrected motion path R1. In this case, the corrected motion path determining unit 16 determines that the robot 10 cannot move.
  • the command value output unit 17 outputs to the robot 10 a command value corresponding to the command value candidate P2.
  • the command value candidate generation unit 12 sets the interpolation point P3 as a command value candidate. Further, the command value candidate correction unit 14 corrects the command value candidate P3 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P31. .
  • the external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P31 and the command value candidate P3.
  • the post-correction motion path calculator 15 sets positions P41, . . . based on the interpolation points P4, . Compute a modified motion path R1 through .
  • the corrected motion path determining unit 16 determines whether the robot 10 can move the corrected command value candidates P31, positions P41, . .
  • the surrounding environment SO exists on the corrected motion path R1.
  • the corrected motion path determining unit 16 determines that the robot 10 cannot move.
  • the command value output unit 17 outputs to the robot 10 a command value corresponding to the command value candidate P3.
  • the post-correction motion path determining unit 16 determines that the robot 10 cannot move on the post-correction motion path R1.
  • the robot 10 is controlled to pass through the operation start position ST, position P1, position P2, position P3, position P4, . . . It is controlled to pass through the target position GLb.
  • the corrected motion path calculated by the corrected motion path calculation unit 15 in the control period 2 and the corrected motion path calculated by the corrected motion path calculation unit 15 in the control period 3 are the same motion path R1. , will not necessarily be the same. This is because the external correction amount is calculated based on the position of the robot and the target position GLb in a certain control cycle, and the position of the robot differs depending on the control cycle. Therefore, even if the corrected motion path calculated by the corrected motion path calculation unit 15 in the control cycle 2 is R1, the corrected motion path calculated by the corrected motion path calculation unit 15 in the control cycle 3 is not R1. There is If it is determined that the robot 10 can operate on the corrected motion path calculated in the control cycle 3, the command value output unit 17 outputs a command value corresponding to the corrected command value candidate on the corrected motion path to the robot. 10.
  • the operator or the robot control device 1 sets the hand of the robot 10 to the motion start position ST.
  • the command value candidate generator 12 sets an interpolation point P1 on the motion path Ra.
  • the command value output unit 17 outputs to the robot 10 a command value corresponding to the interpolation point P1.
  • the command value candidate generation unit 12 sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate.
  • the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P21.
  • the external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2.
  • the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Based on the interpolation points P3, P4, . . .
  • the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidates P21, positions P31, P41, . . . judge. As shown in FIG. 4(c), the surrounding environment SO does not exist on the corrected motion path R1. It is also assumed that the angular velocity and angular acceleration of the joints required for moving along the corrected motion path R1 are equal to or less than the upper limit values of the angular velocity and angular acceleration of the joints that the robot 10 can output. In this case, the corrected motion path determination unit 16 determines that the robot 10 is operable.
  • the command value output unit 17 outputs to the robot 10 a command value corresponding to the post-correction command value candidate P21.
  • the command value candidate generation unit 12 generates a command value candidate P31 based on the difference between the interpolation point P3 and the interpolation point P2 and the previous command value P21. Further, the command value candidate correction unit 14 corrects the command value candidate P31 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the command value candidate after correction P32. .
  • the external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P32 and the command value candidate P31.
  • the post-correction motion path calculator 15 sets positions P42, . . . based on the positions P41, . A corrected motion path R2 passing through is calculated.
  • the post-correction motion path determination unit 16 determines whether the robot 10 can move through the positions P32, P42, . . . on the post-correction motion path R2. As shown in FIG. 4(c), the surrounding environment SO exists on the post-correction motion path R2. In this case, the corrected motion path determining unit 16 determines that the robot 10 cannot move.
  • the command value output unit 17 outputs to the robot 10 a command value corresponding to the command value candidate P31.
  • the post-correction motion path determining unit 16 determines that the robot 10 cannot move on the post-correction motion path R2.
  • the robot 10 is controlled to pass through the operation start position ST, position P1, position P21, position P31, position P41, . controlled to pass through
  • the corrected motion path calculated by the corrected motion path calculation unit 15 in the control period 3 and the corrected motion path calculated by the corrected motion path calculation unit 15 in the control period 4 are the same motion path R2. , will not necessarily be the same. This is for the same reason as described with reference to FIG. 4(b). Therefore, even if the corrected motion path calculated by the corrected motion path calculation unit 15 in the control cycle 3 is R2, the corrected motion path calculated by the corrected motion path calculation unit 15 in the control cycle 4 is not R2. There is If it is determined that the robot 10 can operate on the corrected motion path calculated in the control cycle 4, the command value output unit 17 outputs a command value corresponding to the corrected command value candidate on the corrected motion path to the robot. 10.
  • FIG. 5 is a flow chart showing an example of the operation of the robot control device 1 according to the first embodiment. That is, FIG. 5 is a flow chart showing an example of the robot control method according to the first embodiment.
  • step ST1 when the control of the robot 10 is started by means (not shown), the means (not shown) initializes k, which is an index of the control cycle, to 1 (step ST1).
  • the command value candidate generation unit 12 generates command value candidates based on an operation program configured in advance with the motion path of the robot 10 and the previous command value output to the robot 10 last time or the motion information of the robot 10. is generated (step ST2). The processing of step ST2 will be described later in detail using FIG.
  • the command value candidate correcting unit 14 corrects the command value candidate based on the external correction amount from the external correction amount acquisition unit 13 to obtain a post-correction command value candidate (step ST3).
  • the post-correction motion path calculation unit 15 calculates a post-correction motion path passing through the post-correction command value candidates (step ST4).
  • the processing of step ST4 will be described later in detail with reference to FIG.
  • the post-correction motion path determination unit 16 determines whether the robot 10 is operable or inoperable with respect to the post-correction motion path, and outputs the determination result (step ST5).
  • the processing of step ST5 will be described later in detail with reference to FIG.
  • the command value output unit 17 calculates a command value for the robot 10 using the command value candidate or the corrected command value candidate based on the determination result from the corrected motion path determination unit 16, and outputs the command value (step ST6). If k>n, and if the determination result from the post-correction movement path determination unit 16 indicates that the operation is impossible, the command value output unit 17 outputs the previous command value output last time as the command value to the robot 10. set as That is, the robot 10 is stopped by means not shown. The robot control device 1 may generate a movement path for the robot 10 again from this state. Then, the robot control device 1 may perform the processing from step ST1 to step ST8 of FIG. 5 on the regenerated motion path.
  • step ST7 Whether or not to complete the control of the robot 10 is determined by means not shown.
  • step ST7 determines whether the control of the robot 10 ends. If the determination in step ST7 is "No”, the process proceeds to step ST8. Control of the robot ends when, for example, the robot 10 reaches the target position GLb. Alternatively, it is a case where it is determined that the robot 10 has performed an abnormal operation. This determination is made by means not shown.
  • step ST7 If the determination in step ST7 is "No", k is incremented by means not shown (step ST8).
  • step ST8 After the processing of step ST8 is performed, the processing of steps ST2 to ST8 is repeatedly performed until the determination of step ST7 becomes "Yes".
  • FIG. 6 is a flow chart showing an example of the operation of the command value candidate generator 12 according to the first embodiment. That is, FIG. 6 is a flow chart showing the details of the process of step ST2 in FIG.
  • interpolation point setting unit 121 sets interpolation point J(k) in a certain control cycle k (step ST21).
  • the interpolation point setting unit 121 sets an interpolation point J(k) on the motion path forming the motion program.
  • the previous interpolation point holding unit 122 holds and outputs the previous interpolation point J(k-1) in the previous control cycle (k-1) (step ST22).
  • the relative value calculator 123 calculates the relative value dJ(k) in the control period k based on the interpolation point J(k) and the previous interpolation point J(k-1). The relative value calculator 123 calculates the relative value dJ(k) based on Equation (1) (step ST23).
  • Command value candidate calculation unit 124 calculates command value candidate J p ( k) is calculated (step ST24). Command value candidate calculation unit 124 calculates command value candidate J p (k) based on expression (2).
  • the command value candidate generation unit 12 ends the command value candidate generation process.
  • FIG. 7 is a flowchart showing an example of the operation of the post-correction motion path calculation unit 15 according to the first embodiment. That is, FIG. 7 is a flow chart showing the details of the process of step ST4 in FIG.
  • the post-correction motion path calculation unit 15 determines whether or not k is greater than n (step ST41).
  • step ST41 determines whether the determination in step ST41 is "Yes" or the process proceeds to step ST42. If the determination in step ST41 is "No”, the process proceeds to step ST43.
  • step ST41 determines whether the post-correction motion path calculation unit 15 is "Yes" or not. If the determination in step ST41 is "Yes”, the post-correction motion path calculation unit 15 directly sets the post-correction command value candidate from the command value candidate correction unit 14 as the post-correction motion path T m (k) (step ST42). ). After the process of step ST41 is performed, the post-correction motion path calculation unit 15 ends the post-correction motion path calculation process.
  • step ST41 determines whether the motion path T(k) in a certain control cycle k based on Equation (3) (step ST43).
  • the post-correction motion path computation unit 15 computes the motion path difference dT(k) at a certain control cycle k based on Equation (4) (step ST44).
  • the post-correction motion path calculation unit 15 calculates the post-correction motion path T m (k) in a certain control cycle k based on Equation (5) (step ST45). After the process of step ST45 is performed, the post-correction motion path calculation unit 15 ends the post-correction motion path calculation process.
  • FIG. 8 is a flowchart showing an example of the operation of the post-correction motion path determination unit 16 according to the first embodiment. That is, FIG. 8 is a flow chart showing the details of the process of step ST5 in FIG.
  • the post-correction motion path determination unit 16 when the post-correction motion path determination unit 16 starts the process of determining whether the robot 10 is operable or inoperable, the post-correction motion path determination unit 16 initializes the variable i to 0. (Step ST51).
  • the variable i is an index of the corrected motion path T m (k) at the control period k represented by Equation (5).
  • the post-correction motion path determining unit 16 calculates the joint angle, hand position and posture of the robot 10 corresponding to the index i of the post-correction motion path (step ST52). For example, in the modified motion path T m (k) in Equation (5), the joint angle when i is 0 is J m (k), and the joint angle when i is 1 is J m (k)+dJ(k+1 ). Furthermore, in FIGS. 4A to 4C, when the post-correction command value candidate is P21, the post-correction motion path is R1. In this case, the joint angle when i is 0 is the joint angle at P21, and the joint angle when i is 1 is the joint angle at P31.
  • the post-correction motion path determination unit 16 converts the joint angles of the robot 10 into positions and postures based on the housing model of the robot 10 .
  • the post-correction motion path determination unit 16 determines whether the joint angle at the index i is within the allowable range (step ST53). Specifically, the post-correction motion path determination unit 16 determines whether or not the joint angle at the index i is within the physical movable range.
  • step ST53 If the determination in step ST53 is "Yes”, the process proceeds to step ST54. If the determination in step ST41 is "No”, the process proceeds to step ST55.
  • the post-correction motion path determination unit 16 acquires the robot housing model from the storage device 3 (step ST54).
  • the robot housing model includes mesh information of the robot 10 as well as conversion formulas between the joint angles of the robot 10 and the hand position and posture.
  • the robot housing model is obtained by covering the robot 10 with, for example, a plurality of triangular mesh data, and includes the triangular vertex positions of each mesh.
  • the post-correction motion path determination unit 16 acquires this vertex position.
  • step ST55 the post-correction movement path determination unit 16 determines that the determination result is inoperable. That is, the post-correction motion path determination unit 16 determines that the joint angle at the index i cannot follow the desired joint angle, and determines that the motion cannot be performed. After the process of step ST55 is performed, the post-correction motion path determination unit 16 terminates the determination process.
  • the post-correction motion path determination unit 16 determines whether the position and posture of the robot 10 at the index i are non-interfering with the surrounding environment (step ST56).
  • step ST56 If the determination in step ST56 is "Yes”, the process proceeds to step ST57. If the determination in step ST56 is "No”, the process proceeds to step ST55.
  • step ST57 the post-correction motion path determination unit 16 determines whether or not the joint angular velocity of the robot 10 at the index i is equal to or less than a predetermined value.
  • the corrected motion path determination unit 16 may also determine whether or not the joint angular acceleration of the robot 10 at the index i is equal to or less than a predetermined value. In this case, the post-correction motion path determination unit 16 determines whether the joint angular velocity of the robot 10 is equal to or less than a predetermined value, and whether the joint angular acceleration is equal to or less than a predetermined value.
  • the post-correction motion path determining unit 16 determines whether or not the angular velocity and angular acceleration of the joint obtained by the index i are equal to or less than the upper limit values of the angular velocity and angular acceleration of the joint that the robot 10 can output.
  • the joint angular velocity is obtained by dividing the difference between the joint angle of the robot 10 at index 0 and the joint angle corresponding to the previous command value output in step ST6 of FIG. 5 by the control cycle.
  • the joint angular velocity is obtained by dividing the difference between the joint angle of the robot 10 at the index i and the joint angle at the index (i ⁇ 1) by the control period when i is 1 or more.
  • the joint angular acceleration is calculated based on the difference in joint angular velocities by a method similar to the method for calculating joint angular velocities.
  • step ST57 If the determination in step ST57 is "Yes”, the process proceeds to step ST58. If the determination in step ST56 is "No”, the process proceeds to step ST55.
  • step ST58 If the determination in step ST58 is "Yes”, the process proceeds to step ST59. If the determination in step ST58 is "No”, the process proceeds to step ST60.
  • step ST58 determines that the determination result is operable (step ST59). In other words, the post-correction motion path determination unit 16 determines that the joint angles of all the indices can follow the desired joint angles, and determines that the motion is possible in the determination result. After the process of step ST59 is performed, the post-correction motion path determination unit 16 ends the determination process.
  • step ST58 determines whether the determination in step ST58 is "No" or not. If the determination in step ST58 is "No", the post-correction motion path determination unit 16 increments the variable i (step ST60). After the process of step ST60 is performed, the process proceeds to step ST52.
  • the robot 10 is determined whether the robot 10 is operable or inoperable with respect to the corrected motion path passing through the command value candidate corrected based on the external correction amount, and based on the determination result. Since the command value to the robot 10 is calculated by using an external sensor, the emergency stop of the robot 10 can be minimized even when the operation of the robot 10 is corrected based on the external sensor.
  • Embodiment 2 when it is determined that the corrected motion path passing through the corrected command value candidate is inoperable, the command value candidate is output as the command value to the robot 10 instead of the corrected command value candidate.
  • the corrected command value candidate is output to the robot 10 as a command value for a certain period of time.
  • FIG. 9 is a block diagram showing an example of the robot control device 1a according to the second embodiment. 9 differs from FIG. 2 in that the robot control device 1a includes a command value output section 17a instead of the command value output section 17.
  • the command value output unit 17a outputs the corrected command value candidate from the command value candidate correction unit 14 to the robot 10 as a command value when the determination result from the corrected motion path determination unit 16 indicates that the robot is operable.
  • the command value output unit 17a outputs the arrival time from the time when the operation is judged to be impossible to the time when the operation is actually impossible, and the command value candidates within the arrival time. Compare with the recovery time required to bring the corrected integrated value to zero. If the arrival time is longer than the restoration time, the command value output unit 17a uses the corrected command value candidate as the command value.
  • the command value is obtained by superimposing the restored amount on the command value candidate.
  • the command value output unit 17a compares the corrected integrated value with the restoration integrated value within the arrival time of the amount of restoration calculated when the operation is determined to be impossible. do. In this case, the command value output unit 17a sets the corrected command value candidate as the command value if the restored integrated value is greater than the corrected integrated value, and if the restored integrated value is equal to or less than the corrected integrated value, sets the restoration amount. A value superimposed on the command value candidate is used as the command value.
  • the restoration amount is an amount per unit control cycle that is set so that the corrected integrated value gradually decreases to zero, and is calculated so as not to deviate from the movement restrictions of the robot 10 .
  • a motion constraint is an upper limit value that can be output for the angular velocity and angular acceleration of the joints of the robot 10 .
  • FIG. 10 is a block diagram showing an example of the command value output section 17a according to the second embodiment.
  • FIG. 10 is a block diagram when the command value output unit 17a compares the arrival time and the restoration time to calculate the command value when the determination result is that the operation is impossible.
  • the command value output unit 17a includes a corrected integrated value calculation unit 171a, a restoration amount calculation unit 172a, and a command value calculation unit 173a.
  • the corrected integrated value calculation unit 171a calculates the corrected command value from the command value candidate correction unit 14 using the following formula (6).
  • a correction amount ⁇ J(k) which is the difference between the candidate and the command value candidate from the command value candidate generation unit 12, is calculated.
  • the corrected integrated value calculation unit 171a calculates the corrected integrated value ⁇ J sum within the arrival time of the correction amount ⁇ J using the following formula (7).
  • ⁇ J sum,0 is the initial value of the corrected integrated value, and the motion path passing through the command value candidate in the control cycle when it is determined that the motion path after correction is judged to be inoperable, and the previous output to the robot 10 It is the amount of correction between the motion path passing through the command value.
  • the initial value ⁇ J sum,0 will be described in detail with reference to FIG. 11 .
  • tT is the arrival time
  • Ts is the actual control cycle.
  • floor(y) is obtained by truncating the decimal point of y to an integer.
  • the corrected integrated value calculation unit 171a calculates a corrected integrated value ⁇ J sum for joint angles corresponding to one or more joints using Equation (7). When the determination result from the corrected operation path determination unit 16 indicates that the vehicle is operable, the corrected integrated value calculation unit 171a clears the corrected integrated value. i.e. set to zero.
  • the restoration amount calculation unit 172a calculates the restoration amount when the determination result from the corrected movement path determination unit 16 indicates that the movement is impossible. Then, the restoration amount calculation unit 172a calculates the restoration time based on the corrected integrated value from the corrected integrated value calculation unit 171a. The amount of restoration and the restoration time will be described later in detail with reference to FIG. When the determination result from the post-correction motion path determination unit 16 indicates that the motion is operable, the restoration amount calculation unit 172a sets the restoration amount to zero.
  • the command value calculation unit 173a calculates the arrival time from the corrected integrated value calculation unit 171a and the restoration time from the restoration amount calculation unit 172a when the determination result from the corrected operation path determination unit 16 indicates that the operation is impossible. compare.
  • the command value calculator 173a calculates a command value based on the comparison result between the arrival time and the restoration time. When the determination result from the corrected operation path determination unit 16 indicates that the vehicle is operable, the command value calculation unit 173a calculates the corrected command value candidate as the command value.
  • FIGS. 11(a) and 11(b) are schematic diagrams showing an example of the motion of the robot 10 according to the second embodiment.
  • FIGS. 11A and 11B show the case where the target position is changed to GLb while the robot 10 is moving from the motion start position ST toward the target position GLa along the preset motion path Ra.
  • 2 is a diagram showing the motion of the robot 10 in FIG.
  • control cycle 1 when the control cycle is 0, the operator or the robot control device 1a sets the hand of the robot 10 to the motion start position ST.
  • the command value candidate generator 12 sets an interpolation point P1 on the motion path Ra.
  • the command value output unit 17a outputs to the robot 10 a command value corresponding to the interpolation point P1.
  • the command value candidate generation unit 12 sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate.
  • the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and the corrected command value candidate P21 is set. be.
  • the external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2.
  • the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Based on the interpolation points P3, P4, . .
  • the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidates P21, positions P31, P41, . . . judge. As shown in FIG. 11(a), the surrounding environment SO exists on the post-correction motion path R1. In this case, the corrected motion path determining unit 16 determines that the robot 10 cannot move. Then, the arrival time from the time when it is determined to be inoperable to the time when it actually becomes inoperable is compared with the restoration time required to set the corrected integrated value of the command value candidate within the arrival time to zero. be. In FIG. 11A, if the restoration time is shorter than the arrival time, the command value output unit 17a outputs to the robot 10 a command value corresponding to the post-correction command value candidate P21.
  • the arrival time is the time from the time corresponding to control cycle 2 until the robot 10 reaches the position P4m.
  • the arrival time is the time from the position P1 of the robot 10 in the control cycle 2 to the position P4m through the positions P21, P31, P41, . . . .
  • the position P4m is a position on the corrected motion path R1, and is a position where interference with the surrounding environment SO begins.
  • the corrected motion path R1 since the corrected motion path R1 is determined to be inoperable for the first time, the motion path Ra passing through the command value candidate P2 in the control period 2 at this time and the motion path passing through the previous command value P1 output to the robot 10 last time The difference with Ra is zero.
  • the initial value ⁇ J sum,0 of the corrected integrated value in control cycle 2 is zero.
  • the corrected integrated value ⁇ J sum is, for example, the difference between the joint angle at position P21 and the joint angle at position P2, and the position It is obtained by adding the difference between the joint angle at P32 and the joint angle at position P31.
  • the restoration time is the time required for the robot 10 to return from the motion route R2 passing through the position P32 to the motion route Ra. This restoration time will be described in detail with reference to FIG. 11(b).
  • the command value candidate generation unit 12 generates a command value candidate P31 based on the difference between the interpolation point P3 and the interpolation point P2 and the previous command value P21. Further, the command value candidate correction unit 14 corrects the command value candidate P31 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the command value candidate after correction P32. .
  • the external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P32 and the command value candidate P31.
  • the post-correction motion path calculator 15 sets positions P42, . . . based on the positions P41, . A corrected motion path R2 passing through is calculated.
  • the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidate P32, the position P42, . . . do. As shown in FIG. 11(a), the surrounding environment SO does not exist on the post-correction motion path R2. It is also assumed that the angular velocity and angular acceleration of the joints required for moving along the corrected motion path R2 are equal to or less than the upper limit values of the angular velocity and angular acceleration of the joints that the robot 10 can output. In this case, the corrected motion path determination unit 16 determines that the robot 10 is operable.
  • the command value output unit 17a outputs to the robot 10 a command value corresponding to the post-correction command value candidate P32.
  • the command value candidate generator 12 In control cycle 4, the command value candidate generator 12 generates a command value candidate P42 based on the difference between the interpolation point P4 and the interpolation point P3 and the previous command value P32. Since the motion path R2 passing through the command value candidate P42 passes through the changed target position GLb, the external correction amount in the control cycle 4 becomes zero. Therefore, after control period 4, the robot 10 operates on the motion route R2 passing through the command value candidate P42.
  • the robot 10 is controlled to pass through the motion start position ST, position P1, position P21, position P32, position P42, .
  • the robot 10 is given time to move along the corrected motion route R1. Therefore, the robot 10 can reach the target position GLb without passing through the target position GLa.
  • control cycle 1 when the control cycle is 0, the operator or the robot control device 1a sets the hand of the robot 10 to the motion start position ST.
  • the command value candidate generator 12 sets an interpolation point P1 on the motion path Ra.
  • the command value output unit 17a outputs to the robot 10 a command value corresponding to the interpolation point P1.
  • the command value candidate generation unit 12 sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate.
  • the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P21.
  • the external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2.
  • the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Based on the interpolation points P3, P4, . . .
  • the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidates P21, positions P31, . . . do. As shown in FIG. 11(b), the surrounding environment SO exists on the post-correction motion path R1. In this case, the corrected motion path determining unit 16 determines that the robot 10 cannot move. Then, the command value output unit 17a compares the arrival time and the restoration time. In FIG. 11B, assuming that the restoration time is shorter than the arrival time, the command value output unit 17a outputs to the robot 10 a command value corresponding to the post-correction command value candidate P21.
  • the arrival time is the time from the time corresponding to control cycle 2 until the robot 10 reaches the position P61.
  • the arrival time is the time from the position P1 of the robot 10 in the control cycle 2 to the position P61 through the positions P21, P31, and P41 on the corrected motion path R1.
  • the position P61 is a position on the corrected motion path R1 and is a position where interference with the surrounding environment SO begins.
  • the corrected motion path R1 since the corrected motion path R1 is determined to be inoperable for the first time, the motion path Ra passing through the command value candidate P2 in the control period 2 at this time and the motion path passing through the previous command value P1 output to the robot 10 last time The difference with Ra is zero.
  • the initial value ⁇ J sum,0 of the corrected integrated value in control cycle 2 is zero.
  • the corrected integrated value ⁇ J sum is, for example, the difference between the joint angle at position P21 and the joint angle at position P2, and the position It is obtained by adding the difference between the joint angle at P32 and the joint angle at position P31.
  • the restoration time is the time required for the robot 10 to return from the corrected motion route R1 to the motion route Ra.
  • the command value candidate generation unit 12 generates a command value candidate P31 based on the difference between the interpolation point P3 and the interpolation point P2 and the previous command value P21. Further, the command value candidate correction unit 14 corrects the command value candidate P31 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the command value candidate after correction P32. .
  • the external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P32 and the command value candidate P31.
  • the post-correction motion path calculator 15 sets positions P42, . . . based on the positions P41, . A corrected motion path R2 passing through is calculated.
  • the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidates P32, positions P42, P52, . . . judge. As shown in FIG. 11(b), the surrounding environment SO exists on the post-correction motion path R2. In this case, the corrected motion path determining unit 16 determines that the robot 10 cannot move. Then, the command value output unit 17a compares the arrival time and the restoration time. In FIG. 11B, if the restoration time is shorter than the arrival time, the command value output unit 17a outputs to the robot 10 a command value corresponding to the post-correction command value candidate P32.
  • the arrival time is the time from the time corresponding to control cycle 3 until the robot 10 reaches the position P52.
  • the arrival time is the time from the position P21 of the robot 10 in the control cycle 3 to the position P52 through the positions P32 and P42 on the corrected motion route R2, which corresponds to 3 control cycles.
  • the position P52 is a position on the corrected motion path R2, and is a position where interference with the surrounding environment SO begins.
  • the initial value ⁇ J sum,0 of the corrected integrated value in the control cycle 3 is the difference between the motion path R1 passing through the previous command value P21 output to the robot 10 last time and the motion path Ra. It is the difference between the angle and the joint angle at position P2.
  • the corrected integrated value ⁇ J sum is, for example, the sum of the difference between the joint angle at position P32 and the joint angle at position P31 and the initial value ⁇ J sum,0 .
  • the restoration time is the time required for the robot 10 to return from the corrected motion route R2 to the motion route Ra.
  • the command value candidate generator 12 In control cycle 4, the command value candidate generator 12 generates a command value candidate P42 based on the difference between the interpolation point P4 and the interpolation point P3 and the previous command value P32. Since the motion path R2 passing through the command value candidate P42 passes through the changed target position GLb, the external correction amount in the control cycle 4 becomes zero. Therefore, the command value candidate correcting unit 14 sets the post-correction command value candidate P42 that is the same as the command value candidate P42. Next, the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidate P42, the position P52, . . . . As shown in FIG. 11(b), the surrounding environment SO exists on the post-correction motion path R2.
  • the corrected motion path determining unit 16 determines that the robot 10 cannot move. Then, the command value output unit 17a compares the arrival time and the restoration time. In FIG. 11B, if the restoration time is equal to or longer than the arrival time, the command value output unit 17a outputs to the robot 10 a command value corresponding to the position PR41 in which the restoration amount is superimposed on the command value candidate P42.
  • the arrival time is the time from the time corresponding to control cycle 4 until the robot 10 reaches the position P52.
  • the arrival time is the time from the position P32 of the robot 10 in the control cycle 4 to the position P52 through the position P42 on the corrected motion path R2, and is the time corresponding to two control cycles.
  • the initial value ⁇ J sum,0 of the corrected integrated value in control cycle 4 is the difference between the motion path R2 passing through the previous command value P32 output to the robot 10 last time and the motion path Ra. It is the difference between the angle and the joint angle at position P3.
  • the corrected integrated value ⁇ J sum is the initial value ⁇ J sum,0 .
  • the restoration amount is the difference between the joint angle at the position P42 and the joint angle at the position PR41.
  • the position PR41 is between the command value candidate P42 in the control period 4 and the position P4 on the movement path Ra at which the determination result indicates that the robot can move. It is a position set so as not to deviate from the motion restrictions.
  • the restoration time is calculated based on the restoration amount in the control period 4 and the restoration amounts in the subsequent control periods.
  • the restoration amount in the next control cycle is the difference between the joint angle at position PR51 and the joint angle at position P5. That is, in the next control cycle, it is assumed that the determination result is likely to be restored to the position P5 on the operation path Ra where the operation becomes possible.
  • the restoration time is a time corresponding to two control cycles.
  • the command value to the robot 10 is the position PR41, assuming that there is a possibility of interference with the surrounding environment SO if the robot 10 continues to operate on the corrected motion trajectory R2.
  • the command value candidate generation unit 12 generates a command value candidate PR51 based on the difference between the interpolation point P5 and the interpolation point P4 and the previous command value PR41. Further, the command value candidate correction unit 14 corrects the command value candidate PR51 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the command value candidate after correction P52. .
  • the external correction amount in control cycle 5 corresponds to the difference between the post-correction command value candidate P52 and the command value candidate PR51.
  • the corrected motion path calculator 15 sets positions PR61, PR71, . . . (not shown) based on the interpolation points P6, P7, . Based on the positions PR61, PR71, .
  • the post-correction motion path determining unit 16 determines whether the robot 10 can or cannot move the post-correction command value candidates P52, . . . on the post-correction motion path R2. As shown in FIG. 11(b), the surrounding environment SO exists on the post-correction motion path R2. In this case, the corrected motion path determination unit 16 determines that the robot 10 cannot move. Then, the command value output unit 17a compares the arrival time and the restoration time. In FIG. 11B, if the restoration time is equal to or longer than the arrival time, the command value output unit 17a outputs to the robot 10 a command value corresponding to the position P5 where the restoration amount is superimposed on the command value candidate PR51.
  • the arrival time is the time from the time corresponding to control cycle 5 until the robot 10 reaches the position P52.
  • the arrival time is the time from the position PR41 of the robot 10 in the control cycle 5 to the position P52 on the corrected motion route R2, and is the time corresponding to one control cycle.
  • the initial value ⁇ J sum,0 of the corrected integrated value in control cycle 5 is the difference between the motion path RR1 passing through the previous command value PR41 output to the robot 10 last time and the motion path Ra. It is the difference between the angle and the joint angle at position P4.
  • the corrected integrated value ⁇ J sum is, for example, the sum of the difference between the joint angle at the position P52 and the joint angle at the position PR51 and the initial value ⁇ J sum,0 .
  • the restoration amount is the difference between the joint angle at the position PR51 and the joint angle at the position P5.
  • the restoration time is calculated based on the amount of restoration in control cycle 5 . In the case of FIG. 11B, in control cycle 5, the determination result can be restored to the position P5 on the operation path Ra where the operation is possible, so the restoration time is the time corresponding to one control cycle. As described above, since the arrival time and the restoration time are the same, the command value to the robot 10 is the position P5 assuming that there is a possibility of interfering with the surrounding environment SO when operating on the corrected motion trajectory R2.
  • the command value candidate generation unit 12 sets interpolation point P6 as a command value candidate.
  • the command value candidate correction unit 14 sets a post-correction command value candidate P61. Since the corrected command value candidate P61 is a position that interferes with the surrounding environment SO, the command value output unit 17a outputs to the robot 10 a command value corresponding to the command value candidate P6.
  • the post-correction motion path is determined in the same way as before. Assuming that all the determination results of the corrected motion paths after the control period 7 are operable, control is performed from the position P6 to the position P71, the position P82, the position P92, and the target position GLb. As described above, in the case of FIG. 11(b), the robot 10 moves to the operation start position ST, position P1, position P21, position P32, position PR41, position P5, position P6, position P71, position P82, position P92, It is controlled to pass through the target position GLb.
  • FIG. 12 is a flow chart showing an example of the operation of the robot control device 1a according to the second embodiment. That is, FIG. 12 is a flow chart showing an example of the robot control method according to the second embodiment. 12 differs from FIG. 5 in that step ST9 is performed instead of step ST6. Since the steps other than step ST9 are the same as those shown in FIG. 5, description thereof is omitted.
  • the command value output unit 17a calculates a command value for the robot 10 using the command value candidate or the corrected command value candidate based on the determination result from the corrected motion path determination unit 16, and outputs the command value (step ST9).
  • the processing of step ST9 will be described in detail with reference to FIGS. 13 and 14.
  • FIG. 13 illustrates a command value for the robot 10 using the command value candidate or the corrected command value candidate based on the determination result from the corrected motion path determination unit 16, and outputs the command value (step ST9).
  • the processing of step ST9 will be described in detail with reference to FIGS. 13 and 14.
  • FIG. 13 is a flow chart showing an example of the operation of the command value output unit 17a according to the second embodiment. That is, FIG. 13 is a flow chart showing details of the process of step ST9 in FIG.
  • the command value output unit 17a receives the determination result from the post-correction operation path determination unit 16, and determines the input determination result. It is determined whether or not the result is operable (step ST91).
  • step ST91 If the determination in step ST91 is "Yes”, the process proceeds to step ST92. If the determination in step ST91 is "No”, the process proceeds to step ST94.
  • step ST91 determines whether the determination in step ST91 is "Yes" If the determination in step ST91 is "Yes", the corrected integrated value calculator 171a clears the corrected integrated value (step ST92). That is, the corrected integrated value calculator 171a sets the corrected integrated value to zero.
  • the restoration amount calculator 172a sets the restoration amount to zero (step ST93).
  • step ST91 If the determination in step ST91 is "No", the corrected integrated value calculation unit 171a calculates the arrival time from the time when the operation is determined to be inoperable to the time when it actually becomes inoperable (step ST94).
  • the corrected integrated value calculation unit 171a calculates the initial value of the corrected integrated value (step ST95).
  • the corrected integrated value calculation unit 171a calculates the corrected integrated value based on the formulas (6) and (7) (step ST96).
  • the restoration amount calculation unit 172a calculates the restoration amount in a certain control cycle k (step ST97).
  • the restoration amount calculation unit 172a calculates the restoration time required to zero the corrected integrated value calculated in step ST96 (step ST98).
  • the restoration amount calculation unit 172a determines whether or not the arrival time is equal to or less than the restoration time (step ST99).
  • step ST99 If the determination in step ST99 is "Yes”, the process proceeds to step ST100. If the determination in step ST99 is "No”, the process proceeds to step ST93.
  • step ST100 calculates a command value for the robot 10 (step ST100). Specifically, the command value calculation unit 173a sets the command value by superimposing the restoration amount calculated in step ST97 on the command value candidate. After the processing of step ST100 is performed, the command value output unit 17a ends the command value output processing.
  • FIG. 14 is a flow chart showing another example of the operation of the command value output unit 17a according to the second embodiment. That is, FIG. 14 is a flow chart showing the details of the process of step ST9 in FIG. 14 differs from FIG. 13 in that step ST101 is performed instead of step ST98 and step ST102 is performed instead of step ST99. Since steps other than steps ST101 and ST102 are the same as those shown in FIG. 13, description thereof is omitted.
  • the restoration amount calculation unit 172a calculates the restoration integrated value of the restoration amount within the arrival time (step ST101).
  • the restoration amount calculation unit 172a determines whether or not the restoration integrated value is equal to or less than the corrected integrated value (step ST102).
  • step ST102 If the determination in step ST102 is "Yes”, the process proceeds to step ST100. If the determination in step ST102 is "No”, the process proceeds to step ST93.
  • the modified command value candidate is output to the robot 10 as the command value for a certain period of time. In some cases, the time required to move to the target position can be shortened.
  • Embodiment 3 it is determined whether the robot 10 is operable or inoperable with respect to the post-correction motion path based on the relative distance or relative speed from the surrounding environment SO with respect to each position of the post-correction motion path.
  • FIG. 15 is a block diagram showing an example of the robot control device 1b according to the third embodiment. 15 is that the robot control device 1b includes a command value candidate generation unit 12b instead of the command value candidate generation unit 12, and a corrected motion path determination unit 16b instead of the corrected motion path determination unit 16. , different from FIG. Since the parts other than the command value candidate generation unit 12b and the corrected motion path determination unit 16b are the same as those shown in FIG. 2, description thereof will be omitted.
  • the command value candidate generation unit 12b sets interpolation points passing through the motion path before change, and generates command value candidates based on the interpolation points. Further, the command value candidate generation unit 12b corrects the interpolation point based on the determination result from the post-correction motion path determination unit 16b, and generates the next command value candidate for the robot 10 based on the corrected interpolation point. .
  • the command value candidate generator 12b will be described later in detail with reference to FIG.
  • the post-correction motion path determination unit 16b outputs determination results based on the relative distance or relative speed from the surrounding environment SO around the robot 10 with respect to each position of the post-correction motion path, in addition to the determination results described in the first embodiment. .
  • FIG. 16 is a block diagram showing an example of the command value candidate generating section 12b according to the third embodiment.
  • the command value candidate generation unit 12b includes an interpolation point setting unit 121b, a previous interpolation point holding unit 122, a relative value calculation unit 123, and a command value candidate calculation unit .
  • FIG. 16 is different from FIG. 3 in that the command value candidate generation unit 12b includes an interpolation point setting unit 121b instead of the interpolation point setting unit 121.
  • the interpolation point setting unit 121b corrects the interpolation points based on the determination result from the post-correction motion path determination unit 16b. Assuming that the robot 10 moves on the corrected movement path, the robot 10 needs to decelerate when the surrounding environment SO approaches the corrected movement path from the front. Therefore, the interpolation point setting unit 121b reduces the interval between interpolation points. Further, when the surrounding environment SO approaches the corrected motion path from behind, the robot 10 needs to be accelerated. Therefore, the interpolation point setting unit 121b increases the interval between the interpolation points. When increasing the intervals between the interpolation points, the interpolation point setting unit 121b sets the interpolation points so that the upper limit values of the joint angular velocity and angular acceleration that the robot 10 can output are not exceeded.
  • the interpolation point setting unit 121b does not necessarily need to set interpolation points to decelerate the robot 10, for example, when the surrounding environment SO faces the corrected motion path from the front.
  • the interpolation point setting unit 121b may decelerate the robot 10 if the relative distance from each position on the corrected motion path to the surrounding environment SO is equal to or less than a predetermined value, or if the relative speed is equal to or greater than a predetermined value.
  • the predetermined value is, for example, a value that eliminates the possibility of collision with the surrounding environment SO when the robot 10 moves on the corrected motion path.
  • FIGS. 17A and 17B are schematic diagrams showing an example of the motion of the robot 10 according to the third embodiment.
  • FIGS. 17A and 17B show the case where the target position is changed to GLb while the robot 10 is moving from the motion start position ST toward the target position GLa along the preset motion path Ra.
  • 2 is a diagram showing the motion of the robot 10 in FIG.
  • FIG. 17(a) is a diagram showing the motion of the robot 10 when the surrounding environment SO is approaching from the front.
  • FIG. 17(b) is a diagram showing the motion of the robot 10 when the surrounding environment SO is approaching from behind.
  • the operator or the robot control device 1b sets the hand of the robot 10 to the motion start position ST.
  • the command value candidate generator 12b sets an interpolation point P2 on the motion path Ra.
  • the command value output unit 17 outputs to the robot 10 a command value corresponding to the interpolation point P1.
  • the command value candidate generation unit 12b sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate.
  • the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12b based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P21.
  • the external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2.
  • the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Note that the interpolation points P3, P4, . .
  • the corrected motion path determination unit 16b determines whether the robot 10 can move the corrected command value candidates P21, positions P31, P41, . . . judge. As shown in FIG. 17A, the corrected motion path determination unit 16b determines that the surrounding environment SO does not exist on the corrected motion path R1, but is approaching from the front. In this case, the corrected motion path determination unit 16b determines that the robot 10 cannot move.
  • the command value output unit 17 outputs to the robot 10 a command value corresponding to the command value candidate P2. Since the surrounding environment SO does not exist on the corrected motion path R1, the command value output unit 17 may output to the robot 10 a command value corresponding to the corrected command value candidate P21. Here, the command value output unit 17 sets the command value candidate P2 as the command value for the robot 10 .
  • the post-correction motion path determination unit 16b determines that when the relative distance between each position on the post-correction motion path R1 and the surrounding environment SO suddenly decreases, or when the relative speed suddenly increases, the surrounding environment SO Judging that it is coming from the front.
  • the corrected motion path determination unit 16b determines that the relative distance is equal to or less than a predetermined value or that the relative speed is equal to or greater than a predetermined value
  • the corrected motion path determining unit 16b determines that the motion is impossible as a result of the determination.
  • the post-correction motion path determination unit 16b may only determine whether the relative distance is equal to or less than a predetermined value, or may determine whether the relative speed is equal to or greater than a predetermined value.
  • the post-correction motion path determination unit 16b may use relative acceleration. That is, when the corrected motion path determination unit 16b determines that the relative acceleration is equal to or greater than a predetermined value, the determination result may be the inability to move.
  • the command value candidate generation unit 12b sets a point P3 with a small interval from the interpolation point P2 on the operation path Ra as shown in FIG. . That is, the robot 10 is controlled to slow down. This is because it was determined in the previous control cycle that the surrounding environment SO was approaching from the front.
  • the command value candidate generator 12b sets the interpolation point P3 as a command value candidate.
  • the command value candidate correction unit 14 corrects the command value candidate P3 from the command value candidate generation unit 12b based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P31.
  • the external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P31 and the command value candidate P3.
  • the post-correction motion path calculation unit 15 sets interpolation points P4, . Based on the interpolation points P4, . A post-movement path R1 is calculated.
  • the corrected motion path determination unit 16b determines whether the robot 10 can move the corrected command value candidates P31, positions P41, . . . do. Since the operation after this is the same as the operation in the control period 2, the explanation is omitted.
  • the operator or the robot control device 1b sets the hand of the robot 10 to the motion start position ST.
  • the command value candidate generator 12b sets an interpolation point P2 on the motion path Ra.
  • the command value output unit 17 outputs to the robot 10 a command value corresponding to the interpolation point P1.
  • the command value candidate generation unit 12b sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate.
  • the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12b based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P21.
  • the external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2.
  • the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Note that the interpolation points P3, P4, . .
  • the corrected motion path determination unit 16b determines whether the robot 10 can move the corrected command value candidates P21, positions P31, P41, . . . judge. As shown in FIG. 17B, the corrected motion path determination unit 16b determines that the surrounding environment SO does not exist on the corrected motion path R1, but is approaching from behind. In this case, the corrected motion path determination unit 16b determines that the robot 10 cannot move.
  • the command value output unit 17 outputs to the robot 10 a command value corresponding to the command value candidate P2. Since the surrounding environment SO does not exist on the corrected motion path R1, the command value output unit 17 may output to the robot 10 a command value corresponding to the corrected command value candidate P21. Here, the command value output unit 17 sets the command value candidate P2 as the command value for the robot 10 .
  • the post-correction motion path determining unit 16b determines that the position of the surrounding environment SO is determined when the relative distance to each position on the post-correction motion path R1 from the surrounding environment SO gradually decreases, or when the relative speed gradually increases. Determined to come from behind.
  • the corrected motion path determination unit 16b determines that the relative distance is equal to or less than a predetermined value or that the relative speed is equal to or greater than a predetermined value
  • the corrected motion path determining unit 16b determines that the motion is impossible as a result of the determination.
  • the post-correction motion path determination unit 16b may only determine whether the relative distance is equal to or less than a predetermined value, or may determine whether the relative speed is equal to or greater than a predetermined value.
  • the post-correction motion path determination unit 16b may use relative acceleration. That is, when the corrected motion path determination unit 16b determines that the relative acceleration is equal to or greater than a predetermined value, the determination result may be the inability to move.
  • the command value candidate generation unit 12b sets a point P3 on the operation path Ra with an increased interval from the interpolation point P2 as shown in FIG. . That is, the robot 10 is controlled to increase its speed. This is because it was determined in the previous control cycle that the surrounding environment SO was approaching from behind.
  • the command value candidate generator 12b sets the interpolation point P3 as a command value candidate.
  • the command value candidate correction unit 14 corrects the command value candidate P3 from the command value candidate generation unit 12b based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P31.
  • the external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P31 and the command value candidate P3.
  • the post-correction motion path calculator 15 sets interpolation points P4, . Based on the interpolation points P4, . A post-movement path R1 is calculated.
  • the corrected motion path determination unit 16b determines whether the robot 10 can move the corrected command value candidates P31, positions P41, . . . do. Since the operation after this is the same as the operation in the control period 2, the explanation is omitted.
  • FIG. 18 is a flow chart showing an example of the operation of the robot control device 1b according to the third embodiment. That is, FIG. 18 is a flow chart showing an example of the robot control method according to the third embodiment. 18 differs from FIG. 5 in that step ST11 is performed instead of step ST5 and step ST12 is performed instead of step ST2. Since steps other than steps ST11 and ST12 are the same as those shown in FIG. 5, description thereof is omitted.
  • the post-correction motion path determination unit 16b determines whether the robot 10 is operable or inoperable with respect to the post-correction motion path, and outputs the determination result. Further, the post-correction motion path determination unit 16b outputs a determination result based on the relative distance or relative speed between each position of the post-correction motion path and the surrounding environment SO around the robot (step ST11). The processing of step ST11 will be described in detail using FIG.
  • the command value candidate generation unit 12b corrects the interpolation point based on the determination result from the corrected motion path determination unit 16b, and generates the next command value candidate based on the corrected interpolation point (step ST12).
  • the processing of step ST12 will be described in detail using FIG.
  • FIG. 19 is a flow chart showing an example of the operation of the post-correction motion path determination unit 16b according to the third embodiment. That is, FIG. 19 is a flow chart showing details of the process of step ST11 in FIG. FIG. 19 differs from FIG. 8 in that the processing from step ST111 to step ST113 is performed. Since steps other than steps ST111 to ST113 are the same as those shown in FIG. 8, description thereof is omitted.
  • step ST111 the post-correction motion path determination unit 16b sets the flag to 0 (step ST111).
  • the flag is a variable that indicates whether or not the command value candidate generation unit 12b corrects the interpolation point.
  • the post-correction motion path determination unit 16b determines whether the relative distance is equal to or less than a predetermined value or the relative speed is equal to or greater than a predetermined value (step ST112). Note that the post-correction motion path determination unit 16b may simply determine whether the relative distance is equal to or less than a predetermined value, or may determine whether the relative speed is equal to or greater than a predetermined value.
  • step ST112 If the determination in step ST112 is "Yes”, the process proceeds to step ST54. If the determination in step ST112 is "No”, the process proceeds to step ST113.
  • step ST113 the post-correction motion path determination unit 16b sets the flag to 1 (step ST113).
  • step ST55 the process of step ST55 is performed.
  • step ST54 may be performed after the process of step ST113 is performed. That is, even if the determination in step ST112 is "No", the post-correction movement path determination unit 16b does not perform the process of making the determination result inoperable in step ST55, and continues the processes from step ST54 to step ST58. you can go Even if the determination in step ST112 is "No", the post-correction motion path determination unit 16b may determine that the determination result is "Yes” in steps ST56 to ST58.
  • FIG. 20 is a flow chart showing an example of the operation of the command value candidate generator 12b according to the third embodiment. That is, FIG. 20 is a flow chart showing details of the process of step ST12 in FIG. FIG. 20 differs from FIG. 6 in that steps ST121 and ST122 are performed. Since steps other than steps ST121 and ST122 are the same as those shown in FIG. 6, description thereof is omitted.
  • the interpolation point setting unit 121b determines whether or not the flag is 1 (step ST121).
  • step ST121 If the determination in step ST121 is "Yes”, the process proceeds to step ST122. If the determination in step ST121 is "No”, the process proceeds to step ST22.
  • step ST121 the interpolation point setting unit 121b corrects the interpolation point J(k) in a certain control cycle k (step ST122). For example, when the surrounding environment SO approaches the corrected motion path from the front, the interpolation point setting unit 121b corrects the interpolation points J(k) so that the intervals between the interpolation points are reduced. Further, when the surrounding environment SO approaches the corrected motion path from behind, the interpolation point setting unit 121b corrects the interpolation points J(k) so that the intervals between the interpolation points are increased. After the process of step ST122 is performed, the process of step ST22 is performed.
  • the command value candidate generation unit 12b corrects the interpolation point on the motion path based on the relative distance or relative speed from the surrounding environment SO with respect to each position on the motion path after correction. Therefore, the robot 10 can be appropriately controlled not only when the surrounding environment SO is stationary but also when it is moving.

Landscapes

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

Abstract

A robot control device (1, 1a, 1b) provided with: a command value candidate generation unit (12, 12b) that generates a command value candidate for a robot (10) on the basis of an operation program configured using a pre-generated operation path of the robot (10) and on the basis of a previous command value previously output to the robot (10) or operation information of the robot (10); a command value candidate correction unit (14) that corrects the command value candidate on the basis of an external correction amount associated with a change in the operation path and uses the same as a corrected command value candidate; a corrected operation path determination unit (16, 16b) that determines whether or not the robot (10) can perform operation on a corrected operation path passing through the corrected command value candidate and outputs the determination result; and a command value output unit (17, 17a) that calculates a command value for the robot (10) using the command value candidate or the corrected command value candidate on the basis of the determination result and outputs the command value.

Description

ロボット制御装置およびロボット制御方法ROBOT CONTROL DEVICE AND ROBOT CONTROL METHOD
 本開示は、ロボットの動作を外部センサなどに基づいて修正するロボット制御装置およびロボット制御方法に関する。 The present disclosure relates to a robot control device and a robot control method for correcting the motion of a robot based on an external sensor or the like.
 一般的に、ロボット制御装置は、目標位置を予め設定し、動作開始位置と目標位置とを通る動作経路で構成される動作プログラムに従ってロボットを動作させる。これをティーチングプレイバック制御という。ティーチングプレイバック制御では、予め設定された目標位置と実際に到達すべき目標位置との誤差が発生する場合、ロボットは正しい動作を行うことができずエラー停止する可能性がある。これを解決するために、撮像装置から取得された画像データに基づいて、動作経路を修正する方法がある。これをビジュアルフィードバック制御という。なお、画像データは、実際に到達すべき目標位置を含む。 In general, a robot control device presets a target position and operates the robot according to a motion program composed of a motion path passing through the motion start position and the target position. This is called teaching playback control. In teaching playback control, if there is an error between the preset target position and the actual target position to be reached, the robot may not be able to perform correct movements and may stop due to an error. In order to solve this problem, there is a method of correcting the motion path based on the image data acquired from the imaging device. This is called visual feedback control. Note that the image data includes a target position to be actually reached.
 特許文献1では、ビジュアルフィードバック制御を実現するロボット制御装置について開示されている。まず、ロボット制御装置は、予め設定された動作プログラムによる第1の指令値を生成する。次に、ロボット制御装置は、現在位置におけるロボットの画像と、到達すべき目標位置におけるロボットの画像とに基づいて第2の指令値を生成する。次に、ロボット制御装置は、第1の指令値と第2の指令値とに対しそれぞれ所定の重みで足し合わせた指令値を演算する。最後に、ロボット制御装置は、演算された指令値に従ってロボットを動作させる。 Patent Document 1 discloses a robot control device that realizes visual feedback control. First, the robot controller generates a first command value according to a preset operation program. Next, the robot controller generates a second command value based on the image of the robot at the current position and the image of the robot at the target position to be reached. Next, the robot control device calculates a command value by adding each of the first command value and the second command value with a predetermined weight. Finally, the robot controller operates the robot according to the calculated command value.
特開2015-74061号公報JP 2015-74061 A
 特許文献1では、重畳された指令値を通る動作経路が動作プログラムによる動作経路から逸脱するため、ロボットが周辺環境と干渉するケースがある。これを防止するためにロボットを緊急停止させる必要があり、復旧作業に時間がかかるという問題がある。 In Patent Document 1, there are cases where the robot interferes with the surrounding environment because the motion path passing through the superimposed command values deviates from the motion path determined by the motion program. In order to prevent this, it is necessary to stop the robot urgently, and there is a problem that recovery work takes time.
 本開示は、上述の課題を解決するためになされたもので、ロボットの動作を外部センサに基づいて修正する場合においても、ロボットの緊急停止を極力少なくするロボット制御装置およびロボット制御方法を提供することを目的とする。 The present disclosure has been made to solve the above-described problems, and provides a robot control device and a robot control method that minimize emergency stoppages of a robot even when the motion of the robot is corrected based on an external sensor. for the purpose.
 本開示に係るロボット制御装置は、予め生成されたロボットの動作経路で構成される動作プログラムと、前記ロボットに対し前回出力された前回指令値または前記ロボットの動作情報とに基づいて、前記ロボットへの指令値候補を生成する指令値候補生成部と、前記動作経路の変更に伴う外部修正量に基づいて、前記指令値候補を修正して修正後指令値候補とする指令値候補修正部と、前記修正後指令値候補を通る修正後動作経路に対し、前記ロボットの動作可能または動作不可能を判定して判定結果を出力する修正後動作経路判定部と、前記判定結果に基づいて、前記指令値候補または前記修正後指令値候補を用いて前記ロボットへの指令値を演算し、前記指令値を出力する指令値出力部と、を備える A robot control apparatus according to the present disclosure provides a motion program configured with a pre-generated motion path of a robot, and based on a previous command value output to the robot last time or motion information of the robot, to the robot. a command value candidate generating unit for generating a command value candidate of, a command value candidate correcting unit for correcting the command value candidate to be a post-correction command value candidate based on the external correction amount accompanying the change of the motion path; a corrected motion path determination unit for determining whether the robot is operable or inoperable with respect to a corrected motion path passing through the corrected command value candidates and outputting a determination result; a command value output unit that calculates a command value for the robot using the value candidate or the corrected command value candidate, and outputs the command value.
 また、本開示に係るロボット制御方法は、予め生成されたロボットの動作経路で構成される動作プログラムと、前記ロボットに対し前回出力された前回指令値または前記ロボットの動作情報とに基づいて、前記ロボットへの指令値候補を生成する工程と、前記動作経路の変更に伴う外部修正量に基づいて、前記指令値候補を修正して修正後指令値候補とする工程と、前記修正後指令値候補を通る修正後動作経路に対し動作可能または動作不可能を判定して判定結果を出力する工程と、前記判定結果に基づいて、前記指令値候補または前記修正後指令値候補を用いて前記ロボットへの指令値を演算し、前記指令値を出力する工程と、を備える Further, the robot control method according to the present disclosure is based on an operation program including a pre-generated robot operation path and a previous command value output to the robot last time or operation information of the robot. a step of generating a command value candidate for a robot; a step of correcting the command value candidate to a post-correction command value candidate based on an external correction amount associated with a change in the motion path; a step of determining whether the modified motion path passing through is operable or inoperable and outputting a determination result; and based on the determination result, using the command value candidate or the corrected command value candidate to the robot and calculating a command value of and outputting the command value
 本開示によれば、ロボット制御装置およびロボット制御方法は、ロボットの動作を外部センサに基づいて修正する場合においても、ロボットの緊急停止を極力少なくすることができる。 According to the present disclosure, the robot control device and the robot control method can minimize emergency stops of the robot even when the motion of the robot is corrected based on the external sensor.
実施の形態1から3におけるロボット制御装置のハードウェア構成を示す図である。3 is a diagram showing a hardware configuration of a robot control device according to Embodiments 1 to 3; FIG. 実施の形態1におけるロボット制御装置の一例を示すブロック図である。1 is a block diagram showing an example of a robot control device according to Embodiment 1; FIG. 実施の形態1および2における指令値候補生成部の一例を示すブロック図である。4 is a block diagram showing an example of a command value candidate generating section in Embodiments 1 and 2; FIG. 実施の形態1から3におけるロボットの動作の一例を示す模式図である。FIG. 4 is a schematic diagram showing an example of the motion of the robot in Embodiments 1 to 3; 実施の形態1におけるロボット制御装置の動作の一例を示すフローチャートである。4 is a flow chart showing an example of the operation of the robot control device according to Embodiment 1; 実施の形態1および2における指令値候補生成部の動作の一例を示すフローチャートである。4 is a flow chart showing an example of the operation of a command value candidate generation unit in Embodiments 1 and 2; 実施の形態1および2における修正後動作経路演算部の動作の一例を示すフローチャートである。7 is a flow chart showing an example of the operation of a post-correction motion path calculator in Embodiments 1 and 2; 実施の形態1および2における修正後動作経路判定部の動作の一例を示すフローチャートである。7 is a flow chart showing an example of the operation of a post-correction motion path determining unit in Embodiments 1 and 2; 実施の形態2におけるロボット制御装置の一例を示すブロック図である。FIG. 10 is a block diagram showing an example of a robot control device according to Embodiment 2; FIG. 実施の形態2における指令値出力部の一例を示すブロック図である。FIG. 10 is a block diagram showing an example of a command value output section in Embodiment 2; FIG. 実施の形態2におけるロボットの動作の一例を示す模式図である。FIG. 10 is a schematic diagram showing an example of the motion of the robot in Embodiment 2; 実施の形態2におけるロボット制御装置の動作の一例を示すフローチャートである。9 is a flow chart showing an example of the operation of the robot control device according to Embodiment 2; 実施の形態2における指令値出力部の動作の一例を示すフローチャートである。9 is a flow chart showing an example of the operation of a command value output unit according to Embodiment 2; 実施の形態2における指令値出力部の動作の別の一例を示すフローチャートである。10 is a flow chart showing another example of the operation of the command value output unit according to Embodiment 2; 実施の形態3におけるロボット制御装置の一例を示すブロック図である。FIG. 11 is a block diagram showing an example of a robot control device according to Embodiment 3; 実施の形態3における指令値候補生成部の一例を示すブロック図である。FIG. 11 is a block diagram showing an example of a command value candidate generation unit according to Embodiment 3; 実施の形態3におけるロボットの動作の一例を示す模式図である。FIG. 12 is a schematic diagram showing an example of the motion of the robot in Embodiment 3; 実施の形態3におけるロボット制御装置の動作の一例を示すフローチャートである。14 is a flow chart showing an example of the operation of the robot control device according to Embodiment 3; 実施の形態3における修正後動作経路判定部の動作の一例を示すフローチャートである。FIG. 11 is a flow chart showing an example of the operation of a post-correction motion path determination unit according to Embodiment 3. FIG. 実施の形態3における指令値候補生成部の動作の一例を示すフローチャートである。14 is a flow chart showing an example of the operation of a command value candidate generation unit according to Embodiment 3;
実施の形態1.
 図1は、実施の形態1におけるロボット制御装置1のハードウェア構成を示す図である。ロボット制御装置1は、ロボット10を制御する装置であって、ロボット10を制御するために動作するCPU(Central Processing Unit)2と、CPU2が動作する際に用いられるデータを記憶する記憶装置3と、IO(Input Output)インターフェース4とを備える。ロボット制御装置1については、後に図2を用いて詳細に説明する。
Embodiment 1.
FIG. 1 is a diagram showing a hardware configuration of a robot control device 1 according to Embodiment 1. As shown in FIG. A robot control device 1 is a device for controlling a robot 10, and includes a CPU (Central Processing Unit) 2 that operates to control the robot 10, and a storage device 3 that stores data used when the CPU 2 operates. , and an IO (Input Output) interface 4 . The robot control device 1 will be described later in detail with reference to FIG.
 CPU2は、ソフトウェアなど(ソフトウェア、ファームウェア、またはソフトウェアとファームウェア)によってロボット制御装置1の各部の機能を実現することで、ロボット10を制御する。CPU2はプロセッサの一例である。そのため、ロボット10を制御するのはCPU2に限定されず、例えばマイクロプロセッサ、マイクロコンピュータ、またはDSP(Digital Signal Processor)などでもよい。 The CPU 2 controls the robot 10 by implementing the functions of each part of the robot control device 1 using software (software, firmware, or software and firmware). CPU2 is an example of a processor. Therefore, the control of the robot 10 is not limited to the CPU 2, and may be, for example, a microprocessor, a microcomputer, or a DSP (Digital Signal Processor).
 記憶装置3は、ロボット10の筐体モデルを示すデータと、ロボット10が有する図示しない手先の位置および姿勢を示すデータと、ロボット10の動作プログラムとを記憶する。動作プログラムは、予め生成されたロボット10の動作経路で構成されたものであり、この動作経路は少なくともロボット10の動作開始位置と目標位置とを含む。あるいはロボット10の筐体モデルに基づいて動作開始位置における手先の位置および姿勢を関節角度に変換したもの、および目標位置における手先の位置および姿勢を関節角度に変換したものを動作経路とし、動作プログラムはこの動作経路で構成されてもよい。記憶装置3は、例えばROM(Read Only Memory)、HDD(Hard Disk Drive)またはRAM(Random Access Memory)である。 The storage device 3 stores data indicating the housing model of the robot 10 , data indicating the position and orientation of the hand (not shown) of the robot 10 , and an operation program for the robot 10 . The motion program consists of a pre-generated motion path of the robot 10 , and this motion path includes at least the motion start position and the target position of the robot 10 . Alternatively, based on the housing model of the robot 10, a motion path obtained by converting the position and posture of the hand at the motion start position into joint angles and a motion path obtained by converting the position and posture of the hand at the target position into joint angles are used as the motion program. may be configured in this motion path. The storage device 3 is, for example, a ROM (Read Only Memory), a HDD (Hard Disk Drive), or a RAM (Random Access Memory).
 IOインターフェース4は、受信装置6に対し信号を出力する。受信装置6は、例えばロボット10の動作の状態を外部に報知するランプまたはブザーである。受信装置6に対し出力される信号は、例えばロボット10の動作の状態を外部に報知するための指示コマンドなどである。IOインターフェース4は、入力装置7からの信号を入力する。入力装置7は、例えばライトカーテン、エリアセンサまたは撮像装置などの外部センサである。入力装置7からの信号は、例えば入力装置7が取得した画像から検出された周辺環境の位置である。周辺環境は、例えばロボット10周辺の安全柵、作業台、あるいは作業治具などといった障害物である。また、周辺環境は撮像装置そのものを指す場合もある。周辺環境の位置は、例えば幾何情報あるいは点群情報などによって取得される。幾何情報は、周辺環境のCAD(Computer Aided Design)データ、および周辺環境を包含する円柱や直方体などである。点群情報は、入力装置7がRGB-D(Red Green Blue-Depth)センサまたはLiDAR(Light Detection and Ranging)センサの場合に取得される情報である。 The IO interface 4 outputs signals to the receiving device 6 . The receiving device 6 is, for example, a lamp or a buzzer that notifies the operating state of the robot 10 to the outside. The signal output to the receiving device 6 is, for example, an instruction command for notifying the operating state of the robot 10 to the outside. The IO interface 4 inputs a signal from the input device 7 . The input device 7 is, for example, an external sensor such as a light curtain, an area sensor or an imaging device. The signal from the input device 7 is, for example, the position of the surrounding environment detected from the image acquired by the input device 7 . The surrounding environment is, for example, obstacles such as safety fences, work benches, or work jigs around the robot 10 . Also, the surrounding environment may refer to the imaging device itself. The position of the surrounding environment is acquired by, for example, geometric information or point group information. The geometric information is CAD (Computer Aided Design) data of the surrounding environment, and cylinders, cuboids, and the like that contain the surrounding environment. The point group information is information obtained when the input device 7 is an RGB-D (Red Green Blue-Depth) sensor or a LiDAR (Light Detection and Ranging) sensor.
 ロボット10は、図示しない複数のアームと、各アームの先端に設けられる手先とを有する。各アームは、隣り合うアームの接続部を軸に回転することができる状態でロボット10の本体に接続されている。また、ロボット10の本体とアームとが接続される部分を関節部と定義する。ロボット10は、1つ以上の関節部を備える。また、それぞれの関節部は、関節角度を変更する図示しない駆動装置を備える。ロボット制御装置1は、駆動装置を制御することで、手先の位置および姿勢を制御することができる。なお、接続部も関節部と同様、駆動装置を備えることができ、駆動装置は接続部の回転角度を変更することができる。そこで、以降は接続部と関節部とをまとめて関節部と呼ぶ。駆動装置は、例えばサーボモータまたはステッピングモータに代表される電動モータでもよいし、空気圧または油圧を利用したシリンダでもよいが、これらに限定されない。 The robot 10 has a plurality of arms (not shown) and a hand provided at the tip of each arm. Each arm is connected to the main body of the robot 10 so as to be rotatable about the connecting portion of the adjacent arm. Also, a portion where the main body of the robot 10 and the arm are connected is defined as a joint portion. The robot 10 has one or more joints. Moreover, each joint part is provided with a driving device (not shown) for changing the joint angle. The robot control device 1 can control the position and posture of the hand by controlling the driving device. Note that the connecting portion can also be provided with a driving device like the joint portion, and the driving device can change the rotation angle of the connecting portion. Therefore, hereinafter, the connection portion and the joint portion will be collectively referred to as the joint portion. The driving device may be, for example, an electric motor typified by a servomotor or a stepping motor, or a cylinder using pneumatic pressure or hydraulic pressure, but is not limited to these.
 関節部は、図示しない関節角度計測装置を備える。関節角度計測装置は、例えばエンコーダまたは撮像装置などである。関節角度計測装置が撮像装置の場合、撮像装置によって取得される画像を用いて関節角度を求めることができる。あるいは、ロボット10が指令値に対し誤差無く追従することを前提に、記憶装置3によって記憶された各制御周期での指令値そのものを関節角度としてもよい。ここで指令値とは、IOインターフェース4からロボット10に対し送信される関節角度、あるいは手先の位置および姿勢である。指令値が手先の位置および姿勢の場合、記憶装置3で記憶されたロボット10の筐体モデルに基づいて、手先の位置及び姿勢から関節角度への変換が必要となる。以降、特に言及がない限り指令値は関節角度として記載される。すなわち、ロボット制御装置1の各構成要素間で入力および出力される情報は、関節角度に関する情報である。 The joint is equipped with a joint angle measuring device (not shown). The joint angle measuring device is, for example, an encoder or imaging device. When the joint angle measuring device is an imaging device, the joint angle can be obtained using an image acquired by the imaging device. Alternatively, on the premise that the robot 10 follows the command value without error, the command value itself in each control cycle stored by the storage device 3 may be used as the joint angle. Here, the command value is the joint angle transmitted from the IO interface 4 to the robot 10, or the position and posture of the hand. If the command value is the position and orientation of the hand, it is necessary to convert the position and orientation of the hand into joint angles based on the housing model of the robot 10 stored in the storage device 3 . Hereinafter, command values are described as joint angles unless otherwise specified. That is, the information input and output between each component of the robot control device 1 is information regarding joint angles.
 図2は、実施の形態1におけるロボット制御装置1の一例を示すブロック図である。図2に示すように、ロボット制御装置1は、動作プログラム記憶部11と、指令値候補生成部12と、外部修正量取得部13と、指令値候補修正部14と、修正後動作経路演算部15と、修正後動作経路判定部16と、指令値出力部17とを備える。図2は、ある制御周期においてロボット制御装置1がロボット10を制御する際のブロック図である。ロボット制御装置1は、予め決められた制御周期でロボット10に指令値を出力する。指令値は、1つ以上の関節部に対応する駆動装置に出力される関節角度である。よって、指令値は1つ以上の関節角度で構成される。ロボット10は、ロボット制御装置1からの関節角度を入力することで、ロボット10が有する複数のアームを駆動する。 FIG. 2 is a block diagram showing an example of the robot control device 1 according to the first embodiment. As shown in FIG. 2, the robot control device 1 includes an operation program storage unit 11, a command value candidate generation unit 12, an external correction amount acquisition unit 13, a command value candidate correction unit 14, and a post-correction motion path calculation unit. 15 , a post-correction motion path determination unit 16 , and a command value output unit 17 . FIG. 2 is a block diagram when the robot control device 1 controls the robot 10 in a certain control period. The robot control device 1 outputs command values to the robot 10 at predetermined control cycles. A command value is a joint angle output to a driving device corresponding to one or more joints. Therefore, the command value is composed of one or more joint angles. The robot 10 drives a plurality of arms of the robot 10 by inputting joint angles from the robot control device 1 .
 動作プログラム記憶部11は、記憶装置3の一部であり、ロボット10の手先の位置および姿勢を示す1以上のデータと、ロボット10の動作プログラムとを記憶する。動作プログラムは、ロボット動作前に予め作業者により設定されてもよい。この時、動作プログラムを構成する動作経路は、ロボット10が周辺環境と干渉しないよう生成されるのが望ましい。 The motion program storage unit 11 is a part of the storage device 3 and stores one or more data indicating the position and orientation of the hand of the robot 10 and the motion program of the robot 10 . The operation program may be set in advance by the operator before the robot operates. At this time, it is desirable that the motion path constituting the motion program is generated so that the robot 10 does not interfere with the surrounding environment.
 指令値候補生成部12は、動作プログラム記憶部11からの動作プログラムと、ロボット10に対し前回出力された前回指令値とに基づいて、ロボット10への指令値候補を生成する。あるいは、指令値候補生成部12は、動作プログラムとロボット10の動作情報とに基づいて、指令値候補を生成する。前回指令値は、ある制御周期を起点として、それよりも1つ前の制御周期において指令値出力部17からロボット10へ出力された指令値である。ロボット10の動作情報は、ロボットの関節部が有する関節角度計測装置によって取得される情報であり、指令値候補生成部12が指令値候補を生成するタイミングで取得される情報である。指令値候補生成部12については、後に図3を用いて詳細に説明する。 The command value candidate generation unit 12 generates command value candidates for the robot 10 based on the operation program from the operation program storage unit 11 and the previous command value output to the robot 10 last time. Alternatively, the command value candidate generator 12 generates command value candidates based on the motion program and the motion information of the robot 10 . The previous command value is a command value output from the command value output unit 17 to the robot 10 in the previous control cycle starting from a certain control cycle. The motion information of the robot 10 is information acquired by the joint angle measuring device of the joint of the robot, and is information acquired at the timing when the command value candidate generation unit 12 generates command value candidates. The command value candidate generator 12 will be described later in detail with reference to FIG.
 外部修正量取得部13は、動作プログラム記憶部11で記憶される動作経路、特に目標位置の変更に伴う外部修正量を取得する。すなわち、外部修正量取得部13は、ロボット10動作中に目標位置が変更された際にロボット制御装置1が指令値候補を修正するのに用いる外部修正量を取得する。目標位置が変更されるケースとして、予め設定された目標位置と実際に到達すべき目標位置との誤差が発生する場合と、予め設定された目標位置そのものが変更された場合とがある。後者は、例えばロボット10が把持する部品を容器に収納する際、容器がベルトコンベアなどで移動する場合である。この場合、ロボット10動作中に目標位置、すなわち容器の位置が変更される。外部修正量は、撮像装置などの外部センサで取得されたある制御周期におけるロボットの画像と、到達すべき目標位置におけるロボットの画像とに基づいて演算される。具体的には、外部修正量は、ある制御周期におけるロボットの位置と到達すべき目標位置の位置とを画像から求め、両者の位置に基づいて演算される。外部修正量は、両者の位置の差そのものではなく、両者の位置の差に対しある刻み幅を持った値である。すなわち、外部修正量は、両者の位置の差を少しずつ小さくしていくような値である。外部修正量は、各制御周期で同じ値であってもよいし、違う値であってもよい。 The external correction amount acquisition unit 13 acquires the external correction amount associated with the change of the motion path, particularly the target position, stored in the motion program storage unit 11 . That is, the external correction amount acquisition unit 13 acquires the external correction amount used by the robot control device 1 to correct the command value candidate when the target position is changed during operation of the robot 10 . The target position is changed when there is an error between the preset target position and the target position to be actually reached, and when the preset target position itself is changed. The latter is, for example, the case where the container is moved by a belt conveyor or the like when storing the parts gripped by the robot 10 in the container. In this case, the target position, that is, the position of the container, is changed during operation of the robot 10 . The amount of external correction is calculated based on an image of the robot in a certain control cycle acquired by an external sensor such as an imaging device and an image of the robot at the target position to be reached. Specifically, the external correction amount is calculated based on the position of the robot and the position of the target position to be reached in a certain control cycle, obtained from the image. The external correction amount is not the difference between the two positions itself, but a value with a certain step size for the difference between the two positions. That is, the external correction amount is a value that gradually reduces the difference between the two positions. The external correction amount may be the same value in each control cycle, or may be a different value.
 外部修正量を演算する方法として、撮像装置で取得される画像を用いる例を挙げたが、これに限定されない。一例として、撮像装置の代わりにLiDARを用い、LiDARによって取得されるロボット10の点群情報を用いて外部修正量を演算してもよい。また、外部修正量取得部13は、ロボット制御装置1外で演算される外部修正量を取得するが、これに限定されない。外部修正量取得部13は、外部修正量を取得するだけでなく演算する機能も有してよい。また、外部修正量がロボット10の手先の位置および姿勢に関する修正量の場合、外部修正量取得部13は手先の位置および姿勢を関節角度に変換する。 As a method of calculating the amount of external correction, an example of using an image acquired by an imaging device was given, but it is not limited to this. As an example, a LiDAR may be used instead of the imaging device, and the external correction amount may be calculated using the point cloud information of the robot 10 acquired by the LiDAR. Also, the external correction amount acquisition unit 13 acquires an external correction amount calculated outside the robot control device 1, but is not limited to this. The external correction amount acquisition unit 13 may have a function of calculating as well as acquiring the external correction amount. When the external correction amount is a correction amount relating to the position and orientation of the hand of the robot 10, the external correction amount acquisition unit 13 converts the position and orientation of the hand into joint angles.
 指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12からの指令値候補を修正し、これを修正後指令値候補とする。 The command value candidate correction unit 14 corrects the command value candidate from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and uses this as a post-correction command value candidate.
 修正後動作経路演算部15は、指令値候補修正部14からの修正後指令値候補を通る修正後動作経路を演算する。修正後動作経路を演算する方法については、後に詳細に説明する。 The post-correction motion path calculation unit 15 calculates a post-correction motion path passing through the post-correction command value candidates from the command value candidate correction unit 14 . A method for calculating the modified motion path will be described later in detail.
 修正後動作経路判定部16は、修正後動作経路演算部15からの修正後動作経路に対し、ロボット10の動作可能または動作不可能を判定して判定結果を出力する。修正後動作経路判定部16は、修正後動作経路に対しロボット10が追従できる場合には判定結果を動作可能とし、追従できない場合には判定結果を動作不可能とする。ロボット10が追従できるか否かの判定は、静的判定と動的判定とが存在する。静的判定は、例えば関節角度の物理的な可動範囲内でロボット10が修正後動作経路上を動作可能か否かの判定である。また、静的判定は、例えば周辺環境と干渉せずにロボット10が修正後動作経路上を動作可能か否か、あるいは設定された作業空間内でロボット10が修正後動作経路上を動作可能か否かの判定である。また、動的判定は、例えば所定の時間内でロボット10が修正後動作経路上を動作可能か否かの判定である。これは、修正後動作経路上を動作する上で求められる関節の角速度および角加速度が、それぞれロボット10が出力可能な関節の角速度および角加速度の上限値以下であるか否かの判定に相当する。 The post-correction motion path determination unit 16 determines whether the robot 10 is operable or inoperable with respect to the post-correction motion path from the post-correction motion path calculation unit 15, and outputs the determination result. If the robot 10 can follow the corrected motion path, the corrected motion path determining unit 16 determines that the robot 10 can move. There are static determination and dynamic determination for determining whether or not the robot 10 can follow. The static determination is, for example, a determination as to whether or not the robot 10 can move on the post-correction motion path within the physical movable range of the joint angles. In addition, the static determination is, for example, whether the robot 10 can move on the corrected motion path without interfering with the surrounding environment, or whether the robot 10 can move on the modified motion path within the set work space. It is a judgment of no. Dynamic determination is, for example, a determination as to whether or not the robot 10 can move on the corrected motion path within a predetermined period of time. This corresponds to determining whether or not the angular velocity and angular acceleration of the joints required for moving on the modified motion path are equal to or less than the upper limit values of the angular velocity and angular acceleration of the joints that the robot 10 can output. .
 指令値出力部17は、修正後動作経路判定部16からの判定結果に基づいて、指令値候補生成部12からの指令値候補、または指令値候補修正部14からの修正後指令値候補を用いてロボット10への指令値を演算し、指令値を出力する。本実施の形態1では、指令値出力部17は、判定結果が動作可能である場合には修正後指令値候補を指令値とし、判定結果が動作不可能である場合には指令値候補を指令値とする。 The command value output unit 17 uses the command value candidate from the command value candidate generation unit 12 or the corrected command value candidate from the command value candidate correction unit 14 based on the determination result from the corrected operation path determination unit 16. A command value to the robot 10 is calculated using the controller 10, and the command value is output. In the first embodiment, the command value output unit 17 uses the corrected command value candidate as the command value when the determination result is operable, and commands the command value candidate when the determination result is inoperable. value.
 図3は、実施の形態1における指令値候補生成部12の一例を示すブロック図である。指令値候補生成部12は、補間点設定部121と、前回補間点保持部122と、相対値演算部123と、指令値候補演算部124とを備える。 FIG. 3 is a block diagram showing an example of the command value candidate generator 12 according to the first embodiment. The command value candidate generation unit 12 includes an interpolation point setting unit 121 , a previous interpolation point holding unit 122 , a relative value calculation unit 123 , and a command value candidate calculation unit 124 .
 補間点設定部121は、動作プログラム記憶部11からの動作経路を通る補間点のうち、ある制御周期kでの補間点J(k)を設定する。但し、kはk≧0であり、ロボット10の動作開始からの指令値出力回数に応じてインクリメントされる整数である。また、本来kは制御周期の指標を示すものであるが、以降では簡単のために単に「制御周期」と記載する。なお、制御周期kが0の場合は、ロボット10が動作開始位置に設定されることを意味し、指令値は予め動作開始位置として出力される。よって、以降はk>0として扱う。補間点J(k)は、外部修正量取得部13からの外部修正量が常にゼロであると仮定した場合のロボット10の関節角度である。補間点J(k)は、関節の角速度および角加速度がそれぞれ異なる所定の値以下となるよう設定されるのが望ましい。この所定の値とは、ロボット10が出力可能な関節の角速度および角加速度の上限値に対し尤度(例えば80%など)を持った値である。 The interpolation point setting unit 121 sets an interpolation point J(k) in a certain control cycle k among the interpolation points passing through the operation path from the operation program storage unit 11 . However, k is k≧0, and is an integer that is incremented according to the number of command value outputs from the start of the robot 10 operation. Further, although k originally indicates an index of the control period, hereinafter, it is simply described as "control period" for the sake of simplification. When the control period k is 0, it means that the robot 10 is set at the motion start position, and the command value is output in advance as the motion start position. Therefore, it is treated as k>0 hereinafter. The interpolation point J(k) is the joint angle of the robot 10 assuming that the external correction amount from the external correction amount acquisition unit 13 is always zero. The interpolation point J(k) is desirably set so that the angular velocity and angular acceleration of the joint are equal to or less than different predetermined values. This predetermined value is a value having a likelihood (for example, 80%) with respect to the upper limit values of joint angular velocities and angular accelerations that can be output by the robot 10 .
 前回補間点保持部122は、ある制御周期kより1つ前の制御周期(k-1)での前回補間点J(k-1)を保持する。 The previous interpolation point holding unit 122 holds the previous interpolation point J(k-1) in the control cycle (k-1) one before a certain control cycle k.
 相対値演算部123は、補間点設定部121からの補間点J(k)と、前回補間点保持部122からの補間点J(k-1)とに基づいて、ある制御周期kにおける相対値dJ(k)を演算する。相対値dJ(k)は、以下の数式(1)となる。 The relative value calculation unit 123 calculates a relative value in a certain control cycle k based on the interpolation point J(k) from the interpolation point setting unit 121 and the interpolation point J(k−1) from the previous interpolation point holding unit 122. Compute dJ(k). The relative value dJ(k) is given by Equation (1) below.
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000001
 但し、nはn≧1であり、動作経路の目標位置における制御周期を示す整数である。 However, n is n≧1 and is an integer indicating the control cycle at the target position of the movement path.
 指令値候補演算部124は、指令値出力部17からの前回の制御周期(k-1)における指令値J(k-1)と、相対値演算部123からの相対値dJ(k)とに基づいて、ある制御周期kにおける指令値候補J(k)を演算する。指令値候補J(k)は、以下の数式(2)となる。なお、前回の制御周期(k-1)における指令値の代わりに、ロボット10の動作情報をJ(k-1)としてもよい。 The command value candidate calculation unit 124 outputs the command value J 0 (k−1) in the previous control period (k−1) from the command value output unit 17, the relative value dJ(k) from the relative value calculation unit 123, and A command value candidate J p (k) in a certain control cycle k is calculated based on . The command value candidate J p (k) is given by Equation (2) below. Note that the motion information of the robot 10 may be J 0 (k−1) instead of the command value in the previous control cycle (k−1).
Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000002
 次に、修正後動作経路演算部15が修正後動作経路を演算する方法について説明する。演算方法は、制御周期kと目標位置における制御周期nとの大小に応じて異なる。k>nの場合には、修正後動作経路演算部15は、指令値候補修正部14からの修正後指令値候補を修正後動作経路としてそのまま設定する。k≦nの場合には、修正後動作経路演算部15は、以下の方法で修正後動作経路を演算する。 Next, a method for the post-correction motion path calculation unit 15 to calculate the post-correction motion path will be described. The calculation method differs according to the magnitude of the control period k and the control period n at the target position. When k>n, the post-correction motion path calculation unit 15 directly sets the post-correction command value candidate from the command value candidate correction unit 14 as the post-correction motion path. When k≦n, the post-correction motion path calculation unit 15 calculates the post-correction motion path by the following method.
 まず、修正後動作経路演算部15は、指令値候補を通り、ある制御周期kから目標位置での制御周期nまでの動作経路T(k)を以下の数式(3)のように定義する。 First, the post-correction motion path calculation unit 15 defines a motion path T(k) from a certain control cycle k to a control cycle n at the target position, passing through the command value candidates, as shown in Equation (3) below.
Figure JPOXMLDOC01-appb-M000003
Figure JPOXMLDOC01-appb-M000003
 修正後動作経路演算部15は、制御周期(k+1)以降の補間点を設定し、数式(1)を用いて相対値を演算することで、数式(3)に示す動作経路T(k)を設定する。次に、修正後動作経路演算部15は、ある制御周期kから目標位置までの制御周期nまでの動作経路差分dT(k)を以下の数式(4)のように定義する。 The post-correction motion path calculation unit 15 sets the interpolation point after the control cycle (k+1) and calculates the relative value using the formula (1), thereby obtaining the motion path T(k) shown in the formula (3). set. Next, the post-correction motion path calculation unit 15 defines a motion path difference dT(k) from a given control cycle k to a control cycle n up to the target position as shown in Equation (4) below.
Figure JPOXMLDOC01-appb-M000004
Figure JPOXMLDOC01-appb-M000004
 最後に、修正後動作経路演算部15は、修正後指令値候補J(k)を通り、ある制御周期kから目標位置での制御周期nまでの修正後動作経路T(k)を以下の数式(5)のように定義する。 Finally, the post-correction motion path calculation unit 15 passes through the post-correction command value candidate J m (k) and calculates the post-correction motion path T m (k) from a certain control cycle k to the control cycle n at the target position as follows: is defined as in Equation (5).
Figure JPOXMLDOC01-appb-M000005
Figure JPOXMLDOC01-appb-M000005
 数式(3)および数式(5)より、修正後動作経路T(k)は、指令値候補J(k)を通る動作経路T(k)に対する、修正後指令値候補J(k)と指令値候補J(k)との差分(J(k)-J(k))である。 From the equations (3) and (5), the modified motion path T m (k) is the modified command value candidate J m (k) and the motion path T (k) passing through the command value candidate J (k). It is the difference (J m (k)-J(k)) from the command value candidate J(k).
 図4(a)~(c)は、実施の形態1におけるロボット10の動作の一例を示す模式図である。図4(a)~(c)は、ロボット10が動作開始位置STから目標位置GLaに向かって予め設定された動作経路Ra上を動作する途中で、目標位置がGLbに変更された場合のロボット10の動作を示す図である。図4(a)は、ロボット10の周辺に周辺環境SOが存在しない場合のロボット10の動作を示す図である。図4(b)および図4(c)は、周辺環境SOが存在する場合のロボット10の動作を示す図である。なお、ロボット10の動作の概念図として分かりやすく記述するために、図4(a)~(c)では指令値をロボット10の関節角度ではなくロボット10の手先の位置としている。これは、後の図11および図17でも同様である。 4(a) to (c) are schematic diagrams showing an example of the motion of the robot 10 according to the first embodiment. FIGS. 4A to 4C show the robot 10 when the target position is changed to GLb while the robot 10 is moving from the motion start position ST toward the target position GLa along the preset motion path Ra. 10 shows the operation of FIG. FIG. 4(a) is a diagram showing the operation of the robot 10 when the surrounding environment SO does not exist around the robot 10. FIG. 4(b) and 4(c) are diagrams showing the motion of the robot 10 when the surrounding environment SO exists. 4(a) to 4(c), the position of the hand of the robot 10 is used as the command value instead of the joint angle of the robot 10, in order to describe the operation of the robot 10 in an easy-to-understand conceptual diagram. This also applies to later FIGS. 11 and 17. FIG.
 図4(a)に示すように、制御周期が0において、作業者あるいはロボット制御装置1は、ロボット10の手先を動作開始位置STに設定する。制御周期1において、指令値候補生成部12は、動作経路Ra上の補間点P1を設定する。指令値出力部17は、補間点P1に相当する指令値をロボット10へ出力する。 As shown in FIG. 4(a), when the control cycle is 0, the operator or the robot control device 1 sets the hand of the robot 10 to the motion start position ST. In control cycle 1, the command value candidate generator 12 sets an interpolation point P1 on the motion path Ra. The command value output unit 17 outputs to the robot 10 a command value corresponding to the interpolation point P1.
 制御周期2において、目標位置GLaがGLbに変更されたと仮定する。この場合、指令値候補生成部12は、動作経路Ra上の補間点P2を設定し、これを指令値候補とする。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12からの指令値候補P2を修正し、修正後指令値候補P21を設定する。なお、制御周期2における外部修正量取得部13からの外部修正量は、修正後指令値候補P21と指令値候補P2との差分に相当する。次に、修正後動作経路演算部15は、動作経路Ra上の補間点P3、P4、・・・を設定する。修正後動作経路演算部15は、補間点P3、P4、・・・と外部修正量とに基づいて位置P31、P41、・・・を設定し、修正後指令値候補P21、位置P31、P41、・・・を通る修正後動作経路R1を演算する。次に、修正後動作経路判定部16は、ロボット10が修正後動作経路R1上の修正後指令値候補P21、位置P31、P41、・・・を動作可能であるか、動作不可能であるかを判定する。図4(a)に示すように、修正後動作経路R1上に周辺環境SOが存在しない。また、修正後動作経路R1上を動作する上で求められる関節の角速度および角加速度は、それぞれロボット10が出力可能な関節の角速度および角加速度の上限値以下であると仮定する。この場合、修正後動作経路判定部16は、ロボット10が動作可能であると判定する。指令値出力部17は、修正後指令値候補P21に相当する指令値をロボット10へ出力する。 Assume that the target position GLa is changed to GLb in control cycle 2. In this case, the command value candidate generation unit 12 sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate. Further, the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P21. . The external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2. Next, the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Based on the interpolation points P3, P4, . . . Calculate a modified motion path R1 passing through . Next, the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidates P21, positions P31, P41, . . . judge. As shown in FIG. 4A, the surrounding environment SO does not exist on the post-correction motion path R1. It is also assumed that the angular velocity and angular acceleration of the joints required for moving along the corrected motion path R1 are equal to or less than the upper limit values of the angular velocity and angular acceleration of the joints that the robot 10 can output. In this case, the corrected motion path determination unit 16 determines that the robot 10 is operable. The command value output unit 17 outputs to the robot 10 a command value corresponding to the post-correction command value candidate P21.
 制御周期3において、指令値候補生成部12は、補間点P3と補間点P2との差分および前回の指令値P21に基づいて指令値候補P31を生成する。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12からの指令値候補P31を修正し、修正後指令値候補P32を設定する。なお、制御周期3における外部修正量は、修正後指令値候補P32と指令値候補P31との差分に相当する。次に、修正後動作経路演算部15は、位置P41、・・・と外部修正量とに基づいて位置P42、・・・を設定し、修正後指令値候補P32、位置P42、・・・を通る修正後動作経路R2を演算する。次に、修正後動作経路判定部16は、ロボット10が修正後動作経路R2上の修正後指令値候補P32、位置P42、・・・を動作可能であるか、動作不可能であるかを判定する。図4(a)に示すように、修正後動作経路R2上に周辺環境SOが存在しない。また、修正後動作経路R2上を動作する上で求められる関節の角速度および角加速度は、それぞれロボット10が出力可能な関節の角速度および角加速度の上限値以下であると仮定する。この場合、修正後動作経路判定部16は、ロボット10が動作可能であると判定する。指令値出力部17は、修正後指令値候補P32に相当する指令値をロボット10へ出力する。 In control cycle 3, the command value candidate generation unit 12 generates a command value candidate P31 based on the difference between the interpolation point P3 and the interpolation point P2 and the previous command value P21. Further, the command value candidate correction unit 14 corrects the command value candidate P31 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the command value candidate after correction P32. . The external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P32 and the command value candidate P31. Next, the post-correction motion path calculator 15 sets positions P42, . . . based on the positions P41, . A corrected motion path R2 passing through is calculated. Next, the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidate P32, the position P42, . . . do. As shown in FIG. 4A, the surrounding environment SO does not exist on the post-correction motion route R2. It is also assumed that the angular velocity and angular acceleration of the joints required for moving along the corrected motion path R2 are equal to or less than the upper limit values of the angular velocity and angular acceleration of the joints that the robot 10 can output. In this case, the corrected motion path determination unit 16 determines that the robot 10 is operable. The command value output unit 17 outputs to the robot 10 a command value corresponding to the post-correction command value candidate P32.
 制御周期4において、指令値候補生成部12は、補間点P4と補間点P3との差分および前回の指令値P32に基づいて指令値候補P42を生成する。指令値候補P42を通る動作経路R2は、変更された目標位置GLbを通るため、制御周期4における外部修正量はゼロとなる。よって、制御周期4以降、ロボット10は指令値候補P42を通る動作経路R2上を動作する。 In control cycle 4, the command value candidate generator 12 generates a command value candidate P42 based on the difference between the interpolation point P4 and the interpolation point P3 and the previous command value P32. Since the motion path R2 passing through the command value candidate P42 passes through the changed target position GLb, the external correction amount in the control cycle 4 becomes zero. Therefore, after control period 4, the robot 10 operates on the motion route R2 passing through the command value candidate P42.
 図4(a)の場合、制御周期毎にロボット10は動作開始位置ST、位置P1、位置P21、位置P32、位置P42、・・・、目標位置GLbを通るよう制御される。 In the case of FIG. 4(a), the robot 10 is controlled to pass through the motion start position ST, position P1, position P21, position P32, position P42, .
 図4(b)に示すように、制御周期が0において、作業者あるいはロボット制御装置1は、ロボット10の手先を動作開始位置STに設定する。制御周期1において、指令値候補生成部12は、動作経路Ra上の補間点P1を設定する。指令値出力部17は、補間点P1に相当する指令値をロボット10へ出力する。 As shown in FIG. 4(b), when the control period is 0, the operator or the robot control device 1 sets the hand of the robot 10 to the motion start position ST. In control cycle 1, the command value candidate generator 12 sets an interpolation point P1 on the motion path Ra. The command value output unit 17 outputs to the robot 10 a command value corresponding to the interpolation point P1.
 制御周期2において、目標位置GLaがGLbに変更されたと仮定する。この場合、指令値候補生成部12は、動作経路Ra上の補間点P2を設定し、これを指令値候補とする。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12からの指令値候補P2を修正し、修正後指令値候補P21を設定する。なお、制御周期2における外部修正量取得部13からの外部修正量は、修正後指令値候補P21と指令値候補P2との差分に相当する。次に、修正後動作経路演算部15は、動作経路Ra上の補間点P3、P4、・・・を設定する。修正後動作経路演算部15は、補間点P3、P4、・・・と外部修正量とに基づいて位置P31、P41、・・・を設定し、修正後指令値候補P21、位置P31、P41、・・・を通る修正後動作経路R1を演算する。次に、修正後動作経路判定部16は、ロボット10が修正後動作経路R1上の修正後指令値候補P21、位置P31、P41、・・・を動作可能であるか、動作不可能であるかを判定する。図4(b)に示すように、修正後動作経路R1上に周辺環境SOが存在する。この場合、修正後動作経路判定部16は、ロボット10が動作不可能であると判定する。指令値出力部17は、指令値候補P2に相当する指令値をロボット10へ出力する。 Assume that the target position GLa is changed to GLb in control cycle 2. In this case, the command value candidate generation unit 12 sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate. Further, the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P21. . The external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2. Next, the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Based on the interpolation points P3, P4, . . . Calculate a modified motion path R1 passing through . Next, the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidates P21, positions P31, P41, . . . judge. As shown in FIG. 4(b), the surrounding environment SO exists on the corrected motion path R1. In this case, the corrected motion path determining unit 16 determines that the robot 10 cannot move. The command value output unit 17 outputs to the robot 10 a command value corresponding to the command value candidate P2.
 制御周期3において、指令値候補生成部12は、補間点P3を指令値候補とする。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12からの指令値候補P3を修正し、修正後指令値候補P31を設定する。なお、制御周期3における外部修正量は、修正後指令値候補P31と指令値候補P3との差分に相当する。次に、修正後動作経路演算部15は、補間点P4、・・・と外部修正量とに基づいて位置P41、・・・を設定し、修正後指令値候補P31、位置P41、・・・を通る修正後動作経路R1を演算する。次に、修正後動作経路判定部16は、ロボット10が修正後動作経路R1上の修正後指令値候補P31、位置P41、・・・を動作可能であるか、動作不可能であるかを判定する。図4(b)に示すように、修正後動作経路R1上に周辺環境SOが存在する。この場合、修正後動作経路判定部16は、ロボット10が動作不可能であると判定する。指令値出力部17は、指令値候補P3に相当する指令値をロボット10へ出力する。 In control cycle 3, the command value candidate generation unit 12 sets the interpolation point P3 as a command value candidate. Further, the command value candidate correction unit 14 corrects the command value candidate P3 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P31. . The external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P31 and the command value candidate P3. Next, the post-correction motion path calculator 15 sets positions P41, . . . based on the interpolation points P4, . Compute a modified motion path R1 through . Next, the corrected motion path determining unit 16 determines whether the robot 10 can move the corrected command value candidates P31, positions P41, . . . do. As shown in FIG. 4(b), the surrounding environment SO exists on the corrected motion path R1. In this case, the corrected motion path determining unit 16 determines that the robot 10 cannot move. The command value output unit 17 outputs to the robot 10 a command value corresponding to the command value candidate P3.
 制御周期4以降は、制御周期3における処理と同様の処理が行われる。しかし、修正後動作経路判定部16は、ロボット10が修正後動作経路R1上を動作不可能であると判定する。図4(b)の場合、制御周期毎にロボット10は動作開始位置ST、位置P1、位置P2、位置P3、位置P4、・・・、目標位置GLaを通るよう制御され、更に目標位置GLaから目標位置GLbを通るよう制御される。 From control cycle 4 onward, the same processing as in control cycle 3 is performed. However, the post-correction motion path determining unit 16 determines that the robot 10 cannot move on the post-correction motion path R1. In the case of FIG. 4(b), the robot 10 is controlled to pass through the operation start position ST, position P1, position P2, position P3, position P4, . . . It is controlled to pass through the target position GLb.
 なお、制御周期2において修正後動作経路演算部15が演算する修正後動作経路、および制御周期3において修正後動作経路演算部15が演算する修正後動作経路は同じ動作経路R1であるとしているが、必ずしも同じになるとは限らない。これは、外部修正量が、ある制御周期におけるロボットの位置と目標位置GLbとに基づいて演算され、制御周期によってロボットの位置が異なるからである。よって、制御周期2において修正後動作経路演算部15が演算する修正後動作経路がR1であっても、制御周期3において修正後動作経路演算部15が演算する修正後動作経路がR1とならない場合がある。制御周期3において演算される修正後動作経路上をロボット10が動作可能と判定されれば、指令値出力部17は、この修正後動作経路上の修正後指令値候補に相当する指令値をロボット10へ出力する。 Note that the corrected motion path calculated by the corrected motion path calculation unit 15 in the control period 2 and the corrected motion path calculated by the corrected motion path calculation unit 15 in the control period 3 are the same motion path R1. , will not necessarily be the same. This is because the external correction amount is calculated based on the position of the robot and the target position GLb in a certain control cycle, and the position of the robot differs depending on the control cycle. Therefore, even if the corrected motion path calculated by the corrected motion path calculation unit 15 in the control cycle 2 is R1, the corrected motion path calculated by the corrected motion path calculation unit 15 in the control cycle 3 is not R1. There is If it is determined that the robot 10 can operate on the corrected motion path calculated in the control cycle 3, the command value output unit 17 outputs a command value corresponding to the corrected command value candidate on the corrected motion path to the robot. 10.
 図4(c)に示すように、制御周期が0において、作業者あるいはロボット制御装置1は、ロボット10の手先を動作開始位置STに設定する。制御周期1において、指令値候補生成部12は、動作経路Ra上の補間点P1を設定する。指令値出力部17は、補間点P1に相当する指令値をロボット10へ出力する。 As shown in FIG. 4(c), when the control period is 0, the operator or the robot control device 1 sets the hand of the robot 10 to the motion start position ST. In control cycle 1, the command value candidate generator 12 sets an interpolation point P1 on the motion path Ra. The command value output unit 17 outputs to the robot 10 a command value corresponding to the interpolation point P1.
 制御周期2において、目標位置GLaがGLbに変更されたと仮定する。この場合、指令値候補生成部12は、動作経路Ra上の補間点P2を設定し、これを指令値候補とする。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12からの指令値候補P2を修正し、修正後指令値候補P21を設定する。なお、制御周期2における外部修正量取得部13からの外部修正量は、修正後指令値候補P21と指令値候補P2との差分に相当する。次に、修正後動作経路演算部15は、動作経路Ra上の補間点P3、P4、・・・を設定する。修正後動作経路演算部15は、補間点P3、P4、・・・と外部修正量とに基づいて位置P31、P41、・・・を設定し、修正後指令値候補P21、位置P31、P41、・・・を通る修正後動作経路R1を演算する。次に、修正後動作経路判定部16は、ロボット10が修正後動作経路R1上の修正後指令値候補P21、位置P31、P41、・・・を動作可能であるか、動作不可能であるかを判定する。図4(c)に示すように、修正後動作経路R1上に周辺環境SOが存在しない。また、修正後動作経路R1上を動作する上で求められる関節の角速度および角加速度は、それぞれロボット10が出力可能な関節の角速度および角加速度の上限値以下であると仮定する。この場合、修正後動作経路判定部16は、ロボット10が動作可能であると判定する。指令値出力部17は、修正後指令値候補P21に相当する指令値をロボット10へ出力する。 Assume that the target position GLa is changed to GLb in control cycle 2. In this case, the command value candidate generation unit 12 sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate. Further, the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P21. . The external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2. Next, the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Based on the interpolation points P3, P4, . . . Calculate a modified motion path R1 passing through . Next, the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidates P21, positions P31, P41, . . . judge. As shown in FIG. 4(c), the surrounding environment SO does not exist on the corrected motion path R1. It is also assumed that the angular velocity and angular acceleration of the joints required for moving along the corrected motion path R1 are equal to or less than the upper limit values of the angular velocity and angular acceleration of the joints that the robot 10 can output. In this case, the corrected motion path determination unit 16 determines that the robot 10 is operable. The command value output unit 17 outputs to the robot 10 a command value corresponding to the post-correction command value candidate P21.
 制御周期3において、指令値候補生成部12は、補間点P3と補間点P2との差分および前回の指令値P21に基づいて指令値候補P31を生成する。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12からの指令値候補P31を修正し、修正後指令値候補P32を設定する。なお、制御周期3における外部修正量は、修正後指令値候補P32と指令値候補P31との差分に相当する。次に、修正後動作経路演算部15は、位置P41、・・・と外部修正量とに基づいて位置P42、・・・を設定し、修正後指令値候補P32、位置P42、・・・を通る修正後動作経路R2を演算する。次に、修正後動作経路判定部16は、ロボット10が修正後動作経路R2上の位置P32、P42、・・・を動作可能であるか、動作不可能であるかを判定する。図4(c)に示すように、修正後動作経路R2上に周辺環境SOが存在する。この場合、修正後動作経路判定部16は、ロボット10が動作不可能であると判定する。指令値出力部17は、指令値候補P31に相当する指令値をロボット10へ出力する。 In control cycle 3, the command value candidate generation unit 12 generates a command value candidate P31 based on the difference between the interpolation point P3 and the interpolation point P2 and the previous command value P21. Further, the command value candidate correction unit 14 corrects the command value candidate P31 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the command value candidate after correction P32. . The external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P32 and the command value candidate P31. Next, the post-correction motion path calculator 15 sets positions P42, . . . based on the positions P41, . A corrected motion path R2 passing through is calculated. Next, the post-correction motion path determination unit 16 determines whether the robot 10 can move through the positions P32, P42, . . . on the post-correction motion path R2. As shown in FIG. 4(c), the surrounding environment SO exists on the post-correction motion path R2. In this case, the corrected motion path determining unit 16 determines that the robot 10 cannot move. The command value output unit 17 outputs to the robot 10 a command value corresponding to the command value candidate P31.
 制御周期4以降は、制御周期3における処理と同様の処理が行われる。しかし、修正後動作経路判定部16は、ロボット10が修正後動作経路R2上を動作不可能であると判定する。図4(c)の場合、制御周期毎にロボット10は動作開始位置ST、位置P1、位置P21、位置P31、位置P41、・・・、GLnを通るよう制御され、更に位置GLnから目標位置GLbを通るよう制御される。 From control cycle 4 onward, the same processing as in control cycle 3 is performed. However, the post-correction motion path determining unit 16 determines that the robot 10 cannot move on the post-correction motion path R2. In the case of FIG. 4(c), the robot 10 is controlled to pass through the operation start position ST, position P1, position P21, position P31, position P41, . controlled to pass through
 なお、制御周期3において修正後動作経路演算部15が演算する修正後動作経路、および制御周期4において修正後動作経路演算部15が演算する修正後動作経路は同じ動作経路R2であるとしているが、必ずしも同じになるとは限らない。これは、図4(b)を用いて説明したのと同じ理由である。よって、制御周期3において修正後動作経路演算部15が演算する修正後動作経路がR2であっても、制御周期4において修正後動作経路演算部15が演算する修正後動作経路がR2とならない場合がある。制御周期4において演算される修正後動作経路上をロボット10が動作可能と判定されれば、指令値出力部17は、この修正後動作経路上の修正後指令値候補に相当する指令値をロボット10へ出力する。 The corrected motion path calculated by the corrected motion path calculation unit 15 in the control period 3 and the corrected motion path calculated by the corrected motion path calculation unit 15 in the control period 4 are the same motion path R2. , will not necessarily be the same. This is for the same reason as described with reference to FIG. 4(b). Therefore, even if the corrected motion path calculated by the corrected motion path calculation unit 15 in the control cycle 3 is R2, the corrected motion path calculated by the corrected motion path calculation unit 15 in the control cycle 4 is not R2. There is If it is determined that the robot 10 can operate on the corrected motion path calculated in the control cycle 4, the command value output unit 17 outputs a command value corresponding to the corrected command value candidate on the corrected motion path to the robot. 10.
 図5は、実施の形態1におけるロボット制御装置1の動作の一例を示すフローチャートである。すなわち、図5は、実施の形態1におけるロボット制御方法の一例を示すフローチャートである。 FIG. 5 is a flow chart showing an example of the operation of the robot control device 1 according to the first embodiment. That is, FIG. 5 is a flow chart showing an example of the robot control method according to the first embodiment.
 図5に示すように、図示しない手段によりロボット10の制御が開始されると、図示しない手段は、制御周期の指標であるkを1に初期化する(ステップST1)。 As shown in FIG. 5, when the control of the robot 10 is started by means (not shown), the means (not shown) initializes k, which is an index of the control cycle, to 1 (step ST1).
 指令値候補生成部12は、予め生成されたロボット10の動作経路で構成された動作プログラムと、ロボット10に対し前回出力された前回指令値またはロボット10の動作情報とに基づいて、指令値候補を生成する(ステップST2)。ステップST2の処理については、後に図6を用いて詳細に説明する。 The command value candidate generation unit 12 generates command value candidates based on an operation program configured in advance with the motion path of the robot 10 and the previous command value output to the robot 10 last time or the motion information of the robot 10. is generated (step ST2). The processing of step ST2 will be described later in detail using FIG.
 指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補を修正して修正後指令値候補とする(ステップST3)。 The command value candidate correcting unit 14 corrects the command value candidate based on the external correction amount from the external correction amount acquisition unit 13 to obtain a post-correction command value candidate (step ST3).
 修正後動作経路演算部15は、修正後指令値候補を通る修正後動作経路を演算する(ステップST4)。ステップST4の処理については、後に図7を用いて詳細に説明する。 The post-correction motion path calculation unit 15 calculates a post-correction motion path passing through the post-correction command value candidates (step ST4). The processing of step ST4 will be described later in detail with reference to FIG.
 修正後動作経路判定部16は、修正後動作経路に対し、ロボット10の動作可能または動作不可能を判定して判定結果を出力する(ステップST5)。ステップST5の処理については、後に図8を用いて詳細に説明する。 The post-correction motion path determination unit 16 determines whether the robot 10 is operable or inoperable with respect to the post-correction motion path, and outputs the determination result (step ST5). The processing of step ST5 will be described later in detail with reference to FIG.
 指令値出力部17は、修正後動作経路判定部16からの判定結果に基づいて、指令値候補または修正後指令値候補を用いてロボット10への指令値を演算し、指令値を出力する(ステップST6)。なお、k>nの場合、かつ修正後動作経路判定部16からの判定結果が動作不可能である場合には、指令値出力部17は前回出力された前回指令値をロボット10への指令値として設定する。すなわち図示しない手段によりロボット10は停止される。ロボット制御装置1は、この状態から再度ロボット10に対する動作経路を生成してもよい。そして、ロボット制御装置1は、再度生成された動作経路に対し、図5のステップST1からステップST8の処理を行ってもよい。 The command value output unit 17 calculates a command value for the robot 10 using the command value candidate or the corrected command value candidate based on the determination result from the corrected motion path determination unit 16, and outputs the command value ( step ST6). If k>n, and if the determination result from the post-correction movement path determination unit 16 indicates that the operation is impossible, the command value output unit 17 outputs the previous command value output last time as the command value to the robot 10. set as That is, the robot 10 is stopped by means not shown. The robot control device 1 may generate a movement path for the robot 10 again from this state. Then, the robot control device 1 may perform the processing from step ST1 to step ST8 of FIG. 5 on the regenerated motion path.
 図示しない手段により、ロボット10の制御を完了させるか否かが判定される(ステップST7)。 Whether or not to complete the control of the robot 10 is determined by means not shown (step ST7).
 ステップST7の判定が「Yes」の場合は、ロボット10の制御が終了する。ステップST7の判定が「No」の場合は、処理はステップST8に進む。ロボットの制御が終了するのは、例えばロボット10が目標位置GLbに到達した場合である。あるいは、ロボット10が異常動作したと判定された場合である。この判定は、図示しない手段により行われる。 If the determination in step ST7 is "Yes", the control of the robot 10 ends. If the determination in step ST7 is "No", the process proceeds to step ST8. Control of the robot ends when, for example, the robot 10 reaches the target position GLb. Alternatively, it is a case where it is determined that the robot 10 has performed an abnormal operation. This determination is made by means not shown.
 ステップST7の判定が「No」の場合、図示しない手段により、kがインクリメントされる(ステップST8)。 If the determination in step ST7 is "No", k is incremented by means not shown (step ST8).
 ステップST8の処理が行われた後、ステップST7の判定が「Yes」となるまでは、ステップST2からステップST8の処理が繰り返し行われる。 After the processing of step ST8 is performed, the processing of steps ST2 to ST8 is repeatedly performed until the determination of step ST7 becomes "Yes".
 図6は、実施の形態1における指令値候補生成部12の動作の一例を示すフローチャートである。すなわち、図6は、図5のステップST2の処理の詳細を示すフローチャートである。 FIG. 6 is a flow chart showing an example of the operation of the command value candidate generator 12 according to the first embodiment. That is, FIG. 6 is a flow chart showing the details of the process of step ST2 in FIG.
 図6に示すように、指令値候補生成部12により指令値候補の生成処理が開始されると、補間点設定部121は、ある制御周期kでの補間点J(k)を設定する(ステップST21)。補間点設定部121は、動作プログラムを構成する動作経路上に補間点J(k)を設定する。 As shown in FIG. 6, when command value candidate generation processing is started by command value candidate generation unit 12, interpolation point setting unit 121 sets interpolation point J(k) in a certain control cycle k (step ST21). The interpolation point setting unit 121 sets an interpolation point J(k) on the motion path forming the motion program.
 前回補間点保持部122は、1つ前の制御周期(k-1)での前回補間点J(k-1)を保持し、出力する(ステップST22)。 The previous interpolation point holding unit 122 holds and outputs the previous interpolation point J(k-1) in the previous control cycle (k-1) (step ST22).
 相対値演算部123は、補間点J(k)と前回補間点J(k-1)とに基づいて、制御周期kにおける相対値dJ(k)を演算する。相対値演算部123は、数式(1)に基づいて相対値dJ(k)を演算する(ステップST23)。 The relative value calculator 123 calculates the relative value dJ(k) in the control period k based on the interpolation point J(k) and the previous interpolation point J(k-1). The relative value calculator 123 calculates the relative value dJ(k) based on Equation (1) (step ST23).
 指令値候補演算部124は、前回の制御周期(k-1)における指令値と、相対値演算部123からの相対値dJ(k)とに基づいて、制御周期kにおける指令値候補J(k)を演算する(ステップST24)。指令値候補演算部124は、数式(2)に基づいて指令値候補J(k)を演算する。 Command value candidate calculation unit 124 calculates command value candidate J p ( k) is calculated (step ST24). Command value candidate calculation unit 124 calculates command value candidate J p (k) based on expression (2).
 指令値候補生成部12は、指令値候補の生成処理を終了する。 The command value candidate generation unit 12 ends the command value candidate generation process.
 図7は、実施の形態1における修正後動作経路演算部15の動作の一例を示すフローチャートである。すなわち、図7は、図5のステップST4の処理の詳細を示すフローチャートである。 FIG. 7 is a flowchart showing an example of the operation of the post-correction motion path calculation unit 15 according to the first embodiment. That is, FIG. 7 is a flow chart showing the details of the process of step ST4 in FIG.
 図7に示すように、修正後動作経路演算部15により修正後動作経路の演算処理が開始されると、修正後動作経路演算部15は、kがnより大きいか否かを判定する(ステップST41)。 As shown in FIG. 7, when the post-correction motion path calculation unit 15 starts the post-correction motion path calculation process, the post-correction motion path calculation unit 15 determines whether or not k is greater than n (step ST41).
 ステップST41の判定が「Yes」の場合は、処理はステップST42に進む。ステップST41の判定が「No」の場合は、処理はステップST43に進む。 If the determination in step ST41 is "Yes", the process proceeds to step ST42. If the determination in step ST41 is "No", the process proceeds to step ST43.
 ステップST41の判定が「Yes」の場合、修正後動作経路演算部15は、指令値候補修正部14からの修正後指令値候補を修正後動作経路T(k)としてそのまま設定する(ステップST42)。ステップST41の処理が行われた後、修正後動作経路演算部15は、修正後動作経路の演算処理を終了する。 If the determination in step ST41 is "Yes", the post-correction motion path calculation unit 15 directly sets the post-correction command value candidate from the command value candidate correction unit 14 as the post-correction motion path T m (k) (step ST42). ). After the process of step ST41 is performed, the post-correction motion path calculation unit 15 ends the post-correction motion path calculation process.
 ステップST41の判定が「No」の場合、修正後動作経路演算部15は、数式(3)に基づいて、ある制御周期kでの動作経路T(k)を演算する(ステップST43)。 If the determination in step ST41 is "No", the post-correction motion path computation unit 15 computes the motion path T(k) in a certain control cycle k based on Equation (3) (step ST43).
 修正後動作経路演算部15は、数式(4)に基づいて、ある制御周期kでの動作経路差分dT(k)を演算する(ステップST44)。 The post-correction motion path computation unit 15 computes the motion path difference dT(k) at a certain control cycle k based on Equation (4) (step ST44).
 修正後動作経路演算部15は、数式(5)に基づいて、ある制御周期kでの修正後動作経路T(k)を演算する(ステップST45)。ステップST45の処理が行われた後、修正後動作経路演算部15は、修正後動作経路の演算処理を終了する。 The post-correction motion path calculation unit 15 calculates the post-correction motion path T m (k) in a certain control cycle k based on Equation (5) (step ST45). After the process of step ST45 is performed, the post-correction motion path calculation unit 15 ends the post-correction motion path calculation process.
 図8は、実施の形態1における修正後動作経路判定部16の動作の一例を示すフローチャートである。すなわち、図8は、図5のステップST5の処理の詳細を示すフローチャートである。 FIG. 8 is a flowchart showing an example of the operation of the post-correction motion path determination unit 16 according to the first embodiment. That is, FIG. 8 is a flow chart showing the details of the process of step ST5 in FIG.
 図8に示すように、修正後動作経路判定部16によりロボット10の動作可能または動作不可能の判定処理が開始されると、修正後動作経路判定部16は、変数iを0に初期化する(ステップST51)。変数iは、数式(5)で表される制御周期kでの修正後動作経路T(k)の指標である。例えば、数式(5)においてi=0の時の関節角度はJ(k)、i=1の時の関節角度はJ(k)+dJ(k+1)である。 As shown in FIG. 8, when the post-correction motion path determination unit 16 starts the process of determining whether the robot 10 is operable or inoperable, the post-correction motion path determination unit 16 initializes the variable i to 0. (Step ST51). The variable i is an index of the corrected motion path T m (k) at the control period k represented by Equation (5). For example, in Equation (5), the joint angle when i=0 is J m (k), and the joint angle when i=1 is J m (k)+dJ(k+1).
 修正後動作経路判定部16は、修正後動作経路の指標iに対応するロボット10の関節角度、手先位置および姿勢を演算する(ステップST52)。例えば、数式(5)の修正後動作経路T(k)において、iが0の場合の関節角度はJ(k)、iが1の場合の関節角度はJ(k)+dJ(k+1)である。更に、図4(a)~(c)において、修正後指令値候補がP21の場合、修正後動作経路はR1となる。この場合、iが0の場合の関節角度はP21における関節角度、iが1の場合の関節角度はP31における関節角度である。修正後動作経路判定部16は、ロボット10の筐体モデルに基づいて、ロボット10の関節角度を位置および姿勢に変換する。 The post-correction motion path determining unit 16 calculates the joint angle, hand position and posture of the robot 10 corresponding to the index i of the post-correction motion path (step ST52). For example, in the modified motion path T m (k) in Equation (5), the joint angle when i is 0 is J m (k), and the joint angle when i is 1 is J m (k)+dJ(k+1 ). Furthermore, in FIGS. 4A to 4C, when the post-correction command value candidate is P21, the post-correction motion path is R1. In this case, the joint angle when i is 0 is the joint angle at P21, and the joint angle when i is 1 is the joint angle at P31. The post-correction motion path determination unit 16 converts the joint angles of the robot 10 into positions and postures based on the housing model of the robot 10 .
 修正後動作経路判定部16は、指標iにおける関節角度が許容範囲内か否かを判定する(ステップST53)。具体的には、修正後動作経路判定部16は、指標iにおける関節角度が物理的な可動範囲内であるか否かを判定する。 The post-correction motion path determination unit 16 determines whether the joint angle at the index i is within the allowable range (step ST53). Specifically, the post-correction motion path determination unit 16 determines whether or not the joint angle at the index i is within the physical movable range.
 ステップST53の判定が「Yes」の場合は、処理はステップST54に進む。ステップST41の判定が「No」の場合は、処理はステップST55に進む。 If the determination in step ST53 is "Yes", the process proceeds to step ST54. If the determination in step ST41 is "No", the process proceeds to step ST55.
 ステップST53の判定が「Yes」の場合、修正後動作経路判定部16は、ロボット筐体モデルを記憶装置3から取得する(ステップST54)。ロボット筐体モデルは、ロボット10の関節角度と手先位置および姿勢との間の変換式だけでなく、ロボット10のメッシュ情報も含まれる。ロボット筐体モデルは、例えば複数の三角形のメッシュデータによってロボット10を覆われたものであり、各メッシュの三角形の頂点位置が含まれる。修正後動作経路判定部16は、この頂点位置を取得する。 If the determination in step ST53 is "Yes", the post-correction motion path determination unit 16 acquires the robot housing model from the storage device 3 (step ST54). The robot housing model includes mesh information of the robot 10 as well as conversion formulas between the joint angles of the robot 10 and the hand position and posture. The robot housing model is obtained by covering the robot 10 with, for example, a plurality of triangular mesh data, and includes the triangular vertex positions of each mesh. The post-correction motion path determination unit 16 acquires this vertex position.
 ステップST53の判定が「No」の場合、修正後動作経路判定部16は、判定結果を動作不可能とする(ステップST55)。すなわち、修正後動作経路判定部16は、指標iにおける関節角度が所望の関節角度に追従できないとして、判定結果を動作不可能とする。ステップST55の処理が行われた後、修正後動作経路判定部16は、判定処理を終了する。 If the determination in step ST53 is "No", the post-correction movement path determination unit 16 determines that the determination result is inoperable (step ST55). That is, the post-correction motion path determination unit 16 determines that the joint angle at the index i cannot follow the desired joint angle, and determines that the motion cannot be performed. After the process of step ST55 is performed, the post-correction motion path determination unit 16 terminates the determination process.
 修正後動作経路判定部16は、ステップST54で取得した頂点位置に基づいて、指標iにおけるロボット10の位置および姿勢が周辺環境と非干渉であるか否かを判定する(ステップST56)。 Based on the vertex position acquired in step ST54, the post-correction motion path determination unit 16 determines whether the position and posture of the robot 10 at the index i are non-interfering with the surrounding environment (step ST56).
 ステップST56の判定が「Yes」の場合は、処理はステップST57に進む。ステップST56の判定が「No」の場合は、処理はステップST55に進む。 If the determination in step ST56 is "Yes", the process proceeds to step ST57. If the determination in step ST56 is "No", the process proceeds to step ST55.
 ステップST56の判定が「Yes」の場合、修正後動作経路判定部16は、指標iにおけるロボット10の関節角速度が所定値以下か否かを判定する(ステップST57)。あるいは、修正後動作経路判定部16は、指標iにおけるロボット10の関節角加速度が所定値以下か否かをあわせて判定してもよい。この場合、修正後動作経路判定部16は、ロボット10の関節角速度が所定値以下、かつ関節角加速度が所定値以下であるか否かを判定する。すなわち、修正後動作経路判定部16は、指標iにおいて求められる関節の角速度および角加速度が、それぞれロボット10が出力可能な関節の角速度および角加速度の上限値以下であるか否かを判定する。関節角速度は、iが0の場合、指標0におけるロボット10の関節角度と、図5のステップST6において出力された前回の指令値に相当する関節角度との差を制御周期で除算したものである。関節角速度は、iが1以上の場合、指標iにおけるロボット10の関節角度と、指標(i-1)における関節角度との差を制御周期で除算したものである。関節角加速度は、関節角速度を算出する方法と同様の方法で、関節角速度の差に基づいて算出される。 If the determination in step ST56 is "Yes", the post-correction motion path determination unit 16 determines whether or not the joint angular velocity of the robot 10 at the index i is equal to or less than a predetermined value (step ST57). Alternatively, the corrected motion path determination unit 16 may also determine whether or not the joint angular acceleration of the robot 10 at the index i is equal to or less than a predetermined value. In this case, the post-correction motion path determination unit 16 determines whether the joint angular velocity of the robot 10 is equal to or less than a predetermined value, and whether the joint angular acceleration is equal to or less than a predetermined value. That is, the post-correction motion path determining unit 16 determines whether or not the angular velocity and angular acceleration of the joint obtained by the index i are equal to or less than the upper limit values of the angular velocity and angular acceleration of the joint that the robot 10 can output. When i is 0, the joint angular velocity is obtained by dividing the difference between the joint angle of the robot 10 at index 0 and the joint angle corresponding to the previous command value output in step ST6 of FIG. 5 by the control cycle. . The joint angular velocity is obtained by dividing the difference between the joint angle of the robot 10 at the index i and the joint angle at the index (i−1) by the control period when i is 1 or more. The joint angular acceleration is calculated based on the difference in joint angular velocities by a method similar to the method for calculating joint angular velocities.
 ステップST57の判定が「Yes」の場合は、処理はステップST58に進む。ステップST56の判定が「No」の場合は、処理はステップST55に進む。 If the determination in step ST57 is "Yes", the process proceeds to step ST58. If the determination in step ST56 is "No", the process proceeds to step ST55.
 ステップST57の判定が「Yes」の場合、修正後動作経路判定部16は、全てのデータが判定済みか否かを判定する(ステップST58)。すなわち、k≦nの場合、修正後動作経路判定部16は、ある制御周期kから制御周期nまでの関節角度について、ステップST53、ステップST56およびステップST57の判定を行ったか否かを判定する。k>nの場合、修正後動作経路判定部16は、修正後動作経路すなわち修正後指令値候補について、ステップST53、ステップST56およびステップST57の判定を行ったか否かを判定する。k>nの場合、i=0においてステップST58の判定が「Yes」となる。 If the determination in step ST57 is "Yes", the post-correction motion path determination unit 16 determines whether or not all data have been determined (step ST58). That is, when k≦n, the post-correction motion path determination unit 16 determines whether or not the determinations of steps ST53, ST56, and ST57 have been performed for joint angles from a control cycle k to a control cycle n. When k>n, the corrected motion path determination unit 16 determines whether or not the determinations of steps ST53, ST56, and ST57 have been performed for the corrected motion path, that is, the corrected command value candidate. If k>n, the determination in step ST58 is "Yes" at i=0.
 ステップST58の判定が「Yes」の場合は、処理はステップST59に進む。ステップST58の判定が「No」の場合は、処理はステップST60に進む。 If the determination in step ST58 is "Yes", the process proceeds to step ST59. If the determination in step ST58 is "No", the process proceeds to step ST60.
 ステップST58の判定が「Yes」の場合、修正後動作経路判定部16は、判定結果を動作可能とする(ステップST59)。すなわち、修正後動作経路判定部16は、全ての指標における関節角度が所望の関節角度に追従できるとして、判定結果を動作可能とする。ステップST59の処理が行われた後、修正後動作経路判定部16は、判定処理を終了する。 If the determination in step ST58 is "Yes", the post-correction movement path determination unit 16 determines that the determination result is operable (step ST59). In other words, the post-correction motion path determination unit 16 determines that the joint angles of all the indices can follow the desired joint angles, and determines that the motion is possible in the determination result. After the process of step ST59 is performed, the post-correction motion path determination unit 16 ends the determination process.
 ステップST58の判定が「No」の場合、修正後動作経路判定部16は、変数iをインクリメントする(ステップST60)。ステップST60の処理が行われた後、処理はステップST52に進む。 If the determination in step ST58 is "No", the post-correction motion path determination unit 16 increments the variable i (step ST60). After the process of step ST60 is performed, the process proceeds to step ST52.
 なお、ステップST53、ステップST56およびステップST57の判定手順については、図8に示す手順に限定されない。 It should be noted that the determination procedure of steps ST53, ST56 and ST57 is not limited to the procedure shown in FIG.
 以上で説明した実施の形態1によれば、外部修正量に基づいて修正された指令値候補を通る修正後動作経路に対し、ロボット10の動作可能または動作不可能を判定し、判定結果に基づいてロボット10への指令値を演算するため、ロボット10の動作を外部センサに基づいて修正する場合においても、ロボット10の緊急停止を極力少なくすることができる。 According to the first embodiment described above, it is determined whether the robot 10 is operable or inoperable with respect to the corrected motion path passing through the command value candidate corrected based on the external correction amount, and based on the determination result. Since the command value to the robot 10 is calculated by using an external sensor, the emergency stop of the robot 10 can be minimized even when the operation of the robot 10 is corrected based on the external sensor.
実施の形態2.
 実施の形態1では、修正後指令値候補を通る修正後動作経路について動作不可能と判定された場合、修正後指令値候補ではなく指令値候補を指令値としてロボット10へ出力する。これに対し実施の形態2では、修正後動作経路について動作不可能と判定された場合でも、ある程度の期間、修正後指令値候補を指令値としてロボット10へ出力する。
Embodiment 2.
In the first embodiment, when it is determined that the corrected motion path passing through the corrected command value candidate is inoperable, the command value candidate is output as the command value to the robot 10 instead of the corrected command value candidate. On the other hand, in the second embodiment, even if it is determined that the motion path after correction is inoperable, the corrected command value candidate is output to the robot 10 as a command value for a certain period of time.
 図9は、実施の形態2におけるロボット制御装置1aの一例を示すブロック図である。図9は、ロボット制御装置1aが指令値出力部17の代わりに指令値出力部17aを備える点で、図2とは異なる。指令値出力部17a以外は、図2に示すものと同じであるため、説明を省略する。 FIG. 9 is a block diagram showing an example of the robot control device 1a according to the second embodiment. 9 differs from FIG. 2 in that the robot control device 1a includes a command value output section 17a instead of the command value output section 17. FIG. Since the components other than the command value output unit 17a are the same as those shown in FIG. 2, description thereof will be omitted.
 指令値出力部17aは、修正後動作経路判定部16からの判定結果が動作可能である場合には、指令値候補修正部14からの修正後指令値候補を指令値としてロボット10へ出力する。指令値出力部17aは、判定結果が動作不可能である場合には、動作不可能と判定された時間から実際に動作不可能となる時間までの到達時間と、到達時間内における指令値候補の修正積算値をゼロとするのに必要な復元時間とを比較する。指令値出力部17aは、到達時間が復元時間よりも大きい場合には、修正後指令値候補を指令値とし、到達時間が復元時間以下の場合には、動作不可能と判定された時に演算された復元量を指令値候補に重畳したものを指令値とする。あるいは、指令値出力部17aは、判定結果が動作不可能である場合には、修正積算値と、動作不可能と判定された時に演算される復元量の到達時間内の復元積算値とを比較する。この場合、指令値出力部17aは、復元積算値が修正積算値よりも大きい場合には、修正後指令値候補を指令値とし、復元積算値が修正積算値以下の場合には、復元量を指令値候補に重畳したものを指令値とする。ここで、復元量は、修正積算値を徐々にゼロとするよう設定される単位制御周期あたりの量であり、ロボット10の運動制約を逸脱しないよう演算される。運動制約とは、ロボット10の関節の角速度および角加速度について出力可能な上限値である。 The command value output unit 17a outputs the corrected command value candidate from the command value candidate correction unit 14 to the robot 10 as a command value when the determination result from the corrected motion path determination unit 16 indicates that the robot is operable. When the judgment result is that the operation is impossible, the command value output unit 17a outputs the arrival time from the time when the operation is judged to be impossible to the time when the operation is actually impossible, and the command value candidates within the arrival time. Compare with the recovery time required to bring the corrected integrated value to zero. If the arrival time is longer than the restoration time, the command value output unit 17a uses the corrected command value candidate as the command value. The command value is obtained by superimposing the restored amount on the command value candidate. Alternatively, when the determination result indicates that the operation is impossible, the command value output unit 17a compares the corrected integrated value with the restoration integrated value within the arrival time of the amount of restoration calculated when the operation is determined to be impossible. do. In this case, the command value output unit 17a sets the corrected command value candidate as the command value if the restored integrated value is greater than the corrected integrated value, and if the restored integrated value is equal to or less than the corrected integrated value, sets the restoration amount. A value superimposed on the command value candidate is used as the command value. Here, the restoration amount is an amount per unit control cycle that is set so that the corrected integrated value gradually decreases to zero, and is calculated so as not to deviate from the movement restrictions of the robot 10 . A motion constraint is an upper limit value that can be output for the angular velocity and angular acceleration of the joints of the robot 10 .
 図10は、実施の形態2における指令値出力部17aの一例を示すブロック図である。図10は、判定結果が動作不可能である場合に、指令値出力部17aが到達時間と復元時間とを比較して指令値を演算する場合のブロック図である。指令値出力部17aは、修正積算値演算部171aと、復元量演算部172aと、指令値演算部173aとを備える。 FIG. 10 is a block diagram showing an example of the command value output section 17a according to the second embodiment. FIG. 10 is a block diagram when the command value output unit 17a compares the arrival time and the restoration time to calculate the command value when the determination result is that the operation is impossible. The command value output unit 17a includes a corrected integrated value calculation unit 171a, a restoration amount calculation unit 172a, and a command value calculation unit 173a.
 修正積算値演算部171aは、修正後動作経路判定部16からの判定結果が動作不可能である場合に、以下の数式(6)を用いて、指令値候補修正部14からの修正後指令値候補と、指令値候補生成部12からの指令値候補との差である修正量ΔJ(k)を演算する。 When the determination result from the corrected operation path determination unit 16 indicates that the operation is impossible, the corrected integrated value calculation unit 171a calculates the corrected command value from the command value candidate correction unit 14 using the following formula (6). A correction amount ΔJ(k), which is the difference between the candidate and the command value candidate from the command value candidate generation unit 12, is calculated.
Figure JPOXMLDOC01-appb-M000006
Figure JPOXMLDOC01-appb-M000006
 そして、修正積算値演算部171aは、以下の数式(7)を用いて、修正量ΔJの到達時間内の修正積算値ΔJsumを演算する。 Then, the corrected integrated value calculation unit 171a calculates the corrected integrated value ΔJ sum within the arrival time of the correction amount ΔJ using the following formula (7).
Figure JPOXMLDOC01-appb-M000007
Figure JPOXMLDOC01-appb-M000007
 ここで、ΔJsum,0は修正積算値の初期値であり、修正後動作経路が動作不可能と判定され始めた制御周期における指令値候補を通る動作経路と、前回ロボット10へ出力された前回指令値を通る動作経路との間の修正量である。初期値ΔJsum,0については、図11を用いて詳細に説明する。また、tは到達時間であり、Tは実際の制御周期である。また、floor(y)は、yの小数点以下を切り捨てて整数にしたものである。修正積算値演算部171aは、1つ以上の関節部に対応する関節角度について、数式(7)を用いて修正積算値ΔJsumを演算する。なお、修正後動作経路判定部16からの判定結果が動作可能である場合には、修正積算値演算部171aは、修正積算値をクリアする。すなわちゼロに設定する。 Here, ΔJ sum,0 is the initial value of the corrected integrated value, and the motion path passing through the command value candidate in the control cycle when it is determined that the motion path after correction is judged to be inoperable, and the previous output to the robot 10 It is the amount of correction between the motion path passing through the command value. The initial value ΔJ sum,0 will be described in detail with reference to FIG. 11 . Also, tT is the arrival time, and Ts is the actual control cycle. Also, floor(y) is obtained by truncating the decimal point of y to an integer. The corrected integrated value calculation unit 171a calculates a corrected integrated value ΔJ sum for joint angles corresponding to one or more joints using Equation (7). When the determination result from the corrected operation path determination unit 16 indicates that the vehicle is operable, the corrected integrated value calculation unit 171a clears the corrected integrated value. i.e. set to zero.
 復元量演算部172aは、修正後動作経路判定部16からの判定結果が動作不可能である場合に、復元量を演算する。そして、復元量演算部172aは、修正積算値演算部171aからの修正積算値に基づいて、復元時間を演算する。復元量および復元時間については、後に図11を用いて詳細に説明する。なお、修正後動作経路判定部16からの判定結果が動作可能である場合には、復元量演算部172aは、復元量をゼロに設定する。 The restoration amount calculation unit 172a calculates the restoration amount when the determination result from the corrected movement path determination unit 16 indicates that the movement is impossible. Then, the restoration amount calculation unit 172a calculates the restoration time based on the corrected integrated value from the corrected integrated value calculation unit 171a. The amount of restoration and the restoration time will be described later in detail with reference to FIG. When the determination result from the post-correction motion path determination unit 16 indicates that the motion is operable, the restoration amount calculation unit 172a sets the restoration amount to zero.
 指令値演算部173aは、修正後動作経路判定部16からの判定結果が動作不可能である場合に、修正積算値演算部171aからの到達時間と、復元量演算部172aからの復元時間とを比較する。指令値演算部173aは、到達時間と復元時間との比較結果に基づいて、指令値を演算する。なお、修正後動作経路判定部16からの判定結果が動作可能である場合には、指令値演算部173aは、修正後指令値候補を指令値として演算する。 The command value calculation unit 173a calculates the arrival time from the corrected integrated value calculation unit 171a and the restoration time from the restoration amount calculation unit 172a when the determination result from the corrected operation path determination unit 16 indicates that the operation is impossible. compare. The command value calculator 173a calculates a command value based on the comparison result between the arrival time and the restoration time. When the determination result from the corrected operation path determination unit 16 indicates that the vehicle is operable, the command value calculation unit 173a calculates the corrected command value candidate as the command value.
 図11(a)および図11(b)は、実施の形態2における実施の形態2におけるロボット10の動作の一例を示す模式図である。図11(a)および図11(b)は、ロボット10が動作開始位置STから目標位置GLaに向かって予め設定された動作経路Ra上を動作する途中で、目標位置がGLbに変更された場合のロボット10の動作を示す図である。 FIGS. 11(a) and 11(b) are schematic diagrams showing an example of the motion of the robot 10 according to the second embodiment. FIGS. 11A and 11B show the case where the target position is changed to GLb while the robot 10 is moving from the motion start position ST toward the target position GLa along the preset motion path Ra. 2 is a diagram showing the motion of the robot 10 in FIG.
 図11(a)に示すように、制御周期が0において、作業者あるいはロボット制御装置1aは、ロボット10の手先を動作開始位置STに設定する。制御周期1において、指令値候補生成部12は、動作経路Ra上の補間点P1を設定する。指令値出力部17aは、補間点P1に相当する指令値をロボット10へ出力する。 As shown in FIG. 11(a), when the control cycle is 0, the operator or the robot control device 1a sets the hand of the robot 10 to the motion start position ST. In control cycle 1, the command value candidate generator 12 sets an interpolation point P1 on the motion path Ra. The command value output unit 17a outputs to the robot 10 a command value corresponding to the interpolation point P1.
 制御周期2において、目標位置GLaがGLbに変更されたと仮定する。この場合、指令値候補生成部12は、動作経路Ra上の補間点P2を設定し、これを指令値候補とする。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12からの指令値候補P2を修正し、修正後指令値候補P21が設定される。なお、制御周期2における外部修正量取得部13からの外部修正量は、修正後指令値候補P21と指令値候補P2との差分に相当する。次に、修正後動作経路演算部15は、動作経路Ra上の補間点P3、P4、・・・を設定する。修正後動作経路演算部15は、補間点P3、P4、・・・と外部修正量とに基づいて位置P31、P41、・・・を設定し、修正後指令値候補P21、位置P31、P41、・・・を通る修正後動作経路R1を演算する。次に、修正後動作経路判定部16は、ロボット10が修正後動作経路R1上の修正後指令値候補P21、位置P31、P41、・・・を動作可能であるか、動作不可能であるかを判定する。図11(a)に示すように、修正後動作経路R1上に周辺環境SOが存在する。この場合、修正後動作経路判定部16は、ロボット10が動作不可能であると判定する。そして、動作不可能と判定された時間から実際に動作不可能となる時間までの到達時間と、到達時間内における指令値候補の修正積算値をゼロとするのに必要な復元時間とが比較される。図11(a)において、復元時間が到達時間よりも小さいとすると、指令値出力部17aは、修正後指令値候補P21に相当する指令値をロボット10へ出力する。 Assume that the target position GLa is changed to GLb in control cycle 2. In this case, the command value candidate generation unit 12 sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate. Further, the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and the corrected command value candidate P21 is set. be. The external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2. Next, the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Based on the interpolation points P3, P4, . . . Calculate a modified motion path R1 passing through . Next, the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidates P21, positions P31, P41, . . . judge. As shown in FIG. 11(a), the surrounding environment SO exists on the post-correction motion path R1. In this case, the corrected motion path determining unit 16 determines that the robot 10 cannot move. Then, the arrival time from the time when it is determined to be inoperable to the time when it actually becomes inoperable is compared with the restoration time required to set the corrected integrated value of the command value candidate within the arrival time to zero. be. In FIG. 11A, if the restoration time is shorter than the arrival time, the command value output unit 17a outputs to the robot 10 a command value corresponding to the post-correction command value candidate P21.
 なお、図11(a)の場合、到達時間は、制御周期2に相当する時間から、ロボット10が位置P4mに到達するまでの時間である。具体的には、到達時間は、制御周期2におけるロボット10の位置P1から、修正後動作経路R1上の位置P21、P31、P41、・・・を通って位置P4mに到達するまでの時間である。ここで、位置P4mは修正後動作経路R1上の位置であり、周辺環境SOと干渉し始める位置である。また、修正後動作経路R1が初めて動作不可能と判定されたため、この時の制御周期2における指令値候補P2を通る動作経路Raと、前回ロボット10へ出力された前回指令値P1を通る動作経路Raとの差分はゼロである。よって、制御周期2における修正積算値の初期値ΔJsum,0は、ゼロである。到達時間内までに変更後の目標位置GLbを通る動作経路R2上の位置に到達すると仮定すると、修正積算値ΔJsumは、例えば位置P21における関節角度と位置P2における関節角度との差分と、位置P32における関節角度と位置P31における関節角度との差分とを加算したものである。また、復元時間は、ロボット10が位置P32を通る動作経路R2から動作経路Raに戻るのに必要な時間である。この復元時間については、図11(b)を用いて詳細に説明する。 In the case of FIG. 11A, the arrival time is the time from the time corresponding to control cycle 2 until the robot 10 reaches the position P4m. Specifically, the arrival time is the time from the position P1 of the robot 10 in the control cycle 2 to the position P4m through the positions P21, P31, P41, . . . . Here, the position P4m is a position on the corrected motion path R1, and is a position where interference with the surrounding environment SO begins. In addition, since the corrected motion path R1 is determined to be inoperable for the first time, the motion path Ra passing through the command value candidate P2 in the control period 2 at this time and the motion path passing through the previous command value P1 output to the robot 10 last time The difference with Ra is zero. Therefore, the initial value ΔJ sum,0 of the corrected integrated value in control cycle 2 is zero. Assuming that the position on the motion path R2 passing through the target position GLb after change is reached within the arrival time, the corrected integrated value ΔJ sum is, for example, the difference between the joint angle at position P21 and the joint angle at position P2, and the position It is obtained by adding the difference between the joint angle at P32 and the joint angle at position P31. The restoration time is the time required for the robot 10 to return from the motion route R2 passing through the position P32 to the motion route Ra. This restoration time will be described in detail with reference to FIG. 11(b).
 制御周期3において、指令値候補生成部12は、補間点P3と補間点P2との差分および前回の指令値P21に基づいて指令値候補P31を生成する。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12からの指令値候補P31を修正し、修正後指令値候補P32を設定する。なお、制御周期3における外部修正量は、修正後指令値候補P32と指令値候補P31との差分に相当する。次に、修正後動作経路演算部15は、位置P41、・・・と外部修正量とに基づいて位置P42、・・・を設定し、修正後指令値候補P32、位置P42、・・・を通る修正後動作経路R2を演算する。次に、修正後動作経路判定部16は、ロボット10が修正後動作経路R2上の修正後指令値候補P32、位置P42、・・・を動作可能であるか、動作不可能であるかを判定する。図11(a)に示すように、修正後動作経路R2上に周辺環境SOが存在しない。また、修正後動作経路R2上を動作する上で求められる関節の角速度および角加速度は、それぞれロボット10が出力可能な関節の角速度および角加速度の上限値以下であると仮定する。この場合、修正後動作経路判定部16は、ロボット10が動作可能であると判定する。指令値出力部17aは、修正後指令値候補P32に相当する指令値をロボット10へ出力する。 In control cycle 3, the command value candidate generation unit 12 generates a command value candidate P31 based on the difference between the interpolation point P3 and the interpolation point P2 and the previous command value P21. Further, the command value candidate correction unit 14 corrects the command value candidate P31 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the command value candidate after correction P32. . The external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P32 and the command value candidate P31. Next, the post-correction motion path calculator 15 sets positions P42, . . . based on the positions P41, . A corrected motion path R2 passing through is calculated. Next, the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidate P32, the position P42, . . . do. As shown in FIG. 11(a), the surrounding environment SO does not exist on the post-correction motion path R2. It is also assumed that the angular velocity and angular acceleration of the joints required for moving along the corrected motion path R2 are equal to or less than the upper limit values of the angular velocity and angular acceleration of the joints that the robot 10 can output. In this case, the corrected motion path determination unit 16 determines that the robot 10 is operable. The command value output unit 17a outputs to the robot 10 a command value corresponding to the post-correction command value candidate P32.
 制御周期4において、指令値候補生成部12は、補間点P4と補間点P3との差分および前回の指令値P32に基づいて指令値候補P42を生成する。指令値候補P42を通る動作経路R2は、変更された目標位置GLbを通るため、制御周期4における外部修正量はゼロとなる。よって、制御周期4以降、ロボット10は指令値候補P42を通る動作経路R2上を動作する。 In control cycle 4, the command value candidate generator 12 generates a command value candidate P42 based on the difference between the interpolation point P4 and the interpolation point P3 and the previous command value P32. Since the motion path R2 passing through the command value candidate P42 passes through the changed target position GLb, the external correction amount in the control cycle 4 becomes zero. Therefore, after control period 4, the robot 10 operates on the motion route R2 passing through the command value candidate P42.
 図11(a)の場合、制御周期毎にロボット10は動作開始位置ST、位置P1、位置P21、位置P32、位置P42、・・・、目標位置GLbを通るよう制御される。このように、制御周期2において修正後動作経路R1上に周辺環境SOが存在することで判定結果が動作不可能であっても、修正後動作経路R1上をロボット10が動作する猶予が与えられるため、ロボット10は目標位置GLaを経由することなく目標位置GLbに到達できる。 In the case of FIG. 11(a), the robot 10 is controlled to pass through the motion start position ST, position P1, position P21, position P32, position P42, . In this way, even if the determination result indicates that the robot 10 cannot move due to the presence of the surrounding environment SO on the corrected motion route R1 in control cycle 2, the robot 10 is given time to move along the corrected motion route R1. Therefore, the robot 10 can reach the target position GLb without passing through the target position GLa.
 図11(b)に示すように、制御周期が0において、作業者あるいはロボット制御装置1aは、ロボット10の手先を動作開始位置STに設定する。制御周期1において、指令値候補生成部12は、動作経路Ra上の補間点P1を設定する。指令値出力部17aは、補間点P1に相当する指令値をロボット10へ出力する。 As shown in FIG. 11(b), when the control cycle is 0, the operator or the robot control device 1a sets the hand of the robot 10 to the motion start position ST. In control cycle 1, the command value candidate generator 12 sets an interpolation point P1 on the motion path Ra. The command value output unit 17a outputs to the robot 10 a command value corresponding to the interpolation point P1.
 制御周期2において、目標位置GLaがGLbに変更されたと仮定する。この場合、指令値候補生成部12は、動作経路Ra上の補間点P2を設定し、これを指令値候補とする。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12からの指令値候補P2を修正し、修正後指令値候補P21を設定する。なお、制御周期2における外部修正量取得部13からの外部修正量は、修正後指令値候補P21と指令値候補P2との差分に相当する。次に、修正後動作経路演算部15は、動作経路Ra上の補間点P3、P4、・・・を設定する。修正後動作経路演算部15は、補間点P3、P4、・・・と外部修正量とに基づいて位置P31、P41、・・・を設定し、修正後指令値候補P21、位置P31、P41、・・・を通る修正後動作経路R1を演算する。次に、修正後動作経路判定部16は、ロボット10が修正後動作経路R1上の修正後指令値候補P21、位置P31、・・・を動作可能であるか、動作不可能であるかを判定する。図11(b)に示すように、修正後動作経路R1上に周辺環境SOが存在する。この場合、修正後動作経路判定部16は、ロボット10が動作不可能であると判定する。そして、指令値出力部17aは、到達時間と復元時間とを比較する。図11(b)において、復元時間が到達時間よりも小さいとすると、指令値出力部17aは、修正後指令値候補P21に相当する指令値をロボット10へ出力する。 Assume that the target position GLa is changed to GLb in control cycle 2. In this case, the command value candidate generation unit 12 sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate. Further, the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P21. . The external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2. Next, the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Based on the interpolation points P3, P4, . . . Calculate a modified motion path R1 passing through . Next, the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidates P21, positions P31, . . . do. As shown in FIG. 11(b), the surrounding environment SO exists on the post-correction motion path R1. In this case, the corrected motion path determining unit 16 determines that the robot 10 cannot move. Then, the command value output unit 17a compares the arrival time and the restoration time. In FIG. 11B, assuming that the restoration time is shorter than the arrival time, the command value output unit 17a outputs to the robot 10 a command value corresponding to the post-correction command value candidate P21.
 なお、図11(b)の場合、到達時間は、制御周期2に相当する時間から、ロボット10が位置P61に到達するまでの時間である。具体的には、到達時間は、制御周期2におけるロボット10の位置P1から、修正後動作経路R1上の位置P21、P31、P41を通って位置P61に到達するまでの時間であり、5制御周期に相当する時間である。ここで、位置P61は修正後動作経路R1上の位置であり、周辺環境SOと干渉し始める位置である。また、修正後動作経路R1が初めて動作不可能と判定されたため、この時の制御周期2における指令値候補P2を通る動作経路Raと、前回ロボット10へ出力された前回指令値P1を通る動作経路Raとの差分はゼロである。よって、制御周期2における修正積算値の初期値ΔJsum,0は、ゼロである。到達時間内までに変更後の目標位置GLbを通る動作経路R2上の位置に到達すると仮定すると、修正積算値ΔJsumは、例えば位置P21における関節角度と位置P2における関節角度との差分と、位置P32における関節角度と位置P31における関節角度との差分とを加算したものである。また、復元時間は、ロボット10が修正後動作経路R1から動作経路Raに戻るのに必要な時間である。 In the case of FIG. 11B, the arrival time is the time from the time corresponding to control cycle 2 until the robot 10 reaches the position P61. Specifically, the arrival time is the time from the position P1 of the robot 10 in the control cycle 2 to the position P61 through the positions P21, P31, and P41 on the corrected motion path R1. is the time equivalent to Here, the position P61 is a position on the corrected motion path R1 and is a position where interference with the surrounding environment SO begins. In addition, since the corrected motion path R1 is determined to be inoperable for the first time, the motion path Ra passing through the command value candidate P2 in the control period 2 at this time and the motion path passing through the previous command value P1 output to the robot 10 last time The difference with Ra is zero. Therefore, the initial value ΔJ sum,0 of the corrected integrated value in control cycle 2 is zero. Assuming that the position on the motion path R2 passing through the target position GLb after change is reached within the arrival time, the corrected integrated value ΔJ sum is, for example, the difference between the joint angle at position P21 and the joint angle at position P2, and the position It is obtained by adding the difference between the joint angle at P32 and the joint angle at position P31. The restoration time is the time required for the robot 10 to return from the corrected motion route R1 to the motion route Ra.
 制御周期3において、指令値候補生成部12は、補間点P3と補間点P2との差分および前回の指令値P21に基づいて指令値候補P31を生成する。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12からの指令値候補P31を修正し、修正後指令値候補P32を設定する。なお、制御周期3における外部修正量は、修正後指令値候補P32と指令値候補P31との差分に相当する。次に、修正後動作経路演算部15は、位置P41、・・・と外部修正量とに基づいて位置P42、・・・を設定し、修正後指令値候補P32、位置P42、・・・を通る修正後動作経路R2を演算する。次に、修正後動作経路判定部16は、ロボット10が修正後動作経路R2上の修正後指令値候補P32、位置P42、P52、・・・を動作可能であるか、動作不可能であるかを判定する。図11(b)に示すように、修正後動作経路R2上に周辺環境SOが存在する。この場合、修正後動作経路判定部16は、ロボット10が動作不可能であると判定する。そして、指令値出力部17aは、到達時間と復元時間とを比較する。図11(b)において、復元時間が到達時間よりも小さいとすると、指令値出力部17aは、修正後指令値候補P32に相当する指令値をロボット10へ出力する。 In control cycle 3, the command value candidate generation unit 12 generates a command value candidate P31 based on the difference between the interpolation point P3 and the interpolation point P2 and the previous command value P21. Further, the command value candidate correction unit 14 corrects the command value candidate P31 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the command value candidate after correction P32. . The external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P32 and the command value candidate P31. Next, the post-correction motion path calculator 15 sets positions P42, . . . based on the positions P41, . A corrected motion path R2 passing through is calculated. Next, the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidates P32, positions P42, P52, . . . judge. As shown in FIG. 11(b), the surrounding environment SO exists on the post-correction motion path R2. In this case, the corrected motion path determining unit 16 determines that the robot 10 cannot move. Then, the command value output unit 17a compares the arrival time and the restoration time. In FIG. 11B, if the restoration time is shorter than the arrival time, the command value output unit 17a outputs to the robot 10 a command value corresponding to the post-correction command value candidate P32.
 なお、図11(b)の場合、到達時間は、制御周期3に相当する時間から、ロボット10が位置P52に到達するまでの時間である。具体的には、到達時間は、制御周期3におけるロボット10の位置P21から、修正後動作経路R2上の位置P32、P42を通って位置P52に到達するまでの時間であり、3制御周期に相当する時間である。ここで、位置P52は修正後動作経路R2上の位置であり、周辺環境SOと干渉し始める位置である。また、制御周期3における修正積算値の初期値ΔJsum,0は、前回ロボット10へ出力された前回指令値P21を通る動作経路R1と、動作経路Raとの差分であり、例えば位置P21における関節角度と位置P2における関節角度との差分である。修正積算値ΔJsumは、例えば位置P32における関節角度と位置P31における関節角度との差分と、初期値ΔJsum,0とを加算したものである。また、復元時間は、ロボット10が修正後動作経路R2から動作経路Raに戻るのに必要な時間である。 In the case of FIG. 11B, the arrival time is the time from the time corresponding to control cycle 3 until the robot 10 reaches the position P52. Specifically, the arrival time is the time from the position P21 of the robot 10 in the control cycle 3 to the position P52 through the positions P32 and P42 on the corrected motion route R2, which corresponds to 3 control cycles. It is time to Here, the position P52 is a position on the corrected motion path R2, and is a position where interference with the surrounding environment SO begins. Further, the initial value ΔJ sum,0 of the corrected integrated value in the control cycle 3 is the difference between the motion path R1 passing through the previous command value P21 output to the robot 10 last time and the motion path Ra. It is the difference between the angle and the joint angle at position P2. The corrected integrated value ΔJ sum is, for example, the sum of the difference between the joint angle at position P32 and the joint angle at position P31 and the initial value ΔJ sum,0 . The restoration time is the time required for the robot 10 to return from the corrected motion route R2 to the motion route Ra.
 制御周期4において、指令値候補生成部12は、補間点P4と補間点P3との差分および前回の指令値P32に基づいて指令値候補P42を生成する。指令値候補P42を通る動作経路R2は、変更された目標位置GLbを通るため、制御周期4における外部修正量はゼロとなる。よって、指令値候補修正部14は、指令値候補P42と同じ修正後指令値候補P42を設定する。次に、修正後動作経路判定部16は、ロボット10が修正後動作経路R2上の修正後指令値候補P42、位置P52・・・を動作可能であるか、動作不可能であるかを判定する。図11(b)に示すように、修正後動作経路R2上に周辺環境SOが存在する。この場合、修正後動作経路判定部16は、ロボット10が動作不可能であると判定する。そして、指令値出力部17aは、到達時間と復元時間とを比較する。図11(b)において、復元時間が到達時間以上とすると、指令値出力部17aは、指令値候補P42に対し復元量が重畳された位置PR41に相当する指令値をロボット10へ出力する。 In control cycle 4, the command value candidate generator 12 generates a command value candidate P42 based on the difference between the interpolation point P4 and the interpolation point P3 and the previous command value P32. Since the motion path R2 passing through the command value candidate P42 passes through the changed target position GLb, the external correction amount in the control cycle 4 becomes zero. Therefore, the command value candidate correcting unit 14 sets the post-correction command value candidate P42 that is the same as the command value candidate P42. Next, the corrected motion path determination unit 16 determines whether the robot 10 can move the corrected command value candidate P42, the position P52, . . . . As shown in FIG. 11(b), the surrounding environment SO exists on the post-correction motion path R2. In this case, the corrected motion path determining unit 16 determines that the robot 10 cannot move. Then, the command value output unit 17a compares the arrival time and the restoration time. In FIG. 11B, if the restoration time is equal to or longer than the arrival time, the command value output unit 17a outputs to the robot 10 a command value corresponding to the position PR41 in which the restoration amount is superimposed on the command value candidate P42.
 なお、図11(b)の場合、到達時間は、制御周期4に相当する時間から、ロボット10が位置P52に到達するまでの時間である。具体的には、到達時間は、制御周期4におけるロボット10の位置P32から、修正後動作経路R2上の位置P42を通って位置P52に到達するまでの時間であり、2制御周期に相当する時間である。また、制御周期4における修正積算値の初期値ΔJsum,0は、前回ロボット10へ出力された前回指令値P32を通る動作経路R2と、動作経路Raとの差分であり、例えば位置P32における関節角度と位置P3における関節角度との差分である。修正積算値ΔJsumは、初期値ΔJsum,0である。また、復元量は、位置P42における関節角度と位置PR41における関節角度との差分である。位置PR41は、制御周期4における指令値候補P42と、判定結果が動作可能となる動作経路Ra上の位置P4との間にある位置であり、制御周期4におけるロボット10の位置P32からの動作に対し運動制約を逸脱しないよう設定された位置である。また、復元時間は、制御周期4における復元量と、次以降の制御周期における復元量とに基づいて演算される。図11(b)の場合、次の制御周期における復元量は、位置PR51における関節角度と位置P5における関節角度との差分である。すなわち、次の制御周期において、判定結果が動作可能となる動作経路Ra上の位置P5に復元できる見込みが得られるとする。この場合、復元時間は2制御周期に相当する時間である。以上より、到達時間と復元時間とは同じであるため、このまま修正後動作軌道R2上を動作すると周辺環境SOに干渉する可能性があるとして、ロボット10への指令値は位置PR41となる。 In the case of FIG. 11B, the arrival time is the time from the time corresponding to control cycle 4 until the robot 10 reaches the position P52. Specifically, the arrival time is the time from the position P32 of the robot 10 in the control cycle 4 to the position P52 through the position P42 on the corrected motion path R2, and is the time corresponding to two control cycles. is. The initial value ΔJ sum,0 of the corrected integrated value in control cycle 4 is the difference between the motion path R2 passing through the previous command value P32 output to the robot 10 last time and the motion path Ra. It is the difference between the angle and the joint angle at position P3. The corrected integrated value ΔJ sum is the initial value ΔJ sum,0 . Also, the restoration amount is the difference between the joint angle at the position P42 and the joint angle at the position PR41. The position PR41 is between the command value candidate P42 in the control period 4 and the position P4 on the movement path Ra at which the determination result indicates that the robot can move. It is a position set so as not to deviate from the motion restrictions. Also, the restoration time is calculated based on the restoration amount in the control period 4 and the restoration amounts in the subsequent control periods. In the case of FIG. 11B, the restoration amount in the next control cycle is the difference between the joint angle at position PR51 and the joint angle at position P5. That is, in the next control cycle, it is assumed that the determination result is likely to be restored to the position P5 on the operation path Ra where the operation becomes possible. In this case, the restoration time is a time corresponding to two control cycles. As described above, since the arrival time and the restoration time are the same, the command value to the robot 10 is the position PR41, assuming that there is a possibility of interference with the surrounding environment SO if the robot 10 continues to operate on the corrected motion trajectory R2.
 制御周期5において、指令値候補生成部12は、補間点P5と補間点P4との差分および前回の指令値PR41に基づいて指令値候補PR51を生成する。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12からの指令値候補PR51を修正し、修正後指令値候補P52を設定する。なお、制御周期5における外部修正量は、修正後指令値候補P52と指令値候補PR51との差分に相当する。次に、修正後動作経路演算部15は、補間点P6、P7、・・・と指令値候補PR51とに基づいて図示しない位置PR61、PR71、・・・を設定する。修正後動作経路演算部15は、位置PR61、PR71、・・・と外部修正量とに基づいて位置P62、P72、・・・を設定し、修正後指令値候補P52、位置P62、PP72、・・・を通る修正後動作経路R2を演算する。次に、修正後動作経路判定部16は、ロボット10が修正後動作経路R2上の修正後指令値候補P52、・・・を動作可能であるか、動作不可能であるかを判定する。図11(b)に示すように、修正後動作経路R2上に周辺環境SOが存在する。この場合、修正後動作経路判定部16は、ロボット10が動作不可能であると判定する。そして、指令値出力部17aは、到達時間と復元時間とを比較する。図11(b)において、復元時間が到達時間以上とすると、指令値出力部17aは、指令値候補PR51に対し復元量が重畳された位置P5に相当する指令値をロボット10へ出力する。 In control cycle 5, the command value candidate generation unit 12 generates a command value candidate PR51 based on the difference between the interpolation point P5 and the interpolation point P4 and the previous command value PR41. Further, the command value candidate correction unit 14 corrects the command value candidate PR51 from the command value candidate generation unit 12 based on the external correction amount from the external correction amount acquisition unit 13, and sets the command value candidate after correction P52. . The external correction amount in control cycle 5 corresponds to the difference between the post-correction command value candidate P52 and the command value candidate PR51. Next, the corrected motion path calculator 15 sets positions PR61, PR71, . . . (not shown) based on the interpolation points P6, P7, . Based on the positions PR61, PR71, . Calculate a modified motion path R2 passing through . Next, the post-correction motion path determining unit 16 determines whether the robot 10 can or cannot move the post-correction command value candidates P52, . . . on the post-correction motion path R2. As shown in FIG. 11(b), the surrounding environment SO exists on the post-correction motion path R2. In this case, the corrected motion path determination unit 16 determines that the robot 10 cannot move. Then, the command value output unit 17a compares the arrival time and the restoration time. In FIG. 11B, if the restoration time is equal to or longer than the arrival time, the command value output unit 17a outputs to the robot 10 a command value corresponding to the position P5 where the restoration amount is superimposed on the command value candidate PR51.
 なお、図11(b)の場合、到達時間は、制御周期5に相当する時間から、ロボット10が位置P52に到達するまでの時間である。具体的には、到達時間は、制御周期5におけるロボット10の位置PR41から、修正後動作経路R2上の位置P52に到達するまでの時間であり、1制御周期に相当する時間である。また、制御周期5における修正積算値の初期値ΔJsum,0は、前回ロボット10へ出力された前回指令値PR41を通る動作経路RR1と、動作経路Raとの差分であり、例えば位置PR41における関節角度と位置P4における関節角度との差分である。修正積算値ΔJsumは、例えば位置P52における関節角度と位置PR51における関節角度との差分と、初期値ΔJsum,0とを加算したものである。また、復元量は、位置PR51における関節角度と位置P5における関節角度との差分である。復元時間は、制御周期5における復元量に基づいて演算される。図11(b)の場合、制御周期5において、判定結果が動作可能となる動作経路Ra上の位置P5に復元できるため、復元時間は1制御周期に相当する時間となる。以上より、到達時間と復元時間とは同じであるため、修正後動作軌道R2上を動作すると周辺環境SOに干渉する可能性があるとして、ロボット10への指令値は位置P5となる。 In the case of FIG. 11B, the arrival time is the time from the time corresponding to control cycle 5 until the robot 10 reaches the position P52. Specifically, the arrival time is the time from the position PR41 of the robot 10 in the control cycle 5 to the position P52 on the corrected motion route R2, and is the time corresponding to one control cycle. The initial value ΔJ sum,0 of the corrected integrated value in control cycle 5 is the difference between the motion path RR1 passing through the previous command value PR41 output to the robot 10 last time and the motion path Ra. It is the difference between the angle and the joint angle at position P4. The corrected integrated value ΔJ sum is, for example, the sum of the difference between the joint angle at the position P52 and the joint angle at the position PR51 and the initial value ΔJ sum,0 . The restoration amount is the difference between the joint angle at the position PR51 and the joint angle at the position P5. The restoration time is calculated based on the amount of restoration in control cycle 5 . In the case of FIG. 11B, in control cycle 5, the determination result can be restored to the position P5 on the operation path Ra where the operation is possible, so the restoration time is the time corresponding to one control cycle. As described above, since the arrival time and the restoration time are the same, the command value to the robot 10 is the position P5 assuming that there is a possibility of interfering with the surrounding environment SO when operating on the corrected motion trajectory R2.
 制御周期6において、指令値候補生成部12は、補間点P6を指令値候補とする。また、指令値候補修正部14は、修正後指令値候補P61を設定する。修正後指令値候補P61は、周辺環境SOと干渉する位置であるため、指令値出力部17aは、指令値候補P6に相当する指令値をロボット10へ出力する。 In control cycle 6, the command value candidate generation unit 12 sets interpolation point P6 as a command value candidate. In addition, the command value candidate correction unit 14 sets a post-correction command value candidate P61. Since the corrected command value candidate P61 is a position that interferes with the surrounding environment SO, the command value output unit 17a outputs to the robot 10 a command value corresponding to the command value candidate P6.
 制御周期7以降、これまでと同様に修正後動作経路の判定が行われる。制御周期7以降の修正後動作経路の判定結果が全て動作可能であるとすると、位置P6から位置P71、位置P82、位置P92、目標位置GLbを通るよう制御される。以上より、図11(b)の場合、制御周期毎にロボット10は動作開始位置ST、位置P1、位置P21、位置P32、位置PR41、位置P5、位置P6、位置P71、位置P82、位置P92、目標位置GLbを通るよう制御される。 From control cycle 7 onwards, the post-correction motion path is determined in the same way as before. Assuming that all the determination results of the corrected motion paths after the control period 7 are operable, control is performed from the position P6 to the position P71, the position P82, the position P92, and the target position GLb. As described above, in the case of FIG. 11(b), the robot 10 moves to the operation start position ST, position P1, position P21, position P32, position PR41, position P5, position P6, position P71, position P82, position P92, It is controlled to pass through the target position GLb.
 図12は、実施の形態2におけるロボット制御装置1aの動作の一例を示すフローチャートである。すなわち、図12は、実施の形態2におけるロボット制御方法の一例を示すフローチャートである。図12において、ステップST6の代わりにステップST9の処理を行う点で、図5とは異なる。ステップST9以外は、図5に示すものと同じであるため、説明を省略する。 FIG. 12 is a flow chart showing an example of the operation of the robot control device 1a according to the second embodiment. That is, FIG. 12 is a flow chart showing an example of the robot control method according to the second embodiment. 12 differs from FIG. 5 in that step ST9 is performed instead of step ST6. Since the steps other than step ST9 are the same as those shown in FIG. 5, description thereof is omitted.
 指令値出力部17aは、修正後動作経路判定部16からの判定結果に基づいて、指令値候補または修正後指令値候補を用いてロボット10への指令値を演算し、指令値を出力する(ステップST9)。ステップST9の処理については、図13および図14を用いて詳細に説明する。 The command value output unit 17a calculates a command value for the robot 10 using the command value candidate or the corrected command value candidate based on the determination result from the corrected motion path determination unit 16, and outputs the command value ( step ST9). The processing of step ST9 will be described in detail with reference to FIGS. 13 and 14. FIG.
 図13は、実施の形態2における指令値出力部17aの動作の一例を示すフローチャートである。すなわち、図13は、図12のステップST9の処理の詳細を示すフローチャートである。 FIG. 13 is a flow chart showing an example of the operation of the command value output unit 17a according to the second embodiment. That is, FIG. 13 is a flow chart showing details of the process of step ST9 in FIG.
 図13に示すように、指令値出力部17aにより指令値の出力処理が開始されると、指令値出力部17aは、修正後動作経路判定部16からの判定結果を入力し、入力された判定結果が動作可能であるか否かを判定する(ステップST91)。 As shown in FIG. 13 , when command value output processing is started by the command value output unit 17a, the command value output unit 17a receives the determination result from the post-correction operation path determination unit 16, and determines the input determination result. It is determined whether or not the result is operable (step ST91).
 ステップST91の判定が「Yes」の場合は、処理はステップST92に進む。ステップST91の判定が「No」の場合は、処理はステップST94に進む。 If the determination in step ST91 is "Yes", the process proceeds to step ST92. If the determination in step ST91 is "No", the process proceeds to step ST94.
 ステップST91の判定が「Yes」の場合、修正積算値演算部171aは、修正積算値をクリアする(ステップST92)。すなわち、修正積算値演算部171aは、修正積算値をゼロに設定する。 If the determination in step ST91 is "Yes", the corrected integrated value calculator 171a clears the corrected integrated value (step ST92). That is, the corrected integrated value calculator 171a sets the corrected integrated value to zero.
 復元量演算部172aは、復元量をゼロに設定する(ステップST93)。 The restoration amount calculator 172a sets the restoration amount to zero (step ST93).
 ステップST91の判定が「No」の場合、修正積算値演算部171aは、動作不可能と判定された時間から実際に動作不可能となる時間までの到達時間を演算する(ステップST94)。 If the determination in step ST91 is "No", the corrected integrated value calculation unit 171a calculates the arrival time from the time when the operation is determined to be inoperable to the time when it actually becomes inoperable (step ST94).
 修正積算値演算部171aは、修正積算値の初期値を演算する(ステップST95)。 The corrected integrated value calculation unit 171a calculates the initial value of the corrected integrated value (step ST95).
 修正積算値演算部171aは、数式(6)および数式(7)に基づいて、修正積算値を演算する(ステップST96)。 The corrected integrated value calculation unit 171a calculates the corrected integrated value based on the formulas (6) and (7) (step ST96).
 復元量演算部172aは、ある制御周期kにおける復元量を演算する(ステップST97)。 The restoration amount calculation unit 172a calculates the restoration amount in a certain control cycle k (step ST97).
 復元量演算部172aは、ステップST96で演算された修正積算値をゼロとするのに必要な復元時間を演算する(ステップST98)。 The restoration amount calculation unit 172a calculates the restoration time required to zero the corrected integrated value calculated in step ST96 (step ST98).
 復元量演算部172aは、到達時間が復元時間以下であるか否かを判定する(ステップST99)。 The restoration amount calculation unit 172a determines whether or not the arrival time is equal to or less than the restoration time (step ST99).
 ステップST99の判定が「Yes」の場合は、処理はステップST100に進む。ステップST99の判定が「No」の場合は、処理はステップST93に進む。 If the determination in step ST99 is "Yes", the process proceeds to step ST100. If the determination in step ST99 is "No", the process proceeds to step ST93.
 ステップST99の判定が「Yes」の場合、指令値演算部173aは、ロボット10への指令値を演算する(ステップST100)。具体的には、指令値演算部173aは、ステップST97で演算された復元量を指令値候補に重畳したものを指令値とする。ステップST100の処理が行われた後、指令値出力部17aは、指令値の出力処理を終了する。 When the determination in step ST99 is "Yes", the command value calculation unit 173a calculates a command value for the robot 10 (step ST100). Specifically, the command value calculation unit 173a sets the command value by superimposing the restoration amount calculated in step ST97 on the command value candidate. After the processing of step ST100 is performed, the command value output unit 17a ends the command value output processing.
 図14は、実施の形態2における指令値出力部17aの動作の別の一例を示すフローチャートである。すなわち、図14は、図12のステップST9の処理の詳細を示すフローチャートである。図14において、ステップST98の代わりにステップST101の処理を行う点、およびステップST99の代わりにステップST102の処理を行う点で、図13とは異なる。ステップST101およびステップST102以外は、図13に示すものと同じであるため、説明を省略する。 FIG. 14 is a flow chart showing another example of the operation of the command value output unit 17a according to the second embodiment. That is, FIG. 14 is a flow chart showing the details of the process of step ST9 in FIG. 14 differs from FIG. 13 in that step ST101 is performed instead of step ST98 and step ST102 is performed instead of step ST99. Since steps other than steps ST101 and ST102 are the same as those shown in FIG. 13, description thereof is omitted.
 復元量演算部172aは、到達時間内の復元量の復元積算値を演算する(ステップST101)。 The restoration amount calculation unit 172a calculates the restoration integrated value of the restoration amount within the arrival time (step ST101).
 復元量演算部172aは、復元積算値が修正積算値以下であるか否かを判定する(ステップST102)。 The restoration amount calculation unit 172a determines whether or not the restoration integrated value is equal to or less than the corrected integrated value (step ST102).
 ステップST102の判定が「Yes」の場合は、処理はステップST100に進む。ステップST102の判定が「No」の場合は、処理はステップST93に進む。 If the determination in step ST102 is "Yes", the process proceeds to step ST100. If the determination in step ST102 is "No", the process proceeds to step ST93.
 以上で説明した実施の形態2によれば、修正後動作経路について動作不可能と判定された場合でも、ある程度の期間、修正後指令値候補を指令値としてロボット10へ出力するため、変更された目標位置へ動作するのにかかる時間を短縮できる場合がある。 According to the second embodiment described above, even if it is determined that the motion path after correction is inoperable, the modified command value candidate is output to the robot 10 as the command value for a certain period of time. In some cases, the time required to move to the target position can be shortened.
実施の形態3.
 実施の形態3では、修正後動作経路の各位置に対する周辺環境SOとの相対距離あるいは相対速度に基づいて、修正後動作経路に対しロボット10の動作可能または動作不可能を判定する。
Embodiment 3.
In Embodiment 3, it is determined whether the robot 10 is operable or inoperable with respect to the post-correction motion path based on the relative distance or relative speed from the surrounding environment SO with respect to each position of the post-correction motion path.
 図15は、実施の形態3におけるロボット制御装置1bの一例を示すブロック図である。図15は、ロボット制御装置1bが指令値候補生成部12の代わりに指令値候補生成部12bを備える点、および修正後動作経路判定部16の代わりに修正後動作経路判定部16bを備える点で、図2とは異なる。指令値候補生成部12bおよび修正後動作経路判定部16b以外は、図2に示すものと同じであるため、説明を省略する。 FIG. 15 is a block diagram showing an example of the robot control device 1b according to the third embodiment. 15 is that the robot control device 1b includes a command value candidate generation unit 12b instead of the command value candidate generation unit 12, and a corrected motion path determination unit 16b instead of the corrected motion path determination unit 16. , different from FIG. Since the parts other than the command value candidate generation unit 12b and the corrected motion path determination unit 16b are the same as those shown in FIG. 2, description thereof will be omitted.
 指令値候補生成部12bは、変更前の動作経路を通る補間点を設定し、補間点に基づいて指令値候補を生成する。また、指令値候補生成部12bは、修正後動作経路判定部16bからの判定結果に基づいて補間点を修正し、修正された補間点に基づいてロボット10への次の指令値候補を生成する。指令値候補生成部12bについては、後に図16を用いて詳細に説明する。 The command value candidate generation unit 12b sets interpolation points passing through the motion path before change, and generates command value candidates based on the interpolation points. Further, the command value candidate generation unit 12b corrects the interpolation point based on the determination result from the post-correction motion path determination unit 16b, and generates the next command value candidate for the robot 10 based on the corrected interpolation point. . The command value candidate generator 12b will be described later in detail with reference to FIG.
 修正後動作経路判定部16bは、実施の形態1において説明した判定結果の他、修正後動作経路の各位置に対するロボット10周辺の周辺環境SOとの相対距離あるいは相対速度に基づく判定結果を出力する。 The post-correction motion path determination unit 16b outputs determination results based on the relative distance or relative speed from the surrounding environment SO around the robot 10 with respect to each position of the post-correction motion path, in addition to the determination results described in the first embodiment. .
 図16は、実施の形態3における指令値候補生成部12bの一例を示すブロック図である。指令値候補生成部12bは、補間点設定部121bと、前回補間点保持部122と、相対値演算部123と、指令値候補演算部124とを備える。図16は、指令値候補生成部12bが補間点設定部121の代わりに補間点設定部121bを備える点で、図3とは異なる。補間点設定部121b以外は、図3に示すものと同じであるため、説明を省略する。 FIG. 16 is a block diagram showing an example of the command value candidate generating section 12b according to the third embodiment. The command value candidate generation unit 12b includes an interpolation point setting unit 121b, a previous interpolation point holding unit 122, a relative value calculation unit 123, and a command value candidate calculation unit . FIG. 16 is different from FIG. 3 in that the command value candidate generation unit 12b includes an interpolation point setting unit 121b instead of the interpolation point setting unit 121. FIG. Since the components other than the interpolation point setting unit 121b are the same as those shown in FIG. 3, description thereof will be omitted.
 補間点設定部121bは、修正後動作経路判定部16bからの判定結果に基づいて補間点を修正する。修正後動作経路上をロボット10が動作すると仮定すると、周辺環境SOが修正後動作経路に対し前から向かってくる場合には、ロボット10は減速する必要がある。そこで、補間点設定部121bは、補間点の間隔を小さくする。また、周辺環境SOが修正後動作経路に対し後ろから向かってくる場合には、ロボット10は加速する必要がある。そこで、補間点設定部121bは、補間点の間隔を大きくする。補間点の間隔を大きくする場合、補間点設定部121bは、ロボット10が出力可能な関節の角速度および角加速度の上限値を超えないよう、補間点を設定する。 The interpolation point setting unit 121b corrects the interpolation points based on the determination result from the post-correction motion path determination unit 16b. Assuming that the robot 10 moves on the corrected movement path, the robot 10 needs to decelerate when the surrounding environment SO approaches the corrected movement path from the front. Therefore, the interpolation point setting unit 121b reduces the interval between interpolation points. Further, when the surrounding environment SO approaches the corrected motion path from behind, the robot 10 needs to be accelerated. Therefore, the interpolation point setting unit 121b increases the interval between the interpolation points. When increasing the intervals between the interpolation points, the interpolation point setting unit 121b sets the interpolation points so that the upper limit values of the joint angular velocity and angular acceleration that the robot 10 can output are not exceeded.
 補間点設定部121bは、例えば周辺環境SOが修正後動作経路に対し正面から向かってくる場合には、必ずしもロボット10を減速するよう補間点を設定する必要はない。補間点設定部121bは、修正後動作経路上の各位置に対する周辺環境SOとの相対距離が所定値以下、あるいは相対速度が所定値以上であればロボット10を減速するようにしてもよい。所定値とは、例えば修正後動作経路上をロボット10が動作する場合に、周辺環境SOと衝突する可能性が無いような値である。 The interpolation point setting unit 121b does not necessarily need to set interpolation points to decelerate the robot 10, for example, when the surrounding environment SO faces the corrected motion path from the front. The interpolation point setting unit 121b may decelerate the robot 10 if the relative distance from each position on the corrected motion path to the surrounding environment SO is equal to or less than a predetermined value, or if the relative speed is equal to or greater than a predetermined value. The predetermined value is, for example, a value that eliminates the possibility of collision with the surrounding environment SO when the robot 10 moves on the corrected motion path.
 図17(a)および図17(b)は、実施の形態3におけるロボット10の動作の一例を示す模式図である。図17(a)および図17(b)は、ロボット10が動作開始位置STから目標位置GLaに向かって予め設定された動作経路Ra上を動作する途中で、目標位置がGLbに変更された場合のロボット10の動作を示す図である。図17(a)は、周辺環境SOが前から向かってくる場合のロボット10の動作を示す図である。図17(b)は、周辺環境SOが後ろから向かってくる場合のロボット10の動作を示す図である。 17(a) and 17(b) are schematic diagrams showing an example of the motion of the robot 10 according to the third embodiment. FIGS. 17A and 17B show the case where the target position is changed to GLb while the robot 10 is moving from the motion start position ST toward the target position GLa along the preset motion path Ra. 2 is a diagram showing the motion of the robot 10 in FIG. FIG. 17(a) is a diagram showing the motion of the robot 10 when the surrounding environment SO is approaching from the front. FIG. 17(b) is a diagram showing the motion of the robot 10 when the surrounding environment SO is approaching from behind.
 図17(a)に示すように、制御周期が0において、作業者あるいはロボット制御装置1bは、ロボット10の手先を動作開始位置STに設定する。制御周期1において、指令値候補生成部12bは、動作経路Ra上の補間点P2を設定する。指令値出力部17は、補間点P1に相当する指令値をロボット10へ出力する。 As shown in FIG. 17(a), when the control period is 0, the operator or the robot control device 1b sets the hand of the robot 10 to the motion start position ST. In control cycle 1, the command value candidate generator 12b sets an interpolation point P2 on the motion path Ra. The command value output unit 17 outputs to the robot 10 a command value corresponding to the interpolation point P1.
 制御周期2において、目標位置GLaがGLbに変更されたと仮定する。この場合、指令値候補生成部12bは、動作経路Ra上の補間点P2を設定し、これを指令値候補とする。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12bからの指令値候補P2を修正し、修正後指令値候補P21を設定する。なお、制御周期2における外部修正量取得部13からの外部修正量は、修正後指令値候補P21と指令値候補P2との差分に相当する。次に、修正後動作経路演算部15は、動作経路Ra上の補間点P3、P4、・・・を設定する。なお、ここで設定される補間点P3、P4、・・・は、図17(a)に示す補間点P3、P4、・・・とは異なる。修正後動作経路演算部15は、補間点P3、P4、・・・と外部修正量とに基づいて位置P31、P41、・・・を設定し、修正後指令値候補P21、位置P31、P41、・・・を通る修正後動作経路R1を演算する。補間点P3、P4、・・・と同様、ここで設定される位置P31、P41、・・・は、図17(a)に示す位置P31、P41、・・・とは異なる。次に、修正後動作経路判定部16bは、ロボット10が修正後動作経路R1上の修正後指令値候補P21、位置P31、P41、・・・を動作可能であるか、動作不可能であるかを判定する。図17(a)に示すように、修正後動作経路判定部16bは、修正後動作経路R1上に周辺環境SOは存在しないが、前から向かってくると判定したとする。この場合、修正後動作経路判定部16bは、ロボット10が動作不可能であると判定する。指令値出力部17は、指令値候補P2に相当する指令値をロボット10へ出力する。なお、修正後動作経路R1上に周辺環境SOが存在しないため、指令値出力部17は、修正後指令値候補P21に相当する指令値をロボット10へ出力してもよい。ここでは、指令値出力部17は、指令値候補P2をロボット10への指令値として設定する。 Assume that the target position GLa is changed to GLb in control cycle 2. In this case, the command value candidate generation unit 12b sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate. Further, the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12b based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P21. . The external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2. Next, the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Note that the interpolation points P3, P4, . . . set here are different from the interpolation points P3, P4, . Based on the interpolation points P3, P4, . . . Calculate a modified motion path R1 passing through . Positions P31, P41, . . . set here are different from positions P31, P41, . Next, the corrected motion path determination unit 16b determines whether the robot 10 can move the corrected command value candidates P21, positions P31, P41, . . . judge. As shown in FIG. 17A, the corrected motion path determination unit 16b determines that the surrounding environment SO does not exist on the corrected motion path R1, but is approaching from the front. In this case, the corrected motion path determination unit 16b determines that the robot 10 cannot move. The command value output unit 17 outputs to the robot 10 a command value corresponding to the command value candidate P2. Since the surrounding environment SO does not exist on the corrected motion path R1, the command value output unit 17 may output to the robot 10 a command value corresponding to the corrected command value candidate P21. Here, the command value output unit 17 sets the command value candidate P2 as the command value for the robot 10 .
 なお、修正後動作経路判定部16bは、修正後動作経路R1上の各位置に対する周辺環境SOとの相対距離が急激に小さくなる場合、あるいは相対速度が急激に大きくなる場合に、周辺環境SOが前から向かってくると判定する。そして、修正後動作経路判定部16bは、相対距離が所定値以下、あるいは相対速度が所定値以上であると判定した場合に、判定結果を動作不可能とする。修正後動作経路判定部16bは、相対距離が所定値以下であるか否かを判定するだけでもよいし、相対速度が所定値以上であるか否かを判定するだけでもよい。または、修正後動作経路判定部16bは、相対加速度を用いてもよい。すなわち、修正後動作経路判定部16bは、相対加速度が所定値以上であると判定した場合に、判定結果を動作不可能としてもよい。 Note that the post-correction motion path determination unit 16b determines that when the relative distance between each position on the post-correction motion path R1 and the surrounding environment SO suddenly decreases, or when the relative speed suddenly increases, the surrounding environment SO Judging that it is coming from the front. When the corrected motion path determination unit 16b determines that the relative distance is equal to or less than a predetermined value or that the relative speed is equal to or greater than a predetermined value, the corrected motion path determining unit 16b determines that the motion is impossible as a result of the determination. The post-correction motion path determination unit 16b may only determine whether the relative distance is equal to or less than a predetermined value, or may determine whether the relative speed is equal to or greater than a predetermined value. Alternatively, the post-correction motion path determination unit 16b may use relative acceleration. That is, when the corrected motion path determination unit 16b determines that the relative acceleration is equal to or greater than a predetermined value, the determination result may be the inability to move.
 制御周期3において、指令値候補生成部12bは、図17(a)に示すように補間点P2との間隔を小さくした点P3を動作経路Ra上で設定し、改めてこれを補間点P3とする。すなわち、ロボット10は速度を小さくするよう制御される。これは、前の制御周期において周辺環境SOが前から向かってくると判定されたためである。制御周期3において、指令値候補生成部12bは、補間点P3を指令値候補とする。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12bからの指令値候補P3を修正し、修正後指令値候補P31を設定する。なお、制御周期3における外部修正量は、修正後指令値候補P31と指令値候補P3との差分に相当する。次に、修正後動作経路演算部15は、図17(a)に示すように、間隔を小さくした補間点P4、・・・を動作経路Ra上に設定する。修正後動作経路演算部15は、補間点P4、・・・と外部修正量とに基づいて位置P41、・・・を設定し、修正後指令値候補P31、位置P41、・・・を通る修正後動作経路R1を演算する。次に、修正後動作経路判定部16bは、ロボット10が修正後動作経路R1上の修正後指令値候補P31、位置P41、・・・を動作可能であるか、動作不可能であるかを判定する。これ以降は、制御周期2における動作と同様であるため、説明を省略する。 In the control cycle 3, the command value candidate generation unit 12b sets a point P3 with a small interval from the interpolation point P2 on the operation path Ra as shown in FIG. . That is, the robot 10 is controlled to slow down. This is because it was determined in the previous control cycle that the surrounding environment SO was approaching from the front. In control cycle 3, the command value candidate generator 12b sets the interpolation point P3 as a command value candidate. Further, the command value candidate correction unit 14 corrects the command value candidate P3 from the command value candidate generation unit 12b based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P31. . The external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P31 and the command value candidate P3. Next, as shown in FIG. 17A, the post-correction motion path calculation unit 15 sets interpolation points P4, . Based on the interpolation points P4, . A post-movement path R1 is calculated. Next, the corrected motion path determination unit 16b determines whether the robot 10 can move the corrected command value candidates P31, positions P41, . . . do. Since the operation after this is the same as the operation in the control period 2, the explanation is omitted.
 図17(b)に示すように、制御周期が0において、作業者あるいはロボット制御装置1bは、ロボット10の手先を動作開始位置STに設定する。制御周期1において、指令値候補生成部12bは、動作経路Ra上の補間点P2を設定する。指令値出力部17は、補間点P1に相当する指令値をロボット10へ出力する。 As shown in FIG. 17(b), when the control period is 0, the operator or the robot control device 1b sets the hand of the robot 10 to the motion start position ST. In control cycle 1, the command value candidate generator 12b sets an interpolation point P2 on the motion path Ra. The command value output unit 17 outputs to the robot 10 a command value corresponding to the interpolation point P1.
 制御周期2において、目標位置GLaがGLbに変更されたと仮定する。この場合、指令値候補生成部12bは、動作経路Ra上の補間点P2を設定し、これを指令値候補とする。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12bからの指令値候補P2を修正し、修正後指令値候補P21を設定する。なお、制御周期2における外部修正量取得部13からの外部修正量は、修正後指令値候補P21と指令値候補P2との差分に相当する。次に、修正後動作経路演算部15は、動作経路Ra上の補間点P3、P4、・・・を設定する。なお、ここで設定される補間点P3、P4、・・・は、図17(b)に示す補間点P3、P4、・・・とは異なる。修正後動作経路演算部15は、補間点P3、P4、・・・と外部修正量とに基づいて位置P31、P41、・・・を設定し、修正後指令値候補P21、位置P31、P41、・・・を通る修正後動作経路R1を演算する。補間点P3、P4、・・・と同様、ここで設定される位置P31、P41、・・・は、図17(b)に示す位置P31、P41、・・・とは異なる。次に、修正後動作経路判定部16bは、ロボット10が修正後動作経路R1上の修正後指令値候補P21、位置P31、P41、・・・を動作可能であるか、動作不可能であるかを判定する。図17(b)に示すように、修正後動作経路判定部16bは、修正後動作経路R1上に周辺環境SOは存在しないが、後ろから向かってくると判定したとする。この場合、修正後動作経路判定部16bは、ロボット10が動作不可能であると判定する。指令値出力部17は、指令値候補P2に相当する指令値をロボット10へ出力する。なお、修正後動作経路R1上に周辺環境SOが存在しないため、指令値出力部17は、修正後指令値候補P21に相当する指令値をロボット10へ出力してもよい。ここでは、指令値出力部17は、指令値候補P2をロボット10への指令値として設定する。 Assume that the target position GLa is changed to GLb in control cycle 2. In this case, the command value candidate generation unit 12b sets an interpolation point P2 on the motion path Ra and uses this as a command value candidate. Further, the command value candidate correction unit 14 corrects the command value candidate P2 from the command value candidate generation unit 12b based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P21. . The external correction amount from the external correction amount acquisition unit 13 in control cycle 2 corresponds to the difference between the post-correction command value candidate P21 and the command value candidate P2. Next, the corrected motion path calculator 15 sets interpolation points P3, P4, . . . on the motion path Ra. Note that the interpolation points P3, P4, . . . set here are different from the interpolation points P3, P4, . Based on the interpolation points P3, P4, . . . Calculate a modified motion path R1 passing through . Positions P31, P41, . . . set here are different from positions P31, P41, . Next, the corrected motion path determination unit 16b determines whether the robot 10 can move the corrected command value candidates P21, positions P31, P41, . . . judge. As shown in FIG. 17B, the corrected motion path determination unit 16b determines that the surrounding environment SO does not exist on the corrected motion path R1, but is approaching from behind. In this case, the corrected motion path determination unit 16b determines that the robot 10 cannot move. The command value output unit 17 outputs to the robot 10 a command value corresponding to the command value candidate P2. Since the surrounding environment SO does not exist on the corrected motion path R1, the command value output unit 17 may output to the robot 10 a command value corresponding to the corrected command value candidate P21. Here, the command value output unit 17 sets the command value candidate P2 as the command value for the robot 10 .
 なお、修正後動作経路判定部16bは、修正後動作経路R1上の各位置に対する周辺環境SOとの相対距離が徐々に小さくなる場合、あるいは相対速度が徐々に大きくなる場合に、周辺環境SOが後ろから向かってくると判定する。そして、修正後動作経路判定部16bは、相対距離が所定値以下、あるいは相対速度が所定値以上であると判定した場合に、判定結果を動作不可能とする。修正後動作経路判定部16bは、相対距離が所定値以下であるか否かを判定するだけでもよいし、相対速度が所定値以上であるか否かを判定するだけでもよい。または、修正後動作経路判定部16bは、相対加速度を用いてもよい。すなわち、修正後動作経路判定部16bは、相対加速度が所定値以上であると判定した場合に、判定結果を動作不可能としてもよい。 Note that the post-correction motion path determining unit 16b determines that the position of the surrounding environment SO is determined when the relative distance to each position on the post-correction motion path R1 from the surrounding environment SO gradually decreases, or when the relative speed gradually increases. Determined to come from behind. When the corrected motion path determination unit 16b determines that the relative distance is equal to or less than a predetermined value or that the relative speed is equal to or greater than a predetermined value, the corrected motion path determining unit 16b determines that the motion is impossible as a result of the determination. The post-correction motion path determination unit 16b may only determine whether the relative distance is equal to or less than a predetermined value, or may determine whether the relative speed is equal to or greater than a predetermined value. Alternatively, the post-correction motion path determination unit 16b may use relative acceleration. That is, when the corrected motion path determination unit 16b determines that the relative acceleration is equal to or greater than a predetermined value, the determination result may be the inability to move.
 制御周期3において、指令値候補生成部12bは、図17(b)に示すように補間点P2との間隔を大きくした点P3を動作経路Ra上で設定し、改めてこれを補間点P3とする。すなわち、ロボット10は速度を大きくするよう制御される。これは、前の制御周期において周辺環境SOが後ろから向かってくると判定されたためである。制御周期3において、指令値候補生成部12bは、補間点P3を指令値候補とする。また、指令値候補修正部14は、外部修正量取得部13からの外部修正量に基づいて、指令値候補生成部12bからの指令値候補P3を修正し、修正後指令値候補P31を設定する。なお、制御周期3における外部修正量は、修正後指令値候補P31と指令値候補P3との差分に相当する。次に、修正後動作経路演算部15は、図17(b)に示すように、間隔を大きくした補間点P4、・・・を動作経路Ra上に設定する。修正後動作経路演算部15は、補間点P4、・・・と外部修正量とに基づいて位置P41、・・・を設定し、修正後指令値候補P31、位置P41、・・・を通る修正後動作経路R1を演算する。次に、修正後動作経路判定部16bは、ロボット10が修正後動作経路R1上の修正後指令値候補P31、位置P41、・・・を動作可能であるか、動作不可能であるかを判定する。これ以降は、制御周期2における動作と同様であるため、説明を省略する。 In the control cycle 3, the command value candidate generation unit 12b sets a point P3 on the operation path Ra with an increased interval from the interpolation point P2 as shown in FIG. . That is, the robot 10 is controlled to increase its speed. This is because it was determined in the previous control cycle that the surrounding environment SO was approaching from behind. In control cycle 3, the command value candidate generator 12b sets the interpolation point P3 as a command value candidate. Further, the command value candidate correction unit 14 corrects the command value candidate P3 from the command value candidate generation unit 12b based on the external correction amount from the external correction amount acquisition unit 13, and sets the corrected command value candidate P31. . The external correction amount in control cycle 3 corresponds to the difference between the post-correction command value candidate P31 and the command value candidate P3. Next, as shown in FIG. 17B, the post-correction motion path calculator 15 sets interpolation points P4, . Based on the interpolation points P4, . A post-movement path R1 is calculated. Next, the corrected motion path determination unit 16b determines whether the robot 10 can move the corrected command value candidates P31, positions P41, . . . do. Since the operation after this is the same as the operation in the control period 2, the explanation is omitted.
 図18は、実施の形態3におけるロボット制御装置1bの動作の一例を示すフローチャートである。すなわち、図18は、実施の形態3におけるロボット制御方法の一例を示すフローチャートである。図18において、ステップST5の代わりにステップST11の処理を行う点、およびステップST2の代わりにステップST12の処理を行う点で、図5とは異なる。ステップST11およびステップST12以外は、図5に示すものと同じであるため、説明を省略する。 FIG. 18 is a flow chart showing an example of the operation of the robot control device 1b according to the third embodiment. That is, FIG. 18 is a flow chart showing an example of the robot control method according to the third embodiment. 18 differs from FIG. 5 in that step ST11 is performed instead of step ST5 and step ST12 is performed instead of step ST2. Since steps other than steps ST11 and ST12 are the same as those shown in FIG. 5, description thereof is omitted.
 修正後動作経路判定部16bは、修正後動作経路に対し、ロボット10の動作可能または動作不可能を判定して判定結果を出力する。また、修正後動作経路判定部16bは、修正後動作経路の各位置に対するロボット周辺の周辺環境SOとの相対距離あるいは相対速度に基づく判定結果を出力する(ステップST11)。ステップST11の処理については、図19を用いて詳細に説明する。 The post-correction motion path determination unit 16b determines whether the robot 10 is operable or inoperable with respect to the post-correction motion path, and outputs the determination result. Further, the post-correction motion path determination unit 16b outputs a determination result based on the relative distance or relative speed between each position of the post-correction motion path and the surrounding environment SO around the robot (step ST11). The processing of step ST11 will be described in detail using FIG.
 指令値候補生成部12bは、修正後動作経路判定部16bからの判定結果に基づいて補間点を修正し、修正された補間点に基づいて次の指令値候補を生成する(ステップST12)。ステップST12の処理については、図20を用いて詳細に説明する。 The command value candidate generation unit 12b corrects the interpolation point based on the determination result from the corrected motion path determination unit 16b, and generates the next command value candidate based on the corrected interpolation point (step ST12). The processing of step ST12 will be described in detail using FIG.
 図19は、実施の形態3における修正後動作経路判定部16bの動作の一例を示すフローチャートである。すなわち、図19は、図18のステップST11の処理の詳細を示すフローチャートである。図19において、ステップST111からステップST113の処理を行う点で、図8とは異なる。ステップST111からステップST113以外は、図8に示すものと同じであるため、説明を省略する。 FIG. 19 is a flow chart showing an example of the operation of the post-correction motion path determination unit 16b according to the third embodiment. That is, FIG. 19 is a flow chart showing details of the process of step ST11 in FIG. FIG. 19 differs from FIG. 8 in that the processing from step ST111 to step ST113 is performed. Since steps other than steps ST111 to ST113 are the same as those shown in FIG. 8, description thereof is omitted.
 ステップST51の処理が行われた後、修正後動作経路判定部16bは、フラグを0に設定する(ステップST111)。フラグは、指令値候補生成部12bが補間点を修正するか否かの判定を示す変数である。ステップST111の処理が行われた後、ステップST52の処理が行われる。 After the process of step ST51 is performed, the post-correction motion path determination unit 16b sets the flag to 0 (step ST111). The flag is a variable that indicates whether or not the command value candidate generation unit 12b corrects the interpolation point. After the process of step ST111 is performed, the process of step ST52 is performed.
 ステップST53の処理が行われた後、修正後動作経路判定部16bは、相対距離が所定値以下、あるいは相対速度が所定値以上であるか否かを判定する(ステップST112)。なお、修正後動作経路判定部16bは、相対距離が所定値以下であるか否かを判定するだけでもよいし、相対速度が所定値以上であるか否かを判定するだけでもよい。 After the process of step ST53 is performed, the post-correction motion path determination unit 16b determines whether the relative distance is equal to or less than a predetermined value or the relative speed is equal to or greater than a predetermined value (step ST112). Note that the post-correction motion path determination unit 16b may simply determine whether the relative distance is equal to or less than a predetermined value, or may determine whether the relative speed is equal to or greater than a predetermined value.
 ステップST112の判定が「Yes」の場合は、処理はステップST54に進む。ステップST112の判定が「No」の場合は、処理はステップST113に進む。 If the determination in step ST112 is "Yes", the process proceeds to step ST54. If the determination in step ST112 is "No", the process proceeds to step ST113.
 ステップST112の判定が「No」の場合、修正後動作経路判定部16bは、フラグを1に設定する(ステップST113)。ステップST113の処理が行われた後、ステップST55の処理が行われる。なお、ステップST113の処理が行われた後、ステップST54の処理が行われてもよい。すなわち、ステップST112の判定が「No」の場合であっても、修正後動作経路判定部16bは、ステップST55において判定結果を動作不可能とする処理を行わず、ステップST54からステップST58の処理を行ってもよい。修正後動作経路判定部16bは、ステップST112の判定が「No」であっても、ステップST56からステップST58までの判定がいずれも「Yes」の場合には、判定結果を動作可能としてもよい。 When the determination in step ST112 is "No", the post-correction motion path determination unit 16b sets the flag to 1 (step ST113). After the process of step ST113 is performed, the process of step ST55 is performed. Note that the process of step ST54 may be performed after the process of step ST113 is performed. That is, even if the determination in step ST112 is "No", the post-correction movement path determination unit 16b does not perform the process of making the determination result inoperable in step ST55, and continues the processes from step ST54 to step ST58. you can go Even if the determination in step ST112 is "No", the post-correction motion path determination unit 16b may determine that the determination result is "Yes" in steps ST56 to ST58.
 図20は、実施の形態3における指令値候補生成部12bの動作の一例を示すフローチャートである。すなわち、図20は、図18のステップST12の処理の詳細を示すフローチャートである。図20において、ステップST121およびステップST122の処理を行う点で、図6とは異なる。ステップST121およびステップST122以外は、図6に示すものと同じであるため、説明を省略する。 FIG. 20 is a flow chart showing an example of the operation of the command value candidate generator 12b according to the third embodiment. That is, FIG. 20 is a flow chart showing details of the process of step ST12 in FIG. FIG. 20 differs from FIG. 6 in that steps ST121 and ST122 are performed. Since steps other than steps ST121 and ST122 are the same as those shown in FIG. 6, description thereof is omitted.
 指令値候補生成部12bにより指令値候補の生成処理が開始されると、補間点設定部121bは、フラグが1であるか否かを判定する(ステップST121)。 When command value candidate generation processing is started by the command value candidate generation unit 12b, the interpolation point setting unit 121b determines whether or not the flag is 1 (step ST121).
 ステップST121の判定が「Yes」の場合は、処理はステップST122に進む。ステップST121の判定が「No」の場合は、処理はステップST22に進む。 If the determination in step ST121 is "Yes", the process proceeds to step ST122. If the determination in step ST121 is "No", the process proceeds to step ST22.
 ステップST121の判定が「Yes」の場合、補間点設定部121bは、ある制御周期kでの補間点J(k)を修正する(ステップST122)。例えば、周辺環境SOが修正後動作経路に対し前から向かってくる場合には、補間点設定部121bは、各補間点の間隔が小さくなるよう、補間点J(k)を修正する。また、周辺環境SOが修正後動作経路に対し後ろから向かってくる場合には、補間点設定部121bは、各補間点の間隔が大きくなるよう、補間点J(k)を修正する。ステップST122の処理が行われた後、ステップST22の処理が行われる。 If the determination in step ST121 is "Yes", the interpolation point setting unit 121b corrects the interpolation point J(k) in a certain control cycle k (step ST122). For example, when the surrounding environment SO approaches the corrected motion path from the front, the interpolation point setting unit 121b corrects the interpolation points J(k) so that the intervals between the interpolation points are reduced. Further, when the surrounding environment SO approaches the corrected motion path from behind, the interpolation point setting unit 121b corrects the interpolation points J(k) so that the intervals between the interpolation points are increased. After the process of step ST122 is performed, the process of step ST22 is performed.
 以上で説明した実施の形態3によれば、修正後動作経路上の各位置に対する周辺環境SOとの相対距離あるいは相対速度に基づいて、指令値候補生成部12bが動作経路上の補間点を修正するため、周辺環境SOが静止している場合だけでなく動いている場合についても、ロボット10を適切に制御することができる。 According to the third embodiment described above, the command value candidate generation unit 12b corrects the interpolation point on the motion path based on the relative distance or relative speed from the surrounding environment SO with respect to each position on the motion path after correction. Therefore, the robot 10 can be appropriately controlled not only when the surrounding environment SO is stationary but also when it is moving.
 なお、ここでは実施の形態1に対し実施の形態3を適用する場合について説明したが、実施の形態2に対し実施の形態3を適用することもできる。 Although the case where the third embodiment is applied to the first embodiment has been described here, the third embodiment can also be applied to the second embodiment.
 1,1a,1b ロボット制御装置、 11 動作プログラム記憶部、 12,12b 指令値候補生成部、 121,121b 補間点設定部、 122 前回補間点保持部、 123 相対値演算部、 124 指令値候補演算部、 13 外部修正量取得部、 14 指令値候補修正部、 15 修正後動作経路演算部、 16,16b 修正後動作経路判定部、 17,17a 指令値出力部、 171a 修正積算値演算部、 172a 復元量演算部、 173a 指令値演算部、 2 CPU、 3 記憶装置、 4 IOインターフェース、 6 受信装置、 7 入力装置、 10 ロボット、 SO 周辺環境。 1, 1a, 1b Robot controller, 11 Operation program storage unit, 12, 12b Command value candidate generation unit, 121, 121b Interpolation point setting unit, 122 Previous interpolation point holding unit, 123 Relative value calculation unit, 124 Command value candidate calculation 13 external correction amount acquisition unit 14 command value candidate correction unit 15 post-correction motion path calculation unit 16, 16b post-correction motion path determination unit 17, 17a command value output unit 171a corrected integrated value calculation unit 172a Restoration amount calculation unit, 173a command value calculation unit, 2 CPU, 3 storage device, 4 IO interface, 6 receiving device, 7 input device, 10 robot, SO peripheral environment.

Claims (10)

  1.  予め生成されたロボットの動作経路で構成される動作プログラムと、前記ロボットに対し前回出力された前回指令値または前記ロボットの動作情報とに基づいて、前記ロボットへの指令値候補を生成する指令値候補生成部と、
     前記動作経路の変更に伴う外部修正量に基づいて、前記指令値候補を修正して修正後指令値候補とする指令値候補修正部と、
     前記修正後指令値候補を通る修正後動作経路に対し、前記ロボットの動作可能または動作不可能を判定して判定結果を出力する修正後動作経路判定部と、
     前記判定結果に基づいて、前記指令値候補または前記修正後指令値候補を用いて前記ロボットへの指令値を演算し、前記指令値を出力する指令値出力部と、
     を備えるロボット制御装置。
    A command value for generating a command value candidate for the robot based on an operation program composed of a motion path of the robot generated in advance and a previous command value output to the robot last time or motion information of the robot. a candidate generator;
    a command value candidate correction unit that corrects the command value candidate to obtain a post-correction command value candidate based on the external correction amount associated with the change of the motion path;
    a corrected motion path determination unit that determines whether the robot is operable or inoperable with respect to the corrected motion path that passes through the corrected command value candidates, and outputs a determination result;
    a command value output unit that calculates a command value for the robot using the command value candidate or the corrected command value candidate based on the determination result and outputs the command value;
    A robot controller comprising:
  2.  前記修正後動作経路は、前記指令値候補を通る動作経路に対する、前記修正後指令値候補と前記指令値候補との差分である請求項1に記載のロボット制御装置。 The robot control device according to claim 1, wherein the corrected motion path is a difference between the corrected command value candidate and the command value candidate with respect to the motion path passing through the command value candidate.
  3.  前記修正後動作経路判定部は、前記修正後動作経路に対し前記ロボットが追従できる場合には前記判定結果を動作可能とし、前記修正後動作経路に対し前記ロボットが追従できない場合には前記判定結果を動作不可能とする請求項1または2に記載のロボット制御装置。 If the robot can follow the corrected motion path, the corrected motion path determining unit determines that the determination result is operable, and if the robot cannot follow the corrected motion path, the determination result. 3. The robot control device according to claim 1 or 2, wherein the operation is disabled.
  4.  前記指令値出力部は、前記判定結果が動作可能である場合には前記修正後指令値候補を前記指令値とし、前記判定結果が動作不可能である場合には前記指令値候補を前記指令値とする請求項1から3のいずれか1項に記載のロボット制御装置。 The command value output unit sets the corrected command value candidate as the command value when the determination result indicates that the operation is possible, and changes the command value candidate to the command value when the determination result indicates that the operation is impossible. The robot control device according to any one of claims 1 to 3, wherein:
  5.  前記指令値出力部は、前記判定結果が動作可能である場合には前記修正後指令値候補を前記指令値とし、前記判定結果が動作不可能である場合には、動作不可能と判定された時間から動作不可能となる時間までの到達時間と、前記到達時間内の前記指令値候補の修正積算値をゼロとするのに必要な復元時間とを比較し、前記復元時間が前記到達時間よりも小さい場合には前記修正後指令値候補を前記指令値とし、前記復元時間が前記到達時間以上の場合には動作不可能と判定された時に演算される復元量を前記指令値候補に重畳したものを前記指令値とする請求項1から3のいずれか1項に記載のロボット制御装置。 The command value output unit sets the corrected command value candidate as the command value when the determination result indicates that the operation is possible, and determines that the operation is not possible when the determination result indicates that the operation is impossible. The arrival time from the time to the time when the operation becomes impossible is compared with the restoration time required to set the corrected integrated value of the command value candidate within the arrival time to zero, and the restoration time is greater than the arrival time. is smaller, the corrected command value candidate is used as the command value, and when the restoration time is equal to or longer than the arrival time, the restoration amount calculated when it is determined that the operation is impossible is superimposed on the command value candidate. 4. The robot control device according to any one of claims 1 to 3, wherein the command value is a value of .
  6.  前記指令値出力部は、前記判定結果が動作可能である場合には前記修正後指令値候補を前記指令値とし、前記判定結果が動作不可能である場合には、動作不可能と判定された時間から動作不可能となる時間までの到達時間内の前記指令値候補の修正積算値と、動作不可能と判定された時に演算される復元量の前記到達時間内の復元積算値とを比較し、前記修正積算値が前記復元積算値よりも小さい場合には前記修正後指令値候補を前記指令値とし、前記修正積算値が前記復元積算値以上の場合には前記復元量を前記指令値候補に重畳したものを前記指令値とする請求項1から3のいずれか1項に記載のロボット制御装置。 The command value output unit sets the corrected command value candidate as the command value when the determination result indicates that the operation is possible, and determines that the operation is not possible when the determination result indicates that the operation is impossible. Comparing the corrected integrated value of the command value candidate within the arrival time from the time to the time when the operation becomes impossible with the restoration integrated value within the arrival time of the restoration amount calculated when it is determined that the operation is impossible. when the modified integrated value is smaller than the restored integrated value, the command value candidate after modification is set as the command value, and when the modified integrated value is equal to or greater than the restored integrated value, the restored amount is set as the command value candidate 4. The robot control device according to any one of claims 1 to 3, wherein the command value is superimposed on the .
  7.  前記指令値出力部は、前記ロボットの運動制約を逸脱しないよう前記復元量を演算する請求項5または6に記載のロボット制御装置。 The robot control device according to claim 5 or 6, wherein the command value output unit calculates the restoration amount so as not to deviate from the movement restrictions of the robot.
  8.  前記指令値候補生成部は、前記動作経路を通る補間点を設定し、前記補間点に基づいて前記指令値候補を生成する請求項1から7のいずれか1項に記載のロボット制御装置。 The robot control device according to any one of claims 1 to 7, wherein the command value candidate generation unit sets interpolation points passing through the motion path and generates the command value candidates based on the interpolation points.
  9.  前記修正後動作経路判定部は、前記修正後動作経路の各位置に対する前記ロボット周辺の周辺環境の相対位置あるいは相対速度に基づく前記判定結果を出力し、
     前記指令値候補生成部は、前記判定結果に基づいて前記補間点を修正し、修正された前記補間点に基づいて次の指令値候補を生成する請求項8に記載のロボット制御装置。
    The corrected motion path determining unit outputs the determination result based on the relative position or relative speed of the surrounding environment around the robot with respect to each position of the corrected motion path,
    9. The robot controller according to claim 8, wherein the command value candidate generating section corrects the interpolation point based on the determination result, and generates the next command value candidate based on the corrected interpolation point.
  10.  予め生成されたロボットの動作経路で構成される動作プログラムと、前記ロボットに対し前回出力された前回指令値または前記ロボットの動作情報とに基づいて、前記ロボットへの指令値候補を生成する工程と、
     前記動作経路の変更に伴う外部修正量に基づいて、前記指令値候補を修正して修正後指令値候補とする工程と、
     前記修正後指令値候補を通る修正後動作経路に対し動作可能または動作不可能を判定して判定結果を出力する工程と、
     前記判定結果に基づいて、前記指令値候補または前記修正後指令値候補を用いて前記ロボットへの指令値を演算し、前記指令値を出力する工程と、
     を備えるロボット制御方法。
    a step of generating a command value candidate for the robot based on a motion program composed of a motion path of the robot generated in advance and a previous command value output to the robot last time or motion information of the robot; ,
    a step of correcting the command value candidate as a post-correction command value candidate based on the external correction amount associated with the change of the motion path;
    a step of determining whether the modified motion path passing through the modified command value candidate is operable or inoperable, and outputting the determination result;
    a step of calculating a command value for the robot using the command value candidate or the corrected command value candidate based on the determination result, and outputting the command value;
    A robot control method comprising:
PCT/JP2021/027680 2021-07-27 2021-07-27 Robot control device and robot control method WO2023007574A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021574265A JPWO2023007574A1 (en) 2021-07-27 2021-07-27
PCT/JP2021/027680 WO2023007574A1 (en) 2021-07-27 2021-07-27 Robot control device and robot control method
JP2023003653A JP2023030226A (en) 2021-07-27 2023-01-13 Robot control device and robot control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/027680 WO2023007574A1 (en) 2021-07-27 2021-07-27 Robot control device and robot control method

Publications (1)

Publication Number Publication Date
WO2023007574A1 true WO2023007574A1 (en) 2023-02-02

Family

ID=85086448

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/027680 WO2023007574A1 (en) 2021-07-27 2021-07-27 Robot control device and robot control method

Country Status (2)

Country Link
JP (2) JPWO2023007574A1 (en)
WO (1) WO2023007574A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011111088A1 (en) * 2010-03-08 2011-09-15 三菱電機株式会社 Numerical control device and control method of numerical control device
JP2012056063A (en) * 2010-09-13 2012-03-22 Institute Of National Colleges Of Technology Japan Smooth motion path generating device and smooth motion path generating method
JP2019200661A (en) * 2018-05-17 2019-11-21 ファナック株式会社 Simulation device
JP2021074862A (en) * 2019-11-08 2021-05-20 ファナック株式会社 Program editing apparatus, wire electric discharge machine, and program editing method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011111088A1 (en) * 2010-03-08 2011-09-15 三菱電機株式会社 Numerical control device and control method of numerical control device
JP2012056063A (en) * 2010-09-13 2012-03-22 Institute Of National Colleges Of Technology Japan Smooth motion path generating device and smooth motion path generating method
JP2019200661A (en) * 2018-05-17 2019-11-21 ファナック株式会社 Simulation device
JP2021074862A (en) * 2019-11-08 2021-05-20 ファナック株式会社 Program editing apparatus, wire electric discharge machine, and program editing method

Also Published As

Publication number Publication date
JP2023030226A (en) 2023-03-07
JPWO2023007574A1 (en) 2023-02-02

Similar Documents

Publication Publication Date Title
US10618164B2 (en) Robot system having learning control function and learning control method
JP3907649B2 (en) Interference prevention control device between robots
US11298822B2 (en) Robot, method of controlling robot, and robot control device
US9421687B2 (en) Robot control apparatus and robot control method
JP7199178B2 (en) ROBOT CONTROL DEVICE, ROBOT DEVICE, ROBOT CONTROL PARAMETER ADJUSTMENT METHOD, AND PROGRAM
US9221174B2 (en) Robot controlling device, robot apparatus, robot control method, program for executing robot control method, and recording medium on which program is recorded
KR102003216B1 (en) Motor control and / or adjustment for the robot
EP3078459B1 (en) Robot controlling method, robot apparatus, program and recording medium
JP6836544B2 (en) Control system and driven body control method
EP1250986A2 (en) Robot controller including bending compensation means
JP2006215807A (en) Robot control device and control method
US11745341B2 (en) Compliance correction in a robotic system
WO2023007574A1 (en) Robot control device and robot control method
JP4269150B2 (en) Robot controller
JP2003245881A (en) Apparatus and method for controlling robot
JP2020044590A (en) Robot device
JP2022525576A (en) Methods and computational systems for estimating the parameters of robot operation
JP3316967B2 (en) Robot control device
JP2019111604A (en) Control device, robot and robot system
JP2021088042A (en) Robot control device, gripping system and robot hand control method
US11919171B2 (en) Robot controller
US20230278196A1 (en) Robot system
JP2012236254A (en) Device and method for holding moving body
JP2020121358A (en) Learning control device, robot control device and robot
JPH07200018A (en) Controller for robot

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2021574265

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 21951785

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE