(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
以下、本発明を実施するための形態(以下「実施形態」という)について、適宜図面を参照しながら詳細に説明する。なお、各図において、共通する部分には同一の符号を付し重複した説明を省略する。
【0016】
≪作業ロボットシステムS≫
本実施形態に係るマニピュレータ110を備える作業ロボットシステムSについて、
図1を用いて説明する。
図1は、作業ロボットシステムSの全体構成を示す概略図である。
【0017】
作業ロボットシステムSは、マニピュレータ110を有する作業ロボット100と、中央制御装置150と、通信ケーブル160と、を備えている。
【0018】
作業ロボット100は、マニピュレータ110と、移動台車120と、観測装置130と、制御装置140と、を備えて構成される。
【0019】
マニピュレータ110は、アームアクチュエータ111aおよびアームリンク111bからなるアーム部111と、エンドエフェクタ112と、制御装置140のマニピュレータ制御部141と、を備えて構成される。アーム部111の一端は、移動台車120に回動自在に支持される。アームアクチュエータ111aは、アームリンク111bを駆動(回転駆動)することでアーム部111の姿勢を変更する。エンドエフェクタ112は、エンドエフェクタ駆動部(図示せず)およびエンドエフェクタ機構部(図示せず)から構成され、アーム部111の先端に配置される。なお、
図1において、マニピュレータ110のアーム部111は、アームアクチュエータ111aとアームリンク111bの1組にて構成されているものとして図示しているが、これに限られるものではなく、2組以上で構成されていてもよい。
【0020】
移動台車120は、マニピュレータ110、観測装置130、および、制御装置140を搭載して、移動することができるようになっている。
【0021】
観測装置130は、周囲環境やマニピュレータ110の姿勢、作業状況などを観測する。なお、
図1において、観測装置130はアーム部111(アームリンク111b)に取り付けられているものとして図示しているが、これに限られるものではなく、移動台車120に直接載置されていてもよい。
【0022】
制御装置140は、マニピュレータ110の各アクチュエータ(アームアクチュエータ111a、エンドエフェクタ112の駆動部)を制御するマニピュレータ制御部141と、移動台車120の各アクチュエータを制御する移動台車制御部142と、を備えている。
【0023】
マニピュレータ制御部141は、マニピュレータ110の各アクチュエータの駆動指令を生成して、各アクチュエータに駆動指令を送ることで、マニピュレータ110を制御する。また、移動台車制御部142は、移動台車120の各アクチュエータの駆動指令を生成して、各アクチュエータに駆動指令を送ることで、移動台車120を制御する。また、制御装置140は、観測装置130が観測した情報を収集する。
【0024】
中央制御装置150は、表示部151と、入力部152と、演算部153と、を備えており、通信ケーブル160を介して、作業ロボット100の制御装置140と通信可能に接続されている。中央制御装置150は、オペレータによる操作もしくは自動演算により作業ロボット100の動作指令を生成し、生成した動作指令を制御装置140に送信する。また、制御装置140の収集した観測装置130による観測データや、マニピュレータ110および移動台車120の駆動情報は、作業ロボット100の制御装置140から中央制御装置150に送信され、表示部151に表示されるとともに、作業ロボット100の動作指令演算に用いられる。
【0025】
なお、
図1では、中央制御装置150と制御装置140の間の通信を有線の通信ケーブル160で行っているが、無線通信を用いてもよい。また、中央制御装置150のもつ機能の一部もしくは全部は、制御装置140に配置されてもよい。
【0026】
≪動作作業環境≫
次に、作業ロボットシステムSの動作作業環境について、
図2を用いて説明する。
図2は、作業ロボットシステムSの動作作業環境の一例を模式的に示す図である。
【0027】
図2に示すように、作業ロボットシステムSの動作作業環境は、オペレーションエリア210と、待機エリア220と、作業エリア230と、移動エリア240と、で構成されている。
【0028】
オペレーションエリア210には、中央制御装置150が配置され、オペレータによる作業ロボット100の操作や、作業状態のオペレータへの表示が行われる。
【0029】
待機エリア220は、メンテナンス時などの作業ロボット100が待機しているエリアである。
【0030】
作業エリア230は、作業ロボット100が所定の作業を行うエリアである。作業ロボット100の作業計画により、動作作業環境内に作業エリア230と移動エリア240が決定される。
【0031】
移動エリア240は、作業ロボット100が移動を行うエリアである。換言すれば、移動エリア240は、待機エリア220と作業エリア230とを接続するエリアであり、作業エリア230と次の作業エリア(図示せず)とを接続するエリアである。なお、
図2では作業エリア230と移動エリア240は1つずつ図示しているが、これに限られるものではなく、作業ロボット100の作業計画に応じてそれぞれ複数存在していてもよい。
【0032】
作業ロボット100は、作業計画に従って作業エリア230で作業対象物231に対して既定の作業を行う。また、作業ロボット100は、待機エリア220から作業エリア230の間、または、作業エリア230と次の作業エリア(図示せず)の間を移動する。この時、各エリアには環境内に配置された構造物である環境構造物241が存在する。なお、
図2においては、移動エリア240に環境構造物241が存在するものとして図示している。また、環境構造物241は、静的な構造物であってもよく、動的な構造物であってもよい。
【0033】
なお、作業エリア230および移動エリア240は、エリア観測装置(図示せず)を備えていてもよく、エリア観測装置は、当該エリア内の環境や作業ロボット100を観測し、通信によって中央制御装置150に観測データを送信する。
【0034】
ところで、従来の一般的な作業ロボットシステムは、作業ロボット100が移動する際、マニピュレータ110にブレーキを掛ける、姿勢制御(後述する大力制御)を行うなどして、マニピュレータ110に既定の姿勢を保持させている。このような構成においては、例えば、移動エリア240においてマニピュレータ110が環境構造物241と接触した場合、接触後も移動台車120が進行したままマニピュレータ110が姿勢を保持していると、マニピュレータ110と環境構造物241の接触部には大きな接触力がかかる。この接触力により、環境構造物241およびマニピュレータ110自身を損傷する場合がある。本実施形態に係るマニピュレータ110を備える作業ロボットシステムSは、このような課題を解決するものである。
【0035】
≪作業ロボットシステムの動作≫
次に、作業ロボットシステムSを用いた一連の作業について、
図3を用いて説明する。
図3は、作業ロボットシステムSの動作ルーチンの一例を示すフローチャートである。
【0036】
作業ロボットシステムSの動作は、中央制御装置150に入力された作業計画または中央制御装置150によって計画された作業計画に基づいて開始される。
【0037】
ステップS301において、中央制御装置150は、作業ロボット100を初期化する(初期化処理フロー)。ここで、作業ロボット100を初期化するとは、例えば、作業ロボット100のマニピュレータ110を既定の姿勢とする等である。なお、この処理の詳細は、
図4を用いて後述する。
【0038】
ステップS302において、中央制御装置150は、作業ロボット100を移動するか否かを判定する(作業ロボット移動判定フロー)。中央制御装置150は、作業計画にもとづいて次の作業の作業エリア230を設定し、作業ロボット100が作業エリア230以外にいる場合、作業ロボット100を移動する必要があると判定し、作業ロボット100が作業エリア230にいる場合、作業ロボット100を移動する必要がないと判定する。作業ロボット100を移動する必要があると判定した場合(S302・Yes)、中央制御装置150の処理はステップS303に進む。作業ロボット100を移動する必要がないと判定した場合(S302・No)、中央制御装置150の処理はステップS304に進む。
【0039】
ステップS303において、中央制御装置150は、作業ロボット100を移動させる(作業ロボット移動フロー)。例えば、作業ロボット100が待機エリア220にいる場合、中央制御装置150は、作業ロボット100を待機エリア220から移動エリア240を経由して作業計画にもとづいて設定された次の作業の作業エリア230に移動させる。なお、この処理の詳細は、
図6を用いて後述する。
【0040】
ステップS304において、中央制御装置150は、作業ロボット100のマニピュレータ110による作業を行わせる(マニピュレータ作業フロー)。例えば、作業ロボット100のマニピュレータ110は、作業計画に従って作業エリア230で作業対象物231に対して既定の作業を行う。なお、この処理の詳細は、
図5Aおよび
図5Bを用いて後述する。
【0041】
ステップS305において、中央制御装置150は、全ての作業が完了したか否かを判定する(全作業完了判定フロー)。例えば、作業計画に示された作業が全て完了した場合、全ての作業が完了したと判定する。全ての作業が完了したと判定した場合(S305・Yes)、中央制御装置150の処理はステップS306に進む。全ての作業が完了していないと判定した場合(S305・No)、中央制御装置150の処理はステップS302に戻る。
【0042】
ステップS306において、中央制御装置150は、作業ロボット100の終了処理を行う(終了処理フロー)。ここで、終了処理とは、例えば、作業ロボット100を待機エリア220に移動させる等の全作業の終了にともなう処理である。そして、一連の作業を終了する。
【0043】
なお、中央制御装置150の表示部151には、その時点でどのフローを行っているかなどを表示して、オペレータに作業ロボット100の動作状況を通知してもよい。
【0044】
<初期化処理フロー>
次に、
図3のステップS301に示す初期化処理フローについて、
図4を用いて更に説明する。
図4は、初期化処理フローにおける作業ロボットシステムSの動作ルーチンの一例を示すフローチャートである。ここで、
図4に示す初期化処理フローは、作業ロボット100のマニピュレータ110を既定の姿勢とする動作のフローである。
【0045】
ステップS401において、中央制御装置150は、作業ロボット100の周囲環境を観測するか否かを判定する(環境観測判定フロー)。例えば、周囲環境が明らかで環境構造物241とマニピュレータ110との接触リスクが低い場合、周囲環境を観測しないと判定する。また、例えば、周囲環境が不確かで環境構造物241とマニピュレータ110との接触リスクがある場合、周囲環境を観測すると判定する。周囲環境を観測すると判定した場合(S401・Yes)、中央制御装置150の処理はステップS402に進む。周囲環境を観測しないと判定した場合(S401・No)、中央制御装置150の処理はステップS403に進む。
【0046】
ステップS402において、中央制御装置150は、観測装置130により作業ロボット100の周囲環境を観測する(環境観測フロー)。作業ロボット100の周囲環境を観測して環境構造物241の位置などを検知することで、環境構造物241とマニピュレータ110との接触リスクを低減する。
【0047】
ステップS403において、中央制御装置150は、マニピュレータ110の姿勢を変化するための制御系を大力制御系に切り替える(大力制御投入フロー)。これにより、マニピュレータ制御部141は、アームアクチュエータ111aを大力制御で制御する。なお、大力制御については後述する。
【0048】
ステップS404において、中央制御装置150は、マニピュレータ110が環境構造物241等と接触しないよう最終姿勢および姿勢軌道を生成する(姿勢指令生成フロー)。
【0049】
ステップS405において、中央制御装置150は、ステップS404で生成した姿勢指令に従って、マニピュレータ110の姿勢を変更し、最終姿勢を形成する(姿勢形成フロー)。なお、マニピュレータ110の姿勢を変更する際、マニピュレータ110(アームアクチュエータ111a)は大力制御で制御される。
【0050】
ステップS406において、中央制御装置150は、マニピュレータ110の姿勢形成が完了しているか否か、換言すれば、マニピュレータ110の姿勢が姿勢指令の最終姿勢となっているか否かを判定する(姿勢形成完了判定フロー)。マニピュレータ110の姿勢形成が完了している場合(S406・Yes)、初期化処理フローを終了する。マニピュレータ110の姿勢形成が完了していない場合(S406・No)、中央制御装置150の処理は、ステップS401に戻り、改めて初期化を行う。
【0051】
なお、中央制御装置150の表示部151には、その時点でどのフローを行っているか、ステップS404で生成された最終姿勢、ステップS406の判定結果などを表示して、オペレータに作業ロボット100の初期化状況を通知してもよい。
【0052】
(大力制御)
ここで、大力制御について説明する。本実施形態では、マニピュレータ110が大きな力を発生する制御系を大力制御とする。マニピュレータ110の姿勢を変更する場合、重力などに逆らいながらアームリンク111bおよびエンドエフェクタ112を駆動する。このため、マニピュレータ110の姿勢を変更する際、大力制御とすることにより、アームアクチュエータ111aで大きな力を出力することで高速な姿勢変化が可能となる。なお、マニピュレータ110の制御系において各アクチュエータの力指令(電動モータであれば電流指令、圧力アクチュエータであれば圧力)に備える力リミッタは、それぞれのアクチュエータが発生できてかつ損傷しない大きな制限値を用いるのが一般的である。
【0053】
<マニピュレータ作業フロー>
次に、
図3のステップS304に示すマニピュレータ作業フローについて、
図5Aおよび
図5Bを用いて更に説明する。
図5Aは、マニピュレータ作業フローにおける作業ロボットシステムSの動作ルーチンの一例を示すフローチャートである。
【0054】
ステップS501において、中央制御装置150は、作業を行うためのマニピュレータ110の最終姿勢を形成する姿勢形成処理を行う(姿勢形成処理フロー)。
【0055】
ここで、ステップS501に示す姿勢形成処理フローについて、
図5Bを用いて更に説明する。
図5Bは、姿勢形成処理フローにおける作業ロボットシステムSの動作ルーチンの一例を示すフローチャートである。
【0056】
ステップS511において、中央制御装置150は、作業ロボット100の周囲環境を観測するか否かを判定する(環境観測判定フロー)。周囲環境を観測すると判定した場合(S511・Yes)、中央制御装置150の処理はステップS512に進む。周囲環境を観測しないと判定した場合(S511・No)、中央制御装置150の処理はステップS513に進む。
【0057】
ステップS512において、中央制御装置150は、観測装置130により作業ロボット100の周囲環境を観測する(環境観測フロー)。作業ロボット100の周囲環境を観測して環境構造物241の位置などを検知することで、環境構造物241とマニピュレータ110との接触リスクを低減する。
【0058】
ステップS513において、中央制御装置150は、現在のマニピュレータ110の制御系が大力制御であるか否かを判定する(大力制御系判定フロー)。マニピュレータ110の制御系が大力制御である場合、(S513・Yes)、中央制御装置150の処理はステップS515に進む。マニピュレータ110の制御系が大力制御でない場合(S513・No)、中央制御装置150の処理はステップS514に進む。
【0059】
ステップS514において、中央制御装置150は、マニピュレータ110の制御系を大力制御に切り替える(大力制御投入フロー)。これにより、マニピュレータ制御部141は、アームアクチュエータ111aを大力制御で制御する。なお、マニピュレータ110の制御系を大力制御に切り替える際、大力制御の投入によってマニピュレータ110が意図せず動いて周囲環境と干渉することがないように、例えば、マニピュレータ110の姿勢を保持するように制御する。
【0060】
ステップS515において、中央制御装置150は、マニピュレータ110が環境構造物241等と接触しないよう最終姿勢および姿勢軌道を生成する(姿勢指令生成フロー)。
【0061】
ステップS516において、中央制御装置150は、マニピュレータ110の姿勢を変更するか否かを判定する(姿勢変更判定フロー)。マニピュレータ110の姿勢を変更すると判定した場合(S516・Yes)、中央制御装置150の処理はステップS517に進む。マニピュレータ110の姿勢を変更しないと判定した場合(S516・No)、姿勢形成処理フローを終了する。
【0062】
ステップS517において、中央制御装置150は、ステップS515で生成した姿勢指令に従って、マニピュレータ110の姿勢を変更し、最終姿勢を形成する(姿勢形成フロー)。なお、マニピュレータ110の姿勢を変更する際、マニピュレータ110(アームアクチュエータ111a)は大力制御で制御される。
【0063】
ステップS518において、中央制御装置150は、マニピュレータ110の姿勢形成が完了しているか否か、換言すれば、マニピュレータ110の姿勢が姿勢指令の最終姿勢となっているか否かを判定する(姿勢形成完了判定フロー)。マニピュレータ110の姿勢形成が完了している場合(S518・Yes)、姿勢形成処理フローを終了する。マニピュレータ110の姿勢形成が完了していない場合(S518・No)、中央制御装置150の処理は、ステップS511に戻り、改めて姿勢形成処理を行う。
【0064】
図5Aに戻り、ステップS502において、中央制御装置150は、マニピュレータ110による計画された作業を開始して実行する(作業開始フロー)。なお、マニピュレータ110による作業を行う際、マニピュレータ110(アームアクチュエータ111a)は大力制御で制御される。
【0065】
ステップS503において、中央制御装置150は、計画された作業が完了したか否かを判定する(作業完了判定フロー)。計画された作業が完了したと判定した場合(S503・Yes)、マニピュレータ作業フローを終了する。計画された作業が完了していないと判定した場合(S503・No)、中央制御装置150の処理はステップS501に戻る。
【0066】
なお、中央制御装置150の表示部151には、その時点でどのフローを行っているか、ステップS515で生成された最終姿勢、ステップS518、ステップS503の判定結果などを表示して、オペレータに作業ロボット100の作業状況を通知してもよい。
【0067】
ここで、ステップS517において、マニピュレータ110の姿勢を変更する際、高速なマニピュレータ110の姿勢変化を可能とするため、大力制御で制御される。また、ステップS502において、マニピュレータ110による作業を行う際も、大力制御で制御される。例えば、エンドエフェクタ112の把持する治具で作業対象物231を加工する作業の場合、マニピュレータ110は作業対象物231から反力がある場合も姿勢を保たなければならない。つまり、大きな外力がマニピュレータ110に印加した場合にマニピュレータ110の姿勢を保持するには、大きな力を各アクチュエータが発生する必要があり、マニピュレータ110(アームアクチュエータ111a)は大力制御で制御される。
【0068】
<作業ロボット移動フロー>
次に、
図3のステップS303に示す作業ロボット移動フローについて、
図6を用いて更に説明する。
図6は、作業ロボット移動フローにおける作業ロボットシステムSの動作ルーチンの一例を示すフローチャートである。
【0069】
ステップS601において、中央制御装置150は、移動を行うためのマニピュレータ110の最終姿勢を形成する姿勢形成処理を行う(姿勢形成処理フロー)。なお、前記の
図5AのステップS501に示す姿勢形成処理フローは、作業を行うためのマニピュレータ110の最終姿勢を形成するのに対し、
図6のステップS601に示す姿勢形成処理フローは、移動を行うためのマニピュレータ110の最終姿勢を形成するものであり、最終姿勢が異なっているが、その他の処理は同様(
図5B参照)であり、重複する説明を省略する。なお、ステップS601に示す姿勢形成処理フローにおいても、マニピュレータ110の姿勢を変更する際、マニピュレータ110(アームアクチュエータ111a)は大力制御で制御される。
【0070】
ステップS602において、中央制御装置150は、現在のマニピュレータ110の制御系が小力制御であるか否かを判定する(小力制御系判定フロー)。マニピュレータ110の制御系が小力制御である場合、(S602・Yes)、中央制御装置150の処理はステップS604に進む。マニピュレータ110の制御系が小力制御でない場合(S602・No)、中央制御装置150の処理はステップS603に進む。なお、小力制御については後述する。
【0071】
ステップS603において、中央制御装置150は、マニピュレータ110の制御系を小力制御に切り替える(小力制御投入フロー)。これにより、マニピュレータ制御部141は、アームアクチュエータ111aを小力制御で制御する。
【0072】
ステップS604において、中央制御装置150は、作業ロボット100の移動を開始する(ロボット移動開始フロー)。中央制御装置150は、作業ロボット100を現在の位置から移動エリア240を経由して作業計画にもとづいて設定された次の作業の作業エリア230まで移動させる。なお、作業ロボット100の移動の際、マニピュレータ110(アームアクチュエータ111a)は小力制御で制御される。
【0073】
ステップS605において、中央制御装置150は、マニピュレータ110の姿勢が既定の範囲内の姿勢となっているか否かを判定する(姿勢範囲判定フロー)。ここで、マニピュレータ110の既定の姿勢の範囲は、例えば、マニピュレータ110が損傷することなく有効に動作できる姿勢範囲とすればよい。マニピュレータ110の姿勢が既定の範囲内の姿勢となっている場合(S605・Yes)、中央制御装置150の処理はステップS607に進む。マニピュレータ110の姿勢が既定の範囲を超えた姿勢となっている場合(S605・No)、中央制御装置150の処理はステップS606に進む。
【0074】
ステップS606において、中央制御装置150は、作業ロボット100の移動を停止する(ロボット移動停止フロー)。例えば、作業ロボット100の移動中に、マニピュレータ110が外力を受け既定の範囲を超えて姿勢を大きく変更した場合、作業ロボット100の移動を停止することにより、マニピュレータ110が損傷することを防止する。なお、中央制御装置150の表示部151には、マニピュレータ110の姿勢異常を通知する。そして、中央制御装置150の処理はステップS601に戻り、作業ロボット移動フローを始めからやり直す。
【0075】
ステップS607において、中央制御装置150は、作業ロボット100が次の作業の作業エリア230まで移動が完了したか否かを判定する(移動完了判定フロー)。作業ロボット100の移動が完了していない場合(S607・No)、中央制御装置150の処理はステップS605に戻る。作業ロボット100の移動が完了した場合(S607・Yes)、中央制御装置150の処理はステップS608に進む。
【0076】
ステップS608において、中央制御装置150は、作業ロボット100の移動を停止する(ロボット移動停止フロー)。そして、作業ロボット移動フローを終了する。
【0077】
なお、中央制御装置150の表示部151には、その時点でどのフローを行っているか、作業ロボット100の位置やマニピュレータ110の姿勢、環境構造物241との接触の有無、推定する接触力などを表示して、オペレータに作業ロボット100の移動状況を通知してもよい。
【0078】
ここで、ステップS604で作業ロボット100の移動を開始した後、ステップS608で作業ロボット100の移動を停止するまでの間、ステップS605に示す姿勢範囲判定によって、マニピュレータ110の姿勢が既定の範囲を超えたと判定しない限りは、マニピュレータ110と環境構造物241との接触などが発生した場合も、作業ロボット100は移動を継続する。これにより、構造物と接触した際作業ロボットの移動を停止させる場合(特許文献2参照)と比較して、本実施形態に係るマニピュレータ110を備える作業ロボットシステムSは作業効率の低下を抑制することができる。
【0079】
(小力制御)
ここで、小力制御について説明する。本実施形態では、マニピュレータ110が既定の姿勢に復元するように制御する制御系を小力制御とする。小力制御における力リミッタの制限値は、大力制御における力リミッタの制限値よりも小さく設定されている。このため、小力制御においては、マニピュレータ110に外力が加わると、大力制御の場合と比較して小さな外力でマニピュレータ110の姿勢の変形を開始する。そして、外力が解除されると、マニピュレータ110は既定の姿勢に復元する。
【0080】
ここで、ステップS601において、マニピュレータ110の姿勢を形成する際、高速なマニピュレータ110の姿勢変化を可能とするため、大力制御で制御される。一方、ステップS604で作業ロボット100の移動を開始した後、ステップS608で作業ロボット100の移動を停止するまでの間、小力制御で制御される。マニピュレータ110と環境構造物241との接触が発生した場合、大力制御の場合と比較して小さな外力でマニピュレータ110の姿勢の変形を開始する。このため、接触力をちいさくすることができ、接触による環境構造物241やマニピュレータ110自身の損傷リスクを低減することができる。
【0081】
また、例えば、エンドエフェクタ112が工具など作業対象物231を把持した状態で、作業ロボット110が移動する場合、移動エリア240内で環境構造物241と接触した場合も作業対象物231を落下させてはならならず、エンドエフェクタ112(エンドエフェクタ駆動部)は移動中も能動的に動作する必要がある。一方、アーム部111は、環境構造物241との接触により姿勢変化してもよく、アーム部111(アームアクチュエータ111a)能動的に動作する必要はない。このような作業ロボット100の移動時は、アーム部111(アームアクチュエータ111a)を小力制御とするのに対して、エンドエフェクタ112(エンドエフェクタ駆動部)を大力制御とする。この様に、マニピュレータ110を構成する各アクチュエータは、それぞれに能動的に動作する必要がある動作時と、能動的に動作する必要はない待機時が計画されており、この計画に基づいてアクチュエータ毎に制御(大力制御/小力制御)を切り替える。
【0082】
なお、能動的に動作する必要がある動作時とは、マニピュレータ110のアーム部111においては、マニピュレータ110の姿勢を変更する際、および、マニピュレータ110による作業を行う際であり、アームアクチュエータ111aは大力制御で制御される。また、能動的に動作する必要はない待機時とは、作業ロボット100が移動する際であり、アームアクチュエータ111aは小力制御で制御される。
【0083】
またここで、作業計画の各状態においてマニピュレータ110の制御系を大力制御(動作時)とするか、小力制御(待機時)とするかを、オペレータもしくは中央制御装置150が計画してもよい。
【0084】
≪動作例≫
前述のように、本実施形態に係るマニピュレータ110を備える作業ロボットシステムSは、マニピュレータ110を搭載した作業ロボット100が移動する際、マニピュレータ110(アームアクチュエータ111a)の制御系は小力制御で制御される(
図6参照)。作業ロボット100が移動する際、マニピュレータ110(アームアクチュエータ111a)の制御系が小力制御で制御されることによる作用効果について、大力制御で制御される場合と比較しつつ説明する。
【0085】
<マニピュレータと環境構造物との接触>
まず、マニピュレータ110を搭載した作業ロボット100が移動する際、マニピュレータ110が環境構造物241と接触する場面について、
図7を用いて説明する。
図7は、移動エリア240における作業ロボット100と環境構造物241との相対的な状態を示す模式図である。
【0086】
図7(a)は、作業ロボット100と未知の環境構造物241が接近している未接触状態を示す図である。作業ロボット100は移動台車120により、図中右方向へ移動している。進行方向には、未知の環境構造物241があり、移動により接近する。ここで、未知の環境構造物241とは、オペレータが把握しておらず、事前に接触を回避することが困難な環境構造物のことである。
【0087】
図7(b)は、作業ロボット100と環境構造物241の接触が始まる接触開始状態を示す図である。作業ロボット100の移動により、マニピュレータ110が環境構造物241と接触し、マニピュレータ110および環境構造物241には互いに接触力が発生して損傷リスクが増大する。
【0088】
図7(c)は、作業ロボット100と環境構造物241の接触が継続している接触状態を示す図である。マニピュレータ110と環境構造物241との接触力によって、マニピュレータ110の姿勢が変化する。また、マニピュレータ110と環境構造物241との接触によって、マニピュレータ110および環境構造物241には接触力が発生して損傷リスクが増大する。
【0089】
ここで、小力制御は接触力を制限する力指令リミッタ(
図10を用いて後述する。)をもち、大力制御はマニピュレータ110の損傷を防ぐための力指令リミッタ(
図8を用いて後述する。)をもつ。そのため、いずれの制御においても、環境構造物241からの反力がマニピュレータ110の発生力より大きい場合はマニピュレータ110の姿勢が変化して
図7(c)に示す状態となる。
【0090】
図7(d)は、作業ロボット100の移動により環境構造物241を通過して接触から開放された接触開放状態を示す図である。接触からの開放により、マニピュレータ110は環境構造物241からの接触力がなくなり、環境構造物241はマニピュレータ110からの接触力がなくなる。
図7(d)の例では、接触力がなくなったことで、マニピュレータ110が当初の姿勢に復帰する。
【0091】
<大力制御のブロック線図>
次に、大力制御時におけるアームアクチュエータ111aの制御について、
図8を用いて説明する。
図8は、大力制御におけるアームアクチュエータ111aの制御構造の一例を示すブロック線図である。なお、位置制御器801、力外乱オブザーバ802、大力リミッタ803は、マニピュレータ制御部141に構成される。
【0092】
位置制御器801は、アームアクチュエータ角度指令θrとアームアクチュエータ実角度θの差分を入力として、アームアクチュエータ111aを駆動する駆動力指令Urを出力する。
【0093】
力外乱オブザーバ802は、アームアクチュエータ111aに印加する力指令uとアームアクチュエータ実角度θにもとづいて、アームアクチュエータ111aに加わる外乱(外力外乱d、重力外乱du)の力外乱推定値(d+du)*を出力する。
【0094】
アームアクチュエータ111aに印加する力指令uは、駆動力指令Urと力外乱推定値(d+du)*の差分urに対して、大力リミッタ803で制限を掛けて生成される。ここで、大力リミッタ803は、アームアクチュエータ111aに非常に大きな力が印加されることによる損傷を回避するために備えられる。
【0095】
アームアクチュエータ111aに印加された力指令uに対して、接触力などの外力外乱dとマニピュレータ110の姿勢ψにより変わる重力外乱duが加わったものがアームアクチュエータ111aの駆動力Uとなる。アームアクチュエータ111aは、駆動力Uに従ってアームアクチュエータ実角度θを変えてマニピュレータ110の姿勢ψを変更する。
【0096】
ここで、大力リミッタ803による制限が掛からない状態において、力外乱推定値(d+du)*が、実際の外力外乱dと重力外乱duの和と等しい場合には、駆動力Uは駆動力指令Urと同一となり、位置制御器801によってアームアクチュエータ111aの駆動力指令Urを生成する構造となっている。
【0097】
<大力制御の時間応答図>
次に、大力制御のまま作業ロボット100が移動し、マニピュレータ110が環境構造物241と接触した場合について、
図9を用いて説明する。
図9は、大力制御時にマニピュレータ110と環境構造物241が接触した場合における時間応答図であり、(a)はアームアクチュエータ実角度θの時間応答を示すグラフであり、(b)はマニピュレータ110と環境構造物241の接触力の時間応答を示すグラフである。なお、
図9は、本実施形態の課題を説明する時間応答図の一例である。
【0098】
まず、作業ロボット100が移動し、マニピュレータ110と環境構造物241とが未接触状態901において、マニピュレータは未知の環境構造物241と接触することなく近づき、
図9(b)に示すように接触力は0である。また、
図9(a)に示すように符号907で示すアームアクチュエータ実角度θは符号906で示すアームアクチュエータ角度指令θr(ここでは20°とする。)に追従している。
【0099】
マニピュレータ110と環境構造物241とが接触を開始する接触開始状態902において、マニピュレータ110が環境構造物241と接触して接触力908が発生する。この際、作業ロボット110の移動を止めることなく移動し続けると、接触状態903の間はマニピュレータ110と環境構造物241が断続的に接触して接触力908を生じて大力リミッタ803で制限された力指令uにより発生力が不足してアームアクチュエータ実角度θはアームアクチュエータ角度指令θrを保持できずマニピュレータ110の姿勢が変化する。
【0100】
時間904で環境構造物241が通過すると、マニピュレータ110と環境構造物241の接触は開放されて接触開放状態905となる。接触開放状態905では、接触力は0となる。また、アームアクチュエータ実角度θはアームアクチュエータ角度指令θrに追従してマニピュレータ110の姿勢を復帰する。
【0101】
ここで、接触状態903におけるマニピュレータ110と環境構造物241の接触力908は、大力リミッタ803の制限値によって決まり、一般に大きな力となる。ちなみに、
図9の例では、大力リミッタ803での制限値を500Nmとし、アーム長は1mとして、最大接触力は500Nとしている。なお、接触時のマニピュレータ110の姿勢により、発生する接触力908は最大接触力よりも小さくなる。
【0102】
また、マニピュレータ110がブレーキ等で姿勢を保持している場合、接触力908はブレーキ力によって決まる大きな力となる。そのため、接触開始状態902で接触を感知した場合に、特許文献2のように作業ロボット100の移動を停止するといった方法がよく取られているが、これは作業ロボット100の作業効率を低下させる。
【0103】
<小力制御のブロック線図>
次に、小力制御時におけるアームアクチュエータ111aの制御について、
図10を用いて説明する。
図10は、小力制御におけるアームアクチュエータ111aの制御構造の一例を示すブロック線図である。なお、位置制御器801、力外乱オブザーバ802、大力リミッタ803、接触力リミッタ1001、重力外乱エスティメータ1002は、マニピュレータ制御部141に構成される。
【0104】
位置制御器801は、
図8に示す大力制御の場合と同様に、アームアクチュエータ角度指令θrとアームアクチュエータ実角度θの差分を入力として、アームアクチュエータ111aを駆動する駆動力指令Urを出力する。
【0105】
力外乱オブザーバ802は、
図8に示す大力制御の場合と同様に、アームアクチュエータ111aに印加する力指令uとアームアクチュエータ実角度θにもとづいて、アームアクチュエータ111aに加わる外乱(外力外乱d、重力外乱du)の力外乱推定値(d+du)*を出力する。
【0106】
重力外乱エスティメータ1002は、マニピュレータ110のモデルやその時点のマニピュレータ110の姿勢ψなどを用いて、アームアクチュエータ111aにかかる重力外乱推定値du*を推定する。
【0107】
接触力リミッタ1001は、駆動力指令Urと力外乱推定値(d+du)*の差分urに対して、重力外乱推定値du*を加算することで接触力を制限し、改めて重力外乱推定値du*を減算して外力外乱がない場合にその時点の姿勢を保持するための力指令−duを補償する。ここで、接触力リミッタ1001の制限値は大力リミッタ803の制限値よりも小さく設定する。
【0108】
接触力リミッタ1001について、
図11を用いてさらに説明する。
図11は、接触力リミッタ1001における接触力の制限を説明する図であり、(a)は接触力リミッタ1001を示し、(b)は接触力リミッタ1001に等価な等価接触力リミッタ1001Aの構成を示す。
【0109】
ここで、マニピュレータ110と環境構造物241との接触力は、アームアクチュエータ111aの発生トルクである力指令uから、重力によるトルクである重力外乱duを足したトルクにより、アームリンク111bが環境構造物241を押すことで発生する。即ち、接触力トルクは、u+duとなる。
【0110】
図11(a)に示すように、接触力リミッタ1001は、リミット値をLsとすると、力指令uの指令値urと重力外乱duの推定値du*を用いて接触力トルクを最大Lsに制限する。更に、接触力リミッタ1001の出力に重力外乱の推定値du*を減ずることで重力を補償してその時点の姿勢を保持する。
【0111】
図11(a)の小力制御に用いられる接触力リミッタ1001を含むブロックは、等価的に
図11(b)の等価接触力リミッタ1001Aの様に現わせる。つまり、小力制御は一例として、重力を補償してその時点の姿勢を保持するための力指令−du(もしくはその推定値−du*)を中央値としたリミッタにより実現可能である。ここで、duは、マニピュレータ110の姿勢ψにより変わる重力外乱duであるから、接触力リミッタ1001(等価接触力リミッタ1001A)は、マニピュレータ110の姿勢ψから求めた値を中央値として、制限している。
【0112】
図10に戻り、小力制御における大力リミッタ803は、
図8に示す大力制御の場合の大力リミッタ803と比較して、入力が異なっている点を除けば、同様である。即ち、小力制御における大力リミッタ803は、接触力リミッタ1001の出力と重力外乱推定値du*との差分より生成された力指令に制限をかけて力指令uを生成する。
【0113】
アームアクチュエータ111aに印加された力指令uに対して、接触力などの外力外乱dとマニピュレータ110の姿勢ψにより変わる重力外乱duが加わったものがアームアクチュエータ111aの駆動力Uとなる。アームアクチュエータ111aは、駆動力Uに従ってアームアクチュエータ実角度θを変えてマニピュレータ110の姿勢ψを変更する。
【0114】
<小力制御の時間応答図>
次に、作業ロボット100が移動する際、マニピュレータ110を小力制御として、マニピュレータ110が環境構造物241と接触した場合について、
図12を用いて説明する。
図12は、小力制御時にマニピュレータ110と環境構造物241が接触した場合における時間応答図であり、(a)はアームアクチュエータ実角度θの時間応答を示すグラフであり、(b)はマニピュレータ110と環境構造物241の接触力の時間応答を示すグラフである。なお、
図12は、本実施形態の効果を説明する時間応答図の一例である。
【0115】
まず、作業ロボット100が移動し、未接触状態901において、マニピュレータは未知の環境構造物241と接触することなく近づき、
図12(b)に示すように接触力は0である。また、
図12(a)に示すように符号1207で示すアームアクチュエータ実角度θは符号906で示すアームアクチュエータ角度指令θr(ここでは20°とする。)に追従している。
【0116】
接触開始状態902において、マニピュレータ110が環境構造物241と接触して接触力908が発生する。この際、作業ロボット110の移動を止めることなく移動し続けると、接触状態903の間はマニピュレータ110と環境構造物241が断続的に接触して接触力1208を生じて接触力リミッタ1001で接触力1208を制限したことで、制限された力指令uにより発生力が不足してアームアクチュエータ実角度θはアームアクチュエータ角度指令θrを保持できずマニピュレータ110の姿勢が環境構造物241の外形を沿うように変化する。
【0117】
時間904で環境構造物241が通過すると、マニピュレータ110と環境構造物241の接触は開放されて接触開放状態905となる。接触開放状態905では、接触力は0となる。また、アームアクチュエータ実角度θはアームアクチュエータ角度指令θrに追従してマニピュレータ110の姿勢を復帰する。
【0118】
ここで、接触状態903における小力制御での接触力1108は、接触力リミッタ1001により接触力が制限されたことで、大力制御での接触力908より小さく制限される。ちなみに、
図12の例では、接触力リミッタ1001での制限値を10Nmとし、アーム長は1mとして、最大接触力は10Nとしている。なお、接触時のマニピュレータ110の姿勢により、発生する接触力908は最大接触力よりも小さくなる。
【0119】
また、接触力1108がない状態(未接触状態901、接触開放状態905)では、アームアクチュエータ実角度θはアームアクチュエータ角度指令θrに追従してマニピュレータ110の姿勢を保持している。
【0120】
これにより、アームアクチュエータ111aの制御系は、その機能を損なうことなく接触力1108を低減して、マニピュレータ110および環境構造物241の損傷リスクを低減する。またこれにより、マニピュレータ110と環境構造物241が接触した際も、接触力1108が小さいので接触したまま作業ロボット110を移動可能であり、作業ロボット110の作業効率低下を抑制できる。
【0121】
仮に、大力制御において大力リミッタ803の制限値を小さく設定することにより接触力を低減しようとすると、マニピュレータ110が自重(重力外乱du)により、マニピュレータ110の姿勢が変形するおそれがある。これに対し、
図11に示すように、小力制御の接触力リミッタ1001は、外力外乱がない場合にその時点の姿勢を保持するための力指令−duを補償する。即ち、接触力リミッタ1001の制限値を小さく設定しても、姿勢を保持するための力指令−duは補償されているので、マニピュレータ110が自重により変形することを防止できる。
【0122】
≪変形例≫
なお、本実施形態に係るマニピュレータ110を備える作業ロボットシステムSは、上記実施形態の構成に限定されるものではなく、発明の趣旨を逸脱しない範囲内で種々の変更が可能である。
【0123】
マニピュレータ110のアーム部111は、1つのアームアクチュエータ111aと、1つのアームリンク111bと、を有する1リンクアームであるものとして説明したか、これに限られるものではなく、複数のアームアクチュエータ111aと、複数のアームリンク111bとを有する多リンクアームに対しても、アームのモデルや隣接するアームリンク111b間の相対角度などを用いることにより適用できる。
【0124】
また、本実施形態に係るマニピュレータ110は、移動台車120に搭載され、移動台車120が移動することにより、移動台車120に搭載されたマニピュレータ110の周囲環境が動的に変化することに対して、マニピュレータ110および環境構造物241との接触の際の損傷リスクを低減するものである。このため、移動しないマニピュレータ110であって、周囲環境が動的に変化する環境(例えば、ベルトコンベアによって対象物(環境構造物に相当)が移動する環境)においても適用することができる。特に、マニピュレータ110が作業する場合(動作時)は大力制御を行い、作業しない場合(待機時)は小力制御を行うなどの本実施形態に係るマニピュレータ110を周囲環境が動的に変化する環境において用いることにより、動的に変化する環境を停止させることなく(例えば、ベルトコンベアを停止させる等)接触力を低減することができる。