WO2021106237A1 - 制御装置及びロボットシステム - Google Patents

制御装置及びロボットシステム Download PDF

Info

Publication number
WO2021106237A1
WO2021106237A1 PCT/JP2020/012190 JP2020012190W WO2021106237A1 WO 2021106237 A1 WO2021106237 A1 WO 2021106237A1 JP 2020012190 W JP2020012190 W JP 2020012190W WO 2021106237 A1 WO2021106237 A1 WO 2021106237A1
Authority
WO
WIPO (PCT)
Prior art keywords
locus
actual
correction parameter
learning
point
Prior art date
Application number
PCT/JP2020/012190
Other languages
English (en)
French (fr)
Inventor
義浩 細川
弘記 雨森
祥一 市岡
勇人 山中
沙織 松永
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to JP2021561148A priority Critical patent/JP7357689B2/ja
Priority to CN202080080590.7A priority patent/CN114728411B/zh
Publication of WO2021106237A1 publication Critical patent/WO2021106237A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • 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/404Numerical 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 control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia

Definitions

  • This disclosure relates to control devices and robot systems.
  • the setting of the servo delay time by the user may be restricted.
  • the difference between the actual operation locus of the robot device and the target operation locus is not reduced, there is a problem that the operation accuracy of the robot device is lowered.
  • the purpose of this disclosure is to improve the operating accuracy of the robot device.
  • the control device detects a plurality of links including the first link, a plurality of motors that move the plurality of links based on operation commands, and rotation positions of the plurality of motors, respectively.
  • the actual operation when the correction parameter calculation unit that executes the first process for calculating the correction parameter corresponding to the first difference from the operation locus and the plurality of motors are driven based on the actual operation data. It has an operation command unit that corrects data using the correction parameters and generates the operation commands of the plurality of motors based on the corrected actual operation data.
  • the operating accuracy of the robot device can be improved.
  • FIG. 5 is a perspective view showing an example of a target locus of a link at the tip of a robot device of the robot system according to the first embodiment and an actual motion locus.
  • FIG. 5 is a block diagram which shows schematic structure of the robot system which concerns on Embodiment 1.
  • FIG. It is a figure which shows the hardware composition of the control device of the robot system which concerns on Embodiment 1.
  • FIG. It is a schematic diagram which shows the process which brings the actual operation locus closer to a target locus in the control device which concerns on Embodiment 1.
  • FIG. It is a flowchart which shows an example of the operation in the learning phase of the control device which concerns on Embodiment 1.
  • FIG. It is a figure which shows an example of the data stored in the operation data storage part for learning of the control device of the robot system which concerns on Embodiment 1.
  • FIG. It is a figure which shows an example of the data stored in the correction parameter storage part of the control device which concerns on Embodiment 1.
  • FIG. It is a schematic diagram which shows the process of calculating the correction parameter in the control device which concerns on Embodiment 1.
  • FIG. It is a flowchart which shows the process of calculating the correction parameter of FIG.
  • FIG. It is a flowchart which shows an example of the operation in the operation phase of the control device which concerns on Embodiment 1.
  • FIG. It is a flowchart which shows the process of calculating the correction parameter in the control device which concerns on Embodiment 2.
  • (A) It is a schematic diagram which shows the process from step ST111 to step ST214 of FIG. (B) It is a schematic diagram which shows the process from step ST215 to step ST217 of FIG. (C) It is a schematic diagram which shows the process of step ST218 of FIG. It is a flowchart which shows the process of calculating the correction parameter in the control device which concerns on Embodiment 3. It is a graph which shows an example of the relationship between the designated number of correction parameters included in the operation command of a plurality of motors of a robot apparatus in the robot system which concerns on Embodiment 4, and the trajectory error between an actual operation locus and a target locus. ..
  • FIG. 18A is a diagram showing an example of data stored in the correction parameter storage unit shown in FIG.
  • FIG. 18B is a diagram showing an example of data input to the target operation data acquisition unit shown in FIG.
  • control device and the robot system according to the embodiment of the present disclosure will be described with reference to the drawings.
  • the following embodiments are merely examples, and it is possible to appropriately combine the embodiments and change the embodiments as appropriate.
  • FIG. 1 is a perspective view schematically showing the configuration of the robot system 1 according to the first embodiment.
  • the robot system 1 includes a robot device (hereinafter, also simply referred to as “robot”) 100 and a control device 50 that controls the operation of the robot device 100.
  • robot a robot device
  • control device 50 that controls the operation of the robot device 100.
  • the robot device 100 is, for example, a vertical articulated robot.
  • the robot device 100 is not limited to a vertical articulated robot, and may be, for example, a horizontal articulated robot or a portal robot. Further, the robot device 100 is used, for example, as an assembly robot that processes parts.
  • the robot device 100 has a base 110, a first arm 120, a second arm 130, a third arm 140, a fourth arm 150, a list 160, and a flange 170.
  • Each of the base 110, the first arm 120, the second arm 130, the third arm 140, the fourth arm 150, the wrist 160, and the flange 170 is a link in the robot device 100.
  • the base 110 is a substantially columnar link.
  • the base 110 has a fixed surface 110a fixed to an installation surface such as a floor surface.
  • the X-axis and the Y-axis are coordinate axes parallel to the fixed surface 110a of the base 110.
  • the Z axis is a coordinate axis orthogonal to the X axis and the Y axis.
  • the first arm 120 is rotatable around the first axis J1 parallel to the Z axis on the base 110.
  • the second arm 130 is rotatably connected to the first arm 120 around the second axis J2.
  • the third arm 140 is rotatably connected to the second arm 130 around the third axis J3.
  • the fourth arm 150 is rotatably connected to the third arm 140 around the fourth axis J4.
  • the wrist 160 is rotatably connected to the tip of the fourth arm 150 around the fifth axis J5.
  • the flange 170 is rotatably connected to the wrist 160 around the sixth axis J6. That is, the robot device 100 is a robot having 6-axis joints corresponding to the 1st axis J1 to the 6th axis J6.
  • the robot device 100 may be a robot having joints of two or more axes.
  • the robot device 100 is connected to the control device 50.
  • the control device 50 controls the position of the flange 170 as the first link during the operation of the robot device 100.
  • the control device 50 ideally operates the actual operation locus of the flange 170 (for example, the actual operation locus T2 shown in FIG. 2 to be described later) when an operation command is input to the robot device 100. Control is performed to bring the locus closer to the locus (for example, the target locus T1 shown in FIG. 2 described later).
  • the control device 50 may control the position of another link (for example, the fourth arm 150, etc.) different from the flange 170, which is the link at the tip of the robot device 100. Further, when an object gripping mechanism as a link at the tip is attached to the flange 170, the control device 50 may control the position of the object gripping mechanism.
  • FIG. 2 is a diagram showing an example of an ideal operation locus and an actual operation locus of the flange 170 of the robot device 100.
  • FIG. 2 shows an ideal operation locus (that is, a target locus) T1 of the flange 170 when an operation command is input to the robot device 100, and a case where an operation command corresponding to the target locus T1 is input to the robot device 100.
  • the actual operation locus T2 of the flange 170 of the above is shown.
  • the actual operation locus T2 of the flange 170 may not match the target locus T1.
  • the control device 50 controls to reduce the difference between the target locus T1 and the actual motion locus T2 (hereinafter, also referred to as “trajectory error”). That is, the control device 50 controls to bring the actual operation locus T2 closer to the target locus T1.
  • FIG. 3 is a block diagram schematically showing the configuration of the robot system 1 according to the first embodiment.
  • the robot device 100 includes a plurality of motors M1 to M6 for moving a plurality of links, and a plurality of motors M1 to M6 as a plurality of rotation position detectors for detecting the rotation positions of the plurality of motors M1 to M6. It has encoders E1 to E6 of the above.
  • the base 110 includes a motor M1 that rotates the first arm 120 and an encoder E1 that detects the rotation position of the motor M1.
  • the first arm 120 includes a motor M2 for rotating the second arm 130 and an encoder E2 for detecting the rotation position of the motor M2.
  • the second arm 130 includes a motor M3 that rotates the third arm 140 and an encoder E3 that detects the rotation position of the motor M3.
  • the third arm 140 includes a motor M4 for rotating the fourth arm 150 and an encoder E4 for detecting the rotation position of the motor M4.
  • the fourth arm 150 includes a motor M5 that rotates the wrist 160 and an encoder E5 that detects the rotation position of the motor M5.
  • Listing 160 includes a motor M6 that rotates the flange 170 (see FIG. 1) and an encoder E6 that detects the rotational position of the motor M6.
  • the plurality of motors M1 to M6 are, for example, servomotors.
  • the control device 50 includes a motor control device 60 and an arithmetic unit 70.
  • the motor control device 60 is connected to a plurality of motors M1 to M6 and a plurality of encoders E1 to E6.
  • the motor control device 60 drives a plurality of motors M1 to M6 based on an operation command output from the arithmetic unit 70.
  • a plurality of detection signals that is, encoder values
  • corresponding to a plurality of rotation positions detected by the plurality of encoders E1 to E6 are input to the motor control device 60. ..
  • the motor control device 60 outputs a plurality of detection signals input from the plurality of encoders E1 to E6 to the arithmetic unit 70 (specifically, the correction parameter calculation unit 72 described later).
  • the motor control device 60 has a plurality of motor control units 61 to 66 corresponding to each of the plurality of motors M1 to M6.
  • the arithmetic unit 70 has a correction parameter calculation unit 72 and an operation command unit 74.
  • the correction parameter calculation unit 72 calculates the correction parameter (hereinafter, also referred to as “trajectory error reduction parameter”) used in the calculation for reducing the locus error by machine learning, for example.
  • the correction parameters are based on the actual operation locus of the flange 170 (see FIG. 1) obtained when a plurality of motors M1 to M6 are driven based on the predetermined learning operation data, and the learning operation data. Corresponds to the difference from the ideal operating locus of the flange 170 when driving a plurality of motors M1 to M6.
  • the actual operation locus of the flange 170 is calculated using the respective rotation positions of the plurality of motors M1 to M6 detected by the plurality of encoders E1 to E6.
  • the operation command unit 74 corrects the actual operation data using the correction parameters calculated by the correction parameter calculation unit 72, and generates operation commands for a plurality of motors M1 to M6 based on the corrected actual operation data. ..
  • the operation command unit 74 outputs the operation commands of the plurality of generated motors M1 to M6 to the motor control device 60.
  • the arithmetic unit 70 may further include an operation data storage unit 71 as a first storage unit and a correction parameter storage unit 73 as a second storage unit.
  • the operation data storage unit 71 (hereinafter, also referred to as “learning operation list DB”) is a database in which operation data for learning is stored.
  • the correction parameter storage unit (hereinafter, also referred to as “trajectory error reduction DB”) 73 is a database in which correction parameters calculated by the correction parameter calculation unit 72 are stored.
  • the operation data storage unit 71 and the correction parameter storage unit 73 may be in different storage areas of the same storage device. Further, the operation data storage unit 71 and the correction parameter storage unit 73 do not have to be a part of the control device 50, and may be an external device such as a cloud server.
  • FIG. 4 is a diagram showing a hardware configuration of the control device 50.
  • the control device 50 uses a memory 51 as a storage device for storing a program as software and a processor 52 as an information processing unit for executing the program stored in the memory 51 ( It can be achieved (for example, by a computer).
  • a part of the control device 50 may be realized by the memory 51 and the processor 52 shown in FIG. Further, the control device 50 may be realized by an electric circuit.
  • the operation locus of the flange 170 when the robot device 100 shown in FIGS. 1 and 2 is operated in the three-dimensional space is projected onto the XY plane which is a two-dimensional plane.
  • the target locus T10 is a straight locus extending in the X-axis direction connecting the start point S and the end point F.
  • the actual operation locus T20 is a locus of an arcuate curve whose start point S and end point F coincide with the target locus T10 and deviate from the target locus T10 between the start point S and the end point F in the -Y-axis direction. is there.
  • the X coordinate of the passing point Q of the actual operation locus T20 is the same as the X coordinate of the reference point P on the target locus T10. That is, the actual operation locus T20 does not deviate from the target locus T10 in the X-axis direction.
  • the distance between the start point S and the reference point P is equal to the distance between the reference point P and the end point F.
  • a locus error D1 as a first difference occurs between the passing point Q on the actual operation locus T20 and the reference point P on the target locus T10 in the Y-axis direction.
  • the coordinates of the intermediate point C located on the + Y axis side of the reference point P are calculated.
  • the X coordinate of the intermediate point C is the same as the X coordinate of the reference point P and the passing point Q.
  • the value of the Y coordinate of the intermediate point C is derived from the Y coordinate of the passing point Q using a calculation formula described later.
  • the coordinates of the midpoint C are used to correct the motion command corresponding to the target locus T10.
  • the operation command corresponding to the target locus T10 is corrected to the operation command R10 intended to operate the flange 170 along the locus including the start point S, the intermediate point C, and the end point F.
  • the corrected operation command R10 is represented by an arcuate curve that deviates from the target locus T10 between the start point S and the end point F and is convex in the + Y axis direction.
  • the operation of the arithmetic unit 70 includes a "learning phase” in which processing is executed by the correction parameter calculation unit 72 and an “operation phase” in which processing is executed by the operation command unit 74.
  • FIG. 6 is a flowchart showing an example of the operation of the arithmetic unit 70 in the learning phase.
  • the correction parameter calculation unit 72 reads the learning operation data from the operation data storage unit 71 as the learning operation list DB.
  • FIG. 7 is a diagram showing an example of motion data for learning stored in the motion data storage unit 71.
  • the operation data storage unit 71 stores, for example, a plurality of operation data for learning in advance.
  • parameters that is, a plurality of robot parameters
  • FIG. 7 some of the parameters constituting each of the plurality of learning motion data are excerpted and shown.
  • the parameters are, for example, "plane” as the operating plane in which the flange 170 operates, "operating direction” as the direction in which the flange 170 operates, and the angle of the flange 170 with respect to the operating plane of the flange 170 (for example, the tip plane of the flange 170).
  • plane as the operating plane in which the flange 170 operates
  • operating direction as the direction in which the flange 170 operates
  • angle of the flange 170 with respect to the operating plane of the flange 170 for example, the tip plane of the flange 170.
  • the parameters are, for example, "work weight” as the weight of the work gripped by the object gripping mechanism attached to the flange 170, “flange posture” as the posture of the flange 170 when the flange 170 reaches the end point, and the flange 170. Includes “speed” as the operation speed of, “operation start point” as the start point, and “work center of gravity position” as the shape information of the work. Note that in FIG. 7, the “position of the center of gravity of the work” is not shown. Further, the number of parameters for operating the robot device 100 can be arbitrarily selected by the robot system, and may be only a part of the parameters shown in FIG. 7.
  • step ST102 the correction parameter calculation unit 72 determines whether or not a predetermined learning operation (for example, a plurality of learning operations described later in FIG. 9) has been completed.
  • a predetermined learning operation for example, a plurality of learning operations described later in FIG. 9
  • the correction parameter calculation unit 72 ends the process.
  • the correction parameter calculation unit 72 advances the process to step ST103.
  • step ST103 the correction parameter calculation unit 72 calculates the coordinates of the intermediate point used in the calculation for generating the operation commands of the plurality of motors M1 to M6 as the correction parameters. The details of the process of calculating the intermediate point will be described later.
  • step ST104 the correction parameter calculation unit 72 writes the coordinates of the start point, the coordinates of the end point, and the coordinates of the intermediate point in the correction parameter storage unit 73.
  • the correction parameter calculation unit 72 writes the data for associating the learning operation data including the coordinates of the start point and the coordinates of the end point with the coordinates of the intermediate point in the correction parameter storage unit 73.
  • FIG. 8 is a diagram showing an example of data stored in the correction parameter storage unit 73. As shown in FIG. 8, in the correction parameter storage unit 73 as the locus error reduction DB, the coordinates of the intermediate points are stored in a table format so as to correspond to each of the plurality of learning operation data shown in FIG. Has been done. Note that in FIG.
  • the coordinates of the end points are not shown. Further, as shown in FIG. 8, the number of coordinates of the intermediate points corresponding to each of the plurality of learning motion data may be two or more.
  • the intermediate is one parameter that constitutes the actual operation data intended to operate the flange 170 along the locus including the two or more intermediate points.
  • the passing order of points may be stored.
  • FIG. 9 is a schematic diagram showing a process of calculating the coordinates of the intermediate point.
  • the target locus T100 is a straight locus extending in the X-axis direction connecting the start point S and the end point F, as in FIG.
  • the values of the Y coordinate of the start point S and the Y coordinate of the end point F in the target locus T100 are 0.
  • the robot apparatus 100 in order to bring the actual motion locus of the flange 170 (see FIG. 1) of the robot apparatus 100 closer to the target locus T100, the robot apparatus 100 is operated based on the motion data for the first learning.
  • the learning operation of the above and the second learning operation of operating the robot device 100 based on the operation data for the second learning are performed.
  • the first learning motion data is generated based on the first midpoint C1.
  • the first intermediate point C1 is a point on the target locus T100.
  • the distance between the start point S and the first intermediate point C1 is equal to the distance between the first intermediate point C1 and the end point F.
  • the actual first motion locus T200 is the actual motion locus of the flange 170 (see FIG. 1) when the robot device 100 (see FIG. 1) is operated based on the motion data for the first learning.
  • the actual first operation locus T200 is a locus of an arcuate curve that is convex in the + Y axis direction and deviates from the target locus T100 between the start point S and the end point F.
  • the first maximum point A1 is a passing point on the actual first motion locus T200 where a maximum locus error with the target locus T100 occurs.
  • the first maximum point A1 is a passing point on the actual first operating locus T200 in which the differential value of the locus error is 0, and the locus error is larger than the passing points before and after the passing point.
  • the maximum locus error between the actual first motion locus T200 and the target locus T100 is the Y coordinate A 1y of the first maximum point A1. Corresponds to.
  • the second learning motion data is generated based on the second midpoint C2.
  • the second midpoint C2 is calculated based on the first maximum point A1 in the first learning operation.
  • the second midpoint C2 is offset to the + X axis side from the first midpoint C1.
  • the actual second motion locus T201 is the actual motion locus of the flange 170 when the robot device 100 is operated based on the second learning motion data.
  • the second maximum point A2 on the actual second motion locus T201 is a passing point where the maximum locus error between the actual second motion locus T201 and the target locus T100 occurs.
  • the maximum locus error between the actual second motion locus T201 and the target locus T100 is the Y coordinate A of the second maximum point A2. Corresponds to 2y.
  • the actual second motion locus T201 is closer to the target locus T100 than the actual first motion locus T200. However, a slight locus error occurs in the Y-axis direction between the actual second motion locus T201 and the target locus T100.
  • a third midpoint C3 is calculated in order to bring the actual second motion locus T201 closer to the target locus T100.
  • the third midpoint C3 is calculated based on the second midpoint C2, the first maximal point A1 and the second maximal point A2.
  • the coordinates of the third intermediate point C3 are the first correction parameters used in the calculation to bring the actual second motion locus T201 closer to the target locus T100. As will be described later in FIGS. 12 and 13 (A) to 13 (C), even if the coordinates of a plurality of third intermediate points are calculated in order to bring the actual second operation locus T201 closer to the target locus T100. Good.
  • the X coordinate C 3x of the third midpoint C3 is the same as the X coordinate C 2x of the second midpoint C2.
  • a calculation formula for calculating the Y coordinate C3y of the third intermediate point C3 will be described.
  • the relationship between the Y coordinate of the intermediate point and the maximum trajectory error is defined by a linear function
  • the relationship between the Y coordinate C1y of the first intermediate point C1 and the maximum trajectory error A 1y is expressed by the following equation.
  • the relationship between the Y coordinate C 2y of the second intermediate point C2 and the maximum locus error A 2y which is shown by (1), is shown by the following equation (2).
  • "a" and "b" shown in equations (1) and (2) are coefficients.
  • the Y coordinate C3y of the third intermediate point C3 is a correction value used to generate an operation command that brings the actual second operation locus T201 closer to the target locus T100.
  • FIG. 10 is a flowchart showing a process (step ST103 shown in FIG. 8) for calculating the coordinates (C 3x , C 3y ) of the third intermediate point C3.
  • Steps ST111 to ST115 in FIG. 10 are processes in the first learning operation.
  • steps ST116 to ST118 in FIG. 10 are processes in the second learning operation.
  • the correction parameter calculation unit 72 acquires the coordinates (S x , 0) of the start point S and the coordinates (F x , 0) of the end point F of the target locus T11.
  • step ST112 the correction parameter calculation unit 72 calculates the coordinates (C 1x , C 1y ) of the first intermediate point C1 located between the start point S and the end point F of the target locus T11.
  • the X coordinate C 1x of the first intermediate point C1 is obtained by the following equation (9).
  • C 1 x (S x + F x ) / 2 (9)
  • the Y coordinate C 1y of the first intermediate point C1 is 0 as shown in the above equation (3).
  • step ST113 the correction parameter calculation unit 72 generates motion data for the first learning corresponding to the locus including the start point S, the first intermediate point C1, and the end point F, and the motion data for the first learning.
  • the robot device 100 is operated based on the above to acquire the actual first motion locus T200 shown in FIG.
  • step ST114 the correction parameter calculation unit 72 acquires the coordinates (A 1x , A 1y ) of the first maximum point A1 that maximizes the trajectory error between the actual first operation trajectory T200 and the target trajectory T100.
  • step ST115 the correction parameter calculation unit 72 calculates the coordinates (C 2x , C 2y ) of the second intermediate point C2 based on the coordinates (A 1x , A 1y) of the first maximum point A1.
  • the X coordinate C 2x and the Y coordinate C 2y of the second intermediate point C2 are obtained by the following equations (10) and (11).
  • C 2x A 1x (10)
  • C 2y -A 1y (11)
  • step ST116 the correction parameter calculation unit 72 generates motion data for the second learning corresponding to the locus including the start point S, the second intermediate point C2, and the end point F, and the motion data for the second learning.
  • the robot device 100 is operated based on the above to acquire the actual second motion locus T201 shown in FIG.
  • step ST117 the correction parameter calculation unit 72 acquires the coordinates (A 2x , A 2y ) of the second maximum point A2 that maximizes the trajectory error between the actual second operation trajectory T201 and the target trajectory T100.
  • the correction parameter calculation unit 72 ends the processing in the learning phase after calculating the coordinates (C 3x , C 3y) of the third intermediate point C3.
  • a third learning operation following the second learning operation may be performed.
  • the processing of the learning phase may be completed after the coordinates (Cnx, Cny ) of the nth intermediate point Cn are calculated.
  • n is an integer of 2 or more.
  • the correction parameter calculation unit 72 determines in step ST117 whether or not the locus error A 2y is equal to or less than a predetermined threshold value after acquiring the second maximum point A2, and performs processing. You may decide whether or not to proceed to step ST118.
  • the correction parameter calculation unit 72 ends the processing in the learning phase, and when the locus error A 2y is larger than the threshold value, the correction parameter calculation unit 72 steps the processing. You may proceed to ST118. Further, when expanding the coordinates of the intermediate point to three dimensions, a plurality of coordinate axes may be prepared, and the processes from step ST111 to step ST118 shown in FIG. 10 may be performed a plurality of times.
  • FIG. 11 is a flowchart showing the operation of the control device 50 in the operation phase.
  • step ST121 the actual operation data corresponding to the target locus of the flange 170 is input to the control device 50 by the user of the robot system 1.
  • the actual motion data input to the control device 50 is motion data intended to move the flange 170 along the target locus T100 shown in FIG. ..
  • step ST122 the operation command unit 74 reads the coordinates (C 3x , C 3y ) of the third intermediate point C3 corresponding to the target locus T100 from the correction parameter storage unit 73.
  • step ST123 the operation command unit 74 corrects the actual operation data corresponding to the target locus T100 using the coordinates (C 3x , C 3y ) of the third intermediate point C3, and corrects the corrected operation data. It is generated as an operation command. Specifically, the operation command unit 74 intended to move the flange 170 along the trajectory including the start point S, the third intermediate point C3, and the end point F with the actual operation data corresponding to the target locus T100. It is corrected to the operation data, and the corrected actual operation data is generated.
  • the operation command unit 74 is based on the corrected actual operation data, and the operation commands of the plurality of motors M1 to M6 (for example, the torques of the plurality of motors M1 to M6, or the respective torques of the plurality of motors M1 to M6, respectively. Drive time) is calculated.
  • step ST124 the operation command unit 74 outputs the generated operation commands of the plurality of motors M1 to M6 to the motor control device 60.
  • the plurality of motors M1 to M6 operate based on the operation commands of the plurality of motors M1 to M6 obtained by calculation.
  • the operation commands of the plurality of motors M1 to M6 are generated based on the corrected operation data, the actual operation locus is brought closer to the target locus.
  • the coordinates of the midpoint C (shown in FIG. 5) as the locus error reduction parameter calculated by learning, or the first.
  • Flange because the plurality of motors M1 to M6 move a plurality of links including the flange 170 by the operation command corrected based on the coordinates (C 3x , C 3y ) of the midpoint C3 of 3 (shown in FIG. 9).
  • the actual motion locus of 170 can be brought closer to the target locus T100. As a result, the operation accuracy of the robot device 100 can be improved.
  • the coordinates of the intermediate point C (shown in FIG. 5) or the coordinates of the third intermediate point C3 (C 3x , C 3y ) (shown in FIG. 9) can be set by the user in the control device 50 (shown in FIG. 9). That is, since the parameters can be input), the actual operation locus of the flange 170 can be brought closer to the target locus T100 without changing the parameters inside the robot device 100.
  • the servo delay time that is, the response delay time
  • the setting for changing the servo delay time by the user may be restricted.
  • the control device 50 uses the coordinates of the intermediate point C, which is a parameter set by the user, or the coordinates of the third intermediate point C3 (C 3x , C 3y ).
  • the control device 50 according to the first embodiment is applied as a control device for controlling a robot device in which the setting of the servo delay time is limited because the actual operation locus of the flange 170 can be brought closer to the target locus T100. The effect of is great.
  • Embodiment 2 In the first embodiment, as shown in steps ST114 and ST115 of FIG. 10, the correction parameter calculation unit 72 has one correction parameter calculation unit 72 based on one first maximum point A1 on the actual first operation locus T200. The second midpoint C2 is calculated. In the second embodiment, using FIGS. 12 and 13 (A) to 13 (C), a plurality of second maximum points A11 and A12 on the actual first motion locus T210 are used. An example of calculating the coordinates of the intermediate points C21 and C22 of the above, and an example of calculating the coordinates of a plurality of third intermediate points C31 and C32 will be described.
  • FIG. 12 is a flowchart showing a process of calculating an intermediate point in the control device according to the second embodiment.
  • FIG. 12 the same processing steps as those shown in FIG. 9 are numbered the same as the step numbers shown in FIG.
  • FIG. 13A is a schematic view showing the processes from step ST111 to step ST214 in FIG.
  • FIG. 13B is a schematic diagram showing the processes from step ST215 to step ST217 in FIG.
  • FIG. 13C is a schematic view showing the process of step ST218 of FIG.
  • the correction parameter calculation unit 72 designates a plurality of first maximum points A11 and A12 on the actual first operation locus T210 in descending order of the difference from the target locus T110, and the plurality of first maximum points A11 and A12 are designated.
  • the coordinates (A 11x , A 11y ) and (A 12x , A 12y ) of the maximum points A11 and A12 of are acquired.
  • the first first maximum point A11 is a first passing point on the actual first operation locus T210 where a difference D11 that maximizes the difference from the target locus T110 occurs.
  • the second first maximum point A12 is a second passing point on the actual first motion locus T210 where the target locus T110 and the second difference D12 occur.
  • the second difference D12 is smaller than the difference D11.
  • the correction parameter calculation unit 72 may specify three or more first maximum points on the actual first operation locus T210, for example, designating ten first maximum points. May be good.
  • step ST215 the correction parameter calculation unit 72 determines the coordinates (C 21x , C 21y ), (C 22x , C) of the plurality of second intermediate points C21 and C22 based on the plurality of first maximum points A11 and A12. 22y ) is calculated.
  • the coordinates (C 21x , C 21y ) of the first second intermediate point C21 are used in the calculation to bring the first maximum point A11 closer to the first reference point P11 on the target locus T110.
  • Second second midpoint C22 coordinates (C 22x, C 22 y) are used in the calculation to approximate the first maximum point A12 to the second reference point P12 on the target locus T110.
  • the coordinates (C 21x , C 21y ) and (C 22x , C 22y ) of the plurality of second intermediate points C21 and C22 are derived with reference to the equations (10) and (11) described in the first embodiment. ..
  • the coordinates of the first second midpoint C21 (C 21x , C 21y ) are represented by the following equations (13) and (14), and the coordinates of the second second midpoint C22 (C 22x).
  • C 22y ) is represented by the following equations (15) and (16).
  • C 21x A 11x (13)
  • C 21y -A 11y (14)
  • C 22x A 12x (15)
  • C 22y -A 12y (16)
  • step ST 214 when the m-number of the first maximum point A 1 m is specified, X-coordinate C 2MX and Y coordinates C 2My second midpoint C 2m calculated in step ST215, the following formula It is shown by (17) and (18).
  • m is an integer of 1 or more.
  • C 2mx A 1mx (17)
  • C 2my -A 1my (18)
  • step ST216 the correction parameter calculation unit 72 generates motion data for the second learning corresponding to the locus including the start point S, the plurality of second intermediate points C21 and C22, and the end point F, and the second learning.
  • the robot device 100 is operated based on the motion data for the above, and the actual second motion locus T211 shown in FIG. 13B is acquired.
  • step ST217 the correction parameter calculation unit 72 designates a plurality of second maximum points A21 and A22 that maximize the trajectory error between the actual second operation locus T211 and the target locus T110, and the plurality of second maximum points A21 and A22.
  • the coordinates (A 21x , A 21y ) and (A 22x , A 22y ) of the maximum points A21 and A22 of the above are acquired.
  • the correction parameter calculation unit 72 sets the coordinates of the plurality of second intermediate points C21 and C22, the coordinates of the plurality of first maximum points A11 and A12, and the coordinates of the plurality of second maximum points A21 and A22. Based on this, the coordinates (C 31x , C 31y ) and (C 32x , C 32y ) of the plurality of third intermediate points C31 and C32 are calculated. The coordinates (C 31x , C 31y ), (C 32x , C 32y ) of the plurality of third intermediate points C31 and C32 are used to generate an operation command for bringing the actual second operation locus T211 closer to the target locus T100. This is the correction parameter used. The coordinates of one third midpoint C31 (C 31x , C 31y ) are the first correction parameters, and the coordinates of the other third midpoint C32 (C 32x , C 32y ) are the second correction parameters. is there.
  • the coordinates (C 31x , C 31y ) and (C 32x , C 32y ) of the plurality of third intermediate points C31 and C32 are derived with reference to the equations (8) and (12) described in the first embodiment. ..
  • the coordinates of the first third midpoint C31 (C 31x , C 31y ) are represented by the following equations (19) and (20), and the coordinates of the second third midpoint C32 (C 31x, C 31y).
  • C 32x , C 32y ) are represented by the following equations (21) and (22).
  • C 31x C 21x (19)
  • C 31y -A 11y ⁇ C 21y / (A 21y- A 11y )
  • C 32x C 22x (21)
  • C 32y -A 12y ⁇ C 22y / (A 22y- A 12y ) (22)
  • step ST217 when the m-number of second maximum point A 2m is specified, X-coordinate C 3Mx and Y coordinates C 3My the third midpoint C 3m calculated in step ST218, the following formula It is shown by (23) and (24).
  • C 3mx C 2mx (23)
  • C 3my -A 1my ⁇ C 2my / (A 2my- A 1my ) (24)
  • the second embodiment according to the operation command corrected based on the coordinates (C 31x , C 31y ) and (C 32x , C 32y ) of the plurality of third intermediate points C31 and C32 as the locus error reduction parameters. Since the plurality of motors M1 to M6 move a plurality of links including the flange 170, it is possible to improve the accuracy of bringing the actual operation locus of the flange 170 closer to the target locus T100. As a result, the operating accuracy of the robot device 100 can be further improved.
  • the second embodiment is the same as the first embodiment.
  • Embodiment 3 In the second embodiment, in step ST218 shown in FIG. 12, after the coordinates (C 31x , C 31y ) and (C 32x , C 32y ) of the plurality of third intermediate points C31 and C32 are calculated, the processing is performed. finished.
  • the movement data for the third learning generated based on the coordinates of the plurality of third intermediate points C31 and C32 is used as the actual third movement locus when the robot device is operated. An example of determining whether or not to end the process will be described depending on whether or not the difference from the target locus T110 is smaller than a predetermined threshold value.
  • FIG. 14 is a flowchart showing a process of calculating an intermediate point in the control device according to the third embodiment.
  • the same processing steps as those shown in FIG. 12 are numbered the same as the step numbers shown in FIG.
  • the correction parameter calculation unit of the control device according to the third embodiment is generated in step ST301 based on the coordinates of the plurality of third intermediate points C31 and C32 for the third learning.
  • the robot device is operated according to the operation data of the above, and the actual third operation trajectory is acquired.
  • step ST302 the correction parameter calculation unit 72 determines whether or not the locus error between the actual third operation locus and the target locus T110 is smaller than a predetermined threshold value.
  • the correction parameter calculation unit ends the process.
  • the correction parameter calculation unit returns the process to step ST217. If No in step ST302, the correction parameter calculation unit may return the process to step ST214.
  • the coordinates of the plurality of third intermediate points C31 and C32 are effective for bringing the actual second operation locus T211 closer to the target locus T110. If it is determined that the robot device 100 does not, the coordinates of the plurality of third intermediate points C31 and C32 can be reset, or a new third intermediate point can be additionally set, so that the operation accuracy of the robot device 100 can be improved. It can be further improved.
  • the third embodiment is the same as the first or second embodiment.
  • the correction parameter calculation unit calculates the coordinates (C 31x , C 31y ) and (C 32x , C 32y ) of the plurality of third intermediate points C31 and C32. An example was explained.
  • the upper limit of the number of the third intermediate points calculated by the correction parameter calculation unit may be specified.
  • FIG. 15 shows the number of third intermediate points designated by the corrected operation commands of the plurality of motors M1 to M6 in the robot system according to the fourth embodiment (hereinafter, also referred to as “designated number of intermediate points”). It is a graph which shows an example of the relationship between and a locus error.
  • the horizontal axis is the designated number of intermediate points
  • the vertical axis is the actual operation locus and target locus of the flange 170 when a plurality of motors M1 to M6 are driven based on the corrected operation command. It is the value of the trajectory error of.
  • the locus error is the smallest when the designated number of intermediate points is five. Further, when the number of designated intermediate points is 6, the locus error becomes larger than when the number of designated intermediate points is 5.
  • the correction parameter calculation unit of the control device sets the designated number of intermediate points to five.
  • the correction parameter calculation unit limits the number of designated maximum points on the actual operation locus of the flange 170 to five, and the five third intermediate points corresponding to each of the five maximum points. Calculate the coordinates.
  • the correction parameter calculation unit designates five maximum points on the actual operation locus in descending order of locus error from the target locus. That is, the correction parameter calculation unit actually minimizes the difference between the actual operation locus of the flange 170 and the target locus when a plurality of motors (see FIG.
  • j is 1, 2, ..., N, and N is a positive integer.
  • the actual operation data is corrected based on the specified number of intermediate points that minimize the trajectory error, so that the actual operation trajectory of the flange 170 is corrected. Can be brought closer to the target trajectory. As a result, the operation accuracy of the robot device 100 can be improved.
  • the fourth embodiment is the same as any one of the first to third embodiments.
  • Embodiment 5 In the second embodiment, in step ST214 shown in FIG. 12, an example in which the correction parameter calculation unit 72 designates a plurality of first maximum points A11 and A12 on the actual first operation locus T210 has been described.
  • the first maximum point on the actual first operation locus T210 shown in FIG. 13A is designated, the first maximum point is designated by a predetermined method. May be done.
  • FIG. 16A is a schematic diagram schematically showing an example of a method of designating a first maximum point on an actual first operation locus T210 in the control device according to the fifth embodiment.
  • the same components as those in the second embodiment described with reference to FIG. 13A are designated by the same reference numerals.
  • correction is made when the distance L1 between a plurality of adjacent first maximum points A11 and A12 on the actual first operation locus T210 is equal to or less than a predetermined reference distance.
  • the parameter calculation unit 72 executes only the process of calculating the coordinates of the second intermediate point C21 based on the first maximum point A11. That is, in FIG.
  • the correction parameter calculation unit 72 executes only the process of calculating the coordinates of the second intermediate point C22 based on the first maximum point A12, and executes the process of calculating the coordinates of the second intermediate point C22, and the second intermediate point C21 corresponding to the first maximum point A11. It is not necessary to execute the process of calculating the coordinates of.
  • FIG. 16B is a schematic diagram schematically showing another example of the method of designating the first maximum point on the actual first operation locus T210 in the control device according to the fifth embodiment.
  • the correction parameter calculation unit 72 is located between the first maximum point A11 and the first maximum point A12.
  • the coordinates of the second intermediate point used in the calculation for bringing the third passing point A13 closer to the third reference point P13 on the target locus T110 are calculated. That is, in FIG.
  • the number of the first maximum points in the actual first operation locus T210 is limited, so that the processing time in the arithmetic unit of the control device, And the operation time of the robot device 100 in the learning phase of the control device can be shortened.
  • the fifth embodiment is the same as any of the first to fourth embodiments.
  • FIG. 17 is a block diagram schematically showing the configuration of the robot system 6 according to the sixth embodiment.
  • the robot system 6 according to the sixth embodiment is different from the robot system 1 according to the first embodiment in that it has a simulation device 80.
  • components that are the same as or correspond to the components shown in FIG. 3 are designated by the same reference numerals as those shown in FIG.
  • the simulation device 80 simulates the operation of the flange 170 (see FIG. 1) when a plurality of motors M1 to M6 (see FIG. 3) are driven based on the operation data for learning, and the actual operation locus of the flange 170. Expect.
  • the time for the simulation device 80 to predict the actual motion trajectory of the flange 170 is longer than the time for calculating the actual motion trajectory of the flange 170 when the robot device 100 is actually operated based on the motion data for learning. short.
  • the simulation device 80 outputs the predicted actual operation locus of the flange 170 to the correction parameter calculation unit 72.
  • the correction parameter calculation unit 72 calculates the correction parameter based on the actual operation locus obtained by the simulation device 80.
  • the correction parameter calculation unit 72 can obtain the actual operation locus of the flange 170 in the learning phase of the arithmetic unit 70 in a short time.
  • the sixth embodiment is the same as any one of the first to fifth embodiments.
  • Embodiment 7 In any of the first to sixth embodiments, the learning motion data used to calculate the correction parameters by learning and the actual robot device 100 intended to be moved along the target locus T1 (see FIG. 2). An example was explained in which the operation data of is the same. In the seventh embodiment, an example in which the motion data for learning and the actual motion data are different will be described.
  • FIG. 18 is a block diagram schematically showing the configuration of the robot system 7 according to the seventh embodiment.
  • the same or corresponding components as those shown in FIG. 3 are designated by the same reference numerals as those shown in FIG.
  • the robot system 7 includes a robot device 100 and a control device 750 that controls the operation of the robot device 100.
  • the control device 750 has an arithmetic unit 770 that performs arithmetic processing for calculating correction parameters and arithmetic processing for generating operation commands to the robot device 100.
  • the arithmetic unit 770 includes an operation data storage unit 71, a correction parameter calculation unit 772, a correction parameter storage unit 773, an operation command unit 74, and an operation data acquisition unit 775.
  • the operation data acquisition unit 775 acquires actual operation data indicating the driving conditions when the robot device 100 is actually driven. Actual operation data is input to the operation data acquisition unit 775 from, for example, an input device (not shown).
  • the operation data acquisition unit 775 outputs the input actual operation data to the correction parameter calculation unit 772.
  • the actual operation data may be directly input from the input device to the correction parameter calculation unit 772.
  • FIG. 19A is a diagram showing an example of data stored in the correction parameter storage unit 773 shown in FIG. As shown in FIG. 19A, the correction parameter storage unit 773 stores the operation data for learning and the correction parameters associated with the operation data for learning in a table format.
  • the learning operation data stored in the correction parameter storage unit 773 has a plurality of learning data.
  • the learning motion data includes the first learning data indicated by “No. 1” and the second learning data indicated by “No. 2”.
  • FIG. 19A some of the parameters constituting the operation data for learning are excerpted and shown.
  • the correction parameter storage unit 773 stores the coordinates of the first intermediate point and the coordinates of the second intermediate point as correction parameters.
  • the coordinates of the first midpoint are (50,2,0) and the coordinates of the second midpoint are (50,104,0).
  • the coordinates of the first midpoint (50,2,0) correspond to the first learning data
  • the coordinates of the second midpoint (50,104,0) correspond to the second learning data.
  • the coordinates of the "operation start point" in the first learning data corresponding to the coordinates (50,2,0) of the first intermediate point are (0,0,0)
  • the coordinates of the second intermediate point are (0,0,0).
  • the coordinates of the "operation start point” in the second learning data corresponding to the coordinates (50,104,0) are (0,100,0).
  • FIG. 19B is a diagram showing an example of actual operation data acquired by the operation data acquisition unit 775 shown in FIG. In FIG. 19B, some of the parameters constituting the actual operation data are excerpted and shown.
  • the "plane”, “movement direction”, “flange posture”, “velocity” and “movement distance” in the actual movement data are the movement data for learning. It is the same as “plane”, “operating direction”, “flange posture”, “speed” and “operating distance”.
  • the coordinates of the "operation start point” in the actual operation data are (0,50,0), and the coordinates of the "operation start point” in the operation data for learning (0,0,0), (0,100). , 0). That is, the correction parameter storage unit 773 does not store the coordinates of the intermediate points corresponding to the same learning operation data as the actual operation data.
  • the correction parameter calculation unit 772 includes the motion data for learning, the correction parameters calculated based on the motion data for learning, and the actual motion data. Based on, a new correction parameter corresponding to the actual operation data is calculated. Specifically, in the seventh embodiment, the correction parameter calculation unit 772 estimates the coordinates of the new intermediate point as the new correction parameter from the coordinates of the first intermediate point and the coordinates of the second intermediate point by interpolation. Perform the processing to be performed.
  • the distance between the coordinates of the first intermediate point (50,2,0) and the coordinates of the new intermediate point is the coordinate of the second intermediate point (50,104,0).
  • the coordinates of the new midpoint, which satisfies the condition equal to the distance between the coordinates of the new midpoint are (50,53,0).
  • the correction parameter calculation unit 772 estimates, for example, the coordinates of the new intermediate point by linear interpolation (that is, first-order interpolation).
  • linear interpolation that is, first-order interpolation
  • both the coordinates of the first intermediate point and the coordinates of the second intermediate point need to be absolute coordinates.
  • the correction parameter calculation unit 772 may estimate the coordinates of the estimated intermediate point not only by linear interpolation but also by other interpolation methods such as second-order or higher polynomial interpolation or interpolation using machine learning.
  • Interpolation using machine learning includes interpolation using a support vector machine or the K-nearest neighbor method, interpolation using a neural network, and the like.
  • the coordinates of the new intermediate point calculated by the correction parameter calculation unit 772 are output to the operation command unit 74.
  • the operation command unit 74 generates an operation command intended to operate the robot device 100 along a trajectory including the coordinates (50, 53, 0) of the new intermediate point.
  • the generated operation command is output to the motor control device 60.
  • the coordinates of the new intermediate point may be stored in the correction parameter storage unit 773 in association with the actual operation data shown in FIG. 19B.
  • the correction parameter calculation unit 772 has the motion data for learning and the first and second intermediate points calculated based on the motion data for learning. Calculate the coordinates of the new midpoint based on the coordinates and the actual operation data. As a result, the motion locus of the robot device 100 can be brought closer to the target locus even when the motion data for learning is different from the actual motion data. Therefore, the operation accuracy of the robot device 100 can be improved.
  • the seventh embodiment is the same as any one of the first to sixth embodiments.
  • the error from the learning data close to the actual motion data that is, the actual motion data is the smallest among the plurality of learning data constituting the motion data for learning. It differs from the robot system 7 according to the seventh embodiment in that the learning data is extracted and the correction parameters are calculated using the learning data.
  • the robot system according to the modified example of the seventh embodiment is the same as the robot system 7 according to the seventh embodiment. Therefore, in the following description, FIGS. 18 and 19 (A) and (B) will be referred to.
  • the correction parameter calculation unit 772 uses the plurality of learning data (for example, "No. 1" shown in FIG. 19A). Of the learning data of "No. 2" and the learning data of "No. 2"), the learning data close to the actual operation data is extracted.
  • the correction parameter calculation unit 772 extracts, for example, learning data having a small error from the actual operation data from a plurality of learning data by the least squares method.
  • the correction parameter calculation unit 772 may extract learning data close to the actual operation data by another method such as mapping, not limited to the least squares method.
  • mapping for example, the parameters of the training data and the parameters of the actual operation data are mapped in space, and the shortest distance between the parameters of the training data and the parameters of the actual operation data is searched for. To.
  • the correction parameter calculation unit 772 calculates the correction parameter corresponding to the difference between the actual operation locus when the robot device 100 is driven and the ideal operation locus based on the extracted learning data.
  • the calculated correction parameter is output to the operation command unit 74.
  • the operation command unit 74 generates an operation command intended to operate the robot device 100 along a trajectory including a correction parameter corresponding to the learning data.
  • the generated operation command is output to the motor control device 60.
  • the correction parameter calculation unit 772 calculates the correction parameter based on the learning data having the smallest error from the actual operation data among the plurality of learning data. ..
  • the motion locus of the robot device 100 can be brought closer to the target locus even when the motion data for learning is different from the actual motion data. Therefore, the operation accuracy of the robot device 100 can be improved.
  • the learning operation data is composed of one learning data
  • the operation data for learning is composed of a plurality of learning data
  • Robot system 50, 750 control device, 60 motor control device, 70, 770 arithmetic device, 71 operation data storage unit, 72, 772 correction parameter calculation unit, 73, 773 correction parameter storage unit, 74 operation command Part, 80 simulation device, 100 robot device, 110 base, 120 first arm, 130 second arm, 140 third arm, 150 fourth arm, 160 list, 170 flange, A1, A11, A12 first Maximum point, A2, A21, A22 2nd maximum point, C1 1st intermediate point, C2, C21, C22 2nd intermediate point, C3, C31, C32 3rd intermediate point, E1, E2, E3, E4, E5, E6 encoder, M1, M2, M3, M4, M5, M6 motor, T1, T10, T100, T110 Target trajectory, T200, T201, T210, T211 Actual operation trajectory.

Landscapes

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

Abstract

ロボット装置(100)を制御する制御装置(50)であって、予め定められた学習用の動作データに基づいて複数のモータ(M1,M2,M3,M4,M5,M6)を駆動した場合に算出された第1のリンクの実際の動作軌跡と、学習用の動作データに基づいて複数のモータ(M1,M2,M3,M4,M5,M6)を駆動した場合における第1のリンクの理想の動作軌跡との差に対応する補正パラメータを算出する第1の処理を実行する補正パラメータ算出部(72)と、実際の動作データに基づいて複数のモータ(M1,M2,M3,M4,M5,M6)を駆動する場合に、実際の動作データを補正パラメータを用いて補正し、補正された実際の動作データに基づいて複数のモータ(M1,M2,M3,M4,M5,M6)の動作指令を生成する動作指令部(74)と、を有する。

Description

制御装置及びロボットシステム
 本開示は、制御装置及びロボットシステムに関する。
 複数のリンクのそれぞれを動かす複数のモータ(つまり、複数の軸)を有するロボット装置の動作を制御する制御装置において、ロボット装置の先端のリンクの実際の動作軌跡を目標の動作軌跡に近づけるために、複数のモータのそれぞれにおけるサーボ遅れ時間を基準時間に一致させる制御方法が提案されている。例えば、特許文献1を参照。
特開2009-151527号公報
 しかしながら、ロボット装置では、ユーザによるサーボ遅れ時間の設定を制限している場合がある。この場合、ロボット装置の実際の動作軌跡と目標の動作軌跡との差が低減されないため、ロボット装置の動作精度が低下するという課題がある。
 本開示は、ロボット装置の動作精度を向上させることを目的としている。
 本開示の一態様に係る制御装置は、第1のリンクを含む複数のリンクと、動作指令に基づいて前記複数のリンクをそれぞれ動かす複数のモータと、前記複数のモータの回転位置をそれぞれ検出する複数の回転位置検出器とを有するロボット装置を、制御する制御装置であって、予め定められた学習用の動作データに基づいて前記複数のモータを駆動した場合に前記複数の回転位置検出器によって検出された前記回転位置を用いて算出された前記第1のリンクの実際の動作軌跡と、前記学習用の動作データに基づいて前記複数のモータを駆動した場合における前記第1のリンクの理想の動作軌跡との第1の差に対応する補正パラメータを算出する第1の処理を実行する補正パラメータ算出部と、実際の動作データに基づいて前記複数のモータを駆動する場合に、前記実際の動作データを前記補正パラメータを用いて補正し、補正された前記実際の動作データに基づいて前記複数のモータの前記動作指令を生成する動作指令部と、を有する。
 本開示によれば、ロボット装置の動作精度を向上させることができる。
実施の形態1に係るロボットシステムの構成を概略的に示す斜視図である。 実施の形態1に係るロボットシステムのロボット装置の先端のリンクの目標軌跡及び実際の動作軌跡の一例を示す斜視図である。 実施の形態1に係るロボットシステムの構成を概略的に示すブロック図である。 実施の形態1に係るロボットシステムの制御装置のハードウェア構成を示す図である。 実施の形態1に係る制御装置における、実際の動作軌跡を目標軌跡に近づける処理を示す模式図である。 実施の形態1に係る制御装置の学習フェーズにおける動作の一例を示すフローチャートである。 実施の形態1に係るロボットシステムの制御装置の学習用の動作データ記憶部に記憶されているデータの一例を示す図である。 実施の形態1に係る制御装置の補正パラメータ記憶部に記憶されているデータの一例を示す図である。 実施の形態1に係る制御装置における、補正パラメータを算出する処理を示す模式図である。 図6の補正パラメータを算出する処理を示すフローチャートである。 実施の形態1に係る制御装置の運用フェーズにおける動作の一例を示すフローチャートである。 実施の形態2に係る制御装置における補正パラメータを算出する処理を示すフローチャートである。 (A)図12のステップST111からステップST214までの処理を示す模式図である。(B)図12のステップST215からステップST217までの処理を示す模式図である。(C)図12のステップST218の処理を示す模式図である。 実施の形態3に係る制御装置において、補正パラメータを算出する処理を示すフローチャートである。 実施の形態4に係るロボットシステムにおける、ロボット装置の複数のモータの動作指令に含まれる補正パラメータの指定数と、実際の動作軌跡と目標軌跡との軌跡誤差との関係の一例を示すグラフである。 (A)実施の形態5に係る制御装置における、実際の第1の動作軌跡上の極大点を指定する方法の一例を概略的に示す模式図である。(B)実施の形態5に係る制御装置における、実際の第1の動作軌跡上の極大点を指定する方法の他の例を概略的に示す模式図である。 実施の形態6に係るロボットシステムの構成を概略的に示すブロック図である。 実施の形態7に係るロボットシステムの構成を概略的に示すブロック図である。 (A)は、図18に示される補正パラメータ記憶部に記憶されているデータの一例を示す図である。(B)は、図18に示される目標動作データ取得部に入力されるデータの一例を示す図である。
 以下に、本開示の実施の形態に係る制御装置及びロボットシステムを、図面を参照しながら説明する。以下の実施の形態は、例にすぎず、実施の形態を適宜組み合わせること及び各実施の形態を適宜変更することが可能である。
 実施の形態1.
 図1は、実施の形態1に係るロボットシステム1の構成を概略的に示す斜視図である。図1に示されるように、ロボットシステム1は、ロボット装置(以下、単に「ロボット」ともいう)100と、ロボット装置100の動作を制御する制御装置50とを有する。
 ロボット装置100は、例えば、垂直多関節型のロボットである。なお、ロボット装置100は、垂直多関節型のロボットに限られず、例えば、水平多関節型のロボット又は門型のロボットであってもよい。また、ロボット装置100は、例えば、部品加工を行う組立ロボットとして用いられる。
 ロボット装置100は、ベース110と、第1のアーム120と、第2のアーム130と、第3のアーム140と、第4のアーム150と、リスト160と、フランジ170とを有する。ベース110、第1のアーム120、第2のアーム130、第3のアーム140、第4のアーム150、リスト160、及びフランジ170のそれぞれは、ロボット装置100におけるリンクである。ベース110は略円柱状のリンクである。ベース110は、例えば床面などの設置面に固定される固定面110aを有する。図1に示されるXYZ直交座標系において、X軸とY軸は、ベース110の固定面110aに平行な座標軸である。Z軸は、X軸とY軸に直交する座標軸である。
 第1のアーム120は、ベース110上でZ軸に平行な第1の軸J1周りに回転可能である。第2のアーム130は、第1のアーム120と第2の軸J2周りに回転可能に連結されている。第3のアーム140は、第2のアーム130と第3の軸J3周りに回転可能に連結されている。第4のアーム150は、第3のアーム140と第4の軸J4周りに回転可能に連結されている。リスト160は、第4のアーム150の先端部と第5の軸J5周りに回転可能に連結されている。フランジ170は、リスト160と第6の軸J6周りに回転可能に連結されている。つまり、ロボット装置100は、第1の軸J1から第6の軸J6までに対応する6軸の関節を有するロボットである。なお、ロボット装置100は、2以上の軸の関節を有するロボットであればよい。
 ロボット装置100は、制御装置50に接続されている。制御装置50は、ロボット装置100の動作中における第1のリンクとしてのフランジ170の位置を制御する。実施の形態1では、制御装置50は、ロボット装置100に動作指令が入力されたときのフランジ170の実際の動作軌跡(例えば、後述する図2に示される実際の動作軌跡T2)を理想の動作軌跡(例えば、後述する図2に示される目標軌跡T1)に近づける制御を行う。なお、制御装置50は、ロボット装置100における先端のリンクであるフランジ170とは異なる他のリンク(例えば、第4のアーム150など)の位置を制御してもよい。また、フランジ170に先端のリンクとしての物体把持機構が取り付けられている場合、制御装置50は、その物体把持機構の位置を制御してもよい。
 図2は、ロボット装置100のフランジ170の理想の動作軌跡と実際の動作軌跡の一例を示す図である。図2には、ロボット装置100に動作指令が入力された場合のフランジ170の理想の動作軌跡(つまり、目標軌跡)T1、及びロボット装置100に目標軌跡T1に対応する動作指令が入力された場合のフランジ170の実際の動作軌跡T2が示されている。図2に示されるように、フランジ170の実際の動作軌跡T2は、目標軌跡T1と一致しない場合がある。制御装置50は、目標軌跡T1と実際の動作軌跡T2との差(以下、「軌跡誤差」ともいう)を低減する制御を行う。つまり、制御装置50は、実際の動作軌跡T2を目標軌跡T1に近づける制御を行う。
 図3は、実施の形態1に係るロボットシステム1の構成を概略的に示すブロック図である。図3に示されるように、ロボット装置100は、複数のリンクをそれぞれ動かす複数のモータM1~M6と、複数のモータM1~M6のそれぞれの回転位置を検出する複数の回転位置検出器としての複数のエンコーダE1~E6とを有する。ベース110には、第1のアーム120を回転させるモータM1と、モータM1の回転位置を検出するエンコーダE1とが備えられている。第1のアーム120には、第2のアーム130を回転させるモータM2と、モータM2の回転位置を検出するエンコーダE2とが備えられている。第2のアーム130には、第3のアーム140を回転させるモータM3と、モータM3の回転位置を検出するエンコーダE3とが備えられている。第3のアーム140には、第4のアーム150を回転させるモータM4と、モータM4の回転位置を検出するエンコーダE4とが備えられている。第4のアーム150には、リスト160を回転させるモータM5と、モータM5の回転位置を検出するエンコーダE5とが備えられている。リスト160には、フランジ170(図1参照)を回転させるモータM6と、モータM6の回転位置を検出するエンコーダE6とが備えられている。複数のモータM1~M6は、例えば、サーボモータである。
 制御装置50は、モータ制御装置60と、演算装置70とを有する。モータ制御装置60は、複数のモータM1~M6及び複数のエンコーダE1~E6に接続されている。モータ制御装置60は、演算装置70から出力される動作指令に基づいて複数のモータM1~M6を駆動させる。複数のモータM1~M6が駆動した場合、モータ制御装置60には、複数のエンコーダE1~E6によって検出された複数の回転位置にそれぞれ対応する複数の検出信号(つまり、エンコーダ値)が入力される。モータ制御装置60は、複数のエンコーダE1~E6から入力された複数の検出信号を演算装置70(具体的には、後述する補正パラメータ算出部72)に出力する。モータ制御装置60は、複数のモータM1~M6のそれぞれに対応する複数のモータ制御部61~66を有する。
 演算装置70は、補正パラメータ算出部72と、動作指令部74とを有する。補正パラメータ算出部72は、軌跡誤差を低減させる計算に用いられる補正パラメータ(以下、「軌跡誤差低減パラメータ」ともいう)を、例えば、機械学習によって算出する。補正パラメータは、予め定められた学習用の動作データに基づいて複数のモータM1~M6を駆動した場合に得られるフランジ170(図1参照)の実際の動作軌跡と、学習用の動作データに基づいて複数のモータM1~M6を駆動する場合におけるフランジ170の理想の動作軌跡との差に対応する。フランジ170の実際の動作軌跡は、複数のエンコーダE1~E6によって検出された複数のモータM1~M6のそれぞれの回転位置を用いて算出される。
 動作指令部74は、補正パラメータ算出部72によって算出された補正パラメータを用いて実際の動作データを補正し、補正された実際の動作データに基づいて複数のモータM1~M6の動作指令を生成する。動作指令部74は、生成した複数のモータM1~M6の動作指令をモータ制御装置60に出力する。
 演算装置70は、第1の記憶部としての動作データ記憶部71と、第2の記憶部としての補正パラメータ記憶部73を更に有していてもよい。動作データ記憶部71(以下、「学習用動作一覧DB」ともいう)は、学習用の動作データが記憶されたデータベースである。補正パラメータ記憶部(以下、「軌跡誤差低減DB」ともいう)73は、補正パラメータ算出部72によって算出された補正パラメータが記憶されたデータベースである。なお、動作データ記憶部71及び補正パラメータ記憶部73は、同じ記憶装置の異なる記憶領域であってもよい。また、動作データ記憶部71及び補正パラメータ記憶部73は、制御装置50の一部でなくてもよく、クラウドサーバなどの外部の装置であってもよい。
 図4は、制御装置50のハードウェア構成を示す図である。図4に示されるように、制御装置50は、ソフトウェアとしてのプログラムを格納する記憶装置としてのメモリ51と、メモリ51に格納されたプログラムを実行する情報処理部としてのプロセッサ52とを用いて(例えば、コンピュータによって)実現することができる。なお、制御装置50の一部を、図4に示されるメモリ51とプロセッサ52とによって実現してもよい。また、制御装置50は、電気回路によって実現されてもよい。
 次に、図5を用いて、制御装置50における、フランジ170の実際の動作軌跡T20を目標軌跡T10に近づける処理について説明する。図5では、説明の理解を容易にするために、図1及び2に示されるロボット装置100を3次元空間で動作させるときのフランジ170の動作軌跡が2次元平面であるXY平面に投影されている。また、目標軌跡T10は、始点Sと終点Fとを結んでX軸方向に延びる直線の軌跡である。実際の動作軌跡T20は、その始点S及び終点Fが目標軌跡T10と一致し、始点Sと終点Fとの間で目標軌跡T10からずれた-Y軸方向に凸の円弧状の曲線の軌跡である。実際の動作軌跡T20の通過点QのX座標は、目標軌跡T10上の基準点PのX座標と同一である。つまり、実際の動作軌跡T20は、X軸方向において、目標軌跡T10とのずれは生じていない。なお、目標軌跡T10において、始点Sと基準点Pとの間の距離は、基準点Pと終点Fとの間の距離に等しい。
 実際の動作軌跡T20上の通過点Qと目標軌跡T10上の基準点Pとの間には、Y軸方向において、第1の差としての軌跡誤差D1が生じている。通過点QのY座標を基準点PのY座標に近づけるために、基準点Pよりも+Y軸側に位置する中間点Cの座標が算出される。ここで、中間点CのX座標は、基準点P及び通過点QのX座標と同一である。中間点CのY座標の値は、後述する計算式を用いて通過点QのY座標から導き出される。中間点Cの座標は、目標軌跡T10に対応する動作指令の補正に用いられる。具体的には、目標軌跡T10に対応する動作指令は、始点S、中間点C、及び終点Fを含む軌跡に沿ってフランジ170を動作させることを意図した動作指令R10に補正される。補正された動作指令R10は、始点S及び終点Fの間で目標軌跡T10からずれた+Y軸方向に凸の円弧状の曲線で表される。補正された動作指令R10に基づいてロボット装置100(図1参照)が動作することによって、フランジ170(図1参照)の実際の動作軌跡T21は、目標軌跡T10に近づけられる。また、中間点Cの座標は、ロボットシステム1を利用するユーザが制御装置50において設定可能なパラメータである。
 次に、図3に示される演算装置70の動作について説明する。演算装置70の動作には、補正パラメータ算出部72によって処理が実行される「学習フェーズ」と、動作指令部74によって処理が実行される「運用フェーズ」とが含まれる。
 図6は、演算装置70の学習フェーズにおける動作の一例を示すフローチャートである。まず、ステップST101において、補正パラメータ算出部72は、学習用動作一覧DBとしての動作データ記憶部71から学習用の動作データを読み込む。図7は、動作データ記憶部71に記憶されている学習用の動作データの一例を示す図である。動作データ記憶部71は、例えば、複数の学習用の動作データを予め記憶している。動作データ記憶部71では、例えば、機械学習においてロボット装置100を動作させるときのパラメータ(つまり、複数のロボットパラメータ)がテーブル形式で記憶されている。図7では、複数の学習用の動作データのそれぞれを構成するパラメータの一部が抜粋されて示されている。パラメータは、例えば、フランジ170が動作する動作平面としての「平面」、フランジ170が動作する方向としての「動作方向」、フランジ170の動作平面に対するフランジ170の角度(例えば、フランジ170の先端平面の角度)である「平面に対する角度」、フランジ170の動作の始点から終点までの距離としての「動作距離」を含む。また、パラメータは、例えば、フランジ170に取り付けられる物体把持機構が把持するワークの重量としての「ワーク重量」、フランジ170が終点に到達したときのフランジ170の姿勢としての「フランジ姿勢」、フランジ170の動作速度としての「速度」、始点としての「動作開始点」、ワークの形状情報としての「ワーク重心位置」を含む。なお、図7では、「ワーク重心位置」の図示が省略されている。また、ロボット装置100を動作させるときのパラメータ数は、ロボットシステムによって任意に選択でき、図7に示されたパラメータの一部のみでもよい。
 図6に戻って、ステップST102において、補正パラメータ算出部72は、予め定められた学習動作(例えば、図9で後述する複数の学習動作)が完了しているか否かを判定する。学習動作が完了している場合(つまり、ステップST102において、Yesの場合)、補正パラメータ算出部72は、処理を終了する。学習動作が完了していない場合(つまり、ステップST102において、Noの場合)、補正パラメータ算出部72は、処理をステップST103へ進める。
 ステップST103において、補正パラメータ算出部72は、補正パラメータとして、複数のモータM1~M6の動作指令を生成するための計算に用いられる中間点の座標を算出する。なお、中間点を算出する処理の詳細については、後述する。
 ステップST104において、補正パラメータ算出部72は、始点の座標、終点の座標、及び中間点の座標を補正パラメータ記憶部73に書き込む。実施の形態1では、補正パラメータ算出部72は、始点の座標及び終点の座標を含む学習用の動作データと、中間点の座標とを関連付けたデータを補正パラメータ記憶部73に書き込む。図8は、補正パラメータ記憶部73に記憶されているデータの一例を示す図である。図8に示されるように、軌跡誤差低減DBとしての補正パラメータ記憶部73では、図7に示される複数の学習用の動作データのそれぞれに対応するように、中間点の座標がテーブル形式で記憶されている。なお、図8では、終点の座標の図示が省略されている。また、図8に示されるように、複数の学習用の動作データのそれぞれに対応する中間点の座標の数は、2つ以上であってもよい。2つ以上の中間点の座標が記憶されている場合、その2つ以上の中間点を含む軌跡に沿ってフランジ170を動作させることを意図した実際の動作データを構成する1つのパラメータとして、中間点の通過順が記憶されていてもよい。
 図9は、中間点の座標を算出する処理を示す模式図である。図9では、説明の理解を容易にするために、目標軌跡T100は、図5と同様に、始点Sと終点Fとを結んでX軸方向に延びる直線の軌跡である。目標軌跡T100における始点SのY座標及び終点FのY座標の値は、0である。実施の形態1では、ロボット装置100のフランジ170(図1参照)の実際の動作軌跡を目標軌跡T100に近づけるために、第1の学習用の動作データに基づいてロボット装置100を動作させる第1の学習動作と、第2の学習用の動作データに基づいてロボット装置100を動作させる第2の学習動作とが行われる。
 まず、第1の学習動作を説明する。第1の学習用の動作データは、第1の中間点C1に基づいて生成される。第1の中間点C1は、目標軌跡T100上における点である。ここで、始点Sと第1の中間点C1との間の距離は、第1の中間点C1と終点Fとの間の距離に等しい。実際の第1の動作軌跡T200は、第1の学習用の動作データに基づいてロボット装置100(図1参照)を動作させたときのフランジ170(図1参照)の実際の動作軌跡である。実際の第1の動作軌跡T200は、始点Sと終点Fとの間で目標軌跡T100からずれた+Y軸方向に凸の円弧状の曲線の軌跡である。第1の極大点A1は、実際の第1の動作軌跡T200上において、目標軌跡T100と最大の軌跡誤差が生じている通過点である。言い換えれば、第1の極大点A1は、軌跡誤差の微分値が0となる実際の第1の動作軌跡T200上の通過点のうち、その前後の通過点と比較して軌跡誤差が大きい通過点である。ここで、目標軌跡T100は、y=0の直線の軌跡であるため、実際の第1の動作軌跡T200と目標軌跡T100との最大の軌跡誤差は、第1の極大点A1のY座標A1yに相当する。
 次に、第1の学習動作に続く第2の学習動作を説明する。第2の学習用の動作データは、第2の中間点C2に基づいて生成される。第2の中間点C2は、第1の学習動作において、第1の極大点A1に基づいて算出される。第2の中間点C2は、第1の中間点C1よりも+X軸側にずれている。実際の第2の動作軌跡T201は、第2の学習用の動作データに基づいてロボット装置100を動作させたときのフランジ170の実際の動作軌跡である。実際の第2の動作軌跡T201上における第2の極大点A2は、実際の第2の動作軌跡T201と目標軌跡T100との最大の軌跡誤差が生じている通過点である。上述した通り、目標軌跡T100は、y=0の直線の軌跡であるため、実際の第2の動作軌跡T201と目標軌跡T100との最大の軌跡誤差は、第2の極大点A2のY座標A2yに相当する。
 実際の第2の動作軌跡T201は、実際の第1の動作軌跡T200よりも目標軌跡T100に近づいている。しかし、実際の第2の動作軌跡T201と目標軌跡T100との間には、Y軸方向において、わずかな軌跡誤差が生じている。実際の第2の動作軌跡T201を目標軌跡T100に更に近づけるために、第3の中間点C3が算出される。第3の中間点C3は、第2の中間点C2、第1の極大点A1及び第2の極大点A2に基づいて算出される。第3の中間点C3の座標は、実際の第2の動作軌跡T201を目標軌跡T100に近づける計算に用いられる第1の補正パラメータである。なお、図12及び図13(A)~(C)で後述するように、実際の第2の動作軌跡T201を目標軌跡T100に近づけるために複数の第3の中間点の座標が算出されてもよい。
 第3の中間点C3のX座標C3xは、第2の中間点C2のX座標C2xと同一である。次に、第3の中間点C3のY座標C3yを算出する計算式について説明する。ここで、中間点のY座標と最大の軌跡誤差との関係が一次関数によって規定される場合、第1の中間点C1のY座標C1yと最大の軌跡誤差A1yとの関係は、以下の式(1)で示され、第2の中間点C2のY座標C2yと最大の軌跡誤差A2yとの関係は、以下の式(2)で示される。なお、式(1)及び(2)に示される「a」及び「b」は、係数である。
 a・C1y+b=A1y                   (1)
 a・C2y+b=A2y                   (2)
 ここで、第1の中間点C1は、y=0の直線の軌跡である目標軌跡T100上における点であるため、第1の中間点C1のY座標C1yは、以下の式(3)で示される。
 C1y=0                        (3)
 式(1)~式(3)から、係数a及びbについて、以下の式(4)及び(5)が導き出される。
 a=(A2y-A1y)/C2y               (4)
 b=A1y                        (5)
 ここで、仮に、第3の中間点C3の座標(C3x,C3y)に基づいて生成された第3の学習用の動作データによってロボット装置100を動作させたときの実際の第3の動作軌跡と目標軌跡T100との最大の軌跡誤差がA3yである場合、第3の中間点C3のY座標C3yと軌跡誤差A3yとの関係は、以下の式(6)で示される。
 a・C3y+b=A3y                   (6)
 式(6)に式(4)及び(5)を代入すると、以下の式(7)が導き出される。
 C3y・(A2y-A1y)/C2y+A1y=A3y       (7)
 軌跡誤差A3yがA3y→0となるために必要な第3の中間点C3のY座標C3yは、式(7)において、A3y=0を代入した後に変形した以下の式(8)で示される。
 C3y=-A1y・C2y/(A2y-A1y)         (8)
 第3の中間点C3のY座標C3yは、実際の第2の動作軌跡T201を目標軌跡T100に近づける動作指令を生成するために用いられる補正値である。
 図10は、第3の中間点C3の座標(C3x,C3y)を算出する処理(図8に示されるステップST103)を示すフローチャートである。図10におけるステップST111からステップST115までは、第1の学習動作における処理である。また、図10におけるステップST116からステップST118までは、第2の学習動作における処理である。まず、ステップST111において、補正パラメータ算出部72は、目標軌跡T11の始点Sの座標(S,0)及び終点Fの座標(F,0)を取得する。
 ステップST112において、補正パラメータ算出部72は、目標軌跡T11の始点Sと終点Fとの間に位置する第1の中間点C1の座標(C1x,C1y)を算出する。ここで、第1の中間点C1のX座標C1xは、以下の式(9)で求められる。
 C1x=(S+F)/2                (9)
 なお、図9では、第1の中間点C1のY座標C1yは、上述した式(3)に示される通り、0である。
 ステップST113において、補正パラメータ算出部72は、始点S、第1の中間点C1、及び終点Fを含む軌跡に対応する第1の学習用の動作データを生成し、第1の学習用の動作データに基づいてロボット装置100を動作させて、図9に示される実際の第1の動作軌跡T200を取得する。
 ステップST114において、補正パラメータ算出部72は、実際の第1の動作軌跡T200と目標軌跡T100との軌跡誤差が最大となる第1の極大点A1の座標(A1x,A1y)を取得する。
 ステップST115において、補正パラメータ算出部72は、第1の極大点A1の座標(A1x,A1y)に基づいて、第2の中間点C2の座標(C2x,C2y)を算出する。第2の中間点C2のX座標C2x及びY座標C2yは、以下の式(10)及び(11)で求められる。
 C2x=A1x                     (10)
 C2y=-A1y                    (11)
 ステップST116において、補正パラメータ算出部72は、始点S、第2の中間点C2、及び終点Fを含む軌跡に対応する第2の学習用の動作データを生成し、第2の学習用の動作データに基づいてロボット装置100を動作させて、図9に示される実際の第2の動作軌跡T201を取得する。
 ステップST117において、補正パラメータ算出部72は、実際の第2の動作軌跡T201と目標軌跡T100との軌跡誤差が最大となる第2の極大点A2の座標(A2x,A2y)を取得する。
 ステップST118において、補正パラメータ算出部72は、第2の中間点C2の座標(C2x,C2y)、第1の極大点A1の座標(A1x,A1y)及び第2の極大点A2の座標(A2x,A2y)に基づいて、第3の中間点C3の座標(C3x,C3y)を算出する。第3の中間点C3のX座標C3xは、第2の中間点C2のX座標C2xと同一であるため、以下の式(12)で求められる。
 C3x=C2x                     (12)
 第3の中間点C3のY座標C3yは、上述した式(8)に示される通りである。
 補正パラメータ算出部72は、第3の中間点C3の座標(C3x,C3y)を算出した後に、学習フェーズにおける処理を終了する。
 なお、図10では、第1の学習動作と第2の学習動作とを行う学習フェーズを説明したが、学習フェーズは、第2の学習動作に続く第3の学習動作が行われてもよい。また、演算装置70の動作における学習フェーズでは、第1の学習動作のみが行われてもよい。つまり、第nの中間点Cnの座標(Cnx,ny)が算出された後に、学習フェーズの処理が終了してもよい。nは、2以上の整数である。また、図10において、補正パラメータ算出部72は、ステップST117において、第2の極大点A2を取得した後に、軌跡誤差A2yが予め定められた閾値以下であるか否かを判定し、処理をステップST118に進めるか否かを決めてもよい。具体的には、軌跡誤差A2yが閾値以下である場合、補正パラメータ算出部72は学習フェーズにおける処理を終了し、軌跡誤差A2yが閾値よりも大きい場合、補正パラメータ算出部72は処理をステップST118へ進めてもよい。更に、中間点の座標を3次元に拡張する場合には、複数の座標軸を用意し、図10に示されるステップST111からステップST118までの処理を複数回実施すればよい。
 次に、算出された第3の中間点C3の座標(C3x,C3y)に基づいて図3に示される複数のモータM1~M6の動作指令を生成する処理について述べる。図11は、制御装置50の運用フェーズにおける動作を示すフローチャートである。まず、ステップST121において、フランジ170の目標軌跡に対応する実際の動作データが、ロボットシステム1のユーザによって、制御装置50に入力される。図11では、説明の理解を容易にするために、制御装置50に入力される実際の動作データは、フランジ170を図9に示される目標軌跡T100に沿って動かすことを意図した動作データである。
 ステップST122において、動作指令部74は、補正パラメータ記憶部73から目標軌跡T100に対応する第3の中間点C3の座標(C3x,C3y)を読み込む。
 ステップST123において、動作指令部74は、目標軌跡T100に対応する実際の動作データを第3の中間点C3の座標(C3x,C3y)を用いて補正し、補正された動作データを補正された動作指令として生成する。具体的には、動作指令部74は、目標軌跡T100に対応する実際の動作データを、始点S、第3の中間点C3、及び終点Fを含む軌跡に沿ってフランジ170を動かすことを意図した動作データに補正して、補正された実際の動作データを生成する。動作指令部74は、補正された実際の動作データに基づいて、複数のモータM1~M6の動作指令(例えば、複数のモータM1~M6のそれぞれのトルク、又は複数のモータM1~M6のそれぞれの駆動時間)を計算する。
 ステップST124において、動作指令部74は、生成した複数のモータM1~M6の動作指令をモータ制御装置60に出力する。計算によって得られた複数のモータM1~M6の動作指令に基づいて、複数のモータM1~M6が動作する。図11に示される運用フェーズでは、補正された動作データに基づいて複数のモータM1~M6の動作指令が生成されているため、実際の動作軌跡が目標軌跡に近づけられる。
 以上に説明したように、実施の形態1によれば、軌跡誤差を低減するために、学習によって算出された軌跡誤差低減パラメータとしての中間点C(図5に示される)の座標、又は、第3の中間点C3の座標(C3x,C3y)(図9に示される)に基づいて補正された動作指令によって、複数のモータM1~M6がフランジ170を含む複数のリンクを動かすため、フランジ170の実際の動作軌跡を目標軌跡T100に近づけることができる。その結果、ロボット装置100の動作精度を向上させることができる。
 また、中間点C(図5に示される)の座標、又は、第3の中間点C3の座標(C3x,C3y)(図9に示される)は、制御装置50においてユーザによって設定可能(つまり、入力可能)なパラメータであるため、ロボット装置100内部のパラメータを変更することなく、フランジ170の実際の動作軌跡を目標軌跡T100に近づけることができる。ここで、ロボット装置の複数のモータのそれぞれにおけるサーボ遅れ時間(つまり、応答遅れ時間)は、ロボット装置を安定して動作させるために重要なパラメータである。そのため、ロボット装置において、ユーザによるサーボ遅れ時間を変更する設定が制限されている場合がある。このとき、何らかの事情でロボット装置の動作特性が変わった場合、先端のリンクの実際の動作軌跡を目標軌跡に近づけることができない。実施の形態1に係る制御装置50は、上述した通り、ユーザによって設定可能なパラメータである中間点Cの座標、又は、第3の中間点C3の座標(C3x,C3y)を用いて、フランジ170の実際の動作軌跡を目標軌跡T100に近づけることができるため、サーボ遅れ時間の設定が制限されているロボット装置を制御する制御装置として実施の形態1に係る制御装置50が適用された場合の効果は、大きい。
 実施の形態2.
 実施の形態1では、図10のステップST114及びステップST115に示されるように、補正パラメータ算出部72は、実際の第1の動作軌跡T200上における1つの第1の極大点A1に基づいて1つの第2の中間点C2を算出する。実施の形態2では、図12及び図13(A)~(C)を用いて、実際の第1の動作軌跡T210上における2つの第1の極大点A11,A12に基づいて、複数の第2の中間点C21,C22の座標を算出する例、及び複数の第3の中間点C31,C32の座標を算出する例を説明する。
 図12は、実施の形態2に係る制御装置における中間点を算出する処理を示すフローチャートである。図12において、図9に示される処理ステップと同じ処理ステップには、図9に示されるステップ番号と同じ番号が付されている。図13(A)は、図12のステップST111からステップST214までの処理を示す模式図である。図13(B)は、図12のステップST215からステップST217までの処理を示す模式図である。図13(C)は、図12のステップST218の処理を示す模式図である。
 ステップST214において、補正パラメータ算出部72は、実際の第1の動作軌跡T210上において、目標軌跡T110との差が大きい順に複数の第1の極大点A11,A12を指定し、それら複数の第1の極大点A11,A12の座標(A11x,A11y),(A12x,A12y)を取得する。ここで、1つ目の第1の極大点A11は、実際の第1の動作軌跡T210上において、目標軌跡T110との差が最大となる差D11が生じている第1の通過点である。2つ目の第1の極大点A12は、実際の第1の動作軌跡T210上において、目標軌跡T110と第2の差D12が生じている第2の通過点である。第2の差D12は、差D11よりも小さい。なお、補正パラメータ算出部72は、実際の第1の動作軌跡T210上において、3個以上の第1の極大点を指定してもよく、例えば、10個の第1の極大点を指定してもよい。
 ステップST215において、補正パラメータ算出部72は、複数の第1の極大点A11,A12に基づいて、複数の第2の中間点C21,C22の座標(C21x,C21y),(C22x,C22y)を算出する。ここで、1つ目の第2の中間点C21の座標(C21x,C21y)は、第1の極大点A11を目標軌跡T110上における第1の基準点P11に近づける計算に用いられる。2つ目の第2の中間点C22の座標(C22x,C22y)は、第1の極大点A12を目標軌跡T110上における第2の基準点P12に近づける計算に用いられる。複数の第2の中間点C21,C22の座標(C21x,C21y),(C22x,C22y)は、実施の形態1で説明した式(10)及び(11)を参考にして導き出される。1つ目の第2の中間点C21の座標(C21x,C21y)は、以下の式(13)及び(14)で示され、2つ目の第2の中間点C22の座標(C22x,C22y)は、以下の式(15)及び(16)で示される。
 C21x=A11x                   (13)
 C21y=-A11y                  (14)
 C22x=A12x                   (15)
 C22y=-A12y                  (16)
 すなわち、ステップST214において、m個の第1の極大点A1mが指定されたとき、ステップST215で算出される第2の中間点C2mのX座標C2mx及びY座標C2myは、以下の式(17)及び(18)で示される。なお、mは、1以上の整数である。
 C2mx=A1mx                   (17)
 C2my=-A1my                  (18)
 ステップST216において、補正パラメータ算出部72は、始点S、複数の第2の中間点C21,C22、及び終点Fを含む軌跡に対応する第2の学習用の動作データを生成し、第2の学習用の動作データに基づいてロボット装置100を動作させて、図13(B)に示される実際の第2の動作軌跡T211を取得する。
 ステップST217において、補正パラメータ算出部72は、実際の第2の動作軌跡T211と目標軌跡T110との軌跡誤差が最大となる複数の第2の極大点A21,A22を指定し、それら複数の第2の極大点A21,A22の座標(A21x,A21y),(A22x,A22y)を取得する。
 ステップST218において、補正パラメータ算出部72は、複数の第2の中間点C21,C22の座標、複数の第1の極大点A11,A12の座標、複数の第2の極大点A21,A22の座標に基づいて、複数の第3の中間点C31,C32の座標(C31x,C31y),(C32x,C32y)を算出する。複数の第3の中間点C31,C32の座標(C31x,C31y),(C32x,C32y)は、実際の第2の動作軌跡T211を目標軌跡T100に近づける動作指令を生成するために用いられる補正パラメータである。一方の第3の中間点C31の座標(C31x,C31y)は第1の補正パラメータであり、他方の第3の中間点C32の座標(C32x,C32y)は第2の補正パラメータである。
 複数の第3の中間点C31,C32の座標(C31x,C31y),(C32x,C32y)は、実施の形態1で説明した式(8)及び(12)を参考にして導き出される。例えば、1つ目の第3の中間点C31の座標(C31x,C31y)は、以下の式(19)及び(20)で示され、2つ目の第3の中間点C32の座標(C32x,C32y)は、以下の式(21)及び(22)で示される。
 C31x=C21x                   (19)
 C31y=-A11y・C21y/(A21y-A11y)    (20)
 C32x=C22x                   (21)
 C32y=-A12y・C22y/(A22y-A12y)    (22)
 すなわち、ステップST217において、m個の第2の極大点A2mが指定されたとき、ステップST218で算出される第3の中間点C3mのX座標C3mx及びY座標C3myは、以下の式(23)及び(24)で示される。
 C3mx=C2mx                   (23)
 C3my=-A1my・C2my/(A2my-A1my)    (24)
 実施の形態2によれば、軌跡誤差低減パラメータとしての複数の第3の中間点C31,C32の座標(C31x,C31y),(C32x,C32y)に基づいて補正された動作指令によって、複数のモータM1~M6がフランジ170を含む複数のリンクを動かすため、フランジ170の実際の動作軌跡を目標軌跡T100に近づける精度を向上させることができる。その結果、ロボット装置100の動作精度を更に向上させることができる。
 上記以外の点について、実施の形態2は、実施の形態1と同じである。
 実施の形態3.
 実施の形態2では、図12に示されるステップST218において、複数の第3の中間点C31,C32の座標(C31x,C31y),(C32x,C32y)が算出された後に、処理が終了した。実施の形態3では、複数の第3の中間点C31,C32の座標に基づいて生成された第3の学習用の動作データによって、ロボット装置を動作させたときの実際の第3の動作軌跡と目標軌跡T110との差が予め定められた閾値よりも小さいか否かによって、処理を終了するか否かを判定する例を説明する。
 図14は、実施の形態3に係る制御装置において、中間点を算出する処理を示すフローチャートである。図14において、図12に示される処理ステップと同じ処理ステップには、図12に示されるステップ番号と同じ番号が付されている。図14に示されるように、実施の形態3に係る制御装置の補正パラメータ算出部は、ステップST301において、複数の第3の中間点C31,C32の座標に基づいて生成された第3の学習用の動作データによってロボット装置を動作させ、実際の第3の動作軌跡を取得する。
 ステップST302において、補正パラメータ算出部72は、実際の第3の動作軌跡と目標軌跡T110との軌跡誤差が予め定められた閾値よりも小さいか否かを判定する。軌跡誤差が閾値よりも小さい場合(つまり、ステップST302においてYesの場合)、補正パラメータ算出部は、処理を終了する。軌跡誤差が閾値よりも大きい場合(つまり、ステップST302においてNoの場合)、補正パラメータ算出部は、処理をステップST217へ戻す。なお、ステップST302においてNoの場合、補正パラメータ算出部は、処理をステップST214へ戻してもよい。
 以上に説明したように、実施の形態3に係る制御装置を用いれば、複数の第3の中間点C31,C32の座標が、実際の第2の動作軌跡T211を目標軌跡T110に近づけるために有効でないと判定された場合、複数の第3の中間点C31,C32の座標を再設定する、又は新たな第3の中間点を追加設定することが可能となるため、ロボット装置100の動作精度を更に向上させることができる。
 上記以外の点について、実施の形態3は、実施の形態1又は2と同じである。
 実施の形態4.
 実施の形態2では、図12に示されるステップST218において、補正パラメータ算出部が複数の第3の中間点C31,C32の座標(C31x,C31y),(C32x,C32y)を算出する例を説明した。実施の形態4においては、補正パラメータ算出部が算出する第3の中間点の数の上限値が指定されてもよい。
 図15は、実施の形態4に係るロボットシステムにおいて、複数のモータM1~M6の補正された動作指令において指定された第3の中間点の数(以下、「中間点の指定数」ともいう)と軌跡誤差との関係の一例を示すグラフである。図15において、横軸は、中間点の指定数であり、縦軸は、補正された動作指令に基づいて複数のモータM1~M6を駆動した場合におけるフランジ170の実際の動作軌跡と目標軌跡との軌跡誤差の値である。図15では、中間点の指定数が5個の場合に軌跡誤差が最も小さくなる。また、中間点の指定数が6個の場合には、中間点の指定数が5個の場合と比較して軌跡誤差が大きくなる。
 このように、中間点の指定数と軌跡誤差との関係に極小値が存在する場合、実施の形態4に係る制御装置の補正パラメータ算出部は、中間点の指定数を5個とする。図15では、補正パラメータ算出部は、フランジ170の実際の動作軌跡上における極大点の指定数を5個に制限し、それら5個の極大点にそれぞれ対応する5個の第3の中間点の座標を算出する。このとき、補正パラメータ算出部は、実際の動作軌跡上において目標軌跡との軌跡誤差が大きい順に5個の極大点を指定することが望ましい。つまり、補正パラメータ算出部は、補正された動作指令に基づいて複数のモータ(図3参照)を駆動した場合におけるフランジ170の実際の動作軌跡と目標軌跡との差を最も小さくするために、実際の動作軌跡上のj個の極大点を取得し、j個の極大点に基づいてj個の中間点の座標を算出する。jは、1,2,…,Nであり、Nは正の整数である。
 以上に説明したように、実施の形態4に係る制御装置を用いれば、軌跡誤差を最も低減する中間点の指定数に基づいて実際の動作データが補正されるため、フランジ170の実際の動作軌跡を目標軌跡に近づけることができる。その結果、ロボット装置100の動作精度を向上させることができる。
 上記以外の点について、実施の形態4は、実施の形態1から3のいずれかと同じである。
 実施の形態5.
 実施の形態2では、図12に示されるステップST214において、補正パラメータ算出部72が、実際の第1の動作軌跡T210上における複数の第1の極大点A11,A12を指定する例を説明した。実施の形態5においては、図13(A)に示される実際の第1の動作軌跡T210上における第1の極大点を指定するときに、その第1の極大点が予め決められた方法によって指定されてもよい。
 図16(A)は、実施の形態5に係る制御装置において、実際の第1の動作軌跡T210上における第1の極大点を指定する方法の一例を概略的に示す模式図である。図16(A)において、図13(A)を用いて説明した実施の形態2と同じ構成要素には同じ符号が付されている。図16(A)に示されるように、実際の第1の動作軌跡T210上において、隣り合う複数の第1の極大点A11,A12間の距離L1が予め定められた基準距離以下のとき、補正パラメータ算出部72は、第1の極大点A11に基づいて第2の中間点C21の座標を算出する処理のみを実行する。つまり、図16(A)では、実際の第1の動作軌跡T210上において、一方の第1の極大点A12が他方の第1の極大点A11に近接して位置しているとき、第1の極大点A12に対応する第2の中間点C22の座標を算出する処理を実行しない。なお、補正パラメータ算出部72は、第1の極大点A12に基づいて第2の中間点C22の座標を算出する処理のみを実行し、第1の極大点A11に対応する第2の中間点C21の座標を算出する処理を実行しなくてもよい。
 図16(B)は、実施の形態5に係る制御装置において、実際の第1の動作軌跡T210上における第1の極大点を指定する方法の他の例を概略的に示す模式図である。図16(B)に示されるように、距離L1が予め決められた基準距離以下のとき、補正パラメータ算出部72は、第1の極大点A11と第1の極大点A12との間に位置する第3の通過点A13を目標軌跡T110上の第3の基準点P13に近づける計算に用いられる第2の中間点の座標を算出する。つまり、図16(B)では、実際の第1の動作軌跡T210上において、一方の第1の極大点A12が他方の第1の極大点A11に近接して位置しているとき、第1の極大点A11及び第1の極大点A12との間に位置する第3の通過点A13を、新たな第1の通過点として第2の中間点の座標を算出する処理を実行する。
 以上に説明したように、実施の形態5に係る制御装置を用いれば、実際の第1の動作軌跡T210における第1の極大点の数が制限されるため、制御装置の演算装置における処理時間、及び制御装置の学習フェーズにおけるロボット装置100の動作時間を短縮することができる。
 上記以外の点について、実施の形態5は、実施の形態1から4のいずれかと同じである。
 実施の形態6.
 図17は、実施の形態6に係るロボットシステム6の構成を概略的に示すブロック図である。実施の形態6に係るロボットシステム6は、シミュレーション装置80を有する点で実施の形態1に係るロボットシステム1と相違する。図17において、図3に示される構成要素と同一又は対応する構成要素には、図3に示される符号と同じ符号が付される。
 シミュレーション装置80は、学習用の動作データに基づいて複数のモータM1~M6(図3参照)を駆動した場合のフランジ170(図1参照)の動作を模擬して、フランジ170の実際の動作軌跡を予想する。シミュレーション装置80がフランジ170の実際の動作軌跡を予想する時間は、学習用の動作データに基づいてロボット装置100を実際に動作させたときにおけるフランジ170の実際の動作軌跡が算出される時間よりも短い。シミュレーション装置80は、予想したフランジ170の実際の動作軌跡を補正パラメータ算出部72に出力する。補正パラメータ算出部72は、シミュレーション装置80によって得られた実際の動作軌跡に基づいて補正パラメータを算出する。
 以上に説明したように、実施の形態6に係るロボットシステム6を用いれば、補正パラメータ算出部72は、演算装置70の学習フェーズにおけるフランジ170の実際の動作軌跡を短時間に得ることができる。
 上記以外の点について、実施の形態6は、実施の形態1から5のいずれかと同じである。
 実施の形態7.
 実施の形態1から6のいずれかでは、補正パラメータを学習によって算出するために用いられる学習用の動作データと、ロボット装置100を目標軌跡T1(図2参照)に沿って動かすことを意図した実際の動作データとが同じである例を説明した。実施の形態7では、学習用の動作データと実際の動作データとが異なる例を説明する。
 図18は、実施の形態7に係るロボットシステム7の構成を概略的に示すブロック図である。図18において、図3に示される構成要素と同一又は対応する構成要素には、図3に示される符号と同じ符号が示されている。図18に示されるように、ロボットシステム7は、ロボット装置100と、ロボット装置100の動作を制御する制御装置750とを有する。
 制御装置750は、補正パラメータを算出する演算処理とロボット装置100への動作指令を生成する演算処理とを行う演算装置770を有する。演算装置770は、動作データ記憶部71と、補正パラメータ算出部772と、補正パラメータ記憶部773と、動作指令部74と、動作データ取得部775とを有する。動作データ取得部775は、ロボット装置100を実際に駆動させるときの駆動条件を示す実際の動作データを取得する。動作データ取得部775には、例えば、図示されない入力装置から実際の動作データが入力される。動作データ取得部775は、入力された実際の動作データを補正パラメータ算出部772に出力する。なお、実際の動作データは、入力装置から補正パラメータ算出部772に直接入力されてもよい。
 図19(A)は、図18に示される補正パラメータ記憶部773に記憶されているデータの一例を示す図である。図19(A)に示されるように、補正パラメータ記憶部773では、学習用の動作データと、その学習用の動作データに対応付けされた補正パラメータとがテーブル形式で記憶されている。
 補正パラメータ記憶部773に記憶されている学習用の動作データは、複数の学習用データを有する。図19(A)では、学習用の動作データは、「No.1」で示される第1の学習用データと、「No.2」で示される第2の学習用データとを有する。なお、図19(A)では、学習用の動作データを構成するパラメータの一部が抜粋して示されている。
 補正パラメータ記憶部773は、補正パラメータとして第1の中間点の座標と第2の中間点の座標とを記憶している。図19(A)に示される例では、第1の中間点の座標は(50,2,0)であり、第2の中間点の座標は(50,104,0)である。第1の中間点の座標(50,2,0)は第1の学習用データに対応し、第2の中間点の座標(50,104,0)は第2の学習用データに対応する。なお、第1の中間点の座標(50,2,0)に対応する第1の学習用データにおける「動作開始点」の座標は(0,0,0)であり、第2の中間点の座標(50,104,0)に対応する第2の学習用データにおける「動作開始点」の座標は(0,100,0)である。
 図19(B)は、図18に示される動作データ取得部775が取得する実際の動作データの一例を示す図である。図19(B)では、実際の動作データを構成するパラメータの一部が抜粋して示されている。図19(A)及び(B)に示されるように、実際の動作データにおける「平面」、「動作方向」、「フランジ姿勢」、「速度」及び「動作距離」は、学習用の動作データにおける「平面」、「動作方向」、「フランジ姿勢」、「速度」及び「動作距離」と同じである。しかし、実際の動作データにおける「動作開始点」の座標は(0,50,0)であり、学習用の動作データにおける「動作開始点」の座標(0,0,0)、(0,100,0)と異なる。つまり、補正パラメータ記憶部773には、実際の動作データと同じ学習用の動作データに対応する中間点の座標が記憶されていない。
 このように、学習用の動作データが実際の動作データと異なる場合、補正パラメータ算出部772は、学習用の動作データ、学習用の動作データに基づいて算出された補正パラメータ、及び実際の動作データに基づいて、当該実際の動作データに対応する新たな補正パラメータを算出する。具体的には、実施の形態7では、補正パラメータ算出部772は、新たな補正パラメータとしての新たな中間点の座標を第1の中間点の座標及び第2の中間点の座標から補間により推定する処理を行う。
 以下では、新たな中間点の座標を算出する例について説明する。補正パラメータ算出部772には、動作データ取得部775から実際の動作データが入力される。図19(A)及び(B)に示される例では、実際の動作データにおける「動作開始点」の座標(0,50,0)と第1の学習用データにおける「動作開始点」の座標(0,0,0)との間の距離は、実際の動作データにおける「動作開始点」の座標(0,50,0)と第2の学習用データにおける「動作開始点」の座標(0,100,0)との間の距離と等しい。
 そのため、補正パラメータ算出部772は、第1の中間点の座標(50,2,0)と新たな中間点の座標との間の距離が、第2の中間点の座標(50,104,0)と新たな中間点の座標との間の距離と等しいとの条件を満たす、新たな中間点の座標を算出する。実施の形態7では、上記条件を満たす新たな中間点の座標は、(50,53,0)である。
 補正パラメータ算出部772は、例えば、新たな中間点の座標を線形補間(つまり、1次補間)により推定する。なお、線形補間により新たな中間点の座標を推定する場合には、第1の中間点の座標及び第2の中間点の座標はいずれも、絶対座標である必要がある。また、補正パラメータ算出部772は、線形補間に限らず、2次以上の多項式補間又は機械学習を用いた補間など他の補間方法によって、推定中間点の座標を推定してもよい。機械学習を用いた補間は、サポートベクタマシン又はK近傍法を用いた補間、ニューラルネットワークを用いた補間などである。
 補正パラメータ算出部772によって算出された新たな中間点の座標は、動作指令部74に出力される。動作指令部74は、新たな中間点の座標(50,53,0)を含む軌跡に沿ってロボット装置100を動作させることを意図した動作指令を生成する。生成された動作指令は、モータ制御装置60に出力される。なお、新たな中間点の座標は、補正パラメータ記憶部773において、図19(B)に示される実際の動作データと対応付けられて記憶されてもよい。
 以上に説明した実施の形態7に係るロボットシステム7によれば、補正パラメータ算出部772は、学習用の動作データ、学習用の動作データに基づいて算出された第1及び第2の中間点の座標、及び実際の動作データに基づいて、新たな中間点の座標を算出する。これにより、学習用の動作データが実際の動作データと異なる場合であっても、ロボット装置100の動作軌跡を目標軌跡に近づけることができる。よって、ロボット装置100の動作精度を向上させることができる。
 上記以外の点について、実施の形態7は、実施の形態1から6のいずれかと同じである。
 〈実施の形態7の変形例〉
 実施の形態7の変形例に係るロボットシステムでは、学習用の動作データを構成する複数の学習用データのうち実際の動作データに近い学習用データ、つまり、実際の動作データとの誤差が最も小さい学習用データを抽出し、その学習用データを用いて補正パラメータを算出する点で、実施の形態7に係るロボットシステム7と相違する。これ以外については、実施の形態7の変形例に係るロボットシステムは、実施の形態7に係るロボットシステム7と同じである。そのため、以下の説明では、図18、19(A)及び(B)を参照する。
 学習用の動作データが実際の動作データと異なる場合、実施の形態7の変形例では、補正パラメータ算出部772は、複数の学習用データ(例えば、図19(A)に示される「No.1」の学習用データ及び「No.2」の学習用データ)のうち実際の動作データに近い学習用データを抽出する。補正パラメータ算出部772は、例えば、最小二乗法によって、複数の学習用データのうち実際の動作データとの誤差が小さい学習用データを抽出する。なお、補正パラメータ算出部772は、最小二乗法に限らず、マッピングなどの他の方法によって実際の動作データに近い学習用データを抽出してもよい。マッピングによって抽出する場合には、例えば、学習用データのパラメータと実際の動作データのパラメータを空間にマッピングし、学習用データのパラメータと実際の動作データとのパラメータとの間の最短距離が探索される。
 補正パラメータ算出部772は、抽出された学習用データに基づいてロボット装置100を駆動した場合の実際の動作軌跡と、理想の動作軌跡との差に対応する補正パラメータを算出する。算出された補正パラメータは、動作指令部74に出力される。動作指令部74は、学習用データに対応する補正パラメータを含む軌跡に沿ってロボット装置100を動作させることを意図した動作指令を生成する。生成された動作指令は、モータ制御装置60に出力される。
 以上に説明した実施の形態7の変形例によれば、補正パラメータ算出部772は、複数の学習用データのうち実際の動作データとの誤差が最も小さい学習用データに基づいて補正パラメータを算出する。これにより、学習用の動作データが実際の動作データと異なる場合であっても、ロボット装置100の動作軌跡を目標軌跡に近づけることができる。よって、ロボット装置100の動作精度を向上させることができる。
 また、学習用の動作データが1つの学習用データで構成されている構成では、学習用の動作データと実際の動作データとが異なるケースが発生する度に補正パラメータを算出する必要がある。一方、実施の形態7の変形例によれば、学習用の動作データが複数の学習用データで構成されているため、実際の動作データに近い学習用データを抽出する処理を行うことができ、学習用の動作データと実際の動作データとが異なるケースが発生した場合に、補正パラメータを設定し易い。
 1、6、7 ロボットシステム、 50、750 制御装置、 60 モータ制御装置、 70、770 演算装置、 71 動作データ記憶部、 72、772 補正パラメータ算出部、 73、773 補正パラメータ記憶部、 74 動作指令部、 80 シミュレーション装置、 100 ロボット装置、 110 ベース、 120 第1のアーム、 130 第2のアーム、 140 第3のアーム、 150 第4のアーム、 160 リスト、 170 フランジ、 A1,A11,A12 第1の極大点、 A2,A21,A22 第2の極大点、 C1 第1の中間点、 C2,C21,C22 第2の中間点、 C3,C31,C32 第3の中間点、 E1、E2、E3、E4、E5、E6 エンコーダ、 M1、M2、M3、M4、M5、M6 モータ、 T1、T10、T100、T110 目標軌跡、 T200、T201、T210、T211 実際の動作軌跡。
 

Claims (18)

  1.  第1のリンクを含む複数のリンクと、動作指令に基づいて前記複数のリンクをそれぞれ動かす複数のモータと、前記複数のモータの回転位置をそれぞれ検出する複数の回転位置検出器とを有するロボット装置を、制御する制御装置であって、
     予め定められた学習用の動作データに基づいて前記複数のモータを駆動した場合に前記複数の回転位置検出器によって検出された前記回転位置を用いて算出された前記第1のリンクの実際の動作軌跡と、前記学習用の動作データに基づいて前記複数のモータを駆動した場合における前記第1のリンクの理想の動作軌跡との第1の差に対応する補正パラメータを算出する第1の処理を実行する補正パラメータ算出部と、
     実際の動作データに基づいて前記複数のモータを駆動する場合に、前記実際の動作データを前記補正パラメータを用いて補正し、補正された前記実際の動作データに基づいて前記複数のモータの前記動作指令を生成する動作指令部と、
     を有する制御装置。
  2.  前記補正パラメータ算出部は、前記第1の処理において、前記実際の動作軌跡上において前記第1の差が生じる点である第1の通過点を、前記理想の動作軌跡に近づける計算に用いられる第1の補正パラメータを算出する、
     請求項1に記載の制御装置。
  3.  前記補正パラメータ算出部は、前記実際の動作軌跡と前記理想の動作軌跡との差が最大となる前記実際の動作軌跡上の点を前記第1の通過点として用いる、
     請求項2に記載の制御装置。
  4.  前記補正パラメータ算出部は、
     前記理想の動作軌跡上の点である第1の中間点を算出し、
     前記第1の中間点に基づいて第1の学習用の動作データを生成し、
     前記第1の学習用の動作データに基づいて前記複数のモータを駆動した場合における前記第1のリンクの実際の第1の動作軌跡を取得し、
     前記実際の第1の動作軌跡における第1の極大点を取得し、
     前記補正パラメータとして、前記実際の第1の動作軌跡を前記理想の動作軌跡に近づける計算に用いられる第2の中間点を前記第1の極大点に基づいて算出する、
     請求項1に記載の制御装置。
  5.  前記補正パラメータ算出部は、
     前記理想の動作軌跡上の点である第1の中間点を算出し、
     前記第1の中間点に基づいて第1の学習用の動作データを生成し、
     前記第1の学習用の動作データに基づいて前記複数のモータを駆動した場合における前記第1のリンクの実際の第1の動作軌跡を取得し、
     前記実際の第1の動作軌跡における第1の極大点を取得し、
     前記第1の極大点に基づいて第2の中間点を算出し、
     前記第2の中間点に基づいて第2の学習用の動作データを生成し、
     前記第2の学習用の動作データに基づいて前記複数のモータを駆動した場合における前記第1のリンクの実際の第2の動作軌跡を取得し、
     前記実際の第2の動作軌跡における第2の極大点を取得し
     前記補正パラメータとして、前記実際の第2の動作軌跡を前記理想の動作軌跡に近づける計算に用いられる第3の中間点を前記第2の中間点、前記第1の極大点及び前記第2の極大点に基づいて算出する、
     請求項1に記載の制御装置。
  6.  前記補正パラメータ算出部は、
     前記第3の中間点に基づいて第3の学習用の動作データを生成し、
     前記第3の学習用の動作データに基づいて前記複数のモータを駆動した場合における前記第1のリンクの実際の第3の動作軌跡を取得し、
     前記実際の第3の動作軌跡と前記理想の動作軌跡との差が予め定められた閾値よりも大きいと判定したときに、前記第2の極大点を取得する処理と前記第3の中間点を算出する処理とを再度実行する、
     請求項5に記載の制御装置。
  7.  前記補正パラメータ算出部は、前記実際の動作軌跡上において前記実際の動作軌跡と前記理想の動作軌跡との第2の差が生じる点である第2の通過点を前記理想の動作軌跡に近づける計算に用いられる第2の補正パラメータを算出する第2の処理を実行する、
     請求項2又は3に記載の制御装置。
  8.  前記第2の差は、前記第1の差よりも小さい、
     請求項7に記載の制御装置。
  9.  前記補正パラメータ算出部は、
     前記理想の動作軌跡上の点である第1の中間点を算出し、
     前記第1の中間点に基づいて第1の学習用の動作データを生成し、
     前記第1の学習用の動作データに基づいて前記複数のモータを駆動した場合における前記第1のリンクの実際の第1の動作軌跡を取得し、
     前記実際の第1の動作軌跡における複数の第1の極大点を前記第1の通過点及び前記第2の通過点として取得し、
     前記複数の第1の極大点に基づいて複数の第2の中間点を算出し、
     前記複数の第2の中間点に基づいて第2の学習用の動作データを生成し、
     前記第2の学習用の動作データに基づいて前記複数のモータを駆動した場合における前記第1のリンクの実際の第2の動作軌跡を取得し、
     前記実際の第2の動作軌跡における複数の第2の極大点を取得し、
     前記複数の第2の中間点、前記複数の第1の極大点及び前記複数の第2の極大点に基づいて前記第1の補正パラメータ及び前記第2の補正パラメータを算出する、
     請求項7又は8に記載の制御装置。
  10.  前記補正パラメータ算出部は、前記実際の動作軌跡上において前記第1の通過点と前記第2の通過点との間の距離が予め定められた基準距離よりも小さいと判定したとき、前記第2の補正パラメータを算出する前記第2の処理を実行しない、
     請求項7又は8に記載の制御装置。
  11.  前記補正パラメータ算出部は、前記実際の動作軌跡上において前記第1の通過点と前記第2の通過点との間の距離が予め定められた基準距離よりも小さいと判定したとき、前記実際の動作軌跡上において前記第1の通過点と前記第2の通過点との間に位置する通過点を、新たな第1の通過点として前記第1の補正パラメータを算出する前記第1の処理を実行し、前記第2の補正パラメータを算出する前記第2の処理を実行しない、
     請求項7又は8に記載の制御装置。
  12.  前記補正パラメータ算出部は、前記補正パラメータとして、補正された前記動作指令に基づいて前記複数のモータを駆動した場合における前記第1のリンクの前記実際の動作軌跡と前記理想の動作軌跡との差を最も小さくする、j(j=1,2,…,Nであり、Nは正の整数である)個の中間点を算出する、
     請求項1に記載の制御装置。
  13.  前記補正パラメータ算出部は、前記学習用の動作データが前記実際の動作データと異なる場合には、前記学習用の動作データと、前記学習用の動作データに基づいて算出された前記補正パラメータと、前記実際の動作データとに基づいて、前記実際の動作データに対応する新たな補正パラメータを算出する
     請求項1から12のいずれか1項に記載の制御装置。
  14.  前記学習用の動作データは、複数の学習用データを有し、
     前記補正パラメータ算出部は、前記複数の学習用データのそれぞれが前記実際の動作データと異なる場合には、前記複数の学習用データのうち前記実際の動作データとの誤差が最も小さい学習用データに基づいて、前記補正パラメータを算出する前記第1の処理を実行する
     請求項1から12のいずれか1項に記載の制御装置。
  15.  前記学習用の動作データを予め記憶する第1の記憶部を更に有する、
     請求項1から14のいずれか1項に記載の制御装置。
  16.  前記補正パラメータ算出部によって算出された前記補正パラメータを記憶する第2の記憶部を更に有する、
     請求項1から15のいずれか1項に記載の制御装置。
  17.  請求項1から16のいずれか1項に記載の制御装置と、
     前記ロボット装置と、を有する、
     ロボットシステム。
  18.  前記学習用の動作データに基づいて前記複数のモータを駆動させたときの前記第1のリンクの動作を模擬して、前記実際の動作軌跡を予想するシミュレーション装置を更に有し、
     前記補正パラメータ算出部は、前記シミュレーション装置によって予想された前記実際の動作軌跡に基づいて前記補正パラメータを算出する、
     請求項17に記載のロボットシステム。
PCT/JP2020/012190 2019-11-25 2020-03-19 制御装置及びロボットシステム WO2021106237A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021561148A JP7357689B2 (ja) 2019-11-25 2020-03-19 制御装置、ロボットシステム及び制御方法
CN202080080590.7A CN114728411B (zh) 2019-11-25 2020-03-19 控制装置、机器人系统和控制方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019212226 2019-11-25
JP2019-212226 2019-11-25

Publications (1)

Publication Number Publication Date
WO2021106237A1 true WO2021106237A1 (ja) 2021-06-03

Family

ID=76130415

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/012190 WO2021106237A1 (ja) 2019-11-25 2020-03-19 制御装置及びロボットシステム

Country Status (2)

Country Link
JP (1) JP7357689B2 (ja)
WO (1) WO2021106237A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003530230A (ja) * 2000-04-10 2003-10-14 エービービー エービー 産業ロボットの経路補正
JP2016078149A (ja) * 2014-10-15 2016-05-16 キヤノン株式会社 ロボット装置の制御方法及びロボット装置、プログラム及び記録媒体

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109571473B (zh) 2018-12-03 2021-10-12 武汉工程大学 一种误差可控的小线段轨迹光顺方法
CN109664303B (zh) 2019-02-28 2021-10-12 武汉工程大学 一种误差可控的四轴工业机器人b样条过渡式平顺轨迹生成方法
JP2021013983A (ja) * 2019-07-11 2021-02-12 ファナック株式会社 移動機械の移動軌跡のずれを取得する装置、及び方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003530230A (ja) * 2000-04-10 2003-10-14 エービービー エービー 産業ロボットの経路補正
JP2016078149A (ja) * 2014-10-15 2016-05-16 キヤノン株式会社 ロボット装置の制御方法及びロボット装置、プログラム及び記録媒体

Also Published As

Publication number Publication date
JPWO2021106237A1 (ja) 2021-06-03
CN114728411A (zh) 2022-07-08
JP7357689B2 (ja) 2023-10-06

Similar Documents

Publication Publication Date Title
CN110355751B (zh) 控制装置和机器学习装置
JP6659096B2 (ja) ロボット装置の制御方法、およびロボット装置
JP6333795B2 (ja) 学習による教示作業の簡易化及び動作性能向上機能を備えたロボットシステム
JP4137909B2 (ja) ロボットプログラム補正装置
US8560122B2 (en) Teaching and playback method based on control of redundancy resolution for robot and computer-readable medium controlling the same
JP6640060B2 (ja) ロボットシステム
JPH079606B2 (ja) ロボット制御装置
JP6669715B2 (ja) 振動抑制装置
JPH07281722A (ja) 工業用ロボットを制御する方法
CN105710880B (zh) 安全的、具有轨迹前进变量的机器人
JP6217322B2 (ja) ロボット制御装置、ロボット及びロボット制御方法
WO2021106237A1 (ja) 制御装置及びロボットシステム
CN114728411B (zh) 控制装置、机器人系统和控制方法
JP2000055664A (ja) 姿勢を計測する機能を持つ多関節型ロボット・システム、ターン・テーブルを校正基準に用いてジャイロの計測精度を検証する方法及びシステム、及び、n軸で構成されるターン・テーブルのキャリブレーションを行う装置及び方法
WO2021250923A1 (ja) ロボットシステム、制御装置、及び制御方法
JP6540810B2 (ja) ハンド力覚計測装置、ハンド力覚計測方法、及びハンド力覚計測プログラム
JPH08257955A (ja) マニピュレーターの曲面なぞり制御方法
JPH11198072A (ja) ロボットの最短時間速度制御装置
Borges et al. Trajectory tracking for the inspection of deformable objects considering manipulability of a 7-DoF serial manipulator
JP3029286B2 (ja) ロボット及びロボットの制御方法
JP7493926B2 (ja) 制御方法、制御装置、ロボットシステム、物品の製造方法、動作プログラム作成方法、動作プログラム作成装置、表示装置、表示装置の制御方法、プログラムおよび記録媒体
Luh et al. Interactions and motions in human-robot coordination
JP7448651B2 (ja) オフライン教示装置および動作プログラム生成方法
JP7388970B2 (ja) ロボットシステム
US20230103364A1 (en) Device for controlling return of robot to origin thereof, and method of searching return path of robot to origin thereof

Legal Events

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

Ref document number: 20893053

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021561148

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20893053

Country of ref document: EP

Kind code of ref document: A1