(57)【特許請求の範囲】
【請求項１】
演算処理を行うＣＰＵを有し、基体と、前記基体に連結された肢体とを備えるロボットに、１または複数の対象物との相互作用を伴うタスクを実行させるロボットの制御装置であって、
前記対象物である第１対象物と、前記ロボットまたは該ロボットと一体となった第２対象物との干渉可能性の有無をチェックする干渉判定手段と、
前記タスクを実行する一連の動作から、前記ロボットまたは該ロボットと一体となった第２対象物が前記第１対象物に対して非接触状態から接触状態へ遷移する動作区分である第１動作区分と、前記ロボットまたは該ロボットと一体となった第２対象物が前記第１対象物に対して接触状態から非接触状態へ遷移する動作区分である第２動作区分とのいずれか一方または両方を区分すると共に、前記第１動作区分に対して時系列的に前で連続し、これに加えてまたは代えて前記第２動作区分に対して時系列的に後で連続する動作区分である第３動作区分を区分する動作区分手段と、
前記動作区分手段により区分された前記第１動作区分および第２動作区分では、前記ロボットまたは該ロボットと一体となった第２対象物と前記第１対象物との前記干渉判定を前記干渉判定手段に省略させながら、前記第３動作区分では前記ロボットまたは該ロボットと一体となった第２対象物と前記第１対象物との前記干渉判定を干渉判定手段に実行させ、前記タスクを実行する前記ロボットの時系列的な位置および姿勢を生成する行動計画手段と
を備えることを特徴とする制御装置。
【請求項２】
請求項１記載の制御装置において、
前記動作区分手段は、前記干渉判定手段が前記干渉判定を行う際の前記ＣＰＵの演算量が第１所定値以下となるように、前記タスクを実行する一連の動作から前記第１動作区分と前記第２動作区分とのいずれか一方または両方を区分することを特徴とする制御装置。
【請求項３】
請求項１または２記載の制御装置において、
前記行動計画手段は、前記第１動作区分と前記第２動作区分とのいずれか一方または両方における前記ロボットの時系列的な位置および姿勢を、前記第１対象物の形状に応じた回転と並進移動とのいずれか一方またはそれらの組み合わせを制約条件として生成することを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物との相互作用を伴うタスクをロボットに実行させるロボットの制御装置に関する。
【背景技術】
【０００２】
近年、ロボットに対象物を把持させるなど、対象物との相互作用を伴うタスクをロボットに実行させるための様々な技術が提案されている（下記特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１２５４６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、把持する対象物との周囲には他の物体が存在していることが多く、対象物を把持するためには、他の物体との干渉を回避しながら対象物を把持させる必要があり、対象物との相互作用を伴うタスクを実行するために要する演算処理負荷が増大するという問題がある。
【０００５】
そこで、本発明は、以上の点に鑑み、処理負荷が増大することを抑制しつつ、ロボットに相互作用を伴うタスクを実行させることができるロボットの制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１発明の制御装置は、演算処理を行うＣＰＵを有し、基体と、前記基体に連結された肢体とを備えるロボットに、１または複数の対象物との相互作用を伴うタスクを実行させるロボットの制御装置であって、
前記対象物である第１対象物と、前記ロボットまたは該ロボットと一体となった第２対象物との干渉可能性の有無をチェックする干渉判定手段と、
前記タスクを実行する一連の動作から、前記ロボットまたは該ロボットと一体となった第２対象物が前記第１対象物に対して非接触状態から接触状態へ遷移する動作区分である第１動作区分と、前記ロボットまたは該ロボットと一体となった第２対象物が前記第１対象物に対して接触状態から非接触状態へ遷移する動作区分である第２動作区分とのいずれか一方または両方を区分すると共に、前記第１動作区分とに対して時系列的に前で連続し、これに加えてまたは代えて前記第２動作区分に対して時系列的に後で連続する動作区分である第３動作区間を区分する動作区分手段と、
前記動作区分手段により区分された前記第１動作区分および第２動作区分では、前記ロボットまたは該ロボットと一体となった第２対象物と前記第１対象物との前記干渉判定を前記干渉判定手段に省略させながら、前記第３動作区分では前記ロボットまたは該ロボットと一体となった第２対象物と前記第１対象物との前記干渉判定を干渉判定手段に実行させ、前記タスクを実行する前記ロボットの時系列的な位置および姿勢を生成する行動計画手段と
を備えることを特徴とする。
【０００７】
第１発明の制御装置によれば、タスクを実行する一連の動作から第１対象物に対する接触状態が遷移する動作区分を第１または第２動作区分として区分し、第１または第２動作区分では、第１対象物との間の干渉判定を省略することで、干渉演算モデルを細かくする必要がなくなり、結果として、第１対象物との間の干渉判定による演算処理負荷が増大することを抑制することができ、第１対象物以外の物体との干渉を回避することができる。
【０００８】
一方で、第１および第２動作区分では、第１対象物は、ロボットまたはロボットと一体となった第２対象物と既に接触しているか、これから接触するものであるため、第１対象物との間の干渉判定を省略しても、（第１対象物以外の他の物体との干渉を回避できれば、）ロボットにタスクを実行させることができる。
【０００９】
さらに、第１および第２動作区分以外の第３動作区分では、第１対象物との間の干渉判定を実行することで、第１対象物を含めた他の物体との干渉を回避しながら、ロボットにタスクを実行させることができる。
【００１０】
このように、第１発明の制御装置によれば、処理負荷が増大することを抑制しつつ、ロボットに相互作用を伴うタスクを実行させることができる。
【００１１】
第２発明の制御装置は、第１発明において、
前記動作区分手段は、前記干渉判定手段が前記干渉判定を行う際の前記ＣＰＵの演算量が第１所定値以下となるように、前記タスクを実行する一連の動作から前記第１動作区分と前記第２動作区分とのいずれか一方または両方を区分することを特徴とする。
【００１２】
第２発明の制御装置によれば、干渉判定に要する演算量が第１所定値以下となるように、タスクを実行する一連の動作から第１または第２動作区分が区分される。そのため、タスクを実行する際の干渉判定に要する演算処理負荷を第１所定値以下とすることができ、処理負荷が増大することを抑制しつつ、ロボットに相互作用を伴うタスクを実行させることができる。
【００１６】
第３発明の制御装置は、第１または第２発明において、
前記行動計画手段は、前記第１動作区分と前記第２動作区分とのいずれか一方または両方における前記ロボットの時系列的な位置および姿勢を、前記第１対象物の形状に応じた回転と並進移動とのいずれか一方またはそれらの組み合わせを制約条件として生成することを特徴とする。
【００１７】
第３発明の制御装置によれば、第１または第２動作区分では、第１対象物の形状に応じた回転と並進移動を制約条件として、ロボットの時系列的な位置および姿勢が生成される。そのため、第１または第２動作区分では、ロボットの時系列的な位置および姿勢を容易に生成することができ、これらの区間での処理負荷が増大することを抑制しつつ、第１対象物に対する相互作用を伴うタスクをロボットに実行させることができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態のロボットの構成説明図。
【図２】ロボットの制御装置の構成説明図。
【図３】ロボットの制御装置における処理を示すフローチャート。
【図４】ロボットの制御装置における処理内容を示す説明図。
【図５】ロボットの制御装置における処理内容を示す説明図。
【発明を実施するための最良の形態】
【００１９】
次に、本発明のロボットの制御装置の実施形態について、図１〜図５を参照して説明する。
【００２０】
まず、図１に示すように、ロボットの制御装置は、自律移動ロボットＲ（以下、ロボットＲという）のコントローラ１００およびサポートサーバ２００により構成されている。
【００２１】
ロボットＲは、基体１０と、基体１０の上部に設けられた頭部１１と、基体１０の上部左右両側から延設された左右の腕部１２と、腕部１２の先端部に設けられた手部１４と、基体１０の下部から下方に延設された左右の脚部１３と、脚部１３の先端部に取り付けられている足部１５とを備えている。ロボットＲは、再表０３／０９０９７８号公報や、再表０３／０９０９７９号公報に開示されているように、アクチュエータ１０００（図３参照）から伝達される力によって、人間の肩関節、肘関節、手根関節、股関節、膝関節、足関節等の複数の関節に相当する複数の関節部分において腕部１２や脚部１３を屈伸運動させることができる。ロボットＲは、左右の脚部１３（または足部１５）のそれぞれの離床および着床の繰り返しを伴う動きによって自律的に移動することができる。基体１０の鉛直方向に対する傾斜角度と高さ方向を調整することによって、頭部１１の位置姿勢、
手部１４の到達可能な範囲すなわち作業の可能な範囲を調整され得る。なお、移動装置は複数の脚部１３の動作によって自律的に移動するロボットＲのほか、車輪式移動ロボット（自動車）等、移動機能を有するあらゆる装置であってもよい。
【００２２】
頭部１１には、左右に並んでロボットＲの前方に向けられた一対の頭カメラ（ＣＣＤカメラ）Ｃ1が搭載されている。基体１０には、ロボットＲの前側下部の検知領域Ａ（Ｃ2）に赤外レーザ光線（電磁波）を出力し、その反射光の入力に応じた信号を出力する腰カメラＣ2が搭載されている。腰カメラＣ2はロボットＲの前方下方にある物体の位置の測定、床面に付されているマークの形状および姿勢の認識に基づくロボットＲの方位または姿勢の測定、および、台車等の運搬対象物に付されているマークの形状または姿勢の認識結果に基づくこの運搬対象物の位置または姿勢の測定等に用いられる。
【００２３】
ロボットＲはハードウェアとしてのＥＣＵまたはコンピュータ（ＣＰＵ，ＲＯＭ，ＲＡＭ，Ｉ／Ｏ等により構成されている。）により構成されているコントローラ１００と、通信機器１４０（図２参照）とを備えている。コンピュータのメモリには制御プログラム（ソフトウェア）が格納されている。制御プログラムはＣＤやＤＶＤ等のソフトウェア記録媒体を通じてコンピュータにインストールされてもよいが、ロボットＲからサーバに要求信号が送信されたことに応じて当該サーバによってネットワークや人工衛星を介して当該コンピュータにダウンロードされてもよい。
【００２４】
図２に示すように、コントローラ１００は、入力装置１０１のほか、ロボットＲに搭載された頭カメラＣ１、腰カメラＣ２、肩カメラＣ３、ロータリエンコーダ１０２、ジャイロセンサ１０３、ＧＰＳ受信器１０４等の出力信号に基づき、アクチュエータ１０００の動作を制御することにより、腕部１２や脚部１３の動作を制御する。コントローラ１００は、サポートサーバ２００からロボットＲに対して送信された生成軌道にしたがって、このロボットＲの行動を制御する。
【００２５】
入力装置（ユーザ端末）１０１は、例えば、キーボードやタッチパネルなどの入力デバイスと、液晶ディスプレーなどのモニタを備えたパーソナルコンピュータからなる端末であって、コントローラ１００との間で通信可能に構成されている。入力装置１０１は、ユーザがこれを操作することにより、ロボットＲで実行可能なタスクを指定することができる。このように、入力装置１０１は、ロボットＲの起動・停止・タスク実行などをユーザが指示してロボットＲを遠隔操作するためのユーザインターフェースとして用いられると共に、頭カメラＣ１等の映像の表示などロボット自体の作動状況の監視に用いることもできる。
【００２６】
頭カメラＣ1、腰カメラＣ2等は、対象物や外界干渉物の挙動状態等、ロボットＲの外部状態または環境を測定するためのセンサに相当する。
【００２７】
ロータリエンコーダ１０２、ジャイロセンサ１０３、ＧＰＳ受信器１０４は、ロボットＲの内部状態または挙動状態を測定するためのセンサ等に相当し、これには、図示しないロボットＲに搭載されたバッテリの端子電圧を検出する電圧センサ、脚部１３に作用する床反力に応じた信号を出力する力センサ等、ロボットＲに搭載されている種々のセンサが内部状態センサ等が該当する。これらのセンサの検出値に基づいて、コントローラ１００は、ロボットＲの内部状態または挙動状態を認識する。
【００２８】
アクチュエータ１０００は電動モータ等の駆動源のほか、駆動源の出力軸と腕部１２や脚部１３を構成するリンクとの間に設けられた減速機や、弾性部材等の柔軟要素により構成されている。
【００２９】
さらに、コントローラ１００は、要求タスク生成部１１０と、画像処理部１２０と、将来外界予測部１３０と、通信機器１４０と、主制御部１５０とを備える。
【００３０】
要求タスク生成部１１０は、入力装置１０１によるユーザの操作を解釈する機能を有し、入力装置１０１を介してユーザによって指定された要求タスクを認識し、要求タスクを実行するために要求される要求軌道群を作成する。ここで、要求軌道群は、タスクをその実行段階に応じておおまかに分割した場合の各段階で要求される軌道の集合体を指す。そして、要求タスク生成部１１０は、生成した要求軌道群を将来外界予測部１３０およびサポートサーバ２００へ出力する。
【００３１】
画像処理部１２０は、ステレオ処理部１２１と、障害物検出部１２２と、対象物認識部１２３とを備え、カメラＣ１〜Ｃ３で撮影した画像を処理して、撮影された画像からロボットＲの周囲の状況を把握するため、周囲の障害物や対象物の認識を行う。
【００３２】
ステレオ処理部１２１は、左右の頭カメラＣ１，Ｃ１が撮影した２枚の画像の一方を基準としてパターンマッチングを行い、左右の画像中の対応する各画素の視差を計算して視差画像を生成し、生成した視差画像及び元の画像を障害物検出部１２２へ出力する。なお、この視差は、ロボットＲから撮影された物体までの距離を表すものである。
【００３３】
障害物検出部１２２は、ステレオ処理部１０１から出力されたデータに基づき、撮影した画像中の障害物を検出する。
【００３４】
対象物認識部１２３は、検出した障害物からタスクの実行の際に相互作用を伴う対象物の形状等を抽出して、その大きさ、形状等から対象物を認識する。
【００３５】
なお、障害物検出部１２２で検出された障害物の領域、大きさ、形状と、対象物認識部１２３で認識された対象物の領域、大きさ、形状とは、将来外界予測部１３０へ出力される。
【００３６】
将来外界予測部１３０は、要求タスク生成部１１０により生成された要求軌道群と、障害物検出部１２２および対象物認識部１２３で認識された現時点での障害物および対象物から、タスクの実行段階に応じた将来の障害物および対象物の位置等を推定する。
【００３７】
すなわち、将来外界予測部１３０は、現時点から、タスクをその実行段階に応じておおまかに分割した場合の第１段階で要求される軌道に従ってロボットＲを動作させた後の障害物および対象物の位置等を推定する。次に、この状態（第１段階の実行後）から、第２段階で要求される軌道に従ってロボットＲを動作さえた後の障害物および対象物の位置等を推定する。以下、この推定を繰り返すことで、要求タスク生成部１１０により生成された要求軌道群に従ってロボットを動作させた各段階での障害物および対象物の位置等を推定する。
【００３８】
主制御部１５０は、サポートサーバ２００からロボットＲに対して送信された生成軌道にしたがって、複数のアクチュエータ１０００を制御し、生成軌道にこのロボットＲの行動を追従させる。
【００３９】
サポートサーバ（ＣＰＵ，ＲＯＭ，ＲＡＭ，Ｉ／Ｏ等により構成されている。）２００は基地局（図示略）および通信網を介してロボットＲとの通信機能を有している。
【００４０】
サポートサーバ２００は、動作区分処理部２１０と、軌道探索管理部２２０と、干渉判定部２３０とを備える。
【００４１】
動作区分処理部２１０は、要求タスク生成部１１０により生成された要求軌道群の各実行段階における一連の動作をさらに次のように区分する。
【００４２】
各段階の一連の動作を、（１）ロボットＲまたはロボットＲと一体となった第２対象物Ｔ２が第１対象物Ｔ１に対して非接触状態から接触状態へ遷移する（例えば対象物を把持する）動作区分である第１動作区分Ｄ１と、（２）ロボットＲまたはロボットＲと一体となった第２対象物Ｔ２が第１対象物Ｔ１に対して接触状態から非接触状態へ遷移する（対象物を放す）動作区分である第２動作区分Ｄ２と、（３）第１動作区分Ｄ１と第２動作区分Ｄ２とのいずれか一方または両方に連続する動作区分である第３動作区間Ｄ３とに区分する。
【００４３】
軌道探索管理部２２０は、要求タスク生成部１１０により生成された要求軌道群の各実行段階における一連の動作の軌道探索を行い、初期姿勢探索部２２１と、終端姿勢探索部２２２と、中間姿勢探索部２２３とを備える。
【００４４】
初期姿勢探索部２２１は、動作区分処理部２１０により区分された第２動作区分Ｄ２についての軌道探索を行う。
【００４５】
終端姿勢探索部２２２は、動作区分処理部２１０により区分された第１動作区分Ｄ１についての軌道探索を行う。
【００４６】
中間姿勢探索部２２３は、動作区分処理部２１０により区分された第３動作区分Ｄ３についての軌道探索を行う。
【００４７】
なお、軌道探索管理部２２０による軌道探索については、後述する。
【００４８】
干渉判定部２３０は、（Ａ）画像処理部１２０の障害物検出部１２２で検出された障害物および対象物認識部１２３で認識された対象物と、（Ｂ）ロボットＲまたはロボットと一体となった対象物との干渉可能性の有無をチェックする。
【００４９】
次に、図３を参照して本実施形態のロボットＲの制御装置における処理内容を示す説明する。
【００５０】
まず、コントローラ１００は、ユーザからのタスク実行の要求があるか否か判定する（図３／ＳＴＥＰ１０）。そして、ユーザが、入力装置１０１を介してロボットＲの実行タスクを指定すると(図３／ＳＴＥＰ１０でＹＥＳ)、コントローラ１００の要求タスク生成部１１０が、要求軌道群を作成する（図３／ＳＴＥＰ２０）。なお、これと並行して主制御部１５０による処理（図３／ＳＴＥＰ３０〜）が実行されるが、主制御手段による処理内容については後述する。
【００５１】
ここで、ロボットＲの実行タスクとしては、例えば、図４に示すようにテーブルＷ１上のカップＷ２をトレイＷ３に移動するタスクが指定される。かかるタスクに対して、要求タスク生成部１１０が、タスクの実行段階を第１〜第３階段階に分割し、各段階で要求される要求軌道群を生成する（図３／ＳＴＥＰ２０）。なお、図４において、破線で示す矢印は、ロボットＲの手部１４の位置軌道の一部を示している。
【００５２】
ここで、第１〜第３段階は、軌道探索管理部２２０による処理単位を考慮した決定されるものである。すなわち、軌道探索管理部２２０では、第２動作区分Ｄ２（初期姿勢）から第３動作区分Ｄ３（中間姿勢）を経て第１動作区分Ｄ１（終端姿勢）へ至る一連の動作を処理単位としているため、要求タスク生成部１１０は、これを１つの段階として分割する。
【００５３】
また、要求軌道群は、後述する姿勢探索（図３／ＳＴＥＰ２４〜２６）を行う際の条件を各段階について規定したものである。すなわち、各段階について、ロボットＲの目標軌道（目標姿勢軌道および目標姿勢軌道）として要求される軌道探索条件を規定したものである。
【００５４】
次いで、将来外界予測部１３０が、要求タスク生成部１１０により生成された要求軌道群と、障害物検出部１２２および対象物認識部１２３で認識された現時点での障害物および対象物から、タスクの実行段階に応じた将来の障害物および対象物の位置等を推定した将来外界状況群を作成する（図３／ＳＴＥＰ２１）。
【００５５】
具体的に、将来外界予測部１３０は、図４に示す第１段階〜第３の各段階後のテーブルＷ１、カップＷ２、トレイＷ３の位置等の状況を推定した将来外界状況群を作成する。例えば、将来外界予測部１３０は、現在の状況からタスクを第２段階まで実行した後の状況（カップＷ２がトレイに移動された図４（ｆ）の状況）を推定等することができる。
【００５６】
次に、サポートサーバ２００は、コントローラ１００から、軌道生成要求があるか否かを判定する（図３／ＳＴＥＰ２２）。
【００５７】
軌道生成要求の有無は、要求タスク生成部１１０で作成された要求軌道群および将来外界予測部１３０で作成された将来外界状況群がサポートサーバ２００へ送信の有無によりは判定される。
【００５８】
そして、軌道生成要求がある場合には（図３／ＳＴＥＰ２２でＹＥＳ）、動作区分処理部２１０が、要求軌道群の各実行段階における一連の動作をその動作区分に応じて分割する（図３／ＳＴＥＰ２３）。一方、軌道生成要求がない場合には（図３／ＳＴＥＰ２２でＮＯ）、この処理を終了する。
【００５９】
具体的に、動作区分処理部２１０は、図４（ａ）および（ｂ）に示す第１段階では、まず、カップＷ２を第１対象物Ｔ１として、ロボットＲが第１対象物に対して非接触状態から接触状態に遷移する動作区分である第１動作区分Ｄ１を分割する（図４（ｂ）参照）。そして、動作区分処理部２１０は、第１段階で第１動作区分Ｄ１に連続する動作区分を第３動作区分Ｄ３とする（図４（ａ）参照）。  
【００６０】
ここで、図４（ｂ）に示す第１動作区分Ｄ１の始点は、第１対象物であるカップを把持する動作の初期姿勢および初期位置により規定される。例えば、基体１０を固定した状態で腕部１２および手部１４を動作させることにより第１対象物であるカップを把持することができる、ロボットＲの初期姿勢および初期位置が第１動作区分Ｄ１の始点となる。これは、第２動作区分Ｄ２の始点についても同様である。
【００６１】
次いで、動作区分処理部２１０は、図４（ｃ）〜（ｅ）に示す第２段階では、まず、カップＷ２をロボットＲと一体となったカップＷ２を第２対象物Ｔ２、テーブルＷ１を第１対象物Ｔ１として、ロボットＲおよびこれと一体となったカップＷ２（Ｔ２）が、テーブルＷ１（Ｔ１）に対して接触状態から非接触状態に遷移する動作区分である第２動作区分Ｄ２を分割する（図４（ｃ）参照）。さらに、カップＷ２をロボットＲと一体となったカップＷ２を第２対象物Ｔ２、トレイＷ３を第１対象物Ｔ１として、ロボットＲおよびこれと一体となったカップＷ２（Ｔ２）が、トレイＷ３（Ｔ１）に対して非接触状態から接触状態に遷移する動作区分である第１動作区分Ｄ１を分割する（図４（ｅ）参照）。そして、第２段階で第２動作区分Ｄ２および第１動作区分Ｄ１に連続する動作区分を第３動作区分Ｄ３とする（図４（ｄ）参照）。
【００６２】
同様に、動作区分処理部２１０は、図４（ｆ）に示す第３段階では、まず、カップＷ２を第１対象物Ｔ１として、ロボットＲが、カップＷ２（Ｔ１）に対して接触状態から非接触状態に遷移する動作区分である第２動作区分Ｄ２を分割する（図４（ｄ）参照）。そして、動作区分処理部２１０は、第３段階で第２動作区分Ｄ２に連続する動作区分（基本姿勢への復帰）を第３動作区分Ｄ３とする（図示省略）。
【００６３】
次に、軌道探索管理部２２０が、第１〜第３段階の各段階におけるロボットＲの軌道を探索して、タスクの各段階におけるロボットＲの時系列的な位置および姿勢を生成する（図３／ＳＴＥＰ２４〜２７）。
【００６４】
具体的には、第１〜第３段階の各段階について、初期姿勢探索部２２１が、第２動作区分Ｄ２についての軌道探索を行い（図３／ＳＴＥＰ２４）、終端姿勢探索部２２２が、第１動作区分Ｄ１についての軌道探索を行い（図３／ＳＴＥＰ２５）、中間姿勢探索部２２３が、第３動作区分Ｄ３についての軌道探索を行う（図３／ＳＴＥＰ２６）。
【００６５】
ここで、軌道探索管理部２２０による軌道探索は、要求タスク生成部１１０により生成された、タスクの各実行段階で要求される要求軌道を満たす軌道を探索する。具体的には、ロボットＲの各部位について、空間的な位置を代表する代表点の目標位置の時系列としての目標位置軌道と、目標姿勢の時系列としての目標姿勢軌道とを探索する。さらに、ロボットＲと第２対象物Ｔ２が一体となっている場合には、第２対象物の空間的な位置を代表する代表点の目標位置の時系列としての目標位置軌道と、目標姿勢の時系列としての目標姿勢軌道とを併せて探索する。
【００６６】
このとき、軌道探索管理部２２０は、図５に示すように、タスクにおいて相互作用を伴う第１対象物Ｔ１については、第１対象物Ｔ１の形状に応じた回転と並進移動とのいずれか一方または両方を制約条件として目標位置軌道および目標姿勢軌道を探索する。
【００６７】
具体的には、図５（ａ）に示すように、第１対象物Ｔ１の形状が円形である場合には、中心軸に対する回転を制約条件として、目標位置軌道および目標姿勢軌道を探索する。
【００６８】
一方、図５（ｂ）に示すように、第１対象物Ｔ１の形状が筒型である場合のように軸方向の位置依存がない場合には、その軸方向の並進移動（正確には、筒体の底面高さ位置と上面高さ位置との間での並進移動）を制約条件として、目標位置軌道および目標姿勢軌道を探索する。
【００６９】
なお、図５（ａ）および（ｂ）には、第１対象物Ｔ１の形状に応じて回転または並進移動を制約条件とする場合について説明したが、これに限定されるものではなく、回転と並進移動を任意に組み合わせて制約条件とすることができる。例えば、回転を制約条件とした後、並進移動を制約条件とし、再び回転を制約条件とする複数の回転と並進移動の組み合わせによる姿勢や、それらを時系列的に組み合わせた動作的な制約も採用し得る。
【００７０】
以上説明した軌道探索管理部２２０による軌道探索において、初期姿勢探索部２２１が行う第２動作区分Ｄ２についての軌道探索では、ロボットＲとロボットＲと一体となった第２対象物Ｔ２と、第１対象物Ｔ１との干渉判定が省略される。
【００７１】
例えば、図４（ｃ）に示す第２動作区分Ｄ２では、ロボットＲとロボットＲと一体となった第２対象物Ｔ２であるカップＷ２と、第１対象物Ｔ１であるテーブルＷ１との干渉判定部２３０による干渉判定が省略される。また、図４（ｆ）に示す第２動作区分Ｄ２では、ロボットＲと、第１対象物Ｔ１であるカップＷ２との干渉判定部２３０による干渉判定が省略される。
【００７２】
さらに、終端姿勢探索部２２２が行う第１動作区分Ｄ１についての軌道探索では、ロボットＲとロボットＲと一体となった第２対象物Ｔ２と、第１対象物Ｔ１との干渉判定が省略される。
【００７３】
例えば、図４（ａ）に示す第１動作区分Ｄ１では、ロボットＲと、第１対象物Ｔ１であるカップＷ２との干渉判定部２３０による干渉判定が省略される。また、図４（ｅ）に示す第１動作区分Ｄ１では、ロボットＲと一体となった第２対象物であるカップＷ２と、第１対象物Ｔ１であるトレイＷ３との干渉判定部２３０による干渉判定が省略される。
【００７４】
これにより、第１動作区分Ｄ１および第２動作区分Ｄ２では、タスクにおける相互作用を伴う第１対象物Ｔ１との間の干渉判定による演算処理負荷が増大することを抑制することができる。
【００７５】
また、第１動作区分Ｄ１および第２動作区分Ｄ２では、第１対象物Ｔ１は、ロボットＲまたはロボットＲと一体となった第２対象物Ｔ２と既に接触しているか、これから接触するものであるため、第１対象物Ｔ１との間の干渉判定を省略しても、第１対象物Ｔ１以外の他の物体との干渉を回避できれば、ロボットＲにタスクを実行させることができる。
【００７６】
一方、中間姿勢探索部２２３が行う第３動作区分Ｄ３についての軌道探索では、ロボットＲとロボットＲと一体となった第２対象物Ｔ２と、第１対象物Ｔ１を含めたすべての障害物との干渉判定が行われる。
【００７７】
これにより、第１および第２動作区分以外の第３動作区分Ｄ３では、第１対象物Ｔ１との間の干渉判定を実行することで、第１対象物Ｔ１を含めて他の障害物との干渉を回避しながら、タスクを実行する一連の動作を実現することができる。
【００７８】
次に、軌道探索管理部２２０は、初期姿勢探索部２２１による第２動作区分Ｄ２の目標軌道（目標位置軌道および目標姿勢軌道、以下同じ）と、終端姿勢探索部２２２による第１動作区分Ｄ１の目標軌道と、中間姿勢探索部２２３によるこれらの区分の間を繋ぐ第２動作区分Ｄ３の目標軌道との全て目標軌道が生成されたか否かを判定する（図３／ＳＴＥＰ２７）。
【００７９】
そして、全ての目標軌道が生成されている場合には（図３／ＳＴＥＰ２７でＹＥＳ）、軌道探索管理部２２０が生成された目標軌道を図示しないメモリ等に記録し（図３／ＳＴＥＰ２８）、ＳＴＥＰ２３へリターンする。これにより、次のタスクの実行段階について、ＳＴＥＰ２３以降の処理を繰り返し実行する。
【００８０】
一方、全ての目標軌道が生成されていない場合には（図３／ＳＴＥＰ２７でＮＯ）、ＳＴＥＰ２４へリターンして、再度、ＳＴＥＰ２４以降の処理を実行する。
【００８１】
以上が、要求タスクに応じて目標軌道を生成する一連の処理である。
【００８２】
次に、説明を後回しにした主制御部１５０による処理（図３／ＳＴＥＰ３０〜ＳＴＥＰ３３）を説明する。
【００８３】
なお、主制御部１５０によるＳＴＥＰ３０〜の処理が、ＳＴＥＰ２０〜の処理と同時並行的に実行されるのは、主制御部１５０は、目標軌道の生成タイミングに拠らず、ロボットＲにタスクを実行させるためである。すなわち、主制御部１５０は、ＳＴＥＰ２４〜２６により目標軌道が生成されたタイミングで目標軌道に追従するように、アクチュエータ１０００を制御するのではなく、ＳＴＥＰ２８でメモリ等に記録された目標軌道が蓄積されていれば、それを逐次処理する。これにより、目標軌道の生成タイミングに拠らず、ロボットＲにタスク実行を行わせることができ、ロボットＲの実行動作に連続性を持たせることができる。
【００８４】
まず、主制御部１５０は、要求タスク生成部１１０が作成した要求軌道群を取得する（図３／ＳＴＥＰ３０）。
【００８５】
次いで、主制御部１５０は、軌道追従要求があるか否かを判定する（図３／ＳＴＥＰ３１）。
【００８６】
そして、主制御部１５０は、軌道追従要求がない場合には（図３／ＳＴＥＰ３１でＮＯ）、この処理を終了し、軌道追従要求がある場合には（図３／ＳＴＥＰ３１でＹＥＳ）、軌道探索管理部２２０により軌道が生成されているか否かを判定する（図３／ＳＴＥＰ３２）。
【００８７】
そして、軌道探索管理部２２０により生成された目標軌道が図示しないメモリ等に記録されている場合には（図３／ＳＴＥＰ３２でＹＥＳ）、主制御部１５０は、ロボットＲのアクチュエータ１０００を制御することにより、生成された目標軌道にロボットＲを追従させる（図３／ＳＴＥＰ３３）。
【００８８】
さらに、主制御部１５０は、目標軌道にロボットＲが追従しているか否かを判定する（図３／ＳＴＥＰ３４）。
【００８９】
そして、ロボットＲが目標軌道に追従している場合には（図３／ＳＴＥＰ３４でＹＥＳ）、ＳＴＥＰ３１へリターンして、次の軌道追従要求があるか否かを判定する。一方、ロボットＲが目標軌道に追従していない場合には（図３／ＳＴＥＰ３４でＮＯ）、ロボットＲが目標軌道に追従するまでこの処理を繰り返す。
【００９０】
なお、この場合に、目標起動に第１対象物Ｔ１への押し付け動作がある場合には、ロボットＲの対象部位のアクチュエータ１０００を制御してロボットＲに押し付け動作を行わせる。
【００９１】
一方、（ＳＴＥＰ３２で）軌道探索管理部２２０により生成された目標軌道が図示しないメモリ等に記録されていない場合には（図３／ＳＴＥＰ３２でＮＯ）、一定時間待機し、軌道探索管理部２２０により軌道が生成されたタイミングで（図３／ＳＴＥＰ３５でＮＯ）、ＳＴＥＰ３３以降の処理を実行する。一方で、待機時間が経過してタイムアップした場合には（図３／ＳＴＥＰ３５でＹＥＳ）、目標軌道が存在しないか、すでに生成されたすべての目標軌道についてロボットＲの追従が完了したものとして、一連の処理を終了する。
【００９２】
以上が、本実施形態のロボットＲの制御装置における処理内容であり、上述したように、かかる制御装置によれば、処理負荷が増大することを抑制しつつ、相互作用を伴うタスクを、干渉を回避して確実に実行させることができる。
【００９３】
なお、上記実施形態では、第１動作区分Ｄ１および第２動作区分Ｄ２の始点は、その動作の初期姿勢および初期位置により予め規定されていたが、これに限定されるものではない。
【００９４】
例えば、干渉判定部２３０が行う干渉判定の演算量が第１所定値以下となるように、動作区分処理部２１０が、第１動作区分Ｄ１の始点および第２動作区分Ｄ２の始点とをその都度決定するようにしてもよい。
【００９５】
このとき、軌道探索管理部２２０は、第１動作区分Ｄ１および第２動作区分Ｄ２の予め規定された始点に基づいて、干渉判定に要する全演算量を推定した上で、その推定値が第１所定範囲以下となるように、第１動作区分Ｄ１および第２動作区分Ｄ２の始点を変更する。なお、変更される始点は、第１動作区分Ｄ１および第２動作区分Ｄ“の両方でもよいが、第２動作区分Ｄ２のみを変更することが好ましい。対象物に対して非接触状態となる第２動作区分Ｄ２は、接触状態へ遷移する第１動作区分Ｄ１に比して動作精度をある程度低下させることができるからである。
【００９６】
これにより、タスクを実行する際の干渉判定に要する演算処理負荷を第１所定値以下とすることができ、処理負荷が増大することを抑制しつつ、ロボットに相互作用を伴うタスクを実行させることができる。
【００９７】
また、タスクの各実行段階（第１〜第３動作区分のすべて）に対する第１動作区分Ｄ１と第２動作区分Ｄ２とのいずれか一方または両方の比率が所定の割合以上（第２所定値）となるように、動作区分処理部２１０が、第１動作区分Ｄ１の始点および第２動作区分Ｄ２の始点とをその都度決定するようにしてもよい。
【００９８】
これにより、第１または第２動作区分の割合を第２所定値以上にして、これらの区間での処理負荷が増大することを抑制しつつ、相互作用を伴うタスクをロボットＲに実行させることができる。
【００９９】
また、上記実施形態では、ロボットＲのコントローラ１００による処理負荷を軽減すべく、動作区分処理部２１０、軌道探索管理部２２０および干渉判定部２３０をサポートサーバ２００に設け、分散処理を行う構成について説明したが、これに限定されるものではない。すなわち、コントローラ１００の各処理部１１０〜１３０，１５０と、サポートサーバの各処理部２１０〜２３０の一部または全部をコントローラ１００に備え、残りの処理部をサポートサーバに備えるように構成してもよい。例えば、コントローラ１００にすべての処理部を設けて、サポートサーバ２００を備えない構成としてもよい。
【０１００】
さらに、上記実施形態では、情報端末である入力装置１０１によりタスクが指定される構成について説明したが、これに限定されるものではない。例えば、ロボットＲが備えマイクロフォン等によりユーザの指示を音声認識するように構成してもよい。
【符号の説明】
【０１０１】
Ｒ…ロボット、１００…コントローラ、１０１…入力装置、１１０…要求タスク生成部、１２０…画像処理部、１３０…将来外界予測部、１５０…主制御部、２００…サポートサーバ、２１０…動作区分処理部（動作区分手段）、２２０…軌道探索管理部（行動計画手段）、２２１…初期姿勢探索部、２２２…終端姿勢探索部、２２３…中間姿勢探索部、２３０…干渉判定部（干渉判定手段）、Ｄ１…第１動作区分、Ｄ２…第２動作区分、Ｄ３…第３動作区分、Ｔ１…第１対象物、Ｔ２…第２対象物、Ｗ１…テーブル、Ｗ２…カップ、Ｗ３…トレイ。
【図１】
0005539000.tif 000002
【図２】
0005539000.tif 000003
【図３】
0005539000.tif 000004
【図４】
0005539000.tif 000005
【図５】
0005539000.tif 000006