JP2021146409A - Inverse kinematics operation unit and inverse kinematics operation method - Google Patents

Inverse kinematics operation unit and inverse kinematics operation method Download PDF

Info

Publication number
JP2021146409A
JP2021146409A JP2020045918A JP2020045918A JP2021146409A JP 2021146409 A JP2021146409 A JP 2021146409A JP 2020045918 A JP2020045918 A JP 2020045918A JP 2020045918 A JP2020045918 A JP 2020045918A JP 2021146409 A JP2021146409 A JP 2021146409A
Authority
JP
Japan
Prior art keywords
solution
inverse kinematics
joint
set generator
robot arm
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
JP2020045918A
Other languages
Japanese (ja)
Inventor
貴弘 茂木
Takahiro Mogi
貴弘 茂木
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.)
Azbil Corp
Original Assignee
Azbil 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 Azbil Corp filed Critical Azbil Corp
Priority to JP2020045918A priority Critical patent/JP2021146409A/en
Publication of JP2021146409A publication Critical patent/JP2021146409A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

To enable an appropriate solution concerning a transit time in a joint angle interpolation trajectory to be selected from among a plurality of solutions of an inverse kinematics operation.SOLUTION: An inverse kinematics operation device comprises: an input unit 1 which receives input information including a start point represented by a joint space representation in a robot arm having a plurality of joints and an end point represented by a Cartesian space representation; a solution set generating unit 2 which finds a plurality of solutions of an inverse kinematics operation concerning an end point included in the input information received by the input unit 1; and a solution selecting unit 3 which selects, from among solutions found by the solution set generating unit 2, a solution in which a transit time in a joint angle interpolation trajectory between the start point and the solution included in the input information received by the input unit 1 satisfies conditions.SELECTED DRAWING: Figure 1

Description

この発明は、複数の関節を有するロボットアームに対して逆運動学演算を行う逆運動学演算装置及び逆運動学演算方法に関する。 The present invention relates to an inverse kinematics calculation device and an inverse kinematics calculation method for performing an inverse kinematics calculation on a robot arm having a plurality of joints.

複数の関節を有するロボットアーム(多関節ロボットアーム)の状態を表現する方法としては、関節空間表現及びデカルト空間表現の2通りの方法がある。 There are two methods for expressing the state of a robot arm having a plurality of joints (articulated robot arm): joint space expression and Cartesian space expression.

関節空間表現は、ロボットアームが有する各関節の角度(回転角度)によって、ロボットアームの状態を表現する。6軸のロボットアームの場合には、6次元の関節角ベクトルで、ロボットアームの状態を表現できる。なお以下では、垂直多関節ロボットアームの関節を根元側から順にJ1,J2,・・・で表し、関節の角度を根元側から順にθ,θ,・・・で表す。 The joint space expression expresses the state of the robot arm by the angle (rotation angle) of each joint of the robot arm. In the case of a 6-axis robot arm, the state of the robot arm can be expressed by a 6-dimensional joint angle vector. In the following, the joints of the vertical articulated robot arm are represented by J1, J2, ... In order from the root side, and the joint angles are represented by θ 1 , θ 2 , ... In order from the root side.

デカルト空間表現は、デカルト空間におけるロボットアームの手先の位置及び姿勢によって、ロボットアームの状態を表現する。デカルト空間表現では、3次元の位置及び3次元の姿勢の合計6次元のデータで、ロボットアームの状態を表現できる。位置はX={x,y,z}で表され、姿勢はR={roll,pitch,yaw}で表される。なお、姿勢は、四元数で表現される場合もあり、QはRより一意に求められる。四元数はQ={q,q,q,q}で表される。なお以下では、デカルト空間表現を、P={X,R}={X,Q}で表す。 The Cartesian space representation expresses the state of the robot arm by the position and posture of the hand of the robot arm in the Cartesian space. In the Cartesian space representation, the state of the robot arm can be represented by a total of 6-dimensional data of the 3-dimensional position and the 3-dimensional posture. The position is represented by X = {x, y, z}, and the posture is represented by R = {roll, pitch, yaw}. The posture may be expressed by a quaternion, and Q is uniquely obtained from R. The quaternion is represented by Q = {q x , q y , q z , q w }. In the following, the Cartesian space representation is represented by P = {X, R} = {X, Q}.

そして、関節空間からデカルト空間へ変換するための演算を順運動学演算と呼び、デカルト空間から関節空間へ変換するための演算を逆運動学演算と呼ぶ。ユーザは、ロボットアームに何らかの作業をさせる際に、デカルト空間表現でロボットアームに対して移動指示を出すことが多いため、逆運動学演算が必要となる。 Then, the operation for converting from the joint space to the Cartesian space is called a forward kinematics operation, and the operation for converting from the Cartesian space to the Cartesian space is called an inverse kinematics operation. When the user causes the robot arm to perform some work, the user often gives a movement instruction to the robot arm in a Cartesian space representation, so that an inverse kinematics calculation is required.

ロボットアームを始点から終点へ移動させる際の動作計画方法としては、主に、関節角補間移動による方法及び直線移動による方法の2通りの方法がある。
関節角補間移動は、関節空間で始点と終点とを規定の範囲の線(代表的には線形)で結んだ軌道(関節角補間軌道)に沿った移動である。関節角補間軌道は、関節空間で動作計画された終点に対して逆運動学演算が行われることで生成される。
直線移動は、デカルト空間で始点と終点とを線形に結んだ軌道に沿った移動である。直線移動の軌道は、デカルト空間で動作計画された始点と終点との間の複数の離散点に対して逆運動学演算が繰返し行われることで生成される。
There are mainly two methods of motion planning when moving the robot arm from the start point to the end point, a method by joint angle interpolation movement and a method by linear movement.
The joint angle interpolation movement is a movement along a trajectory (joint angle interpolation trajectory) connecting the start point and the end point in the joint space with a line (typically linear) in a specified range. The joint angle interpolation trajectory is generated by performing an inverse kinematics operation on the end point whose motion is planned in the joint space.
Linear movement is movement along an orbit that linearly connects the start point and the end point in Cartesian space. The trajectory of linear movement is generated by repeating inverse kinematics operations on a plurality of discrete points between the start point and the end point whose motion is planned in Cartesian space.

始点と終点との間に特異点がある場合、直線移動では動作計画がし難いため、関節角補間移動が主に用いられる。また、直線移動は、各関節に設けられたモータが非線形な加減速をするため、一般に関節角補間移動に比べて移動時間が長くなる。そのため、ユーザがロボットアームの移動時間を短くすることだけを要求する場合、関節角補間移動が用いられる。 When there is a singular point between the start point and the end point, it is difficult to plan the motion with linear movement, so joint angle interpolation movement is mainly used. Further, in the linear movement, since the motors provided in each joint perform non-linear acceleration / deceleration, the movement time is generally longer than that in the joint angle interpolation movement. Therefore, when the user only requests to shorten the movement time of the robot arm, the joint angle interpolation movement is used.

一方、逆運動学演算の解は複数存在する。そのため、複数の解(解集合)の中から、ユーザの目的に沿った解を選択する必要がある。 On the other hand, there are multiple solutions for inverse kinematics operations. Therefore, it is necessary to select a solution that suits the user's purpose from a plurality of solutions (solution sets).

ユーザがロボットアームを動作させる場合、その動作の目的(ユースケース)は様々である。例えば、ユーザがロボットアームを始点から終点へ関節角補間移動で動作させる場合、動作の目的としては、(次の動作の準備のための)移動、又は、物の運搬等が挙げられる。 When a user operates a robot arm, the purpose (use case) of the operation is various. For example, when the user moves the robot arm from the start point to the end point by interpolating the joint angle, the purpose of the movement includes movement (in preparation for the next movement), transportation of an object, and the like.

動作の目的が移動である場合、作業効率の観点から、ロボットアームをできるだけ短い時間で移動させることが望ましい。現場ではロボットアームの作業効率を高める改善が常に求められており、ロボットアームの移動時間を削減することは非常に重要である。関節角補間移動は、逆運動学演算の解(終点の関節角ベクトル)によって移動時間が決まるため、複数の解の中から移動時間の削減効果がある解を選択することが求められている。 When the purpose of the movement is movement, it is desirable to move the robot arm in the shortest possible time from the viewpoint of work efficiency. In the field, improvements to improve the work efficiency of the robot arm are constantly required, and it is very important to reduce the moving time of the robot arm. Since the movement time of the joint angle interpolation movement is determined by the solution of the inverse kinematics operation (joint angle vector at the end point), it is required to select a solution having an effect of reducing the movement time from a plurality of solutions.

これに対し、従来、ヤコビ行列を用いて数値計算を行う逆運動学演算装置が広く利用されている(例えば非特許文献1参照)。この逆運動学演算装置では、複数の解の中から、入力情報となる初期値(関節角ベクトル)から求められた勾配(ヤコビ行列)方向の解が選択される。この場合、ユーザは、初期値を操作することで解の選択を行う。 On the other hand, conventionally, an inverse kinematics arithmetic unit that performs numerical calculation using a Jacobian matrix has been widely used (see, for example, Non-Patent Document 1). In this inverse kinematics calculation device, a solution in the gradient (Jacobian matrix) direction obtained from an initial value (joint angle vector) as input information is selected from a plurality of solutions. In this case, the user selects a solution by manipulating the initial value.

また、構造フラグを用いて解を指定する逆運動学演算装置も利用されている(例えば非特許文献2参照)。この逆運動学演算装置では、ロボットアームの構造の幾何特性に着目し、解を、Shoulder指標、Elbow指標及びWrist指標等の構造フラグと呼ばれる指標で分類している。この場合、ユーザは、構造フラグを指定することで解の選択を行う。 Inverse kinematics arithmetic units that specify solutions using structural flags are also used (see, for example, Non-Patent Document 2). In this inverse kinematics arithmetic unit, attention is paid to the geometrical characteristics of the structure of the robot arm, and the solutions are classified by indexes called structural flags such as the Shoulder index, the Elbow index, and the Wrist index. In this case, the user selects the solution by specifying the structure flag.

杉原知道:“逆運動学の数値解法”, 日本ロボット学会誌, Vol.34 No.3, pp.167-173, 2016.Tomomichi Sugihara: "Numerical Solution of Inverse Kinematics", Journal of Robotics Society of Japan, Vol.34 No.3, pp.167-173, 2016. Possible Combinations of Robot Shoulder, Elbow, and Wrist Figures<URL:http://www.ccarafa.it/RC8/001954.html>Possible Combinations of Robot Shoulder, Elbow, and Wrist Figures <URL: http://www.ccarafa.it/RC8/001954.html> John J. Crag: “ロボティクス(第13版)”, 共立出版, 2014.John J. Crag: “Robotics (13th Edition)”, Kyoritsu Shuppan, 2014. Kelsey P. Hawkins: “Analytic Inverse Kinematics for the Universal Robots UR-5/UR-10 Arms”, 2017.Kelsey P. Hawkins: “Analytic Inverse Kinematics for the Universal Robots UR-5 / UR-10 Arms”, 2017. Cuong Trinh, Dimiter Zlatanov, Matteo Zoppi, and Rezia Molfino : “A GEOMETRICAL APPROACH TO THE INVERSE KINEMATICS OF 6R SERIAL ROBOTS WITH OFFSET WRISTS”, Proceedings of the ASME 2015 International Design Engineering Technical Conferences & Computers and Information in Engineering Conference, DETC2015-47950, 2015.Cuong Trinh, Dimiter Zlatanov, Matteo Zoppi, and Rezia Molfino: “A GEOMETRICAL APPROACH TO THE INVERSE KINEMATICS OF 6R SERIAL ROBOTS WITH OFFSET WRISTS”, Proceedings of the ASME 2015 International Design Engineering Technical Conferences & Computers and Information in Engineering Conference, DETC2015- 47950, 2015.

上記のように、従来では、初期値又は構造フラグ等の中間概念を用い、逆運動学演算の解の選択を行っている。しかしながら、この中間概念では、複数の解の中から、関節角補間軌道における移動時間に関して適切な解を選択することは困難である。 As described above, conventionally, the solution of the inverse kinematics operation is selected by using an intermediate concept such as an initial value or a structure flag. However, in this intermediate concept, it is difficult to select an appropriate solution for the movement time in the joint angle interpolation trajectory from a plurality of solutions.

この発明は、上記のような課題を解決するためになされたもので、逆運動学演算の複数の解の中から、関節角補間軌道における移動時間に関して適切な解を選択可能な逆運動学演算装置を提供することを目的としている。 The present invention has been made to solve the above-mentioned problems, and an inverse kinematics operation that can select an appropriate solution for the movement time in the joint angle interpolation trajectory from a plurality of solutions of the inverse kinematics operation. The purpose is to provide the device.

この発明に係る逆運動学演算装置は、複数の関節を有するロボットアームにおける関節空間表現で表された始点及びデカルト空間表現で表された終点を含む入力情報を受付ける入力器と、入力器により受付けられた入力情報に含まれる終点についての逆運動学演算の解を複数求める解集合生成器と、解集合生成器により求められた解の中から、入力器により受付けられた入力情報に含まれる始点と解との間の関節角補間軌道における移動時間が条件を満たす解を選択する解選択器とを備えたことを特徴とする。 The inverse kinematics arithmetic device according to the present invention receives input information including a start point represented by the joint space representation and an end point represented by the Cartesian space representation in a robot arm having a plurality of joints, and an input device. A solution set generator that finds multiple solutions for inverse kinematics operations for the end point included in the input information, and a start point included in the input information received by the input device from among the solutions obtained by the solution set generator. It is characterized by having a solution selector for selecting a solution that satisfies the movement time in the joint angle interpolation trajectory between the solution and the solution.

この発明によれば、上記のように構成したので、逆運動学演算の複数の解の中から、関節角補間軌道における移動時間に関して適切な解を選択可能となる。 According to the present invention, since it is configured as described above, it is possible to select an appropriate solution for the movement time in the joint angle interpolation trajectory from a plurality of solutions of the inverse kinematics operation.

実施の形態1に係る逆運動学演算装置の構成例を示す図である。It is a figure which shows the structural example of the inverse kinematics arithmetic unit which concerns on Embodiment 1. FIG. 実施の形態1に係る逆運動学演算装置の動作例を示すフローチャートである。It is a flowchart which shows the operation example of the inverse kinematics arithmetic unit which concerns on Embodiment 1. 実施の形態2に係る逆運動学演算装置の構成例を示す図である。It is a figure which shows the structural example of the inverse kinematics arithmetic unit which concerns on Embodiment 2. 球形直交手首機構を有する垂直6関節ロボットアームのリンク機構の構成例を示す図である。It is a figure which shows the structural example of the link mechanism of the vertical 6-joint robot arm which has a spherical orthogonal wrist mechanism. 図4に示すリンク機構の運動学的分解を説明する図である。It is a figure explaining the kinematic decomposition of the link mechanism shown in FIG. 構造フラグ(Shoulder指標)を説明する図である。It is a figure explaining the structure flag (shoulder index). 構造フラグ(Elbow指標)を説明する図である。It is a figure explaining the structure flag (Elbow index). 構造フラグ(Wrist指標)を説明する図である。It is a figure explaining the structure flag (Wrist index). オフセット手首機構を有するロボットアームのリンク機構の構成例を示す図である。It is a figure which shows the structural example of the link mechanism of the robot arm which has an offset wrist mechanism. オフセット手首機構を有するロボットアーム(J4−6オフセットアーム)のリンク機構の構成例を示す図である。It is a figure which shows the structural example of the link mechanism of the robot arm (J4-6 offset arm) which has an offset wrist mechanism. J4−6オフセットアームのリンク機構(簡略化)の構成例を示す図である。It is a figure which shows the structural example of the link mechanism (simplification) of the J4-6 offset arm. 評価関数の一例を示す図である。It is a figure which shows an example of the evaluation function.

以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は実施の形態1に係る逆運動学演算装置の構成例を示す図である。
逆運動学演算装置は、複数の関節を有するロボットアームに対して逆運動学演算を行う。この逆運動学演算装置は、図1に示すように、入力器1、解集合生成器2、解選択器3及び出力器4を備えている。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
Embodiment 1.
FIG. 1 is a diagram showing a configuration example of an inverse kinematics arithmetic unit according to the first embodiment.
The inverse kinematics arithmetic unit performs inverse kinematics arithmetic on a robot arm having a plurality of joints. As shown in FIG. 1, this inverse kinematics arithmetic unit includes an input device 1, a solution set generator 2, a solution selector 3, and an output device 4.

なお、逆運動学演算装置は、システムLSI(Large Scale Integration)等の処理回路、又はメモリ等に記憶されたプログラムを実行するCPU(Central Processing Unit)等により実現される。 The inverse kinematics arithmetic unit is realized by a processing circuit such as a system LSI (Large Scale Integration), a CPU (Central Processing Unit) that executes a program stored in a memory or the like, or the like.

入力器1は、入力情報を受付ける。入力情報には、ロボットアームの始点及び終点が含まれる。なお、始点は関節空間表現で表され、終点はデカルト空間表現(点Oを原点とするベース座標系)で表される。また、入力情報に、逆運動学演算の解の選択で必要となる情報が含まれていてもよい。 The input device 1 receives the input information. The input information includes the start point and the end point of the robot arm. The start point is represented by the joint space representation, and the end point is represented by the Cartesian space representation (base coordinate system with the point O as the origin). In addition, the input information may include information required for selecting a solution for inverse kinematics operations.

解集合生成器2は、入力器1により受付けられた入力情報に基づいて、当該入力情報に含まれる終点についての逆運動学演算の解を複数求める。この際、解集合生成器2は、複数の解として、解の母集団(全ての解の集合)を求めてもよいし、オプションとして何らかの制約が指定される場合には解の部分集合を求めてもよい。 Based on the input information received by the input device 1, the solution set generator 2 obtains a plurality of solutions for the inverse kinematics operation for the end point included in the input information. At this time, the solution set generator 2 may obtain a population of solutions (set of all solutions) as a plurality of solutions, or obtain a subset of solutions when some constraint is specified as an option. You may.

解選択器3は、入力器1により受付けられた入力情報に基づいて、解集合生成器2により求められた解の中から解を選択する。この際、解選択器3は、上記解の中から、入力情報に含まれる始点と解とを結ぶ関節角補間軌道における移動時間が、条件を満たす解を選択する。なお、解選択器3は、解集合生成器2により解が求められなかった場合には、エラーとし、解の選択は行わない。 The solution selector 3 selects a solution from the solutions obtained by the solution set generator 2 based on the input information received by the input device 1. At this time, the solution selector 3 selects a solution from the above solutions whose travel time in the joint angle interpolation trajectory connecting the start point and the solution included in the input information satisfies the condition. If the solution set generator 2 does not find a solution, the solution selector 3 considers an error and does not select a solution.

出力器4は、解選択器3により選択された解(関節空間表現)を示すデータを出力する。 The output device 4 outputs data indicating the solution (joint space representation) selected by the solution selector 3.

次に、解集合生成器2の構成例について説明する。
解集合生成器2は、図1に示すように、初期値集合生成器21及び逆運動学演算器22を有する。
Next, a configuration example of the solution set generator 2 will be described.
As shown in FIG. 1, the solution set generator 2 has an initial value set generator 21 and an inverse kinematics calculator 22.

初期値集合生成器21は、関節角ベクトルである初期値を複数生成する。 The initial value set generator 21 generates a plurality of initial values which are joint angle vectors.

逆運動学演算器22は、初期値集合生成器21により生成された初期値毎に、当該初期値を用いて、入力器1により受付けられた入力情報に含まれる終点についての逆運動学演算の解を求める。 The inverse kinematics calculator 22 uses the initial values for each initial value generated by the initial value set generator 21 to perform an inverse kinematics calculation for the end point included in the input information received by the input device 1. Find a solution.

次に、解選択器3の構成例について説明する。
解選択器3は、図1に示すように、関節角補間軌道評価器31及び評価指標選択器32を有する。
Next, a configuration example of the solution selector 3 will be described.
As shown in FIG. 1, the solution selector 3 includes a joint angle interpolation trajectory evaluator 31 and an evaluation index selector 32.

関節角補間軌道評価器31は、解集合生成器2により生成された解毎に、入力器1により受付けられた入力情報に含まれる始点と当該解との間の関節角補間軌道における移動時間を求める。なお、関節角補間軌道評価器31は、移動時間を求められればよいため、関節角補間軌道を生成する必要はない。 The joint angle interpolation trajectory evaluator 31 determines the movement time in the joint angle interpolation trajectory between the start point included in the input information received by the input device 1 and the solution for each solution generated by the solution set generator 2. Ask. Since the joint angle interpolation trajectory evaluator 31 only needs to obtain the movement time, it is not necessary to generate the joint angle interpolation trajectory.

評価指標選択器32は、関節角補間軌道評価器31により求められた解毎の移動時間(指標値)に基づいて、解集合生成器2により生成された解の中から解を選択する。 The evaluation index selector 32 selects a solution from the solutions generated by the solution set generator 2 based on the movement time (index value) for each solution obtained by the joint angle interpolation trajectory evaluator 31.

次に、図1に示す実施の形態1に係る逆運動学演算装置の動作例について、図2を参照しながら説明する。
ここで、始点はロボットアームの現在状態から与えられるため、始点から終点への関節角補間軌道は、終点についての逆運動学演算の解だけに依存する。そこで、実施の形態1に係る逆運動学演算装置は、「始点から終点への移動時間を考慮して逆運動学演算の解を選択する」ことで、関節角補間軌道をコントロールし、上記課題を解決する。
Next, an operation example of the inverse kinematics arithmetic unit according to the first embodiment shown in FIG. 1 will be described with reference to FIG.
Here, since the start point is given from the current state of the robot arm, the joint angle interpolation trajectory from the start point to the end point depends only on the solution of the inverse kinematics calculation for the end point. Therefore, the inverse kinematics arithmetic unit according to the first embodiment controls the joint angle interpolation trajectory by "selecting the solution of the inverse kinematics arithmetic in consideration of the movement time from the start point to the end point", and the above-mentioned problem. To solve.

図1に示す実施の形態1に係る逆運動学演算装置の動作例では、図2に示すように、まず、入力器1は、入力情報を受付ける(ステップST201)。入力情報には、ロボットアームにおける関節空間表現で表された始点及びデカルト空間表現で表された終点が含まれる。 In the operation example of the inverse kinematics arithmetic unit according to the first embodiment shown in FIG. 1, as shown in FIG. 2, the input device 1 first receives the input information (step ST201). The input information includes a start point represented by the joint space representation in the robot arm and an end point represented by the Cartesian space representation.

次いで、初期値集合生成器21は、関節角ベクトルである初期値を複数生成する(ステップST202)。 Next, the initial value set generator 21 generates a plurality of initial values that are joint angle vectors (step ST202).

ここで、初期値集合生成器21がロボットアームの関節可動範囲内で網羅的に初期値の集合を生成すれば、逆運動学演算器22は当該初期値の集合から解の母集団を得られる。しかしながら、初期値集合生成器21がロボットアームの関節可動範囲内で網羅的に初期値を探索することは、組み合わせが膨大であるため、計算コストの面で実用的ではない。 Here, if the initial value set generator 21 comprehensively generates a set of initial values within the range of joint movement of the robot arm, the inverse kinematics calculator 22 can obtain a population of solutions from the set of initial values. .. However, it is not practical in terms of calculation cost that the initial value set generator 21 comprehensively searches for the initial value within the range of joint movement of the robot arm because the number of combinations is enormous.

そこで、例えば、初期値集合生成器21は、初期値の探索範囲を上記関節可動範囲より狭めて初期値の集合を生成することで、初期値の数を削減してもよい。すなわち、上記関節可動範囲は2π周期で同じ位置となるため、関節可動範囲が例えば±4πであるとした場合、初期値集合生成器21は初期値の探索範囲を例えば±2π又は±πに狭めてもよい。また、初期値集合生成器21は、ランダムに一定数の初期値の集合を生成することで、初期値の数を削減してもよい。また、ロボットアームの幾何構造に対するノウハウを元にできるだけ多種類の解が得られる一定数の初期値の集合が予め決められる場合、初期値集合生成器21は当該初期値の集合を生成することで、初期値の数を削減してもよい。なお、初期値集合生成器21は、例えば計算時間を制約条件として、上記のような初期値の集合を生成する。そして、逆運動学演算器22では、上記のような初期値の集合から、解の部分集合が得られる。 Therefore, for example, the initial value set generator 21 may reduce the number of initial values by narrowing the search range of the initial values from the joint movable range to generate a set of initial values. That is, since the joint movable range becomes the same position in a 2π cycle, if the joint movable range is, for example, ± 4π, the initial value set generator 21 narrows the initial value search range to, for example, ± 2π or ± π. You may. Further, the initial value set generator 21 may reduce the number of initial values by randomly generating a set of a certain number of initial values. Further, when a set of a certain number of initial values that can obtain as many kinds of solutions as possible can be obtained in advance based on the know-how on the geometric structure of the robot arm, the initial value set generator 21 generates the set of the initial values. , The number of initial values may be reduced. The initial value set generator 21 generates a set of initial values as described above, for example, with the calculation time as a constraint condition. Then, in the inverse kinematics calculator 22, a subset of the solution is obtained from the set of initial values as described above.

また、解の種類の最大数が既知である場合、逆運動学演算器22は、初期値集合生成器21により生成された全ての初期値を用いて逆運動学演算を解く必要はなく、上記最大数の解の母集団が得られた時点で処理を終了することが実用上望ましい。 Further, when the maximum number of types of solutions is known, the inverse kinematics arithmetic unit 22 does not need to solve the inverse kinematics calculation using all the initial values generated by the initial value set generator 21, as described above. It is practically desirable to end the process when the population of the maximum number of solutions is obtained.

次いで、逆運動学演算器22は、初期値集合生成器21により生成された初期値毎に、当該初期値を用いて、入力器1により受付けられた入力情報に含まれる終点についての逆運動学演算の解を求める(ステップST203)。この際、まず、逆運動学演算器22は、入力器1により受付けられた入力情報に含まれる終点についての逆運動学演算の解(関節角ベクトル)を求める。また、逆運動学演算器22は、初期値集合生成器21により生成された初期値からヤコビ行列(勾配)を求める。そして、逆運動学演算器22は、求めた逆運動学演算の解の中から、求めた勾配方向の解を選択する。すなわち、逆運動学演算器22により得られる解は、初期値によって変わる。なお、逆運動学演算器22による処理(初期値を用いて逆運動学演算の解を求める方法)の詳細については例えば非特許文献1に開示された方法と同様であり、その詳細については説明を省略する。 Next, the inverse kinematics calculator 22 uses the initial value for each initial value generated by the initial value set generator 21 and reverse kinematics about the end point included in the input information received by the input device 1. Find the solution of the operation (step ST203). At this time, first, the inverse kinematics calculator 22 obtains a solution (joint angle vector) of the inverse kinematics calculation for the end point included in the input information received by the input device 1. Further, the inverse kinematics calculator 22 obtains the Jacobian matrix (gradient) from the initial values generated by the initial value set generator 21. Then, the inverse kinematics calculator 22 selects the obtained solution in the gradient direction from the obtained solutions for the inverse kinematics calculation. That is, the solution obtained by the inverse kinematics calculator 22 changes depending on the initial value. The details of the processing by the inverse kinematics arithmetic unit 22 (the method of obtaining the solution of the inverse kinematics arithmetic using the initial values) are the same as those disclosed in Non-Patent Document 1, for example, and the details will be described. Is omitted.

次いで、関節角補間軌道評価器31は、解集合生成器2により生成された解毎に、入力器1により受付けられた入力情報に含まれる始点と当該解との間の関節角補間軌道における移動時間を求める(ステップST204)。 Next, the joint angle interpolation trajectory evaluator 31 moves in the joint angle interpolation trajectory between the start point included in the input information received by the input device 1 and the solution for each solution generated by the solution set generator 2. Find the time (step ST204).

この際、関節角補間軌道評価器31は、関節空間表現で表された始点と関節空間表現で表された終点との間の関節角補間軌道における移動時間を求める。なお、上記始点は、入力情報に含まれる始点であり、Θstartで表す。上記終点は、解集合生成器2により生成された複数(k個)の解の中の一つであり、Θgoalで表す。具体的には、関節角補間軌道評価器31は、各解について順番に下記のような処理を実行することで、関節角補間軌道における移動時間を求める。 At this time, the joint angle interpolation trajectory evaluator 31 obtains the movement time in the joint angle interpolation trajectory between the start point represented by the joint space representation and the end point represented by the joint space representation. The start point is a start point included in the input information and is represented by Θ start. The end point is one of a plurality of (k) solutions generated by the solution set generator 2, and is represented by Θ goal. Specifically, the joint angle interpolation trajectory evaluator 31 obtains the movement time in the joint angle interpolation trajectory by sequentially executing the following processing for each solution.

<移動時間の計算例1>
まず、1軸の関節角補間軌道について考える。
ここで、ある関節が最速で始点から終点へ至る加減速パターンは、三角形加減速パターンである。三角形加減速パターンの軌道の中点について、角速度と角加速度との関係は下式(1)で表される。式(1)において、Θ(ドット)は角速度を表し、Θ(ツードット)は角加速度を表し、t1dは移動時間を表している。

Figure 2021146409
<Calculation example of travel time 1>
First, consider the uniaxial joint angle interpolation trajectory.
Here, the acceleration / deceleration pattern in which a joint has the fastest speed from the start point to the end point is a triangular acceleration / deceleration pattern. Regarding the midpoint of the orbit of the triangular acceleration / deceleration pattern, the relationship between the angular velocity and the angular acceleration is expressed by the following equation (1). In equation (1), Θ (dot) represents the angular velocity, Θ (two dots) represents the angular acceleration, and t 1d represents the travel time.

Figure 2021146409

またこの場合、角度と角速度との関係は下式(2)で表される。

Figure 2021146409
In this case, the relationship between the angle and the angular velocity is expressed by the following equation (2).

Figure 2021146409

よって、移動時間は下式(3)となる。

Figure 2021146409
Therefore, the travel time is given by the following equation (3).

Figure 2021146409

また、三角形加減速パターンの軌道の中点において、上記で求めた角速度が角速度最大値より大きい場合、角速度を角速度最大値で頭打ちにした台形加減速パターンで考える。
この場合、加速時間は下式(4)で表される。式(4)において、tは加速時間を表し、Θ(ドット)maxは角速度最大値を表している。また、式(4)において、Θ(ツードット)で表された角加速度を角加速度最大値に変更してもよい。

Figure 2021146409
Further, when the angular velocity obtained above is larger than the maximum angular velocity value at the midpoint of the orbit of the triangular acceleration / deceleration pattern, a trapezoidal acceleration / deceleration pattern in which the angular velocity is leveled off at the maximum angular velocity value is considered.
In this case, the acceleration time is expressed by the following equation (4). In the formula (4), t a represents the acceleration time, theta (dot) max represents the angular velocity maximum. Further, in the equation (4), the angular acceleration represented by Θ (two dots) may be changed to the maximum angular acceleration value.

Figure 2021146409

また、等速時間は下式(5)で表される。式(5)において、tは等速時間を表している。

Figure 2021146409
The constant velocity time is expressed by the following equation (5). In equation (5), t c represents a constant velocity time.

Figure 2021146409

よって、移動時間は下式(6)となる。

Figure 2021146409
Therefore, the travel time is given by the following equation (6).

Figure 2021146409

なお上記では、加減速パターンが台形加減速パターンである場合について示したが、これに限らず、角加速度(式(4)におけるΘ(ツードット))の設定を変えることで、加減速パターンを変えてもよい。例えば、角加速度を時間の関数とすることで、加減速パターンはS字加減速パターンとなる。 In the above, the case where the acceleration / deceleration pattern is a trapezoidal acceleration / deceleration pattern is shown, but the acceleration / deceleration pattern is not limited to this, and the acceleration / deceleration pattern can be changed by changing the setting of the angular acceleration (Θ (two dots) in the equation (4)). You may. For example, by making the angular acceleration a function of time, the acceleration / deceleration pattern becomes an S-shaped acceleration / deceleration pattern.

そして、全関節についての関節角補間軌道の移動時間は、下式(7)のように、各軸の移動時間の最大値となる。式(7)において、tは関節角補間軌道の移動時間を表す。

Figure 2021146409
なお以下では、k番目の解に対する関節角補間軌道における移動時間(指標値)をHと表記する。 Then, the movement time of the joint angle interpolation trajectory for all joints is the maximum value of the movement time of each axis as shown in the following equation (7). In equation (7), t represents the movement time of the joint angle interpolation trajectory.

Figure 2021146409
In the following, the movement time in the joint angle interpolation trajectories for the k-th solution (the index value) is denoted by H k.

<移動時間の計算例2>
上記に示した移動時間の計算方法は一例である。仮に全軸の角加速度が同じである場合には、計算コスト低減のため、関節角補間軌道評価器31は、下式(8)のように各軸の移動時間を概算値として計算してもよい。

Figure 2021146409
<Calculation example of travel time 2>
The calculation method of the travel time shown above is an example. If the angular accelerations of all axes are the same, the joint angle interpolation trajectory evaluator 31 can calculate the movement time of each axis as an approximate value as shown in the following equation (8) in order to reduce the calculation cost. good.

Figure 2021146409

<移動時間の計算例3>
仮に全軸の角速度及び角加速度が同じである場合には、計算コスト低減のため、関節角補間軌道評価器31は、下式(9)のように各軸の移動時間を概算値として計算してもよい。全軸の角速度及び角加速度が同じ場合、各軸の移動時間は角度差(関節空間における距離)に比例する。

Figure 2021146409
<Calculation example of travel time 3>
If the angular velocities and angular accelerations of all axes are the same, the joint angle interpolation trajectory evaluator 31 calculates the movement time of each axis as an approximate value as shown in the following equation (9) in order to reduce the calculation cost. You may. When the angular velocity and the angular acceleration of all axes are the same, the movement time of each axis is proportional to the angular difference (distance in the joint space).

Figure 2021146409

但し、全軸の角加速度が同じ場合或いは全軸の角速度及び角加速度が同じというケースは、実用上ほとんどない。そのため、実際には、計算例3のように単に各軸の角度差に着眼して解を選択する方法では移動時間の削減効果の高い解を選択し難い。すなわち、移動時間の削減効果がより高い解を選択するためには、関節角補間軌道評価器31は、計算例1のように何らかの加減速パターン又は角加速度設定を仮定して移動時間を見積もることが望ましい。 However, there are almost no cases in which the angular acceleration of all axes is the same or the angular velocity and angular acceleration of all axes are the same. Therefore, in practice, it is difficult to select a solution having a high effect of reducing the travel time by a method of selecting a solution by simply focusing on the angle difference of each axis as in Calculation Example 3. That is, in order to select a solution having a higher effect of reducing the travel time, the joint angle interpolation trajectory evaluator 31 estimates the travel time assuming some acceleration / deceleration pattern or angular acceleration setting as in calculation example 1. Is desirable.

なお、上記計算例1〜3において、角速度最大値及び角加速度最大値は、予め決められた固定値としてもよいし、入力情報としてユーザにより指定されてもよいし、関節角補間軌道評価器31により運動方程式から計算されてもよい。 In the above calculation examples 1 to 3, the maximum angular velocity value and the maximum angular acceleration value may be predetermined fixed values, may be specified by the user as input information, or the joint angle interpolation trajectory evaluator 31. May be calculated from the equation of motion.

次いで、評価指標選択器32は、関節角補間軌道評価器31により求められた解毎の移動時間(指標値)に基づいて、解集合生成器2により生成された解の中から解を選択する(ステップST205)。 Next, the evaluation index selector 32 selects a solution from the solutions generated by the solution set generator 2 based on the movement time (index value) for each solution obtained by the joint angle interpolation trajectory evaluator 31. (Step ST205).

ここで、評価指標選択器32は、上記解の中から、予め規定された条件を満たす解を選択する。例えば、評価指標選択器32は、移動時間の削減効果が最も高い解として、移動時間が最短となる解を一つ選択する。移動時間が最短である解は下式(10)から求められる。式(10)において、Kは移動時間が最短である解の番号を表している。

Figure 2021146409
Here, the evaluation index selector 32 selects a solution satisfying a predetermined condition from the above solutions. For example, the evaluation index selector 32 selects one solution having the shortest travel time as the solution having the highest travel time reduction effect. The solution with the shortest travel time can be obtained from the following equation (10). In equation (10), K represents the number of the solution with the shortest travel time.

Figure 2021146409

一方で、評価指標選択器32は、移動時間が最短となる解を選択しない方がよい場合がある。例えば、逆運動学演算装置が出力したある解について外部装置が軌道生成を試みたところ移動途中で自己干渉が生じることが判明し、アーム動作を実現できない場合もあり得る。ロボットアームは軌道が得られて初めて動作可能となるため、逆運動学演算装置はアーム動作が実現できない解を出力することは望ましくない。よって、実際には、評価指標選択器32は、アーム動作の実現可能性等他の条件を満たした解の中から移動時間が最短となる解を選択する、又は、移動時間が短い解から順に他の条件を満たすかを検証してから解を選択するといったことを行う。このように、評価指標選択器32は、移動時間だけではなく、他の条件又は他の評価関数とも組み合わせて解を選択することも可能であるが、基本的には移動時間の削減効果がより高い解を選択するようにする。そのため、評価指標選択器32は、解を選択する際に、少なくとも移動時間に基づいて選択する必要があるし、他の条件又は他の評価関数が同じであれば移動時間が最も短い解を優先して選択するべきである。 On the other hand, it may be better for the evaluation index selector 32 not to select the solution having the shortest travel time. For example, when an external device tries to generate a trajectory for a certain solution output by the inverse kinematics arithmetic unit, it is found that self-interference occurs during the movement, and it may not be possible to realize the arm operation. Since the robot arm can be operated only after the trajectory is obtained, it is not desirable for the inverse kinematics arithmetic unit to output a solution in which the arm operation cannot be realized. Therefore, in reality, the evaluation index selector 32 selects the solution having the shortest movement time from the solutions satisfying other conditions such as the feasibility of arm operation, or sequentially from the solution having the shortest movement time. After verifying whether other conditions are met, the solution is selected. In this way, the evaluation index selector 32 can select a solution in combination with not only the travel time but also other conditions or other evaluation functions, but basically, the effect of reducing the travel time is more effective. Try to choose a higher solution. Therefore, when selecting a solution, the evaluation index selector 32 needs to select at least based on the travel time, and if other conditions or other evaluation functions are the same, the solution with the shortest travel time is prioritized. Should be selected.

次いで、出力器4は、解選択器3により選択された解(関節空間表現)を示すデータを出力する(ステップST206)。 Next, the output device 4 outputs data indicating the solution (joint space representation) selected by the solution selector 3 (step ST206).

以上のように、この実施の形態1によれば、逆運動学演算装置は、複数の関節を有するロボットアームにおける関節空間表現で表された始点及びデカルト空間表現で表された終点を含む入力情報を受付ける入力器1と、入力器1により受付けられた入力情報に含まれる終点についての逆運動学演算の解を複数求める解集合生成器2と、解集合生成器2により求められた解の中から、入力器1により受付けられた入力情報に含まれる始点と解との間の関節角補間軌道における移動時間が条件を満たす解を選択する解選択器3とを備えた。これにより、実施の形態1に係る逆運動学演算装置は、逆運動学演算の複数の解の中から、関節角補間軌道における移動時間に関して適切な解を選択可能となる。 As described above, according to the first embodiment, the inverse kinematics calculation device includes input information including a start point represented by the joint space representation and an end point represented by the decart space representation in a robot arm having a plurality of joints. Among the solutions obtained by the input device 1 that accepts Therefore, a solution selector 3 for selecting a solution that satisfies the movement time in the joint angle interpolation trajectory between the start point and the solution included in the input information received by the input device 1 is provided. As a result, the inverse kinematics arithmetic unit according to the first embodiment can select an appropriate solution regarding the movement time in the joint angle interpolation trajectory from the plurality of solutions of the inverse kinematics arithmetic.

実施の形態2.
図3は実施の形態2に係る逆運動学演算装置の構成例を示す図である。図3に示す実施の形態2に係る逆運動学演算装置は、図1に示す実施の形態1に係る逆運動学演算装置に対し、初期値集合生成器21及び逆運動学演算器22を、構造フラグ集合生成器23及び逆運動学演算器24に変更している。その他の構成は実施の形態1に係る逆運動学演算装置と同様であり、同一の符号を付してその説明を省略する。
Embodiment 2.
FIG. 3 is a diagram showing a configuration example of the inverse kinematics arithmetic unit according to the second embodiment. The inverse kinematics arithmetic unit according to the second embodiment shown in FIG. 3 has an initial value set generator 21 and an inverse kinematics arithmetic unit 22 with respect to the inverse kinematics arithmetic unit according to the first embodiment shown in FIG. The structure flag set generator 23 and the inverse kinematics arithmetic unit 24 have been changed. Other configurations are the same as those of the inverse kinematics arithmetic unit according to the first embodiment, and the same reference numerals are given and the description thereof will be omitted.

構造フラグ集合生成器23は、構造フラグを複数生成する。構造フラグは、逆運動学演算の解を指定するための指標である。この構造フラグとしては、例えば、Shoulder指標、Elbow指標及びWrist指標が挙げられる。 The structure flag set generator 23 generates a plurality of structure flags. The structure flag is an index for designating the solution of the inverse kinematics operation. Examples of this structural flag include a Shoulder index, an Elbow index, and a Wrist index.

逆運動学演算器24は、構造フラグ集合生成器23により生成された構造フラグ毎に、当該構造フラグを用いて、入力器1により受付けられた入力情報に含まれる終点についての逆運動学演算の解を求める。 The inverse kinematics calculator 24 uses the structural flags for each structural flag generated by the structural flag set generator 23 to perform an inverse kinematics calculation for the end point included in the input information received by the input device 1. Find a solution.

次に、構造フラグ集合生成器23の動作例について説明する。まず、ロボットアームが、球形直交手首機構を有する垂直6関節ロボットアームである場合について示す。 Next, an operation example of the structure flag set generator 23 will be described. First, a case where the robot arm is a vertical 6-joint robot arm having a spherical orthogonal wrist mechanism will be described.

球形直交手首機構を有する垂直6関節ロボットアームでは、逆運動学演算の解は最大で8個であることが明らかであり(但し、各関節の可動範囲が±180度以内の場合)、これらの解を3つの指標で一意に分類可能である。また、解の種類を3つの指標で指定することで、8個の解の中から任意の解を得られる。産業用の垂直6関節ロボットアームでは、図4に示すようなリンク機構が用いられることが多い。 In a vertical 6-joint robot arm with a spherical orthogonal wrist mechanism, it is clear that there are a maximum of 8 solutions for inverse kinematics calculations (provided that the range of motion of each joint is within ± 180 degrees). The solution can be uniquely classified by three indexes. Further, by specifying the type of solution with three indexes, an arbitrary solution can be obtained from eight solutions. In an industrial vertical 6-joint robot arm, a link mechanism as shown in FIG. 4 is often used.

球形直交手首機構を有する垂直6関節ロボットアームのリンク機構の特徴は、図5に示すように、位置制御機構と姿勢制御機構とを分離できることにある。この特徴は、J4の回転軸とJ5の回転軸とJ6の回転軸とが一点で直交することに由来し、姿勢制御機構は球形直交手首機構と呼ばれる。 A feature of the link mechanism of the vertical 6-joint robot arm having a spherical orthogonal wrist mechanism is that the position control mechanism and the posture control mechanism can be separated as shown in FIG. This feature is derived from the fact that the rotation axis of J4, the rotation axis of J5, and the rotation axis of J6 are orthogonal to each other at one point, and the attitude control mechanism is called a spherical orthogonal wrist mechanism.

まず、位置制御機構について考えてみると、図6の点A’はJ1が180度回転すれば点Aと一致する。よって、点Aの位置を示す関節角(逆運動学演算の解)は2通りあることがわかる。この2つの解を区別するには、J1座標系で考えた場合(θ=0とした場合)に、点Aが左右どちらにあるかで判別できる。逆を言えば、「右の方」と指定すれば、逆運動学演算の解を一意に決定できる。このように解を指定するフラグを構造フラグと呼ぶ。図6では、点AがShoulder境界の「右の方」又は「左の方」という2つの解が存在し、Shoulder指標により区別できる。 First, considering the position control mechanism, the point A'in FIG. 6 coincides with the point A if J1 is rotated 180 degrees. Therefore, it can be seen that there are two types of joint angles (solutions of inverse kinematics calculation) indicating the position of point A. In order to distinguish between these two solutions, it is possible to determine whether the point A is on the left or right when considering the J1 coordinate system (when θ 1 = 0). To put it the other way around, if you specify "to the right", you can uniquely determine the solution of the inverse kinematics operation. The flag that specifies the solution in this way is called a structure flag. In FIG. 6, there are two solutions in which the point A is the “right side” or the “left side” of the Shoulder boundary, which can be distinguished by the Shoulder index.

図7は、構造フラグのうちのElbow指標を示す概念図である。位置制御機構について考えてみると、点AとJ2とを結ぶ直線に対して、J3がElbow境界の「上の方」と「下の方」という2つの解が存在し、Elbow指標により区別できる。 FIG. 7 is a conceptual diagram showing an Elbow index among the structural flags. Considering the position control mechanism, there are two solutions for the straight line connecting the points A and J2, that is, "upper" and "lower" of the Elbow boundary, and they can be distinguished by the Elbow index. ..

図8は、構造フラグのうちのWrist指標を示す概念図である。姿勢制御機構について考えてみると、J4が回転すれば、J6とJ6’とが一致することがわかる。よって、J5の関節角の正負について、Wrist境界の「正の方」又は「負の方」という2つの解が存在し、Wrist指標により区別できる。 FIG. 8 is a conceptual diagram showing the Wrist index among the structural flags. Considering the attitude control mechanism, it can be seen that if J4 rotates, J6 and J6'match. Therefore, regarding the positive and negative of the joint angle of J5, there are two solutions, "positive side" and "negative side" of the Wrist boundary, which can be distinguished by the Wrist index.

以上のような構造フラグに着眼し、構造フラグ集合生成器23は、構造フラグを複数生成する。 Focusing on the structure flags as described above, the structure flag set generator 23 generates a plurality of structure flags.

そして、逆運動学演算器24は、構造フラグ集合生成器23により生成された構造フラグ毎に、当該構造フラグを用いて、入力器1により受付けられた入力情報に含まれる終点についての逆運動学演算の解を求める。ここで、逆運動学演算器24による処理(構造フラグを用いて逆運動学演算の解を求める方法)の詳細については例えば非特許文献3に開示された方法と同様であり、その説明を省略する。なお、非特許文献3では構造フラグという呼称は用いられていないが、逆運動学演算の過程で発生する3か所の±符号のプラス側の解及びマイナス側の解というように解が分類されており、その分類にShoulder指標、Elbow指標及びWrist指標が用いられている。 Then, the inverse kinematics calculator 24 uses the structure flag for each structure flag generated by the structure flag set generator 23, and uses the inverse kinematics about the end point included in the input information received by the input device 1. Find the solution of the operation. Here, the details of the processing by the inverse kinematics arithmetic unit 24 (the method of obtaining the solution of the inverse kinematics arithmetic using the structural flag) are the same as the method disclosed in Non-Patent Document 3, for example, and the description thereof is omitted. do. Although the name of the structural flag is not used in Non-Patent Document 3, the solutions are classified into the positive side solution and the negative side solution of the ± sign in three places generated in the process of inverse kinematics calculation. The Shoulder index, Elbow index, and Wrist index are used for the classification.

以上から、球形直交手首機構を有する垂直6関節ロボットアームに対し、逆運動学演算装置は、Shoulder指標、Elbow指標及びWrist指標を組み合わせた計8通りの構造フラグの集団について、それぞれ逆運動学演算の解を求めることで、解の母集団が得られる。 From the above, for a vertical 6-joint robot arm having a spherical orthogonal wrist mechanism, the inverse kinematics calculation device performs inverse kinematics calculation for a total of eight groups of structural flags combining the Shoulder index, the Elbow index, and the Wrist index. By finding the solution of, a population of solutions can be obtained.

なお、逆運動学演算装置は、オプションとして、ある構造フラグの制約の指定を受付けて、解の集合を求めてもよい。構造フラグの制約としては、例えば、Shoulder指標が始点と同じという制約が挙げられる。Shoulder指標が始点と終点とで異なると、J1が大きく回転する可能性が高く、ロボットアームが周辺物と干渉する可能性が高まるので、このような制約は実用上あり得ると考えられる。 The inverse kinematics arithmetic unit may optionally accept the specification of the constraint of a certain structure flag to obtain a set of solutions. As a constraint of the structure flag, for example, there is a constraint that the Shoulder index is the same as the start point. If the Shoulder index is different between the start point and the end point, there is a high possibility that J1 will rotate significantly, and the possibility that the robot arm will interfere with peripheral objects will increase. Therefore, it is considered that such a restriction is practically possible.

以上では、説明が簡単であるため、ロボットアームが球形直交手首機構を有する垂直6関節ロボットアームである場合を例に説明を行ったが、ロボットアームはこれに限らない。ロボットアームの構造が変わると、構造フラグの各指標の定義及び指標の数が変わるものの、実施の形態2に係る逆運動学演算装置は同様に適用可能である。 In the above description, for the sake of simplicity, the case where the robot arm is a vertical 6-joint robot arm having a spherical orthogonal wrist mechanism has been described as an example, but the robot arm is not limited to this. Although the definition of each index of the structure flag and the number of indexes change when the structure of the robot arm changes, the inverse kinematics arithmetic unit according to the second embodiment can be similarly applied.

例えば、ロボットアームが図9に示すようなロボットアームである場合での逆運動学演算装置の解を求める方法は非特許文献4に開示されている。図9に示すロボットアームは、ロボットアームが有する関節のうちの6つの関節において、J1の回転軸とJ4の回転軸とが直交(略直交の意味を含む)であり、且つ、J4の回転軸とJ6の回転軸とがオフセットしているオフセット手首機構を有するロボットアームである。なお、非特許文献4では構造フラグという呼称は用いられていないが、逆運動学演算の過程で発生する各±符号のプラス側の解及びマイナス側の解というように解が分類されており、その分類に構造フラグが用いられている。 For example, a method for obtaining a solution of an inverse kinematics arithmetic unit when the robot arm is a robot arm as shown in FIG. 9 is disclosed in Non-Patent Document 4. In the robot arm shown in FIG. 9, in six of the joints of the robot arm, the rotation axis of J1 and the rotation axis of J4 are orthogonal (including the meaning of substantially orthogonality), and the rotation axis of J4. A robot arm having an offset wrist mechanism in which the rotation axis of J6 and the rotation axis of J6 are offset. Although the name of the structural flag is not used in Non-Patent Document 4, the solutions are classified as the positive side solution and the negative side solution of each ± sign generated in the process of inverse kinematics operation. Structural flags are used for the classification.

また、実施の形態2に係る逆運動学演算装置において、全ての解を一意に分類するのに必要十分な構造フラグが定義されている必要はない。例えば図10に示すようなロボットアームの場合、Shoulder指標及びElbow指標は定義できるものの、他の指標は定義できない。また、逆運動学演算装置の解も最大で8個以上存在する場合もある。そのため、構造フラグとして、Shoulder指標及びElbow指標の組み合わせを1通り与えた場合にも、複数の解が存在する。なお図10に示すロボットアームは、ロボットアームが有する関節のうちの6つの関節において、J1の回転軸とJ4の回転軸とJ6の回転軸とが平行(略平行の意味を含む)であり、且つ、J4の回転軸とJ6の回転軸とがオフセットしているオフセット手首機構を有するロボットアーム(以下、J4−6オフセットアームと略記)である。 Further, in the inverse kinematics arithmetic unit according to the second embodiment, it is not necessary to define sufficient structural flags necessary for uniquely classifying all the solutions. For example, in the case of a robot arm as shown in FIG. 10, the Shoulder index and the Elbow index can be defined, but other indexes cannot be defined. In addition, there may be a maximum of eight or more solutions of the inverse kinematics arithmetic unit. Therefore, even when one combination of the Shoulder index and the Elbow index is given as the structure flag, there are a plurality of solutions. In the robot arm shown in FIG. 10, in six of the joints of the robot arm, the rotation axis of J1, the rotation axis of J4, and the rotation axis of J6 are parallel (including the meaning of substantially parallel). Moreover, it is a robot arm having an offset wrist mechanism in which the rotation axis of J4 and the rotation axis of J6 are offset (hereinafter, abbreviated as J4-6 offset arm).

一方、J4−6オフセットアームを対象にして構造フラグ(Shoulder指標及びElbow指標)を定義し、1対のShoulder指標及びElbow指標が指定された場合に数値計算により解を求める方法が提案されている(例えば非特許文献5参照)。以下、J4−6オフセットアームを対象とした場合での逆運動学演算器24の動作例について説明する。なお、構造フラグ集合生成器23は、1対のShoulder指標及びElbow指標を生成する。 On the other hand, a method has been proposed in which structural flags (Shoulder index and Elbow index) are defined for the J4-6 offset arm, and a solution is obtained by numerical calculation when a pair of Shoulder index and Elbow index are specified. (See, for example, Non-Patent Document 5). Hereinafter, an operation example of the inverse kinematics arithmetic unit 24 when the J4-6 offset arm is targeted will be described. The structure flag set generator 23 generates a pair of Shoulder index and Elbow index.

図11は、J4−6オフセットアームのリンク機構と運動学的に等価なリンク機構を示す図である。図11のように簡略されたリンク機構を用いると運動学の演算はし易くなる。
図11において、点Oは、ロボットアームの根元であり、ベース座標系の原点である。点Pは、ロボットアームの先端(手先)であり、逆運動学演算の入力情報として点Pにおける位置及び姿勢が入力される。点Gは、点Cをベース座標系のxy平面へ射影した点である。点Jは、点Gのベース座標系のz座標に対してlを加算した点である。lは、点Oと点Eとの間の長さを表す。lは、点Eと点Dとの間の長さを表す。lは、点Dと点Cとの間の長さを表す。lは、点Cと点Bとの間の長さを表す。lは、点Bと点Aとの間の長さを表す。lは、点Aと点Pとの間の長さを表す。
FIG. 11 is a diagram showing a link mechanism kinematically equivalent to the link mechanism of the J4-6 offset arm. Using a simplified link mechanism as shown in FIG. 11 facilitates kinematics calculations.
In FIG. 11, the point O is the root of the robot arm and the origin of the base coordinate system. The point P is the tip (hand) of the robot arm, and the position and posture at the point P are input as input information for the inverse kinematics calculation. The point G is a point where the point C is projected onto the xy plane of the base coordinate system. The point J is a point obtained by adding l 1 to the z coordinate of the base coordinate system of the point G. l 1 represents the length between the points O and E. l 2 represents the length between the points E and D. l 3 represents the length between point D and point C. l 4 represents the length between point C and point B. l 5 represents the length between point B and point A. l 6 represents the length between points A and P.

非特許文献5では、J4−6オフセットアームにおいて、図11に示すベクトルBCとベクトルBAとが直交する幾何特性に着目して逆運動学演算を行う方法が提案されている。
この方法では、ベクトルBCとベクトルBAとの内積を評価関数とする。なお、評価関数をfで表す。そして、まず、f(θ)=0となるθを数値的に探索する。そして、f(θ)=0となるθが求められると、ロボットアームの先端から順にθ〜θを求めることができる。評価関数の定義、及びθが与えられた場合にθ〜θを求める方法については、非特許文献5に開示されているため、その説明を省略する。
Non-Patent Document 5 proposes a method of performing inverse kinematics calculation focusing on the geometric characteristics in which the vector BC and the vector BA shown in FIG. 11 are orthogonal to each other in the J4-6 offset arm.
In this method, the inner product of the vector BC and the vector BA is used as the evaluation function. The evaluation function is represented by f. Then, first, searches the theta 6 to be f (θ 6) = 0 numerically. When f (θ 6) = 0 and becomes theta 6 is required, it is possible to determine the theta 5 through? 1 from the distal end of the robot arm in order. Since the definition of the evaluation function and the method of obtaining θ 5 to θ 1 when θ 6 is given are disclosed in Non-Patent Document 5, the description thereof will be omitted.

評価関数の例を図12に示す。図12の通り、f(θ)=0となるθ(評価関数の根)は複数存在する。Shoulder指標及びElbow指標で一意に分類しきれなかった解が複数の根として表れており、各根について逆運動学演算の解が存在する。よって、解の母集団を得るためには、評価関数のすべての根を求めればよい。評価関数のすべての根を求める方法として、例えば、大域探索と詳細探索の2段階で構成されるアルゴリズムを用いればよい。 An example of the evaluation function is shown in FIG. As shown in FIG. 12, there are a plurality of θ 6 (roots of the evaluation function) at which f (θ 6) = 0. Solutions that could not be uniquely classified by the Shoulder index and Elbow index appear as a plurality of roots, and there are solutions for inverse kinematics operations for each root. Therefore, in order to obtain the population of the solution, all the roots of the evaluation function need to be found. As a method of finding all the roots of the evaluation function, for example, an algorithm composed of two stages of a global search and a detailed search may be used.

まず、逆運動学演算器24による大域探索について説明する。
大域探索としては、例えば、グリッドサーチによる方法を用いることができる。すなわち、まず、逆運動学演算器24は、θの値域をΔθで複数の区間に分割し、根を含む全ての空間を求める。ここで、値域を[θlower,θupper]で表す。θlowerは値域の始点を表し、θupperは値域の終点を表す。なお、|θlower|,|θupper|≦πとする。Δθは微小区間幅を表す。区間を[θ,θ]で表す。θは区間の始点を表し、θは区間の終点を表す。また、i番目の区間について、θ[i]及びθ[i]は下式(11),(12)のように表せる。

Figure 2021146409
First, the global search by the inverse kinematics arithmetic unit 24 will be described.
As the global search, for example, a method by grid search can be used. That is, first, the inverse kinematics calculator 24 divides the range of θ 6 into a plurality of sections by Δθ, and obtains all the spaces including the roots. Here, the range is represented by [θ lower , θ upper ]. θ lower represents the start point of the range and θ upper represents the end point of the range. It should be noted that | θ lower |, | θ upper | ≤ π. Δθ represents a minute interval width. The interval is represented by [θ s , θ e ]. θ s represents the start point of the section and θ e represents the end point of the section. Further, for the i-th interval, θ s [i] and θ e [i] can be expressed as the following equations (11) and (12).

Figure 2021146409

そして、逆運動学演算器24は、分割した複数の[θ,θ]に対してゼロ点包含判定を行う。すなわち、逆運動学演算器24は、[θ,θ]においてf(θ)が単調変化する場合であって、θ,θについて|f(θ)|<E又は|f(θ)|<Eを満たす場合、又は、f(θ)とf(θ)とが異符号である場合に、[θ,θ]内にf(θ)=0となるθを含むと判定する。Eは、微小値である。Eとしては、f(θ)=0となるθを見逃さないように、大きめの値(例えば10−4)が設定されることが望ましい。 Then, the inverse kinematics calculator 24 makes a zero point inclusion determination for the plurality of divided [θ s , θ e]. That is, in the inverse kinematics calculator 24, when f (θ 6 ) changes monotonically in [θ s , θ e ], | f (θ s ) | <E or | f with respect to θ s and θ e. When (θ e ) | <E is satisfied, or when f (θ s ) and f (θ e ) have different codes, f (θ 6 ) = 0 in [θ s , θ e]. It is determined that θ 6 is included. E is a minute value. As E, it is desirable that a large value (for example, 10 -4 ) is set so as not to overlook θ 6 such that f (θ 6 ) = 0.

次に、逆運動学演算器24による詳細探索について説明する。
逆運動学演算器24は、大域探索で求めた[θ,θ]について、f(θ)=0となるθを求める。すなわち、逆運動学演算器24は、fの根を数値計算で求める。未知の非線形関数の根を数値計算により求めるアルゴリズムとしては、二分法、割線法又は挟み撃ち法等が挙げられる。ここでは、逆運動学演算器24は、アンダーソン・ビョーク法(AB法)を用いた場合について説明する。
Next, a detailed search by the inverse kinematics calculator 24 will be described.
The inverse kinematics calculator 24 obtains θ 6 such that f (θ 6 ) = 0 for [θ s , θ e] obtained by the global search. That is, the inverse kinematics calculator 24 obtains the root of f by numerical calculation. Examples of the algorithm for obtaining the root of an unknown nonlinear function by numerical calculation include a dichotomy method, a secant method, and a false position method. Here, the case where the inverse kinematics arithmetic unit 24 uses the Anderson-Bjork method (AB method) will be described.

AB法は、挟み撃ち法の改良手法である。AB法は、挟み撃ち法と同様に、θ又はθを更新して根を含む区間を狭めて絞込みを行い、根を求める。このAB法は、挟み撃ち法よりも少ない計算回数で根を求めることができる利点がある。 The AB method is an improved method of the false position method. In the AB method, as in the false position method, θ s or θ e is updated to narrow down the section including the root, and the root is obtained. This AB method has an advantage that the root can be obtained with a smaller number of calculations than the pinch shooting method.

AB法による更新点の計算方法(更新方法)は、挟み撃ち法と同じ下式(13)の通りである。式(13)において、θtempは更新点を表す。

Figure 2021146409
The calculation method (update method) of the update point by the AB method is as shown in the following formula (13), which is the same as the pinch shooting method. In equation (13), θ emp represents an update point.

Figure 2021146409

ここで、逆運動学演算器24は、f(θ)とf(θtemp)とが同符号である場合には[θ,θtemp]内に根はないので、θをθtempで更新する。この場合、AB法では係数であるmを用い、次回のθtempの計算時にf(θ)をmf(θ)に置換して計算する。mは下式(14)で定義される。計算の結果、mが負となってしまった場合には、m=0.5とする。

Figure 2021146409
Here, in the inverse kinematics arithmetic unit 24, when f (θ s ) and f (θ temp ) have the same sign, there is no root in [θ s , θ emp ], so θ s is set to θ temp. Update with. In this case, in the AB method, the coefficient m is used, and f (θ e ) is replaced with mf (θ e ) in the next calculation of θ emp. m is defined by the following equation (14). If m becomes negative as a result of the calculation, m = 0.5.

Figure 2021146409

なお、m=0.5で固定値計算する手法は、イリノイ法と呼ばれる。収束の速さは、挟み撃ち法<イリノイ法≦AB法の順となる。 The method of calculating a fixed value at m = 0.5 is called the Illinois method. The speed of convergence is in the order of the pinch shooting method <Illinois method ≤ AB method.

一方、逆運動学演算器24は、f(θ)とf(θtemp)とが異符号である場合には[θ,θtemp]内に根があるので、θをθtempで更新する。この場合、AB法ではmを使い、次回のθtempの計算時にf(θ)をmf(θ)に置換して計算する。mは下式(15)で定義される。計算の結果、mが負となってしまった場合は、m=0.5とする。

Figure 2021146409
On the other hand, in the inverse kinematics arithmetic unit 24, when f (θ s ) and f (θ emp ) have different signs, there is a root in [θ s , θ emp ], so θ e is set to θ emp . Update. In this case, m is used in the AB method, and f (θ s ) is replaced with mf (θ s ) in the next calculation of θ temp. m is defined by the following equation (15). If m becomes negative as a result of the calculation, m = 0.5.

Figure 2021146409

以上のように、逆運動学演算器24は、構造フラグとしてShoulder指標及びElbow指標の組み合わせが与えられた場合に、大域探索及び詳細探索により全ての根を求めることができ、解の集合として各根についての解(関節角ベクトル)を求めることができる。よって、J4−6オフセットアームの場合でも、実施の形態2に係る逆運動学演算器24は適用可能であり、有効である。 As described above, when the combination of the Shoulder index and the Elbow index is given as the structural flag, the inverse kinematics calculator 24 can find all the roots by the global search and the detailed search, and each of them is a set of solutions. The solution (joint angle vector) for the root can be obtained. Therefore, even in the case of the J4-6 offset arm, the inverse kinematics calculator 24 according to the second embodiment is applicable and effective.

なお、本願発明はその発明の範囲内において、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。 In the present invention, within the scope of the invention, it is possible to freely combine each embodiment, modify any component of each embodiment, or omit any component in each embodiment. be.

1 入力器
2 解集合生成器
3 解選択器
4 出力器
21 初期値集合生成器
22 逆運動学演算器
23 構造フラグ集合生成器
24 逆運動学演算器
31 関節角補間軌道評価器
32 評価指標選択器
1 Input device 2 Solution set generator 3 Solution selector 4 Outputr 21 Initial value set generator 22 Inverse kinematics calculator 23 Structural flag set generator 24 Inverse kinematics calculator 31 Joint angle interpolation trajectory evaluator 32 Evaluation index selection vessel

Claims (6)

複数の関節を有するロボットアームにおける関節空間表現で表された始点及びデカルト空間表現で表された終点を含む入力情報を受付ける入力器と、
前記入力器により受付けられた入力情報に含まれる終点についての逆運動学演算の解を複数求める解集合生成器と、
前記解集合生成器により求められた解の中から、前記入力器により受付けられた入力情報に含まれる始点と解との間の関節角補間軌道における移動時間が条件を満たす解を選択する解選択器と
を備えた逆運動学演算装置。
An input device that receives input information including a start point represented by a joint space representation and an end point represented by a Cartesian space representation in a robot arm having multiple joints.
A solution set generator for finding a plurality of solutions of inverse kinematics operations for the end point included in the input information received by the input device, and
From the solutions obtained by the solution set generator, select a solution that satisfies the movement time in the joint angle interpolation trajectory between the start point and the solution included in the input information received by the input device. Inverse kinematics arithmetic unit equipped with a device.
前記解集合生成器は、
関節角ベクトルである初期値を複数生成する初期値集合生成器と、
前記初期値集合生成器により生成された初期値毎に、当該初期値を用いて、前記入力器により受付けられた入力情報に含まれる終点についての逆運動学演算の解を求める逆運動学演算器とを有する
ことを特徴とする請求項1記載の逆運動学演算装置。
The solution set generator
An initial value set generator that generates multiple initial values that are joint angle vectors,
Inverse kinematics calculator that uses the initial values for each initial value generated by the initial value set generator to find the solution of the inverse kinematics operation for the end point included in the input information received by the input device. The inverse kinematics calculation device according to claim 1, wherein the device has.
前記解集合生成器は、
逆運動学演算の解を指定するための指標である構造フラグを複数生成する構造フラグ集合生成器と、
前記構造フラグ集合生成器により生成された構造フラグ毎に、当該構造フラグを用いて、前記入力器により受付けられた入力情報に含まれる終点についての逆運動学演算の解を求める逆運動学演算器とを有する
ことを特徴とする請求項1記載の逆運動学演算装置。
The solution set generator
A structural flag set generator that generates multiple structural flags that are indicators for specifying the solution of inverse kinematics operations,
For each structure flag generated by the structure flag set generator, the inverse kinematics arithmetic unit for finding the solution of the inverse kinematics operation for the end point included in the input information received by the input device using the structure flag. The inverse kinematics arithmetic unit according to claim 1, wherein the device has.
前記ロボットアームは、構造フラグと逆運動学演算の解とが1対多となる構造である
ことを特徴とする請求項3記載の逆運動学演算装置。
The inverse kinematics arithmetic unit according to claim 3, wherein the robot arm has a structure in which a structure flag and a solution of an inverse kinematics arithmetic are one-to-many.
前記ロボットアームは、6以上の関節を有し、当該関節のうちの6つの関節において、根元側から第1の関節の回転軸と第4の関節の回転軸と第6の関節の回転軸とが平行であり、且つ、当該第4の関節の回転軸と当該第6の関節の回転軸とがオフセットしている垂直多関節ロボットアームであり、
前記解集合生成器は、前記6つの関節に対し、前記第6の関節の角度についての数値計算を実行し、当該数値計算で得られた角度に基づいて残りの関節の角度を計算することで、逆運動学演算の解を求める
ことを特徴とする請求項1、請求項3又は請求項4記載の逆運動学演算装置。
The robot arm has six or more joints, and in six of the joints, the rotation axis of the first joint, the rotation axis of the fourth joint, and the rotation axis of the sixth joint from the root side. Is a vertical articulated robot arm in which the rotation axes of the fourth joint and the rotation axis of the sixth joint are offset.
The solution set generator performs numerical calculation on the angle of the sixth joint on the six joints, and calculates the angle of the remaining joints based on the angle obtained by the numerical calculation. The inverse kinematics calculation device according to claim 1, claim 3 or claim 4, wherein the solution of the inverse kinematics calculation is obtained.
入力器が、複数の関節を有するロボットアームにおける関節空間表現で表された始点及びデカルト空間表現で表された終点を含む入力情報を受付けるステップと、
解集合生成器が、前記入力器により受付けられた入力情報に含まれる終点についての逆運動学演算の解を複数求めるステップと、
解選択器が、前記解集合生成器により求められた解の中から、前記入力器により受付けられた入力情報に含まれる始点と当該解との間の関節角補間軌道における移動時間が条件を満たす解を選択するステップと
を有する逆運動学演算方法。
A step in which the input device receives input information including a start point represented by the joint space representation and an end point represented by the Cartesian space representation in a robot arm having a plurality of joints.
A step in which the solution set generator finds a plurality of solutions of the inverse kinematics operation for the end point included in the input information received by the input device.
The solution selector satisfies the movement time in the joint angle interpolation trajectory between the start point included in the input information received by the input device and the solution from the solutions obtained by the solution set generator. An inverse kinematics calculation method with steps to select a solution.
JP2020045918A 2020-03-17 2020-03-17 Inverse kinematics operation unit and inverse kinematics operation method Pending JP2021146409A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020045918A JP2021146409A (en) 2020-03-17 2020-03-17 Inverse kinematics operation unit and inverse kinematics operation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020045918A JP2021146409A (en) 2020-03-17 2020-03-17 Inverse kinematics operation unit and inverse kinematics operation method

Publications (1)

Publication Number Publication Date
JP2021146409A true JP2021146409A (en) 2021-09-27

Family

ID=77850353

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020045918A Pending JP2021146409A (en) 2020-03-17 2020-03-17 Inverse kinematics operation unit and inverse kinematics operation method

Country Status (1)

Country Link
JP (1) JP2021146409A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114603558A (en) * 2022-03-21 2022-06-10 合肥哈工图南智控机器人有限公司 Mixed space transition trajectory planning method and device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114603558A (en) * 2022-03-21 2022-06-10 合肥哈工图南智控机器人有限公司 Mixed space transition trajectory planning method and device
CN114603558B (en) * 2022-03-21 2023-12-05 合肥哈工图南智控机器人有限公司 Hybrid space transition track planning method and device

Similar Documents

Publication Publication Date Title
Huang et al. Particle swarm optimization for solving the inverse kinematics of 7-DOF robotic manipulators
US9827675B2 (en) Collision avoidance method, control device, and program
US8560122B2 (en) Teaching and playback method based on control of redundancy resolution for robot and computer-readable medium controlling the same
JP2019010713A (en) Hand control device, hand control method, and hand simulation device
JP4693643B2 (en) Robot teaching support apparatus and program therefor
JPH1097316A (en) Movement plan and control method for system followed by many mobile objects
WO2023024317A1 (en) Robot obstacle avoidance method and apparatus, and robot
JP2013132731A (en) Robot control system, robot system and robot control method
Gao et al. Optimal trajectory planning for robotic manipulators using improved teaching-learning-based optimization algorithm
Iversen et al. Benchmarking motion planning algorithms for bin-picking applications
JP2009134352A (en) Robot motion path creating device, and robot motion path creating method
Petrinec et al. Trajectory planning algorithm based on the continuity of jerk
JP4760732B2 (en) Route creation device
JP2021146411A (en) Inverse kinematics operation device and inverse kinematics operation method
Ting et al. Kinematic analysis for trajectory planning of open-source 4-DoF robot arm
Sadiq et al. Optimal trajectory planning of 2-DOF robot arm using the integration of PSO based on D* algorithm and cubic polynomial equation
Djeffal et al. Kinematics modeling and simulation analysis of variable curvature kinematics continuum robots
Guilamo et al. Manipulability optimization for trajectory generation
JP2021146409A (en) Inverse kinematics operation unit and inverse kinematics operation method
Kim et al. A geometric approach for forward kinematics analysis of a 3-SPS/S redundant motion manipulator with an extra sensor using conformal geometric algebra
EP3978203A1 (en) Singularity-free kinematic parameterization of soft robot manipulators
JP2021146410A (en) Inverse kinematics operation unit and inverse kinematics operation method
Raheem et al. Applying A* path planning algorithm based on modified c-space analysis
Zhao et al. Efficient inverse kinematics for redundant manipulators with collision avoidance in dynamic scenes
Dupac A path planning approach of 3D manipulators using zenithal gnomic projection and polar piecewise interpolation