(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024024201
(43)【公開日】2024-02-22
(54)【発明の名称】ロボット制御方法およびロボットシステム
(51)【国際特許分類】
B25J 13/00 20060101AFI20240215BHJP
【FI】
B25J13/00 Z
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022126863
(22)【出願日】2022-08-09
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100179475
【弁理士】
【氏名又は名称】仲井 智至
(74)【代理人】
【識別番号】100216253
【弁理士】
【氏名又は名称】松岡 宏紀
(74)【代理人】
【識別番号】100225901
【弁理士】
【氏名又は名称】今村 真之
(72)【発明者】
【氏名】小林 匠
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS12
3C707BS12
3C707BS26
3C707DS01
3C707ES01
3C707HS27
3C707JS03
3C707KS34
3C707KT01
3C707KT05
3C707KV01
3C707KW03
3C707KX07
3C707LS15
3C707MT13
(57)【要約】
【課題】効率的にロボットを動作させることができるロボット制御方法およびロボットシステムを提供すること。
【解決手段】第1姿勢での第1関節の第1基準位置に対する回転角度θ1と、第2姿勢での第1関節の第1基準位置に対する回転角度θ2と、の差である第1角度を算出する第1ステップと、算出した第1角度が所定の値よりも大きいか否かを判断する第2ステップと、第2ステップにおいて、第1角度が前記所定の値よりも大きいと判断した場合、回転角度θ1と、第2関節を第2基準位置に対する回転角度θAから第2基準位置に対する回転角度θBに変更したときの、第2姿勢での第1関節の第1基準位置に対する回転角度θ3と、の差である第2角度を算出する第3ステップと、第1角度の絶対値と第2角度の絶対値とを比較し、絶対値が小さい方の角度を設定する第4ステップと、を有することを特徴とするロボット制御方法。
【選択図】
図11
【特許請求の範囲】
【請求項1】
第1基準位置を基準として、第1軸を中心に回転する第1関節および第2基準位置を基準として、前記第1軸と直交する第2軸を中心に回転する第2関節を有するロボットアームを備えるロボットの作動を制御する制御方法であって、
前記ロボットアームを第1姿勢から第2姿勢へ変更するに際し、
前記第1姿勢での前記第1関節の前記第1基準位置に対する回転角度θ1と、前記第2姿勢での前記第1関節の前記第1基準位置に対する回転角度θ2と、の差である第1角度を算出する第1ステップと、
算出した前記第1角度が所定の値よりも大きいか否かを判断する第2ステップと、
前記第2ステップにおいて、前記第1角度が前記所定の値よりも大きいと判断した場合、前記回転角度θ1と、前記第2関節を前記第2基準位置に対する回転角度θAから前記第2基準位置に対する回転角度θBに変更したときの、前記第2姿勢での前記第1関節の前記第1基準位置に対する回転角度θ3と、の差である第2角度を算出し、
前記回転角度θAは、前記第1ステップにおいて前記回転角度θ2を求めた際の前記第2関節の回転角度であり、前記回転角度θBは、前記第2基準位置から前記回転角度θAへ回転する方向と反対方向に、前記第2基準位置と前記回転角度θAとの差の絶対値だけ、前記第2基準位置から回転させた回転角度である第3ステップと、
前記第1角度の絶対値と前記第2角度の絶対値とを比較し、絶対値が小さい方の角度を設定する第4ステップと、
前記第4ステップで設定した角度を用いて前記ロボットアームを駆動し、前記第2姿勢に変更する第5ステップと、を有することを特徴とするロボット制御方法。
【請求項2】
前記ロボットアームは、6つの関節を有し、
前記第1関節は、基端側から4つ目の関節であり、前記第2関節は、基端側から5つ目の関節である請求項1に記載のロボット制御方法。
【請求項3】
第1基準位置を基準として、第1軸を中心に回転する第1関節および第2基準位置を基準として、前記第1軸と直交する第2軸を中心に回転する第2関節を有するロボットアームと、
前記ロボットアームを制御する制御部と、を有するロボットシステムであって、
前記制御部は、
前記ロボットアームを第1姿勢から第2姿勢へ変更するに際し、
前記第1姿勢での前記第1関節の前記第1基準位置に対する回転角度θ1と、前記第2姿勢での前記第1関節の前記第1基準位置に対する回転角度θ2と、の差である第1角度を算出する第1ステップと、
算出した前記第1角度が所定の値よりも大きいか否かを判断する第2ステップと、
前記第2ステップにおいて、前記第1角度が前記所定の値よりも大きいと判断した場合、前記回転角度θ1と、前記第2関節を前記第2基準位置に対する回転角度θAから前記第2基準位置に対する回転角度θBに変更したときの、前記第2姿勢での前記第1関節の前記第1基準位置に対する回転角度θ3と、の差である第2角度を算出し、
前記回転角度θAは、前記第1ステップにおいて前記回転角度θ2を求めた際の前記第2関節の回転角度であり、前記回転角度θBは、前記第2基準位置から前記回転角度θAへ回転する方向と反対方向に、前記第2基準位置と前記回転角度θAとの差の絶対値だけ、前記第2基準位置から回転させた回転角度である第3ステップと、
前記第1角度の絶対値と前記第2角度の絶対値とを比較し、絶対値が小さい方の角度を設定する第4ステップと、
前記第4ステップで設定した角度を用いて前記ロボットアームを駆動し、前記第2姿勢に変更する第5ステップと、を実行することを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御方法およびロボットシステムに関する。
【背景技術】
【0002】
近年、工場では人件費の高騰や人材不足により、ロボットアームを有するロボットを用いて製造、加工、組み立て等の作業が行われるようになり、人手で行われてきた作業の自動化が加速している。
【0003】
このようなロボットでは、ロボットアームに設定された制御点の始点および終点の座標を指定することにより、作業が行われる。また、始点および終点の間でロボットアームの姿勢を円滑に無理なく変化させることが求められる。
【0004】
例えば特許文献1に記載されているロボットでは、ロボットアームが有する各関節の可動範囲を180°以上とすることにより、ロボットアームの姿勢の自由度を高め、円滑な姿勢の変化を実現している。特許文献1に記載されているロボットでは、各関節の可動範囲が比較的広いため、各関節の回転軸の軸方向から見て時計回りおよび反時計回りのいずれの方向に回転させた場合であっても、ロボットアームは、同じ姿勢を取ることができる。このため、円滑、迅速で効率的な作業を行うためには、各関節をどちらの方向に回転させると経時的な姿勢の変化量が少なくなるか、ということを考慮して動作を行わせる必要がある。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1においては、上述の点に関して十分な検討がなされておらず、効率的な動作がなされない場合がある等の問題がある。
【課題を解決するための手段】
【0007】
本発明の適用例にかかるロボット制御方法は、第1基準位置を基準として、第1軸を中心に回転する第1関節および第2基準位置を基準として、前記第1軸と直交する第2軸を中心に回転する第2関節を有するロボットアームを備えるロボットの作動を制御する制御方法であって、
前記ロボットアームを第1姿勢から第2姿勢へ変更するに際し、
前記第1姿勢での前記第1関節の前記第1基準位置に対する回転角度θ1と、前記第2姿勢での前記第1関節の前記第1基準位置に対する回転角度θ2と、の差である第1角度を算出する第1ステップと、
算出した前記第1角度が所定の値よりも大きいか否かを判断する第2ステップと、
前記第2ステップにおいて、前記第1角度が前記所定の値よりも大きいと判断した場合、前記回転角度θ1と、前記第2関節を前記第2基準位置に対する回転角度θAから前記第2基準位置に対する回転角度θBに変更したときの、前記第2姿勢での前記第1関節の前記第1基準位置に対する回転角度θ3と、の差である第2角度を算出し、
前記回転角度θAは、前記第1ステップにおいて前記回転角度θ2を求めた際の前記第2関節の回転角度であり、前記回転角度θBは、前記第2基準位置から前記回転角度θAへ回転する方向と反対方向に、前記第2基準位置と前記回転角度θAとの差の絶対値だけ、前記第2基準位置から回転させた回転角度である第3ステップと、
前記第1角度の絶対値と前記第2角度の絶対値とを比較し、絶対値が小さい方の角度を設定する第4ステップと、
前記第4ステップで設定した角度を用いて前記ロボットアームを駆動し、前記第2姿勢に変更する第5ステップと、を有することを特徴とする。
【0008】
本発明の適用例にかかるロボットシステムは、第1基準位置を基準として、第1軸を中心に回転する第1関節および第2基準位置を基準として、前記第1軸と直交する第2軸を中心に回転する第2関節を有するロボットアームと、
前記ロボットアームを制御する制御部と、を有するロボットシステムであって、
前記制御部は、
前記ロボットアームを第1姿勢から第2姿勢へ変更するに際し、
前記第1姿勢での前記第1関節の前記第1基準位置に対する回転角度θ1と、前記第2姿勢での前記第1関節の前記第1基準位置に対する回転角度θ2と、の差である第1角度を算出する第1ステップと、
算出した前記第1角度が所定の値よりも大きいか否かを判断する第2ステップと、
前記第2ステップにおいて、前記第1角度が前記所定の値よりも大きいと判断した場合、前記回転角度θ1と、前記第2関節を前記第2基準位置に対する回転角度θAから前記第2基準位置に対する回転角度θBに変更したときの、前記第2姿勢での前記第1関節の前記第1基準位置に対する回転角度θ3と、の差である第2角度を算出し、
前記回転角度θAは、前記第1ステップにおいて前記回転角度θ2を求めた際の前記第2関節の回転角度であり、前記回転角度θBは、前記第2基準位置から前記回転角度θAへ回転する方向と反対方向に、前記第2基準位置と前記回転角度θAとの差の絶対値だけ、前記第2基準位置から回転させた回転角度である第3ステップと、
前記第1角度の絶対値と前記第2角度の絶対値とを比較し、絶対値が小さい方の角度を設定する第4ステップと、
前記第4ステップで設定した角度を用いて前記ロボットアームを駆動し、前記第2姿勢に変更する第5ステップと、を実行することを特徴とする。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本発明のロボット制御方法を実行するロボットシステムの全体構成を示す図である。
【
図2】
図2は、
図1に示すロボットシステムのブロック図である。
【
図4】
図4は、
図1に示すロボットアームの先端部の模式図である。
【
図5】
図5は、
図1に示すロボットアームの先端部の模式図である。
【
図6】
図6は、
図1に示すロボットアームの先端部の模式図である。
【
図7】
図7は、
図1に示すロボットアームの先端部の模式図である。
【
図8】
図8は、
図1に示すロボットアームの関節の回転量および回転方向を説明するための図である。
【
図9】
図9は、
図1に示すロボットアームの関節の回転量および回転方向を説明するための図である。
【
図10】
図10は、
図1に示すロボットアームの関節の回転量および回転方向を説明するための図である。
【
図11】
図11は、
図1に示すロボットアームの関節の回転量および回転方向を説明するための図である。
【
図12】
図12は、
図1に示すロボットアームの関節の回転量および回転方向を説明するための図である。
【
図13】
図13は、本発明のロボット制御方法の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明のロボット制御方法およびロボットシステムを添付図面に示す好適な実施形態に基づいて詳細に説明する。
【0011】
<第1実施形態>
図1は、本発明のロボット制御方法を実行するロボットシステムの全体構成を示す図である。
図2は、
図1に示すロボットシステムのブロック図である。
図3は、
図1に示すロボットアームの模式図である。
図4~
図7は、
図1に示すロボットアームの先端部の模式図である。
図8は、
図1に示すロボットアームの関節の回転量および回転方向を説明するための図である。
図9は、
図1に示すロボットアームの関節の回転量および回転方向を説明するための図である。
図10は、
図1に示すロボットアームの関節の回転量および回転方向を説明するための図である。
図11は、
図1に示すロボットアームの関節の回転量および回転方向を説明するための図である。
図12は、
図1に示すロボットアームの関節の回転量および回転方向を説明するための図である。
図13は、本発明のロボット制御方法の一例を説明するためのフローチャートである。
【0012】
なお、以下では、ロボットアーム10について、
図1および
図3中の基台11側を「基端」、その反対側、すなわち、エンドエフェクター20側を「先端」とも言う。
【0013】
図1に示すように、ロボットシステム100は、ロボット1と、本発明のロボット制御方法を実行するロボット制御装置5と、を備える。ロボット制御装置5は、ロボット1の各部の作動を制御する制御装置3と、教示を行う教示装置4と、を備える。なお、ロボット制御装置5が実行する制御の各ステップは、制御装置3および教示装置4のいずれか一方が実行する構成であってもよく、双方が分担して実行する構成であってもよい。
【0014】
まず、ロボット1について説明する。
図1に示すロボット1は、本実施形態では単腕の6軸垂直多関節ロボットであり、基台11と、ロボットアーム10と、を有する。また、ロボットアーム10の先端部にエンドエフェクター20を装着することができる。なお、エンドエフェクター20は、ロボット1の構成要件であってもよく、ロボット1とは別部材、すなわち、ロボット1の構成要件でなくてもよい。
【0015】
なお、ロボット1は、図示の構成に限定されず、例えば、双腕型の多関節ロボットであってもよい。
【0016】
基台11は、ロボットアーム10の基端を駆動可能に支持する支持体であり、例えば工場内の床に固定されている。ロボット1は、基台11が中継ケーブルを介して制御装置3と電気的に接続されている。なお、ロボット1と制御装置3との接続は、
図1に示す構成のように有線による接続に限定されず、例えば、無線による接続であってもよい。また、インターネット等のネットワークを介して接続されていてもよい。
【0017】
本実施形態では、ロボットアーム10は、第1アーム12と、第2アーム13と、第3アーム14と、第4アーム15と、第5アーム16と、第6アーム17とを有し、これらのアームが基台11側からこの順に連結されている。なお、ロボットアーム10が有するアームの数は、6つに限定されず、例えば、1つ、2つ、3つ、4つ、5つまたは7つ以上であってもよい。また、各アームの全長等の大きさは、それぞれ、特に限定されず、適宜設定可能である。
【0018】
基台11と第1アーム12とは、関節171を介して連結されている。そして、第1アーム12は、基台11に対し、鉛直方向に延びる第1回転軸O1を回転中心とし、その第1回転軸O1回りに回転可能となっている。このように、第1回転軸O1は、基台11が固定される床の床面の法線と一致しており、ロボットアーム10の全体が第1回転軸O1の軸回りに正方向・逆方向のいずれへも回転することができる。
【0019】
第1アーム12と第2アーム13とは、関節172を介して連結されている。そして、第2アーム13は、第1アーム12に対し、水平方向に延びる第2回転軸O2を回転中心として回転可能となっている。
【0020】
第2アーム13と第3アーム14とは、関節173を介して連結されている。そして、第3アーム14は、第2アーム13に対し水平方向に延びる第3回転軸O3を回転中心として回転可能となっている。第3回転軸O3は、第2回転軸O2と平行である。
【0021】
第3アーム14と第4アーム15とは、関節174を介して連結されている。そして、第4アーム15は、第3アーム14に対し、第3アーム14の中心軸方向と平行な第4回転軸O4を回転中心として回転可能となっている。第4回転軸O4は、第3回転軸O3と直交している。
【0022】
第4アーム15と第5アーム16とは、関節175を介して連結されている。そして、第5アーム16は、第4アーム15に対して第5回転軸O5を回転中心として回転可能となっている。第5回転軸O5は、第4回転軸O4と直交している。
【0023】
第5アーム16と第6アーム17とは、関節176を介して連結されている。そして、第6アーム17は、第5アーム16に対して第6回転軸O6を回転中心として回転可能となっている。第6回転軸O6は、第5回転軸O5と直交している。
【0024】
また、第6アーム17は、ロボットアーム10の中で最も先端側に位置するロボット先端部となっている。この第6アーム17は、ロボットアーム10の駆動により、エンドエフェクター20ごと変位することができる。
【0025】
第4回転軸O4および第6回転軸O6は、ロボットアーム10の姿勢にかかわらず、同一平面内に位置している。第1回転軸O1、第2回転軸O2、第3回転軸O3および第5回転軸O5が軸回りに各アームが回転したとしても、第4回転軸O4および第6回転軸O6は同一平面内に位置する。例えば、
図3に示す状態では、第4回転軸O4および第6回転軸O6が位置している平面は、
図3の紙面と平行な平面である。
【0026】
図1に示すエンドエフェクター20は、ワークまたは工具を把持することができる把持部を有する構成である。第6アーム17にエンドエフェクター20を装着した状態では、エンドエフェクター20の先端部は、制御点TCPとなる。
【0027】
ロボット1は、駆動部としてのモーターM1、モーターM2、モーターM3、モーターM4、モーターM5およびモーターM6と、エンコーダーE1、エンコーダーE2、エンコーダーE3、エンコーダーE4、エンコーダーE5およびエンコーダーE6とを備える。モーターM1は、関節171に内蔵され、基台11に対し第1アーム12を第1回転軸O1回りに回転させる。モーターM2は、関節172に内蔵され、第1アーム12と第2アーム13とを第2回転軸O2回りに相対的に回転させる。モーターM3は、関節173に内蔵され、第2アーム13と第3アーム14とを第3回転軸O3回りに相対的に回転させる。モーターM4は、関節174に内蔵され、第3アーム14と第4アーム15とを第4回転軸O4回りに相対的に回転させる。モーターM5は、関節175に内蔵され、第4アーム15と第5アーム16とを第5回転軸O5回りに相対的に回転させる。モーターM6は、関節176に内蔵され、第5アーム16と第6アーム17とを第6回転軸O6回りに相対的に回転させる。
【0028】
また、エンコーダーE1は、関節171に内蔵され、モーターM1の位置を検出する。エンコーダーE2は、関節172に内蔵され、モーターM2の位置を検出する。エンコーダーE3は、関節173に内蔵され、モーターM3の位置を検出する。エンコーダーE4は、関節174に内蔵され、モーターM4の位置を検出する。エンコーダーE5は、第5アーム16に内蔵され、モーターM5の位置を検出する。エンコーダーE6は、第6アーム17に内蔵され、モーターM6の位置を検出する。なお、ここで言う「位置を検出」とは、モーターの回転角すなわち正逆を含む回転量および角速度を検出することを言い、当該検出された情報を「位置情報」と言う。
【0029】
図2に示すように、モータードライバーD1~モータードライバーD6は、それぞれ、対応するモーターM1~モーターM6に接続され、これら各モーターの駆動を制御する。モータードライバーD1~モータードライバーD6は、それぞれ、関節171、関節172、関節173、関節174、第5アーム16および第6アーム17に内蔵されている。
【0030】
エンコーダーE1~エンコーダーE6、モーターM1~モーターM6およびモータードライバーD1~モータードライバーD6は、それぞれ、制御装置3と電気的に接続されている。エンコーダーE1~エンコーダーE6で検出されたモーターM1~モーターM6の位置情報、すなわち、回転量は、制御装置3に電気信号として送信される。そして、この位置情報に基づいて、制御装置3は、
図2に示すモータードライバーD1~モータードライバーD6に制御信号を出力し、モーターM1~モーターM6を駆動させる。すなわち、ロボットアーム10を制御するということは、モーターM1~モーターM6の駆動を制御して、ロボットアーム10に属する第1アーム12~第6アーム17の作動を制御することである。
【0031】
ロボットアーム10の先端部、すなわち第6アーム17の先端には、エンドエフェクター20を着脱可能に装着することができる。本実施形態では、エンドエフェクター20は、互いに接近離間可能な一対の爪部を有し、各爪部によりワークまたは工具を把持、解除するハンドで構成される。このエンドエフェクター20に装着された力検出器は、両爪部でワークを把持した際の把持力の反力の大きさや向きを検出することができる。
【0032】
なお、エンドエフェクター20としては、図示の構成に限定されず、例えば吸着部を有し、該吸着部の吸着によりワークまたは工具を把持する構成のものであってもよい。また、エンドエフェクター20としては、例えば、研磨機、研削機、切削機、スプレーガン、レーザー光照射器、ドライバー、レンチ等の工具であってもよい。
【0033】
次に、制御装置3および教示装置4について説明する。
図1に示すように、制御装置3は、本実施形態では、ロボット1と離れた位置に設置されている。ただし、この構成に限定されず、制御装置3は、基台11に内蔵されていてもよい。また、制御装置3は、ロボット1の駆動を制御する機能を有し、前述したロボット1の各部と電気的に接続されている。制御装置3は、制御部31と、記憶部32と、通信部33と、を有する。これらの各部は、例えばバスを介して相互に通信可能に接続されている。
【0034】
制御部31は、例えば、CPU(Central Processing Unit)で構成され、記憶部32に記憶されている動作プログラム等の各種プログラムを読み出し、実行する。制御部31で生成された信号は、通信部33を介してロボット1の各部に送信され、ロボット1の各部からの信号は、通信部33を介して制御部31で受信される。これにより、ロボットアーム10が所定の作業を所定の条件で実行することができる。なお、制御部31は、後述する第5ステップを実行する部分である。
【0035】
記憶部32は、制御部31で実行される各種プログラム等を保存する。記憶部32としては、例えば、RAM(Random Access Memory)等の揮発性メモリー、ROM(Read Only Memory)等の不揮発性メモリー、着脱式の外部記憶装置等を有する構成のものが挙げられる。
【0036】
通信部33は、例えば有線LAN(Local Area Network)、無線LAN等の外部インターフェースを用いて制御装置3との間で信号の送受信を行う。この場合、図示しないサーバーを介して通信を行ってもよく、また、インターネット等のネットワークを介して通信を行ってもよい。
【0037】
図1、
図2および
図3に示すように、教示装置4は、教示を行う、すなわち、ロボット1が実行する動作プログラムを作成する装置である。具体的には、教示装置4は、ユーザーが指定した位置情報に基づいて動作プログラムを作成し、制御装置3に送信する。ユーザーは、位置情報として、例えば、作業開始位置および作業終了位置の所定座標系における座標を入力する。なお、ここで言う座標は、制御点TCPが位置する座標のことを言う。教示装置4は、上記位置情報に基づいて、作業開始位置、作業終了位置、および、これらの間でのロボットアーム10の経時的な姿勢を算出し、動作プログラムを作成する。
【0038】
教示装置4は、制御部41と、記憶部42と、通信部43と、を有する。
制御部41は、例えば、CPU(Central Processing Unit)で構成され、記憶部42に記憶されている動作プログラムや、動作プログラム生成プログラム等の各種プログラムを読み出し、実行する。制御部41で生成された信号は、通信部43を介してロボット1の各部に送信され、ロボット1の各部からの信号は、通信部33を介して制御部31で受信される。これにより、ロボットアーム10が所定の作業を所定の条件で実行することができる。制御部41は、後述する第1ステップ~第4ステップを実行する部分である。なお、後述する第1ステップ~第4ステップの少なくとも1つを制御部31が実行してもよい。
【0039】
記憶部42としては、例えば、RAM(Random Access Memory)等の揮発性メモリー、ROM(Read Only Memory)等の不揮発性メモリー、着脱式の外部記憶装置等を有する構成のものが挙げられる。
記憶部42には、後述する第1基準位置P01、第3基準位置P03、位置P1、P2、P3、P4、P5およびP6の位置情報、各関節171~176の可動範囲、回転角度θ1、θ2、θ3、回転角度α1、α2、α3、α4、第1角度γ1、第2角度γ2、これらに基づき第1ステップ~第4ステップを経て作成される動作プログラム等が記憶される。なお、記憶部42に記憶される情報の一部または全部は、記憶部32に記憶されていてもよい。
【0040】
通信部43は、例えば有線LAN(Local Area Network)、無線LAN等の外部インターフェースを用いて制御装置3との間で信号の送受信を行う。この場合、図示しないサーバーを介して通信を行ってもよく、また、インターネット等のネットワークを介して通信を行ってもよい。通信部43は、記憶部42に記憶された動作プログラムに関する情報等を制御装置3に送信する。また、通信部43は、記憶部32に記憶された情報を受信し、記憶部42に当該情報を記憶することもできる。
【0041】
以上、ロボットシステム100の構成について説明した。このようなロボットシステム100が備えるロボットアーム10は、各関節171~176の可動範囲、すなわち回転可能な角度範囲が比較的広く設定されている。
【0042】
関節171の可動範囲は、特に限定されないが、例えば、400°以上500°以下である。すなわち、第1アーム12は、基台11に対して第1回転軸O1回りに上記角度回転可能である。
【0043】
関節172の可動範囲は、特に限定されないが、例えば、100°以上200°以下である。すなわち、第2アーム13は、第1アーム12に対して第2回転軸O2回りに上記角度回転可能である。
【0044】
関節173の可動範囲は、特に限定されないが、例えば、200°以上300°以下である。すなわち、第3アーム14は、第2アーム13に対して第3回転軸O3回りに上記角度回転可能である。
【0045】
関節174の可動範囲は、特に限定されないが、例えば、350°以上450°以下である。すなわち、第4アーム15は、第3アーム14に対して第4回転軸O4回りに上記角度回転可能である。
【0046】
関節175の可動範囲は、特に限定されないが、例えば、200°以上300°以下である。すなわち、第5アーム16は、第4アーム15に対して第5回転軸O5回りに上記角度回転可能である。
【0047】
関節176の可動範囲は、特に限定されないが、例えば、650°以上750°以下である。すなわち、第6アーム17は、第5アーム16に対して第6回転軸O6回りに上記角度回転可能である。
【0048】
このように各関節171~176の可動範囲が広いと、各関節171~176を異なる方向に回転させても同じ姿勢をとり得る。例えば、
図4に示す姿勢と、
図7に示す姿勢とは、同じ姿勢である。
図4および
図7には、ロボットアーム10の先端に設定される先端座標系における3軸であるOx、OyおよびOzを図示している。
図4および
図7ともに、これらの3軸は、同じ方向を向いているが、関節175に表記している『E』の文字は、左右反転した状態となっている。すなわち、
図4に示す姿勢と、
図7に示す姿勢とが、同じ姿勢であるとは、ロボットアーム10の先端に設定される先端座標系の姿勢が同じであるということである。
図4と
図7とでは、同じ姿勢に至るまでに、所定の関節の回転方向および回転量が異なっており、その結果、関節175の向きが反転している。
【0049】
ロボットアーム10は、例えば、
図4に示す姿勢から、
図5に示す姿勢および
図6に示す姿勢を経て、
図7に示す姿勢となる。
図4に示す姿勢から関節174を180°回転させて
図5に示す姿勢となる。次いで、
図5に示す姿勢から関節175を反転させて
図6に示す姿勢となる。次いで、
図6に示す姿勢から関節176を-180°回転させて
図7に示す姿勢となる。なお、「関節175を反転させる」とは、第2基準位置P02から回転角度θAへ回転する方向と反対方向に、第2基準位置P02と回転角度θAとの差の絶対値だけ、第2基準位置P02から回転させることを言う。すなわち、「関節175を反転させる」とは、アーム16を、第2基準位置P02を介して対称な位置に移動させることを言う。なお、図示の構成では、第2基準位置P02は、アーム15の延長上に位置する位置のことを言う。
【0050】
ロボットアーム10を所定の姿勢に変化させる際、各関節の回転方向および回転量の組み合わせは幾通りもあるが、その中から最適な組み合わせを選択することで、ロボットアーム10の各部への負荷がより軽減され、効率的な動作を行う動作プログラムを作成し、実行することができる。これは、以下に説明する本実施形態のロボット制御方法により達成することができる。
【0051】
制御部41は、制御点TCPが作業開始位置から作業終了位置へ移動するようユーザーから指定された場合、制御点TCPが作業開始位置に位置する第1姿勢から、制御点TCPが作業終了位置に位置する第2姿勢に変更するようロボットアーム10を駆動する動作プログラムを生成する。すなわち、作業開始位置および作業終了位置の情報に基づいて、第1姿勢、第2姿勢およびその間の各関節171~176の経時的な回転量および回転速度を設定する。以下、各関節171~176のうち、第1関節として関節174、第2関節として関節175を例に挙げて説明する。
【0052】
関節174の回転軸である第4回転軸O4と、関節176の回転軸である第6回転軸O6とは、前述したように、同一平面内に位置しているため、制御点TCPを
図4および
図7に示す軸Ox回りに回転させる回転量は、関節174および関節176の回転量の合計となる。また、制御点TCPを軸Ox回りに時計回りに190°回転させるよりも制御点TCPを軸Ox回りに反時計回りに170°回転させる方が、トータルの回転量が少なくなる。すなわち、制御点TCPを同じ回転位置(回転角度)に設定するのに、後者を選択すると、前者を選択するのに比べトータルの回転量を少なくすることができる。なお、この際、アーム16を、第2基準位置P02を介して対称な位置に移動させる動作を行うが、この移動は、180°以下であり、比較的少ない移動量である。
【0053】
このような選択では、制御点TCPを軸Ox回りに回転させる回転量は、180°以下とすることができる。この回転量を同一平面内にある回転軸を持つ2つの関節174および関節176に分担させることにより、関節174および関節176のいずれかは、回転量を90°以下にすることができる。
【0054】
図8~
図12は、それぞれ、関節の回転量を示す図であり、各図の円の12時の位置を基準位置として、回転量、回転方向を示している。基準位置は、例えば、待機姿勢における回転位置のことであり、関節174における基準位置を第1基準位置P01と言い、関節176における基準位置を第3基準位置P03と言う。
【0055】
なお、
図8~
図12中、回転方向が時計回りの回転角度が「+」であり、回転方向が反時計回りの回転角度が「-」である。例えば、時計回りに80°回転するということは、+80°回転するということであり、反時計回りに80°回転するということは、-80°回転するということである。
【0056】
以下、一例を挙げて説明する。
(ケース1)
図8に示すように、第1姿勢における関節174の回転位置(以下、「回転角度」とも言う)は、第1基準位置P01から時計回りにθ1(°)回転した位置P1である。また、第2姿勢における関節174の回転位置は、第1基準位置P01から時計回りにθ2(°)回転した位置P2である。すなわち、第1姿勢から第2姿勢に姿勢変更する際、関節174は、位置P1から位置P2に向かって時計回りに角度Δθ1(°)回転する。図示の構成では、θ1=+150°であり、θ2=+250°であり、Δθ1は、Δθ1=θ2-θ1=+100°である。
【0057】
なお、図示と異なり、θ1=+150°、θ2=+100°であった場合には、Δθ1=θ2-θ1=-50°となる。すなわち、第1姿勢から第2姿勢に姿勢変更する際、関節174は、反時計回りに50°回転する。
【0058】
また、
図9に示すように、第1姿勢における関節176の回転位置は、第3基準位置P03から時計回りにα1(°)回転した位置P3である。また、第2姿勢における関節176の回転位置は、第3基準位置P03から時計回りにα2(°)回転した位置P4である。すなわち、第1姿勢から第2姿勢に姿勢変更する際、関節176は、位置P3から位置P4に向かって時計回りにΔα1(°)回転する。図示の構成では、α1=+45°であり、α2=+125°であり、Δα1は、Δα1=α2-α1=+80°である。
【0059】
すなわち、ケース1では、第1姿勢から第2姿勢に変更するにあたって、関節174を+100°回転させ、関節176を+80°回転させる。
【0060】
制御部41は、これらの情報を、J4フラグ情報、J6フラグ情報として設定し、記憶部42に記憶する。この設定の際、制御部41は、J1フラグ情報、ハンドフラグ情報、肘フラグ情報、手首フラグ情報等も設定し、記憶部42に記憶する。J1フラグ情報は、関節171の回転量および回転方向を示す情報である。ハンドフラグ情報は、ロボットアーム10の姿勢が右手系の姿勢であるのか、左手系の姿勢であるのかを示す情報である。肘フラグ情報は、ロボットアーム10の姿勢が上肘姿勢であるのか、下肘姿勢であるのかを示す情報である。手首フラグ情報は、ロボットアーム10の姿勢が手首非反転姿勢であるのか、手首反転姿勢であるのかを示すフラグである(特開2016-83706号公報参照)。
【0061】
手首フラグ情報とは、関節175の第2基準位P02から、すなわち、関節175を真っすぐに伸ばした状態からどちら側に折れ曲がっているかを示すフラグであり、Flip(F)とNonFlip(NP)がある。例えば、
図5に示すような状態がFlip(F)であり、
図6に示すような状態がNonFlip(NP)である。なお、手首フラグ情報を決定する要素としては、関節175の回転位置に加え、関節174の回転位置が挙げられる。例えば、関節174を180°回転させることによっても、
図5に示す姿勢と
図6に示す姿勢とを切り替えることができる。このように、手首フラグ情報は、関節174および関節175の回転位置を加味した情報である。
【0062】
以上のように、関節174を時計回りにΔθ1(=+100°)回転させ、かつ関節176を時計回りにΔα1(=+80°)回転させることで、ロボットアーム10を第1姿勢から第2姿勢に変更することができる。
【0063】
ここで、上記ケース1とは異なる下記ケース2のように、関節174の回転量を+90°以下とし、関節176の回転量を+90°以上とするように、関節174、関節175および関節176の回転方向および回転量の組み合わせの選択を変え、上記と同じ第1姿勢から第2姿勢への姿勢変更を実現することもできる。関節174および関節176を比較すると、関節174の方が基端側に位置し、より大きい荷重がかかるため、回転させるのに要するエネルギー、回転させた際の負荷が大きい。このため、ケース1よりは、関節174の回転量の絶対値を90°以下とし、関節176の回転量の絶対値を90°以上とする下記ケース2の方が、より適正な動作プログラムであると言える。従って、関節174の回転量が90°を超えていた場合、以下に説明するケース2のような動作プログラムを作成する。
【0064】
(ケース2)
図11に示すように、第1姿勢における関節176の回転位置は、第3基準位置P03から時計回りにα1(°)回転した位置P3である。また、第2姿勢における関節176の回転位置は、第3基準位置P03から反時計回りにα3(°)回転した位置P5である。ここで、位置P5は、ケース1での第2姿勢における関節176の回転位置である位置P4から180°回転させた回転位置である。すなわち、第1姿勢から第2姿勢に変更する際、関節176は、位置P3から位置P5に向かって反時計回りにΔα4(°)回転する。図示の構成では、α1=+45°であり、α3=-50°であり、Δα4は、Δα4=α3-α1=-95°である。
【0065】
また、第1姿勢における関節174の回転位置は、第1基準位置P01から時計回りにθ1(°)回転した位置P1である。また、第2姿勢における関節174の回転位置は、第1基準位置P01から時計回りにθ3(°)回転した位置P6である。ここで、P6は、ケース1での第2姿勢における関節174の回転位置である位置P2から180°回転させた回転位置である。すなわち、第1姿勢から第2姿勢に姿勢変更する際、関節174は、位置P1から位置P6に向かって反時計回りにΔθ2(°)回転する。図示の構成では、θ1=+150°であり、θ3=+70°であり、Δθ2は、Δθ2=θ3-θ1=-80°である。
【0066】
このように、ケース2では、第1姿勢から第2姿勢に変更するにあたって、関節174を位置P1から位置P6に向かって反時計回りに80°、すなわち、時計回りに-80°回転させるとともに、関節176を位置P3から位置P5に向かって反時計回りに95°回転させる。
【0067】
また、ケース2では、関節175の回転角度を反転させることによって、ケース1と同じ姿勢を実現している。すなわち、ケース2では、第2基準位置P02から回転角度θAへ回転する方向と反対方向に、第2基準位置P02と回転角度θAとの差の絶対値だけ、第2基準位置P02から回転させている(
図5および
図6参照)。例えば、
図5に示す回転位置は、-45°であり、
図6に示す回転位置は+45°である。このような関節175の調整により、第2姿勢における関節176の回転位置を、ケース1での第2姿勢における関節176の回転位置である位置P4から180°回転させた位置P5としたのを相殺することができ、ケース1およびケース2の第2姿勢を同じ姿勢とすることができる。
【0068】
ケース1とケース2とを比較すると、ケース2の方が関節174の回転量の絶対値が少なく、より適正な動作プログラムであると言える。従って、ケース2を採用する。このように、制御部41は、入力された作業開始位置および作業終了位置の位置情報に基づいて作成したプログラムが、ケース1のように関節174の回転量の絶対値が90°を超えていたら、上述した調整を行い、ケース2のような関節174の回転量の絶対値が90°以下となる動作プログラムを作成する。
【0069】
なお、以下では、ケース1における関節174の回転角度を第1角度γ1と言い、ケース2における関節174の回転角度を第2角度γ2と言う。すなわち、第1角度γ1は、γ1=Δθ1=θ2-θ1=100°であり、第2角度γ2は、γ2=Δθ2=θ3-θ1=-80°である。
【0070】
ここで、
図12中ハッチングで示すように、関節174において、動作範囲外領域Aが存在している場合について説明する。この動作範囲外領域Aは、関節174が回転することができない領域であり、図示の構成では、3時の位置から4時の位置に存在している。この位置に動作範囲外領域Aが存在していると、例えばケース2で算出した関節174の回転経路が動作範囲外領域Aの全部または一部と重なってしまう。このため、上述したような関節174が位置P1から位置P6まで反時計回りに80°回転する動作プログラム(
図10参照)を作成したつもりでも、位置P1から位置P6まで時計回りに280°回転してしまう動作プログラム(
図12参照)が作成されるおそれがある。すなわち、動作プログラムは、第2角度γ2=280°に設定されてしまう。このようなケース2を採用すると、関節174の回転量が大きくなってしまい、適正な動作プログラムではなくなってしまう。
以上を考慮して、本発明では、第1角度γ1(°)の絶対値|γ1|と、第2角度γ2(°)の絶対値|γ2|とを比較し、両絶対値のうちの小さい方の角度を設定する。例えば、|γ1|=100°、|γ2|=80°の場合は、ケース2を採用し、|γ1|=100°、|γ2|=280°の場合は、ケース1を採用する。すなわち、ケース1で関節174の回転角度が90°を超えていた場合であっても、上記調整を行ったケース2が不本意な動作プログラムであれば、ケース1を採用する。このようなステップを経ることにより、関節174の回転量が過剰に大きくなってしまうのを防止することができ、適正な動作プログラムを作成することができる。
【0071】
特に、ロボットアーム10を動作させるのに先立って、予め綿密に動作プログラムを作成する場合に比べ、リアルタイムでロボットアーム10を動作させつつ、次の移動先である目的位置の位置情報を入力しつつロボットアーム10を駆動したりする場合、効率的な処理が求められるため、本発明が有効である。
【0072】
なお、第1角度γ1の絶対値|γ1|=第2角度γ2の絶対値|γ2|である場合にどちらを採用するかは、予めユーザーが設定した方を採用する構成であってもよく、関節174、176の回転量が小さい方を採用する構成であってもよい。
【0073】
なお、動作範囲外領域Aは、構造上回転することができない領域や、ユーザーが回転するのを禁止した領域等を含む。
【0074】
次に、
図13に示すフローチャートを用いて、本発明のロボット制御方法の一例について説明する。
【0075】
まず、ステップS101において、ユーザーが入力した作業開始位置および作業終了位置の位置情報に基づいて、第1角度γ1を算出する。このステップS101が、第1ステップである。第1角度γ1は、ケース1では、100°である。
【0076】
次いで、ステップS102において、第1角度γ1の絶対値|γ1|が所定の値、本実施形態では90°を超えているか否かを判断する。すなわち、|γ1|>90°であるか否かを判断する。このステップS102が、第2ステップである。ケース1のように、|γ1|>90°であると判断した場合、ステップS103に移行する。|γ1|>90°ではないと判断した場合、当該γ1を確定値として設定し、ステップS107へ移行する。ステップS107では、設定された条件に基づいてロボットアーム10を駆動する。なお、ステップS107では、関節174、176以外の動作条件も決定し、これに基づいてロボットアーム10を駆動する。
【0077】
ステップS103では、手首フラグを切り替えて、すなわち、関節175の回転角度を反転させて調整を行い、第2角度γ2を算出する。具体的には、第2基準位置P02から回転角度θAへ回転する方向と反対方向に、第2基準位置P02と回転角度θAとの差の絶対値だけ、第2基準位置P02から回転させ(
図5および
図6参照)、第2角度γ2を算出する。例えば、上記ケース2では、関節174の回転経路が動作範囲外領域Aと重ならない場合には、第2角度γ2=-80°であり、関節174の回転経路が動作範囲外領域Aと重なる場合には、第2角度γ2=280°である。このステップS103が、第3ステップである。
【0078】
次いで、ステップS104において、第1角度γ1の絶対値と第2角度γ2の絶対値とを比較し、その大小関係を求める。すなわち、|γ1|<|γ2|であるか否かを判断する。ステップS104において、|γ1|<|γ2|であると判断した場合、ステップS105へ移行し、第1角度γ1を採用する。ステップS104において、|γ1|<|γ2|ではないと判断した場合、ステップS106へ移行し、第2角度γ2を採用する。すなわち、γ1とγ2とで、その絶対値が小さい方の角度を関節174の回転角度として設定し、動作プログラムを作成する。このようなステップS104~ステップS106が、第4ステップである。
【0079】
次いで、ステップS107において、上記で設定した関節174および関節176の回転角度でロボットアーム10を駆動する。なお、ステップS107では、設定した関節174および関節176の回転角度および回転角度に応じて、その他の関節の動作条件も設定し、これに基づいてロボットアーム10を駆動する。
【0080】
以上説明したように、第1基準位置P01を基準として、第1軸の一例である回転軸O4を中心に回転する第1関節の一例である関節174および第2基準位置P02を基準として、回転軸O4と直交する回転軸O5を中心に回転する第2関節の一例である関節175を有するロボットアーム10を備えるロボッ1トの作動を制御する制御方法である。また、ロボット制御方法は、ロボットアーム10を第1姿勢から第2姿勢へ変更するに際し、第1姿勢での関節174の第1基準位置P01に対する回転角度θ1と、第2姿勢での関節174の第1基準位置P01に対する回転角度θ2と、の差である第1角度γ1を算出する第1ステップと、算出した第1角度γ1が所定の値よりも大きいか否かを判断する第2ステップと、第2ステップにおいて、第1角度γ1が所定の値よりも大きいと判断した場合、回転角度θ1と、関節175を第2基準位置P02に対する回転角度θAから第2基準位置P02に対する回転角度θBに変更したときの、第2姿勢での関節174の第1基準位置P01に対する回転角度θ3と、の差である第2角度γ2を算出し、回転角度θAは、第1ステップにおいて回転角度θ2を求めた際の関節175の回転角度であり、回転角度θBは、第2基準位置P02から回転角度θAへ回転する方向と反対方向に、第2基準位置P02と回転角度θAとの差の絶対値だけ、第2基準位置P02から回転させた回転角度である第3ステップと、第1角度γ1の絶対値と第2角度γ2の絶対値とを比較し、絶対値が小さい方の角度を設定する第4ステップと、第4ステップで設定した角度を用いてロボットアーム10を駆動し、第2姿勢に変更する第5ステップと、を有する。
【0081】
また、ロボットシステム100は、第1基準位置P01を基準として、第1軸の一例である回転軸O4を中心に回転する第1関節の一例である関節174および第2基準位置P02を基準として、回転軸O4と直交する回転軸O5を中心に回転する第2関節の一例である関節175を有するロボットアーム10と、ロボットアームを制御する制御部の一例であるロボット制御装置5と、を有する。また、ロボット制御装置5は、ロボットアーム10を第1姿勢から第2姿勢へ変更するに際し、第1姿勢での関節174の第1基準位置P01に対する回転角度θ1と、第2姿勢での関節174の第1基準位置P01に対する回転角度θ2と、の差である第1角度γ1を算出する第1ステップと、算出した第1角度γ1が所定の値よりも大きいか否かを判断する第2ステップと、第2ステップにおいて、第1角度γ1が所定の値よりも大きいと判断した場合、回転角度θ1と、関節175を第2基準位置P02に対する回転角度θAから第2基準位置P02に対する回転角度θBに変更したときの、第2姿勢での関節174の第1基準位置P01に対する回転角度θ3と、の差である第2角度γ2を算出し、回転角度θAは、第1ステップにおいて回転角度θ2を求めた際の関節175の回転角度であり、回転角度θBは、第2基準位置P02から回転角度θAへ回転する方向と反対方向に、第2基準位置P02と回転角度θAとの差の絶対値だけ、第2基準位置P02から回転させた回転角度である第3ステップと、第1角度γ1の絶対値と第2角度γ2の絶対値とを比較し、絶対値が小さい方の角度を設定する第4ステップと、第4ステップで設定した角度を用いてロボットアーム10を駆動し、第2姿勢に変更する第5ステップと、を実行する。
【0082】
第1ステップ~第4ステップを経ることで、より適正な動作プログラムを作成することができ、この動作プログラムを実行することにより、ロボットは、より効率的な動作を行うことができる。特に、関節174の回転量が過剰に大きくなってしまうのを防止することができ、ロボットアーム10への負荷の軽減、駆動エネルギーの低減に寄与する。
【0083】
なお、本実施形態では、第1ステップ~第4ステップを経て作成された動作プログラムを実行し、ロボットアーム10を駆動して第1姿勢から第2姿勢とする場合について説明した。この場合、動作プログラムの作成と、当該動作ブログラムの実行によるロボットアーム10の駆動とが、リアルタイムに、すなわち時間的に連続して行われることを想定している。この場合、例えば、第1姿勢または第2姿勢の位置情報に変更が生じた場合、これに対応する動作プログラムの作成または修正を、前記変更に追従して瞬時に行い、ロボットアーム10の動作を即時修正することができるという利点がある。
【0084】
これに対し、第1ステップ~第4ステップに基づいて予め1または2以上の動作プログラムの作成しておき、ロボットアーム10を動作させる際に、適宜の動作プログラムを設定または選択し、それを実行することも、本発明に含まれる。
【0085】
また、本実施形態では、第1関節を関節174とし、第2関節を関節175として説明したが、本発明ではこれに限定されず、他の関節にも適用することができる。例えば、第1関節を関節176とし、第2関節を175としてもよい。その場合、関節174よりも関節176の回転量を小さくすることができるため、第6アーム17より先端にカメラ等を設けて配線をする際に、配線の捻じれをより低減することができる。
【0086】
なお、第2ステップにおいて、第1角度γ1と比較する所定の値として、90°である場合について説明したが、本発明ではこれに限定されず、例えば、180°であってもよい。
【0087】
また、ロボットアーム10は、6つの関節である関節171~176を有し、第1関節は、基端側から4つ目の関節である関節174であり、第2関節は、基端側から6つ目の関節である関節176である。このような構成によれば、ロボットアーム10の比較的先端側に位置する、すなわちエンドエフェクター20により近い2つの関節に第1関節および第2関節を適用することとなる。よって、基端部に比べ高精度な動作が要求される先端部を適正に動作させることができる。その結果、より適正な作業を行うことができる。
【0088】
なお、ロボットアーム10の関節の数は、6つに限定されず、2つ~5つ、7つ以上であってもよい。この場合であっても、第1関節および第2関節は、ロボットアーム10の比較的先端側に位置する、すなわちエンドエフェクター20により近い2つの関節に第1関節および第2関節を適用するのが好ましい。これにより、より適正な作業を行うことができる。
【0089】
以上、本発明のロボット制御方法およびロボットシステムを図示の実施形態について説明したが、本発明は、これに限定されるものではない。また、ロボット制御方法には、第1~第5ステップにおける各ステップの前後に、任意のステップが付加されていてもよい。また、ロボットシステムの各部は、同様の機能を発揮し得る任意の構造物と置換することができ、あるいは、任意の構造物が付加されていてもよい。
【符号の説明】
【0090】
1…ロボット、3…制御装置、4…教示装置、5…ロボット制御装置、10…ロボットアーム、11…基台、12…第1アーム、13…第2アーム、14…第3アーム、15…第4アーム、16…第5アーム、17…第6アーム、20…エンドエフェクター、31…制御部、32…記憶部、33…通信部、41…制御部、42…記憶部、43…通信部、100…ロボットシステム、171…関節、172…関節、173…関節、174…関節、175…関節、176…関節、A…動作範囲外領域、D1…モータードライバー、D2…モータードライバー、D3…モータードライバー、D4…モータードライバー、D5…モータードライバー、D6…モータードライバー、E1…エンコーダー、E2…エンコーダー、E3…エンコーダー、E4…エンコーダー、E5…エンコーダー、E6…エンコーダー、M1…モーター、M2…モーター、M3…モーター、M4…モーター、M5…モーター、M6…モーター、O1…第1回転軸、O2…第2回転軸、O3…第3回転軸、O4…第4回転軸、O5…第5回転軸、O6…第6回転軸、Ox…軸、Oy…軸、Oz…軸、P01…第1基準位置、P02…第2基準位置、S101…ステップ、S102…ステップ、S103…ステップ、S104…ステップ、S105…ステップ、S106…ステップ、S107…ステップ、TCP…制御点、α1…回転角度、α2…回転角度、α3…回転角度、α4…回転角度、γ1…第1角度、γ2…第2角度、θ1…回転角度、θ2…回転角度、θ3…回転角度、Δθ1…角度、Δθ2…角度、Δα1…角度、P1~P6…位置