JP2013132731A - Robot control system, robot system and robot control method - Google Patents

Robot control system, robot system and robot control method Download PDF

Info

Publication number
JP2013132731A
JP2013132731A JP2011285706A JP2011285706A JP2013132731A JP 2013132731 A JP2013132731 A JP 2013132731A JP 2011285706 A JP2011285706 A JP 2011285706A JP 2011285706 A JP2011285706 A JP 2011285706A JP 2013132731 A JP2013132731 A JP 2013132731A
Authority
JP
Japan
Prior art keywords
end point
point position
approximate
solution
robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011285706A
Other languages
Japanese (ja)
Inventor
Mitsuhiro Inazumi
満広 稲積
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2011285706A priority Critical patent/JP2013132731A/en
Publication of JP2013132731A publication Critical patent/JP2013132731A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)
  • Feedback Control In General (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a robot control system or the like capable of determining a solution of an inverse kinematics of a robot by an iterative operation method in a more efficient way in a short period of time.SOLUTION: A robot control system includes an endpoint position obtaining unit 20 for obtaining a target endpoint position of a robot 100, a true and correct model storage unit 22 for storing true and correct model information of the robot 100, an approximate model storage unit 24 for storing an approximate model information produced by approximating the true and correct model, and a processing unit 30 for determining an approximate solution using the approximate model and the target endpoint position to determine the solution of the inverse kinematics of the robot 100 by performing the iterative operation based on an iterative method using the approximate solution and the true and correct model.

Description

本発明は、ロボット制御システム、ロボットシステム及びロボット制御方法等に関する。   The present invention relates to a robot control system, a robot system, a robot control method, and the like.

ロボットの各関節角から手先位置姿勢(エンドポイント位置)を求める処理である順運動学の処理は容易な処理である。一方、手先位置姿勢から各関節角を求める処理である逆運動学の処理は非常に困難な処理である。特に、ロボットのアームの構成が複雑になると、逆運動学は解析的には処理できず、逐次近似を行う反復法を用いるしかない。   The forward kinematics process, which is a process for obtaining the hand position / posture (end point position) from each joint angle of the robot, is an easy process. On the other hand, the process of inverse kinematics, which is a process for obtaining each joint angle from the hand position / posture, is a very difficult process. In particular, when the configuration of the robot arm becomes complicated, inverse kinematics cannot be processed analytically, and it is only possible to use an iterative method that performs successive approximation.

しかしながら、反復法による逆運動学の処理には、一般的に以下のような課題がある。   However, processing of inverse kinematics by an iterative method generally has the following problems.

第1に、反復法による逆運動学の処理は、全体としての処理量が大きくなり、処理に長い時間が必要となる。例えば、解析解を求める処理に比較して、数百倍から数万倍以上の処理量が必要となる。   First, the processing of inverse kinematics by the iterative method requires a large amount of processing as a whole, and requires a long time for processing. For example, a processing amount of several hundred times to several tens of thousands of times is required as compared with processing for obtaining an analytical solution.

第2に、反復法による逆運動学の処理では、有限回の反復で、解へ収束しない場合がある。即ち、処理時間や反復回数を制限した場合に、所望の精度の解が得られない。   Secondly, in the inverse kinematic process by the iterative method, it may not converge to the solution after a finite number of iterations. That is, when the processing time and the number of iterations are limited, a solution with a desired accuracy cannot be obtained.

第3に、反復法による逆運動学の処理では、条件を満足する複数個の解が存在する場合に、どの解へ収束するかの制御が困難である。例えば解析解が存在しない場合、そもそも解が幾つあるのかの推定も困難である。   Thirdly, in the inverse kinematic process by the iterative method, it is difficult to control which solution converges when there are a plurality of solutions that satisfy the condition. For example, when there is no analytical solution, it is difficult to estimate how many solutions exist.

第4に、適切な解法が、ロボットの構造に強く依存する。即ち、解析解も含め、そのロボットに最適な解法は発見的にしか決められない。   Fourth, the appropriate solution is highly dependent on the robot structure. In other words, the optimal solution for the robot, including analytical solutions, can only be determined heuristically.

第5に、そもそも指定された条件での解が存在するかどうかを、事前に判断できない。即ち、単に収束しないだけなのか、解が存在しないのかを区別できない。   Fifth, it cannot be determined in advance whether or not there is a solution under the specified conditions. That is, it cannot be distinguished whether the solution simply does not converge or whether there is no solution.

第6に、解が存在したとしても、そこに収束するかどうかは、設定した初期状態に強く依存する。即ち、悪い初期状態からスタートすれば、収束しないか、或いは非常に時間がかかってしまう。   Sixth, even if a solution exists, whether it converges or not depends strongly on the set initial state. That is, if it starts from a bad initial state, it will not converge or it will take a long time.

これらの課題を改善・解決する従来技術としては、例えば特許文献1、2、3、非特許文献1、2に開示される技術が知られている。   As conventional techniques for improving and solving these problems, for example, techniques disclosed in Patent Documents 1, 2, and 3 and Non-Patent Documents 1 and 2 are known.

特開平6−320451号公報JP-A-6-320451 特開平2−205489号公報Japanese Patent Application Laid-Open No. 2-205489 特開平4−369004号公報JP-A-4-369004

「マニピュレータ逆運動学問題の補間解法に関する研究」計測自動制御学会東北支部、第215回(2004年5月27日)、資料番号215−15"Study on interpolation method for manipulator inverse kinematics problem" The Society of Instrument and Control Engineers, Tohoku Branch, 215th (May 27, 2004), Document No. 215-15 「Levenberg−Marquardt法による可解性を問わない逆運動学」、第27回日本ロボット学会学術講演会、RSJ2009AC2K1−03(2009年)"Inverse kinematics regardless of solvability by the Levenberg-Marquardt method", 27th Annual Conference of the Robotics Society of Japan, RSJ2009AC2K1-03 (2009)

特許文献1の手法は、発見的な手法に拠らず、グレブナー基底を用いることにより、汎用的な手法として、且つ、効率的に逆運動学の解を求めようとするものである。   The technique of Patent Document 1 is not based on a heuristic technique, but seeks to obtain an inverse kinematic solution efficiently as a general-purpose technique by using a Gröbner basis.

特許文献2の手法は、一般的な6自由度のロボットの逆運動学の解を、3関節の逆運動学を逐次的に行うことにより、汎用的な方法として、且つ、効率的に解を求めようとするものである。   The method of Patent Document 2 is a general-purpose method that efficiently solves the inverse kinematics solution of a general six-degree-of-freedom robot, and sequentially performs the inverse kinematics of three joints. It is what you want.

特許文献3の手法は、新たな制御変数λを導入し、それを用いて逆運動学の解を、より効率的に求めようとするものである。   The method of Patent Document 3 introduces a new control variable λ, and uses it to seek an inverse kinematics solution more efficiently.

非特許文献1の手法は、予め、関節角と手先位置姿勢との対応関係を順運動学において求めておき、それの有限個の組み合わせを記憶しておき、逆運動学の処理時には、その組み合わせの中から適当な初期値を選択することにより、逆運動学の解を、より効率的に求めようとするものである。   In the method of Non-Patent Document 1, the correspondence relationship between the joint angle and the hand position / posture is obtained in forward kinematics in advance, a finite number of combinations thereof are stored, and when the inverse kinematics is processed, the combination is obtained. By selecting an appropriate initial value from the above, the solution of inverse kinematics is obtained more efficiently.

非特許文献2の手法は、Levenberg-Marquardt法と言う手法を用いることにより、実質的に収束性を保証した上で、逆運動学の解を、より効率的に求めようとするものである。   The method of Non-Patent Document 2 uses a method called Levenberg-Marquardt method to obtain a solution of inverse kinematics more efficiently while substantially guaranteeing convergence.

しかしながら、特許文献1の手法では、複数個の解が存在する場合においては、処理に必要とする演算時間、メモリー使用量が非常に増大するという問題がある。近年のロボットにおいては、複数個の解が存在する方が一般的であるので、この問題は深刻である。   However, the technique disclosed in Patent Document 1 has a problem in that when there are a plurality of solutions, the calculation time and memory usage required for the processing are greatly increased. In recent robots, this problem is serious because it is common for a plurality of solutions to exist.

特許文献2の手法においては、対象が6自由度のロボットに限定され、それ以外の場合への適用が困難であるという問題がある。近年のロボットにおいては、手先に対する姿勢の自由度を改善するために、7以上の自由度を持つものも多い。   In the method of Patent Document 2, the target is limited to a robot with 6 degrees of freedom, and there is a problem that it is difficult to apply to other cases. In recent years, many robots have a degree of freedom of 7 or more in order to improve the degree of freedom of posture with respect to the hand.

特許文献3の手法においては、複数個の解が存在する場合に、解の選択性などに問題がある。具体的には、各々の関節角以外に、複数個の解のいずれかを指定するための補助的なパラメーターを別途必要とする場合が多い。   The method of Patent Document 3 has a problem in solution selectivity when there are a plurality of solutions. Specifically, in addition to each joint angle, an auxiliary parameter for designating one of a plurality of solutions is often required separately.

非特許文献1の手法においては、ロボットの自由度が増えた場合、或いは精度を改善するために予め持っているデーターの刻みを細かくした場合、そのデーターを記憶するためのメモリーの使用量が急速に増大するという問題がある。   In the method of Non-Patent Document 1, when the degree of freedom of the robot increases, or when the data in advance is made finer in order to improve the accuracy, the memory usage for storing the data is rapidly increased. There is a problem of increasing.

非特許文献2の手法においては、反復回数は少ないが、反復1回あたりの処理が複雑になり、結局のところ処理時間が長くなるという問題がある。   In the method of Non-Patent Document 2, although the number of iterations is small, there is a problem that processing per iteration becomes complicated and processing time becomes long after all.

本発明の幾つかの態様によれば、ロボットの逆運動学の解を、反復演算手法により、より効率的に短時間で求めることができるロボット制御システム、ロボットシステム及びロボット制御方法等を提供できる。   According to some aspects of the present invention, it is possible to provide a robot control system, a robot system, a robot control method, and the like that can find a solution of the inverse kinematics of a robot more efficiently and in a short time by an iterative calculation method. .

本発明の一態様は、ロボットの目標エンドポイント位置を取得するエンドポイント位置取得部と、前記ロボットの真正モデルの情報を記憶する真正モデル記憶部と、前記真正モデルを近似した近似モデルの情報を記憶する近似モデル記憶部と、前記近似モデルと前記目標エンドポイント位置を用いて、近似解を求め、前記近似解と前記真正モデルを用いて、反復法による反復演算処理を行うことで、前記ロボットの逆運動学における解を求める処理部とを含むロボット制御システムに関係する。   One aspect of the present invention includes an end point position acquisition unit that acquires a target end point position of a robot, a genuine model storage unit that stores information on the authentic model of the robot, and information on an approximate model that approximates the authentic model. An approximate model storage unit for storing, an approximate solution using the approximate model and the target end point position is obtained, and an iterative calculation process using an iterative method is performed using the approximate solution and the authentic model, whereby the robot It relates to a robot control system including a processing unit for obtaining a solution in the inverse kinematics.

本発明の一態様によれば、ロボットの真正モデルと、真正モデルを近似した近似モデルが用意され、近似モデルと目標エンドポイント位置を用いて、近似解が求められる。そして、求められた近似解と真正モデルを用いて、反復法による反復演算処理を行うことで、ロボットの逆運動学における解が求められるようになる。このように近似モデルによる近似解を利用して反復演算処理を行うことで、ロボットの逆運動学の解を、反復法により、より効率的に短時間で求めることが可能になる。   According to one aspect of the present invention, an authentic model of a robot and an approximate model that approximates the authentic model are prepared, and an approximate solution is obtained using the approximate model and the target end point position. Then, using the obtained approximate solution and the authentic model, iterative calculation processing by the iterative method is performed, so that a solution in the inverse kinematics of the robot can be obtained. In this way, by performing the iterative calculation process using the approximate solution based on the approximate model, it becomes possible to obtain the robot's inverse kinematics solution more efficiently and in a short time by the iterative method.

また本発明の一態様では、前記処理部は、前記近似解を初期値として設定して、前記反復演算処理を行ってもよい。   In the aspect of the invention, the processing unit may perform the iterative calculation process by setting the approximate solution as an initial value.

このように、近似モデルによる近似解を、反復演算処理の初期値に設定すれば、反復法おける初期値の決定等を効率良く行うことが可能になる。   As described above, if the approximate solution based on the approximate model is set as the initial value of the iterative calculation process, it is possible to efficiently determine the initial value in the iterative method.

また本発明の一態様では、前記処理部は、前記近似解を前記真正モデルの関節角に設定することで、近似解によるエンドポイント位置を求め、前記近似解によるエンドポイント位置と前記目標エンドポイント位置との間の誤差に基づいて、前記目標エンドポイント位置を修正することで、修正目標エンドポイント位置を求め、前記修正目標エンドポイント位置と前記近似モデルを用いて、第2の近似解を求め、前記第2の近似解と前記真正モデルを用いて、前記反復演算処理を行うことで、前記ロボットの逆運動学における解を求めてもよい。   In the aspect of the invention, the processing unit obtains an end point position based on the approximate solution by setting the approximate solution to a joint angle of the genuine model, and determines the end point position based on the approximate solution and the target end point. A corrected target end point position is obtained by correcting the target end point position based on an error with respect to a position, and a second approximate solution is obtained using the corrected target end point position and the approximate model. The solution in inverse kinematics of the robot may be obtained by performing the iterative calculation process using the second approximate solution and the authentic model.

このようにすれば、近似解と真正モデルの解の差異を、予め目標エンドポイント位置に対して修正しておくことができ、ロボットの逆運動学の解を、より効率的に短時間で求めることが可能になる。   In this way, the difference between the approximate solution and the authentic model solution can be corrected in advance with respect to the target end point position, and the robot inverse kinematics solution can be obtained more efficiently and in a short time. It becomes possible.

また本発明の一態様では、前記近似モデル記憶部は、前記真正モデルを近似したモデルとして、第1〜第mの近似モデルの情報を記憶し、前記処理部は、前記第1〜第mの近似モデルと前記目標エンドポイント位置を用いて、第1〜第mの近似解を求め、前記第1〜第mの近似解の中から選択された近似解を初期値として設定して、前記反復演算処理を行うことで、前記ロボットの逆運動学における解を求めてもよい。   In the aspect of the invention, the approximate model storage unit stores information on first to m-th approximate models as models approximating the authentic model, and the processing unit stores the first to m-th approximate models. The first to mth approximate solutions are obtained using the approximate model and the target end point position, the approximate solution selected from the first to mth approximate solutions is set as an initial value, and the iteration You may obtain | require the solution in the inverse kinematics of the said robot by performing arithmetic processing.

このようにすれば、1つの近似モデルを用いる場合に比べて、反復法に使用される初期値として、より適切な初期値を設定することが可能になる。   In this way, it is possible to set a more appropriate initial value as the initial value used in the iterative method compared to the case of using one approximate model.

また本発明の一態様では、前記処理部は、前記第1〜第mの近似モデルのうちの第i(1≦i≦m)の近似モデルと前記目標エンドポイント位置を用いて、第iの近似解を求め、前記第iの近似解を前記真正モデルの関節角に設定することで、近似解による第iのエンドポイント位置とヤコビアンを求め、前記第iのエンドポイント位置と前記目標エンドポイント位置との間の第1の誤差と、前記ヤコビアンを用いて、関節角を補正し、補正後の関節角を前記真正モデルの関節角に設定することで、第iの補正エンドポイント位置を求め、前記第iの補正エンドポイント位置と前記目標エンドポイント位置の間の第2の誤差に基づいて選択された近似解を、前記初期値として設定してもよい。   In one aspect of the present invention, the processing unit uses the i-th (1 ≦ i ≦ m) approximate model of the first to m-th approximate models and the target end point position to determine the i th An approximate solution is obtained, and the i-th approximate solution is set to the joint angle of the authentic model, thereby obtaining the i-th endpoint position and the Jacobian by the approximate solution, and the i-th endpoint position and the target endpoint. The joint angle is corrected using the first error between the position and the Jacobian, and the corrected joint angle is set to the joint angle of the genuine model, thereby obtaining the i-th corrected end point position. An approximate solution selected based on a second error between the i-th corrected end point position and the target end point position may be set as the initial value.

このようにすれば、反復法の例えば最初のステップ分の処理を行うことで、目標エンドポイント位置に最も近くづくような近似解を、反復演算処理の初期値として設定できるようになる。   In this way, an approximate solution that is closest to the target end point position can be set as the initial value of the iterative calculation process by performing, for example, the first step of the iterative method.

また本発明の一態様では、前記処理部は、前記近似解を前記真正モデルの関節角に設定することで、近似解によるエンドポイント位置を求め、前記近似解によるエンドポイント位置と現在のエンドポイント位置の中から、選択されたエンドポイント位置に対応する関節角を、前記初期値に設定して、前記反復演算処理を行うことで、前記ロボットの逆運動学における解を求めてもよい。   In the aspect of the invention, the processing unit obtains an end point position based on the approximate solution by setting the approximate solution to a joint angle of the genuine model, and determines the end point position based on the approximate solution and the current end point. A solution in inverse kinematics of the robot may be obtained by setting the joint angle corresponding to the selected end point position from the positions to the initial value and performing the iterative calculation process.

このようにすれば、例えば近似解によるエンドポイント位置を用いるよりも現在のエンドポイント位置を用いる方が、短時間で効率的に解を求めることができる場合に、これに適切に対処できるようになる。   In this way, for example, when the current end point position can be efficiently obtained in a short time rather than using the end point position by the approximate solution, this can be appropriately dealt with. Become.

また本発明の一態様では、前記処理部は、前記近似解によるエンドポイント位置と前記目標エンドポイント位置との間の第1の誤差を求め、前記現在のエンドポイント位置と前記目標エンドポイント位置との間の第2の誤差を求め、前記第1の誤差の方が前記第2の誤差よりも小さい場合には、前記近似解によるエンドポイント位置に対応する関節角を、前記初期値に設定し、前記第2の誤差の方が前記第1の誤差よりも小さい場合には、前記現在のエンドポイント位置に対応する関節角を、前記初期値に設定してもよい。   In the aspect of the invention, the processing unit obtains a first error between the end point position by the approximate solution and the target end point position, and the current end point position, the target end point position, When the first error is smaller than the second error, the joint angle corresponding to the end point position by the approximate solution is set to the initial value. If the second error is smaller than the first error, the joint angle corresponding to the current end point position may be set to the initial value.

このようにすれば、目標エンドポイント位置との間の誤差が小さくなる方のエンドポイント位置を選択して、選択されたエンドポイント位置に対応する関節角を、逆運動学における解を求める際の初期値に設定できるようになる。   In this way, the end point position with the smaller error from the target end point position is selected, and the joint angle corresponding to the selected end point position is obtained when finding the solution in inverse kinematics. The initial value can be set.

また本発明の一態様では、前記処理部は、前記ロボットのポイント・ツー・ポイント制御が行われた場合には、前記近似解によるエンドポイント位置に対応する関節角を、前記初期値に設定し、前記ロボットのコンティニュアス制御が行われた場合には、前記現在のエンドポイント位置に対応する関節角を、前記初期値に設定してもよい。   In the aspect of the invention, when the point-to-point control of the robot is performed, the processing unit sets a joint angle corresponding to the end point position based on the approximate solution as the initial value. When continuous control of the robot is performed, a joint angle corresponding to the current end point position may be set to the initial value.

このようにすれば、ポイント・ツー・ポイント制御やコンティニュアス制御が行われた場合に、各制御に最適なエンドポイント位置の関節角を初期値に設定して、逆運動学により解を求めることが可能になる。   In this way, when point-to-point control or continuous control is performed, the joint angle at the optimal endpoint position for each control is set to the initial value, and a solution is obtained by inverse kinematics. It becomes possible.

また本発明の一態様では、過去のエンドポイントの動作履歴位置である動作履歴エンドポイント位置を記憶する動作履歴記憶部を含み、前記処理部は、前記近似解によるエンドポイント位置と前記現在のエンドポイント位置と前記動作履歴エンドポイント位置の中から、選択されたエンドポイント位置に対応する関節角を、前記初期値に設定して、前記反復演算処理を行うことで、前記ロボットの逆運動学における解を求めてもよい。   In one aspect of the present invention, an operation history storage unit that stores an operation history end point position that is an operation history position of a past endpoint is included, and the processing unit includes the end point position based on the approximate solution and the current end point. In the inverse kinematics of the robot, the joint angle corresponding to the selected end point position is set to the initial value from the point position and the operation history end point position, and the iterative calculation process is performed. You may seek a solution.

このようにすれば、近似解によるエンドポイント位置や現在のエンドポイント位置に加えて、動作履歴エンドポイント位置も加味して、逆運動学の解を求めるための初期値を設定できるようになる。   In this way, it is possible to set an initial value for obtaining an inverse kinematics solution in consideration of the motion history end point position in addition to the end point position by the approximate solution and the current end point position.

また本発明の一態様では、前記処理部は、前記近似解によるエンドポイント位置と前記目標エンドポイント位置との間の第1の誤差を求め、前記現在のエンドポイント位置と前記目標エンドポイント位置との間の第2の誤差を求め、前記動作履歴エンドポイント位置と前記目標エンドポイント位置との間の第3の誤差を求め、前記第1の誤差の方が前記第2の誤差、前記第3の誤差よりも小さい場合には、前記近似解によるエンドポイント位置に対応する関節角を、前記初期値に設定し、前記第2の誤差の方が前記第1の誤差、前記第3の誤差よりも小さい場合には、前記現在のエンドポイント位置に対応する関節角を、前記初期値に設定し、前記第3の誤差の方が前記第1の誤差、前記第2の誤差よりも小さい場合には、前記動作履歴エンドポイント位置に対応する関節角を、前記初期値に設定してもよい。   In the aspect of the invention, the processing unit obtains a first error between the end point position by the approximate solution and the target end point position, and the current end point position, the target end point position, And a third error between the operation history end point position and the target end point position is obtained. The first error is the second error, and the third error is the third error. Is smaller than the first error, the joint angle corresponding to the end point position by the approximate solution is set to the initial value, and the second error is greater than the first error and the third error. Is set to the initial value, and the third error is smaller than the first error and the second error, the joint angle corresponding to the current end point position is set to the initial value. Is the operation history entry The joint angle corresponding to the point position may be set to the initial value.

このようにすれば、目標エンドポイント位置との間の誤差が小さくなるエンドポイント位置を選択して、選択されたエンドポイント位置に対応する関節角を、逆運動学における解を求める際の初期値に設定できるようになる。   In this way, the end point position where the error from the target end point position becomes small is selected, and the joint angle corresponding to the selected end point position is the initial value when finding the solution in inverse kinematics. Can be set to

また本発明の一態様では、前記近似モデル記憶部は、前記真正モデルの関節のオフセットが省略されたモデルの情報を、前記近似モデルの情報として記憶してもよい。   In the aspect of the invention, the approximate model storage unit may store information on a model from which an offset of a joint of the genuine model is omitted as information on the approximate model.

また本発明の他の態様は、上記のいずれかに記載のロボット制御システムと、前記ロボットとを含むロボットシステムに関係する。   Another aspect of the present invention relates to a robot system including any one of the robot control systems described above and the robot.

また本発明の他の態様は、ロボットの真正モデルの情報を記憶し、前記真正モデルを近似した近似モデルの情報を記憶し、前記ロボットの目標エンドポイント位置を取得し、前記近似モデルと前記目標エンドポイント位置を用いて、近似解を求め、前記近似解と前記真正モデルを用いて、反復法による反復演算処理を行うことで、前記ロボットの逆運動学における解を求め、求められた解に基づいて前記ロボットを制御するロボット制御方法に関係する。   According to another aspect of the present invention, information on an authentic model of a robot is stored, information on an approximate model that approximates the authentic model is stored, a target end point position of the robot is obtained, and the approximate model and the target Using the end point position, an approximate solution is obtained, and using the approximate solution and the authentic model, an iterative calculation process is performed to obtain a solution in the inverse kinematics of the robot, and the obtained solution The present invention relates to a robot control method for controlling the robot based on the above.

図1(A)〜図1(C)は、ロボットの関節や順運動学や逆運動学の説明図。1A to 1C are explanatory diagrams of robot joints, forward kinematics and inverse kinematics. 図2(A)〜図2(D)は、ロボットの関節のオフセットの説明図。FIG. 2A to FIG. 2D are explanatory diagrams of offsets of the joints of the robot. 図3(A)〜図3(C)も、ロボットの関節のオフセットの説明図。FIG. 3A to FIG. 3C are also explanatory diagrams of the offset of the joints of the robot. 図4(A)〜図4(C)は、真正モデル、近似モデルの説明図。FIGS. 4A to 4C are explanatory diagrams of a genuine model and an approximate model. 本実施形態の第1の実施例のロボット制御システムの構成例。The structural example of the robot control system of the 1st Example of this embodiment. ロボット制御システムの具体的な構成例。A specific configuration example of a robot control system. 図7(A)、図7(B)はロボットシステムの一例。FIG. 7A and FIG. 7B are examples of a robot system. 図8(A)〜図8(D)は第1の実施例の手法の説明図。FIGS. 8A to 8D are explanatory diagrams of the method of the first embodiment. 第1の実施例の詳細な処理を示すフローチャート。The flowchart which shows the detailed process of a 1st Example. 本実施形態の第2の実施例のロボット制御システムの構成例。The structural example of the robot control system of the 2nd Example of this embodiment. 図11(A)〜図11(D)は第2の実施例の手法の説明図。FIG. 11A to FIG. 11D are explanatory diagrams of the method of the second embodiment. 第2の実施例の詳細な処理を示すフローチャート。The flowchart which shows the detailed process of 2nd Example. 本実施形態の第3の実施例のロボット制御システムの構成例。The structural example of the robot control system of the 3rd Example of this embodiment. 図14(A)〜図14(C)は第3の実施例の手法の説明図。FIG. 14A to FIG. 14C are explanatory diagrams of the method of the third embodiment. 第3の実施例の詳細な処理を示すフローチャート。The flowchart which shows the detailed process of a 3rd Example. 本実施形態の第4の実施例のロボット制御システムの構成例。The structural example of the robot control system of the 4th Example of this embodiment. 本実施形態の第5の実施例のロボット制御システムの構成例。The structural example of the robot control system of the 5th Example of this embodiment. 図18(A)〜図18(C)は第4、第5の実施例の手法の説明図。FIGS. 18A to 18C are explanatory views of the methods of the fourth and fifth embodiments. 第4の実施例の詳細な処理を示すフローチャート。The flowchart which shows the detailed process of a 4th Example. 第5の実施例の詳細な処理を示すフローチャート。The flowchart which shows the detailed process of a 5th Example.

以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。   Hereinafter, preferred embodiments of the present invention will be described in detail. The present embodiment described below does not unduly limit the contents of the present invention described in the claims, and all the configurations described in the present embodiment are indispensable as means for solving the present invention. Not necessarily.

1.逆運動学
ロボットの制御において、各関節の角度から全体の姿勢を求める処理は順運動学と呼ばれる。一方、その逆に、所望の姿勢を実現する各関節の角度を求める処理は逆運動学と呼ばれる。逆運動学は、ロボットを実用的に用いる上で非常に重要な処理である。
1. Inverse kinematics In the control of a robot, the process of obtaining the overall posture from the angle of each joint is called forward kinematics. On the other hand, the process of obtaining the angle of each joint that achieves a desired posture is called inverse kinematics. Inverse kinematics is a very important process for practical use of robots.

しかしながら、一般的に順運動学の処理は、実現の容易な処理であるが、逆運動学の処理は、実現の非常に困難な処理となる。順運動学の解は、基本的には座標系の原点の移動と、座標系の回転を逐次的に計算することにより、一意に得られる。一方、逆運動学の解を得るためには、一般的には、非線形の連立方程式を解く必要がある。この解が解析的に得られるのは、ロボットの構造が簡単な場合に限られ、且つ、その場合も、発見的な方法が必要となる。   However, in general, the forward kinematic process is an easy process, but the inverse kinematic process is a very difficult process to realize. The solution of forward kinematics is uniquely obtained by calculating the movement of the origin of the coordinate system and the rotation of the coordinate system sequentially. On the other hand, in order to obtain an inverse kinematics solution, it is generally necessary to solve nonlinear simultaneous equations. This solution can be obtained analytically only when the robot structure is simple, and in that case, a heuristic method is required.

ロボット(マニピュレーター)への逆運動学や順運動学の適用を考えると、その手先の位置と姿勢を指定するためには、6つのパラメーターが必要となる。つまり、ロボットの手先の3次元座標のパラメーター(X,Y,Z)と、(X,Y,Z)のそれぞれの軸の周りの回転角度のパラメーター(U,V,W)とが必要になり、(X,Y,Z,U,V,W)の6つのパラメーターが必要になる。従って、一般的には、ロボットにも少なくとも6つの自由度が要求されることになる。   Considering the application of inverse kinematics and forward kinematics to a robot (manipulator), six parameters are required to specify the position and posture of the hand. In other words, the three-dimensional coordinate parameters (X, Y, Z) of the robot hand and the rotation angle parameters (U, V, W) around the respective axes (X, Y, Z) are required. , (X, Y, Z, U, V, W) are required. Therefore, in general, the robot is also required to have at least six degrees of freedom.

任意の自由度のロボットにおいて、各関節角の組を指定すれば、それに対応して1組の(X,Y,Z,U,V,W)が求まる。つまり、順運動学の解は一意に求まる。しかし、6自由度のロボットに1組の(X,Y,Z,U,V,W)を与えて各関節角を求める場合を考えても、その解が1つであるとは限らない。むしろ、ロボットの構造の部分的な対称性などにより、複数の解が存在する場合の方が一般的である。また、近年は、ロボットに、より自由な姿勢をとらせるために、7自由度のロボットを用いる場合が多くなっており、この場合は、(X,Y,Z,U,V,W)を指定しても、解が存在する場合には無限個の解が存在することになる。   If a set of joint angles is specified in a robot having an arbitrary degree of freedom, one set (X, Y, Z, U, V, W) is obtained correspondingly. In other words, the solution of forward kinematics is uniquely obtained. However, considering a case where each joint angle is obtained by giving a set of (X, Y, Z, U, V, W) to a 6-DOF robot, the solution is not necessarily one. Rather, it is more common when there are multiple solutions due to the partial symmetry of the robot structure. In recent years, in order to make a robot take a more free posture, a robot with seven degrees of freedom is often used. In this case, (X, Y, Z, U, V, W) is Even if it is specified, if there are solutions, there will be an infinite number of solutions.

例えば図1(A)に、単純な6自由度のロボットアーム(広義にはロボット)の例を示す。このロボットアームは、関節J1〜J6とこれらの関節により接続される複数のリンクを有する。ここで関節J1、J4、J6は、図1(B)に示すように軸回転関節であり、関節J2、J3、J5は旋回関節である。   For example, FIG. 1A shows an example of a simple 6-DOF robot arm (robot in a broad sense). This robot arm has joints J1 to J6 and a plurality of links connected by these joints. Here, the joints J1, J4, and J6 are axial rotation joints as shown in FIG. 1B, and the joints J2, J3, and J5 are turning joints.

図1(C)に示すように、関節J1〜J7の関節角のパラメーター(θ1,θ2,θ3,θ4,θ5,θ6,θ7)から、手先位置姿勢(広義にはエンドポイント位置)のパラメーター(X,Y,Z,U,V,W)を求める処理が、順運動学である。一方、手先位置姿勢のパラメーター(X,Y,Z,U,V,W)から、関節角のパラメーター(θ1,θ2,θ3,θ4,θ5,θ6,θ7)を求める処理が、逆運動学である。   As shown in FIG. 1C, from the joint angle parameters ([theta] 1, [theta] 2, [theta] 3, [theta] 4, [theta] 5, [theta] 6, [theta] 7) of the joints J1 to J7, the parameters (end point position in a broad sense) The process for obtaining X, Y, Z, U, V, W) is forward kinematics. On the other hand, the process of obtaining the joint angle parameters (θ1, θ2, θ3, θ4, θ5, θ6, θ7) from the hand position / posture parameters (X, Y, Z, U, V, W) is the inverse kinematics. is there.

図1(A)のような単純なロボットアームの逆運動学の解は、解析的に求めることができる。一方、6自由度のロボットにおいては、同一の手先姿勢に対し、部分対称である複数の解が存在する。また、7自由度のロボットにおいては、手先の拘束条件は6つであるので、解が存在する場合には無限個の解が存在する。この場合に、アームアングルと呼ばれる付加的な拘束条件を与えたとしても、部分対称である複数の解が存在する。具体的には、基本解に対して、基部反転で2通りの解、肘反転で2通りの解、手首反転で2通りの解が存在する。従って、これらの各反転の組み合わせで、同一の手先位置姿勢に対して8通りの解が存在する。   The solution of the inverse kinematics of a simple robot arm as shown in FIG. 1A can be obtained analytically. On the other hand, in a 6-DOF robot, there are a plurality of solutions that are partially symmetric with respect to the same hand posture. Further, in a robot with 7 degrees of freedom, since there are six hand constraint conditions, infinite solutions exist when solutions exist. In this case, even if an additional constraint condition called an arm angle is given, there are a plurality of solutions that are partially symmetric. Specifically, with respect to the basic solution, there are two solutions for base inversion, two solutions for elbow inversion, and two solutions for wrist inversion. Accordingly, there are eight solutions for the same hand position / posture by the combination of these inversions.

逆運動学の解析解が得られる条件のうち、最も基本的なものは、図2(A)のように回転軸が一点で交わる場合である。図2(A)では、関節J1とJ3の回転軸は紙面に平行であり、これらの回転軸は、関節J2の中心の交点で交わる。関節J2の回転軸は紙面に垂直であり、この回転軸も、上記と同一の交点で交わる。これは、詳細な説明は省略するが、Z-X-Zオイラー角などにより、任意の3次元的な回転が表現できることに関連する。   Among the conditions for obtaining the inverse kinematic analytical solution, the most basic one is the case where the rotation axes intersect at one point as shown in FIG. In FIG. 2A, the rotation axes of the joints J1 and J3 are parallel to the paper surface, and these rotation axes intersect at the intersection of the centers of the joints J2. The rotation axis of the joint J2 is perpendicular to the paper surface, and this rotation axis also intersects at the same intersection point as described above. Although this is not described in detail, this relates to the fact that arbitrary three-dimensional rotation can be expressed by the ZX-Z Euler angle or the like.

一方、逆運動学の解析解が通常は得られない条件は、図2(B)のように関節にオフセットが存在する場合である。これは、1つの関節の回転により、複数の関節位置姿勢の変化が生じるためである。例えば図2(A)では、手先(エンドポイント)を固定し、関節J3が軸回転しても、関節J2の位置は変化しない。一方、図2(B)のようにオフセットが存在する場合、つまり関節J3の回転軸が関節J2の中心を通らない場合には、関節J3が軸回転すると、関節J2の位置が変化してしまう。   On the other hand, a condition in which an analytical solution of inverse kinematics is not normally obtained is when an offset exists in the joint as shown in FIG. This is because a plurality of joint positions and postures change due to the rotation of one joint. For example, in FIG. 2A, even if the hand (end point) is fixed and the joint J3 rotates, the position of the joint J2 does not change. On the other hand, when an offset exists as shown in FIG. 2B, that is, when the rotation axis of the joint J3 does not pass through the center of the joint J2, when the joint J3 rotates, the position of the joint J2 changes. .

図2(C)のように関節にオフセットが存在する場合でも、例えば、図2(D)のように、数学的に等価な、オフセットが省略されたものに変換することが可能である。これは、関節J3の回転によっても、関節J2とJ4の間の距離が変化せず、且つ、関節J3、J4、J5の接続のように、解析解が得られ、且つ、自由度の高い構造が存在するからである。しかし、このような変換が可能かどうかはロボットアームの構造に強く依存し、仮に変換が可能であったとしても、その変換は試行錯誤的に決めるしかない。   Even when there is an offset in the joint as shown in FIG. 2C, it can be converted into a mathematically equivalent one in which the offset is omitted as shown in FIG. This is because the distance between the joints J2 and J4 does not change by the rotation of the joint J3, and an analytical solution is obtained and the degree of freedom is high as in the connection of the joints J3, J4, and J5. Because there exists. However, whether such conversion is possible depends strongly on the structure of the robot arm, and even if conversion is possible, the conversion can only be determined by trial and error.

以上のように、オフセットの存在は、逆運動学の処理を困難にする。しかしながら、オフセットには、実用上において有利な効果が存在する。例えば、図3(A)、図3(B)に示すような関節の可動範囲の拡大である。現実のロボットアームには、モーター、構造体の大きさがあるために、例えば図3(A)のような場合は、関節J1、J3の大きさが原因で、関節J2の可動範囲に制限が発生する。一方、図3(B)のようにオフセットを加えることにより、関節J2の可動範囲を広くすることが可能となる。   As described above, the presence of the offset makes it difficult to process inverse kinematics. However, the offset has an advantageous effect in practice. For example, the range of motion of the joint as shown in FIGS. 3 (A) and 3 (B) is enlarged. Since an actual robot arm has a size of a motor and a structure, for example, in the case of FIG. 3A, the movable range of the joint J2 is limited due to the size of the joints J1 and J3. Occur. On the other hand, by adding an offset as shown in FIG. 3B, the movable range of the joint J2 can be widened.

また、図3(A)の場合には、回転軸を1点に集中させるために、その周辺の機械的な構造が複雑になり、その結果、重量が増大してしまう。一方、図3(B)のような構造においては、相対的に単純な機械的な構造を採用することができ、その結果、重量を軽減することが可能であるという効果も存在する。   Further, in the case of FIG. 3A, since the rotating shaft is concentrated at one point, the surrounding mechanical structure becomes complicated, and as a result, the weight increases. On the other hand, in the structure as shown in FIG. 3B, a relatively simple mechanical structure can be adopted, and as a result, there is an effect that the weight can be reduced.

本実施形態では、例えば図3(C)に示すようなロボットアーム(ロボット)を想定する。図3(C)は、逆運動学の解が解析的に求め難い、或いは求められない構造の一例である。当然であるが、本実施形態の手法は、このような構造のロボットに特化したものではない。   In this embodiment, for example, a robot arm (robot) as shown in FIG. FIG. 3C is an example of a structure in which an inverse kinematic solution is difficult or cannot be obtained analytically. As a matter of course, the method of the present embodiment is not specialized for a robot having such a structure.

本実施形態では、図4(A)の真正モデルMTを近似したモデルとして、解析処理(解析解を得る処理)が可能な図4(B)、図4(C)に示すような近似モデルMA(近似解析モデル)を用意する。図4(B)、図4(C)の近似モデルMAは、図4(A)の真正モデルMTからオフセット(回転軸のオフセット)を省略したモデル(取り除いたモデル)である。図4(B)の近似モデルMAでは、オフセットを単に取り去っているが、図4(C)の近似モデルMAでは、関節間を結ぶリンクの長さとして、オフセット部の対角線の長さを用いている。なお、近似モデルは図4(B)、図4(B)に示すようなモデルに限定されず、種々の変形実施が可能である。例えば全ての関節についてのオフセットを省略するのではなく、一部の関節についてのオフセットを省略したモデルを近似モデルとしてもよい。   In the present embodiment, an approximate model MA as shown in FIGS. 4B and 4C that can be analyzed (process for obtaining an analytical solution) as a model that approximates the authentic model MT in FIG. (Approximate analysis model) is prepared. The approximate model MA in FIGS. 4B and 4C is a model in which an offset (offset of the rotation axis) is omitted from the authentic model MT in FIG. 4A. In the approximate model MA in FIG. 4B, the offset is simply removed, but in the approximate model MA in FIG. 4C, the length of the diagonal line of the offset portion is used as the length of the link connecting the joints. Yes. The approximate model is not limited to the models shown in FIGS. 4B and 4B, and various modifications can be made. For example, instead of omitting offsets for all joints, a model in which offsets for some joints are omitted may be used as the approximate model.

2.第1の実施例
図5に、本実施形態の第1の実施例のロボット制御システム(及びこれを含むロボットシステム)の構成例を示す。図5は、第1の実施例及び後述する第2〜第5の実施例を包含する本実施形態の基本的な構成例でもある。なお、本実施形態のロボット制御システム(ロボットシステム)は図5の構成には限定されず、その一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
2. First Example FIG. 5 shows a configuration example of a robot control system (and a robot system including the same) according to a first example of the present embodiment. FIG. 5 is also a basic configuration example of the present embodiment including the first example and second to fifth examples described later. Note that the robot control system (robot system) of the present embodiment is not limited to the configuration shown in FIG. 5, and various modifications may be made such as omitting some components or adding other components. It is.

図5のロボット制御システム(ロボット制御装置)は、目標エンドポイント位置取得部20と、真正モデル記憶部22と、近似モデル記憶部24と、処理部30を含む。また、アーム駆動制御部等として機能するロボット制御部80を含むことができる。そして、このロボット制御システムとロボット100(ロボットアーム)とにより本実施形態のロボットシステムが実現される。   The robot control system (robot control device) in FIG. 5 includes a target end point position acquisition unit 20, a genuine model storage unit 22, an approximate model storage unit 24, and a processing unit 30. Moreover, the robot control part 80 which functions as an arm drive control part etc. can be included. The robot system of this embodiment is realized by the robot control system and the robot 100 (robot arm).

エンドポイント位置取得部(手先位置姿勢取得部)20は、ロボット100(ロボットアーム)の目標エンドポイント位置を取得する。目標エンドポイント位置(目標エンドエフェクター位置)は、ロボット100のエンドポイント(エンドエフェクター)の移動目標となる位置(姿勢)であり、後述する軌道情報(計画軌道)により特定されるものである。   The end point position acquisition unit (hand position / posture acquisition unit) 20 acquires a target end point position of the robot 100 (robot arm). The target end point position (target end effector position) is a position (posture) that is a movement target of the end point (end effector) of the robot 100, and is specified by trajectory information (planned trajectory) described later.

なお、以下ではロボット100(ロボットアーム)の手先位置姿勢(X,Y,Z,U,V,W)を、エンドポイント位置として説明する。本実施形態の処理対象となる手先位置姿勢は、エンドポイント位置に対応する手先位置(X,Y,Z)であってもよいし、手先位置(X,Y,Z)及び手先姿勢(U,V,W)の両方であってもよい。   Hereinafter, the hand position / posture (X, Y, Z, U, V, W) of the robot 100 (robot arm) will be described as the end point position. The hand position / posture to be processed in the present embodiment may be the hand position (X, Y, Z) corresponding to the end point position, or the hand position (X, Y, Z) and hand position (U, V, W) may be used.

真正モデル記憶部22は、ロボット100の真正モデルの情報(真正モデルの関節やリンクの情報)を記憶する。近似モデル記憶部24は、真正モデルを近似した近似モデルの情報(近似モデルの関節やリンクの情報)を記憶する。具体的には、近似モデル記憶部24は、真正モデルの関節のオフセットが省略されたモデルの情報を、近似モデルの情報として記憶する。例えば前述の図4(A)に示すように真正モデルMTがオフセットを有する場合には、図4(B)、図4(C)に示すようにオフセットが省略された近似モデルMAを用意し、その情報を近似モデル記憶部24に記憶する。なお、真正モデル記憶部22に記憶される情報と近似モデル記憶部24に記憶される情報のうち重複する部分については共用して記憶するようにしてもよい。   The authentic model storage unit 22 stores information on the authentic model of the robot 100 (information on joints and links of the authentic model). The approximate model storage unit 24 stores information on an approximate model obtained by approximating a genuine model (information on joints and links of the approximate model). Specifically, the approximate model storage unit 24 stores, as approximate model information, model information from which the joint offset of the authentic model is omitted. For example, when the genuine model MT has an offset as shown in FIG. 4 (A), an approximate model MA with the offset omitted as shown in FIGS. 4 (B) and 4 (C) is prepared. The information is stored in the approximate model storage unit 24. Note that overlapping portions of the information stored in the authentic model storage unit 22 and the information stored in the approximate model storage unit 24 may be shared and stored.

処理部30は、反復法による反復演算処理を行うことで、ロボット100の逆運動学における解を求める処理などを行う。具体的には処理部30は、近似モデルと目標エンドポイント位置(手先位置や足先位置)を用いて、近似解を求める。この近似解は、例えばロボット100の関節角(関節変数)の近似解(狭義には近似解析解。以下、同様)である。そして処理部30は、近似解と真正モデルを用いて、反復法による反復演算処理を行うことで、ロボット100の逆運動学における解を求める。つまり、ロボット100の関節角(関節変数)の解を求める。例えば処理部30は、近似解を初期値として設定して、反復演算処理を行うことで、逆運動学における解を求める。この処理部30の機能は、プロセッサー又はASICなどのハードウエアー回路や、プロセッサー等において動作するプログラムなどにより実現できる。   The processing unit 30 performs a process for obtaining a solution in the inverse kinematics of the robot 100 by performing an iterative calculation process by an iterative method. Specifically, the processing unit 30 obtains an approximate solution using the approximate model and the target end point position (hand position or foot position). This approximate solution is, for example, an approximate solution of a joint angle (joint variable) of the robot 100 (in the narrow sense, an approximate analytical solution; the same applies hereinafter). The processing unit 30 obtains a solution in the inverse kinematics of the robot 100 by performing an iterative calculation process by an iterative method using the approximate solution and the authentic model. That is, the solution of the joint angle (joint variable) of the robot 100 is obtained. For example, the processing unit 30 sets an approximate solution as an initial value and performs an iterative calculation process to obtain a solution in inverse kinematics. The function of the processing unit 30 can be realized by a hardware circuit such as a processor or an ASIC, a program that operates in the processor, or the like.

処理部30は、近似解演算部40、反復演算処理部50、収束判定部52、エラー処理部54を含む。   The processing unit 30 includes an approximate solution calculation unit 40, an iterative calculation processing unit 50, a convergence determination unit 52, and an error processing unit 54.

近似解演算部40は、ロボットの関節角の近似解を求める処理を行う。具体的には、近似モデル記憶部24からの近似モデル(近似解析モデル)と、目標エンドポイント位置取得部20からの目標エンドポイント位置(手先位置姿勢)とを用いた解析的な処理により、ロボットの各関節角の近似解析解を求める処理を行う。例えば、目標エンドポイント位置が引数の変数となり、関節角が解の変数となる関数式(非線形連立方程式等)により、関節角の近似解析解を求める。この場合に、例えば三角関数などの非線形関数を多項式に変換して近似解析解を求めることができる。また、アームアングルなどの付加的な拘束条件を与えるようにしてもよい。例えば6自由度のロボットアームについては、6つの関節のうち連続した3つの関節が全て回転関節であり、且つ、それらの関節の3つの回転軸の延長線が一点で交わるような構造の場合には、例えば2組の3次元4次連立方程式に帰着させることで、逆運動学の解を解析的に求めることができる。   The approximate solution calculation unit 40 performs processing for obtaining an approximate solution of the joint angle of the robot. Specifically, a robot is obtained by analytical processing using the approximate model (approximate analysis model) from the approximate model storage unit 24 and the target end point position (hand position / posture) from the target end point position acquisition unit 20. To obtain an approximate analytical solution for each joint angle. For example, an approximate analytical solution of the joint angle is obtained by a function expression (such as a nonlinear simultaneous equation) in which the target end point position is an argument variable and the joint angle is a solution variable. In this case, an approximate analytical solution can be obtained by converting a nonlinear function such as a trigonometric function into a polynomial. Further, an additional constraint condition such as an arm angle may be given. For example, in the case of a robot arm having 6 degrees of freedom, a structure in which three consecutive joints out of six joints are all rotary joints and the extension lines of the three rotational axes of those joints intersect at one point. For example, the solution of inverse kinematics can be obtained analytically by reducing to two sets of three-dimensional quaternary simultaneous equations.

反復演算処理部50は、逆運動学における解を反復法により求める処理を行う。収束判定部52は、反復法による反復演算処理の収束判定を行う。エラー処理部54は、反復演算処理においてエラーが発生した場合の処理を行う。   The iterative calculation processing unit 50 performs processing for obtaining a solution in inverse kinematics by an iterative method. The convergence determination unit 52 determines the convergence of the iterative calculation process by the iterative method. The error processing unit 54 performs processing when an error occurs in the iterative calculation processing.

例えば、反復演算処理部50は、ヤコビアンを用いた数値計算や、最適化計算、探索法等により、逆運動学の解(関節変数の解)を求める。例えばヤコビアンを用いた逆運動学やクォータニオンの逆運動学のアルゴリズムでは、全ての関節の角度を同時に少しずつ更新しながら解を探索する。一方、CCD(Cyclic-Coordinate-Descent)法では、1回の計算ステップにおいては、1つの関節の最適角度のみを求め、それを全ての関節に順番に繰り返すことで、ロボットアーム全体としての逆運動学の解を探索する。PIK(Particle-IK)法では、関節角ではなく関節位置を直接操作することで逆運動学の解を求める。   For example, the iterative calculation processing unit 50 obtains an inverse kinematics solution (joint variable solution) by numerical calculation using Jacobian, optimization calculation, search method, or the like. For example, in inverse kinematics using Jacobian and quaternion inverse kinematics, the solution is searched while updating the angles of all joints little by little at the same time. On the other hand, in the CCD (Cyclic-Coordinate-Descent) method, only the optimal angle of one joint is obtained in one calculation step, and this is repeated in order for all joints, so that the robot arm as a whole moves backward. Explore academic solutions. In the PIK (Particle-IK) method, the inverse kinematics solution is obtained by directly manipulating the joint position, not the joint angle.

例えば下式(1)に示すように、m個の変数を入力とし、n個の出力を与える関数fを考える。或いは、m個の変数を入力とし、1つの出力を与える関数fをn組用意する。   For example, as shown in the following equation (1), consider a function f that takes m variables as inputs and gives n outputs. Alternatively, n sets of functions f which take m variables as inputs and give one output are prepared.

Figure 2013132731
この場合に、ヤコビアン(ヤコビ行列)は、下式(2)に表される行列である。
Figure 2013132731
In this case, the Jacobian (Jacobi matrix) is a matrix represented by the following expression (2).

Figure 2013132731
つまり、ヤコビアンは、xの「ある値」の近傍において、xとyの関係を線形近似したものである。従って、一般的には、xの「ある値」が変化すれば、ヤコビアンも変化する。
Figure 2013132731
That is, the Jacobian is a linear approximation of the relationship between x and y in the vicinity of “a certain value” of x. Therefore, in general, when “a certain value” of x changes, the Jacobian also changes.

ここで、xを関節角、yをロボットのエンドポイント位置(狭義には手先位置姿勢。以下も同様)とすれば、上式(2)のヤコビアン(ヤコビ行列)は、ある姿勢において各関節が微小に変化した場合の、それに伴うエンドポイント位置の微小な変化を与える関係式となる。ここで、各関節角の微小変化と、エンドポイント位置の微小変化との対応は、その姿勢に応じて変化する。つまり、ヤコビアンは、姿勢の変化に対応して、その都度、計算する必要がある。   Here, if x is the joint angle and y is the end point position of the robot (the hand position and posture in the narrow sense; the same applies to the following), the Jacobian (Jacobi matrix) of the above equation (2) This is a relational expression that gives a minute change in the end point position accompanying the minute change. Here, the correspondence between the minute change of each joint angle and the minute change of the end point position changes according to the posture. In other words, the Jacobian needs to be calculated each time the posture changes.

エンドポイント位置(手先位置姿勢)から関節角を求める逆運動学の処理は、一般的には非常に難しい処理であるが、下式(3)のように、ヤコビアンの逆行列である逆ヤコビアンを求めることができれば、エンドポイント位置の微小な変化を各関節角の微小な変化に変換する関係式を求めることができる。   The inverse kinematics processing to obtain the joint angle from the end point position (hand position / posture) is generally very difficult processing. If it can be obtained, a relational expression for converting a minute change in the end point position into a minute change in each joint angle can be obtained.

Figure 2013132731
一般的には、ヤコビアンは正方行列ではなく、且つ、rank(階数)も低く、通常の意味の逆行列は存在しない。例えば7軸のロボットでは、手先の自由度は6つしかないので、7×7ではなく、7×6の行列になってしまう。但し、通常の意味の逆行列と類似した性質を持つ一般化逆行列は存在し得る。この一般化逆行列による逆ヤコビアンJ−1により、エンドポイント位置の微小な変化を各関節角の微小な変化に変換することができる。例えばヤコビアンを用いた逆運動学の1つのアルゴリズム例では、現在のエンドポイント位置から目標エンドポイント位置へと延びる変位ベクトルΔPを計算する。次に、逆ヤコビアンJ−1を用いて、関節角の変位ベクトルΔθ=ΔPJ−1を計算する。そして、θ=θ+Δθにより関節角ベクトルを更新する。そして更新後のエンドポイント位置と目標エンドポイント位置との差異が許容誤差範囲内ならば、解が収束したと判定して、反復演算処理を終了する。この場合の収束判定処理は収束判定部52により行われる。解が収束した場合には、その解は関節角としてロボット制御部80に出力される。一方、解が収束しなかった場合には、エラー処理部54が、エラー時用の処理を行う。
Figure 2013132731
In general, the Jacobian is not a square matrix and has a low rank (rank), and there is no inverse matrix with the usual meaning. For example, in a 7-axis robot, there are only 6 degrees of freedom of the hand, so a 7 × 6 matrix is formed instead of 7 × 7. However, there can be a generalized inverse matrix having properties similar to the inverse matrix of ordinary meaning. By the inverse Jacobian J −1 by this generalized inverse matrix, a minute change in the end point position can be converted into a minute change in each joint angle. For example, in one example of inverse kinematics using Jacobian, a displacement vector ΔP extending from the current endpoint position to the target endpoint position is calculated. Next, a joint angle displacement vector Δθ = ΔPJ −1 is calculated using the inverse Jacobian J −1 . Then, the joint angle vector is updated by θ = θ + Δθ. If the difference between the updated end point position and the target end point position is within the allowable error range, it is determined that the solution has converged, and the iterative calculation process is terminated. The convergence determination process in this case is performed by the convergence determination unit 52. When the solution converges, the solution is output to the robot control unit 80 as a joint angle. On the other hand, when the solution does not converge, the error processing unit 54 performs an error process.

ロボット制御部80は、処理部30により求められた解に基づいて、ロボット100の制御を行う。具体的には、解として求めれた関節角を、ロボット100の各関節角に設定するフィードバック制御を行い、ロボット制御を実現する。   The robot control unit 80 controls the robot 100 based on the solution obtained by the processing unit 30. Specifically, the robot control is realized by performing feedback control in which the joint angles obtained as solutions are set to the joint angles of the robot 100.

図6に、本実施形態のロボット制御システム(ロボットシステム)の具体的な構成例を示す。このロボット制御システムは、力制御部12、目標値出力部60、ロボット制御部80を含む。またロボットシステムは、このロボット制御システムと、ロボット100(力覚センサー10)により構成される。   FIG. 6 shows a specific configuration example of the robot control system (robot system) of the present embodiment. The robot control system includes a force control unit 12, a target value output unit 60, and a robot control unit 80. The robot system includes the robot control system and the robot 100 (force sensor 10).

目標値出力部60は、ロボット(狭義にはマニピュレーター)のフィードバック制御の目標値を出力する。この目標値に基づいてロボット100のフィードバック制御が実現される。   The target value output unit 60 outputs a target value for feedback control of the robot (manipulator in a narrow sense). Based on this target value, feedback control of the robot 100 is realized.

目標値出力部60は、軌道生成部62とインバースキネマティクス処理部64を含む。軌道生成部62は、ロボットの軌道情報を出力する。軌道情報は、ロボットのエンドエフェクター部(エンドポイント)の位置情報(X,Y,Z)と、各座標軸回りでの回転角度情報(U,V,W)を含むことができる。インバースキネマティクス処理部64は、軌道生成部62からの軌道情報に基づいてインバースキネマティクス処理(逆運動学処理)を行い、例えばロボットの関節角情報を目標値として出力する。例えば、図6の軌道生成部62が図5の目標エンドポイント位置取得部20に相当し、インバースキネマティクス処理部64が処理部30に相当する。   The target value output unit 60 includes a trajectory generation unit 62 and an inverse kinematics processing unit 64. The trajectory generator 62 outputs the trajectory information of the robot. The trajectory information can include position information (X, Y, Z) of the end effector part (end point) of the robot and rotation angle information (U, V, W) about each coordinate axis. The inverse kinematics processing unit 64 performs inverse kinematics processing (inverse kinematics processing) based on the trajectory information from the trajectory generation unit 62, and outputs, for example, joint angle information of the robot as a target value. For example, the trajectory generation unit 62 in FIG. 6 corresponds to the target end point position acquisition unit 20 in FIG. 5, and the inverse kinematics processing unit 64 corresponds to the processing unit 30.

力制御部12(狭義にはインピーダンス制御部)は、力覚センサー10からのセンサー情報に基づいて力制御(力覚制御)を行って、目標値の補正値を出力する。更に具体的には、力制御部12(インピーダンス制御部)は、力覚センサー10からのセンサー情報(力情報、モーメント情報)に基づいてインピーダンス制御(或いはコンプライアンス制御)を行う。力制御は、例えば、従来の位置制御に対して、力のフィードバックが加わった制御である。インピーダンス制御は、外力に対するエンドエフェクター部(手先)の変位の生じやすさ(機械インピーダンス)を、制御により望ましい状態にする手法である。具体的には、ロボットのエンドエフェクター部の質量に粘性係数と弾性要素が接続されるモデルにおいて、目標として設定した粘性係数と弾性係数で物体に接触するようにする制御である。また力覚センサー10は、ロボット100が出している力の反力として受けている力やモーメントを検出するセンサーである。この力覚センサー10は、通常、ロボット100のアームの手首部分に取り付けられ、検出された力やモーメントは、センサー情報として、各種の力制御(インピーダンス制御)に用いられる。   The force control unit 12 (impedance control unit in a narrow sense) performs force control (force control) based on sensor information from the force sensor 10 and outputs a correction value for the target value. More specifically, the force control unit 12 (impedance control unit) performs impedance control (or compliance control) based on sensor information (force information and moment information) from the force sensor 10. Force control is, for example, control in which force feedback is added to conventional position control. Impedance control is a technique for making the ease of displacement (mechanical impedance) of the end effector section (hand) with respect to external force a desirable state by control. Specifically, in the model in which the viscosity coefficient and the elastic element are connected to the mass of the end effector unit of the robot, the control is performed so as to contact the object with the viscosity coefficient and the elastic coefficient set as targets. The force sensor 10 is a sensor that detects a force or moment received as a reaction force of the force generated by the robot 100. The force sensor 10 is usually attached to the wrist portion of the arm of the robot 100, and the detected force and moment are used for various types of force control (impedance control) as sensor information.

ロボット制御部80は、目標値出力部60からの目標値に基づいて、ロボットのフィードバック制御を行う。具体的には、力制御部12からの補正値により補正された目標値に基づいて、ロボットのフィードバック制御を行う。例えば補正値により補正された目標値と、ロボット100からのフィードバック信号に基づいて、ロボット100のフィードバック制御を行う。例えばロボット制御部80は、複数の駆動制御部82-1〜82-N(狭義にはモーター制御部)を含み、ロボット100が有する駆動部102-1〜102-Nに対して、その制御信号を出力する。ここで駆動部102-1〜102-Nは、ロボット100の各関節を動かすための駆動機構であり、例えばモーター等により実現される。   The robot control unit 80 performs feedback control of the robot based on the target value from the target value output unit 60. Specifically, the robot feedback control is performed based on the target value corrected by the correction value from the force control unit 12. For example, feedback control of the robot 100 is performed based on the target value corrected by the correction value and the feedback signal from the robot 100. For example, the robot control unit 80 includes a plurality of drive control units 82-1 to 82-N (in a narrow sense, motor control units), and controls the control signals for the drive units 102-1 to 102-N included in the robot 100. Is output. Here, the drive units 102-1 to 102-N are drive mechanisms for moving each joint of the robot 100, and are realized by, for example, a motor or the like.

図7(A)に本実施形態のロボット制御システムを含むロボットシステムの例を示す。このロボットシステムは、制御装置300(ロボット制御システム)と、ロボット本体310(広義にはロボット)とを含む。制御装置300はロボット本体310の制御処理を行う。具体的には、動作シーケンス情報(シナリオ情報)に基づいてロボット本体310を動作させる制御を行う。ロボット本体310は、アーム320及びハンド(把持部)330を有する。そして制御装置300からの動作指示にしたがって動作する。例えば、図示しないパレットに載せられたワークを把持したり、移動するなどの動作を行う。また、図示しない撮像装置で取得された撮像画像情報に基づいて、ロボット本体310の姿勢やワークの位置などの情報が検出され、検出された情報が制御装置300に送られる。   FIG. 7A shows an example of a robot system including the robot control system of this embodiment. This robot system includes a control device 300 (robot control system) and a robot body 310 (robot in a broad sense). The control device 300 performs control processing for the robot body 310. Specifically, control for operating the robot main body 310 is performed based on the operation sequence information (scenario information). The robot body 310 includes an arm 320 and a hand (gripping unit) 330. Then, it operates according to an operation instruction from the control device 300. For example, operations such as gripping or moving a workpiece placed on a pallet (not shown) are performed. Further, information such as the posture of the robot body 310 and the position of the workpiece is detected based on captured image information acquired by an imaging device (not shown), and the detected information is sent to the control device 300.

本実施形態のロボット制御システムは例えば図7(A)の制御装置300に設けられ、例えば制御装置300のハードウェアーやプログラムによりロボット制御システムが実現される。そして本実施形態のロボット制御システムによれば、制御装置300などの制御ハードウェアーに対する性能要求を低減できると共に、ロボット本体310を高い応答性で動作させることなどが可能になる。   The robot control system of the present embodiment is provided in, for example, the control device 300 in FIG. 7A, and the robot control system is realized by, for example, hardware or a program of the control device 300. According to the robot control system of the present embodiment, it is possible to reduce performance requirements for control hardware such as the control device 300 and to operate the robot body 310 with high responsiveness.

なお、図7(A)では、ロボット本体310(ロボット)と制御装置300(ロボット制御システム)とが別体に構成されているが、図7(B)に示すようにロボット本体310と制御装置300とが一体に構成されていてもよい。具体的には図7(B)では、ロボット本体310を支えるベースユニット部に制御装置300が格納されている。そして、ベースユニット部には車輪等が設けられ、ロボット全体が移動可能な構成となっている。また図7(A)は単腕型のロボットの例であるが、本実施形態のロボットは図7(B)に示すような双腕型等の多腕型のロボットであってもよい。   In FIG. 7A, the robot body 310 (robot) and the control device 300 (robot control system) are configured separately. However, as shown in FIG. 300 may be integrally formed. Specifically, in FIG. 7B, the control device 300 is stored in the base unit portion that supports the robot body 310. The base unit portion is provided with wheels and the like so that the entire robot can move. Although FIG. 7A shows an example of a single-arm robot, the robot of this embodiment may be a multi-arm robot such as a double-arm robot as shown in FIG.

次に本実施形態の第1の実施例の手法の詳細について説明する。第1の実施例では、対象となるロボットを近似し、解析的に逆運動学の解を求めることが可能な近似モデル(近似解析モデル)を用意する。例えばロボットの真正モデルでは、図2(B)に示すようなオフセットが存在する場合に、近似モデルでは図2(A)に示すようにこのオフセットを取り去る。即ち、図2(B)の真正モデルでは、関節J3の回転軸が関節J2の関節中心を通らず、オフセットを有しているが、図2(A)の近似モデルでは、関節J3の回転軸が関節J2の関節中心を通る。また関節J1の回転軸も関節J2の関節中心を通る。このため、図2(A)の近似モデルを用いることで、解析的に解を求めることができる。そして、指定された目標エンドポイント位置(目標手先位置姿勢)を入力とし、近似モデルを用いて解析的な処理を行い、解析解である近似解を求める。そして、例えばこの近似解を初期値とし、反復法により、対象となるロボットの逆運動学の解を求める。即ち、近似解を、真正モデルの関節角の初期値に設定して、反復法による反復演算処理を行って、逆運動学の解を求める。ここで、対象となるロボットから近似モデルを求める手法の一例は、ロボットが持つオフセットの長さを零とするものである。また、ロボットの逆運動学の解を求める手法の一例は、ヤコビアン(逆ヤコビアン)を用いる手法である。   Next, details of the technique of the first example of the present embodiment will be described. In the first embodiment, an approximate model (approximate analysis model) that can approximate a target robot and analytically obtain an inverse kinematic solution is prepared. For example, if there is an offset as shown in FIG. 2B in the authentic model of the robot, the offset is removed as shown in FIG. 2A in the approximate model. That is, in the authentic model of FIG. 2B, the rotation axis of the joint J3 does not pass through the joint center of the joint J2, and has an offset, but in the approximate model of FIG. 2A, the rotation axis of the joint J3. Passes through the joint center of the joint J2. The rotation axis of the joint J1 also passes through the joint center of the joint J2. For this reason, a solution can be obtained analytically by using the approximate model of FIG. Then, the designated target end point position (target hand position / posture) is input, and an analytical process is performed using the approximate model to obtain an approximate solution that is an analytical solution. Then, for example, using this approximate solution as an initial value, an inverse kinematic solution of the target robot is obtained by an iterative method. That is, the approximate solution is set to the initial value of the joint angle of the genuine model, and an iterative calculation process is performed by an iterative method to obtain an inverse kinematics solution. Here, an example of a method for obtaining the approximate model from the target robot is to set the length of the offset of the robot to zero. An example of a method for obtaining a solution of the inverse kinematics of the robot is a method using a Jacobian (inverse Jacobian).

具体的には、まず、図8(A)に示すように、目標エンドポイント位置(手先位置姿勢)を与える。目標エンドポイント位置は、例えば図6の軌道生成部62からの軌道情報に基づいて取得される。   Specifically, first, as shown in FIG. 8A, a target end point position (hand position / posture) is given. The target end point position is acquired based on the trajectory information from the trajectory generation unit 62 in FIG. 6, for example.

次に図8(B)に示すように近似モデルMAと目標エンドポイント位置を用いて近似解を求める。即ち、近似モデルMAの目標エンドポイント位置を図8(A)の位置に設定して、解析的な処理により、関節角の解析解を近似解として求める。近似モデルは解析解を求めることが可能なモデルになっているため、その関節角の解析解を求めることができる。   Next, as shown in FIG. 8B, an approximate solution is obtained using the approximate model MA and the target end point position. That is, the target end point position of the approximate model MA is set to the position shown in FIG. 8A, and an analytical solution for the joint angle is obtained as an approximate solution by analytical processing. Since the approximate model is a model that can obtain an analytical solution, an analytical solution of the joint angle can be obtained.

次に、図8(C)に示すように、求められた近似解を初期値に設定する。具体的には、真正モデルMTの各関節角に、近似モデルにより求められた各関節角の近似解を設定する。近似モデルが良いモデルであれば、近似解は真の解に近いはずであり、図8(C)の真正モデルMTのエンドポイント位置と目標エンドポイント位置との間の誤差は小さいはずである。   Next, as shown in FIG. 8C, the obtained approximate solution is set to an initial value. Specifically, an approximate solution of each joint angle obtained from the approximate model is set for each joint angle of the authentic model MT. If the approximate model is a good model, the approximate solution should be close to the true solution, and the error between the end point position and the target end point position of the authentic model MT in FIG. 8C should be small.

そして、このように真正モデルMTの関節角の初期値に、近似モデルMAにより得られた近似解を設定して、図8(D)に示すように反復法による反復演算処理を行う。つまり、図8(C)の誤差を反復法により修正し、逆運動学における解を求める。反復演算処理が収束すれば、それが解となる。即ち、エンドポイント位置と目標エンドポイント位置との間の誤差が許容誤差範囲内になったら、解は収束したと判定され、その時の解が、逆運動学により求めるべきロボットの各関節角になる。   Then, the approximate solution obtained by the approximate model MA is set as the initial value of the joint angle of the authentic model MT in this way, and the iterative calculation process by the iterative method is performed as shown in FIG. That is, the error in FIG. 8C is corrected by an iterative method to find a solution in inverse kinematics. If the iterative calculation process converges, it is the solution. That is, if the error between the end point position and the target end point position is within the allowable error range, the solution is determined to have converged, and the solution at that time becomes each joint angle of the robot to be obtained by inverse kinematics. .

図9は第1の実施例の詳細な処理を表すフローチャートである。まず、目標エンドポイント位置を取得する(S1)。次に、近似モデルにより近似解を求める(S2)。即ち、近似モデルを用いた解析的な処理により、解析解である近似解を求める。   FIG. 9 is a flowchart showing detailed processing of the first embodiment. First, a target end point position is acquired (S1). Next, an approximate solution is obtained from the approximate model (S2). That is, an approximate solution that is an analytical solution is obtained by an analytical process using the approximate model.

次に、解は得られたか否かを判断し、得られなかった場合には処理が失敗したと判断する(S3、S7)。一方、得られた場合には、得られた近似解を初期値として用いて、反復法で解を求める(S4)。具体的には、真正モデルの各関節角の初期値として近似解を設定し、反復法による反復演算処理により逆運動学における解を求める。そして、解が収束した場合には、処理が成功したと判断し(S5、S6)、その時の解をロボットの各関節角に設定して、ロボット制御を行う。   Next, it is determined whether or not a solution has been obtained. If it has not been obtained, it is determined that the processing has failed (S3, S7). On the other hand, when it is obtained, the obtained approximate solution is used as an initial value, and a solution is obtained by an iterative method (S4). Specifically, an approximate solution is set as an initial value of each joint angle of the genuine model, and a solution in inverse kinematics is obtained by iterative calculation processing by an iterative method. If the solution converges, it is determined that the process has been successful (S5, S6), and the solution at that time is set to each joint angle of the robot to perform robot control.

以上の本実施形態の手法によれば、複雑な構造を持つロボットの逆運動学の解を、反復法により、より効率的に短時間で求めることが可能になる。また本実施形態によれば、従来の反復法の初期値決めに必要であったような大きな記憶容量を不要にすることができる。また本実施形態によれば、従来の反復法においては困難であったロボットの姿勢制御、冗長自由度制御を容易に行うことが可能となる。以上により、冗長自由度を持ち、オフセットなどの複雑な構造を持つロボットに対して、より高度、高速な制御を実現することが可能になる。   According to the method of the present embodiment described above, the inverse kinematics solution of a robot having a complicated structure can be obtained more efficiently and in a short time by an iterative method. Further, according to the present embodiment, it is possible to eliminate the large storage capacity that is necessary for determining the initial value of the conventional iterative method. Further, according to the present embodiment, it is possible to easily perform robot posture control and redundant degree-of-freedom control, which were difficult in the conventional iterative method. As described above, it is possible to realize higher-level and higher-speed control with respect to a robot having a redundant degree of freedom and a complicated structure such as an offset.

3.第2の実施例
図10に本実施形態の第2の実施例のロボット制御システム(及びこれを含むロボットシステム)の構成例を示す。なお、ロボット制御システムの構成やその構成要件について、第1の実施例と重複する部分については、適宜、その説明を省略する。
3. Second Example FIG. 10 shows a configuration example of a robot control system (and a robot system including the same) according to a second example of the present embodiment. In addition, about the structure of a robot control system, or its component requirement, the description which overlaps with a 1st Example is abbreviate | omitted suitably.

図10のロボット制御システムは、目標エンドポイント位置取得部20と、真正モデル記憶部22と、近似モデル記憶部24と、処理部30を含む。またロボット制御部80を含むことができる。   The robot control system in FIG. 10 includes a target end point position acquisition unit 20, a genuine model storage unit 22, an approximate model storage unit 24, and a processing unit 30. A robot controller 80 can also be included.

図10の処理部30は、近似解(近似解析解)を真正モデルの関節角(関節変数)に設定することで、近似解によるエンドポイント位置(手先位置姿勢)を求める。即ち、近似モデルにより得られた近似解を、真正モデルの各関節角に設定して、その時の真正モデルのエンドポイント位置を近似解によるエンドポイント位置として求める。次に、処理部30は、近似解によるエンドポイント位置と目標エンドポイント位置との間の誤差に基づいて、目標エンドポイント位置を修正することで、修正目標エンドポイント位置を求める。即ち、当該誤差の分だけ目標エンドポイント位置をずらす修正を行い、エンドポイント位置をずらした位置を、修正目標エンドポイント位置とする。   The processing unit 30 in FIG. 10 determines the end point position (hand position / posture) based on the approximate solution by setting the approximate solution (approximate analysis solution) to the joint angle (joint variable) of the authentic model. That is, the approximate solution obtained by the approximate model is set to each joint angle of the authentic model, and the end point position of the authentic model at that time is obtained as the end point position by the approximate solution. Next, the processing unit 30 obtains a corrected target end point position by correcting the target end point position based on an error between the end point position and the target end point position by the approximate solution. That is, correction is performed by shifting the target end point position by the amount of the error, and the position where the end point position is shifted is set as the corrected target end point position.

そして処理部30は、修正目標エンドポイント位置と近似モデルを用いて、第2の近似解を求める。具体的には、修正目標エンドポイント位置と近似モデルを用いた解析的処理を行って、関節角の解析解を第2の近似解として求める。そして、処理部30は、求められた第2の近似解と真正モデルを用いて、反復演算処理を行うことで、ロボット100の逆運動学における解を求める。具体的には、第2の近似解を真正モデルの関節角の初期値として設定して、反復法の反復演算処理を行うことで、関節角の解を逆運動学における解として求める。   Then, the processing unit 30 obtains a second approximate solution using the corrected target end point position and the approximate model. Specifically, an analytical process using the corrected target end point position and the approximate model is performed, and the joint angle analytical solution is obtained as the second approximate solution. And the process part 30 calculates | requires the solution in the inverse kinematics of the robot 100 by performing iterative calculation processing using the calculated | required 2nd approximate solution and a genuine model. Specifically, the second approximate solution is set as the initial value of the joint angle of the authentic model, and the iterative calculation process of the iterative method is performed to obtain the joint angle solution as a solution in inverse kinematics.

以上の処理を行うために、図10の処理部30は、近似解演算部40、フォワードキネマティクス処理部42、目標エンドポイント位置修正部43、反復演算処理部50、収束判定部52、エラー処理部54を含む。   In order to perform the above processing, the processing unit 30 in FIG. 10 includes an approximate solution calculation unit 40, a forward kinematics processing unit 42, a target endpoint position correction unit 43, an iterative calculation processing unit 50, a convergence determination unit 52, an error process. Part 54 is included.

具体的には、近似解演算部40は、第1の実施例と同様に、近似モデル記憶部24からの近似モデルと、目標エンドポイント位置取得部20からの目標エンドポイント位置を用いて、近似解を求める。そしてフォワードキネマティクス処理部42は、真正モデル記憶部22からの真正モデルの関節角に対して、求められた近似解を設定することで、フォワードキネマティクス処理(順運動学処理)により、真正モデルのエンドポイント位置を近似解によるエンドポイント位置として求める。次に、目標エンドポイント位置修正部43は、近似解によるエンドポイント位置と目標エンドポイント位置との間の誤差に基づいて、目標エンドポイント位置を修正する。そして、近似解演算部40は、修正目標エンドポイント位置と近似モデルを用いて、解析的処理を行って、第2の近似解を求める。次に、反復演算処理部50は、第2の近似解と真正モデルを用いて、反復演算処理を行うことで、逆運動学における解を求める。そして、収束判定部52は、この反復演算処理において解が収束したか否かを判定し、解が収束した場合には、その解を、ロボット100の関節角としてロボット制御部80に出力する。一方、解が収束しなかった場合には、エラー処理部54がエラー時用の処理を行う。   Specifically, the approximate solution calculation unit 40 approximates using the approximate model from the approximate model storage unit 24 and the target end point position from the target end point position acquisition unit 20 as in the first embodiment. Find a solution. Then, the forward kinematics processing unit 42 sets the obtained approximate solution for the joint angle of the authentic model from the authentic model storage unit 22, thereby performing the authentic model by forward kinematics processing (forward kinematics processing). Is determined as the end point position by the approximate solution. Next, the target end point position correcting unit 43 corrects the target end point position based on the error between the end point position and the target end point position based on the approximate solution. Then, the approximate solution calculation unit 40 performs an analytical process using the corrected target end point position and the approximate model to obtain a second approximate solution. Next, the iterative calculation processing unit 50 obtains a solution in inverse kinematics by performing an iterative calculation process using the second approximate solution and the authentic model. Then, the convergence determination unit 52 determines whether or not the solution has converged in this iterative calculation process, and when the solution has converged, outputs the solution to the robot control unit 80 as the joint angle of the robot 100. On the other hand, if the solution does not converge, the error processing unit 54 performs an error process.

次に本実施形態の第2の実施例の手法の詳細について説明する。第2の実施例では、対象となるロボットを近似し、解析的に逆運動学の解を求めることが可能な近似モデルを用意する。そして、第1の実施例と同様に、指定された目標エンドポイント位置(目標手先位置姿勢)を入力とし、近似モデルを用いて解析的な処理を行い、解析解である近似解を求める。   Next, details of the technique of the second example of the present embodiment will be described. In the second embodiment, an approximate model capable of approximating a target robot and analytically obtaining an inverse kinematic solution is prepared. Then, as in the first embodiment, the designated target end point position (target hand position / posture) is input, and an analytical process is performed using the approximate model to obtain an approximate solution that is an analytical solution.

次に、求められた近似解を初期値とし、対象となるロボットのエンドポイント位置を求める。そして、求められたエンドポイント位置と指定された目標エンドポイント位置との差異を誤差として求める。次に、指定された目標エンドポイント位置から、上記の誤差を引き算し、それを修正目標エンドポイント位置とする。そして、修正目標エンドポイント位置を入力として、近似モデルで第2の近似解を求める。次に、この第2の近似解を初期値として、反復法により、対象となるロボットの逆運動学の解を求める。   Next, using the obtained approximate solution as an initial value, the end point position of the target robot is obtained. Then, a difference between the obtained end point position and the designated target end point position is obtained as an error. Next, the above error is subtracted from the designated target end point position, and this is used as the corrected target end point position. Then, using the corrected target end point position as an input, a second approximate solution is obtained using an approximate model. Next, an inverse kinematic solution of the target robot is obtained by an iterative method with the second approximate solution as an initial value.

この第2の実施例の手法は、近似解を与える近似モデルを2回用いるものである。つまり、真正モデルを用いた場合に起こる、近似解と真正モデルによる解との差異を、予め、目標エンドポイント位置に対して補正しておくことにより、より真の解に近い初期値を得るものである。これは、修正された目標エンドポイント位置に対する第2の近似解の方が、真正モデルを用いた場合の解に近いはずであるという考えに基づいている。   The technique of the second embodiment uses an approximate model that gives an approximate solution twice. In other words, an initial value closer to the true solution can be obtained by correcting the difference between the approximate solution and the solution based on the authentic model, which occurs when using the authentic model, with respect to the target end point position in advance. It is. This is based on the idea that the second approximate solution for the modified target endpoint position should be closer to the solution using the authentic model.

具体的には、図11(A)に示すように、第1の実施例と同様に、近似モデルMAと目標エンドポイント位置を用いて第1の近似解を求める。そして、第1の近似解を真正モデルMTの関節角に設定して、近似解によるエンドポイント位置を求める。   Specifically, as shown in FIG. 11A, the first approximate solution is obtained using the approximate model MA and the target end point position as in the first embodiment. Then, the first approximate solution is set to the joint angle of the authentic model MT, and the end point position by the approximate solution is obtained.

次に、図11(B)に示すように、求められた近似解によるエンドポイント位置(真正モデルのエンドポイント位置)と目標エンドポイント位置との間の誤差(差異)を求める。そして、求められた誤差を用いて、目標エンドポイント位置を修正して、修正目標エンドポイント位置を求める。   Next, as shown in FIG. 11B, an error (difference) between the end point position (end point position of the authentic model) and the target end point position by the obtained approximate solution is obtained. Then, using the obtained error, the target end point position is corrected to obtain the corrected target end point position.

次に、図11(C)に示すように、修正目標エンドポイント位置と近似モデルMAを用いて、第2の近似解を求める。即ち、近似モデルMAの目標エンドポイント位置を修正目標エンドポイント位置に設定して、解析的な処理により、関節角の解析解を第2の近似解として求める。このようにして修正された目標エンドポイント位置に対する第2の近似解の方が、真正モデルMTを用いた場合の解に近いはずである。   Next, as shown in FIG. 11C, a second approximate solution is obtained using the corrected target end point position and the approximate model MA. That is, the target end point position of the approximate model MA is set as the corrected target end point position, and the analytical solution of the joint angle is obtained as the second approximate solution by analytical processing. The second approximate solution for the target end point position corrected in this way should be closer to the solution when using the authentic model MT.

次に、図11(D)に示すように、求められた第2の近似解を初期値に設定する。具体的には、真正モデルMTの各関節角に、近似モデルにより求められた各関節角の第2の近似解を設定する。そして、反復法による反復演算処理を行い、逆運動学における解を求める。反復演算処理が収束すれば、それが解となり、逆運動学により求めるべきロボットの各関節角になる。   Next, as shown in FIG. 11D, the obtained second approximate solution is set to an initial value. Specifically, a second approximate solution of each joint angle obtained from the approximate model is set for each joint angle of the authentic model MT. Then, iterative calculation processing is performed by an iterative method to find a solution in inverse kinematics. If the iterative calculation process converges, it becomes a solution, and becomes each joint angle of the robot to be obtained by inverse kinematics.

図12は第2の実施例の詳細な処理を表すフローチャートである。まず、目標エンドポイント位置を取得する(S11)。次に、近似モデルにより第1の近似解を求める(S12)。即ち、近似モデルに対する解析的な処理により、解析解である第1の近似解を求める。   FIG. 12 is a flowchart showing detailed processing of the second embodiment. First, a target end point position is acquired (S11). Next, a first approximate solution is obtained from the approximate model (S12). That is, a first approximate solution that is an analytical solution is obtained by analytical processing on the approximate model.

次に、解は得られたか否かを判断し、得られなかった場合には処理が失敗したと判断する(S13、S21)。一方、得られた場合には、得られた第1の近似解と真正モデルを用いて、エンドポイント位置を求める(S14)。具体的には、真正モデルの各関節角に第1の近似解を設定し、フォワードキネマティクス処理により、近似解によるエンドポイント位置を求める。そして、求められた近似解によるエンドポイント位置と目標エンドポイント位置との誤差(差異)に基づいて、目標エンドポイント位置を修正し、修正目標エンドポイント位置を求める(S15)。   Next, it is determined whether or not a solution has been obtained. If not, it is determined that the process has failed (S13, S21). On the other hand, when it is obtained, the end point position is obtained using the obtained first approximate solution and the authentic model (S14). Specifically, the first approximate solution is set for each joint angle of the authentic model, and the end point position by the approximate solution is obtained by forward kinematics processing. Then, based on the error (difference) between the end point position and the target end point position based on the obtained approximate solution, the target end point position is corrected to determine the corrected target end point position (S15).

次に、近似モデルにより修正目標エンドポイント位置に対する第2の近似解を求める(S16)。即ち、近似モデルを用いた解析的な処理により、解析解である第2の近似解を求める。そして、解は得られたか否かを判断し、得られなかった場合には処理が失敗したと判断する(S17、S21)。一方、得られた場合には、得られた第2の近似解と真正モデルを用いて、反復法で解を求める(S18)。具体的には、真正モデルの各関節角の初期値として第2の近似解を設定し、反復法による演算処理により逆運動学における解を求める。そして、解が収束した場合には、処理が成功したと判断し(S19、S20)、その時の解をロボットの各関節角に設定して、ロボット制御を行う。一方、解が得られなかった場合には、処理が失敗したと判断し、エラー処理等を行う(S21)。   Next, a second approximate solution for the corrected target end point position is obtained from the approximate model (S16). That is, a second approximate solution that is an analytical solution is obtained by analytical processing using the approximate model. Then, it is determined whether or not a solution has been obtained. If not, it is determined that the process has failed (S17, S21). On the other hand, when obtained, a solution is obtained by an iterative method using the obtained second approximate solution and the authentic model (S18). Specifically, a second approximate solution is set as an initial value of each joint angle of the authentic model, and a solution in inverse kinematics is obtained by calculation processing by an iterative method. If the solution converges, it is determined that the process has been successful (S19, S20), and the solution at that time is set to each joint angle of the robot to perform robot control. On the other hand, if no solution is obtained, it is determined that the process has failed, and error processing or the like is performed (S21).

以上の第2の実施例の手法によれば、より真の解に近い第2の近似解を初期値に設定して、反復法により逆運動学の解を求めることができる。従って、冗長自由度を持ち、オフセットなどの複雑な構造を持つロボットに対して、より高度、高速な制御を実現することが可能になる。   According to the method of the second embodiment described above, an inverse kinematic solution can be obtained by an iterative method by setting the second approximate solution closer to the true solution as an initial value. Accordingly, it is possible to realize higher-level and higher-speed control for a robot having a redundant degree of freedom and a complicated structure such as an offset.

4.第3の実施例
図13に本実施形態の第3の実施例のロボット制御システム(及びこれを含むロボットシステム)の構成例を示す。なお、ロボット制御システムの構成やその構成要件について、第1、第2の実施例と重複する部分については、適宜、その説明を省略する。
4). Third Example FIG. 13 shows a configuration example of a robot control system (and a robot system including the same) according to a third example of the present embodiment. In addition, about the structure of a robot control system, or its component requirement, the description which overlaps with the 1st, 2nd Example is abbreviate | omitted suitably.

図13のロボット制御システムは、目標エンドポイント位置取得部20と、真正モデル記憶部22と、近似モデル記憶部24と、処理部30を含む。またロボット制御部80を含むことができる。   The robot control system of FIG. 13 includes a target endpoint position acquisition unit 20, a genuine model storage unit 22, an approximate model storage unit 24, and a processing unit 30. A robot controller 80 can also be included.

図13の近似モデル記憶部24は、真正モデルを近似したモデルとして、第1〜第mの近似モデルMA-1〜MA-m(mは2以上の整数)の情報を記憶する。処理部30は、第1〜第mの近似モデルMA-1〜MA-mと目標エンドポイント位置を用いて、第1〜第mの近似解を求める。そして、第1〜第mの近似解の中から選択された近似解を初期値として設定して、反復演算処理を行うことで、ロボット100の逆運動学における解を求める。   The approximate model storage unit 24 in FIG. 13 stores information on the first to m-th approximate models MA-1 to MA-m (m is an integer of 2 or more) as models approximating the authentic model. The processing unit 30 obtains first to mth approximate solutions using the first to mth approximate models MA-1 to MA-m and the target end point position. Then, an approximate solution selected from the first to mth approximate solutions is set as an initial value, and an iterative calculation process is performed to obtain a solution in the inverse kinematics of the robot 100.

具体的には、処理部30は、第1〜第mの近似モデルMA-1〜MA-mのうちの第i(1≦i≦m)の近似モデルと目標エンドポイント位置を用いて、第iの近似解を求める。即ち、第iの近似モデルと目標エンドポイント位置を用いた解析的処理により、解析解である第iの近似解を求める。   Specifically, the processing unit 30 uses the i-th (1 ≦ i ≦ m) approximate model and the target end point position among the first to m-th approximate models MA-1 to MA-m, and Find the approximate solution of i. That is, an i-th approximate solution, which is an analytical solution, is obtained by analytical processing using the i-th approximate model and the target end point position.

次に処理部30は、求められた第iの近似解を真正モデルの関節角に設定することで、近似解による第iのエンドポイント位置とヤコビアンを求める。そして、第iのエンドポイント位置と目標エンドポイント位置との間の第1の誤差と、ヤコビアン(逆ヤコビアン)を用いて、関節角を補正する。即ち、ヤコビアンを用いた逆運動学の反復法による反復演算処理を、例えば1回(広義には所定回数)の処理ループだけ、実行する。例えばヤコビアンを用いた逆運動学の反復法では、前述したように、エンドポイント位置の変位(変位ベクトル)と逆ヤコビアンを用いて、関節角の変位(変位ベクトル)を求める。第3の実施例では、エンドポイント位置の変位に相当する第1の誤差と逆ヤコビアンとを用いて求められた関節角の変位の分だけ、関節角を補正する。処理部30は、この補正後の関節角を真正モデルの関節角に設定することで、第iの補正エンドポイント位置を求める。そして、求められた第iの補正エンドポイント位置と目標エンドポイント位置の間の第2の誤差に基づいて選択された近似解を、初期値として設定する。具体的には、上述した処理を第1〜第mの近似モデルMA-1〜MA-mの各近似モデルを用いて行い、第1〜第mの補正エンドポイント位置を求める。そして、求められた第1〜第mの補正エンドポイント位置と目標エンドポイント位置との間の第2の誤差を求め、第2の誤差が例えば最も小さくなる補正エンドポイント位置に対応する近似解を選択する。そして、選択された近似解を、真正モデルの関節角の初期値として設定して、反復法の反復演算処理を行うことで、逆運動学における解を求める。   Next, the processing unit 30 obtains the i-th end point position and the Jacobian by the approximate solution by setting the obtained i-th approximate solution as the joint angle of the genuine model. Then, the joint angle is corrected using the first error between the i-th end point position and the target end point position and the Jacobian (inverse Jacobian). That is, the iterative calculation process by the inverse kinematics iteration method using Jacobian is executed, for example, only once (a predetermined number of times in a broad sense). For example, in the iterative method of inverse kinematics using Jacobian, as described above, the displacement of the joint angle (displacement vector) is obtained using the displacement of the end point position (displacement vector) and the inverse Jacobian. In the third embodiment, the joint angle is corrected by the amount of displacement of the joint angle obtained using the first error corresponding to the displacement of the end point position and the inverse Jacobian. The processing unit 30 obtains the i-th corrected end point position by setting the corrected joint angle to the joint angle of the genuine model. Then, an approximate solution selected based on the second error between the determined i-th corrected end point position and the target end point position is set as an initial value. Specifically, the above-described processing is performed using each of the first to mth approximate models MA-1 to MA-m, and the first to mth corrected end point positions are obtained. Then, a second error between the obtained first to mth correction end point positions and the target end point position is obtained, and an approximate solution corresponding to the correction end point position at which the second error becomes the smallest is obtained. select. Then, the selected approximate solution is set as an initial value of the joint angle of the genuine model, and an iterative calculation process of the iterative method is performed to obtain a solution in inverse kinematics.

以上の処理を行うために、図13の処理部30は、近似解演算部40-1〜40-m、近似解選択部44、反復演算処理部50、収束判定部52、エラー処理部54を含む。   In order to perform the above processing, the processing unit 30 in FIG. 13 includes an approximate solution calculation unit 40-1 to 40-m, an approximate solution selection unit 44, an iterative calculation processing unit 50, a convergence determination unit 52, and an error processing unit 54. Including.

具体的には、近似解演算部40-1〜40-mは、近似モデル記憶部24からの第1〜第mの近似モデルMA-1〜MA-mと、目標エンドポイント位置取得部20からの目標エンドポイント位置を用いて、第1〜mの近似解を求める。即ち、各近似解演算部40-1〜40-mは、第1の実施例と同様の手法により近似解を求める。そして、近似解選択部44は、求められた第1〜第mの近似解の中から、例えば誤差が最も少ないと評価される近似解を選択する。例えば、第1〜第mの近似解のうちの第iの近似解を真正モデルの関節角に設定することで、近似解による第iのエンドポイント位置とヤコビアンが求められ、第iのエンドポイント位置と目標エンドポイント位置との間の第1の誤差と、ヤコビアンを用いて、関節角が補正され、補正後の関節角を真正モデルの関節角に設定することで、第iの補正エンドポイント位置が求められたとする。この場合には近似解選択部44は、第1〜第mの補正エンドポイント位置の各第iの補正エンドポイント位置と目標エンドポイント位置の間の第2の誤差に基づいて、近似解を選択する。例えば第2の誤差が最も少ない補正エンドポイント位置を選択する。そして、反復演算処理部50は、選択された近似解と真正モデルを用いて、反復演算処理を行うことで、逆運動学における解を求める。即ち、選択された近似解を真正モデルの初期値に設定して、反復演算処理を行って、関節角についての解を求める。そして収束判定部52は、解が収束した場合には、その解を、ロボット100の関節角としてロボット制御部80に出力する。   Specifically, the approximate solution calculation units 40-1 to 40-m are connected to the first to m-th approximate models MA-1 to MA-m from the approximate model storage unit 24 and the target end point position acquisition unit 20. The first to m-th approximate solutions are obtained using the target end point positions. That is, each approximate solution calculation unit 40-1 to 40-m obtains an approximate solution by the same method as in the first embodiment. Then, the approximate solution selection unit 44 selects, from among the obtained first to mth approximate solutions, an approximate solution that is evaluated to have the least error, for example. For example, by setting the i-th approximate solution of the first to m-th approximate solutions to the joint angle of the authentic model, the i-th end point position and the Jacobian by the approximate solution are obtained, and the i-th end point The joint angle is corrected by using the first error between the position and the target end point position and the Jacobian, and the corrected joint angle is set to the joint angle of the genuine model, whereby the i-th corrected end point Suppose that the position is determined. In this case, the approximate solution selection unit 44 selects an approximate solution based on the second error between the i-th correction end point position and the target end point position of the first to m-th correction end point positions. To do. For example, the correction end point position with the smallest second error is selected. Then, the iterative calculation processing unit 50 obtains a solution in inverse kinematics by performing iterative calculation processing using the selected approximate solution and the authentic model. That is, the selected approximate solution is set as the initial value of the authentic model, and an iterative calculation process is performed to obtain a solution for the joint angle. When the solution has converged, the convergence determination unit 52 outputs the solution to the robot control unit 80 as the joint angle of the robot 100.

次に本実施形態の第3の実施例の手法の詳細について説明する。第3の実施例では、対象となるロボットを近似し、解析的に逆運動学の解を求めることが可能な複数個の近似モデルを用意する。複数個の近似モデルは、例えば各アームの長さが互いに異なるモデルである。具体的には、図4(B)、図4(C)のように、アームの長さの設定が異なる近似モデルなどを想定できる。或いは、オフセットの省略の仕方や、拘束条件が互いに異なる近似モデルであってもよい。   Next, details of the technique of the third example of the present embodiment will be described. In the third embodiment, a plurality of approximate models capable of approximating a target robot and analytically obtaining an inverse kinematic solution are prepared. The plurality of approximate models are models in which the lengths of the arms are different from each other, for example. Specifically, as shown in FIGS. 4B and 4C, approximate models with different arm length settings can be assumed. Alternatively, approximate models may be used in which the offset is omitted and the constraint conditions are different from each other.

そして、第1の実施例と同様に、指定された目標エンドポイント位置(目標手先位置姿勢)を入力とし、複数の近似モデルを用いて解析的な処理を行い、解析解である複数の近似解を求める。   As in the first embodiment, the designated target end point position (target hand position / posture) is input, and analytical processing is performed using a plurality of approximate models, and a plurality of approximate solutions that are analytical solutions are obtained. Ask for.

次に、これらの複数の近似解の中から、以下の基準で最適なものを選択し、それを初期値とし、対象となるロボットのエンドポイント位置(手先位置姿勢)を求める。具体的には、指定された目標エンドポイント位置と、複数の近似解のそれぞれに対応するエンドポイント位置との間の第1の誤差(第1の差異)を求める。また、それぞれのエンドポイント位置(手先位置姿勢)におけるヤコビアンを求める。そして、上記の第1の誤差と上記のヤコビアンにより、角関節角の補正を行う。次に、補正された関節角により、補正エンドポイント(補正手先位置姿勢)を求める。そして、目標エンドポイント位置と補正エンドポイント位置との間の第2の誤差(第2の差異)を求める。そして、第2の誤差が最も小さいものに対応する近接解を初期値とし、反復法により、対象となるロボットの逆運動学の解を求める。   Next, an optimal solution is selected from the plurality of approximate solutions based on the following criteria, and is used as an initial value to determine the end point position (hand position / posture) of the target robot. Specifically, a first error (first difference) between the designated target end point position and the end point position corresponding to each of the plurality of approximate solutions is obtained. Further, the Jacobian at each end point position (hand position / posture) is obtained. Then, the angle joint angle is corrected by the first error and the Jacobian. Next, a correction end point (corrected hand position / posture) is obtained from the corrected joint angle. Then, a second error (second difference) between the target end point position and the corrected end point position is obtained. Then, the proximity solution corresponding to the smallest second error is set as an initial value, and an inverse kinematic solution of the target robot is obtained by an iterative method.

この第3の実施例の手法は、近似解を与える複数個の近似モデルを用意するものである。つまり、複数の近似モデルを用意し、更に、その中のどの近似モデルが良いかという判断を、反復法の最初の1ステップ分の処理を行って、その結果が最も目標に近いものを選択するという手法である。単純に、近似解の結果が目標に近いか遠いではなく、真の解に効率良く近づく可能性が高そうな解を、上記の1ステップ分の処理の結果に基づいて、選択するという手法である。   The technique of the third embodiment prepares a plurality of approximate models that give approximate solutions. In other words, a plurality of approximate models are prepared, and further, which approximate model is better is processed by the first one step of the iterative method, and the result closest to the target is selected. It is a technique. Simply by selecting the solution that is not likely to be close to or far from the target and that is likely to approach the true solution efficiently, based on the result of the above one-step process. is there.

まず、ヤコビアンについて簡単に説明する。簡単化のために1次元の場合として説明する。図14(A)において、TRは、エンドポイント位置に対する関節角の解を表すものであり、真正モデルに対応するものである。近似解に対応するP1でのヤコビアンは、P1における接線(微分値)TGに相当する。このヤコビアンを用い、目標位置(目標エンドポイント位置)へ移動するための角度変位を求めると、図14(B)のようになる。具体的には、ヤコビアンを表す接線TGと目標位置(目標エンドポイント位置)との交点P2から、補正近似解が求まる。この補正近似解は、近似解よりもP3の解に近くなっており、目標位置と補正位置(補正エンドポイント位置)と間の誤差は小さい。一方、図14(C)では、近似解に対応するP4でのヤコビアンに相当する接線TGにより、P5の補正近似解が求まる。図14(C)では、図14(B)に比べて、目標位置と補正位置との間の誤差は大きくなっている。また図14(C)では、その後の反復演算処理の収束も悪いと考えられる。即ち、補正近似解のところでのヤコビアンを求めて更に補正を行うと、ヤコビアンに対応する接線と目標位置との交点は、解から離れる方向になるため、反復演算処理の収束が悪くなる。   First, the Jacobian will be briefly described. For the sake of simplification, a one-dimensional case will be described. In FIG. 14A, TR represents the solution of the joint angle with respect to the end point position, and corresponds to the authentic model. The Jacobian at P1 corresponding to the approximate solution corresponds to the tangent (differential value) TG at P1. FIG. 14B shows the angular displacement for moving to the target position (target end point position) using this Jacobian. Specifically, a corrected approximate solution is obtained from the intersection P2 between the tangent line TG representing the Jacobian and the target position (target end point position). This corrected approximate solution is closer to the solution of P3 than the approximate solution, and the error between the target position and the corrected position (corrected end point position) is small. On the other hand, in FIG. 14C, the corrected approximate solution of P5 is obtained from the tangent TG corresponding to the Jacobian at P4 corresponding to the approximate solution. In FIG. 14C, the error between the target position and the correction position is larger than in FIG. 14B. In FIG. 14C, it is considered that the convergence of the subsequent iterative calculation process is also poor. That is, when the Jacobian at the corrected approximate solution is obtained and further corrected, the intersection of the tangent corresponding to the Jacobian and the target position is away from the solution, so that the convergence of the iterative calculation process becomes worse.

解の良し悪しを判定することは非常に難しい。例えば、単純に最初の近似解の誤差の大小だけでは、判断を誤る可能性が高い。一方、第3の実施例の手法のようにヤコビアンで一度補正をした後の誤差で判断する手法も、必ずしも最良の手法であるとは言うことはできない。しかし、実験的には、解への収束性の良い場合は、最初の2、3回の補正で真の解の近傍に急速に接近する。一方、収束性の悪い場合には、そのような特性は見られない。従って、この意味においては、本実施形態の第3の実施例の手法のように、補正を1回行った後の誤差を用いて判断する手法は有効であると考えられる。   It is very difficult to judge whether a solution is good or bad. For example, there is a high possibility of making a judgment mistake simply by the magnitude of the error of the first approximate solution. On the other hand, the method of judging by the error after correcting once with Jacobian as in the method of the third embodiment is not necessarily the best method. However, experimentally, when the convergence to the solution is good, the first two or three corrections quickly approach the vicinity of the true solution. On the other hand, in the case of poor convergence, such a characteristic is not seen. Therefore, in this sense, it is considered effective to use the error after the correction is performed once as in the method of the third example of the present embodiment.

図15は第3の実施例の詳細な処理を表すフローチャートである。まず、目標エンドポイント位置を取得する(S31)。次に、全ての近似モデルについての処理を行ったか否かを判断し、行っていない場合には近似モデルを1つ選択する(S32、S33)。そして、第1の実施例と同様に、選択された近似モデルにより近似解(近似解析解)を求める(S34)。   FIG. 15 is a flowchart showing detailed processing of the third embodiment. First, a target end point position is acquired (S31). Next, it is determined whether or not all approximate models have been processed. If not, one approximate model is selected (S32, S33). Then, as in the first embodiment, an approximate solution (approximate analytical solution) is obtained using the selected approximate model (S34).

次に、解は得られたか否かを判断し(S35)、得られなかった場合にはステップS32に戻る。一方、得られた場合には、第2の実施例と同様に、得られた近似解と真正モデルを用いて、エンドポイント位置を求める(S36)。具体的には、真正モデルの各関節角に近似解を設定し、フォワードキネマティクス処理により、近似解によるエンドポイント位置を求める。具体的には図14(B)のP1における近似位置を求める。更に、得られた近似解と真正モデルを用いて、ヤコビアン(逆ヤコビアン)を求める(S37)。これは図14(B)のP1における接線TGを求めることに相当する。   Next, it is determined whether or not a solution has been obtained (S35). If not obtained, the process returns to step S32. On the other hand, if it is obtained, the end point position is obtained using the obtained approximate solution and the authentic model as in the second embodiment (S36). Specifically, an approximate solution is set for each joint angle of the authentic model, and the end point position by the approximate solution is obtained by forward kinematics processing. Specifically, an approximate position at P1 in FIG. Further, a Jacobian (inverse Jacobian) is obtained using the obtained approximate solution and the authentic model (S37). This corresponds to obtaining the tangent TG at P1 in FIG.

次に、求めたエンドポイント位置と目標エンドポイント位置との間の第1の誤差と、ヤコビアン(逆ヤコビアン)を用いて、関節角を補正する(S38)。これは、図14(B)において、近似位置(近似解によるエンドポイント位置)と目標位置(目標エンドポイント位置)と接線TG(ヤコビアン)により補正近似解(補正後の関節角)を求めることに相当する。   Next, the joint angle is corrected using the first error between the obtained end point position and the target end point position and the Jacobian (inverse Jacobian) (S38). In FIG. 14B, a corrected approximate solution (joint angle after correction) is obtained from the approximate position (end point position by the approximate solution), the target position (target end point position), and the tangent TG (Jacobiane). Equivalent to.

次に、補正後の関節角と真正モデルを用いて、補正エンドポイント位置を求める(S39)。これは、図14(B)において、TR(真正モデル)と、補正近似解(補正後の関節角)から、補正位置(補正エンドポイント位置)を求めることに相当する。そして、補正エンドポイント位置と目標エンドポイント位置との間の第2の誤差と、補正後の関節角を記憶部に記憶する(S40)。即ち図14(B)の目標位置と補正位置の間の誤差と、補正近似解を記憶する。   Next, a corrected end point position is obtained using the corrected joint angle and the authentic model (S39). This corresponds to obtaining a correction position (correction end point position) from TR (authentic model) and the corrected approximate solution (corrected joint angle) in FIG. Then, the second error between the corrected end point position and the target end point position and the corrected joint angle are stored in the storage unit (S40). That is, the error between the target position and the correction position in FIG. 14B and the correction approximate solution are stored.

ステップS32で全ての近似モデルについての処理が行われたと判断されると、最も目標エンドポイント位置に近い解を与えた関節角を、初期値として選択する(S41)。具体的には、図14(B)において、補正位置と目標位置との間の第2の誤差が最も小さくなる補正近似解を、初期値として選択する。この選択処理は、ステップS40で記憶された各近似モデルの第2の誤差と補正後の関節角を用いることで、実現できる。   If it is determined in step S32 that the processing for all approximate models has been performed, the joint angle that gives the solution closest to the target end point position is selected as the initial value (S41). Specifically, in FIG. 14B, the correction approximate solution that minimizes the second error between the correction position and the target position is selected as the initial value. This selection process can be realized by using the second error of each approximate model stored in step S40 and the corrected joint angle.

次に、選択した初期値と真正モデルを用いて、反復法により解を求める(S42)。具体的には、真正モデルの各関節角に対して、選択した初期値を設定し、反復法による演算処理により逆運動学における解を求める。そして、解が収束した場合には、処理が成功したと判断し(S43、S44)、その時の解をロボットの各関節角に設定して、ロボット制御を行う。一方、解が得られなかった場合には、処理が失敗したと判断し、エラー処理等を行う(S45)。なお、図15のステップS37〜S39が、ステップS42の反復演算処理の1ステップ分の処理に相当する。   Next, a solution is obtained by an iterative method using the selected initial value and the authentic model (S42). Specifically, a selected initial value is set for each joint angle of the authentic model, and a solution in inverse kinematics is obtained by arithmetic processing by an iterative method. If the solution converges, it is determined that the process has been successful (S43, S44), and the solution at that time is set to each joint angle of the robot to perform robot control. On the other hand, if no solution is obtained, it is determined that the process has failed, and error processing or the like is performed (S45). Note that steps S37 to S39 in FIG. 15 correspond to one step of the iterative calculation process in step S42.

以上の第3の実施例の手法によれば、複数の近似モデルを用いることで、より真の解に近い補正関節角(補正近似解)を初期値に設定して、反復法により逆運動学の解を求めることができる。従って、冗長自由度を持ち、オフセットなどの複雑な構造を持つロボットに対して、より高度、高速な制御を実現することが可能になる。   According to the method of the third embodiment described above, by using a plurality of approximate models, a corrected joint angle (corrected approximate solution) closer to the true solution is set to an initial value, and inverse kinematics is performed by an iterative method. Can be obtained. Accordingly, it is possible to realize higher-level and higher-speed control for a robot having a redundant degree of freedom and a complicated structure such as an offset.

5.第4、第5の実施例
図16、図17に本実施形態の第4、第5の実施例のロボット制御システム(及びこれを含むロボットシステム)の構成例を示す。なお、ロボット制御システムの構成やその構成要件について、第1、第2、第3の実施例と重複する部分については、適宜、その説明を省略する。
5. Fourth and Fifth Examples FIGS. 16 and 17 show configuration examples of a robot control system (and a robot system including the same) according to fourth and fifth examples of the present embodiment. In addition, about the structure of a robot control system, or its structural requirement, the description which overlaps with the 1st, 2nd, 3rd Example is abbreviate | omitted suitably.

図16、図17のロボット制御システムは、目標エンドポイント位置取得部20と、真正モデル記憶部22と、近似モデル記憶部24と、処理部30を含む。またロボット制御部80を含むことができる。また図17では、更に動作履歴記憶部26が設けられる。   The robot control system of FIGS. 16 and 17 includes a target endpoint position acquisition unit 20, a genuine model storage unit 22, an approximate model storage unit 24, and a processing unit 30. A robot controller 80 can also be included. In FIG. 17, an operation history storage unit 26 is further provided.

例えば図16の第4の実施例の処理部30は、近似解を真正モデルの関節角に設定することで、近似解によるエンドポイント位置を求める。具体的には、フォワードキネマティクス処理によりエンドポイント位置を求める。そして処理部30は、近似解によるエンドポイント位置と現在のエンドポイント位置の中から、選択されたエンドポイント位置(手先位置姿勢)に対応する関節角を、初期値に設定して、反復演算処理を行うことで、ロボットの逆運動学における解を求める。例えば処理部30は、現在エンドポイント位置取得部45を有しており、この現在エンドポイント位置取得部45が、ロボット制御部80から、現在のエンドポイント位置や関節角を取得する。例えば、現在の姿勢でのアームのエンドエフェクター部の位置やアームの関節角を取得する。そして、初期値選択部46が、近似解によるエンドポイント位置と現在のエンドポイント位置の中から選択されたエンドポイント位置に対応する関節角を、反復演算処理に使用される初期値として選択する。   For example, the processing unit 30 of the fourth embodiment shown in FIG. 16 determines the end point position based on the approximate solution by setting the approximate solution to the joint angle of the authentic model. Specifically, the end point position is obtained by forward kinematics processing. Then, the processing unit 30 sets the joint angle corresponding to the selected end point position (hand position / posture) from the end point position by the approximate solution and the current end point position to an initial value, and performs an iterative calculation process. To find the solution in the inverse kinematics of the robot. For example, the processing unit 30 includes a current end point position acquisition unit 45, and the current end point position acquisition unit 45 acquires the current end point position and joint angle from the robot control unit 80. For example, the position of the end effector portion of the arm and the joint angle of the arm in the current posture are acquired. Then, the initial value selection unit 46 selects the joint angle corresponding to the end point position selected from the end point position based on the approximate solution and the current end point position as the initial value used for the iterative calculation processing.

更に具体的には処理部30は、近似解によるエンドポイント位置と目標エンドポイント位置との間の第1の誤差を求める。また現在のエンドポイント位置と目標エンドポイント位置との間の第2の誤差を求める。そして処理部30は、第1の誤差の方が第2の誤差よりも小さい場合には、近似解によるエンドポイント位置に対応する関節角(近似解である関節角)を、初期値に設定する。一方、第2の誤差の方が第1の誤差よりも小さい場合には、現在のエンドポイント位置に対応する関節角(現在のアームの関節角)を、初期値に設定する。   More specifically, the processing unit 30 obtains a first error between the end point position and the target end point position based on the approximate solution. Also, a second error between the current end point position and the target end point position is obtained. Then, when the first error is smaller than the second error, the processing unit 30 sets the joint angle corresponding to the end point position by the approximate solution (joint angle that is the approximate solution) to the initial value. . On the other hand, when the second error is smaller than the first error, the joint angle corresponding to the current end point position (the joint angle of the current arm) is set to the initial value.

或いは、処理部30は、ロボットのポイント・ツー・ポイント制御が行われた場合には、近似解によるエンドポイント位置に対応する関節角を、初期値に設定する。一方、ロボットのコンティニュアス制御が行われた場合には、現在のエンドポイント位置に対応する関節角を、初期値に設定する。   Alternatively, when the point-to-point control of the robot is performed, the processing unit 30 sets the joint angle corresponding to the end point position based on the approximate solution to the initial value. On the other hand, when the continuous control of the robot is performed, the joint angle corresponding to the current end point position is set to the initial value.

ここで、ポイント・ツー・ポイント制御は、PTP制御と呼ばれるものであり、例えば飛び飛びの点のポーズ(姿勢)だけを指定した命令により行われる制御である。例えば動作経路上の代表地点を教示し、地点のみを制御し、各地点に向かう動作経路(移動経路)については問題としない制御である。一方、コンティニュアス制御とは、CP制御と呼ばれるものであり、例えば全軌道又は全経路を指定した命令により行われる制御である。例えば、定められた地点間を連続的に補間し、ロボットアームを追従させる。この制御を行う場合には、連続した動作経路を教示することになる。   Here, the point-to-point control is called PTP control, and is control performed by a command specifying only the pose (posture) of a jump point, for example. For example, a representative point on the operation route is taught, only the point is controlled, and the operation route (movement route) toward each point does not matter. On the other hand, the continuous control is called CP control, and is control performed by a command designating all tracks or all routes, for example. For example, the robot arm is caused to follow by continuously interpolating between predetermined points. When this control is performed, a continuous operation path is taught.

図17の第5の実施例のロボット制御システムは、動作履歴記憶部26を更に含む。この動作履歴記憶部26は、過去のエンドポイントの動作履歴位置である動作履歴エンドポイント位置やその時の関節角を記憶する。例えば動作履歴記憶部26はFIFOにより構成され、各タイミングでのエンドポイント位置や関節角が動作履歴データとしてFIFOに順次記憶されて行く。   The robot control system of the fifth embodiment of FIG. 17 further includes an operation history storage unit 26. The operation history storage unit 26 stores an operation history end point position that is an operation history position of a past end point and a joint angle at that time. For example, the operation history storage unit 26 is configured by a FIFO, and the end point position and joint angle at each timing are sequentially stored in the FIFO as operation history data.

そして図17の処理部30は、近似解によるエンドポイント位置と、現在エンドポイント位置取得部45からの現在のエンドポイント位置と、動作履歴記憶部26からの動作履歴エンドポイント位置の中から、選択されたエンドポイント位置に対応する関節角を、初期値に設定して、反復演算処理を行うことで、ロボットの逆運動学における解を求める。この初期値の選択は初期値選択部46により行われる。   The processing unit 30 in FIG. 17 selects the end point position based on the approximate solution, the current end point position from the current end point position acquiring unit 45, and the operation history end point position from the operation history storage unit 26. The joint angle corresponding to the determined end point position is set to an initial value, and an iterative calculation process is performed to obtain a solution in the inverse kinematics of the robot. The initial value selection is performed by the initial value selection unit 46.

具体的には処理部30は、近似解によるエンドポイント位置と目標エンドポイント位置との間の第1の誤差を求める。また現在のエンドポイント位置と目標エンドポイント位置との間の第2の誤差を求める。更に、動作履歴エンドポイント位置と目標エンドポイント位置との間の第3の誤差を求める。そして処理部30は、第1の誤差の方が第2の誤差、第3の誤差よりも小さい場合には、近似解によるエンドポイント位置に対応する関節角を、初期値に設定する。また第2の誤差の方が第1の誤差、第3の誤差よりも小さい場合には、現在のエンドポイント位置に対応する関節角を、初期値に設定する。また、第3の誤差の方が第1の誤差、第2の誤差よりも小さい場合には、動作履歴エンドポイント位置に対応する関節角を、初期値に設定する。即ち、近似解によるエンドポイント位置と、現在のエンドポイント位置と、動作履歴エンドポイント位置の中から、目標エンドポイント位置との誤差が最小となるエンドポイント位置を選択して、そのエンドポイント位置に対応する関節角(当該手先位置姿勢時の関節角)を、反復演算処理における初期値に設定する。   Specifically, the processing unit 30 obtains a first error between the end point position and the target end point position by the approximate solution. Also, a second error between the current end point position and the target end point position is obtained. Further, a third error between the operation history end point position and the target end point position is obtained. Then, when the first error is smaller than the second error and the third error, the processing unit 30 sets the joint angle corresponding to the end point position by the approximate solution to the initial value. When the second error is smaller than the first error and the third error, the joint angle corresponding to the current end point position is set to the initial value. If the third error is smaller than the first error and the second error, the joint angle corresponding to the motion history end point position is set to the initial value. That is, the end point position with the smallest error from the target end point position is selected from the end point position by the approximate solution, the current end point position, and the operation history end point position, and the end point position is selected. A corresponding joint angle (joint angle at the time of the hand position / posture) is set to an initial value in the iterative calculation processing.

次に本実施形態の第4、第5の実施例の手法の詳細について説明する。第4の実施例の手法では、指定された目標エンドポイント位置(目標手先位置姿勢)と現在のエンドポイント位置(現在の手先位置姿勢)を比較し、それらの間の差異(誤差)が小さい場合には、現在のエンドポイント位置での関節角を、初期値として反復法により解を求める。具体的には、近似解によるエンドポイント位置と現在のエンドポイント位置とのどちらが目標エンドポイント位置に近いかを判断し、近い方の関節角を初期値として採用する。一方、第5の実施例では、ロボットは、過去にとったエンドポイント位置(手先位置姿勢)とその際の関節角を所定個数だけ記憶する履歴データを持ち、指定された目標エンドポイント位置(目標手先位置指定)と履歴データを比較し、その差異(誤差)が最小、且つ、その差異が所定の差異よりも小さい場合、その最小である履歴データを初期値として、反復法により解を求める。即ち、過去の動作履歴を記憶する動作履歴記憶部26を有し、近似モデルによる近似解、現在位置、動作履歴の中から、目標位置に最も近いものを初期値として採用する。   Next, details of the methods of the fourth and fifth examples of the present embodiment will be described. In the method of the fourth embodiment, the designated target end point position (target hand position / posture) is compared with the current end point position (current hand position / posture), and the difference (error) between them is small. The solution is obtained by an iterative method with the joint angle at the current end point position as an initial value. Specifically, it is determined which of the approximate end point position and the current end point position is closer to the target end point position, and the closer joint angle is adopted as the initial value. On the other hand, in the fifth embodiment, the robot has history data for storing a predetermined number of past end point positions (hand position and posture) and joint angles at that time, and a designated target end point position (target position). When the difference (error) is minimum and the difference is smaller than a predetermined difference, a solution is obtained by an iterative method using the minimum history data as an initial value. That is, it has an operation history storage unit 26 for storing past operation history, and adopts the closest value to the target position among the approximate solution based on the approximate model, the current position, and the operation history as an initial value.

例えば図18(A)は、近似解によるエンドポイント位置の関節角が初期値として設定される場合の例である。例えばPTP制御(ポイント・ツー・ポイント制御)では、PTP制御によるジャンプ前の現在のエンドポイント位置と、ジャンプ後の目標エンドポイント位置との間は距離的に離れている場合が多く、その間の動作経路は問わない制御となる。この場合には図18(A)に示すように、近似解である関節角を初期値に設定して、逆運動学の反復演算処理を行う。このようにすれば、PTP制御のように現在のエンドポイント位置と目標エンドポイント位置の間が距離的に離れる場合に、近似解により目標エンドポイント位置に近づいて、残りの誤差を反復演算処理により修正することが可能になる。   For example, FIG. 18A shows an example in which the joint angle at the end point position based on the approximate solution is set as the initial value. For example, in PTP control (point-to-point control), the current end point position before the jump by the PTP control and the target end point position after the jump are often separated in distance, and the operation between them The route is controlled regardless of the route. In this case, as shown in FIG. 18A, the joint angle, which is an approximate solution, is set as an initial value, and the inverse kinematics iterative calculation process is performed. In this way, when the current end point position and the target end point position are distant from each other as in PTP control, the approximate end point approaches the target end point position, and the remaining error is processed by iterative calculation processing. It becomes possible to correct.

図18(B)は、現在のエンドポイント位置に対応する関節角(現在のアームの関節角)が初期値として設定される場合の例である。例えばCP制御(コンティニュアス制御)では、現在のエンドポイント位置と目標エンドポイント位置との間が距離的に近い場合が多く、動作経路の指定地点が細かく設定される。この場合には図18(B)に示すように、現在のエンドポイント位置に対応する関節角を初期値に設定して、逆運動学の反復演算処理を行う。このようにすれば、CP制御のように現在のエンドポイント位置と目標エンドポイント位置の間が距離的に近くて、細かく制御される場合に、近似解を初期値として用いる場合に比べて、より効率的に短時間で逆運動学の解を求めることが可能になる。   FIG. 18B shows an example in which the joint angle (current arm joint angle) corresponding to the current end point position is set as the initial value. For example, in CP control (continuous control), the current end point position and the target end point position are often close in distance, and the designated point of the operation path is set finely. In this case, as shown in FIG. 18B, the joint angle corresponding to the current end point position is set to the initial value, and the inverse kinematics iterative calculation process is performed. In this way, when the current end point position and the target end point position are close in distance and finely controlled as in CP control, the approximate solution is more used than the initial value. An inverse kinematic solution can be obtained efficiently and in a short time.

図18(C)は、動作履歴エンドポイント位置に対応する関節角が初期値として設定される場合の例である。例えば、過去の動作履歴エンドポイント位置の中に、近似解によるエンドポイント位置よりも、目標エンドポイント位置に近いエンドポイント位置がある場合には、その動作履歴エンドポイント位置を選択する。そして、選択された動作履歴エンドポイント位置に対応する関節角を初期値に設定して、逆運動学の反復演算処理を行う。このようにすることで、場合によっては、近似解を初期値に設定する場合に比べて、より効率的に短時間で逆運動学の解を求めることも可能になる。   FIG. 18C shows an example where the joint angle corresponding to the motion history end point position is set as the initial value. For example, when there is an end point position closer to the target end point position than the end point position based on the approximate solution in the past operation history end point positions, the operation history end point position is selected. Then, the joint angle corresponding to the selected motion history end point position is set to an initial value, and the inverse kinematics iterative calculation process is performed. In this way, in some cases, it is possible to obtain an inverse kinematics solution more efficiently and in a shorter time than when an approximate solution is set to an initial value.

図19は、第4の実施例の詳細な処理を示すフローチャートである。まず、目標エンドポイント位置を取得する(S51)。そして、第1の実施例と同様に、近似モデルにより近似解を求める(S52)。   FIG. 19 is a flowchart showing detailed processing of the fourth embodiment. First, a target end point position is acquired (S51). Then, as in the first embodiment, an approximate solution is obtained using an approximate model (S52).

次に、解が得られたか否かを判断し(S53)、得られなかった場合には、現在の関節角(現在のエンドポイント位置に対応する関節角)を初期値として選択する(S62)。一方、解が得られた場合には、得られた近似解を初期値として用いて、反復法で解を求める(S54)。そして、解が得られたか否かを判断し(S55)、得られなかった場合には、現在の関節角を初期値として選択する(S62)。一方、得られた場合には、得られた近似解と真正モデルにより、近似解によるエンドポイント位置を求める(S56)。例えばフォワードキネマティクス処理によりエンドポイント位置を求める。   Next, it is determined whether or not a solution has been obtained (S53). If not obtained, the current joint angle (joint angle corresponding to the current end point position) is selected as an initial value (S62). . On the other hand, when a solution is obtained, the obtained approximate solution is used as an initial value, and the solution is obtained by an iterative method (S54). Then, it is determined whether or not a solution is obtained (S55). If not obtained, the current joint angle is selected as an initial value (S62). On the other hand, if it is obtained, the end point position by the approximate solution is obtained from the obtained approximate solution and the authentic model (S56). For example, the end point position is obtained by forward kinematics processing.

次に、求められたエンドポイント位置と目標エンドポイント位置との間の第1の誤差を求める(S57)。また、現在のエンドポイント位置を取得し(S58)、現在のエンドポイント位置と目標エンドポイント位置との間の第2の誤差を求める(S59)。   Next, a first error between the obtained end point position and the target end point position is obtained (S57). Further, the current end point position is acquired (S58), and a second error between the current end point position and the target end point position is obtained (S59).

次に、ステップS57で求められた第1の誤差と、ステップS59で求められた第2の誤差を比較する(S60)。そして、第1の誤差の方が第2の誤差よりも小さい場合には、図18(A)に示すように近似解を初期値として選択する(S61)。一方、第2の誤差の方が第1の誤差よりも小さい場合には、図18(B)に示すように現在の関節角を初期値として選択する(S62)。   Next, the first error obtained in step S57 is compared with the second error obtained in step S59 (S60). If the first error is smaller than the second error, an approximate solution is selected as an initial value as shown in FIG. 18A (S61). On the other hand, if the second error is smaller than the first error, the current joint angle is selected as the initial value as shown in FIG. 18B (S62).

図19は、第5の実施例の詳細な処理を示すフローチャートである。図19のステップS71〜S79の処理は、図18のステップS51〜S59の処理と同様であるため説明を省略する。   FIG. 19 is a flowchart showing detailed processing of the fifth embodiment. The processing in steps S71 to S79 in FIG. 19 is the same as the processing in steps S51 to S59 in FIG.

ステップS79の後、動作履歴エンドポイント位置と目標エンドポイント位置との間の誤差を、第3の誤差として求める(S80)。次に、ステップS77で求められた第1の誤差が最小か否かを判断し(S81)、第1の誤差が最小である場合には、図18(A)に示すように近似解の関節角を初期値として選択する(S82)。一方、第1の誤差が最小ではない場合には、第2の誤差が最小か否かを判断する(S83)。そして、第2の誤差が最小である場合には、図18(B)に示すように現在の関節角を初期値として選択する(S84)。一方、第2の誤差が最小ではない場合には、誤差最小の動作履歴データを初期値として選択する(S85)。例えば図18(C)において、複数の動作履歴エンドポイント位置のうち、目標エンドポイント位置との間の誤差が最小となる動作履歴エンドポイント位置を選択し、選択された動作履歴エンドポイント位置に対応する関節角を初期値として選択する。   After step S79, an error between the operation history end point position and the target end point position is obtained as a third error (S80). Next, it is determined whether or not the first error obtained in step S77 is minimum (S81). If the first error is minimum, the joint of the approximate solution as shown in FIG. The corner is selected as an initial value (S82). On the other hand, if the first error is not minimum, it is determined whether or not the second error is minimum (S83). If the second error is minimum, the current joint angle is selected as the initial value as shown in FIG. 18B (S84). On the other hand, when the second error is not minimum, the operation history data with the minimum error is selected as an initial value (S85). For example, in FIG. 18C, an operation history end point position that minimizes an error from the target end point position is selected from a plurality of operation history end point positions, and corresponds to the selected operation history end point position. Select the joint angle to be used as the initial value.

なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(エンドポイント位置、近似解等)と共に記載された用語(手先位置姿勢、近似解析解等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また本実施形態の実施例及び変形例の全ての組み合わせも、本発明の範囲に含まれる。またロボット制御システム、ロボットシステムの構成・動作、近似解の演算手法、逆運動学の解の演算手法、近似モデルや真正モデルの構成等も、本実施形態で説明したものに限定されず、種々の変形実施が可能である。   Although the present embodiment has been described in detail as described above, it will be easily understood by those skilled in the art that many modifications can be made without departing from the novel matters and effects of the present invention. Accordingly, all such modifications are intended to be included in the scope of the present invention. For example, a term (hand position / posture, approximate analytical solution, etc.) described together with a different term (endpoint position, approximate solution, etc.) in a broader sense or the same meaning at least once in the specification or drawing, It can also be replaced with the different terminology. Further, all combinations of the examples and modifications of the present embodiment are also included in the scope of the present invention. In addition, the configuration and operation of the robot control system, the robot system, the calculation method of the approximate solution, the calculation method of the inverse kinematics solution, the configuration of the approximate model and the authentic model are not limited to those described in this embodiment, and various Can be implemented.

MT 真正モデル、MA(MA-1〜MAm) 近似モデル、
10 力覚センサー、12 力制御部(インピーダンス制御部)、
20 目標エンドポイント位置取得部、22 真正モデル記憶部、
24 近似モデル記憶部、26 動作履歴記憶部、
30 処理部、40(40-1〜40-m) 近似解演算部、
42 フォワードキネマティクス処理部、43 目標エンドポイント位置修正部、
44 近似解選択部、45 現在エンドポイント位置取得部、46 初期値選択部、
50 反復演算処理部、52 収束判定部、54 エラー処理部、
60 目標値出力部、62 軌道生成部、64 インバースキネマティクス処理部、
80 ロボット制御部、82-1〜82-N 駆動制御部、
100 ロボット、102-1〜102-N 駆動部、
300 制御装置、310 ロボット本体、320 アーム、330 ハンド
MT genuine model, MA (MA-1 to MAm) approximate model,
10 force sensor, 12 force control unit (impedance control unit),
20 target end point position acquisition unit, 22 authentic model storage unit,
24 approximate model storage unit, 26 operation history storage unit,
30 processing units, 40 (40-1 to 40-m) approximate solution calculation unit,
42 forward kinematics processing unit, 43 target end point correction unit,
44 approximate solution selection unit, 45 current endpoint position acquisition unit, 46 initial value selection unit,
50 iteration processing unit, 52 convergence determination unit, 54 error processing unit,
60 target value output unit, 62 trajectory generation unit, 64 inverse kinematics processing unit,
80 Robot controller, 82-1 to 82-N Drive controller,
100 robot, 102-1 to 102-N drive unit,
300 control device, 310 robot body, 320 arm, 330 hand

Claims (13)

ロボットの目標エンドポイント位置を取得するエンドポイント位置取得部と、
前記ロボットの真正モデルの情報を記憶する真正モデル記憶部と、
前記真正モデルを近似した近似モデルの情報を記憶する近似モデル記憶部と、
前記近似モデルと前記目標エンドポイント位置を用いて、近似解を求め、前記近似解と前記真正モデルを用いて、反復法による反復演算処理を行うことで、前記ロボットの逆運動学における解を求める処理部と、
を含むことを特徴とするロボット制御システム。
An end point position acquisition unit for acquiring a target end point position of the robot;
An authentic model storage unit for storing information on the authentic model of the robot;
An approximate model storage unit that stores information of an approximate model that approximates the authentic model;
An approximate solution is obtained using the approximate model and the target end point position, and an iterative calculation process is performed using the approximate solution and the authentic model, thereby obtaining a solution in inverse kinematics of the robot. A processing unit;
A robot control system comprising:
請求項1において、
前記処理部は、
前記近似解を初期値として設定して、前記反復演算処理を行うことを特徴とするロボット制御システム。
In claim 1,
The processor is
A robot control system, wherein the approximate solution is set as an initial value and the iterative calculation process is performed.
請求項1において、
前記処理部は、
前記近似解を前記真正モデルの関節角に設定することで、近似解によるエンドポイント位置を求め、
前記近似解によるエンドポイント位置と前記目標エンドポイント位置との間の誤差に基づいて、前記目標エンドポイント位置を修正することで、修正目標エンドポイント位置を求め、
前記修正目標エンドポイント位置と前記近似モデルを用いて、第2の近似解を求め、
前記第2の近似解と前記真正モデルを用いて、前記反復演算処理を行うことで、前記ロボットの逆運動学における解を求めることを特徴とするロボット制御システム。
In claim 1,
The processor is
By setting the approximate solution to the joint angle of the authentic model, the end point position by the approximate solution is obtained,
By correcting the target end point position based on an error between the end point position by the approximate solution and the target end point position, a corrected target end point position is obtained,
Using the corrected target end point position and the approximate model, a second approximate solution is obtained,
A robot control system characterized in that a solution in inverse kinematics of the robot is obtained by performing the iterative calculation process using the second approximate solution and the authentic model.
請求項1において、
前記近似モデル記憶部は、
前記真正モデルを近似したモデルとして、第1〜第mの近似モデルの情報を記憶し、
前記処理部は、
前記第1〜第mの近似モデルと前記目標エンドポイント位置を用いて、第1〜第mの近似解を求め、
前記第1〜第mの近似解の中から選択された近似解を初期値として設定して、前記反復演算処理を行うことで、前記ロボットの逆運動学における解を求めることを特徴とするロボット制御システム。
In claim 1,
The approximate model storage unit includes:
As a model that approximates the authentic model, information on the first to m-th approximate models is stored,
The processor is
Using the first to mth approximate models and the target endpoint position, find first to mth approximate solutions,
A robot characterized in that an approximate solution selected from the first to mth approximate solutions is set as an initial value, and a solution in inverse kinematics of the robot is obtained by performing the iterative calculation process Control system.
請求項4において、
前記処理部は、
前記第1〜第mの近似モデルのうちの第i(1≦i≦m)の近似モデルと前記目標エンドポイント位置を用いて、第iの近似解を求め、
前記第iの近似解を前記真正モデルの関節角に設定することで、近似解による第iのエンドポイント位置とヤコビアンを求め、
前記第iのエンドポイント位置と前記目標エンドポイント位置との間の第1の誤差と、前記ヤコビアンを用いて、関節角を補正し、補正後の関節角を前記真正モデルの関節角に設定することで、第iの補正エンドポイント位置を求め、
前記第iの補正エンドポイント位置と前記目標エンドポイント位置の間の第2の誤差に基づいて選択された近似解を、前記初期値として設定することを特徴とするロボット制御システム。
In claim 4,
The processor is
Using the i th (1 ≦ i ≦ m) approximate model of the first to m th approximate models and the target end point position, an i th approximate solution is obtained,
By setting the i-th approximate solution to the joint angle of the genuine model, the i-th endpoint position and the Jacobian by the approximate solution are obtained,
Using the first error between the i-th end point position and the target end point position and the Jacobian, the joint angle is corrected, and the corrected joint angle is set as the joint angle of the genuine model. To obtain the i-th correction end point position,
A robot control system, wherein an approximate solution selected based on a second error between the i-th corrected end point position and the target end point position is set as the initial value.
請求項1において、
前記処理部は、
前記近似解を前記真正モデルの関節角に設定することで、近似解によるエンドポイント位置を求め、
前記近似解によるエンドポイント位置と現在のエンドポイント位置の中から、選択されたエンドポイント位置に対応する関節角を、前記初期値に設定して、前記反復演算処理を行うことで、前記ロボットの逆運動学における解を求めることを特徴とするロボット制御システム。
In claim 1,
The processor is
By setting the approximate solution to the joint angle of the authentic model, the end point position by the approximate solution is obtained,
By setting the joint angle corresponding to the selected end point position to the initial value from the end point position by the approximate solution and the current end point position, and performing the iterative calculation process, A robot control system characterized by finding solutions in inverse kinematics.
請求項6において、
前記処理部は、
前記近似解によるエンドポイント位置と前記目標エンドポイント位置との間の第1の誤差を求め、
前記現在のエンドポイント位置と前記目標エンドポイント位置との間の第2の誤差を求め、
前記第1の誤差の方が前記第2の誤差よりも小さい場合には、前記近似解によるエンドポイント位置に対応する関節角を、前記初期値に設定し、
前記第2の誤差の方が前記第1の誤差よりも小さい場合には、前記現在のエンドポイント位置に対応する関節角を、前記初期値に設定することを特徴とするロボット制御システム。
In claim 6,
The processor is
Determining a first error between the end point position by the approximate solution and the target end point position;
Determining a second error between the current endpoint position and the target endpoint position;
When the first error is smaller than the second error, the joint angle corresponding to the end point position by the approximate solution is set to the initial value,
When the second error is smaller than the first error, a joint angle corresponding to the current end point position is set to the initial value.
請求項6において、
前記処理部は、
前記ロボットのポイント・ツー・ポイント制御が行われた場合には、前記近似解によるエンドポイント位置に対応する関節角を、前記初期値に設定し、
前記ロボットのコンティニュアス制御が行われた場合には、前記現在のエンドポイント位置に対応する関節角を、前記初期値に設定することを特徴とするロボット制御システム。
In claim 6,
The processor is
When point-to-point control of the robot is performed, the joint angle corresponding to the end point position by the approximate solution is set to the initial value,
A robot control system characterized in that, when continuous control of the robot is performed, a joint angle corresponding to the current end point position is set to the initial value.
請求項6乃至8のいずれかにおいて、
過去のエンドポイントの動作履歴位置である動作履歴エンドポイント位置を記憶する動作履歴記憶部を含み、
前記処理部は、
前記近似解によるエンドポイント位置と前記現在のエンドポイント位置と前記動作履歴エンドポイント位置の中から、選択されたエンドポイント位置に対応する関節角を、前記初期値に設定して、前記反復演算処理を行うことで、前記ロボットの逆運動学における解を求めることを特徴とするロボット制御システム。
In any of claims 6 to 8,
An operation history storage unit that stores an operation history end point position that is an operation history position of a past end point;
The processor is
The joint angle corresponding to the selected end point position is set to the initial value from among the end point position by the approximate solution, the current end point position, and the operation history end point position, and the iterative calculation process To obtain a solution in the inverse kinematics of the robot.
請求項9において、
前記処理部は、
前記近似解によるエンドポイント位置と前記目標エンドポイント位置との間の第1の誤差を求め、
前記現在のエンドポイント位置と前記目標エンドポイント位置との間の第2の誤差を求め、
前記動作履歴エンドポイント位置と前記目標エンドポイント位置との間の第3の誤差を求め、
前記第1の誤差の方が前記第2の誤差、前記第3の誤差よりも小さい場合には、前記近似解によるエンドポイント位置に対応する関節角を、前記初期値に設定し、
前記第2の誤差の方が前記第1の誤差、前記第3の誤差よりも小さい場合には、前記現在のエンドポイント位置に対応する関節角を、前記初期値に設定し、
前記第3の誤差の方が前記第1の誤差、前記第2の誤差よりも小さい場合には、前記動作履歴エンドポイント位置に対応する関節角を、前記初期値に設定することを特徴とするロボット制御システム。
In claim 9,
The processor is
Determining a first error between the end point position by the approximate solution and the target end point position;
Determining a second error between the current endpoint position and the target endpoint position;
Determining a third error between the action history endpoint position and the target endpoint position;
When the first error is smaller than the second error and the third error, the joint angle corresponding to the end point position by the approximate solution is set to the initial value,
When the second error is smaller than the first error and the third error, the joint angle corresponding to the current end point position is set to the initial value,
When the third error is smaller than the first error and the second error, a joint angle corresponding to the motion history end point position is set to the initial value. Robot control system.
請求項1乃至10のいずれかにおいて、
前記近似モデル記憶部は、
前記真正モデルの関節のオフセットが省略されたモデルの情報を、前記近似モデルの情報として記憶することを特徴とするロボット制御システム。
In any one of Claims 1 thru | or 10.
The approximate model storage unit includes:
A robot control system, wherein information of a model in which an offset of a joint of the genuine model is omitted is stored as information of the approximate model.
請求項1乃至11のいずれかに記載のロボット制御システムと、
前記ロボットと、
を含むことを特徴とするロボットシステム。
The robot control system according to any one of claims 1 to 11,
The robot;
A robot system characterized by including:
ロボットの真正モデルの情報を記憶し、
前記真正モデルを近似した近似モデルの情報を記憶し、
前記ロボットの目標エンドポイント位置を取得し、
前記近似モデルと前記目標エンドポイント位置を用いて、近似解を求め、前記近似解と前記真正モデルを用いて、反復法による反復演算処理を行うことで、前記ロボットの逆運動学における解を求め、
求められた解に基づいて前記ロボットを制御することを特徴とするロボット制御方法。
Stores information about the authentic model of the robot,
Storing information of an approximate model approximating the authentic model;
Obtaining the target end point position of the robot;
An approximate solution is obtained using the approximate model and the target endpoint position, and an iterative calculation process is performed using the approximate solution and the authentic model to obtain a solution in the inverse kinematics of the robot. ,
A robot control method, comprising: controlling the robot based on a determined solution.
JP2011285706A 2011-12-27 2011-12-27 Robot control system, robot system and robot control method Pending JP2013132731A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011285706A JP2013132731A (en) 2011-12-27 2011-12-27 Robot control system, robot system and robot control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011285706A JP2013132731A (en) 2011-12-27 2011-12-27 Robot control system, robot system and robot control method

Publications (1)

Publication Number Publication Date
JP2013132731A true JP2013132731A (en) 2013-07-08

Family

ID=48909796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011285706A Pending JP2013132731A (en) 2011-12-27 2011-12-27 Robot control system, robot system and robot control method

Country Status (1)

Country Link
JP (1) JP2013132731A (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104318071A (en) * 2014-09-30 2015-01-28 同济大学 Robot walking control method based on linear foothold compensator
JP2015089584A (en) * 2013-11-05 2015-05-11 トヨタ自動車株式会社 Robot control method and robot control system
JP2016206081A (en) * 2015-04-24 2016-12-08 株式会社東芝 Operation inference device and operation inference method
CN106292288A (en) * 2016-09-22 2017-01-04 同济大学 Model parameter correction method based on Policy-Gradient learning method and application thereof
WO2017169143A1 (en) * 2016-03-30 2017-10-05 ソニー株式会社 Information processing device, information processing method, and calibration system
JP2019093488A (en) * 2017-11-24 2019-06-20 株式会社デンソーウェーブ Robot control device and robot reverse conversion processing method
JP2019093486A (en) * 2017-11-24 2019-06-20 株式会社デンソーウェーブ Robot controller and robot inverse transformation processing method
JP2019093487A (en) * 2017-11-24 2019-06-20 株式会社デンソーウェーブ Robot control device and robot reverse conversion processing method
JP2019532824A (en) * 2016-08-22 2019-11-14 キヤノン株式会社 Continuous robot, method for correcting kinematic model of continuous robot, and control method for continuous robot
JP2020040165A (en) * 2018-09-11 2020-03-19 ファナック株式会社 Calibration system and calibration method for robot
JP2021030359A (en) * 2019-08-22 2021-03-01 オムロン株式会社 Control device, control method and control program
JP2021064308A (en) * 2019-10-17 2021-04-22 株式会社Subaru Optimal control system

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015089584A (en) * 2013-11-05 2015-05-11 トヨタ自動車株式会社 Robot control method and robot control system
CN104318071A (en) * 2014-09-30 2015-01-28 同济大学 Robot walking control method based on linear foothold compensator
JP2016206081A (en) * 2015-04-24 2016-12-08 株式会社東芝 Operation inference device and operation inference method
WO2017169143A1 (en) * 2016-03-30 2017-10-05 ソニー株式会社 Information processing device, information processing method, and calibration system
JP2019532824A (en) * 2016-08-22 2019-11-14 キヤノン株式会社 Continuous robot, method for correcting kinematic model of continuous robot, and control method for continuous robot
CN106292288A (en) * 2016-09-22 2017-01-04 同济大学 Model parameter correction method based on Policy-Gradient learning method and application thereof
CN106292288B (en) * 2016-09-22 2017-10-24 同济大学 Model parameter correction method and corrector based on Policy-Gradient learning method
JP2019093488A (en) * 2017-11-24 2019-06-20 株式会社デンソーウェーブ Robot control device and robot reverse conversion processing method
JP2019093486A (en) * 2017-11-24 2019-06-20 株式会社デンソーウェーブ Robot controller and robot inverse transformation processing method
JP2019093487A (en) * 2017-11-24 2019-06-20 株式会社デンソーウェーブ Robot control device and robot reverse conversion processing method
JP2020040165A (en) * 2018-09-11 2020-03-19 ファナック株式会社 Calibration system and calibration method for robot
US11230013B2 (en) 2018-09-11 2022-01-25 Fanuc Corporation Calibration system and calibration method of robot
JP2021030359A (en) * 2019-08-22 2021-03-01 オムロン株式会社 Control device, control method and control program
JP2021064308A (en) * 2019-10-17 2021-04-22 株式会社Subaru Optimal control system

Similar Documents

Publication Publication Date Title
JP2013132731A (en) Robot control system, robot system and robot control method
US20140031982A1 (en) Robotic system and robot control device
JP5011525B2 (en) Inverse kinematics of 6-degree-of-freedom robot arm by sequential search method, and robot system, control method, and program using the same
WO2018086226A1 (en) Control method and apparatus for robotic arm
US20060195228A1 (en) Robot locus control method and apparatus and program of robot locus control method
US8977392B2 (en) Robot control device, robot control method, robot control program, and robot system
JP4962123B2 (en) Gripping candidate position selection device, gripping candidate position selection method, gripping route generation device, and gripping route generation method
JP5044991B2 (en) Route creation apparatus and route creation method
JP5659890B2 (en) Robot trajectory planning system and trajectory planning method
CN110000773B (en) Robot control device and inverse transformation processing method for robot
JP2003039353A (en) Control method for manipulator
JP2009134352A (en) Robot motion path creating device, and robot motion path creating method
US20180085920A1 (en) Robot control device, robot, and robot system
JP2016040066A (en) Path generation method, path generation device, robot device, program and recording medium
KR102693929B1 (en) Inverse kinematics solver for wrist-offset robots
JP2009045714A (en) Method and device for teaching attitude of robot arm
JPWO2018199035A1 (en) Articulated robot and articulated robot system
JP6057284B2 (en) Articulated robot and semiconductor wafer transfer device
JP2016133902A (en) Flexible object state calculation method, robot trajectory generation device, robot device, program and recording medium
JP7042209B2 (en) Orbit generator, orbit generation method, and robot system
US20240054393A1 (en) Learning Device, Learning Method, Recording Medium Storing Learning Program, Control Program, Control Device, Control Method, and Recording Medium Storing Control Program
JP5433304B2 (en) Robot control apparatus and method
CN112847441B (en) Six-axis robot coordinate offset detection method and device based on gradient descent method
JP2018167395A (en) Robot device, control device, and robot control method
Ren et al. A heuristic iterative method for solving the inverse solution of kinematics of manipulators