JP2024035977A - Offline teaching method for articulated robot, program, articulated robot, and information processing device - Google Patents

Offline teaching method for articulated robot, program, articulated robot, and information processing device Download PDF

Info

Publication number
JP2024035977A
JP2024035977A JP2022140645A JP2022140645A JP2024035977A JP 2024035977 A JP2024035977 A JP 2024035977A JP 2022140645 A JP2022140645 A JP 2022140645A JP 2022140645 A JP2022140645 A JP 2022140645A JP 2024035977 A JP2024035977 A JP 2024035977A
Authority
JP
Japan
Prior art keywords
joint
posture
model
angle
range
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
JP2022140645A
Other languages
Japanese (ja)
Inventor
俊樹 廣垣
栄一 青山
大暉 加藤
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.)
Doshisha Co Ltd
Original Assignee
Doshisha Co Ltd
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 Doshisha Co Ltd filed Critical Doshisha Co Ltd
Priority to JP2022140645A priority Critical patent/JP2024035977A/en
Publication of JP2024035977A publication Critical patent/JP2024035977A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

【課題】多関節ロボットの意図しない挙動を効率よく抑制することが可能なオフラインティーチング方法を提供する。【解決手段】多関節ロボットのオフラインティーチング方法は、多関節ロボットの仮想化モデルが取り得る姿勢のうち、仮想化モデルの特異点と特異点近傍とを含む範囲を、シミュレータが決定するステップと、シミュレータが、仮想化モデルにおける各関節の角度を制御することにより、仮想化モデルの姿勢を第1の姿勢から第2の姿勢へと遷移させるステップとを備える。仮想化モデルの姿勢を第1の姿勢から第2の姿勢に遷移させるステップでは、仮想化モデルの姿勢が範囲外のときには、シミュレータは、ヤコビ行列を用いて各関節の角度を算出し、仮想化モデルの姿勢が範囲内のときには、シミュレータは、予め生成された学習済みモデルを用いて各関節の角度を算出する。【選択図】図22The present invention provides an offline teaching method that can efficiently suppress unintended behavior of an articulated robot. [Solution] An offline teaching method for an articulated robot includes a step in which a simulator determines a range including a singular point and a vicinity of the singular point of the virtualized model among postures that a virtualized model of the articulated robot can take; The simulator controls the angle of each joint in the virtualized model to transition the posture of the virtualized model from the first posture to the second posture. In the step of transitioning the posture of the virtualized model from the first posture to the second posture, if the posture of the virtualized model is outside the range, the simulator calculates the angle of each joint using the Jacobian matrix, and transitions the virtualized model from the first posture to the second posture. When the posture of the model is within the range, the simulator calculates the angle of each joint using a learned model generated in advance. [Selection diagram] Figure 22

Description

本開示は、多関節ロボットのオフラインティーチング方法、プログラム、多関節ロボット、および、情報処理装置に関する。 The present disclosure relates to an offline teaching method and program for an articulated robot, an articulated robot, and an information processing device.

従来、産業用ロボットとして多関節ロボットが知られている。このような多関節ロボットを生産ライン等で使用する場合、多関節ロボットに所望の動作を行わせるために、事前に多関節ロボットに対してティーチングを行う必要がある。 Conventionally, articulated robots have been known as industrial robots. When such an articulated robot is used on a production line or the like, it is necessary to teach the articulated robot in advance in order to make the articulated robot perform a desired operation.

このようなティーチングの手法として、オンラインティーチングと、オフラインティーチングとが知られている。オンラインティーチングは、ティーチングペンダントを用いて、現場でロボットに直接ティーチングを行う手法である。オフラインティーチングは、コンピュータ上でティーチングデータを生成し、かつ当該ティーチングデータをロボットへ送信することにより、当該ロボットに対してティーチングを行う手法である。前者のオンラインティーチングは、生産ラインを停止させた状態で、専門的な教育を受けた作業員が行う必要がある。このため、近年、後者のオフラインティーチングが積極的に活用されている。 Online teaching and offline teaching are known as such teaching methods. Online teaching is a method of directly teaching a robot on site using a teaching pendant. Offline teaching is a method of teaching a robot by generating teaching data on a computer and transmitting the teaching data to the robot. The former type of online teaching needs to be performed by workers who have received specialized training while the production line is stopped. For this reason, the latter type of offline teaching has been actively utilized in recent years.

オフラインティーチングを行う際に、多関節ロボット姿勢(マニピュレータ手先の位置および姿勢)から各関節の変位を求める必要がある。このような運動学は、「逆運動学」と称される。逆運動学の解法として、局所的に線形な関係を作って各関節の変位を求めるヤコビ法が知られている。ヤコビ法では、局所的な線形空間で逆問題を解き、次の局所的な線形空間で逆問題を解くといったことが繰り返される。その際、制御したい変数の微分(マニピュレータ手先の位置および姿勢の微分)をどれだけ小さくしたとしても、制御する変数(当該リンクを移動させる関節の変位)が発散してしまうことが起こる。このようなロボットの姿勢は、「特異点」と称されている。特異点は、ロボットの構造上、制御できなくなる姿勢である。なお、マニピュレータ手先とは、エンドエフェクタの部分を指す。 When performing offline teaching, it is necessary to find the displacement of each joint from the multi-joint robot posture (position and posture of the manipulator hand). Such kinematics is called "inverse kinematics." As a solution method for inverse kinematics, the Jacobi method is known, which calculates the displacement of each joint by creating a locally linear relationship. The Jacobi method repeatedly solves an inverse problem in a local linear space, then solves the inverse problem in the next local linear space. In this case, no matter how small the differential of the variable to be controlled (the differential of the position and posture of the manipulator hand) is made, the variable to be controlled (the displacement of the joint that moves the link) may diverge. This posture of the robot is called a "singularity." A singularity is a posture that cannot be controlled due to the robot's structure. Note that the manipulator hand refers to the end effector part.

特開2006-227724号公報(特許文献1)には、位置指令と関節データと特異点領域情報とに基づいてロボットが特異点領域に進入したか否かを判定する進入判断部と、進入判断部の判定結果に基づいて起動され、特異点領域に進入したロボットが特異点領域を通過する際の位置指令を生成出力する特異点通過位置指令生成部を具備する特異点通過位置生成部とを備えたロボットの制御装置が開示されている([要約])。 Japanese Unexamined Patent Publication No. 2006-227724 (Patent Document 1) discloses an entry determination unit that determines whether a robot has entered a singularity region based on a position command, joint data, and singularity region information; a singularity passing position command generation section that is activated based on the determination result of the section and generates and outputs a position command for the robot that has entered the singularity region to pass through the singularity region; A robot control device equipped with the following is disclosed ([Abstract]).

また、日本工業規格(JIS)のB8439-1992(特許文献2)には、ロボットの手首部分の形態として、FLIPと、NONFLIP(FLIPの形態から、手首部の姿勢を変えずに、腕を腕の軸回りに180°回転させた形態)といったフラグが定義されている。 In addition, Japanese Industrial Standards (JIS) B8439-1992 (Patent Document 2) describes the forms of the robot's wrist as FLIP and NONFLIP (from the form of FLIP, the arm can be extended without changing the posture of the wrist). A flag such as 180° rotation around the axis is defined.

上述した特許文献1の制御装置は、ロボットに対して手首部分の動作を指令する際に、FLIPと、NONFLIPとの何れかを指定する。具体的には、当該制御装置は、常時、FLIPの姿勢とNONFLIPの姿勢とを計算し、参照位置との差が小さい方を採用する。参照位置は、始点から終点を関節補間したときの角度である。具体的には、参照位置は、特異点領域の進入側の関節データと、退出側の関節データと、補間周期とに基づき算出される。 The control device of Patent Document 1 mentioned above specifies either FLIP or NONFLIP when instructing the robot to operate the wrist portion. Specifically, the control device always calculates the FLIP attitude and the NONFLIP attitude, and adopts the one with the smaller difference from the reference position. The reference position is the angle obtained by joint interpolation from the starting point to the ending point. Specifically, the reference position is calculated based on the joint data on the entrance side of the singularity region, the joint data on the exit side, and the interpolation period.

また、近年、様々な分野で、ニューラルネットワークを有する学習済みモデルを用いた演算処理がなされている。たとえば、特開平6-339884号公報(特許文献3)には、ニューラルネットワークによるマニピュレータの逆運動学モデルの学習方法が開示されている。 Furthermore, in recent years, arithmetic processing using trained models having neural networks has been performed in various fields. For example, Japanese Patent Laid-Open No. 6-339884 (Patent Document 3) discloses a method for learning an inverse kinematics model of a manipulator using a neural network.

詳しくは、特許文献3では、マニピュレータの手先の位置と姿勢pとからマニピュレータの各関節角度θへの関数fと三角関数(正弦、余弦)との合成関数でありかつ不連続な領域のない関数としてg1=sin(f(p))=sinθおよびg2=cos(f(p))=cosθを考えて、マニピュレータの手先の位置と姿勢pを入力としてsinθとcosθとを出力とするようなニューラルネットワークによって、逆キネマティクスモデルの学習を行なう([要約])。このような構成により、学習しようとする逆キネマティクスモデルの入力pと出力θとの関数fに不連続な領域があっても、マニピュレータの作業領域を分割することなく、作業領域全体の関数fを一つのニューラルネットワークで学習可能としている([要約])。 Specifically, Patent Document 3 describes a function that is a composite function of a function f and trigonometric functions (sine, cosine) from the position and posture p of the hand of the manipulator to each joint angle θ of the manipulator, and that does not have a discontinuous region. Considering g1=sin(f(p))=sinθ and g2=cos(f(p))=cosθ, we create a neural system that inputs the position and posture p of the manipulator's hand and outputs sinθ and cosθ. The network trains an inverse kinematics model ([Summary]). With this configuration, even if there is a discontinuous region in the function f between the input p and the output θ of the inverse kinematics model to be learned, the function f of the entire work area can be calculated without dividing the work area of the manipulator. can be learned by a single neural network ([Summary]).

特開2006-227724号公報Japanese Patent Application Publication No. 2006-227724 日本工業規格(JIS)B8439-1992(産業用ロボット-プログラム言語SLIM)Japanese Industrial Standard (JIS) B8439-1992 (Industrial robots - Programming language SLIM) 特開平6-339884号公報Japanese Patent Application Publication No. 6-339884

特異姿勢を通過するためにはロボットの姿勢を一意に決定する必要がある。このため、特許文献1では、手首特異姿勢を通過する場合には、FLIPの姿勢(1つ目の解)とNONFLIPの姿勢(2つ目の解)との各々において参照位置(基準の関節角度)との差を算出し、かつ、算出結果に基づいてFLIPの姿勢とNONFLIPの姿勢とのうちの何れかを選択する必要がある。また、特許文献1では、手首特異姿勢以外の特異姿勢(肩特異姿勢、肘特異姿勢)には対応できない。 In order to pass through a singular posture, it is necessary to uniquely determine the robot's posture. Therefore, in Patent Document 1, when passing through the wrist singular posture, the reference position (standard joint angle ), and it is necessary to select either the FLIP attitude or the NONFLIP attitude based on the calculation result. Furthermore, Patent Document 1 cannot support singular postures other than wrist peculiar postures (shoulder peculiar posture, elbow peculiar posture).

特許文献3では、「(x,y)から各関節角度の正弦および余弦である(sinθ1,cosθ1,sinθ2,cosθ2)への関数には不連続な領域はない(特異点は除く)ので、ニューラルネットワークに学習させることが可能である。」との開示があるように、特異点およびその近傍を学習対象とはしていない。 Patent Document 3 states, ``Since there is no discontinuous area (excluding singular points) in the function from (x, y) to (sin θ1, cos θ1, sin θ2, cos θ2), which is the sine and cosine of each joint angle, the neural As the disclosure states, ``it is possible to train a network,'' singular points and their vicinity are not targeted for learning.

本開示は、特異点およびその近傍において、多関節ロボットの意図しない挙動(暴走、停止等)を効率よく抑制することが可能なオフラインティーチング方法、プログラム、多関節ロボット、および、情報処理装置を提供することにある。 The present disclosure provides an offline teaching method, a program, an articulated robot, and an information processing device that can efficiently suppress unintended behavior (runaway, stop, etc.) of an articulated robot at a singular point and its vicinity. It's about doing.

本開示のある局面に従うと、シミュレータを用いた多関節ロボットのオフラインティーチング方法は、多関節ロボットの仮想化モデルが取り得る姿勢のうち、仮想化モデルの特異点と特異点近傍とを含む範囲を、シミュレータが決定するステップと、シミュレータが、仮想化モデルにおける各関節の角度を制御することにより、仮想化モデルの姿勢を第1の姿勢から第2の姿勢へと遷移させるステップとを備える。仮想化モデルの姿勢を第1の姿勢から第2の姿勢に遷移させるステップでは、仮想化モデルの姿勢が範囲外のときには、シミュレータは、ヤコビ行列を用いて各関節の角度を算出し、仮想化モデルの姿勢が範囲内のときには、シミュレータは、予め生成された学習済みモデルを用いて各関節の角度を算出する。 According to an aspect of the present disclosure, an offline teaching method for an articulated robot using a simulator includes a range of postures that include a singular point of the virtualized model and a vicinity of the singularity among postures that a virtualized model of the articulated robot can take. , a step in which the simulator determines, and a step in which the simulator transitions the posture of the virtualized model from a first posture to a second posture by controlling the angle of each joint in the virtualized model. In the step of transitioning the posture of the virtualized model from the first posture to the second posture, if the posture of the virtualized model is outside the range, the simulator calculates the angle of each joint using the Jacobian matrix, and transitions the virtualized model from the first posture to the second posture. When the posture of the model is within the range, the simulator calculates the angle of each joint using a learned model generated in advance.

本開示の他の局面に従うと、プログラムは、コンピュータに、上記多関節ロボットのオフラインティーチング方法を実行させる。 According to another aspect of the present disclosure, a program causes a computer to execute the offline teaching method for an articulated robot.

本開示のさらに他の局面に従うと、多関節ロボットは、多関節ロボットのオフラインティーチング方法によって生成されたオフラインティーチングデータに基づいて動作する。 According to yet another aspect of the present disclosure, the articulated robot operates based on offline teaching data generated by the offline teaching method for an articulated robot.

本開示のさらに他の局面に従うと、情報処理装置は、プロセッサと、多関節ロボットのシミュレーションプログラムが格納されたメモリとを備える。プロセッサは、シミュレーションプログラムを実行することにより、多関節ロボットの仮想化モデルが取り得る姿勢のうち、仮想化モデルの特異点と特異点近傍とを含む範囲を決定し、仮想化モデルにおける各関節の角度を制御することにより、仮想化モデルの姿勢を第1の姿勢から第2の姿勢へと遷移させる。プロセッサは、仮想化モデルの姿勢を第1の姿勢から第2の姿勢に遷移させる際に、仮想化モデルの姿勢が範囲外のときには、ヤコビ行列を用いて各関節の角度を算出し、仮想化モデルの姿勢が範囲内のときには、予め生成された学習済みモデルを用いて各関節の角度を算出する。 According to yet another aspect of the present disclosure, an information processing device includes a processor and a memory in which a simulation program for an articulated robot is stored. By executing the simulation program, the processor determines the range including the singular point of the virtual model and the vicinity of the singular point among the postures that the virtual model of the articulated robot can take, and determines the range of postures that the virtual model of the articulated robot can take, and By controlling the angle, the posture of the virtualized model is transitioned from the first posture to the second posture. When transitioning the posture of the virtualized model from the first posture to the second posture, if the posture of the virtualized model is outside the range, the processor calculates the angle of each joint using the Jacobian matrix, and transitions the virtualized model from the first posture to the second posture. When the posture of the model is within the range, the angle of each joint is calculated using a learned model generated in advance.

本開示によれば、特異点およびその近傍において、多関節ロボットの意図しない挙動を効率よく抑制可能となる。 According to the present disclosure, it is possible to efficiently suppress unintended behavior of an articulated robot at a singular point and in the vicinity thereof.

オフラインティーチング用システムの概略構成を示した図である。FIG. 1 is a diagram showing a schematic configuration of an offline teaching system. ロボットを簡略化した構造を示した図である。FIG. 2 is a diagram showing a simplified structure of a robot. ロボットの各リンクの座標系を説明するための図である。FIG. 3 is a diagram for explaining the coordinate system of each link of the robot. 手首特異姿勢を示した図である。FIG. 3 is a diagram showing a wrist peculiar posture. 肩特異姿勢を示した図である。FIG. 3 is a diagram showing a shoulder-specific posture. 肘特異姿勢を示した図である。FIG. 2 is a diagram showing a unique elbow posture. 仮想化モデルの手先のY軸方向の速度を100m/sとし、X軸方向の速度とZ軸方向の速度とをゼロとしたときのシミュレーション結果と、実機におけるサーボモータの回転速度の測定値とを示した図である。Simulation results when the speed of the virtual model's hand in the Y-axis direction is 100 m/s and the speed in the X-axis direction and the speed in the Z-axis direction are zero, and the measured value of the rotational speed of the servo motor in the actual machine. FIG. 手先のY軸方向の速度を300mm/sとしたときのシミュレーション結果と、サーボモータの回転速度の測定値とを示した図である。It is a figure showing the simulation result when the speed of the hand in the Y-axis direction is 300 mm/s, and the measured value of the rotational speed of the servo motor. 手先のY軸方向の速度を500mm/sとしたときのシミュレーション結果と、サーボモータの回転速度の測定値とを示した図である。It is a figure showing the simulation result when the speed of the hand in the Y-axis direction is 500 mm/s, and the measured value of the rotational speed of the servo motor. 手先のY軸方向の速度を1200mm/sとしたときのシミュレーション結果と、サーボモータの回転速度の測定値とを示した図である。It is a figure showing the simulation result when the speed of the hand in the Y-axis direction is 1200 mm/s, and the measured value of the rotational speed of the servo motor. Y軸方向にのみ手先速度を持つ場合における特異点近傍の範囲を示した図である。FIG. 7 is a diagram showing a range near a singular point in a case where the hand speed is only in the Y-axis direction. 第4関節の角度の解を示した図である。It is a figure which showed the solution of the angle of the 4th joint. 特異点および特異点近傍と、それ以外の範囲(姿勢範囲)とにおける、関節の角度の計算方法を説明するための模式図である。FIG. 2 is a schematic diagram for explaining a method of calculating joint angles at a singular point, near the singular point, and in a range other than the singular point (posture range). 第4関節の角度変域を0°以上、かつ180°以下に制限した場合を示している。A case is shown in which the angular range of the fourth joint is limited to 0° or more and 180° or less. 中間層を1層のみとし、かつニューロン数を1から50まで変化させたときの検証データの二乗平均平方根誤差を示した図である。FIG. 7 is a diagram showing the root mean square error of verification data when there is only one intermediate layer and the number of neurons is varied from 1 to 50. ニューロン数が15である中間層の層数を1層から10層まで変化させたときの検証データの二乗平均平方根誤差を示した図である。FIG. 7 is a diagram showing the root mean square error of verification data when the number of intermediate layers having 15 neurons is changed from 1 layer to 10 layers. 学習済みモデルの性能分析として、テストデータに関する第4関節の回帰プロットを示した図である。FIG. 7 is a diagram showing a regression plot of the fourth joint regarding test data as a performance analysis of the trained model. テストデータに関する第5関節の回帰プロットを示した図である。It is a figure which showed the regression plot of the 5th joint regarding test data. テストデータに関する第6関節の回帰プロットを示した図である。It is a figure which showed the regression plot of the 6th joint regarding test data. 第4関節の角度のシミュレーション結果を示した図である。It is a figure which showed the simulation result of the angle of the 4th joint. 第6関節の角度のシミュレーション結果を示した図である。It is a figure showing the simulation result of the angle of the 6th joint. オフラインティーチングの際の情報処理装置で実行される処理の流れを示すフロー図である。FIG. 2 is a flow diagram showing the flow of processing executed by the information processing device during offline teaching.

以下、図面を参照しつつ、本発明の実施の形態に係るオフラインティーチング用システムについて説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。 DESCRIPTION OF THE PREFERRED EMBODIMENTS An offline teaching system according to an embodiment of the present invention will be described below with reference to the drawings. In the following description, the same parts are given the same reference numerals. Their names and functions are also the same. Therefore, detailed descriptions thereof will not be repeated.

<A.システム構成>
図1は、オフラインティーチング用システムの概略構成を示した図である。図1に示されるように、オフラインティーチング用システム1は、情報処理装置10と、ロボットシステム20とを備える。
<A. System configuration>
FIG. 1 is a diagram showing a schematic configuration of an offline teaching system. As shown in FIG. 1, the offline teaching system 1 includes an information processing device 10 and a robot system 20.

情報処理装置10は、シミュレータとして機能する。情報処理装置10は、典型的には、汎用のコンピュータである。情報処理装置10は、プロセッサ11と、メモリ12と、入力装置13と、表示装置14と、通信インターフェイス15と、バス16とを含む。メモリ12には、仮想化モデル200、シミュレーションプログラム300、オペレーティングシステム(図示せず)等の各種のプログラムおよび各種のデータが予め記憶されている。プロセッサ11と、メモリ12と、入力装置13と、表示装置14と、通信インターフェイス15とは、バス16によって通信可能に接続されている。 The information processing device 10 functions as a simulator. Information processing device 10 is typically a general-purpose computer. Information processing device 10 includes a processor 11 , a memory 12 , an input device 13 , a display device 14 , a communication interface 15 , and a bus 16 . The memory 12 stores in advance various programs such as a virtualization model 200, a simulation program 300, an operating system (not shown), and various data. The processor 11, the memory 12, the input device 13, the display device 14, and the communication interface 15 are communicably connected by a bus 16.

ロボットシステム20は、ロボットコントローラ21と、ロボット22とを含む。ロボットコントローラ21は、ロボット22と通信可能に接続されている。ロボットコントローラ21は、ロボット22の動作(姿勢)を制御する。 Robot system 20 includes a robot controller 21 and a robot 22. The robot controller 21 is communicably connected to the robot 22. The robot controller 21 controls the operation (posture) of the robot 22.

仮想化モデル200は、シミュレーションのために、ロボット22を仮想化したモデルである。シミュレーションプログラム300は、オフラインティーチング用のプログラムである。シミュレーションプログラム300は、プロセッサ11によって実行される。詳細については後述するが、シミュレーションプログラム300は、ヤコビ行列を用いた数値解法を実行する数値解法プログラム310と、学習済みモデル320とを含む。 The virtual model 200 is a model in which the robot 22 is virtualized for simulation. The simulation program 300 is a program for offline teaching. The simulation program 300 is executed by the processor 11. Although details will be described later, the simulation program 300 includes a numerical solution program 310 that executes a numerical solution using a Jacobian matrix, and a trained model 320.

詳しくは、仮想化モデル200の開始姿勢から終了姿勢までの軌道(動作速度を含む経路情報)が入力装置13を介して情報処理装置10に入力されると、プロセッサ11は、当該経路情報と仮想化モデル200とをシミュレーションプログラム300に入力して、シミュレーションプログラム300を実行する。これにより、ティーチングデータが生成される。生成されたティーチングデータは、通信インターフェイス15を介して、ロボットコントローラ21に送られる。これにより、ロボット22のオフラインティーチングは、終了する。 Specifically, when the trajectory (route information including motion speed) of the virtualized model 200 from the starting attitude to the ending attitude is input to the information processing device 10 via the input device 13, the processor 11 combines the trajectory information and the virtual The simulation model 200 is input into the simulation program 300, and the simulation program 300 is executed. This generates teaching data. The generated teaching data is sent to the robot controller 21 via the communication interface 15. As a result, the offline teaching of the robot 22 ends.

<B.ロボットの概要>
図2は、ロボット22を簡略化した構造を示した図である。図2に示されるように、ロボット22は、本例では、6軸の多関節ロボットである。詳しくは、ロボット22は、6自由度の垂直多関節ロボット(マニピュレータ)である。以下では、このような構成の多関節ロボットを例に挙げて説明する。
<B. Robot overview>
FIG. 2 is a diagram showing a simplified structure of the robot 22. As shown in FIG. As shown in FIG. 2, the robot 22 is a six-axis articulated robot in this example. Specifically, the robot 22 is a vertically articulated robot (manipulator) with six degrees of freedom. In the following, an articulated robot having such a configuration will be described as an example.

ロボット22は、第1関節(第1軸)201と、第2関節(第2軸)202と、第3関節(第3軸)203と、第4関節(第4軸)204と、第5関節(第5軸)205と、第6関節(第6軸)206と、7つのリンク250~256とを備える。各リンクは、それぞれ、腕の一部である。 The robot 22 has a first joint (first axis) 201, a second joint (second axis) 202, a third joint (third axis) 203, a fourth joint (fourth axis) 204, and a fifth joint (fourth axis) 204. It includes a joint (fifth axis) 205, a sixth joint (sixth axis) 206, and seven links 250 to 256. Each link is a part of an arm.

第1関節201から第6関節206を人の動きに対応付けると、以下のとおりである。第1関節201は、腰を回転させる軸である。第2関節202は、肩の関節を動かす軸である。第3関節203は、肘の関節を動かす軸である。第4関節204は、手首を回転させる軸である。第5関節205は、手首を曲げる軸である。第6関節206は、指先を回転させる軸である。 The correspondence between the first joint 201 and the sixth joint 206 with human movements is as follows. The first joint 201 is an axis around which the waist is rotated. The second joint 202 is an axis that moves the shoulder joint. The third joint 203 is an axis that moves the elbow joint. The fourth joint 204 is an axis around which the wrist is rotated. The fifth joint 205 is an axis for bending the wrist. The sixth joint 206 is an axis around which the fingertip is rotated.

リンク250は、土台と第1関節201とを連結する。リンク251は、第1関節201と第2関節202とを連結する。リンク252は、第2関節202と第3関節203とを連結する。リンク253は、第3関節203と第4関節204とを連結する。リンク254は、第4関節204と第5関節205とを連結する。リンク255は、第5関節205と第6関節206とを連結する。リンク256の先端には、エンドエフェクタ290が取り付けられる。 Link 250 connects the base and first joint 201. Link 251 connects first joint 201 and second joint 202. Link 252 connects second joint 202 and third joint 203. Link 253 connects third joint 203 and fourth joint 204. Link 254 connects fourth joint 204 and fifth joint 205. Link 255 connects fifth joint 205 and sixth joint 206. An end effector 290 is attached to the tip of the link 256.

ロボット22は、関節毎に、当該関節を駆動するサーボモータを備えている。ロボットコントローラ21からサーボモータに指令が送られることにより、当該サーボモータが指令に応じて回転する。これにより、指令を受けたサーボモータに対応する関節が駆動する。 The robot 22 includes a servo motor for driving each joint. When a command is sent from the robot controller 21 to the servo motor, the servo motor rotates in accordance with the command. As a result, the joint corresponding to the servo motor that received the command is driven.

図3は、ロボット22の各リンクの座標系を説明するための図である。図3に示されるように、ロボット22は、7つのリンク座標系Σ(0≦i≦6)が存在する。各リンク座標系Σは、X軸とY軸とZ軸とからなる3次元直交座標系である。また、以下では、各関節の角度を、θiとする。なお、本例では、各座標系間の距離d1,d2,d3,d4,d5,d6を、それぞれ、640mm、1190mm、200mm、305mm、1160mm、225mmとした。 FIG. 3 is a diagram for explaining the coordinate system of each link of the robot 22. As shown in FIG. 3, the robot 22 has seven link coordinate systems Σ i (0≦i≦6). Each link coordinate system Σ i is a three-dimensional orthogonal coordinate system consisting of an X i axis, a Y i axis, and a Z i axis. Further, in the following, the angle of each joint is assumed to be θ i . In this example, the distances d1, d2, d3, d4, d5, and d6 between the coordinate systems are 640 mm, 1190 mm, 200 mm, 305 mm, 1160 mm, and 225 mm, respectively.

<C.特異点と特異点近傍>
以下では、特異点と特異点近傍とについて説明する。具体的には、先ず、特異点について簡単に説明する。次いで、特異点近傍について説明する。その後、本シミュレーションを行う際の特異点と特異点近傍との設定方法について説明する。
<C. Singularity and vicinity of singularity>
The singular point and the vicinity of the singular point will be explained below. Specifically, first, singularity will be briefly explained. Next, the vicinity of the singular point will be explained. After that, a method for setting the singular point and the vicinity of the singular point when performing this simulation will be explained.

(c1.特異点)
以下では、xは、直交座標系におけるベクトルを表し、かつ、ロボット22の先端部の位置と姿勢とを示す。3次元直交座標系において、xは、位置と回転角とを表す。qは、関節座標系における姿勢を示す変数(ベクトル)である。この場合、ロボット22の仮想化モデル200は、以下の式(1)のように記述される。
(c1. Singularity)
In the following, x represents a vector in the orthogonal coordinate system and indicates the position and orientation of the tip of the robot 22. In the three-dimensional orthogonal coordinate system, x represents the position and rotation angle. q is a variable (vector) indicating the posture in the joint coordinate system. In this case, the virtual model 200 of the robot 22 is described as shown in equation (1) below.

Figure 2024035977000002
Figure 2024035977000002

式(1)において、f(q)は変数qの非線形な関数である。一連の所定の先端部の位置xに対する変数qを計算する必要がある。そこで、以下の式(2)のように、式(1)の逆関数を求めることが必要となる。 In equation (1), f(q) is a nonlinear function of variable q. It is necessary to calculate a variable q for a series of predetermined tip positions x. Therefore, it is necessary to find the inverse function of equation (1) as shown in equation (2) below.

Figure 2024035977000003
Figure 2024035977000003

なお、式(2)において、右辺はqからxへの逆写像を表している。式(2)を解析的に求めることは負荷が大きい。このため、式(2)を解く数値的な方法では、式(1)の両辺を時間微分する。これにより、運動学的な以下の式(3)の関係が得られる。 Note that in equation (2), the right side represents the inverse mapping from q to x. Analytically determining equation (2) requires a large burden. Therefore, in the numerical method of solving equation (2), both sides of equation (1) are differentiated with respect to time. As a result, the kinematic relationship expressed by the following equation (3) is obtained.

Figure 2024035977000004
Figure 2024035977000004

式(3)を変形すると、式(4)が得られる。 By transforming equation (3), equation (4) is obtained.

Figure 2024035977000005
Figure 2024035977000005

ただし、J(q)は、変数に依存したヤコビ行列(ヤコビアン)である。J(q)は、式(5)に示すように、f(q)をqで微分して得られる。 However, J(q) is a Jacobian matrix (Jacobian) that depends on variables. J(q) is obtained by differentiating f(q) with respect to q, as shown in equation (5).

Figure 2024035977000006
Figure 2024035977000006

ヤコビ行列は、変数qに依存するため、時間的に変化する関数である。このため、特異状態と呼ばれる特定の状態において、J(q)のランク(行列のランク)が下がる。このため、与えられた軌道dxに対して、式(2)の逆変換は任意の大きい値dqを導くことになる。任意の大きい値dqを導くと、軸が高速に回転することになり、ロボット22が暴走してしまう。 The Jacobian matrix is a function that changes over time because it depends on the variable q. Therefore, in a specific state called a singular state, the rank of J(q) (the rank of the matrix) decreases. Therefore, for a given trajectory dx, the inverse transformation of equation (2) will lead to an arbitrarily large value dq. If an arbitrarily large value dq is derived, the axis will rotate at high speed and the robot 22 will run out of control.

このように、制御したい変数の微分(xの時間微分)をどれだけ小さくしたとしても、制御する変数(qの時間微分)が発散してしまうことが起こる。このようなロボット22の姿勢が「特異点」である。6軸の多関節ロボットであるロボット22には、以下のような3つの特異点(「特異姿勢」とも称される)がある。 In this way, no matter how small the differential of the variable to be controlled (the time differential of x) is made, the variable to be controlled (the time differential of q) may diverge. Such a posture of the robot 22 is a "singularity". The robot 22, which is a six-axis articulated robot, has the following three singular points (also referred to as "singular postures").

図4は、手首特異姿勢を示した図である。図4に示すとおり、第4関節204と第6関節206とが一直線上で、この姿勢から手先(すなわち、エンドエフェクタ290)をY方向に移動させるか、手先をY方向に移動させながら当該姿勢を通過しようとすると、第4関節204および第6関節206に逆方向で非常に大きい軸角速度が指令され、その結果、ロボット22が暴走する。このとき、手先をZ方向に移動させたとしても暴走は起こらない。 FIG. 4 is a diagram showing a unique posture of the wrist. As shown in FIG. 4, the fourth joint 204 and the sixth joint 206 are in a straight line, and the hand (that is, the end effector 290) is moved in the Y direction from this posture, or the hand is moved in the Y direction and the posture is When the robot 22 attempts to pass through, extremely large shaft angular velocities are commanded in the opposite direction to the fourth joint 204 and the sixth joint 206, and as a result, the robot 22 runs out of control. At this time, even if the hand is moved in the Z direction, runaway will not occur.

図5は、肩特異姿勢を示した図である。図5に示されるように、破線で示すように、第1関節201の回転軸上に第5関節205がある場合、特定の方向に手先を移動させたときにロボット22が暴走する。 FIG. 5 is a diagram showing a shoulder-specific posture. As shown in FIG. 5, if the fifth joint 205 is located on the rotation axis of the first joint 201, as indicated by the broken line, the robot 22 will run out of control when the hand is moved in a specific direction.

図6は、肘特異姿勢を示した図である。図6に示されるように、第2関節202と、第3関節203と、第5関節205とが一直線上にある場合、特定の方向に手先を移動させたときにロボット22が暴走する。 FIG. 6 is a diagram showing a unique elbow posture. As shown in FIG. 6, when the second joint 202, the third joint 203, and the fifth joint 205 are in a straight line, the robot 22 runs out of control when the hand is moved in a specific direction.

以下では、説明の便宜上、図4に示した手首特異姿勢に着目して説明する。 For convenience of explanation, the following description will focus on the unique wrist posture shown in FIG. 4.

(c2.特異点近傍)
可操作度wを以下の式(6)で定義した場合、可操作度wは、特異点からは離れるにつれて大きくなる。なお、「可操作度」とは、ロボットアーム先端に取付けられたエンドエフェクタ290の位置および姿勢をどの程度自由に操作できるかを定量的に評価するための運動学的指標の一つである。
(c2. Near singularity)
When the degree of operability w is defined by the following equation (6), the degree of operability w increases as the distance from the singular point increases. Note that "manipulability" is one of the kinematic indicators for quantitatively evaluating how freely the position and posture of the end effector 290 attached to the tip of the robot arm can be manipulated.

Figure 2024035977000007
Figure 2024035977000007

以下の式(7)は、上述した式(4)を変形したものである。 The following equation (7) is a modification of the above-mentioned equation (4).

Figure 2024035977000008
Figure 2024035977000008

式(6)では、可操作度は、ヤコビ行列の行列式しか考慮していない。式(6)では、ロボット22の手先速度ベクトルは考慮されていない。しかしながら、式(7)に示されるように、関節の角速度(qの時間微分)は、ヤコビ行列の行列式の逆数と、ヤコビ行列の余因子行列(adj(J))と、手先速度のベクトル(xの時間微分)とから決定される。特異点近傍での関節の暴走は、関節の角速度から決定されるため、特異点近傍は、関節の角速度で定義されるべきである。なお、本例では、角速度の単位を、「rpm」とする。 In Equation (6), only the determinant of the Jacobian matrix is considered for the degree of manipulability. In equation (6), the hand speed vector of the robot 22 is not considered. However, as shown in equation (7), the angular velocity of the joint (time differential of q) is determined by the inverse of the determinant of the Jacobian matrix, the cofactor matrix (adj(J)) of the Jacobian matrix, and the vector of hand velocity. (time differential of x). Since the runaway of a joint near a singular point is determined from the angular velocity of the joint, the vicinity of the singular point should be defined by the angular velocity of the joint. In this example, the unit of angular velocity is "rpm".

そこで、本実施の形態では、以下の式(8)に示すように、シミュレーションにて指令される関節の角速度が、ロボット22の図示しないサーボモータ(詳しくは、当該関節を駆動するサーボモータ)の最高回転速度を上回る範囲を、「特異点近傍」と定義する。なお、式(8)の右辺は、サーボモータの最高回転速度である。 Therefore, in this embodiment, as shown in the following equation (8), the angular velocity of the joint commanded in the simulation is determined by the servo motor (not shown) of the robot 22 (specifically, the servo motor that drives the joint). The range exceeding the maximum rotational speed is defined as "near the singularity". Note that the right side of equation (8) is the maximum rotational speed of the servo motor.

Figure 2024035977000009
Figure 2024035977000009

具体的には、仮想化モデル200における複数の関節のうちの所定の関節の角速度(rpm)が、当該所定の関節を動かすモータ(仮想モータ)の最高回転速度(rpm)を超えた範囲を、「特異点近傍」と定義する。モータの最高回転速度としては、たとえば、当該モータ(実機)のカタログ値を用いることができる。 Specifically, the range in which the angular velocity (rpm) of a predetermined joint among the plurality of joints in the virtual model 200 exceeds the maximum rotational speed (rpm) of a motor (virtual motor) that moves the predetermined joint is defined as Defined as "near the singularity". As the maximum rotational speed of the motor, for example, a catalog value of the motor (actual machine) can be used.

より詳しくは、特異点においても、ミュレーションにて指令される関節の角速度がサーボモータの最高回転速度を上回る。それゆえ、関節の角速度がサーボモータの最高回転速度を上回る範囲には、特異点と特異点近傍とが含まれることになる。 More specifically, even at the singular point, the angular velocity of the joint commanded through simulation exceeds the maximum rotational speed of the servo motor. Therefore, the range in which the angular velocity of the joint exceeds the maximum rotational speed of the servo motor includes the singular point and the vicinity of the singular point.

図7から図10は、第4関節204についての特異点近傍を説明する図である。図7は、仮想化モデル200の手先のY軸方向の速度を100m/sとし、X軸方向の速度とZ軸方向の速度とをゼロとしたときのシミュレーション結果(仮想化モデル200の第4関節の最大回転速度)と、実機(ロボット22)におけるサーボモータの最大回転速度の測定値とを示した図である。なお、「手先」とは、仮想化モデル200のうち、エンドエフェクタ290のモデル部分の箇所である。 7 to 10 are diagrams illustrating the vicinity of the singular point of the fourth joint 204. FIG. 7 shows the simulation results when the hand speed of the virtual model 200 in the Y-axis direction is 100 m/s, and the speed in the X-axis direction and the speed in the Z-axis direction are zero (the fourth FIG. 3 is a diagram showing a measured value of the maximum rotational speed of a servo motor in an actual machine (robot 22); Note that the “hand” refers to the model portion of the end effector 290 in the virtualized model 200.

シミュレーションでは、先ず、仮想化モデル200の手先をY軸方向に一定の範囲動かした。その後、仮想化モデル200の手先のZ軸方向の高さを所定の高さだけ変更し、仮想化モデル200をY軸方向に再度一定の範囲動かす。このような処理を繰り返した。 In the simulation, first, the hand of the virtual model 200 was moved within a certain range in the Y-axis direction. Thereafter, the height of the hand of the virtualized model 200 in the Z-axis direction is changed by a predetermined height, and the virtualized model 200 is again moved within a certain range in the Y-axis direction. This process was repeated.

この場合、仮想化モデル200の手先の高さがZ11(<2030mm)を超えると、仮想化モデル200の第4関節が暴走し始めた。仮想化モデル200の手先の高さがZ12(>2030mm)を超えると、仮想化モデル200の第4関節の暴走が収まった。このため、仮想化モデル200の手先のY軸方向の速度が100m/sのときの、第4軸のZ軸方向の特異点近傍の範囲は、Z11からZ12となった。なお、本例では、Z=2030mmが特異点となっている。 In this case, when the height of the hand of the virtualized model 200 exceeded Z11 (<2030 mm), the fourth joint of the virtualized model 200 began to move out of control. When the height of the hand of the virtualized model 200 exceeded Z12 (>2030 mm), the runaway of the fourth joint of the virtualized model 200 stopped. Therefore, when the speed of the hand of the virtual model 200 in the Y-axis direction is 100 m/s, the range near the singularity in the Z-axis direction of the fourth axis is from Z11 to Z12. Note that in this example, Z=2030 mm is the singular point.

特異点(Z=2300mm)で指令回転速度が発散することがわかる。ZがZ11以上、かつZ12以下では、実機のサーボモータは指令回転速度を達成できていない。このようなシミュレーションにより、特異点近傍において関節が急回転することがわかる。 It can be seen that the command rotation speed diverges at the singular point (Z=2300 mm). When Z is greater than or equal to Z11 and less than or equal to Z12 , the actual servo motor cannot achieve the commanded rotational speed. Such simulations show that the joints rotate rapidly near the singularity.

さらに、仮想化モデル200の手先のY軸方向の速度を、300mm/sと、500mm/sと、1200mm/sとに変更して、上記と同様のシミュレーションと、実機(ロボット22)におけるサーボモータの回転速度の測定を行った。 Furthermore, the speed in the Y-axis direction of the hand of the virtual model 200 was changed to 300 mm/s, 500 mm/s, and 1200 mm/s, and the same simulation as above and the servo motor in the actual machine (robot 22) were performed. The rotation speed was measured.

図8は、手先のY軸方向の速度を300mm/sとしたときのシミュレーション結果と、サーボモータの回転速度の測定値とを示した図である。図8に示すように、ZがZ13(<Z11)以上、かつZ14(>Z12)以下では、実機のサーボモータは指令回転速度を達成できていない。なお、本例では、Z13は、1950mmであり、Z14は、2100mmである。 FIG. 8 is a diagram showing the simulation results when the speed of the hand in the Y-axis direction is 300 mm/s and the measured value of the rotational speed of the servo motor. As shown in FIG. 8, when Z is greater than or equal to Z 13 (<Z 11 ) and less than Z 14 (>Z 12 ), the actual servo motor cannot achieve the commanded rotational speed. Note that in this example, Z 13 is 1950 mm, and Z 14 is 2100 mm.

図9は、手先のY軸方向の速度を500mm/sとしたときのシミュレーション結果と、サーボモータの回転速度の測定値とを示した図である。図9に示すように、ZがZ15(<Z13)以上、かつZ16(>Z14)以下では、実機のサーボモータは指令回転速度を達成できていない。 FIG. 9 is a diagram showing the simulation results when the speed of the hand in the Y-axis direction is 500 mm/s and the measured value of the rotational speed of the servo motor. As shown in FIG. 9, when Z is greater than or equal to Z 15 (<Z 13 ) and less than Z 16 (>Z 14 ), the actual servo motor cannot achieve the command rotation speed.

図10は、手先のY軸方向の速度を1200mm/sとしたときのシミュレーション結果と、サーボモータの回転速度の測定値とを示した図である。図10に示すように、ZがZ17(<Z15)以上、かつZ18(>Z16)以下では、実機のサーボモータは指令回転速度を達成できていない。 FIG. 10 is a diagram showing simulation results when the speed of the hand in the Y-axis direction is 1200 mm/s and the measured value of the rotational speed of the servo motor. As shown in FIG. 10, when Z is greater than or equal to Z 17 (<Z 15 ) and less than Z 18 (>Z 16 ), the actual servo motor cannot achieve the commanded rotational speed.

図7から図10に基づくと、手先速度が速くなるにつれて特異点近傍の範囲が広がることがわかる。これは、式(7)に基づき説明したように、関節の角速度は、ヤコビ行列の逆行列と手先速度とを掛け合わせたものであるため、同じ位置かつ同じ姿勢であっても、手先速度および方向によって関節の角速度が変化するためである。 Based on FIGS. 7 to 10, it can be seen that as the hand speed increases, the range near the singularity increases. This is because, as explained based on equation (7), the angular velocity of a joint is the product of the inverse matrix of the Jacobian matrix and the hand speed, so even if the position and posture are the same, the hand speed and This is because the angular velocity of the joint changes depending on the direction.

図11は、Y軸方向にのみ手先速度を持つ場合における特異点近傍の範囲を示した図である。詳しくは、図11は、xの微分の値が以下の式(9)となる場合における特異点近傍の範囲を示した図である。 FIG. 11 is a diagram showing the range near the singularity when the hand speed is only in the Y-axis direction. Specifically, FIG. 11 is a diagram showing the range near the singular point when the differential value of x is expressed by the following equation (9).

Figure 2024035977000010
Figure 2024035977000010

より詳しくは、図11は、X座標をある値で固定したときのYZ平面における特異点近傍の範囲を手先速度別に示した図である。図11では、式(9)におけるYの微分(Y軸方向の手先速度の大きさ)を以下の式(10)として、以下の式(11)で示される境界線を図示している。各境界線の内側が、特異点近傍となる。また、手先速度の大きさが100mm/sの境界線の内側に、特異点が存在している。 More specifically, FIG. 11 is a diagram showing the range near the singular point on the YZ plane by hand speed when the X coordinate is fixed at a certain value. In FIG. 11, the differentiation of Y (magnitude of hand speed in the Y-axis direction) in Equation (9) is expressed as Equation (10) below, and a boundary line expressed by Equation (11) below is illustrated. The inside of each boundary line is near the singularity. Further, a singular point exists inside the boundary line where the hand speed is 100 mm/s.

Figure 2024035977000011
Figure 2024035977000011

Figure 2024035977000012
Figure 2024035977000012

図11に示されるように、Y軸方向の手先速度の大きさが大きくなるほど、特異点近傍の範囲は広くなる。また、Z軸方向にのみ手先速度を持つ場合を考え、かつ上記と同様に手先速度別の特異点近傍の範囲を調べると、手先速度の方向によって特異点近傍の形が変化することが分かった。 As shown in FIG. 11, as the hand speed in the Y-axis direction increases, the range near the singularity becomes wider. In addition, when considering the case where the hand speed is only in the Z-axis direction and examining the range near the singularity by hand speed in the same way as above, it was found that the shape near the singularity changes depending on the direction of the hand speed. .

以上のように、手先速度ベクトルの大きさと方向とによって特異点近傍範囲が変化することが分かった。そこで、本実施の形態では、手先速度ベクトルに応じて定義された特異点近傍を考慮して、オフラインティーチングデータを生成する。 As described above, it was found that the range near the singularity changes depending on the magnitude and direction of the hand velocity vector. Therefore, in the present embodiment, offline teaching data is generated in consideration of the vicinity of a singular point defined according to the hand speed vector.

<D.ヤコビ行列を用いたときの特異点および特異点近傍での挙動>
上述したように、特異点および特異点近傍では、ヤコビ行列の行列式の値が小さくなり、当該行列式の逆数が発散する。それゆえ、式(7)より、制御する変数(qの時間微分)が発散する。以下、発散態様について具体的に説明する。詳しくは、逆運動学の一般解を説明する。
<D. Behavior at singular points and near singular points when using Jacobian matrix>
As described above, at a singular point and in the vicinity of the singular point, the value of the determinant of the Jacobian matrix becomes small, and the inverse of the determinant diverges. Therefore, according to equation (7), the variable to be controlled (time differential of q) diverges. The divergence mode will be specifically explained below. In detail, we will explain the general solution of inverse kinematics.

再び、図3を参照して、第1関節201の角度θと、第2関節202の角度θと、第3関節203の角度θとが求められると、ベースの座標系Σから座標系Σへの同次変換行列を計算することができる。座標系Σから手先の座標系Σへの同次変換行列は、以下の式(12)で表すことができる。 Referring again to FIG. 3, once the angle θ 1 of the first joint 201, the angle θ 2 of the second joint 202, and the angle θ 3 of the third joint 203 are found, from the base coordinate system Σ 0 A homogeneous transformation matrix 0 T 3 to the coordinate system Σ 3 can be calculated. A homogeneous transformation matrix 3 T 6 from the coordinate system Σ 3 to the hand coordinate system Σ 6 can be expressed by the following equation (12).

Figure 2024035977000013
Figure 2024035977000013

は、座標系Σから座標系Σへの同次変換行列であり、指令値から計算可能である。よって、式(12)の右辺が計算できる。 0 T 6 is a homogeneous transformation matrix from the coordinate system Σ 0 to the coordinate system Σ 6 , and can be calculated from the command value. Therefore, the right side of equation (12) can be calculated.

式(12)の左辺のの回転行列成分(すなわち、に含まれる左上の3行3列の小行列(9個の成分))は、以下の式(13)から式(15)に示す、同次変換行列の回転行列成分と、同次変換行列の回転行列成分と、同次変換行列の回転行列成分とを用いて、以下の式(16)となる。なお、Cは、cosθを、Sは、sinθを表す。R11,R21,R31,R12,R22,R32,R13,R23,R33は、それぞれ、回転行列成分の成分(要素)である。また、以下では、回転行列成分を、単に、「回転行列」とも称する。 The rotation matrix component 3 R 6 of 3 T 6 on the left side of equation (12) (that is, the upper left 3 rows and 3 columns small matrix (9 components) included in 3 T 6 ) is expressed by the following equation (13). The rotation matrix component 3 R 4 of the homogeneous transformation matrix 3 T 4 , the rotation matrix component 4 R 5 of the homogeneous transformation matrix 4 T 5 , and the rotation matrix of the homogeneous transformation matrix 5 T 6 as shown in equation (15) from Using the components 5 and R6 , the following formula (16) is obtained. Note that C i represents cos θ i and S i represents sin θ i . R 11 , R 21 , R 31 , R 12 , R 22 , R 32 , R 13 , R 23 , and R 33 are components (elements) of the rotation matrix component 3 R 6 , respectively. Furthermore, hereinafter, the rotation matrix component is also simply referred to as a "rotation matrix."

Figure 2024035977000014
Figure 2024035977000014

Figure 2024035977000015
Figure 2024035977000015

Figure 2024035977000016
Figure 2024035977000016

Figure 2024035977000017
Figure 2024035977000017

式(16)より、第4関節204の角度θは、以下の式(17)のとおりとなる。第5関節205の角度θは、以下の式(18)のとおりとなる。第6関節206の角度θは、以下の式(19)のとおりとなる。ただし、式(17)および式(19)において、kは、任意の整数である。 From equation (16), the angle θ 4 of the fourth joint 204 is as shown in equation (17) below. The angle θ 5 of the fifth joint 205 is expressed by the following equation (18). The angle θ 6 of the sixth joint 206 is expressed by the following equation (19). However, in equations (17) and (19), k is an arbitrary integer.

Figure 2024035977000018
Figure 2024035977000018

Figure 2024035977000019
Figure 2024035977000019

Figure 2024035977000020
Figure 2024035977000020

式(17)および式(19)に任意の整数kが含まれているため、角度θの解と、角度θの解とは、それぞれ、複数個存在することになる。 Since equation (17) and equation (19) include an arbitrary integer k, there are a plurality of solutions for angle θ 4 and a plurality of solutions for angle θ 6 , respectively.

図12は、角度θの解を示した図である。図12に示されるように、変域を0°≦θ≦360°に制限しても解は二つ存在する。 FIG. 12 is a diagram showing the solution for the angle θ 4 . As shown in FIG. 12, even if the domain is limited to 0°≦θ 4 ≦360°, two solutions exist.

第4関節204の角度θは、横軸の値(R13/R33)が0となる付近で180°程度変位している。具体的には、ヤコビ行列を用いた数値解法で第4関節204の角度θを解いた場合、R13/R33の値が0となる付近(すなわち、特異点)においてヤコビ行列の行列式の逆行列が大きくなるため、R13/R33が負から正へ(あるいは正から負へ)と変化する際に、角度θは、90°から270°に急激に変化する。 The angle θ 4 of the fourth joint 204 is displaced by about 180° in the vicinity where the value (R 13 /R 33 ) of the horizontal axis becomes 0. Specifically, when the angle θ 4 of the fourth joint 204 is solved by a numerical solution using a Jacobian matrix, the determinant of the Jacobian matrix is Since the inverse matrix of becomes large, the angle θ 4 suddenly changes from 90° to 270° when R 13 /R 33 changes from negative to positive (or from positive to negative).

このように、特異点および特異点近傍においてヤコビ行列を用いた数値解法を用いると、ロボット22が暴走することになる。そこで、特異点および特異点近傍においてはヤコビ行列を用いた数値解法(詳しくは、数値解法プログラム310)を用いずに、以下に述べる手法を用いる。 In this way, if a numerical solution method using a Jacobian matrix is used at a singular point and in the vicinity of the singular point, the robot 22 will run out of control. Therefore, at the singular point and in the vicinity of the singular point, the method described below is used instead of using the numerical solution method using the Jacobian matrix (more specifically, the numerical solution program 310).

<E.学習済みモデルの適用>
(e1.学習済みモデルを適用する範囲)
図13は、特異点および特異点近傍と、それ以外の範囲(姿勢範囲)とにおける、関節の角度の計算方法を説明するための模式図である。すなわち、シミュレーション方法を説明するための図である。
<E. Applying the trained model>
(e1. Range to which trained model is applied)
FIG. 13 is a schematic diagram for explaining a method of calculating joint angles at a singular point, the vicinity of the singular point, and other ranges (posture ranges). That is, it is a diagram for explaining a simulation method.

図13に示されるように、矢印31に示すように仮想化モデル200の姿勢が、仮想化モデル200の特異点と特異点近傍とを含む範囲30の外にある場合、プロセッサ11はヤコビ行列を用いて、各関節の角度を算出する。詳しくは、プロセッサ11は、数値解法プログラム310を用いて、各関節の角度を算出する。 As shown in FIG. 13, when the posture of the virtual model 200 is outside the range 30 including the singular point and the vicinity of the singular point of the virtual model 200, as indicated by an arrow 31, the processor 11 calculates the Jacobian matrix. to calculate the angle of each joint. Specifically, the processor 11 uses the numerical solution program 310 to calculate the angle of each joint.

その後、仮想化モデル200の姿勢が、矢印32に示すように、点P1において範囲30内となり、その後、点P2から範囲30外となるまで、プロセッサ11は、予め生成された学習済みモデル320を用いて各関節の角度を各関節の角度を算出する。すなわち、プロセッサ11は、仮想化モデル200の姿勢が範囲30内のときには、学習済みモデル320を用いて各関節の角度を算出する。なお、範囲30の外側面が、特異点近傍を規定する境界面である。 Thereafter, as shown by an arrow 32, the processor 11 uses the trained model 320 generated in advance until the posture of the virtualized model 200 is within the range 30 at point P1 and then outside the range 30 from point P2. Use the angle of each joint to calculate the angle of each joint. That is, when the posture of the virtual model 200 is within the range 30, the processor 11 uses the learned model 320 to calculate the angle of each joint. Note that the outer surface of the range 30 is a boundary surface that defines the vicinity of the singular point.

矢印33に示すように仮想化モデル200の姿勢が、仮想化モデルの特異点と特異点近傍とを含む範囲30の外になると、プロセッサ11は、再び、ヤコビ行列を用いて各関節の角度を算出する。 When the posture of the virtual model 200 goes outside the range 30 that includes the singular point of the virtual model and the vicinity of the singular point, as shown by an arrow 33, the processor 11 again calculates the angle of each joint using the Jacobian matrix. calculate.

たとえば、図13における矢印31の起点の仮想化モデル200の姿勢を第1の姿勢とし、矢印33の終点での仮想化モデルの姿勢を第2の姿勢とすると、プロセッサ11は、以下の処理を行うと言える。 For example, if the attitude of the virtualized model 200 at the starting point of the arrow 31 in FIG. I can say that I will do it.

プロセッサ11は、仮想化モデル200における各関節の角度を制御することにより、仮想化モデル200の姿勢を第1の姿勢から第2の姿勢へと遷移させる。この際、プロセッサ11は、仮想化モデル200の姿勢が範囲30外のときには、ヤコビ行列を用いて各関節の角度を算出し、仮想化モデル200の姿勢が範囲30内のときには、学習済みモデル320を用いて各関節の角度を算出する。 The processor 11 controls the angle of each joint in the virtualized model 200 to transition the posture of the virtualized model 200 from the first posture to the second posture. At this time, when the posture of the virtualized model 200 is outside the range 30, the processor 11 calculates the angle of each joint using the Jacobian matrix, and when the posture of the virtualized model 200 is within the range 30, the processor 11 calculates the angle of each joint using the learned model 320. Calculate the angle of each joint using

また、範囲30(すなわち、特異点と特異点近傍)について小括すると、以下のとおりである。 Further, the range 30 (that is, the singular point and the vicinity of the singular point) can be summarized as follows.

仮想化モデル200が取り得る姿勢のうち、仮想化モデル200の特異点と特異点近傍とを含む範囲30は、図11に基づいて説明したように、仮想化モデル200の姿勢を変化させる速度に応じて個別に決定される。 Among the postures that the virtualized model 200 can take, the range 30 including the singular point and the vicinity of the singularity of the virtualized model 200 is determined by the speed at which the posture of the virtualized model 200 is changed, as explained based on FIG. 11. This will be determined individually.

仮想化モデル200の姿勢を変化させる速度が第1の速度(図11の例では、たとえば300mm/s)の場合の範囲30は、当該速度が第1の速度よりも遅い第2の速度(図11の例では、たとえば100mm/s)の場合の範囲30よりも広い。 The range 30 when the speed at which the posture of the virtualized model 200 is changed is the first speed (for example, 300 mm/s in the example of FIG. 11) is the second speed (in the example shown in FIG. In the example of No. 11, the range is wider than the range 30 in the case of, for example, 100 mm/s).

詳しくは、式(8)に基づいて説明したように、範囲30は、仮想化モデル200が取り得る姿勢のうち、仮想化モデル200における複数の関節のうちの所定の関節の角速度(rpm)が、当該所定の関節を動かすサーボモータの最高回転速度(rpm)を超える範囲である。 Specifically, as explained based on equation (8), the range 30 is defined as the angular velocity (rpm) of a predetermined joint among the plurality of joints in the virtualized model 200 among the postures that the virtualized model 200 can take. , is a range exceeding the maximum rotational speed (rpm) of the servo motor that moves the predetermined joint.

(e2.学習済みモデルの生成)
次に、範囲30(すなわち、特異点と特異点近傍)で利用する学習済みモデル320の生成方法について説明する。
(e2. Generation of trained model)
Next, a method for generating the trained model 320 used in the range 30 (that is, the singular point and the vicinity of the singular point) will be described.

再び図12を参照して、第4関節204については、上述したように、変域を0°≦θ≦360°に制限しても解は二つ存在する。したがって、仮に、入力をR33,R13とし、かつ出力をθとして学習用のモデル(ニューラルネットワーク)を生成しても、一入力二出力となるため、学習精度は著しく低下する。 Referring again to FIG. 12, for the fourth joint 204, as described above, there are two solutions even if the range is limited to 0°≦θ 4 ≦360°. Therefore, even if a learning model (neural network) is generated with the inputs being R 33 and R 13 and the output being θ 4 , the learning accuracy will be significantly reduced because it will have one input and two outputs.

変域を90°≦θ≦270°に制限とすると、一入力一出力となる。しかしながら、変域を90°≦θ≦270°に制限した場合には、R13/R33が負から正へ(あるいは正から負へ)と変化する際に角度θは、180°変化してしまう。 If the range is limited to 90°≦θ 4 ≦270°, one input and one output will be required. However, when the range is limited to 90°≦θ 4 ≦270°, when R 13 /R 33 changes from negative to positive (or from positive to negative), the angle θ 4 changes by 180°. Resulting in.

図14は、変域を0°≦θ≦180°に制限した場合を示している。図14に示すように、変域を0°≦θ≦180°に制限することにより、上述した180°の変化を抑えることができる。しかしながら、R13/R33の値が0となる付近(すなわち、特異点)において、関数が連続していない。よって、数値解法では解の指定は困難である。 FIG. 14 shows a case where the range is limited to 0°≦θ 4 ≦180°. As shown in FIG. 14, by limiting the variable range to 0°≦θ 4 ≦180°, the above-mentioned change of 180° can be suppressed. However, the function is not continuous near where the value of R 13 /R 33 is 0 (ie, at a singular point). Therefore, it is difficult to specify the solution using numerical methods.

そこで、機械学習により、変域を0°≦θ≦180°に制限して、解の指定を試みる。具体的には、機械学習により逆運動学モデルを構築するために、学習用データセットを生成する。少なくとも、R13/R33の値と第4関節204の角度とが、図14の実線のグラフで示す関係を満たすような、学習用データセットを生成する。 Therefore, by using machine learning, we limit the range to 0°≦θ 4 ≦180° and attempt to specify a solution. Specifically, in order to construct an inverse kinematics model by machine learning, a training dataset is generated. A learning data set is generated such that at least the value of R13/R33 and the angle of the fourth joint 204 satisfy the relationship shown by the solid line graph in FIG.

詳しく説明すると、以下のとおりである。第4関節204、第5関節205、および第6関節206のリンクパラメータの幾何学的誤差が存在した場合の回転行列成分は、式(16)と比較して非常に煩雑となり、解析的に解くことは困難である。そこで、学習用データセットを用いて学習済みモデル320を生成し、生成された学習済みモデル320によって、上記の解を算出する。このように、本実施の形態では、不連続関数をニューラルネットワークで構築する。より詳しく説明すると、以下のとおりである。 A detailed explanation is as follows. The rotation matrix component 3 R 6 when there is a geometric error in the link parameters of the fourth joint 204, the fifth joint 205, and the sixth joint 206 becomes very complicated compared to equation (16), and the analysis It is difficult to solve the problem. Therefore, a trained model 320 is generated using the training data set, and the above solution is calculated using the generated trained model 320. In this manner, in this embodiment, a discontinuous function is constructed using a neural network. A more detailed explanation is as follows.

数値解法による3つの解である角度θの導出は、以下の式(20)に含まれる9つの非線形連立方程式を解く問題に帰着する。 Derivation of the angles θ 4 , θ 5 , θ 6 which are the three solutions by the numerical solution method results in the problem of solving nine nonlinear simultaneous equations included in the following equation (20).

Figure 2024035977000021
Figure 2024035977000021

ただし、右辺の回転行列成分は、角度θと角度θと角度θとの解を用いて算出することができる3行3列の行列である。後述する学習用のモデルを予め作成しておき、上記の式(20)に基づき、プロセッサ11に、入力を、出力をθとする機械学習を実行させる。関節角度の180°に近い変位を回避するために、たとえば図14に示したように、学習用データに意図的な偏りを持たせる。詳しくは、0°≦θ≦180°、-100°≦θ≦100°、0°≦θ≦180°として、0.1°幅の三次元格子点群を作成し、無作為に5000点抽出して5000組の学習用データ(教師データ)とする。 However, the rotation matrix component 3 R 6 on the right side is a 3-by-3 matrix that can be calculated using the solution of angle θ 1 , angle θ 2 , and angle θ 3 . A learning model to be described later is created in advance, and the processor 11 is caused to perform machine learning using the input as 3 R 6 and the outputs as θ 4 , θ 5 , and θ 6 based on the above equation (20). In order to avoid a displacement close to 180° in the joint angle, the learning data is intentionally biased, as shown in FIG. 14, for example. Specifically, a three-dimensional grid point group with a width of 0.1° is created with 0°≦θ 4 ≦180°, -100°≦θ 5 ≦100°, and 0°≦θ 6 ≦180°, and randomly 5000 points are extracted and used as 5000 sets of learning data (teacher data).

なお、三次元格子点群について説明すると、以下のとおりである。角度θは、それぞれ、1800個、2000個、1800個の要素数を持つベクトルとなるため、これらの角度の組み合わせは,6,480,000,000(=1800×2000×1800)通りとなる。三次元格子点群は、角度θを各軸とする三次元直交座標系において、上記の6,480,000,000個の各点を示したものである。 The three-dimensional lattice point group will be explained as follows. The angles θ 4 , θ 5 , and θ 6 are vectors with 1800, 2000, and 1800 elements, respectively, so the combination of these angles is 6,480,000,000 (=1800×2000 ×1800). The three-dimensional lattice point group represents each of the above-mentioned 6,480,000,000 points in a three-dimensional orthogonal coordinate system having angles θ 4 , θ 5 , and θ 6 as axes.

具体的には、上記のように抽出した角度θ,θ,θを式(20)の左辺に代入して、入力データを[R11,R21,R31,R12,R22,R32,R13,R23,R33、出力データを集出下角度θ,θ,θとするデータセット(5000組の教師データを含むデータセット)を作成する。作成したデータセットを訓練データとテストデータとに分けて、ニューラルネットワークで学習および検証を行った。なお、本例では、訓練データを3500組、テストデータを750組、検証データを750組とした。 Specifically, the angles θ 4 , θ 5 , θ 6 extracted as above are substituted into the left side of equation (20), and the input data is converted to [R 11 , R 21 , R 31 , R 12 , R 22 , R 32 , R 13 , R 23 , R 33 ] T , a data set (a data set including 5000 sets of teacher data) is created in which the output data is set to lower collection angles θ 4 , θ 5 , θ 6 . The created dataset was divided into training data and test data, and a neural network was used for learning and verification. In this example, 3500 sets of training data, 750 sets of test data, and 750 sets of verification data were used.

次に、学習用のモデルのデータ構造について説明する。ニューラルネットワークの代表的なハイパーパラメータとして、中間層の層数と、ニューロン数とがある。中間層の層数とニューロン数とが多いほど、複雑な学習に適合することが可能である。しかしながら、中間層の層数とニューロン数とが多すぎると、多すぎると過学習をおこし、汎化性能が低くなる。 Next, the data structure of the learning model will be explained. Representative hyperparameters of neural networks include the number of intermediate layers and the number of neurons. The larger the number of layers and neurons in the intermediate layer, the more complex learning can be accommodated. However, if the number of layers and the number of neurons in the intermediate layer are too large, overfitting will occur and the generalization performance will deteriorate.

そこで、検証データの二乗平均平方根誤差(RMSE:Root Mean Squared Error)に着目し、ニューロン数および層数と残差との関係を調べた。最初に単層ニューラルネットワークで中間層のニューロン数を確定し、その後、ニューロン数が同数の中間層を増やしていくことで中間層の層数を確定する。 Therefore, we focused on the root mean squared error (RMSE) of the verification data and investigated the relationship between the number of neurons and the number of layers and the residual error. First, the number of neurons in the middle layer is determined using a single-layer neural network, and then the number of layers in the middle layer is determined by increasing the number of middle layers with the same number of neurons.

図15は、中間層を1層のみとし、かつニューロン数を1から50まで変化させたときの検証データの二乗平均平方根誤差を示した図である。図15に示した結果に基づき、学習用のモデルの中間層のニューロン数を15とした。 FIG. 15 is a diagram showing the root mean square error of verification data when there is only one intermediate layer and the number of neurons is varied from 1 to 50. Based on the results shown in FIG. 15, the number of neurons in the middle layer of the learning model was set to 15.

図16は、ニューロン数が15である中間層の層数を1層から10層まで変化させたときの検証データの二乗平均平方根誤差を示した図である。図16に示した結果に基づき、学習用のモデルの中間層の層数を3とした。 FIG. 16 is a diagram showing the root mean square error of the verification data when the number of layers in the intermediate layer having 15 neurons is changed from 1 layer to 10 layers. Based on the results shown in FIG. 16, the number of intermediate layers of the learning model was set to three.

その他のニューラルネットワークの緒元として、学習用プログラムの学習アルゴリズムはレーベンバーグ・マルカート法とし、誤差関数は平均二乗誤差とした。 As for the other specifications of the neural network, the learning algorithm of the learning program was the Levenberg-Marquardt method, and the error function was the mean square error.

図17から図19は、学習済みモデル320の性能分析結果を示した図である。図17は、テストデータに関する第4関節204の回帰プロットを示した図である。同様に、図18は、テストデータに関する第5関節205の回帰プロットを示した図である。図19は、テストデータに関する第6関節206の回帰プロットを示した図である。 17 to 19 are diagrams showing performance analysis results of the learned model 320. FIG. 17 is a diagram showing a regression plot of the fourth joint 204 regarding the test data. Similarly, FIG. 18 is a diagram showing a regression plot of the fifth joint 205 with respect to the test data. FIG. 19 is a diagram showing a regression plot of the sixth joint 206 with respect to the test data.

図17~図19により、ニューラルネットワークによって逆運動学モデルを精度よく学習することができていることが分かる。ただし、数点がy=x線上から外れ、予測誤差が生じた。 It can be seen from FIGS. 17 to 19 that the inverse kinematics model can be learned accurately by the neural network. However, several points deviated from the y=x line, resulting in prediction errors.

(e3.シミュレーション結果)
図20は、第4関節204の角度θのシミュレーション結果を示した図である。図21は、第6関節206の角度θのシミュレーション結果を示した図である。
(e3. Simulation results)
FIG. 20 is a diagram showing a simulation result of the angle θ 4 of the fourth joint 204. FIG. 21 is a diagram showing a simulation result of the angle θ 6 of the sixth joint 206.

図20および図21に示すように、学習済みモデル320を用いた場合、Y座標の値が負から正へと変化する際(特異点または特異点近傍を通過する際)、第4関節204と第6関節206とにおいて180°の急激な変位が生じていないことが分かる。 As shown in FIGS. 20 and 21, when the trained model 320 is used, when the Y coordinate value changes from negative to positive (when passing through a singular point or near a singular point), the fourth joint 204 It can be seen that no sudden displacement of 180° occurs at the sixth joint 206.

<F.オフラインティーチングの制御構造>
図22は、オフラインティーチングの際の情報処理装置10で実行される処理の流れを示すフロー図である。
<F. Control structure of offline teaching>
FIG. 22 is a flow diagram showing the flow of processing executed by the information processing device 10 during offline teaching.

図22に示されるように、ステップS1において、情報処理装置10(詳しくは、プロセッサ11)は、図11に示したように、ロボット22の仮想化モデル200の特異点と特異点近傍との範囲を動作速度別に決定する。ステップS2において、プロセッサ11は、ユーザの入力に基づき、仮想化モデル200の移動の開始姿勢から終了姿勢(目標姿勢)までの軌道の指定を受け付ける。当該軌道は、動作速度を含む経路情報である。ステップS3において、ステップS1において決定された複数の範囲のうちから、指定された動作速度に応じた範囲(たとえば、図13に示す範囲30)を設定する。 As shown in FIG. 22, in step S1, the information processing device 10 (more specifically, the processor 11) determines the range of the singularity and the vicinity of the singularity of the virtualized model 200 of the robot 22, as shown in FIG. is determined by operating speed. In step S2, the processor 11 receives a designation of a trajectory from the start attitude to the end attitude (target attitude) of the movement of the virtual model 200 based on the user's input. The trajectory is route information including operating speed. In step S3, a range (for example, range 30 shown in FIG. 13) according to the specified operating speed is set from among the plurality of ranges determined in step S1.

ステップS4において、プロセッサ11は、指定された軌道に沿って、仮想化モデル200の移動を開始する。すなわち、プロセッサ11は、シミュレーションを開始する。ステップS5において、プロセッサ11は、仮想化モデル200の姿勢が設定された範囲外にあるか否かを判断する。 In step S4, the processor 11 starts moving the virtual model 200 along the specified trajectory. That is, processor 11 starts simulation. In step S5, the processor 11 determines whether the posture of the virtualized model 200 is outside the set range.

範囲外にあると判断された場合(ステップS6においてYES)、プロセッサ11は、ステップS6において、ヤコビ行列を用いて仮想化モデル200の関節の角度θを算出し、かつ、算出結果を演算周期に基づく時刻情報に関連付けてメモリ12に記憶させる。すなわち、プロセッサ11は、数値解法プログラム310を用いて、数値解法により関節の角度θを算出する。 If it is determined that it is outside the range (YES in step S6), the processor 11 calculates the joint angle θ i of the virtualized model 200 using the Jacobian matrix in step S6, and applies the calculation result to the calculation period. is stored in the memory 12 in association with time information based on the time information. That is, the processor 11 uses the numerical solution program 310 to calculate the joint angle θ i by numerical solution.

範囲内にあると判断された場合(ステップS6においてNO)、プロセッサ11は、ステップS8において、仮想化モデル200の関節の角度θを上述した学習済みモデル320を用いて算出し、かつ、算出結果を演算周期に基づく時刻情報に関連付けてメモリ12に記憶させる。 If it is determined that it is within the range (NO in step S6), the processor 11 calculates the joint angle θ i of the virtualized model 200 using the above-mentioned learned model 320 in step S8, and The result is stored in the memory 12 in association with time information based on the calculation cycle.

ステップS7において、プロセッサ11は、仮想化モデル200の姿勢が終了姿勢となったか否かを判断する。終了姿勢となったと判断された場合(ステップS7においてYES)、プロセッサ11は、一連の処理を終了する。終了姿勢となっていないと判断された場合(ステップS7においてNO)、プロセッサ11は、ステップS9において、次の演算周期が到来したか否かを判断する。 In step S7, the processor 11 determines whether the posture of the virtualized model 200 has reached the final posture. If it is determined that the end posture has been reached (YES in step S7), the processor 11 ends the series of processes. If it is determined that the end posture has not been reached (NO in step S7), the processor 11 determines in step S9 whether or not the next calculation cycle has arrived.

次の演算周期が到来したと判断された場合(ステップS9においてYES)、プロセッサ11は、処理をステップS5に進める。次の演算周期が到来していない場合(ステップS9においてNO)、プロセッサ11は、次の演算周期が到来するまで待つ。 If it is determined that the next calculation cycle has arrived (YES in step S9), the processor 11 advances the process to step S5. If the next calculation cycle has not arrived (NO in step S9), the processor 11 waits until the next calculation cycle arrives.

上述した処理が情報処理装置10にて終了すると、メモリ12に記憶された情報(すなわち、オフラインティーチングデータ)をロボットシステム20のロボットコントローラ21(図1参照)に送信する。 When the above-described processing is completed in the information processing device 10, the information stored in the memory 12 (ie, offline teaching data) is transmitted to the robot controller 21 of the robot system 20 (see FIG. 1).

<G.小括>
(g1.オフラインティーチング方法)
上述した、シミュレータを用いたロボット22のオフラインティーチング方法を小括すると以下のとおりである。
<G. Summary>
(g1. Offline teaching method)
The offline teaching method for the robot 22 using the simulator described above can be summarized as follows.

(1)オフラインティーチング方法は、ロボット22の仮想化モデル200が取り得る姿勢のうち、仮想化モデル200の特異点と特異点近傍とを含む範囲を決定するステップと、仮想化モデル200における各関節の角度を制御することにより、仮想化モデル200の姿勢を第1の姿勢から第2の姿勢へと遷移させるステップとを備える。 (1) The offline teaching method includes the steps of determining a range including the singular point of the virtual model 200 and the vicinity of the singular point among the postures that the virtual model 200 of the robot 22 can take, and and a step of transitioning the attitude of the virtualized model 200 from the first attitude to the second attitude by controlling the angle of the virtual model 200 .

仮想化モデル200の姿勢を第1の姿勢から第2の姿勢に遷移させるステップでは、仮想化モデル200の姿勢が上記範囲外のときには、プロセッサ11はヤコビ行列を用いて各関節の角度を算出し、仮想化モデル200の姿勢が上記範囲内のときには、プロセッサ11は学習済みモデル320を用いて各関節の角度を算出する。 In the step of transitioning the posture of the virtualized model 200 from the first posture to the second posture, when the posture of the virtualized model 200 is outside the above range, the processor 11 calculates the angle of each joint using the Jacobian matrix. , when the posture of the virtualized model 200 is within the above range, the processor 11 uses the learned model 320 to calculate the angle of each joint.

このような構成によれば、特異点と特異点近傍とを含む範囲においは、学習済みモデル320を用いて各関節の角度を算出するため、ヤコビ行列を用いた数値解法を行う必要がない。また、このような構成によれば、たとえば手首についての特異点と特異点近傍とを含む範囲を通過する場合においては、FLIPの姿勢とNONFLIPの姿勢との各々において基準の関節角度との差を算出する処理と、当該算出結果に基づいてFLIPの姿勢とNONFLIPの姿勢とのうちの何れかを選択する処理とを行う必要がない。 According to such a configuration, since the angle of each joint is calculated using the learned model 320 in the range including the singular point and the vicinity of the singular point, there is no need to perform a numerical solution using a Jacobian matrix. Moreover, according to such a configuration, when passing through a range including a singular point and a vicinity of the singular point regarding the wrist, for example, the difference between the reference joint angles in each of the FLIP posture and the NONFLIP posture is calculated. There is no need to perform the calculation process and the process of selecting either the FLIP attitude or the NONFLIP attitude based on the calculation result.

このため、上述したオフラインティーチング方法によれば、特異点およびその近傍において、ロボット22の意図しない挙動(暴走、停止等)を効率よく抑制することが可能となる。 Therefore, according to the offline teaching method described above, it is possible to efficiently suppress unintended behavior (runaway, stop, etc.) of the robot 22 at the singular point and in the vicinity thereof.

(2)上述した範囲は、仮想化モデル200の姿勢を変化させる速度に応じて個別に決定される。このような構成によれば、ヤコビ行列の代わりに学習済みモデル320を用いる範囲を、仮想化モデル200の姿勢を変化させる速度に応じて設定することができる。 (2) The above-mentioned ranges are individually determined according to the speed at which the posture of the virtualized model 200 is changed. According to such a configuration, the range in which the trained model 320 is used instead of the Jacobian matrix can be set depending on the speed at which the posture of the virtualized model 200 is changed.

(3)上記速度が第1の速度の場合の範囲は、速度が第1の速度よりも遅い第2の速度の場合の範囲よりも広い。仮想化モデル200の姿勢を変化させる速度が早いほど、特異点近傍の範囲が広くなる。このため、速度が速いほど学習済みモデル320を用いる範囲を広くすることにより、ロボット22の意図しない挙動を抑制することが可能となる。 (3) The range when the speed is the first speed is wider than the range when the speed is the second speed, which is slower than the first speed. The faster the speed at which the posture of the virtualized model 200 is changed, the wider the range near the singularity becomes. Therefore, the faster the speed, the wider the range in which the learned model 320 is used, making it possible to suppress unintended behavior of the robot 22.

(4)上記範囲は、ロボット22の仮想化モデル200が取り得る姿勢のうち、仮想化モデル200における複数の関節のうちの所定の関節の角速度が、当該所定の関節を動かすモータの最高回転速度を超える範囲である。これにより、特異点および特異点近傍を定義することができる。 (4) The above range is such that, among the postures that the virtual model 200 of the robot 22 can take, the angular velocity of a predetermined joint among the plurality of joints in the virtual model 200 is the maximum rotational speed of the motor that moves the predetermined joint. The range exceeds. Thereby, the singular point and the vicinity of the singular point can be defined.

(5)ロボット22は、6軸の垂直多関節ロボットである。ロボット22の第4関節204の回転角度を角度θ、第5関節205の回転角度を角度θ、第6関節206の回転角度を角度θとすると、学習済みモデル320は、入力を上述した式(20)に示す3行3列の回転行列とし、かつ、出力を角度θ、θ、θとした教師データを用いて生成されたものである。 (5) The robot 22 is a six-axis vertical articulated robot. If the rotation angle of the fourth joint 204 of the robot 22 is an angle θ 4 , the rotation angle of the fifth joint 205 is an angle θ 5 , and the rotation angle of the sixth joint 206 is an angle θ 6 , the trained model 320 uses the input as described above. This is a rotation matrix 3 R 6 with 3 rows and 3 columns as shown in Equation (20), and was generated using teacher data with outputs as angles θ 4 , θ 5 , and θ 6 .

(6)教師データにおける、角度θおよび角度θは、0°以上かつ180°以下であり、角度θは-100°以上かつ100°以下である。これによれば、第4関節204と、第5関節205と、第6関節206とが、急激に変化することを抑制できる。 (6) In the training data, angle θ 4 and angle θ 6 are 0° or more and 180° or less, and angle θ 5 is −100° or more and 100° or less. According to this, it is possible to suppress sudden changes in the fourth joint 204, the fifth joint 205, and the sixth joint 206.

(7)学習済みモデル320は、回転行列を入力として受け付けることにより、各関節の角度として、角度θ、θ、θを出力する。 (7) The trained model 320 receives the rotation matrix 3 R 6 as input, and outputs angles θ 4 , θ 5 , and θ 6 as the angles of each joint.

(g2.情報処理装置10)
情報処理装置10について小括すると、以下のとおりである。
(g2. Information processing device 10)
The information processing device 10 is summarized as follows.

情報処理装置10は、プロセッサ11と、ロボット22のシミュレーションプログラム300が格納されたメモリ12とを備える。プロセッサ11は、シミュレーションプログラム300を実行することにより、(i)ロボット22の仮想化モデル200が取り得る姿勢のうち、仮想化モデル200の特異点と特異点近傍とを含む範囲を決定し、(ii)仮想化モデル200における各関節の角度を制御することにより、仮想化モデル200の姿勢を第1の姿勢から第2の姿勢へと遷移させる。 The information processing device 10 includes a processor 11 and a memory 12 in which a simulation program 300 for the robot 22 is stored. By executing the simulation program 300, the processor 11 (i) determines a range including the singularity of the virtualized model 200 and the vicinity of the singularity among the postures that the virtualized model 200 of the robot 22 can take; ii) By controlling the angle of each joint in the virtualized model 200, the posture of the virtualized model 200 is transitioned from the first posture to the second posture.

プロセッサ11は、仮想化モデル200の姿勢を第1の姿勢から第2の姿勢に遷移させる際に、仮想化モデル200の姿勢が上記範囲外のときには、ヤコビ行列を用いて各関節の角度を算出し、仮想化モデル200の姿勢が上記範囲内のときには、学習済みモデル320を用いて各関節の角度を算出する。また、このような構成によれば、たとえば手首についての特異点と特異点近傍とを含む範囲を通過する場合においては、プロセッサ11は、FLIPの姿勢とNONFLIPの姿勢との各々において基準の関節角度との差を算出する処理と、当該算出結果に基づいてFLIPの姿勢とNONFLIPの姿勢とのうちの何れかを選択する処理とを行う必要がない。 When transitioning the posture of the virtual model 200 from the first posture to the second posture, the processor 11 calculates the angle of each joint using the Jacobian matrix when the posture of the virtual model 200 is outside the above range. However, when the posture of the virtual model 200 is within the above range, the learned model 320 is used to calculate the angle of each joint. Moreover, according to such a configuration, when passing through a range including a singular point and a vicinity of the singular point regarding the wrist, the processor 11 calculates the reference joint angle in each of the FLIP posture and the NONFLIP posture. There is no need to perform the process of calculating the difference between the two positions and the process of selecting either the FLIP attitude or the NONFLIP attitude based on the calculation result.

このため、情報処理装置10によれば、特異点およびその近傍において、多関節ロボットの意図しない挙動(暴走、停止等)を効率よく抑制することが可能となる。 Therefore, according to the information processing device 10, it is possible to efficiently suppress unintended behavior (runaway, stop, etc.) of the articulated robot at the singular point and in the vicinity thereof.

<H.変形例>
(1)ロボット22は6軸に限定されるものではない。上述したような、特異点および特異点近傍において学習済みモデルを用いる処理手法を、N軸(Nは3以上の任意の自然数とする)の多関節ロボットに対しても適用できる。
<H. Modified example>
(1) The robot 22 is not limited to six axes. The above-described processing method using a learned model at a singular point and near the singular point can also be applied to an N-axis articulated robot (N is an arbitrary natural number of 3 or more).

具体的には、上述した学習済みモデルを用いる処理手法は、N個の軸のうち任意の連続する3つの軸(回転軸の仮想軸線同士)が一点で交わる構成を有するロボットに対して適用できる。詳しくは、このような連続する3つの軸の動作に関し、学習済みモデルを適用できる。 Specifically, the processing method using the trained model described above can be applied to a robot having a configuration in which any three consecutive axes (virtual axes of rotational axes) intersect at one point among N axes. . Specifically, the learned model can be applied to such continuous three-axis movements.

すなわち、jを1以上かつN-2以下の自然数とすると、上述した学習済みモデルを用いる処理手法は、第j関節と、第j関節の隣の隣の第j+2関節とを結ぶ線分上に、第j関節と第j+2関節との間の第j+1関節が位置するような構成(3つの関節が一直線上になり得る構成)を有するロボットに対して適用できる。たとえば、6軸の例の図2のように、第4関節204と第6関節206とを結ぶ線分上に第5関節205が位置するような構成であればよい。このような構成であれば、逆運動学の解析解を導出できるためである。 In other words, if j is a natural number greater than or equal to 1 and less than or equal to N-2, the processing method using the learned model described above is based on the line segment connecting the j-th joint and the j+2 joint next to the j-th joint. , can be applied to a robot having a configuration in which the j+1 joint is located between the j-th joint and the j+2 joint (a configuration in which three joints can be in a straight line). For example, as shown in FIG. 2 for an example of six axes, a configuration in which the fifth joint 205 is located on a line segment connecting the fourth joint 204 and the sixth joint 206 may be used. This is because with such a configuration, an analytical solution of inverse kinematics can be derived.

この場合、第j関節の回転角度を角度θ、第j+1関節の回転角度を角度θj+1、第j+2関節の回転角度を角度θj+2とすると、学習済みモデルは、入力を以下の式(21)に示す3行3列の回転行列j-1j+2とし、かつ、出力を角度θ、θj+1、θj+2とした教師データを用いて生成されたものとすればよい。なお、式(21)は、式(20)をjを用いて拡張したものである。 In this case, if the rotation angle of the j-th joint is an angle θ j , the rotation angle of the j+1 joint is an angle θ j+1 , and the rotation angle of the j+2 joint is an angle θ j+2 , then the trained model inputs the following equation (21 ), and the rotation matrix j−1 R j+2 shown in FIG. Note that equation (21) is obtained by expanding equation (20) using j.

Figure 2024035977000022
Figure 2024035977000022

なお、このような構成の場合、学習済みモデルは、回転行列j-1j+2を入力として受け付けることにより、各関節の角度として、角度θ、θj+1、θj+2を出力することになる。 Note that in such a configuration, the trained model receives the rotation matrix j−1 R j+2 as input, and outputs the angles θ j , θ j+1 , and θ j+2 as the angles of each joint.

このような構成であっても、特異点およびその近傍において、当該ロボットの意図しない挙動(暴走、停止等)を効率よく抑制することが可能となる。 Even with such a configuration, it is possible to efficiently suppress unintended behavior (runaway, stop, etc.) of the robot at the singular point and in the vicinity thereof.

(2)上記においては、関節の角速度と、関節を動かすモータの最高回転速度との単位系として、同一の単位系(rpm)を用いた場合を例に挙げて説明したが、必ずしも、同一の単位系を用いる必要はない。2つのうちの少なくとも一方の単位系が、「rad/s」、「deg/s」、「rps」であってもよい。この場合、「所定の関節の角速度が、前記所定の関節を動かすモータの最高回転速度を超える範囲である」とは、両者の単位を統一したときに(たとえば、一方の単位系を他方の単位系に変換しときに)、このような大小関係があることを含む。 (2) In the above example, the same unit system (rpm) was used as the unit system for the angular velocity of the joint and the maximum rotational speed of the motor that moves the joint. There is no need to use a system of units. At least one of the two unit systems may be "rad/s", "deg/s", or "rps". In this case, "the range in which the angular velocity of a predetermined joint exceeds the maximum rotational speed of the motor that moves the predetermined joint" means that when the units of both units are unified (for example, one system of units is used as the unit of the other) (When converting into a system), there is such a magnitude relationship.

今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 The embodiment disclosed this time is an example, and is not limited to the above content only. The scope of the present invention is indicated by the claims, and it is intended that all changes within the meaning and range equivalent to the claims are included.

1 オフラインティーチング用システム、10 情報処理装置、11 プロセッサ、12 メモリ、13 入力装置、14 表示装置、15 通信インターフェイス、16 バス、20 ロボットシステム、21 ロボットコントローラ、22 ロボット、30 範囲、31,32,33 矢印、200,220 仮想化モデル、201 第1関節、202 第2関節、203 第3関節、204 第4関節、205 第5関節、206 第6関節、250,251,252,253,254,255,256 リンク、290 エンドエフェクタ、300 シミュレーションプログラム、310 数値解法プログラム、320 学習済みモデル。 1 offline teaching system, 10 information processing device, 11 processor, 12 memory, 13 input device, 14 display device, 15 communication interface, 16 bus, 20 robot system, 21 robot controller, 22 robot, 30 range, 31, 32, 33 arrow, 200, 220 virtual model, 201 first joint, 202 second joint, 203 third joint, 204 fourth joint, 205 fifth joint, 206 sixth joint, 250, 251, 252, 253, 254, 255, 256 links, 290 end effectors, 300 simulation programs, 310 numerical solution programs, 320 trained models.

Claims (10)

シミュレータを用いた多関節ロボットのオフラインティーチング方法であって、
前記多関節ロボットの仮想化モデルが取り得る姿勢のうち、前記仮想化モデルの特異点と特異点近傍とを含む範囲を、前記シミュレータが決定するステップと、
前記シミュレータが、前記仮想化モデルにおける各関節の角度を制御することにより、前記仮想化モデルの姿勢を第1の姿勢から第2の姿勢へと遷移させるステップとを備え、
前記仮想化モデルの姿勢を前記第1の姿勢から前記第2の姿勢に遷移させるステップでは、
前記仮想化モデルの姿勢が前記範囲外のときには、前記シミュレータは、ヤコビ行列を用いて各前記関節の角度を算出し、
前記仮想化モデルの姿勢が前記範囲内のときには、前記シミュレータは、予め生成された学習済みモデルを用いて各前記関節の角度を算出する、多関節ロボットのオフラインティーチング方法。
An offline teaching method for an articulated robot using a simulator, the method comprising:
a step in which the simulator determines a range including a singular point and a vicinity of the singular point of the virtual model among postures that the virtual model of the articulated robot can take;
the simulator controlling the angle of each joint in the virtualized model to transition the posture of the virtualized model from a first posture to a second posture,
In the step of transitioning the posture of the virtualized model from the first posture to the second posture,
When the posture of the virtualized model is outside the range, the simulator calculates the angle of each joint using a Jacobian matrix,
An offline teaching method for an articulated robot, wherein when the posture of the virtualized model is within the range, the simulator calculates the angle of each joint using a learned model generated in advance.
前記範囲は、前記仮想化モデルの姿勢を変化させる速度に応じて個別に決定される、請求項1に記載の多関節ロボットのオフラインティーチング方法。 2. The offline teaching method for an articulated robot according to claim 1, wherein the range is individually determined according to a speed at which the posture of the virtual model is changed. 前記速度が第1の速度の場合の前記範囲は、前記速度が第1の速度よりも遅い第2の速度の場合の前記範囲よりも広い、請求項2に記載の多関節ロボットのオフラインティーチング方法。 The offline teaching method for an articulated robot according to claim 2, wherein the range when the speed is a first speed is wider than the range when the speed is a second speed slower than the first speed. . 前記範囲は、前記多関節ロボットの仮想化モデルが取り得る姿勢のうち、前記仮想化モデルにおける複数の前記関節のうちの所定の関節の角速度が、前記所定の関節を動かすモータの最高回転速度を超える範囲である、請求項1に記載の多関節ロボットのオフラインティーチング方法。 The range is such that the angular velocity of a predetermined joint among the plurality of joints in the virtual model exceeds the maximum rotational speed of a motor that moves the predetermined joint, among the postures that the virtual model of the multi-joint robot can take. 2. The offline teaching method for an articulated robot according to claim 1, wherein the offline teaching method exceeds the above range. Nを3以上の自然数とし、jを1以上かつN-2以下の任意の自然数とすると、
前記多関節ロボットは、第1関節から第N関節を有するN軸の垂直多関節ロボットであり、
第j関節と、第j関節の隣の隣の第j+2関節とを結ぶ線分上に、第j関節と第j+2関節との間の第j+1関節が位置しており、
前記第j関節の回転角度を角度θ、前記第j+1関節の回転角度を角度θj+1、前記第j+2関節の回転角度を角度θj+2とすると、
前記学習済みモデルは、入力を以下の式(1)に示す3行3列の回転行列j-1j+2とし、かつ、出力を角度θ、θj+1、θj+2とした教師データを用いて生成されたものである、請求項1から4のいずれか1項に記載の多関節ロボットのオフラインティーチング方法。
Figure 2024035977000023
If N is a natural number greater than or equal to 3, and j is any natural number greater than or equal to 1 and less than or equal to N-2,
The multi-joint robot is an N-axis vertical multi-joint robot having a first joint to an N-th joint,
The j+1 joint between the j-th joint and the j+2 joint is located on the line segment connecting the j-th joint and the j+2 joint next to the j-th joint,
Assuming that the rotation angle of the j-th joint is an angle θ j , the rotation angle of the j+1 joint is an angle θ j+1 , and the rotation angle of the j+2 joint is an angle θ j+2 ,
The trained model uses training data in which the input is a 3-by-3 rotation matrix j-1 R j+2 shown in the following equation (1), and the outputs are angles θ j , θ j+1 , θ j+2 The offline teaching method for an articulated robot according to any one of claims 1 to 4, wherein the method is a generated one.
Figure 2024035977000023
前記Nは6であり、前記jは4であり、
前記教師データにおける、角度θおよび角度θは、0°以上かつ180°以下であり、角度θは-100°以上かつ100°以下である、請求項5に記載の多関節ロボットのオフラインティーチング方法。
The N is 6, the j is 4,
The offline method of the articulated robot according to claim 5, wherein angle θ 4 and angle θ 6 in the training data are 0° or more and 180° or less, and angle θ 5 is −100° or more and 100° or less. teaching method.
前記学習済みモデルは、前記回転行列j-1j+2を入力として受け付けることにより、各前記関節の角度として、前記角度θ、θj+1、θj+2を出力する、請求項5に記載の多関節ロボットのオフラインティーチング方法。 The multi-joint system according to claim 5, wherein the learned model outputs the angles θ j , θ j+1 , and θ j +2 as the angles of each of the joints by receiving the rotation matrix j− 1 R j+2 as an input. How to teach robots offline. コンピュータに、請求項1に記載の多関節ロボットのオフラインティーチング方法を実行させる、プログラム。 A program that causes a computer to execute the offline teaching method for an articulated robot according to claim 1. 請求項1に記載の多関節ロボットのオフラインティーチング方法によって生成されたオフラインティーチングデータに基づいて動作する、多関節ロボット。 An articulated robot that operates based on offline teaching data generated by the offline teaching method for an articulated robot according to claim 1. 情報処理装置であって、
プロセッサと、
多関節ロボットのシミュレーションプログラムが格納されたメモリとを備え、
前記プロセッサは、前記シミュレーションプログラムを実行することにより、
前記多関節ロボットの仮想化モデルが取り得る姿勢のうち、前記仮想化モデルの特異点と特異点近傍とを含む範囲を決定し、
前記仮想化モデルにおける各関節の角度を制御することにより、前記仮想化モデルの姿勢を第1の姿勢から第2の姿勢へと遷移させ、
前記プロセッサは、前記仮想化モデルの姿勢を前記第1の姿勢から前記第2の姿勢に遷移させる際に、前記仮想化モデルの姿勢が前記範囲外のときには、ヤコビ行列を用いて各前記関節の角度を算出し、前記仮想化モデルの姿勢が前記範囲内のときには、予め生成された学習済みモデルを用いて各前記関節の角度を算出する、情報処理装置。
An information processing device,
a processor;
Equipped with a memory that stores a simulation program for an articulated robot,
By executing the simulation program, the processor
determining a range including a singular point of the virtualized model and a vicinity of the singularity among postures that the virtualized model of the articulated robot can take;
Transitioning the posture of the virtualized model from a first posture to a second posture by controlling the angle of each joint in the virtualized model,
When the posture of the virtualized model is transitioned from the first posture to the second posture, the processor uses a Jacobian matrix to change the posture of each joint when the posture of the virtualized model is outside the range. An information processing device that calculates an angle, and when the posture of the virtual model is within the range, calculates the angle of each joint using a learned model generated in advance.
JP2022140645A 2022-09-05 2022-09-05 Offline teaching method for articulated robot, program, articulated robot, and information processing device Pending JP2024035977A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022140645A JP2024035977A (en) 2022-09-05 2022-09-05 Offline teaching method for articulated robot, program, articulated robot, and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022140645A JP2024035977A (en) 2022-09-05 2022-09-05 Offline teaching method for articulated robot, program, articulated robot, and information processing device

Publications (1)

Publication Number Publication Date
JP2024035977A true JP2024035977A (en) 2024-03-15

Family

ID=90198179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022140645A Pending JP2024035977A (en) 2022-09-05 2022-09-05 Offline teaching method for articulated robot, program, articulated robot, and information processing device

Country Status (1)

Country Link
JP (1) JP2024035977A (en)

Similar Documents

Publication Publication Date Title
US11845186B2 (en) Inverse kinematics solving method for redundant robot and redundant robot and computer readable storage medium using the same
Gong et al. Analytical inverse kinematics and self-motion application for 7-DOF redundant manipulator
Meziane et al. Human-robot collaboration while sharing production activities in dynamic environment: SPADER system
CN110682286B (en) Real-time obstacle avoidance method for cooperative robot
Wang et al. A multi-objective approach for the trajectory planning of a 7-DOF serial-parallel hybrid humanoid arm
CN104760041A (en) Barrier escaping motion planning method based on impact degree
Dou et al. Inverse kinematics for a 7-DOF humanoid robotic arm with joint limit and end pose coupling
KR102030141B1 (en) Method and system for controlling elbow of robot
Li et al. Development of articulated robot trajectory planning
Galin et al. Mathematical modelling and simulation of human-robot collaboration
Fratu et al. Using the redundant inverse kinematics system for collision avoidance
Eftekhari et al. Neuro-fuzzy adaptive control of a revolute stewart platform carrying payloads of unknown inertia
Sharkawy Intelligent Control and Impedance Adjustment for Efficient Human-Robot Cooperation
Gan et al. Human-like manipulation planning for articulated manipulator
JP2024035977A (en) Offline teaching method for articulated robot, program, articulated robot, and information processing device
Wolniakowski et al. Towards human-like kinematics in industrial robotic arms: a case study on a UR3 robot
Cakir et al. An educational tool for 6‐DOF industrial robots with quaternion algebra
Chaudhary et al. Position analysis based approach for trajectory tracking control of scorbot-er-v plus robot manipulator
Su et al. Adaptive coordinated motion constraint control for cooperative multi-manipulator systems
Chen et al. Kinematics optimization of a novel 7-DOF redundant manipulator
AL-Tameemi et al. Kinematics analysis of 5250 lab-volt 5-DoF robot arm
Gan et al. A Reinforcement Learning Method for Motion Control With Constraints on an HPN Arm
Lai A fast task planning system for 6R articulated robots based on inverse kinematics
Bhardwaj et al. An unsupervised neural network approach for inverse kinematics solution of manipulator following kalman filter based trajectory
Mattar A practical neuro-fuzzy mapping and control for a 2 DOF robotic arm system