(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下では、本発明の実施形態について添付図面を参照して説明する。
まず、本実施形態の医療用マニピュレータの制御方法を用いて制御する医療用マニピュレータを含む医療用マニピュレータシステムについて説明する。
図1は、本発明の実施形態の医療用マニピュレータの制御方法によって制御される医療用マニピュレータを備える医療用マニピュレータシステムの構成を示す模式的なシステム構成図である。
【0013】
本実施形態の制御方法を用いて制御される医療用マニピュレータ1は、医療処置を行うための医療用マニピュレータシステムに組み込まれている。
まず、医療用マニピュレータ1が組み込まれる医療用マニピュレータシステムの構成について説明する。
【0014】
図1には、マスタースレーブ方式の医療用マニピュレータシステムMの一例を示している。マスタースレーブ方式の医療用マニピュレータシステムとは、マスターアームとスレーブアームとからなる2種のアームを有し、マスターアームの動作に追従させるようにしてスレーブアームを遠隔制御するシステムである。本実施形態では、このスレーブアームに医療用マニピュレータ1が装着可能である。
【0015】
図1に示す医療用マニピュレータシステムMは、手術台100と、スレーブアーム200a、200b、200c、200dと、スレーブ制御部400と、マスターアーム500a、500b(操作部)と、操作部600と、入力処理部700と、画像処理部800と、操作者用ディスプレイ900aと、助手用ディスプレイ900bと、を有している。
【0016】
以下、記載を簡潔にするため、アルファベット順の符号「Xa、Xb、…、Xz」を、「Xa〜Xz」のように表す場合がある。例えば、「スレーブアーム200a、200b、200c、200d」を「スレーブアーム200a〜200d」と表す場合がある。
【0017】
手術台100は、観察・処置の対象となる患者Pが載置される台である。手術台100の近傍には、複数のスレーブアーム200a〜200dが設置されている。なお、スレーブアーム200a〜200dを手術台100に設置するようにしてもよい。
【0018】
各スレーブアーム200a〜200dは、それぞれ複数の多自由度関節を有して構成されており、各多自由度関節を湾曲させることによって、手術台100に載置された患者Pに対してスレーブアーム200a〜200dの遠位端側(患者Pの体腔に向かう側とする)に装着される医療用マニピュレータ1、医療用マニピュレータ240a〜240c等を位置決めする。各多自由度関節は、図示しない動力部によって個別に駆動される。動力部としては、例えばインクリメンタルエンコーダや減速器等を備えたサーボ機構を有するモータが用いることができ、その動作制御は、スレーブ制御部400によって行われる。
【0019】
医療用マニピュレータ1や他の医療用マニピュレータ240a〜240cは、硬性であってもよいし、軟性であってもよい。すなわち、医療用マニピュレータ1や他の医療用マニピュレータ240a〜240cは、生体に対して処置を行うための作動体を硬質なロッドの押し引きによって動作させるものや、生体に対して処置を行うための作動体を軟性ワイヤの牽引によって動作させるものを適宜選択して採用することができる。なお、医療用マニピュレータ1や他の医療用マニピュレータ240a〜240cが硬性である場合においても、その作動体を軟性ワイヤの牽引によって動作させる構成を有していてよい。本実施形態では、医療用マニピュレータ1は、作動体を動作させるための駆動力が軟性ワイヤを通じて作動体に伝達される構成を有する。
【0020】
図1においては、たとえば患者Pの腹腔内に挿入される医療用マニピュレータ240a〜240cは硬性であり、たとえば口などの患者の自然開口から消化管等を経由して体内へと導入される医療用マニピュレータ1は軟性である。
【0021】
スレーブ制御部400は、例えばCPUやメモリ等を有して構成されている。スレーブ制御部400は、スレーブアーム200a〜200dの制御を行うための所定のプログラムを記憶しており、入力処理部700からの制御信号に従って、スレーブアーム200a〜200d又は医療用マニピュレータ1や他の医療用マニピュレータ240a〜240cの動作を制御する。すなわち、スレーブ制御部400は、入力処理部700からの制御信号に基づいて、操作者Opによって操作されたマスターアームの操作対象のスレーブアーム(または医療用マニピュレータ1)を特定し、特定したスレーブアーム等に操作者Opのマスターアームの操作量に対応した動きをさせるために必要な駆動量を演算する。
【0022】
そして、スレーブ制御部400は、算出した駆動量に応じてマスターアームの操作対象のスレーブアーム等の動作を制御する。この際、スレーブ制御部400は、対応したスレーブアームに駆動信号を入力するとともに、対応したスレーブアームの動作に応じて動力部の位置検出器から入力されてくる検出信号に応じて、操作対象のスレーブアームの駆動量が目標の駆動量となるように駆動信号の大きさや極性を制御する。
【0023】
マスターアーム500a、500bは、複数のリンク機構で構成されている。リンク機構を構成する各リンクには例えばインクリメンタルエンコーダ等の位置検出器が設けられている。この位置検出器によって各リンクの動作を検知することで、マスターアーム500a、500bの操作量が入力処理部700において検出される。
マスターアーム500a、500bのリンク機構としては、例えば、医療用マニピュレータ1における可動部の位置や姿勢を操作するための多関節のリンクや、処置具の把持動作の開閉角度を操作するための開閉動作を行うリンクを挙げることができる。
【0024】
図1に示す医療用マニピュレータシステムMは、2本のマスターアーム500a、500bを用いて4本のスレーブアームを操作するものであり、マスターアームの操作対象のスレーブアームを適宜切り替える必要が生じる。このような切り替えは、例えば操作者Opの操作部600の操作によって行われる。勿論、マスターアームの本数とスレーブアームの本数とを同数とすることで操作対象を1対1の対応とすれば、このような切り替えは不要である。
【0025】
操作部600は、マスターアーム500a、500bの操作対象のスレーブアームを切り替えるための切替ボタンや、マスターとスレーブの動作比率を変更するスケーリング変更スイッチ、システムを緊急停止させたりするためのフットスイッチ等の各種の操作部材を有している。操作者Opによって操作部600を構成する何れかの操作部材が操作された場合には、対応する操作部材の操作に応じた操作信号が操作部600から入力処理部700に入力される。
【0026】
入力処理部700は、マスターアーム500a、500bからの操作信号(操作入力)及び操作部600からの操作信号を解析し、操作信号の解析結果に従って、医療用マニピュレータシステムMを制御するための制御信号を生成してスレーブ制御部400に入力する。
【0027】
画像処理部800は、スレーブ制御部400から入力された画像信号を表示させるための各種の画像処理を施して、操作者用ディスプレイ900a、助手用ディスプレイ900bにおける表示用の画像データを生成する。操作者用ディスプレイ900a及び助手用ディスプレイ900bは、例えば液晶ディスプレイで構成され、観察器具を介して取得された画像信号に従って画像処理部800において生成された画像データに基づく画像を表示する。
【0028】
以上のように構成された医療用マニピュレータシステムMでは、操作者Opがマスターアーム500a、500bを操作すると、対応するスレーブアームおよび当該スレーブアームに取り付けられた医療用マニピュレータ1や他の医療用マニピュレータ240a〜240cがマスターアーム500a、500bの動きに対応して動作する。これにより、患者Pに対して所望の手技を行うことができる。
【0029】
なお、
図1において、符号220a、220b、220c、220dは、手術用動力伝達アダプタを示す。手術用動力伝達アダプタ220a、220b、220cは、スレーブアーム200a、200b、200cと硬性の医療用マニピュレータ240a、240b、240cとをそれぞれ接続する。手術用動力伝達アダプタ220dは、スレーブアーム200dと軟性の医療用マニピュレータ1とを接続する。
【0030】
また、本実施形態では、滅菌処理を行う部位(清潔域)と滅菌処理を行わない部位(不潔域)とを分けるためのドレープ300が医療用マニピュレータシステムMに取り付けられる。
【0031】
次に、医療用マニピュレータ1について説明する。
図2は、本発明の実施形態の医療用マニピュレータの制御方法によって制御される医療用マニピュレータの先端部の外観を示す模式的な斜視図である。
図3は、本発明の実施形態の医療用マニピュレータの制御方法によって制御される医療用マニピュレータおよび医療用マニピュレータシステムの主要部の模式的な構成図である。
図4は、本発明の実施形態の医療用マニピュレータの制御方法を行うスレーブ制御部の主要部の機能構成を示す機能ブロック図である。
【0032】
なお、以下では、特に断らない限り、医療用マニピュレータ1が医療用マニピュレータシステムMに組み込まれた状態において患者Pの体腔に向けられる側が医療用マニピュレータ1の遠位側であり、医療用マニピュレータ1において患者Pから離れた側で医療用マニピュレータシステムMに対する接続部分側が医療用マニピュレータ1の近位側であるものとして説明がなされている。
【0033】
図2に示すように、医療用マニピュレータ1は、患者Pの体内に挿入するための長尺の部材である内視鏡マニピュレータ11(医療用マニピュレータ)と、内視鏡マニピュレータ11の内部に挿通されるマニピュレータ処置具20(医療用マニピュレータ)とを有している。
【0034】
内視鏡マニピュレータ11は、近位端から遠位端に向かって、可撓性を有する管状の挿入部11C(
図1参照)、例えば、節輪や湾曲コマ等を備えた周知の湾曲部11B、および円柱状の硬質材料で形成された先端部11Aを、この順に備える。
湾曲部11Bは、操作部600によって操作対象に切り替えられた際は、マスターアーム500a、500bへの操作入力によって、湾曲させることにより先端部11Aの向きを変更することができる。
湾曲部11Bを湾曲させる機構としては、例えば、節輪や湾曲コマの内周面に挿通され、先端部11Aに固定された駆動ワイヤを挿入部11C内に挿通させて、近位端側の駆動モータなどで牽引する周知の構成を採用することができる。
内視鏡マニピュレータ11単体も、医療用マニピュレータになっており、本実施形態の制御方法を適用することが可能である。
挿入部11Cおよび湾曲部11Bの内部には、マニピュレータ処置具20等の処置具を処置部位の近傍に送る経路である処置具チャンネル16が設けられている。
【0035】
処置具チャンネル16の基端部(近位端側)は、図示を省略するが、マニピュレータ処置具20を挿入するための挿入口が設けられている。
処置具チャンネル16は、少なくともマニピュレータ処置具20が挿通可能な内径を有する可撓性の管状部材で形成されている。
図2に示すように、処置具チャンネル16の先端部16bは、先端部11Aを軸方向に貫通して、先端部11Aの先端面11aに開口する貫通孔部12の基端側に接続されている。
【0036】
図2に示すように、観察部15は、処置対象部位を観察するための装置であり、周知の撮像機構13と照明機構14とを備える。
撮像機構13および照明機構14は、先端部11Aの内部に配置され、図示略の電気配線や光ファイバが、湾曲部11Bおよび挿入部11Cの内部に挿通され、スレーブ制御部400における電気回路や光源に連結されている。
撮像機構13および照明機構14は、先端部11Aの先端面11aにおいて、それぞれ光学的な開口窓を有しており、この開口窓を通して、先端部11Aの前方の外光を受光したり、照明光を前方に出射したりすることができる。
【0037】
マニピュレータ処置具20は、複数の関節を有する関節構造部を備えることにより、先端のエンドエフェクタを移動したり、駆動したりする医療用マニピュレータの一例であり、全体として、細長い軸状に形成されている。
図3に示すように、マニピュレータ処置具20は、関節22(被駆動部)と、関節22に連結された軸状部21と、処置対象等を把持する把持部26と、可撓性を有する管状部材である筒状部23と、関節22および把持部26に駆動力を供給する駆動ユニット30と、を備える。
【0038】
把持部26は、マニピュレータ処置具20のエンドエフェクタであり、最も先端側(遠位端側)の軸状部21の先端に取り付けられている。
筒状部23は、最も基端側(近位端側)の軸状部21に接続されている。
【0039】
関節22は、屈曲用関節であって、動力伝達部材を用いて近位端から、駆動力を伝達することにより屈曲を行う関節であれば、具体的な構成は、特に限定されない。関節22の屈曲自由度、屈曲方向、屈曲量なども特に限定されない。
以下では、関節22の一例として、近位端側から順に、マニピュレータ処置具20の延在方向に交差する方向に屈曲する関節22Bと、関節22Bの屈曲方向と直交する方向に屈曲する関節22Aとを有するものとして説明する。
関節22A、22Bは、いずれも、図示略のプーリを有しており、それぞれのプーリには、関節22A、22Bに駆動力を伝達する動力伝達部材である駆動ワイヤ24A、24Bが巻き回されて、その各端部が固定されている。
【0040】
以下では、関節22A、22B、あるいは駆動ワイヤ24A、24Bの区別を特に明示しない場合や、総称する場合には、添字A、Bを省略して、単に、関節22、駆動ワイヤ24と称する場合がある。
また、本明細書では、簡単のため、関節22A、22B、あるいは駆動ワイヤ24A、24Bに関連することが明らかな部材や部位の名称においても、対応関係を明示する場合にはそれぞれの符号に添字A、Bを付すことにする。これらは特に断らない限り、互いに略同じ(同じ場合を含む)の構成を有している。また、区別を明示する必要がない場合や総称する場合には、添字A、Bを省略する。
【0041】
軸状部21は、関節22Bによって連結された軸状部21C、21Bと、関節22Aによって軸状部21Bと連結された軸状部21Aとを有する。
このため、軸状部21Cは、マニピュレータ処置具20において最も基端側の軸状部21になっており、関節22Bが接続された端部と反対側の端部が筒状部23の先端に固定されている。
軸状部21Aは、マニピュレータ処置具20において最も先端側の軸状部21になっており、関節22Aと反対側の端部である先端に、把持部26が固定されている。
軸状部21Bの両端部には、関節22B、22Aが連結されている。
以下では、このような軸状部21C、関節22B、軸状部21B、関節22A、軸状部21A、および把持部26からなる連結体を、先端屈曲部25と称する。
【0042】
把持部26は、例えば、処置具や組織等を保持するための一対の把持部材26a、26bと、把持部材26a、26bを回動可能に支持する回動軸26cとを有している。把持部材26a、26bは、マスターアーム500a、500bの操作に応じて回動軸26cを中心として回動されて開閉動作する。
把持部26の駆動力の伝達手段は、特に限定されず、例えば、図示略の駆動ワイヤによって把持部材26a、26bに連結した図示略のリンクを駆動するなどの手段が可能である。本実施形態では、一例として、駆動ワイヤ24と同様な駆動ワイヤによって駆動される。
把持部26は、
図3に示すように、被把持物を把持することなく閉じている場合には、連結された軸状部21の外形よりも突出しない大きさになっている。
【0043】
このような構成により、先端屈曲部25は、処置具チャンネル16および貫通孔部12の内部に挿入して、進退可能な軸状体になっている。
【0044】
筒状部23は、例えば、樹脂チューブなどの軟性の筒状部材で構成され、その内部に、駆動ワイヤ24A、24Bなどの挿通物が挿通されている。
駆動ワイヤ24A、24Bは、筒状部23の基端部から先端のプーリの近傍までの間では、両端部の位置が固定されたシース27の内部にそれぞれ挿通されている。
各シース27は、各駆動ワイヤ24と略同径の内径を有する密巻コイルなどによって形成され、これにより、外力を受けて湾曲しても、ほとんど長さが変化しないようになっている。
【0045】
筒状部23における駆動ワイヤ24以外の挿通物としては、図示は省略するが、例えば、把持部26を駆動するための操作ワイヤや、観察部15に接続する電気配線や光ファイバなどの例を挙げることができる。
【0046】
駆動ユニット30は、駆動ワイヤ24を駆動して関節22に、図示略の駆動ワイヤを駆動して把持部26に、それぞれ駆動力を供給する装置部分である。
駆動ユニット30は、筒状部23の基端部に設けられた基端部筐体31の内部に、関節22を駆動する駆動ワイヤ24ごとに設けられた複数の駆動モータ34(モータ)を備える。すなわち、
図3では、駆動モータ34として、駆動モータ34Bのみが示されているが、本実施形態では、
図4に示すように、駆動モータ34は、駆動ワイヤ24A、24Bをそれぞれ駆動する駆動モータ34A、34Bを有している。
また、特に図示しないが、駆動ユニット30はスレーブアーム200dの内部の適宜位置に配置されている。
【0047】
図3に示すように、駆動モータ34Bの出力軸34Baは、駆動ワイヤ24Bが巻き回された駆動プーリ33Bに連結されており、駆動モータ34Bが回転駆動されると、駆動プーリ33Bが回転して、駆動ワイヤ24Bを回転方向に牽引できるようになっている。
駆動モータ34Bは、DCモータで構成され、出力軸34Baの回転位置を検出するエンコーダ34Bbを有している。
【0048】
以上、
図3を参照して、駆動ワイヤ24Bを駆動する駆動モータ34Bおよびこれに関連する部材について説明したが、同様の説明は、
図3には図示されていない、駆動モータ34A、出力軸34Aa、駆動プーリ33A、エンコーダ34Ab(
図4参照)にも適用される。
【0049】
このような構成の医療用マニピュレータ1は、各装置部分の動作が、スレーブ制御部400内に設けられた複数の制御ユニットによって制御される。これらの制御ユニットが行う制御方法は、モータの制御に関してはいずれも共通である。
そこで、以下では、一例として、
図4を参照して、各駆動モータ34の動作を制御する制御ユニット36の構成について説明する。
【0050】
図4に示すように、制御ユニット36は、モータドライバ100A、100B、電流検出部101、PWM出力検出部102、回転検出部103、駆動信号生成部104、出力タイミング設定部105、駆動条件設定部106、温度上昇解析部107、および動作制御部108を備える。
制御ユニット36の制御動作は、各駆動モータ34を試し駆動する場合と本駆動する場合とでは異なる。ここで、本駆動とは、入力処理部700からの操作信号に基づいて各駆動モータ34を駆動する駆動を意味し、試し駆動とは、本駆動における後述の駆動条件を設定するための情報取得を目的として、本駆動に先行して行われる駆動である。
本駆動は、目標値に向かって各駆動モータ34が回転するように行われるのに対して、試し駆動は、駆動条件を設定する情報を取得する短時間の間に行われ、各駆動モータ34は、回転しないか、回転するとしても回転量はごくわずかである。
【0051】
モータドライバ100A(100B)は、出力タイミング設定部105を介して印加される駆動信号に基づいて、駆動モータ34A(34B)を回転させるものである。
モータドライバ100A(100B)に印加される駆動信号としては、回転方向を指定する回転方向制御信号と、回転速度を制御するためパルス幅変調されたPWM信号と、回転にブレーキを掛けるブレーキ信号と、を挙げることができる。
【0052】
電流検出部101は、駆動モータ34A、34Bの消費電流を検出するため、モータドライバ100A、100Bから駆動モータ34A、34Bに供給される電流値をそれぞれ検出するものである。
電流検出部101によって検出された電流値の情報は、駆動条件設定部106、温度上昇解析部107に送出され、それぞれが行う演算に使用される。
【0053】
PWM出力検出部102は、モータドライバ100A、100Bから駆動モータ34A、34Bに出力されるPWM信号を監視して、出力されたPWM信号のデューティ比と、PWM信号による平均印加電圧を検出するものである。
PWM出力検出部102によって検出されたデューティ比の情報は、駆動条件設定部106に送出され、後述する試し駆動時にPWM出力補正値の算出に用いられる。
PWM出力検出部102によって検出された平均印加電圧の情報は、温度上昇解析部107に送出されて、後述する試し駆動時の温度上昇解析部107が行う温度上昇解析に用いられる。
【0054】
回転検出部103は、駆動モータ34A、34Bにおけるエンコーダ34Ab、34Bbの出力を取得して、各駆動モータ34の回転位置、および回転速度を検出するものである。
回転検出部103によって検出された回転位置の情報は、動作制御部108の回転制御に用いられる。
回転検出部103によって検出された回転速度の情報は、温度上昇解析部107に送出されて、温度上昇解析部107が行う温度上昇解析に用いられる。
【0055】
駆動信号生成部104は、各駆動モータ34の動作制御を行うための駆動信号を、動作制御部108、駆動条件設定部106から送出される制御情報に応じて生成するものである。
【0056】
出力タイミング設定部105は、駆動信号生成部104が生成した駆動信号を、モータドライバ100A、100Bに出力するタイミングを、駆動条件設定部106から送出される制御情報に応じて、それぞれ独立に設定するものである。
【0057】
駆動条件設定部106は、動作制御部108から送出される情報に基づいて、試し駆動および本駆動における駆動モータ34A、34Bの駆動条件を設定するものである。
駆動条件設定部106は、試し駆動を行う前に、動作制御部108からの動作指令値の情報に基づいて試し駆動の駆動条件を設定する。
また、駆動条件設定部106は、本駆動を行う直前の試し駆動時に、温度上昇解析部107から取得する温度上昇に対応する情報と、電流検出部101からの電流変化に関する情報と、から、動作指令値に基づく本駆動時における駆動モータ34A、34Bの駆動条件を設定する。
駆動条件設定部106は、駆動条件として、駆動信号生成部104に対しては、PWM信号のデューティ比を設定し、出力タイミング設定部105に対しては、駆動信号生成部104で生成されるPWM信号をモータドライバ100A、100Bに出力する出力タイミングを設定する。
駆動条件設定部106は、動作制御部108と通信可能に接続されており、動作制御部108からの制御信号に基づいて動作する。
駆動条件の具体的な設定方法については、後述の動作説明の中で説明する。
【0058】
温度上昇解析部107は、後述する試し駆動時に、電流検出部101、PWM出力検出部102、回転検出部103から、駆動モータ34A、34Bごとの、消費電流、平均印加電圧、回転速度の情報を取得する。そして、駆動モータ34A、34Bごとの温度上昇に基づく巻線抵抗の変化を評価して、この評価値を駆動条件設定部106に送出する。
温度上昇解析部107は、動作制御部108と通信可能に接続されており、動作制御部108からの制御信号に基づいて動作する。
巻線抵抗の変化の評価方法については、後述の動作説明の中で説明する。
【0059】
動作制御部108は、一定周期で入力処理部700からの操作信号を監視し、操作信号が送出された場合には、操作信号を解析して、駆動モータ34A、34Bごとの必要な動作量を算出する。
そして、この動作量を実現するため、回転検出部103から送出される各駆動モータ34の回転位置の情報をフィードバックしながら、それぞれの動作指令値を生成する。
この動作指令値は、駆動条件設定部106、温度上昇解析部107に送出されて、駆動条件の設定に用いられるとともに、駆動信号生成部104に送出されて、駆動信号生成部104によって動作指令値に基づく駆動信号が生成される。
ただし、動作制御部108は、入力処理部700から操作信号を受信すると、この制御信号に基づく本駆動の動作制御を行う前に、本駆動時の駆動条件を設定するための情報を取得するため、予め決められた期間の間に、試し駆動を実行する。
動作制御部108が行う制御動作の詳細については、後述の動作説明の中で説明する。
【0060】
このような制御ユニット36の装置構成は、本実施形態では、適宜のハードウェアと、CPU、メモリ、入出力インターフェース、外部記憶装置などからなるコンピュータとの組み合わせからなる。上記機能構成ごとの制御機能は、ハードウェアまたはコンピュータで実行される制御プログラムによって実現される。
【0061】
次に、医療用マニピュレータシステムMにおけるマニピュレータ処置具20の動作について、本実施形態の医療用マニピュレータの制御方法を中心として説明する。
図5は、本発明の実施形態の医療用マニピュレータの制御方法のフローを示すフローチャートである。
図6は、本発明の実施形態の医療用マニピュレータの制御方法における駆動条件算出式の一例を示す模式的なグラフである。
図6の縦軸は回転速度n、横軸は電流Iを示す。
【0062】
医療用マニピュレータシステムMにおいてマニピュレータ処置具20を用いて処置を行うには、まず内視鏡マニピュレータ11を用いて、処置対象部位にマニピュレータ処置具20の先端部分を患者Pの体内に挿入し、処置対象部位の近くまで進める。
次に、
図2に示すように、マニピュレータ処置具20の先端屈曲部25を先端部11Aの前方に繰り出してから、先端屈曲部25の原点出しを行う。
これにより、マニピュレータ処置具20が操作可能な状態になる。操作者Opは、撮像機構13で撮像され、操作者用ディスプレイ900aに表示される処置対象および先端屈曲部25の画像を見ながら、マスターアーム500a、500b等を操作して、必要な手技を行う。
【0063】
内視鏡マニピュレータ11は、体内の挿入経路に応じて一般には湾曲しているため、内視鏡マニピュレータ11の内部の処置具チャンネル16も湾曲している。
このため、処置具チャンネル16に挿通されるマニピュレータ処置具20の筒状部23も、処置具チャンネル16と同様に湾曲している。これにより、筒状部23内の各シース27も種々の形状に湾曲しており、各シース27に挿通される駆動ワイヤに湾曲形状に応じた駆動負荷が発生する。このような駆動負荷により、マニピュレータ処置具20には、動作遅れや動作量のバラツキが発生するおそれがある。
医療用マニピュレータにおいて、動作遅れや動作量のバラツキがあると、手技のタイミングが狂ったり、予期できない動きが発生したりして、円滑な手技が行えなくなる。
このような駆動負荷は、例えば、駆動ワイヤの張力を測定するなどして、動力伝達系の実際の負荷を検出し、負荷量に応じて動作指令値を変更すれば、ある程度は、補正することができる。
しかし、負荷量の大きさが個々の駆動モータに及ぼす影響は、駆動モータのモータ特性の個体差や、動作時の駆動モータの発熱などによっても異なる。このため、駆動モータによらず動作指令値に補正を入れても操作性を改善できない場合がある。
【0064】
本実施形態の医療用マニピュレータの制御方法では、動作指令値に基づいて駆動モータ34A、34Bの本駆動を行う前に、試し駆動を行って負荷量を評価し、負荷量に対して適切な駆動条件を設定してから、本駆動を行う。
本実施形態の制御方法は、入力処理部700から駆動を行う操作信号が受信されるごとに、
図5に示すステップS1〜S9を、
図5に示すフローにしたがって実行する方法である。
医療用マニピュレータ1では、入力処理部700が、一定周期、例えば、1msごとに操作部600およびマスターアーム500a、500bの操作入力を監視する。
入力処理部700は、検出された操作入力が、マニピュレータ処置具20の先端屈曲部25を駆動する操作入力であることを解析すると、マニピュレータ処置具20の動作制御部108に操作信号を送出する。
【0065】
ステップS1は、駆動モータごとに動作指令値を生成するステップである。
操作者Opが、操作部600によって操作対象をスレーブアーム200dにおけるマニピュレータ処置具20に切り替えてから、マスターアーム500a、500bを操作すると、入力処理部700によって操作部600およびマスターアーム500a、500bの操作信号が解析される。
入力処理部700が解析した操作信号は、マニピュレータ処置具20が行うべき動作の情報として、制御ユニット36の動作制御部108に送出される。例えば、マニピュレータ処置具20の把持部26が移動すべき位置や移動後の姿勢などの情報が送出される。
動作制御部108では、このような把持部26の位置、姿勢を実現するために必要な先端屈曲部25における関節22A、22Bの駆動量を算出し、この駆動量を実現するための駆動モータ34A、34Bの回転方向、回転量、回転速度を表す動作指令値を生成する。
以上で、ステップS1が終了する。
【0066】
次に、ステップS2を行う。本ステップは、動作指令値に基づいて、試し駆動の駆動条件を設定するステップである。
本実施形態における試し駆動の目的は、主に3つある。
第1の目的は、各駆動モータ34に出力されるPWM信号のデューティ比の誤差を補正するPWM出力補正値を求めることである。
第2の目的は、各駆動モータ34の温度上昇に基づく巻線抵抗を求め、補正できるようにすることである。
第3の目的は、本駆動時に必要な最小電流量を評価することである。
いずれの目的でも、回転方向は、動作指令値の回転方向と一致させる。
【0067】
第1および第2の目的で行う試し駆動(以下、第1の試し駆動と称する)は、動作指令値に回転速度に対応するデフォルトのデューティ比に固定して、予め決められた一定時間だけ試し駆動を行う。ここで、一定時間は、後述するステップS3、S4で必要なデータが取得可能な範囲で、できるだけ短い時間が設定される。例えば、20μs程度に設定される。
第3の目的で行う試し駆動(以下、第2の試し駆動と称する)は、デューティ比を0%から漸次増大して駆動するため、ディーティ比を0%から100%まで増加させる際の時間が設定される。この時間設定は、動作指令値と無関係に設定することが可能であり、例えば、200μs程度に設定される。
いずれの試し駆動でも、駆動信号を出力するタイミングは、駆動信号生成部104に対して駆動条件が設定された後、特に時間差を設けず、ただちに、モータドライバ100A、100Bに出力するようなタイミングである。
【0068】
動作制御部108から駆動条件設定部106に、試し駆動の駆動条件を設定する制御信号と、動作指令値とが送出されると、駆動条件設定部106は、以上のような駆動条件を設定し、駆動信号生成部104および出力タイミング設定部105に設定する。
これによりステップS2が終了する。
【0069】
次に、ステップS3を行う。本ステップは、第1の試し駆動を行い、駆動モータ34ごとのPWM出力補正値を算出して、その値を、駆動モータ34ごとに記憶するステップである。
ステップS2が終了すると、動作制御部108は、駆動信号生成部104に、駆動信号の生成を開始させる制御信号を送出する。これにより、駆動信号生成部104は、駆動条件設定部106が設定した駆動条件に基づいて、PWM信号を生成する。このPWM信号は、出力タイミング設定部105に設定されたタイミングで、モータドライバ100A、100Bに出力される。これにより、駆動モータ34A、34Bの第1の試し駆動が開始される。
【0070】
モータドライバ100A、100Bから駆動モータ34A、34Bに出力されるPWM信号は、PWM出力検出部102によって監視される。PWM出力検出部102は、出力されたデューティ比の情報を駆動条件設定部106に送出する。
駆動条件設定部106は、出力したPWM信号のデューティ比D0と、PWM出力検出部102から送出されたデューティ比Doutとの差ΔD=Dout−D0を、駆動モータ34A、34Bごとに算出して、それぞれPWM出力補正値ΔD
A、ΔD
Bとして記憶する。
このようなデューティ比の変化は、例えば、スイッチング部品等の信号伝送遅れなど、ハードウェア固有の原因によって生じるため、一般に、ΔDは、正値をとり、動作指令値に比べて過大なデューティ比になっている。
このため、PWM出力補正値ΔD
A、ΔD
Bは、本駆動時において動作指令値から算出したデューティ比を補正するために用いられる。
これにより、ハードウェア固有のPWM信号の変化が補正されるため、動作指令値により忠実な駆動が可能となる。また、デューティ比の増大によって平均印加電圧が上昇することによる発熱も抑制することができる。
以上で、ステップS3が終了する。
【0071】
なお、ΔDの値が大きすぎる場合には、ハードウェアに異常が生じている可能性があるため、適宜の閾値を設けておき、閾値を超えた場合には、故障と判断して、操作者用ディスプレイ900a、助手用ディスプレイ900bに警告メッセージを表示して、マニピュレータ処置具20の動作を停止させることが可能である。
また、駆動条件設定部106は、後述する本駆動時においても、Dout−D0を監視し、Dout−D0が予め決められた許容値を超えた場合には、故障と判断して、操作者用ディスプレイ900a、助手用ディスプレイ900bに警告メッセージを表示して、マニピュレータ処置具20の動作を停止させることが可能である。
【0072】
次に、ステップS4を行う。本ステップは、第1の試し駆動を行い、駆動モータ34ごとの温度上昇に基づく巻線抵抗の変化を検出するステップである。
本ステップは、第1の試し駆動が開始され、第1の試し駆動による温度上昇の測定が可能なタイミングであれば、適宜のタイミングで行うことができる。したがって、本ステップをステップS3の後で行うのは、一例であって、ステップS3の後で行うことは必須ではない。例えば、ステップS3に先行して、または、ステップS3と並行して行うことが可能である。
【0073】
DCモータにおいて、回転速度nは、次式(1)のように表されるため、
図6のように横軸を電流I、縦軸を回転速度nとすると、巻線抵抗R、平均印加電圧DUTYが一定の条件の下では、電流Iに対する回転速度nの関係は、直線で表される。
【0074】
n=k
n・(DUTY−R・I) ・・・(1)
【0075】
ここで、比例定数k
nは、モータごとに固有の値を取る。例えば、駆動モータ34A、34Bの比例定数は、それぞれ、k
nA、k
nBである。
巻線抵抗Rは、温度Tの関数R(T)として、例えば、次式(2)のように表される。
【0076】
R(T)=R
25・{1+α・(T−T
25)} ・・・(2)
【0077】
ここで、R
25は、温度T
25=25(℃)におけるモータの巻線抵抗であり、αは、巻線材料の線膨張係数である。
例えば、25℃における上記式(1)を、
図6における直線190で表すと、モータの温度上昇によって、温度がT(ただし、T>T
25)になった場合の上記式(1)は、巻線抵抗がR(T)(ただし、R(T)>R
25)になるため、
図6において、直線191のように表される。
すなわち、駆動条件が変化しないと、温度上昇するにつれて、回転速度nが低下することになる。したがって、動作指令値の回転速度に比べて低速の動作になるため、駆動モータ34の応答時間が低下する。また、駆動モータ34ごとに温度上昇が異なると、応答時間の低下量が異なるため、各駆動モータ34の応答時間にバラツキが生じる結果、各関節22の協調動作が乱れることになる。
このような関節22の応答時間の低下、バラツキは、マニピュレータ処置具20の操作性を損ねるため、外科手術などの手技の支障となる可能性がある。
【0078】
そこで、本実施形態では、温度上昇に基づく巻線抵抗の変化に応じて、本駆動の駆動条件を変更する。
このため、本ステップでは、温度上昇解析部107は、次式(3)によって、基づいて、駆動モータ34A、34Bごとの温度上昇に基づく巻線抵抗の変化を評価して、駆動モータ34A、34Bごとに巻線抵抗R
Tを算出する。
【0079】
R
T={DUTY
T−(n
T/k
n)}/I
T ・・・(3)
【0080】
ここで、DUTY
Tは、PWM出力検出部102から送出された第1の試し駆動時の平均印加電圧である。n
Tは、回転検出部103から送出された第1の試し駆動時の回転速度である。I
Tは、電流検出部101から送出された第1の試し駆動時の消費電流である。
温度上昇解析部107によって算出された巻線抵抗R
Tは、駆動モータ34A、34Bごとに、それぞれ巻線抵抗R
TA、R
TB(巻線抵抗の評価値)として、駆動条件設定部106に送出され、駆動条件設定部106に記憶される。
以上で、ステップS4が終了する。
【0081】
次に、ステップS5を行う。本ステップは、温度上昇に基づく巻線抵抗の補正を入れた駆動条件算出式を設定するステップである。
駆動条件設定部106は、温度上昇解析部107から送出されたR
Tを用いて、駆動条件算出式として、次式(4)を設定する。
【0082】
n=k
n・(DUTY−R
T・I) ・・・(4)
【0083】
上記式(4)は、駆動条件設定部106が与えられた変数に基づいて、未知数を算出できる形態に設定されていれば、数式として、設定してもよいし、データテーブルとして設定してもよい。
以下では、一例として、上記式(4)が、未知数を算出する数式として記憶されているものとして説明する。
駆動条件算出式の設定が終了したら、第1の試し駆動を終了する。
これにより、ステップS5が終了する。
【0084】
次に、ステップS6を行う。本ステップは、PWM信号のデューティ比を増加させつつ、第2の試し駆動を行い、駆動条件算出式に基づいて、駆動可能な最小電流値を設定するステップである。
動作制御部108は、第2の試し駆動を開始する制御信号を駆動条件設定部106に送出する。
駆動条件設定部106では、PWM信号のデューティ比が0%から順次増大して、各駆動モータ34を駆動する駆動条件を設定する。
駆動条件の設定が済んだら、動作制御部108は、駆動信号生成部104に、駆動信号の生成を開始させる制御信号を送出する。これにより、駆動信号生成部104は、駆動条件設定部106が設定した駆動条件に基づいて、PWM信号等の駆動信号を生成する。この駆動信号は、出力タイミング設定部105に設定されたタイミングで、モータドライバ100A、100Bに出力される。これにより、駆動モータ34A、34Bの第2の試し駆動が開始される。
【0085】
第2の試し駆動を開始し、デューティ比が増大して各駆動モータ34の負荷量を超える電力が供給されると、各駆動モータ34が回転を開始する。
駆動条件設定部106は、電流検出部101から送出される電流量を監視することにより、各駆動モータ34の回転の開始を検出する。
このため、駆動条件設定部106には、各駆動モータ34が回転を開始したことを電流量の変化から検出するために予め決められた電流量の変化の閾値が記憶されている。
駆動モータ34の回転が始まると、慣性によって電流量が減少するため、電流の変化率を監視することで、回転の開始を検出することができる。
【0086】
駆動条件設定部106は、電流量の変化率の大きさが閾値以上になった場合に、動作制御部108に通知し、それまでに監視していた電流量の最大値を回転開始電流とし、この回転開始電流に所定の係数を乗じた電流量を最小電流量I
min(駆動電流)として算出する。所定の係数としては、測定誤差による余裕分を考慮して、1以上の適宜の係数を予め設定しておく。
駆動条件設定部106から駆動モータ34が回転を開始したことを通知された動作制御部108は、駆動信号生成部104に第2の試し駆動を停止する制御信号を送出する。
このようにして、第2の試し駆動が終了するとともに、最小電流量I
minが駆動モータ34ごとに、最小電流量I
minA、I
minBとして算出される。
以上でステップS6が終了する。
【0087】
次に、ステップS7を行う。本ステップは、ステップS6で算出された最小電流量I
minを与える最小デューティ比D
minの情報に基づいて、本駆動時のデューティ比D
OPを設定するステップである。
具体的には、駆動条件設定部106が、次式(5)に基づいて、本駆動時のデューティ比D
OPを、駆動信号生成部104に設定する。
【0088】
D
OP={(n
OP/k
n)−R
T・I
min}/E−ΔD ・・・(5)
【0089】
ここで、n
OPは、本駆動の動作指令値における回転速度である。Eは、PWM信号を生成する電圧である。
駆動条件として、上記式(5)の、n
OP、R
T、I
min、ΔDにそれぞれ、n
OPA(n
OPB)、R
TA(R
TB)、I
minA(I
minB)、ΔD
A(ΔD
B)を代入して算出されるデューティ比D
OPA(D
OPB)を設定することで、試し駆動で検出された巻線抵抗の変化および信号遅れによるデューティ比の誤差が補正される。このため、PWM信号が発生すると、動作指令値の回転速度n
OPA、n
OPBに基づく本駆動を開始することができる。
以上で、ステップS7が終了する。
【0090】
次に、ステップS8を行う。本ステップは、ステップS6で算出した最小電流量I
minの大きさに応じて、各駆動モータ34の出力タイミングを設定するステップである。
ステップS6で算出された駆動モータ34A、34Bの第2の試し駆動における回転開始時の消費電流である最小電流量I
minA、I
minBは、駆動モータ34A、34Bの負荷量を表している。このように負荷量が異なると、同時に回転を開始しても一定回転速度に達するまでの加速時間が異なるため、その分だけ目標の駆動が終了するまでの時間差が生じることになる。
本実施形態では、このような原因による駆動時間のバラツキを抑制するため、最小電流量I
minA、I
minBの大きい方から先にPWM信号の出力を開始し、最小電流量I
minA、I
minBの小さい方の出力タイミングを遅らせる。
出力タイミングの遅延量は、予め、最小電流値に対応する負荷量と加速時間の関係を実験などによって求めておき、駆動条件設定部106に実験式やデータテーブルなどとして記憶しておく。
駆動条件設定部106は、例えば、I
minA>I
minBの場合、モータドライバ100Bへの出力タイミングの遅延量Δtを、予め設定された関数fに基づいて、Δt=f(I
minA−I
minB)として算出して、出力タイミング設定部105に設定する。
以上で、ステップS8が終了する。
【0091】
次に、ステップS9を行う。本ステップは、第1および第2の試し駆動により設定された駆動条件に基づいて、本駆動を行うステップである。
動作制御部108は、駆動信号生成部104に、駆動信号の生成を開始させる制御信号を送出する。これにより、駆動信号生成部104は、駆動条件設定部106が設定した本駆動の駆動条件に基づいて、PWM信号を含む駆動信号を生成する。このPWM信号は、出力タイミング設定部105に設定された本駆動の出力タイミングで、モータドライバ100A、100Bに出力される。これにより、駆動モータ34A、34Bの本駆動が開始される。
これにより、駆動モータ34A、34Bが、動作制御部108が算出した動作指令値に基づいて、回転し、先端屈曲部25の関節22A、22Bが、マスターアーム500a、500bの操作に基づく位置、姿勢となるように駆動される。
以上で、ステップS9が終了する。
このようにして、動作制御部108に操作信号が送信されるごとに、このような試し駆動と本駆動とが繰り返されていく。
【0092】
上記ステップS1〜S8は、操作入力が発生した際に、試し駆動を行って、モータの温度上昇に基づく巻線抵抗の変化を評価し、評価された巻線抵抗の変化に基づいてモータの駆動条件を設定する第1のステップを構成している。
上記ステップS9は、第1のステップで設定されたモータの駆動条件に基づいて、操作入力に対応する駆動を行う第2のステップを構成している。
【0093】
以上、マニピュレータ処置具20の先端屈曲部25の制御方法について説明したが、マニピュレータ処置具20の把持部26や、医療用マニピュレータ1の湾曲部11Bについても同様に制御方法で制御される。
【0094】
本実施形態の医療用マニピュレータの制御方法によれば、操作入力が発生した際に、試し駆動を行って温度上昇に基づくモータの巻線抵抗の変化を評価し、評価された巻線抵抗の変化に基づいてモータの駆動条件を設定するため、負荷量が変化してもモータを正確かつ迅速に動作させることができる。
すなわち、操作信号が送信されるごとに、試し駆動を行って、負荷量や温度上昇に基づく巻線抵抗の変化を評価するため、手技の実行中に負荷量が変化してもモータを正確かつ迅速に動作させることができる。
また、モータが複数設けられている場合に、モータごとに試し駆動を行って、負荷量や温度上昇に基づく巻線抵抗の変化を評価するため、例えば、駆動方向など違いにより、モータごとに負荷量が変化してもモータを正確かつ迅速に動作させることができる。
【0095】
特に、本実施形態では、第1の試し駆動において、PWM信号の出力誤差を検出して、PWM出力補正値ΔDを算出して、駆動条件におけるデューティ比を補正している。このため、モータや信号回路などのハードウェアの個体差による駆動条件のバラツキを補正することができる。
特に、モータの駆動周波数が、例えば、500kHzといった高い周波数の場合には、信号出力遅延による誤差の影響で相対的に大きなデューティ比誤差が大きくなる。
例えば、駆動周波数が50kHzの場合と、500kHzの場合とでは、デューティ比が10%で、ハードウェアによる信号出力遅延による誤差が100ns生じたとする。この場合、50kHzでは、デューティ比誤差が5%(=100×100ns/2μs)であるのに対して、500kHzでは、デューティ比誤差が50%(=100×100ns/0.2μs)になる。このため、500kHzでは、デューティ比が10%から15%にもなってしまうが、本実施形態では、このような誤差の発生を防止することができる。
【0096】
なお、上記実施形態の説明では、試し駆動においてPWM出力補正値を算出する場合の例で説明したが、例えば、モータの駆動周波数が低い場合やハードウェアの誤差が小さい場合には、PWM出力補正値による補正を省略することも可能である。
【0097】
上記実施形態の説明では、医療用マニピュレータがモータとして、2個のモータである駆動モータ34A、34Bを備える場合の例で説明したが、これは一例であって、モータの個数はこれには限定されない。例えば、医療用マニピュレータは3個以上のモータを備えることが可能である。
また、モータは1個のみでもよい。ただし、この場合、上記ステップS8は削除する。
【0098】
上記実施形態の説明では、温度上昇を測定することなく、巻線抵抗の変化を求めたが、温度センサなどを用いて、モータの温度測定を行い、上記式(2)を用いて、巻線抵抗R
Tを算出することも可能である。
【0099】
上記に説明したすべての構成要素は、本発明の技術的思想の範囲で適宜組み合わせたり、削除したりして実施することができる。