以下、図面を参照しながら本明細書で開示する技術の実施形態について詳細に説明する。
例えば、手術中の精度を求められるような一部のサブタスク(縫合など)を自動でロボットが実施するようなシステムについて提供がなされている(前述)。しかしながら、この種の既存のシステムは、いくつかの定式化されたサブタスクの自動化を実現するに留まっている。
例えば、手術中に術具を1軸方向に正確に動かしたい場合がある。ユーザがマスタ装置側で1軸方向に操作しようとしても別軸方向にもブレが生じることがよくある。このようなマスタ装置側での不正確な入力操作をスレーブ装置がそのまま再現すると、患部を侵襲してしまうおそれがある。
言い換えれば、並進運動や回転運動を含む一般的な動作や、定式化されていないサブタスクにおいて、ユーザのマスタースレーブ動作をサポート若しくはアシストするには、既存のシステムは不完全であるといえる。また、ロボットが自動でタスクを実行する際には、タスク環境における予期せぬ衝突による(ロボット自身又は環境の)破損や事故など、安全性についても十分に考慮する必要がある、と本出願人は思料する。
そこで、本明細書では、定式化されたサブタスクに限定されず、任意の並進運動並びに回転運動からなる一般的な動作においても高精度に操作者をサポート若しくはアシストすることができるマスタースレーブ・ロボットについて、以下で提案する。
また、本明細書では、操作者をサポート若しくはアシストするマスタースレーブ・ロボットに付随する操作ユーザ・インターフェース(UI)や、操作状況などの情報を提示する提示UIに関する技術についても、併せて提案する。
本明細書で開示する技術は、例えば、バイラテラル制御システムに好適に適用することができる。ここで言うバイラテラル制御とは、マスタ-スレーブ方式の制御においてマスタからスレーブを操作すると同時にスレーブの状態をマスタに帰還する制御方式であり、マスタを操作するユーザに対して力を提示することができる。理想的なバイラテラル制御系は、マスタとスレーブの位置と力を同時に合わせることができる。ちなみに、マスタ-スレーブ方式の制御においてスレーブの状態(スレーブの位置及び力)をマスタに帰還しない制御方式は、ユニラテラル制御である。後述するように、本明細書で開示する技術は、ユニラテラル制御システムにも適用することができる。
本明細書で開示する技術によれば、マスタ-スレーブロボットをバイラテラル制御モードで継続動作させながら、任意の並進運動や回転運動をサポート若しくはアシストすることが可能であり、マスタ-スレーブ動作するモードと自律動作して操作者をアシストする動作モードなどの制御モードの移行を行なう必要がない。
また、本明細書で開示する技術を適用したマスタ-スレーブロボットによれば、マスタを操作する操作者は、スレーブ側のタスク環境における衝突なども関知することができるので、安全性も改善される。
図1には、本明細書で開示する技術を適用することができる、マスタースレーブ方式のロボット・システム1の機能構成例を模式的に示している。図示のロボット・システム1は、例えば、腹腔や胸腔といった内視鏡外科手術を実施する医療ロボット・システムである。マスタ側でユーザがコントローラなどの入力装置を介して入力した指示に応じて、スレーブ側のアーム部及び当該アーム部に取り付けられた医療用器具などのエンド・エフェクターが駆動され、当該医療用器具によって患者の術部に対して各種の処置が施される。
図示のロボット・システム1は、マスタ装置10と、スレーブ装置20と、マスタ装置10を介して入力されるユーザの指示に応じてスレーブ装置20を駆動させる制御システム30で構成される。ユーザがマスタ装置10を操作すると、制御システム30を通じて、スレーブ装置20に対する操作指令が有線又は無線の通信手段により送信され、スレーブ装置20が操作される。
マスタ装置10は、術者などのユーザが入力操作を行なうための入力部11と、この入力部11を操作中のユーザに対して力を提示する力提示部12を備えている。
入力部11は、例えば、レバー、グリップ、ボタン、ジョグダイヤル、タクトスイッチ、フット・ペダル・スイッチなどの入力機構によって構成され得る。但し、入力部11の具体的な構成は上記に限定されず、一般的なマスタ-スレーブ方式のロボット・システムの入力装置に設けられ得る各種の公知な構成を利用することができる。
また、力提示部12は、例えば、入力部11を構成するレバーやグリップなどを駆動させるサーボモータ、さらには入力部11を指示するアームを駆動させるサーボモータなどによって構成される。力提示部12は、スレーブ装置20側の医療用器具に作用する力に応じて、例えばユーザによる入力部11の操作に対して抵抗を与えるように入力部11を構成するレバー、アームなどを駆動させることにより、医療用器具に作用する力をユーザに対して提示する。
一方、スレーブ装置20は、複数のリンクが関節部によって互いに回動可能に連結されて構成されるアーム部を有する支持アーム装置と、この支持アーム装置のアーム部及び先端の医療用器具を駆動する駆動部21と、支持アーム装置における状態を検出する状態検出部22を備えている。なお、アーム部の先端(エンド・エフェクター)には、鉗子などの医療用器具が取り付けられているものとする。また、鉗子の代わりに、攝子又は切断器具など外科手術中に患者に触れる他の医療用術具や、内視鏡や顕微鏡といった撮像装置が取り付けられていてもよい。
便宜上、図1では支持アーム装置の図示を省略している。支持アーム装置は、アーム部のエンド・エフェクターの位置及び向きを3次元空間上で変化させる位置及び姿勢の6自由度を有するとともに、アーム部の先端に取り付けられた鉗子によって物体を把持するための1自由度を有する。支持アーム装置の詳細については、後述に譲る。
駆動部21は、例えば、支持アーム装置のアーム部の各関節部に設けられる、当該各関節部を回転駆動させるためのモータに対応している。また、アーム部の先端に取り付けられた鉗子などの医療器具が駆動部位を有する場合であれば、駆動部21は、この駆動部位を動作させるためのモータにも対応する。制御システム30によって算出された制御量に応じて当該モータが駆動することにより、ユーザがマスタ装置10を介して指示したようにアーム部並びに医療用器具が動作する。
状態検出部22は、例えば、支持アーム装置のアーム部の各関節部に設けられる力覚センサ(トルクセンサ)やエンコーダなどで構成され、アーム部の状態を検出する。力覚センサによって、各関節部に作用する力(トルク)を検出することができる。また、エンコーダによって、各関節部の回転角度を検出することができる。
制御システム30は、マスタ装置10とスレーブ装置20間で、スレーブ装置20側の支持アーム装置の駆動制御とマスタ装置10側への力提示に関する情報伝達を実現する。但し、制御システム30の機能の一部又は全部が、スレーブ装置20又はマスタ装置10の少なくとも一方に装備されていてもよい。例えば、マスタ装置10又はスレーブ装置20の少なくとも一方のCPU(Central Processing Unit)(図示しない)が、制御システム30として機能する。あるいは、マスタ装置10及びスレーブ装置20の各々のCPUが連携して、制御システム30として機能する。制御システム30の具体的な構成については後述に譲る。
なお、図1では、本明細書で開示する技術に係る実施形態を説明するために特に必要となる構成のみを図示している。ロボット・システム1は、図示した機能ブロック以外にも、一般的なマスタースレーブ方式のロボット・システムが有するその他の機能ブロックを備えていてもよい。図示を省略した構成については、各種の公知の構成を適用することができるので、本明細書ではその詳細な説明は省略する。
マスタ装置10側からスレーブ装置20を駆動制御する際においては、マスタ装置10の入力部11を介してユーザにより入力された支持アーム装置のアーム部を駆動するための指示を示す情報が、制御システム30に送信される。スレーブ装置20側が上述したロボット鉗子のように医療用器具が駆動部位を有する場合であれば、入力部11を介して入力された当該医療用器具を駆動するための指示を示す情報も、併せて、マスタ装置10から制御システム30に入力され得る。
制御システム30は、入力部11を介してユーザから入力された指示に基づいて、スレーブ装置20側の支持アーム装置のアーム部を駆動するための制御量を算出する。例えば、支持アーム装置の駆動制御が力制御によって行なわれる場合であれば、制御システム30は、その制御量として、ユーザによって指示された所望の動作をアーム部が実現するために必要な各関節部に発生させるべきトルクを算出する。あるいは、支持アーム装置の駆動制御が位置制御によって行なわれる場合であれば、制御システム30は、その制御量としては、ユーザによって指示された所望の動作をアーム部が実現するために必要な各関節部の回転角度を算出する。また、アーム部に備えられた医療用器具が駆動部位を有する場合であれば、制御システム30は、当該医療用器具を駆動するための制御量を計算する。
本実施形態では、駆動制御方式として、マスタ装置10とスレーブ装置20の位置と力を同時に制御するバイラテラル制御方式を採用することを想定しているが、この点の詳細については後述に譲る。
制御システム30によって算出された制御量についての情報は、スレーブ装置20側の駆動部21に送信される。制御システム30によって算出された制御量に応じて、駆動部21がアーム部の各関節部を駆動することにより、ユーザが入力部11を介して指示したようにアーム部が動作する。また、アーム部の先端に取り付けられた医療用器具が駆動部位を有する場合であれば、制御システム30によって算出された制御量に応じて当該駆動部位を動作させるモータが駆動することにより、ユーザが入力部11を介して指示したように医療用器具が動作する。
また、アーム部やその先端の医療用器具が動作している間、トルクセンサやエンコーダなどからなる状態検出部22は、アーム部の各関節部に作用する力(トルク)や各関節部の回転角度などを、支持アーム装置における状態として検出する。状態検出部22によって検出されたアーム部の状態を示す情報は、制御システム30に送信される。制御システム30は、当該情報に基づいてアーム部の現在の状態を逐次把握しており、把握したアーム部の現在の状態に基づいて上述した制御量を算出する。
ここで、力覚センサによって検出される各関節部に作用する力は、アーム部の先端に取り付けられる医療用器具に作用する力を反映したものと推定される。制御システム30は、力覚センサによって検出された各関節部に作用する力の中から医療用器具に作用する力の成分を抽出して、マスタ装置10の力提示部12に送信する。力提示部12は、医療用器具に作用する力に応じて、医療用器具に作用する力を術者に対して提示する。例えば、術者であるユーザによる入力部11の操作に対して抵抗を与えるように、入力部11を構成するレバーなどを駆動させる。このように、本実施形態に係るロボット・システム1は、医療用器具に作用した力を検出し、当該力を術者に対してフィードバックする機能を備えている。これによって、内視鏡下での低侵襲の施術の実現に寄与することができる。
図2には、マスタ装置10の構成例を示している。図示の例では、右手用及び左手用の2台のマスタ装置10R及び10Lが併設されている。但し、スレーブ装置20を遠隔操作するために、右手用及び左手用のマスタ装置10を揃える必要は必ずしもなく、右手用又は左手用のうちいずれか一方のマスタ装置10のみを装備するだけでもよい。あるいは、右手用及び左手用の2台のマスタ装置10R及び10Lでそれぞれ1台ずつ、合計2台のスレーブ装置を同時に操作するようにしてもよい。以下では主に右手側のマスタ装置10Rに着目して説明するが、左手側のマスタ装置10Lも同様の構成であると理解されたい。マスタ装置10は、本体部210と、グリップ部220と、グリップ部220を支持する支持アーム部を備えている。
支持アーム部は、遠位端側が連結された3本のリンク部231、232、233からなるデルタ型パラレルリンク構造からなるロボットである。すなわち、支持アーム部は、並列するリンク機構を利用した3軸並進構造を有し、3次元空間上の1点の動きを決めることができる。各リンク部231、232、233は、基端側で本体部210に回動可能に連結されている。本体部210には、各リンク部231、232、233との連結部分を駆動するモータ(例えば、サーボモータ)241、242、243がそれぞれ装備されている。また、本体部210と、各リンク部231、232、233との連結部分には、各リンク部231、232、233の本体部210に対する回転角度を検出するためのエンコーダ(図示しない)、並びに、各リンク部231、232、233に発生するトルクを検出するためのトルクセンサ(図示しない)が配設されている。そして、各リンク部231、232、223の先端は、グリップ部220と連結している。
ここで、各リンク部231、232、233はそれぞれ、モータ241、242、243によって駆動する駆動リンクと、駆動リンクに関節部を介して取り付けられた受動リンクからなる。ユーザは、グリップ部220を掴んで、3次元空間上の任意の位置及び姿勢に変位させることができる。また、ユーザは、3次元空間上の任意の位置で、グリップ部220を把持操作することができる。したがって、図示のマスタ装置10は、先端のグリップ部220の3軸方向の位置及び姿勢の6自由度と、グリップ220の把持の1自由度を有している。
ユーザは、図2に示すように、両腕又は両肘を支持台250上に載せて、右手及び左手でそれぞれグリップ部220R及び220Lを把持して作業することができる。また、ユーザの正面には、モニタ260が設置されている。例えば、スレーブ装置20に取り付けられた鉗子などのエンド・エフェクターにカメラが組み込まれている場合(若しくは、エンド・エフェクターが内視鏡装置である場合)、撮像された術野の画像をモニタ260の画面上に表示するようにしてもよい。
したがって、ユーザは、術野が表示されるモニタ260を見ながら操作部グリップ部220R及び220Lを操作することができる。そして、ユーザは、各グリップ部220R及び220Lの位置及び向きを変位させることにより、スレーブ装置20に取り付けられた鉗子などの術具の位置又は向きを遠隔操作したり、鉗子の把持動作を行なったりすることができる。
グリップ部220R及び220Lは、図1中のマスタ装置10の入力部11に相当する。マスタ装置10は、入力部11として、グリップ部220に配設されたジョグダイヤルやタクトスイッチ、グリップ部220とは別のフット・ペダル・スイッチ(図示しない)をさらに備えていてもよい。ユーザは、グリップ部220を手で掴んで動かしながら、指先でジョグダイヤルやタクトスイッチを操作することができる。また、ユーザは、グリップ部220R及び220Lを操作中で両手がふさがっている場合であっても、足でフット・ペダル・スイッチを踏んで、さらなる入力操作を行なうことができる。
また、各モータ241、242、243を同期的に駆動させることにより、グリップ部220を掴んでいるユーザに対して並進力を提示することができる。例えばスレーブ装置20側で術具を変位させる際に、状態検出部22によって検出されたエンド・エフェクター(術具)の作用力に従って各モータ241、242、243を駆動させることによって、術具に作用する並進力をユーザに提示することができる。
なお、本実施形態では、グリップ部220は、ユーザがグリップ部220を把持若しくは保持している「保持状態」か、又は、保持していない「非保持状態」のいずれであるかを検出する状態検出手段をさらに装備しているものとする。状態検出手段は、例えばグリップ部220に加わる把持力を検出する力センサで構成することができ、力センサが所定値以上の外力を検出している状態を「保持状態」と判定し、外力が所定値未満のときには「非保持状態」と判定するようにしてもよい。あるいは、グリップ部220に触れるユーザの指先などを感知する感圧センサや人感センサなどで状態検出手段を構成することもできる。非保持状態は、ユーザの手がグリップ部220から放れた状態であり、ユーザによる操作から外れた状態ということもできる。
また、本実施形態では、グリップ部220は、ユーザがグリップ操作を行なうだけでなく(若しくは、グリップ操作と並行して操作することが可能な)、ジョグダイヤルやタクトスイッチなどの他の入力手段も併せて装備しているものとする。
図2に示すように左右のグリップ部220L及び220Rを装備するマスタ装置10の構成例では、基本的には、左右それぞれに上記の状態検出手段や入力手段も装備されるが、いずれか一方にしか装備しないという構成も想定される。
また、グリップ部220をマスタ装置10の本体部210(若しくは、支持アーム部)に対して取り外しが可能となるように構成して、1台のマスタ装置10上で複数種類のグリップ部を選択的に利用できるようにすることも可能である。取り付けたグリップ部の種類により、マスタ装置10の可動域が変化する場合もある。例えば、取り付け可能な各グリップ部が識別情報(ID)を持ち、マスタ装置10に取り付けたグリップ部のIDを本体部210又は制御システム30が読み取ってその種類を認識できるようにしてもよい。
図3には、スレーブ装置20の構成要素の1つである支持アーム装置300の構成例を示している。図示の支持アーム装置300は、手術時に鉗子などの医療用器具を支持する医療用ロボットであり、ベース部310とアーム部320を備えている。
ベース部310は支持アーム装置300の基台である。ベース部310の内部には、CPUやDSP(Digital Signal Processor)などのプロセッサ及びメモリなどの記憶素子が搭載された制御基板やマイコンが収容されている。例えば、前述の制御システム30がベース部310内に収容されていてもよい。
アーム部320は、ベース部310から延伸されている。ベース部310の底面には2対のキャスターが設けられている。支持アーム装置300は、キャスターを介して床面と接地し、これらのキャスターの回転によって床面上を移動することが可能である。但し、支持アーム装置300はかかる構成に限定されず、例えば、ベース部310が設けられず、手術室の天井又は壁面にアーム部320が直接取り付けられた吊り構造の支持アーム装置300であってもよい。
アーム部320は、複数の関節部321a、321b、321c、321d、321e、321fと、関節部321a~321eによって互いに回動可能に連結される複数のリンク322a、322b、322c、322dと、アーム部320の先端に関節部321fを介して回動可能に設けられる保持ユニット329を備えている。また、保持ユニット329は各種の医療用器具を保持するように構成されている。図示の例では、保持ユニット329には鉗子323が取り付けられている。
リンク322a~322cは棒状の部材であり、リンク322aの一端が関節部321aを介してベース部310と連結され、リンク322aの他端が関節部321bを介してリンク322bの一端と連結され、さらに、リンク322bの他端が関節部321c、321dを介してリンク322cの一端と連結される。更に、リンク322cの他端が、関節部321eを介して略L字状のリンク322dの一端と連結され、リンク322dの他端と鉗子323を保持する保持ユニット329とが、関節部321fを介して連結される。このように、ベース部310を支点として、複数のリンク322a~322dの端部同士が、関節部321a~321fによって互いに回動可能に連結されることにより、ベース部310から延伸されるアーム形状が構成される。
図3では、簡単のため、鉗子323の具体的な形状の図示を省略し、簡易的に棒状の部材として図示しているが、実際には、鉗子323の先端には、患者の生体組織を把持又は切断などの処置を行なうためのエンド・エフェクターが設けられる。手術を行なう際には、鉗子323が患者の生体組織に対して所望の位置及び姿勢を取り得るように、アーム部320及び鉗子323の位置及び姿勢が制御される。
関節部321a~321fには、アクチュエータがそれぞれ設けられている。アクチュエータは、図1中の駆動部21に対応する。アクチュエータを駆動することにより、各関節部321a~321fを各々の回転軸回りに回転させる可能ことが可能である。アクチュエータは、例えば、モータ、エンコーダ、及びトルクセンサなどによって構成される。エンコーダ及びトルクセンサは、図1中の状態検出部22に対応する。
各関節部321a~321fのアクチュエータの駆動を制御することにより、例えばアーム部320を伸ばしたり縮めたり(折り畳んだり)することができる。この際、制御システム30は、アクチュエータのエンコーダ及びトルクセンサなどの状態検出部22によって検出された各関節部321a~321fの状態に基づいて、各アクチュエータのモータの制御量を算出し得る。
図3に示す例では、支持アーム装置300は、6つの関節部321a~321fからなるアーム部320の駆動により、先端の鉗子323の位置及び姿勢の6自由度が実現され、さらに鉗子323が物体を把持するための1自由度を備えている。アーム部320が6自由度を有するように構成されることにより、アーム部320の可動範囲内において鉗子323を自由に移動させることができる。これにより、鉗子323を、さまざまな角度から患者(腹腔や胸腔内)に対して挿入することが可能になり、鉗子323を操作する際の自由度が向上する。
但し、アーム部320の構成は図3に示す例に限定されず、関節部321a~321f及びリンク322a~322dの数や配置、関節部321a~321fの駆動軸の方向などは、アーム部320が所望の自由度を有するように適宜設定されてよい。要するに、鉗子323の位置及び姿勢の自由度、機械的構造などを考慮して、6自由度以上の自由度を有するアーム部320を適宜構成するようにしいてもよい。
アーム部320を動作させる際、ユーザは、マスタ装置10側の入力部11を介して、支持アーム装置300に対して指示を与える。入力装置を介して入力された指示を示す信号は、制御システム30に送信される。
制御システム30は、各関節部321a~321fのアクチュエータのエンコーダ及びトルクセンサによって検出された各関節部321a~321fの状態に基づいて、当該指示に応じた各関節部321a~321fのアクチュエータのモータの制御量を算出する。算出された当該制御量に応じて各アクチュエータのモータが駆動されることにより、ユーザの指示に従ってアーム部320が動作することとなる。
また、鉗子323が駆動部位を有する場合であれば、同様に、入力部11を介して入力された指示に基づいて、当該駆動部位を動作させるためのモータの制御量が制御システム30によって算出され、算出された当該制御量に応じて当該モータが駆動されることにより、ユーザの指示に従って鉗子323が動作することとなる。
なお、スレーブ装置20のエンド・エフェクターを保持ユニット329から取り外しが可能となるように構成して、鉗子323以外の複数種類の術具と交換して、選択的に用できるように構成することも可能である。取り付けた術具の種類により、スレーブ装置20の可動域が変化する場合もある。例えば、取り付け可能な各術具が識別情報(ID)を持ち、スレーブ装置20に取り付けた術具のIDをスレーブ装置20本体又は制御システム30が読み取ってその種類を認識できるようにしてもよい。
本実施形態に係るマスタ-スレーブ方式のロボット・システム1では、バイラテラル制御系を組むことを想定している。バイラテラル制御手法として、例えば位置対称型、力帰還型、並びに4CH型を挙げることができる。
図4には、マスタ装置10及びスレーブ装置20をバイラテラル制御するための、位置対称型のバイラテラル制御システム40の機能的構成例を示している。
位置制御器41は、マスタ装置10及びスレーブ装置20の各々に対して、加速度参照信号AM
ref及びAS
refを供給する。マスタ装置10では、与えられた加速度参照信号AM
refに対して加速度制御が実施され、ロボット(図2を参照のこと)の位置及び姿勢XMが変位する(但し、Xは6次元の位置及び姿勢を表すベクトルとし、AはXの2階微分とする(以下、同様))。同様に、スレーブ装置20では、与えられた加速度参照信号AS
refに対して加速度制御が実施され、ロボット(支持アーム装置300)の位置及び姿勢XMが変位する。
そして、位置制御器41は、マスタ装置10とスレーブ装置20間の位置の偏差から、これを修正する方向へ駆動するための加速度参照信号AM
ref及びAS
refをマスタ装置10及びスレーブ装置20の各々に供給する。但し、マスタ装置10とスレーブ装置20の位置の偏差を算出する際に、スケーラ42において、スレーブ装置20の位置姿勢信号XSに、マスタ装置10とスレーブ装置20間の位置姿勢空間スケーリングのための係数αを乗算する。
図5には、マスタ装置10及びスレーブ装置20をバイラテラル制御するための、力帰還型のバイラテラル制御システム50の機能的構成例を示している。
位置制御器51は、スレーブ装置20に対して、加速度参照信号AS
refを供給する。スレーブ装置20では、与えられた加速度参照信号AS
refに対して加速度制御が実施され、ロボットの位置及び姿勢XSが変位する。また、スレーブ装置20には、対象物との接触に伴い、外力FSが発生する。
また、力制御器52は、マスタ装置10に対して、加速度参照信号AM
refを供給する。マスタ装置10では、与えられた加速度参照信号AM
refに対して加速度制御が実施され、ロボットの位置及び姿勢XMが変位する。また、マスタ装置10には、操作者による操作に伴い、外力FMが発生する。
位置制御器51は、マスタ装置10とスレーブ装置20間の位置の偏差から、これを修正する方向へ駆動するための加速度参照信号AS
refをスレーブ装置20に供給する。但し、マスタ装置10とスレーブ装置20の位置の偏差を算出する際に、スケーラ53において、スレーブ装置20の位置姿勢信号XSに、マスタ装置10とスレーブ装置20間の位置姿勢空間スケーリングのための係数αを乗算する。
また、力制御器52は、マスタ装置10の発生力とスレーブ装置20の発生力の合力から、これを修正する方向へ駆動するための加速度参照信号AS
refをマスタ装置10に供給する。但し、マスタ装置10とスレーブ装置20の発生力の合力を算出する際に、スケーラ54において、スレーブ装置20の力信号FSに、マスタ装置10とスレーブ装置20間の力空間スケーリングのための係数βを乗算する。
図6には、マスタ装置10及びスレーブ装置20をバイラテラル制御するための、4CH型のバイラテラル制御システム60の機能的構成例を示している。
位置制御器61は、マスタ装置10及びスレーブ装置20の各々に対する加速度参照信号を出力する。また、力制御器62は、マスタ装置10及びスレーブ装置20の各々に対する加速度参照信号を出力する。そして、マスタ装置10には、位置制御器61と力制御器62の各々から供給される加速度参照信号の双方が加味されたAM
refが供給される。また、スレーブ装置20には、位置制御器61と力制御器62の各々から供給される加速度参照信号の双方が加味されたAS
refが供給される。
マスタ装置10では、加速度参照信号AM
refに対して加速度制御が実施され、ロボットの位置及び姿勢XMが変位する。また、マスタ装置10には、操作者による操作に伴い、外力FMが発生する。同様に、スレーブ装置20では、加速度参照信号AS
refに対して加速度制御が実施され、ロボットの位置及び姿勢XSが変位する。また、スレーブ装置20には、対象物との接触に伴い、外力FSが発生する。
位置制御器61は、マスタ装置10とスレーブ装置20間の位置の偏差から、これを修正する方向へ駆動するためのマスタ装置10及びスレーブ装置20の各々に対する加速度参照信号を出力する。但し、マスタ装置10とスレーブ装置20の位置の偏差を算出する際に、スケーラ62において、スレーブ装置20の位置姿勢信号XSに、マスタ装置10とスレーブ装置20間の位置姿勢空間スケーリングのための係数αを乗算する。
また、力制御器62は、マスタ装置10の発生力FMとスレーブ装置20の発生力FSの合力から、これを修正する方向へ駆動するためのマスタ装置10及びスレーブ装置20の各々に対する加速度参照信号を出力する。但し、マスタ装置10とスレーブ装置20の力の偏差を算出する際に、スケーラ64において、スレーブ装置20の力信号FSに、マスタ装置10とスレーブ装置20間の力空間スケーリングのための係数βを乗算する。
そして、上述したように、マスタ装置10には、位置制御器61と力制御器62の各々から供給される加速度参照信号の双方が加味されたAM
refが供給される。また、スレーブ装置20には、位置制御器61と力制御器62の各々から供給される加速度参照信号の双方が加味されたAS
refが供給される。
本明細書では、図1に示したようなマスタ-スレーブ方式のロボット・システム1において、拘束力をフィードバックする機構を組み込む技術について、以下で詳細に説明する。かかる技術によれば、マスタ装置10のユーザが任意の並進運動並びに回転運動を操作することを可能にし、且つ、定式化されていないタスクにおいても高精度な操作を実現することができる。
図7には、本明細書で開示する技術を適用した4CH型バイラテラル制御システム70の機能的構成を模式的に示している。図示のバイラテラル制御システム70は、マスタ-スレーブロボットのバイラテラル制御系に対して拘束力をフィードバックする機構が付加されている点に主な特徴がある。
位置制御器71は、マスタ装置10及びスレーブ装置20の各々に対する加速度参照信号を出力する。また、力制御器72は、マスタ装置10及びスレーブ装置20の各々に対する加速度参照信号を出力する。そして、マスタ装置10には、位置制御器71と力制御器72の各々から供給される加速度参照信号の双方が加味されたAM
refが供給される。また、スレーブ装置20には、位置制御器71と力制御器72の各々から供給される加速度参照信号の双方が加味されたAS
refが供給される。
マスタ装置10では、加速度参照信号AM
refに対して加速度制御が実施され、ロボットの位置及び姿勢XMが変位する。また、マスタ装置10には、操作者による操作に伴い、外力FMが発生する。同様に、スレーブ装置20では、加速度参照信号AS
refに対して加速度制御が実施され、ロボットの位置及び姿勢XSが変位する。また、スレーブ装置20には、対象物との接触に伴い、外力FSが発生する。
スケーラ73は、スレーブ装置20の位置姿勢信号XSに、マスタ装置10とスレーブ装置20間の位置姿勢空間スケーリングのための係数αを乗算する。また、スケーラ74は、スレーブ装置20の力信号FSに、マスタ装置10とスレーブ装置20間の力空間スケーリングのための係数βを乗算する。
拘束力付加部75は、マスタ装置10側の現在の位置又は姿勢XMを基準とした拘束力F´を発生させる。拘束力F´は、マスタ装置10(若しくは、そのグリップ部220)が一定の方向(例えば、任意の並進又は回転方向)にしか動けなくなるようにする、仮想的な力である。拘束力F´を演算する処理の詳細については、後述に譲る。
なお、拘束力F´は、一軸の並進又は回転方向にのみ作用するとは限らず、複数方向の並進又は回転方向を採り得るものとする。
力制御器72は、マスタ装置10の発生力FMと、上記の拘束力F´と、スレーブ装置20の発生力βFSの合力から、これを修正する方向へ駆動するためのマスタ装置10及びスレーブ装置20の各々に対する加速度参照信号を出力する。
また、位置制御器71は、マスタ装置10とスレーブ装置20間の位置の偏差(XM-αXS)から、これを修正する方向へ駆動するためのマスタ装置10及びスレーブ装置20の各々に対する加速度参照信号を出力する。
そして、上述したように、マスタ装置10には、位置制御器71と力制御器72の各々から供給される加速度参照信号の双方が加味されたAM
refが供給される。また、スレーブ装置20には、位置制御器71と力制御器72の各々から供給される加速度参照信号の双方が加味されたAS
refが供給される。
例えば、手術中に、スレーブ装置20のエンド・エフェクターに取り付けられた術具を1軸方向に並進移動させたい場合や回転運動させたい場合がある。拘束力付加部75が、力制御器72を介して、マスタ装置10及びスレーブ装置20に対して仮想的な拘束力を付加することができ、ユーザは任意の並進運動や回転運動を含む操作を、ブレが生じることなく高い精度で実現することが可能になる。
拘束力付加部75により拘束力F´を発生させる処理は、ソフトウェアによる制御により低コストで実現することができる。また、拘束力付加部75から拘束力F´を発生させるタイミングは、ユーザがジョグダイヤルやタクトスイッチ、フット・ペダルなどのUIを介して直接指示することができる。すなわち、ユーザは、スレーブ装置20側の術具を並進又は回転動作させたいときに、拘束力の発生を指示するようにすればよい。例えば、グリップ部220が拘束力の発生を指示するボタンを装備したり、フット・ペダル・スイッチに対する所定の操作により拘束力の発生を指示したりするようにしてもよい。もちろん、ソフトウェア制御により、拘束力の発生タイミングを自動制御するようにしてもよい。
図8には、バイラテラル制御システム70に対して拘束力を付加するための処理手順をフローチャートの形式で示している。図示の処理手順は、例えば制御システム30におけるソフトウェア的な処理として低コストで実現することができる。
まず、バイラテラル制御システム70に対して拘束力を付加するかどうかをチェックする(ステップS801)。例えば、マスタ装置10側でユーザがジョグダイヤルやタクトスイッチ、フット・ペダル・スイッチなどのUIを介して拘束力の付加を指示したときには、拘束力を付加すると判断する。
ここで、拘束力を付加しないと判断したときには(ステップS801のNo)、マスタ装置10側の(例えば、グリップ部220の)現在の位置及び姿勢Xを、以降に拘束力を付加する際の、拘束すべき位置及び姿勢の参照値Xrefとして一時的に保存する(ステップS802)。
一方、拘束力を付加すると判断したときには(ステップS801のYes)、1制御周期前にステップS802で保存しておいた拘束位置/姿勢参照値Xrefを取得する(ステップS803)。
そして、マスタ装置10の現在の位置及び姿勢Xを取得し、これと拘束位置/姿勢参照値Xrefとの差分に応じた拘束力Fを、下式(1)に従って算出する(ステップS804)。但し、同式(1)中、Cはゲインを示す係数である。また、同式(1)は比例ゲインのみにより拘束力Fを導出しているが、その他の位置制御手法を用いて拘束力Fを導出することが可能であることは言うまでもない。
次いで、下式(2)に従って、算出した拘束力Fを、マスタ装置10を実際に拘束する座標系に変換して(ステップS805)、仮想的な拘束力F´として出力する。これによって、マスタ装置10には、拘束位置/姿勢参照値Xrefに拘束させるような拘束力F´が付加される。
例えば、マスタ-スレーブロボットの駆動をある並進方向に拘束したい場合には、ステップS803では基準(すなわち拘束条件)となる位置情報を参照値Xrefとして取得する。そして、続くステップS804及びS805では、マスタ装置10の位置が参照値Xrefから外れるほど増大する拘束力F並びにF´を生成する。
また、マスタ-スレーブロボットの駆動をある回転方向に拘束したい場合には、ステップS803では基準(すなわち拘束条件)となる姿勢情報を参照値Xrefとして取得する。そして、続くステップS804及びS805では、マスタ装置10の姿勢が参照値Xrefから外れるほど増大する拘束力F並びにF´を生成する。
ユーザがマスタ装置10からグリップ部220を用いてスレーブ装置20を遠隔操作する際に、グリップ部220には任意の並進又は回転方向へ駆動するための拘束力F´が作用する。したがって、ユーザは、このような拘束力F´でサポート若しくはアシストを受けながら、スレーブ装置20を遠隔操作する精度を向上することができ、タスク処理時間(施術の時間など)を短縮化することも可能となる。
また、マスタ装置10とスレーブ装置20からなるロボット・システム1を常にバイラテラル制御モードで駆動させながら、すなわち制御モードを切り替えることなく、拘束力を付与することができる。ユーザは、拘束されていない方向の動作に関しては、スレーブ装置20側(鉗子323)の対象物への接触力を感じながら操作することが可能であり、安全である。
なお、グリップ部220がジョグダイヤルやタクトスイッチなどの入力手段を装備している場合には、上記のステップS801では、ユーザは、この種の入力手段を介して拘束力の付加を指示することができる。また、図2に示したように左右の手に対してそれぞれグリップ部220L及び220Rが用意されている場合には、いずれか一方のグリップ部220L又は220Rでしか拘束力の付加が指示されない場合には、指示された方のグリップ部220L又は220Rに対してのみ拘束力を付加するようにしてもよい。あるいは、ステップS801では、自動制御によって左右のグリップ部220L又は220Rに対してそれぞれ個別に拘束力を付加するかどうかを判断するようにしてもよい。
図7には、力制御器72に対して拘束力をフィードバックする箇所に拘束力付加部75を配設したシステム70の構成例を示した。拘束力をフィードバックする箇所はこれに限定されるものではない。
図9には、マスタ装置10に対して拘束力をフィードバックするバイラテラル制御システム90の構成例を示している。但し、図7に示したシステム70と同一の構成要素については、同一の参照番号を付している。
拘束力付加部91は、マスタ装置10の現在の位置及び姿勢XMと、拘束位置/姿勢参照値Xrefとの差分に応じた拘束力Fを算出し、さらに、マスタ装置10を実際に拘束する座標系に変換して、拘束力F´を求める。拘束力F´は、マスタ装置10(若しくは、そのグリップ部220)が一定の方向(例えば、任意の並進又は回転方向)にしか動けなくなるようにする、仮想的な力であるが、例えば図8に示した処理手順に従って算出することができる。次いで、加速度変換部92は、算出された拘束力F´を加速度次元の信号に変換する。
そして、マスタ装置10には、位置制御器71と力制御器72の各々から供給される加速度参照信号に加え、さらに拘束力F´に起因する加速度成分が付加された加速度信号AM
refが供給される。
例えば、手術中に、スレーブ装置20のエンド・エフェクターに取り付けられた術具を1軸方向に並進移動させたい場合や回転運動させたい場合がある。拘束力付加部91が、マスタ装置10及びスレーブ装置20に対して仮想的な拘束力を付加することができ、ユーザは任意の並進運動や回転運動を含む操作を、ブレが生じることなく高い精度で実現することが可能になる。
図7並びに図9では、マスタ装置10及びスレーブ装置20が一定の方向にしか動けないようにする拘束力を付加するシステム構成例を示した。その応用例として、位置及び姿勢の全6自由度を拘束するための拘束力を付加するようにシステムを構成することも可能である。
例えば、手術中に術者であるユーザがグリップ部220から手を離して、一時的にスレーブ装置20の遠隔操作以外の作業を実施したい場合(若しくは、しなければならない場合)が想定される。ロボット・システム1に力制御が適用される場合には、グリップ部220の自重による撓みが誤入力されるおそれがある。また、力制御に自重補償が施されているとしても、力センサのノイズ成分によりスレーブ装置20側を動作させてしまうおそれがある。
したがって、ある条件下においてマスタ-スレーブロボットを現在の位置及び姿勢に留めておきたい場合に、位置及び姿勢の全6自由度を拘束するための拘束力を付加する機能は有用であると思料する。
図10には、マスタ-スレーブロボットを現在の位置及び姿勢に留めておくための拘束力をフィードバックするバイラテラル制御システム1000の構成例を示している。但し、図7に示したシステム70と同一の構成要素については、同一の参照番号を付している。
状態検出部101は、マスタ装置10側のグリップ部220の状態、すなわち保持状態であるか否かを検出する。状態検出部101は、例えばグリップ部220に加わる外力を検出する力センサや、ユーザの指先を感圧センサや人感センサなどで構成される(前述)。
そして、拘束力付加部102は、状態検出部101によりグリップ部220が保持状態でないと判定した場合に、拘束力を出力する。あるいは、グリップ部220に装備されたジョグダイヤルやタクトスイッチなどの入力手段を介して拘束力の付与が支持されたことに応答して、拘束力付加部102が拘束力を出力するようにしてもよい。
拘束力付加部102は、マスタ装置10の現在の位置及び姿勢XMと、拘束位置/姿勢参照値Xrefとの差分に応じた拘束力Fを算出し、さらに、マスタ装置10を実際に拘束する座標系に変換して、拘束力F´を求める。図7及び図9に示したシステム構成例では、マスタ-スレーブロボットの駆動を任意の並進又は回転方向に拘束するための拘束力が付加される(前述)。これに対し、図10に示す例では、マスタ-スレーブロボットを現在の位置及び姿勢に留めておくための拘束力が付加される。このような拘束力を演算する処理の詳細については、後述に譲る。
力制御器72は、マスタ装置10の発生力FMと、上記の拘束力F´と、スレーブ装置20の発生力βFSの合力から、これを修正する方向へ駆動するためのマスタ装置10及びスレーブ装置20の各々に対する加速度参照信号を出力する。
また、位置制御器71は、マスタ装置10とスレーブ装置20間の位置の偏差(XM-αXS)から、これを修正する方向へ駆動するためのマスタ装置10及びスレーブ装置20の各々に対する加速度参照信号を出力する。
そして、マスタ装置10には、位置制御器61と力制御器62の各々から供給される加速度参照信号の双方が加味されたAM
refが供給され、スレーブ装置20には、位置制御器61と力制御器62の各々から供給される加速度参照信号の双方が加味されたAS
refが供給される。
例えば、手術中に術者であるユーザがグリップ部220から手を離した場合には、マスタ-スレーブロボットの全6自由度を拘束するための拘束力が付加されて、現在の位置及び姿勢に留めておくことができる。ユーザがグリップ部220から手を離して、一時的にスレーブ装置20の遠隔操作以外の作業を実施することが可能になる。
なお、図10に示すシステム100は、マスタ-スレーブロボットを現在の位置及び姿勢に留めておくための拘束力を、力制御器72にフィードバックする構成となっているが、拘束力をフィードバックする箇所はこれに限定されるものではない。例えば、図9に示したように、全6自由度を拘束する拘束力を加速度次元に変換して、マスタ装置10に対してこのような拘束力をフィードバックするように構成してもよい。
図11には、バイラテラル制御システム100に対して現在の位置及び姿勢に留めておくための拘束力を付加するための処理手順をフローチャートの形式で示している。図示の処理手順は、例えば制御システム30におけるソフトウェア的な処理として低コストで実現することができる。
まず、マスタ装置10側のグリップ部220が、ユーザによって把持若しくは保持されている保持状態であるか否かをチェックする(ステップS1101)。グリップ部220には、保持状態か否かを検出するための状態検出部101が装備されているものとする(前述)。
ここで、グリップ部220がユーザの保持状態にあると判断したときには(ステップS1101のNo)、グリップ部220を現在の位置及び姿勢に留めておくための拘束力は不要である。この場合、マスタ装置10側の(例えば、グリップ部220の)現在の位置及び姿勢Xを、以降に拘束力を付加する際の、拘束すべき位置及び姿勢の参照値Xrefとして一時的に保存する(ステップS1102)。
一方、グリップ部220がユーザの保持状態にない、言い換えればユーザによる操作から外れた状態であると判断したときには(ステップS1101のYes)、グリップ部220を現在の位置及び姿勢に留めておくための拘束力が必要となる。この場合、ステップS1102で1制御周期前に保存しておいた、全6自由度の拘束位置/姿勢参照値Xrefを取得する(ステップS1103)。
そして、マスタ装置10の現在の位置及び姿勢Xを取得し、これと拘束位置/姿勢参照値Xrefとの差分に応じた拘束力Fを、上式(1)に従って算出する(ステップS1104)。次いで、上式(2)に従って、算出した拘束力Fを、マスタ装置10を実際に拘束する座標系に変換して(ステップS1105)、仮想的な拘束力F´として出力する。これによって、マスタ装置10には、6自由度を拘束する位置及び姿勢の参照値Xref、すなわち、現在の位置及び姿勢に留めておくための拘束力F´が付加される。
ユーザがマスタ装置10からグリップ部220を用いてスレーブ装置20を遠隔操作する際に、グリップ部220には任意の並進又は回転方向へ駆動するための拘束力F´が作用する。したがって、ユーザは、このような拘束力F´でサポート若しくはアシストを受けながら、スレーブ装置20を遠隔操作する精度を向上することができ、タスク処理時間(施術の時間など)を短縮化することも可能となる。
これまでは、4CH型のバイラテラル制御系に対して拘束力を付加するシステム構成について説明してきたが、4CH型以外のバイラテラル制御系に対しても、拘束力を付加する機構を設けることによって、同様の効果を得ることができる。
図12には、本明細書で開示する技術を適用した位置対称型のバイラテラル制御システム120の機能的構成を模式的に示している。但し、図4に示したシステム40と同一の構成要素については、同一の参照番号を付している。
位置制御器41は、マスタ装置10及びスレーブ装置20の各々に対して、加速度参照信号AM
ref及びAS
refを供給する。マスタ装置10では、加速度参照信号AM
refに対して加速度制御が実施され、ロボットの位置及び姿勢XMが変位する。同様に、スレーブ装置20では、加速度参照信号AS
refに対して加速度制御が実施され、ロボットの位置及び姿勢XSが変位する。
位置制御器41は、マスタ装置10とスレーブ装置20間の位置の偏差から、これを修正する方向へ駆動するための加速度参照信号AM
ref及びAS
refをマスタ装置10及びスレーブ装置20の各々に供給する。但し、マスタ装置10とスレーブ装置20の位置の偏差を算出する際に、スケーラ42において、スレーブ装置20の位置姿勢信号XSに、マスタ装置10とスレーブ装置20間の位置姿勢空間スケーリングのための係数αを乗算する。
また、拘束力付加部121は、マスタ装置10の現在の位置及び姿勢XMと、拘束位置/姿勢参照値Xrefとの差分に応じた拘束力Fを算出し、さらに、マスタ装置10を実際に拘束する座標系に変換して、拘束力F´を求める。さらに、加速度変換部122は、算出された拘束力F´を加速度次元の信号に変換する。
そして、マスタ装置10には、位置制御器41から供給される加速度参照信号に加え、さらに拘束力F´に起因する加速度成分が付加された加速度信号AM
refが供給される。
なお、拘束力付加部121が出力する拘束力F´は、マスタ装置10(若しくは、そのグリップ部220)が一定の方向(例えば、任意の並進又は回転方向)にしか動けなくなるようにする、仮想的な力であるが、例えば図8に示した処理手順に従って算出することができる。但し、グリップ部220が保持されていない状態でグリップ部220を現在の位置及び姿勢に留めておく(すなわち、全6自由度を拘束する)ための拘束力を拘束力付加部121から出力するようにしてもよい。後者の場合、例えば図11に示した処理手順に従って拘束力を算出することができる。
図13には、本明細書で開示する技術を適用した力帰還型のバイラテラル制御システム130の機能的構成を模式的に示している。但し、図5に示したシステム50と同一の構成要素については、同一の参照番号を付している。
位置制御器51は、スレーブ装置20に対して、加速度参照信号AS
refを供給する。スレーブ装置20では、加速度参照信号AS
refに対して加速度制御が実施され、ロボットの位置及び姿勢XSが変位する。また、スレーブ装置20には、対象物との接触に伴い、外力FSが発生する。
また、力制御器52は、マスタ装置10に対して、加速度参照信号AM
refを供給する。マスタ装置10では、加速度参照信号AM
refに対して加速度制御が実施され、ロボットの位置及び姿勢XMが変位する。また、マスタ装置10には、操作者による操作に伴い、外力FMが発生する。
位置制御器51は、マスタ装置10とスレーブ装置20間の位置の偏差から、これを修正する方向へ駆動するための加速度参照信号AS
refをスレーブ装置20に供給する。但し、マスタ装置10とスレーブ装置20の位置の偏差を算出する際に、スケーラ53において、スレーブ装置20の位置姿勢信号XSに、マスタ装置10とスレーブ装置20間の位置姿勢空間スケーリングのための係数αを乗算する。
拘束力発生部131は、マスタ装置10の現在の位置及び姿勢XMと、拘束位置/姿勢参照値Xrefとの差分に応じた拘束力Fを算出し、さらに、マスタ装置10を実際に拘束する座標系に変換して、拘束力F´を求める。
そして、力制御器52は、マスタ装置10の発生力とスレーブ装置20の各発生力と、拘束力F´の合力から、これを修正する方向へ駆動するための加速度参照信号AS
refをマスタ装置10に供給する。但し、スケーラ54において、スレーブ装置20の力信号FSに、マスタ装置10とスレーブ装置20間の力空間スケーリングのための係数βを乗算する。
なお、拘束力付加部131が出力する拘束力F´は、マスタ装置10(若しくは、そのグリップ部220)が一定の方向(例えば、任意の並進又は回転方向)にしか動けなくなるようにする、仮想的な力であるが、例えば図8に示した処理手順に従って算出することができる。但し、グリップ部220が保持されていない状態でグリップ部220を現在の位置及び姿勢に留めておく(すなわち、全6自由度を拘束する)ための拘束力を拘束力付加部131から出力するようにしてもよい。後者の場合、例えば図11に示した処理手順に従って拘束力を算出することができる。
また、図14には、本明細書で開示する技術を適用した力帰還型のバイラテラル制御システム140の他の機能的構成を模式的に示している。但し、図13に示したシステム50と同一の構成要素については、同一の参照番号を付している。図示のシステム140は、拘束力を加速度次元に変換してバイラテラル制御系に付与するように構成されており、拘束力をフィードバックする箇所が図13に示したシステム130とは相違する。
拘束力付加部141は、マスタ装置10の現在の位置及び姿勢XMと、拘束位置/姿勢参照値Xrefとの差分に応じた拘束力Fを算出し、さらに、マスタ装置10を実際に拘束する座標系に変換して、拘束力F´を求める。次いで、加速度変換部142は、算出された拘束力F´を加速度次元の信号に変換する。
そして、マスタ装置10には、力制御器52から供給される加速度参照信号に加え、さらに拘束力F´に起因する加速度成分が付加された加速度信号AM
refが供給される。
なお、拘束力付加部141が出力する拘束力F´は、マスタ装置10(若しくは、そのグリップ部220)が一定の方向(例えば、任意の並進又は回転方向)にしか動けなくなるようにする、仮想的な力であるが、例えば図8に示した処理手順に従って算出することができる。但し、グリップ部220が保持されていない状態でグリップ部220を現在の位置及び姿勢に留めておく(すなわち、全6自由度を拘束する)ための拘束力を拘束力付加部141から出力するようにしてもよい。後者の場合、例えば図11に示した処理手順に従って拘束力を算出することができる。
また、これまでは、バイラテラル制御系に対して拘束力を付加するシステム構成について説明してきたが、ユニラテラル制御系に対しても、拘束力を付加する機構を設けることによって、同様の効果を得ることができる。
図15には、本明細書で開示する技術を適用したユニラテラル制御システム150の機能的構成を模式的に示している。
位置制御器151は、スレーブ装置20に対して、加速度参照信号AS
refを供給する。スレーブ装置20では、加速度参照信号AS
refに対して加速度制御が実施され、ロボットの位置及び姿勢XSが変位する。また、スレーブ装置20には、対象物との接触に伴い、外力FSが発生する。
また、力制御器152は、マスタ装置10に対して、加速度参照信号AM
refを供給する。マスタ装置10では、加速度参照信号AM
refに対して加速度制御が実施され、ロボットの位置及び姿勢XMが変位する。また、マスタ装置10には、操作者による操作に伴い、外力FMが発生する。
位置制御器151は、マスタ装置10とスレーブ装置20間の位置の偏差から、これを修正する方向へ駆動するための加速度参照信号AS
refをスレーブ装置20に供給する。但し、マスタ装置10とスレーブ装置20の位置の偏差を算出する際に、スケーラ153において、スレーブ装置20の位置姿勢信号XSに、マスタ装置10とスレーブ装置20間の位置姿勢空間スケーリングのための係数αを乗算する。
拘束力付加部154は、マスタ装置10の現在の位置及び姿勢XMと、拘束位置/姿勢参照値Xrefとの差分に応じた拘束力Fを算出し、さらに、マスタ装置10を実際に拘束する座標系に変換して、拘束力F´を求める。
そして、力制御器152は、マスタ装置10の発生力FMと、拘束力付加部154から出力される拘束力F´の合力から、これを修正する方向へ駆動するための加速度参照信号AS
refをマスタ装置10に供給する。
なお、拘束力付加部154が出力する拘束力F´は、マスタ装置10(若しくは、そのグリップ部220)が一定の方向(例えば、任意の並進又は回転方向)にしか動けなくなるようにする、仮想的な力であるが、例えば図8に示した処理手順に従って算出することができる。但し、グリップ部220が保持されていない状態でグリップ部220を現在の位置及び姿勢に留めておく(すなわち、全6自由度を拘束する)ための拘束力を拘束力付加部154から出力するようにしてもよい。後者の場合、例えば図11に示した処理手順に従って拘束力を算出することができる。
また、図16には、本明細書で開示する技術を適用したユニラテラル制御システム160の機能的構成を模式的に示している。但し、図15に示したシステム150と同一の構成要素については、同一の参照番号を付している。図示のシステム160は、拘束力を加速度次元に変換してユニラテラル制御系に付与するように構成されており、拘束力をフィードバックする箇所が図15に示したシステム130とは相違する。
拘束力付加部161は、マスタ装置10の現在の位置及び姿勢XMと、拘束位置/姿勢参照値Xrefとの差分に応じた拘束力Fを算出し、さらに、マスタ装置10を実際に拘束する座標系に変換して、拘束力F´を求める。次いで、加速度変換部162は、算出された拘束力F´を加速度次元の信号に変換する。
そして、マスタ装置10には、力制御器52から供給される加速度参照信号に加え、さらに拘束力F´に起因する加速度成分が付加された加速度信号AM
refが供給される。
なお、拘束力付加部161が出力する拘束力F´は、マスタ装置10(若しくは、そのグリップ部220)が一定の方向(例えば、任意の並進又は回転方向)にしか動けなくなるようにする、仮想的な力であるが、例えば図8に示した処理手順に従って算出することができる。但し、グリップ部220が保持されていない状態でグリップ部220を現在の位置及び姿勢に留めておく(すなわち、全6自由度を拘束する)ための拘束力を拘束力付加部161から出力するようにしてもよい。後者の場合、例えば図11に示した処理手順に従って拘束力を算出することができる。
ここまでは、マスタ装置10及びスレーブ装置20に対して任意の並進又は回転方向(全6自由度を含む)に拘束力を付加するシステム構成例を示した。その応用例として、マスタ装置10又はスレーブ装置20の少なくとも一方が可動域を超えて移動してしまわないように、可動域制限力を付加するようにシステムを構成することも可能である。
図17には、マスタ-スレーブロボットのバイラテラル制御系に対して拘束力をフィードバックするとともに、マスタ装置10及びスレーブ装置20が可動域を超えないように可動域制限力をフィードバックするバイラテラル制御システム170の構成例を示している。但し、図7に示したシステム70と同一の構成要素については、同一の参照番号を付している。
拘束力付加部171は、マスタ装置10の現在の位置及び姿勢XMと、拘束位置/姿勢参照値Xrefとの差分に応じた拘束力Fを算出し、さらに、マスタ装置10を実際に拘束する座標系に変換して、拘束力F´を求める。拘束力F´は、マスタ装置10(若しくは、そのグリップ部220)が一定の方向(例えば、任意の並進又は回転方向)にしか動けなくなるようにする、仮想的な力であるが、例えば図8に示した処理手順に従って算出することができる。
可動域制限力付加部172は、マスタ装置10の現在の位置又は姿勢がマスタ装置10の可動域を超えている場合には、マスタ装置10の現在の位置及び姿勢XMとマスタ装置10の可動域参照値XM
limit,refとの差分に応じたマスタ装置10に対する可動域制限力FM
limitを算出し、さらに、マスタ装置10を実際に拘束する座標系に変換して、可動域制限力FM
limit´を求める。可動域制限力FM
limit´を演算する処理の詳細については、後述に譲る。
また、可動域制限力付加部173は、スレーブ装置20の現在の位置又は姿勢がスレーブ装置20の可動域を超えている場合には、スレーブ装置20の現在の位置及び姿勢XMとスレーブ装置20の可動域参照値XS
limit,refとの差分に応じたスレーブ装置20に対する可動域制限力FS
limitを算出し、さらに、スレーブ装置20を実際に拘束する座標系に変換して、可動域制限力FS
limit´を求める。可動域制限力FS
limit´を演算する処理の詳細については、後述に譲る。
力制御器72は、マスタ装置10の発生力FMと、上記の拘束力F´と、マスタ装置10及びスレーブ装置20の各々に対する可動域制限力FM
limit´及びFS
limit´と、スレーブ装置20の発生力βFSの合力から、これを修正する方向へ駆動するためのマスタ装置10及びスレーブ装置20の各々に対する加速度参照信号を出力する。
また、位置制御器71は、マスタ装置10とスレーブ装置20間の位置の偏差(XM-αXS)から、これを修正する方向へ駆動するためのマスタ装置10及びスレーブ装置20の各々に対する加速度参照信号を出力する。
そして、マスタ装置10には、位置制御器71と力制御器72の各々から供給される加速度参照信号の双方が加味されたAM
refが供給される。また、スレーブ装置20には、位置制御器71と力制御器72の各々から供給される加速度参照信号の双方が加味されたAS
refが供給される。
マスタ装置10のグリップ部220を取り外し交換可能で、複数種類のグリップ部を選択的に利用することができ、且つ、取り付けたグリップ部の種類に応じてマスタ装置10の可動域が変化する場合もある。このような場合には、可動域制限力付加部172は、取り付けられたグリップ部のIDを認識して、そのIDに対応する可動域参照値を取得して、可動域制限力を演算するようにしてもよい。
また、スレーブ装置20においても、エンド・エフェクターとなる術具を取り外し交換可能で、複数種類の術具を選択的に利用することができ、且つ、取り付けた術具の種類に応じてスレーブ装置20の可動域が変化する場合もある。このような場合には、可動域制限力付加部173は、取り付けられた術具のIDを認識して、そのIDに対応する可動域参照値を取得して、可動域制限力を演算するようにしてもよい。
なお、図17では、拘束力と可動域制限力の両方を付加するシステム構成例170について示したが、可動域制限力のみを付加するようにシステムを構成することも可能である。また、マスタ装置10又はスレーブ装置20のうちいずれか一方の可動域制限力のみを付加するようにシステムを構成することも可能である。
また、可動域制限力付加部172並びに173から出力される可動域制限力を、図9に示したシステム構成例と同様に、加速度次元に変換してバイラテラル制御システム170に付加するという変形例も考えられる。
図18には、バイラテラル制御システム120に対して、マスタ装置10及びスレーブ装置20が可動域を超えないようにするための可動域制限力を付加するための処理手順をフローチャートの形式で示している。図示の処理手順は、例えば制御システム30におけるソフトウェア的な処理として低コストで実現することができる。
まず、マスタ装置10又はスレーブ装置20の現在の位置又は姿勢が可動域を超えているか否かをチェックする(ステップS1801)。
例えば、マスタ装置10側において、デルタ型パラレルリンクを構成する各リンク部231、232、233と本体部210間の連結部分に配設されたエンコーダが回転する回転角度に基づいて、マスタ装置10が可動域を超えているか否かを判定することができる。また、スレーブ装置20側において、アーム部320の各関節部321a~321fに配設されたエンコーダが回転する回転角度に基づいて、スレーブ装置20が可動域を超えているか否かを判定することができる。
ここで、マスタ装置10並びにスレーブ装置20が可動域を超えていないと判断したときには(ステップS1801のNo)、バイラテラル制御システム1200に対して可動域制限力を付加する必要がないので、可動域制限力FM
limit´=0及びFS
limit´=0を出力する(ステップS1802)。
一方、マスタ装置10又はスレーブ装置20のうち少なくとも一方の可動域を超えていると判断したときには(ステップS1801のYes)、可動域を超えた方の装置の可動域参照値XM
limit,ref又はXS
limit,refを取得する(ステップS1803)。
そして、マスタ装置10の現在の位置及び姿勢XMを取得し、これと可動域参照値XM
limit,refとの差分に応じた可動域制限力FM
limitを、下式(3)に従って算出する(ステップS1804)。同式(3)中、Dはゲインを示す係数である。また、同式(3)は比例ゲインのみにより可動域制限力を導出しているが、その他の位置制御手法を用いてかどうか力を導出することが可能であることは言うまでもない。
次いで、下式(4)に従って、算出した可動域制限力FM
limitを、マスタ装置10を実際に拘束する座標系に変換して(ステップS1805)、仮想的な拘束力FM
limit´として出力する。
あるいは、ステップS1804では、スレーブ装置20の現在の位置及び姿勢XSを取得し、下式(5)に従って、これと可動域参照値XS
limit,refとの差分に応じた可動域制限力FS
limitを算出する(ステップS1804)。そして、ステップS1805では、下式(6)に従って、算出した可動域制限力FS
limitを、スレーブ装置20を実際に拘束する座標系に変換して、仮想的な拘束力FS
limit´として出力する。
図17に示すシステム構成170によれば、ユーザがマスタ装置10からグリップ部220を用いてスレーブ装置20を遠隔操作する際には、グリップ部220の操作を任意の並進又は回転方向へ拘束する拘束力F´とともに、マスタ装置10並びにスレーブ装置20の可動域から外れないようにするための可動域制限力Flimit´が作用する。したがって、ユーザは、マスタ装置10並びにスレーブ装置20が可動域から外れない範囲で、拘束力によるサポート若しくはアシストを受けて操作精度を向上させることができ、タスク処理時間(施術の時間など)を短縮化することも可能となる。
続いて、バイラテラル制御システムの操作UI並びに提示UIについて説明する。
マスタ装置10側で、ユーザが利用可能な入力手段として、グリップ部に装備されたジョグダイヤルやタクトスイッチ、足元に設置されたフット・ペダル・スイッチなどを挙げることができる。既に知られているように、ジョグダイヤルによれば連続的な入力が可能である。他方、タクトスイッチやフット・ペダル・スイッチは、スイッチのオン/オフに伴い、0又は1による入力が可能である。
また、ユーザが、マスタ装置10側からスレーブ装置20を遠隔操作する際に、グリップ部220を用いた操作に対して任意の並進又は回転方向に拘束力を付加したい場合、例えば以下の(a)~(b)に示すようなパラメータを指定する必要がある。
(a)拘束力の種類(並進又は回転)
(b)拘束力を付与する軸方向(x,y,z)
(c)拘束力を付与する自由度(1~6自由度)
(d)拘束力を付与する座標系(グローバル座標系、又は(スレーブ装置20の)ローカル座標系)
ユーザは、上述したジョグダイヤルやタクトスイッチ、フット・ペダル・スイッチのいずれかを用いて上記の項目(a)~(d)を選択し、さらに選択を切り替えることができる。
ロボット・システム1が例えば手術システムに適用される場合、術者であるユーザは術中に複雑な入力操作を行なうことは極めて困難である。そこで、例えば、上記項目(a)と(b)の組み合わせなどからなる複数の選択肢をシリアルに並べ、ジョグダイヤルが所定角度だけ回転される度に選択肢を順送りして選択できるようにしたり、タクトスイッチ又はフット・ペダル・スイッチが押下操作される度に座標系などの2者択一の選択肢を順に選択できるようしたりして、簡易な入力方法を採用することが好ましい。
図19には、ユーザがUI操作する度に、バイラテラル制御システムに付加する拘束力の種類、拘束力の軸方向、拘束力を付与する自由度、座標系などを順次切り替えるための処理手順をフローチャートの形式で示している。
例えば、図7に示したバイラテラル制御システム70において、拘束力付加部75は、上記の処理手順に従って設定された拘束力の種類、拘束力の軸方向、拘束力を付与する自由度、座標系に基づいて、拘束力を演算して制御系にフィードバックするようにする。
また、ユーザのUI操作に応じて拘束力の種類、拘束力の軸方向、拘束力を付与する自由度などが切り換えられたときには、上記の項目(a)~(d)などに関する現在の選択状況を、例えばモニタ260の画面に表示して、ユーザが確認できるようにすることが好ましい。
図20には、モニタ260の画面上に拘束力に関する選択状況を表示した様子を例示している。図示の例では、参照番号2001に示すように、選択された拘束力の種類及び軸方向が画面に表示されている。また、参照番号2002に示すように、スイッチの操作方法が併せて画面に表示されている。なお、画面上に表示される軸方向の名称は、「画面上下方向」や「画面奥行き方向」など別の名称であってもよい。
さらに、参照番号2003で示すように、現在の可動方向を示す矢印が表示される。可動方向2003は、遠隔操作の対象である鉗子323の画像と重なるように表示すると、ユーザにとって可動方向2003を把握し易くなる。ところが、鉗子323の先端は患部2004に接触している場合が多いので、可動方向を示す映像2003が患部2004に重なって、患部2004が見え難くなり、施術の邪魔になるおそれがある。そこで、可動方向2003は、選択切り替え時から所定期間だけ表示する、半透明に表示する、鉗子323の先端から外れた場所に表示する、画面260の周辺部に表示するなど、患部2004を観察する際に邪魔にならないようにすることが好ましい。
図21には、図1に示したロボット・システム1において制御システム30として動作することができる情報処理装置2100のハードウェア構成を示している。
図示の情報処理装置2100は、主にCPU2101と、ROM(Read Only Memory)2103と、RAM(Random Access Memory)2105を備え、さらに、ホストバス2107と、ブリッジ2109と、外部バス2111と、インターフェース2113と、入力装置2115と、出力装置2117と、ストレージ装置2119と、ドライブ2121と、接続ポート2123と、通信装置2125とを備えている。
CPU2101は、演算処理装置及び制御装置として機能し、ROM2103、RAM2105、ストレージ装置2119又はリムーバブル記録媒体2127に記録された各種プログラムに従って、情報処理装置2100内の動作全般又はその一部を制御する。ROM2103は、CPU2101が使用するプログラムや演算パラメータなどを不揮発的に記憶する。RAM2105は、CPU2101が使用するプログラムや、プログラムの実行において適宜変化するパラメータなどを一時的に記憶する。これらはCPUバスなどの内部バスにより構成されるホストバス2107により相互に接続されている。なお、図1に示したロボット・システム1における制御システム30の機能は、例えば、CPU2101が所定のプログラムを実行することにより実現され得る。
ホストバス2107は、ブリッジ2109を介して、PCI(Peripheral Component Interconnect)バスなどの外部バス2111に接続されている。また、外部バス2111には、インターフェース2113を介して、入力装置2115、出力装置2117、ストレージ装置2119、ドライブ2121、接続ポート2123及び通信装置2125が接続されている。
入力装置2115は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、 レバー及びペダルなどのユーザが操作する操作デバイスからなる。また、入力装置2115は、例えば、赤外線やその他の電波を利用したリモートコントローラ(いわゆる、リモコン)であってもよいし、情報処理装置2100の操作に対応した携帯電話若しくはスマートフォンやPDA(Personal Digital Assistant)などの外部接続機器2129であってもよい。さらに、入力装置2115は、例えば、上記の操作デバイスを用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU2101に出力する入力制御回路などから構成されている。情報処理装置2100のユーザは、入力装置2115を操作することにより、情報処理装置2100に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置2117は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で構成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置及びランプなどの表示装置や、スピーカ及びヘッドホンなどの音声出力装置や、プリンタ装置などが挙げられる。出力装置2117は、例えば、情報処理装置2100が行なった各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置2100が行なった各種処理により得られた結果をテキスト又はイメージで表示する。他方、音声出力装置は、再生された音声データや音響データなどからなるオーディオ信号をアナログ信号に変換して音声出力する。なお、マスタ装置10に備えられたモニタ260は、例えば、出力装置2117により実現され得る。
ストレージ装置2119は、情報処理装置2100の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置2119は、例えば、HDD(Hard Disk Drive)などの磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイスなどにより構成される。ストレージ装置2119は、CPU2101が実行するプログラムや各種データなどを格納する。
ドライブ2121は、記録媒体用リーダライタであり、情報処理装置2100に内蔵あるいは外付けされる。ドライブ2121は、装着されている磁気ディスク、光ディスク、光磁気ディスク又は半導体メモリなどのリムーバブル記録媒体2127に記録されている情報を読み出して、RAM2105などに出力する。また、ドライブ2121は、装着されている磁気ディスク、光ディスク、光磁気ディスク又は半導体メモリなどのリムーバブル記録媒体2127に記録を書き込むことも可能である。リムーバブル記録媒体2127は、例えば、DVDメディア、HD-DVDメディア又はBlu-ray(登録商標)メディアなどである。また、リムーバブル記録媒体2127は、コンパクトフラッシュ(登録商標)(CF:CompactFlash)、フラッシュメモリ又はSDメモリカード(Secure Digital memory card)などであってもよい。また、リムーバブル記録媒体2127は、例えば、非接触型ICチップを搭載したIC(Integrated Circuit)カード又は電子機器などであってもよい。
接続ポート2123は、情報処理装置2100に直接接続するためのポートである。接続ポート2123の一例として、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)ポートなどがある。接続ポート2123の別の例として、RS-232Cポート、光オーディオ端子、HDMI(登録商標)(High-Definition Multimedia Interface)ポートなどがある。接続ポート2123に外部接続機器2129を接続することで、情報処理装置2100は、外部接続機器2129から直接各種のデータを取得したり、外部接続機器2129に各種のデータを提供したりする。
通信装置2125は、例えば、通信網(ネットワーク)2131に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置2125は、例えば、有線若しくは無線LAN(Local Area Network)、Bluetooth(登録商標)又はWUSB(Wireless USB)用の通信カードなどである。また、通信装置2125は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ又は各種通信用のモデムなどであってもよい。通信装置2125は、例えば、インターネットや他の通信機器との間で、例えばTCP/IPなどの所定のプロトコルに則って伝送信号を送受信することができる。また、通信装置2125に接続される通信網2131は、有線又は無線によって接続されたネットワークなどにより構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信又は衛星通信などであってもよい。
以上、本実施形態に係るロボット・システム1における制御システム30の機能を実現可能な情報処理装置2100のハードウェア構成の一例について説明した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。したがって、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。なお、図21では図示を省略したが、本実施形態に係る制御システム30を構成する情報処理装置2100に対応する各種の構成を当然備えるものとする。
なお、上述のような本実施形態に係る制御システム30を構成する情報処理装置2100の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータなどに実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。また、当該コンピュータプログラムを実行させるコンピュータの数は特に限定されない。例えば、当該コンピュータプログラムを、複数のコンピュータ(例えば、複数のサーバなど)が互いに連携して実行してもよい。なお、単数のコンピュータ、又は複数のコンピュータが連携するものを、「コンピュータシステム」とも称する。