(58)【調査した分野】(Int.Cl.,DB名)
アクチュエータの作用に基づく位置に関する情報に対応する速度(位置)及び力の情報と、制御の基準となる情報とに基づいて、実現される機能に応じて、制御エネルギーを速度または位置のエネルギーと力のエネルギーとに割り当てる変換を行う機能別力・速度割当変換手段と、
前記機能別力・速度割当変換手段によって割り当てられた速度または位置のエネルギーに基づいて、速度または位置の制御量を算出する位置制御量算出手段と、
前記機能別力・速度割当変換手段によって割り当てられた力のエネルギーに基づいて、力の制御量を算出する力制御量算出手段と、
前記速度または位置の制御量と前記力の制御量とを統合し、その出力をアクチュエータに戻すべく前記速度または位置の制御量と前記力の制御量とを逆変換して、前記アクチュエータへの入力を決定する統合手段と、
を備え、
前記アクチュエータは、回転運動及び直線運動の少なくともいずれかを出力するデバイスに備えられていることを特徴とする位置・力制御装置。
前記制御の基準となる情報は、前記アクチュエータが備えられた前記デバイスと異なる装置形態の装置において取得された速度(位置)及び力の情報であることを特徴とする請求項1に記載の位置・力制御装置。
アクチュエータの作用に基づく位置に関する情報に対応する速度(位置)及び力の情報と、制御の基準となる情報とに基づいて、実現される機能に応じて、制御エネルギーを速度または位置のエネルギーと力のエネルギーとに割り当てる変換を行う機能別力・速度割当変換手段と、
前記機能別力・速度割当変換手段によって割り当てられた速度または位置のエネルギーに基づいて、速度または位置の制御量を算出する位置制御量算出手段と、
前記機能別力・速度割当変換手段によって割り当てられた力のエネルギーに基づいて、力の制御量を算出する力制御量算出手段と、
前記速度または位置の制御量と前記力の制御量とを統合し、その出力をアクチュエータに戻すべく前記速度または位置の制御量と前記力の制御量とを逆変換して、前記アクチュエータへの入力を決定する統合手段と、
前記アクチュエータを作用させる対象物の位置に基づいて、前記アクチュエータの出力におけるオフセットを生成するオフセット生成手段と、
を備えることを特徴とする位置・力制御装置。
前記オフセットは、前記アクチュエータを作用させる対象物の位置を検出するセンサの検出結果に基づいて生成されることを特徴とする請求項7に記載の位置・力制御装置。
アクチュエータの作用に基づく位置に関する情報に対応する速度(位置)及び力の情報と、制御の基準となる情報とに基づいて、実現される機能に応じて、制御エネルギーを速度または位置のエネルギーと力のエネルギーとに割り当てる変換を行う機能別力・速度割当変換手段と、
前記機能別力・速度割当変換手段によって割り当てられた速度または位置のエネルギーに基づいて、速度または位置の制御量を算出する位置制御量算出手段と、
前記機能別力・速度割当変換手段によって割り当てられた力のエネルギーに基づいて、力の制御量を算出する力制御量算出手段と、
前記速度または位置の制御量と前記力の制御量とを統合し、その出力をアクチュエータに戻すべく前記速度または位置の制御量と前記力の制御量とを逆変換して、前記アクチュエータへの入力を決定する統合手段と、
前記アクチュエータの作用に基づく位置に関する情報に基づいて、前記アクチュエータを作用させる対象物における力の状態値を取得する力状態値取得手段と、
を備えることを特徴とする位置・力制御装置。
アクチュエータの作用に基づく位置に関する情報に対応する速度(位置)及び力の情報と、制御の基準となる情報とに基づいて、実現される機能に合わせて設定されている変換によって、制御エネルギーを速度または位置のエネルギーと力のエネルギーとに割り当てる変換を行う機能別力・速度割当変換手段と、
前記機能別力・速度割当変換手段によって割り当てられた速度または位置のエネルギーに基づいて、速度または位置の制御量を算出する位置制御量算出手段と、
前記機能別力・速度割当変換手段によって割り当てられた力のエネルギーに基づいて、力の制御量を算出する力制御量算出手段と、
前記速度または位置の制御量と前記力の制御量とを統合し、その出力をアクチュエータに戻すべく前記速度または位置の制御量と前記力の制御量とを逆変換して、前記アクチュエータへの入力を決定する統合手段と、
前記アクチュエータの出力に、位置、力及び時間の少なくともいずれかのスケーリングを生じさせるスケーリング手段と、
を備えることを特徴とする位置・力制御装置。
前記スケーリング手段は、前記アクチュエータの出力が閾値を超えているか否かに応じて、位置及び力の少なくともいずれかの前記スケーリングを生じさせることを特徴とする請求項10に記載の位置・力制御装置。
アクチュエータの動作と対応付けて入力された行為に基づく位置に関する情報に対応する速度(位置)及び力の情報を、制御の基準となる情報として、実現される機能に合わせて設定されている変換によって、制御エネルギーを速度または位置のエネルギーと力のエネルギーとに割り当てる変換を行う機能別力・速度割当変換手段と、
前記機能別力・速度割当変換手段によって割り当てられた速度または位置のエネルギーに基づいて、速度または位置の制御量を算出する位置制御量算出手段と、
前記機能別力・速度割当変換手段によって割り当てられた力のエネルギーに基づいて、力の制御量を算出する力制御量算出手段と、
前記速度または位置の制御量と前記力の制御量とを統合し、その出力をアクチュエータに戻すべく前記速度または位置の制御量と前記力の制御量とを逆変換して、前記行為に対応する動作を出力するアクチュエータへの入力を決定する統合手段と、
前記機能別力・速度割当変換手段、前記位置制御量算出手段及び前記力制御量算出手段の演算内容を抽出する抽出手段と、
を備えることを特徴とする位置・力制御装置。
前記抽出手段の抽出結果に基づいて、1または複数の対象者によって入力された前記行為における前記機能別力・速度割当変換手段、前記位置制御量算出手段及び前記力制御量算出手段の演算内容を蓄積したデータベースを生成することを特徴とする請求項12に記載の位置・力制御装置。
アクチュエータの作用に基づく位置に関する情報に対応する速度(位置)及び力の情報と、制御の基準となる情報とに基づいて、実現される機能に応じて、制御エネルギーを速度または位置のエネルギーと力のエネルギーとに割り当てる変換を行う機能別力・速度割当変換手段と、
前記機能別力・速度割当変換手段によって割り当てられた速度または位置のエネルギーに基づいて、速度または位置の制御量を算出する位置制御量算出手段と、
前記機能別力・速度割当変換手段によって割り当てられた力のエネルギーに基づいて、力の制御量を算出する力制御量算出手段と、
前記速度または位置の制御量と前記力の制御量とを統合し、その出力をアクチュエータに戻すべく前記速度または位置の制御量と前記力の制御量とを逆変換して、前記アクチュエータへの入力を決定する統合手段と、
を備え、
1または複数の前記アクチュエータによって、対象物に接触させる1または複数の接触子を制御することにより、前記対象物を把持することを特徴とする位置・力制御装置。
第1のアクチュエータの作用に基づく位置に関する情報に対応する速度(位置)及び力の情報と、第2のアクチュエータの作用に基づく位置に関する情報とに基づいて、実現される機能に応じて、制御エネルギーを速度または位置のエネルギーと力のエネルギーとに割り当てる変換を行う機能別力・速度割当変換手段と、
前記機能別力・速度割当変換手段によって割り当てられた速度または位置のエネルギーに基づいて、速度または位置の制御量を算出する位置制御量算出手段と、
前記機能別力・速度割当変換手段によって割り当てられた力のエネルギーに基づいて、力の制御量を算出する力制御量算出手段と、
前記速度または位置の制御量と前記力の制御量とを統合し、その出力を前記第1のアクチュエータに戻すべく前記速度または位置の制御量と前記力の制御量とを逆変換して、前記第1のアクチュエータへの入力を決定する統合手段と、
を備え、
前記第2のアクチュエータへの外部からの作用が、前記第1のアクチュエータの出力として伝達されることを特徴とする位置・力制御装置。
前記第1のアクチュエータ及び前記第2のアクチュエータの少なくともいずれかの出力に、位置及び力の少なくともいずれかのスケーリングを生じさせるスケーリング手段を備えることを特徴とする請求項18または19に記載の位置・力制御装置。
前記第1のアクチュエータの動作及び前記第2のアクチュエータの動作において、リアルタイムに力触覚の伝達が行われることを特徴とする請求項18から20のいずれか1項に記載の位置・力制御装置。
アクチュエータの作用に基づく位置に関する情報に対応する速度(位置)及び力の情報と、制御の基準となる情報とに基づいて、実現される機能に応じて、制御エネルギーを速度または位置のエネルギーと力のエネルギーとに割り当てる変換を行う機能別力・速度割当変換手段と、
前記機能別力・速度割当変換手段によって割り当てられた速度または位置のエネルギーに基づいて、速度または位置の制御量を算出する位置制御量算出手段と、
前記機能別力・速度割当変換手段によって割り当てられた力のエネルギーに基づいて、力の制御量を算出する力制御量算出手段と、
前記速度または位置の制御量と前記力の制御量とを統合し、その出力をアクチュエータに戻すべく前記速度または位置の制御量と前記力の制御量とを逆変換して、前記アクチュエータへの入力を決定する統合手段と、
前記アクチュエータが作用する対象物に関する計測を実行する計測手段と、
を備えることを特徴とする位置・力制御装置。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態について、図面を参照して説明する。
初めに、本発明に係る位置・力制御装置、位置・力制御方法及びプログラムに適用される基本的原理について説明する。
【0009】
なお、人間の身体的行為は、1つの関節等の個別の「機能」が単独で、あるいは組み合わされて構成されるものである。
したがって、以下、本実施形態において、「行為」とは、人間の身体における部位の個別の「機能」を構成要素として実現される統合的な機能を表すものとする。例えば、中指の曲げ伸ばしを伴う行為(ねじを回す行為等)は、中指の各関節の機能を構成要素とする統合的な機能である。
【0010】
(基本的原理)
本発明における基本的原理は、どのような行為も力源と速度(位置)源および行為を表す変換の三要素で数理的に表現できることから、変換及び逆変換により定義される変数群に対し、双対関係にある理想力源および理想速度(位置)源より制御エネルギーを制御対象のシステムに供給することで、抽出した身体的行為を構造化し、再構築あるいは拡張増幅し身体的行為を可逆的に自動実現(再現)する、というものである。
【0011】
図1は、本発明に係る基本的原理の概念を示す模式図である。
図1に示す基本的原理は、人間の身体的行為を実現するために利用可能なアクチュエータの制御則を表しており、アクチュエータの現在位置を入力として、位置(または速度)あるいは力の少なくとも一方の領域における演算を行うことにより、アクチュエータの動作を決定するものである。
即ち、本発明の基本的原理は、制御対象システムSと、機能別力・速度割当変換ブロックFTと、理想力源ブロックFCあるいは理想速度(位置)源ブロックPCの少なくとも一つと、逆変換ブロックIFTとを含む制御則として表される。
【0012】
制御対象システムSは、アクチュエータによって作動するロボットであり、加速度等に基づいてアクチュエータの制御を行う。ここで、制御対象システムSは、人間の身体における1つまたは複数の部位の機能を実現するものであるが、その機能を実現するための制御則が適用されていれば、具体的な構成は必ずしも人間の身体を模した形態でなくてもよい。例えば、制御対象システムSは、アクチュエータによってリンクに一次元のスライド動作を行わせるロボットとすることができる。
【0013】
機能別力・速度割当変換ブロックFTは、制御対象システムSの機能に応じて設定される速度(位置)及び力の領域への制御エネルギーの変換を定義するブロックである。具体的には、機能別力・速度割当変換ブロックFTでは、制御対象システムSの機能の基準となる値(基準値)と、アクチュエータの現在位置とを入力とする座標変換が定義されている。この座標変換は、一般に、基準値及び現在速度(位置)を要素とする入力ベクトルを速度(位置)の制御目標値を算出するための速度(位置)からなる出力ベクトルに変換するとともに、基準値及び現在の力を要素とする入力ベクトルを力の制御目標値を算出するための力からなる出力ベクトルに変換するものである。具体的には、機能別力・速度割当変換ブロックFTにおける座標変換は、次式(1)及び(2)のように一般化して表される。
【0015】
ただし、式(1)において、x’
1〜x’
n(nは1以上の整数)は速度の状態値を導出するための速度ベクトルであり、x’
a〜x’
m(mは1以上の整数)は、基準値及びアクチュエータの作用に基づく速度(アクチュエータの移動子の速度またはアクチュエータが移動させる対象物の速度)を要素とするベクトル、h
1a〜h
nmは機能を表す変換行列の要素である。また、式(2)において、f’’
1〜f’’
n(nは1以上の整数)は力の状態値を導出するための力ベクトルであり、f’’
a〜f’’
m(mは1以上の整数)は、基準値及びアクチュエータの作用に基づく力(アクチュエータの移動子の力またはアクチュエータが移動させる対象物の力)を要素とするベクトルである。
機能別力・速度割当変換ブロックFTにおける座標変換を、実現する機能に応じて設定することにより、各種行為を実現したり、スケーリングを伴う行為の再現を行ったりすることができる。
即ち、本発明の基本的原理では、機能別力・速度割当変換ブロックFTにおいて、アクチュエータ単体の変数(実空間上の変数)を、実現する機能を表現するシステム全体の変数群(仮想空間上の変数)に“変換”し、速度(位置)の制御エネルギーと力の制御エネルギーとに制御エネルギーを割り当てる。そのため、アクチュエータ単体の変数(実空間上の変数)のまま制御を行う場合と比較して、速度(位置)の制御エネルギーと力の制御エネルギーとを独立に与えることが可能となっている。
【0016】
理想力源ブロックFCは、機能別力・速度割当変換ブロックFTによって定義された座標変換に従って、力の領域における演算を行うブロックである。理想力源ブロックFCにおいては、機能別力・速度割当変換ブロックFTによって定義された座標変換に基づく演算を行う際の力に関する目標値が設定されている。この目標値は、実現される機能に応じて固定値または可変値として設定される。例えば、基準値が示す機能と同様の機能を実現する場合には、目標値としてゼロを設定したり、スケーリングを行う場合には、再現する機能を示す情報を拡大・縮小した値を設定したりできる。
【0017】
理想速度(位置)源ブロックPCは、機能別力・速度割当変換ブロックFTによって定義された座標変換に従って、速度(位置)の領域における演算を行うブロックである。理想速度(位置)源ブロックPCにおいては、機能別力・速度割当変換ブロックFTによって定義された座標変換に基づく演算を行う際の速度(位置)に関する目標値が設定されている。この目標値は、実現される機能に応じて固定値または可変値として設定される。例えば、基準値が示す機能と同様の機能を実現する場合には、目標値としてゼロを設定したり、スケーリングを行う場合には、再現する機能を示す情報を拡大・縮小した値を設定したりできる。
【0018】
逆変換ブロックIFTは、速度(位置)及び力の領域の値を制御対象システムSへの入力の領域の値(例えば電圧値または電流値等)に変換するブロックである。
このような基本的原理により、制御対象システムSのアクチュエータにおける位置の情報が機能別力・速度割当変換ブロックFTに入力されると、位置の情報に基づいて得られる速度(位置)及び力の情報を用いて、機能別力・速度割当変換ブロックFTにおいて、機能に応じた位置及び力の領域それぞれの制御則が適用される。そして、理想力源ブロックFCにおいて、機能に応じた力の演算が行われ、理想速度(位置)源ブロックPCにおいて、機能に応じた速度(位置)の演算が行われ、力及び速度(位置)それぞれに制御エネルギーが分配される。
【0019】
理想力源ブロックFC及び理想速度(位置)源ブロックPCにおける演算結果は、制御対象システムSの制御目標を示す情報となり、これらの演算結果が逆変換ブロックIFTにおいてアクチュエータの入力値とされて、制御対象システムSに入力される。
その結果、制御対象システムSのアクチュエータは、機能別力・速度割当変換ブロックFTによって定義された機能に従う動作を実行し、目的とするロボットの動作が実現される。
即ち、本発明においては、ロボットによって人間の身体的行為をより適切に実現することが可能となる。
【0020】
(定義される機能例)
次に、機能別力・速度割当変換ブロックFTによって定義される機能の具体例について説明する。
機能別力・速度割当変換ブロックFTでは、入力されたアクチュエータの現在位置に基づいて得られる速度(位置)及び力を対象とした座標変換(実現する機能に対応した実空間から仮想空間への変換)が定義されている。
機能別力・速度割当変換ブロックFTでは、このような現在位置から速度(位置)及び力と、機能の基準値としての速度(位置)及び力とを入力として、速度(位置)及び力それぞれについての制御則が加速度次元において適用される。
即ち、アクチュエータにおける力は質量と加速度との積で表され、アクチュエータにおける速度(位置)は加速度の積分によって表される。そのため、加速度の領域を介して、速度(位置)及び力を制御することで、アクチュエータの現在位置を取得して、目的とする機能を実現することができる。
【0021】
以下、各種機能の具体的な例を説明する。
(力・触覚伝達機能)
図2は、機能別力・速度割当変換ブロックFTにおいて力・触覚伝達機能が定義された場合の制御の概念を示す模式図である。また、
図3は、力・触覚伝達機能が適用されるマスタ装置及びスレーブ装置を含むマスタ・スレーブシステムの概念を示す模式図である。
図2に示すように、機能別力・速度割当変換ブロックFTによって定義される機能として、マスタ装置の動作をスレーブ装置に伝達すると共に、スレーブ装置に対する物体からの反力の入力をマスタ装置にフィードバックする機能(バイラテラル制御機能)を実現することができる。
この場合、機能別力・速度割当変換ブロックFTにおける座標変換は、次式(3)及び(4)として表される。
【0023】
ただし、式(3)において、x’
pは速度(位置)の状態値を導出するための速度、x’
fは力の状態値に関する速度である。また、x’
mは基準値(マスタ装置からの入力)の速度(マスタ装置の現在位置の微分値)、x’
sはスレーブ装置の現在の速度(現在位置の微分値)である。また、式(4)において、f
pは速度(位置)の状態値に関する力、f
fは力の状態値を導出するための力である。また、f
mは基準値(マスタ装置からの入力)の力、f
sはスレーブ装置の現在の力である。
【0024】
(ピック&プレイス機能)
図4は、機能別力・速度割当変換ブロックFTにおいてピック&プレイス機能が定義された場合の制御の概念を示す模式図である。また、
図5は、ピック&プレイス機能が適用される第1のアーム及び第2のアームを含むロボットアームシステムの概念を示す模式図である。
【0025】
図4に示すように、機能別力・速度割当変換ブロックFTによって定義される機能として、ワーク等の物体を掴み(ピック)、目的位置まで搬送して離す(プレイス)機能(ピック&プレイス機能)を実現することができる。
この場合、機能別力・速度割当変換ブロックFTにおける座標変換は、次式(5)及び(6)として表される。
【0027】
ただし、式(5)において、x’
maniは速度(位置)の状態値を導出するための速度、x’
graspは力の状態値に関する速度である。また、x’
1は第1アームの速度(現在位置の微分)、x’
2は第2アームの速度(現在位置の微分)である。また、式(6)において、f
maniは速度(位置)の状態値に関する力、f
graspは力の状態値を導出するための力である。また、f
1は第1のアームが物体から受ける反力、f
2は第2のアームが物体から受ける反力である。
【0028】
(ねじ回しの学習及び再現機能)
図6は、機能別力・速度割当変換ブロックFTにおいてねじ回しの学習及び再現機能が定義された場合の制御の概念を示す模式図である。また、
図7は、ねじ回しの学習及び再現機能が適用されるロボットを示す模式図であり、
図7(a)は、ねじ回しの学習及び再現機能が適用されるマスタの指型ロボットとスレーブの指型ロボットとを含むマスタ・スレーブシステムの概念を示す模式図、
図7(b)は、指型ロボットの指機構を示す模式図である。
図6に示すように、機能別力・速度割当変換ブロックFTによって定義される機能として、指の曲げ伸ばしによってねじの締緩を行うねじ回しの学習及び再現機能を実現することができる。
この場合、機能別力・速度割当変換ブロックFTにおける座標変換は、次式(7)及び(8)として表される。
【0030】
式(7)において、x’
a1はMP関節の角度に関する速度応答値、x’
a2はPIP関節の角度に関する速度応答値、x’
a3はDIP関節の角度に関する速度応答値である。また、x’
τ1はMP関節のトルクに関する速度応答値、x’
τ2はPIP関節のトルクに関する速度応答値、x’
τ3はDIP関節のトルクに関する速度応答値、x’
t1は、マスタの指型ロボットにおけるワイヤW1〜W4の張力に関する速度応答値、x’
t2は、スレーブの指型ロボットにおけるワイヤW5〜W8の張力に関する速度応答値、x’
1〜x’
4はマスタの指型ロボットに連結されたワイヤW1〜W4それぞれの速度応答値、x’
5〜x’
8はスレーブの指型ロボットに連結されたワイヤW5〜W8それぞれの速度応答値である。なお、MP関節の角度、PIP関節の角度及びDIP関節の角度は、
図7(b)におけるθ
1〜θ
3に示すように定義される。また、式(8)において、f
a1はMP関節の角度に関する力応答値、f
a2はPIP関節の角度に関する力応答値、f
a3はDIP関節の角度に関する力応答値である。また、f
τ1はMP関節のトルクに関する力応答値、f
τ2はPIP関節のトルクに関する力応答値、f
τ3はDIP関節のトルクに関する力応答値、f
t1は、マスタの指型ロボットにおけるワイヤW1〜W4の張力に関する力応答値、f
t2は、スレーブの指型ロボットにおけるワイヤW5〜W8の張力に関する力応答値、f
1〜f
4はマスタの指型ロボットに連結されたワイヤW1〜W4それぞれの力応答値、f
5〜f
8はスレーブの指型ロボットに連結されたワイヤW5〜W8それぞれの力応答値である。
【0031】
(位置・力制御装置の基本的構成)
次に、本発明の基本的原理を適用した位置・力制御装置1の基本的構成について説明する。
図8は、本発明に係る位置・力制御装置1の基本的構成を示す模式図である。
図8において、位置・力制御装置1は、基準値入力部10と、制御部20と、ドライバ30と、アクチュエータ40と、位置センサ50とを含んで構成される。
位置・力制御装置1は、図示しないマスタ装置の動作と対応するスレーブ装置として動作するものであり、マスタ装置のアクチュエータに設置された位置センサの検出結果を入力として、機能に応じた動作を行う。
位置・力制御装置1に実装される機能は、後述するように、制御部20における機能別力・速度割当変換ブロックFTによって定義される座標変換を切り替えることで、種々変更することができる。
【0032】
基準値入力部10は、位置・力制御装置1に備えられる機能毎の基準となる値(基準値)を制御部20に入力する。この基準値は、例えば、マスタ装置のアクチュエータに設置された位置センサから出力される時系列の検出値である。マスタ装置から時系列の検出値をリアルタイムで制御部20に基準値として入力する場合、基準値入力部10は、通信インターフェース(通信I/F)によって構成することができる。また、マスタ装置の時系列の検出値を記憶しておき、基準値として順次読み出して制御部20に入力する場合、基準値入力部10は、メモリあるいはハードディスク等の記憶装置によって構成することができる。
【0033】
制御部20は、位置・力制御装置1全体を制御するものであり、CPU(Central Processing Unit)等の情報処理装置によって構成される。
また、制御部20は、
図1における機能別力・速度割当変換ブロックFTと、理想力源ブロックFCと、理想速度(位置)源ブロックPCと、逆変換ブロックIFTとの機能を備えている。
即ち、制御部20には、基準値入力部10を介して、マスタ装置の位置センサによって検出された時系列の検出値が入力される。この時系列の検出値は、マスタ装置の動作を表すものであり、制御部20は、入力された検出値(位置)から導出された速度(位置)及び力の情報に対して、機能に応じて設定されている座標変換を適用する。
【0034】
そして、制御部20は、座標変換によって得られた速度(位置)の状態値を導出するための速度(位置)に対し、速度(位置)の領域における演算を行う。同様に、制御部20は、座標変換によって得られた力の状態値を導出するための力に対し、力の領域における演算を行う。さらに、制御部20は、算出した速度(位置)の領域における演算結果及び力の領域における演算結果に対して、加速度等への次元統一の処理を施し、また、機能に応じて設定されている座標変換の逆変換を適用する。これにより、制御部20は、算出した速度(位置)の領域における演算結果及び力の領域における演算結果がアクチュエータへの入力の領域の値に変換される。
【0035】
ドライバ30は、制御部20によって逆変換されたアクチュエータへの入力の領域の値をアクチュエータ40に対する具体的な制御指令値(電圧値または電流値等)に変換し、その制御指令値をアクチュエータ40に出力する。
アクチュエータ40は、ドライバ30から入力された制御指令値に従って駆動され、制御対象物の位置を制御する。
位置センサ50は、アクチュエータ40によって制御される制御対象物の位置を検出し、検出値を制御部20に出力する。
【0036】
このような構成により、位置・力制御装置1は、位置センサ50によって検出された制御対象物の位置から得られる速度(位置)及び力を、機能に応じた座標変換によって速度(位置)の領域及び力の領域の状態値に変換する。これにより、機能に応じて速度(位置)及び力それぞれに制御エネルギーが分配される。そして、それぞれの状態値が逆変換されて制御指令値とされ、この制御指令値に従って、ドライバ30によりアクチュエータ40が駆動される。
したがって、位置・力制御装置1は、制御対象物の位置を検出することで、目的とする機能を実現するために必要な速度(位置)及び力の状態値を算出することができ、これらの状態値に基づいてアクチュエータ40を駆動することで、制御対象物の位置及び力を目的とする状態に制御することができる。
【0037】
また、位置・力制御装置1は、制御部20における機能に応じた座標変換を切り替えることで、異なる機能を実現することが可能となる。例えば、位置・力制御装置1に備えられた記憶装置に、複数の機能に対応して、各機能に応じた座標変換を記憶しておき、目的に応じて、いずれかの機能に応じた座標変換を選択することで、位置・力制御装置1において種々の機能を実現させることが可能となる。
また、位置・力制御装置1は、制御部20に対して入力される基準値を、マスタ装置からリアルタイムに入力される位置及び力の取得値とすることができる。この場合、マスタ装置の動作とリアルタイムに連動して、位置・力制御装置1を制御することができる。
また、位置・力制御装置1は、制御部20に対して入力される基準値を、予め取得して記憶されたマスタ装置またはスレーブ装置の時系列の位置及び力の取得値とすることができる。この場合、予め用意されたマスタ装置の動作を基準として、位置・力制御装置1の機能を実現することができる。即ち、マスタ装置が存在しない状態で、位置・力制御装置1において、目的とする機能を再現することができる。
【0038】
(位置・力制御装置1の具体例)
次に、位置・力制御装置1の具体的な構成例について説明する。
上述のように、制御部20において定義される機能に応じた座標変換を切り替えることで、位置・力制御装置1は、種々の機能を実現することができる。
以下、
図2の力・触覚伝達機能、
図4のピック&プレイス機能及び
図6のねじ回しの学習及び再現機能を実現する場合の位置・力制御装置1の構成例について説明する。
(力・触覚伝達機能を実現する位置・力制御装置1の構成例)
【0039】
図9は、力・触覚伝達機能を実現する位置・力制御装置1の構成を示す模式図である。
図9において、位置・力制御装置1は、マスタ装置100Aと、スレーブ装置100Bと、PC(Personal Computer)100Cとを含んで構成される。
マスタ装置100Aは、ドライバ30及び位置センサ50を内蔵したアクチュエータ40によって構成される。
マスタ装置100Aは、一方向にスライド可能な可動軸41Aを備えており、可動軸41Aは操作者によって移動される。可動軸41Aの位置は、位置センサ50によって検出され、この検出値はPC100Cに出力される。
【0040】
また、マスタ装置100Aのアクチュエータ40は、PC100Cによって制御される。
図9における位置・力制御装置1は、バイラテラル制御機能を備えており、アクチュエータ40の動作はスレーブ装置100Bが物体に接触する力に応じて、PC100Cによって制御される。
スレーブ装置100Bは、マスタ装置100Aと同様に、ドライバ30及び位置センサ50を内蔵したアクチュエータ40によって構成される。
スレーブ装置100Bは、一方向にスライド可能な可動軸41Bを備えており、可動軸41Bはアクチュエータ40によって移動される。可動軸41Bの位置は、位置センサ50によって検出され、この検出値はPC100Cに出力される。
PC100Cは、基準値入力部10の機能を有する通信インターフェース110と、制御部20とを備えている。
【0041】
通信インターフェース110は、マスタ装置100A及びスレーブ装置100Bから入力される位置センサ50の検出値を受け取り、制御部20に出力する。また、通信インターフェース110は、制御部20から入力されるマスタ装置100A及びスレーブ装置100Bのアクチュエータ40を制御するための加速度の値を、マスタ装置100A及びスレーブ装置100Bに出力する。
【0042】
力・触覚伝達機能を実現する位置・力制御装置1の場合、制御部20においては、式(2)として表される座標変換が定義されるため、マスタ装置100Aのアクチュエータ40の位置とスレーブ装置100Bのアクチュエータ40の位置との差がゼロとなる状態に制御される。また、マスタ装置100Aのアクチュエータ40に操作者が加える力とスレーブ装置100Bのアクチュエータ40に作用する物体からの反力とが、作用・反作用の関係(互いに等しく逆向き)となる状態に制御される。
これにより、マスタ装置100Aに対して行われた操作がスレーブ装置100Bで正確に再現されると共に、スレーブ装置100Bに入力された物体からの反力をマスタ装置100Aに正確に伝達することができる。
【0043】
(ピック&プレイス機能を実現する位置・力制御装置1の構成例)
図10は、ピック&プレイス機能を実現する位置・力制御装置1の構成を示す模式図である。
図10において、位置・力制御装置1は、第1のアームを構成するアームユニット200Aと、第2のアームを構成するアームユニット200Bと、PC200Cとを含んで構成される。
アームユニット200Aは、アーム部201Aと、ドライバ30及び位置センサ50を内蔵したアクチュエータ40とによって構成される。
【0044】
アームユニット200Aは、一方向にスライド可能な可動軸(不図示)を備えており、可動軸の先端部にはアーム部201Aが固定されている。アーム部201Aの位置(即ち、可動軸の位置)は、位置センサ50によって検出され、この検出値はPC200Cに出力される。
また、アームユニット200Aのアクチュエータ40は、PC200Cによって制御される。具体的には、アーム部201Aは、設定された力で対象物に当接され、アーム部201Bと共に、その状態を保持して対象物を移動するようにPC200Cによって制御される。
【0045】
アームユニット200Bは、アーム部201Aと、アームユニット200Aと同様に、ドライバ30及び位置センサ50を内蔵したアクチュエータ40とによって構成される。
PC200Cは、基準値入力部10の機能を有する通信インターフェース210と、制御部20とを備えている。
通信インターフェース210は、アームユニット200A及びアームユニット200Bから入力される位置センサ50の検出値を受け取り、制御部20に出力する。また、通信インターフェース210は、制御部20から入力されるアームユニット200A及びアームユニット200Bのアクチュエータ40を制御するための加速度の値を、アームユニット200A及びアームユニット200Bに出力する。
【0046】
ピック&プレイス機能を実現する位置・力制御装置1の場合、制御部20においては、式(3)として表される座標変換が定義されるため、アームユニット200Aのアクチュエータ40に作用する物体からの反力ベクトルとアームユニット200Bのアクチュエータ40に作用する物体からの反力ベクトルの差、つまり、把持力が設定された目標値となる状態に制御される。また、アームユニット200Aのアーム部201Aの位置(基準位置からの変位)とアームユニット200Bのアーム部201Bの位置(基準位置からの変位)の和、つまり、二つのアームの中心が設定された目標値となる状態に制御される。
【0047】
これにより、アームユニット200Aのアーム部201Aとアームユニット200Bのアーム部201Bとは、互いに近づいたり離れたりする動作を行うと共に、対象物と同一の力で当接する状態に制御される。このような状態で、アーム部201Aとアーム部201Bとを同方向に移動させることで、対象物を掴み、目的位置まで搬送することが可能となる。
【0048】
(ねじ回しの学習及び再現機能を実現する位置・力制御装置1の構成例)
図11は、ねじ回しの学習及び再現機能を実現する位置・力制御装置1の構成を示す模式図である。
図11において、位置・力制御装置1は、マスタ装置としての指型ロボット300Aと、スレーブ装置としての指型ロボット300Bと、PC300Cとを含んで構成される。
指型ロボット300Aは、指機構部310Aと、指機構部310Aの各部に連結されたワイヤW1〜W4と、ワイヤW1〜W4を引き込む制御を行うアクチュエータ40a〜40dとによって構成される。
【0049】
指機構部310Aは、人間の中手骨に相当するベース部311Aと、基節骨に相当する基節骨部312Aと、中節骨に相当する中節骨部313Aと、末節骨に相当する末節骨部314Aと、MP関節に相当するMP関節部315Aと、PIP関節に相当するPIP関節部316Aと、DIP関節に相当するDIP関節部317Aとを備えている。
ワイヤW1は、末節骨部314Aの手の甲側に一端が連結され、指機構部310Aにおける手の甲側を通って、他端がアクチュエータ40aの出力軸に連結されている。そのため、ワイヤW1がアクチュエータ40aによって引き込まれると、指機構部310Aにおいて指を伸ばす動作が実現される。
【0050】
ワイヤW2は、末節骨部314Aの手の平側に一端が連結され、中節骨部313Aにおいて手の甲側に引き出された後、他端がアクチュエータ40bの出力軸に連結されている。そのため、ワイヤW2がアクチュエータ40bによって引き込まれるとDIP関節部では指を曲げる方向、PIP関節およびMP関節では指を伸ばす方向に力が加わる。
ワイヤW3は、中節骨部313Aの手の平側に一端が連結され、基節骨部312Aにおいて手の甲側に引き出された後、他端がアクチュエータ40cの出力軸に連結されている。そのため、ワイヤW3がアクチュエータ40cによって引き込まれるとPIP関節では指を曲げる方向、MP関節では指を伸ばす方向に力が加わる。
【0051】
ワイヤW4は、基節骨部312Aの手の平側に一端が連結され、指機構部310Aにおける手の平側を通って、他端がアクチュエータ40dの出力軸に連結されている。そのため、ワイヤW4がアクチュエータ40dによって引き込まれると、基節骨部312AにおいてMP関節部315Aを支点として、指を曲げる動作が実現される。
【0052】
アクチュエータ40a〜40dは、PC300Cによって制御される。具体的には、アクチュエータ40a〜40dには、PC300Cから、指型ロボット300Aの各部の位置・角度及び姿勢、回転トルク、ワイヤW1〜W4の張力を実現するための値が入力され、これらの入力値に従って、ワイヤW1〜W4を引き込む制御を行う。
また、各アクチュエータ40a〜40dは、ドライバ30及び位置センサ50を内蔵している。ワイヤW1〜W4の位置は、各アクチュエータ40a〜40dの位置センサ50によって検出され、この検出値はPC300Cに出力される。
【0053】
ここで、指型ロボット300Aは、人間の指の動作(行為)に追従して動かされ、アクチュエータ40a〜40dにおける位置センサ50の時系列の検出値として、その動作(行為)を抽出する。
具体的には、指型ロボット300Aの指機構部310Aの各部は、人間の指と対応する箇所において(即ち、末節骨と末節骨部314A、中節骨と中節骨部313A、基節骨と基節骨部312Aにおいて)固定され、人間の指の動作に追従する状態とされる。
なお、末節骨と末節骨部314A、中節骨と中節骨部313A、基節骨と基節骨部312Aのうち、末節骨と末節骨部314Aの固定に加えて、他の1箇所を固定すれば、その他の1箇所の固定は省略することができる。
【0054】
指型ロボット300Bは、指機構部310Bと、指機構部310Bの各部に連結されたワイヤW5〜W8と、ワイヤW5〜W8を引き込む制御を行うアクチュエータ40e〜40hとによって構成される。
指機構部310Bは、人間の中手骨に相当するベース部311Bと、基節骨に相当する基節骨部312Bと、中節骨に相当する中節骨部313Bと、末節骨に相当する末節骨部314Bと、MP関節に相当するMP関節部315Bと、PIP関節に相当するPIP関節部316Bと、DIP関節に相当するDIP関節部317Bとを備えている。
【0055】
ワイヤW5は、基節骨部312Bの手の甲側に一端が連結され、指機構部310Aにおける手の甲側を通って、他端がアクチュエータ40eの出力軸に連結されている。そのため、ワイヤW5がアクチュエータ40eによって引き込まれると、基節骨部312BにおいてMP関節部315Bを支点として、指を伸ばす動作が実現される。
ワイヤW6は、中節骨部313Bの手の甲側に一端が連結され、基節骨部312Bにおいて手の平側に引き出された後、他端がアクチュエータ40fの出力軸に連結されている。そのため、ワイヤW6がアクチュエータ40fによって引き込まれると、中節骨部313BにおいてPIP関節部316Bを支点として、指を伸ばす動作が実現される。
【0056】
ワイヤW7は、末節骨部314Bの手の甲側に一端が連結され、中節骨部313Bにおいて手の平側に引き出された後、他端がアクチュエータ40gの出力軸に連結されている。そのため、ワイヤW7がアクチュエータ40gによって引き込まれると、末節骨部314BにおいてDIP関節部317Bを支点として、指を伸ばす動作が実現される。
ワイヤW8は、末節骨部314Bの手の平側に一端が連結され、指機構部310Bにおける手の平側を通って、他端がアクチュエータ40hの出力軸に連結されている。そのため、ワイヤW8がアクチュエータ40hによって引き込まれると、指機構部310Bにおいて指を曲げる動作が実現される。
【0057】
アクチュエータ40e〜40hは、PC300Cによって制御される。具体的には、アクチュエータ40e〜40hには、PC300Cから、指型ロボット300Aの動作として抽出された各部の位置・角度及び姿勢、回転トルク、ワイヤW5〜W8の張力を実現するための値が入力され、これらの入力値に従って、ワイヤW5〜W8を引き込む制御を行う。
また、各アクチュエータ40e〜40hは、ドライバ30及び位置センサ50を内蔵している。ワイヤW5〜W8の位置は、各アクチュエータ40e〜40hの位置センサ50によって検出され、この検出値はPC300Cに出力される。
【0058】
PC300Cは、基準値入力部10の機能を有する通信インターフェース310と、制御部20とを備えている。
通信インターフェース310は、指型ロボット300A及び指型ロボット300Bから入力される各位置センサ50の検出値を受け取り、制御部20に出力する。また、通信インターフェース310は、制御部20から入力される指型ロボット300A及び指型ロボット300Bのアクチュエータ40a〜40hを制御するための加速度の値を、指型ロボット300A及び指型ロボット300Bに出力する。
【0059】
ねじ回しの学習及び再現機能を実現する位置・力制御装置1の場合、制御部20においては、式(4)として表される座標変換が定義される。そのため、指型ロボット300Aにおいて抽出された指の各部の動作に応じた制御が指型ロボット300Bにおいて実行される。
これにより、人間がマスタ装置としての指型ロボット300Aにおいて、ねじを回す動作を行うと、スレーブ装置としての指型ロボット300Bでは、その動作が実現され、ねじを回すことができる。このとき、指型ロボット300Bにねじから作用する力は、バイラテラル制御機能によって、指型ロボット300Aにおいて再現される。即ち、ねじを回す動作を行っている人間の指に対して、アクチュエータ40a〜40dにより、実際にねじを回している場合と同様の反力が再現される。
【0060】
(行為の抽出機能)
次に、本発明によって実現される人間の行為の抽出機能について詳細に説明する。
図11の「ねじ回しの学習及び再現機能を実現する位置・力制御装置1の構成例」において説明したように、人間の身体の機能に対応する機構のロボットを構成し、人間の身体の機能をこのロボットに追従させて、その際の時系列の動作を検出することで、人間の行為を抽出することが可能となる。
【0061】
例えば、
図11に示す指型ロボット300Aの場合、人間が指を動かしてねじを回す動作に追従して、指機構部310Aが動いた際のワイヤW1〜W4またはワイヤW5〜W8の位置を時系列に各位置センサ50で検出し、これらの位置を記憶装置に記憶しておく。
また、ワイヤW1〜W4またはワイヤW5〜W8の位置の検出結果に代えて、制御部20において座標変換結果として得られる状態値を導出するための各値(即ち、時系列で算出された式(4)の左辺の各値)を記憶装置に記憶しておくこととしてもよい。
【0062】
図12は、行為の抽出結果として記憶される情報例を示す模式図であり、
図12(a)はワイヤW1〜W4の時系列の位置が記憶された場合、
図12(b)は式(4)の座標変換結果が記憶された場合を示している。
図12(a)を参照すると、例えば、ワイヤW1について、時刻t1では位置p1、時刻t2では位置p2、時刻t3では位置p3・・・と時系列の位置が記憶されている。
また、
図12(b)を参照すると、例えば、座標変換結果x’’
a1について、時刻t1では座標変換結果q1、時刻t2では座標変換結果q2、時刻t3では座標変換結果q3・・・と時系列の値が記憶されている。
これにより、人間が一度だけ実際に指の動作(行為)を行えば、それ以降、指の動作(行為)を行わなくても、ねじ回しの学習及び再現機能等の動作(行為)をロボットによって再現することができる。
【0063】
(適応的機能実現)
次に、本発明によって可能となる適応的機能実現について説明する。
適応的機能実現とは、上述のように行為の抽出機能によって人間の行為が抽出された場合に、行為の抽出時とは異なる対象物であっても、抽出された機能が適応的に実現されることをいう。
本実施形態における適応的機能実現においては、式(7)及び式(8)に示す座標変換のうち、力の領域における状態値を導出するための力のベクトルを得る演算を適用する。即ち、適応的機能実現においては、式(7)及び式(8)に示す座標変換において、適応的機能実現の目的に応じた入力を用いる一方、他の部分の入力を実質的にゼロとし、座標変換における一部の要素によって、状態値を導出する。このような手法により、速度または位置のエネルギーと力のエネルギーとのうち、少なくとも一方に制御エネルギーが割り当てられ、行為の抽出時と完全に同一ではない適応的な機能が実現される。
具体的には、本実施形態における適応的機能実現のための座標変換は、次式(9)として表される。
【0065】
以下、
図11の「ねじ回しの学習及び再現機能を実現する位置・力制御装置1の構成例」で説明した装置を例に挙げて、適応的機能実現について説明する。
図13は、適応的機能実現の概念を示す説明図である。
図13(a)〜(c)に示すように、まず、
図11に示す位置・力制御装置1において、人間がねじを回す動作(行為)を抽出し、例えば
図12(a)に示すワイヤW1〜W4またはワイヤW5〜W8の時系列の位置または力の少なくとも一方を記憶しておく。
次に、位置・力制御装置1は、記憶装置からワイヤW1〜W4またはワイヤW5〜W8の時系列の位置または力の少なくとも一方を順次読み出す。そして、これを基準値として、スレーブ装置となる指型ロボット300Bにおいて、式(8)の座標変換を順次適用しながら、アクチュエータ40e〜40fを制御する。このとき、指型ロボット300Bには、人間がねじを回す動作(行為)が抽出されたときと同一のねじXがセットされているものとする。
【0066】
すると、
図13(d)〜(f)に示すように、記憶されているワイヤW1〜W4またはワイヤW5〜W8が示すマスタ装置での動作が再現され、人間がねじを回す動作(行為)を抽出したときと同様に、ねじXを回して外すことができる。
ここで、指型ロボット300Bに、人間がねじを回す動作(行為)が抽出されたときとは直径または形状等の異なるねじYがセットされたとする。
【0067】
このとき、位置・力制御装置1は、記憶装置に記憶されたワイヤW1〜W4またはワイヤW5〜W8の時系列の位置を用いることなく、指型ロボット300Bの各位置センサ50が検出したワイヤW5〜W8の位置のみを用いて、式(9)の座標変換を順次実行する。
そして、式(9)の座標変換によって得られるf
τ1、f
τ2、f
τ3、f
t2を用いて、状態値を導出し、算出した状態値に対応するアクチュエータ40e〜40hの制御を行う。
【0068】
すると、
図13(g)〜
図13(i)に示すように、ねじXとは直径または形状等が異なるねじYであっても、力の領域における状態値が順次導出されることで、適応的に機能を実現することが可能となる。
このように、本発明の基本的原理を応用することで、対象物が異なる等、環境変動に対しても適応性の高い機能の実現を図ることができる。
【0069】
(機能の切り替えの具体例)
図8に示す位置・力制御装置1の基本的構成において、機能別力・速度割当変換ブロックFTによって定義される座標変換を複数記憶しておき、これらを切り替えて機能別力・速度割当変換ブロックFTに設定することで、位置・力制御装置1で実現される機能を切り替えることができる。
【0070】
図14は、機能を切り替えることが可能な位置・力制御装置1の構成を示す模式図である。
図14に示す位置・力制御装置1は、
図8に示す位置・力制御装置1に対して、機能を表す座標変換を複数記憶する記憶部60が備えられている点で異なっている。
即ち、制御部20は、実現すべき機能に応じて、記憶部60に記憶されている座標変換T1〜Tk(kは1以上の整数)のいずれかを読み出して、機能別力・速度割当変換ブロックFTに設定する。
【0071】
これにより、複数用意された機能のうち、目的とする機能を適宜実現可能な位置・力制御装置1とすることができる。
このような位置・力制御装置1は、例えば、1つの制御部20によって、複数の機能を実現する場合や複数のロボットを制御する場合等に、特に有用なものとなる。
【0072】
(スケーリング機能)
上述の位置・力制御装置1において、位置、力及び時間のスケーリング機能を実現することができる。
スケーリング機能とは、基準となる制御に対して、出力される位置、力あるいは時間のスケールを拡大あるいは縮小する機能である。スケーリング機能によって、例えば、マスタ装置の動きの大きさを縮小してスレーブ装置で再現したり、マスタ装置の動きの強さ(力)を強めてスレーブ装置で再現したり、あるいは、マスタ装置の動きの速度を低下させてスレーブ装置で再現したりすることができる。また、記憶装置に記憶された位置または力の少なくとも一方の情報にスケーリング機能を用いることで、例えば、記憶された動きの大きさを縮小してスレーブ装置で再現したり、記憶された動きの強さ(力)を強めてスレーブ装置で再現したりすることができる。
以下、スケーリング機能を実現するための構成例について説明する。
【0073】
(スケーリングを伴う力・触覚伝達機能)
スケーリングを伴う力・触覚伝達機能が実現される場合、
図2における機能別力・速度割当変換ブロックFTにおける座標変換は、次式(10)及び(11)として表される。
【0075】
式(10)及び式(11)に示す座標変換とした場合、スレーブ装置の位置がα倍(αは正数)、スレーブ装置の力がβ倍(βは正数)されて、マスタ装置に伝達される。
このようなスケーリング機能によって、例えば、手術やマイクロアセンブリ等の繊細な作業や、土木作業や船外活動等の大規模な作業を行う場合に有効となる。
【0076】
(スケーリングによる位置の制限を伴う力・触覚伝達機能)
スケーリングによる位置の制限を伴う力・触覚伝達機能が実現される場合、
図2における機能別力・速度割当変換ブロックFTにおける座標変換は、例えば、次式(12)〜(15)として表される。
なお、このような機能を実現する場合、以下のような条件を考慮することが適当である。
・速度次元まで連続であること(ヤコビ行列の存在条件)
・制限後の位置が元の位置の単調増加関数であること(安定性の条件)
・x
s<aの時にはx
s=x
shatもしくはx
s≒x
shat(x
shatは式(14)および式(15)において機能別力・速度割当変換ブロックFTに含まれるパラメータ)
(安全領域での制御性能を保証する条件)
・飽和関数であること(ポジションリミットを実現する条件)
これらの条件を満たす他の関数として、atan関数を採用することも可能である。
【0078】
式(12)〜式(15)に示す座標変換とした場合、スレーブ装置の位置がa未満の場合、式(12)、 (13)の座標変換を適用することで、スレーブ装置とマスタ装置とは同様の位置に制御される。一方、スレーブ装置の位置がa以上の場合、式(14)、 (15)の座標変換を適用することで、スケーリング機能が作用し、スレーブ装置は(1/b+a)の位置を超えないように制御される。
このようなスケーリング機能によって、例えば、手術において臓器を保護したり、物体の破断を回避したりする場合に有効となる。
【0079】
(周波数領域におけるスケーリングを用いた力・触覚伝達機能)
図15は、周波数領域におけるスケーリングを用いた力・触覚伝達機能の制御の概念を示す模式図である。
図15において、マスタ装置及びスレーブ装置の出力は、ハイパスフィルタ(HPF)及びローパスフィルタ(LPF)をそれぞれ通過した後に、機能別力・速度割当変換ブロックFTに入力される。
機能別力・速度割当変換ブロックFTでは、ハイパスフィルタを通過したマスタ装置及びスレーブ装置の出力に対して、高周波域用の座標変換を適用し、ローパスフィルタを通過したマスタ装置及びスレーブ装置の出力に対して、低周波域用の座標変換を適用する。
即ち、機能別力・速度割当変換ブロックFTは、マスタ装置及びスレーブ装置からの入力を高周波域及び低周波域の信号に分離し、それぞれの周波数域に対応する座標変換を適用する。
図15に示すように、周波数領域におけるスケーリングを用いた力・触覚伝達機能が実現される場合、機能別力・速度割当変換ブロックFTにおける座標変換は、次式(16)〜(19)として表される。
【0081】
式(16)〜式(19)に示す座標変換とした場合、低周波域では、式(16)、 (17)の座標変換を適用することで、スレーブ装置とマスタ装置とは同様の位置となるように制御され、高周波域では、式(18)、 (19)の座標変換を適用することで、スレーブ装置の位置がα倍(αは正数)、スレーブ装置の力がβ倍(βは正数)されて、マスタ装置に伝達される。
このようなスケーリング機能によって、例えば、スレーブ装置が、物体を貫通したり、破断したりする際の感覚を強調してマスタ装置に伝達することが可能となる。
【0082】
(時間のスケーリングを用いた機能の再現)
位置・力制御装置1による機能の再現において、学習して記憶されている機能を示す情報(例えば、
図12に示す行為の抽出結果を表す時系列のデータ)を間引く、あるいは、補間する等して目標値とすることにより、時間のスケーリングを実現することができる。
具体的には、学習して記憶されている機能を示す情報を間引いた上で、理想力源ブロックFCあるいは理想速度(位置)源ブロックPCにおける演算の目標値として用いることにより、記憶されている機能(動作)を高速で再現することができる。同様に、学習して記憶されている機能を示す情報を補間した上で、目標値として用いることにより、記憶されている機能(動作)を低速で再現することができる。
このように、記憶されている機能(動作)を高速で再現する場合、行為の抽出時には、低速かつ正確な動作を行えばよく、再現時には、高速かつ正確な動作とすることができる。
また、記憶されている機能(動作)を低速で再現する場合、通常の速度で行われている動作を緩やかに再現できるため、例えば、後遺症を抱える患者のリハビリテーション等において、その患者に応じた訓練動作を再現することができる。
【0083】
(具体的応用例)
上記実施形態で説明した機能を単独でまたは組み合わせて用いることで、種々の応用例を実現することができる。
【0084】
(ゲームへの応用)
図16は、仮想空間における物体との間で力・触覚伝達機能を実現した状態を示す模式図である。
図16においては、操作者が仮想空間内の対象物との間で力及び触覚を伝達するゲーム(例えば、腕相撲等)に本発明を適用した例を示している。
また、
図17は、仮想空間における物体との間で力・触覚伝達機能を実現する場合の制御の概念を示す模式図である。
図16に示すように、操作者Rmは、マスタ装置としてのコントローラ(アクチュエータ)Ctを操作する。
すると、コントローラCtの移動に合わせて、仮想物体Xa(ここでは、仮想人物Vaの腕)が移動する。
【0085】
仮想物体Xaが仮想物体Xb(ここでは、仮想人物Vbの腕)に接触すると、
図17に示すように、仮想物体Xaと仮想物体Xbとの接触をスレーブ装置における作用として、仮想空間における変数と実空間における変数に対し、位置及び力のエネルギーの割り当て変換が行われる。
このとき、コントローラCtにおいては、仮想物体Xaとの間で力・触覚伝達が行われ、仮想人物Vbと腕相撲をしている仮想人物Vaが受ける力・触覚が伝達される。
このように、本発明は、仮想空間における対象物と力を作用させ合うようなゲームに応用することができる。
なお、仮想空間における対象物は、仮想的に生成されたものや、実体的な対象物が仮想空間に抽出されたものとして構成することが可能である。
このような応用例によって、仮想空間内の敵キャラクターと戦う状況や、仮想空間内の種々の路面からなるレースコースを仮想的な車両で走行する状況や、仮想空間内の物体を動かす状況等を高いリアリティで実現することが可能となる。
また、コントローラCtは、アクチュエータへの制御信号を受信することで、マスタ装置として機能することが可能であるため、コントローラCtにプログラムや多数のセンサを実装する必要がなく、簡単な構成で安価にコントローラCtを実現することができる。
【0086】
なお、
図16において、マスタ装置としてのコントローラCtをレバー型の装置として示したが、コントローラCtの具体的形態は、ゲームの種類等に応じて、種々変更することができる。例えば、同軸に配置された内筒及び外筒を備え、アクチュエータによって内筒の周りに外筒を回転させることが可能なコントローラとすることもできる。この場合、操作者Rmは、ゲームの内容に応じて、外筒を回転させる動作を行い、アクチュエータが力・触覚伝達機能によって外筒の回転力及び回転量を制御する。
【0087】
(医療用の鉗子への応用)
図18は、医療用の鉗子に本発明を応用した状態を示す模式図である。
図18(a)に示すように、操作者Rmがマスタ装置を操作し、スレーブ装置となる鉗子のアクチュエータとの間で力・触覚伝達機能を実現することができる。
このとき、単純に力・触覚伝達を行う場合には、マスタ装置を支点に対して上方に操作すると、
図18(b)に示すように、スレーブ装置の鉗子も上方に変位することから、人間の直感とは逆の動きとなる可能性がある。
即ち、実物の鉗子を取り扱う際には、鉗子は剛体であることから、操作者が鉗子の先端を下方に向ける場合、鉗子の操作部を上方に操作する。そのため、
図18(b)の動きは、剛体である実物の鉗子を取り扱う場合とは逆の動きとなる。
そこで、
図18(c)に示すように、機能別力・速度割当変換ブロックFTにおける座標変換に鏡像変換を施すことで、
図18(d)に示すように、マスタ装置を支点に対して上方に操作した場合に、スレーブ装置の鉗子が下方に変位する状態に制御することができる。即ち、剛体である実物の鉗子を取り扱う場合と同様の動きとなる。
これにより、操作者にとって直感的な操作を行うことが可能となる。
【0088】
また、このような鏡像変換を施すことにより、操作者が対象物に対する視点を柔軟に設定し、操作者が操作し易い状態に調整することが可能となる。
さらに、鏡像変換を施した機能別力・速度割当変換ブロックFTにおける座標変換に、スケーリングを施すことが可能である。
例えば、マスタ装置の操作を縮小するスケーリングを施した場合、鉗子における繊細な動きに変換することができ、心臓や脳等の高度な注意を要する困難な手術を支援することが可能となる。
このとき、スケーリングの比率は、固定的な比率とすることの他、状況に応じて比率を変化させること等が可能である。
例えば、心臓の手術であれば、開胸する段階ではマスタ装置とスレーブ装置との動作の比率を1:1等としておき、心臓に対する切開を行う段階では、マスタ装置の動作に対してスレーブ装置の動作が縮小されるようスケーリングの比率を小さくすることができる。
【0089】
(無線接続されたマスタ装置及びスレーブ装置としての応用)
図19は、無線によって接続されたマスタ装置とスレーブ装置とを示す模式図である。
マスタ装置とスレーブ装置とを無線によって接続し、高速な通信を行うことで、高い実時間性を持ち、携帯性に優れたマスタ・スレーブシステムを実現することができる。
即ち、マスタ装置と無線接続されたスレーブ装置において、力・触覚伝達機能等の各種機能を実現することができる。
図20は、マスタ装置と無線接続されたスレーブ装置400の構成を示すブロック図である。
図20に示すように、スレーブ装置400は、スイッチ群401と、LED群402と、ホストマイコンユニット403と、無線ユニット404と、モータユニット405と、減速機構406と、手先効果器407と、計測ユニット408と、記録・表示ユニット409と、電源ユニット410とを備えている。
【0090】
スイッチ群401は、複数の回転型スイッチ及びON/OFFスイッチを備え、スレーブ装置400の各種設定を受け付ける。具体的には、回転型スイッチは、スレーブ装置400におけるスケーリング比の調整に用いられる。本実施形態においては、回転型スイッチによって、位置のスケーリング及び力のスケーリングをそれぞれ独立に設定することができる。また、ON/OFFスイッチは、スレーブ装置400の状態設定に用いられる。例えば、第1のON/OFFスイッチは、電源用スイッチとして機能し、第1のON/OFFスイッチがONとされることで、電源回路410bが導通状態となり、信号用バッテリ410aの電力がスレーブ装置400の制御系統に供給される。また、第2のON/OFFスイッチは、サーボモータ用スイッチとして機能し、第2のON/OFFスイッチがONとされることで、モータドライバ405bの電源がONし、サーボモータ405dへの電力供給のスタンバイ状態となる。また、第3のON/OFFスイッチは、制御用スイッチとして機能し、第3のON/OFFスイッチがONとされることで、制御用プログラムが実行され、スレーブ装置400の制御及びサーボモータ405dへの電力供給(駆動)が開始される。第1のON/OFFスイッチから第3のON/OFFスイッチを順にONとすることで、マスタ・スレーブシステムにおけるスレーブ装置400の制御が開始される。
【0091】
LED群402は、スレーブ装置400の各種状態(電源のON/OFF状態等)を点灯状態によって表す。
ホストマイコンユニット403は、プログラム書き込み回路403aと、マイクロコントローラ403bとを備えている。
プログラム書き込み回路403aは、マイクロコントローラ403bにプログラムを書き込む。
マイクロコントローラ403bは、プログラム書き込み回路403aによって書き込まれたプログラムに従って、スレーブ装置400を制御する。具体的には、マイクロコントローラ403bは、マスタ装置との無線通信を行いながら、対象物への位置及び力の制御あるいは対象物からの作用の計測を実行する。
無線ユニット404は、アンテナ404aと、無線回路404bとを備えている。
アンテナ404aは、マスタ装置からの無線信号を受信すると共に、スレーブ装置400からマスタ装置への無線信号を送信する。
無線回路404bは、アンテナ404aから入力される無線信号を復調し、復調後の制御信号をホストマイコンユニット403に出力する。また、無線回路404bは、ホストマイコンユニット403から入力される制御信号を変調し、アンテナ404aに出力する。
【0092】
モータユニット405は、D/Aコンバータ405aと、モータドライバ405bと、駆動用バッテリ405cと、サーボモータ405dとを備えている。
D/Aコンバータ405aは、ホストマイコンユニット403から入力されるデジタル信号(制御信号)をアナログ信号に変換する。
モータドライバ405bは、D/Aコンバータ405aから入力されたアナログ信号に従って、サーボモータ405dを駆動する。
駆動用バッテリ405cは、サーボモータ405dを駆動するための電力を供給する。
サーボモータ405dは、モータドライバ405bの駆動信号に従って、減速機構406を介して手先効果器407の位置及び力を制御する。
減速機構406は、サーボモータ405dの動作を減速し、トルクを変換して手先効果器407に伝達する。
手先効果器407は、対象物に直接作用するインターフェースを構成する。本実施形態では、手先効果器407として、フォーク状の器具が備えられている。
【0093】
計測ユニット408は、エンコーダ408aと、ラインレシーバ408bとを備えている。
エンコーダ408aは、サーボモータ405dの動作(回転角度)を計測し、電気信号に変換する。
ラインレシーバ408bは、エンコーダ408aから出力される計測結果の電気信号を差動信号としてホストマイコンユニット403に出力する。なお、スレーブ装置400の応答を得るにあたっては、速度センサや加速度センサ、または、その他の推定法により代替することも可能である。
記録・表示ユニット409は、記録・表示用回路409aと、記憶媒体409bと、ディスプレイ409cとを備えている。
記録・表示用回路409aは、ホストマイコンユニット403の指示に従って、サーボモータ405dの位置及び力の制御情報やスケーリング比、無線接続における電波状況、時間等の装置および接触している物体に関する情報を記憶媒体409bに記憶したり、ディスプレイ409cに表示したりする。また、記録・表示用回路409aは、記憶媒体409bに記憶された情報を読み出し、ホストマイコンユニット403に出力する。
記憶媒体409bは、記録・表示用回路409aの制御に従って、スレーブ装置400の動作におけるサーボモータ405dの位置及び力の制御情報やスケーリング比、無線接続における電波状況、時間等の装置および接触している物体に関する情報を記憶する。記憶媒体409bに記憶された情報は、データ処理のために読み出すことができる。また、記憶媒体409bには、スレーブ装置400において動作を再現するための情報が記憶され、マイクロコントローラ403bが、この情報を読み出して実行することにより動作を再現することができる。
【0094】
電源ユニット410は、信号用バッテリ410aと、電源回路410bとを備えている。
信号用バッテリ410aは、スレーブ装置400の制御系統に電力を供給する。
電源回路410bは、信号用バッテリ410aからスレーブ装置400の制御系統に供給される電力を制御する。
なお、マスタ装置とスレーブ装置とは、無線通信によって接続可能である他、有線通信用ポート(
図19参照)を介して、有線通信によって接続することも可能である。
このような構成により、マスタ装置の動きに応じて、手先効果器407が対象物(ボール等)に接触すると、サーボモータ405dの位置及び反力が位置及び力の情報として、スレーブ装置400からマスタ装置に送信される。すると、マスタ装置では、スレーブ装置400における力・触覚を伝達する機能等を実現することができる。
【0095】
次に、マスタ装置とスレーブ装置とのデータ伝送方法について説明する。
図21は、マスタ装置とスレーブ装置とで高速な通信を行うためのデータ構造を示す図である。
図21に示すように、本応用例では、位置と力の情報を合計64ビットのデータ(32ビットずつのfloat型変数)として表し、これを高速に伝送する。
そのために、まず位置及び力のデータを16個のデータブロックに分割する。すると、各データブロックは、それぞれ4ビットの情報量となる。これら4ビット×16個の順番を識別するために、各データブロックの先頭に4ビットのデータ番号を付加する。これにより、4ビットのデータ番号及び4ビットの実データからなる1バイトのデータブロックが16個生成され、合計16バイトのデータとなる。
これを以下の手順によって、マスタ装置とスレーブ装置との間で伝送する。
【0096】
図22は、無線接続されたマスタ装置及びスレーブ装置の間における伝送手順を示すタイミングチャートである。
なお、本応用例におけるマスタ・スレーブシステムにおいては、処理の高速化を図るため、マスタ装置及びスレーブ装置の内蔵MCU(Memory Control Unit)に制御プログラムが直接実装される。
図22において、送信側ホスト(送信側のプロセッサ等)は、
図21に示す16個のデータブロックを1ブロックずつ送信側モジュール(送信側の通信インターフェース等)に伝送する。このとき、1ブロックを伝送するためには100[μs]で足り、送信側ホストと送信側モジュールとの間の伝送速度として約1[Mbps]を確保可能である。
次に、送信側モジュールと受信側モジュール(受信側の通信インターフェース等)との間で無線通信が行われる。このとき、無線通信路の伝送速度として約1[Mbps]を確保可能であり、16個のデータブロックを伝送するためには、約1.2[ms]で足りる。
【0097】
そして、受信側モジュールと受信側ホスト(受信側のプロセッサ等)との間では、伝送速度として約1[Mbps]を確保可能であり、1バイトのデータブロック1つを伝送するためには100[μs]で足りる。
すると、送信側ホストがデータの送出を開始してから、16バイトのデータが受信側ホストに伝送されるまで、約4.5[ms]となる。
このように、本応用例では、内蔵MCUに制御プログラムを直接実装し、位置と力の情報を4ビット×8個にそれぞれ分割して通信モジュールに伝送し、無線通信路におけるパケットサイズを16バイトに縮小することとした。
なお、従来のプロトコル、例えば、UCP/IP等では、種々のヘッダ情報等のために、パケットサイズが24バイトとなっているのに対し、本応用例の場合、必要なパケットサイズは16バイトとなっている。
これにより、無線接続されたマスタ・スレーブシステムを高い実時間性を有し、携帯性に優れたシステムとして実現することができる。
【0098】
(動作のデータベース化への応用)
図23は、人間の動作をデータベース化する概念を示す模式図である。
上述のように、アクチュエータにおける速度(位置)は加速度の積分によって表され、アクチュエータにおける力は質量と加速度との積で表される。
そのため、本発明においては、アクチュエータの位置の情報またはアクチュエータの位置の情報に基づいて得られる力の情報の少なくとも一方から、人間の動作を数値化して抽出することができる。
そこで、
図23に示すように、本発明の力・触覚伝達機能によって操作者が行った動作を測定する。
即ち、操作者がマスタ装置を操作した場合、操作者が行った動作を機能別力・速度割当変換ブロックFT、理想力源ブロックFC、理想速度(位置)源ブロックPCにおける演算に分解して、動作を表現することができる。
【0099】
そして、複数の人間の動作を機能別力・速度割当変換ブロックFT、理想力源ブロックFC、理想速度(位置)源ブロックPCにおける演算に分解して取得することで、これらの各ブロックにおいて処理される情報をデータベースDBに蓄積することができる。
このようにデータベース化された複数の人間の動作情報に対して統計処理を施すことで、各個人の動作の特徴(個人のやり方、他の人と比べた個性等)を抽出して数値化することが可能となる。
これにより、熟練者や素人等の動作情報に対して統計処理を施すことで、暗黙知、スキル、ノウハウ等を抽出して客観的な数値データとすることができる。
【0100】
(機能別力・速度割当変換に対するオフセットを用いた応用)
図24は、機能別力・速度割当変換に対するオフセットの概念を示す模式図である。
機能別力・速度割当変換に対するオフセットでは、機能別力・速度割当変換ブロックFTにおいて変換された結果の位置及び力のエネルギーに対して、所定の定数を加減することにより、対象物の変化に追従することが可能となる。
即ち、
図24に示すように、機能別力・速度割当変換において、外部センサDによって測定した対象物の位置等をオフセットとして加えることができる。
例えば、心臓の手術の場合、対象物である心臓は常時鼓動することから、外部センサDによって心臓表面の位置を測定し、機能別力・速度割当変換におけるオフセットとして測定された位置の変化を加えることで、スレーブ装置(例えば、鉗子等)の心臓表面への自動追従を実現することができる。
このとき、力・触覚伝達機能にオフセットを加えることにより、力・触覚伝達と心臓表面への位置の自動追従とを両立させることが可能である。
これにより、手術を行う医師においては、心臓の鼓動による変位の影響を軽減して、より正確な作業を行うことが可能となる。
【0101】
(効果)
以上のように、本発明の第1の態様に係る位置・力制御装置によれば、機能別力・速度割当変換手段は、位置に関する情報に対応する速度(位置)及び力の情報と、制御の基準となる情報とに基づいて、実現される機能に応じて、制御エネルギーを速度または位置のエネルギーと力のエネルギーとに割り当てる変換を行う。そして、位置制御量算出手段は、機能別力・速度割当変換手段によって割り当てられた速度または位置のエネルギーに基づいて、速度または位置の制御量を算出する。また、力制御量算出手段は、機能別力・速度割当変換手段によって割り当てられた力のエネルギーに基づいて、力の制御量を算出する。さらに、統合手段は、速度または位置の制御量と力の制御量とを統合し、その出力をアクチュエータに戻すべく速度または位置の制御量と力の制御量とを逆変換して、アクチュエータへの入力を決定する。これにより、速度または位置のエネルギーと、力のエネルギーとをそれぞれ独立に制御可能とした。
そのため、機能別力・速度割当変換手段において、制御エネルギーの速度または位置のエネルギーと力のエネルギーとへの割り当てを機能に応じて種々変更することができる。
したがって、目的とする機能に応じて、機能別力・速度割当変換手段の設定を変更することにより、ロボットによって人間の身体的行為をより適切に実現するための技術を提供することができる。
【0102】
また、本発明の第2の態様に係る位置・力制御装置によれば、機能別力・速度割当変換手段は、位置に関する情報に対応する速度(位置)及び力の情報と、予め取得されている制御の基準となる情報とに基づいて、実現される機能に応じて、制御エネルギーを速度または位置のエネルギーと力のエネルギーとのうち、少なくとも一方に割り当てる変換を行う。そして、位置制御量算出手段は、機能別力・速度割当変換手段によって割り当てられた速度または位置のエネルギーと力のエネルギーとのうち、少なくとも一方に基づいて、速度または位置の制御量と力のエネルギーとの少なくとも一方を算出する。さらに、統合手段は、速度または位置の制御量と力の制御量とを統合し、その出力をアクチュエータに戻すべく速度または位置の制御量と力の制御量とを逆変換して、アクチュエータへの入力を決定する。
したがって、予め取得された制御の基準となる情報に基づいて、速度(位置)あるいは力の制御量が算出されるため、予め取得された機能を再現することが可能となる。
【0103】
また、本発明の第3の態様に係る位置・力制御装置によれば、機能別力・速度割当変換手段は、位置に関する情報に対応する速度(位置)及び力の情報と、制御の基準となる情報とに基づいて、実現される機能に合わせて設定されている変換によって、制御エネルギーを速度または位置のエネルギーと力のエネルギーとに割り当てる変換を行う。そして、位置制御量算出手段は、機能別力・速度割当変換手段によって割り当てられた速度または位置のエネルギーに基づいて、速度または位置の制御量を算出する。また、力制御量算出手段は、機能別力・速度割当変換手段によって割り当てられた力のエネルギーに基づいて、力の制御量を算出する。さらに、統合手段は、速度または位置の制御量と力の制御量とを統合し、その出力をアクチュエータに戻すべく速度または位置の制御量と力の制御量とを逆変換して、アクチュエータへの入力を決定する。そして、スケーリング手段は、アクチュエータの出力に、位置、力及び時間の少なくともいずれかのスケーリングを生じさせる。
したがって、実現される機能に合わせて設定されている変換によって、制御エネルギーが速度または位置のエネルギーと力のエネルギーとに割り当てられるため、特定の目的に応じた機能を実現することができる。また、制御経路のいずれかの箇所にスケーリング手段が介装されることによって、アクチュエータの出力に、位置、力及び時間のスケーリングを生じさせることができるため、アクチュエータの動きの大きさを縮小したり、動きの強さ(力)を強めたり、あるいは、動きの速度を低下させたりすることができる。