The present invention relates to a control apparatus and a control method for a robot arm, used for generating operations of a robot as well as for teaching the operations to the robot, a robot provided with the control apparatus for a robot arm, a control program, and an integrated electronic circuit for a robot arm.
In recent years, house-service robots, such as nursing robots or housekeeping support robots, have been vigorously developed. Different from an industrial robot, the house-service robot is operated by amateurs in home; therefore, it is necessary to easily teach operations to the robot. Moreover, since there are various operation environments in which the robot carries out a job depending on homes, it is necessary for the robot to flexibly adjust to the corresponding home environment.
For example, a teaching method for the robot device has been proposed in which a force sensor is attached to a wrist or the like of a robot, and a teaching person directly grabs a handle attached to a tip of the force sensor, and directs the robot to teaching points so that teaching processes for positions of the robot are carried out (see Patent Document 1).
Patent Document 1: Japanese Unexamined Patent Publication No. 59-157715
In Patent Document 1, however, since all teaching points need to be taught by a teaching person, a teaching process takes long time, resulting in time-consuming troublesome tasks. Moreover, in the industrial field, upon revising one portion of taught movements, the revision needs to be made through a programming process by using a remote control apparatus called a teaching pendant, or all the operations need to be taught all over again from the beginning, failing to provide an efficient process.
Moreover, the home environment is varied from moment to moment with the result that it is difficult to predict all the environmental fluctuations at the time of a teaching process, and even when the fluctuations are detected by installing a large number of sensors therein, an erroneous operation might occur in the case where the detection precision is not 100%.
In particular, in the case of a house-service robot, the teaching time needs to be made as short as possible. Moreover, a combined use of the programming process by the remote control apparatus such as the teaching pendant causes an increase in operation steps, and learning of programming languages is required, with the result that this method becomes very difficult for amateurs at home.
Moreover, in the industrial robot, a teaching job for teaching operations to the robot, and a main job actually carried out by the robot are clearly divided and carried out respectively; however, in the case of the house-service robot, since an amateur in home carries out manipulations thereof, it is difficult to carry out the teaching job and the main job separately, resulting in time-consuming troublesome tasks (see Patent Document 1).
Therefore, by allowing a person to recognize a situation with respect to a robot in operation and transmit the situation to the robot each time, the operation can be carried out without making the person conscious of the teaching process, and even when an unexpected fluctuation in the environment occurs at the time of teaching, by allowing the person to teach the fluctuation each time, the robot can be operated properly.
In this method, however, since the operation correction is carried out by allowing the person to manipulate the robot in operation, a problem arises in that, since an operation parameter inputted by the person tends to fluctuate in comparison with a conventional teaching process given at the time of stoppage, it is not possible to carry out the operation correction appropriately. For example, in the case where, during an operation, the velocity is fast, upon correction of the operation by the person, in particular, upon starting the manipulation or completing the manipulation, the hand of the person tends to shake and the correction is carried out with the hand shake contained therein, with the result that the operation correction cannot be carried out properly. Moreover, since a correction by the person is carried out during the operation, the correction is also carried out in a section in which a great force is erroneously applied instantaneously, for example, in such a case as an erroneous collision by the person, to cause a failure to provide an accurate correction. Moreover, even in the case where only the force to be applied to a job target is desirably corrected, the position or the velocity or the like might be erroneously corrected simultaneously, to cause a failure to provide an accurate correction. Furthermore, the operation of the person tends to be influenced by an accelerating or decelerating direction of the operation of the robot arm, making it difficult for the person to carry out an accurate correction. In the case where a correction is made as repetitive operations, the repetitive operations tend to fluctuate due to degrees of the applied force by the person, failing to provide an accurate correction. Moreover, since the person tends to manipulate without understanding detailed characteristics of the robot arm, such as its movable range, it is not possible to make a desired correction on the operation near the movable range. Moreover, in the case where an elder person, a handicapped person, a child or the like carries out a manipulation, since a force to be desirably applied to the job object tends to become insufficient, failing to make an accurate correction. In the same manner, when, in an attempt to operate a robot arm at a high speed, the person is unable to carry out the operation at the corresponding speed, it is not possible to make an accurate correction.
The present invention has been devised in view of these problems, and an object thereof is to provide a control apparatus and a control method for a robot arm, which achieves a robot controlling process that allows an operator to give a teaching process to the robot easily in a short period of time, even in the event of an unpredictable environmental fluctuation, and the present invention also relates to a robot, a control program for a robot arm, and an integrated electronic circuit in which such a control apparatus for a robot arm is used.
In order to achieve the above-mentioned object, the present invention has the following structures. according to a first aspect of the present invention, there is provided a
According to the first aspect of the present invention, there is provided a control apparatus for a robot arm, which controls an operation of the robot arm so as to carry out a job by using the robot arm, comprising:
an operation information acquiring unit that acquires at least one or more pieces of time series operation information relating to position, an orientation, a velocity, and a force of the robot arm, in association with the operation;
an operation correcting information acquiring unit that acquires operation correcting information relating to a correcting method for the operation information carried out by the robot arm;
an alternation condition setting unit that, while the robot arm is being operated based upon the operation information, during the operation of the robot arm, after switching has been made, by applying a force of the person to the robot arm, from a control mode in which the operation of the robot arm is prevented from being corrected by a manipulation of the person to a control mode in which the operation of the robot arm is corrected by the manipulation by the person, sets an alternation condition for use in altering the operation of the robot arm by the manipulation of the person, based upon a force of the person applied to the robot arm, the operation information of the robot arm that is in operation, and the operation correcting information; and
an operation correcting unit which, in a case where any correction is required in response to the alternation condition set by the alternation condition setting unit, corrects at least one or more pieces of operation information relating to the position, the orientation, the velocity, and the force of the robot arm, acquired by the operation information acquiring unit,
wherein based upon the operation information corrected by the operation correcting unit, the operation of the robot arm is controlled.
According to the 22nd aspect of the present invention, there is provided a control method for a robot arm, which controls an operation of the robot arm so as to carry out a job by using the robot arm, comprising:
acquiring at least one or more pieces of time series operation information relating to a position, an orientation, a velocity, and a force of the robot arm, in association with the operation, by an operation information acquiring unit;
acquiring operation correcting information relating to a correcting method for the operation information carried out by the robot arm, by an operation correcting information acquiring unit;
while operating the robot arm based upon the operation information, during the operation of the robot arm, after switching has been made, by applying a force of the person to the robot arm, from a control mode in which the operation of the robot arm is prevented from being corrected by a manipulation of the person to a control mode in which the operation of the robot arm is corrected by the manipulation by the person, setting an alternation condition for use in altering the operation of the robot arm by a manipulation of the person, based upon the force of the person applied to the robot arm, the operation information of the robot arm that is in operation, and the operation correcting information, by an alternation condition setting unit;
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, correcting at least one or more pieces of operation information relating to the position, the orientation, the velocity, and the force of the robot arm, acquired by the operation information acquiring unit, by an operation correcting unit; and
based upon the operation information corrected by the operation correcting unit, controlling the operation of the robot arm.
According to the 23rd aspect of the present invention, there is provided a robot comprising:
the robot arm; and
the control apparatus for a robot arm according to any one of the first to 21st aspects, which controls the operation of the robot arm.
According to the 24th aspect of the present invention, there is provided a control program for a robot arm, which controls an operation of the robot arm so as to carry out a job by using the robot arm, allowing a computer to execute steps of:
acquiring at least one or more pieces of time series operation information relating to a position, an orientation, a velocity, and a force of the robot arm, in association with the operation, by an operation information acquiring unit;
acquiring operation correcting information relating to a correcting method for the operation information carried out by the robot arm, by an operation correcting information acquiring unit;
while operating the robot arm based upon the operation information, during the operation of the robot arm, after switching has been made, by applying a force of the person to the robot arm, from a control mode in which the operation of the robot arm is prevented from being corrected by a manipulation of the person to a control mode in which the operation of the robot arm is corrected by the manipulation by the person, setting an alternation condition for use in altering the operation of the robot arm by the manipulation of the person, based upon the force of the person applied to the robot arm, the operation information of the robot arm that is in operation, and the operation correcting information, by an alternation condition setting unit;
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, correcting at least one or more pieces of operation information relating to the position, the orientation, the velocity, and the force of the robot arm, acquired by the operation information acquiring unit; and
based upon the operation information corrected by the operation correcting unit, controlling the operation of the robot arm.
According to the 25th aspect of the present invention, there is provided an integrated electronic circuit for a robot arm, which controls an operation of the robot arm so as to carry out a job by using the robot arm, comprising:
acquiring at least one or more pieces of time series operation information relating to a position, an orientation, a velocity, and a force of the robot arm, in association with the operation, by an operation information acquiring unit;
acquiring operation correcting information relating to a correcting method for the operation information carried out by the robot arm by an operation correcting information acquiring unit;
while operating the robot arm based upon the operation information, during the operation of the robot arm, after switching has been made, by applying a force of the person to the robot arm, from a control mode in which the operation of the robot arm is prevented from being corrected by a manipulation of the person to a control mode in which the operation of the robot arm is corrected by the manipulation by the person, setting an alternation condition for use in altering the operation of the robot arm by the manipulation of the person, based upon the force of the person applied to the robot arm, the operation information of the robot arm that is in operation, and the operation correcting information, by an alternation condition setting unit;
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, correcting at least one or more pieces of operation information relating to the position, the orientation, the velocity, and the force of the robot arm, acquired by the operation information acquiring unit, by an operation correcting unit; and
based upon the operation information corrected by the operation correcting unit, controlling the operation of the robot arm.
As described above, in accordance with a control apparatus for a robot arm and a robot provided with the control apparatus for a robot arm of the present invention, since the operation information acquiring unit, the operation correcting information acquiring unit, the alternation condition setting unit, and the operation correcting unit are prepared, it is possible to carry out a controlling operation of the robot arm by which the operation of the robot arm described as operation information can be easily corrected in response to a force applied by a person and the operation correcting information. Moreover, it is possible to carry out an operation correcting process in which fluctuations of operation parameters inputted by the person are taken into consideration.
Moreover, in accordance with the control method for a robot arm, the control program for the robot arm, and the integrated electronic circuit of the present invention, it is possible to provide a control process for a robot arm by which an operation of a robot arm described as operation information can be easily corrected, while taking into consideration fluctuations of operation parameters inputted by the person.
These and other aspects and features of the present invention will become clear from the following description taken in conjunction with the preferred embodiments thereof with reference to the accompanying drawings, in which:
Referring to Figures, the following description will discuss embodiments of the present invention in detail.
Prior to the detailed explanation of embodiments of the present invention by reference to Figures, various modes of the present invention will be described.
According to a first aspect of the present invention, there is provided a control apparatus for a robot arm, which controls an operation of the robot arm so as to carry out a job by using the robot arm, comprising:
an operation information acquiring unit that acquires at least one or more pieces of time series operation information relating to a position, an orientation, a velocity, and a force of the robot arm, in association with the operation;
an operation correcting information acquiring unit that acquires operation correcting information relating to a correcting method for the operation information carried out by the robot arm;
an alternation condition setting unit that, while the robot arm is being operated based upon the operation information, during the operation of the robot arm, after switching has been made, by applying a force of the person to the robot arm, from a control mode in which the operation of the robot arm is prevented from being corrected by a manipulation of the person to a control mode in which the operation of the robot arm is corrected by the manipulation by the person, sets an alternation condition for use in altering the operation of the robot arm by the manipulation of the person, based upon a force of the person applied to the robot arm, the operation information of the robot arm that is in operation, and the operation correcting information; and
an operation correcting unit which, in a case where any correction is required in response to the alternation condition set by the alternation condition setting unit, corrects at least one or more pieces of operation information relating to the position, the orientation, the velocity, and the force of the robot arm, acquired by the operation information acquiring unit,
wherein based upon the operation information corrected by the operation correcting unit, the operation of the robot arm is controlled.
According to a second aspect of the present invention, there is provided the control apparatus for a robot arm according to the first aspect, wherein the operation correcting information acquiring unit acquires a piece of operation correcting information relating to a correcting method described so as to carry out a correction by deleting one portion of a section of the operation information relating to the manipulation by the person on the robot arm of the person.
According to a third aspect of the present invention, there is provided the control apparatus for a robot arm according to the first aspect, wherein the operation correcting information acquiring unit acquires operation correcting information relating to a correcting method designed so as to carry out a correction on one portion of a section of the operation information relating to the manipulation by the person on the robot arm, by assisting at least one or more values among values of a position or a velocity of the robot arm or a force applied to the robot arm.
According to a fourth aspect of the present invention, there is provided the control apparatus for a robot arm according to any one of the first, second, and third aspects, further comprising:
a force detection unit that detects a force externally applied to the robot arm,
wherein the operation information acquired by the operation information acquiring unit is at least one of pieces of positional information of a hand of the robot arm, orientation information of the robot arm, velocity information of the robot arm, and information of a force applied to the hand of the robot arm, obtained at respective points of time in accordance with the operation carried out by the robot arm, and
in a case where a correction is required in response to the alternation condition set by using the alternation condition setting unit by the operation correcting unit, and also in a case where during an operation of the robot arm, the operation information, acquired by the operation information acquiring unit, is corrected in accordance with the force of the person detected by the force detection unit and the operation correcting information, by using at least one of the pieces the positional information of a hand of the robot arm, the orientation information of the robot arm, the velocity information of the robot arm, and the force information, obtained at respective points of time in accordance with the operation carried out by the robot arm, the operation information acquired by the operation information acquiring unit is corrected.
According to a fifth aspect of the present invention, there is provided the control apparatus for a robot arm according to the third aspect, further comprising:
a force detection unit that detects a force externally applied to the robot arm,
wherein the operation correcting information acquired by the operation information acquiring unit relates to at least one of pieces of information for a periodicity correcting method that detects a periodic section from a track of the operation information relating to the manipulation of the person so as to make a correction and information for an assist correcting method that carries out a correction, after detection as to whether or not the correction is carried out by assisting one or more values of the position or the velocity of the robot arm, or the force to be applied to the robot arm on one portion of a section with respect to the operation that is being corrected by the person, and
in a case where a correction is required in response to the alternation condition set by using the alternation condition setting unit, during an operation of the robot arm, the operation correcting unit corrects the operation information acquired by the operation information acquiring unit in accordance with at least one of pieces of information relating to the force of the person detected by the force detection unit, the periodicity correcting method, and the assist correcting method.
According to a sixth aspect of the present invention, there is provided the control apparatus for a robot arm according to the second aspect, further comprising:
a force detection unit that detects a force externally applied to the robot arm,
wherein the operation correcting information acquired by the operation correcting information acquiring unit relates to a correcting method in which a correction is carried out by deleting at least one of sections of a section corresponding to a certain elapsed period of time from start of the manipulation of the robot arm by the person and a section immediately before completion of the manipulation of the robot arm by the person, and
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, during the operation of the robot arm, the operation correcting unit corrects the operation information acquired by the operation information acquiring unit by using the force of the person detected by the force detection unit and the correcting method for deleting at least one of following sections (I) and (II):
(I) the section corresponding to the certain elapsed period of time from the start of the manipulation of the robot arm by the person, and
(II) the section immediately before the completion of the manipulation of the robot arm by the person, with lengths of the sections (I) and (II) being determined by a velocity of the robot arm.
According to a seventh aspect of the present invention, there is provided the control apparatus for a robot arm according to the second aspect, further comprising:
a force detection unit that detects a force externally applied to the robot arm,
wherein the operation correcting information relates to a correcting method in which a correction is carried out by deleting a section other than a section in which the force of the person is not less than a threshold value for use in force and a period of time that is not less than a threshold value for use in time is continuously elapsed, and
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, during the operation of the robot arm, based upon the operation correcting unit corrects the operation information acquired by the operation information acquiring unit by using the force of the person detected by the force detection unit, and the correcting method for deleting the section in which the force of the person is not less than the threshold value for use in force and the period of time is not less than the threshold value for use in time is continuously elapsed.
According to an eighth aspect of the present invention, there is provided the control apparatus for a robot arm according to the second aspect, further comprising:
a force detection unit that detects a force externally applied to the robot arm,
wherein the operation correcting information relates to a correcting method in which, in a case where the force of the person is not less than a threshold value for use in force within a period of time that is a threshold value for use in time or less, a manipulation section within the corresponding period of time is deleted, and
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, during the operation of the robot arm, the operation correcting unit corrects the operation information acquired by the operation information acquiring unit by using the force of the person detected by the force detection unit, and the correcting method in which, in a case where the force of the person is not less than the threshold value for use in force within the period of time that is the threshold value for use in time or less, a manipulation section within the corresponding period of time is deleted.
According to a ninth aspect of the present invention, there is provided the control apparatus for a robot arm according to the second aspect, further comprising:
a force detection unit that detects a force externally applied to the robot arm; and
a correcting method type determination unit that determines a type of a parameter to be corrected among the pieces of operation information acquired by the operation information acquiring unit,
wherein the operation correcting information relates to a correcting method that deletes parameters other than the type of the parameter determined by the correcting method type determination unit, and
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, during the operation of the robot arm, the operation correcting unit corrects the operation information acquired by the operation information acquiring unit by using the force of the person detected by the force detection unit, and the correcting method for deleting a parameter except for the parameter having the type determined by the correcting method type determination unit.
According to a 10th aspect of the present invention, there is provided the control apparatus for a robot arm according to the fifth aspect, wherein the periodicity correcting method relates to a correcting method in which, in a section where there is a bias relating to one or more pieces of information among the pieces of information of the position, orientation, velocity, and force of the robot arm, a correction is made so as to eliminate the bias, and
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, during the operation of the robot arm, the operation correcting unit corrects the operation information acquired by the operation information acquiring unit by using the force of the person detected by the force detection unit, and the correcting method for correcting pieces of information of the position and orientation of the robot arm so as to delete the bias in the section where the bias exists with respect to the piece of information relating to the position, the orientation, the velocity, or the force of the robot arm.
According to an 11th aspect of the present invention, there is provided the control apparatus for a robot arm according to the fifth aspect, wherein the periodicity correcting method relates to a correcting method in which, in a section where there are periodic repetitions relating to the piece of information of the position, orientation, velocity, or force of the robot arm, a correction is made so as to average the respective pieces of the information of the position, orientation, velocity or force of the robot arm in the repetitive section, and
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, during the operation of the robot arm, the operation correcting unit corrects the operation information acquired by the operation information acquiring unit by using the force of the person detected by the force detection unit, and a correcting method which, in the section where there are periodic repetitions relating to the piece of information relating to the position, orientation, velocity, or force of the robot arm, carries out a correction so as to average the respective pieces of information relating to the position, orientation, velocity, or force of the robot arm, in the repetitive section.
According to a 12th aspect of the present invention, there is provided the control apparatus for a robot arm according to the fifth aspect, wherein the assist correcting method relates to a correcting method in which, in a case where manipulation of the robot arm by the person is continuously carried out number of times in a range of from a lower limit threshold value or more to an upper limit threshold value or less, as well as in a case where, with respect to one or more pieces of operation information of the position, orientation, velocity, and force, before and after the manipulation of the person, a difference between values of the one or more pieces of operation information before and after the manipulation is not less than a threshold value, corrects the operation information, and
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, during the operation of the robot arm, the operation correcting unit corrects the operation information acquired by the operation information acquiring unit by using the force of the person detected by the force detection unit, and the correcting method which, in a case where manipulation by the person is continuously carried out number of times in the range of from the lower limit threshold value or more to the upper limit threshold value or less, as well as in a case where, with respect to one or more pieces of operation information of the position, orientation, velocity, and force, before and after the manipulation of the person, a difference between values of the one or more pieces of operation information before and after the manipulation is not less than the threshold value, carries out a correction on the operation information that has been changed.
According to a 13th aspect of the present invention, there is provided the control apparatus for a robot arm according to the 12th aspect, wherein the assist correcting method relates to a correcting method in which, in a case where manipulation by the person is continuously carried out number of times in a range of from the lower limit threshold value or more to the upper limit threshold value or less, as well as in a case where the positional information of the hand of the robot arm is changed from that before the manipulation of the person, with number of times in which the changed positional information is out of a movable range of the robot arm being not less than a threshold value for use in the movable range, the operation correcting unit corrects the positional information so as to be located within the movable range of the robot arm, and
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, the operation correcting unit corrects the operation information acquired by the operation information acquiring unit by using the correcting method which, with manipulation by the person being continuously carried out number of times in the range of from the lower limit threshold value or more to the upper limit threshold value or less, as well as in a case where the positional information of the hand of the robot arm is changed from before the manipulation of the person, with the number of times in which the changed positional information is out of the movable range of the robot arm being not less than the threshold value or more for use in the movable range, corrects the positional information so as to be located within the movable range.
According to a 14th aspect of the present invention, there is provided the control apparatus for a robot arm according to the 12th aspect, wherein the force detection unit detects information relating to a force applied to the hand of the robot arm, and
the assist correcting method relates to a correcting method which, in a case where manipulation by the person is continuously carried out number of times in the range of from the lower limit threshold value or more to the upper limit threshold value or less, as well as in a case where the information relating to the force applied to the hand of the robot arm indicates that the applied force after the manipulation increases by a threshold value for use in force information or more in comparison with that before the manipulation, corrects the force information so as to increase the force information, and
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, during the operation of the robot arm, the operation correcting unit corrects the operation information acquired by the operation information acquiring unit by using the force of the person detected by the force detection unit, and a correcting method which, with manipulation by the person being continuously carried out number of times in the range of from the lower limit threshold value or more to the upper limit threshold value or less, as well as in a case where the information relating to the force applied to the hand of the robot arm indicates that the applied force after the manipulation increases by the threshold value for use in force information or more in comparison with that before the manipulation, corrects the force information so as to increase the force information.
According to a 15th aspect of the present invention, there is provided the control apparatus for a robot arm according to the 12th aspect, wherein the assist correcting method relates to a correcting method which, in a case where manipulation by the person is continuously carried out number of times in the range of from the lower limit threshold value or more to the upper limit threshold value or less, as well as in a case where the information relating to a velocity applied to the hand of the robot arm indicates that an applied velocity after the manipulation increases by a threshold value for use in velocity information or more in comparison with that before the manipulation, corrects the velocity information so as to increase the velocity information, and
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, during the operation of the robot arm, the operation correcting unit corrects the operation information acquired by the operation information acquiring unit by using the force of the person detected by the force detection unit, and a correcting method which, with manipulation by the person being continuously carried out number of times in the range of from the lower limit threshold value or more to the upper limit threshold value or less, as well as in a case where the information relating to a velocity applied to the hand of the robot arm indicates that an applied velocity after the manipulation increases by a threshold value for use in velocity information or more in comparison with that before the manipulation, corrects the velocity information so as to increase the velocity information.
According to a 16th aspect of the present invention, there is provided the control apparatus for a robot arm according to the 12th aspect, further comprising:
an assist value calculation unit that calculates a value used for correcting the operation information acquired by the operation information acquiring unit,
wherein the assist value calculation unit calculates the value in accordance with a number of times of manipulation on the robot arm by the person.
According to a 17th aspect of the present invention, there is provided the control apparatus for a robot arm according to any one of the first, second, and third aspects, further comprising:
a force detection unit that detects a force externally applied to the robot arm,
wherein in a case where manipulation of the robot arm by the person is continuously carried out number of times that is equal to a lower threshold value or more of the number of manipulation thereof, the operation information acquired by the operation information acquiring unit is corrected only by the force of the person detected by the force detection unit.
According to an 18th aspect of the present invention, there is provided the control apparatus for a robot arm according to any one of the first, second, and third aspects, further comprising:
a force detection unit that detects a force externally applied to the robot arm,
wherein in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, based upon the operation information, the operation correcting unit sets at least one or more of following three kinds of control modes for each of rotation axes of joint portions of the robot arm separately:
(I) a hybrid impedance control mode in which during the operation of the robot arm, in response to a force detected by the force detection unit and applied to the robot arm, the robot arm is actuated,
(II) an impedance control mode in which in response to a force detected by the force detection unit and applied to the robot arm in a stopped state from the person, the robot arm is actuated, and
(III) a force control mode in which the robot arm is actuated by applying a specified force thereto,
and midway during an operation of the robot arm by setting the control mode (III) to at least one of the directions of the rotation axes, with respect to the direction in which the control mode (III) has been set, switching is made to a control mode by which, upon manipulation by the person, the robot arm is not moved by a manipulation of the person during the operation of the robot arm so that, upon carrying out an operation by exerting the specified force of the operation information acquired by the operation information acquiring unit, the force is corrected.
According to a 19th aspect of the present invention, there is provided the control apparatus for a robot arm according to any one of the first, second, and third aspects, wherein in the case where a correction is required in response to the alternation condition set by the alternation condition setting unit, based upon the operation information, the operation correcting unit sets at least one or more of following three kinds of control modes for each of rotation axes of joint portions of the robot arm separately:
(I) a hybrid impedance control mode in which during the operation of the robot arm, in response to a force detected by the force detection unit and applied to the robot arm, the robot arm is actuated,
(II) an impedance control mode in which in response to a force detected by the force detection unit and applied to the robot arm in a stopped state from the person, the robot arm is actuated, and
(III) a force control mode in which the robot arm is actuated by applying a specified force thereto,
and midway during an operation of the robot arm by setting the control mode (II) to at least one of the directions of the rotation axes, with respect to the direction in which the control mode (I) or (II) has been set, switching is made to the hybrid impedance control mode, upon manipulation by the person, in response to the operation correcting information so that the operation information acquired by the operation information acquiring unit is corrected.
According to a 20th aspect of the present invention, there is provided the control apparatus for a robot arm according to any one of the first, second, and third aspects, further comprising:
a display unit that displays information relating to a niece of advice on the manipulation of the person based upon information relating to history of the operation correcting information applied at a time of the correction by the operation correcting unit.
According to a 21st aspect of the present invention, there is provided the control apparatus for a robot arm according to any one of the first second, and third aspects, wherein in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, after correcting the operation information acquired by the operation information acquiring unit by using a correction method designed to make a correction by deleting one portion of sections of the operation information relating to the manipulation of the robot arm by the person, the operation correcting unit makes a correction on the one portion of sections of the operation information relating to the manipulation of the robot arm by the person, while assisting the one portion thereof.
According to a 22nd aspect of the present invention, there is provided a control method for a robot arm, which controls an operation of the robot arm so as to carry out a job by using the robot arm, comprising:
acquiring at least one or more pieces of time series operation information relating to a position, an orientation, a velocity, and a force of the robot arm, in association with the operation, by an operation information acquiring unit;
acquiring operation correcting information relating to a correcting method for the operation information carried out by the robot arm, by an operation correcting information acquiring unit;
while operating the robot arm based upon the operation information, during the operation of the robot arm, after switching has been made, by applying a force of the person to the robot arm, from a control mode in which the operation of the robot arm is prevented from being corrected by a manipulation of the person to a control mode in which the operation of the robot arm is corrected by the manipulation by the person, setting an alternation condition for use in altering the operation of the robot arm by a manipulation of the person, based upon the force of the person applied to the robot arm, the operation information of the robot arm that is in operation, and the operation correcting information, by an alternation condition setting unit;
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, correcting at least one or more pieces of operation information relating to the position, the orientation, the velocity, and the force of the robot arm, acquired by the operation information acquiring unit, by an operation correcting unit; and
based upon the operation information corrected by the operation correcting unit, controlling the operation of the robot arm.
According to a 23rd aspect of the present invention, there is provided a robot comprising:
the robot arm; and
the control apparatus for a robot arm according to any one of the first to 21st aspects, which controls the operation of the robot arm.
According to a 24th aspect of the present invention, there is provided a control program for a robot arm, which controls an operation of the robot arm so as to carry out a job by using the robot arm, allowing a computer to execute steps of:
acquiring at least one or more pieces of time series operation information relating to a position, an orientation, a velocity, and a force of the robot arm, in association with the operation, by an operation information acquiring unit;
acquiring operation correcting information relating to a correcting method for the operation information carried out by the robot arm, by an operation correcting information acquiring unit;
while operating the robot arm based upon the operation information, during the operation of the robot arm, after switching has been made, by applying a force of the person to the robot arm, from a control mode in which the operation of the robot arm is prevented from being corrected by a manipulation of the person to a control mode in which the operation of the robot arm is corrected by the manipulation by the person, setting an alternation condition for use in altering the operation of the robot arm by the manipulation of the person, based upon the force of the person applied to the robot arm, the operation information of the robot arm that is in operation, and the operation correcting information, by an alternation condition setting unit;
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, correcting at least one or more pieces of operation information relating to the position, the orientation, the velocity, and the force of the robot arm, acquired by the operation information acquiring unit; and
based upon the operation information corrected by the operation correcting unit, controlling the operation of the robot arm.
According to a 25th aspect of the present invention, there is provided an integrated electronic circuit for a robot arm, which controls an operation of the robot arm so as to carry out a job by using the robot arm, comprising:
acquiring at least one or more pieces of time series operation information relating to a position, an orientation, a velocity, and a force of the robot arm, in association with the operation, by an operation information acquiring unit;
acquiring operation correcting information relating to a correcting method for the operation information carried out by the robot arm by an operation correcting information acquiring unit;
while operating the robot arm based upon the operation information, during the operation of the robot arm, after switching has been made, by applying a force of the person to the robot arm, from a control mode in which the operation of the robot arm is prevented from being corrected by a manipulation of the person to a control mode in which the operation of the robot arm is corrected by the manipulation by the person, setting an alternation condition for use in altering the operation of the robot arm by the manipulation of the person, based upon the force of the person applied to the robot arm, the operation information of the robot arm that is in operation, and the operation correcting information, by an alternation condition setting unit;
in a case where a correction is required in response to the alternation condition set by the alternation condition setting unit, correcting at least one or more pieces of operation information relating to the position, the orientation, the velocity, and the force of the robot arm, acquired by the operation information acquiring unit, by an operation correcting unit; and
based upon the operation information corrected by the operation correcting unit, controlling the operation of the robot arm.
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawing.
First, a structure of a robot system 1 provided with a robot arm control apparatus in a first embodiment of the present invention will be described.
As shown in
The robot system 1 is a system for carrying out a job in a home that is executed by the robot arm 5 and the person 4 in cooperation with each other, for example, by using the robot arm 5, a job for mixing cooking materials in a pot 3 or a job for wiping off stains 91 in the kitchen.
First, the person 4 directly grabs the robot arm 5 so that the person 4 applies a force to the robot arm 5. Thus, by the force applied to the robot arm 5 from the person 4, the robot arm 5 is allowed to move along the rail 8 so that the robot arm 5 is directed to the vicinity of a cooking apparatus 3, such as a pot.
Next, the person 4 attaches a cooking tool 9 such as a ladle to be used for a mixing job or a cleaning tool 46 (see
Next, when the person 4, for example, pushes a button 13a of an operation panel 13 of the robot system 1, placed on a side surface or the like of a cooking apparatus 6, such as an IH heater or a gas heater, so that an operation starting instruction is inputted to the robot arm by using a data input IF 26, the robot arm 5 is activated, and a job selected in advance, that is, a mixing job or a wiping job, is started.
For example, first, a case in which the robot arm 5 carries out a mixing job will be exemplified.
In the case where, while the robot arm 5 is carrying out the mixing job in the pot 3 by using the ladle 9 grabbed by its hand 30, the person 4 confirms a state of the cooking materials that are being mixed, the person 4 directly grabs the robot arm 5 of the robot system 1, and by applying a force in a direction in which a correction is desirably made, the person 4 corrects the operation of the robot arm 5 of the robot system 1.
The rail 8 is disposed on the wall surface 7a of the work bench 7; however, in the case of an island kitchen without wall surfaces, it may be attached to a suitable place for a job, such as a ceiling surface or a side surface of a top plate of the island kitchen.
Moreover, although the operation panel 13 is secured to a side surface of the cooking apparatus 6, a remote control unit capable of carrying out remote operations may be used in place of the operation panel 13.
For example, the robot arm 5 in the first embodiment is prepared as a multi-joint robot arm made of a multi-link manipulator having six degrees of freedom. The robot arm 5 is provided with the hand 30, a fore-arm link 32 with a wrist portion 31 to which the hand 30 is attached formed on its tip 32a, an upper arm link 33 having its tip 33a rotatably coupled to the base end 32b of the fore-arm link 32, and a base portion 34 to which the base end 33b of the upper arm link 33 is rotatably coupled so as to be supported thereon. The base portion 34 is shiftably coupled to the rail 8; however, this may be secured to a fixed position. The wrist portion 31 has three rotation axes relating to a fourth joint portion 38, a fifth joint portion 39, and a sixth joint portion 40 so that the relative orientation (direction) of the hand 30 to the fore-arm link 32 can be changed. That is, in
As a result, the robot arm 5 is allowed to rotate around the total six axes to form the multi-link manipulator having six degrees of freedom.
Each of the joint portions forming the rotation portions of the respective axes is provided with a rotation driving device, such as a motor 43, and an encoder 44 used for detecting a rotation phase angle (that is, a joint angle) of the rotation axis of the motor 43. The motor 43 in the first embodiment is installed in the inside of each of the joint portions of the robot arm 5. The motor 43 is drive-controlled by a motor driver 25, which will be described later, installed in one of link members of two link members forming each of the joint portions. The rotation axis of the motor 43 that is installed in one of the link members of each joint portion is coupled to the other link member, and the rotation axis is thus forwardly/reversely rotated so that the other link member is allowed to rotate around each of the axes relative to the one of the link members.
Reference numeral 41 represents an absolute coordinate system in which the relative positional relationship is secured to the lower-side securing unit 34b of the base portion 34, and 42 represents a tip-unit coordinate system in which the positional relationship is fixed relative to the hand 30. The origin position 0e (X, Y, Z) of the tip-unit coordinate system 42 viewed from the absolute coordinate system 41 is defined as a hand position (position of the hand 30) of the robot arm 5, and the orientation of the tip-unit coordinate system 42, viewed from the absolute coordinate system 41, is represented by coordinates (φ, θ, ψ), using the roll angle, pitch angle, and yaw angle, and defined as the tip-unit orientation of the robot arm 5, and the hand position and orientation vectors are defined as vectors r=[x, y, z, φ, θ, ψ]T.
In the first embodiment, a coordinate system obtained by rotating the absolute coordinate system 35 by an angle φ with the Z-axis serving as the rotation axis is prepared (see
Upon controlling the tip-unit position and orientation of the robot arm 5, the tip-unit position and orientation vectors r are made to follow tip-unit position and orientation target vectors rd generated in a target track generation unit 55, which will be described later.
In order to control operations of the robot arm 5, respective operations of the operation generating device 12, the control apparatus main body unit 11, and the peripheral apparatus 14 are executed so that pieces of information of the respective joint angles, outputted from the encoders 44 to be described later of the respective joint portions of the robot arm 5, are acquired by the control apparatus main body unit 11 through counter boards of the input/output IF 24, and based upon the respective pieces of joint angle information thus acquired, the control apparatus main body unit 11 calculates control instruction values for rotating operations of the respective joint portions. The respective control instruction values, thus calculated, are given to the motor driver 25 used for drive-controlling the respective joint portions of the robot arm 5 through the D/A board of the input/output IF 24, and based upon the respective control instruction values sent from the motor driver 25, the motors 43 of the respective joint portions of the robot arm 5 are driven. Moreover, a hand driving motor 62, as one example of a hand driving device drive-controlled by the motor driver 25, and an encoder 61 used for detecting a rotation phase angle of the rotation axis of the hand driving motor 62 are further installed in the hand 30 so that the rotation angle information, detected by the encoder 61, is acquired by the control apparatus main body unit 11 through the counter board of the input/output IF 24, and based upon the rotation angle information thus acquired, control instruction values in open/close operations of the hand 30 are calculated by the hand control unit 54 (shown in
For example, the control apparatus main unit 11, the operation generating device 12, and the peripheral apparatus 14 are respectively constituted by generally-used personal computers.
The operation generating device 12 is designed to have an operation information database 17 that functions as one example of an operation information acquiring unit, an operation correcting information database that functions as one example of an operation correcting information acquiring unit, an operation instruction unit 27, an operation correcting unit 20, an alternation condition setting unit 82, and an operation storage unit 15. Between the operation correcting unit 20 and the control parameter managing unit 21, as well as between the alternation condition setting unit 82 and the control parameter managing unit 21, information of the hand position and orientation of the robot arm 5, information of a force applied by the person 4, an operation instruction and the like are inputted and outputted thereto and therefrom. The hand position and orientation of the robot arm 5, information of a force applied by the person 4 and the like are outputted to the operation storage unit 15 from the control parameter managing unit 21. The hand position and orientation of the robot arm 5, the information of a force applied by the person 4 and the like are outputted to the correcting method type determination unit 23. Additionally, detailed descriptions of respective control modes ((i) position control mode, (ii) impedance control mode, (iii) hybrid impedance control mode, and (v) force hybrid impedance mode) in the operation generating device 12 will be given in the description of the control parameter managing unit 21 of the control apparatus main unit 11.
The operation information database 17 stores pieces of information (operation information) of the robot arm 5 relating to the operations of the hand position, orientation and the like of the robot arm 5 at a certain point of time. The operation information is stored by the operation storage unit 15. Operation information is inputted/outputted between the operation information database 17 and the operation instruction unit 27, and operation information is also inputted/outputted between the operation information database 17 and the operation correcting unit 20 so that various pieces of operation information are inputted thereto and stored therein by the operation storage unit 15. Moreover, operation information is inputted/outputted between the operation information database 17 and the alternation condition setting unit 82 so that various pieces of operation information are inputted thereto and stored therein by the operation storage unit 15. Alternation conditions, set in the alternation condition setting unit 82, are inputted from the alternation condition setting unit 82 to the operation correcting unit 20. An instruction for starting an operation correction is inputted from the operation instruction unit 27 to the alternation condition setting unit 82.
The following description will discuss the operation information database 17 in detail.
In the operation information database 17, for example, pieces of information relating to operations of the robot arm 5 (operation information), shown in
(1) Job ID numbers (see columns “job ID” of
(2) Operation ID numbers (see columns “operation ID” of
(3) Information relating to the hand position and orientation of the robot arm 5 in the operation (see columns “position-orientation” in
(4) Information relating to a force to be applied to a target object upon carrying out the operation by the robot arm 5 (see columns “force” in
(5) Information relating to a flag that indicates which piece of information relating to parameters of the hand position, orientation, and force of the robot arm 5 is valid (see columns “flag” in
(6) Information indicating an open/close state of the hand, that is, as to whether the hand 30 is opened or closed (see columns “hand” in
(7) Information relating to periods of time during which the respective operations are executed (see columns “time” in
(8) Information relating to a type of a parameter to be corrected upon correcting operation information of the operation information database 17 by the operation correcting unit 20 and the alternation condition setting unit 82 (see columns “correction parameter flag” in
(9) Progress information indicating whether or not an operation of the robot arm 5 is being executed (see columns “progress information in
In this case, the job ID is a mark used for identifying information relating to the corresponding job, and the operation ID is a mark used for identifying information relating to the corresponding operation.
The “position-orientation” in the operation information database 17 of
The information relating to “force” represents information relating to a force to be applied by the robot arm 5 to an object to be subjected to the job thereof, and components in x, y, z, φ, θ, ψ directions of the force are indicated by (fx, fy, fz, fφ, fθ, fψ). For example, in the case where fz=5[N], this means that the job is carried out by applying a force of 5[N] in the z-axis direction. More specifically, this corresponds to, for example, a case in which, upon carrying out a wiping job on the top plate of an IH cooking heater 6 or the like, the wiping job is carried out by applying a force on the surface of the top plate.
The information relating to “flag” of
The information relating to “hand” that corresponds to information as to whether the hand 30 is opened or closed in the operation information database 17 of
The information relating to “time” in the operation information database 17 of
The information relating to “correction parameter flag” in the operation information database 17 of
The information relating to “progress information” in the operation information database 17 of
To the operation instruction unit 27, an instruction for starting operations of a job corresponding to “job ID” specified by the person 4 through the input IF 26 is inputted. Upon receipt of the instruction for starting the operations of the job corresponding to the specified “job ID”, the operation instruction unit 27 starts the operations of the job having the specified “job ID”. More specifically, “1” is set to the “progress information” of the “operation ID” currently being executed, by the operation information instruction unit 27, and stored in the operation information database 17 by the operation storage unit 15. With respect to the pieces of “progress information” of the other “operation IDs”, “0” is given thereto by the operation instruction unit 27, and stored in the operation information database 17 by the operation storage unit 15. All the operations of the job having the specified job ID are executed by the operation instruction unit 27 successively, starting from a job having the smallest number of the “operation ID”, and when the last operation has been executed, the process returns to the operation of the leading “operation ID” of the “job ID” so that the process of operations is executed repeatedly.
The pieces of information of the position and orientation of the hand and time of the robot arm 5 in the operation information database 17 are formed by processes in which, for example, as shown in
The following description will discuss the operation correcting database 18 in detail.
The operation correcting information database 18 stores pieces of information (operation correcting information) relating correcting methods for the operations of the robot arm 5, for example, shown in
The alternation condition setting unit 82 has a function for setting an alternation condition of the operation of the robot arm 5 (alternation conditions including a condition as to whether or not a correcting operation of the robot arm 5 is carried out), that is, it has such a function that, for example, by estimating an intention of a manipulation of the person 4 with respect to the operation of the robot arm 5, a target value of operation information relating to an operation of the robot arm 5 (a value relating to a hand position, or an orientation, or the like at which the robot arm 5 will finally arrive, or a value relating to a hand position or an orientation at which the robot arm 5 will not finally arrive, but which forms a target value when the hand position, or the orientation, or the like is moved) is estimated. The alternation condition setting unit 82 receives an instruction for starting an operation correction together with the operation correcting unit 20 from the data input IF 26 through the operation instruction unit 27, midway during an operation of the robot arm 5 in any one of modes including an impedance control mode, a position control mode, and a force control mode, which will be described later, or a control mode in which these modes are combined with one another in respectively different directions, based upon pieces of information relating to the position and orientation as well as force and time of the operation information database 17. Then, based upon the operation correcting information of the operation correcting information database 18, the alternation condition setting unit 82 exerts such a function that it sets an alternation condition (for example, estimates a target value) that is used when the person 4 applies a force to the robot arm 5 so as to correct the operation information of the robot arm 5 in the operation information database 17.
The operation correcting unit 20 receives an instruction for starting an operation correction by using the operation correcting unit 20 from the data input IF 26 through the operation instruction unit 27, midway during an operation of the robot arm 5 in any one of modes including an impedance control mode, a position control mode, and a force control mode, which will be described later, or a control mode in which these modes are combined with one another in respectively different directions, based upon pieces of information relating to the position and orientation as well as force and time of the operation information database 17. Then, the operation correcting unit 20 has such a function that it corrects the operation information of the robot arm 5 of the operation information database 17 in accordance with the alternation condition (for example, an estimated target value of operation information) set by the alternation condition setting unit 82. Additionally, the operation correcting unit 20 may be proposed to also include the function of the alternation condition setting unit 82; however, in the present specification, the operation correcting unit 20 and the alternation condition setting unit 82 are arranged separately depending on the above-mentioned functions.
The following description will discuss functions of the operation correcting unit 20 and alternation condition setting unit 82.
The person 4 selects a job that is desirably executed by the robot arm 5 among “operation IDs” of jobs in the operation information database 17 through the data input IF 26, and inputs the selected information to the operation instruction unit 27 to be specified. With respect to the “job ID” specified by the person 4 through the data input IF26, the instruction of the job selection is received by the alternation condition setting unit 82 and the operation instruction unit 27, and the operation instruction unit 27 gives an instruction for selecting the job to the alternation condition setting unit 82 and the operation correcting unit 20. The operation correcting unit 20 gives an instruction to the control parameter managing unit 21 so as to execute the operation information of the job having the “job ID” selected among the operation information database 17 (more specifically, information relating to the position information, orientation information, time information, and force information) in accordance with the flag, with the control mode being set to be operated.
More specifically, in the case where the job having “1” of the “job ID” of
In the same manner, in the case where the job having “2” of the “job ID” of
Next, the person 4 gives an instruction for starting the operation of the selected job to the operation instruction unit 27 through the data input IF 26.
In the case where a job having “1” in the “job ID” is selected, upon receipt of an instruction from the operation instruction unit 27 by the alternation condition setting unit 82 and the operation correcting unit 20, the operation correcting unit 20 gives an instruction to the control parameter managing unit 21 so as to carry out jobs in the force control mode in the z-axis direction, with the other axes being operated in the position control mode. Then, as shown in
In the case where a job having “2” in the “job ID” is selected, upon receipt of an instruction from the operation instruction unit 27 by the alternation condition setting unit 82 and the operation correcting unit 20, the operation correcting unit 20 gives an instruction to the control parameter managing unit 21 so as to carry out a mixing operation in the position control mode. Then, as shown in
An explanation will be given by exemplifying a case in which the person 4 confirms the state of cooking materials in the pot 3, and, as shown in
Upon trying to start the correction, the person 4 gives an instruction for starting the correction to the operation instruction unit 27 by using the data input IF 26. Upon receipt of the instruction for starting the correction through the data input IF 26, the operation instruction unit 27 gives an output to the operation correcting unit 20 and the alternation condition setting unit 82 so as to start the correction.
Upon receipt of the instruction for starting the correction from the data input IF 26, the operation correcting unit 20 gives an instruction to the control parameter managing unit 21 so as to carry out the operation with the control mode being set in accordance with the correction parameter flag in the operation information database 17 and the alternation condition set by the alternation condition setting unit 82.
In the same manner, while a job having “2” in the “job ID” of
Next, in the case where, as shown in
Upon correction by the person 4 during the above-mentioned operation, in particular, at the time of starting the manipulation or completing the manipulation of the robot arm 5, the hand of the person 4 tends to shake and the correction is carried out with the hand shake contained therein, with the result that the operation correction cannot be carried out properly. In most cases, the hand shake becomes greater as the operation of the robot arm 5 becomes faster.
Therefore, the alternation condition setting unit acquires pieces of information relating to the hand position and orientation of the robot arm 5 from the point of time when the person 4 started the correction until the completion thereof, from the control unit 22 through the control parameter managing unit 21, every certain fixed period of time (for example, every 0.2 sec.).
Next, the operation correcting unit 20 retrieves operation correcting information having the same ID as the “job ID” that is currently in operation in the operation correcting information database 18. In this example, since the job having “2” in the “job ID” of the operation information database 17 of
Next, by using the smallest ID of the “IDs” of
Next, the “completion time” is calculated by the alternation condition setting unit 82. More specifically, the “completion time (table ID)” of
Next, by using the greatest ID of the “IDs” among the data acquired by the alternation condition setting unit 82 as a reference, the alternation condition setting unit 82 calculates elapsed periods of time backward in succession, and the section in which the elapsed period of time has reached the “completion time” (“1 second” in this example), previously calculated by the alternation condition setting unit 82, is corrected by the operation correcting unit 20 by using the method described in the correcting method in the operation correcting information (“deletion” in this example). In the example of
Additionally, in this example, as shown in
Moreover, depending on jobs, in the case where, even during a fast operation, the correction can be made without causing a hand shake so much, or in the case where, in contrast, even during a slow operation, the job causes a hand shake in most cases, it becomes possible to set a correction period of time suitable for the corresponding job, by switching the table IDs for each of the job IDs. At this time, as to the determination between the former case and the latter case, without carrying out the determination automatically, the table of
As described above, by carrying out the correction using the operation correcting information, at the time of the operation start and upon completion of the operation for correction, even if a hand shake occurs in the hand of the person 4 due to the velocity of the robot arm 5 in operation, it is possible to prevent the correction from being made out with the shake being included.
Additionally, in this example, since an attempt is made to correct only the operation in the z-axis direction, only the 2nd bit of the correction parameter flag of
As described above, the alternation condition setting unit 82 and the operation correcting unit 20 make it possible to make a correction while preventing a hand shake of the hand of the person 4 at the time of the operation start and upon completion of the operation for correction caused when the person 4 applies a force to the robot arm 5 while the robot arm 5 is being operated based upon the operation information of the operation information database 17.
Accordingly, the operation correcting unit 20 can make the correction, while preventing a hand shake of the hand of the person 4 at the time of the operation start and upon completion of the operation for correction caused when the person 4 applies a force to the robot arm 5 while the robot arm 5 is being operated based upon the operation information of the operation information database 17.
Reference numeral 15 represents an operation storage unit that stores operation information corrected by the operation correcting unit 20 in the operation information database 17. Moreover, to the operation storage unit 15, pieces of information of the hand position (position of the hand 30) and orientation of the robot arm 5 and a force applied to the robot arm 5 by the person 4 are also inputted from the control parameter managing unit 21, and stored by the operation storage unit 15.
The control apparatus main unit 11 is designed to have a control parameter managing unit 21 and a control unit 22. Tip unit positions and information of force or the like of the robot arm 5 are inputted and outputted to and from each other between the control unit 22 and the control parameter managing unit 21.
The following description will discuss the control parameter managing unit 21 in detail.
The control parameter managing unit 21 carries out a setting by which control modes of the robot arm 5 are switched among three modes, that is, the hybrid impedance control mode, the force hybrid impedance control mode, and the high-rigidity position control mode, based upon an instruction of the operation correcting unit 20. Moreover, the control parameter managing unit 21 carries out a setting process of mechanical impedance setting values at the time of the hybrid impedance control mode as well as at the time of the force hybrid impedance control mode. Furthermore, the control parameter managing unit 21 also carries out a setting process of the hand position and orientation target correcting output rdΔ to be outputted by the impedance calculation unit 51, which will be described later, and a setting process of operation information to be sent to the target track generation unit 55. Based upon an instruction from the operation correcting unit 20, the control parameter managing unit 21 gives an instruction to the control unit 22 so as to operate the robot arm 5 in accordance with the set control mode so that the robot arm is operated under control of the control unit 22. Moreover, the control parameter managing unit 21 sends information of the tip-unit position or force of the robot arm 5, or the like, from the control unit 22 to the operation correcting unit 20 and the alternation condition setting unit 82.
The position control mode is a mode in which the robot arm 5 is operated based upon the hand position and orientation target vector instruction of the target track generation unit 55, which will be described later, that is, a mode in a control method for controlling the operation of the robot arm 5 so as not to be moved even upon application of the force to the robot arm 5 by the person 4. More specifically, the position control mode is a mode in which the robot arm 5 is operated during a job such as a mixing job or a wiping job.
The impedance control mode corresponds to a mode for a control method in which the operation of the robot arm 5 is controlled in response to a force that is detected by the force detection unit 53 and applied to the robot arm 5 by the person 4, or the like. For example, as shown in
(iii) Hybrid Impedance Control Mode
The hybrid impedance control mode is a mode of a control method for controlling operations of the robot arm 5 so that, during an operation of the robot arm 5 in the position control mode, a force applied to the robot arm 5 is detected by the force detection unit 53 and the robot arm 5 is actuated in response to the force detected by the force detection unit 53. More specifically, in the case where, as shown in
The force control mode is a control mode for a control method in which the operation of the robot arm 5 is controlled so that the operation is carried out, with a target object being pressed by the robot arm 5 with a force that is set to the control parameter managing unit 21 from the operation correcting unit 20. For example, as shown in
The force hybrid impedance control mode is a mode of a control method for controlling operations of the robot arm 5 so that switching is made among the hybrid impedance control mode, the impedance control mode, or the position control mode in the respective different directions of the six axes, and so that the operation of the robot arm 5 is controlled so as to be carried out in the force control mode by which the operation is carried out with a specified force being applied thereto. Additionally, it is not possible to set the impedance control mode in a direction in which the force control mode has been set (that is, the force control mode and the impedance control made are in a mutually exclusive relationship).
For example, as shown in
(vii) High-Rigidity Position Control Mode
The high-rigidity position control mode is a mode in which the position control mode during the operation of the robot arm 5 is allowed to have higher rigidity. More specifically, this mode is achieved by making higher the gain in the positional error compensating unit 56, which will be described later, so that even when the person 4 applies a force thereto, the robot arm 5 cannot be easily moved; therefore, since no influences due to a drag from the contact surface are applied thereto, it becomes possible to detect the force applied by the person 4 correctly.
With respect to these control modes, upon operating the robot arm 5, respective appropriate control modes are set differently in the respective directions and orientations of the robot arm 5, and the robot arm 5 is operated correspondingly.
Moreover, during the operation of the robot arm 5 in the hybrid impedance control mode or in the force hybrid impedance mode, the person 4 can alter the setting of the hand position and orientation target correcting output rdΔ to be outputted by the mechanical impedance parameter or the impedance calculation unit 51, in accordance with the parameter to be corrected.
The setting parameters of the mechanical impedance set values include inertia M, viscosity D, and rigidity K. The setting of each of the parameters of the mechanical impedance set values is carried out by using a correction value based upon the following evaluation equations.
[Equation 1]
M=KM×(correction value) Equation (3)
[Equation 2]
D=KD×(correction value) Equation (4)
[Equation 3]
K=KK×(correction value) Equation (5)
In the above-mentioned equations (3) to (5), KD, and KK are gains, and correspond to certain constant values respectively.
The control parameter managing unit 21 outputs the inertia M, viscosity D, and rigidity K, that is, the mechanical impedance parameters calculated based upon the equations (3) to (5), to the control unit 22.
As shown in the equations (3) to (5), in the case where, with respect to the mixing operation in an upper portion of the pot 3 being carried out by using the ladle 9 grabbed by the hand 30 of the robot arm 5, as shown in
Alternatively, another method is proposed in which among the respective components of the target correcting output rdΔ of the hand position and orientation to be outputted by the impedance calculation unit 51, all the values except for the value of the z-axis are set to 0. With this arrangement, since no movement is carried out by the force of the person 4 except for that in the z-axis direction, it becomes possible to prevent an erroneous operation.
Moreover, as described earlier, it is necessary to transfer pieces of information relating to the hand position and orientation of the robot arm 5, as well as the force applied by the person 4, from the control parameter managing unit 21 to the operation storage unit 15, the operation correcting unit, 20 and the alternation condition setting unit 82. For this reason, upon receipt of the information of the hand position of the robot arm 5 and the force by the control parameter managing unit 21 from the control unit 22, the control parameter managing unit 21 informs the operation storage unit 15, the operation correcting unit 20, and the alternation condition setting unit 82 of these pieces of information. Moreover, the control parameter managing unit 21 informs the control unit 22 of pieces of operation information, such as the position, orientation, and time, that have been inputted to the control parameter managing unit 21 from the operation correcting unit 20.
Referring to
From the robot arm 5, a current value (joint angle vector) vector q=[q1, q2, q3, q4, q5, q6]T of each joint angle, measured by the encoder 44 of each of the joint axes, is outputted, and received by the control unit 22 through the input/output IF 24. In this case, q1, q2, q3, q4, q5, q6 are joint angles of the first joint portion 35, the second joint portion 36, the third joint portion 37, the fourth joint portion 38, the fifth joint portion 39, and the sixth joint portion 40.
In the target track generation unit 55, in order to operate the robot arm 5 in the position control mode, or in the hybrid impedance control mode, target tip-unit position and orientation target vectors rd are generated by the target track generation unit 55 from the operation information generated by the operation correcting unit 20 and inputted to the target track generation unit 55 through the control parameter managing unit 21.
More specifically, when the operation information is inputted to the target track generation unit 55 from the operation correcting unit 20 through the control parameter managing unit 21, the tip-unit position and orientation target vectors rd, which are used for achieving a target operation of the robot arm 5, are outputted from the target track generation unit 55 to the positional error calculation unit 80. The target operation of the robot arm 5 is provided with a position and orientation (rd0, rd1, rd2, . . . ) for each point of time (t=0, t=t1, t=t2, . . . ) from the operation correcting unit 20 in accordance with a target job, and the target track generation unit 55 interpolates the track between the respective points by using polynomial interpolation to generate the tip-unit position and orientation target vectors rd.
At the time of the impedance control mode, the tip-unit position of the robot arm 5 at the time of switching to the impedance control mode is outputted as the tip-unit position and orientation target vectors rd to form a target. Moreover, an open/close instruction of the hand 30 is given to the hand control unit 54 to be described later, by using an open/close flag relating to the hand 30 in the operation information database 17.
Moreover, in the target track generation unit 55, in order to operate the robot arm 5 in the force hybrid impedance control mode, or in the high-rigidity position control mode, target tip-unit position and orientation target vectors rd are generated by the target track generation unit 55 from the operation information generated by the operation correcting unit 20 and inputted to the target track generation unit 55 through the control parameter managing unit 21.
More specifically, when the operation information is inputted to the target track generation unit 55 from the control parameter managing unit 21, the tip-unit position and orientation target vectors rd, the force vector fd of the hand generated in the target track generation unit 55, and flags indicating which parameter is valid separately depending on the respective directions, which are used for achieving a target operation of the robot arm 5, are outputted from the target track generation unit 55 to the positional error calculation unit 80. In the position control mode, the target operation of the robot arm 5 is provided with a position and orientation (rd0, rd1, rd2, . . . ) and a force (fd0, fd1, fd2, . . . ) at each point of time (t=0, t=t1, t=t2, . . . ) from the operation correcting unit 20 in accordance with a target job. The target track generation unit 55 interpolates the track and force between the respective points by using polynomial interpolation to generate the tip-unit position and orientation target vectors rd and the force vector fd. Moreover, in the same manner as in the first embodiment, an open/close instruction of the hand 30 is given to the hand control unit 54 to be described later, by using an open/close flag relating to the “hand” in the operation information database 17.
Reference numeral 54 represents the hand control unit 54, which, based upon the open/close flag inputted from the target track generation unit 55, gives an instruction to the robot arm 5 through the input/output IF 24 so as to open/close the hand 30.
Reference numeral 53 represents the force detection unit which detects an external force Fext to be applied to the robot arm 5 by a contact between the person 4 or the like and the robot arm 5. In this case where the robot arm 5 is being operated with an object having a weight of m being grabbed by its hand, mg is preliminarily reduced from the detected Fext. In this case, g represents gravitational acceleration. The value of a mass m of the grabbed object can be inputted to the force detection unit 53 through the data input IF 26, by the person 4 prior to grabbing the object.
To the force detection unit 53, a current value i=[i1, i2, i3, i4, i5, i6]T flowing through the motor 43 for driving each of the joint portions of the robot arm 5 measured by the current sensor of the motor driver 27, is inputted through the input/output IF 24 so that the force is detected by the force detection unit 53. Moreover, the current value q of each joint angle, measured by each of the encoders 44, is received by the force detection unit 53 through the input/output IF 24, and a joint angle error compensating output uqe is also received thereby from an approximation reverse kinematical calculation unit 57, which will be described later. The force detection unit 53, which functions as an observer, calculates a torque τext that is generated in each of the joint portions by an external force applied to the robot arm 5, based upon the electric current value i, the current value q of each of the joint angles, and the joint angle error compensating output uqe. Moreover, the force detection unit 53 also converts the torque to an equivalent hand external force Fext of the hand of the robot arm 5, based upon Fext=Jv(q)−Tτhd ext−[0, 0, mg]T, and outputs the equivalent hand external force Fext thus converted to an impedance calculation unit 51. In this case, Jv(q) is a Jacob matrix that satisfies the following equation:
v=Jv(q)q [Equation 4]
where v=[vx, vy, vz, ωx, ωy, ωz]T, and (vx, vy, vz) represent a translation speed of the hand of the robot arm 5 in the hand coordinate system 42, while (ωx, ωy, ωz) represent an angular velocity of the hand of the robot arm 5 in the hand coordinate system 42. Moreover, m represents a weight of a grabbed object grabbed by the hand 30, and g represents gravitational acceleration. The value of the weight m of the grabbed object may be inputted to the force detection unit 53 through the input/output IF 24 by the person 4 prior to the grabbing process of the object. Moreover, the grabbing process of the object is actually carried out by the hand 30 of the robot arm 5, and based upon the estimated result of the equivalent hand external force Fext of the force detection unit 53 at this time, the value m of the weight of the grabbed object may be calculated.
The impedance calculation unit 51 is a unit having a function for allowing the robot arm 5 to achieve the control of a mechanical impedance value of the robot arm 5 to a mechanical impedance set value, and upon switching to the position control mode by the control parameter managing unit 21, 0 is outputted therefrom.
In contrast, upon switching to the impedance control mode or the hybrid impedance control mode, based upon the inertia M, viscosity D, and rigidity K that are impedance parameters preliminarily set by the control parameter managing unit 21, the current value q of each of the joint angles, and the external force Fext detected by the force detection unit 53, the hand position and orientation target correcting output rdΔ, used for allowing the robot arm 5 to achieve the control of the mechanical impedance value of the robot arm 5 to a mechanical impedance set value, is calculated by the impedance calculation unit 51 based upon the following equation (6) so that the hand position and orientation target correcting output rdΔ thus calculated and found is outputted to the positional error calculation unit 80.
Moreover, in the case where, there is a force component specified by “flag” upon switching to the force hybrid impedance control mode in the control parameter managing unit 21, based upon the inertia M, viscosity D, and rigidity K that are impedance parameters preliminarily set by the control parameter managing unit 21, the current value q of each of the joint angles and the external force Fext detected by the force detection unit 53, and fd outputted from the target track generation unit 55, the hand position and orientation target correcting output rdΔ, used for allowing the robot arm 5 to achieve the control of the mechanical impedance value of the robot arm 5 to a mechanical impedance set value, is calculated by the impedance calculation unit 51 based upon the following equation (10) so that the hand position and orientation target correcting output rdΔ thus calculated and found is outputted to the positional error calculation unit 80.
The hand position and orientation target correcting output rdΔ is added to the hand position and orientation target vector rd outputted by the target track generation unit 55 in the positional error calculation unit 80 so that a hand position and orientation correcting target vector rdm is generated. In the case where, at the time of the hybrid impedance control mode, the operation of the robot arm 5 is regulated in accordance with the correcting parameter, for example, in order to allow the robot arm 5 to move only in the z-axis direction, the impedance calculation unit 51 sets components of the hand position and orientation target correcting output rdΔ other than the z component to 0.
[Equation 5]
r
dΔ=(s2{circumflex over (M)}+s{circumflex over (D)}+{circumflex over (K)})−1Fext Equation (6)
where the following equations are satisfied and s represents a Laplace operator.
In this case, M, D, and K are calculated by equation (7), equation (8) and equation (9).
Reference numeral 58 represents the forward kinematical calculation unit to which a joint-angle vector q that is the current value q of each of the joint angles measured by the encoder 44 of each of the joint axes of the robot arm 5 is inputted through the input/output IF 24. In the forward kinematical calculation unit 58, geometrical calculations are carried out to convert the joint angle vector q of the robot arm 5 to the hand position and orientation vector r by the forward kinematical calculation unit 58. The hand position and orientation vector r, calculated in the forward kinematical calculation unit 58, is outputted to the positional error calculation unit 80, the impedance calculation unit 51, and the target track generation unit 55.
Reference numeral 56 represents the positional error compensating unit, and after an error re between the hand position and orientation vector r calculated by the forward kinematical calculation unit 58 from the joint angle vector q measured in the robot arm 5 and the hand position and orientation correcting target vector rdm has been found by the positional error calculation unit 80, the error re is inputted to the positional error compensating unit 56, and a positional error compensating output ure is outputted from the positional error compensating unit 56 to the approximation reverse kinematical calculation unit 57.
Moreover, when the high-rigidity position control mode is set, the positional error compensating unit 56 sets three gains, that is, proportional, differential, and integral gains, that are diagonal matrixes of a constant to predetermined greater values (that is, values greater than those in the normal position control mode. More specifically, the values are set about two times as high as those values in the normal position control mode. In this case, “high rigidity” means higher rigidity in comparison with that in the normal position control mode. When the values are set to two times as high as those values in the normal position control mode, the rigidity can be made about two times as high as that in the normal position control mode). Thus, it becomes possible to achieve a position controlling process with high rigidity. Additionally, by changing the gain values for each of the components, for example, a controlling process can be carried out with high rigidity only in the z-axis direction, with the normal positional control being carried out in the other directions.
Based upon the positional error compensating output ure inputted thereto from the positional error compensating unit 56 and the joint angle vector q measured in the robot arm 5, the approximation reverse kinematical calculation unit 57 carries out approximation calculations of reverse kinematics by using an approximation uout=Jr(q)−1uin.
r=J
r(q)q [Equation 10]
In this case, Jr(q) is a Jacob matrix that satisfies the above equation, uin is an input to the approximation reverse kinematical calculation unit 57, and uout is an output from the approximation reverse kinematical calculation unit 57, and supposing that the input uin is a joint angle error qe, a conversion equation from the hand position and orientation error re to the joint angle error qe, as represented by qe=Jr(q)−1re, is obtained. Therefore, when the positional error compensating output ure is inputted to the approximation reverse kinematical calculation unit 57 from the positional error compensating unit 56, a joint angle error compensating output que for use in compensating for the joint angle error qe is outputted from the approximation reverse kinematical calculation unit 57 to the motor driver 25 of the robot arm 5 through the input/output IF 24 as an output from the approximation reverse kinematical calculation unit 57.
The joint angle error compensating output Uqe is given to the motor driver 25 of the robot arm 5 through the D/A board of the input/output IF 24 as a voltage instructing value, and each of the joint portions is consequently driven to forwardly/reversely rotate by each of the motors 43 so that the robot arm 5 is operated.
With respect to the control unit 22 configured as described above, the following description will discuss a principle of the impedance-controlling operation of the robot arm 5.
The impedance controlling operation basically corresponds to a feed-back controlling (position-controlling) operation of the hand position and the orientation error re by the positional error compensating unit 56 (in the same manner as in the hybrid impedance control), and a portion, surrounded by a dotted line in
Upon switching to the impedance control mode or the hybrid impedance control mode or the force hybrid impedance control mode in the control parameter managing unit 21, the hand position and orientation target correcting output rdΔ is added by the impedance calculation unit 51 in the positional error calculation unit 80 with respect to the position control system 59 explained earlier so that the target value of the hand position and orientation is corrected. For this reason, in the position control system 59, the target value of the hand position and orientation is slightly deviated from the original value, with the result that an operation for controlling the mechanical impedance value of the robot arm 5 to the appropriately determined set value is achieved so that the positional controlling operation of the position control system 59 can be corrected. Since the hand position and orientation target correcting output rdΔ is calculated by equation (6) in the case of the impedance control mode or the hybrid impedance control mode, and since the output is calculated by equation (10) in the case of the force hybrid impedance control mode, operations for controlling the mechanical impedance values of the inertia M, viscosity D, and rigidity K of the robot arm 5 to the appropriately determined set values can be achieved.
The peripheral apparatus 14 is designed to have a data input IF (interface) 26, an input/output IF (interface) 24, a motor driver 25, and a display unit 2. Control information such as control signals is outputted from the control unit 22 to the input/output IF 24. Correcting information, such as a correcting parameter or the like stored in the operation information database 17, and an image, a photograph, or a text corresponding to an operation ID are outputted from the operation correcting unit 20 to the display unit 2 so that the image, photograph, or text of the operation of the robot arm 5, described in the operation information, is displayed on the display unit 2.
The input/output IF 24 is designed to have, for example, a D/A board, an A/D board, and a counter board that are connected to an expansion slot, such as a PCI bus of a personal computer. To the input/output IF 24, respective pieces of joint angle information outputted from encoders 44, which will be described later, of the respective joint portions of the robot arm 5, and angle information outputted from an encoder 61 of the hand 30 are inputted, and the input/output IF 24 inputs these to the control unit 22. Moreover, control information, such as control signals, is also inputted to the input/output IF 24 from the control unit 22, and the input/output IF 24 outputs control information, such as a control instruction value, to the motor driver 25. The motor driver 25 outputs control information, such as control instruction values, to a motor 43, which will be described later, of each of the joint portions of the robot arm 5 and a motor 62 of the hand 30.
Reference numeral 26 represents a data input IF (interface) through which the person 4 inputs or alters operation information to be described later by using an input device, such as a keyboard, a mouse or a microphone. Moreover, the data input IF 26 may be designed so that, by using an input device such as a button 13a of the operation panel 13 of
Reference numeral 2 represents the display unit that is prepared as, for example, a display device formed on the side surface of the robot arm 5 or the work bench 7, and used for displaying operation information and the like.
Referring to a flow chart of
The joint angle data (joint variable vector or joint angle vector q), calculated by each of the encoders 44 of the joint portions of the robot arm 5, is received by the control unit 22 of the control apparatus main unit 11 from the encoder 44 through the input/output IF 24 (step S1).
Next, based upon the joint angle data (joint variable vector or joint angle vector q) thus received by the control unit 22, the reverse kinematical calculation unit 57 executes calculations, such as the Jacob matrix Jr, required for kinematical calculations of the robot arm 5 (step S2).
Next, the forward kinematical calculation unit 58 calculates the current hand position and orientation vector r of the robot arm 5 from the joint angle data (joint variable vector or joint angle vector q) from each of the encoders 44 of the robot arm 5, and outputs the resulting data to the positional error calculation unit 80, the target track generation unit 55, and the impedance calculation unit 51 (step S3).
Next, based upon operation information transmitted from the operation correcting unit 20 through the control parameter managing unit 21, the target track calculation unit 55 calculates the hand position and orientation target vector rd of the robot arm 5, and the target force vector fd, and at the time of the impedance control mode, outputs the hand position of the robot arm 5 to the positional error calculation unit 80 as a target hand position and orientation target vector rd (step S4).
Next, the force detection unit 53 calculates an equivalent tip-unit external force Fext at the hand of the robot arm 5 from a driving current value i of the motor 43, the joint angle data (joint variable vector or joint angle vector q), and the joint angle error compensating output uqe, and outputs the resulting data to the impedance calculation unit 51 (step S5).
Next, in step S6, in the case where the operation correcting unit 20, which will be described later, gives an instruction that “correction is required”, while the force component of the six axes is to be corrected by a correction parameter, in the control parameter managing unit 21, the control mode of the component set as the force component is switched to the high-rigidity position control mode. Thereafter, the process proceeds to step S7.
Moreover, in step S6, in the case where the hybrid impedance control mode is set in the control parameter managing unit 21, upon correcting a positional component of the six axes, the positional component to be desirably corrected is altered to the impedance control mode. Thereafter, the process proceeds to step S9.
Furthermore, in step S6, in the case where the position control mode is set in the control parameter managing unit 21, the process proceeds to step S8, and in step S8, the position control mode is set. Alternatively, in step S6, in the case where the force control mode is set in the control parameter managing unit 21, the process proceeds to step S9, and the force control mode is set in step S9.
In step S7 (process in an impedance calculation means 51), in the case where the high-rigidity position control mode is set in the control parameter managing unit 21, the impedance calculation unit 51 sets the hand position and orientation target correcting output rdΔ to 0 vector. Thereafter, the process proceeds to step S10.
In step S8 (processes in the impedance calculation means 51), in the case where the position control mode is set in the control parameter managing unit 21, the impedance calculation unit 51 sets the hand position and orientation target correcting output rdΔ to 0 vector. Thereafter, the process proceeds to step S11.
In step S9, in the case where the impedance control mode or the force control mode is set in the control parameter managing unit 21, based upon the inertia M, viscosity D, and rigidity K of the mechanical impedance parameters, set by the control parameter managing unit 21, the joint angle data (joint angle vector q) and the equivalent tip-unit external force Fext to be applied to the robot arm 5, calculated by the force detection unit 53, the hand position and orientation target correcting output rdΔ is calculated by the impedance calculation unit 80. Moreover, based upon the correction parameters, any one of the component values of the hand position and orientation target correcting output rdΔ is set to 0. Thereafter, the process proceeds to step S11.
In step S11, the positional error compensating unit 56 calculates a hand position and orientation correction target vector rdm, which is a sum between the hand position and orientation target vector rd and the hand position and orientation target correcting output rdΔ, and an error re of the hand position and orientation corresponding to a difference between the hand position and orientation target vector rd and the current hand position and orientation vector r. As a specific example of the positional error compensating unit 56, a PID compensator is proposed. By appropriately adjusting three gains, that is, proportional gain, differential gain, and integral gain, corresponding to an orthogonal matrix of a constant, the controlling process of the positional error compensating unit 56 is executed so as to converge the positional error to 0. Thereafter, the process proceeds to step S12.
In step S10, by appropriately adjusting three gains, that is, proportional gain, differential gain, and integral gain, corresponding to an orthogonal matrix of the constant of the positional error compensating unit 56, the controlling process of the positional error compensating unit 56 is executed so as to converge the positional error to 0. By reducing each of the gains to a certain value, the positional controlling process with high rigidity is achieved. Thereafter, the process proceeds to step S12.
In step S12, in the approximation reverse kinematical calculation unit 57, by multiplying the positional error compensating output ure by a reverse matrix of the Jacob matrix Jr calculated in step S2 by using the approximation reverse kinematical calculation unit 57, the approximation reverse kinematical calculation unit 57 converts the positional error compensating output ure from the value relating to the error of the hand position and orientation to a joint angle error compensating output uqe that is a value relating to the error of the joint angle.
Next, in step S13, the joint angle error compensating output uqe is given to the motor driver 25 from the approximation reverse kinematical calculation unit 57 through the input/output IF 24. Based upon the joint angle error compensating output uqe, the motor driver 25 changes the amount of electric current that is flowing through each of the motors 43 of the joint portions. By this change in the amount of electric current, a rotating movement is generated in each of the joint portions in the robot arm 5 so that the robot arm 5 carries out operations.
Referring to a flow chart of
The person 4 is allowed to input a selection instruction corresponding to a job to be desirably executed by the robot arm 5 selected among the jobs in the operation information database 17, that is, a selection instruction for a selected (specified) “job ID”, to the operation instruction unit 27 through the data input IF 26 (step S50).
Next, based upon the selection instruction inputted to the operation instruction unit 27, the operation correcting unit 20 sets a control mode in accordance with the “flag” of the operation information relating to the “job ID” stored in the operation information database 17 and then selected (specified) (step S51).
Next, when the person 4 inputs an instruction for starting the operation of the selected job to the operation instruction unit 27 by using the data input IF 26, the operation instruction unit 27, upon receipt of the operation starting instruction, gives an instruction for carrying out the operation in the set control mode to the control parameter managing unit 21 through the operation correcting unit 20 (step S52). The control parameter managing unit 21 gives an instruction to the control unit 22 so as to operate the robot arm 5 in the set control mode so that the robot arm 5 is operated under control of the control unit 22.
Next, during the operation of the robot arm 5, the person 4 inputs an instruction for starting a correction to the operation instruction unit 27 by using the input IF 26 (step S53). Upon receipt of the instruction for starting a correction, the operation instruction unit 27 inputs an instruction for starting the operation correction to the operation correcting unit 20 and the alternation condition setting unit 82. Then, in accordance with the “correcting parameter flag”, the operation correcting unit 20 sets the control mode, and gives an instruction to the control parameter managing unit 21 so as to operate the robot arm 5 in the set control mode (step S54).
Next, by allowing the person 4 to grab the robot arm 5 and apply a force to the robot arm 5 in a desired correcting direction, the alternation condition setting unit 82 corrects the operation information. More specifically, the alternation condition setting unit 82 acquires information of the hand position and orientation of the robot arm 5 every certain fixed period of time (for example, every 0.2 msec.) from the point of time when the person 4 started the correction until the completion thereof (step S55) so that in accordance with the operation correcting information, the acquired operation is corrected by the operation correcting unit 20 (step S56).
Next, the operation information corrected by the operation correcting unit 20 is stored in the operation information database 17 by the operation storage unit 15 (step S57).
By using the above-mentioned operation steps S1 to S13 of
Additionally, in this example, the explanation has been given by exemplifying the mixing job to be operated in the position control mode; however, in the case where, as shown in
Moreover, although the explanation has been given such that upon receipt of a correcting start instruction from the person 4, the position control mode is switched to the hybrid impedance control mode, the operation may be always carried out not in the position control mode but in the hybrid impedance control mode during the operation of the robot arm 5. In this case, although it is not possible to prevent an erroneous operation when the person 4 erroneously applies a force to the robot arm 5, the correcting process can be always carried out without the necessity of the correcting start instruction.
Moreover, although the explanation has been given such that upon receipt of a correcting start instruction from the person 4, the position control mode is switched to the hybrid impedance control mode, the operation may be always carried out not in the position control mode but in the hybrid impedance control mode during the operation of the robot arm 5. In this case, although it is not possible to prevent an erroneous operation when the person 4 erroneously applies a force to the robot arm 5, the correcting process can be always carried out without the necessity of the correcting start instruction.
Since the basic structure of a control apparatus of the robot arm in a second embodiment of the present invention is the same as that of the first embodiment, explanations for the common portions will be omitted, and the following description will discuss only different portions in detail.
In the same manner as in the first embodiment, as shown in
In the same manner as in the first embodiment, the operation correcting unit 20 allows the person 4 to select a job to be desirably executed by the robot arm 5 among jobs relating to “job IDs” of the jobs in the operation information database 17 and to input the selected information to the operation instruction unit 27 so as to be specified. When the operation instruction unit 27 receives the instruction for the job selection of the job having the “job ID” specified by the person 4 through the data input IF 26, the operation instruction unit 27 gives an instruction for the job selection to the alternation condition setting unit 82 and the operation correcting unit 20 so that the corresponding job is selected. The operation correcting unit 20 sets the control mode based upon the “flag” of the selected job among the jobs in the operation information database 17. Moreover, the operation correcting unit 20 gives an instruction to the control parameter managing unit 21 so that an operation is carried out in the set control mode. When the person 4 inputs an instruction for starting the correction to the operation instruction unit 27 through the data input IF 26, the operation correcting unit 20 sets a control mode based upon the “correcting parameter flag” of the operation information database 17 through the operation instruction unit 27, and gives an instruction to the control parameter managing unit 21 so as to carry out an operation in the set control mode. The alternation condition setting unit 82 acquires a force applied to the hand of the robot arm 5 and the hand position and orientation of the robot arm 5 from the point of time when the person 4 started the correction until the completion thereof, every certain fixed period of time (for example, every 0.2 sec.).
Next, the operation correcting unit 20 retrieves operation correcting information having the same ID as the “job ID” that is currently in operation in the operation correcting information database 18. In this example, since the job having “2” in the “job ID” of the operation information database 17 of
Moreover, in the case where a correction can be made without causing a hand shake too much depending on jobs, by switching table IDs for each job ID, a threshold value suitable for the corresponding job can be set.
Since the basic structure of a control apparatus of the robot arm in a third embodiment of the present invention is the same as that of the first embodiment, explanations for the common portions will be omitted, and the following description will discuss only different portions in detail.
In the same manner as in the first embodiment, as shown in
In the same manner as in the first embodiment, the operation correcting unit 20 allows the person 4 to select a job to be desirably executed by the robot arm 5 among jobs relating to “job IDs” of the jobs in the operation information database 17 through the data input IF 26 and to input the selected information to the operation instruction unit 27 so as to be specified. When the operation instruction unit 27 receives the instruction for the job selection of the job having the “job ID” specified by the person 4 through the data input IF 26, the operation instruction unit 27 gives an instruction for the job selection to the alternation condition setting unit 82 and the operation correcting unit 20 so that the corresponding job is selected. The operation correcting unit 20 sets the control mode based upon the “flag” of the selected job among the jobs in the operation information database 17. Moreover, the operation correcting unit 20 gives an instruction to the control parameter managing unit 21 so that an operation is carried out in the set control mode. When the person 4 inputs an instruction for starting the correction to the operation instruction unit 27 through the data input IF 26, the operation correcting unit 20 sets a control mode based upon the “correcting parameter flag” of the operation information database 17 through the operation instruction unit 27, and gives an instruction to the control parameter managing unit 21 so as to carry out an operation in the set control mode. The alternation condition setting unit 82 acquires the force applied to the hand of the robot arm 5 and the hand position and orientation of the robot arm 5 from the point of time when the person 4 started the correction until the completion thereof, every certain fixed period of time (for example, every 0.2 sec.). For example,
Next, the operation correcting unit 20 retrieves operation correcting information having the same ID as the “job ID” that is currently in operation in the operation correcting information database 18. In this example, since the job having “2” in the “job ID” of the operation information database 17 of
Additionally, in the case where, depending on the jobs, there are many jobs of the person 4 and, for example, many collisions occur by a person with a weak force, such as a child or the like, by switching the table ID for each of the job IDs so as to set the threshold value to a smaller value, it is possible to set a threshold value that is suitable for the job. Moreover, in the case where a person with a weak force, such as a child, carries out an operation, upon setting the fact of “being a child” by using the data input IF, as described before, switching may be made to a table for a child, preliminarily prepared.
Since the basic structure of a control apparatus of the robot arm in a fourth embodiment of the present invention is the same as that of the first embodiment, explanations for the common portions will be omitted, and the following description will discuss only different portions in detail.
The following description will be given by exemplifying a job in which a mixing job is carried out while rubbing the bottom of a pot 3 by using the robot system 1, as shown in
Since the respective items of
A correction type determination unit 23 in
Additionally, the type is determined by using the variation in operation information in this case; however, this may be preliminarily determined for each of the operation IDs of the operation information database of
In the same manner as in the first embodiment, the operation correcting unit 20 allows the person 4 to select a job to be desirably executed by the robot arm 5 among jobs relating to “job IDs” of the jobs in the operation information database 17 through the data input IF 26 and to input the selected information to the operation instruction unit 27 so as to be specified. When the operation instruction unit 27 receives the instruction for the job selection of the job having the “job ID” specified by the person 4 through the data input IF 26, the operation instruction unit 27 gives an instruction for the job selection to the alternation condition setting unit 82 and the operation correcting unit 20 so that the corresponding job is selected (in this example, “1” is selected as the “job ID”). The operation correcting unit 20 sets the control mode based upon the “flag” of the selected job among the jobs in the operation information database 17. Moreover, the operation correcting unit 20 gives an instruction to the control parameter managing unit 21 so that an operation is carried out in the set control mode. When the person 4 inputs an instruction for starting the correction to the operation instruction unit 27 through the data input IF 26, the operation correcting unit 20 sets a control mode based upon the “correcting parameter flag” of the operation information database 17 through the operation instruction unit 27, and gives an instruction to the control parameter managing unit 21 so as to carry out an operation in the set control mode. The operation correcting unit 20 acquires a force applied to the hand of the robot arm and the hand position and orientation of the robot arm 5 from the point of time when the person 4 started the correction until the completion thereof, every certain fixed period of time (for example, every 0.2 sec.).
As described above, in the case where, upon applying a force more strongly toward the bottom of the pot 3 with the robot arm 5 being grabbed by the person 4, the x position or the y position on the xy plane is erroneously changed, or the correction is erroneously made to set the velocity slower, although the x position and the y position are the same (more specifically, “time” of the operation information becomes longer), even when no attempt is made to correct the operation on the xy plane, it is possible to prevent the erroneous correction due to an erroneous manipulation by the person 4 by preventing the parameters other than that of force from being corrected.
Since the basic structure of a control apparatus of the robot arm in a fifth embodiment of the present invention is the same as that of the first embodiment, explanations for the common portions will be omitted, and the following description will discuss only different portions in detail.
The following description will be given by exemplifying a job in which a mixing job is carried out while rubbing the bottom of a pot 3 by using the robot system 1, as shown in
Since the respective items of
In the same manner as in the first embodiment, the operation correcting unit 20 allows the person 4 to select a job to be desirably executed by the robot arm 5 among jobs relating to “job IDs” of the jobs in the operation information database 17 through the data input IF 26 and to input the selected information to the operation instruction unit 27 so as to be specified. When the operation instruction unit 27 receives the instruction for the job selection of the job having the “job ID” specified by the person 4 through the data input IF 26, the operation instruction unit 27 gives an instruction for the job selection to the alternation condition setting unit 82 and the operation correcting unit 20 so that the corresponding job is selected. The operation correcting unit 20 sets the control mode based upon the “flag” of the selected job among the jobs in the operation information database 17. Moreover, the operation instruction unit 27 gives an instruction to the control parameter managing unit 21 so that an operation is carried out in the set control mode. When the person 4 inputs an instruction for starting the correction to the operation instruction unit 27 through the data input IF 26, the operation correcting unit 20 sets a control mode based upon the “correcting parameter flag” of the operation information database 17 through the operation instruction unit 27, and gives an instruction to the control parameter managing unit 21 so as to carry out an operation in the set control mode. The alternation condition setting unit 82 acquires a force applied to the hand of the robot arm 5 and the hand position and orientation of the robot arm 5 from the point of time when the person 4 started the correction until the completion thereof, every certain fixed period of time (for example, every 0.2 sec.).
Next, the operation correcting unit 20 retrieves operation correcting information having the same ID as the “job ID” that is currently in operation in the operation correcting information database 18. In this example, since the job having “1” in the “job ID” of the operation information database 17 of
Next, since the “presence or absence of a bias” is “1” in the operation correcting information, the alternation condition setting unit 82 examines whether or not any bias is present in the data of
First, the alternation condition setting unit 82 calculates the velocity of the position and orientation from the operation information of
Additionally, this example has exemplified an arrangement in which a correction is made by carrying out the averaging process in the alternation condition setting unit 82; however, in the case where the description “minimized” is given to the “correcting method” in the operation correcting information of
As described above, in the case where, midway during the acceleration or deceleration of the hand position and orientation in the x,y components of the robot arm 5, the person 4 attempts to correct the force component of the z-component to a constant value by using the operation correcting unit 20, it is possible to prevent the force in the z-component from being erroneously corrected to an increased value or a reduced value, in a manner so as to follow the accelerating or decelerating direction of the x, y components of the robot arm 5.
Additionally, the correction is carried out on the force information in this example; however, even in the case where, midway during an increasing or decreasing state of the force in the z-component of the robot arm 5, upon correcting the position and velocity of the x,y components, the velocity of each of the x,y components is decelerated or accelerated in a manner so as to follow the z-component of the robot arm 5, the operation correcting unit 20 can carry out an operation correction based upon the operation correcting information in the same manner.
Since the basic structure of a control apparatus of the robot arm in a sixth embodiment of the present invention is the same as that of the first embodiment, explanations for the common portions will be omitted, and the following description will discuss only different portions in detail.
In the same manner as in the first embodiment, as shown in
In the same manner as in the first embodiment, the operation correcting unit 20 allows the person 4 to select a job to be desirably executed by the robot arm 5 among jobs relating to “job IDs” of the jobs in the operation information database 17 and to input the selected information to the operation instruction unit 27 so as to be specified. When the operation instruction unit 27 receives the instruction for the job selection of the job having the “job ID” specified by the person 4 through the data input IF 26, the operation instruction unit 27 gives an instruction for the job selection to the alternation condition setting unit 82 and the operation correcting unit 20 so that the corresponding job is selected. The operation correcting unit 20 sets the control mode based upon the “flag” of the selected job among the jobs in the operation information database 17. Moreover, the operation correcting unit 20 gives an instruction to the control parameter instruction unit 27 so that an operation is carried out in the set control mode. When the person 4 inputs an instruction for starting the correction to the operation instruction unit 27 through the data input IF 26, the operation correcting unit 20 sets a control mode based upon the “correcting parameter flag” of the operation information database 17 through the operation instruction unit 27, and gives an instruction to the control parameter managing unit 21 so as to carry out an operation in the set control mode. The alternation condition setting unit 82 acquires the hand position and orientation of the robot arm 5 from the point of time when the person 4 started the correction until the completion thereof, every certain fixed period of time (for example, every 0.2 sec.).
Next, the operation correcting unit 20 retrieves operation correcting information having the same ID as the “job ID” that is currently in operation in the operation correcting information database 18. In this example, since the job having “2” in the “job ID” of the operation information database 17 of
Next, since the “presence or absence of repetition” in the operation correcting information is “1”, the alternation condition setting unit 82 examines whether or not any repetition exists (in other words, whether or not any periodicity exists) in the data of
First, the alternation condition setting unit 82 calculates and finds a repetitive section from the operation information of
Next, since “averaged” is given to the correcting method of the operation information of
Additionally, this example is described so that the operation correcting unit 20 carries out a correction by using an averaged value; however, in the case where, a description “minimized” is given to the “correcting method” of the operation correcting information of
With the above-mentioned arrangement, it becomes possible to correct fluctuations in the repetitive operations due to degrees of an applied force by the person 4 by carrying out the operation correcting process by the operation correcting unit 20 based upon the operation correcting information.
Since the basic structure of a control apparatus of the robot arm in a seventh embodiment of the present invention is the same as that of the first embodiment, explanations for the common portions will be omitted, and the following description will discuss only different portions in detail.
The following description will be given by exemplifying a job in which a mixing job is carried out in a pot 3, as shown in
In the case where, while the robot arm 5 is carrying out a mixing job in the pot 3, for example, in “2” of the “job ID” of
In
In general, a person who operates an industrial robot is a skilled operator who well understands the movable range or the like of the robot. However, a person 4, who operates a house-service robot that is an object to which the present invention is applied, is a layman who does not well understand the specifications of the robot; therefore, with respect to the robot arm 5 stopped out of the movable range 81 as described above, it is difficult for the person 4 to instinctively know how to operate the robot arm 5 so as to move it within the movable range 81. Moreover, in the case where, upon manipulating the robot arm 5 that is in operation, the person 4 erroneously moves the robot arm 5 from the movable range 81 out thereof with the result that the robot arm 5 is stopped, the operation is erroneously corrected by the operation correcting unit 20 at the stopped position of the robot arm 5, failing to carry out an operation desired by the person 4.
In order to prevent the above-mentioned failure, it is an object of the seventh embodiment to allow the robot arm 5 to be operated within the movable range 81 so as to carry out the operation desired by the person 4, based upon the information of the operation correcting information database 18, which will be described later, and operations of the operation correcting unit 20, and alternation condition setting unit 82.
In the same manner as in the first embodiment, the operation correcting unit 20 allows the person 4 to select a job to be desirably executed by the robot arm 5 among jobs relating to “job IDs” of the jobs in the operation information database 17 through the data input IF 26 and to input the selected information to the operation instruction unit 27 so as to be specified. When the operation instruction unit 27 receives the instruction for the job selection of the job having the “job ID” specified by the person 4 through the data input IF 26, the operation instruction unit 27 gives an instruction for the job selection to the alternation condition setting unit 82 and the operation correcting unit 20 so that the corresponding job is selected. The operation correcting unit 20 sets the control mode based upon the “flag” of the selected job among the jobs in the operation information database 17. Moreover, the operation instruction unit 27 gives an instruction to the control parameter managing unit 21 so that an operation is carried out in the set control mode. When the person 4 inputs an instruction for starting the correction to the operation instruction unit 27 through the data input IF 26, the operation correcting unit 20 sets a control mode based upon the “correcting parameter flag” of the operation information database 17 through the operation instruction unit 27, and gives an instruction to the control parameter managing unit 21 so as to carry out an operation in the set control mode. The alternation condition setting unit 82 acquires the hand position and orientation of the robot arm 5 from the point of time when the person 4 started the correction until the completion thereof, every certain fixed period of time (for example, every 0.2 sec.). For example,
The data of
Next, the alternation condition setting unit 82 detects whether or not the robot arm 5 is in a state where it is inoperable to a desired position by the person 4.
First, based upon “date and time” of the operation ID of the operation history information that is currently being corrected, the alternation condition setting unit 82 examines whether the total number of operation ID numbers from the operation ID after a point of time, obtained by subtracting “a period of time” of the “correcting section” of the operation correcting information database 18 from the “date and time” of the operation ID of the operation history information that is currently being corrected, to the operation ID that is currently being corrected, is the “number of times (lower limit)” or more, or the “number of times (upper limit)” or less of the “correcting sections”. In this case, the operation ID that is currently being operated is defined as an operation ID having the current point of time in a corrected state that is coincident with the date and time of the operation history information. In the case where the total number of operation ID number is located within this range (that is, in a range from the “number of times (lower limit)” or more to the “number of times (upper limit)” or less of the “correcting sections”), the alternation condition setting unit 82 can determine that the person 4 carries out operations many times in a short period of time; therefore, the alternation condition setting unit 82 determines that the person 4 is dissatisfied with any behavior of the robot arm 5 after the manipulation by the person 4.
More specifically, in the example of
Next, the alternation condition setting unit 82 tries to specify a dissatisfactory portion.
The alternation condition setting unit 82 determines whether or not the “position-orientation” in the “operation ID” that is located in a range from “number of times (lower limit)” or more to “number of times (upper limit)” or less is within the movable range 81 of
Next, the operation correcting unit 20 carries out a correction at the dissatisfactory portion as described above.
Since the “correcting method” is carried out as “an operation within the movable range”, the operation correcting unit 20 carries out the correction so that the operation is executed within the movable range.
In the case where the person 4 carries out an operation in a manner so as to follow a track 83 of
By using the correction in the operation correcting unit 20 as described above, the person 4 operates the robot arm 5 within the movable range 81 so that it becomes possible to generate an operation desired by the person 4.
Since the basic structure of a control apparatus of the robot arm in an eighth embodiment of the present invention is the same as that of the first embodiment, explanations for the common portions will be omitted, and the following description will discuss only different portions in detail.
In the same manner as in the first embodiment, as shown in
In the case where, midway during a wiping job that is carried out by the robot arm 5 on a top plate of an IH cooking heater 6 or the like, as shown in
The above-mentioned correction, which is carried out by making a correction in the operation information by utilizing a force applied by the person 4, is not available in the case where the person 4 is an elder person, or a handicapped person, or a child with the result that such a person 4 fails to apply a sufficient force to the robot arm 5. Therefore, by using information in the operation correcting information database 18 and operations of the alternation condition setting unit 82 and the operation correcting unit 20, which will be described below, it becomes possible to carry out the correction even when the person 4 fails to apply a sufficient force.
In the same manner as in the first embodiment, the operation correcting unit 20 allows the person 4 to select a job to be desirably executed by the robot arm 5 among jobs relating to “job IDs” of the jobs in the operation information database 17 through the data input IF 26 and to input the selected information to the operation instruction unit 27 so as to be specified. When the operation instruction unit 27 receives the instruction for the job selection of the job having the “job ID” specified by the person 4 through the data input IF 26, the operation instruction unit 27 gives an instruction for the job selection to the alternation condition setting unit 82 and the operation correcting unit 20 so that the corresponding job is selected. The operation correcting unit 20 sets the control mode based upon the “flag” of the selected job among the jobs in the operation information database 17. Moreover, the operation correcting unit 20 gives an instruction to the control parameter managing unit 21 so that an operation is carried out in the set control mode. When the person 4 inputs an instruction for starting the correction to the operation instruction unit 27 through the data input IF 26, the operation correcting unit 20 sets a control mode based upon the “correcting parameter flag” of the operation information database 17 through the operation instruction unit 27, and gives an instruction to the control parameter managing unit 21 so as to carry out an operation in the set control mode. The alternation condition setting unit 82 acquires the hand position and orientation of the robot arm 5 and a force applied by the person 4 from the point of time when the person 4 started the correction until the completion thereof, every certain fixed period of time (for example, every 0.2 sec.). In order to identify data from the point of time of the correction start up to the completion thereof, numbers called “operation IDs” are given and stored.
For example,
The data of
The alternation condition setting unit 82 detects whether or not the person 4 is in a state in which he or she is unable to apply a desired force to the robot arm 5 based upon the operation history information.
First, based upon “date and time” of the operation ID of the operation history information that is currently being corrected, the alternation condition setting unit 82 examines whether the total number of operation ID numbers from the operation ID after a point of time, obtained by subtracting “a period of time” of the “correcting section” of the operation correcting information database 18 from the “date and time” of the operation ID of the operation history information that is currently being corrected, to the operation ID that is currently being corrected is the “number of times (lower limit)” or more of the “correcting sections”, or the “number of times (upper limit)” or less of the “correcting sections”. In this case, the operation ID that is currently being operated is defined as an operation ID having the current point of time in a corrected state that is coincident with the date and time of the operation history information. Upon determination by the alternation condition setting unit 82 that the total number of operation ID numbers is located within this range (that is, in a range from the “number of times (lower limit)” or more to the “number of times (upper limit)” or less of the “correcting sections”), the alternation condition setting unit 82 can determine that the person 4 carries out operations many times in a short period of time; therefore, the alternation condition setting unit 82 determines that the person 4 is dissatisfied with any behavior of the robot arm 5 after the manipulation by the person 4.
Next, the alternation condition setting unit 82 tries to specify a dissatisfactory portion. The alternation condition setting unit 82 determines whether or not a difference between the “force” in the “operation ID” that is located in a range from “number of times (lower limit)” or more to “number of times (upper limit)” or less and the “force” before the correction is the “threshold value of a variation in force” of the “correcting section” or more. With respect to the operation having a parameter whose difference is the threshold value or more, the alternation condition setting unit 82 determines that the person 4 is dissatisfied with the behavior of the robot arm 5 after the manipulation of the person 4, that is, how to apply the force thereto. Upon determination by the alternation condition setting unit 82 that the person 4 is dissatisfied, the operation correcting unit 20 carries out the correction described in the “correcting method” of
More specifically, in the example of
Next, the alternation condition setting unit 82 tries to specify a dissatisfactory portion. The alternation condition setting unit 82 finds a difference between the “force” of the operation ID within a range from the “number of times (lower limit)” or more to the “number of times (upper limit)” or less in the “correcting section” and the “force” before the correction. For example, with respect to the force used for rubbing the IH cooking heater 6, in the case where the z-component of the “force” before the correction is 5 (N), with the z-component of the “force” applied during the correction by the person 4 being set to 10 (N), since the difference (in this example, 5 (N)) is the threshold value of a variation in force of the “correcting section” (in
Next, the operation correcting unit 20 carries out a correction on the dissatisfactory portion as described above. In the case where a description “constant correction 5 (N)” is given to the “correcting method” of
In the case where the person 4, who carries out an operation, is an elder person, or a handicapped person, or a child with the result that, upon correction by the operation correcting unit 20, such a person 4 fails to apply a sufficient force, the alternation condition setting unit 82 determines that the person 4 is dissatisfied with the behavior of the robot arm 5 after the manipulation by the person 4, and can assist the force.
Reference numeral 16 in
More specifically, the assist value calculation unit 16 determines the assist value in response to the number of operation times, in accordance with a table in
As described above, the alternation condition setting unit 82 determines that the person 4 is dissatisfied with the behavior of the robot arm 5 after the manipulation by the person 4 so that the insufficient force can be assisted by the assist value calculation unit 16, and by further allowing the assist value calculation unit 16 to determine the assist value in accordance with the number of operation times, it becomes possible to reduce the number of operation times by the person 4.
Since the basic structure of a control apparatus of the robot arm in a ninth embodiment of the present invention is the same as that of the first embodiment, explanations for the common portions will be omitted, and the following description will discuss only different portions in detail.
The following description will be given by exemplifying a job in which a mixing job is carried out in a pot 3 by using the robot system 1, as shown in
In the case where, while the robot arm 5 is carrying out a mixing job in the pot 3, for example, in “2” of the “job ID” of
The above-mentioned correction by the operation correcting unit 20, which is carried out by making a correction in the operation information by utilizing a force applied by the person 4, fails to correct the operation of the robot arm 5 in the case where the person 4 is an elder person, or a handicapped person, or a child with the result that the person 4 fails to operate the robot arm 5 at a desirably corrected velocity. Therefore, by using information in the operation correcting information database 18 and operations of the operation correcting unit 20, which will be described below, it becomes possible to carry out the correction to a velocity at which the person 4 desirably operates the robot arm 5.
In the same manner as in the first embodiment, the operation correcting unit 20 allows the person 4 to select a job to be desirably executed by the robot arm 5 among jobs relating to “job IDs” of the jobs in the operation information database 17 through the data input IF 26 and to input the selected information to the operation instruction unit 27 so as to be specified. When the operation instruction unit 27 receives the instruction for the job selection of the job having the “job ID” specified by the person 4 through the data input IF 26, the operation instruction unit 27 gives an instruction for the job selection to the alternation condition setting unit 82 and the operation correcting unit 20 so that the corresponding job is selected. The operation correcting unit 20 sets the control mode based upon the “flag” of the selected job among the jobs in the operation information database 17. Moreover, the operation instruction unit 27 gives an instruction to the control parameter managing unit 21 so that an operation is carried out in the set control mode. When the person 4 inputs an instruction for starting the correction to the operation instruction unit 27 through the data input IF 26, the operation correcting unit 20 sets a control mode based upon the “correcting parameter flag” of the operation information database 17 through the operation instruction unit 27, and gives an instruction to the control parameter managing unit 21 so as to carry out an operation in the set control mode. The alternation condition setting unit 82 acquires the hand position and orientation of the robot arm 5 from the point of time when the person 4 started the correction until the completion thereof, every certain fixed period of time (for example, every 0.2 sec.). In order to identify data from the point of time of the correction start up to the completion thereof, numbers called “operation IDs” are given and stored. For example,
The alternation condition setting unit 82 detects whether or not the person 4 is in a state in which he or she is unable to operate at a desired velocity based upon the operation history information.
First, based upon “date and time” of the operation ID of the operation history information that is currently being corrected, the alternation condition setting unit 82 examines whether the total number of operation ID numbers from the operation ID after a point of time, obtained by subtracting “a period of time” of the “correcting section” of the operation correcting information database 18 from the “time and date” of the operation ID of the operation history information that is currently being corrected, to the operation ID that is currently being corrected is the “number of times (lower limit)” or more of the “correcting sections”, or the “number of times (upper limit)” or less of the “correcting sections”. In this case, the operation ID that is currently being operated is defined as an operation ID having the current point of time in a corrected state that is coincident with the date and time of the operation history information. In the case where the total number of operation ID numbers is located within this range (that is, in a range from the “number of times (lower limit)” or more to the “number of times (upper limit)” or less in the “correcting sections”), the alternation condition setting unit 82 can determine that the person 4 carries out operations many times in a short period of time; therefore, the alternation condition setting unit 82 determines that the person 4 is dissatisfied with any behavior of the robot arm 5 after the manipulation by the person 4.
Next, the alternation condition setting unit 82 tries to specify a dissatisfactory portion. The alternation condition setting unit 82 determines whether or not a difference between the “velocity” in the “operation ID” that is located in a range from “number of times (lower limit)” or more to “number of times (upper limit)” or less in the “correcting section” and the “velocity” before the correction is the “threshold value of a variation in velocity” of the “correcting section” or more. The “velocity” is a value obtained by dividing the difference between the position-orientation of the hand and the next position-orientation of the hand by the difference between the respective times and dates in the alternation condition setting unit 82.
With respect to the operation having a parameter whose difference is the threshold value or more, the alternation condition setting unit 82 determines that the person 4 is dissatisfied with the behavior of the robot arm 5 after the manipulation of the person 4, that is, how to correct the velocity. Upon determination by the alternation condition setting unit 82 that the person 4 is dissatisfied, the operation correcting unit 20 carries out the correction described in the “correcting method” of
More specifically, in the example of
By using the above-mentioned calculations in the alternation condition setting unit 82, since the alternation condition setting unit 82 can determine that the person 4 carries out operations many times in a short period of time, the alternation condition setting unit 82 consequently determines that the person 4 is dissatisfied with any behavior of the robot arm 5 after the manipulation by the person 4.
Next, the alternation condition setting unit 82 tries to specify a dissatisfactory portion. The alternation condition setting unit 82 finds a difference between the “velocity” of the operation ID within a range from the “number of times (lower limit)” or more to the “number of times (upper limit)” or less in the “correcting section” and the “velocity” before the correction. For example, in the case where the z-component of the “velocity” during an operation of the mixing job is 0.5 (m/sec), with the z-component of the “velocity” during the correction by the person 4 being set to 0.9 (m/sec), since the difference (in this example, 0.4 (m/sec)) is the threshold value of a variation in velocity of the “correcting section” (in
Next, the operation correcting unit 20 carries out a correction on the dissatisfactory portion as described above. In the case where a description “constant correction 0.5 (m/sec)” is given to the “correcting method” of
In the case where the person 4, who carries out an operation, is an elder person, or a handicapped person, or a child with the result that, upon correction by the operation correcting unit 20, the person 4 fails to operate at a desired velocity during the operation by the person 4, the alternation condition setting unit 82 determines that the person 4 is dissatisfied with the behavior of the robot arm 5 after the manipulation by the person 4, and can assist the velocity.
Reference numeral 16 in
More specifically, the assist value calculation unit 16 determines the assist value in response to the number of operation times, in accordance with a table in
As described above, the alternation condition setting unit 82 determines that the person 4 is dissatisfied with the behavior of the robot arm 5 after the manipulation by the person 4 so that the velocity can be assisted by the assist value calculation unit 16, and by further allowing the assist value calculation unit 16 to determine the assist value in accordance with the number of operation times, it becomes possible to reduce the number of operation times by the person 4.
Moreover, the following description will discuss an arrangement in which, in addition to
In
The total number of the number of operation times by the person 4 is calculated by the alternation condition setting unit 82 based upon the operation history information by using the method that has been already described. The alternation condition setting unit 82 examines whether or not the number of operation times calculated by the alternation condition setting unit 82 is in a range from the “number of times (lower limit)” or more to the “number of times (upper limit)” or less in the “correcting section”. In the case of
As described above, in the case where the person 4 is dissatisfied with the operation corrected by the operation correcting unit 20, the corresponding operation can be carried out without being corrected by the operation correcting unit 20.
Since the basic structure of a control apparatus of the robot arm in a tenth embodiment of the present invention is the same as that of the first embodiment, explanations for the common portions will be omitted, and the following description will discuss only different portions in detail.
A correction history information database 28 in
Since the basic structure of a control apparatus of the robot arm in an eleventh embodiment of the present invention is the same as that of the first embodiment, explanations for the common portions will be omitted, and the following description will discuss only different portions in detail.
In the eleventh embodiment, an explanation will be given by exemplifying a correcting process in which the respective correcting methods described in the first to ninth embodiment are used simultaneously. Additionally, since the respective correcting methods have been described in detail in the first to ninth embodiments, the explanations thereof will be omitted.
The operation correcting unit 20 carries out correcting processes in the order shown in a flow chart of
In
Next, the operation correcting unit 20 carries out a correction of the “collision time deletion” explained in the third embodiment (step S102).
Next, the operation correcting unit 20 carries out a correction of the “deletion to be carried out unless an applied force by a person that is beyond a certain threshold value or more is continuously maintained for a period of time that is beyond a certain threshold value” or more explained in the second embodiment (step S103).
Next, the operation correcting unit 20 carries out the “correction to be executed only on the type determined by the correcting method type determination unit” explained in the fourth embodiment (step S104).
Next, the operation correcting unit 20 carries out the “correction of a movable range” explained in the seventh embodiment (step S105).
Next, the operation correcting unit 20 carries out a correction of the “force assist” explained in the eighth embodiment (step S106).
Next, the operation correcting unit 20 carries out a correction of the “velocity assist” explained in the ninth embodiment (step S107).
Next, the operation correcting unit 20 carries out a correction of the “bias averaging” explained in the fifth embodiment (step S108).
Next, the operation correcting unit 20 carries out a correction of the “repetition averaging” explained in the sixth embodiment (step S109).
Additionally, the correcting methods from step S101 to step S104 relate to correcting methods of a type in which any of portions of an operation corrected by the person 4 is deleted, and by applying these steps prior to the correcting methods from step S105 to step S109, it is possible to omit wasteful operation sections, and also to improve precision for extracting repetitive portions, for example, in step S109 or carry out a correction at a high speed. Moreover, with respect to the order of steps from S101 to S104, by first carrying out step S101, the correcting processes of steps S102 to S104 can be carried out with improved precision or at higher speeds.
Moreover, with respect to step S106 and step S107, even when the order thereof is switched, no problems are raised.
As described above, in the case where a correcting process is carried out by simultaneously using the respective correcting methods described in the first to ninth embodiments, by preliminarily applying the correcting methods of the type for deletion, it becomes possible to improve the correcting precision or processing speed.
Additionally, in the above-mentioned first to tenth embodiments, explanations have been given by exemplifying the robot arm 5; however, not limited to the arm, the present invention may be applied to a moving robot that is moved by wheels, or a walking robot with two legs, or a walking robot with multiple legs, or the like, and the same effects are exerted in relation to contact between the moving robot or the like and the human being.
By properly combining the arbitrary embodiments of the aforementioned various embodiments, the effects possessed by the embodiments can be produced.
The present invention can be effectively utilized as a control apparatus and a control method for a robot arm, a robot having the control apparatus for a robot arm, a control program for a robot arm, and an integrated electronic circuit for a robot arm that are used for controlling operations of a robot arm upon carrying out a job by a house-service robot or the like and a in cooperation with each other. Moreover, not limited to the house-service robot, the present invention can be applied to a control apparatus and a control method for a robot arm in a movable mechanism in a production facility or the like, a robot having the control apparatus for a robot arm, a control program for a robot arm, and an integrated electronic circuit for the robot.
Although the present invention has been fully described in connection with the preferred embodiments thereof with reference to the accompanying drawings, it is to be noted that various changes and modifications are apparent to those skilled in the art. Such changes and modifications are to be understood as included within the scope of the present invention as defined by the appended claims unless they depart therefrom.
Number | Date | Country | Kind |
---|---|---|---|
2009-011810 | Jan 2009 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2010/000293 | 1/20/2010 | WO | 00 | 8/31/2010 |