This application is based upon and claims the benefit of priority from the prior Japanese Patent Application No. 2011-206651, filed on Sep. 21, 2011, the entire contents of which are incorporated herein by reference.
Embodiments generally relate to a robot control apparatus, a disturbance determination method, and an actuator control method.
A collision with an obstacle in the surrounding environments may occur when a robot arm which handle things or the like is operated. In order to stably operate the robot arm even after the collision, it is necessary to detect a collision of the robot arm.
In this regard, a technique has been proposed which estimates an external torque generated by the effect of disturbance caused by a collision of the robot arm and the like and thus determines that the leading end of the robot collides on the basis of the external torque being equal to or greater than a predetermined threshold without using force sensors.
However, due to the effect of a modeling error in the dynamic model of the robot arm, an error is included in the external torque. Therefore, it is difficult to detect the disturbance exerted on the robot arm with high precision.
There are provided a robot control apparatus, a disturbance determination method, and a robot control method capable of detecting a disturbance exerted on a robot arm with high precision.
According to an embodiment, there is provided that a robot control apparatus including an actuator for rotatably driving a driving shaft of an arm; a generator unit configured to generate target positional data of an end of the arm; a first detection unit to detect a rotation angle of the driving shaft at each sampling period; a first computation unit configured to compute current positional data of the end of the arm using the rotation angle; a second computation unit configured to compute an input value relating to the actuator, by using the target positional data and the current positional data; a third computation unit configured to compute an estimation value of a driving torque for driving the actuator using a rotation angle of the driving shaft; a fourth computation unit configured to compute a difference between the estimation value of the driving torque and a true value of the driving torque relating to the input value; and a second detection unit to detect a disturbance applied to the arm, wherein the second detection unit includes an update unit configured to estimate a set of parameter of a time-series model by setting the difference as a variable and updating the time-series model of the first sampling period by applying the set of the parameter, and a determination unit configured to determine whether or not a disturbance occurs in the arm, by comparing the time-series model of the first sampling period with a time-series model of a second sampling period preceding the first sampling period.
According to another embodiment, there is provided that a disturbance determination method in an operational processing unit, including: computing an external force estimated to be applied to a target object by a computation unit; estimating a set of parameter of a time-series model by setting the external force as a variable and updating the time-series model at a first sampling period by applying the parameter by an update unit; and determining whether or not the external force is applied to the target object by comparing the time-series model of the first sampling period and a time-series model of a second sampling period preceding the first sampling period by a determination unit.
According to further embodiment, there is provided that a method of controlling an actuator for rotatably driving a driving shaft of an arm, including: generating target positional data of an end of the arm, by a generator unit; detecting a rotation angle of the driving shaft for every sampling period, by a first detection unit; computing current positional data of the end of the arm using the rotation angle, by a first computation unit; computing an input value for the actuator using the target positional data and the current positional data, by a second computation unit; computing an estimation value of a driving torque for driving the actuator using a rotation angle of the driving shaft, by a third computation unit; computing a difference between an estimation value of the driving torque and a true value of the driving torque relating to the input value, by a fourth computation unit; and estimating a set of parameter of a time-series model by setting the difference as a variable and updating the time-series model of the first sampling period by applying the set of the parameter, by an update unit; and determining whether or not a disturbance occurs in the arm by comparing the time-series model of the first sampling period with a time-series model of a second sampling period preceding the first sampling period by a determination unit.
Hereinafter, embodiments of the invention will be described with reference to the accompanying drawings.
A robot as an exemplary control target of the present embodiment has a mainframe 300 and an arm 310 installed in the mainframe 300 as illustrated in
The arm 310 illustrated in
The link 311a is rotatably connected to the mainframe 300 through a driving shaft 312a. In addition, the links 311b and 311c are rotatably connected to the links 311a and 311b, respectively, through the driving shafts 312b and 312c, respectively.
As schematically illustrated in
Referring to
The robot control apparatus detects a collision caused by a disturbance with high precision when the disturbance is applied to the arm 310, for example, when the arm 310 collides with an obstacle and the like as illustrated in
The robot control apparatus according to the first embodiment of the invention has a central processing unit (CPU) 100 and a storage device (memory) 200 as illustrated in
The CPU 100 of
The position control unit 110 controls the motor angle θM such that a difference between the target value XR (hereinafter, referred to as an arm tip position target value) of a 3-dimensional position of the arm leading end (hereinafter, referred to as an arm tip position) generated by the positional target value generating unit 111 described below and the arm leading position X obtained based on the detection value of the motor angle θM of the angle detector 315 becomes zero. The link angle θL is controlled through the reducer 314 by controlling the motor angle θM. As a result, the position control unit 110 performs position control for allowing the arm tip position X to follow the arm tip position target value XR by controlling the link angle θL.
The torque computation unit 120 obtains the link angle θL from the position control unit 110 and computes the estimation value (hereinafter, referred to as a torque estimation value) of the torque of the driving shaft 312 in each link 311 based on a dynamic model of the arm 310. In addition, the torque estimation value is an estimation value of the driving torque anticipated to be necessary to drive each motor 313.
The collision detection unit 130 obtains the torque estimation value from the torque computation unit 120 and the link angle θL from the position control unit 110 and computes an external torque generated in each link 311 by the disturbance applied to the arm 310. In addition, the collision detection unit 130 detects a collision in the entire arm 310 using this external torque.
Hereinafter, each module will be described in detail with reference to
(Position Control Unit)
As illustrated in
Here, each variable (such as the motor angle θM, the link angle θL, and the arm tip position x) has the relation as follows.
Here, n denotes the number of the driving shafts 312 (set to 3 in the present embodiment) of the arm 311. In addition, Λ denotes a nonlinear function based on the direct kinematics which performs coordinate change for computing the arm tip position x from the link angle θL.
The position target generating unit 111 obtains a history of the arm tip position target value from the start of the handling operation to the termination, for example, stored in the memory 200 in advance, and generates a value of the current time as an arm tip position target value XR.
The input value computation unit 114 obtains the arm tip position x from the position control unit 113 described below and the arm tip position target value XR from the position target generating unit 111 and computes the input value u for controlling the motor angle θM such that a difference between the arm tip position target value XR and each arm tip position x becomes zero.
Hereinafter, a processing of the input value computation unit 119 will be described in detail with reference to
The input value computation unit 114 computes a minor change Δx of the arm tip position using the arm tip position target value XR and the arm tip position x as follows.
Δx=xR−x [Equation 2]
Here, the n×n Jacobian matrix J (θL) obtained by partially differentiating Λ (θL) which indicates a relation between a minor change Δx of the arm tip position and a minor change ΔθL of the link angle is defined as follows.
Δx=J(θL)ΔθL [Equation 3]
In this case, a relation between the minor change Δx of the arm tip position and the minor change ΔθL of the link angle is established by using the inverse Jacobian matrix which is an inverse matrix of the Jacobian matrix as follows.
ΔθL=J(θL)−1Δx [Equation 4]
That is, since the minor change value of the target link angle can be computed using the aforementioned equation, the link angle target value θLR is obtained by integrating the minor change amount as follows.
θLR=∫ΔθLdt [Equation 5]
In this regard, the input value computation unit 114 computes the inverse Jacobian matrix using the link angle θL computed by the angle computation unit 112 described below. In addition, the minor change θL of the link angle is computed using the minor change Δx of the arm tip position and the inverse Jacobian matrix as follows.
ΔθL=J(θL)−1(xR−x) [Equation 6]
In addition, the link angle target value θLR is computed by integrating the minor change ΔθL of the link angle described above based on Equation 5.
In addition, the input value computation unit 114 computes the motor angle target value θMR by dividing the link angle target value θLR by the reduction ratio NG. In addition, the input value (current value) u for driving each motor 313 is computed by applying a velocity/position control law known in the art and using the motor angle target value θMR as an input.
The input value computation unit 114 drives the motor 313 and controls the motor angle θM by setting the input value u described above in the motor 313. In this case, the angle detector 315 detects the motor angle θM caused by the driving.
The angle computation unit 112 computes the link angle θL using the motor angle θM detected by the angle detector 315 as follows.
θL=NGθM [Equation 7]
The position control unit 113 obtains a nonlinear function Λ stored in the memory 200 and computes the arm tip position x at the current time using the link angle θL computed by the angle computation unit 112 as follows.
x=Λ(θL) [Equation 8]
As described above, the arm tip position x computed by the position control unit 113 is input to the input value computation unit 114 as a feedback signal.
As indicated in Equation 8, since the link angle θL is necessary to compute the arm tip position x, the angle detector 315 may directly detect the link angle θL. In addition, a configuration without using the reducer 314 may be envisaged. Similarly, in this case, since the motor angle θM and the link angle θL are equal to each other, it is apparent that the angle computation unit 112 is not necessary.
(Torque Computation Unit)
As illustrated in
Here, generally, a dynamic model of the robot arm is given by the motion equation as follows.
M(θL){umlaut over (θ)}L+c({dot over (θ)}L,θL)+f({dot over (θ)}L)+g(θL)=τ [Equation 9]
where,
Therefore, if a link angular velocity is obtained by differentiating a detection value of the link angle θL one time, and the angular acceleration is obtained by differentiating the detection value two times, the estimation value of the torque caused by the gravity, the inertial force, the frictional force, the centrifugal force/Coriolis force, and the like can be computed using a physical parameter such as center positions of each link, an inertial moment, and a frictional coefficient.
In addition, the link angular velocity can be computed (as a first derivative) by differentiating two values of the link angle θL obtained as time-series data at different sampling periods and the like. In addition, the link angular acceleration can be computed (as a second derivative) by differentiating values of two link angular velocities obtained at different sampling periods.
The inertial torque computation unit 121, the frictional torque computation unit 122, the gravity torque computation unit 123, and the centrifugal/coriolis torque computation unit 124 compute the inertial torque, the frictional torque, the gravity torque, the centrifugal/coriolis torque, respectively, using physical parameters stored in the memory 200 in advance and the link angle computed by the angle computation unit 112.
The adding unit 125 computes the torque estimation value of each driving shaft 320 as follows (hereinafter, the estimation value is indicated by adding a hat to the variable)
{circumflex over (τ)}={circumflex over (M)}(θL){umlaut over (θ)}L+ĉ({dot over (θ)}L,θL){circumflex over (f)}({dot over (θ)}L)+{circumflex over (g)}(θL) [Equation 10]
Although consideration is made for the inertial torque, the frictional torque, the gravity torque, and the centrifugal/coriolis torque in the present embodiment, the torque caused by the centrifugal force/Coriolis force is sufficiently smaller (about 1/10) than other torques, and thus, the torque caused by the centrifugal force/Coriolis force may not be considered. In this case, the adding unit 125 computes the torque estimation value of each driving shaft 320 by summing the inertial torque, the frictional torque, and the gravity torque.
(Collision Detection Unit)
As illustrated in
Here, the external torque τd is given by differentiating the torque estimation value and a true value of the driving torque as follows.
{circumflex over (τ)}d={circumflex over (τ)}−τ [Equation 11]
In addition, the true value of the driving torque in the aforementioned equation is obtained by multiplying the input value u in the motor 313 by a torque constant Kt obtained from an index value of the motor 313 and stored in the memory 200 in advance.
The external torque will become zero in an ideal state without an modeling error, and disturbance. Therefore, if the external torque is not zero, it can be estimated that a disturbance is applied to the arm 310. Therefore, this external torque can be used to detect a collision.
However, the dynamic model of Equation 9 contains a modeling error caused by a physical parameter such as an inertial moment or a frictional coefficient. In addition, since there is also an effect of the elastic force torque caused by a mechanical resonance which is not considered in the dynamic model of Equation 9 and the like, although the collision can be detected during the low-velocity operation, it may be difficult to distinguish between the torque variation necessary in the acceleration/deceleration and the torque variation caused by a collision during the high-velocity operation.
In this regard, according to the present embodiment, in order to absorb such a modeling error, an automatic regressive (AR) model indicated as the following equation is applied by assuming that the external torque of Equation 11 is a first-dimensional time-series signal y(k) (where, k=0, 1, 2, . . . ) in each driving shaft 312.
y(k)=−a1y(k−1)− . . . an
In the AR model of the aforementioned equation, the time-series signal y(k) is indicated by a linear combination of the time-series signals corresponding to past na steps. Here, a1 to ana denote AR parameters, and e(k) denotes a residual.
In addition, the AR model of Equation 12 can be defined as:
α=└a1, . . . , an
φ(k)=[−y(k−1), . . . , −y(k−na)]τ
y(k)=ατφ(k)+e(k) [Equation 13]
where, the AR parameter α denotes a coefficient for characterizing the AR model. The AR model can be computed by appropriately estimating the AR parameter to minimize the residual e(k).
The estimation value of the AR parameter α can be computed while it is updated in real-time if an iterative least square technique is employed along with a forgetting factors λ (typically, selected from a range between 0.97 and 0.995) as follows.
where, ε(k) denotes a prediction error, kα denotes a gain, and P(k) denotes a covariance matrix.
The external torque computation unit 131 computes the external torque using the torque estimation value computed by the torque computation unit 120 and a driving torque obtained by multiplying the input value u computed by the input value computation unit 114 by a torque constant Kt as follows. This external torque may be considered as an external force estimated to be applied from an outer side to the arm 310.
{circumflex over (τ)}d={circumflex over (τ)}−Ktu [Equation 15]
The model update unit 132 applies the external torque computed by the external torque computation unit 131 as a variable to the AR model indicated by Equation 12. In addition, the AR model is updated by successively estimating the estimation values for all of the AR parameters using the iterative least square technique as indicated in Equation 14.
As will be described in detail below, the collision determination unit 133 determines whether or not there is a collision of the arm 310 based on the AR model successively updated by the model update unit 132.
Hereinafter, the operation of the collision determination unit 133 will be described with reference to
As a first method for determining the collision using the collision determination unit 133, a method of using a time change of the successively estimated AR parameter will be described.
Here, a fifth-order AR model is used, and five AR parameters are shown in this example. The legends a(1) to a(5) in the drawing are related to a1 to a5. In
On the contrary, since the external torque illustrated in
The collision determination unit 133 computes the change amount of the lowest-order AR parameter a1 illustrated in
In addition, in a case where an absolute value of the change amount of the lowest-order AR parameter exceeds a predefined threshold (for example, 0.1) stored in the memory 200 in several driving shafts 312, it is determined that a collision occurs in the arm 310.
In addition, according to the iterative least square technique, it is possible to adjust the change amount of the AR parameter by adjusting the forgetting factor λ. The forgetting factor may be set to a greater value such as 0.99 when the operational acceleration of the robot is small, and may be set to a smaller value such as 0.98 when the acceleration is large so that it is possible to increase collision determination accuracy by variably setting the forgetting factor.
In addition, instead of the lowest-order AR parameter of the present embodiment, other AR parameters may be used to determine a collision.
As a second method of determining a collision using the collision determination unit 132, a method of using a temporal change of the prediction error based on multistage prediction will be described.
In the AR model of Equation 12, if a number of iterations k are performed by successively estimating the AR parameter, a sampling time delay generated in the digital processing is obtained, and thus, multistage prediction can be performed.
First, a one-stage prediction value is defined as follow:
ŷ(k)=ατφ(k) [Equation 16]
In addition, two-stage and three-stage prediction values are defined as follows:
ŷ(k+1)=−a1ŷ(k)−a2y(k−1)− . . . −an
ŷ(k+2)=−a1ŷ(k+1)−a2ŷ(k)− . . . −an
Therefore, the one-stage prediction error is given as follows:
e1(k)={circumflex over (y)}(k)−ατφ(k) [Equation 18]
In addition, the two-stage and three-stage prediction errors are given as follows:
e2(k)={circumflex over (y)}(k+1)+a1ŷ(k)+a2y(k−1)+ . . . +an
e3(k)={circumflex over (y)}(k+2)+a1ŷ(k+1)+a2ŷ(k)+ . . . +an
In
Comparing
The collision determination unit 133 computes the error e2(k) as indicated in Equation 19. In addition, a change amount of the error e2(k) is computed based on a difference between the error in the current sampling period k and the error in the previous sampling period (k−1).
In addition, in a case where an absolute value of the change amount of the aforementioned error exceeds a predefined threshold, it is determined that a collision occurs in the arm 310.
As a third method for detecting a collision using the collision determination unit 133, a method of using a temporal change of the frequency response that can be computed from the AR model will be described.
If Z-transform is made for the AR model of Equation 12 as follows,
(1+a1z−1+ . . . +an
A(z−1)y(k)=e(k)
where,
A(z−1)=1+a1z−1+ . . . +an
the frequency response of the transfer function H(z−1)=1/A (z−1) of the AR model can be obtained by incorporating the following equation into Equation 20.
z−1=ejω [Equation 21]
In Equations 20 and 21, z denotes a Z-transform operator, ω denotes a frequency, and j denotes an imaginary part.
In
In this regard, if a frequency range where a significant change occurs in the event of a collision is investigated in advance, and a window processing is performed, for example, by integrating a gain difference in the frequency range between the one-dotted chain lines A and B of
The collision determination unit 132 computes a frequency response at each sampling period. In addition, a difference between a gain in the current sampling period k and a gain in the previous sampling period (k−1) is computed for every frequency within a predefined window range, and an integral value corresponding to the area C of
If the absolute value of the integral value exceeds the predefined threshold, it is determined that a collision occurs in the arm 310.
In addition, according to the present example, the frequency response is computed using all of five AR parameters. Therefore, the computation amount increases compared to the method of detecting a collision based on the temporal change of individual AR parameters as in Embodiment 1. However, it is possible to detect a collision more robustly.
Hereinbefore, three methods of determining a collision have been described through Embodiments 1 to 3. These three methods may be individually applied or simultaneously applied. If three methods are simultaneously applied, and a majority decision is made, it is possible to more accurately determine a collision from each link 311.
In addition, the position target generating unit 111 of the position control unit 110 newly generates an arm tip position target value when the collision determination unit 132 determines the collision of the arm 310.
Specifically, when a collision is detected, an arm tip position target value for abruptly stopping the arm 310 is newly generated. In addition, in a case where a new operational instruction is necessary after the collision, for example, in a case where an inverted operation is necessary, the arm tip position target value may be generated to operate the arm 310 in a direction opposite to the collision direction.
Although the AR model is used as a time-series model according to the present embodiment, the invention is not limited to the AR model. Any time-series model may be used if the time-series signals are related using a parameter at each sampling period. In addition, the parameter estimation is not limited to the iterative least square technique.
Although description of the present embodiment has been made for an arm in which the link is rotated with respect to the rotational shaft (joint), the invention may be similarly applied to a translating target. A disturbance applied to the target may be detected through a similar method, for example, using a displacement of the target instead of the link angle.
(First Modification)
Hereinafter, a first modification of the robot control apparatus according to the first embodiment will be described with reference to
Although Equation 9 is based on a rigid joint model, an elastic joint model may be used instead, in which the reducer 314 is considered as a low-rigidity spring element. In this case, it is possible to reflect a mechanical resonance generated at the time of acceleration/deceleration on the dynamic model, and it is possible to improve a resolution of determination for the torque variation caused by the collision and the torque variation caused by the acceleration/deceleration.
A motion equation indicating the dynamic model based on an elastic joint model corresponding to Equation 9 based on the rigid joint model is given as follows.
MM{umlaut over (θ)}M=τ−NGKG(NGθM−θL)
MM(θL){umlaut over (θ)}M+c({dot over (θ)}L,θL)+f({dot over (θ)}L)+g(θL)=KG(NGθM−θL) [Equation 22]
where,
In the rigid joint model, the link angle θL can be computed by multiplying the motor angle θM by a reduction ratio. However, in an elastic joint model, the link angle θL is to be estimated from the motor angle θM considering the dynamic model of Equation 22. Therefore, it is necessary to compute the torque estimation value while the link angle θL is estimated from the motor angle θM.
For this purpose, Equation 22 is modified to obtain an angular acceleration as follows:
{umlaut over (θ)}M=MM−1[τ−NGKG(NGθM−θL)]
{umlaut over (θ)}L=ML(θL)−1[−c({dot over (θ)}L,θL)−f({dot over (θ)}L)−g(θL)+KG(NGθM−θL)] [Equation 23]
The estimation value of the link angle θL can be obtained by setting an initial value of the link angle θL which is not inconsistent with the motor angle θM in Equation 23 and successively iterating integrations while the motor angle θM that can be detected in practice is substituted.
The torque computation unit 120 of
Hereinafter, operations of the torque computation unit 120 will be described in detail with reference to
The link angle computation unit 127 computes the estimation value of the link angle by finding a solution of the following differential equation using an initial value of the link angle stored in the memory 200 in advance and the motor angle θM detected by the angle detector 315.
{umlaut over (θ)}=ML(θL)−1[−c({dot over (θ)}L,θL)−f({dot over (θ)}L)−g(θL)+KG(NGθM−θL)] [Equation 24]
The inertial torque computation unit 121, the frictional torque computation unit 122, the gravity torque computation unit 123, and the centrifugal/coriolis torque computation unit 124 compute the inertial torque, the frictional torque, the gravity torque, and the centrifugal/coriolis torque, respectively, using the physical parameter stored in the memory 200 in advance and the estimation value of the link angle computed by the link angle computation unit 127.
In addition, the elastic force torque computation unit 126 computes the elastic force torque as follows:
h(θM,θL)=KG(NGθM−θL) [Equation 25]
The adding unit 125 computes the torque estimation value of each driving shaft 320 using the inertial torque, the frictional torque, the gravity torque, the centrifugal/coriolis torque, and the elastic force torque as follows:
{circumflex over (τ)}={circumflex over (M)}(θL){umlaut over (θ)}L+ĉ({dot over (θ)}L,θL)+{circumflex over (f)}({dot over (θ)}L)+{circumflex over (g)}(θL)+{circumflex over (h)}*θM,θL) [Equation 26]
In addition, since a torsion caused by a spring element of the reducer 314 is insignificant, the values computed by the angle computation unit 112 may be used for the link angle necessary to compute the direct kinematics or a Jacobian matrix as in the first embodiment.
(Second Modification)
Hereinafter, a second modification of the robot control apparatus according to the first embodiment will be described with reference to
The collision detection unit 130 detects a collision in each driving shaft 312 of the arm 310, and the collision part estimation unit 140 estimates that a collision occurs in the link 311 having the driving shaft 312 where a collision is detected.
In the robot control apparatus of at least one of the present embodiments described above, it is possible to detect a disturbance applied to the robot arm with high precision.
Such embodiments are just exemplary and are not intended to limit the scope of the invention. Such embodiments may be embodied in various other forms, various omissions, substitutions, modifications may be made without departing from the gist of the invention. Embodiments and modifications thereof are construed as being included in the scope or gist of the invention and encompassing the invention claimed in appended claims and equivalents thereof.
Number | Date | Country | Kind |
---|---|---|---|
2011-206651 | Sep 2011 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
8155790 | Oga et al. | Apr 2012 | B2 |
8428779 | Ohga et al. | Apr 2013 | B2 |
20040158358 | Anezaki et al. | Aug 2004 | A1 |
20100286826 | Tsusaka et al. | Nov 2010 | A1 |
20110060460 | Oga et al. | Mar 2011 | A1 |
20110106311 | Nakajima et al. | May 2011 | A1 |
20120022690 | Ooga et al. | Jan 2012 | A1 |
Number | Date | Country |
---|---|---|
2003-245881 | Sep 2003 | JP |
2010-105138 | May 2010 | JP |
2011-197050 | Oct 2011 | JP |
Entry |
---|
Asakura-Shoten, T. Katayama, “Introduction to System Identification”, Japanese Textbook, Chapter 5, 1994. |
Number | Date | Country | |
---|---|---|---|
20130073085 A1 | Mar 2013 | US |