次に、図面を参照しながら、本開示の発明を実施するための形態について説明する。
図1は、本開示のロボット装置1を示す概略構成図であり、図2は、ロボット装置1を示す拡大図である。これらの図面に示すロボット装置1は、ロボットアーム(ロボット本体)2と、液体供給装置10と、装置全体を制御する制御装置100とを含む。ロボットアーム2は、複数(本実施形態では、3つ)の関節(ピン結合部)J1,J2,J3と、複数(本実施形態では、3つ)のアーム(リンク)3と、関節J1,J2,J3ごとに例えば偶数個(本実施形態では、4つ)ずつ設けられる人工筋肉としての複数の液圧アクチュエータ(流体アクチュエータ)Mと、先端側のアーム3の手先に取り付けられる把持部としてのハンド部(ロボットハンド)4とを含む多関節アームである。ハンド部4は、対象となる物体(以下、「把持対象」という。)を把持するように制御装置100により制御される。また、液体供給装置10は、制御装置100により制御されて各液圧アクチュエータMに液体としての作動油(作動流体)を給排する。これにより、ロボットアーム2を油圧(液圧)により駆動してハンド部4を所望の位置に移動させることができる。
ロボットアーム2の各液圧アクチュエータMは、図2に示すように、作動油の圧力によって膨張および収縮するチューブTと、当該チューブTを覆う編組スリーブSとを含む、いわゆるマッキベン型の人工筋肉である。チューブTは、高い耐油性をもった例えばゴム材等の弾性材により円筒状に形成されており、当該チューブTの両端部は、封止部材Cにより封止されている。チューブTの基端側(液体供給装置10側、図2中下端側)の封止部材Cには、作動油の出入口IOが形成されている。編組スリーブSは、所定方向に配向された複数のコードを互いに交差するように編み込むことにより円筒状に形成されており、軸方向および径方向に収縮可能である。編組スリーブSを形成するコードとしては、繊維コード、高強度繊維、極細のフィラメントによって構成される金属製コード等を採用することができる。かかる液圧アクチュエータMのチューブT内に上記出入口IOから作動油を供給してチューブT内の作動油の圧力を高めることで、チューブTは、編組スリーブSの作用により径方向に膨張すると共に軸方向に収縮し、内部の作動油の圧力に応じた収縮力を発生する。
図1および図2に示すように、複数のアーム3のうち、最基端側(最も液体供給装置10側)のアーム3は、関節J1を介してリンクとしての支持部材5により回動自在に支持される。また、2つのアーム3同士が、関節J2またはJ3を介して互いに回動自在に連結される。更に、液体供給装置10側の2つのアーム3の先端部(手先側の端部)には、連結部材6が固定されている。図示するように、支持部材5は、最基端側の関節J1に対応した複数(4つ)の液圧アクチュエータMの基端側の封止部材Cを回動自在に支持する。また、各連結部材6は、基端側に位置する関節J1またはJ2に対応した複数(4つ)の液圧アクチュエータMの先端側(手先側)の封止部材Cを回動自在に支持する。更に、各連結部材6は、先端側に位置する関節J2またはJ3に対応した複数(4つ)液圧アクチュエータMの基端側の封止部材Cを回動自在に支持する。
より詳細には、支持部材5は、関節J1に対応した2つの液圧アクチュエータMの基端側の封止部材Cを第1の連結軸を介して回動自在に支持する。また、最基端側のアーム3の連結部材6は、関節J1に対応した当該2つの液圧アクチュエータMの先端側の封止部材Cを第2の連結軸を介して回動自在に支持する。更に、支持部材5は、関節J1に対応した残り2つの液圧アクチュエータMの基端側の封止部材Cを上記第1の連結軸と平行に延びる第3の連結軸を介して回動自在に支持する。また、最基端側のアーム3の連結部材6は、関節J1に対応した当該残り2つの液圧アクチュエータMの先端側の封止部材Cを上記第2の連結軸と平行に延びる第4の連結軸を介して回動自在に支持する。同様に、関節J2またはJ3を介して互いに連結される2つのアーム3の連結部材6も、上述のような複数の連結軸を介して、当該関節J2またはJ3に対応した複数(4つ)の液圧アクチュエータMの対応する封止部材Cを回動自在に支持する。
これにより、関節J1-J3の関節軸から手先側(ハンド部4側)に延びる各アーム3の両側には、液圧アクチュエータMが本実施形態では2つずつ対応するアーム3と平行に配列される。そして、各アーム3の一側に配置される2つの液圧アクチュエータMは、1つの関節J1,J2またはJ3に対応した一側の人工筋肉(一方の拮抗筋)AM1(図3参照)を構成し、各アーム3の他側に配置される2つの液圧アクチュエータMは、当該一側の人工筋肉AM1と対をなす1つの関節J1,J2またはJ3に対応した他側の人工筋肉(他方の拮抗筋)AM2(図3参照)を構成する。ただし、一側および他側の人工筋肉AM1,AM2は、それぞれ単一の液圧アクチュエータMにより構成されてもよく、一側の人工筋肉AM1を構成する液圧アクチュエータMの数と、他側の人工筋肉AM2を構成する液圧アクチュエータMの数とが異なっていてもよい。また、本実施形態において、1つの関節J1,J2またはJ3に対して設けられる複数(4つ)の液圧アクチュエータMは、互いに同一の諸元を有する。ただし、1つの関節J1,J2またはJ3に対応した複数の液圧アクチュエータMの諸元は、必ずしも同一である必要はなく、例えば、一側の人工筋肉AM1を構成する液圧アクチュエータMの諸元と、他側の人工筋肉AM2を構成する液圧アクチュエータMの諸元とが異なっていてもよい。更に、各アーム3は、中空に形成されており、各アーム3の内部には、液体供給管としての複数のホースH(図2における破線参照)が配置される。各ホースHは、対応する液圧アクチュエータMの基端側の封止部材Cに形成された出入口IOに接続され、各液圧アクチュエータMのチューブT内には、ホースHを介して液体供給装置10からの作動油(油圧)が供給される。
従って、制御装置100により液体供給装置10を制御することで、一側の人工筋肉AM1を構成する2つの液圧アクチュエータMのチューブT内の油圧と、一側の人工筋肉AM1と対をなす他側の人工筋肉AM2を構成する2つの液圧アクチュエータMのチューブT内の油圧とを互いに異ならせることができる。これにより、4つの液圧アクチュエータMすなわち対をなす(1組の)一側および他側の人工筋肉AM1,AM2から連結部材6を介して各アーム3に力(回転トルク)を伝達し、支持部材5または基端側のアーム3に対して各アーム3を回動させて関節J1-J3の関節角度を変化させることが可能となる。本実施形態において、一側の人工筋肉AM1を構成する2つの液圧アクチュエータMと、一側の人工筋肉AM1と対をなす他側の人工筋肉AM2を構成する2つの液圧アクチュエータMとは、チューブTが所定量(例えば、自然長の10%程度)だけ軸方向に収縮した状態を初期状態として液体供給装置10からの油圧により拮抗駆動される。
ロボット装置1の液体供給装置10は、図1に示すように、作動油貯留部(液体貯留部)を画成するタンク11と、当該タンク11を上下方向に延びる回動軸(図1における一点鎖線参照)の周りに回動自在に支持するベース部12とを含む。タンク11は、例えば上端および下端が閉鎖された筒体であり、内部に作動油を貯留可能なものである。本実施形態において、ロボットアーム2の支持部材5は、図2に示すように、タンク11の上壁部11uに図示しないボルト等を介して固定される。すなわち、ロボットアーム2は、液体供給装置10のタンク11(上壁部11u)により支持される。
ベース部12は、ロボットアーム2およびタンク11の下方に位置するようにロボット装置1の設置箇所に固定されるか、あるいは図示しない無人搬送車(AGVあるいはAMR)に搭載(固定)される。また、ベース部12は、タンク11を上記回動軸の周りに回動させる図示しない回動ユニットを支持している。これにより、回動ユニットを作動させることで、ロボットアーム2およびタンク11を当該回動軸の周りに一体に回動させることが可能となる。回動ユニットは、液体供給装置10から供給される油圧により駆動される揺動モータであってもよく、電動モータ等を含むものであってもよい。
更に、液体供給装置10は、図3に示すように、タンク11およびベース部12に加えて、液体供給源としてのポンプ13と、タンク11内に配置される図示しないバルブボディと、元圧生成バルブ14と、それぞれ複数の調圧弁(液体圧調整装置)としての第1および第2リニアソレノイドバルブ151,152と、それぞれ複数の供給遮断部としての第1および第2供給遮断弁161,162とを含む。ポンプ13、第1および第2リニアソレノイドバルブ151,152並びに第1および第2供給遮断弁161,162は、何れも制御装置100により制御される。第1および第2リニアソレノイドバルブ151,152と、第1および第2供給遮断弁161,162とは、関節J1,J2,J3ごとにそれぞれ1つずつ設けられる。
ポンプ13は、例えば電動ポンプであり、タンク11内に貯留された作動油を吸引して吐出口から吐出する。ポンプ13は、タンク11内に配置されるポンプ部と、電動モータおよび減速ギヤ機構とを有すると共にタンク11内またはタンク11外に配置される駆動部とを含む。元圧生成バルブ14は、図示しない信号圧生成バルブからの信号圧に応じてポンプ13から吐出される作動油の一部をドレン(調圧)して元圧を生成し、元圧をバルブボディに形成された油路(液体通路)L0に供給する。元圧生成バルブ14の信号圧生成バルブとしては、例えば、制御装置100による通電制御されるリニアソレノイドバルブが用いられる。
第1および第2リニアソレノイドバルブ151,152は、制御装置100により通電制御される電磁部15eやスプール15s、スプール15sを電磁部15e側(図3中上側)に付勢するスプリングSP等を含み、バルブボディ内に配置される。また、第1および第2リニアソレノイドバルブ151,152は、バルブボディの油路L0に連通する入力ポート15iと、入力ポート15iと連通可能な出力ポート15oと、出力ポート15oに連通するフィードバックポート15fと、出力ポート15oと連通可能なドレンポート15dとを含む。
本実施形態において、第1および第2リニアソレノイドバルブ151,152は、電磁部15eに電流が供給される際に開弁する常閉弁であり、各電磁部15eは、印加される電流に応じてスプール15sを軸方向に移動させる。これにより、電磁部15e(コイル)への給電により当該電磁部15eからスプール15sに付与される推力と、スプリングSPの付勢力と、出力ポート15oからフィードバックポート15fに供給された油圧によりスプール15sに作用する電磁部15e側への推力とをバランスさせることで、元圧生成バルブ14(ポンプ13)側から入力ポート15iに供給されて出力ポート15oから流出する作動油を所望の圧力に調圧することができる。また、第1および第2リニアソレノイドバルブ151,152のドレンポート15dは、図3に示すように、それぞれ油路L3を介してタンク11内の作動油貯留部に連通する。
第1および第2供給遮断弁161,162は、互いに同一の構造を有する電磁式スプール弁(電磁弁)であり、図3に示すように、入力ポート16i、第1および第2出力ポート16oa,16obを有するスリーブと、当該スリーブの内部に軸方向に摺動自在(移動自在)に配置される図示しないスプールと、制御装置100により通電制御されてスプールを移動させる電磁部16eと、スプールを電磁部16e側に付勢する図示しないスプリングとをそれぞれ含む。第1供給遮断弁161の入力ポート16iは、バルブボディに形成された油路を介して第1リニアソレノイドバルブ151の出力ポート15oに接続され、第2供給遮断弁162の入力ポート16iは、バルブボディに形成された油路を介して第2リニアソレノイドバルブ152の出力ポート15oに接続される。
また、第1供給遮断弁161の第1出力ポート16oaは、油路L11を介して対応する上記一側の人工筋肉AM1を構成する一方の液圧アクチュエータM(チューブT)の作動油の出入口IOに接続される。更に、第1供給遮断弁161の第2出力ポート16obは、油路L12を介して当該一側の人工筋肉AM1を構成する他方の液圧アクチュエータM(チューブT)の作動油の出入口IOに接続される。また、第2供給遮断弁162の第1出力ポート16oaは、油路L21を介して対応する上記他側の人工筋肉AM2を構成する一方の液圧アクチュエータM(チューブT)の作動油の出入口IOに接続される。更に、第2供給遮断弁162の第2出力ポート16obは、油路L22を介して当該他側の人工筋肉AM2を構成する他方の液圧アクチュエータM(チューブT)の作動油の出入口IOに接続される。
本実施形態において、第1および第2供給遮断弁161,162は、電磁部16eに供給される電流に応じて、完全連通状態、第1部分連通状態、第2部分連通状態および完全遮断状態を選択的に形成する。第1および第2供給遮断弁161,162が完全連通状態を形成した際には、入力ポート16iと第1および第2出力ポート16oa,16obの双方とが連通する。第1および第2供給遮断弁161,162が第1部分連通状態を形成した際には、入力ポート16iと第2出力ポート16obとが連通すると共に入力ポート16iと第1出力ポート16oaとの連通が遮断される。第1および第2供給遮断弁161,162が第2部分連通状態を形成した際には、入力ポート16iと第1出力ポート16oaとが連通すると共に入力ポート16iと第2出力ポート16obとの連通が遮断される。第1および第2供給遮断弁161,162が完全遮断状態を形成した際には、入力ポート16iと第1および第2出力ポート16oa,16obとの連通が遮断される。
ロボット装置1の制御装置100は、CPU、ROM、RAM、入出力インターフェース等を含むマイクロコンピュータや各種ロジックIC等(何れも図示省略)を含む。制御装置100は、第1および第2リニアソレノイドバルブ151,152の上流側で油路L0における作動油の圧力を検出する図示しない元圧センサ、第1、第2リニアソレノイドバルブ151,152並びに第1、第2供給遮断弁161,162の電源の電圧を検出する図示しない電圧センサの検出値等を入力する。制御装置100は、元圧センサにより検出される油路L0における油圧が目標値になるように、ポンプ13をデューティ制御すると共に、元圧生成バルブ14の信号圧生成バルブの電磁部に供給される電流を制御する。
また、制御装置100は、第1および第2リニアソレノイドバルブ151,152から各液圧アクチュエータMに要求に応じた油圧が供給されるように第1および第2リニアソレノイドバルブ151,152への電流指令値を設定し、当該電流指令値に基づいて各電磁部15eに供給される電流を制御する。更に、制御装置100は、ロボット装置1を作動させる間、基本的に、第1および第2供給遮断弁161,162が上述の完全連通状態を形成するように各電磁部16eに供給される電流を制御する。また、制御装置100は、第1リニアソレノイドバルブ151の電磁部15eを流れる電流を検出する電流検出部と、第2リニアソレノイドバルブ152の電磁部15eを流れる電流を検出する電流検出部とを含み(何れも図示省略)、各電流検出部により検出される電流を監視する。
更に、制御装置100は、各液圧アクチュエータMにおける油圧を検出する図示しない圧力センサからの検出値に応じて、第1部分連通状態または第2部分連通状態を形成するように第1および第2供給遮断弁161,162の該当するものを制御する。これにより、破損等により第1および第2リニアソレノイドバルブ151,152の何れかに対応した2つの液圧アクチュエータMの一方から作動油が流出した場合に、当該2つの液圧アクチュエータMの他方に継続して作動油を供給してロボットアーム2の挙動の乱れを抑えつつ、破損した液圧アクチュエータMからの作動油の更なる流出を良好に抑制することが可能となる。また、制御装置100により完全遮断状態を形成するように第1および第2供給遮断弁161,162の該当するものを制御することで、第1または第2リニアソレノイドバルブ151,152からそれに対応した2つの液圧アクチュエータMへの作動油の供給を遮断したり、当該2つの液圧アクチュエータMからの作動油の流出を規制してロボットアーム2の意図しない動作の発生を抑制したりすることができる。
図4は、上述の制御装置100における第1および第2リニアソレノイドバルブ151,152の制御部を示すブロック図である。同図に示すように、制御装置100は、それぞれコンピュータのCPUやROM,RAMといったハードウェアと、当該コンピュータにインストールされた制御プログラムといったソフトウェアとの少なくとも何れか一方により構築される、目標位置設定部101と、現在位置導出部102と、トルク演算部103および重力補償部104を含む目標トルク設定部105と、目標剛性設定部106と、収縮率設定部107、収縮力算出部108および目標圧力導出部109を含む目標圧力設定部110と、電流指令値設定部111と、バルブ駆動部112とを含む。
目標位置設定部101は、ハンド部4の把持対象の位置や、ユーザにより与えられるハンド部4の移動中の目標速度および目標加速度に基づいて、当該ハンド部4の最終的な目標位置である目標到達位置(3次元座標)と、ハンド部4の初期位置から目標到達位置までの軌道であって複数の目標位置すなわち経由位置(3次元座標)を含む目標軌道とを設定する。現在位置導出部102は、ロボットアーム2の関節J1-J3の関節角度θ1,θ2,θ3とロボットアーム2(ロボット装置1)の諸元(アーム3の寸法等)とに基づいて、ハンド部4(予め定められた基準点)の現在位置(3次元座標)を導出する。関節J1-J3の関節角度θ1-θ3は、ロボットアーム2に設けられた複数の関節角度センサ7の対応する何れかにより検出される。以下、“i”を関節の番号として(ただし、本実施形態において、i=1,2,3である。)、i番目の関節を“関節Ji”といい、関節Jiの関節角度を“θi”という。
目標トルク設定部105のトルク演算部103は、関節J1-J3ごとに、ハンド部4が現在位置から目標位置まで移動するように関節Jiを介して連結された2つのアーム3(アーム3および支持部材5)を相対的に回動させる関節トルクTj(i)を算出する。目標トルク設定部105の重力補償部104は、関節J1-J3ごとに、関節角度θ1-θ3とロボットアーム2(ロボット装置1)の諸元(アーム3の寸法等)とに基づいてロボットアーム2の姿勢を維持するのに必要な重力補償トルクTc(i)を算出する。そして、目標トルク設定部105は、関節トルクTj(i)と重力補償トルクTc(i)との和を、関節Jiを介して連結される2つのアーム3等を相対的に回動させるための関節トルクTj(i)の目標値(目標駆動力)である目標トルクTtag(i)に設定する。
目標剛性設定部106は、少なくともロボット装置1すなわちハンド部4の目標位置に基づいて、関節J1-J3ごとに、関節Jiがもつべき剛性、すなわち関節Jiを介して連結される2つのアーム3等(リンク)を単位角度だけ相対的に回動させるのに必要な力(トルク)であって、当該2つのアーム3等を相対的に回動させようとする外力に対する関節Jiの動きにくさを示す目標剛性R(i)を設定する。より詳細には、目標剛性設定部106は、ハンド部4等を把持対象等まで移動させる際に、当該ハンド部4等と把持対象等との位置関係に応じて目標剛性R(i)を変化させ、ハンド部4等を把持対象等に接触する前に目標剛性R(i)を低下させる。更に、目標剛性設定部106は、ハンド部4の移動速度および加速度の少なくとも何れか一方に応じて目標剛性R(i)を変化させると共に、ロボット装置1の周囲(例えばロボット装置1が配置される室内あるいは柵の内側といったロボットアーム2の動作範囲を含む領域)に人がいる場合、目標剛性R(i)を低下させる。なお、各関節Jiの目標剛性R(i)は、少なくともロボット装置1すなわちハンド部4の現在位置に基づいて設定されてもよい。
目標圧力設定部110の収縮率設定部107は、関節J1-J3ごとに、ハンド部4の現在位置に応じた関節Jiの関節角度θiに基づいて、当該関節Jiに対応した上記一側の人工筋肉AM1を構成する2つの液圧アクチュエータMの収縮率Cr1(i)と、関節Jiに対応した上記他側の人工筋肉AM2を構成する2つの液圧アクチュエータMの収縮率Cr2(i)とを設定する。収縮率Cr1(i),Cr2(i)は、それぞれ該当する液圧アクチュエータMのチューブTの軸方向における自然長に対する収縮したチューブTの軸長の割合を示し、収縮率=(1-収縮時のチューブTの軸長/チューブTの自然長)×100として算出される。
目標圧力設定部110の収縮力算出部108は、関節J1-J3ごとに、目標トルク設定部105により設定された目標トルクTtag(i)と、目標剛性設定部106により設定された目標剛性R(i)とに基づいて、関節Jiを介して連結された2つのアーム3等を目標トルクTtag(i)で相対的に回動させる際に当該関節Jiに対応した複数(一対)の液圧アクチュエータMに要求される収縮力Fc1(i),Fc2(i)を算出する。収縮力Fc1(i)は、各関節Jiに対応した一側の人工筋肉AM1を構成する2つの液圧アクチュエータMのチューブTの収縮により発生させるべき力であり、収縮力Fc2(i)は、各関節Jiに対応した他側の人工筋肉AM2を構成する2つの液圧アクチュエータMのチューブTの収縮により発生させるべき力である。
目標圧力設定部110の目標圧力導出部109は、関節J1-J3ごとに、人工筋肉としての液圧アクチュエータMの静特性から収縮率設定部107により設定された収縮率Cr1(i)と収縮力算出部108により算出された収縮力Fc1(i)とに対応した圧力を導出して一側の人工筋肉AM1を構成する2つの液圧アクチュエータMの目標圧力Ptag1(i)に設定する。また、目標圧力導出部109は、関節J1-J3ごとに、当該静特性から収縮率設定部107により設定された収縮率Cr2(i)と収縮力算出部108により算出された収縮力Fc2(i)とに対応した圧力を導出して他側の人工筋肉AM2を構成する2つの液圧アクチュエータMの目標圧力Ptag2(i)に設定する。
電流指令値設定部111は、目標圧力設定部110により設定された目標圧力Ptag1(i)およびPtag2(i)を第1および第2リニアソレノイドバルブ151,152の電磁部15eへの電流指令値(目標電流)に直接変換する。バルブ駆動部112は、図示しない上述の電流検出部により検出される電流が電流指令値に一致するようにフィードフォワード制御(あるいはフィードフォワード制御およびフィードバック制御)により目標電圧を設定すると共に、目標電圧をPWM信号に変換する。更に、バルブ駆動部112は、PWM信号に基づいて図示しないスイッチング素子(トランジスタ)をスイッチング制御して第1、第2リニアソレノイドバルブ151,152の電磁部15eに電流を印加する。これにより、第1および第2リニアソレノイドバルブ151,152は、目標圧力Ptag1(i)またはPtag2(i)に応じた油圧を生成するように制御される。
続いて、図5から図10を参照しながら、上述のロボット装置1の制御手順について説明する。以下、ロボット装置1のハンド部4を把持対象まで移動させ、ハンド部4に把持対象を把持させて移送させるケースを例にとってロボット装置1の制御手順について説明する。
本実施形態において、ロボット装置1の制御装置100は、ロボットアーム2の手先すなわちハンド部4と把持対象とが仮想的なバネおよびダンパを介して連結され、当該仮想的なバネおよびダンパが発生する引張力Ftによりハンド部4が現在位置から把持対象あるいは当該把持対象の移送先まで引っ張られるとの仮定のもとで設計されている。かかる仮定のもとでは、仮想的なバネおよびダンパによる引張力Ft=(fx,fy,fz)が、ハンド部4(予め定められた基準点)の目標位置(xd(t),yd(t),zd(t))と当該ハンド部4の現在位置(x(t),y(t),z(t))とから、いわゆるPD制御(フィードバック制御)の関係式である次式(1)のように、目標位置と現在位置との差にゲインKpx,KpyまたはKpzを乗じた比例項と、ゲインKvx,KvyまたはKvzを含む速度項との和として表すことができる。
また、ハンド部4が把持対象に接触した状態では、把持対象に対する手先の速度はゼロになるから、上記式(1)より、ハンド部4が仮想的なバネおよびダンパによる引っ張られることで把持対象との接触後に当該把持対象に加える押圧力Fpは、接触後の目標位置と把持対象の位置(ハンド部4と把持対象との接触位置)とから求めることができる。従って、ハンド部4の最終的な目標到達位置(xr,yr,zr)は、接触後にハンド部4から把持対象に加えられる押圧力Fp=(fpx,fpy,fpz)と、把持対象の位置(接触位置)(xo,yo,zo)と、ゲインKpx,Kpy,Kpzとから、次式(2)のように表すことができる。
そして、ロボット装置1では、ロボットアーム2の作動開始に先立って(ハンド部4の移動開始前に)、図5のルーチンが制御装置100の目標位置設定部101により実行され、ハンド部4の最終的な目標到達位置(xr,yr,zr)と、初期位置から目標到達位置(xr,yr,zr)までのハンド部4の目標軌道とが設定される。図5のルーチンの開始に際して、制御装置100の目標位置設定部101は、把持対象の位置(xo,yo,zo)と、ユーザにより与えられているハンド部4の移動中の目標速度および目標加速度を取得する(ステップS1)。把持対象の位置(xo,yo,zo)は、それが予め判明している場合、ロボット装置1のユーザにより制御装置100に入力されてもよく、ロボットアーム2の作動開始前にカメラ等により取得されたデータから導出されたものであってよい。
次いで、目標位置設定部101は、上記式(2)に従って、ハンド部4と把持対象との接触後に当該ハンド部4から把持対象に予め定められた押圧力Fpが加えられるハンド部4の目標到達位置(xr,yr,zr)を設定する(ステップS2)。ロボット装置1において、式(2)における押圧力Fp=(fpx,fpy,fpz)は、把持対象の材質や強度、サイズといった諸元から、当該把持対象を破壊することなくハンド部4を把持対象に接触させるように把持対象の位置(xo,yo,zo)のばらつき等を考慮して予め定められる。更に、目標位置設定部101は、ステップS1にて取得したハンド部4の目標速度および目標加速度と、ステップS2にて設定した目標到達位置(xr,yr,zr)とに基づいて、予め定められた数(複数)の目標位置すなわち経由位置(3次元座標)を含むハンド部4の目標軌道を設定し(ステップS3)、図5のルーチンを終了させる。
また、ロボット装置1では、把持対象の位置に応じた目標到達位置および目標軌道が設定された後、把持対象の移送先(把持対象の載置面)に応じた目標到達位置および目標軌道を設定するために再度図5のルーチンが目標位置設定部101により実行される。この際、目標位置設定部101は、ハンド部4により把持された把持対象(手先)と載置面(対象)との接触後に当該ハンド部4から把持対象を介して載置面(対象)に予め定められた押圧力Fpが加えられるハンド部4の目標到達位置(xr,yr,zr)を設定する。
図6は、目標到達位置および目標軌道が設定された後、制御装置100により実行されるロボットアーム制御ルーチンを例示するフローチャートである。図6のルーチンは、図5のルーチンの完了後、ユーザによる実行指示に応じて、制御装置100により所定時間(例えば10ms程度)おきに繰り返し実行される。
図6のルーチンの開始に際して、制御装置100のトルク演算部103(目標トルク設定部105)および目標剛性設定部106は、それぞれ目標位置設定部101により設定された目標位置を取得する(ステップS10)。ステップS10にて取得される目標位置は、目標軌道における1番目の目標位置または図6のルーチンの前回実行時に取得された目標位置である。また、制御装置100の現在位置導出部102および重力補償部104は、複数の関節角度センサ7により取得された関節J1-J3の関節角度θ1-θ3を取得する(ステップS20)。現在位置導出部102は、取得した関節角度θ1-θ3とロボットアーム2(ロボット装置1)の諸元とに基づいて、ハンド部4の現在位置(3次元座標)を導出し(ステップS30)、導出した現在位置をトルク演算部103に与える。
制御装置100のトルク演算部103(目標トルク設定部105)は、ハンド部4の現在位置が前回位置から変化しているか否か(ハンド部4が移動しているか否か)を判定する(ステップS40)。トルク演算部103は、ハンド部4の現在位置が前回位置から変化していると判定した場合(ステップS40:YES)、更に、当該現在位置が目標位置に実質的に一致しているか否かを判定する(ステップS50)。現在位置が目標位置に実質的に一致していると判定した場合(ステップS50:YES)、トルク演算部103は、ステップS10にて取得した目標位置の次の目標位置を取得する(ステップS60)。当該次の目標位置は、目標剛性設定部106にも与えられ、目標剛性設定部106は、取得した目標位置等に基づいて、各関節Jiの目標剛性R(i)を設定する。また、ハンド部4の現在位置が目標位置に実質的に一致していない場合、ステップS60の処理は、スキップされる。
ステップS50またはS60の処理の後、制御装置100の目標トルク設定部105は、各関節Jiについての目標トルクTtag(i)を設定する(ステップS70)。図7は、ステップS70における目標トルク設定部105による目標トルクTtag(i)の設定手順を例示するフローチャートである。同図に示すように、目標トルク設定部105のトルク演算部103は、まず、ステップS10にて取得したハンド部4の目標位置に基づいて上述のゲインKpx,KpyおよびKpzを設定する(ステップS700)。ステップS700において、トルク演算部103は、ステップS10にて取得した目標位置が予め定められた目標位置(例えば、ハンド部4が減速し始める位置)になるまでゲインKpx,KpyおよびKpzの各々を予め定められた通常値に設定し、ステップS10にて取得した目標位置が予め定められた目標位置になった以降、ゲインKpx,KpyおよびKpzの各々を上記通常値よりも小さい値に設定する。
次いで、トルク演算部103は、ステップS10にて取得したハンド部4の目標位置と、ステップS30にて取得したハンド部4の現在位置とに基づいて、上記式(1)から上述の仮想的なバネおよびダンパによる引張力Ft=(fx,fy,fz)を算出する(ステップS710)。なお、ステップS710では、次式(3)から引張力Ft=(fx,fy,fz)が算出されてもよく、式(1)および式(3)が併用されてもよい。式(3)を用いることで、ロボットアーム2(各関節Ji)の動き出しをよりスムースにすることができる。
また、トルク演算部103は、別途設定される人感フラグを取得し(ステップS720)、人感フラグがオフされているか否かを判定する(ステップS730)。人感フラグは、ロボット装置1の設置箇所あるいは無人搬送車等に配置された少なくとも1つの人感センサ8(図1参照)からの信号に基づいて制御装置100によりオンまたはオフされるものである。すなわち、制御装置100は、当該少なくとも1つの人感センサ8により人の存在が検知されていない場合、人感フラグをオフし、少なくとも1つの人感センサ8により人の存在が検知された場合、人感フラグをオンする。
トルク演算部103は、人感フラグがオフされていると判定した場合(ステップS730:YES)、第1の力(ベクトル)Fu1を上記引張力Ftの上限値Fuに設定する(ステップS740)。また、トルク演算部103は、人感フラグがオンされていると判定した場合(ステップS730:NO)、上記第1の力Fu1よりも小さい第2の力(ベクトル)Fu2を引張力Ftの上限値Fuに設定する(ステップS745)。ステップS740またはS745の処理の後、トルク演算部103は、ステップS710にて設定した引張力Ftと上限値Fuとの小さい方を引張力Ftに設定(再設定)する(ステップS750)。
更に、トルク演算部103は、次式(4)に示すように、ステップS750にて設定した引張力Ftと次式(5)に示すヤコビ行列とから、関節J1-J3ごとに、ハンド部4が現在位置から目標位置まで移動するように関節Jiを介して連結された2つのアーム3(アーム3および支持部材5)を相対的に回動させる関節トルクTj(i)を算出する(ステップS760)。そして、目標トルク設定部105は、上述のようにしてトルク演算部103により算出された関節トルクTj(i)と、重力補償部104により別途算出された重力補償トルクTc(i)との和を2つのアーム3等を相対的に回動させるための目標トルクTtag(1)-Ttag(3)に設定する(ステップS770)。
ステップS70(ステップS770)にて各関節Jiについての目標トルクTtag(i)が設定されると、制御装置100の目標圧力設定部110は、関節Jiすなわちアーム3ごとに複数の液圧アクチュエータMの目標圧力Ptag1(i)およびPtag2(i)を設定する(ステップS80)。図8は、ステップS80における目標圧力設定部110による目標圧力Ptag1(i)およびPtag2(i)の設定手順を例示するフローチャートである。同図に示すように、目標圧力設定部110は、まず、変数iすなわち関節の番号を値1に設定する(ステップS800)。次いで、目標圧力設定部110の収縮力算出部108は、目標トルク設定部105により設定された関節Jiについての目標トルクTtag(i)と、目標剛性設定部106により設定された関節Jiの目標剛性R(i)とを取得する(ステップS810)。また、ステップS810において、目標圧力設定部110の収縮率設定部107は、対応する関節角度センサ7により検出された関節Jiの現在の関節角度θiを取得する。
関節角度θiを取得した目標圧力設定部110の収縮率設定部107は、関節Jiに対応した上記一側の人工筋肉AM1を構成する2つの液圧アクチュエータMの収縮率Cr1(i)と、関節Jiに対応した上記他側の人工筋肉AM2を構成する2つの液圧アクチュエータMの収縮率Cr2(i)とを設定する(ステップS820)。ステップS820において、収縮率設定部107は、関節Jiの関節角度θiや、ロボットアーム2(ロボット装置1)の諸元(アーム3の寸法等)等に基づいて、一側の人工筋肉AM1を構成する2つの液圧アクチュエータMの収縮率Cr1(i)と、他側の人工筋肉AM2を構成する2つの液圧アクチュエータMの収縮率Cr2(i)とを導出・設定する。
また、目標圧力設定部110の収縮力算出部108は、ステップS810にて取得した目標トルクTtag(i)および関節Jiの目標剛性R(i)に基づいて、関節Jiに対応した一側の人工筋肉AM1を構成する2つの液圧アクチュエータMに要求される収縮力(引張力)Fc1(i)と、当該関節Jiに対応した他側の人工筋肉AM2を構成する2つの液圧アクチュエータMに要求される収縮力(引張力)Fc2(i)とを算出する(ステップS830)。ここで、目標トルクTtag(i)と収縮力Fc1(i),Fc2(i)との間には、|Ttag(i)|=|r(Fc1(i)-Fc2(i))|という関係が成立する(ただし、“r”は、換算係数である。)。また、関節Jiの目標剛性R(i)と収縮力Fc1(i),Fc2(i)との間には、R(i)=Fc1(i)+Fc2(i)という関係が成立するとみなすことができる。従って、ステップS830において、収縮力算出部108は、これら2つの関係式から得られる連立方程式を解くことにより、目標トルクTtag(i)および関節Jiの目標剛性R(i)に対応した収縮力Fc1(i),Fc2(i)を算出する。
ステップS820およびS830の処理の後、目標圧力設定部110の目標圧力導出部109は、図9に例示する目標圧力設定マップから収縮率Cr1(i)と収縮力Fc1(i)とに対応した圧力を適宜線形補間を行いながら導出して上記一側の人工筋肉AM1を構成する2つの液圧アクチュエータMの目標圧力Ptag1(i)に設定する(ステップS840)。また、ステップS840において、目標圧力導出部109は、当該目標圧力設定マップから収縮率Cr2(i)と収縮力Fc2(i)とに対応した圧力を導出して上記他側の人工筋肉AM2を構成する2つの液圧アクチュエータMの目標圧力Ptag2(i)に設定する。
図9の目標圧力設定マップは、人工筋肉としての液圧アクチュエータMの静特性を示すものであり、液圧アクチュエータMに供給される油圧ごとに、チューブTの収縮率と当該チューブTが発生する収縮力との関係を規定するように予め実験・解析を経て作成されたものである。このように、チューブTの収縮率Cr1(i),Cr2(i)および収縮力Fc1(i),Fc2(i)に対応した圧力を目標圧力Ptag1(i),Ptag2(i)に設定することで、ロボットアーム2への要求に応じて目標圧力Ptag1(i),Ptag2(i)を精度よく設定することが可能となる。
ステップS840にて目標圧力Ptag1(i)およびPtag2(i)が設定されると、目標圧力設定部110は、変数iをインクリメントし(ステップS850)、変数iが値N+1以上であるか否かを判定する(ステップS860)。値Nは、ロボットアーム2における関節の数を示し、本実施形態では、N=3である。目標圧力設定部110は、変数iが値N+1未満であると判定した場合(ステップS860:NO)、上記ステップS810-S860の処理を再度実行する。目標圧力設定部110により変数iが値N+1以上であると判定されると(ステップS860:YES)、図6に示すように、制御装置100の電流指令値設定部111は、図示しないマップ等を用いて、各関節Jiの目標圧力Ptag1(i)およびPtag2(i)の各々を電流指令値に直接変換する(ステップS90)。電流指令値設定部111により導出された電流指令値は、制御装置100のバルブ駆動部112に与えられ、バルブ駆動部112は、当該電流指令に基づいて、それぞれ複数の第1および第2リニアソレノイドバルブ151,152を制御(PWM制御)する(ステップS100)。
これにより、目標トルクTtag(i)に応じた液体供給装置10への電流指令値が容易かつ速やかに設定され、当該電流指令値に基づいて制御される液体供給装置10の第1および第2リニアソレノイドバルブ151,152の各々は、対応する目標圧力Ptag1(i)またはPtag2(i)に応じた油圧を生成する。更に、第1および第2リニアソレノイドバルブ151,152により調圧された作動油は、第1および第2供給遮断弁161,162を介して対応する液圧アクチュエータMのチューブTに供給される。この結果、流量制御弁により作動油の流量を調整してチューブT内に供給したり、チューブTに供給される油圧を圧力センサにより検出して実油圧が目標圧力に一致するように流量制御弁をフィードバック制御したりする場合に比べて、目標圧力Ptag1(i),Ptag2(i)の設定から短時間のうちに、各チューブTに供給される油圧を当該目標圧力Ptag1(i),Ptag2(i)に実質的に一致させ、各チューブTの実際の収縮率を要求値に応答性よく高精度に追従させることが可能となる。制御装置100は、ステップS100の処理の後、図6のルーチンを一旦終了させ、次の実行タイミングの到来に応じて再度ステップS10以降の処理を実行する。
一方、図6のステップS40にてハンド部4の現在位置が前回位置から実質的に変化していないと判定した場合(ステップS40:NO)、トルク演算部103は、当該現在位置が前回位置から実質的に変化しなくなってから予め定められた比較的短い時間(所定時間)が経過したか否かを判定する(ステップS55)。現在位置が実質的に変化しなくなってから当該所定時間が経過していないと判定した場合(ステップS55:NO)、トルク演算部103は、例えば、上記目標到達位置と現在位置との差と当該所定時間とに基づいてハンド部4の目標位置を設定する(ステップS65)。ステップS65において、トルク演算部103は、例えば、現在位置が実質的に変化しなくなってから上記所定時間が経過する少し前に目標位置が目標到達位置に一致するように当該目標位置を時間の経過と共に一定の割合で変化させる。かかるステップS65の処理の後、上記ステップS70以降の処理が実行される。また、ステップS65にて設定された目標位置は、目標剛性設定部106にも与えられ、目標剛性設定部106は、取得した目標位置等に基づいて、各関節Jiの目標剛性R(i)を設定する。これにより、ハンド部4と把持対象との接触後(または把持対象と載置面との接触後)に、当該ハンド部4から把持対象(または載置面)に上記押圧力Fp以下の力が加えられることになる。
ステップS55にて現在位置が実質的に変化しなくなってから上記所定時間が経過したと判定されると、制御装置100は、図6のルーチンを終了させてハンド部4に把持対象を把持させるためのハンド制御ルーチンを実行する。また、制御装置100の目標位置設定部101は、ハンド部4により把持対象が把持されるまでに、図5のルーチンを実行して把持対象の載置位置に応じた目標到達位置および目標軌道を設定する。更に、ハンド部4により把持対象が把持されてハンド制御ルーチンが完了すると、制御装置100は、ロボットアーム2により把持対象を載置位置まで搬送すべく、図6のルーチンを再度実行する。なお、ステップS40にて否定判断がなされた後には、ハンド部4の目標位置が現在位置から目標到達位置まで所定のレートで変化するように設定されてもよく、目標位置が目標到達位置に一致してから予め定められた時間が経過した段階で図6のルーチンが終了されてもよい。
上述のように、ロボット装置1の制御装置100の目標位置設定部101は、ロボット装置1のハンド部4または当該ハンド部4により把持された把持対象(手先)を把持対象または当該把持対象の載置面(対象)に接触させる際に、ハンド部4と把持対象との接触後または把持対象と載置面との接触後(図10における時刻t2以降)にハンド部4から把持対象または載置面に予め定められた押圧力Fpが加えられるハンド部4の目標到達位置を設定する(図5のステップS2)。すなわち、目標位置設定部101は、図10に示すように、挟持対象等の位置よりも若干先の位置をハンド部4の目標到達位置に設定する。また、制御装置100は、目標到達位置等に基づいて設定される目標軌道を形成する目標位置とハンド部4の現在位置とに基づいてロボットアーム2の各関節Jiについての目標トルクTtag(i)を設定すると共に(図6のステップS70)、目標トルクTtag(i)に基づいて各関節Jiに対応した複数の液圧アクチュエータMの目標圧力Ptag1(i)およびPtag2(i)を設定する(図6のステップS80)。更に、制御装置100は、ハンド部4と把持対象または載置面とが接触する前から目標位置が目標到達位置に一致するまでの間、各液圧アクチュエータMに供給される作動油の圧力が目標圧力Ptag1(i),Ptag2(i)になるように液体供給装置10の第1および第2リニアソレノイドバルブ151,152を制御する(図6のステップS90-S100)。
これにより、例えば把持対象を破壊することなくハンド部4または把持対象(手先)を把持対象または載置面(対象)に接触させるように当該把持対象等の位置のばらつき等を考慮して上記押圧力Fpを定めておけば、ハンド部4等が把持対象等にある程度接近した段階で当該ハンド部4の移動速度を低下させたり、センサによりハンド部4等と把持対象等との接触を検知したりすることなく、ロボット装置1のハンド部4等と把持対象等とを接触させることができる。更に、目標到達位置に応じたハンド部4の目標位置と、当該ハンド部4の現在位置とに基づく目標トルク(目標駆動力)Ttag(i)、より詳細には、目標トルクTtag(i)に基づく目標圧力Ptag1(i)およびPtag2(i)に基づいて液体供給装置10を制御することで、人工筋肉としての各液圧アクチュエータMに供給される油圧を検出するセンサを用いることなく、各液圧アクチュエータMを要求に対して応答性よく高精度に作動させることが可能となる。
また、制御装置100の目標位置設定部(目標到達位置設定部および目標軌道設定部)101は、上記目標到達位置を設定すると共に、当該目標到達位置、ハンド部4の目標速度および目標加速度に基づいて複数の目標位置を含むハンド部4の目標軌道を設定する(図5のステップS1-S3)。更に、目標トルク設定部105は、ロボット装置1のハンド部(手先)4を現在位置から目標位置まで移動させる引張力(駆動力)Ftを算出すると共に、当該引張力Ftに基づいて関節Jiを介して連結された2つのアーム(リンク)3等を相対的に回動させるための目標トルクTtag(i)を設定する(図6のステップS70、図7のステップS700-S770)。また、目標圧力設定部110は、目標トルクTtag(i)に基づいて目標圧力Ptag1(i)およびPtag2(i)を設定する(図6のステップS80)。更に、電流指令値設定部111は、目標圧力Ptag1(i)およびPtag2(i)を液体供給装置10の第1および第2リニアソレノイドバルブ151,152への電流指令値に直接変換する(図6のステップS90)。
これにより、目標トルクTtag(i)から第1および第2リニアソレノイドバルブ151,152への電流指令値を容易かつ速やかに設定して人工筋肉としての各液圧アクチュエータMに供給される油圧を応答性よく制御すると共に、複数の液圧アクチュエータMによって目標軌道を辿るようにロボット装置1のハンド部4を移動させて当該ハンド部4を把持対象に接触させたり、把持対象を載置面に接触させたりすることが可能となる。なお、目標位置設定部101は、目標軌道を設定せず、目標到達位置のみを設定するものであってもよく、この場合、目標トルク設定部105は、目標到達位置と現在位置との差に基づいて目標Ttag(i)を設定するものであってもよい。更に、ロボット装置1の始動開始時に把持対象の位置を正確に取得し得ない場合等には、ハンド部4が把持対象に近づいてから、カメラ等により所定時間おきに取得された把持対象の位置から目標到達位置が当該所定時間おきに導出されてもよい。
また、目標トルク設定部105のトルク演算部103は、予め定められた上限値Fu(Fu1またはFu2)を超えないように引張力Ftを算出する(図7のステップS750)。加えて、トルク演算部103は、図10に示すように、ロボット装置1の周囲(例えばロボット装置1が配置される室内あるいは柵の内側といったロボットアーム2の動作範囲を含む領域)に人がいることが検知されて人感フラグがオンされると(図10における時刻t1および図中二点鎖線参照)、上限値Fuをロボット装置1の周囲に人がいない場合に比べて小さくする(図7のステップS720-S745)。これにより、ロボット装置1のハンド部4が目標軌道に沿って移動する間に、ロボット装置1に人が万が一接触したとしても、人が接触後に受ける力を良好に緩和することが可能となる。
更に、ロボット装置1の制御装置100において、目標位置設定部(目標軌道設定部)101は、図6のステップS40にてハンド部4の現在位置が前回位置から実質的に変化していないと判定されるまで、別途与えられる目標加速度を予め定められた上限加速度を超えないように制限しながら所定時間おきにハンド部4の目標位置を設定するものであってもよい。この場合、当該目標位置設定部101は、ロボット装置1の周囲に人がいる場合、上限加速度をロボット装置1の周囲に人がいない場合に比べて小さくするように構成されるとよい。かかる態様によっても、ロボット装置1のハンド部4が目標軌道に沿って移動する間に、ロボット装置1に人が万が一接触したとしても、人が接触後に受ける力を良好に緩和することが可能となる。
また、上記実施形態において、目標トルク設定部105のトルク演算部103は、目標位置と現在位置との差にゲインKpx,Kpy,Kpzを乗じた比例項を含むフィードバック制御の関係式(1)に従って引張力Ftを算出すると共に、ハンド部4の目標位置に応じて当該ゲインKpx,Kpy,Kpzを変化させる(図7のステップS700)。これにより、ハンド部4の目標軌道に対する追従性や、ハンド部4等から把持対象等に加えられる押圧力Fpの接触後における増加の度合を変化させることが可能となる。
すなわち、ゲインKpx,Kpy,Kpzを大きくした場合、ハンド部4の目標軌道への追従性が向上する一方で、ハンド部4と把持対象との接触後あるいは把持対象と載置面との接触後における押圧力Fpの増加勾配が大きくなる。これに対して、ゲインKpx,Kpy,Kpzを小さくした場合、ハンド部4の目標軌道への追従性が緩やかになるが、ハンド部4と把持対象との接触後あるいは把持対象と載置面との接触後における押圧力Fpの増加勾配を小さくすることができる。従って、上述のように、ハンド部4が把持対象または載置面にある程度接近した段階で、ゲインKpx,Kpy,Kpzをそれまでの値よりも小さくすれば、ロボット装置1の応答性と安全性とをより向上させることができる。なお、図7のステップS700において、ゲインKpx,Kpy,Kpzは、ハンド部4の現在位置に応じて変化させられてもよい。
更に、上記実施形態において、目標トルク設定部105のトルク演算部103は、関節J1-J3ごとに、ロボット装置1のハンド部4を現在位置から目標位置まで移動させる関節トルクTj(i)を算出する。また、目標トルク設定部105の重力補償部104は、関節J1-J3ごとに、ロボットアーム2(ロボット装置1)の姿勢を維持するのに必要な重力補償トルクTc(i)を算出する。更に、目標トルク設定部105は、関節トルクTj(i)と重力補償トルクTc(i)との和を、関節Jiを介して連結される2つのアーム3等を相対的に回動させるための目標トルクTtag(i)に設定する(図6のステップS70、図7のステップS770)。これにより、ロボットアーム2(ロボット装置1)の挙動の乱れを抑制しつつ、複数の液圧アクチュエータMによりロボット装置1のハンド部4を移動させることが可能となる。
また、制御装置100は、少なくともロボット装置1のハンド部4の目標位置に基づいて各関節Jiの目標剛性R(i)を設定する目標剛性設定部106と、ロボット装置1の現在位置に応じた各関節角度θiに基づいて各液圧アクチュエータMの収縮率Cr1(i),Cr2(i)を設定する収縮率設定部107と、目標トルクTtag(i)と目標剛性R(i)とに基づいて関節Jiに対応した複数(一対)の液圧アクチュエータMに要求される収縮力Fc1(i),Fc2(i)を算出する収縮力算出部108と、目標圧力設定マップから収縮率Cr1(i)と収縮力Fc1(i)とに対応した圧力および収縮率Cr2(i)と収縮力Fc2(i)とに対応した圧力を導出して目標圧力Ptag1(i),Ptag2(i)に設定する目標圧力導出部109とを含む。これにより、人工筋肉としての各液圧アクチュエータMの要求に応じて目標圧力Ptag1(i),Ptag2(i)を精度よく設定し、複数の液圧アクチュエータMを含むロボット装置1を応答性よく安定に作動させることが可能となる。
以上説明したように、本開示のロボット装置1は、作動油(液体)の供給を受けて作動する複数の液圧アクチュエータ(人工筋肉)Mと、当該複数の液圧アクチュエータMに液体を供給する液体供給装置10と、当該液体供給装置10を制御する制御装置100とを含む。そして、制御装置100は、ロボット装置1を駆動するための目標トルク(目標駆動力)Ttag(i)を設定すると共に(図6のステップS70)、当該目標トルクTtag(i)に基づいて液圧アクチュエータMに供給される油圧の目標圧力Ptag1(i),Ptag2(i)を設定し(図6のステップS80)、当該目標圧力Ptag1(i),Ptag2(i)に基づいて液体供給装置10を制御する(図6のステップS90-S100)。
このように、目標トルクTtag(i)に基づいて液圧アクチュエータMに供給される油圧を制御することで、当該油圧を検出するセンサを用いることなく、人工筋肉としての液圧アクチュエータMを要求に対して応答性よく高精度に作動させることが可能となる。
また、制御装置100は、ロボット装置1の一部であるハンド部4の目標位置と現在位置とに基づいて目標トルクTtag(i)を設定する目標トルク設定部105と、目標トルク設定部105により設定された目標トルクTtag(i)に基づいて目標圧力Ptag1(i),Ptag2(i)を設定する目標圧力設定部110と、目標圧力設定部110により設定された目標圧力Ptag1(i),Ptag2(i)に基づいて液体供給装置10への電流指令値を設定する電流指令値設定部111とを含む。
これにより、目標トルクTtag(i)に応じた液体供給装置10への電流指令値を容易かつ速やかに設定して液圧アクチュエータMに供給される油圧を応答性よく制御することが可能となる。
更に、目標トルク設定部105は、ロボット装置1の一部であるハンド部4を現在位置から目標位置まで移動させる関節トルク(駆動力)Tj(i)と、ロボット装置1(ロボットアーム2)の姿勢を維持するのに必要な重力補償トルク(重力補償量)Tc(i)との和を目標トルクTtag(i)に設定する(図6のステップS70、図7のステップS770)。
これにより、ロボット装置1(ロボットアーム2)の挙動の乱れを抑制しつつ、液圧アクチュエータMにより当該ロボット装置1の一部であるハンド部4を移動させることが可能となる。
また、目標圧力設定部110は、ロボット装置1(ハンド部4)の現在位置に応じた関節Jiの関節角度θiに基づいて液圧アクチュエータMの収縮率Cr1(i),Cr2(i)を設定すると共に(図8のステップS820)、目標トルク設定部105により設定された目標トルクTtag(i)に基づいて液圧アクチュエータMの収縮力Fc1(i),Fc2(i)を算出し(図8のステップS830)、収縮率Cr1(i),Cr2(i)と収縮力Fc1(i),Fc2(i)とに基づいて目標圧力Ptag1(i),Ptag2(i)を設定する(図8のステップS840)。
これにより、液圧アクチュエータMへの要求に応じて目標圧力Ptag1(i),Ptag2(i)を精度よく設定することが可能となる。ただし、収縮率Cr1(i),Cr2(i)は、ロボット装置1のハンド部4の目標位置に応じた各関節Jiの目標角度に基づいて設定されてもよい。
更に、ロボット装置1は、複数の関節Jiと、複数のリンクとしての複数のアーム3および支持部材5とを含み、液圧アクチュエータMは、関節Jiを介して連結される2つのアーム3等を相対的に回動させる。すなわち、2つのアーム3等は、一側の人工筋肉AM1を構成する2つの液圧アクチュエータMと、当該2つの液圧アクチュエータMと互いに拮抗するように配置された他側の人工筋肉AM2を構成する他の2つの液圧アクチュエータMとにより相対的に回動させられる。そして、目標トルクTtag(i)は、2つのリンクを相対的に回動させる関節トルクTj(i)の目標値である。
これにより、対をなす複数の液圧アクチュエータMによって関節Jiを介して連結された2つのアーム3等の何れか一方を他方に対して応答性よく高精度に回動させることが可能となる。ただし、関節Jiを介して連結された2つのアーム3等に必ずしも対をなす複数の液圧アクチュエータ(人工筋肉)Mが設けられる必要はなく、当該2つのアーム3等には、1つまたは複数の液圧アクチュエータMと、当該液圧アクチュエータMと拮抗するように配置されるスプリングやゴム材等の弾性体とが連結されてもよい。
また、ロボット装置1の制御装置100は、少なくともロボット装置1の目標位置に基づいて関節Jiの目標剛性R(i)を設定する目標剛性設定部106を含み、目標トルク設定部105により設定された目標トルクTtag(i)と、目標剛性設定部106により設定された目標剛性R(i)とに基づいて液圧アクチュエータMの収縮力Fc1(i),Fc2(i)を算出する(図8のステップS830)。
これにより、関節Jiを介して連結された2つのアーム3等と、1つまたは複数の液圧アクチュエータMとを含むロボット装置1を応答性よく安定に作動させることが可能となる。ただし、各関節Jiの目標剛性R(i)は、少なくともロボット装置1すなわちハンド部4の現在位置に基づいて設定されてもよい。
更に、液体供給装置10は、液体供給源としてのポンプ13からの作動油を調圧して対応する液圧アクチュエータMに供給する液圧調整装置としての第1および第2リニアソレノイドバルブ151,152をそれぞれ複数含む。また、第1および第2リニアソレノイドバルブ151,152は、電磁部15e、スプール15s、当該スプール15sを付勢するスプリングSP、作動油が供給される入力ポート15i、出力ポート15o、当該出力ポート15oに連通するフィードバックポート15f、および入力ポート15iと出力ポート15oとに連通可能なドレンポート15dを含む。更に、第1および第2リニアソレノイドバルブ151,152は、電磁部15eが発生する推力と、スプリングSPの付勢力と、出力ポート15oからフィードバックポート15fに供給される油圧の作用によりスプール15sに加えられる推力とをバランスさせて作動油の圧力を調整する。
これにより、人工筋肉としての液圧アクチュエータMに供給される作動油を実圧が目標圧力Ptag1(i),Ptag2(i)になるように精度よく調圧することが可能となる。また、液圧アクチュエータM側に供給される油圧(信号圧または駆動圧)を第1および第2リニアソレノイドバルブ151,152にフィードバックすることで、人工筋肉としての複数の液圧アクチュエータMにより駆動されるロボットアーム2に当該複数の液圧アクチュエータM以外からの外力が加えられたときに、当該外力による液圧アクチュエータMのチューブTの体積変化に応じた油圧の変動を吸収することができる。加えて、当該外力が無くなった後には、速やかに要求に応じた油圧(駆動圧)を液圧アクチュエータMに供給することが可能となる。
ただし、第1および第2リニアソレノイドバルブ151,152の少なくとも何れか1つは、常開弁であってもよい。この場合、当該常開弁は、電磁部からの推力および当該電磁部からの推力と同方向に作用するようにフィードバックポートに供給された液圧による推力を、スプリングの付勢力とバランスさせるものであってもよい。また、リニアソレノイドバルブ151-156の少なくとも何れか1つは、専用のフィードバックポートをもたず、スプールを収容するスリーブの内側で出力圧(駆動圧)をフィードバック圧としてスプールに作用させるように構成されたものであってもよい(例えば、特開2020-41687号公報参照)。
更に、液体供給装置10において、第1および第2リニアソレノイドバルブ151,152の少なくとも何れか1つ(例えば、要求出力(収縮力と収縮速度との積)の最大値がすべての液圧アクチュエータMの中で最大となる液圧アクチュエータMに対応したもの)が、電磁部に供給される電流に応じた信号圧を出力するリニアソレノイドバルブ(あるいはオンオフソレノイドバルブ)と、当該信号圧に応じて作動油を調圧するコントロールバルブとで置き換えられてもよい。この場合、コントロールバルブは、バルブボディ内に配置されるスプールと、当該スプールを付勢するスプリングと、入力ポートと、出力ポートと、フィードバックポートと、信号圧入力ポートと、ドレンポートとを含むものであってもよく、出力圧(駆動圧)をスプールの内部でフィードバック圧として当該スプールに作用させるように構成されたものであってもよい。
また、第1および第2リニアソレノイドバルブ151,152の少なくとも何れか1つは、対応する液圧アクチュエータMに供給される油圧(液圧)が目標圧力になるように制御される流量制御弁で置き換えられてもよい。更に、液体供給装置10から元圧生成バルブ14が省略されてもよい。また、ポンプ13により発生させられた油圧を蓄えるアキュムレータ(蓄圧器)が液体供給装置10に設けられてもよい。更に、液体供給装置10は、水等の作動油以外の液体を液圧アクチュエータMに供給するように構成されてもよい。加えて、上記液体供給装置10から第1および第2リニアソレノイドバルブ151,152が省略されてもよく、複数の液圧アクチュエータMごとに液圧調整装置としてのポンプが設けられてもよい。
また、上記実施形態において、人工筋肉としての液圧アクチュエータMは、内部に作動油が供給されると共に当該内部の油圧の上昇に応じて径方向に膨張しながら軸方向に収縮するチューブTと、当該チューブTを覆う編組スリーブSとを含むマッキベン型の人工筋肉であるが、ロボット装置1における液圧アクチュエータMの構成は、これに限られるものではない。すなわち、液圧アクチュエータMは、液体が供給された際に径方向に膨張しながら軸方向に収縮するチューブを含むものであればよく、例えば弾性体により形成された内側筒状部材と、弾性体により形成されると共に内側筒状部材の外側に同軸に配置され外側筒状部材と、内側筒状部材と外側筒状部材との間に配置された繊維層とを含む軸方向繊維強化型の液圧アクチュエータ(例えば、特開2011-137516号参照)であってもよい。更に、液圧アクチュエータMは、シリンダおよびピストンを含む液体シリンダであってもよい。加えて、ロボット装置1の人工筋肉は、空気等の気体を作動流体として用いるものであってもよい。
また、ロボット装置1のロボットアーム2は、液圧アクチュエータ(流体アクチュエータ)として揺動モータ(例えば、ハンド部4の根元(手首部)を回転させる揺動モータ)を含むものであってもよい。すなわち、ロボットアーム2(ロボット本体)は、人工筋肉としての液圧アクチュエータと揺動モータとの少なくとも何れか1つを含むものであってもよい。更に、ロボット装置1のロボットアーム2は、液圧アクチュエータとしてエアシリンダや油圧シリンダといった流体圧シリンダを含むものであってもよい。また、ロボット装置1において、タンク11がロボットアーム2といったロボット本体により支持されてもよい。
そして、ロボット装置1は、関節を1つだけ含むものであってもよく、人工筋肉としての液圧アクチュエータMを1つまたは2つだけ含むものであってもよい。また、ロボット装置1は、少なくとも1つの液圧アクチュエータM等とハンド部4とを有するロボットアーム2を含むものに限られず、少なくとも1つの液圧アクチュエータと、例えばドリルビット等の工具や例えばスイッチ等を押圧する押圧部材といったハンド部4以外の要素が手先に取り付けられたロボットアームとを含むものであってもよい。更に、ロボット装置1は、歩行ロボットや、ウェアラブルロボット等であってもよい。
図11は、ロボット装置1に適用可能な他の制御装置100Bを示すブロック図である。なお、制御装置100Bの構成要素のうち、上述の制御装置100と同一の要素については同一の符号を付し、重複する説明を省略する。
図11に示す制御装置100Bも、それぞれコンピュータのCPUやROM,RAMといったハードウェアと、当該コンピュータにインストールされた制御プログラムといったソフトウェアとの少なくとも何れか一方により構築される。同図に示すように、制御装置100Bは、上記制御装置100と同様に、目標位置設定部101、現在位置導出部102、目標トルク設定部105(トルク演算部103および重力補償部104)、電流指令値設定部111,およびバルブ駆動部112を含む。また、制御装置100Bは、収縮力設定部116、収縮率設定部107B、収縮力算出部108Bおよび目標圧力導出部109Bを含む目標圧力設定部110Bを含む。
目標圧力設定部110Bの収縮力設定部116は、関節J1-J3ごとに、上記一側の人工筋肉AM1と上記他側の人工筋肉AM2とのうちの一方を第1人工筋肉として定めると共に、他方を第2人工筋肉として定める。更に、収縮力設定部116は、関節J1-J3ごとに、少なくともロボット装置1すなわちハンド部4の目標位置に応じて予め定められた一定の力(引張力)を第1人工筋肉を構成する2つの液圧アクチュエータMのチューブTの収縮により発生させる第1収縮力Fc1(i)に設定する。目標圧力設定部110Bの収縮率設定部107Bは、関節J1-J3ごとに、ハンド部4の現在位置に応じた関節Jiの関節角度θiに基づいて、上記第1人工筋肉を構成する2つの液圧アクチュエータMの収縮率Cr1(i)と、上記第2人工筋肉を構成する2つの液圧アクチュエータMの収縮率Cr2(i)とを設定する。目標圧力設定部110Bの収縮力算出部108Bは、関節J1-J3ごとに、目標トルク設定部105により設定された目標トルクTtag(i)と、収縮力設定部116により設定された第1収縮力Fc1(i)とに基づいて、第2人工筋肉を構成する2つの液圧アクチュエータMのチューブTの収縮により発生させる第2収縮力Fc2(i)に設定する。
制御装置100Bは、ロボットアーム2の作動開始に先立って(ハンド部4の移動開始前に)、制御装置100と同様に、図5のルーチンを実行してハンド部4の最終的な目標到達位置(xr,yr,zr)と、初期位置から目標到達位置(xr,yr,zr)までのハンド部4の目標軌道とを設定する。目標到達位置および目標軌道を設定した後、制御装置100Bは、ユーザによる実行指示に応じて、図6のロボットアーム制御ルーチンを所定時間(例えば10ms程度)おきに繰り返し実行する。制御装置100Bは、ステップS10-S70の処理を実行した後、ステップS80において、図12に示す手順に従って複数の液圧アクチュエータMの目標圧力Ptag1(i)およびPtag2(i)を設定する。
図12は、制御装置100Bの目標圧力設定部110Bによる目標圧力Ptag1(i)およびPtag2(i)の設定手順を例示するフローチャートである。同図に示すように、目標圧力設定部110Bは、まず、変数iすなわち関節の番号を値1に設定する(ステップS800B)。次いで、目標圧力設定部110Bの収縮力設定部116および収縮力算出部108は、目標トルク設定部105により設定された関節Jiについての目標トルクTtag(i)を取得し、目標圧力設定部110Bの収縮率設定部107は、対応する関節角度センサ7により検出された関節Jiの現在の関節角度θiを取得する(ステップS805B)。ステップS805Bの処理の後、目標圧力設定部110Bの収縮力設定部116は、取得した目標トルクTtag(i)が予め定められた比較的大きい閾値(所定値)Tref以上であるか否かを判定する(ステップS810B)。
目標トルクTtag(i)が閾値Tref以上であると判定した場合(ステップS810B:YES)、収縮力設定部116は、ステップS805Bにて取得した目標トルクTtag(i)の大きさと向きとから、関節Jiに対応した上記一側の人工筋肉AM1と上記他側の人工筋肉AM2とのうちの要求される収縮力が小さくなる一方を特定する(ステップS820B)。更に、ステップS820Bにおいて、収縮力設定部116は、人工筋肉AM1およびAM2のうち、収縮力が小さくなる一方を上記第1人工筋肉として定めると共に、他方を上記第2人工筋肉として定める。
一方、目標トルクTtag(i)が閾値Tref未満であると判定した場合(ステップS810B:NO)、収縮力設定部116は、ステップS805Bにて取得した目標トルクTtag(i)の向きと関節Jiの構造とから、関節Jiに対応した上記一側および他側の人工筋肉AM1,AM2のうち、目標トルクTtag(i)に応じた駆動力が関節Jiを介して連結される2つのアーム3等に作用した際に当該駆動力に対する反力を出力する一方を上記第1人工筋肉として定めると共に、他方を上記第2人工筋肉として定める(ステップS825B)。ステップS820BまたはS825Bの処理の後、収縮力設定部116は、関節Jiに対応した第1人工筋肉を構成する2つの液圧アクチュエータMのチューブTの収縮により発生させる第1収縮力Fc1(i)を設定する(ステップS830B)。
また、目標圧力設定部110Bの収縮率設定部107Bは、関節Jiに対応した第1人工筋肉を構成する2つの液圧アクチュエータMの収縮率Cr1(i)と、関節Jiに対応した第2人工筋肉を構成する2つの液圧アクチュエータMの収縮率Cr2(i)とを設定する(ステップS835B)。ステップS835Bにおいて、収縮率設定部107Bは、関節Jiの関節角度θiや、ロボットアーム2(ロボット装置1)の諸元(アーム3の寸法等)等に基づいて、関節Jiに対応した第1人工筋肉を構成する2つの液圧アクチュエータMの収縮率Cr1(i)と、関節Jiに対応した第2人工筋肉を構成する2つの液圧アクチュエータMの収縮率Cr2(i)とを導出・設定する。
更に、目標圧力設定部110Bの収縮力算出部108Bは、ステップS805Bにて取得した目標トルクTtag(i)と、収縮力設定部116により設定された第1収縮力Fc1(i)とから、関節Jiに対応した第2人工筋肉を構成する2つの液圧アクチュエータMに発生させる第2収縮力(引張力)Fc2(i)を算出する(ステップS840B)。そして、目標圧力設定部110Bの目標圧力導出部109Bは、図9に示す目標圧力設定マップから収縮率Cr1(i)と第1収縮力Fc1(i)とに対応した圧力を適宜線形補間を行いながら導出して関節Jiに対応した第1人工筋肉を構成する2つの液圧アクチュエータMの目標圧力Ptag1(i)に設定する(ステップS845B)。また、ステップS845Bにおいて、目標圧力導出部109Bは、当該目標圧力設定マップから収縮率Cr2(i)と第2収縮力Fc2(i)とに対応した圧力を導出して関節Jiに対応した第2人工筋肉を構成する2つの液圧アクチュエータMの目標圧力Ptag2(i)に設定する。
ステップS845Bにて目標圧力Ptag1(i)およびPtag2(i)が設定されると、目標圧力設定部110Bは、変数iをインクリメントし(ステップS850B)、変数iが値N+1(ここでは、N=3)以上であるか否かを判定する(ステップS855B)。目標圧力設定部110Bは、変数iが値N+1未満であると判定した場合(ステップS855B:NO)、上記ステップS805B-S855Bの処理を再度実行する。目標圧力設定部110Bにより変数iが値N+1以上であると判定されると(ステップS855B:YES)、各液圧アクチュエータMの目標圧力Ptag1(i),Ptag2(i)の設定が完了し、図6のステップS90およびS100の処理が実行される。
引き続き、図13および図14を参照しながら、制御装置100Bの収縮力設定部116によるステップS830Bにおける第1収縮力Fc1(i)の設定手順について説明する。
図13に示すように、ステップS830Bの処理の開始に際して、制御装置100Bの収縮力設定部116は、ハンド部4の目標到達位置、その時点で図6のロボットアーム制御ルーチンにて用いられているハンド部4の目標位置、および上述の人感フラグを取得する(ステップS8300)。次いで、収縮力設定部116は、人感フラグがオフされているか否かを判定し(ステップS8305)、人感フラグがオフされていると判定した場合(ステップS8305:YES)、ハンド部4により把持対象が把持されているか否かを判定する(ステップS8310)。ハンド部4により把持対象が把持されていないと判定した場合(ステップS8310:NO)、収縮力設定部116は、ステップS8300にて取得したハンド部4の目標到達位置および目標位置に基づいて、当該ハンド部4が把持対象の概ね真上に位置しているか否かを判定する(ステップS8315)。
収縮力設定部116は、ハンド部4が把持対象の概ね真上に位置していないと判定した場合(ステップS8315:NO)、関節Jiについて予め定められた中程度かつ一定の収縮力Fcm(i)を当該関節Jiに対応した第1人工筋肉を構成する2つの液圧アクチュエータMのチューブTの収縮により発生させる第1収縮力Fc1(i)に設定し(ステップS8320)、ステップS830Bの処理を終了させる。また、ハンド部4が把持対象の概ね真上に位置していると判定した場合(ステップS8315:YES)、収縮力設定部116は、関節Jiについて予め定められた比較的小さい一定の収縮力Fcs(i)を第1収縮力Fc1(i)に設定し(ステップS8340)、ステップS830Bの処理を終了させる。
ここで、関節Jiに対応した第1人工筋肉を構成する2つの液圧アクチュエータMが発生する最大収縮力と、当該関節Jiに対応した第2人工筋肉を構成する2つの液圧アクチュエータMが発生する最大収縮力とが同一であり、当該最大収縮力を“Fmax”とすれば、4つの液圧アクチュエータMから関節Jiに付与し得る最大トルクTmaxは、|Tmax|=|r・(Fc1(i)-Fc2(i))|=|r・Fmax|となり、この際、関節Jiの剛性を“R(i)”とすれば、R=Fmaxとなる。このため、本実施形態において、収縮力Fcs(i)およびFcm(i)は、最大トルクTmax=r・Fmaxの出力を可能とすべく、Fmax≦Fcs(i)<Fcm(i)を満たすように予め定められる。これにより、ハンド部4を対象物に向けて下降(接近)させる際に、各液圧アクチュエータMの収縮力(トルク)を充分に確保しつつ、関節Jiの剛性を低下させ、ハンド部4(ロボットアーム2の一部)が把持対象に接触する際の衝撃を関節J1-J3により良好に吸収することが可能となる。
また、収縮力設定部116は、ハンド部4により把持対象が把持されていると判定した場合(ステップS8310:YES)、ステップS8300にて取得したハンド部4の目標到達位置および目標位置に基づいて、当該ハンド部4が把持対象の載置位置の概ね真上に位置しているか否かを判定する(ステップS8325)。ハンド部4が載置位置の概ね真上に位置していると判定した場合(ステップS8325:YES)、収縮力設定部116は、例えばハンド部4の目標到達位置および目標位置に基づいて、当該ハンド部4が載置位置に向けて移動しているか否かを判定する(ステップS8330)。
収縮力設定部116は、ハンド部4が載置位置に向けて移動していると判定した場合(ステップS8330:YES)、例えばハンド部4の目標到達位置および目標位置に基づいて、当該ハンド部4が載置位置から比較的短い所定距離だけ離間した位置に達しているか否かを判定する(ステップS8335)。ハンド部4が載置位置から所定距離だけ離間した位置に達していると判定した場合(ステップS8335:YES)、収縮力設定部116は、上述の比較的小さい一定の収縮力Fcs(i)を第1収縮力Fc1(i)に設定し(ステップS8340)、ステップS830Bの処理を終了させる。これにより、関節Jiの剛性を低下させ、ハンド部4により把持された把持対象が載置面に載置される際の衝撃を関節J1-J3により良好に吸収することが可能となる。
これに対して、ハンド部4が載置位置から所定距離だけ離間した位置に達していないと判定した場合(ステップS8335:NO)、収縮力設定部116は、関節Jiについて予め定められた比較的大きい収縮力Fcg(i)を第1収縮力Fc1(i)に設定し(ステップS8345)、ステップS830Bの処理を終了させる。また、ハンド部4が載置位置の概ね真上で当該載置位置から離間していると判定した場合(ステップS8330:NO)。収縮力設定部116は、関節Jiについて予め定められた比較的大きい収縮力Fcg(i)を各関節Jiの第1収縮力Fc1(i)に設定し(ステップS8345)、ステップS830Bの処理を終了させる。
ここで、関節Jiに対応した第1人工筋肉を構成する2つの液圧アクチュエータMが発生する収縮力と、関節Jiに対応した第2人工筋肉を構成する2つの液圧アクチュエータMが発生する収縮力との双方が最大収縮力Fmaxである場合、関節Jiの剛性R(i)の最大値Rmaxは、Rmax=2×Fmaxとなる。このため、本実施形態において、収縮力Fcg(i)は、Fcm(i)<Fcg(i)≦2×Fmaxを満たすように予め定められる。これにより、ステップS8345にて比較的大きい収縮力Fcg(i)を各関節Jiの第1収縮力Fc1(i)に設定することで、ハンド部4により把持された把持対象を持ち上げたり、載置位置に向けて下降させたりする際にロボットアーム2が振動するのを良好に吸収することが可能となる。
一方、ハンド部4が載置位置の概ね真上に位置していないと判定した場合(ステップS8325:NO)、収縮力設定部116は、図14に示すように、その時点でのハンド部4の目標加速度を取得し(ステップS8350)、当該目標加速度に基づいてハンド部4が加速または減速するか否かを判定する(ステップS8360)。ハンド部4が等速で移動すると判定した場合(ステップS8360:NO)、収縮力設定部116は、上述の中程度の収縮力Fcm(i)を第1収縮力Fc1(i)に設定し(ステップS8375)、ステップS830Bの処理を終了させる。
また、収縮力設定部116は、ハンド部4が加速または減速すると判定した場合(ステップS8360:YES)、更に、ステップS8350にて取得した目標加速度からハンド部4が加速するか否かを判定する(ステップS8370)。ハンド部4が加速すると判定した場合(ステップS8370:YES)、収縮力設定部116は、上述の比較的小さい収縮力Fcs(i)を第1収縮力Fc1(i)に設定し(ステップS8380)、ステップS830Bの処理を終了させる。これにより、把持対象を把持したハンド部4が加速する際に、関節Jiの剛性を低下させて各液圧アクチュエータMの収縮力(トルク)を充分に確保することが可能となる。
更に、ハンド部4が減速すると判定した場合(ステップS8370:NO)、収縮力設定部116は、上述の比較的大きい収縮力Fcg(i)を第1収縮力Fc1(i)に設定し(ステップS8390)、ステップS830Bの処理を終了させる。これにより、把持対象を把持したハンド部4が減速する際に、関節Jiの剛性を高くして、ロボットアーム2が振動するのを良好に吸収することが可能となる。
また、収縮力設定部116は、人感フラグがオンされていると判定した場合(ステップS8305:NO)、上述の比較的小さい収縮力Fcs(i)を第1収縮力Fc1(i)に設定し(ステップS8340)、ステップS830Bの処理を終了させる。これにより、関節Jiの剛性を低下させることができるので、ロボット装置1の作動中に万が一人がロボットアーム2やハンド部4に接触したとしても、人が接触後に受ける力を良好に緩和することが可能となる。
上述のように、制御装置100Bは、関節Jiを介して連結された2つのアーム3等を相対的に回動させるための目標トルクTtag(i)を設定する目標トルク設定部105と、収縮力設定部116とを含む。収縮力設定部116は、関節Jiに対応した上記一側および他側の人工筋肉AM1,AM2の一方である第1人工筋肉を構成する2つの液圧アクチュエータMに発生させる第1収縮力Fc1(i)を設定する(図12のステップS830B,図13および図14のステップS8300-S8390)。更に、制御装置100Bは、目標トルクTtag(i)と第1収縮力Fc1(i)とに基づいて上記一側および他側の人工筋肉AM1,AM2の他方である第2人工筋肉を構成する2つの液圧アクチュエータMに発生させる第2収縮力Fc2(i)を設定し(図12のステップS840B)、第1人工筋肉を構成する2つの液圧アクチュエータMが第1収縮力Fc1(i)を発生すると共に、第2人工筋肉を構成する2つの液圧アクチュエータMが第2収縮力Fc2(i)を発生するように液体供給装置10を制御する(図6のステップS90-S100)。
すなわち、2つのアーム3等を相対的に回動させるための目標トルクTtag(i)と、第1人工筋肉に発生させる第1収縮力Fc1(i)とが定まれば、当該目標トルクTtag(i)と第1収縮力Fc1(i)とから第2人工筋肉に発生させる第2収縮力Fc2(i)を定めることができる。そして、第1収縮力Fc1(i)を小さくすると共に第2収縮力Fc2(i)を大きくすることで、関節Jiの剛性R(i)の増加を抑えつつ要求に応じた力を出力するように第1および第2人工筋肉を構成する液圧アクチュエータMを応答性よく高精度に作動させることが可能となる。更に、第1収縮力Fc1(i)を大きくすることで、目標トルクTtag(i)に応じて第2収縮力Fc2(i)も大きくなるので、関節Jiの剛性R(i)を高くしてロボット装置1の動作を安定化させることができる。この結果、関節Jiを介して連結された2つのアーム3等と、作動油の供給を受けて当該2つのリンクを相対的に回動させる一対の第1および第2人工筋肉としての複数の液圧アクチュエータMとを含むロボット装置1を応答性よく安定に作動させることが可能となる。
更に、制御装置100Bの収縮力設定部116は、少なくともロボット装置1すなわちハンド部4の目標位置に基づいて、関節J1-J3ごとに、関節Jiに対応した第1人工筋肉を構成する2つの液圧アクチュエータMに発生させる第1収縮力Fc1(i)を設定する。これにより、2つのアーム3等を相対的に回動させるのに大きなトルクが要求される位置では、第1収縮力Fc1(i)を小さくすると共に第2収縮力Fc2(i)を大きくすることで、関節Jiの剛性R(i)の増加を抑えることが可能となる。更に、2つのアーム3等を相対的に回動させるのに大きなトルクが要求されない位置では、第1収縮力Fc1(i)を大きくすることで、関節Jiの剛性R(i)を高くすることができる。
また、収縮力設定部116は、ロボット装置1のハンド部4を把持対象や当該把持対象の載置位置(対象)まで移動させる際に、ロボット装置1と把持対象等との位置関係に応じて第1収縮力Fc1(i)を変化させる(ステップS8300-S8390)。これにより、ロボット装置1を応答性よく安定に作動させてハンド部4を把持対象等に向けて移動させることが可能となる。
更に、収縮力設定部116は、ロボット装置1の一部であるハンド部4が把持対象に接触する前に第1収縮力Fc1(i)を低下させると共に(ステップS8315、S8340)、ハンド部4により把持されて実質的にロボット装置1の一部となっている把持対象が載置面に接触する前に第1収縮力Fc1(i)を低下させる(ステップS8315、S8340)。これにより、第1収縮力Fc1(i)の低下に応じて各関節Jiの剛性を低下させることができるので、ロボット装置1のハンド部4等が把持対象等に接触する際の衝撃を各関節Jiにより良好に吸収することが可能となる。
また、収縮力設定部116は、ロボット装置1のハンド部4の移動速度や加速度に応じて第1収縮力Fc1(i)を変化させる(ステップS8350-S8390)。これにより、第1収縮力Fc1(i)を小さくすると共に第2収縮力Fc2(i)を大きくしてロボット装置1のハンド部4の加速や高速移動を許容したり、ロボット装置1のハンド部4が減速あるいは低速移動する際に各関節Jiの剛性R(i)を高めて振動の発生を抑制したりすることが可能となる。
更に、収縮力設定部116は、ロボット装置1の周囲(例えばロボット装置1が配置される室内あるいは柵の内側といったロボットアーム2の動作範囲を含む領域)に人がいる場合、第1収縮力Fc1(i)を小さくする(ステップS8305,S8340)。これにより、各関節Jiの剛性R(i)を低下させることができるので、万が一人がロボット装置1に接触したとしても、人が接触後に受ける力を良好に緩和することが可能となる。
また、制御装置100Bは、収縮力設定部116、収縮率設定部107Bおよび収縮力算出部108Bを含む目標圧力設定部110Bと、電流指令値設定部111とを含む。収縮率設定部107Bは、関節Jiの関節角度θiに基づいて第1および第2人工筋肉を構成する液圧アクチュエータMの収縮率Cr1(i),Cr2(i)を設定する(ステップS835)。収縮力算出部108Bは、目標トルクTtag(i)と第1収縮力Fc1(i)とに基づいて第2収縮力Fc2(i)を算出する(ステップS840)。目標圧力設定部110Bは、第1収縮率Cr1(i)と第1収縮力Fc1(i)とに基づいて第1人工筋肉を構成する液圧アクチュエータMに供給される作動油の目標圧力Ptag1(i)を設定すると共に、第2収縮率Cr2(i)と第2収縮力Fc2(i)とに基づいて第2人工筋肉を構成する液圧アクチュエータMに供給される作動油の目標圧力Ptag2(i)を設定する(ステップS845B)。更に、電流指令値設定部111は、目標圧力Ptag1(i)およびPtag2(i)に基づいて液体供給装置10の第1および第2リニアソレノイドバルブ151,152への電流指令値を設定する(図6のステップS90)。これにより、第1または第2収縮力Fc1(i),Fc2(i)を出力するように第1および第2人工筋肉を構成する液圧アクチュエータMを応答性よく高精度に作動させることが可能となる。なお、収縮率Cr1(i),Cr2(i)は、ロボット装置1のハンド部4の目標位置に応じた各関節Jiの目標角度に基づいて設定されてもよい。
また、図11に示すように、制御装置100Bからは、目標剛性設定部が省略されているが、これに限られるものではない。すなわち、制御装置100Bに制御装置100の目標剛性設定部106と同様の目標剛性設定部が設けられてもよく、目標圧力設定部110Bの収縮力算出部108Bは、関節Jiの剛性が当該目標剛性設定部により設定される目標剛性R(i)になるように第1および第2収縮力Fc1(i),Fc2(i)を補正するものであってもよい。これにより、関節Jiの剛性を要求に応じた値に維持しつつ、第1および第2人工筋肉に目標トルクTtag(i)に応じた力を発生させることが可能となる。この場合、上述のように、|Ttag(i)|=|r(Fc1(i)-Fc2(i))|という関係と、R(i)=Fc1(i)+Fc2(i)という関係とが成立することから、目標圧力設定部110B(収縮力算出部108B)は、第1収縮力Fc1(i)と第2収縮力Fc2(i)との差を維持(変わらないように)しつつ、R(i)=Fc1(i)+Fc2(i)を満たす同一の補正量を第1および第2収縮力Fc1(i),Fc2(i)に加算または減算するように構成されればよい。
図15は、ロボット装置1に適用可能な他の制御装置100Cを示すブロック図である。なお、制御装置100Cの構成要素のうち、上述の制御装置100等と同一の要素については同一の符号を付し、重複する説明を省略する。
図15に示す制御装置100Cも、それぞれコンピュータのCPUやROM,RAMといったハードウェアと、当該コンピュータにインストールされた制御プログラムといったソフトウェアとの少なくとも何れか一方により構築される。同図に示すように、制御装置100Cは、上記制御装置100等と同様に、目標位置設定部101、現在位置導出部102、目標トルク設定部105(トルク演算部103および重力補償部104)、電流指令値設定部111,およびバルブ駆動部112を含む。また、制御装置100Cは、第1目標圧力設定部121、収縮率設定部107C、収縮力導出部108Cおよび第2目標圧力設定部122を含む目標圧力設定部110Cを含む。
目標圧力設定部110Cの第1目標圧力設定部121は、関節J1-J3ごとに、上記一側の人工筋肉AM1と上記他側の人工筋肉AM2とのうちの一方を第1人工筋肉として定めると共に、他方を第2人工筋肉として定める。更に、第1目標圧力設定部121は、関節J1-J3ごとに、予め定められた一定の圧力を第1人工筋肉を構成する2つの液圧アクチュエータMに供給される油圧の目標値である第1目標圧力Ptag1(i)に設定する。目標圧力設定部110Cの収縮率設定部107Cは、関節J1-J3ごとに、ハンド部4の現在位置に応じた関節Jiの関節角度θiに基づいて、第1人工筋肉を構成する2つの液圧アクチュエータMの収縮率Cr1(i)と、第2人工筋肉を構成する2つの液圧アクチュエータMの収縮率Cr2(i)とを設定する。
目標圧力設定部110Cの収縮力導出部108Cは、関節J1-J3ごとに、人工筋肉としての液圧アクチュエータMの静特性から、第1目標圧力設定部121により設定された第1目標圧力Ptag1(i)と収縮率設定部107Cにより設定された収縮率Cr1(i)とに対応した第1収縮力Fc1(i)を導出する。第1収縮力Fc1(i)は、第1人工筋肉を構成する2つの液圧アクチュエータMのチューブTの収縮により発生させる収縮力である。更に、収縮力導出部108Cは、関節J1-J3ごとに、導出した収縮力Fc1(i)と、目標トルク設定部105により設定された目標トルクTtag(i)とから、第2人工筋肉を構成する2つの液圧アクチュエータMのチューブTの収縮により発生させる第2収縮力Fc2(i)を算出する。目標圧力設定部110Cの第2目標圧力設定部122は、関節J1-J3ごとに、上記液圧アクチュエータMの静特性から収縮率設定部107Cにより設定された収縮率Cr2(i)と収縮力導出部108Cにより算出された第2収縮力Fc2(i)とに対応した圧力を導出して第2人工筋肉を構成する2つの液圧アクチュエータMの第2目標圧力Ptag2(i)に設定する。
制御装置100Cは、ロボットアーム2の作動開始に先立って(ハンド部4の移動開始前に)、制御装置100等と同様に、図5のルーチンを実行してハンド部4の最終的な目標到達位置(xr,yr,zr)と、初期位置から目標到達位置(xr,yr,zr)までのハンド部4の目標軌道とを設定する。目標到達位置および目標軌道を設定した後、制御装置100Cは、ユーザによる実行指示に応じて、図6のロボットアーム制御ルーチンを所定時間(例えば10ms程度)おきに繰り返し実行する。制御装置100Cは、ステップS10-S70の処理を実行した後、ステップS80において、図16に示す手順に従って複数の液圧アクチュエータMの目標圧力Ptag1(i)およびPtag2(i)を設定する。
図16は、制御装置100Cの目標圧力設定部110Cによる目標圧力Ptag1(i)およびPtag2(i)の設定手順を例示するフローチャートである。同図に示すように、目標圧力設定部110Cは、まず、変数iすなわち関節の番号を値1に設定する(ステップS800C)。次いで、目標圧力設定部110Cの第1目標圧力設定部121および収縮力導出部108Cは、目標トルク設定部105により設定された関節Jiについての目標トルクTtag(i)を取得し、目標圧力設定部110Cの収縮率設定部107Cは、対応する関節角度センサ7により検出された関節Jiの現在の関節角度θiを取得する(ステップS805C)。ステップS805Cの処理の後、目標圧力設定部110Cの第1目標圧力設定部121は、取得した目標トルクTtag(i)が予め定められた比較的大きい閾値(所定値)Tref以上であるか否かを判定する(ステップS810C)。
目標トルクTtag(i)が閾値Tref以上であると判定した場合(ステップS810C:YES)、第1目標圧力設定部121は、ステップS805Cにて取得した目標トルクTtag(i)の大きさと向きとから、関節Jiに対応した上記一側の人工筋肉AM1と上記他側の人工筋肉AM2とのうちの要求される収縮力が大きくなる一方を特定する(ステップS820C)。また、ステップS820Cにおいて、第1目標圧力設定部121は、人工筋肉AM1およびAM2のうち、収縮力が小さくなる一方を上記第1人工筋肉として定めると共に、他方を上記第2人工筋肉として定める。更に、第1目標圧力設定部121は、関節Jiについて予め定められた最大圧力Pmax(i)を当該関節Jiに対応した第1人工筋肉を構成する2つの液圧アクチュエータMの第1目標圧力Ptag1(i)に設定する(ステップS830C)。最大圧力Pmax(i)は、関節Jiに対応した液圧アクチュエータMの常用最大圧または当該常用最大圧に近い一定の圧力である。
一方、目標トルクTtag(i)が閾値Tref未満であると判定した場合(ステップS810C:NO)、第1目標圧力設定部121は、ステップS805Cにて取得した目標トルクTtag(i)の向きと関節Jiの構造とから、関節Jiに対応した上記一側および他側の人工筋肉AM1,AM2のうち、目標トルクTtag(i)に応じた駆動力が関節Jiを介して連結される2つのアーム3等に作用した際に当該駆動力に対する反力を出力する一方を上記第1人工筋肉として定めると共に、他方を上記第2人工筋肉として定める(ステップS825C)。更に、第1目標圧力設定部121は、関節Jiについて予め定められた最小圧力Pmin(i)を当該関節Jiに対応した第1人工筋肉を構成する2つの液圧アクチュエータMの第1目標圧力Ptag1(i)に設定する(ステップS835C)。最小圧力Pmin(i)としては、すべての液圧アクチュエータMを直ちに制御可能にする圧力、すべての液圧アクチュエータMに作動油が供給されるときのポンプ13による供給圧を上回らないように設定された圧力、および関節Jiの剛性を許容最小値にする圧力の何れかを用いることができる。
ステップS830CまたはS835Cの処理の後、目標圧力設定部110Cの収縮率設定部107Cは、ステップS805Cにて取得した関節Jiの関節角度θiやロボットアーム2(ロボット装置1)の諸元(アーム3の寸法等)等に基づいて、関節Jiに対応した第1人工筋肉を構成する2つの液圧アクチュエータMの収縮率Cr1(i)と、関節Jiに対応した第2人工筋肉を構成する2つの液圧アクチュエータMの収縮率Cr2(i)とを設定する(ステップS840C)。続いて、目標圧力設定部110Cの収縮力導出部108Cは、図9に示す目標圧力設定マップから、第1目標圧力設定部121により設定された第1目標圧力Ptag1(i)と収縮率設定部107Cにより設定された第1人工筋肉を構成する2つの液圧アクチュエータMの収縮率Cr1(i)とに対応した第1収縮力Fc1(i)を適宜線形補間を行いながら導出する(ステップS845C)。
更に、収縮力導出部108Cは、ステップS805Cにて取得した目標トルクTtag(i)とステップS845Cにて導出した第1収縮力Fc1(i)とから、関節Jiに対応した第2人工筋肉を構成する2つの液圧アクチュエータMに発生させる第2収縮力Fc2(i)を算出する(ステップS850C)。また、目標圧力設定部110Cの第2目標圧力設定部122は、図9の目標圧力設定マップから上記収縮率Cr2(i)と収縮力導出部108Cにより算出された第2収縮力Fc2(i)とに対応した圧力を導出して上記第2人工筋肉を構成する2つの液圧アクチュエータMの目標圧力Ptag2(i)に設定する(ステップS855C)。これにより、ロボットアーム2への要求に応じて目標圧力Ptag2(i)を精度よく設定することが可能となる。
ステップS855Cにて第2目標圧力Ptag2(i)が設定されると、目標圧力設定部110Cは、変数iをインクリメントし(ステップS860C)、変数iが値N+1以上(ここでは、N=3)であるか否かを判定する(ステップS865C)。目標圧力設定部110Cは、変数iが値N+1未満であると判定した場合(ステップS865C:NO)、上記ステップS805-S865の処理を再度実行する。目標圧力設定部110Cにより変数iが値N+1以上であると判定されると(ステップS865C:YES)、各液圧アクチュエータMの目標圧力Ptag1(i),Ptag2(i)の設定が完了し、図6のステップS90およびS100の処理が実行される。
上述のように、制御装置100Cは、関節Jiを介して連結された2つのアーム3等を相対的に回動させるための目標トルクTtag(i)を設定する目標トルク設定部105と、第1目標圧力設定部121と、第2目標圧力設定部122とを含む。第1目標圧力設定部121は、ロボット装置1に対する要求すなわち目標トルクTtag(i)に応じて、予め定められた一定の圧力である最大圧力Pmax(i)または最小圧力Pmin(i)を関節Jiに対応した上記一側または他側の人工筋肉AM1,AM2である第1人工筋肉を構成する2つの液圧アクチュエータMの第1目標圧力Ptag1(i)を設定する(図16のステップS805C-S835C)。また、第2目標圧力設定部122は、目標トルクTtag(i)と第1目標圧力Ptag1(i)とに基づいて、関節Jiに対応した上記他側または一側の人工筋肉AM1,AM2である第2人工筋肉を構成する2つの液圧アクチュエータMの第2目標圧力Ptag2(i)を設定する(図16のステップS840C-S860C)。そして、制御装置100Cは、第1人工筋肉を構成する2つの液圧アクチュエータMに供給される油圧が第1目標圧力Ptag1(i)になると共に、第2人工筋肉を構成する2つの液圧アクチュエータMに供給される油圧が第2目標圧力Ptag2(i)になるように液体供給装置10を制御する(図6のステップS90-S100)。
すなわち、制御装置100Cにより制御されるロボット装置1では、第1人工筋肉を構成する液圧アクチュエータMの第1目標圧力Ptag1(i)が一定の圧力に固定された状態で、第2人工筋肉を構成する液圧アクチュエータMの第2目標圧力Ptag2(i)が調整される。これにより、第1人工筋肉に供給される油圧の制御(フィードバックループ)と、第2人工筋肉に供給される油圧の制御(フィードバックループ)との干渉を無くすことが可能となり、振動モードの励起を抑制しつつ、第1および第2人工筋肉を構成する液圧アクチュエータMに供給される油圧を第1または第2目標圧力Ptag1(i),Ptag2(i)に速やかに追従させることができる。この結果、関節Jiを介して連結された2つのアーム3等と、作動油の供給を受けて当該2つのリンクを相対的に回動させる一対の第1および第2人工筋肉としての複数の液圧アクチュエータMとを含むロボット装置1を応答性よく安定に作動させることが可能となる。加えて、ハンド部4の目標位置と現在位置とに基づく目標トルクTtag(i)、より詳細には、目標トルクTtag(i)に基づく目標圧力Ptag1(i)およびPtag2(i)に基づいて液体供給装置10を制御することで、人工筋肉としての各液圧アクチュエータMに供給される油圧を検出するセンサを用いることなく、各液圧アクチュエータMを要求に対して応答性よく高精度に作動させることが可能となる。
また、第1目標圧力設定部121は、目標トルクTtag(i)が閾値(所定値)Tref未満である場合(ステップS810C:NO)、関節Jiに対応した上記一側および他側の人工筋肉AM1,AM2のうちの目標トルクTtag(i)に応じた駆動力が関節Jiを介して連結される2つのアーム3等に作用した際に当該駆動力に対する反力を出力する一方を上記第1人工筋肉として定め(ステップS825C)、上記最小圧力Pmin(i)を第1目標圧力Ptag1(i)に設定する(ステップS835C)。これにより、一対の第1および第2人工筋肉AM1,AM2を構成する複数の液圧アクチュエータMによって2つのアーム3等を要求に対して応答性よく高精度に回動させることが可能となる。なお、最小圧力Pmin(i)は、常時固定される必要なく、ロボット装置1(ロボットアーム2)の状態に応じて、例えば、すべての液圧アクチュエータMを直ちに制御可能にする圧力と、すべての液圧アクチュエータMに作動油が供給されるときのポンプ13による供給圧を上回らないように設定された圧力と、関節Jiの剛性を許容最小値にする圧力とが選択的に用いられてもよい。
更に、第1目標圧力設定部121は、目標トルクTtag(i)が閾値Tref以上である場合(ステップS810C:YES)、目標トルクTtag(i)の大きさと向きとから関節Jiに対応した上記一側および他側の人工筋肉AM1,AM2のうちの要求される収縮力が大きくなる一方を第1人工筋肉として定める(ステップS820C)。この場合、第1目標圧力設定部121は、常用最大圧または常用最大圧に近い一定の圧力である最大圧力Pmax(i)を第1目標圧力Ptag1(i)に設定する(ステップS830C)。すなわち、目標トルクTtag(i)が閾値Tref以上である場合には、要求される収縮力Fc1(i)またはFc2(i)が大きくなる液圧アクチュエータMの第1または第2目標圧力Ptag1(i),Ptag2(i)が一定の圧力に固定された状態で、第2または第1目標圧力Ptag1(i),Ptag2(i)が調整される。これにより、2つのアーム3等を相対的に回動させるのに大きな関節トルクTj(i)が要求されたときに、第1人工筋肉を構成する液圧アクチュエータMおよび第2人工筋肉を構成する液圧アクチュエータMの双方に供給される油圧の変動を抑えて2つのアーム3等の挙動の乱れ(振動)を抑制しつつ、一対の第1および第2人工筋肉を構成する液圧アクチュエータMによって2つのアーム3等を要求に応じて速やかに回動させることが可能となる。なお、ロボット装置1において、目標トルクTtag(i)の大きさに拘わらず、上記一側および他側の人工筋肉AM1,AM2のうちの要求される収縮力が大きくなる一方が第1人工筋肉として定められてもよい。
また、制御装置100Cの目標圧力設定部110Cは、第1および第2目標圧力設定部121,122に加えて、収縮率設定部107Cおよび収縮力導出部108Cを含む。収縮率設定部107Cは、関節Jiに対応した第1人工筋肉を構成する2つの液圧アクチュエータMの収縮率Cr1(i)と、関節Jiに対応した第2人工筋肉を構成する2つの液圧アクチュエータMの収縮率Cr2(i)とを設定する(ステップS840C)。更に、収縮力導出部108Cは、第1目標圧力Ptag1(i)と収縮率Cr1(i)とに基づいて、第1人工筋肉を構成する2つの液圧アクチュエータMに発生させる第1収縮力Fc1(i)を導出すると共に(ステップS845C)、目標トルクTtag(i)と第1収縮力Fc1(i)とから第2人工筋肉を構成する2つの液圧アクチュエータMに発生させる第2収縮力Fc2(i)を算出する(ステップS850C)。また、第2目標圧力設定部122は、収縮率Cr2(i)と第2収縮力Fc2(i)とに基づいて第2目標圧力Ptag2(i)を設定する(ステップS855C)。これにより、目標トルクTtag(i)と第1目標圧力Ptag1(i)とから第2人工筋肉の第2目標圧力Ptag2(i)を適正に設定することが可能となる。なお、収縮率Cr1(i),Cr2(i)は、ロボット装置1のハンド部4の目標位置に応じた各関節Jiの目標角度に基づいて設定されてもよい。
更に、図15に示すように、制御装置100Cからは、目標剛性設定部が省略されているが、これに限られるものではない。すなわち、制御装置100Cに制御装置100の目標剛性設定部106と同様の目標剛性設定部が設けられてもよく、目標圧力設定部110Cの収縮力導出部108Cは、関節Jiの剛性が当該目標剛性設定部により設定される目標剛性R(i)になるように第1および第2収縮力Fc1(i),Fc2(i)を補正するものであってもよい。これにより、関節Jiの剛性を要求に応じた値に維持しつつ、第1および第2人工筋肉に目標トルクTtag(i)に応じた力を発生させることが可能となる。この場合も、目標圧力設定部110C(収縮力導出部108C)は、第1収縮力Fc1(i)と第2収縮力Fc2(i)との差を維持(変わらないように)しつつ、R(i)=Fc1(i)+Fc2(i)を満たす同一の補正量を第1および第2収縮力Fc1(i),Fc2(i)に加算または減算するように構成されればよい。
図17は、ロボット装置1に適用可能な他の制御装置100Dを示すブロック図である。なお、制御装置100Dの構成要素のうち、上述の制御装置100等と同一の要素については同一の符号を付し、重複する説明を省略する。
図17に示す制御装置100Dも、それぞれコンピュータのCPUやROM,RAMといったハードウェアと、当該コンピュータにインストールされた制御プログラムといったソフトウェアとの少なくとも何れか一方により構築される。同図に示すように、制御装置100Dは、上記制御装置100等と同様に、目標位置設定部101、現在位置導出部102、目標トルク設定部105(トルク演算部103および重力補償部104)、目標剛性設定部106、およびバルブ駆動部112を含む。また、制御装置100Dは、収縮率設定部107、収縮力算出部108および上記制御装置100のものとは異なる目標圧力導出部109Dを含む目標圧力設定部110Dと、上記制御装置100のものとは異なる電流指令値設定部111Dと、容積推定部118と、流量推定部119とを含む。
目標圧力設定部110Dの収縮率設定部107は、関節J1-J3ごとに、ハンド部4の現在位置に応じた関節Jiの関節角度θiに基づいて、当該関節Jiに対応した一側の人工筋肉AM1を構成する各液圧アクチュエータMの収縮率Cr1(i)と、関節Jiに対応した他側の人工筋肉AM2を構成する各液圧アクチュエータMの収縮率Cr2(i)とを設定する。また、目標圧力設定部110Dの収縮力算出部108は、関節J1-J3ごとに、目標トルク設定部105により設定された目標トルクTtag(i)と、目標剛性設定部106により設定された目標剛性R(i)とに基づいて、一側の人工筋肉AM1を構成する各液圧アクチュエータMに要求される収縮力Fc1(i)と、関節Jiに対応した他側の人工筋肉AM2を構成する各液圧アクチュエータMに要求される収縮力Fc2(i)とを算出する。目標圧力導出部109Dは、収縮率Cr1(i),Cr2(i)および収縮力Fc1(i),Fc2(i)に基づいて、各液圧アクチュエータMに要求される力を示す目標トルクTtag(i)に応じた目標圧力Ptag1(i),Ptag2(i)を、チューブTが軸方向に収縮するときと、チューブTが軸方向に伸長するときとで変化させるように構成されている。
容積推定部118は、関節J1-J3ごとに、目標圧力設定部110(目標圧力導出部109)により設定(導出)された目標圧力Ptag1(i)の前回値と、収縮率設定部107により設定された収縮率Cr1(i)とに基づいて関節Jiに対応した一側の人工筋肉AM1を構成する各液圧アクチュエータMのチューブTの容積V1(i)を推定(導出)する。また、容積推定部118は、関節J1-J3ごとに、目標圧力設定部110(目標圧力導出部109)により設定(導出)された目標圧力Ptag2(i)の前回値と、収縮率設定部107により設定された収縮率Cr2(i)とに基づいて関節Jiに対応した他側の人工筋肉AM2を構成する各液圧アクチュエータMのチューブTの容積V2(i)を推定(導出)する。
流量推定部119は、関節J1-J3ごとに、容積推定部118により推定(導出)された容積V1(i)の前回値と今回値とに基づいて関節Jiに対応した一側の人工筋肉AM1を構成する各液圧アクチュエータMのチューブTに供給される作動油の流量Q1(i)を推定(算出)する。また、流量推定部119は、関節J1-J3ごとに、容積推定部118により推定(導出)された容積V2(i)の前回値と今回値とに基づいて関節Jiに対応した他側の人工筋肉AM2を構成する各液圧アクチュエータMのチューブTに供給される作動油の流量Q2(i)を推定(算出)する。
電流指令値設定部111は、目標圧力設定部110により設定された目標圧力Ptag1(i)と、流量推定部119により推定された流量Q1(i)とに基づいて、関節Jiに対応した一側の人工筋肉AM1を構成する各液圧アクチュエータMへの油圧を調整する第1リニアソレノイドバルブ151(電磁部15e)に対する電流指令値(目標電流)を設定する。また、電流指令値設定部111は、目標圧力設定部110により設定された目標圧力Ptag2(i)と、流量推定部119により推定された流量Q2(i)とに基づいて、関節Jiに対応した他側の人工筋肉AM2を構成する各液圧アクチュエータMへの油圧を調整する第2リニアソレノイドバルブ152(電磁部15e)に対する電流指令値(目標電流)を設定する。
続いて、図18から図23を参照しながら、上記制御装置100Dによるロボット装置1の制御手順について説明する。ここでも、ロボット装置1のハンド部4を把持対象まで移動させ、ハンド部4に把持対象を把持させて移送させるケースを例にとってロボット装置1の制御手順について説明する。
制御装置100Dは、ロボットアーム2の作動開始に先立って(ハンド部4の移動開始前に)、制御装置100と同様に、図5のルーチンを実行してハンド部4の最終的な目標到達位置(xr,yr,zr)と、初期位置から目標到達位置(xr,yr,zr)までのハンド部4の目標軌道とを設定する。目標到達位置および目標軌道を設定した後、制御装置100Dは、ユーザによる実行指示に応じて、図18に示すロボットアーム制御ルーチンを所定時間(例えば10ms程度)おきに繰り返し実行する。図18のロボットアーム制御ルーチンにおけるステップS10-S70の処理は、図6のロボットアーム制御ルーチンにおけるステップS10-S70の処理と同一の処理である。
図18のロボットアーム制御ルーチンの実行が開始され、ステップS70にて各関節Jiについての目標トルクTtag(i)が設定されると、制御装置100Dの目標圧力設定部110は、関節J1-J3ごとに、一側の人工筋肉AM1を構成する各液圧アクチュエータMの目標圧力Ptag1(i)と、他側の人工筋肉AM2を構成する各液圧アクチュエータMの目標圧力Ptag2(i)とを設定する(ステップS80D)。図19は、ステップS80Dにおける目標圧力設定部110Dによる目標圧力Ptag1(i)およびPtag2(i)の設定手順を例示するフローチャートである。同図に示すように、目標圧力設定部110Dは、まず、変数iすなわち関節の番号を値1に設定する(ステップS801)。次いで、目標圧力設定部110Dの収縮力算出部108は、目標トルク設定部105により設定された関節Jiについての目標トルクTtag(i)と、目標剛性設定部106により設定された関節Jiの目標剛性R(i)とを取得する(ステップS802)。また、ステップS802において、目標圧力設定部110Dの収縮率設定部107は、対応する関節角度センサ7により検出された関節Jiの現在の関節角度θiを取得する。
関節角度θiを取得した目標圧力設定部110Dの収縮率設定部107は、関節Jiに対応した一側の人工筋肉AM1を構成する各液圧アクチュエータMの収縮率Cr1(i)と、関節Jiに対応した他側の人工筋肉AM2を構成する各液圧アクチュエータMの収縮率Cr2(i)とを算出する(ステップS803)。ステップS803において、収縮率設定部107は、関節Jiの関節角度θiや、ロボットアーム2(ロボット装置1)の諸元(アーム3等の寸法)等に基づいて、収縮率Cr1(i)およびCr2(i)を導出・設定する。
また、目標圧力設定部110Dの収縮力算出部108は、ステップS802にて取得した目標トルクTtag(i)および関節Jiの目標剛性R(i)に基づいて、関節Jiに対応した一側の人工筋肉AM1を構成する各液圧アクチュエータMに要求される収縮力(引張力)Fc1(i)と、当該関節Jiに対応した他側の人工筋肉AM2を構成する各液圧アクチュエータMに要求される収縮力(引張力)Fc2(i)とを算出する(ステップS804)。ステップS804において、収縮力算出部108は、目標トルクTtag(i)、目標剛性R(i)、収縮力Fc1(i)およびFc2(i)についての上記連立方程式を解くことにより、目標トルクTtag(i)および関節Jiの目標剛性R(i)に対応した収縮力Fc1(i),Fc2(i)を算出する。
ステップS804の処理の後、目標圧力設定部110Dの目標圧力導出部109Dは、関節Jiに対応した一側の人工筋肉AM1を構成する各液圧アクチュエータMの収縮率Cr1(i)の変化量ΔCr1(i)と、関節Jiに対応した他側の人工筋肉AM2を構成する各液圧アクチュエータMの収縮率Cr2(i)の変化量ΔCr2(i)とを取得する(ステップS805)。変化量ΔCr1(i)は、ステップS803にて算出される収縮率Cr1(i)の今回値と前回値との差(今回値-前回値)を収縮率Cr1(i)の算出周期すなわち図18のロボットアーム制御ルーチンの実行周期dtで徐して得られるものである。また、変化量ΔCr2(i)は、ステップS803にて算出された収縮率Cr2(i)の今回値と前回値との差(今回値-前回値)を当該実行周期dtで徐して得られるものである。本実施形態において、変化量ΔCr1(i)およびΔCr2(i)は、収縮率設定部107により算出され、目標圧力導出部109Dは、当該収縮率設定部107から変化量ΔCr1(i)およびΔCr2(i)を取得する。
更に、目標圧力導出部109Dは、変化量ΔCr1(i)の符号に基づいて、目標圧力Ptag1(i)を設定するためのマップとして、図20に一点鎖線で示す第1目標圧力設定マップおよび図20に二点鎖線で示す第2目標圧力設定マップの一方を選択すると共に、変化量ΔCr2(i)の符号に基づいて、目標圧力Ptag2(i)を設定するためのマップとして第1および第2目標圧力設定マップの一方を選択する(ステップS806)。ここで、ロボット装置1の各液圧アクチュエータMは、内部の作動油の圧力上昇に応じて径方向に膨張しながら軸方向に収縮するチューブTを含む。このため、各液圧アクチュエータMは、チューブT内の油圧および収縮率が同一であっても、当該チューブTが軸方向に収縮するときと軸方向に伸長するとき(自然長側に戻るとき)とで発生する収縮力が異なるという、いわゆるヒステリシス特性を有する。すなわち、軸方向に収縮するチューブTに供給される油圧(図20における一点鎖線参照)と、軸方向に伸長するチューブTに供給される油圧(図20における二点鎖線参照)とが同一であり、かつ軸方向に収縮するチューブTの収縮率と、軸方向に伸長するチューブTの収縮率とが同一であるときには、軸方向に収縮するチューブTが発生する収縮力が、軸方向に伸長するチューブTが発生する収縮力よりも小さくなる。
これを踏まえて、本実施形態では、目標圧力Ptag1(i),Ptag2(i)を設定するための液圧アクチュエータMの静特性を示すマップとして、第1および第2目標圧力設定マップが予め実験・解析を経て用意されている。第1目標圧力設定マップは、液圧アクチュエータMのチューブTに供給される油圧ごとに、軸方向に収縮するチューブTの収縮率と当該チューブTが発生する収縮力との関係を規定するものである(図20における一点鎖線参照)。また、第2目標圧力設定マップは、液圧アクチュエータMのチューブTに供給される油圧ごとに、軸方向に伸長するチューブTの収縮率と当該チューブTが発生する収縮力との関係を規定するものである(図20における二点鎖線参照)。図20からわかるように、第1目標圧力設定マップは、流体アクチュエータMのヒステリシス特性を考慮して、収縮率および収縮力が同一であるときに、目標圧力Ptag1(i),Ptag2(i)を第2目標圧力設定マップに比べて大きくするように作成される。
ステップS806において、目標圧力導出部109Dは、変化量ΔCr1(i)の符号が正である場合、すなわち一側の人工筋肉AM1を構成する各液圧アクチュエータMのチューブTが収縮している場合、第1目標圧力設定マップを選択し、変化量ΔCr1(i)の符号が負である場合、すなわち一側の人工筋肉AM1を構成する各液圧アクチュエータMのチューブTが伸長している場合、第2目標圧力設定マップを選択する。また、ステップS806において、目標圧力導出部109Dは、変化量ΔCr2(i)の符号が正である場合、すなわち他側の人工筋肉AM2を構成する各液圧アクチュエータMのチューブTが収縮している場合、第1目標圧力設定マップを選択し、変化量ΔCr2(i)の符号が負である場合、すなわち他側の人工筋肉AM2を構成する各液圧アクチュエータMのチューブTが伸長している場合、第2目標圧力設定マップを選択する。
次いで、目標圧力導出部109Dは、変化量ΔCr1(i)の符号に応じて選択した第1または第2目標圧力設定マップからステップS803にて算出された収縮率Cr1(i)とステップS804にて算出された収縮力Fc1(i)とに対応した圧力を適宜線形補間を行いながら導出して関節Jiに対応した一側の人工筋肉AM1を構成する各液圧アクチュエータMの目標圧力Ptag1(i)に設定する(ステップS807)。また、ステップS807において、目標圧力導出部109Dは、変化量ΔCr2(i)の符号に応じて選択した第1または第2目標圧力設定マップからステップS803にて算出された収縮率Cr1(i)とステップS804にて算出された収縮力Fc1(i)とに対応した圧力を適宜線形補間を行いながら導出して関節Jiに対応した他側の人工筋肉AM2を構成する各液圧アクチュエータMの目標圧力Ptag2(i)に設定する。このように、上記ヒステリシス特性を考慮しながらチューブTの収縮率Cr1(i),Cr2(i)および収縮力Fc1(i),Fc2(i)に対応した圧力を目標圧力Ptag1(i),Ptag2(i)に設定することで、ロボットアーム2への要求に応じて目標圧力Ptag1(i),Ptag2(i)を精度よく設定することが可能となる。
ステップS807にて目標圧力Ptag1(i)およびPtag2(i)が設定されると、目標圧力設定部110Dは、変数iをインクリメントし(ステップS808)、変数iが値N+1以上であるか否かを判定する(ステップS809)。値Nは、ロボットアーム2における関節の数を示し、本実施形態では、N=3である。目標圧力設定部110Dは、変数iが値N+1未満であると判定した場合(ステップS809:NO)、上記ステップS802-S809の処理を再度実行する。また、目標圧力設定部110Dにより変数iが値N+1以上であると判定されると(ステップS809:YES)、各液圧アクチュエータMの目標圧力Ptag1(i),Ptag2(i)の設定が完了する。
更に、制御装置100Dは、図18に示すように、目標圧力Ptag1(i),Ptag2(i)の設定後、あるいはステップS80Dと一部並行して、関節J1-J3ごとに、一側の人工筋肉AM1を構成する各液圧アクチュエータMのチューブTに供給される作動油の流量Q1(i)と、他側の人工筋肉AM2を構成する各液圧アクチュエータMのチューブTに供給される作動油の流量Q2(i)とを推定(導出)する(ステップS85)。図21は、ステップS85における流量Q1(i),Q2(i)の推定手順を例示するフローチャートである。同図に示すように、制御装置100Dの容積推定部118は、流量Q1(i),Q2(i)を推定するために、まず、変数iすなわち関節の番号を値1に設定する(ステップS851)。
ステップS851の処理の後、容積推定部118は、図18のロボットアーム制御ルーチンの前回実行時に目標圧力設定部110Dにより設定された関節Jiについての目標圧力Ptag1(i)およびPtag2(i)すなわち目標圧力Ptag1(i),Ptag2(i)の前回値と、図19のステップS803にて収縮率設定部107により設定された収縮率Cr1(i)およびCr2(i)とを取得する(ステップS852)。目標圧力Ptag1(i),Ptag2(i)の前回値は、それぞれ関節Jiに対応した一側の人工筋肉AM1を構成する各液圧アクチュエータMのチューブT内の現在の油圧または他側の人工筋肉AM2を構成する各液圧アクチュエータMのチューブT内の現在の油圧を示すものとして用いられる。
更に、容積推定部118は、図22に例示する容積推定マップを用いて、関節Jiに対応した一側の人工筋肉AM1を構成する各液圧アクチュエータMのチューブTの容積V1(i)と、関節Jiに対応した他側の人工筋肉AM2を構成する各液圧アクチュエータMのチューブTの容積V2(i)とを推定する(ステップS853)。容積推定マップは、図22に示すように、チューブTの収縮率ごとに、チューブT内の作動油の圧力(内圧)と、当該チューブTの容積との関係を規定するように予め実験・解析を経て作成されたものである。ステップS853において、容積推定部118は、容積推定マップから適宜線形補間を行いながらステップS852にて取得した目標圧力Ptag1(i)の前回値および収縮率Cr1(i)に対応した容積を容積V1(i)として導出する。また、ステップS853において、容積推定部118は、容積推定マップから適宜線形補間を行いながらステップS852にて取得した目標圧力Ptag2(i)の前回値および収縮率Cr2(i)に対応した容積をとして容積V2(i)として導出する。
容積V1(i),V2(i)が推定されると、流量推定部119により関節Jiに対応した一側の人工筋肉AM1を構成する各液圧アクチュエータMのチューブTに供給される作動油の流量Q1(i)と、他側の人工筋肉AM2を構成する各液圧アクチュエータMのチューブTに供給される作動油の流量Q2(i)とが推定される(ステップS854)。ステップS854において、流量推定部119は、ステップS853にて容積推定部118により推定された容積V1(i),V2(i)の今回値と、図18のロボットアーム制御ルーチンの前回実行時に容積推定部118により推定された容積V1(i),V2(i)すなわち容積V1(i),V2(i)の前回値とを取得する。更に、ステップS854において、流量推定部119は、容積V1(i)の今回値から前回値を減じた値をロボットアーム制御ルーチンの実行周期dt(所定時間)で除した値(容積変化量dV1/dt={今回V1(i)-前回V1(i)}/dt)を流量Q1(i)として導出し、容積V2(i)の今回値から前回値を減じた値をロボットアーム制御ルーチンの実行周期dtで除した値(容積変化量dV2/dt={今回V2(i)-前回V2(i)}/dt)を流量Q2(i)として導出する。
流量Q1(i),Q2(i)を推定すると、流量推定部119は、変数iをインクリメントし(ステップS855)、変数iが値N+1(ここでは、N=3)以上であるか否かを判定する(ステップS856)。流量推定部119により変数iが値N+1未満であると判定された場合(ステップS856:NO)、容積推定部118および流量推定部119により上記ステップS852-S856の処理が再度実行される。また、流量推定部119により変数iが値N+1以上であると判定されると(ステップS856:YES)、各液圧アクチュエータMのチューブTに供給される作動油の流量Q1(i),Q2(i)の推定が完了する。
図18に示すように、ステップS80Dにて目標圧力Ptag1(i),Ptag2(i)が設定され、かつステップS85にて流量Q1(i),Q2(i)が推定されると、制御装置100Dの電流指令値設定部111Dは、図23に例示する電流指令値設定マップを用いて、それぞれ複数の第1および第2リニアソレノイドバルブ151,152の電磁部15eに対する電流指令値を設定する(ステップS90D)。電流指令値設定マップは、図23に示すように、電磁部15eに印加される電流値ごとに、チューブTに供給される作動油の流量(Q1(i),Q2(i))と、チューブT内の作動油の圧力(目標圧力Ptag1(i),Ptag2(i))との関係を規定するように予め実験・解析を経て作成されたものである。図23に示すように、電流指令値設定マップは、チューブTに供給されるべき作動油の圧力すなわち目標圧力Ptag1(i),Ptag2(i))が高いほど、電流値を大きくすると共に、チューブTに作動油が供給されるとき(流量が正であるとき)に、チューブTから作動油が流出するとき(流量が負であるとき)に比べて、同一の目標圧力Ptag1(i),Ptag2(i))に対応した電流値を大きくするように作成される。また、電流指令値設定マップは、流量(Q1(i),Q2(i))が増加するに従って(流量が負から正になるに従って)同一の目標圧力Ptag1(i),Ptag2(i))に対応した電流値を大きくするように作成される。
ステップS90Dにおいて、電流指令値設定部111Dは、電流指令値設定マップからステップS80Dにて設定された目標圧力Ptag1(i)とステップS85にて推定された流量Q1(i)とに対応した電流値を適宜線形補間を行いながら導出して一側の人工筋肉AM1を構成する各液圧アクチュエータMに対応した各第1リニアソレノイドバルブ151への電流指令値に設定する。また、ステップS90Dにおいて、電流指令値設定部111Dは、電流指令値設定マップからステップS80Dにて設定された目標圧力Ptag2(i)とステップS85にて推定された流量Q2(i)とに対応した電流値を適宜線形補間を行いながら導出して他側の人工筋肉AM2を構成する各液圧アクチュエータMに対応した各第2リニアソレノイドバルブ152への電流指令値に設定する。電流指令値設定部111Dにより導出された電流指令値は、制御装置100Dのバルブ駆動部112に与えられ、バルブ駆動部112は、当該電流指令に基づいて、それぞれ複数の第1および第2リニアソレノイドバルブ151,152を制御(PWM制御)する(ステップS100)。
これにより、目標トルクTtag(i)に応じた液体供給装置10への電流指令値が容易かつ速やかに設定され、当該電流指令値に基づいて制御される液体供給装置10の第1および第2リニアソレノイドバルブ151,152の各々は、対応する目標圧力Ptag1(i)またはPtag2(i)に応じた油圧を生成する。更に、第1および第2リニアソレノイドバルブ151,152の各々により調圧された作動油は、対応する液圧アクチュエータMのチューブTに供給される。この結果、流量制御弁により作動油の流量を調整してチューブT内に供給したり、チューブTに供給される油圧を圧力センサにより検出して実油圧が目標圧力に一致するように流量制御弁をフィードバック制御したりする場合に比べて、目標圧力Ptag1(i),Ptag2(i)の設定から短時間のうちに、各チューブTに供給される油圧を当該目標圧力Ptag1(i),Ptag2(i)に実質的に一致させ、各チューブTの実際の収縮率を要求値に応答性よく高精度に追従させることが可能となる。
制御装置100Dは、ステップS100の処理の後、図18のルーチンを一旦終了させ、次の実行タイミングの到来に応じて再度ステップS10以降の処理を実行する。一方、図22のステップS40にて、トルク演算部103によりハンド部4の現在位置が前回位置から実質的に変化していないと判定されると、現在位置が実質的に変化しなくなってから所定時間が経過するまで、ステップS65,S70-S100の処理を実行する。更に、制御装置100Dは、現在位置が実質的に変化しなくなってから所定時間が経過すると、図18のルーチンを終了させ、ハンド部4に把持対象を把持させるためのハンド制御ルーチンを実行する。そして、ハンド部4により把持対象が把持されてハンド制御ルーチンが完了すると、制御装置100Dは、ロボットアーム2により把持対象を載置位置まで搬送すべく、図18のルーチンを再度実行する。
上述のように、制御装置100Dは、各液圧アクチュエータMに供給される作動油の目標圧力Ptag1(i),Ptag2(i)を設定すると共に(図18のステップS80D、図19)、目標圧力Ptag1(i),Ptag2(i)と各液圧アクチュエータMに供給される作動油の流量Q1(i),Q2(i)とに基づいて電流指令値を設定し(図18のステップS90D)、電流指令値に基づいて第1および第2リニアソレノイドバルブ151,152の各々を制御する(図18のステップS100)。これにより、チューブTに供給される作動油の流量Q1(i),Q2(i)の過不足により人工筋肉としての各液圧アクチュエータMの動作の応答性が悪化するのを抑制しつつ、各液圧アクチュエータMに目標圧力Ptag1(i),Ptag2(i)に応じた圧力の作動油を供給することができる。すなわち、本発明者等の研究・解析によれば、目標圧力Ptag1(i),Ptag2(i)と流量Q1(i),Q2(i)とに基づいて電流指令値を設定することで、当該流量Q1(i),Q2(i)を考慮することなく目標圧力Ptag1(i),Ptag2(i)を電流指令値に直接変換する場合に比べて、各液圧アクチュエータMの動作の応答性や目標圧力Ptag1(i),Ptag2(i)に対する各チューブT内の油圧の追従性を向上させ得ることが確認されている。この結果、制御装置100Dを含むロボット装置1では、作動油の供給を受けて作動する複数の液圧アクチュエータMを応答性よく高精度に作動させることが可能となり、ロボットアーム2を応答性よく安定に作動させることができる。
また、ロボット装置1の各液圧アクチュエータMは、内部に作動油が供給されると共に内部の圧力上昇に応じて径方向に膨張しながら軸方向に収縮するチューブTを含む。更に、制御装置100Dの流量推定部119は、チューブTの容積変化量(dV1/dt,dV2/dt)を流量Q1(i),Q2(i)として算出する(図18のステップS85、図20)。また、制御装置100Dの電流指令値設定部111Dは、目標圧力Ptag1(i)と流量Q1(i)とに基づいて一側の人工筋肉AM1に対応した各第1リニアソレノイドバルブ151に対する電流指令値を設定すると共に、目標圧力Ptag2(i)と流量Q2(i)とに基づいて他側の人工筋肉AM2に対応した各第2リニアソレノイドバルブ152に対する電流指令値を設定する(図18のステップS90D)。これにより、各液圧アクチュエータMに供給される作動油の流量Q1(i),Q2(i)に応じて電流指令値を適正に設定すると共に、第1および第2リニアソレノイドバルブ151,152の各々によって各液圧アクチュエータMに供給される作動油の圧力を目標圧力Ptag1(i),Ptag2(i)になるように精度よく調整することが可能となる。
更に、制御装置100Dは、図18のロボットアーム制御ルーチンを所定時間(例えば10ms程度)おきに繰り返し実行して目標圧力Ptag1(i),Ptag2(i)を設定する。また、制御装置100Dの容積推定部118は、目標圧力Ptag1(i),Ptag2(i)の前回値と、チューブTの収縮率Cr1(i),Cr2(i)とに基づいてチューブTの今回の容積V1(i),V2(i)を算出する(図18のステップS85、図21のステップS852,S853)。更に、制御装置100Dの流量推定部119は、チューブTの容積V1(i),V2(i)の今回値と前回値との差を当該所定時間(図8のルーチンの実行周期dt)で除して流量Q1(i),Q2(i)を算出する(図8のステップS85、図21のステップS854)。これにより、各液圧アクチュエータMに供給される作動油の流量Q1(i),Q2(i)を適正に算出可能となる。
また、制御装置100Dの目標圧力設定部110Dは、各液圧アクチュエータMに要求される力を示す目標トルクTtag(i)に応じた目標圧力Ptag1(i),Ptag2(i)を、チューブTが軸方向に収縮するときと、チューブTが軸方向に伸長するときとで変化させる(図19のステップS805-S807)。これにより、上記ヒステリシス特性に起因して各液圧アクチュエータMから出力される力(トルク)と要求されている力(トルク)とがズレてしまうのを良好に抑制することが可能となる。
更に、目標圧力設定部110Dの目標圧力導出部109Dは、収縮率Cr1(i),Cr2(i)と収縮力Fc1(i),Fc2(i)とに基づいて目標圧力Ptag1(i),Ptag2(i)を導出・設定する(図19のステップS807)。また、目標圧力導出部109Dは、収縮率Cr1(i),Cr2(i)の変化量ΔCr1(i),ΔCr2(i)が正の値であるときに、チューブTに供給される作動油の圧力ごとに軸方向に収縮するチューブTの収縮率Cr1(i),Cr2(i)と収縮力Fc1(i),Fc2(i)との関係を規定する第1目標圧力設定マップ(第1の制約)を用いて目標圧力Ptag1(i),Ptag2(i)を設定する(図19のステップS805-S807)。更に、目標圧力導出部109Dは、変化量ΔCr1(i),ΔCr2(i)が負の値であるときに、チューブTに供給される作動油の圧力ごとに軸方向に伸長するチューブTの収縮率Cr1(i),Cr2(i)と収縮力Fc1(i),Fc2(i)との関係を規定する第2目標圧力設定マップ(第2の制約)を用いて目標圧力Ptag1(i),Ptag2(i)を設定する(図19のステップS805-S807)。これにより、液圧アクチュエータMのヒステリシス特性による影響を低減しながら、目標圧力Ptag1(i),Ptag2(i)を適正に設定することが可能となる。なお、ロボット装置1において、収縮率設定部107は、ハンド部4(ロボット装置1)の目標位置に応じた各関節Jiの目標角度に基づいてチューブTの収縮率Cr1(i),Cr2(i)を設定するものであってもよい。
〔発明を実施するための形態のまとめ〕
ここまで説明したように、本開示の実施形態に係るロボット装置は、液体の供給を受けて作動する少なくとも1つの人工筋肉(M,AM1,AM2)と、前記人工筋肉(M,AM1,AM2)に前記液体を供給する液体供給装置(10)とを含むロボット装置(1)であって、前記ロボット装置(1)を駆動するための目標駆動力(Ttag(i))を設定すると共に、前記目標駆動力(Ttag(i))に基づいて前記人工筋肉(M,AM1,AM2)に供給される前記液体の目標圧力を設定し、前記目標圧力に基づいて前記液体供給装置(10)を制御する制御装置(100,100B,100C,100D)を含むものである。
このように、目標駆動力に基づいて人工筋肉に供給される液体の圧力を制御することで、当該液体の圧力を検出するセンサを用いることなく、人工筋肉を要求に対して応答性よく高精度に作動させることが可能となる。
また、前記制御装置(100,100B,100C,100D)は、前記ロボット装置(1)の目標位置と現在位置とに基づいて前記目標駆動力(Ttag(i))を設定する目標駆動力設定部(105)と、前記目標駆動力設定部(105)により設定された前記目標駆動力(Ttag(i))に基づいて前記目標圧力(Ptag1(i),Ptag2(i))を設定する目標圧力設定部(110,110B,110C,110D)と、前記目標圧力設定部(110,110B,110C,110D)により設定された前記目標圧力(Ptag1(i),Ptag2(i))に基づいて前記液体供給装置(10)への指令値を設定する指令値設定部(111)とを含むものであってもよい。
これにより、目標駆動力に応じた液体供給装置への指令値を容易かつ速やかに設定して人工筋肉に供給される液体の圧力を応答性よく制御することが可能となる。
更に、前記目標駆動力設定部(105)は、前記ロボット装置を前記現在位置から前記目標位置まで移動させる駆動力(Tj(i))と、前記ロボット装置(1)の姿勢を維持するのに必要な重力補償量(Tc(i))との和を前記目標駆動力(Ttag(i))に設定するものであってもよい。
これにより、ロボット装置(ロボット本体)の挙動の乱れを抑制しつつ、人工筋肉により当該ロボット装置(手先)を移動させることが可能となる。
また、前記目標圧力設定部(110)は、前記ロボット装置(1)の前記現在位置または前記目標位置に基づいて前記人工筋肉(M,AM1,AM2)の収縮率(Cr1(i),Cr2(i))を設定すると共に、前記目標駆動力設定部(105)により設定された前記目標駆動力(Ttag(i))に基づいて前記人工筋肉(M,AM1,AM2)の収縮力(Fc1(i),Fc2(i))を算出し、前記収縮率(Cr1(i),Cr2(i))と前記収縮力(Fc1(i),Fc2(i))とに基づいて前記目標圧力(Ptag1(i),Ptag2(i))を設定するものであってもよい。
これにより、人工筋肉への要求に応じて当該人工筋肉に供給される液体の目標圧力を精度よく設定することが可能となる。
更に、前記ロボット装置(1)は、少なくとも1つの関節(J1,J2,J3,Ji)と、複数のリンク(3,5)とを含むものであってもよく、前記人工筋肉(M,AM1,AM2)は、前記関節(J1,J2,J3,Ji)を介して連結される2つの前記リンク(3,5)を相対的に回動させるものであってもよく、前記目標駆動力(Ttag(i))は、前記2つの前記リンク(3,4)を相対的に回動させる関節トルク(Tj(i))の目標値であってもよい。
これにより、人工筋肉よって関節を介して連結された2つのリンクの何れか一方を他方に対して応答性よく高精度に回動させることが可能となる。
また、前記2つの前記リンク(3,5)は、互いに拮抗するように配置された一対の前記人工筋肉(M,AM1,AM2)により相対的に回動させられてもよい。
更に、前記ロボット装置(1)は、関節(J1,J2,J3,Ji)を介して連結されると共に、一対の前記人工筋肉(M,AM1,AM2)によりを相対的に回動させられる2つのリンクを含むものであってもよく、前記制御装置(100B)は、前記2つのリンク(3,5)を相対的に回動させるための目標トルク(Ttag(i))を前記目標駆動力として設定すると共に、前記一対の前記人工筋肉(M,AM1,AM2)の一方である第1人工筋肉に発生させる第1収縮力(Fc1(i))を設定し、前記目標トルク(Ttag(i))と前記第1収縮力(Fc1(i))とに基づいて前記一対の前記人工筋肉(M,AM1,AM2)の他方である第2人工筋肉に発生させる第2収縮力(Fc2(i))を設定し、前記第1人工筋肉が前記第1収縮力(Fc1(i))を発生し、かつ前記第2人工筋肉が前記第2収縮力(Fc2(i))を発生するように前記液体供給装置(10)を制御するものであってもよい。
すなわち、2つのリンクを相対的に回動させるための目標トルクと、第1人工筋肉に発生させる第1収縮力とが定まれば、当該目標トルクと第1収縮力とから第2人工筋肉に発生させる第2収縮力を定めることができる。そして、第1収縮力を小さくすると共に第2収縮力を大きくすることで、関節の剛性の増加を抑えつつ要求に応じた力を出力するように第1および第2人工筋肉を応答性よく高精度に作動させることが可能となる。更に、第1収縮力を大きくすることで、目標トルクに応じて第2収縮力も大きくなるので、関節の剛性を高くしてロボット装置の動作を安定化させることができる。この結果、ロボット装置を応答性よく安定に作動させることが可能となる。
また、前記制御装置(100B)は、前記関節(J1,J2,J3,Ji)の関節角度(θ1,θ2,θ3,θi)に基づいて前記第1および第2人工筋肉の収縮率(Cr1(i),Cr2(i))を設定する収縮率設定部(107B)と、前記目標トルク(Ttag(i))と前記第1収縮力(Fc1(i))とに基づいて前記第2収縮力(Fc2(i))を算出する収縮力算出部(108B)と、前記第1収縮力(Fc1(i))と前記第1人工筋肉の前記収縮率(Cr1(i))とに基づいて前記第1人工筋肉に供給される前記液体の目標圧力(Ptag1(i))を設定すると共に、前記第2収縮力(Fc2(i))と前記第2人工筋肉の前記収縮率(Cr2(i))とに基づいて前記第2人工筋肉に供給される前記液体の目標圧力(Ptag2(i))を設定する目標圧力設定部(110B)と、前記目標圧力設定部(110B)により設定された前記目標圧力(Ptag1(i),Ptag2(i))を前記液体供給装置(10)への指令値に変換する指令値設定部(111)とを含むものであってもよい。
これにより、第1または第2収縮力を出力するように第1および第2人工筋肉を応答性よく高精度に作動させることが可能となる。
更に、前記ロボット装置(1)は、関節(J1,J2,J3,Ji)を介して連結されると共に、一対の前記人工筋肉(M,AM1,AM2)によりを相対的に回動させられる2つのリンク(3,5)を含むものであってもよく、前記制御装置(100C)は、前記2つのリンク(3,5)を相対的に回動させるための目標トルク(Ttag(i))を設定する目標トルク設定部(105)と、予め定められた一定の圧力(Pmax(i),Pmin(i))を一対の前記人工筋肉(M,AM1,AM2)の一方である第1人工筋肉に供給される前記液体の圧力の目標値である第1目標圧力(Ptag1(i))に設定する第1目標圧力設定部(121)と、前記目標トルク(Ttag(i))と前記第1目標圧力(Ptag1(i))とに基づいて一対の前記人工筋肉(M,AM1,AM2)の他方である第2人工筋肉に供給される前記液体の圧力の目標値である第2目標圧力(Ptag2(i))を設定する第2目標圧力設定部(122)とを含み、前記第1人工筋肉に供給される前記液体の圧力が前記第1目標圧力(Ptag1(i))になると共に、前記第2人工筋肉に供給される前記液体の圧力が前記第2目標圧力(Ptag2(i))になるように前記液体供給装置(10)を制御するものであってもよい。
これにより、第1人工筋肉に供給される液体の圧力制御(フィードバックループ)と、第2人工筋肉に供給される液体の圧力制御(フィードバックループ)との干渉を無くすことが可能となり、振動モードの励起を抑制しつつ、第1および第2人工筋肉に供給される液体の圧力を第1または第2目標圧力に速やかに追従させることができる。この結果、ロボット装置を応答性よく安定に作動させることが可能となる。
また、前記制御装置(100C)は、前記関節(J1,J2,J3,Ji)の関節角度(θ1,θ2,θ3,θi)に基づいて前記第1および第2人工筋肉の収縮率(Cr1(i),Cr2(i))を設定する収縮率設定部(107C)と、前記第1目標圧力(Ptag1(i))と前記第1人工筋肉の前記収縮率(Cr1(i))とに基づいて前記第1人工筋肉に発生させる第1収縮力(Fc1(i))を導出すると共に、前記目標トルク(Ttag(i))と前記第1収縮力(Fc1(i))とから前記第2人工筋肉に発生させる第2収縮力(Fc2(i))を算出する収縮力導出部(108C)とを含むものであってもよく、前記第2目標圧力設定部(122)は、前記第2人工筋肉の前記収縮率(Cr2(i))と前記第2収縮力(Fc2(i))とに基づいて前記第2目標圧力(Ptag2(i))を設定するものであってもよい。
これにより、目標トルクと第1目標圧力とから第2人工筋肉の第2目標圧力を適正に設定することが可能となる。
更に、前記第1目標圧力設定部(121)は、前記目標トルク(Ttag(i))の大きさと向きとから一対の人工筋肉(M,AM1,AM2)のうちの要求される収縮力が大きい一方を前記第1人工筋肉として定め、常用最大圧または前記常用最大圧に近い一定の圧力(Pmax(i))を前記第1目標圧力(Ptag1(i))に設定するものであってもよい。これにより、2つのリンクを相対的に回動させるのに大きなトルクが要求されたときに、第1および第2人工筋肉の双方に供給される液圧の変動を抑えて2つのリンクの挙動の乱れ(振動)を抑制しつつ、一対の第1および第2人工筋肉を要求に応じて速やかに回動させることが可能となる。
また、前記制御装置(100C)は、前記目標トルク(Ttag(i))の大きさと向きとから、一対の前記人工筋肉(M,AM1,AM2)のうちの収縮力が小さくなる一方を前記第1人工筋肉として定めると共に、他方を前記第2人工筋肉として定めるものであってもよい。
更に、前記制御装置(100B,100C)は、前記関節(J1,J2,J3,Ji)の目標剛性(R(i))を設定し、前記目標トルク(Ttag(i))に応じた前記第1および第2収縮力(Fc1(i),Fc2(i))の関係が維持されると共に、前記関節(J1,J2,J3,Ji)の剛性が前記目標剛性(R(i))になるように、前記第1および第2収縮力(Fc1(i),Fc2(i))を補正するものであってもよい。これにより、関節の剛性を要求に応じた値に維持しつつ、第1および第2人工筋肉に目標トルクに応じた力を発生させることが可能となる。
また、前記人工筋肉(M)は、内部に前記液体が供給されると共に前記内部の圧力の上昇に応じて径方向に膨張しながら軸方向に収縮するチューブ(T)を含むものであってもよい。
更に、前記制御装置(100D)は、前記人工筋肉(M,AM1,AM2)に要求される力に応じた前記目標圧力(Ptag1(i),Ptag2(i))を、前記チューブ(T)が前記軸方向に収縮するときと、前記チューブ(T)が前記軸方向に伸長するときとで変化させるものであってもよい。
これにより、ヒステリシス特性に起因して人工筋肉から出力される力(トルク)と要求されている力(トルク)とがズレてしまうのを良好に抑制することが可能となる。
また、前記液体供給装置(10)は、電流の供給を受けて前記人工筋肉(M,AM1,AM2)に供給される前記液体の圧力を調整する液圧調整装置(151,152)を含むものであってもよい。
更に、前記制御装置(100D)は、前記目標圧力(Ptag1(i),Ptag2(i))と、前記人工筋肉(M,AM1,AM2)に供給される前記液体の流量(Q1(i),Q2(i))とに基づいて電流指令値を設定し、前記電流指令値に基づいて前記液圧調整装置(151,152)を制御するものであってもよい。
これにより、流量の過不足により人工筋肉の動作の応答性が悪化するのを抑制しつつ、人工筋肉に要求に応じた圧力の液体を供給することができるので、液体の供給を受けて作動する人工筋肉を応答性よく高精度に作動させることが可能となる。
また、前記液圧調整装置は、電磁部(15e)、スプール(15s)、前記スプール(15s)を付勢するスプリング(SP)、前記液体が供給される入力ポート(15i)、出力ポート(15o)、前記出力ポート(15o)に連通するフィードバックポート(15f)、および前記入力ポート(15i)と前記出力ポート(15o)とに連通可能なドレンポート(15d)を含むソレノイドバルブ(151,152)であってもよく、前記ソレノイドバルブ(151,152)は、前記電磁部(15e)が発生する推力と、前記スプリング(SP)の付勢力と、前記出力ポート(15o)から前記フィードバックポート(15f)に供給される液圧の作用により前記スプール(15s)に加えられる推力とをバランスさせて前記液体の圧力を調整するものであってもよい。
本開示の実施形態に係るロボット装置の制御方法は、液体の供給を受けて作動する少なくとも1つの人工筋肉と、前記人工筋肉に前記液体を供給する液体供給装置とを含むロボット装置の制御方法であって、前記ロボット装置を駆動するための目標駆動力を設定し、前記目標駆動力に基づいて前記人工筋肉に供給される前記液体の目標圧力を設定し、前記目標圧力に基づいて前記液体供給装置を制御するものである。
かかる方法によれば、液体の供給を受けて作動する人工筋肉を応答性よく高精度に作動させることが可能となる。
そして、本開示の発明は上記実施形態に何ら限定されるものではなく、本開示の外延の範囲内において様々な変更をなし得ることはいうまでもない。更に、上記実施形態は、あくまで発明の概要の欄に記載された発明の具体的な一形態に過ぎず、発明の概要の欄に記載された発明の要素を限定するものではない。