IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ イントリンシック イノベーション エルエルシーの特許一覧

特表2022-544650手首オフセットロボットのための逆運動学ソルバ
<>
  • 特表-手首オフセットロボットのための逆運動学ソルバ 図1
  • 特表-手首オフセットロボットのための逆運動学ソルバ 図2
  • 特表-手首オフセットロボットのための逆運動学ソルバ 図3
  • 特表-手首オフセットロボットのための逆運動学ソルバ 図4
  • 特表-手首オフセットロボットのための逆運動学ソルバ 図5
  • 特表-手首オフセットロボットのための逆運動学ソルバ 図6
  • 特表-手首オフセットロボットのための逆運動学ソルバ 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-20
(54)【発明の名称】手首オフセットロボットのための逆運動学ソルバ
(51)【国際特許分類】
   B25J 9/10 20060101AFI20221013BHJP
【FI】
B25J9/10 A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022506333
(86)(22)【出願日】2020-08-13
(85)【翻訳文提出日】2022-03-25
(86)【国際出願番号】 US2020046217
(87)【国際公開番号】W WO2021030610
(87)【国際公開日】2021-02-18
(31)【優先権主張番号】16/541,541
(32)【優先日】2019-08-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521430508
【氏名又は名称】イントリンジック イノベーション エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】デュピュイ,ジャン-フランソワ
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS12
3C707LS15
3C707LV14
(57)【要約】
【課題】 無駄な時間と処理リソースを低減することである。
【解決手段】 本明細書の主題は一般にロボットを制御するための技法に関する。いくつかの実施例において、方法は、手首オフセットを有するロボットのエンドエフェクタの姿勢データに基づいて、第1のリンクの第1の端部に位置付けられた第1のポイントの第1の目標位置を決定することを含む。第1のリンクを第2のリンクに接続する第1の関節の第2の目標位置を決定する。第3のリンクの第1の端部に位置付けられた第2の関節の第3の目標位置を決定し、これは、第1の関節の第2の目標位置を含む第1の面を規定することを含む。第2の面内にある円の位置及び大きさを決定する。円の円周上にあるポイントを第3の目標位置として選択する。各関節の各位置に基づく移動データを制御システムに提供する。
【選択図】 図1
【特許請求の範囲】
【請求項1】
1つ以上のデータ処理装置によって実行される方法であって、
手首オフセットを有するロボットのエンドエフェクタの目標姿勢を規定する姿勢データを受信することであって、前記姿勢データは前記エンドエフェクタの目標エンドエフェクタ位置及び前記エンドエフェクタの目標向きを指定し、前記エンドエフェクタは前記ロボットの第1のリンクの第1の端部に取り付けられている、姿勢データを受信することと、
前記姿勢データに基づいて、前記第1のリンクの前記第1の端部に位置付けられた第1のポイントの第1の目標位置を決定することと、
前記姿勢データに基づいて、前記第1のリンクを第2のリンクに接続する第1の関節の第2の目標位置を決定することであって、前記第1の関節は、(i)前記第1の端部とは反対側にある前記第1のリンクの第2の端部、及び(ii)前記第2のリンクの第1の端部に位置付けられ、前記第1のリンク及び前記第2のリンクは、前記ロボットの第3のリンクの第1の端部に接続されたオフセット手首を形成する、第2の目標位置を決定することと、
前記第3のリンクの前記第1の端部に位置付けられた第2の関節の第3の目標位置を決定することであって、
(i)前記第1の関節の前記第2の目標位置を含む第1の面であって、(ii)前記第1のポイントの前記第1の目標位置と前記第1の関節の前記第2の目標位置との間のラインが前記第1の面に対して垂直である第1の面を規定することと、
少なくとも前記第1の関節と前記第2の関節との間の距離に基づいて、(i)前記第1の面に対して平行な第2の面内にある円であって、(ii)前記第1の面からオフセット位置に位置付けられている円の位置及び大きさを決定することと、
前記第2の関節の前記第3の目標位置として、前記円の円周上のポイントを選択することと、
を含む、第3の目標位置を決定することと、
前記ロボットの制御システムに対して、各関節の各目標位置に基づいて、各関節が前記関節の前記目標位置に位置付けられると共に前記エンドエフェクタが前記エンドエフェクタの前記目標エンドエフェクタ位置及び前記目標向きに位置付けられるように前記ロボットのリンクを前記制御システムに調整させる移動データを提供することと、
を含む方法。
【請求項2】
前記円の前記位置及び大きさを決定することは、前記第1の関節と前記第2の関節との間の前記距離及び前記第1のリンクと前記第2のリンクとの間の角度に基づいて前記第1の面と前記第2の面との間のオフセット距離を決定することを含む、請求項1に記載の方法。
【請求項3】
前記円の前記位置及び大きさを決定することは、前記第1の関節と前記第2の関節との間の前記距離及び前記第1のリンクと前記第2のリンクとの間の角度に基づいて前記円の半径を決定することを含む、請求項1から2のいずれかに記載の方法。
【請求項4】
前記円は、前記第1のポイントの前記第1の目標位置と前記第1の関節の前記第2の目標位置との間の前記ライン上にある中心を有する、請求項1から3のいずれかに記載の方法。
【請求項5】
前記第2の関節の前記第3の目標位置として、前記円の円周上のポイントを選択することは、
前記円の前記円周に沿って前記第2の関節の前記第3の目標位置の複数の候補位置を識別することと、
各候補位置を評価して、前記候補位置が前記目標姿勢に対する有効解を与えるか否かを判定することと、
前記評価に基づいて、前記目標姿勢に対する有効解を与える所与の候補位置を前記第3の目標位置として識別することと、
を含む、請求項1から4のいずれかに記載の方法。
【請求項6】
候補位置を評価することは、
前記第3のリンクを第4のリンクに接続する第3の関節について、前記候補位置及び前記ロボットの1つ以上の他の関節の位置に基づいて前記第3の関節の1つ以上の位置を決定することと、
前記第3の関節の前記1つ以上の位置の各々について、
(i)前記第3の関節の前記位置と前記候補位置との間のラインと、(ii)前記候補位置と第1の関節の前記第2の目標位置との間のラインとの間の角度を決定することと、
前記角度が前記ロボットの前記第2のリンクと前記第3のリンクとの間のリンク角度に一致するか否かを判定することと、
前記角度が前記ロボットの前記第2のリンクと前記第3のリンクとの間の前記角度に一致する場合はいつでも、前記候補位置が前記目標姿勢に対する有効解を与えると決定することと、
を含む、請求項5に記載の方法。
【請求項7】
各候補位置を評価すること、及び、前記角度が前記ロボットの前記第2のリンクと前記第3のリンクとの間の前記角度に一致するか否かを判定することは、
前記複数の候補位置について、各候補位置ごとに前記決定された角度を表す曲線を生成することと、
前記リンク角度を表すラインと交差する前記曲線上の1つ以上のポイントを決定することと、
各ポイントに対する前記候補位置が前記目標姿勢に対する有効解を与えると判定することと、
を含む、請求項6に記載の方法。
【請求項8】
前記第3のリンクを第4のリンクに接続する第3の関節について、前記候補位置及び前記ロボットの1つ以上の他の関節の位置に基づいて前記第3の関節の1つ以上の位置を決定することは、
前記第3のリンクを前記第4のリンクに接続する第4の関節の第4の目標位置を決定することと、
前記第4のリンクを前記ロボットの第5のリンクに接続する第5の関節の第5の目標位置を決定することであって、前記第4の関節の前記第4の目標位置は第5の関節の前記第5の目標位置に基づいて決定される、第5の目標位置を決定することと、
を含み、前記1つ以上の他の関節は前記第4の関節及び前記第5の関節を含む、請求項5、6、又は7に記載の方法。
【請求項9】
1つ以上のデータ処理装置と、
命令を記憶している1つ以上のコンピュータ可読媒体と、を備えるシステムであって、前記命令は、前記1つ以上のデータ処理装置によって実行された場合、
手首オフセットを有するロボットのエンドエフェクタの目標姿勢を規定する姿勢データを受信することであって、前記姿勢データは前記エンドエフェクタの目標エンドエフェクタ位置及び前記エンドエフェクタの目標向きを指定し、前記エンドエフェクタは前記ロボットの第1のリンクの第1の端部に取り付けられている、姿勢データを受信することと、
前記姿勢データに基づいて、前記第1のリンクの前記第1の端部に位置付けられた第1のポイントの第1の目標位置を決定することと、
前記姿勢データに基づいて、前記第1のリンクを第2のリンクに接続する第1の関節の第2の目標位置を決定することであって、前記第1の関節は、(i)前記第1の端部とは反対側にある前記第1のリンクの第2の端部、及び(ii)前記第2のリンクの第1の端部に位置付けられ、前記第1のリンク及び前記第2のリンクは、前記ロボットの第3のリンクの第1の端部に接続されたオフセット手首を形成する、第2の目標位置を決定することと、
前記第3のリンクの前記第1の端部に位置付けられた第2の関節の第3の目標位置を決定することであって、
(i)前記第1の関節の前記第2の目標位置を含む第1の面であって、(ii)前記第1のポイントの前記第1の目標位置と前記第1の関節の前記第2の目標位置との間のラインが前記第1の面に対して垂直である第1の面を規定することと、
少なくとも前記第1の関節と前記第2の関節との間の距離に基づいて、(i)前記第1の面に対して平行な第2の面内にある円であって、(ii)前記第1の面からオフセット位置に位置付けられている円の位置及び大きさを決定することと、
前記第2の関節の前記第3の目標位置として、前記円の円周上のポイントを選択することと、
を含む、第3の目標位置を決定することと、
前記ロボットの制御システムに対して、各関節の各目標位置に基づいて、各関節が前記関節の前記目標位置に位置付けられると共に前記エンドエフェクタが前記エンドエフェクタの前記目標エンドエフェクタ位置及び前記目標向きに位置付けられるように前記ロボットのリンクを前記制御システムに調整させる移動データを提供することと、
を含む動作を前記1つ以上のデータ処理装置に実行させる、システム。
【請求項10】
前記円の前記位置及び大きさを決定することは、前記第1の関節と前記第2の関節との間の前記距離及び前記第1のリンクと前記第2のリンクとの間の角度に基づいて前記第1の面と前記第2の面との間のオフセット距離を決定することを含む、請求項9に記載のシステム。
【請求項11】
前記円の前記位置及び大きさを決定することは、前記第1の関節と前記第2の関節との間の前記距離及び前記第1のリンクと前記第2のリンクとの間の角度に基づいて前記円の半径を決定することを含む、請求項9及び10のいずれかに記載のシステム。
【請求項12】
前記円は、前記第1のポイントの前記第1の目標位置と前記第1の関節の前記第2の目標位置との間の前記ライン上にある中心を有する、請求項9、10、又は11に記載のシステム。
【請求項13】
前記第2の関節の前記第3の目標位置として、前記円の円周上のポイントを選択することは、
前記円の前記円周に沿って前記第2の関節の前記第3の目標位置の複数の候補位置を識別することと、
各候補位置を評価して、前記候補位置が前記目標姿勢に対する有効解を与えるか否かを判定することと、
前記評価に基づいて、前記目標姿勢に対する有効解を与える所与の候補位置を前記第3の目標位置として識別することと、
を含む、請求項9から12のいずれか1項に記載のシステム。
【請求項14】
候補位置を評価することは、
前記第3のリンクを第4のリンクに接続する第3の関節について、前記候補位置及び前記ロボットの1つ以上の他の関節の位置に基づいて前記第3の関節の1つ以上の位置を決定することと、
前記第3の関節の前記1つ以上の位置の各々について、
(i)前記第3の関節の前記位置と前記候補位置との間のラインと、(ii)前記候補位置と第1の関節の前記第2の目標位置との間のラインとの間の角度を決定することと、
前記角度が前記ロボットの前記第2のリンクと前記第3のリンクとの間のリンク角度に一致するか否かを判定することと、
前記角度が前記ロボットの前記第2のリンクと前記第3のリンクとの間の前記角度に一致する場合はいつでも、前記候補位置が前記目標姿勢に対する有効解を与えると決定することと、
を含む、請求項13に記載のシステム。
【請求項15】
各候補位置を評価すること、及び、前記角度が前記ロボットの前記第2のリンクと前記第3のリンクとの間の前記角度に一致するか否かを判定することは、
前記複数の候補位置について、各候補位置ごとに前記決定された角度を表す曲線を生成することと、
前記リンク角度を表すラインと交差する前記曲線上の1つ以上のポイントを決定することと、
各ポイントに対する前記候補位置が前記目標姿勢に対する有効解を与えると判定することと、
を含む、請求項14に記載のシステム。
【請求項16】
前記第3のリンクを第4のリンクに接続する第3の関節について、前記候補位置及び前記ロボットの1つ以上の他の関節の位置に基づいて前記第3の関節の1つ以上の位置を決定することは、
前記第3のリンクを前記第4のリンクに接続する第4の関節の第4の目標位置を決定することと、
前記第4のリンクを前記ロボットの第5のリンクに接続する第5の関節の第5の目標位置を決定することであって、前記第4の関節の前記第4の目標位置は第5の関節の前記第5の目標位置に基づいて決定される、第5の目標位置を決定することと、
を含み、前記1つ以上の他の関節は前記第4の関節及び前記第5の関節を含む、請求項13、14、又は15に記載のシステム。
【請求項17】
コンピュータプログラムによって符号化された非一時的コンピュータ記憶媒体であって、前記プログラムは命令を含み、前記命令は、ロボットの1つ以上のデータ処理装置によって実行された場合、
手首オフセットを有するロボットのエンドエフェクタの目標姿勢を規定する姿勢データを受信することであって、前記姿勢データは前記エンドエフェクタの目標エンドエフェクタ位置及び前記エンドエフェクタの目標向きを指定し、前記エンドエフェクタは前記ロボットの第1のリンクの第1の端部に取り付けられている、姿勢データを受信することと、
前記姿勢データに基づいて、前記第1のリンクの前記第1の端部に位置付けられた第1のポイントの第1の目標位置を決定することと、
前記姿勢データに基づいて、前記第1のリンクを第2のリンクに接続する第1の関節の第2の目標位置を決定することであって、前記第1の関節は、(i)前記第1の端部とは反対側にある前記第1のリンクの第2の端部、及び(ii)前記第2のリンクの第1の端部に位置付けられ、前記第1のリンク及び前記第2のリンクは、前記ロボットの第3のリンクの第1の端部に接続されたオフセット手首を形成する、第2の目標位置を決定することと、
前記第3のリンクの前記第1の端部に位置付けられた第2の関節の第3の目標位置を決定することであって、
(i)前記第1の関節の前記第2の目標位置を含む第1の面であって、(ii)前記第1のポイントの前記第1の目標位置と前記第1の関節の前記第2の目標位置との間のラインが前記第1の面に対して垂直である第1の面を規定することと、
少なくとも前記第1の関節と前記第2の関節との間の距離に基づいて、(i)前記第1の面に対して平行な第2の面内にある円であって、(ii)前記第1の面からオフセット位置に位置付けられている円の位置及び大きさを決定することと、
前記第2の関節の前記第3の目標位置として、前記円の円周上のポイントを選択することと、
を含む、第3の目標位置を決定することと、
前記ロボットの制御システムに対して、各関節の各目標位置に基づいて、各関節が前記関節の前記目標位置に位置付けられると共に前記エンドエフェクタが前記エンドエフェクタの前記目標エンドエフェクタ位置及び前記目標向きに位置付けられるように前記ロボットのリンクを前記制御システムに調整させる移動データを提供することと、
を含む動作を前記データ処理装置に実行させる、非一時的コンピュータ記憶媒体。
【請求項18】
前記円の前記位置及び大きさを決定することは、前記第1の関節と前記第2の関節との間の前記距離及び前記第1のリンクと前記第2のリンクとの間の角度に基づいて前記第1の面と前記第2の面との間のオフセット距離を決定することを含む、請求項17に記載の非一時的コンピュータ記憶媒体。
【請求項19】
前記円の前記位置及び大きさを決定することは、前記第1の関節と前記第2の関節との間の前記距離及び前記第1のリンクと前記第2のリンクとの間の角度に基づいて前記円の半径を決定することを含む、請求項17又は18に記載の非一時的コンピュータ記憶媒体。
【請求項20】
前記円は、前記第1のポイントの前記第1の目標位置と前記第1の関節の前記第2の目標位置との間の前記ライン上にある中心を有する、請求項17、18、又は19に記載の非一時的コンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本開示は、一般に、オフセット手首を有するロボットの移動を制御するための逆運動学技法に関する。
【背景技術】
【0002】
[0002] ロボット工学では、ロボットのエンドエフェクタの所望の位置を与える1又は複数の関節用のパラメータを決定するため、逆運動学を用いることができる。エンドエフェクタは、ロボットアームの端部にあるデバイスである。ロボット向けの逆運動学を解くためには多くの技法があり、それらには、代数的技法、反復技法、ヤコビ反転技法(Jacobian inversion techniques)、及びヤコビ転置技法(Jacobian transpose techniques)が含まれる。
【発明の概要】
【0003】
[0003] 本明細書は、手首オフセットを有するロボットの関節パラメータを決定するためのシステム、方法、デバイス、及びその他の技法を記載する。概して、逆運動学ソルバ(inverse kinematic solver)が、ロボットのエンドエフェクタの各目標姿勢のためのロボットの各関節のパラメータを決定することができる。例えばロボットは、ロボットのリンク間に複数の関節を含み、これらの関節の各々がロボットにある程度の運動を与える。関節のパラメータは、関節の位置と関節の角度を含むことができる。
【0004】
[0004] 手首オフセットロボットの関節のパラメータを決定するため、逆運動学ソルバは、ロボットの幾何学的形状に基づいて、より具体的にはロボットの手首オフセットの幾何学的形状に基づいて、円の位置と大きさを決定することができる。この円の円周は、関節のうち1つ、例えば手首関節の候補位置を表すことができ、これは、エンドエフェクタを目標姿勢に置くための有効解である可能性がある。次いで逆運動学ソルバは、この関節の各候補位置を評価して1つ以上の有効解を見出すことができる。有効解が複数ある場合、逆運動学ソルバはそれらの解のうち1つを選択し、この選択した解に対する関節パラメータを、ロボットの運動を制御する運動コントローラに提供することができる。次いで運動コントローラは、これらの関節パラメータを用いて関節を目標位置及び目標角度へ移動させることができる。
【0005】
[0005] 本文書に記載されている技法は、最初の推測なしに、手首オフセットロボットのエンドエフェクタの所与の目標姿勢に対する全ての解を決定することができる。これによって、有効解が決定される速度を上昇させ、有効解が決定されることを保証し、有効解の決定における無駄な時間と処理リソースを低減することができる。
【0006】
[0006] 本明細書に記載されている主題のいくつかの実施例は、手首オフセットを有するロボットのエンドエフェクタの目標姿勢を規定する姿勢データを受信することを含む。姿勢データは、エンドエフェクタの目標エンドエフェクタ位置及びエンドエフェクタの目標向きを指定し、エンドエフェクタは、ロボットの第1のリンクの第1の端部に取り付けられている。姿勢データに基づいて、第1のリンクの第1の端部に位置付けられた第1のポイントの第1の目標位置を決定する。姿勢データに基づいて、第1のリンクを第2のリンクに接続する第1の関節の第2の目標位置を決定する。第1の関節は、(i)第1の端部とは反対側にある第1のリンクの第2の端部、及び(ii)第2のリンクの第1の端部に位置付けられている。第1のリンク及び第2のリンクは、ロボットの第3のリンクの第1の端部に接続されたオフセット手首を形成する。第3のリンクの第1の端部に位置付けられた第2の関節の第3の目標位置を決定する。この決定することは、(i)第1の関節の第2の目標位置を含む第1の面であって、(ii)第1のポイントの第1の目標位置と第1の関節の第2の目標位置との間のラインが第1の面に対して垂直である第1の面を規定することと、少なくとも第1の関節と第2の関節との間の距離に基づいて、(i)第1の面に対して平行な第2の面内にある円であって、(ii)第1の面からオフセット位置に位置付けられている円の位置及び大きさを決定することと、第2の関節の第3の目標位置として、円の円周上のポイントを選択することと、を含む。各関節の各目標位置に基づいて、ロボットの制御システムに移動データを提供する。移動データは、各関節が関節の目標位置に位置付けられると共にエンドエフェクタがエンドエフェクタの目標エンドエフェクタ位置及び目標向きに位置付けられるようにロボットのリンクを制御システムに調整させる。
【0007】
[0007] これら及びその他の実施例は、任意選択的に以下の特徴のうち1つ以上を含むことができる。円の位置及び大きさを決定することは、第1の関節と第2の関節との間の距離及び第1のリンクと第2のリンクとの間の角度に基づいて第1の面と第2の面との間のオフセット距離を決定することを含み得る。
【0008】
[0008] 円の位置及び大きさを決定することは、第1の関節と第2の関節との間の距離及び第1のリンクと第2のリンクとの間の角度に基づいて円の半径を決定することを含み得る。円は、第1のポイントの第1の目標位置と第1の関節の第2の目標位置との間のライン上にある中心を有し得る。
【0009】
[0009] 第2の関節の第3の目標位置として、円の円周上のポイントを選択することは、円の円周に沿って第2の関節の第3の目標位置の複数の候補位置を識別することと、各候補位置を評価して、候補位置が目標姿勢に対する有効解を与えるか否かを判定することと、評価に基づいて、目標姿勢に対する有効解を与える所与の候補位置を第3の目標位置として識別することと、を含み得る。
【0010】
[0010] 候補位置を評価することは、第3のリンクを第4のリンクに接続する第3の関節について、候補位置及びロボットの1つ以上の他の関節の位置に基づいて第3の関節の1つ以上の位置を決定することを含み得る。第3の関節の1つ以上の位置の各々について、(i)第3の関節の位置と候補位置との間のラインと、(ii)候補位置と第1の関節の第2の目標位置との間のラインとの間の角度を決定する。この角度がロボットの第2のリンクと第3のリンクとの間のリンク角度に一致するか否かについて判定する。角度がロボットの第2のリンクと第3のリンクとの間の角度に一致する場合はいつでも、候補位置が目標姿勢に対する有効解を与えると決定する。
【0011】
[0011] 各候補位置を評価すること、及び、角度がロボットの第2のリンクと第3のリンクとの間の角度に一致するか否かを判定することは、複数の候補位置について、各候補位置ごとに決定された角度を表す曲線を生成することと、リンク角度を表すラインと交差する曲線上の1つ以上のポイントを決定することと、各ポイントに対する候補位置が目標姿勢に対する有効解を与えると判定することと、を含み得る。
【0012】
[0012] 第3のリンクを第4のリンクに接続する第3の関節について、候補位置及びロボットの1つ以上の他の関節の位置に基づいて第3の関節の1つ以上の位置を決定することは、第3のリンクを第4のリンクに接続する第4の関節の第4の目標位置を決定することと、第4のリンクをロボットの第5のリンクに接続する第5の関節の第5の目標位置を決定することと、を含み得る。第4の関節の第4の目標位置は、第5の関節の第5の目標位置に基づいて決定され得る。1つ以上の他の関節は、第4の関節及び第5の関節を含み得る。
【0013】
[0013] 前述の主題の様々な特徴及び利点が、図面に関連付けて以下に記載される。本明細書及び特許請求の範囲に記載されている主題から、更に別の特徴及び利点も明らかである。
【図面の簡単な説明】
【0014】
図1】[0014] ロボットコントローラが手首オフセットロボットの移動を制御する例示的な環境を示す。
図2】[0015] 図1のロボットの関節フレームを示す。
図3】[0016] 図1のロボットの関節間の例示的な幾何学的関係と、図1のロボットの関節の位置を決定するための例示的な円を示す。
図4】[0017] 図1のロボットの関節の位置の例示的な解を示す図である。
図5】[0018] 図1のロボットの関節間の角度の例示的なグラフを示す。
図6】[0019] ロボットの関節のパラメータを決定し、それらのパラメータを用いてロボットの移動を制御するための例示的なプロセスのフロー図を示す。
図7】[0020] ロボットの関節のパラメータを決定するための例示的なプロセスのフロー図を示す。
【0015】
[0021] 様々な図において、同様の参照番号及び名称は同様の要素を示す。
【発明を実施するための形態】
【0016】
[0022] 概して、本文書は、ロボットの関節のパラメータを決定し、これらのパラメータを用いてロボットの移動を制御するためのシステム、方法、デバイス、及び技法を記載する。ロボットは、それぞれがロボットに可動域(range of motion)を与える関節によって接続された複数のリンクを含むことができる。ロボットは、リンクのうち1つに、例えばリンクのうち1つの端部に取り付けられた、例えばツールのようなエンドエフェクタも含み得る。ロボットコントローラは、エンドエフェクタの目標姿勢を指定するデータを受信することができる。このデータは、エンドエフェクタの目標位置と目標向きを指定できる。ロボットコントローラは、エンドエフェクタを目標姿勢にするロボット関節のパラメータ、例えば位置と角度を決定し、これらのパラメータで規定された目標位置と向きにロボットの関節を移動させる。
【0017】
[0023] ロボットコントローラは、幾何学的代数に基づく逆運動学技法を用いてロボット関節のパラメータを決定する。このような技法は、ロボットの関節のパラメータを決定する際に、ロボットのリンクの可動域を表す、例えば線、円、面、及び球のような幾何学的物体の交差を利用する。
【0018】
[0024] 一例において、ロボットコントローラは、例えばロボットのアームの端部又はロボットのエンドエフェクタ等、ロボットの要素の目標姿勢を規定する姿勢データを受信することができる。ロボットは手首オフセットを有し得る。姿勢データは、ロボットの要素の目標位置及び/又はこの要素の目標向きを示すことができる。
【0019】
[0025] ロボットコントローラは、姿勢データに基づいて、ロボットの1つ以上のリンク及び/又はロボットの1つ以上の関節の各目標位置を決定することができる。特定の関節について、ロボットコントローラは、その関節の目標位置を決定するため、ロボットの幾何学的形状に基づいて1つ以上の面を規定し、それらの面のうち1つの上に円を決定することができる。円上の各ポイントは、この特定の関節の候補位置である。ロボットコントローラは、この特定の関節の目標位置として、円上の特定のポイントを選択することができる。ロボットコントローラは、ロボットの制御システムに対して、各関節の各目標位置に基づいて、これらの位置に従ってロボットのリンクを制御システムに調整させる移動データを提供することができる。
【0020】
[0026] 図1は、ロボットコントローラ110が手首オフセットロボット120の移動を制御する例示的な環境100を示す。この例示的なロボット120は6自由度ロボットアームであり、アームに6つの単軸回転関節141~146を有する。本文書に記載されている技法は概ねオフセット手首を有する6自由度ロボットアームについて説明されるが、これらの技法はオフセット手首を有する他のロボットアームにも同様に適用できる。
【0021】
[0027] ロボット120は、そのベース131をリンク132の端部に接続する関節141を含む。この関節141は、そのベース131を中心としてロボット120のアームの残り部分を回転させることができる。また、ロボット120は、リンク132の端部と上腕リンク133の端部との間に肩関節142も含む。肩関節142はリンク132を上腕リンク133に接続し、肩関節142の上方のアームの残り部分を上下に移動させる。また、ロボット120は、上腕リンク133の端部と前腕リンク134の端部との間にひじ関節143も含む。ひじ関節143は、ひじ関節143の上方のアームの残り部分を上下に移動させる。また、ロボット120は、ひじ関節143の上方に関節144も含む。この関節144は前腕リンク134を回転させる。ひじ関節143及び関節144は、上腕リンク133を前腕リンク134に接続する。
【0022】
[0028] また、ロボット120は、前腕リンク134の端部と手首オフセットリンク135の端部との間に手首関節145も含む。手首関節145は、前腕リンク134を手首オフセットリンク135に接続し、手首オフセットリンク135を回転させる。手首オフセットリンク135は、前腕リンク134の端部の関節145に手首リンク136を接続する。この手首オフセットリンク135は、手首リンク136と前腕リンク134との間にオフセットを生成する。すなわち、手首オフセットリンク135により提供されるオフセットのため、手首オフセットリンク137は前腕リンク134と一直線ではない。
【0023】
[0029] また、ロボットは、手首リンク136の端部を手首オフセットリンク135の端部に接続する関節146も含む。関節146は、手首リンク136及び取り付け機構137に取り付けられたエンドエフェクタを回転させる。手首リンク136の他方の端部において、ロボット120は、手首リンク136のこの端部にエンドエフェクタを取り付けるための搭載関節147及び取り付け機構137を含む。エンドエフェクタは、例えば顎状部、爪状部、磁石、ピン、接着面等の把持部、又は、例えばねじ回し、レンチ等のツール、又は他の適切なエンドエフェクタとすることができる。例えばロボット120は、エンドエフェクタを用いてタスクを実行する産業用ロボットとすることができる。
【0024】
[0030] 各関節141~146は、ロボットコントローラ109から受信した制御データ109に基づいてリンク132~136を目標位置及び目標向きに移動させるアクチュエータを含むことができる。例えばアクチュエータは、リンク132~136を目標位置及び目標向きに移動させるモータ又は他のエネルギ源を含み得る。
【0025】
[0031] ロボットコントローラ110は、ロボット120の目標移動を指定するデータ103に基づいて制御データ109を発生する。例えばこのデータ103は、手首リンク136に取り付けられたエンドエフェクタの目標姿勢を指定することができる。目標姿勢を指定するデータは、エンドエフェクタの位置を指定するデータ及びエンドエフェクタの向きを指定するデータを含み得る。目標移動103を指定する制御データ109は、制御システムから、例えば特定のタスクの実行をロボットに命令する制御システムから受信することができる。タスクに基づいて、制御システムは、目標移動を指定するデータ103を決定し、目標移動を指定するデータ103をロボットコントローラ110に提供することができる。
【0026】
[0032] あるいは、ロボットコントローラ110が、ロボット120の1つ以上のタスクに基づいてエンドエフェクタの1つ以上の目標姿勢を決定することができる。例えば、エンドエフェクタが特定の経路に沿って移動する予定である場合、ロボットコントローラ110は、その特定の経路に沿った複数のポイントでのエンドエフェクタの姿勢を決定することができる。
【0027】
[0033] また、ロボットコントローラ110は、ロボットのロボット特徴を指定するデータ101に基づいて制御データ109を生成することができる。例えばロボット特徴データ101は、各リンク132~136及び/又はエンドエフェクタの長さ、幅、及び/又は厚さのような寸法、各関節141~146の可動域、並びに、各リンク132~136、各関節141~146、及びエンドエフェクタの相対的な幾何学的形状を指定するデータを含み得る。
【0028】
[0034] ロボットコントローラ110は逆運動学ソルバ111を含む。逆運動学ソルバ111は、ロボット特徴データ101及び目標移動を指定するデータ103、例えばエンドエフェクタの目標姿勢を指定するデータに基づいて、ロボットの関節141~146のうち1つ以上の関節パラメータ107を決定する。各関節141~146のパラメータは、位置と角度を含むことができる。関節の角度は、その関節が接続する2つのリンク間の角度である。例えば、関節144の角度は、前腕リンク134と上腕リンク133との間の角度である。
【0029】
[0035] 逆運動学ソルバ111は、共形幾何学的代数技法を用いて、エンドエフェクタの目標姿勢に基づく各関節の関節パラメータを決定することができる。逆運動学ソルバ111は、エンドエフェクタの目標姿勢及びエンドエフェクタの寸法に基づいて搭載関節147の目標位置Pを決定する。例えば、エンドエフェクタがマイナスのねじ回しである場合、搭載関節147の目標位置Pは、このねじ回しの端部の目標位置から、ねじ回しの長さに等しい(又はこの長さに基づく)距離だけ離れている。また、搭載関節147の目標位置Pは、目標姿勢データにより指定されたねじ回しの目標向きにも基づいている。例えば、ねじ回しの目標向きがまっすぐ上を向いている場合、関節146の目標位置Pは、ねじ回しの端部の目標位置の真下にあり、ねじ回しの長さに等しい(又はこの長さに基づく)距離だけねじ回しの目標端部から離れている。
【0030】
[0036] 逆運動学ソルバ111は、関節146の目標位置P、例えば関節146の回転中心のような関節146上のポイントの目標位置を、搭載関節147と関節146との間の距離に基づいて決定することができる。例えば、この距離は手首リンク136の長さに等しいか又はこの長さに基づくことができる。また、関節146の目標位置Pは、エンドエフェクタの目標向きにも基づいている。すなわち目標位置Pは、搭載関節147から延出している軸に沿っている。これについては以下で図3を参照して更に説明する。
【0031】
[0037] 逆運動学ソルバ111は、関節145の目標位置P、例えば関節145の回転中心のような関節145上のポイントの目標位置を、関節145、146、及び搭載関節147の幾何学的関係に基づいて決定される円を用いて決定することができる。例えば逆運動学ソルバ111は、ポイントP45を中心とする円を決定できる。逆運動学ソルバ111は、関節146の目標位置Pを含む第1の面を決定することができる。第1の面は、関節146の目標位置Pから搭載関節147の目標位置Pの方に、又はその反対の方向に延出している法線ベクトルPを有し得る。また、第1の面は、目標位置Pが第1の面上にあるようにこれを通り抜けることができる。
【0032】
[0038] また、逆運動学ソルバ111は、第1の面に平行でありポイントP45を含む第2の面を決定することができる。第2の面は、関節146の目標位置PとポイントP45との間の距離だけ第1の面からオフセットされ得る。このため逆運動学ソルバ111は、第2の面上に位置付けられポイントP45が中心である円の大きさを決定することができる。この円の半径は以下の関係式1を用いて決定できる。
【0033】
【数1】
【0034】
[0039] 関係式1において、rは円の半径であり、αは、PからP45に延出するラインとPからPに延出するラインとの間の角度である。これは図3に示されている。関節145の目標位置Pの全ての解はこの円上にある。逆運動学ソルバ111は、Pの候補位置と関節146の目標位置Pとの間のライン、及びPの候補位置と関節144の目標位置Pとの間のラインによって形成された角度に基づいて、Pの候補位置を評価することができる。この角度は図3に示され、以下で記載される。この角度がロボット120の幾何学的形状に対応する場合、候補Pは有効解である。Pの候補位置と目標位置Pとの間のラインを決定し、このラインを用いて角度がロボット120の幾何学的形状に対応するか否かを判定するため、逆運動学ソルバ111は、Pの候補位置に対する関節144の目標位置Pの1又は複数の解を決定する。
【0035】
[0040] 逆運動学ソルバ111は、候補位置P及び共形幾何学的代数を用いて、関節142~144の目標位置P~Pをそれぞれ決定することができる。手首オフセットを含まないロボットのための共形幾何学的代数を用いた例示的な逆運動学技法は、Adam L、Kleppe等による「Inverse Kinematics for Industrial Robots Using Conformal Algebra」に記載されている。これは援用により本願に含まれる。以下で、ロボット120の関節フレーム200を図示する図2を参照して、関節パラメータを決定するための技法を説明する。
【0036】
[0041] 共形幾何学的代数において、3次元ユークリッド空間は2つの直交する次元によって拡張される。ユークリッド空間は、直交単位ベクトルe、e、及びeによって記述される。ユークリッド空間内のベクトルa及びbは、a=a+a+a、及びb=b+b+bによって与えられる。5次元共形空間を得るため、3次元ユークリッド空間は、基底ベクトルe及びeによって、e・e=1及びe・e=-1になるように拡張される。共形空間内の多重ベクトルAは、基底要素の線形結合の場合、{1,e,e,e,e,e,e,...,e}になる。2つの多重ベクトルA及びBの幾何学的な積は、AB=A・B+A∧Bによって与えられる。ユークリッドポイントpは、共形空間において、多重ベクトル
【0037】
【数2】

によって表される。
【0038】
[0042] 関節142~144のそれぞれの目標位置P~Pを決定するための入力パラメータは、エンドエフェクタの位置ベクトルp、接近ベクトルa、スライドベクトル(slide vector)s、及び法線ベクトルnである。位置ベクトルpの共形表現は、以下の関係式2によって与えられる。手首ポイントを通るロボット断面である垂直面Πは、以下の関係式3によって与えられる。関係式3において、Pは、上記で決定したPの候補位置である。
【0039】
【数3】
【0040】
[0043] ロボット120は、関節142~144の目標位置P~Pがどのように決定されるかに影響を及ぼす様々な構成を有し得る。前面構成は、ロボット120の前面がエンドエフェクタに向かい合っている場合に対応し、後面構成は、ロボットの後面がエンドエフェクタに向かい合っている場合に対応する。ひじ上げ構成はひじ関節を上げている場合に対応し、ひじ下げ構成はひじ関節を下げている場合に対応する。手首反転(wrist flip)構成は、ロボット120の手首リンク136が反転されている時に対応し、反転なし構成は、ロボット120の手首リンク136が反転されていない時に対応する。これらの構成は、関係式4~6を用いて以下のパラメータによって選択される。
【0041】
【数4】
【0042】
[0044] 肩関節142の目標位置Pは、以下の関係式7~10を用いて1つの球と2つの面を交差させることによって見出されるポイント対Q上にある。パラメータd及びa図2に示されている。パラメータdは肩関節142の高さであり、パラメータaは、ベース131の中心からずれている肩関節142の横方向オフセット距離である。
【0043】
【数5】
【0044】
[0045] ポイント対Qは、肩関節142の目標位置Pに対する2つの可能な解を有する。第1の解はロボット120の前面構成に対応し、第2の解はロボット120の後面構成に対応する。逆運動学ソルバ111は、以下の関係式11及び12を用いて肩関節142の目標位置Pの解を選択することができる。
【0045】
【数6】
【0046】
[0046] ひじ関節143の目標位置Pは円C上にある。2つの球
【0047】
【数7】
【0048】
の交差は、以下の関係式13及び14によって規定される。
【0049】
【数8】
【0050】
[0047] 関係式13及び14において、球Sは肩関節142の選択された目標位置Pに中心位置を有し、球Sは手首関節145のPの候補位置の中心位置を有する。円Cと垂直面Πとの交差は、逆運動学ソルバ111が以下の関係式15及び16を用いて見出すポイント対Qを含む。
【0051】
【数9】
【0052】
[0048] ポイント対Qは、ひじ関節143の目標位置Pに対する2つの可能な解を有する。逆運動学ソルバ111は、ロボット120がひじ上げ構成又はひじ下げ構成のどちらになるかに基づいて、2つのポイントからひじ関節143の目標位置Pを選択することができる。例えば逆運動学ソルバ111は、以下の関係式17を用いてひじ関節143の目標位置Pを選択できる。
【0053】
【数10】
【0054】
[0049] 逆運動学ソルバ111は、ひじ関節143の目標位置P及び手首関節145のPの候補位置に基づいて、関節144の目標位置Pを決定することができる。逆運動学ソルバ111は、以下の関係式18~21を用いて、関節144の目標位置Pに対するポイント対Qを決定できる。
【0055】
【数11】
【0056】
[0050] 次いで逆運動学ソルバ111は、ロボット120の幾何学的形状と以下の関係式22に基づいて、ポイント対Qのポイントから選択することができる。
【0057】
【数12】
【0058】
[0051] いくつかの実施例において、逆運動学ソルバ111は、手首関節145のPの候補位置が有効解であるか否かを判定するため、目標位置Pに対する4つの可能な解のそれぞれを評価することができる。4つの可能な解は、手首が反転しておらずひじが上がっている第1の構成における第1のポイントと、手首が反転しておらずひじが下がっている第2の構成における第2のポイントと、手首が反転しておりひじが上がっている第3の構成における第3のポイントと、手首が反転しておりひじが下がっている第4の構成における第4のポイントと、を含む。Pの各候補位置を評価し、これらの候補から目標位置Pを選択するための技法は、図1及び図3から図5を参照して記載される。図3は、ロボット120の関節間の例示的な幾何学的関係300と、ロボット120の関節145の位置Pを決定するための例示的な円330を示す。図4は、ロボット120の関節の位置に対する例示的な解を示す図400である。図5は、図1のロボットの関節間の角度の例示的なグラフ500を示す。
【0059】
[0052] 図3を参照すると、面310は上述した第1の面に相当し、面320は上述した第2の面に相当する。逆運動学ソルバ111は、関節146の目標位置Pを含む第1の面310と、第1の面310に平行でありポイントP45を含む第2の面320とを決定することができる。また、逆運動学ソルバ111は、エンドエフェクタの目標向きに基づいて関節146の目標位置Pを決定し、この目標位置が手首リンク136の端部から、例えば関節146の目標位置Pから、負のz軸に沿って距離P(目標位置PとPとの間の距離)に位置付けられるようにする。
【0060】
[0053] 逆運動学ソルバ111は、2つの面310及び320を決定することで、ポイントP45に中心がある円330のロケーションと向きを決定できる。距離P45=Pcos(α)がわかっているので、第2の面320は第1の面310に対して距離P45だけオフセットされていると規定できる。このオフセットは、ポイントP45と関節136の目標位置Pとの間の距離である。例えば手首オフセットリンク135の長さであるPの距離、及び角度αは、ロボット120の幾何学的形状に基づいて既知である。逆運動学ソルバ111は、ラインPと第2の面320との交差点としてポイントP45のロケーションを決定できる。上述したように、逆運動学ソルバ111は、上記の関係式1を用いて円330の半径を決定し、従って円330の大きさを決定することができる。
【0061】
[0054] Pの各候補位置は円330の円周上にある。円330は、目標位置P5及び目標位置P6で規定された軸を中心として関節145が回転した場合の、関節145の可能なロケーションを表す。この軸は例えば、関節147が目標位置P6にあり関節146が目標位置P5にあるように手首リンク136が配置されている場合に手首リンク136で規定された軸である。従って、円330は、手首リンク136がこの位置にある場合のP4の目標位置の可能なロケーションを表している。
【0062】
[0055] 図3に1つの候補位置350が示されている。逆運動学111は、円330の円周に沿った各候補位置を評価して、関節145の位置Pに対する有効解を決定することができる。例えば逆運動学ソルバ111は、円350の円周上を反復し、各反復において、その反復でのPの候補位置を評価することができる。複数の有効解があり得るので、逆運動学ソルバ111は、複数の有効解から各有効解を決定し、それらの解のうち1つを選択することができる。
【0063】
[0056] Pの候補位置が有効であるか否かを判定するため、逆運動学ソルバ111は、上述したように関節144の目標位置Pに対する1つ以上の解を決定することができる。この例では、2つの解P3_1及びP3_2図3に示されている。ポイントP3_1は関節144の目標位置Pに対する1つの潜在的な解であり、ポイントP3_2は関節144の目標位置P3に対する1つの潜在的な解である。目標位置Pに対する各解について、逆運動学ソルバ111は次に、Line45(Pの候補位置と目標位置Pとの間のライン)及びPの候補位置とPの解に対するLine34(Pの解とPの候補位置との間のライン)によって形成された角度βを決定することができる。この例では、角度βは、Line45とポイントP3_1に対するLine34とによって形成されている。
【0064】
[0057] 逆運動学ソルバ111は次いで、Pの解のうち少なくとも1つとPの候補位置との角度βがロボット120の幾何学的形状に対応するか否かを決定できる。すなわち、逆運動学ソルバ111は、角度βがロボット120の前腕リンク134と手首オフセットリンク135との間の角度に一致するか否かを決定できる。一致する場合、Pの候補位置は有効解を提供する。Pの解のどれもロボット120の幾何学的形状に対応しない場合、逆運動学ソルバ111は、Pの候補位置が有効解を提供しないと決定することができる。
【0065】
[0058] 図4を参照すると、この図400は、図1のロボットの関節の位置に対する例示的な解を示す。具体的に述べると、図400は、関節145のPの無効な候補位置431及び関節145のPの有効な候補位置432を示す。P4の候補位置は双方とも円405の上にある。円405は、上述したように、中心P45(図示せず)を有し、リンク134~135及び関節145及び146によって形成されたオフセット手首の幾何学的形状を用いて決定されている。
【0066】
[0059] Pの候補位置431が無効であることを決定するため、逆運動学ソルバ111は、Pの候補位置431及び位置P(例えばPの候補位置431について決定された4つの可能な位置Pのうち1つ)について、Line45410とLine34420との間の角度を決定し、この決定した角度をロボット120の幾何学的形状の対応する角度と比較する。この例では、2つのライン間の角度のため、Line34420はPの有効位置440を通過しない。従って、関節145のPの候補位置431は有効でない。これに対して、Pの候補位置432からのラインは、このラインと位置Pの候補及びPからのラインとの角度のため、P3の有効位置440を通過する。従って、Pの候補位置432の角度は有効である。
【0067】
[0060] 図5を参照すると、このグラフ500はロボット120の関節間の角度を示す。具体的に述べると、グラフ500は、ロボット120のエンドエフェクタの目標姿勢について、関節145のPの候補位置に対する関節144の目標位置Pの4つの解の各々の曲線を示す。グラフ500のx軸は、ロボットにおいてP45に中心を有する円の360度をラジアン(1~6.28)で示す。例えば、この円は図3の円330又は図4の円405とすることができる。逆運動学ソルバ111は、ゼロ度に対応する円上のポイントを選び、円の円周を特定の方向に(例えば時計回り又は反時計回り)進んで、Pの候補位置を識別することができる。グラフ500のy軸は、複数の可能な解のそれぞれについて、Line34とLine45との間に形成された角度を表す。
【0068】
[0061] 具体的に述べると、各曲線511~514は、(a)Pの解及び円に沿ったPの各候補位置の間に延出するLine34と、(b)関節146の目標位置P及び円に沿ったPの各候補位置の間に延出するLine45と、の間に形成された角度を表す。例えば曲線511は、位置Pに対する1つの解及び円に沿ったPの各候補位置についてLine34とLine45との間の角度を表す。P4の候補位置が円の周りで変化するにつれて、グラフ500で示されているように、2つのライン間の角度も変化する。曲線511では、位置Pはその解に対して一定である。他の曲線512~513の各々も、Pの異なる解について同様の角度を表す。
【0069】
[0062] グラフ500は、ロボット120における有効角度を表すライン510を含む。この有効角度は、ロボット120の前腕リンク134と手首オフセットリンク135との間の角度であり、ロボット120の幾何学的形状に基づいて決定されるか又はロボット120の製造業者によって指定することができる。このラインと各曲線が交差するポイントが、位置P及びPに対する有効解である。例えば、曲線513及び514は双方とも参照番号520で示されたエリアに有効解を有する。この例では、曲線514で表された位置P及び曲線514で表された位置Pに対して、円に沿った約1.1ラジアンのPの位置が有効である。
【0070】
[0063] 逆運動学ソルバ111は、どの解がライン510と交差するか決定するためゼロ交差技法を用いることができる。この技法はゼロ交差としてライン510を使用できる。ゼロ交差技法を用いて、逆運動学ソルバ111は、各曲線511~514がライン510と交差する1又は複数のポイントを決定し、そのようなポイントのそれぞれで、そのポイントに対応する候補Pの位置を決定することができる。そのポイントでライン510と交差する曲線に基づいて位置Pがわかる。ある曲線に対する位置Pは一定であり、Pの決定された解のうち1つに対応するからである。
【0071】
[0064] 逆運動学ソルバ111が円を横断する粒度は調整可能とすることができる。例えば逆運動学ソルバ111は、例えば0度、1度、2度、・・・、360度のように1度ずつ、又は1度より小さい角度ずつ、又は別の適切な粒度で、Pの候補位置を評価することができる。いくつかの実施例において、逆運動学ソルバ111は、例えば10度ずつ又は20度ずつのようにより粗い粒度を使用できる。逆運動学ソルバ111は、Pの2つの候補位置の間で曲線がライン510と交差したと判定した場合、角度が有効である(例えばその曲線がライン510と交差する)Pの候補位置が見つかるまで、Pのその2つの候補位置の間でPのより多くの候補位置を評価することができる。例えば逆運動学ソルバ510は、円を横断している場合よりもPの2つの候補位置の間で検索を行っている場合の方が細かい粒度を使用できる。このように逆運動学ソルバ111は、評価するPの候補位置の数を抑えることで、迅速に、かつ少ない計算リソースを用いてPの有効位置を見つけることができる。
【0072】
[0065] この例では、エンドエフェクタの目標姿勢についてP及びPに対する複数の異なる有効解がある。逆運動学ソルバ111(又は運動コントローラ113のような別のコンポーネント)は、最適化基準を用いて解のうち1つを選択することができる。最適化基準は、ロボット120が移動中に衝突する可能性のある障害物に関連する文脈基準、及び/又はロボット120の1つ以上の以前の構成に関連する履歴基準を含むことができる。例えば運動コントローラ113は、ロボットの現在の構成から有効解によって規定された新しい構成に移動する場合に障害物を最良に回避する有効解を選択できる。別の例では、運動コントローラ113は、例えばエンドエフェクタ又は手首関節の最少量の移動を生じるロボット120の現在の構成に最も近い有効解を選択できる。
【0073】
[0066] 関節145の目標位置Pと、それに対応する関節144の位置Pに対する解を選択した後、逆運動学ソルバ111は、関節142、143、146、及び147の対応する目標位置P、P、P、及びPを用いることができる。上述したように、逆運動学ソルバ111は、エンドエフェクタの目標位置及び目標向きに基づいて決定された目標位置P及びPを決定する。逆運動学ソルバ111は、候補を評価する場合にPの各候補位置に対して目標位置P及びPを決定する。Pの候補位置が選択された場合、候補の評価中に決定された目標位置P及びPをロボットコントローラ110によって用いて、ロボット120を目標姿勢に置くことができる。
【0074】
[0067] また、逆運動学ソルバ110は関節141~146の角度も決定する。逆運動学ソルバ110は、各関節141~146の回転面に基づいてこれらの角度を決定することができる。例えば逆運動学ソルバ110は、関節141~146の回転を規定するベクトルに基づいてこれらの角度を決定できる。ポイントP1x=C(d)、関係式23~28、及び表1を用いて、これらの角度を決定することができる。
【0075】
【数13】
【0076】
[0068] 図2に戻ると、関節141の回転であるθの回転面は
【0077】
【数14】
【0078】
である。この回転面はロボット120の水平ベース面である。逆運動学ソルバ111は、垂直面Π及び以下の関係式27を用いてθ及びθの回転面を決定することができる。
【0079】
【数15】
【0080】
[0069] θの回転面は関節141の回転面であり、θの回転面は関節143の回転面である。逆運動学ソルバ111は、L34及び以下の関係式24を用いて、関節144の回転面である関節θの回転面を決定することができる。関係式24において、パラメータLはL34に等しい。
【0081】
【数16】
【0082】
[0070] 関節145の回転面であるθの回転面は、面L34∧Pに平行である。また、θの回転面は、手首が反転しているか否か、例えばkfnに依存する。関節146の回転面であるθの回転面は、
【0083】
【数17】
【0084】
である。逆運動学ソルバ111は、以下の表1に提供されているパラメータを用いて関節141~146の関節角を生成することができる。
【0085】
【表1】
【0086】
[0071] 図1に戻ると、逆運動学ソルバ111は、決定した目標位置P~P及び決定した関節角度を関節141~146の関節パラメータ107としてロボットコントローラ110の運動コントローラ113に提供することができる。次いで運動コントローラ113は、関節141~146をそれぞれの目標位置及び角度に移動させる制御データを関節141~146の各々に提供することができる。制御データ109は、関節の1つ以上の関節パラメータを指定するデータを含み得る。例えば、関節141~149の制御データ109は関節141~149の一連の位置及び角度を含むことができ、関節141~149は制御データ109を用いてそれら一連の位置を通して関節141~149の目標位置へ移動することができる。
【0087】
[0072] いくつかの実施例において、運動コントローラ113は、ロボット120の目標移動を指定するデータ103を受信できる。このデータを用いて、運動コントローラ113は、各関節141~149の関節パラメータについて逆運動学ソルバ111に問い合わせることができる。逆運動学ソルバ111は、上述したように関節パラメータを決定し、関節パラメータ107を運動コントローラ113に提供することができる。
【0088】
[0073] 図6は、ロボットの関節のパラメータを決定し、それらのパラメータを用いてロボットの移動を制御するための例示的なプロセス600のフロー図を示す。プロセス600の動作は、例えば1つ以上のデータ処理装置によって実施することができる。例えば、プロセス600の動作は図1のロボットコントローラ110によって実施できる。
【0089】
[0074] 手首オフセットロボットのエンドエフェクタの目標姿勢を規定する姿勢データを受信する(602)。姿勢データは、エンドエフェクタの目標エンドエフェクタ位置及びエンドエフェクタの目標向きを指定できる。エンドエフェクタは、ロボットのリンクの端部に取り付けることができる。例えば、エンドエフェクタはロボットの手首リンクの端部に取り付けることができる。手首リンクは、例えば手首オフセットリンクを用いてロボットの前腕リンクからオフセットさせることができる。ロボットは、6つの単軸回転関節を有する6自由度ロボットアームとすることができる。
【0090】
[0075] ロボットの各関節のパラメータを決定する(604)。パラメータは、関節の位置及び関節の角度を含むことができる。上述したように、パラメータは、ロボットの幾何学的形状及びエンドエフェクタの姿勢データに基づいて、共形幾何学的代数を用いて決定できる。
【0091】
[0076] 具体的に述べると、ロボットのオフセット手首の幾何学的形状及びエンドエフェクタの姿勢データに基づいて、ロボットの手首関節の候補位置のセットを決定することができる。候補位置は、上述したように、オフセット手首の幾何学的形状及びエンドエフェクタの姿勢データに基づいて決定される円上のポイントとすることができる。手首関節の各候補位置について、肩関節の位置及びひじ関節の位置を決定できる。更に、ひじ関節と手首関節との間の関節の1つ以上の位置を決定することができる。
【0092】
[0077] ひじ関節と手首関節との間の関節の1つ以上の位置及びロボットの幾何学的形状に基づいて、手首関節の候補位置の有効解を決定する。例えば、(a)手首関節の候補位置とひじ関節及び手首関節の間の関節に対する解との間に延出するラインと、(b)手首関節の候補位置と手首関節が位置する端部とは反対側の手首オフセットリンクの端部にある関節との間に延出するラインと、の間の角度を決定することができる。この角度がロボットの幾何学的形状に対する有効角と一致する場合、この角度に対応する解は有効であると判定される。上述したように、有効解に対応する関節の位置に基づいて関節の角度を決定することができる。関節パラメータを決定するための例示的なプロセスについては、図7に示し、以下で説明する。
【0093】
[0078] 決定した関節パラメータに基づいて、ロボットにエンドエフェクタを目標姿勢に移動させる(606)。例えば、各関節のアクチュエータに制御データを送信することができる。各関節のアクチュエータは、関節を制御データによって指定された位置へ移動させ、制御データによって指定された角度にする。
【0094】
[0079] 図7は、ロボットの関節のパラメータを決定するための例示的なプロセス700のフロー図を示す。プロセス600の動作は、例えば1つ以上のデータ処理装置によって実施することができる。例えば、プロセス700の動作は図1のロボットコントローラ110によって実施できる。例示的なプロセス700は、図1のロボット120を参照して記載される。しかしながら、例示的なプロセス700を用いて他の手首オフセットロボットの関節パラメータを決定することも可能である。
【0095】
[0080] 姿勢データを受信する(702)。姿勢データは、エンドエフェクタの目標エンドエフェクタ位置及びエンドエフェクタの目標向きを指定できる。エンドエフェクタは、ロボット120のリンクの端部に取り付けることができる。例えば、エンドエフェクタはロボット120の手首リンク136の端部に取り付けることができる。手首リンク136は、例えば手首オフセットリンク135を用いてロボットの前腕リンク134からオフセットさせることができる。ロボット120は、6つの単軸回転関節を有する6自由度ロボットアームとすることができる。
【0096】
[0081] ロボットの第1のリンクの第1の端部に位置付けられた第1のポイントの第1の目標位置を決定する(702)。例えば第1のリンクは、第1の端部及びこの第1の端部とは反対側の第2の端部を含む手首リンク136とすることができる。第1の端部は、この第1の端部にエンドエフェクタを取り付けるための取り付け機構137を含み得る。第1のリンク136の第1の端部に位置付けられた第1のポイントは、例えば第1のリンク136の第1の端部の中央に位置付けられた搭載ポイントP、又は第1のリンク136の第1の端部にある別の適切なポイントとすることができる。
【0097】
[0082] 受信した姿勢データ及びエンドエフェクタの寸法に基づいて、第1のリンク136の第1の端部に位置付けられた第1のポイントの第1の目標位置Pを決定することができる。例えば第1の目標位置Pは、エンドエフェクタの目標位置と、取り付け機構に取り付けられているか又は取り付け機構と同一平面にあるエンドエフェクタ上のポイントとの間の距離に等しい距離だけ、エンドエフェクタの目標位置からオフセットさせることができる。また、第1のリンク136の第1の目標位置Pは、エンドエフェクタが向いている方向とは反対方向にエンドエフェクタの目標位置からオフセットさせることができる。例えば、エンドエフェクタが特定の方向を向いているねじ回しである場合、第1のリンク136の第1の目標位置Pは、ねじ回しが向いている方向とは反対方向にエンドエフェクタの目標位置からオフセットさせることができる。
【0098】
[0083] 第1及び第2のリンクを接続する第1の関節の第2の目標位置を決定する(706)。例えば、第1のリンク136の第2の端部を第1の関節に取り付けることができる。第1の関節は関節146とすることができる。第1の関節146は、第1のリンク136の第2の端部を第2のリンクの第1の端部に取り付ける。第2のリンクは手首オフセットリンク135とすることができる。第1の関節146は第1のリンク136を回転させ、従って第1のリンク136に取り付けられたエンドエフェクタを回転させることができる。
【0099】
[0084] 第1の関節の第2の目標位置は、例えば第1の関節146の回転中心のような第1の関節146上のポイントとすることができる。例えば、第1の関節146の第2の目標位置は第1の関節146の目標位置Pとすることができる。第1の関節146の第2の目標位置Pは、第1のリンク136の第1の目標位置P、及び、手首リンク136の第1の端部(又は第1の端部にある搭載ポイント)と第1の関節146上のポイントとの間の距離に基づいて決定することができる。図3を参照して上述したように、第1の関節の第1の目標位置Pは、エンドエフェクタから負のz軸に沿って位置付けることができる。従って、第1の関節146の第2の目標位置Pは負のz軸に沿っており、第1のリンク136の第1の目標位置Pからある距離だけ離れている可能性がある。
【0100】
[0085] 第3のリンクの第1の端部に位置付けられた第2の関節の第3の目標位置を決定する(708)。第2の関節は、例えば前腕リンク134のような第3のリンクに第2のリンク135を取り付けることができる。例えば、第2の関節は手首関節145とすることができる。第2の関節145は、第2のリンク135及び第1のリンク136を含むオフセット手首を回転させることができる。第2の関節145の第3の目標位置は、目標位置Pとすることができる。第2の関節145の第3の目標位置Pは、第2の関節145の回転中心とすることができ、構成要素である動作710~724を用いて決定できる。
【0101】
[0086] 第1の面を規定する(710)。第1の面は、第1の関節146の第2の目標位置Pを含むことができる。第1のリンク136の第1の端部に位置付けられた第1のポイントの第1の目標位置Pと第1の関節146の第2の目標位置Pとの間のラインは、第1の面に対して垂直である。例えば、上述したように第1の面は、関節146の目標位置Pから搭載関節147の目標位置Pの方に、又はその反対の方向に延出している法線ベクトルPを有し得る。また、第1の面は、第2の目標位置Pが第1の面上にあるようにこれを通り抜けることができる。
【0102】
[0087] 第2の面を規定する(712)。第2の面は第1の面に対して平行であり得る。また、第2の面は第1の面からオフセット位置に位置付けることができる。上述したように、第2の面は、第1の関節146の第2の目標位置PとポイントP45との間の距離だけ第1の面からオフセットさせることができる。このオフセット距離はPcos(α)に等しくすることができる。ここで、Pは第1の関節146と第2の関節145との間の距離であり、角度αは、第1の面に対する法線と第1の関節146から第2の関節146までのラインとの間の角度である。図3に示されているように、第2の面は第1の面から負のz方向にオフセットさせることができる。
【0103】
[0088] 第2の面上の円の位置と大きさを決定する(714)。円の中心はポイントP45とすることができる。円の半径は上記の関係式1を用いて決定できる。上述したように、第2の関節の各候補目標位置はこの円の円周上にある。
【0104】
[0089] 第2の関節145の第3の目標位置Pの候補位置を識別する(716)。候補位置は円上の位置とすることができる。例えば、円の円周上の複数のポイントの各々を、一度に1つずつ又は並行して識別及び評価することができる。最初の候補位置は、円上の特定のポイントで、例えば、円上でゼロ度として規定されたポイント又は円の円周上の別の適切なポイントで、識別することができる。
【0105】
[0090] 第2の関節145の第3の目標位置Pの候補位置に基づいて、第3の関節の1つ以上の位置を決定する(718)。第3の関節は、第3のリンク134を第4のリンクに接続する関節とすることができる。例えば、第4のリンクは上腕リンク133とすることができ、第3の関節はひじ関節144とすることができる。第3の関節の1又は複数の位置を決定するため、第4の関節又は第5の関節の目標位置を見出すことができる。第4の関節は関節143とすることができ、第5の関節は肩関節142とすることができる。第5の関節142の目標位置Pは、上述したように関係式7~12を用いて決定できる。同様に、第4の関節143の目標位置Pは、上述したように関係式13~17を用いて決定できる。
【0106】
[0091] 第3の関節144の1又は複数の位置Pは、第4の関節143の目標位置P及び第2の関節145の第3の目標位置Pの候補位置に基づいて決定することができる。例えば、第3の関節144の1又は複数の位置Pは、上述したように関係式18~22を用いて決定できる。
【0107】
[0092] 第2の関節145の第3の目標位置Pの候補位置に対して、ゼロ又はそれ以上の有効解を決定する(720)。第3の関節144の決定した各位置について、(a)第3の関節144の決定した位置と第2の関節145の第3の目標位置Pの候補位置との間のラインと、(b)第2の関節145の第3の目標位置Pの候補位置と第1の関節146の第2の目標位置Pとの間のラインと、の間の角度を決定する。次いで、この角度がロボット120の幾何学的形状に一致するか否かを判定する。例えば、この角度が前腕リンク134と手首オフセットリンク135との間の角度に一致するか否かを判定する。角度が一致する場合、この解は有効である。角度が一致しない場合、解は無効である。上述したように、ゼロ交差技法を用いて有効解を識別することができる。
【0108】
[0093] 評価するべき第2の関節145の第3の目標位置Pの候補位置が残っているか否かを判定する(722)。残っている場合、プロセス700は動作716に戻り、評価するために別の候補を識別する。
【0109】
[0094] 有効解を選択する(724)。例えば、第2の関節145の第3の目標位置Pの複数の候補位置は1つ以上の有効解を有する可能性がある。例えば上述したように追加の基準を用いて、これらの有効解のうち1つをロボット120の制御に使用するため選択することができる。
【0110】
[0095] 残りの関節パラメータを決定する(726)。選択した有効解に対して、この有効解に対応する関節の目標位置を決定することができる。例えば、第3の関節144のPの有効目標位置及び第2の関節145の有効目標位置Pの決定に用いた第6の関節142の目標位置P及び第5の関節143の目標位置Pを、それぞれ第6の関節142及び第5の関節143のパラメータとして使用できる。同様に、第3の関節144及び第2の関節145の位置P3及びP4に対する有効解を、それぞれ第3の関節144及び第2の関節のパラメータとして使用できる。第1の関節146の第1の目標位置Pを第1の関節146のパラメータとして使用できる。更に、上述したように、関係式23~28及び表1を用いて関節の角度を決定することができる。
【0111】
[0096] 次いで、関節のパラメータを用いてロボットを制御することができる。例えば運動コントローラは、例えば制御データを生成し、その制御データを関節のアクチュエータに送信することにより、各関節の目標位置及び目標角度を用いてそれらの関節を目標位置及び角度に移動させることができる。
【0112】
[0097] 記載されている特徴(features)は、デジタル電子回路において、又はコンピュータハードウェア、ファームウェア、ソフトウェアにおいて、又はそれらの組み合わせにおいて実施することができる。装置は、例えばプログラマブルプロセッサによって実行するため機械可読記憶デバイスのような情報担体で有形に(tangibly)具現化されたコンピュータプログラム製品において実施することができる。方法ステップは、プログラマブルプロセッサが命令のプログラムを実行して、入力データに動作を行うと共に出力を生成することにより記載されている実施例の機能を実行することによって、実行できる。記載されている特徴は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能な1つ以上のコンピュータプログラムにおいて有利に実施することができる。このプログラマブルプロセッサは、データ記憶システム、少なくとも1つの入力デバイス、及び少なくとも1つの出力デバイスからデータ及び命令を受信すると共に、それらにデータ及び命令を送信するように結合されている。コンピュータプログラムは命令のセットであり、コンピュータで直接的に又は間接的に用いられて、特定の動作を実行すること又は特定の結果を生じることができる。コンピュータプログラムは、コンパイル言語又はインタープリタ言語を含む任意の形態のプログラミング言語で書くことができ、スランドアロンプログラム、又はモジュール、コンポーネント、サブルーチン、もしくはコンピュータ環境で用いるのに適した他の単位を含む任意の形態で展開することができる。
【0113】
[0098] 命令のプログラムの実行に適したプロセッサは、一例として、汎用及び専用のマイクロプロセッサ、並びに、任意の種類のコンピュータの唯一のプロセッサ又は複数のプロセッサのうち1つを含む。一般にプロセッサは、リードオンリメモリ又はランダムアクセスメモリ又はそれら双方から命令及びデータを受信する。コンピュータの不可欠な要素は、命令を実行するためのプロセッサと、命令及びデータを記憶するための1つ以上のメモリである。一般にコンピュータは、データファイルを記憶するため1つ以上の大容量記憶デバイスも含むか又はそのようなデバイスと通信を行うよう動作可能に結合される。そのようなデバイスは、内蔵ハードディスク及びリムーバブルディスク等の磁気ディスク、光磁気ディスク、及び光ディスクを含む。コンピュータプログラム命令及びデータを有形に具現化するのに適した記憶デバイスは、あらゆる形態の不揮発性メモリを含む。それらには、一例として、EPROM、EEPROM、及びフラッシュメモリデバイス等の半導体メモリデバイス、内蔵ハードディスク及びリムーバブルディスク等の磁気ディスク、CD-ROM及びDVD-ROMディスク等の光磁気ディスクが含まれる。プロセッサとメモリは、ASIC(特定用途向け集積回路)によって補足するか又はASICに組み込むことができる。
【0114】
[0099] ユーザと相互作用を行うため、特徴は、ユーザに情報を表示するためのCRT(ブラウン管)又はLCD(液晶ディスプレイ)モニタ等の表示デバイスと、キーボードと、マウス又はトラックボール等のポインティングデバイスと、を有するコンピュータ上で実施することができる。ユーザは、キーボード及びポインティングデバイスによってコンピュータに入力を提供できる。更に、そのような動作は、タッチスクリーンフラットパネルディスプレイやその他の適切な機構を介して実施することができる。
【0115】
[0100] 特徴は、データサーバ等のバックエンドコンポーネントを含むか、又はアプリケーションサーバもしくはインターネットサーバ等のミドルウェアコンポーネントを含むか、又はグラフィカルユーザインタフェースもしくはインターネットブラウザを有するクライアントコンピュータ等のフロントエンドコンポーネント、又はそれらの任意の組み合わせを含むコンピュータシステムにおいて実施することができる。システムのこれらのコンポーネントは、通信ネットワークのような任意の形態又は媒体のデジタルデータ通信によって接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、ピアツーピアネットワーク(アドホック又は静的なメンバを有する)、グリッドコンピューティングインフラストラクチャ、及びインターネットを含む。
【0116】
[0001] コンピュータシステムはクライアントとサーバを含むことができる。クライアントとサーバは概して相互に遠隔にあり、典型的には上述したもの等のネットワークを介して相互作用する。クライアントとサーバの関係は、コンピュータプログラムが各コンピュータ上で動作し、相互にクライアントとサーバの関係を有することによって発生する。
【0117】
[0002] 本明細書は多くの特定の実施例の詳細事項を含むが、これらはいずれの発明(inventions)の範囲又は特許請求され得るものの範囲に対する限定としても解釈されず、特定の発明の特定の実施例に固有の特徴の記載として解釈されなければならない。また、別個の実施例の文脈で本明細書に記載されている特定の特徴を、単一の実施例で組み合わせて実施することも可能である。これとは逆に、単一の実施例の文脈で記載されている様々な特徴を、複数の実施例で別個に実施すること、又は任意の適切なサブコンビネーション(subcombination)で実施することも可能である。更に、特徴は、特定の組み合わせで作用するものとして上述され、最初にそのように特許請求されていることがあるが、場合によっては、特許請求された組み合わせからの1つ以上の特徴はその組み合わせから削除される可能性があり、また、特許請求された組み合わせがサブコンビネーション又はサブコンビネーションの変形を対象とすることもある。
【0118】
[0003] 同様に、図面において動作は特定の順序で図示されているが、これは、所望の結果を達成するために、そのような動作が図示されている特定の順序でもしくは順番に実行されること、又は図示されている全ての動作が実行されることが要求されると理解するべきではない。特定の環境では、マルチタスク又は並列処理が有利である可能性がある。更に、上述した実施例における様々なシステムコンポーネントの分離は、全ての実施例でそのような分離が要求されると理解するべきではない。また、記載されているプログラムコンポーネント及びシステムが概して単一のソフトウェア製品に一体化できること、又は複数のソフトウェア製品にパッケージ化できることを理解するべきである。
【0119】
[0104] 以上、主題の特定の実施例について記載した。他の実施例も以下の特許請求の範囲の範囲内である。場合によっては、特許請求の範囲に列挙されている行為(action)は異なる順序で実行され、その場合も所望の結果を達成することができる。更に、添付図面に示されているプロセスは、所望の結果を達成するために、図示されている特定の順序又は順番を必ずしも必要としない。特定の実施例では、マルチタスク又は並列処理が有利である可能性がある。
図1
図2
図3
図4
図5
図6
図7
【国際調査報告】