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

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

▶ オートデスク,インコーポレイテッドの特許一覧

特許7250089ソフトロボットマニピュレータの特異点のない運動パラメータ化
<>
  • 特許-ソフトロボットマニピュレータの特異点のない運動パラメータ化 図1
  • 特許-ソフトロボットマニピュレータの特異点のない運動パラメータ化 図2
  • 特許-ソフトロボットマニピュレータの特異点のない運動パラメータ化 図3
  • 特許-ソフトロボットマニピュレータの特異点のない運動パラメータ化 図4
  • 特許-ソフトロボットマニピュレータの特異点のない運動パラメータ化 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-23
(45)【発行日】2023-03-31
(54)【発明の名称】ソフトロボットマニピュレータの特異点のない運動パラメータ化
(51)【国際特許分類】
   B25J 17/00 20060101AFI20230324BHJP
【FI】
B25J17/00 L
【請求項の数】 12
(21)【出願番号】P 2021156403
(22)【出願日】2021-09-27
(65)【公開番号】P2022061010
(43)【公開日】2022-04-15
【審査請求日】2021-09-27
(31)【優先権主張番号】63/087,839
(32)【優先日】2020-10-05
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/319,502
(32)【優先日】2021-05-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500280087
【氏名又は名称】オートデスク,インコーポレイテッド
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(72)【発明者】
【氏名】メヘラン エブラヒミ
(72)【発明者】
【氏名】ヒョンミン チョン
(72)【発明者】
【氏名】エイドリアン バッチャー
【審査官】臼井 卓巳
(56)【参考文献】
【文献】米国特許出願公開第2016/0016319(US,A1)
【文献】特開2014-180751(JP,A)
【文献】特開2019-058648(JP,A)
【文献】特開2019-166307(JP,A)
【文献】米国特許出願公開第2014/0277741(US,A1)
【文献】米国特許出願公開第2019/0015978(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 3/00-18/06
A61B 1/005
(57)【特許請求の範囲】
【請求項1】
ロボットを制御するためのコンピュータ実装方法であって、前記方法は、
前記ロボットに含まれる連続関節に関連付けられた第1の関節パラメータの第1の値と、前記連続関節に関連付けられた第2の関節パラメータの第1の値を決定することであって、前記第1の関節パラメータは、前記連続関節の柔軟部分の曲げ半径を示し、前記第2の関節パラメータは、前記連続関節の基部に対する前記連続関節の前記柔軟部分の回転を示す、ことと、
前記第1の関節パラメータの前記第1の値と前記第2の関節パラメータの前記第1の値とに基づいて、前記ロボットの端部を最終目標位置に位置決めすることであって、前記端部は、1つまたは複数の目標速度及び/または1つまたは複数の目標加速度で、目標軌道に沿って、前記最終目標位置に位置決めされる、ことと、
を含む、コンピュータ実装方法。
【請求項2】
前記第2の関節パラメータは、前記基部の基部法線ベクトルに対する前記連続関節の前記柔軟部分の前記回転を示す、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記第1の関節パラメータ及び前記第2の関節パラメータは、組み合わされて、前記端部の三次元空間内の一意の位置を示す、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記第1の関節パラメータの前記第1の値と、前記第2の関節パラメータの前記第1の値とを決定することは、目的関数が前記ロボットの少なくとも1つの性能メトリックに関連付けられる制約付き最適化演算を実行することを含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記ロボットの前記少なくとも1つの性能メトリックは、前記端部を前記最終目標位置に位置決めすることに関連付けられ、前記位置決め中に前記ロボットの少なくとも一部分がたどる経路の衝突回避係数、前記ロボットの1つまたは複数のアクチュエータに関連付けられたアクチュエータトルク係数、エネルギー消費係数、及び、時間消費係数、の1つまたは複数を含む、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記第1の関節パラメータの前記第1の値及び前記第2の関節パラメータの前記第1の値を決定することは、前記第1の関節パラメータの第2の値及び前記第2の関節パラメータの第2の値に基づく、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記第1の関節パラメータの前記第2の値及び前記第2の関節パラメータの前記第2の値は、前記連続関節の前記端部の初期位置及び初期の向きを示す、請求項6に記載のコンピュータ実装方法。
【請求項8】
前記第1の関節パラメータの前記第2の値及び前記第2の関節パラメータの前記第2の値は、前記端部の中間目標位置及び中間の向きを示す、請求項6に記載のコンピュータ実装方法。
【請求項9】
前記中間目標位置は、前記端部の初期位置と前記最終目標位置との間に配置される、請求項8に記載のコンピュータ実装方法。
【請求項10】
前記第1の関節パラメータ及び前記第2の関節パラメータの追加の値を、
前記第1の関節パラメータの前記第1の値と前記第1の関節パラメータの第2の値との間を補間して、前記第1の関節パラメータの1つまたは複数の追加の値を生成することと、
前記第2の関節パラメータの前記第1の値と前記第2の関節パラメータの第2の値との間を補間して、前記第2の関節パラメータの1つまたは複数の追加の値を生成することと
によって、
生成することをさらに含む、請求項6に記載のコンピュータ実装方法。
【請求項11】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
ボットに含まれる連続関節に関連付けられた第1の関節パラメータの第1の値と、前記連続関節に関連付けられた第2の関節パラメータの第1の値とを決定するステップであって、前記第1の関節パラメータは、前記連続関節の柔軟部分の曲げ半径を示し、前記第2の関節パラメータは、前記連続関節の基部に対する前記連続関節の前記柔軟部分の回転を示す、ステップと、
前記第1の関節パラメータの前記第1の値と前記第2の関節パラメータの前記第1の値とに基づいて、前記ロボットの端部を最終目標位置に位置決めするステップであって、前記端部は、1つまたは複数の目標速度及び/または1つまたは複数の目標加速度で、目標軌道に沿って、前記最終目標位置に位置決めされる、ステップと、
を実行させる、非一時的コンピュータ可読媒体。
【請求項12】
連続関節を含むロボットと、
命令を記憶するメモリと、
コントローラと、を備えるシステムであって、前記コントローラは、前記メモリに通信可能に結合され、前記命令を実行するとき、
前記ロボットに含まれる連続関節に関連付けられた第1の関節パラメータの第1の値と、前記連続関節に関連付けられた第2の関節パラメータの第1の値とを決定することであって、前記第1の関節パラメータは、前記連続関節の柔軟部分の曲げ半径を示し、前記第2の関節パラメータは、前記連続関節の基部に対する前記連続関節の前記柔軟部分の回転を示す、ことと、
前記第1の関節パラメータの前記第1の値と前記第2の関節パラメータの前記第1の値とに基づいて、前記ロボットの端部を最終目標位置に位置決めさせることであって、前記端部は、1つまたは複数の目標速度及び/または1つまたは複数の目標加速度で、目標軌道に沿って、前記最終目標位置に位置決めされる、ことと、を行うように構成される、システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年10月5日に出願された、「SINGULARITY―FREE KINEMATIC PARAMETERIZATION OF SOFT ROBOT MANIPULATORS」という名称の米国仮特許出願第63/087,839号の優先権を主張する。この関連出願の主題は、参照により本明細書に組み込まれる。
【0002】
様々な実施形態は、一般に、コンピュータサイエンス及びロボット工学に関し、より具体的には、ソフトロボットマニピュレータの特異点のない運動パラメータ化に関する。
【背景技術】
【0003】
ロボットは、繰り返しの多いタスク、人間にとって危険なタスク、及び/または高精度を要するタスクによく採用される。例えば、ロボットは、人間に危険な製造用途や環境で頻繁に実装される。一般的に、ロボットは自動化または半自動化された、プログラム可能な、複雑な平面または三次元の動きが可能な機械である。多くの従来のロボットは、剛性の構成要素(例えば、アクチュエータ、マニピュレータ、及びエンドエフェクタ)を備えて実装されるが、器用さ、可撓性、及び適応性の向上のために、連続体ロボット(また、「ソフトロボット」とも呼ばれる)が開発された。
【0004】
連続体ロボットは通常、有限の長さに沿って連続的に曲げることができる1つまたは複数の関節を含む。これらの連続的に柔軟な関節の設計と機能は、象の鼻やタコの触手などの蛇行した動物の付属肢により着想されている。連続的に柔軟な関節によって提供される追加の柔軟性により、連続体ロボットは雑然とした環境での作業に理想的であり、連続体ロボットは、従来の剛性ロボットと比較して、周囲との相互作用により適応できるようになる。例えば、操作中、連続体ロボットは、近くの物体の周辺に到達したり、衝突を回避するためにその構成を変更したりできる。
【0005】
ロボットを操作するとき、エンドエフェクタを含むロボットの様々な構成要素の向きと位置を決定するために、通常、正確な運動モデルが必要である。ロボットの各構成要素の運動と位置をパラメータ化することにより、運動モデルは、ロボットが実行する特定のタスクに関して、軌道計画、最適な経路決定、及びプログラミングを可能にする。ロボットの従来のパラメータ化スキームは、剛性で、柔軟性のない構成要素を想定しているため、このようなスキームを連続体ロボットに適用することはできない。結果として、連続体ロボットのロボット運動をパラメータ化するための現行の技術には、複数の欠点がある。
【0006】
第1に、連続体ロボットの各関節は、通常、剛性ロボットの関節のほとんどまたは全てより多くの自由度を有するため、連続体ロボットの様々な構成要素に関連付けられた運動と位置のパラメータ化は、従来の剛性ロボットよりも複雑である。その結果、運動計画と逆運動学のための現在の数学的アプローチのほとんどは、多くの自由度を持つ連続体ロボットに適用されるとき、非常に計算コストが高くなる。さらに、これらのタイプの計算が複雑な演算を実行するために必要な追加の時間は、リアルタイムのロボット制御にかなりの遅れをもたらす場合があり、これは、ロボットの性能全体に悪影響を与え得る。
【0007】
第2に、連続体ロボットの位置と運動の解を生成するために行列反転操作に依存する運動計画と逆運動学の従来のアプローチは、特異点の影響を受ける。連続体ロボットの文脈では、特異点は、連続体ロボットの意味のある物理構成に対応する運動モデルのパラメトリック値の特定の組み合わせであるが、逆運動学計算では数学的に失敗に終わる。例えば、連続体ロボットの柔軟関節が直線として配向されているとき、柔軟関節の曲率はゼロと定義される。曲率がゼロの場合、行列の反転に基づく従来の逆運動学的解(例えば、複数の変数のベクトル値関数のヤコビ行列)は、数学的に認識可能な解を提供できない。従って、このようなアプローチは、連続体ロボットでの使用には適していない。
【0008】
第3に、上記の欠点を回避する運動計画と逆運動学の既知のアプローチは、二次元の連続体ロボット運動に限定される。ただし、連続体ロボットの動作を平面運動に制限すると、連続体ロボットの全体的な有用性が大幅に低下する。
【0009】
前述のように、当技術分野で必要とされるのは、連続体ロボットを操作するためのより効果的な技術である。
【発明の概要】
【課題を解決するための手段】
【0010】
ロボットを制御するためのコンピュータ実装方法であって、ロボットに含まれる第1の連続関節に関連付けられた第1の関節パラメータの第1の値と、第1の連続関節に関連付けられた第2の関節パラメータの第1の値とを決定することであって、第1の関節パラメータは、連続関節の柔軟部分の曲げ半径を示し、第2の関節パラメータは、第1の連続関節の基部に対する連続関節の柔軟部分の回転を示す、決定することと、第1の関節パラメータの第1の値及び第2の関節パラメータの第1の値に基づいて、ロボットの端部を最終目標位置に位置決めすることと、を含む方法。
【0011】
先行技術と比較した開示技術の少なくとも1つの技術的利点は、開示技術を用いると、連続体ロボットの運動計画及び運動学的操作をより迅速に実行でき、先行技術のアプローチを使用して達成できるものに比べて少ない計算リソースを使用して実行できることである。別の利点は、一般的な問題として、連続体ロボットに関連付けられた関節パラメータの値を決定するための行列反転操作が実施されないため、開示された技術は、特異点の影響を受けないことである。さらなる利点は、連続体ロボットの各関節が2つの自由度に基づいてパラメータ化されるので、開示技術が三次元での連続体ロボットの運動に容易に適用できることである。これらの技術的利点は、先行技術のアプローチに勝る1つまたは複数の技術的進歩を提供する。
【0012】
様々な実施形態の上記に記載した特徴をより詳細に理解できるように、上記に簡単にまとめた発明の概念を、様々な実施形態を参照してより具体的に記載する、その実施形態の一部を添付の図面に示す。しかしながら、添付図面は、発明の概念の典型的な実施形態だけを示すので、いかなる点でも範囲を制限するものではないこと、また、他の同等に効果的な実施形態があることに留意されたい。
例えば、本願は以下の項目を提供する。
(項目1)
ロボットを制御するためのコンピュータ実装方法であって、上記方法は、
上記ロボットに含まれる第1の連続関節に関連付けられた第1の関節パラメータの第1の値と、上記第1の連続関節に関連付けられた第2の関節パラメータの第1の値を決定することであって、上記第1の関節パラメータは、上記連続関節の柔軟部分の曲げ半径を示し、上記第2の関節パラメータは、上記第1の連続関節の基部に対する上記連続関節の上記柔軟部分の回転を示す、上記決定することと、
上記第1の関節パラメータの上記第1の値と上記第2の関節パラメータの上記第1の値とに基づいて、上記ロボットの端部を最終目標位置に位置決めすることと、
を含む、上記コンピュータ実装方法。
(項目2)
上記第2の関節パラメータは、上記基部の基部法線ベクトルに対する上記連続関節の上記柔軟部分の上記回転を示す、上記項目に記載のコンピュータ実装方法。
(項目3)
上記第1の関節パラメータ及び上記第2の関節パラメータは、組み合わされて、上記端部の三次元空間内の一意の位置を示す、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目4)
上記第1の関節パラメータの上記第1の値と、上記第2の関節パラメータの上記第1の値とを決定することは、目的関数が上記ロボットアームの少なくとも1つの性能メトリックに関連付けられる制約付き最適化演算を実行することを含む、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目5)
上記ロボットアームの上記少なくとも1つの性能メトリックは、上記端部を上記最終目標位置に位置決めすることに関連付けられ、上記位置決め中に上記ロボットの少なくとも一部分がたどる経路の衝突回避係数、上記ロボットアームの1つまたは複数のアクチュエータに関連付けられたアクチュエータトルク係数、エネルギー消費係数、及び、時間消費係数、の1つまたは複数を含む、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目6)
上記第1の関節パラメータの上記第1の値及び上記第2の関節パラメータの上記第1の値を決定することは、上記第1の関節パラメータの第2の値及び上記第2の関節パラメータの第2の値に基づく、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目7)
上記第1の関節パラメータの上記第2の値及び上記第2の関節パラメータの上記第2の値は、上記連続関節の上記端部の初期位置及び初期の向きを示す、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目8)
上記第1の関節パラメータの上記第2の値及び上記第2の関節パラメータの上記第2の値は、上記連続関節の上記端部の中間位置及び中間の向きを示す、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目9)
上記中間目標位置は、上記端部の上記初期位置と上記最終目標位置との間に配置される、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目10)
上記第1の関節パラメータ及び上記第2の関節パラメータの追加の値を、
上記第1の関節パラメータの上記第1の値と上記第1の関節パラメータの第2の値との間を補間して、上記第1の関節パラメータの1つまたは複数の追加の値を生成することと、
上記第2の関節パラメータの上記第1の値と上記第2の関節パラメータの第2の値との間を補間して、上記第2の関節パラメータの1つまたは複数の追加の値を生成することとによって、
生成することをさらに含む、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目11)
命令を記憶する非一時的コンピュータ可読媒体であって、上記命令は、プロセッサによって実行されると、上記プロセッサに、
上記ロボットに含まれる第1の連続関節に関連付けられた第1の関節パラメータの第1の値と、上記第1の連続関節に関連付けられた第2の関節パラメータの第1の値とを決定するステップであって、上記第1の関節パラメータは、上記連続関節の柔軟部分の曲げ半径を示し、上記第2の関節パラメータは、上記第1の連続関節の基部に対する上記連続関節の上記柔軟部分の回転を示す、上記決定するステップと、
上記第1の関節パラメータの上記第1の値と上記第2の関節パラメータの上記第1の値とに基づいて、上記ロボットの端部を最終目標位置に位置決めするステップと、
を実行させる、上記非一時的コンピュータ可読媒体。
(項目12)
上記第2の関節パラメータは、上記基部の基部法線ベクトルに対する上記連続関節の上記柔軟部分の上記回転を示す、上記項目に記載のコンピュータ実装方法。
(項目13)
上記第1の関節パラメータ及び上記第2の関節パラメータは、組み合わされて、上記端部の三次元空間内の一意の位置を示す、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目14)
上記第1の関節パラメータの上記第1の値と上記第2の関節パラメータの上記第1の値とを決定することは、上記ロボットアームの順運動学モデルを反転させて、上記ロボットに含まれる複数の連続関節に関連付けられた状態変数値のベクトルを生成することを含み、上記複数の状態変数値に対応する複数の状態変数は、上記複数の連続関節に含まれる各連続関節に関して、上記連続関節の柔軟部分の曲げ半径を示す第3の関節パラメータと、上記連続関節の基部に対する上記連続関節の上記柔軟部分の回転を示す第4の関節パラメータとを含む、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目15)
上記ロボットアームの上記順運動学モデルは、上記状態変数を含む三角方程式のセットに基づく、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目16)
上記ロボットアームの上記順運動学モデルは、上記複数の連続関節のそれぞれについて再帰的に解くことができる三角方程式を含む、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目17)
上記順運動学モデルにおいて、上記複数の連続関節に含まれる各連続関節は、上記第3の関節パラメータに関連付けられた第1の自由度と上記第4の関節パラメータに関連付けられた第2の自由度とを超えない、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目18)
上記第1の関節パラメータの上記第1の値と上記第2の関節パラメータの上記第1の値とを決定することは、上記端部の上記最終目標位置及び上記端部の上記最終的な目標の向きとに基づく、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目19)
上記ロボットの上記端部を上記最終目標位置に位置決めすることは、上記柔軟部分を、
上記第1の関節パラメータの上記第1の値に対応する曲げ半径で変形させることと、
上記第2の関節パラメータの上記第1の値に対応する回転によって、上記基部に対して回転させることと、
を含む、上記項目のいずれか一項に記載のコンピュータ実装方法。
(項目20)
連続関節を含むロボットと、
命令を記憶するメモリと、
コントローラと、を備えるシステムであって、上記コントローラは、上記メモリに通信可能に結合され、上記命令を実行するとき、
上記ロボットに含まれる第1の連続関節に関連付けられた第1の関節パラメータの第1の値と、上記第1の連続関節に関連付けられた第2の関節パラメータの第1の値とを決定することであって、上記第1の関節パラメータは、上記連続関節の柔軟部分の曲げ半径を示し、上記第2の関節パラメータは、上記第1の連続関節の基部に対する上記連続関節の上記柔軟部分の回転を示す、上記決定することと、
上記第1の関節パラメータの上記第1の値と上記第2の関節パラメータの上記第1の値とに基づいて、上記ロボットの端部を最終目標位置に位置決めさせることと、を行うように構成される、上記システム。
(摘要)
ロボットを制御するためのコンピュータ実装方法であって、ロボットに含まれる第1の連続関節に関連付けられた第1の関節パラメータの第1の値と、第1の連続関節に関連付けられた第2の関節パラメータの第1の値とを決定することであって、第1の関節パラメータは、連続関節の柔軟部分の曲げ半径を示し、第2の関節パラメータは、第1の連続関節の基部に対する連続関節の柔軟部分の回転を示す、決定することと、第1の関節パラメータの第1の値と第2の関節パラメータの第1の値とに基づいて、ロボットの端部を最終目標位置に位置決めすることと、を含む方法。
【図面の簡単な説明】
【0013】
図1】様々な実施形態の1つまたは複数の態様を実装するように構成された連続体ロボットの概念図である。
図2】様々な実施形態による、図1の連続体ロボットのより詳細な図である。
図3】様々な実施形態による、三次元空間における図1の連続体ロボットのロボットアームと、関連する関節パラメータとを概略的に示す。
図4】様々な実施形態による、連続体ロボットを制御するための方法ステップのフローチャートを示す。
図5】本開示の1つまたは複数の態様を実装するように構成されたコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【0014】
明確にするために、適用可能な場合、図面間で共通の同一の要素を指定するために同一の参照番号が使用されている。一実施形態の特徴は、さらに記載しなくても、他の実施形態に組み込まれてよいことが企図される。
【0015】
以下の説明では、様々な実施形態をより良く理解できるように多数の具体的な詳細を記載する。しかしながら、本発明の概念は、これらの具体的な詳細の1つまたは複数が無くても実施され得ることは、当業者には明らかであろう。
【0016】
システム概要
図1は、実施形態の1つまたは複数の態様を実装するように構成された連続体ロボット100の概念図であり、図2は、様々な実施形態による、連続体ロボット100のロボットアーム101のより詳細な図である。図に示すように、連続体ロボット100は、ロボットアーム101と、ロボットアーム101の動作を制御するように構成されたコントローラ150とを含む。いくつかの実施形態では、連続体ロボット100は、連続体ロボット100を取り巻く環境に関連するセンサ入力191を提供する1つまたは複数のセンサ190をさらに含む。そのようなセンサ入力は、光学センサ情報、温度情報、モーションセンサ情報(例えば、ジャイロスコープ及び/または加速度計情報)など、連続体ロボット100の操作を容易にすることができる任意の技術的に実現可能なセンサ生成情報を含み得る。
【0017】
連続体ロボット100は、1つまたは複数の反復的、危険な、及び/または高精度のタスクを実行するように構成された機械またはデバイスであってよい。このようなタスクは、製造、危険な環境、探査、検査などに関連してよく、1人または複数の人間によって実行されるタスク及び/または行動に加えて、またはその代わりに実行されてよい。いくつかの実施形態では、連続体ロボット100は、事前にプログラムされた運動及び/または動作などの特定のユーザ入力で動作するように構成される。代替的に、または追加で、いくつかの実施形態では、連続体ロボット100は、例えば、センサ190から受信したセンサ入力に応答して、自律的に動作するように構成される。
【0018】
ロボットアーム101は、1つまたは複数の連続関節を含み、各関節は、動作中に形状を変化させるように構成された「ソフトな」または柔軟な関節である。従って、各連続関節は一般に剛性を維持せず、動作中、常に同じ形状ではない。代わりに、ロボットアーム101に含まれる各連続関節は、特定の目標方向に特定の目標曲げ半径に変形して、連続関節の剛性基部に対して、連続関節の剛性上部の目標運動及び目標の向きを生じさせるように構成される。
【0019】
図1に示す実施形態では、ロボットアーム101は、図に示すように直列に結合された3つの連続関節110、120、及び130と、エンドエフェクタ140とを含む。連続関節110は、基部111、スパイン112、及び上部113を含み、連続関節120は、基部121、スパイン122、及び上部123を含み、連続関節130は、基部131、スパイン132、及び上部133を含む。さらに、図1に示す実施形態では、連続関節110、120、及び130は、それぞれ、剛性部分と選択的に変形可能な部分とを含む。具体的には、基部111、基部121、基部131、上部113、上部123、及び、上部133は真っ直ぐな剛性部分であり、スパイン112、スパイン122、及びスパイン132は柔軟で選択的に変形可能な部分である。
【0020】
いくつかの実施形態では、スパイン112は、目標曲げ半径112Rまで曲がり、それによって、基部111に対する上部113の位置及び向きを変更するように構成される。いくつかの実施形態では、スパイン112は、目標曲げ半径112Rが、最小曲げ半径から無限の最大曲げ半径まで、すなわち、スパイン112が直線セグメントとして構成されるまで変化し得るように構成される。一般に、ロボットアーム101の特定の構成における最小曲げ半径の値は、スパイン112の様々な構成要素の材料特性及び/またはスパイン112の様々な構成要素の形態及び物理的寸法など、スパイン112の機械的設計の詳細に基づく。同様に、いくつかの実施形態では、スパイン122は、目標曲げ半径122Rまで曲がり、それによって、基部121に対する上部123の位置及び向きを変更するように構成され、スパイン132は、目標曲げ半径132Rまで曲がり、それによって、基部131に対する上部133の位置及び向きを変更するように構成される。スパイン112、スパイン122、及び/またはスパイン132を選択的に曲げることにより、エンドエフェクタ140は、連続体ロボット100の近くの三次元空間の目標位置に配置され、三次元空間内で目標の向きで配向されてよい。
【0021】
図1及び2に示す実施形態では、目標曲げ半径112R、目標曲げ半径122R、及び目標曲げ半径132Rは、それぞれ同じ平面に存在するように示されている。実際には、そして以下でより詳細に説明するように、スパイン112、スパイン122、及び/またはスパイン132の選択的曲げは、二次元に限定されず、三次元空間で起こり得る。
【0022】
いくつかの実施形態では、スパイン112、スパイン122、及び/またはスパイン132の選択的曲げは、例えば、コア要素に沿って配置された空気圧セルの空気圧作動を介して可能になる。従って、図1及び2に示す実施形態では、スパイン112の選択的曲げは、スパイン112のコア要素116に沿って配置された空気圧セル115の空気圧作動によって可能になり、スパイン122の選択的曲げは、スパイン122のコア要素126に沿って配置された空気圧セル125の空気圧作動によって可能になり、スパイン132の選択的曲げは、スパイン132のコア要素136に沿って配置された空気圧セル135の空気圧作動によって可能になる。このような実施形態では、コア要素に沿った特定のセルの選択的な膨張及び収縮により、コア要素が特定の目標曲げ半径で曲げられる。他の実施形態では、スパイン112、スパイン122、及びスパイン132に含まれる任意の他の技術的に実現可能なアクチュエータを採用して、スパイン112、スパイン122、及びスパイン132の同様の曲げを可能にすることができる。
【0023】
コントローラ150は、ロボットアーム101の動作を制御するように構成され、連続体ロボット100の動作に関連付けられたデータを処理及び/または命令を実行することができる任意の技術的に実現可能なハードウェアユニットであってよい。このように、コントローラ150は、中央処理装置(CPU)、グラフィック処理ユニット(GPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、任意の他のタイプの処理ユニット等の任意の適切なプロセッサまたはコンピューティングデバイス、または、GPUもしくはデジタル信号プロセッサ(DSP)と共に動作するように構成されたCPU等、異なる処理ユニットの組み合わせとして実装することができる。いくつかの実施形態では、コントローラ150は、連続体ロボット101に含まれる1つまたは複数の集積回路またはチップとして実装される。あるいは、いくつかの実施形態では、コントローラ150は、コンピューティングデバイスとして実装され、その一実施形態は、図5と併せて以下に説明される。
【0024】
いくつかの実施形態では、コントローラ150は、事前にプログラムされた動作を介してロボットアーム101の動作を制御するように構成される。このような実施形態では、事前にプログラムされた動作により、エンドエフェクタ140(及び、いくつかの実施形態では、ロボットアーム101の他の部分)が、目標軌道に沿って目標位置に移動する。このような実施形態では、事前にプログラムされた命令はさらに、エンドエフェクタ140(及び、いくつかの実施形態では、ロボットアーム101の他の部分)を、1つまたは複数の目標速度及び/または1つの目標加速度で、目標軌道(複数可)に沿って移動させてよい。このような実施形態では、事前にプログラムされた命令は、そのような運動を発生させるための連続関節110、120、及び130の関節パラメータの値を含む。このような実施形態では、関節パラメータの値は、様々な実施形態による、本明細書に記載の運動モデルに基づいて決定される。
【0025】
いくつかの実施形態では、コントローラ150は、ロボットアーム101の動作を自律的に制御するように構成される。このような実施形態では、コントローラ150は、エンドエフェクタ140の目標位置及び/またはエンドエフェクタ140(及び、いくつかの実施形態では、ロボットアーム101の他の部分)の目標軌道を決定し、次に、エンドエフェクタ140(及び、いくつかの実施形態では、ロボットアーム101の他の部分)を、目標軌道(複数可)に沿って目標位置に移動させるように構成される。このような実施形態では、コントローラ150は、そのような目標位置及び/または目標軌道をリアルタイムで決定してよい。このような実施形態では、コントローラ150は、ロボットアーム101の所定の運動が発生するように、連続関節110、120、及び130の関節パラメータの適切な値を決定する。このような実施形態では、関節パラメータの値は、様々な実施形態による、本明細書に記載の運動モデルに基づいて決定される。
【0026】
連続体ロボットのパラメータ化
様々な実施形態によると、本明細書に記載の新しいパラメータ化モデルは、全ての場合において特異点がないままでありながら、連続体ロボットアームの柔軟性に対応する。実施形態では、2つの自由度、すなわち、連続関節の曲げ半径と、連続関節の剛性基部に対する連続関節の柔軟部分(例えば、スパイン部分)の回転とが、連続体ロボットの各連続関節に関連付けられている。さらに、連続体ロボットに含まれる各連続関節について、連続関節の曲げ半径が連続関節の1つのパラメータとして定義され、連続関節の柔軟部分の回転が別のパラメータとして定義される。このようなパラメータ化方法を使用して、各連続関節に対して、関節の位置、速度、及び加速度の下限と上限を設定することができる。さらに、このようなパラメータ化では、連続体ロボットの運動学は、比較的少数のパラメータを使用して定義することができ、これによって、順運動学、逆運動学、及び軌道計画の問題の計算効率の高いソリューションが大幅に促進される。さらに、本明細書に記載のパラメータ化は、反復法(例えば、ニュートンラプソン)のヤコビアン計算を使用して逆運動学的問題を解決することを可能にする単純な運動学式をもたらす。三次元空間における連続体ロボット100のパラメータ化の実施形態を図3と併せて以下に説明する。
【0027】
図3は、様々な実施形態による、三次元空間300におけるロボットアーム101及び関連する関節パラメータを概略的に示している。いくつかの実施形態では、ロボットアーム101をパラメータ化するために、ロボットアーム101の基部及びロボットアーム101の各関節(例えば、連続関節110、120、及び130)に対して特定のパラメータが定義される。実施形態では、ロボットアーム101の基部に対して以下のパラメータが定義される。すなわち、
【化1】

=ロボットアーム101の基部の(例えば、原点0に対する)位置ベクトル、
【化2】

=ロボットアーム101の基部の接線ベクトル、及び、
【化3】

=ロボットアーム101の基部の法線ベクトルが定義される。さらに、実施形態では、ロボットアーム101の各連続関節に対して以下のパラメータが定義される。すなわち、
【化4】

=連続関節iの基部の接線ベクトル、
【化5】

=連続関節iの基部の法線ベクトル、
【化6】
=関節の半径(例えば、関節iの曲げ半径、分かりやすくするために図3では省略)、及び、
【化7】

に対する関節iの回転、ここで、i=1は、連続関節110を指し、i=2は、連続関節120を指し、i=3は、連続関節130を指す。
【0028】
図に示すように、法線ベクトル
【化8】

は、ロボットアーム101の基部平面301に配置され、ロボットアーム101の接線ベクトル
【化9】
に垂直である。同様に、連続関節110、120、及び130のそれぞれについて、法線ベクトル
【化10】

は、連続関節iの基部に関連付けられた平面に配置され、連続関節iの接線ベクトル
【化11】

に垂直である。連続関節110について、法線ベクトル
【化12】

は、法線ベクトル
【化13】

と同一平面上にあるが、ロボットアーム101の他の各連続関節については、法線ベクトル
【化14】

は、法線ベクトル
【化15】

と同一平面上にはなく、ほとんどの場合、法線ベクトル
【化16】

を含む平面と平行な平面にもないことに留意されたい。
【0029】
様々な実施形態によると、ロボットアーム101の各連続関節について、関節の上部の位置及び向きは、(関節の基部に対して)2つのパラメータ、すなわち、法線ベクトル
【化17】

及び接線ベクトル
【化18】

で示すことができる。従って、冗長な自由度は、本明細書で説明するパラメータ化では採用されず、これにより、順運動学及び逆運動学の問題を解決する際の計算の効率が可能になる。さらに、本明細書で説明するパラメータ化は、多数の連続関節を有するロボットアームをシミュレートするときに、ロボットアーム101の関節位置の直接的な順次追加を可能にする。
【0030】
図3には、エンドエフェクタ140の初期位置311、エンドエフェクタ140の中間目標位置312、及びエンドエフェクタ140の最終目標位置313も示されている。動作中、ロボットアーム101は、エンドエフェクタを、三次元空間内の目標軌道315に沿って、初期位置311から中間目標位置312に、及び中間目標位置312から最終目標位置313に移動する。いくつかの実施形態では、連続関節110及び/または連続関節120はまた、エンドエフェクタ140が目標軌道315に沿って初期位置311から最終目標位置313に移動するとき、特定の目標軌道(明確にするために示されていない)に従う。
【0031】
連続体ロボットの運動モデル
次に、ロボットアーム101の運動モデルを、ロボットアーム101の上記のパラメータ化に基づいて説明する。運動モデルは、順運動学の問題と逆運動学の問題の解決を可能にする。順運動学では、状態変数のセット
【化19】
が与えられたときに、ロボットアーム101、特に、エンドエフェクタ140に関して様々な点での空間的位置及び向きを見つけることが目的である。逆運動学では、特定のエンドエフェクタの位置と向きが決定されるように、状態変数の値のセットを見つけることが目的である。
【0032】
いくつかの実施形態では、ロボットアーム101のエンドエフェクタ(及び/または他の構成要素)の空間における目標位置及び向きが、順運動学問題の解によって、すなわち、図3に関して前述したパラメータ化に基づいて、運動モデルを使用して、
【化20】

状態変数のセットの値を計算することによって、決定される。従って、
【化21】

は、状態変数(すなわち、関節の半径
【化22】

及び関節の回転θi)のベクトルを示す。このような実施形態では、ロボットアーム101の順運動モデルは
【化23】

で示され、目標エンドエフェクタ位置は
【化24】

で示され、
【化25】

は式1で表すことができる。
【化26】
【0033】
ロドリゲス回転公式を利用して、ロボットアーム101の各連続関節i(i≧2の場合)の接線ベクトル
【化27】

及び法線ベクトルを
【化28】

は、式2及び3によって表され、ここで、
【化29】

は、それぞれ、連続関節iの基部、スパイン、及び上部の長さを表す。
【化30】

【化31】
【0034】
式2及び3を使用すると、
【化32】

は式4で表すことができる。
【化33】
【0035】
いくつかの実施形態では、各連続関節の基底ベクトル
【化34】

と定義される。このような実施形態では、接線ベクトル
【化35】

法線ベクトル
【化36】

及び基底ベクトル
【化37】

は、ロボットアーム101の各連続関節の基部でデカルト座標フレームを形成する。式2、3、及び4を使用すると、基底ベクトル
【化38】

は式5で表すことができる。
【化39】
【0036】
各連続関節iの下部ノード
【化40】

の位置(iが2以上の場合)は、式2、3、及び4に基づいて式6で定式化できる。
【化41】

ここで、
【化42】

である。
【0037】
式2~6は、多関節連続体ロボットの順運動学モデルを提供する。さらに、式2~6を複数の関節について再帰的に解いて、多関節連続体ロボットの各連続関節、及びロボットに含まれるエンドエフェクタの接線ベクトル
【化43】
法線ベクトル
【化44】

基底ベクトル
【化45】

の値、及び最下部ノード
【化46】

の位置を見つけることができる。
【化47】

が無限大になる傾向がある場合(つまり、連続関節iが直線になる場合)、
【化48】

はゼロになる傾向があることに注意する。その結果、式2は式7に簡約され、式3は式8に簡約され、式4は式9に簡約され、式6は式10に簡約される。
【化49】
【0038】
式7~10は無限大になる傾向のない解を生成するため、連続関節iが直線になるとき、上記の運動モデルを特異点なしで解くことができる。また、
【化50】

の解を生成することは、計算的に軽いプロセスである。
【0039】
いくつかの実施形態では、連続体ロボットアームのエンドエフェクタの指定された位置及び向きを示す状態変数の特定のセットの値は、逆運動学を介して決定される。具体的には、状態変数のセットの値
【化51】

が決定される。いくつかの実施形態では、
【化52】
は式11によって記述される。
【化53】

ここで、
【化54】

は、連続体ロボットアームのエンドエフェクタの位置であり、
【化55】

は、連続体ロボットアームの運動モデルを形成する順運動学方程式、例えば、式2~6のシステムを表す。m個の関節を含む連続体ロボットについては、各関節に2つの自由度が関連付けられているため、連続体ロボットは、合計で2mの自由度を有する。従って、2つ以上の連続関節を備えた連続体ロボットは冗長マニピュレータであり、式11には無限の数の解がある。ただし、式11の状態変数のセットの値
【化56】

を決定するための当分野で既知の様々な技術、例えば、疑似逆法、ヤコビアン転置法、または減衰最小二乗法がある。
【0040】
パラメータ化された連続体ロボットの運動計画
いくつかの実施形態では、連続体ロボットの運動計画は、式1~11によって上記で説明された運動モデルを使用して実施される。このような実施形態では、そのような運動計画は、運動、タスク、及び他の動作が連続体ロボットによって実行されることを可能にする。このような実施形態では、状態変数のセットに対して決定された値
【化57】

が、連続体ロボットで採用されて、目標位置及び/または向きへのエンドエフェクタ(及び、いくつかの実施形態では、連続体ロボットの1つまたは複数の他の部分)の動きを生じさせる。いくつかの実施形態では、連続体ロボットの状態変数のセットに対して決定された値
【化58】

が採用されて、エンドエフェクタ(及び、いくつかの実施形態では、連続体ロボットの1つまたは複数の他の部分)の目標軌道に沿った目標位置及び/または向きへの動きを生じさせる。このような実施形態の1つを、図4と併せて以下に説明する。
【0041】
図4は、様々な実施形態による、連続体ロボットを制御するための方法ステップのフローチャートを示す。方法ステップは、図1~3のシステムと併せて説明されているが、当業者は、方法ステップを任意の順序で実行するように構成された任意のシステムが実施形態の範囲内にあることを理解するであろう。
【0042】
図に示すように、コンピュータ実装方法400は、ステップ401で始まり、ここで、コントローラ150は、1つまたは複数の目標位置を受信する。本明細書で使用される場合、目標位置は、エンドエフェクタ140、特定の連続関節の基部、特定の連続関節の上部など、ロボットアーム101の特定の構成要素の特定の位置及び特定の向きとして定義される。例えば、いくつかの実施形態では、コントローラ150は、エンドエフェクタ140の最終目標位置、及びエンドエフェクタ140の1つまたは複数の中間目標位置を受信する。次に、最終目標位置及び1つまたは複数の中間目標位置を使用して、最終目標位置で終了する軌道をエンドエフェクタ140にたどらせるロボットアーム101の関節パラメータの値を生成する。値は、図3と併せて上述したパラメータ化に基づいて生成される。追加または代替として、いくつかの実施形態では、コントローラ150は、ロボットアーム101の1つまたは複数の他の構成要素の最終目標位置及び/または中間目標位置(複数可)を受信してよい。このような実施形態では、次に、最終目標位置及び1つまたは複数の中間目標位置を使用して、最終目標位置で終了する軌道をロボットアーム101の1つまたは複数の構成要素にたどらせるロボットアーム101の関節パラメータの値を生成する。
【0043】
いくつかの実施形態では、ステップ401において、コントローラ150はまた、1つまたは複数の時間制約(例えば、1つまたは複数の目標位置に関連付けられた運動を完了するための最大時間)、ロボットアーム101の特定の構成要素に関連付けられた1つまたは複数の速度制約(例えば、計画した軌道の一部に対する構成要素の最低速度)、ロボットアーム101の特定の構成要素に関連付けられた1つまたは複数の加速度制約(例えば、構成要素の最大加速度)、1つまたは複数の位置的制約(例えば、衝突を回避するための「立ち入り禁止」領域、及び/または可能な限り回避されるべき危険場所)など、追加の軌道計画情報を受信する。
【0044】
ステップ402において、コントローラ150は、ステップ401で受信された目標位置のうちの1つを選択する。
【0045】
ステップ403において、コントローラ150は、ロボットアーム101の連続関節によって実装されるとき、エンドエフェクタ140(またはロボットアーム101の何らかの他の構成要素)を目標位置に置くロボットアーム101の関節パラメータの値を決定する。従って、ステップ403において、コントローラ150は、式11の状態変数のセットの値
【化59】

を決定する。とりわけ、擬似逆法、ヤコビアン転置法、または減衰最小二乗法を実行することを含む、当技術分野で既知の任意の技術をコントローラ150によって使用して、式1~10を介してステップ403の値を決定することができる。式1~10は三角方程式であり、簡単に解くことができるため、ステップ403のプロセスは計算コストが低く、すばやく実行できる。従って、いくつかの実施形態では、コンピュータ実装方法400を、ロボットアーム101のリアルタイム制御に使用することができる。さらに、方程式1~10の係数は常に可逆であるため、常に解がある。従って、特異点も回避される。
【0046】
前述のように、2つ以上の連続関節を備えた連続体ロボットは冗長マニピュレータである。そのため、式11で状態変数のセットの値
【化60】

を決定するときに、1つまたは複数の追加の基準を制約として含むことができる。例えば、そのような追加の基準は、エンドエフェクタ140(または、ロボットアーム101の何らかの他の構成要素)が目標位置にあるとき、ロボットアーム101の少なくとも一部がたどる経路の衝突回避係数、ロボットアームの1つまたは複数のアクチュエータに関連付けられたアクチュエータトルク係数、エネルギー消費係数、及び、時間消費係数など、ロボットアーム101の1つまたは複数の性能メトリックを含むことができる。
【0047】
いくつかの実施形態では、アクチュエータトルク係数は、エンドエフェクタ140(または、ロボットアーム101の何らかの他の構成要素)が目標位置にあるときのトルクの測定値である。このような実施形態では、アクチュエータトルク係数は、ロボットアーム101の各連続関節の基部でのトルクの合計、ロボットアーム101の特定の連続関節の基部でのトルク、またはロボットアーム101の基部でのトルクであってよい。いくつかの実施形態では、エネルギー消費係数は、例えば、隣接する目標位置から、目標位置にエンドエフェクタ140(または、ロボットアーム101の何らかの他の構成要素)を位置決めするために必要なエネルギーの測定値である。いくつかの実施形態では、時間消費係数は、例えば、隣接する目標位置から、目標位置にエンドエフェクタ140(または、ロボットアーム101の何らかの他の構成要素)を位置決めするために必要な時間の測定値である。
【0048】
式11で状態変数のセットの値
【化61】

を決定するときにロボットアーム101の1つまたは複数の性能メトリックが考慮される実施形態では、1つまたは複数の性能メトリックに関して任意の従来の最適化方法を使用することができる。従って、このような実施形態では、状態変数のセットの値
【化62】

は、1つまたは複数の性能メトリックが最小化される(場合によっては最大化される)場合に決定される。例えば、考慮される性能メトリックがロボットアーム101の各連続関節に適用されるトルクの合計である実施形態では、状態変数のセットの値
【化63】

は、勾配ベースの制約付き最適化方法または演算を使用して決定することができる。このような実施形態では、目的関数は、エンドエフェクタ140が目標位置にあるときに、エンドエフェクタ140で所与のペイロードを保持するのに必要な総トルクである。
【0049】
ステップ404において、コントローラ150は、状態変数のセットの値
【化64】

が決定されていない残りの目標位置があるかどうかを決定する。「はい」の場合、コンピュータ実装方法400はステップ405に進む。「いいえ」の場合、コンピュータ実装方法400はステップ402に戻る。
【0050】
ステップ405において、コントローラ150は、目標位置間の位置について、状態変数のセットの値
【化65】

を生成する。いくつかの実施形態では、コントローラ150は、隣接する目標位置に関連付けられた値の間に補間を適用して、ステップ405で値を生成する。いくつかの実施形態では、1つの目標位置から別の目標位置へのより滑らかな経路を達成するために、コントローラ150は、3次多項式法及び/または3次スプライン法を使用して、2つの隣接する目標位置間の補間を完了する。いくつかの実施形態では、コントローラ150はまた、エンドエフェクタ140及び/またはロボットアーム101の他の構成要素に関連付けられた速度情報及び/または加速度情報を使用して、ある目標位置から別の目標位置へのより滑らかな経路を達成する。
【0051】
ステップ406において、コントローラ150は、ロボットアーム101に、エンドエフェクタ140(及び/または、ロボットアーム101の何らかの他の構成要素(複数可))を、ステップ401で受信した各目標位置に位置決めさせる。従って、ステップ406において、コントローラ150は、ロボットアーム101に、エンドエフェクタ140(または、ロボットアーム101の他の構成要素(複数可))を、ステップ401で受信した、その構成要素の1つまたは複数の中間目標位置を通って、その構成要素の最終目標位置に位置決めさせる。結果として、エンドエフェクタ140(及び/またはロボットアーム101の他の構成要素(複数可))は、1つまたは複数の中間目標位置及び最終目標位置を含む指定された軌道をたどる。上記を引き起こすために、指定された軌道に沿った各位置について、コントローラ150は、ロボットアーム101の連続関節の1つまたは複数を適切な曲げ半径で変形させ、連続関節の剛性基部に対して適切な回転によって回転させる。所与の位置について、適切な曲げ半径はその位置での曲げ半径関節パラメータの決定値に対応し、適切な回転はその位置での回転関節パラメータの決定値に対応する。
【0052】
例示的なコンピューティングデバイス
図5は、様々な実施形態の1つまたは複数の態様を実装するように構成されたコンピューティングデバイス500のブロック図である。従って、コンピューティングデバイス500は、コントローラ150の実装に関連するコンピューティングデバイス、及び/または連続体ロボット100に関連する任意の他のコンピューティングデバイスであってよい。コンピューティングデバイス500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、または入力を受信し、データを処理し、制御信号を生成し、画像を表示するように構成された任意の他のタイプのコンピューティングデバイスであってよい。コンピューティングデバイス500は、メモリ510に常駐することができるコンピュータ実装方法400及び/または他の適切なソフトウェアアプリケーションを実行するように構成される。本明細書に記載のコンピューティングデバイスは例示的なものであり、他の技術的に実現可能な任意の構成が本開示の範囲内にあることに留意されたい。
【0053】
図に示すように、コンピューティングデバイス500は、処理ユニット550を接続する相互接続(バス)540、入力/出力(I/O)デバイス580に結合された入力/出力(I/O)デバイスインタフェース560、メモリ510、ストレージ530、及びネットワークインタフェース570を含むが、これらに限定されない。処理ユニット550は、中央処理装置(CPU)、グラフィック処理ユニット(GPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、任意の他のタイプの処理ユニット、または、GPUと共に動作するように構成されたCPU等、異なる処理ユニットの組み合わせとして実装される任意の適切なプロセッサであってよい。一般に、処理ユニット550は、データを処理し、及び/またはコンピュータ実装方法400を含むソフトウェアアプリケーションを実行することができる任意の技術的に実現可能なハードウェアユニットであってよい。また、本開示の文脈では、コンピューティングデバイス500に示すコンピューティング要素は、物理的なコンピューティングシステム(例えば、データセンタ内のシステム)に対応してよい、または、コンピューティングクラウド内で実行される仮想コンピューティングインスタンスであってよい。
【0054】
I/Oデバイス580は、キーボード、マウス、タッチセンシティブスクリーンなどのような入力を提供することができるデバイス、及びディスプレイデバイス581などの出力を提供することができるデバイスを含み得る。さらに、I/Oデバイス580は、タッチスクリーン、ユニバーサルシリアルバス(USB)ポートなど、入力の受信、出力の提供の両方が可能なデバイスを含み得る。I/Oデバイス580は、コンピューティングデバイス500のエンドユーザから様々なタイプの入力を受信し、1つまたは複数のグラフィカルユーザインタフェース(GUI)、表示されたデジタル画像、及び/またはデジタルビデオなど、コンピューティングデバイス500のエンドユーザに様々なタイプの出力も提供するように構成されてよい。いくつかの実施形態では、I/Oデバイス580の1つまたは複数は、コンピューティングデバイス500をネットワーク505に結合するように構成される。
【0055】
メモリ510は、ランダムアクセスメモリ(RAM)モジュール、フラッシュメモリユニット、もしくは任意の他のタイプのメモリユニット、またはそれらの組み合わせを含み得る。処理ユニット550、I/Oデバイスインタフェース560、及びネットワークインタフェース570は、メモリ510からデータを読み取り、メモリ510にデータを書き込むように構成される。メモリ510は、プロセッサ550によって実行され得る様々なソフトウェアプログラムと、コンピュータ実装方法400を含む、上記のソフトウェアプログラムに関連するアプリケーションデータとを含む。
【0056】
要約すると、本明細書に記載の様々な実施形態は、連続体ロボットのパラメータ化及び運動学モデリングのための技術を提供する。実施形態では、連続体ロボットの連続関節は、関節の曲げ半径と、関節の基部の法線ベクトルに対する関節の回転という2つの関節パラメータで各関節をパラメータ化することにより、三次元空間で完全に構成することができる。従って、2つの自由度が各連続関節に関連付けられるので、冗長な自由度を採用して、連続体ロボットをパラメータ化することはない。上記の関節パラメータに基づくと、連続体ロボットの関節の運動を表す運動方程式は三角方程式であり、微分方程式ではないため、関節パラメータの値が無限大に近づくと反転することができる。
【0057】
先行技術と比較した開示技術の少なくとも1つの技術的利点は、開示技術が、連続体ロボットの運動計画及び運動学的操作を、先行技術よりも迅速に、より少ない計算リソースで実行できることである。別の利点は、開示技術は、関節パラメータの値を決定するために行列反転が使用されないため、特異点の影響を受けないことである。さらなる利点は、開示技術は、連続体ロボットの各関節が2つの自由度に基づいてパラメータ化されるので、三次元での連続体ロボットの運動に容易に適用できることである。これらの技術的利点は、先行技術のアプローチに勝る1つまたは複数の技術的進歩を提供する。
【0058】
1.いくつかの実施形態では、ロボットを制御するためのコンピュータ実装方法であって、前記方法は、前記ロボットに含まれる第1の連続関節に関連付けられた第1の関節パラメータの第1の値と、前記第1の連続関節に関連付けられた第2の関節パラメータの第1の値とを決定することであって、前記第1の関節パラメータは、前記連続関節の柔軟部分の曲げ半径を示し、前記第2の関節パラメータは、前記第1の連続関節の基部に対する前記連続関節の前記柔軟部分の回転を示す、前記決定することと、前記第1の関節パラメータの前記第1の値及び前記第2の関節パラメータの前記第1の値に基づいて、前記ロボットの端部を最終目標位置に位置決めすることと、を含む、前記コンピュータ実装方法。
【0059】
2. 前記第2の関節パラメータは、前記基部の基部法線ベクトルに対する前記連続関節の前記柔軟部分の前記回転を示す、条項1に記載のコンピュータ実装方法。
【0060】
3. 前記第1の関節パラメータ及び前記第2の関節パラメータは、組み合わされて、前記端部の三次元空間内の一意の位置を示す、条項1または2に記載のコンピュータ実装方法。
【0061】
4. 前記第1の関節パラメータの前記第1の値と、前記第2の関節パラメータの前記第1の値とを決定することは、目的関数が前記ロボットアームの少なくとも1つの性能メトリックに関連付けられる制約付き最適化演算を実行することを含む、条項1~3のいずれかに記載のコンピュータ実装方法。
【0062】
5. 前記ロボットアームの前記少なくとも1つの性能メトリックは、前記最終目標位置に前記端部を位置決めすることに関連付けられ、前記位置決め中に前記ロボットの少なくとも一部分がたどる経路の衝突回避係数、前記ロボットアームの1つまたは複数のアクチュエータに関連付けられたアクチュエータトルク係数、エネルギー消費係数、及び、時間消費係数、の1つまたは複数を含む、条項1~4のいずれかに記載のコンピュータ実装方法。
【0063】
6. 前記第1の関節パラメータの前記第1の値と、前記第2の関節パラメータの前記第1の値とを決定することは、前記第1の関節パラメータの第2の値及び前記第2の関節パラメータの第2の値に基づく、条項1~5のいずれかに記載のコンピュータ実装方法。
【0064】
7. 前記第1の関節パラメータの前記第2の値及び前記第2の関節パラメータの前記第2の値は、前記連続関節の前記端部の初期位置及び初期の向きを示す、条項1~6のいずれかに記載のコンピュータ実装方法。
【0065】
8. 前記第1の関節パラメータの前記第2の値及び前記第2の関節パラメータの前記第2の値は、前記連続関節の前記端部の中間位置及び中間の向きを示す、条項1~7のいずれかに記載のコンピュータ実装方法。
【0066】
9. 前記中間目標位置は、前記端部の前記初期位置と前記最終目標位置との間に配置される、条項1~8のいずれかに記載のコンピュータ実装方法。
【0067】
10.前記第1の関節パラメータの前記第1の値と前記第1の関節パラメータの第2の値の間を補間して、前記第1の関節パラメータの1つまたは複数の追加の値を生成することと、前記第2の関節パラメータの前記第1の値と前記第2の関節パラメータの第2の値の間を補間して、前記第2の関節パラメータの1つまたは複数の追加の値を生成することとによって、前記第1の関節パラメータと前記第2の関節パラメータとの追加の値を生成することをさらに含む、条項1~9のいずれかに記載のコンピュータ実装方法。
【0068】
11.いくつかの実施形態では、命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行されるとき、前記ロボットに含まれる第1の連続関節に関連付けられた第1の関節パラメータの第1の値と、前記第1の連続関節に関連付けられた第2の関節パラメータの第1の値とを決定するステップであって、前記第1の関節パラメータは、前記連続関節の柔軟部分の曲げ半径を示し、前記第2の関節パラメータは、前記第1の連続関節の基部に対して前記連続関節の前記柔軟部分の回転を示す、前記決定するステップと、前記第1の関節パラメータの前記第1の値と前記第2の関節パラメータの前記第1の値とに基づいて、最終目標位置に前記ロボットの端部を位置決めするステップとを、前記プロセッサに行わせる、前記非一時的コンピュータ可読媒体。
【0069】
12.前記第2の関節パラメータは、前記基部の基部法線ベクトルに対する前記連続関節の前記柔軟部分の前記回転を示す、条項11に記載のコンピュータ実装方法。
【0070】
13.前記第1の関節パラメータ及び前記第2の関節パラメータは、組み合わされて、前記端部の三次元空間内の一意の位置を示す、条項11または12に記載のコンピュータ実装方法。
【0071】
14.前記第1の関節パラメータの前記第1の値と前記第2の関節パラメータの前記第1の値とを決定することは、前記ロボットアームの順運動学モデルを反転させて、前記ロボットに含まれる複数の連続関節に関連付けられた状態変数値のベクトルを生成することを含み、前記複数の状態変数値に対応する複数の状態変数は、前記複数の連続関節に含まれる各連続関節に関して、前記連続関節の柔軟部分の曲げ半径を示す第3の関節パラメータと、前記連続関節の基部に対する前記連続関節の前記柔軟部分の回転を示す第4の関節パラメータとを含む、条項11~13のいずれかに記載のコンピュータ実装方法。
【0072】
15.前記ロボットアームの前記順運動学モデルは、前記状態変数を含む三角方程式のセットに基づく、条項11~14のいずれかに記載のコンピュータ実装方法。
【0073】
16.前記ロボットアームの前記順運動学モデルは、前記複数の連続関節のそれぞれについて再帰的に解くことができる三角方程式を含む、条項11~15のいずれかに記載のコンピュータ実装方法。
【0074】
17.前記順運動学モデルにおいて、前記複数の連続関節に含まれる各連続関節は、前記第3の関節パラメータに関連付けられた第1の自由度と前記第4の関節パラメータに関連付けられた第2の自由度とを超えない、条項11~16のいずれかに記載のコンピュータ実装方法。
【0075】
18.前記第1の関節パラメータの前記第1の値と前記第2の関節パラメータの前記第1の値とを決定することは、前記端部の前記最終目標位置及び前記端部の前記最終的な目標の向きとに基づく、条項11~17のいずれかに記載のコンピュータ実装方法。
【0076】
19.前記ロボットの前記端部を前記最終目標位置に位置決めすることは、前記柔軟部分を、前記第1の関節パラメータの前記第1の値に対応する曲げ半径で変形させ、前記第2の関節パラメータの前記第1の値に対応する回転によって、前記基部に対して回転させることを含む、条項11~18のいずれかに記載のコンピュータ実装方法。
【0077】
20.いくつかの実施形態では、連続関節を含むロボットと、命令を記憶するメモリと、コントローラとを含むシステムであって、前記コントローラは、前記メモリに結合され、前記命令を実行するとき、前記ロボットに含まれる第1の連続関節に関連付けられた第1の関節パラメータの第1の値と、前記第1の連続関節に関連付けられた第2の関節パラメータの第1の値とを決定することであって、前記第1の関節パラメータは、前記連続関節の柔軟部分の曲げ半径を示し、前記第2の関節パラメータは、前記第1の連続関節の基部に対する前記連続関節の前記柔軟部分の回転を示す、前記決定することと、前記第1の関節パラメータの前記第1の値と前記第2の関節パラメータの前記第1の値とに基づいて、前記ロボットの端部を最終目標位置に位置決めさせることと、を行うように構成される、前記システム。
【0078】
任意の請求項に記載された任意の請求項要素及び/または本出願に記載の任意の要素のいずれか及び全ての、任意の方法での組み合わせは、本発明の企図された範囲及び保護の範囲内にある。
【0079】
様々な実施形態の説明を例示の目的で行ったが、この説明は、包括的であることも、開示の実施形態に限定することも意図していない。記載した実施形態の範囲及び主旨から逸脱することなく、多くの修正及び変形が当業者には明らかである。
【0080】
本実施形態の態様は、システム、方法、またはコンピュータプログラム製品として具体化されてよい。従って、本開示の態様は、全体的にハードウェアの実施形態、全体的にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、またはソフトウェア及びハードウェアの態様を組み合わせた実施形態の形態をとってよく、これらは全て一般的に、本明細書では、「モジュール」、「システム」、または「コンピュータ」と称されてよい。さらに、本開示に記載されている任意のハードウェア及び/またはソフトウェア技術、プロセス、機能、構成要素、エンジン、モジュール、またはシステムは、回路または回路のセットとして実装されてよい。さらに、本開示の態様は、コンピュータ可読プログラムコードが具体化された1つまたは複数のコンピュータ可読媒体(複数可)に具体化されたコンピュータプログラム製品の形をとってよい。
【0081】
1つまたは複数のコンピュータ可読媒体(複数可)の任意の組み合わせが利用されてよい。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってよい。コンピュータ可読記憶媒体は、例えば、電子、磁気、光、電磁気、赤外線、もしくは半導体のシステム、装置、もしくはデバイス、または、これらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例(包括的でないリスト)は、1つまたは複数の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、光学記憶装置、磁気記憶装置、またはこれらの任意の適切な組み合わせを含み得る。本文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによる使用のために、またはそれらと接続してプログラムを含むまたは記憶することができる任意の有形媒体であってよい。
【0082】
本開示の態様は、開示の実施形態による、方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/またはブロック図を参照して上記に説明されている。フローチャート図及び/またはブロック図の各ブロック、並びにフローチャート図及び/またはブロック図のブロックの組み合わせは、コンピュータプログラム命令によって実施できることが理解される。これらのコンピュータプログラム命令は、機械を製造するために、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてよい。命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるとき、フローチャート及び/またはブロック図のブロック(複数可)で指定された機能/行為の実施を可能にする。このようなプロセッサは、汎用プロセッサ、専用プロセッサ、特定用途向けプロセッサ、またはフィールドプログラマブルゲートアレイであってよいが、これらに限らない。
【0083】
図面のフローチャート及びブロック図は、本開示の様々な実施形態による、システム、方法、及びコンピュータプログラム製品の可能な実施態様のアーキテクチャ、機能、及び動作を示す。この点で、フローチャートまたはブロック図の各ブロックは、指定された論理関数(複数可)を実施するための1つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの一部を表してよい。いくつかの代替実施態様では、ブロックに記載の機能は、図に記載の順序とは違う順序で起こり得ることにも留意されたい。例えば、連続して示される2つのブロックは、実際は、実質的に同時に実行されてよい、または、ブロックは、含まれる機能に応じて、逆の順序で実行される場合もある。ブロック図及び/またはフローチャート図の各ブロック、並びにブロック図及び/またはフローチャート図のブロックの組み合わせは、指定の機能もしくは行為、または特殊目的ハードウェア及びコンピュータ命令の組み合わせを行う特殊目的ハードウェアベースのシステムによって実施できることにも留意されたい。
【0084】
上記は本開示の実施形態に関するが、本開示の他の及びさらなる実施形態は、その基本的な範囲から逸脱することなく考案されてよく、その範囲は、以下の特許請求の範囲によって決定される。
図1
図2
図3
図4
図5