図1ないし図39は本発明の実施例1に係わり、図1は電動湾曲内視鏡装置の構成を示す構成図、図2は図1の画像処理装置のフロントパネルの構成を示す図、図3は図1の湾曲制御部の構成を示す図、図4は図1の湾曲制御部の制御部の構成を示す図、図5は図4のFPGAの論理ブロックの構成を示す図、図6は図5のモータコントローラの制御処理部の構成を示す図、図7は図5のモータコントローラのサーボ異常検出部の構成を示す図、図8は図5のモータコントローラにおけるサーボ制御を説明する説明図、図9は図5のモータコントローラにおけるサーボ制御の第1の変形例を説明する説明図、図10は図4のFPGAのコンフィギュレーションの変形例を説明する説明図、図11は図5のモータコントローラにおけるサーボ制御の第2の変形例を説明する説明図、図12は図5のFPGAブロック異常監視部を構成する論理要素ブロックを説明する説明図、図13は図12の論理要素ブロックを用いた論理判定ブロックを説明する第1の説明図、図14は図12の論理要素ブロックを用いた論理判定ブロックを説明する第2の説明図、図15は図5のFPGAにおける処理遷移を説明する図、図16は図5のFPGAにおける処理を説明するフローチャート、図17は図16のイニシャルモード処理を説明するフローチャート、図18は図16のメンテナンスモード処理を説明するフローチャート、図19は図3のクラッチ接続時の湾曲制御部に対するリモコン操作部の構成を示す図、図20は図3のクラッチ切断時の湾曲制御部に対するリモコン操作部の構成を示す図、図21は図3のクラッチ再接続時の湾曲制御部に対するリモコン操作部の構成を示す図、図22は図16のキャリブレーションモード処理を説明するフローチャート、図23は図22の位置合わせ処理を説明するフローチャート、図24は図22の位置合わせ処理を説明する第1の図、図25は図22の位置合わせ処理を説明する第2の図、図26は図22の位置合わせ処理を説明する第3の図、図27は図22の位置合わせ処理を説明する第4の図、図28は図22の位置合わせ処理を説明する第5の図、図29は図22の位置合わせ処理を説明する第6の図、図30は図16のキャリブレーションモード処理を信号制御的見地から説明する図、図31は図3のクラッチ接続時の湾曲制御部に対するリモコン操作部の変形例の構成を示す図、図32は図30の構成での位置合わせ処理を説明するフローチャート、図33は図31の構成におけるキャリブレーションモード処理を信号制御的見地から説明する第1の図、図34は図31の構成におけるキャリブレーションモード処理を信号制御的見地から説明する第2の図、図35は図31の構成におけるキャリブレーションモード処理を信号制御的見地から説明する第3の図、図36は図31の構成におけるキャリブレーションモード処理を信号制御的見地から説明する第4の図、図37は図31で示した内視鏡湾曲ワイヤののテンションを検知する手段に代わるテンションデータの生成を説明する図、図38は図16の動作モード処理を説明するフローチャート、図39は図16の動作モード処理を説明するタイミング図である。
図1に示すように本実施例の電動湾曲内視鏡装置1は、内視鏡挿入部(以下、挿入部と略記する)9をの先端硬性部に例えば撮像素子(不図示)を内蔵し、挿入部9の湾曲部11が湾曲駆動手段を構成する湾曲ワイヤ(後述)を電動で牽引することによって湾曲動作する電動湾曲内視鏡(以下、内視鏡と略記する)2と、前記湾曲部11の駆動操作等を行うリモートコントロール操作部(以下、リモコン操作部と略記する)7と、ユニバーサルケーブル12を介して伝送された画像信号を映像信号に生成する画像処理装置4と、図示しない照明光学系にユニバーサルケーブル12に内蔵されたライトガイドファイバー束(不図示)を介して照明光を供給する光源装置3と、前記画像処理装置4で生成された映像信号が出力されて内視鏡画像を表示する表示装置であるモニタ6と、送気、送水管路及び吸引を行うポンプユニット14とで主に構成されている。
光源装置3、画像処理装置4及びポンプユニット14はカート15に搭載されており、ポンプユニット14は、送気、送水管路及び吸引の流量調整機構を備えた流量制御カセット14aを着脱自在に設置されている。また、カート15からは内視鏡2を保持/固定する内視鏡固定アーム13が設けられており、内視鏡固定アーム13の先端に内視鏡2の基端把時部10が着脱自在に保持/固定されるようになっている。
内視鏡2の基端把時部10には、流量制御カセット14aからの吸引チューブが接続可能な鉗子栓10aが配置されると共に、ユニバーサルケーブル12及び流量制御カセット14aからの送気送水チューブが接続されるようになっている。前記挿入部9内の図示しない例えば送気管路、送水管路、吸引管路に送気送水チューブ等及び吸引チューブが連結される。
また、基端把時部10内には、湾曲部11を電動湾曲駆動するためのモータ等を制御する湾曲制御部10bが内蔵されており、リモコン操作部7が該湾曲制御部10bとケーブル7aを介して接続されるようになっている。なお、リモコン操作部7は、画像処理装置4ともケーブル7aを介して接続可能であり、ユニバーサルケーブル12を介して湾曲制御部10bと接続することできるようになっている。
リモコン操作部7は、後述する湾曲部11を電動湾曲操作を行う操作入力デバイスである、例えば指示手段としてのジョイスティック701及び、図示はしないが、送気、送水及び吸引の操作入力スイッチ、画像処理装置4でのフリーズ、レリーズ等のリモートスイッチからなるスコープスイッチを備えている。
画像処理装置4はポンプユニット14と接続可能となっており、画像処理装置4のフロントパネル4aは、図2に示すように、パワースイッチ20、電動湾曲内視鏡装置1の初期化を指示し初期化完了を告知するLED機能を有する初期化ボタン23、湾曲部11の電動湾曲のキャリブレーションを告知するキャリブレーションLED部24、ポンプユニット14の送気、送水及び吸引の操作入力スイッチ群25、電動湾曲内視鏡装置1での検査が可能な状態を告知する検査可能LED26及び送気管路、送水管路、吸引管路の接続状態を表示する管路接続表示部27等を備えて構成されている。
図3に示すように、前記挿入部9内には前記湾曲制御部10bから延出して前記湾曲部11を湾曲操作する上下用の前記湾曲ワイヤ33及び図示しない左右用の湾曲ワイヤが挿通している。なお、以下の説明では上下用の湾曲ワイヤ33に関わる構成を説明し、この上下用の湾曲ワイヤ33と同様な構成である左右用の湾曲ワイヤに関わる構成は簡単のため不図示にして説明も省略する。
前記湾曲ワイヤ33の両端部は例えば図示しないチェーンに連結固定されており、このチェーンが湾曲駆動手段を構成する回動自在な上下用のスプロケット部34に噛合配置されている。このため、前記スプロケット部34が所定方向に回転することによって、前記チェーンに固定された湾曲ワイヤ33が牽引操作されて、前記湾曲部11が所定方向に湾曲動作するようになっている。
前記スプロケット部34は例えば湾曲制御部10b内に配設されている。このスプロケット部34には湾曲動力手段である例えば3相モータからなる上下用の湾曲モータ30の駆動力が、複数のギア31、32と駆動力伝達切断復元手段である例えば歯車同士の噛合状態を着脱する駆動力伝達手段としてのクラッチ機構部36とを備えている。そして、前記クラッチ機構部36によって、前記湾曲ワイヤ33に張力がかからない状態にすることにより、湾曲部11が外力によって自由に湾曲する湾曲フリー状態になる。
なお、湾曲駆動手段は、ギア31、32、湾曲ワイヤ33及びスプロケット部34より構成される。
前記クラッチ機構部36は、状態切換手段である切換操作レバー10c(図1参照)を駆動力伝達切断位置(以下、湾曲フリー指示位置と記載する)又は駆動力伝達復元位置(以下、アングル操作指示位置)に切換操作することによって、前記クラッチ機構部36が切断状態である駆動力伝達切断状態と、クラッチ機構部36が接続状態である駆動力伝達復元状態とに切り換わるようになっている。
つまり、前記切換操作レバー10cを切換操作して、このクラッチ機構部36を機械的に切断状態或いは接続状態に切り換えることによって、前記湾曲モータ30と前記スプロケット部34とは可逆的に着脱可能になっている。
前記スプロケット部34の回転量は、湾曲状態検出手段としてのポテンショメータ35で検出される。なお、符号30aは前記湾曲モータ30の回転量を検出する駆動状態検出手段としてのエンコーダである。また、符号38は、湾曲モータ30の温度を計測するサーミスタである。
湾曲制御部10bの制御部37には、リモコン操作部7、エンコーダ30a、ポテンショメータ35、クラッチ機構部36及びサーミスタ38が接続されている。
湾曲制御部10bは、図4に示すように、ユニバーサルケーブル12を介した電源ケーブル(不図示)が接続される電源コネクタ50と、リモコン操作部7のケーブル7aが接続される操作部コネクタ51が設けられている。電源コネクタ50は、制御部37内の制御用電源部52と、駆動用電源部53に接続されている。制御用電源部52はDC/DCコンバータ54を介して制御用の電力を各部に供給するようになっている。また、駆動用電源部53モータドライバ55が生成する3相正弦波電力のための駆動電力を供給する。
操作部コネクタ51は、湾曲制御部10b内のFPGA(フィールドプログラマブルゲートアレー)56と接続されている。このFPGA56は、EEPROM59に格納されているデータに基づきコンフィギュレーションを行い、内部セルを所望の論理ブロックに構築するようになっている。エンコーダ30a、ポテンショメータ35、クラッチ機構部36及びサーミスタ38は、FPGA56に接続されており、FPGA56により制御される。また、FPGA56は、モータドライバ55に対して3相正弦波電力の生成のためのデータを供給しており、これによりモータドライバ55は3相正弦波電力を湾曲モータ30に供給する。
FPGA56は、内部セルに一定以上の所定の異常が発生すると、WDT(ウォッチドグタイマ)57をクリアするWDT−CR信号を出力する。このWDT−CRによりWDT57からリセット信号がFPGA56に出力され、FPGA56がリセットされる。FPGA56は、リセット信号が入力されると、リセットIC58を起動させ、EEPROM59により再コンフィギュレーションを行い、内部セルの論理ブロックを再構築するようになっている。
FPGA56の論理ブロックは、図5に示すように、シリアル通信ユニット100、シリアル通信制御部101、EEPROMコントローラ102、異常信号処理部103、LEDコントローラ104、運転モードコントローラ105、 DPRAM106、クラッチ信号入力部107、治具基板入出力部108、RAM109、モータコントローラ110、モータ駆動波形生成部111、RL(左右)モータ電流F/B部112、UD(上下)モータ電流F/B部113、ポテンショコントロール部114、サーミスタコントロール部115、RLエンコーダコントロール部116、UDエンコーダコントロール部117、FPGAブロック異常監視部118とから構成される。また、モータコントローラ110は、計測処理部200、制御処理部201、サーボ異常検出部202及びサーボON/OFF制御部203の各論理ブロックを有して構成されている。
なお、図5においては、実線は通常の制御及びデータ信号の流れを示し、破線は論理ブロック異常信号、サーボ異常信号あるいは通信異常信号の流れを示している。
シリアル通信ユニット100は、リモコン操作部7と例えばLVDS等によりシリアル通信を行い、シリアル通信制御部101は、シリアル通信ユニット100を制御すると共に、モータコントローラ110と交信し、モータコントローラ110から受信したデータをDPRAM106に格納する。
EEPROMコントローラ102は、EEPROM59に格納されているプログラムに従って、FPGA56のコンフィギュレーションを実行する。
異常信号処理部103は、湾曲モータ30の電源電圧異常及び過電流を監視し、監視結果を運転モードコントローラ105に出力する。
クラッチ信号入力部107は、クラッチ機構部36から動力伝達切断状態あるいは駆動力伝達復元状態を示す状態信号を入力し、運転モードコントローラ105に出力する。
治具基板入出力部108は、デバッグ処理を行うための治具基板(不図示)とデータを送受する。また、LEDコントローラ104は治具基板のLEDを制御する。
運転モードコントローラ105は、クラッチ機構部36から動力伝達切断状態あるいは駆動力伝達復元状態、治具基板との接続状態に応じた運転モードをモータコントローラ110に出力する。なお、運転モードコントローラ105には、シリアル通信制御部101より通信異常信号が、またモータコントローラ110からはサーボ異常信号が入力されるようになっており、これらの異常信号に基づた運転モードをモータコントローラ110に出力するようになっている。
モータ駆動波形生成部111は、モータコントローラ110を介してRAM109に格納されている正弦波データを読み出し、3相正弦波データを生成し、RL(左右)モータドライバ及びUD(上下)モータドライバ55に該3相正弦波データを出力する。
RL(左右)モータ電流F/B部112は、RL(左右)モータよりU相電流値及びV相電流値をデジタル信号に変換してモータコントローラ110に出力する。同様に、UD(上下)モータ電流F/B部113は、UD(上下)モータ30よりU相電流値及びV相電流値をデジタル信号に変換してモータコントローラ110に出力する。
ポテンショコントロール部114は、RL(左右)スプロケット部及びUD(上下)スプロケット部34に接続されているポテンショメータ35の位置情報をデジタル信号に変換してモータコントローラ110に出力する。
サーミスタコントロール部115は、RL(左右)モータ及びUD(上下)モータ30に設けられているサーミスタ38により計測された温度データをデジタル信号に変換してモータコントローラ110に出力する。
RLエンコーダコントロール部116及びUDエンコーダコントロール部117は、RL(左右)モータ及びUD(上下)モータ30に設けられているエンコーダ30aのカウント値をモータコントローラ110に出力する。
そして、モータコントローラ110は、計測処理部200、制御処理部201、サーボ異常検出部202及びサーボON/OFF制御部203により、運転モードに基づいて、RL(左右)モータ及びUD(上下)モータ30をサーボ制御する。
また、FPGAブロック異常監視部118には、上記の各論理ブロックの論理ブロック異常信号、サーボ異常信号あるいは通信異常信号が入力されており、これらの異常信号に基づき、モータコントローラ110にTRG信号を出力すると共に、WDT57にWDT−CRを出力するようになっている。
ここで、モータコントローラ110の制御処理部201は、図6に示すように、位置制御ブロック201a、速度制御ブロック201b及びトルク制御ブロック201cを備えて構成され、また、サーボ異常検出部202は、図7に示すように、位置偏差異常判定ブロック202a、回転方向異常検出ブロック202b、異常速度検出ブロック202c及び過負荷異常検出ブロック202dを備えて構成されている。
次に、モータコントローラ110におけるサーボ制御を図8を用いて説明する。位置制御ブロック201aは、リモコン操作部7からの位置指令値とエンコーダ30aの出力値とを比較し、位置偏差が所定値を超えた場合、位置偏差異常判定ブロック202aはサーボ異常信号を出力する。
また、速度制御ブロック201bは、位置制御ブロック201aの出力と、エンコーダ30aの出力値の微分値(微分回路211にて実行)とを比較する。回転方向異常検出ブロック202bは、位置制御ブロック201aの出力とエンコーダ30aの出力値の微分値とにより回転方向の異常を検出するとサーボ異常信号を出力する。また、異常速度検出ブロック202cは、エンコーダ30aの出力値の微分値に基づき速度異常を検出するとサーボ異常信号を出力する。
さらに、トルク制御ブロック201cは、速度制御ブロック201bの出力と、モータドライバ55の電流値を比較し、モータドライバ55を制御する。過負荷異常検出ブロック202dは、速度制御ブロック201bの出力に基づき、湾曲モータ30の負荷状態を監視し、過負荷状態と判断するとサーボ異常信号を出力する。
なお、位置制御ブロック201aあるいは速度制御ブロック201bに異常が発生した場合、FPGAブロック異常監視部118は論理ブロック異常信号に基づき、モータコントローラ110にTRG信号を出力し、スイッチ部210aあるいは、スイッチ部210b及びスイッチ部210cを制御し、位置制御ブロック201aあるいは速度制御ブロック201bでの制御を省略することができる。
なお、モータコントローラ110におけるサーボ制御を図9に示すように、例えば位置制御ブロック201a、速度制御ブロック201b及びトルク制御ブロック201cを並列にそれぞれ2組構築することで、スイッチ部210a〜210fをTRG信号で制御し、正常な制御ブロックを選択してサーボ制御を行うようにしても良い(なお、図9ではフィードバック系は省略している)。
また、図10に示すように、EEPROM59を2つ用意し、これらのEEPROM59に異常処理対処方法の異なるプログラムを格納しておき、異常処理対応に応じて選択判断部220がスイッチ部221を切り変えることで、異常処理対応に最適なプログラムによりFPGA56を再コンフィギュレーションするようにしても良い。
さらに、図11に示すように、エンコーダ30aの出力とポテンショメータ35の出力をスイッチ部222にて切り換えて、エンコーダ30aに異常が生じた場合は、ポテンショメータ35の出力により位置制御を行い、ポテンショメータに異常が生じた場合は、ポテンショメータ35の出力により位置制御を行うようにしても良い。
FPGAブロック異常監視部118では、1例として、図12に示すような、AND、OR及びスイッチより構成される論理要素ブロック250を、図13に示すように、論理要素ブロック250を複数用いた論理判定ブロック251により、WDT−CR信号あるいはTRG信号を生成している。
すなわち、図14に示すように、複数の異常要因を条件として、複数の論理判定ブロック251(1)〜(n)によりエラー判定を実行させて、適切な判定により適切なTRG信号あるいは適切なタイミングでWDT−CR信号を生成する。
このように構成された本実施例の作用について説明する。本実施例では、図15に示すように、電源が投入されると、まず、イニシャルモード処理が実行される。そして、イニシャルモード処理後に、モード切り替え処理に移行する。
ここで、運転モードとはリモコン操作部7の操作指令に基づいて、電動湾曲操作を行うモードで、メンテナンスモードとは、パラメータの設定(読み書き)、状態モニタ等を専用の治具や後述するパソコンに接続したHMIモードによる遠隔操作等を行うモードである。
このモード切り替え処理では、例えばクラッチ切断時あるいはイニシャルモード処理終了時の湾曲動作開始指令OFF時においては、キャリブレーションモードに移行し、クラッチ再接続して操作指令値とスコープ位置が一致し、あるいは湾曲動作開始指令ONになると、モード切り替え処理に戻る。
また、モード切り替え処理において、運転モードが選択されると運転モードとなりサーボがONとなり、運転モード終了が指示されるとモード切り替え処理に戻る。
さらに、モード切り替え処理において、メンテナンスモードが選択されるとメンテナンスモードとなりサーボがONとなり、メンテナンスモード終了が指示されるとモード切り替え処理に戻る。
また、モード切り替え処理では、停止要因が発生すると異常停止モードとなり、サーボがOFFとなる。
上記内容を図16のフローチャートを用いて詳細に説明する。電源がONされると、ステップS1にてEEPROMコントローラ102によりFPGA56のコンフィギュレーションが実行される。続いて、ステップS2にてイニシャルモード処理(後述)が実行され、ステップS3にてイニシャルモード処理の終了を待つ。
イニシャルモード処理が終了すると、ステップS4にて運転モードコントローラ105よりキャリブレーション要求が発生する。そして、ステップS5にて運転モードコントローラ105よりメンテナンスモード処理要求が発生したかどうか判断する。メンテナンスモード処理要求が発生した場合は、ステップS6にてメンテナンスモード処理(後述)を実行し、ステップS5に戻る。
メンテナンスモード処理要求がない場合には、ステップS7にて運転モードコントローラ105がメンテナンスモード処理からモード切り替え処理に復帰したかどうか判断する。そして、モード切り替え処理に復帰した場合には、ステップS8にて運転モードコントローラ105よりキャリブレーション要求が発生し、ステップS5に戻る。
モード切り替え処理に復帰していない場合には、ステップS9にて運転モードコントローラ105がキャリブレーション要求が有効かどうか判断し、キャリブレーション要求が有効の場合にはステップS10にて運転モードコントローラ105はキャリブレーション処理を実行し、ステップS11にてキャリブレーション処理が正常に終了したかどうか判断する。キャリブレーション処理が正常に終了しなかった場合には、ステップS5に戻り、キャリブレーション処理が正常に終了した場合には、ステップS12にてキャリブレーション要求を解除してステップS5に戻る。
ステップS9においてキャリブレーション要求が有効でないと判断すると、ステップS13にて運転モードコントローラ105は湾曲動作開始指令がOFFされたかどうか判断する。湾曲動作開始指令がOFFされたと判断すると、ステップS14にて運転モードコントローラ105よりキャリブレーション要求が発生しステップS5に戻る。
湾曲動作開始指令がOFFていないと判断すると、ステップS15にて運転モードコントローラ105はクラッチ接続がOFFかどうか判断する。クラッチ接続がOFFならばステップS14に進み、クラッチ接続がONならばステップS16にて運転モード処理(後述)を実行してステップS5に戻る。
つぎに、図17のフローチャートを用いてイニシャルモード処理を説明する。ステップS21にてまずWDT57がスタートする。そして、ステップS22にてが各論理ブロックが内部の変数を初期化し、ステップS23にてRL(左右)モータ電流F/B部112、UD(上下)モータ電流F/B部113、ポテンショコントロール部114、サーミスタコントロール部115がそれぞれ、データのサンプリングを開始する。
そして、ステップS24にてシリアル通信ユニット100、シリアル通信制御部101により通信を開始し、ステップS25にて外部のハードウエアが正常かどうか判断し、異常の場合はステップS26にて異常停止モード処理を実行する。
外部のハードウエアが正常と判断すると、ステップS27にてモータコントローラ110がモータ電流のオフセットが正常かどうか判断し、モータ電流のオフセットが異常の場合にはステップS26にて異常停止モード処理を実行する。
そして、モータ電流のオフセットが正常と判断すると、ステップS28にてモータコントローラ110がモータ30のロータ位置を検出し、ステップS29にてDPRAM106内のパラメータを読み込む。
次に、モータコントローラ110は、ステップS30にて読み込んだパラメータ値が統べて「0」かどうか判断し、パラメータ値が統べて「0」でない場合はそのまま処理を終了し、パラメータ値が統べて「0」の場合は、ステップS31にてモータコントローラ110は、パラメータのデフォルト値をDPRAM106に書き込み処理を終了する。
次に、図18のフローチャートを用いてメンテナンスモード処理を説明する。運転モードコントローラ105と治具(不図示)と更新を開始し、ステップS41にて運転モードコントローラ105は治具よりサーボON要求が発生したかどうか判断し、ステップS42にてサーボON要求があればサーボをONしてステップS41に戻る。
同様にステップS41にて運転モードコントローラ105は治具よりサーボOFF要求が発生したかどうか判断し、ステップS44にてサーボOFF要求があればサーボをOFFしてステップS41に戻る。
次に、ステップS45にて運転モードコントローラ105は治具よりHMIモード(サーボ状態のモニタ監視モード)要求が発生したかどうか判断し、ステップS46にてHMIモード要求があればHMIモード処理を実行してステップS41に戻る。
そして、ステップS47にて運転モードコントローラ105は治具より第1メンテナンス要求が発生したかどうか判断し、ステップS48にて第1メンテナンス要求があれば正弦波出力モード処理を実行してステップS41に戻る。
続いて、ステップS49にて運転モードコントローラ105は治具より第2メンテナンス要求が発生したかどうか判断し、ステップS50にて第2メンテナンス要求があればトルク制御モード処理を実行してステップS41に戻る。
また、ステップS51にて運転モードコントローラ105は治具より第3メンテナンス要求が発生したかどうか判断し、ステップS52にて第3メンテナンス要求があれば速度制御モード処理を実行してステップS41に戻る。
そして、ステップS53にて運転モードコントローラ105は治具より第4メンテナンス要求が発生したかどうか判断し、ステップS54にて第4メンテナンス要求があれば位置制御モード処理を実行してステップS41に戻る。
次に、ステップS55にて運転モードコントローラ105は治具より第5メンテナンス要求が発生したかどうか判断し、ステップS56にて第5メンテナンス要求があればアナログ入力位置制御モード処理を実行してステップS41に戻る。
また、ステップS57にて運転モードコントローラ105は治具より第6メンテナンス要求が発生したかどうか判断し、ステップS58にて第6メンテナンス要求があればスコープリミット調整モード処理を実行してステップS41に戻る。
続いて、ステップS59にて運転モードコントローラ105は治具より第7メンテナンス要求が発生したかどうか判断し、ステップS60にて第7メンテナンス要求があればラップ動作モード処理を実行してステップS41に戻る。
ここで、ラップ動作モードとは、予め決められた湾曲動作、例えばRL−>UD−>RL等のシーケンシャル動作を行わせるモードのことである。
次に、ステップS61にて運転モードコントローラ105は治具より第8メンテナンス要求が発生したかどうか判断し、ステップS62にて第8メンテナンス要求があればキャリブレーション調整モード処理を実行してステップS41に戻る。
以上のように、電動湾曲動作に必要な各機能について独立した動作確認を行わせることができる。
次に、図19ないし図37を用いて運転モードコントローラ105にて実行されるキャリブレーションモード処理説明する。図19に示すように、リモコン操作部7には、ジョイスティック701が設けられ、ポテンショメータ702によりその位置が検知されるようになっている。また、該ジョイスティック701にはギア703が設けられ、指示駆動手段としてのサーボモータ704の回転軸に設けられたギア705がギア703と噛み合うことで、サーボモータ704の駆動力によりジョイスティック701が可動することができる。さらに、リモコン操作部7においては、ポテンショメータ702の位置情報を検出し、サーボモータ704を駆動すると共に制御部37と通信可能な駆動/通信部706が設けられている。
なお、指示駆動制御手段は、例えばポテンショメータ702及び駆動/通信部706より構成される。
図20に示すように、湾曲制御部10bにおいては、クラッチ機構部36のクラッチ操作によりギア32とギア31が切断可能になっている。ギア32とギア31が切断されると、湾曲ワイヤ33はフリー状態となり、ポテンショメータ35の出力値はジョイスティック701の湾曲指令値と無関係な状態となる。クラッチ切断時には切断時のポテンショメータ35の出力値がDPRAM106に格納されると共に、フリー状態となっている際のポテンショメータ35の出力値及びエンコーダ30aのカウント値が監視され、それぞれの最新の値がDPRAM106に格納される。
このような状態で、図21に示すように、クラッチ機構部36のクラッチ操作によりギア32とギア31を再度連結し場合に上記のキャリブレーションモード処理、すなわち、ジョイスティック701と湾曲部11との調整処理が必要となる。
そこで、図22に示すように、ステップS81にて運転モードコントローラ105はクラッチ接続がOFFかどうか判断し、クラッチ接続がOFFならば、ステップS82にてサーボをOFFしてステップS83に進み、クラッチ接続がOFFでないならば、そのままステップS83に進む。
そして、ステップS83にて運転モードコントローラ105はクラッチ接続がONかどうか判断し、クラッチ接続がONならばステップS84に進み、クラッチ接続がONでないならばステップS81に戻る。
ステップS84にて位置合わせ処理(後述)を実行し、その後、ステップS85では、操作量と現在位置が所定範囲内にあるかどうか判断し、所定範囲内ならばステップS86に進み、所定範囲内でないならばステップS81に戻る。
そして、ステップS86にて湾曲動作開始指令ONかどうか判断し、湾曲動作開始指令ONならばステップS87にてサーボをONして処理を終了し、湾曲動作開始指令ONでないならばステップS81に戻る。
上記位置合わせ処理は、図23に示すように、ステップS91にてクラッチ接続を確認すると、ステップS92にてDPRAM106から現在のエンコーダ30aのカウント値が読み出され、ステップS93にてクラッチ切断直後のポテンショメータ35の出力値がDPRAM106から読み出される。図24はクラッチ接続直後の例えばUD側の現在のエンコーダ30aのカウント値とポテンショメータ35の出力値の差異を模式的に示しており、また、図25はUD及びRLのエンコーダのカウント値とポテンショメータの出力値を2次元的に示している。
そして、ステップS94にて現在のポテンショメータ35の出力値を読み込み、ステップS95にて切断直後のポテンショメータ35の出力値と、現在のポテンショメータ35の出力値との差分により変化量Aを算出する。
次に、ステップS96にて駆動/通信部706を制御し、ジョイスティック701側のサーボモータ704を変化量Aに基づき駆動する。このとき、湾曲部モータ30は駆動されないで、停止している。
そして、ステップS97にてジョイスティック701側のポテンショメータ702を読み込み、ステップS98にてDPRAM106に対して現在のエンコーダ30aのカウント値をジョイスティック701側のポテンショメータ702の位置に応じた値に更新し処理を終了する。図26は更新後の例えばUD側の現在のエンコーダ30aのカウント値とポテンショメータ35の出力値を模式的に示しており、また、図27はUD及びRLのエンコーダのカウント値とポテンショメータの出力値を2次元的に示している。
このようにして、エンコーダ30aのカウント値とポテンショメータ35の出力値を調整すると共に、ジョイスティック701をサーボモータ704により移動させるが、図28に示すように、湾曲部モータ30のポテンショメータ35に対してジョイスティック701からの湾曲指令値は誤差を有しいるが、図22のステップS85にてその誤差範囲が所定範囲内ならば、図28に示すように、ジョイスティック701による湾曲部モータ30の制御が可能と判断している。
本実施例では、図29に示すように、モニタ6においては、キャリブレーション時には、内視鏡画像を表示する画像表示エリア6aの他に、エンコーダ30aのカウント値とポテンショメータ35の出力値を調整するためのナビゲーション画像を表示するナビゲーション表示エリア6b及び現在のテンションセンサ35の出力値を表示したデジタル表示エリア6cが表示される。従来は、デジタル表示エリア6cのみが表示され、ジョイスティック701をマニュアルで調整していた。
以上、図19ないし図29を用いてキャリブレーションモード処理をメカニカル制御的見地から説明したが、図30を用いて上記キャリブレーションモード処理を信号制御的見地から説明する。
図30において、内視鏡駆動部750は湾曲モータ30、ギア31、32、エンコーダ30a、ポテンショメータ35及びクラッチ機構部36より構成される。また、操作部駆動部751はサーボモータ704、ギア703、705より構成される。
図30によればキャリブレーションモードにおいて、モータコントローラ110側では現在の湾曲位置データを内視鏡駆動部750より取得する。このデータをコントローラ110の制御部37内部にて操作部7の位置スケールに変換処理を行う。
通常は、制御部37において、操作部7からの操作部指令(指令値データ)を内視鏡駆動部750へ位置スケール変換してジョイスティック701の稼動範囲と湾曲稼動範囲が一致するように内視鏡駆動部指令(湾曲指令信号)にスケール変換されるが、キャリブレーションモードでは、逆に内視鏡駆動部指令(湾曲指令信号)をスケール変換して操作部位置スケール変換データを生成する。
そして、操作部位置スケール変換データを復帰指令データとして操作部7に転送することで、操作部7内の操作部駆動部751が復帰データ位置に動くように作用する。これにより、操作部7が自動的に湾曲位置に一致するような動作を行わせることが可能となる。
次に、キャリブレーションモード処理の変形例を図31ないし図33を用いて説明する。上記のキャリブレーションでは、湾曲部モータ30のポテンショメータ35の出力値により行っていたが、これに限らない。
図31は図21の構成に内視鏡湾曲を行わせるための湾曲ワイヤ部にテンション量を検出するテンションセンサを配置した実施例を示している。ここではテンションセンサのワイヤへの配置構成については図示していない。
例えば図31に示すようにテンションセンサ800により湾曲ワイヤ33のテンション状態を検出し、検出した湾曲ワイヤ33のテンション状態に基づいてサーボモータ704の駆動力によりジョイスティック701を可動してジョイスティック701の位置との位置合わせ処理を行うようにしても良い。
具体的には、図32に示すように、ステップS91にてクラッチ接続を確認すると、ステップS92にてDPRAM106から現在のエンコーダ30aのカウント値が読み出され、ステップS100にてテンションセンサ800により現在の湾曲ワイヤ33のテンションデータBを読み込む。
そして、ステップS101にて駆動/通信部706を制御し、ジョイスティック701側のサーボモータ704をテンションデータBに基づき駆動する。このとき、湾曲部モータ30は駆動されないで、停止している。
続いて、ステップS97にてジョイスティック701側のポテンショメータ702を読み込み、ステップS98にてDPRAM106に対して現在のエンコーダ30aのカウント値をジョイスティック701側のポテンショメータ702の位置に応じた値に更新し処理を終了する。
以上、図31及び図32を用いてキャリブレーションモード処理の変形例をメカニカル制御的見地から説明したが、図30のように、図33ないし図を用いて上記キャリブレーションモード処理の変形例を信号制御的見地から説明する。
図33において、図30と異なる点はテンションセンサ800を設けて、内視鏡牽引ワイヤのテンションの状態をコントローラに転送している点にある。
図34に操作部7の操作部駆動部751に関するブロック線図を示す。ブロック線図で表現しているため、実際の物理構成とは異なるため補足を加えると、操作者がジョイスティック701を倒した場合の力の入力は図中の操作値であり、操作者のジョイスティック701の指令に応じて位置指令値が変化する。このときモータ制御で用いられているフィードバックループ構成となっているため動的特性を有することで、ジョイスティック701のメカニカルインピーダンスを有することになる。動的特性は、一般に知られている図35に示すようなバネ850・ダンパ851による特性となり、図36に示すような位置指令値及び操作値からポテンショメータ702までの周波数特性が低域通過形ろ過器となっている。
これに加えて図34の操作値にテンションデータを重畳させる構成とすることで、内視鏡挿入部の状態を操作者に力覚フィードバックとして反す構成が実現できる。
このとき、テンションデータはジョイスティック701の指令に対して反力が対応するように設定されている。すなわち、ジョイスティック701を倒した方向に応じて内視鏡牽引ワイヤへの負荷が増大する対応となっている。
なお、テンションセンサ800以外に内視鏡駆動部の電流を検知することで間接的にテンションを検知することでも構わない。これは、電流検知による内視鏡挿入部テンション検知原理を示す図37に示すとおり、外乱オブザーバにより検知することで実現が可能である。
図37において、2点破線部900は実際の湾曲モータ30のモータモデルのブロック線図とする。図中モータドライバからのトルク指令値は電流指令であり、この電流指令に応じて湾曲モータ30の回転・位置決めが行われる。また、2点破線部900に入力として記した外乱はモータ軸にかかる外乱負荷としている。外乱推定値は2点破線部900の実際の湾曲モータ30と同じ物理モデルを図37のように制御部37内に並列に配置させ、トルク指令値及び湾曲モータ30の回転数(Speed)情報に対する逆ダイナミクスの情報からモータ軸にかかる外乱を推定するという手法である。
次に、図38のフローチャートを用い、また図39のタイミングチャートを参照して動作モード処理を説明する。ステップS71にてまずサーボをONとし、ステップS72にてトルク制御周期イベント期間かどうか判断し、トルク制御周期イベントならばステップS73にトルク制御演算処理を実行しステップS72に戻り、トルク制御周期イベントでないならば、ステップS74に進む。
ステップS74では、位置、速度制御イベント期間かどうかかどうか判断し、位置、速度制御イベントならばステップS75に位置、速度制御演算処理を実行しステップS72に戻り、位置、速度制御周期イベントでないならば、ステップS76に進む。そして、ステップS76にてサーボ異常が検出されたかどうか判断し、サーボ異常が検出された場合はステップS77に異常停止モード処理を実行し、サーボ異常が検出されない場合にはステップS72に戻る。
以上説明したように、本実施例では、 リモコン操作部7においては、ジョイスティック701はポテンショメータ702によりその位置が検知されるようになっており、ジョイスティック701にはギア703が設けられ、サーボモータ704の回転軸に設けられたギア705がギア703と噛み合うことで、サーボモータ704の駆動力によりジョイスティック701が可動することができる。さらに、ポテンショメータ702の位置情報を検出し、サーボモータ704を駆動すると共に制御部37と通信可能な駆動/通信部706が設けられている。このよう構成により、クラッチ切断/接続を切り換えて実行しても、ジョイスティック701の位置を湾曲部の湾曲位置に自動的に調整することができる。
なお、制御部37を内視鏡2の湾曲制御部10bに設けるとしたが、これに限らず、制御部37を画像処理装置4内に設けても良いし、別体のコントローラ装置内に設けても良い。
本発明は、上述した実施例に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。