CONTROL DEVICE FOR MOTOR DRIVE DEVICE, CONTROL DEVICE FOR MULTI-AXIAL MOTOR, AND CONTROL METHOD FOR MOTOR DRIVE DEVICE
20180297196 ยท 2018-10-18
Inventors
Cpc classification
B25J9/1633
PERFORMING OPERATIONS; TRANSPORTING
Y10S901/09
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
Abstract
Motion control of a robot arm is performed via a reducer connected to a motor. A controller thereof includes a thrust control unit that generates motor position command value based on an input thrust command value, and a motor control unit that generates a current value based on the motor position command value. The motor control unit feeds back a motor position detected by a motor encoder, and the thrust control unit feeds back thrust detected by a thrust meter. The feedback from the motor control unit suppresses vibration phenomena at the reducer, and the feedback from the thrust control unit suppresses transmission error, thereby enabling motion control of the arm with rapidity and precision.
Claims
1. A robot device having an arm driven via a reducer connected to a motor, the robot device comprising: the reducer connected to an output shaft of the motor; a thrust measuring unit configured to obtain thrust occurring at a moving member moved via the reducer; a motor encoder configured to detect a position of an output member that outputs rotation of the motor; and a device encoder configured to detect a position of the moving member moved via the reducer.
2. The robot device according to claim 1, wherein the thrust measuring unit is a thrust meter with a hollow structure, and wherein the thrust meter and the device encoder are integrally provided.
3. The robot device according to claim 2, wherein the reducer is provided independently of the thrust meter and the device encoder.
4. The robot device according to claim 1, wherein the thrust measuring unit is a thrust meter with a hollow structure, wherein the thrust meter is provided between the moving member and the reducer, wherein a shaft of the device encoder is coupled to the thrust meter, and wherein the device encoder is provided on an encoder attachment structure coupled to the motor.
5. The robot device according to claim 1, further comprising: a control unit, wherein the control unit executes a first feedback control according to an output of the motor encoder and executes a second feedback control according to an output of the thrust measuring unit.
6. A motor drive device configured to perform motion control of a moving member via a reducer connected to a motor, the motor drive device comprising: a thrust control unit configured to generate a position command value for the motor based on an input thrust command value; a motor control unit configured to generate a current value to control the motor based on the position command value for the motor; a motor encoder configured to detect a position of an output member that outputs rotation of the motor; a device encoder configured to detect a position of the moving member moved via the reducer; and a thrust measuring unit configured to obtain thrust occurring at the moving member moved via the reducer, wherein the motor control unit executes a first feedback control according to an output of the motor encoder, and wherein the thrust control unit executes a second feedback control according to an output of the thrust measuring unit.
7. The motor drive device according to claim 6, wherein the thrust measuring unit is a thrust meter with a hollow structure, and wherein the thrust meter and the device encoder are integrally provided.
8. A control method of a motor drive device configured to perform motion control of a moving member via a reducer connected to a motor, the method comprising: performing a thrust control procedure to generate a position command value for the motor based on an input thrust command value; performing a motor control procedure to generate a current value to control the motor based on the position command value for the motor; and performing a feedback procedure, wherein a first feedback control is performed in the motor control procedure, according to detection results of a motor position detecting unit configured to detect a position of an output member that outputs rotation of the motor, and a second feedback control is performed in the thrust control procedure, according to detection results of a thrust measuring unit configured to detect thrust occurring at the moving member moved via the reducer.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
DESCRIPTION OF THE EMBODIMENTS
First Embodiment
[0043] A first embodiment of the present invention will be described below with reference to
[0044] The single-axis robot system 1.sub.1 is configured including a single-axis robot arm (motor drive device) 100 that has a single joint, a controller (control device for motor drive device) 101, and a teaching terminal device (teaching pendant) 102. The teaching terminal device 102 is a device for the user to provide the controller 101 with instructions to operate the robot arm 100, and includes various types of switches, levers, a display panel, and so forth, operated by an operator, as illustrated in
[0045] On the other hand, the robot arm 100 is configured including a motor 103, a motor encoder (motor position detecting unit) 104, a reducer (transmission mechanism) 105, and an arm (moving member) 106. The single-axis robot arm 100 further includes a thrust meter (thrust detecting unit) 107 and the device encoder (moving member position detecting unit) 108. Generally, the combination of the motor 103 and the reducer 105 is defined as a joint that performing motion driving of the arm 106.
[0046] The motor 103 is electrically connected to the controller 101, so that the rotational state of an output shaft (output member), omitted from illustration, is controlled by the current value output from the controller 101. The motor encoder 104 detects the rotational position of the output shaft of the motor 103. The reducer 105 is mechanically connected to the output shaft of the motor 103, and reduces the output rotations of the motor 103 for transmission to the arm 106. The thrust meter 107 is configured using a distortion gauge or the like, for example, and detects thrust of the arm 106 transmitted to the arm 106 from distortion (twisting) of a frame (output shaft of the reducer 105) configured using an elastic member. The device encoder 108 detects the rotational position of the arm 106.
[0047] The controller 101 is a so-called server control device (computer), and includes a central processing unit (CPU) 201, ROM 202, RAM 203, a hard disk drive (HDD) 204, an external interface 205, and so forth. Command values from the teaching terminal device 102 (position command value P.sub.Lref and thrust command value F.sub.Lref) can be input from the external interface 205, as illustrated in
[0048] These motor position P.sub.M of the motor 103, thrust F.sub.L of the arm 106, and device position P.sub.L of the arm 106, are used for feedback control by various units which perform arithmetic processing using the CPU 201 of the controller 101, which will be described in detail later with reference to
[0049] The controller 101 has a motor controller 310.sub.1. The motor controller 310.sub.1 according to the first embodiment illustrated in
[0050] The differentiator 308 generates a feed-forward value for feed-forward control of the motor control unit 303, in accordance with the motor position command value P.sub.Mref which the thrust control unit 302 has generated.
[0051] The motor control unit 303 includes a motor position control unit 304, a motor speed control unit 305, and a current control unit 306, and generates the current value I.sub.M that controls the motor 103, based on the motor position command value P.sub.Mref. At this time, the motor control unit 303 executes feedback control according to the motor position P.sub.M and motor speed V.sub.M, which are the detection results of the motor encoder 104 that detects the rotational position of the motor 103 (first feedback control).
[0052] Now, control performed by the controller 101 will be described following the flowchart in
[0053] Inside the motor control unit 303, the motor position control unit 304 preforms feedback of the motor position P.sub.M detected by the motor encoder 104 to the motor position command value P.sub.Mref (feedback process) to generate a motor speed command value V.sub.Mref (S4). The motor speed control unit 305 then feeds back the motor speed V.sub.M obtained by differentiation of the motor position P.sub.M from the motor encoder 104 to the motor speed command value V.sub.Mref (feedback process), while at the same time feeding forward the motor speed FF command value V.sub.MFFref. Thus, the motor speed control unit 305 generates a motor thrust command value F.sub.Mref (S5). The current control unit 306 then feeds forward the motor thrust FF command value F.sub.MFFref to the motor thrust command value F.sub.Mref, and generates the current value I.sub.M to be output to the motor 103 (motor control process, S6).
[0054] The above-described control is executed every control cycle. The shorter the control cycle is, the better the calculation precision is, and vibration can be suppressed, but more calculating resources are needed.
[0055]
[0056]
[0057] Thus, in the control by the controller 101 according to the present embodiment, the thrust control unit 302 performs feedback control of the thrust F.sub.L generated at the arm 106 to the input thrust command value F.sub.Lref. Accordingly, the thrust F.sub.L transmitted to the arm 106 via the reducer 105 can be made to copy after the input thrust command value F.sub.Lref, and the arm 106 can be operated precisely. The thrust F.sub.L generated at the arm 106 also includes transmission error components that change according to temperature variation and over time, so feedback control where transmission error is also effectively suppressed can be executed.
[0058] The motor control unit 303 feeds back the motor position P.sub.M and motor speed V.sub.M to the motor position command value P.sub.Mref which the thrust control unit 302 has generated, at the motor position control unit 304 and motor speed control unit 305. Accordingly, the feedback control of the motor position P.sub.M is less readily affected by disturbance as compared to performing feedback of the motor position P.sub.M to the motor position command value P.sub.Mref as in general semi-closed control. Elastic counteraction of the reducer 105 occurring in the motor 103 includes components of vibration phenomena due to the effects of backlash, friction, natural vibration, and so forth at the reducer 105, but these vibration phenomena can be suppressed with rapidity.
[0059] Enabling operation speed to be increased while suppressing the vibration phenomena and transmission error due to the reducer 105 in this way enables motion control of the arm 106 to be performed with rapidity and precision. Further, effective suppression of the vibration phenomena and transmission error means that the gain of motor correction can be raised, and further operation speed can be raised. Accordingly, and arrangement that has the precision of full-closed control and motion speed equivalent to semi-closed control can be realized.
[0060] Using feed-forward control by way of the differentiator 308 also makes the vibration phenomena difficult to spread, and further responsivity can be improved. Note that this feed-forward control can be omitted, though performance will drop. In this case, the motor speed FF command value V.sub.MFFref and motor thrust command value F.sub.Mref are set to zero.
[0061] Although the present embodiment has been described by way of an example where a single-axis robot arm 100 is controlled, but application is not restricted to this structure. Although the present embodiment has been described with regard to a rotating joint, the transmission mechanism may be a prismatic joint configured as a rack-and-pinion mechanism or the like. Further, the transmission mechanism is not restricted to being a reducer, and may be an amplifying mechanism.
[0062] Also, although the present embodiment has been described with regard to an arrangement where the detection results of the motor encoder 104 are fed back to both the motor position control unit 304 and the motor speed control unit 305, but this is not restrictive, and suppression effects of the vibration phenomena can be yielded to a certain extent by using just one or the other. Further, an arrangement may be made where the detection results of the motor encoder 104 are differentiated to calculate motor acceleration A.sub.M, which is then fed back to the current control unit 306. This arrangement can also achieve suppression effects of the vibration phenomena to a certain extent.
Second Embodiment
[0063] Next, a second embodiment, which is a partial modification of the above-described first embodiment, will be described with reference to
[0064] The first embodiment has been described as detecting thrust F.sub.L transmitted to the arm 106 using the thrust meter 107, and the second embodiment is a modification regarding the detection technique. That is to say, a motor controller 310.sub.2 in the controller 101 according to the present embodiment has a thrust estimation unit (thrust detecting unit) 318. The relational expression
F.sub.L=(P.sub.MP.sub.L)K
holds where K represents a joint rigidity coefficient including the rigidity of the reducer 105. The thrust estimation unit 318 calculates the thrust F.sub.L estimated by providing to this expression the motor position P.sub.M detected at the motor encoder 104 and the device position P.sub.L detected at the device encoder 108.
[0065] Providing the thrust estimation unit 318 to the motor controller 310.sub.2 as in the second embodiment enables the thrust meter 107 to be done away with. Note that the thrust F.sub.L can be calculated by multiplying acceleration, obtained by second order differentiation of the device position P.sub.L detected at the device encoder 108, by the weight of the arm 106. However, in a case of providing more joints to the leading edge side of the arm 106 to configure an articulated robot, for example, it becomes difficult to distinguish whether this is acceleration due to driving this joint or acceleration due to driving another joint, so this technique is not usable.
Third Embodiment
[0066] Next, a third embodiment, which is a partial modification of the above-described first embodiment, will be described with reference to
[0067] The third embodiment has a motor controller 310.sub.3 provided with a motor controller ideal model computing unit (motor FF control unit) 309. The motor controller ideal model computing unit 309 has an ideal model where the motor controller has been modeled, instead of the differentiator 308 in the first embodiment. The ideal model of the motor controller is made up of a motor inertia virtual model where the inertia of the motor 103 has been modeled, and a circuit virtual model where a feeder circuit that controls power feed to the motor 103 has been modeled. The motor controller ideal model computing unit 309 assumes that a predetermined control gain has been set to the circuit virtual model, and in a case where a motor position command value P.sub.Mref is input, executes model computation regarding the motor 103. Accordingly, the motor controller ideal model computing unit 309 has functions to calculate a motor position FF command value P.sub.MFFref, the motor speed FF command value V.sub.MFFref, and the motor thrust FF command value F.sub.MFFref. The motor position FF command value P.sub.MFFref, motor speed FF command value V.sub.MFFref, and motor thrust FF command value F.sub.MFFref are calculated as follows.
V.sub.MMref=PID(P.sub.MrefP.sub.MFFref)
V.sub.MMref: model motor speed command
F.sub.MFFref=PID(V.sub.MMrefV.sub.MFFref)
ACC.sub.MFFref=F.sub.MFFref/M.sub.M
M.sub.M: motor inertia or mass
V.sub.MFFref=ACC.sub.MFFrefdt
P.sub.MFFref=V.sub.MFFrefdt
[0068] In the control of the controller 101 configured in this way, changes are made to the control illustrated in
[0069] The above-described control is executed every control cycle. The shorter the control cycle is, the better the calculation precision is, and vibration can be suppressed, but more calculating resources are needed.
[0070] Although omitted from illustration in
Dist=ACC.sub.MM.sub.MI.sub.MK.sub.F
K.sub.F: thrust constant
[0071] Thus, the motor controller ideal model computing unit 309 can compute the motor position FF command value P.sub.MFFref, motor speed FF command value V.sub.MFFref, and motor thrust FF command value F.sub.MFFref, from the motor control ideal model, whereby the vibration phenomena can be suppressed.
Fourth Embodiment
[0072] Next, a fourth embodiment, which is a partial modification of the above-described third embodiment, will be described with reference to
[0073] The fourth embodiment is the configuration of the third embodiment in which the controller 101 has been provided with a dynamics model computing unit (dynamics model control unit) 320 and a thrust transmission unit physical property unit 316. The controller 101 further is provided with a device controller (drive device control unit) 301 having a device position control unit (moving member position control unit) 313 and device speed control unit (moving member speed control unit) 314. The dynamics model computing unit 320 has a dynamics model where the robot arm 100 has been modeled according to dynamics. The dynamics model is a model including arm length, arm weight, and product of inertia (link parameter of robot arm 100). The dynamics model computing unit 320 calculates the position command value P.sub.Lref input from the teaching terminal device 102, and speed command value and acceleration command value obtained by differentiation thereof. The dynamics model computing unit 320 further functions to calculate, based on these values, an expected thrust (prediction value of dynamic thrust) F.sub.LEref necessary to performing motion control of the arm 106 according to the dynamics model. The expected thrust F.sub.LEref is calculated taking into consideration weight, viscosity, friction, and so forth, as well. Also, the thrust transmission unit physical property unit (twist amount control unit) 316 calculates beforehand a prediction amount of twist amount that realizes the expected thrust F.sub.LEref (hereinafter referred to as twist amount) P.sub.Tref. The twist amount P.sub.Tref can be calculated from the following expression, which is given as one example.
P.sub.Tref=F.sub.Tref/K
K: joint rigidity coefficient
[0074] The device controller 301 has the device position control unit 313 and device speed control unit 314, and calculates the thrust command value F.sub.Lref to be input to the thrust control unit 302 based on the position command value P.sub.Lref input from the teaching terminal device 102. At this time, the device controller 301 executes feedback control according to the device position (arm position) P.sub.L which is the detection results of the device encoder 108 that detects the rotational position of the arm 106 and device speed (arm speed) V.sub.L (third feedback control).
[0075] In the control of the controller 101 configured in this way, changes are made to the control illustrated in
[0076] On the other hand, the device position control unit 313 feeds back the device position P.sub.L detected by the device encoder 108 to the position command value P.sub.Lref, and generates a device speed command value V.sub.Lref (S14). The device speed control unit 314 feeds back to the device speed command value V.sub.Lref the device speed V.sub.L obtained by differentiation of the device position P.sub.L detected by the device encoder 108, and generates the thrust command value F.sub.Lref (S15). The thrust control unit 302 feeds forward the expected thrust F.sub.LEref to the thrust command value F.sub.Lref while at the same time feeding back of the thrust F.sub.L detected by the thrust meter 107, and thus generates the motor position command value P.sub.Mref (S16).
[0077] The motor controller ideal model computing unit 309 first adds the motor position command value P.sub.Mref and the twist amount P.sub.Tref. Next, based on the added value thereof, the motor controller ideal model computing unit 309 generates the motor position FF command value P.sub.MFFref, motor speed FF command value V.sub.MFFref, and motor thrust FF command value F.sub.MFFref, from the motor control ideal model (S3-3). Thereafter, steps S4-2, S5, and S6 are executed in the same way as in the third embodiment, thereby generating the current value I.sub.M to be output to the motor 103.
[0078] The above-described control is executed every control cycle. The shorter the control cycle is, the better the calculation precision is, and vibration can be suppressed, but more calculating resources are needed.
[0079] The dynamics model computing unit 320 has been added to the fourth embodiment, so when the position command value P.sub.Lref is input, the expected thrust F.sub.LEref can be calculated. The thrust command value F.sub.Lref is generated based on the expected thrust F.sub.LEref, and the current value I.sub.M is generated based thereupon, so the position of the arm 106 is controlled so as to match the dynamics model of the robot arm 100, meaning that control is performed in detail and speedily.
[0080] Also, the thrust transmission unit physical property unit 316 has been added, so the twist amount P.sub.Tref that realizes the expected thrust F.sub.LEref can be calculated beforehand. This twist amount P.sub.Tref is input to the motor control unit 303 and reflected in the current value I.sub.M, so the responsivity of thrust F.sub.L of the arm 106 corresponding to the expected thrust F.sub.LEref also improves. Accordingly, the responsivity of the device position P.sub.L as to the position command value P.sub.Lref also improves.
[0081] Further, the device controller 301 has been added, so the device position P.sub.L and device speed V.sub.L can be fed back. Accordingly, even in a case where the device position P.sub.L deviates from the position command value P.sub.Lref due to modeling error, calculation error, or the like in the expected thrust F.sub.LEref, feedback control can be performed so that the device position P.sub.L copies the position command value P.sub.Lref, so the amount of misalignment can be reduced.
[0082] Description has been made regarding the present embodiment that all three of the dynamics model computing unit 320, thrust transmission unit physical property unit 316, and device controller 301, have been provided. However, the dynamics model computing unit 320, thrust transmission unit physical property unit 316, and device controller 301 each are independent functions, so an arrangement may be made having only one or two of these, in which case the respective effects can be obtained.
Fifth Embodiment
[0083] Next, a fifth embodiment, which is a partial modification of the above-described fourth embodiment, will be described with reference to
[0084] The fifth embodiment is the configuration of the fourth embodiment in which the controller 101 has been provided with a device controller ideal model computer unit (drive device FF control unit) 307, and a device observer unit (monitoring control unit) 317. The device controller ideal model computer unit 307 has a device controller ideal model to enable ideal behavior of the arm 106. The device controller ideal model is made up of a virtual model of the entire robot arm 100, and a virtual model of a control circuit that controls the position and speed of the arm 106. The device controller ideal model computer unit 307 assumes that a predetermined control gain has been set to the virtual model of the control circuit within the device controller ideal model, and in a case where the position command value P.sub.Lref has been input from the teaching terminal device 102, executes model computation regarding the arm 106. Thus, the device controller ideal model computer unit 307 has the functions of calculating a device position FF command value P.sub.LFFref, device speed FF command value V.sub.LFFref, and device thrust FF command value F.sub.LFFref. The device position FF command value P.sub.LFFref, device speed FF command value V.sub.LFFref, and device thrust FF command value F.sub.LFFref are calculated as follows.
V.sub.LFFref=PID(P.sub.LrefP.sub.LFFref)
F.sub.LFFref=PID(V.sub.LFFrefV.sub.LFFref)
ACC.sub.LFFref=F.sub.LFFref/M.sub.L
M.sub.L: motor inertia or mass
V.sub.LFFref=ACC.sub.LFFrefdt
P.sub.LFFref=V.sub.LFFrefdt
V.sub.MLref=PID(P.sub.LrefP.sub.LFFref)
V.sub.MLref: Model device speed command
[0085] The device observer unit 317 estimates the disturbance Dist acting on the output shaft of the motor 103, multiplies by a coefficient to generate disturbance thrust Fd, and feeds back to the motor thrust command value F.sub.Mref (fourth feedback control). The disturbance Dist is calculated by dividing, by mass or second moment of inertia, the difference of device acceleration A.sub.L obtained by differentiation of device speed V.sub.L and expected device speed obtained by multiplying thrust F.sub.L by mass or second moment of inertia.
[0086] In the control of the controller 101 configured in this way, changes are made to the control illustrated in
[0087] On the other hand, the device controller ideal model computer unit 307 generates the device position FF command value P.sub.LFFref, device speed FF command value V.sub.LFFref, and device thrust FF command value F.sub.LFFref, from the device controller ideal model based on the position command value P.sub.Lref (S21). The device position control unit 313 feeds back the device position P.sub.L detected by the device encoder 108 to the device position FF command value P.sub.LFFref, and generates the device speed command value V.sub.Lref (S14-2). The device speed control unit 314 feeds forward the device speed FF command value V.sub.LFFref to the device speed command value V.sub.Lref while also feeding back the device speed V.sub.L obtained by differentiation of the device position P.sub.L from the device encoder 108, and generates the thrust command value F.sub.Lref (S15-2). The device observer unit 317 generates the disturbance thrust Fd from the device speed V.sub.L obtained from the device position P.sub.L output from the device encoder 108 and the thrust F.sub.L detected by the thrust meter 107 (S22). The thrust control unit 302 feeds forward the device thrust FF command value F.sub.LFFref to the thrust command value F.sub.Lref while feeding back thrust F.sub.L and further feeding back disturbance thrust Fd, and generates the motor position command value P.sub.Mref (S16-2).
[0088] The motor controller ideal model computing unit 309 first adds the motor position command value P.sub.Mref, twist amount P.sub.Tref, and device position FF command value P.sub.LFFref. The motor controller ideal model computing unit 309 then generates the motor speed FF command value V.sub.MFFref, motor thrust FF command value F.sub.MFFref, and motor position FF command value P.sub.MFFref, from the motor control ideal model, based on the added value (S3-4). Thereafter, steps S4-2, S5, and S6 are executed in the same way as in the fourth embodiment, thereby generating the current value I.sub.M for output to the motor 103.
[0089] The above-described control is executed every control cycle. The shorter the control cycle is, the better the calculation precision is, and vibration can be suppressed, but more calculating resources are needed.
[0090] The device controller ideal model computer unit 307 has been added in the fifth embodiment described above. Accordingly, the device speed FF command value V.sub.LFFref and device thrust FF command value F.sub.LFFref that realize the device position FF command value P.sub.LFFref are fed forward, improving the responsivity of the device position FF command value P.sub.LFFref. That is to say, responsivity is improved by adding the device controller ideal model computer unit 307. However, there is an issue that performing feed-forward where the position command value P.sub.Lref is added to the motor position command value P.sub.Mref causes mismatch between the target value of the device controller 301 and the value fed forward to the motor position command value P.sub.Mref and precision deteriorates. In order to deal with this issue, adding the device position FF command value P.sub.LFFref to the motor position command value P.sub.Mref causes the target value of the device controller 301 and the value fed forward to the motor position command value P.sub.Mref to match, and thus deterioration in precision can be prevented.
[0091] Also, the device observer unit 317 has been added. As a result, deterioration in positional precision due to interference torque between the motor 103 and arm 106 and calculation error thereof, and variation in friction, can be prevented, thereby improving the precision of the device position P.sub.L.
[0092]
[0093]
[0094] The single-axis robot system 1.sub.1 according to the present embodiment is controlled so as to operate the arm 106 over a path defined by multiple teaching point strings provided beforehand. The path can be followed from the start point to the end point of one action with rapidity and precision, without any vibrations being generated in the robot due to thrust interference between the output shaft of the motor 103 and the arm 106, i.e., at the reducer 105.
Sixth Embodiment
[0095] Next, a sixth embodiment, which is a partial modification of the above-described fifth embodiment, will be described with reference to
[0096] A biaxial robot system 1.sub.2 illustrated in
[0097] The controller 101 illustrated in
[0098] The biaxial robot system 1.sub.2 having this biaxial robot arm 100 is also controlled so as to operate over a path defined by multiple teaching point strings provided beforehand. Regardless of the number of axes controlled, the path during movement can be followed from the start point to the end point of one action with rapidity and precision, without any vibrations being generated in the robot due to thrust interference between the axes.
[0099] Although the sixth embodiment is described as a biaxial robot arm 100, it may be an N-axial articulated robot arm having three or more axes. The dynamics model computing unit 320 is capable of calculating interference thrust between the output shafts of the motors and reducers in a general case where there are multiple axes. Accordingly, multiple axes can be controlled by changing the following three points. A first point is that the position command value P.sub.Lref input to the dynamics model computing unit 320 is changed to position command values P.sub.Lref1 through P.sub.LrefN respectively corresponding to the multiple axes (N axes). A second point is that the expected thrust F.sub.LEref output from the dynamics model computing unit 320 is changed to expected thrusts F.sub.LEref1 through F.sub.LErefN respectively corresponding to the multiple axes (N axes). A third point is that N each of the device controller 301 and motor controller 310 are provided according the N joints, and the position command value P.sub.LrefN and expected thrust F.sub.LErefN of the n'th joint handling control thereof are input. The device controller 301 and motor controller 310 used are the same as those in the fourth and fifth embodiments. In this case, the controllers controlling the articulated robot arm are included in the control device of the robot device. That is to say, the control device of the robot device can be conceived as being configured including multiple controllers that control the joints, and a higher order computer that outputs position command values to these controllers.
[0100] A biaxial robot system having this articulated robot arm is also controlled so as to operate over a path defined by multiple teaching point strings provided beforehand. Regardless of the number of axes controlled, the path during movement can be followed from the start point to the end point of one action with rapidity and precision, without any vibrations being generated in the robot due to thrust interference between the axes.
[0101] In a case of controlling multiple axes with the dynamics model computing unit 320 taking into consideration thrust interference among the axes, precision improves by subtracting the calculated value of interference thrust from the calculated value of disturbance, in a robot system having an articulated robot arm, as well. Adding the calculated interference thrust to the thrust command value F.sub.Lref (feed-forward) further improves the responsivity of the device position FF command value P.sub.LFFref.
[0102] While an arrangement has been described in the first through sixth embodiments where the teaching terminal device 102 is used to apply thrust command values and position command values to the controller 101, this is not restrictive. For example, thrust command values and position command values may be applied to the controller 101 from a separate computer or the like managing the controller 101. In this case, the functions of the units which the controller 101 has may be held by another computer. That is to say, which software functions are installed in which hardware configurations between a servo control device and another computer connected thereto, is a matter of freedom of design.
[0103] The present invention also may be realized by supplying a program realizing one or more functions of the above-described embodiments to a system or device via a network or storage medium, with one or more processors in a computer of the system or device reading out and executing the program. The present invention may also be realized by a circuit that realizes one or more functions (e.g., an application specific integrated circuit (ASIC)).
Seventh Embodiment
[0104] A specific example of the configuration of a joint will be described with reference to
[0105] A high-speed rotational shaft passes through the main body of the reducer 105, and is coupled to a shaft, which is the output shaft of the motor 103, by a coupler 109. The main body of the reducer 105 is coupled to the main body of the motor 103, and is rotated by rotation of the motor shaft.
[0106] A driving flange of the reducer 105 is coupled to the arm 106 across the thrust meter 107 which is hollow in structure. The reducer 105 is configured so that the driving flange rotates at a number of rotations reduced from the rotations of the main unit of the reducer 105 rotated by the motor 103. A shaft of the device encoder 108 is coupled to the high-speed rotational shaft of the reducer 105 via a coupler 119. The main body of the device encoder 108 is coupled to the arm 106 or the driving flange of the reducer 105. According to this configuration, the position of the arm 106 or the driving flange of the reducer 105, as to rotations of the high-speed rotational shaft of the reducer 105 (i.e., motor rotations), can be detected.
[0107]
[0108]
[0109] The device encoder 108 measures the position of the arm 106 or the driving flange of the reducer 105, with the rotations of the high-speed rotational shaft of the reducer 105 (i.e., motor rotations) as a reference. Accordingly, correction has to be made according to the position of the high-speed rotational shaft (motor encoder 104) to make measurement with the rotations of the motor as a reference. In a case where the direction of detection by both encoders is the same, such as the clockwise direction being positive for both, the position of the arm 106 is corrected by subtracting the detected value of the motor encoder 104 from the detected value of the device encoder 108.
[0110] Although description has been made that the main unit of the device encoder 108 is coupled to the arm 106 or the driving flange of the reducer 105, an arrangement may be made where the device encoder 108 is coupled to the thrust meter 107.
Eighth Embodiment
[0111] An example of the configuration of a joint will be described with reference to
[0112] The reducer 105 has its high-speed rotational shaft coupled to the shaft of the motor 103 by the coupler 109. The main unit of the reducer 105 is coupled to the main unit of the motor 103. The driving flange of the reducer 105 is coupled to the arm 106 across the thrust meter 107. The shaft of the device encoder 108 is coupled to the driving flange of the reducer 105 or the thrust meter 107 or the arm 106, via the coupler 119. The main body of the device encoder 108 is coupled to the main unit of the reducer 105 or an encoder attachment structure 120 coupled to the motor. This configuration enables the thrust and position to be measured at the same position, without using the aforementioned correction.
Other Embodiments
[0113] Embodiment(s) of the present invention can also be realized by a computer of a system or device that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a non-transitory computer-readable storage medium) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or device by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD), a flash memory device, a memory card, and the like.
[0114] While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.