以下に添付図面を参照しながら、本開示の好適な実施形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.システム及び支持アーム装置の構成
2.システム及び支持アーム装置の機能構成
2−1.アーム部の動作の制御の概要
2−1−1.一般化逆動力学について
2−1−1−1.仮想力算出処理
2−1−1−2.実在力算出処理
2−1−2.理想関節制御について
2−2.機能構成
3.重力補償機構のバネの設計例
4.支持アーム装置の制御方法
5.変形例
5−1.他の制御方法に係る変形例
5−2.吊り下げ型の支持アーム装置に係る変形例
5−3.その他の変形例
6.一般的な重力補償との比較
7.補足
なお、以下では、本開示の一実施形態に係るシステム及び/又は支持アーム装置に対して各種の操作を行うユーザのことを、便宜的に術者と記載する。ただし、当該記載は当該システム及び/又は当該支持アーム装置を使用するユーザを限定するものではなく、当該システム及び/又は当該支持アーム装置に対する各種の操作は、他の医療スタッフ等、あらゆるユーザによって実行されてよい。
(1.システム及び支持アーム装置の構成)
図1を参照して、本実施形態に係るシステム及び支持アーム装置の構成について説明する。図1は、本実施形態に係るシステム及び支持アーム装置の概略構成を示す図である。
図1では、本実施形態に係るシステム1を用いて、手術台330上の患者340に対して開腹手術が行われている様子が図示されている。図1を参照すると、システム1は、支持アーム装置500と、表示装置400と、から構成される。本実施形態では、支持アーム装置500は、そのアーム部510の先端に顕微鏡部520が設けられた観察装置500として構成される。顕微鏡部520は、観察対象である患者340の術部341を電子的に撮影する電子撮像式の顕微鏡部520である。顕微鏡部520によって撮影された術部341の映像が、例えば手術室の壁面等、術者から視認し得る位置に設置される表示装置400に表示される。術者は、表示装置400に映し出された映像を介して術部341を観察しながら、当該術部341に対して各種の処置を施す。
(支持アーム装置)
図1を参照すると、本実施形態に係る支持アーム装置500は、アーム部510と、当該アーム部510の先端に取り付けられ、観察対象である患者340の術部341を拡大観察するための顕微鏡部520と、支持アーム装置500の動作を制御する制御装置530と、を有する。なお、図1では、簡単のため、支持アーム装置500を簡略化して図示している。例えば、実際には、アーム部510の基端側には、当該アーム部510を支持するベース部が設けられ得る。その他、支持アーム装置500は、以下の説明と矛盾しない範囲で、一般的な支持アーム装置が有し得る各種の構成を有してよい。
(顕微鏡部)
図1では簡略化して図示しているが、顕微鏡部520は、一般的な電子撮像式の顕微鏡部と同様の構成を有し得る。具体的には、例えば、顕微鏡部520は、略円筒形状の筒状部と、当該筒状部の内部に設けられる撮像部と、から構成される。
筒状部の下端には、カバーガラスが配設された開口面が設けられており、観察対象である術部341からの光(以下、観察光ともいう)は、当該カバーガラスを通過して、筒状部の内部の撮像部に入射する。なお、筒状部の内部には例えばLED(Light Emitting Diode)等からなる光源が設けられてもよく、撮像時には、当該カバーガラスを介して、当該光源から術部341に対して光が照射されてもよい。
撮像部は、観察光を集光する光学系と、当該光学系が集光した観察光を受光する撮像素子と、から構成される。当該光学系は、ズームレンズ及びフォーカスレンズを含む複数のレンズが組み合わされて構成され、その光学特性は、観察光を撮像素子の受光面上に結像するように調整されている。当該撮像素子は、観察光を受光して光電変換することにより、観察光に対応した信号、すなわち観察像に対応した画像信号を生成する。当該撮像素子は、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサ又はCCD(Charge Coupled Device)イメージセンサ等、各種の公知の撮像素子であってよい。撮像素子によって生成された画像信号は、RAWデータとして制御装置530に送信される。
また、撮像部は、その光学系のズームレンズ及びフォーカスレンズを光軸に沿って移動させる駆動機構を有し得る。当該駆動機構によってズームレンズ及びフォーカスレンズが適宜移動されることにより、撮像画像の拡大倍率及び撮像時の焦点距離が調整され得る。顕微鏡部520における倍率や焦点の調整は、支持アーム装置500に設けられる入力装置(図示せず)を介して術者によって手動で実行されてもよいし、例えばAF(Auto Focus)機能を用いて自動的に実行されてもよい。また、撮像部には、AE(Auto Exposure)機能や電子ズーム機能等、一般的に電子撮像式の顕微鏡部に備えられ得る各種の機能が搭載されてもよい。
また、撮像部は、1つの撮像素子を有するいわゆる単板式の撮像部として構成されてもよいし、複数の撮像素子を有するいわゆる多板式の撮像部として構成されてもよい。撮像部が多板式で構成される場合には、例えば、当該撮像部は、立体視(3D表示)に対応する右目用及び左目用の画像信号をそれぞれ取得するための1対の撮像素子を有するように構成されてもよい。3D表示が行われることにより、術者は術部341における生体組織の奥行きをより正確に把握することが可能になる。なお、当該撮像部が多板式で構成される場合には、各撮像素子に対応して、光学系も複数系統が設けられ得る。
(アーム部)
アーム部510は、上述したように、その基端部が手術室内の床面に設置されるベース部(図示せず)に取り付けられ、当該ベース部から延伸するように構成される。なお、本明細書では、アーム部510の構成について説明する際に、顕微鏡部520が設けられる側を先端側又は先端部等とも呼称し、床面に近い側を基端側又は基端部等とも呼称することとする。また、鉛直方向をz軸方向とも呼称し、当該z軸方向と互いに直交する2方向(すなわち、水平面内において互いに直交する2方向)を、それぞれ、x軸方向及びy軸方向とも呼称する。
アーム部510は、各回転軸(先端側から順に、第1軸O1、第2軸O2、第3軸O2、第4軸O4、第5軸O5及び第6軸O6と呼称する)に対応する位置にそれぞれ設けられる関節部511a、511b、511c、511d、511e、511fと、関節部511b〜511fによって互いに回動可能に連結される複数のリンク512a、512b、512c、512d、512e、512fと、から構成される。
具体的には、略鉛直方向に延伸するリンク512fの基端がベース部に取り付けられる。リンク512fの先端は、関節部511fを介してリンク512eの基端と連結され、リンク512fは、当該関節部511fを介してリンク512eを回動可能に支持する。
以下、同様に、リンク512e、512d、512c、512bの先端が、それぞれ、関節部511e、511d、511c、511bを介して、リンク512d、512c、512b、512aの基端と連結される。そして、リンク512e、512d、512c、512bは、それぞれ、関節部511e、511d、511c、511bを介して、リンク512d、512c、512b、512aを回動可能に支持する。
リンク512aの先端には、関節部511aを介して、顕微鏡部520が連結される。リンク512aは、関節部511aを介して、顕微鏡部520を回動可能に支持する。
このように、ベース部と接続されるリンク512fの基端を支点として、複数のリンク512a〜512fの端同士が関節部511b〜511fによって互いに連結されることにより、当該ベース部から延伸されるアーム形状が構成される。
なお、図1では簡易的に実線によって図示しているが、実際には、リンク512a〜512fは、所定の太さを有する棒状又は管状の部材であり得る。また、リンク512a〜512fの断面形状は限定されず、円形、楕円、矩形等、各種の形状であってよい。リンク512a〜512fの具体的な構造としては、一般的な支持アーム装置のリンクとして用いられる各種のものが適用されてよい。
また、図1では簡易的に円又は三角形の組み合わせによって図示しているが、実際には、関節部511a〜511fは、回転軸となるシャフト及び当該シャフトを軸支する軸受け等を有し、一の部材に対して他の部材を回動可能な部材であり得る。関節部511a〜511fの具体的な構造としては、一般的な支持アーム装置の関節部として用いられる各種のものが適用されてよい。
回転軸のうち、第1軸O1、第3軸O2及び第6軸O6は、その基端側に設けられるリンク512a、512c、512fの延伸方向と略平行な方向の回転軸である。このような方向を有する回転軸のことを、本明細書では、便宜的に、ヨー(Yaw)軸とも呼称することとする。一方、第2軸O2、第4軸O4及び第5軸O5は、その基端側に設けられるリンク512b、512d、512eの延伸方向と略直交する方向の回転軸である。このような方向を有する回転軸のことを、本明細書では、便宜的に、ピッチ(Pitch)軸とも呼称することとする。
つまり、アーム部510は、基端側から、ヨー軸(第6軸O6)、ピッチ軸(第5軸O5)、ピッチ軸(第4軸O4)、ヨー軸(第3軸O3)、ピッチ軸(第2軸O2)及びヨー軸(第1軸O1)が、この順に配置されて構成されている。当該構成により、アーム部510では、顕微鏡部520の動きに対して、並進3自由度及び回転3自由度の計6自由度が実現されている。アーム部510が6自由度を有するように構成されることにより、アーム部510の可動範囲内において顕微鏡部520を自由に移動させることが可能になる。
ただし、アーム部510の構成は図示する例に限定されない。本実施形態では、アーム部510は、所望の運動目的(タスク)を実行するために必要な自由度を有するように構成されればよく、関節部511a〜511f及びリンク512a〜512fの数や配置、関節部511a〜511fの駆動軸の方向、リンク512a〜512fの長さ等は、その所望の自由度が実現され得るように適宜設定されてよい。ただし、上述したように、アーム部510が6自由度を有するように構成されることで、顕微鏡部520を自由に移動させることが可能になるため、アーム部510は、6自由度以上の自由度を有するように構成されることが好ましい。
関節部511a〜511fには、図2に示すアクチュエータ430が設けられる。関節部511a〜511fは、当該アクチュエータ430により所定の回転軸まわりに回転駆動される。アクチュエータ430の駆動は、制御装置530によって制御される。各関節部511a〜511fのアクチュエータ430の駆動がそれぞれ制御されることにより、例えばアーム部510を伸ばしたり、縮めたり(折り畳んだり)といった、アーム部510の駆動が制御される。
図2を参照して、当該アクチュエータ430の構成について詳細に説明する。図2は、図1に示す支持アーム装置500の関節部511a〜511fに搭載されるアクチュエータ430の一構成例を示す断面図である。図2では、本実施形態に係るアクチュエータ430を、回転軸を通る平面で切断した場合における断面図を図示している。
図2を参照すると、本実施形態に係るアクチュエータ430は、モータ424と、モータドライバ425と、減速機426と、エンコーダ427と、トルクセンサ428と、から構成される。アクチュエータ430は、例えば力制御に対応するアクチュエータである。アクチュエータ430では、モータ424の回転が減速機426によって所定の減速比で減速され、出力軸を介して後段の他の部材に伝達されることにより、当該他の部材が駆動されることとなる。
モータ424は、回転駆動力を生み出す駆動機構である。モータ424は、モータドライバ425からの制御により、後述する図3に示すトルク指令値τに対応するトルクを発生するように駆動される。モータ424としては、例えばブラシレスモータが用いられる。ただし、本実施形態はかかる例に限定されず、モータ424としては各種の公知の種類のモータが用いられてよい。
モータドライバ425は、モータ424に電流を供給することによりモータ424を回転駆動させるドライバ回路(ドライバIC(Integrated Circuit))であり、モータ424に供給する電流量を調整することにより、モータ424の回転数を制御することができる。モータドライバ425は、後述する図3に示すトルク指令値τに対応する電流をモータ424に供給することにより、当該モータ424を駆動させる。
また、モータドライバ425は、モータ424に供給する電流量を調整することにより、アクチュエータ430の回転運動における粘性抵抗係数を調整することができる。これにより、アクチュエータ430における回転運動、すなわち、関節部511a〜511fにおける回転運動に対して、所定の抵抗を負荷することが可能となる。例えば、関節部511a〜511fを、外部から加えられる力に対して回転しやすい状態(すなわち、アーム部510を手動で移動しやすい状態)にすることもできるし、逆に、外部から加えられる力に対して回転し難い状態(すなわち、アーム部510を手動で移動し難い状態)にすることもできる。
モータ424の回転軸(駆動軸)には、減速機426が連結される。減速機426は、連結されたモータ424の回転軸の回転速度(すなわち、入力軸の回転速度)を、所定の減速比で減速させて出力軸に伝達する。本実施形態では、減速機426の構成は特定のものに限定されず、減速機426としては各種の公知の種類の減速機が用いられてよい。ただし、減速機426としては、例えばハーモニックドライブ(登録商標)等の、高精度に減速比が設定可能なものが用いられることが好ましい。また、減速機426の減速比は、アクチュエータ430の用途に応じて適宜設定され得る。例えば、本実施形態のように、アクチュエータ430が支持アーム装置500の関節部511a〜511fに適用される場合であれば、1:100程度の減速比を有する減速機426が好適に用いられ得る。
エンコーダ427は、入力軸の回転角度(すなわち、モータ424の回転軸の回転角度)を検出する。エンコーダ427によって検出された入力軸の回転数と、減速機426の減速比と、に基づいて、関節部511a〜511fの回転角度、回転角速度及び回転角加速度等の情報を得ることができる。エンコーダ427としては、例えば磁気式エンコーダ、光学式エンコーダ等の各種の公知のロータリエンコーダが用いられてよい。なお、図示する例では、アクチュエータ430の入力軸にのみエンコーダ427が設けられているが、減速機426よりも後段に、アクチュエータ430の出力軸の回転角度等を検出するためのエンコーダが更に設けられてもよい。
トルクセンサ428は、アクチュエータ430の出力軸に接続され、アクチュエータ430に作用するトルクを検出する。トルクセンサ428は、アクチュエータ430によって出力されるトルク(発生トルク)を検出する。また、トルクセンサ428は、アクチュエータ430に外部から加えられる外トルクも検出することができる。
以上、図2を参照して、本実施形態に係るアクチュエータ430の構成について説明した。ここで、本実施形態では、アーム部510の動作が力制御によって制御される。当該力制御においては、支持アーム装置500では、各アクチュエータ430に設けられたエンコーダ427及びトルクセンサ428によって、各関節部511a〜511fの回転角度、及び各関節部511a〜511fに作用するトルクがそれぞれ検出される。このとき、トルクセンサ428によって検出される各関節部511a〜511fに作用するトルクには、アーム部510及び/又は顕微鏡部520に作用する力も含まれ得る。
詳しくは後述するが、エンコーダ427によって検出された回転角度、及びトルクセンサ428によって検出されたトルク値に基づいて、現在のアーム部510の状態(位置、速度等)が取得され得る。支持アーム装置500では、取得されたアーム部510の状態(アーム状態)に基づいて、アーム部510が所望のタスクを実行するために必要な、各関節部511a〜511fのアクチュエータ430が発生すべきトルクが算出され、当該トルクを制御値として各関節部511a〜511fのアクチュエータ430が駆動されることになる。
なお、図2に示す構成は、あくまで、アクチュエータ430の一構成例を示すものであり、本実施形態はかかる例に限定されない。アクチュエータ430としては、一般的に力制御によってその動作が制御される各種の装置において用いられている、各種の公知のアクチュエータを用いることができる。例えば、アクチュエータ430としては、本願出願人による先行特許出願である特開2009−269102号公報や特開2011−209099号公報等に記載のものを好適に用いることができる。
更に、本実施形態では、第4軸O4に対応する関節部511d、及び第5軸O5に対応する関節部511eに対して、それぞれ、重力補償機構540、550が設けられる。重力補償機構540は、関節部511dに作用するアーム部510の自重による負荷トルクを打ち消す方向のトルクを当該関節部511dに与える。重力補償機構550は、関節部511eに作用するアーム部510の自重による負荷トルクを打ち消す方向のトルクを当該関節部511eに与える。以下では、重力補償のために重力補償機構540、550が与える、当該負荷トルクを打ち消す方向のトルクのことを補償トルクとも呼称する。
具体的には、図示するように、重力補償機構540は、関節部511dの先端側に接続されるリンク512cに対して固定的に設けられる(すなわち、関節部511dまわりにリンク512cとともに回動する)掛止部541と、当該掛止部541と関節部511dの基端側に接続されるリンク512dとの間に張設されるバネ542と、から構成される。かかる構成によれば、関節部511dまわりに、リンク512cから先端側の構成が、当該リンク512cから先端側の構成に作用する重力の方向に回動した場合に、バネ542は、その回動量に応じて伸長されることとなる。このとき、伸長されたバネ542の復元力は、リンク512cから先端側の構成に対して、当該リンク512cから先端側の構成を、関節部511dまわりに、重力方向への回動方向とは逆方向に回動させる方向に作用する。つまり、バネ542の復元力は、関節部511dに作用するリンク512cから先端側の構成の自重による負荷トルクを打ち消す方向の補償トルクを当該関節部511dに与える。
同様に、重力補償機構550は、関節部511eの先端側に接続されるリンク512dに対して固定的に設けられる(すなわち、関節部511eまわりにリンク512dとともに回動する)掛止部551と、当該掛止部551と関節部511eの基端側に接続されるリンク512eとの間に張設されるバネ552と、から構成される。かかる構成によれば、関節部511eまわりに、リンク512dから先端側の構成が、当該リンク512dから先端側の構成に作用する重力の方向に回動した場合に、バネ552は、その回動量に応じて伸長されることとなる。このとき、伸長されたバネ552の復元力は、リンク512dから先端側の構成に対して、当該リンク512dから先端側の構成を、関節部511eまわりに、重力方向への回動方向とは逆方向に回動させる方向に作用する。つまり、バネ552の復元力は、関節部511eに作用するリンク512dから先端側の構成の自重による負荷トルクを打ち消す方向の補償トルクを当該関節部511eに与える。
バネ542、552は、例えば引っ張りバネである。ただし、本実施形態はかかる例に限定されず、バネ542、552としては、例えば圧縮バネやねじりコイルばね等、各種の公知のものが用いられてよい。あるいは、バネ542、552の代わりに、伸縮に応じて復元力を発生させる他の弾性体が用いられてもよい。
ここで、以上説明したように、本実施形態では、重力補償機構540は、掛止部541及びバネ542によって構成される、簡易な構成を有する。かかる構成により、重力補償機構540では、バネ542の復元力は、関節部511dにおける回転角度が大きくなれば大きくなり、当該回転角度が小さくなれば小さくなる、という単純な正の相関を有する。つまり、バネ542の復元力は、関節部511dにおける回転角度に対して単調に変化し得る。
これに対して、関節部511dに作用するアーム部510の自重による負荷トルクは、関節部511dから先端側の構成に作用する重力の大きさと、モーメントアーム(すなわち、関節部511dの回転中心から当該重力の方向を示すベクトルに向かって下した垂線)の長さとの積によって表されるが、当該モーメントアームの長さは、アーム部510の構成に応じて、関節部511dにおける回転角度に対して必ずしも単調には変化しないため、当該負荷トルクの大きさも当該回転角度に対して必ずしも単調には変化しない。また、バネ542の復元力によって関節部511dに作用する補償トルクは、当該復元力の大きさと、モーメントアーム(すなわち、関節部511dの回転中心から当該復元力の方向を示すベクトルに向かって下した垂線)の長さとの積によって表されるが、当該モーメントアームの長さも、アーム部510の構成に応じて、関節部511dにおける回転角度に対して必ずしも単調には変化しないため、当該補償トルクも当該回転角度に対して必ずしも単調には変化はしない。
このように、重力補償機構540のバネ542の復元力は、関節部511dにおける回転角度に対して単調に変化し得るものの、関節部511dに作用するアーム部510の自重による負荷トルク、及びバネ542の復元力によって関節部511dに作用する補償トルクは、関節部511dにおける回転角度に対して複雑に変化し得る。従って、本実施形態のように簡易な構成を有する重力補償機構540では、アーム部510の自重による負荷トルクを略完全にキャンセルするような補償トルクを発生することは困難である。以上では重力補償機構540を例に挙げて説明したが、重力補償機構550についても事情は同様である。
そこで、本実施形態では、重力補償機構540によって関節部511dに与えられる補償トルクを加味して、アーム部510の自重による負荷トルクをキャンセルし得るように、当該関節部511dに設けられるアクチュエータ430を駆動させることにより、重力補償を行う。つまり、関節部511dに作用するアーム部510の自重による負荷トルクから、重力補償機構540によって関節部511dに与えられる補償トルクを差し引いた、重力補償機構540では補償しきれない不足分を補償し得るように、アクチュエータ430によって関節部511dにトルクを与えることにより、重力補償を行う。このように、本実施形態では、重力補償機構540と、関節部511dに設けられるアクチュエータ430と、を併用することにより、当該関節部511dにおける重力補償を行う。関節部511eについても同様に、重力補償機構550と、関節部511eに設けられるアクチュエータ430と、を併用することにより、当該関節部511eにおける重力補償を行う。なお、重力補償時のアクチュエータ430の駆動の制御方法については、下記(2−2.機能構成)で詳しく説明する。
(制御装置)
制御装置530は、例えばCPU(Central Processing Unit)やDSP(Digital Signal Processor)等のプロセッサ、又はこれらのプロセッサとメモリ等の記憶素子が搭載された制御基板等によって構成される。制御装置530は、所定のプログラムに従った信号処理を実行することにより、支持アーム装置500の動作を制御する。
制御装置530は、アーム部510の動作を制御する。本実施形態では、アーム部510の制御方式として、力制御が用いられる。力制御では、各関節部511a〜511fの状態(アーム部510及び顕微鏡部520に作用する力、並びに各関節部511a〜511fにおける回転角度等)が、各関節部511a〜511fに設けられるアクチュエータ430のエンコーダ427及びトルクセンサ428によって検出される。制御装置530は、検出された各関節部511a〜511fの状態に基づいて、アーム部510に所望のタスクを実行させるために必要な、各関節部511a〜511fに設けられるアクチュエータ430による発生トルクを算出し、算出された当該発生トルクを制御値として、これら各関節部511a〜511fのアクチュエータ430の駆動を制御する。この際、本実施形態では、制御装置530は、上述したように重力補償機構540、550による補償トルクを加味して当該発生トルクを算出することにより、重力補償を行いつつ所望のタスクを実行実現させるような発生トルクを算出する。
力制御では、アーム部510に対する外力に応じて各関節部511a〜511fの駆動を制御することが可能になる。例えば、力制御では、術者が直接アーム部510に触れて行う、当該アーム部510を移動させようとする操作に応じて、当該アーム部510に加えられた力の方向に当該アーム部510が移動するように(すなわち、術者の動作に追従するように)、制御装置530によってアクチュエータ430の駆動が制御され、当該アーム部510の動作が制御され得る。かかるアーム部510の動作は、術者による操作をアシストする操作であることから、パワーアシスト動作と呼ばれる。このように、力制御を用いることにより、術者が直接アーム部510に触れながら当該アーム部510を移動させることができるため、より容易でより直感的な操作が可能になる。なお、以下の説明では、術者が直接アーム部510に触れながら当該アーム部510を移動させる操作のことを、直接操作とも言う。
なお、制御装置530における、かかるアーム部510の動作の制御に係る機能については、下記(2.システム及び支持アーム装置の機能構成)で改めて詳細に説明する。
また、制御装置530は、顕微鏡部520によって撮影された映像についての表示制御に係る各種の処理を行う。具体的には、制御装置530は、顕微鏡部520の撮像部によって取得された画像信号に各種の信号処理を施すことにより、表示用の映像データを生成する。当該信号処理では、例えば現像処理(デモザイク処理)、高画質化処理(帯域強調処理、超解像処理、NR(Noise reduction)処理及び/又は手ブレ補正処理等)及び/又は拡大処理(すなわち、電子ズーム処理)等、各種の公知の信号処理が行われてよい。制御装置530は、生成した映像データを表示装置400に送信するとともに、当該表示装置400の駆動を制御して、当該表示装置400に当該映像データを表示させる。
制御装置530は、その他、一般的な観察装置500が有する各種の機能を有してよい。
(表示装置)
表示装置400は、手術室内に設置され、制御装置530からの制御により、当該制御装置530によって生成された映像データに対応する映像を表示する。つまり、表示装置400には、顕微鏡部520によって撮影された術部341の映像が表示される。表示装置400としては、液晶ディスプレイ装置又はEL(Electro Luminescence)ディスプレイ装置等、各種の公知の表示装置が適用されてよい。
以上、本実施形態に係るシステム1及び支持アーム装置500の構成について説明した。
ここで、上述したように、特許文献1、2及び非特許文献1に示す技術のように機械的な重力補償機構のみによって重力補償を行おうとする場合には、アーム部の自重による負荷トルクにおけるモーメントアームの長さ、及び当該重力補償機構による補償トルクにおけるモーメントアームの長さの、関節部における回転角度に対する依存性を考慮して、当該回転角度に応じた当該負荷トルクをキャンセルし得るような補償トルクを生じさせるように当該重力補償機構を構成する必要があるため、当該重力補償機構の構成が複雑化する傾向があった。また、特許文献3に示すような各関節部にアクチュエータが設けられる支持アーム装置において、当該アクチュエータのみによって重力補償を行おうとする場合には、当該アクチュエータに大きな出力が求められるため、当該アクチュエータが大型化する傾向があった。かかる重力補償機構の構成の複雑化及びアクチュエータの大型化は、アーム部、ひいては支持アーム装置全体の大型化、重量化を引き起こす。また、バランスアームとして構成される支持アーム装置では、カウンターウェイトが設けられることにより、やはりアーム部、及び支持アーム装置全体が大型化、重量化する傾向がある。
これに対して、以上説明したように、本実施形態によれば、重力補償機構540、550と、関節部511d、511eに設けられるアクチュエータ430と、を併用することにより、当該関節部511d、511eにおける重力補償を行う。アクチュエータ430を併用することにより、機械的な機構である重力補償機構540、550によってアーム部510の自重による負荷トルクを略完全にキャンセルし得るように当該重力補償機構540、550を構成する必要がないため、当該重力補償機構540、550の構成をより簡易なものとすることができる。また、重力補償機構540、550を併用することにより、重力補償時にアクチュエータ430にそれ程大きな出力が求められないため、当該アクチュエータ430をより小型化することができる。従って、本実施形態によれば、アーム部510及び支持アーム装置500全体をより簡易に、かつより軽量に構成することが可能になる。
本実施形態では、大出力のアクチュエータが不要となることで、消費電力の低減、及び製造コストの削減効果も得ることができる。また、アーム部510及び支持アーム装置500全体をより簡易に、かつより軽量に構成することが可能になることで、当該支持アーム装置500を手術台330に近接配置したり、当該支持アーム装置500をアーム部510が天井から吊り下げられるように構成される吊り下げ型の支持アーム装置500として構成したりといった、より自由度の高い構成が可能になる。
また、関節部511d、511eに与えられるアーム部510の自重による負荷トルクは、これら関節部511d、511eよりも先端側の構成の重量及び重心の位置によるため、これら関節部511d、511eによって異なる。従って、例えばアクチュエータ430による発生トルクのみによって重力補償を行おうとすると、関節部511dに設けられるアクチュエータ430と関節部511eに設けられるアクチュエータ430には異なる性能が求められることとなるため、アクチュエータ430を共通化することができず、製造コストの増加を招きかねない。これに対して、本実施形態では、関節部511d、511eにそれぞれ重力補償機構540、550が設けられるため、かかる重力補償機構540、550の構成(具体的には、バネ542、552の復元力等)を調整し、当該重力補償機構540、550がそれぞれ発生させる補償トルクの値を適宜調整することにより、関節部511dに設けられるアクチュエータ430と関節部511eに設けられるアクチュエータ430に求められる出力を同程度にすることが可能になる。このように、本実施形態によれば、重力補償機構540、550の構成を適宜調整することにより、アクチュエータ430の共通化を図ることができる。従って、製造コストの低減により寄与することができる。
また、重力補償機構540、550の構成をより簡易なものとすることができることにより、当該重力補償機構540、550の信頼性が向上し、製造コストも低く抑えることができるため、量産性に優れた支持アーム装置500を提供することが可能になる。
更に、本実施形態では、トルクセンサ428を有するアクチュエータ430を用いて重力補償を行う。トルクセンサ428によって、アクチュエータ430に実際に作用しているトルクが検出され、その検出されたトルクに基づいて重力補償を行うためのアクチュエータ430の発生トルクを算出することができるため、不感帯の狭い、より高精度な重力補償を行うことが可能になる。
(2.システム及び支持アーム装置の機能構成)
以上説明したシステム1及び支持アーム装置500の機能構成について説明しつつ、本実施形態に係るアーム部510の動作の制御について説明する。
(2−1.アーム部の動作の制御の概要)
以上説明した本実施形態に係るシステム1及び支持アーム装置500の機能構成について説明するに先立ち、支持アーム装置500のアーム部510の動作の制御のために行われる処理の概要について説明する。なお、以下に説明するアーム部510の動作の制御のための各処理はあくまで一例である。本実施形態では、アーム部510の動作が力制御によって制御されればよく、その具体的な制御方法は限定されない。アーム部510の動作の制御においては、力制御に係る各種の公知の制御理論が用いられてよい。
本実施形態では、支持アーム装置500の各関節部511a〜511fの駆動が、一般化逆動力学を用いた全身協調制御により制御される。全身協調制御では、所定の拘束条件の下で所望のタスクを実行し得るように、各関節部511a〜511fにおいて発生すべきトルク(すなわち、所望のタスクを実行するための各関節部511a〜511fのアクチュエータ430における発生トルク)が、各関節部511a〜511fに設けられるアクチュエータ430の制御値として算出される。更に、外乱の影響を補正することにより当該制御値に対する理想的な応答を実現する理想関節制御が各関節部511a〜511fの駆動制御に適用される。以下、一般化逆動力学及び理想関節制御の概要について、順に説明する。
(2−1−1.一般化逆動力学について)
一般化逆動力学は、複数のリンクが関節部によって互いに連結されて構成される多リンク構造体(本実施形においてはアーム部510)において、各種の操作空間(Operation Space)における様々な次元に関するタスクを、各種の拘束条件を考慮しながら、複数の当該関節部に生じさせるトルクに変換する、多リンク構造体の全身協調制御における基本演算である。
操作空間は、多リンク構造体の力制御における重要な概念である。操作空間は、多リンク構造体に作用する力と多リンク構造体の加速度との関係を記述するための空間である。多リンク構造体の駆動制御を位置制御ではなく力制御によって行う際に、多リンク構造体と環境との接し方を拘束条件として用いる場合に操作空間という概念が必要となる。操作空間は、例えば、多リンク構造体が属する空間である、関節空間、デカルト空間、運動量空間等である。
タスクは、多リンク構造体の駆動制御における目標を表すものである。タスクとしては、例えば、「撮像部の視点保持」(すなわち、顕微鏡部520の位置及び姿勢を一定に保つこと)や、「術者の視界確保」(すなわち、術者の視界にアーム部510及び顕微鏡部520を侵入させないこと)等が設定され得る。実際の制御においては、より具体的に、これらのタスクを達成するための多リンク構造体の位置、速度、加速度、力、インピーダンス等の目標値が設定され得る。
拘束条件は、多リンク構造体の形状や構造、多リンク構造体の周囲の環境及びユーザによる設定等によって定められる、多リンク構造体の位置、速度、加速度、力等に関する拘束条件である。例えば、拘束条件には、発生力、優先度、非駆動関節の有無、垂直反力、摩擦錘、支持多角形等についての情報が含まれる。
拘束条件は、タスクに応じて設定され得る。例えば、タスクが「撮像部の視点保持」であれば、その拘束条件として、アーム部510の先端位置(手先位置)及び先端姿勢(手先姿勢)が所定の状態で保持されるように、当該手先位置及び手先姿勢に対して幾何的な制限が課せられる。また、例えば、タスクが「術者の視界確保」であれば、その拘束条件としては、アーム部510及び顕微鏡部520が、空間上に設定された所定の侵入禁止領域に侵入しないように、その移動範囲に対して制限が課せられる。当該侵入禁止領域としては、術者の視野領域となることが想定される領域が適宜設定される。
一般化動力学においては、数値計算上の安定性と実時間処理可能な演算効率とを両立するため、その演算アルゴリズムは、第1段階である仮想力決定プロセス(仮想力算出処理)と、第2段階である実在力変換プロセス(実在力算出処理)によって構成される。第1段階である仮想力算出処理では、タスクの達成に必要な、操作空間に作用する仮想的な力である仮想力を、タスクの優先度と仮想力の最大値を考慮しながら決定する。第2段階である実在力算出処理では、非駆動関節、垂直反力、摩擦錘、支持多角形等に関する拘束を考慮しながら、上記で得られた仮想力を関節力、外力等の実際の多リンク構造体の構成で実現可能な実在力に変換する。以下、仮想力算出処理及び実在力算出処理について詳しく説明する。
(2−1−1−1.仮想力算出処理)
多リンク構造体の各関節部におけるある物理量によって構成されるベクトルを一般化変数qと呼ぶ(関節値q又は関節空間qとも呼称する)。操作空間xは、一般化変数qとヤコビアンJとを用いて、以下の数式(1)で定義される。
本実施形態に係る支持アーム装置500の構成であれば、例えば、上記数式(1)におけるxは、アーム部510のリンク512a〜512fの先端位置であり、qは、アーム部510の関節部511a〜511fにおける回転角度である。操作空間xに関する運動方程式は、下記数式(2)で記述される。
ここで、fは操作空間xに作用する力を表す。また、Λ−1は操作空間慣性逆行列、cは操作空間バイアス加速度と呼ばれるものであり、それぞれ下記数式(3)、(4)で表される。
なお、Hは関節空間慣性行列、τは関節値qに対応する関節力(例えば関節部511a〜511fにおける発生トルク)、bは重力、コリオリ力、遠心力を表す項である。
一般化逆動力学においては、タスクに対応する操作空間xに関する位置、速度の目標値は、操作空間xの加速度として表現できることが知られている。このとき、上記数式(1)から、タスクに応じて与えられた目標値である操作空間加速度を実現するために、操作空間xに作用するべき仮想力fvは、下記数式(5)のような一種の線形相補性問題(LCP:Linear Complementary Problem)を解くことによって得られる。
ここで、LiとUiはそれぞれ、fvの第i成分の負の下限値(−∞を含む)、fvの第i成分の正の上限値(+∞を含む)とする。上記LCPは、例えばIterative法、Pivot法、ロバスト加速度制御を応用する方法等を用いて解くことができる。
なお、操作空間慣性逆行列Λ−1、バイアス加速度cは、定義式である上記数式(3)、(4)の通り算出すると計算コストが大きい。従って、多リンク構造体の一般化力(関節力τ)から一般化加速度(関節加速度)を得る準動力学計算(FWD)を応用することにより、操作空間慣性逆行列Λ−1の算出処理をより高速に算出する方法が提案されている。具体的には、操作空間慣性逆行列Λ−1、バイアス加速度cは、順動力学演算FWDを用いることにより、関節空間q、関節力τ、重力g等の多リンク構造体に作用する力に関する情報から得ることができる。このように、操作空間に関する順動力学演算FWDを応用することにより、関節部の数Nに対してO(N)の計算量で操作空間慣性逆行列Λ−1を算出することができる。
ここで、タスクに応じた目標値の設定例として、絶対値Fi以下の仮想力fviで操作空間加速度の目標値(xの2階微分に上付きバーを付して表す)を達成するための条件は、下記数式(6)で表現できる。
また、上述したように、操作空間xの位置、速度に関する目標値は、操作空間加速度の目標値として表すことができ、具体的には下記数式(7)で表現される(操作空間xの位置、速度の目標値を、x、xの1階微分に上付きバーを付して表す)。
その他、分解操作空間の考え方を用いることにより、他の操作空間の線形和で表される操作空間(運動量、デカルト相対座標、連動関節等)に関する目標値を設定することもできる。
(2−1−1−2.実在力算出処理)
一般化逆動力学の第2段階である実在力算出処理では、上記(2−1−1−1.仮想力算出処理)で得られた仮想力fvを、実在の関節力と外力で置換する処理を行う。仮想力による一般化力τv=Jv Tfvを関節部に生じる発生トルクτaと外力feとで実現するための条件は、下記数式(8)で表現される。
ここで、添え字aは駆動関節部の集合(駆動関節集合)を表し、添え字uは非駆動関節部の集合(非駆動関節集合)を表す。すなわち、上記数式(8)の上段は非駆動関節部による空間(非駆動関節空間)の力の釣り合いを表しており、下段は駆動関節部による空間(駆動関節空間)の力の釣合いを表している。Jvu、Jvaは、それぞれ、仮想力fvが作用する操作空間に関するヤコビアンの非駆動関節成分及び駆動関節成分である。Jeu、Jeaは、外力feが作用する操作空間に関するヤコビアンの非駆動関節成分及び駆動関節成分である。Δfvは、仮想力fvのうち、実在力で実現不能な成分を表す。
上記数式(8)の上段は不定であり、例えば下記数式(9)に示すような2次計画問題(QP:Quadratic Programing Problem)を解くことで、fe及びΔfvを得ることができる。
ここで、εは上記数式(8)の上段の両辺の差であり、数式(8)の等式誤差を表す。ξはfeとΔfvとの連結ベクトルであり、変数ベクトルを表す。Q1及びQ2は、最小化の際の重みを表す正定値対称行列である。また、上記数式(9)の不等式拘束は、垂直反力、摩擦錐、外力の最大値、支持多角形等、設定されたタスクに対応する、外力に関する拘束条件を表現するのに用いられる。
例えば、矩形の支持多角形に関する不等式拘束は、下記数式(10)のように表現される。
ここで、zは接触面の法線方向を表し、x及びyはzに垂直な直交2接線方向を表す。(Fx,Fy,Fz)及び(Mx,My,Mz)は、接触点に作用する外力及び外力モーメントである。μt及びμrは、それぞれ並進、回転に関する摩擦係数である。(dx,dy)は支持多角形のサイズを表している。
例えば、上記数式(9)、(10)から、最小ノルム又は最小誤差の解fe、Δfvが求められる。上記数式(9)から得られたfe、Δfvを上記数式(8)の下段に代入することにより、タスクを実現するために必要な関節力τa、すなわち各関節部511a〜511fにおける発生トルクτaを得ることができる。
実際には、設定されたタスクに対応する拘束条件が、上記数式(10)のように、適宜定式化されて設定される。
基底が固定され、非駆動関節が無い系の場合は、関節力のみで全ての仮想力を置換可能であり、上記数式(8)において、fe=0、Δfv=0とすることができる。この場合、上記数式(8)の下段から、関節力τaについて以下の数式(11)を得ることができる。
以上、本実施形態に係る一般化逆動力学を用いた全身協調制御について説明した。上記のように、仮想力算出処理及び実在力算出処理を順に行うことにより、所望のタスクを達成するための関節力τaを得ることができる。すなわち、逆に言えば、算出された関節力τaを関節部511a〜511fの駆動制御における制御値とすることにより、関節部511a〜511fが、所望のタスクを達成するように駆動され得る。
なお、ここまで説明した一般化逆動力学を用いた全身協調制御について、特に、仮想力fvの導出過程や、上記LCPを解き仮想力fvを求める方法、QP問題の解法等の詳細については、例えば、本願出願人による先行特許出願である特開2009−95959号公報や特開2010−188471号公報等を参照することができる。
(2−1−2.理想関節制御について)
次に、本実施形態に係る理想関節制御について説明する。支持アーム装置500の各関節部511a〜511fに設けられるアクチュエータ430の運動は、下記数式(12)に示される二次遅れ系の運動方程式によってモデル化される。
ここで、qはアクチュエータ430の回転角度、qrefはアクチュエータ430の回転角度目標値、Iaはアクチュエータ430における慣性モーメント(イナーシャ)、τaはアクチュエータ430の発生トルク、τeは外部からアクチュエータ430に作用する外トルク、νaはアクチュエータ430における粘性抵抗係数である。上記数式(12)は、各関節部511a〜511fにおけるアクチュエータ430の運動を表す理論モデルである。
上記(2−1−1.一般化逆動力学について)で説明したように、一般化逆動力学を用いた演算により、タスクを実現するために各関節部511a〜511fのアクチュエータ430が発生すべきトルクτa(発生トルクτa)を算出することができる。従って、理想的には、各アクチュエータ430に対して算出された発生トルクτaを上記数式(12)に適用することにより、各アクチュエータ430において上記数式(12)に示す理論モデルに従った応答が実現する、すなわち、アーム部510において所望の動作が実現されるはずである。
しかし、実際には、様々な外乱の影響により、アクチュエータ430における実際の運動と上記数式(12)に示す理論モデルとの間には誤差(モデル化誤差)が生じる場合がある。モデル化誤差は、多リンク構造体(すなわち制御対象であるアーム部510)の重量、重心、慣性テンソル等のマスプロパティに起因するものと、アクチュエータ430内部における摩擦や慣性等に起因するものとに大別することができる。このうち、前者のマスプロパティに起因するモデル化誤差は、CAD(Computer Aided Design)データの高精度化や同定手法の適用によって、理論モデル構築時に比較的容易に低減することが可能である。
一方、後者のアクチュエータ430内部の摩擦や慣性等に起因するモデル化誤差は、例えば減速機426における摩擦等、モデル化が困難な現象に起因している。従って、アクチュエータ430の運動を示す理論モデルを構築する際には、無視できないモデル化誤差が残留し得る。また、上記数式(12)におけるイナーシャIaや粘性抵抗係数νaの値と、実際のアクチュエータ430におけるこれらの値との間に誤差が生じている可能性もある。これらの、モデル化が困難なアクチュエータ430内部における摩擦や慣性等に起因する誤差は、アクチュエータ430の駆動制御において外乱となり得る。よって、このような外乱の影響により、実際には、アクチュエータの運動が、上記数式(12)に示す理論モデル通りには応答しない、すなわち、所望の動作が実現されない場合が生じる。
そこで、本実施形態では、アクチュエータ430にアクティブな制御系を付加することで、上記数式(12)に示す理論モデルに従った理想応答を行うように、アクチュエータ430の応答を補正する。なお、このように、支持アーム装置500のアクチュエータ430(すなわち関節部511a〜511f)が上記数式(12)に示すような理想的な応答を行うようにアクチュエータ430の駆動を制御することを、本実施形態では、理想関節制御と呼称する。
図3を参照して、本実施形態に係る理想関節制御について詳細に説明する。図3は、本実施形態に係る理想関節制御について説明するための説明図である。図3では、理想関節制御に係る各種の演算を行う概念上の演算器をブロックで模式的に図示している。なお、図3に示すブロック図は、支持アーム装置500の関節部511a〜511fのうちの1つの関節部のアクチュエータ430に対する、当該理想関節制御における一連の処理を示すものである。
図3を参照すると、アクチュエータ610は、例えば図2に示すアクチュエータ430の機構を模擬的に示すものである。図3では、アクチュエータ610の構成部材として、モータ611、減速機612、エンコーダ613及びトルクセンサ614が図示されている。これらは、それぞれ、図2に示すモータ424、減速機426、エンコーダ427及びトルクセンサ428に対応するものである。
演算器631は、上記数式(12)に示すアクチュエータ610(すなわち、関節部511a〜511f)の理想的な関節モデル(Ideal Joint Model)に従った演算を行う演算器である。演算器631は、発生トルクτa、外トルクτe、回転角速度(回転角度qの1階微分)を入力として、上記数式(12)の左辺に示す回転角加速度目標値(回転角度目標値qrefの2階微分)を出力することができる。
ここで、アクチュエータ610が上記数式(12)で表される理論モデルに従った応答を行なうことは、上記数式(12)の右辺が与えられたときに、左辺の回転角加速度が達成されることに他ならない。しかしながら、上記のように、外乱の影響により、実際には上記数式(12)に従った理想的な応答が生じないことがある。そこで、本実施形態では、外乱オブザーバ620を導入する。当該外乱オブザーバ620によって外乱に起因するトルクの推定値である外乱推定値τdを算出し、当該外乱推定値τdを用いて、演算器631による計算結果を補正する処理を行う。
以下、具体的な処理について順に説明する。まず、上記(2−1−1.一般化逆動力学について)で説明した方法によって算出された所望のタスクを実現するための発生トルクτaと、トルクセンサ614によって検出された外トルクτeとが、演算器631に入力される。一方、微分演算を行う演算器632に、エンコーダ613によって検出されたアクチュエータ610の回転角度qが入力されることにより、アクチュエータ610の回転角速度(回転角度qの1階微分)が算出される。上記発生トルクτa及び外トルクτeに加えて、演算器632によって算出された回転角速度が演算器631に入力されることにより、演算器631によって回転角加速度目標値(qrefの2階微分)が算出される。算出された回転角加速度目標値は、演算器633に入力される。
演算器633は、アクチュエータ610の回転角加速度に基づいて、アクチュエータ610に生じるトルクを算出する演算器である。本実施形態では、具体的には、演算器633は、演算器631によって算出された回転角加速度目標値に、アクチュエータ610の公称イナーシャ(ノミナルイナーシャ)Jnを乗じることにより、トルク目標値τrefを算出する。理想的な応答においては、アクチュエータ610が当該トルク目標値τrefを出力するように駆動されることにより、所望の動作が実現されるはずであるが、上述したように、実際の応答には外乱等の影響が生じる場合がある。従って、本実施形態においては、外乱オブザーバ620によって算出された外乱推定値τdを用いて当該トルク目標値τrefが補正される。
外乱オブザーバ620の構成について説明する。外乱オブザーバ620は、トルク指令値τと、エンコーダ613によって検出されたアクチュエータ610の回転角度qから算出される回転角速度に基づいて、外乱推定値τdを算出する。ここで、トルク指令値τは、外乱の影響が補正された後の、最終的にアクチュエータ610に与えられる指令値である。つまり、図3に示す制御系では、アクチュエータ610は、当該トルク指令値τに対応するトルクを出力するように駆動される。例えば、外乱推定値τdが略ゼロである場合には、トルク指令値τはトルク目標値τrefと略等しい値になる。
具体的には、外乱オブザーバ620は、演算器634及び演算器635から構成される。演算器634は、アクチュエータ610の回転角速度に基づいてアクチュエータ610に生じるトルクを算出する演算器である。演算器634には、エンコーダ613によって検出された回転角度qに基づいて演算器632によって算出された回転角速度が入力される。演算器634は、入力された当該回転角速度に対して伝達関数Jnsによって表される演算を行うことにより、すなわち、当該回転角速度を微分することにより回転角加速度を求め、更に算出された回転角加速度にノミナルイナーシャJnを乗じることにより、実際にアクチュエータ610に作用しているトルクの推定値(トルク推定値)を算出する。
外乱オブザーバ620内では、当該トルク推定値とトルク指令値τとの差分が取られることにより、外乱によるトルクの値である外乱推定値τdが推定される。具体的には、外乱推定値τdは、1ステップ前の制御におけるトルク指令値τと、現ステップの制御におけるトルク推定値との差分である。演算器634によって算出されるトルク推定値は実際の測定値に基づくものであり、演算器633によって算出されるトルク指令値τは演算器631によって算出されたアクチュエータ610の理想的な理論モデルに基づくものであるため、両者の差分を取ることによって、上記理論モデルでは考慮されていない外乱の影響を推定することができるのである。
演算器635は、系の発散を防ぐために設けられる、ローパスフィルター(LPF:Low Pass Filter)の機能を有する演算器である。演算器635は、伝達関数g/(s+g)で表される演算を行うことにより、入力された値の低周波成分のみを出力し、系を安定化させる。演算器634によって算出されたトルク推定値とトルク目標値τrefとの差分値は、演算器635に入力され、その低周波成分が外乱推定値τdとして算出される。
外乱オブザーバ620によって外乱推定値τdが算出されると、理論値であるトルク目標値τrefに当該外乱推定値τdが加算されることにより、最終的にアクチュエータ610に生じさせるトルク値であるトルク指令値τが算出される。算出されたトルク指令値τは、関節部を表すブロック636に入力される。ブロック636は、関節部511a〜511f(すなわちアクチュエータ610)を模擬的に表すものである。ブロック636では、トルク指令値τに基づいてアクチュエータ610が駆動されることとなる。具体的には、ブロック636では、トルク指令値τが対応する電流値(電流指令値)に変換され、当該電流指令値がモータ611に印加されることにより、当該トルク指令値τに対応するトルクを出力するようにアクチュエータ610が駆動される。
以上説明した処理が、支持アーム装置500のアーム部510を構成する各関節部511a〜511fのアクチュエータ430に対してそれぞれ実行されることにより、各アクチュエータ430が理論モデルに従った理想的な応答をすることとなり、アーム部510が所望のタスクを実現するように、アーム部510の動作が高精度に制御され得る。
以上、図3を参照して、本実施形態に係る理想関節制御について説明した。以上説明した構成を取ることにより、本実施形態に係る関節部511a〜511fの駆動制御においては、摩擦等の外乱成分があった場合であっても、アクチュエータ610の応答を目標値に追従させることが可能となる。
なお、以上説明した理想関節制御の詳細については、例えば、本願出願人による先行特許出願である特開2009−269102号公報等を参照することができる。
ここで、以上説明した全身協調制御及び理想関節制御では、重力補償機構540、550による補償トルクは考慮されていない。つまり、以上説明した全身協調制御及び理想関節制御は、重力補償機構540、550が設けられない関節部511a〜511c、511fに対する制御を表している。重力補償機構540、550が設けられる関節部511d、511eに対しては、以上説明した全身協調制御において、重力補償機構540、550による補償トルクが考慮され得る(なお、理想関節制御において重力補償機構540、550による補償トルクが考慮されてもよい。かかる制御の詳細については、下記(5−1.他の制御方法に係る変形例)で改めて説明する)。以下では、図4を参照して、かかる重力補償機構540、550による補償トルクを考慮した全身協調制御について説明する。
(2−2.機能構成)
図4を参照して、図1に示す本実施形態に係るシステム1及び支持アーム装置500の機能構成について説明する。図4は、本実施形態に係るシステム1及び支持アーム装置500の機能構成の一例を示すブロック図である。なお、図4では、説明のため、アーム部510の動作の制御に関係する機能のみを図示している。また、図4では、重力補償機構540、550による補償トルクを考慮した全身協調制御が行われる場合における機能構成を図示している。つまり、図4に示す機能構成は、重力補償機構540、550が設けられる関節部511d、511eの駆動を制御するための機能構成である。他の関節部511a〜511c、511fの駆動を制御するための機能構成は、図示する構成から、後述する重力補償機構部140及び補償トルク算出部245が削除されたものに対応する。
図4を参照すると、本実施形態に係るシステム1は、支持アーム装置10と、表示装置30と、から構成される。支持アーム装置10及び表示装置30は、図1を参照して説明した支持アーム装置500及び表示装置400にそれぞれ対応するものである。表示装置30の機能については、図1を参照して既に説明しているため、ここではその説明を省略する。
(支持アーム装置10)
図4を参照すると、本実施形態に係る支持アーム装置10は、アーム部120と、顕微鏡部150と、制御装置20と、を有する。これらアーム部120、顕微鏡部150及び制御装置20は、図1を参照して説明した支持アーム装置500のアーム部510、顕微鏡部520及び制御装置530にそれぞれ対応するものである。また、図4では、支持アーム装置10のアーム部120の構成のうち、関節部130及び重力補償機構部140を図示している。これら関節部130及び重力補償機構部140は、図1を参照して説明したアーム部510の関節部511a〜511f及び重力補償機構540、550にそれぞれ対応するものである。重力補償機構部140(すなわち、重力補償機構540、550)及び顕微鏡部150の構成及び機能については、図1を参照して既に説明しているため、ここではその説明を省略する。
(アーム部120)
アーム部120の関節部130は、その機能として、関節駆動部131と、関節状態検出部132と、を有する。
関節駆動部131は、関節部130を回転駆動させるための駆動機構によって構成される。関節駆動部131は、図2に示すアクチュエータ430のモータ424及びモータドライバ425に対応する。関節駆動部131は、後述する制御装置20の駆動制御部260によってその駆動が制御される。具体的には、後述する制御装置20の理想関節制御部250によって、所望のタスクを実現するために関節部130が発生すべきトルクの値(図3に示すトルク指令値τ)が算出される。駆動制御部260は、算出されたトルク指令値τに対応する電流指令値に従ってモータ424を駆動させるように、関節駆動部131に対して指示を出す。当該電流指令値に従って関節駆動部131を構成するモータ424が駆動することにより、トルク指令値τに従ったトルクを発生するように、関節部130が駆動されることになる。
関節状態検出部132は、関節部130の状態を検出する。ここで、関節部130の状態とは、関節部130の運動の状態を意味する。関節部130の状態には、例えば、関節部130の回転角度、回転角速度、回転角加速度、トルク等の情報が含まれる。
関節状態検出部132は、関節部130の回転角度を検出する回転角度検出部133、及び関節部130に作用するトルクを検出するトルク検出部134を有する。回転角度検出部133及びトルク検出部134は、図2に示すアクチュエータ430のエンコーダ427及びトルクセンサ428にそれぞれ対応するものである。例えば、術者が顕微鏡部150を移動させようとして、アーム部120及び/又は顕微鏡部150に対して外力を加えた場合には、その外力に応じた関節部130における回転角度、回転角速度、回転角加速度及び発生トルク等が、関節状態検出部132によって検出される。
関節状態検出部132は、検出した関節部130の状態についての情報を、後述する制御装置20のアーム状態取得部241、補償トルク算出部245及び外乱推定部251に提供する。
(制御装置)
制御装置20は、その機能として、全身協調制御部240と、理想関節制御部250と、駆動制御部260と、を有する。制御装置20を構成するプロセッサが所定のプログラムに従って動作することにより、これらの機能が実現される。また、制御装置20には、制御装置20によって処理される各種の情報を記憶する記憶部220が備えられる。
(記憶部)
記憶部220は、制御装置20によって処理される各種の情報を記憶する。本実施形態においては、記憶部220は、全身協調制御部240及び理想関節制御部250によって行われる全身協調制御及び理想関節制御に関する演算において用いられる各種のパラメータを記憶することができる。例えば、記憶部220は、後述する、全身協調制御部240による全身協調制御に関する演算において用いられるタスク及び拘束条件を記憶する。また、記憶部220は、後述する、アーム状態取得部241がアーム状態を取得する際に用いるアーム部120の内部モデルを記憶する。更に、記憶部220は、全身協調制御及び理想関節制御に関する演算における演算結果や演算過程で算出される各数値等を記憶してもよい。全身協調制御部240及び理想関節制御部250は、記憶部220と相互に情報を送受信しながら各種の処理を行うことができる。
(全身協調制御部)
全身協調制御部240は、一般化逆動力学を用いた全身協調制御に関する各種の演算を行う。全身協調制御部240は、その機能として、アーム状態取得部241と、演算条件設定部242と、仮想力算出部243と、実在力算出部244と、補償トルク算出部245と、を有する。
アーム状態取得部241は、関節状態検出部132によって検出された関節部130の状態に基づいて、アーム部120の状態(アーム状態)を取得する。ここで、アーム状態とは、アーム部120の運動の状態を意味する。例えば、アーム状態には、アーム部120の位置、速度、加速度、力等の情報が含まれる。アーム状態を取得することにより、現在のアーム部120及び顕微鏡部150の位置及び姿勢、並びに、現在アーム部120及び顕微鏡部150に作用している力等が把握され得る。
上述したように、関節状態検出部132は、関節部130の状態として、各関節部130における回転角度、回転角速度、回転角加速度、トルク等の情報を取得している。また、制御装置20に備えられる記憶部220には、アーム部120の内部モデルが格納されている。ここで、内部モデルとは、支持アーム装置10の駆動制御に用いられる制御モデルであり、制御対象であるアーム部120の位置及び姿勢を表す情報(幾何情報)を含むものである。制御装置20は、関節部130の状態、及び当該内部モデルに基づいて、現在のアーム状態を取得することができる。
アーム状態取得部241は、取得したアーム状態についての情報を演算条件設定部242に提供する。
演算条件設定部242は、アーム部120の駆動制御のための(すなわち、関節部130の駆動制御のための)制御値(上述した発生トルクτa)を計算するための演算条件を設定する。演算条件としては、アーム部120に実行させたいタスクや、当該タスクに対応する拘束条件等が設定される。
具体的には、制御装置20の記憶部220に、アーム部120の駆動制御に対して設定可能な各種のタスク、及びこれら各種のタスクにそれぞれ対応する拘束条件の組み合わせが、予め格納されている。演算条件設定部242は、当該記憶部220にアクセスすることにより、これらのタスク及び拘束条件のいずれかを、演算条件として設定することができる。
タスクは、アーム部120の運動に関する各種の目的である。具体的には、タスクは、アーム部120(より詳細には、アーム部120の複数の関節部130及び複数のリンク)及び顕微鏡部150の位置及び姿勢(座標)、速度、加速度並びに力等の目標値であってよい。
例えば、術者が直接操作により顕微鏡部150の位置及び姿勢を移動させた際の、当該顕微鏡部150の当該位置及び姿勢が、タスクとして設定される(すなわち、顕微鏡部150が術者の直接操作に応じた所望の位置及び姿勢になるように当該顕微鏡部150を動作させる旨のタスクが設定される)。あるいは、顕微鏡部150にピボット動作を行わせる旨のタスクや、アーム部120にパワーアシスト動作を行わせる旨のタスク等が設定されてもよい。
ここで、ピボット動作とは、顕微鏡部150が、空間上の所定の点を常に向いた状態で(すなわち、顕微鏡部150の光軸が空間上の所定の点を常に通過する状態で)、当該所定の点を頂点とした円錐の面上を移動する動作である。つまり、ピボット動作では、顕微鏡部150は、空間上の所定の点を頂点とした円錐の軸を旋回軸とした旋回動作を行う。当該所定の点のことを、ピボット点又はピボット中心とも言う。図1に示す構成例において当該ピボット中心を患者340の術部341に設定すれば、顕微鏡部150が当該術部341を撮影したまま当該術部341の周囲を旋回するように動作することとなるため、当該術部341を様々な方向から観察することが可能になる。
また、パワーアシスト動作とは、外部から与えられた力の方向へのアーム部120及び顕微鏡部150の移動をサポートするように関節部130の駆動を制御する動作である。具体的には、パワーアシスト動作では、アーム部120及び顕微鏡部150に対して外部から(例えば術者から)外トルクが加えられた場合に、与えられた外トルクと同じ方向の発生トルクを各関節部130に生じさせるように各関節部130の駆動が制御される。パワーアシスト動作を行うことにより、術者が直接操作によってアーム部120及び顕微鏡部150を移動させる場合に、術者はより小さい力でアーム部120及び顕微鏡部150を移動させることができるため、術者の操作性を向上させることができる。
その他、タスクとしては、一般的に力制御によって動作が制御されるロボット装置においてタスクとして設定され得る各種のものが設定されてよい。
拘束条件は、アーム部120の運動を制限(拘束)する各種の条件である。具体的には、拘束条件は、アーム部120の各構成部材が侵入禁止である領域の座標や、当該各構成部材が移動する際の速度、及び/又は加速度の値の範囲(上限値及び/又は下限値)、当該各構成部材が発生する力の値の範囲(上限値及び/又は下限値)等であってよい。
例えば、上述した顕微鏡部150が術者の直接操作に応じた所望の位置及び姿勢になるように当該顕微鏡部150を動作させるというタスクに対して、アーム部120及び顕微鏡部150の侵入禁止領域や移動速度の上限値等が、拘束条件として設定されてよい。あるいは、例えば、上述した顕微鏡部150にピボット動作を行わせる旨のタスクに対しては、当該顕微鏡部150がピボット動作における円錐の面上に常に位置するように、当該顕微鏡部150の位置に対して拘束条件が課せられる。
なお、拘束条件における各種の物理量の制限範囲は、アーム部120の構造等に基づいて機械的又は制御的に許容され得ない範囲として設定されてもよいし、安全等の観点から術者によって適宜設定されてもよい。例えば、各関節部130における回転可能範囲等に基づいて決定される機構的に不可能な姿勢や、アーム部120の構成に応じて決定される制御が収束しない姿勢(いわゆる特異姿勢)が、アーム部120についての禁止姿勢として、拘束条件において設定されてよい。これにより、支持アーム装置10について、より安定的な制御が実現され得る。また、例えば、安全の観点からアーム部120及び顕微鏡部150の侵入禁止領域や、移動速度の上限値、各関節部130における発生トルクの上限値等が、拘束条件として設定されてよい。これにより、より安全な手術が実現され得る。
アーム部120にどのようなタスクを実行させるかは、例えば制御装置20に設けられる入力部(図示せず)を介して、術者によって適宜設定され得る。演算条件設定部242は、術者から入力された指示に従い、所定のタスク及び拘束条件を演算条件として設定することができる。
演算条件設定部242は、アーム状態についての情報、並びに設定したタスク及び拘束条件についての情報を仮想力算出部243に提供する。
仮想力算出部243は、演算条件設定部242によって設定されたタスクを実行するために必要な、アーム部120の各関節部130に作用する仮想力を算出する。仮想力算出部243は、上記(2−1−1−1.仮想力算出処理)で説明した一連の処理を実行することにより、仮想力を算出する。この仮想力の算出処理の内容については既に説明しているため、その詳細な説明を省略する。
仮想力算出部243は、算出した仮想力についての情報を、実在力算出部244に提供する。
補償トルク算出部245は、重力補償機構部140による補償トルクを算出する。図1を参照して説明したように、本実施形態では、第4軸O4に対応する関節部511d、及び第5軸O5に対応する関節部511eに対して、重力補償機構部140(すなわち、重力補償機構540、550)が設けられる。これら重力補償機構部140は、バネ542、552によって構成されており、当該バネ542、552の復元力により、関節部511d及び関節部511eにおける回転角度に応じた復元トルクを発生させる。補償トルク算出部245は、関節状態検出部132から送信される、関節部130(関節部511d及び関節部511e)における回転角度についての情報に基づいて、現在のアーム部120の姿勢において重力補償機構部140によって生じている補償トルクの値を算出する。
具体的に、重力補償機構540を例にして説明すると、当該重力補償機構540を構成するバネ542による復元力Fsは、関節部511dにおける回転角度qの関数として、下記数式(13)のように表すことができる。
ここで、f0はバネ542の初期引張力(すなわち、q=0のときにバネ542が発生させている復元力)、kはバネ542のバネ定数、l(q)は回転角度qの関数として表したバネ542の長さ、l0はバネ542の初期長さ(すなわち、q=0のときのバネ542の長さ)である。l(q)及びl0は、アーム部120の構造(より詳細には、重力補償機構540の構造、及び関節部511dと重力補償機構540との位置関係)に応じて、幾何的な考察により算出され得る。また、kはバネ542の特性に応じた既知の定数であり、f0は、当該バネ定数kと初期長さl0から算出され得る。
また、復元トルクについてのモーメントアームをDとすると、当該Dは関節部511dにおける回転角度qの関数D(q)として表現できる。当該D(q)も、アーム部120の構造(より詳細には、重力補償機構540の構造、及び関節部511dと重力補償機構540との位置関係)に応じて、幾何的な考察により算出され得る。
従って、重力補償機構540による補償トルクGm(q)は、上記数式(13)と、当該モーメントアームD(q)を用いて、下記数式(14)のように表すことができる。
補償トルク算出部245は、上記数式(14)を用いて、現在のアーム部120の姿勢において重力補償機構540によって生じている補償トルクの値を算出することができる。同様に、重力補償機構550によって生じている補償トルクも、関節部511eにおける回転角度の関数として表現できるため、補償トルク算出部245は、当該関数を用いて、現在のアーム部120の姿勢において重力補償機構550によって生じている補償トルクの値を算出することができる。
補償トルク算出部245は、算出した現在のアーム部120の姿勢において重力補償機構部140(重力補償機構540、550)によって生じている補償トルクの値を、実在力算出部244に提供する。
実在力算出部244は、仮想力算出部243によって算出された仮想力に基づいて、演算条件設定部242によって設定されたタスクを実行するために必要な、アーム部120の各関節部130に実際に作用する実在力を算出する。実在力算出部244は、上記(2−1−1−2.実在力算出処理)で説明した一連の処理を実行することにより、実在力を算出する。この際、実在力算出部244は、当該処理において、重力補償機構部140による補償トルクを考慮して、実在力を算出する。
具体的には、アーム部120は、基底が固定され、非駆動系が無い系であるため、アーム部120についての実在力の算出処理では、上記数式(8)は、上記数式(11)のように表される。従って、実在力算出部244は、仮想力算出部243によって算出された仮想力fvを用いて、上記数式(11)に従って、各関節部130について、実在力、すなわち発生トルクτaを算出する。ここで計算される発生トルクτaには、重力補償機構部140が設けられない場合に必要となる重力補償のためのトルク(すなわち、アーム部120の自重による負荷トルクGを打ち消すだけのトルク)が含まれている。なお、各関節部130に作用するアーム部120の自重による負荷トルクGは、アーム部120の姿勢に応じて異なるため、この発生トルクτaに含まれる重力補償のためのトルクの値は、全身協調制御部240の制御周期(すなわち、発生トルクτaを算出する周期)ごとに異なる値として算出され得る。
実在力算出部244は、重力補償機構部140が設けられない関節部130(図1に示す構成例であれば、関節部511a、511b、511c、511f)については、上記数式(11)に従って算出した発生トルクτaを、そのままこれらの関節部130における実在力(発生トルク)とする。一方、実在力算出部244は、重力補償機構部140が設けられる関節部130(図1に示す構成例であれば、関節部511d、511e)については、上記数式(11)に従って算出した発生トルクτaから、補償トルク算出部245によって算出された補償トルクを差し引いた値を、これらの関節部130における実在力(発生トルク)とする。かかる処理により、これらの関節部130について最終的に算出される発生トルクは、その重力補償成分として、アーム部120の自重による負荷トルクGを打ち消すだけのトルクのうち重力補償機構部140による補償トルクでは賄いきれない分のみを含むものとなる。
実在力算出部244は、算出した実在力、すなわち各関節部130において発生すべき発生トルクτaについての情報を、理想関節制御部250に提供する。
(理想関節制御部)
理想関節制御部250は、理想関節制御に関する各種の演算を行う。理想関節制御部250は、その機能として、外乱推定部251と、指令値算出部252と、を有する。なお、理想関節制御部250が行う処理は、上記(2−1−2.理想関節制御について)で説明した一連の処理に対応している。
外乱推定部251は、図3に示す外乱オブザーバ620に対応する機能を有する。外乱推定部251は、トルク指令値τ(実在力算出部244によって算出された発生トルクτaと、回転角度検出部133によって検出された関節部130に作用する外トルク値と、に基づいて、上記数式(12)に示す関節部130の理論モデルに従って求められる、関節部130に作用するトルク値)と、回転角度検出部133によって検出された関節部130の回転角度に基づいて算出される関節部130に作用するトルク値と、の差分を取ることにより、外乱によるトルクの値である外乱推定値τdを算出する。なお、ここでいうトルク指令値τは、最終的にアーム部120の関節部130に生じさせるトルクを表す指令値である。外乱推定部251が外乱推定値τdの算出に用いるトルク指令値τは、1ステップ前の制御におけるトルク指令値τであってよい。
指令値算出部252は、外乱推定部251によって算出された外乱推定値τdを用いて、最終的にアーム部120の関節部130に生じさせるトルクを表す指令値である、トルク指令値τを算出する。具体的には、指令値算出部252は、上記数式(12)に示す関節部130の理論モデルから算出されるトルク目標値τrefに外乱推定部251によって算出された外乱推定値τdを加算することにより、トルク指令値τを算出する。
指令値算出部252は、算出したトルク指令値τについての情報を、駆動制御部260に提供する。
(駆動制御部)
駆動制御部260は、指令値算出部252によって算出されたトルク指令値τに基づいて、当該トルク指令値τに対応するトルクを関節部130において発生させるように、当該関節部130の関節駆動部131の駆動を制御する。具体的には、駆動制御部260は、トルク指令値τを対応する電流指令値に変換し、当該電流指令値に従った電流で、関節駆動部131を構成するモータ424を駆動させるように、当該関節駆動部131を構成するモータドライバ425に対して指示を出す。駆動制御部260からの制御により、理想関節制御部250によって算出されたトルク指令値τに対応するトルクを生じさせるようにアーム部120を構成する各関節部130が駆動されることにより、重力補償機構部140によって補償しきれなかった分の重力補償を行いつつ、所望のタスクが実現されるようにアーム部120が駆動されることとなる。
以上、図4を参照して、本実施形態に係るシステム1及び支持アーム装置10の機能構成について説明した。
ここで、全身協調制御部240の制御周期(すなわち、発生トルクτaを算出する周期)と、理想関節制御部250の制御周期(すなわち、トルク指令値τを算出する周期)は、必ずしも同じでなくてよい。例えば、上述したように、全身協調制御部240は、所望のタスクを実現するような各関節部130における発生トルクτaを算出するが、アーム部120及び顕微鏡部150に対して追加的に外力が与えられず、その位置及び姿勢が変化しない場合には、各関節部130における発生トルクτaも略一定のままであると考えられる。従って、タスクの内容や支持アーム装置10の用途にもよるが、必ずしも発生トルクτaを高い頻度で計算し直す必要はない。よって、全身協調制御部240の制御周期は比較的長くてもよいと考えられる。
一方、上述したように、理想関節制御部250は、外乱の影響を考慮して、関節部130が理想的な応答をするようなトルク指令値τを算出する。従って、時々刻々と変化する外乱に対応して、トルク指令値τを高精度に算出しようと思うと、当該トルク指令値の算出は、比較的短い周期で行われることが好ましい。つまり、理想関節制御部250の制御周期は比較的短い方が好ましいと考えられる。
このように、全身協調制御部240に求められる制御周期と、理想関節制御部250に求められる制御周期は異なることがある。従って、制御装置20は、全身協調制御部240と理想関節制御部250による制御周期が互いに異なるように、具体的には、理想関節制御部250の制御周期の方が全身協調制御部240の制御周期よりも短いように、構成されてもよい。
なお、図6に示す機能構成は、本実施形態に係るシステム1及び支持アーム装置10の機能構成のあくまで一例であり、システム1及び支持アーム装置10の機能構成はかかる例に限定されない。システム1及び支持アーム装置10は、以上説明した機能を実現可能に構成されればよく、一般的に想定され得るあらゆる構成を取ることができる。
例えば、支持アーム装置10は、図示した機能以外にも、一般的な支持アーム装置(観察装置)が有する各種の機能を有してよい。例えば、支持アーム装置10は、上述したように、術者が支持アーム装置10に対して各種の情報を入力するための入力部等の機能を有し得る。当該入力部は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ及びレバー等の各種の入力装置により構成され得る。図示を省略した機能は、一般的な支持アーム装置(観察装置)に設けられる機能と同様であってよいため、その詳細な説明は省略する。
また、例えば、支持アーム装置10の制御装置20が備える各機能は、1台の装置においてその全てが実行されなくてもよく、複数の装置の協働によって実行されてもよい。例えば、全身協調制御部240、理想関節制御部250及び駆動制御部260に含まれる機能のうちの1又は複数のいずれかの機能のみを有する一の装置が、他の機能を有する他の装置と通信可能に接続されることにより、図示する制御装置20と同等の機能が実現されてもよい。
また、図4に示す本実施形態に係るシステム1、特に支持アーム装置10の制御装置20の各機能を実現するためのコンピュータプログラムを作製し、PC等の処理装置に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
(3.重力補償機構のバネの設計例)
図1に示す本実施形態に係る重力補償機構540、550のバネ542、552の具体的な設計例について説明する。ここでは、一例として、関節部511dに設けられる重力補償機構540の具体的な設計例について説明する。
上記数式(14)を参照して説明したように、重力補償機構540のバネ542の長さl(q)は、関節部511dにおける回転角度qの関数として表現できる。一方、図4に示す実在力算出部244の機能について説明した際に上述したように、関節部511dに作用するアーム部510の自重による負荷トルクG(q)、及び重力補償機構540による補償トルクGm(q)も、当該関節部511dにおける回転角度qの関数として表現され得る。従って、これらl(q)、G(q)、Gm(q)から、負荷トルクG(q)をバネ542の復元力に起因する補償トルクGm(q)によって完全にキャンセルし得るような、理想的なバネ542の特性(長さ(伸縮量)と復元力との関係)を求めることができる。
図5は、このような、重力補償機構540のバネ542の理想的な特性の一例を示す図である。図5では、横軸にバネ542の長さl(q)を取り、縦軸にその長さl(q)において負荷トルクG(q)を完全にキャンセルするためにバネ542が発生すべき復元力をとり、両者の関係を丸い形のマーカーでプロットしている。
図5に示すように、理想的なバネ542の特性は必ずしも線形にはならないため、かかる特性を有するバネ542を現実に作製することは不可能である。従って、本実施形態では、使用頻度が高い角度範囲として関節部511dの回転角度qの実使用範囲を設定し、当該実使用範囲に対応するバネ542の長さl(q)の実使用範囲における、この理想的なバネ542の特性を線形近似し、かかる近似直線に示す特性を有するバネを、重力補償機構540のバネ542として使用する。この際、マージンを考慮して、実使用範囲よりも広い範囲において線形近似を行うことが好ましい。図5では、かかる線形近似における近似直線も併せて図示している(当該近似直線の両端に模擬的に四角のマーカーを付している)。
かかる特性を有するバネ542を用いて重力補償機構540を構成した場合には、図5に示す理想的な復元力を示す丸い形のマーカーと、近似直線との差分が、負荷トルクG(q)のうち、重力補償機構540では賄いきれない力に対応することとなる。本実施形態に係るでは、この不足分を、関節部511dに設けられるアクチュエータ430の発生トルクによって賄い、重力補償を行うのである。
ここでは一例として重力補償機構540の設計例について説明したが、重力補償機構550についても同様にバネ552を設計すればよい。なお、実際には、上述したl(q)、Gm(q)は、重力補償機構540の組み立て誤差等により、支持アーム装置500ごとに異なることが想定される。従って、支持アーム装置500ごとに、l(q)、Gm(q)を求める処理を行い、その結果に基づいてバネ542、552が設計されることにより、より精度良くバネ542、552を設計することが可能になる。ただし、この場合には、支持アーム装置500ごとに異なるバネ542、552を作製する必要が生じるため、量産化の観点からは好ましくない。従って、かかる事態を避けるために、重力補償機構540、550に、バネ542、552の張設位置を調整する機構が設けられてもよい。かかる機構を用いて所定のl(q)、Gm(q)が実現されるようにバネ542、552の張設位置を適宜調整することにより、同一の特性を有するバネ542、552を用いて、図5に示す近似直線のような所望の特性を実現することが可能になるため、製造コストをより低減することができ、量産化の観点からも好適である
(4.支持アーム装置の制御方法)
図6を参照して、本実施形態に係る支持アーム装置10のアーム部120の制御方法の処理手順について説明する。図6は、本実施形態に係る支持アーム装置10のアーム部120の制御方法の処理手順の一例を示すフロー図である。
なお、図6に示す各処理は、図5に示す支持アーム装置10の制御装置20によって実行される各処理に対応している。すなわち、制御装置20を構成するプロセッサが所定のプログラムに従って動作することにより、図6に示す各処理が実行される。図6に示す各処理の詳細については、上記(2−2.機能構成)で既に説明しているため、以下の制御方法の処理手順についての説明では、各処理の概要を述べるに留め、その詳細な説明は省略する。
図6を参照すると、本実施形態に係る支持アーム装置10のアーム部120の制御方法では、まず、関節部130の状態に基づいて、アーム状態が取得される(ステップS101)。ここで、関節部130の状態とは、例えば、図5に示す関節状態検出部132によって検出される、関節部130の回転角度、発生トルク等である。また、アーム状態とは、アーム部120の運動の状態のことであり、例えばアーム部120の位置、速度、加速度、力等である。ステップS101に示す処理は、図5に示すアーム状態取得部241によって実行される処理に対応している。
次に、演算条件が設定される(ステップS103)。ステップS103では、例えばユーザによって指定されたタスク、及び当該タスクに対応する拘束条件が、当該タスクを実行するようにアーム部120を駆動するための制御値(上述した発生トルクτa)を計算するための演算条件として、設定される。ステップS103に示す処理は、図5に示す演算条件設定部242によって実行される処理に対応している。
次に、重力補償機構部140による補償トルクが算出される(ステップS105)。ステップS105では、例えば、図5に示す関節状態検出部132によって検出される関節部130の回転角度に基づいて、上記数式(14)に示す重力補償機構部140による補償トルクGm(q)が算出される。ステップS105に示す処理は、図5に示す補償トルク算出部245によって実行される処理に対応している。
次に、アーム状態及び演算条件に基づいて、一般化逆動力学を用いた全身協調制御についての演算が行われ、関節部130における発生トルクτaが算出される(ステップS107)。ステップS107では、まず、ステップS103において設定されたタスクを実行するために必要な、アーム部120の各関節部130に作用する仮想力が算出される。次いで、算出された仮想力に基づいて、ステップS103において設定されたタスクを実行するために必要な、アーム部120の各関節部130に実際に作用する実在力が算出されることにより、各関節部130における発生トルクτaが算出される。この際、ステップS105で算出された補償トルクを加味して(すなわち、アーム部120の自重による負荷トルクからステップS105で算出された補償トルクを差し引いたものを、アーム部120の自重による重力成分として)、発生トルクτaが算出される。これにより、重力補償機構部140による補償トルクでは補償しきれなかった重力成分を補償しつつ、ステップS103で設定されたタスクを実行し得るような、関節部130において発生すべき発生トルクτaが算出される。ステップS107に示す処理は、図5に示す仮想力算出部243及び実在力算出部244によって実行される処理に対応している。
次に、理想関節制御についての演算が行われ、発生トルクτaからトルク指令値τが算出される(ステップS109)。ステップS109では、具体的には、外乱によるトルク値である外乱推定値τdが算出され、当該外乱推定値τdを用いて、最終的にアーム部120の関節部130に生じさせるトルクを表す指令値であるトルク指令値τが算出される。ステップS109に示す処理は、図5に示す理想関節制御部250によって実行される処理に対応している。
次に、算出されたトルク指令値τに基づいて、アーム部120の関節部130の駆動が制御される(ステップS111)。これにより、重力補償機構部140による補償トルクでは補償しきれなかった重力成分を補償しつつ、ステップS103で設定されたタスクを実行し得るように、アーム部120が駆動されることとなる。ステップS111に示す処理は、図5に示す駆動制御部260によって実行される処理に対応している。
以上、図6を参照して、本実施形態に係る支持アーム装置10の制御方法の処理手順について説明した。
(5.変形例)
以上説明した実施形態におけるいくつかの変形例について説明する。
(5−1.他の制御方法に係る変形例)
上述した実施形態では、図5を参照して説明したように、実在力(すなわち、発生トルクτa)を算出する際に補償トルクを加味していた。しかし、本実施形態はかかる例に限定されない。例えば、補償トルクを加味する処理は、理想関節制御部250においてトルク指令値τを算出する際に行われてもよい。
図7を参照して、このような、制御方法が異なる変形例に係るシステム及び支持アーム装置の機能構成について説明する。図7は、制御方法が異なる変形例に係るシステム及び支持アーム装置の機能構成の一例を示すブロック図である。図7では、図4と同様に、支持アーム装置のアーム部の動作の制御に関係する機能のみを図示している。また、図7では、図4と同様に、重力補償機構540、550が設けられる関節部511d、511eの駆動を制御するための機能構成を示している。
図7を参照すると、本変形例に係るシステム2は、支持アーム装置10aと、表示装置30と、から構成される。また、支持アーム装置10aは、アーム部120と、顕微鏡部150と、制御装置20aと、を有する。ここで、システム2は、図5を参照して説明したシステム1において、支持アーム装置10の制御装置20の機能構成が変更されたものに対応する。システム2におけるその他の機能については、システム1と同様であるため、ここではその説明を省略する。
図7を参照すると、本変形例に係る制御装置20aは、その機能として、全身協調制御部240aと、理想関節制御部250aと、駆動制御部260と、を有する。制御装置20aを構成するプロセッサが所定のプログラムに従って動作することにより、これらの機能が実現される。また、制御装置20aには、制御装置20aによって処理される各種の情報を記憶する記憶部220が備えられる。駆動制御部260及び記憶部220の機能は、図5に示す制御装置20におけるこれらの機能と同様であるため、ここではその説明を省略する。
全身協調制御部240aは、一般化逆動力学を用いた全身協調制御に関する各種の演算を行う。全身協調制御部240aは、その機能として、アーム状態取得部241と、演算条件設定部242と、仮想力算出部243と、実在力算出部244aと、を有する。このように、全身協調制御部240aは、図5に示す全身協調制御部240に対して、補償トルク算出部245の機能が除かれるとともに、これに応じて実在力算出部244の機能が変更されたものに対応する。
全身協調制御部240aにおいて、アーム状態取得部241、演算条件設定部242及び仮想力算出部243の機能は、図5に示す制御装置20におけるこれらの機能と同様である。本変形例では、全身協調制御部240aでは、補償トルクの算出処理は行われず、実在力算出部244aは、補償トルクを加味することなく、上記(2−1−1−2.実在力算出処理)で説明した一連の処理を実行することにより、発生トルクτaを算出する。つまり、ここで算出される発生トルクτaは、重力補償機構部140が設けられない場合に必要となる重力補償のためのトルク(すなわち、アーム部120の自重による負荷トルクGを打ち消すだけのトルク)を含むものである。実在力算出部244aは、算出した発生トルクτaについての情報を、理想関節制御部250aに提供する。
理想関節制御部250aは、理想関節制御に関する各種の演算を行う。理想関節制御部250aは、その機能として、外乱推定部251と、指令値算出部252と、補償トルク算出部253と、を有する。このように、理想関節制御部250aは、図5に示す理想関節制御部250に対して、補償トルク算出部253の機能が追加されたものに対応する。理想関節制御部250aは、上記(2−1−2.理想関節制御について)で説明した一連の処理を実行することによりトルク指令値τを算出するが、本変形例では、その際、理想関節制御部250aは、重力補償機構部140による補償トルクを加味して、トルク指令値τを算出する。
具体的には、理想関節制御部250aにおいて、補償トルク算出部253の機能は、図4に示す補償トルク算出部245の機能と同様である。補償トルク算出部253は、上記数式(14)を用いて、現在のアーム部120の姿勢において重力補償機構部140によって生じている補償トルクの値を算出する。補償トルク算出部253は、算出した現在のアーム部120の姿勢において重力補償機構部140(重力補償機構540、550)によって生じている補償トルクの値を、外乱推定部251に提供する。
外乱推定部251及び指令値算出部252の機能は、図4に示すこれらの機能と同様である。つまり、外乱推定部251は、外乱によるトルクの値である外乱推定値τdを算出する。また、指令値算出部252は、外乱推定部251によって算出された外乱推定値τdを用いて、最終的にアーム部120の関節部130に生じさせるトルクを表す指令値である、トルク指令値τを算出する。ただし、本変形例では、この際、外乱推定部251は、実在力算出部244aによって算出された発生トルクτaの代わりに、当該発生トルクτaから補償トルク算出部253によって算出された補償トルクを差し引いた値を、入力値として用いる。つまり、本変形例では、外乱推定部251及び指令値算出部252は、入力値として、実在力算出部244aによって算出された発生トルクτaの代わりに、当該発生トルクτaから補償トルク算出部253によって算出された補償トルクを差し引いた値を用いること以外は、上述した実施形態と同様の処理を行う。これにより、重力補償機構部140による補償トルクが加味されたトルク指令値τが算出され得る。
指令値算出部252は、算出したトルク指令値τについての情報を、駆動制御部260に提供する。駆動制御部260は、指令値算出部252によって算出されたトルク指令値τに基づいて、当該トルク指令値τに対応するトルクを発生させるように、関節部130の関節駆動部131の駆動を制御する。これにより重力補償機構部140によって補償しきれなかった分の重力補償を行いつつ、所望のタスクが実現されるようにアーム部120が駆動されることとなる。
以上、制御方法が異なる変形例に係るシステム2及び支持アーム装置10aの機能構成について説明した。本変形例のように、全身協調制御に係る演算ではなく、理想関節制御に係る演算において補償トルクを加味することでも、最終的なアクチュエータ430に対するトルク指令値τとして、当該補償トルクを考慮した当該トルク指令値τを算出することができ、アーム部120の動作の制御としては、同様の制御を行うことが可能になる。
ここで、上記(2−2.機能構成)で説明したように、制御装置20、20aにおいて、理想関節制御に係る演算の制御周期(すなわち、トルク指令値τを算出する周期)は、全身協調制御に係る演算の制御周期(すなわち、発生トルクτaを算出する周期)よりも短く設定され得る。つまり、理想関節制御部250、250aは、その制御周期が比較的短いという特徴を有し得る。
一方、全身協調制御に係る演算は、理想関節制御に係る演算に比べて演算量が大きくなる傾向がある。従って、本実施形態では、大きな演算量を処理可能なように、全身協調制御部240、240aを構成するハードウェアには、より多くのメモリが割り当てられ得る。このように、つまり、全身協調制御部240、240aは、重い演算を好適に処理可能であるという特徴を有し得る。
このように、全身協調制御部240、240aと、理想関節制御部250、250aとは、その演算処理能力について、異なる特徴を有し得る。従って、補償トルク算出部245、253の機能を、全身協調制御部240、240aに含めるか、理想関節制御部250、250aに含めるか(すなわち、制御装置20、20aの機能構成を、図4に示す実施形態のように構成するか、図7に示す変形例のように構成するか)は、かかる全身協調制御部240、240aと理想関節制御部250、250aの演算処理上の特徴を考慮して、適宜決定されてよい。例えば、重力補償の精度をより高めるために、重力補償に係る演算をより短い周期で行うことを重視する場合には、図7に示す機能構成のように、補償トルク算出部253の機能を理想関節制御部250aに含め、補償トルク算出部253によって算出された補償トルクを加味したトルク指令値τの算出処理を、理想関節制御部250aによって短い周期で行うことが好ましい。一方、例えば、重力補償の精度がそこまで求められない場合には、図4に示す機能構成のように、より大きな演算量を処理可能な全身協調制御部240に補償トルク算出部253の機能を含め、補償トルク算出部253によって算出された補償トルクを加味した発生トルクτaの算出処理を、全身協調制御部240によって行うことが好ましい。
(5−2.吊り下げ型の支持アーム装置に係る変形例)
上述した実施形態では、図1を参照して説明したように、支持アーム装置500は、床面に設置されるベース部(図1では図示せず)にアーム部510の基端が接続され、当該ベース部からアーム部510が延伸するように構成されていた。しかし、本実施形態はかかる例に限定されない。支持アーム装置500は、そのアーム部510の先端に取り付けられた医療用器具をその用途に応じた所望の位置及び姿勢に制御可能に構成されればよく、支持アーム装置500の構成は任意であってよい。例えば、支持アーム装置500は、そのアーム部510が天井から吊り下げられた、いわゆる吊り下げ型の支持アーム装置であってもよい。
図8を参照して、このような、支持アーム装置が吊り下げ型の支持アーム装置として構成される変形例について説明する。図8は、支持アーム装置が吊り下げ型の支持アーム装置として構成される変形例に係るシステム及び支持アーム装置の概略構成を示す図である。
図8では、本変形例に係るシステム3を用いて、手術台330上の患者340に対して開腹手術が行われている様子が図示されている。図8を参照すると、システム3は、支持アーム装置500aと、表示装置400と、から構成される。ここで、本変形例に係るシステム3は、図1を参照して説明したシステム1において、支持アーム装置500のアーム部510の構成が変更されたものに対応する。システム3におけるその他の構成及び機能は、システム1と同様であるため、ここではその説明を省略する。
図8を参照すると、本変形例に係る支持アーム装置500aは、アーム部510aと、当該アーム部510aの先端に取り付けられる顕微鏡部520と、支持アーム装置500aの動作を制御する制御装置530と、を有する。顕微鏡部520及び制御装置530の構成及び機能は、システム1と同様であるため、ここではその説明を省略する。
図示するように、アーム部510aは、その基端部が手術室内の天井に取り付けられ、天井から吊り下げられるように設置される。このように、支持アーム装置500aは、いわゆる吊り下げ型の支持アーム装置である。
アーム部510aは、その基端が天井に取り付けられること以外は、図1に示す支持アーム装置500のアーム部510と同様の構成を有する。すなわち、アーム部510aは、各回転軸(先端側から順に、第1軸O1、第2軸O2、第3軸O2、第4軸O4、第5軸O5及び第6軸O6と呼称する)に対応する位置にそれぞれ設けられる関節部511a、511b、511c、511d、511e、511fと、関節部511b〜511fによって互いに回動可能に連結される複数のリンク512a、512b、512c、512d、512e、512fと、から構成される。また、アーム部510aの先端には、関節部511aを介して顕微鏡部520が取り付けられる。
略鉛直方向に延伸するリンク512fの基端が天井に取り付けられる。リンク512fの先端は、関節部511fを介してリンク512eの基端と連結され、リンク512fは、当該関節部511fを介してリンク512eを回動可能に支持する。以下、同様に、リンク512e、512d、512c、512bの先端が、それぞれ、関節部511e、511d、511c、511bを介して、リンク512d、512c、512b、512aの基端と連結される。そして、リンク512e、512d、512c、512bは、それぞれ、関節部511e、511d、511c、511bを介して、リンク512d、512c、512b、512aを回動可能に支持する。更に、リンク512aの先端には、関節部511aを介して、顕微鏡部520が連結される。リンク512aは、関節部511aを介して、顕微鏡部520を回動可能に支持する。
また、関節部511a〜511fには、図2に示すアクチュエータ430が設けられる。各関節部511a〜511fのアクチュエータ430の駆動がそれぞれ制御装置530によって制御されることにより、アーム部510の駆動が制御される。
更に、アーム部510と同様に、アーム部510aにも、第4軸O4に対応する関節部511d、及び第5軸O5に対応する関節部511eに対して、それぞれ、重力補償機構540a、550aが設けられる。
重力補償機構540aは、関節部511dの先端側に接続されるリンク512cに対して固定的に設けられる(すなわち、関節部511dまわりにリンク512cとともに回動する)掛止部541aと、当該掛止部541aと関節部511dの基端側に接続されるリンク512dとの間に張設されるバネ542aと、から構成される。かかる構成により、重力補償機構540aは、バネ542aの復元力により、関節部511dに作用するアーム部510aの自重による負荷トルクを打ち消す方向の補償トルクを当該関節部511dに与える。
重力補償機構550aは、関節部511eの先端側に接続されるリンク512dと関節部511dの基端側に接続されるリンク512eとの間に張設されるバネ551aから構成される。かかる構成により、重力補償機構550aは、バネ551aの復元力により、関節部511eに作用するアーム部510aの自重による負荷トルクを打ち消す方向の補償トルクを当該関節部511eに与える。
このように、重力補償機構540a、550aは、上述した実施形態における重力補償機構540、550と略同様の機能を有するものである。本変形例では、上述した実施形態と同様に、重力補償機構540a、550aと、関節部511d、511eに設けられるアクチュエータ430と、を併用することにより、当該関節部511d、511eにおける重力補償を行う。従って、重力補償機構540a、550aをより簡易に構成することができるとともに、関節部511d、511eに設けられるアクチュエータ430をより小型化することが可能になる。
以上、支持アーム装置が吊り下げ型の支持アーム装置として構成される変形例に係るシステム3及び支持アーム装置500aの構成について説明した。以上説明したように、本実施形態に係る重力補償方法は、吊り下げ型の支持アーム装置500aに対しても適用可能であり、アーム部510a、及び支持アーム装置500a全体をより簡易に、かつより軽量に構成することが可能になるという、上述した実施形態と同様の効果を得ることができる。
(5−3.その他の変形例)
その他、本実施形態は、以下のように構成されてもよい。
例えば、上述した実施形態では、支持アーム装置500、500aは、アーム部510、510aの先端に顕微鏡部520を備えた観察装置として構成されていたが、本実施形態はかかる例に限定されない。例えば、支持アーム装置500、500aは、アーム部510、510aの先端に内視鏡や光学式の顕微鏡部等の観察用器具が設けられた、他の観察装置であってもよい。また、アーム部510、510aの先端に設けられる医療用器具は観察用器具に限定されず、アーム部510、510aの先端には、他の各種の医療用器具が取り付けられてよい。例えば、アーム部510、510aの先端には、鉗子、レトラクタ、内視鏡用若しくは顕微鏡用の光源、又は、例えば血管封止に用いられる手術用エナジーデバイス等の各種の処置具が接続されてもよい。
また、上述した実施形態では、支持アーム装置500、500aのアーム部510、510aの関節部511a〜511fのうち、第4軸O4に対応する関節部511d、及び第5軸O5に対応する511eを重力補償の対象とし、これら関節部511d、511eに対して重力補償機構540、550、540a、550aを設けていたが、本実施形態はかかる例に限定されない。本実施形態では、これら関節部511d、511eのうちのいずれか一方のみが重力補償の対象となってもよいし、他の関節部が重力補償の対象となってもよい。
ここで、アーム部510、510aの各関節部511a〜511fは、ヨー軸又はピッチ軸のいずれかの回転軸を有するが、ヨー軸については、その回転軸方向から、アーム部510、510aの自重による負荷トルクはゼロであるため、そもそも重力補償を行う必要がない。また、ピッチ軸のうち、水平面とその回転軸方向とのなす角が変化するものについては、その角度が変化することによって、アーム部510、510aの自重による負荷トルク、及び重力補償機構540、550、540a、550aによる補償トルクも変化するため、重力補償機構540、550、540a、550aの設計が困難である。更に、ピッチ軸であっても、回転軸方向が水平面と平行な状態から大きく外れている場合(例えば、極端には、回転軸方向が水平面と直交している場合)には、アーム部510、510aの自重による負荷トルクが小さくなる(回転軸方向と水平面とが直交している場合にはゼロになる)ため、そもそも重力補償を行う必要がない。従って、本実施形態では、重力補償の対象となる関節部(便宜的に補償関節部ともいう)は、好適に、ピッチ軸のうち、鉛直方向と直交する平面(すなわち、水平面)とその回転軸方向とのなす角が一定であるものであり得る。更に、重力補償を行う意義を考慮すれば、負荷トルクの影響を最も受けやすい水平面と回転軸とが平行である関節部が、補償関節部であることが特に好ましい。
アーム部510、510aにおけるヨー軸及びピッチ軸の配置を考えてみると、ピッチ軸について、その回転軸方向が鉛直方向と平行でないヨー軸が基端側に設けられている場合には、当該ヨー軸まわりの回転に応じて、水平面と当該ピッチ軸の回転軸方向とのなす角は変化することとなる。従って、ピッチ軸のうち水平面とその回転軸方向とのなす角が一定であるものは、アーム部510、510aの基端側に位置し得る。一方、一般的に、6つの回転軸を有するアーム部は、図1及び図7に示すアーム部510、510aのように、基端側から、ヨー軸(第6軸O6)、ピッチ軸(第5軸O5)、ピッチ軸(第4軸O4)、ヨー軸(第3軸O3)、ピッチ軸(第2軸O2)及びヨー軸(第1軸O1)が、この順に配置されるとともに、その最も基端側のヨー軸(第6軸O6)は鉛直方向と平行な回転軸を有するように配置されることが多い。かかる構成を有するアーム部510、510aにおいては、最も基端側に設けられるヨー軸(第6軸O6)と、その次に設けられるヨー軸(第3軸O3)との間に位置するピッチ軸(第5軸O5、第4軸O4)は、その回転軸方向が水平面と平行なまま一定であるピッチ軸となり得る。従って、一般的なアーム部の構成を想定すると、補償関節部としては、基端側に設けられるピッチ軸に対応する関節部が採用されることが好ましいと言える。
なお、図1及び図7に示す構成例であれば、上記のように、第4軸O4及び第5軸O5は、その回転軸方向が水平面と平行なまま一定であるピッチ軸である。従って、上述した実施形態では、重力補償を行うために好適な関節部として、これら第4軸O4及び第5軸O5に対応する関節部511d、511eが補償関節部である場合について説明した。
また、上述した実施形態では、支持アーム装置500、500aのアーム部510、510aの全ての関節部511a〜511fにアクチュエータ430が設けられていたが、本実施形態はかかる例に限定されない。本実施形態では、関節部511a〜511fのうち、補償関節部となる少なくとも1つの関節部に対してアクチュエータ430が設けられればよい。つまり、本実施形態では、補償関節部となる関節部に対して重力補償機構540、550、540a、550a及びアクチュエータ430が設けられればよく、他の関節部の構成は任意であってよい。なお、この場合、上述した全身協調制御は行われ得ないため、このように構成されるアーム部の動作の制御、すなわちアクチュエータ430が設けられる関節部の駆動制御は、各種の公知の方法によって行われてよい。ただし、この際、重力補償に係るアクチュエータ430の駆動制御の方法は、上述した実施形態と同様に行われ得る。すなわち、重力補償機構540、550、540a、550aによる補償トルクを加味して、アーム部の自重による負荷トルクを打ち消し得るような発生トルクを生じさせるように、アクチュエータ430が駆動され得る。
このように、本実施形態では、重力補償が行われない各関節部におけるアクチュエータ430の有無は任意であってよく、それに応じてアーム部の制御方法(すなわち、アクチュエータの制御方法)も任意であってよい。つまり、本実施形態におけるアーム部の制御方法は、上述した全身協調制御及び理想関節制御を用いるものに限定されず、当該アーム部の制御は、各種の公知の方法を用いて行われてよい。制御方法によらず、重力補償機構540、550、540a、550aによる補償トルクを加味して、アーム部の自重による負荷トルクを打ち消し得るような発生トルクを生じさせるように、アクチュエータ430を駆動させることにより、本実施形態に係る重力補償が実現され得る。
(6.一般的な重力補償との比較)
ここで、本実施形態に係る重力補償と、既存の一般的な重力補償とを、数式として比較する。ここでは、一般的な重力補償の一例として、本願出願人による先行出願である上記特許文献3に記載の支持アーム装置を用いた重力補償について検討する。
特許文献3に記載の支持アーム装置は、そのアーム部を構成する全ての関節部にアクチュエータが設けられたものであり、本実施形態と同様に、全身協調制御及び理想関節制御によって当該アーム部の動作が制御される。当該支持アーム装置において重力補償を行う場合には、アクチュエータを駆動させることによってアーム部の自重を支持する制御が行われ得る。アクチュエータの発生トルクτaによってアーム部の自重による負荷トルクを補償しようとすると、全身協調制御において算出される発生トルクτaは、下記数式(15)のように表現され得る。また、この際の理想関節制御における当該アクチュエータの運動を示す式は、下記数式(16)のように表現され得る(なお、下記数式(16)は、上記数式(12)と同じものである)。
ここで、qは関節部における回転角度である。また、上記数式(15)において、右辺第1項(M(q)q’’)は慣性力を表す項であり、右辺第2項(V(q,q’))は遠心力やコリオリ力を表す項であり、右辺第3項(G(q))はアーム部の自重による負荷トルクを表す項である。上記数式(15)から、特許文献3に記載の支持アーム装置では、重力補償のために、発生トルクτaとして負荷トルクG(q)を打ち消すだけのトルクを発生させる必要が生じる。従って、アクチュエータに大きな出力が必要となり、当該アクチュエータが大型化する。結果的に、アーム部及び支持アーム装置全体も大型化、重量化してしまう。
これに対して、本実施形態では、重力補償機構540、550、540a、550aと、アクチュエータ430とを併用することによって重力補償が行われ得る。このとき、アクチュエータ430の駆動制御について、図4に示す機能構成では全身協調制御において、図7に示す機能構成では理想関節制御において、重力補償のための演算が行われる。
図4に示す機能構成のように、全身協調制御において重力補償のための演算が行われる場合には、全身協調制御において算出される発生トルクτaは、下記数式(17)のように表現され得る。また、この際の理想関節制御における当該アクチュエータの運動を示す式は、下記数式(18)のように表現され得る(なお、下記数式(18)は、上記数式(12)、(16)と同じものである)。
ここで、Gsは、重力補償機構540、550、540a、550aによる補償トルクである。上記数式(18)に示すように、本実施形態では、重力補償のために、発生トルクτaとして、G(q)−Gs(q)に対応するトルクを発生させればよい。従って、特許文献3に記載の支持アーム装置に比べて、アクチュエータ430に求められる出力が小さくなるため、当該アクチュエータ430をより小型化することが可能になる。また、本実施形態では、G(q)−Gs(q)≠0であり、G(q)−Gs(q)>0となるように、重力補償機構540、550、540a、550aが構成される。つまり、重力補償機構540、550、540a、550aによる補償トルクによって、アーム部510、510aの自重による負荷トルクG(q)を略完全に打ち消す必要はない。従って、重力補償機構540、550、540a、550aを簡易な構成とすることができるため、当該重力補償機構540、550、540a、550aを設けることによるアーム部510、510aの大型化を抑制することが可能になる。
一方、図7に示す機能構成のように、理想関節制御において重力補償のための演算が行われる場合には、全身協調制御において算出される発生トルクτaは、下記数式(19)のように表現され得る(なお、下記数式(19)は、上記数式(15)と同じものである)。また、この際の理想関節制御における当該アクチュエータの運動を示す式は、下記数式(20)のように表現され得る。
かかる場合には、上記数式(19)に示すように、全身協調制御において算出される発生トルクτaとしては、特許文献3に記載の支持アーム装置と同様に、負荷トルクG(q)を打ち消すような、比較的大きな値が算出され得る。しかしながら、上記数式(20)に示すように、その後の理想関節制御における演算において、補償トルクGs(q)が加味されることにより、最終的にアクチュエータ430に与えられるトルク指令値としては、補償トルクGs(q)の分が差し引かれた、より小さな値が算出されることとなる。従って、図4に示す機能構成と同様に、当該機能構成においても、特許文献3に記載の支持アーム装置に比べて、アクチュエータ430の出力をより小さくすることができ、当該アクチュエータ430をより小型化することが可能になる。また、同様に、G(q)−Gs(q)>0となるように重力補償機構540、550、540a、550aが構成されるため、重力補償機構540、550、540a、550aを簡易な構成とすることができ、アーム部510、510aをより小型化することが可能になる。
(7.補足)
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、本開示に係る技術が適用される対象は、医療分野に限定されず、医療分野以外の他の分野であってもよい。例えば、本開示に係る技術は、工場において製品の組み立て工程や検査工程に用いられる工業用の支持アーム装置の重力補償に対しても好適に適用可能である。本開示に係る技術を用いることにより、工業用の支持アーム装置においても、上述した実施形態と同様に、当該支持アーム装置をより小型に、かつより軽量に構成することが可能となり、製造コストの低減や、設置スペースの自由度の向上等の効果を得ることができる。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的なものではない。つまり、本開示に係る技術は、上記の効果とともに、又は上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏し得る。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
複数の関節部から構成され、先端に医療用器具が設けられるよう構成されたアーム部と、
前記関節部の中で重力補償が行われる対象である補償関節部に少なくとも設けられ、前記補償関節部に作用するトルクを検出するトルクセンサを有するアクチュエータと、
前記補償関節部に対して、前記補償関節部に作用する前記アーム部の自重による負荷トルクを打ち消す方向の補償トルクを与える重力補償機構と、
を備える、
医療用支持アーム装置。
(2)
前記重力補償機構は、前記補償トルクを発生させるバネを有し、
前記バネは、前記補償関節部の回転に伴い単調に伸縮するように設けられる、
前記(1)に記載の医療用支持アーム装置。
(3)
少なくとも前記トルクセンサによって検出される前記補償関節部の状態に基づいて前記アクチュエータを動作させることにより、前記補償関節部の駆動を少なくとも制御する制御装置、を更に備え、
前記制御装置は、前記補償トルクを加味して、前記負荷トルクを打ち消すようなトルクを発生させるように前記アクチュエータを動作させることにより、重力補償を行う、
前記(1)又は(2)に記載の医療用支持アーム装置。
(4)
前記制御装置は、前記アクチュエータが設けられる複数の前記関節部の状態に基づいて取得される前記アーム部の状態と、前記アーム部の運動目的及び拘束条件と、を用いて一般化逆動力学によって前記アーム部の全身協調制御のための制御値として前記関節部における発生トルクを算出し、算出した前記発生トルクに基づいて前記アクチュエータを動作させる、
前記(3)に記載の医療用支持アーム装置。
(5)
前記制御値は、前記アーム部に作用する力と前記アーム部に発生する加速度との関係を記述する操作空間において前記運動目的を達成するために作用される仮想的な力である仮想力と、前記拘束条件に基づいて前記仮想力が前記関節部を駆動するための実在の力に変換されることにより求められる実在力と、に基づいて算出される、
前記(4)に記載の医療用支持アーム装置。
(6)
前記制御装置は、前記全身協調制御において前記補償関節部に対する前記発生トルクを算出する際に、前記補償関節部の回転角度の関数として表される前記補償トルクを算出し、算出した前記補償トルクと前記アーム部の自重によって前記補償関節部に作用する前記負荷トルクとの差分を、前記発生トルクに含まれる重力補償成分として算出する、
前記(4)又は(5)に記載の医療用支持アーム装置。
(7)
前記制御装置は、前記制御値に対して外乱の影響を補正することにより、前記アーム部の理想的な応答を実現する指令値として前記関節部における発生トルクを算出し、算出した前記発生トルクに基づいて前記アクチュエータを動作させる、
前記(4)〜(6)のいずれか1項に記載の医療用支持アーム装置。
(8)
前記指令値は、検出された前記関節部の状態に基づいて推定される前記関節部の駆動に対する外乱の影響を表す外乱推定値を用いて、前記制御値を補正することにより算出される、
前記(7)に記載の医療用支持アーム装置。
(9)
前記制御装置は、前記制御値に対して外乱の影響を補正することにより、前記アーム部の理想的な応答を実現する指令値として前記関節部における発生トルクを算出し、算出した前記発生トルクに基づいて前記アクチュエータを動作させ、
前記制御装置は、前記補償関節部に対する前記指令値に係る前記発生トルクを算出する際に、前記補償関節部の回転角度の関数として表される前記補償トルクを算出し、前記全身協調制御のための制御値として算出された前記発生トルクから算出した前記補償トルクを差し引いた値を、前記制御値に係る発生トルクとみなして、外乱の影響を補正することにより、前記指令値に係る発生トルクを算出する、
前記(4)又は(5)に記載の医療用支持アーム装置。
(10)
前記補償関節部は、前記アーム部のより基端側に設けられる、ピッチ軸に対応する回転軸を有する1又は2の前記関節部である、
前記(1)〜(9)のいずれか1項に記載の医療用支持アーム装置。
(11)
前記医療用器具は、患者の術部を観察するための観察用器具である、
前記(1)〜(10)のいずれか1項に記載の医療用支持アーム装置。
(12)
複数の関節部から構成され、患者の術部を観察するための観察用器具が先端に設けられるよう構成されたアーム部と、
前記関節部の少なくとも1つに設けられ、前記関節部に作用するトルクを検出するトルクセンサを有するアクチュエータと、
前記アクチュエータが設けられる関節部に対して、当該関節部に作用する前記アーム部の自重に起因する負荷トルクを補償する補償トルクを与える重力補償機構と、
少なくとも前記トルクセンサによって検出される前記関節部の状態に基づいて前記アクチュエータを動作させ、前記関節部の駆動を制御する制御装置と、
を有する、医療用支持アーム装置と、
前記医療用支持アーム装置の前記観察用器具によって撮影された画像を表示する表示装置と、
を備える、
医療用システム。
(13)
アクチュエータを有する複数の関節部から構成されるアーム部と、
前記アーム部の先端に設けられ、前記アクチュエータを制御することにより撮影方向を変更可能な、患者の術部を撮影するための顕微鏡と、
前記関節部のうち重力補償が行われる対象である補償関節部に対して、前記補償関節部に作用する前記アーム部の自重による負荷トルクを打ち消す方向の補償トルクを与える重力補償機構と、
前記顕微鏡によって撮影された画像を表示する表示装置と、
を備える、
外科手術用顕微鏡システム。
(14)
前記重力補償機構は、前記補償トルクを発生させるバネを有し、
前記バネは、前記補償関節部の回転に伴い伸縮するように設けられる、
前記(13)に記載の外科手術用顕微鏡システム。
(15)
前記顕微鏡は多板式の撮像部を備える、
前記(13)に記載の外科手術用顕微鏡システム。
(16)
前記表示装置は前記顕微鏡で撮影された画像に基づいて3D表示を行うよう構成される、
前記(13)に記載の外科手術用顕微鏡システム。