(57)【要約】【課題】ロボットを制御するために使用される物体に関する情報の効率化を図るロボット制御装置などを提供する。【解決手段】物体を定義する情報を含む第１情報と、前記物体に関するロボットの状態に応じて変化する第２情報と、に基づいて、前記ロボットを制御する、ロボット制御装置。【選択図】図１
2018015858.tif 000002
【特許請求の範囲】
【請求項１】
物体を定義する情報を含む第１情報と、前記物体に関するロボットの状態に応じて変化する第２情報と、に基づいて、前記ロボットを制御する、
ロボット制御装置。
【請求項２】
前記第１情報は、前記物体の把持に関する位置および姿勢のうちの一方または両方の情報を含む、
請求項１に記載のロボット制御装置。
【請求項３】
前記物体の把持に関する情報は、把持前の情報と、把持後の情報を含む、
請求項２に記載のロボット制御装置。
【請求項４】
前記第２情報は、前記物体の位置および姿勢のうちの一方または両方の情報を含む、
請求項１から請求項３のいずれか１項に記載のロボット制御装置。
【請求項５】
前記第１情報と前記第２情報の一方または両方は、前記物体が障害物であるか否かを示す情報を含む、
請求項１から請求項４のいずれか１項に記載のロボット制御装置。
【請求項６】
前記物体が障害物であるか否かを示す情報は、前記ロボットの可動箇所ごとに設定される、
請求項５に記載のロボット制御装置。
【請求項７】
前記第１情報を設定する情報を受け付ける、
請求項１から請求項６のいずれか１項に記載のロボット制御装置。
【請求項８】
前記第１情報と前記第２情報の一方または両方に基づく情報を表示する、
請求項１から請求項７のいずれか１項に記載のロボット制御装置。
【請求項９】
請求項１から請求項８のいずれか１項に記載のロボット制御装置により制御される、
ロボット。
【請求項１０】
請求項１から請求項８のいずれか１項に記載のロボット制御装置と、
前記ロボット制御装置により制御されるロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置、ロボットおよびロボットシステムに関する。
【背景技術】
【０００２】
双腕ロボットをはじめとする次世代のロボットでは、単純な繰り返し作業だけでなく、ビジョン（Ｖｉｓｉｏｎ）システム等で見つけられた特定の場所に存在していない物体を検出し、ロボットがその時々の環境に応じて障害物に衝突しないように自動的にマニピュレーターを適切に制御して作業を行うといった、より自律的な機能を備えることに対する要求が高まっている。
また、このような自動化において、組み立て作業などのように、より高度な作業をロボットにより行う場合には、作業の対象となる物体に対するエンドエフェクターの動作の指示を細かく指定する必要があり、このような作業の教示は大変難しい作業となる場合があった。
【０００３】
特許文献１に記載された把持機構の軌道生成装置などでは、複数の部品を順番に運搬する場合に、障害物となる部品の配置状況が変化する中で、障害物との衝突を回避しつつ各部品を運搬するハンドの軌跡を適切に算出することが図られている。特許文献１に係る技術では、部品に関して、障害物となる部品の情報、運搬対象となる部品に対する組み立て前のアプローチ位置および組み立て後のアプローチ位置などの情報が管理される（特許文献１参照。）。
【０００４】
しかしながら、特許文献１に係る技術では、組み立て作業に実際に必須とされるハンド（エンドエフェクター）の制御に関する管理情報が存在していないことから、別途、利用者が別の管理情報を定義して管理する必要がある場合があった。
また、双腕のマニピュレーターなどのように複数のマニピュレーターが同時に動作するときには、作業によっては、一方のマニピュレーターの作業対象となる物体（オブジェクト）が、他方のマニピュレーターにとって障害物となる場合と障害物とならない場合との２つの情報が管理されていないと適切な作業が行われない場合があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１００７８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のように、従来では、ロボットの動作に関する管理情報が不十分な場合があった。特に、複数のマニピュレーターが同時に動作する構成における管理情報が不十分な場合があった。
【課題を解決するための手段】
【０００７】
上記課題の少なくとも一つを解決するために本発明の一態様は、物体を定義する情報を含む第１情報と、前記物体に関するロボットの状態に応じて変化する第２情報と、に基づいて、前記ロボットを制御する、ロボット制御装置である。
この構成により、ロボット制御装置では、物体を定義する情報を含む第１情報と、物体に関するロボットの状態に応じて変化する第２情報と、に基づいて、ロボットを制御する。これにより、ロボット制御装置では、ロボットを制御するために使用される物体に関する情報の効率化を図ることができる。
【０００８】
また、本発明の一態様は、ロボット制御装置において、前記第１情報は、前記物体の把持に関する位置および姿勢のうちの一方または両方の情報を含む、構成が用いられてもよい。
この構成により、ロボット制御装置では、物体の把持に関する位置および姿勢のうちの一方または両方の情報を含む第１情報に基づいて、ロボットを制御する。これにより、ロボット制御装置では、ロボットにより行われる把持を制御するために使用される物体に関する情報の効率化を図ることができる。
【０００９】
また、本発明の一態様は、ロボット制御装置において、前記物体の把持に関する情報は、把持前の情報と、把持後の情報を含む、構成が用いられてもよい。
この構成により、ロボット制御装置では、物体の把持に関する把持前の情報と把持後の情報を含む第１情報に基づいて、ロボットを制御する。これにより、ロボット制御装置では、ロボットにより行われる把持を制御するために使用される物体に関する情報の効率化を図ることができる。
【００１０】
また、本発明の一態様は、ロボット制御装置において、前記第２情報は、前記物体の位置および姿勢のうちの一方または両方の情報を含む、構成が用いられてもよい。
この構成により、ロボット制御装置では、物体の位置および姿勢のうちの一方または両方の情報を含む第２情報に基づいて、ロボットを制御する。これにより、ロボット制御装置では、物体の位置および姿勢のうちの一方または両方の情報に基づいてロボットを制御するために使用される物体に関する情報の効率化を図ることができる。
【００１１】
また、本発明の一態様は、ロボット制御装置において、前記第１情報と前記第２情報の一方または両方は、前記物体が障害物であるか否かを示す情報を含む、構成が用いられてもよい。
この構成により、ロボット制御装置では、物体が障害物であるか否かを示す情報を含む情報に基づいて、ロボットを制御する。これにより、ロボット制御装置では、障害物である物体を回避する態様で、ロボットを制御することができる。
【００１２】
また、本発明の一態様は、ロボット制御装置において、前記物体が障害物であるか否かを示す情報は、前記ロボットの可動箇所ごとに設定される、構成が用いられてもよい。
この構成により、ロボット制御装置では、ロボットの可動箇所ごとに物体が障害物であるか否かを示す情報を含む情報に基づいて、ロボットを制御する。これにより、ロボット制御装置では、ロボットの可動箇所ごとに障害物である物体を回避する態様で、ロボットを制御することができる。
【００１３】
また、本発明の一態様は、ロボット制御装置において、前記第１情報を設定する情報を受け付ける、構成が用いられてもよい。
この構成により、ロボット制御装置では、第１情報を設定する情報を受け付ける。これにより、ロボット制御装置では、ロボットを制御するために使用される物体に関する情報をユーザーなどから受け付けることができる。
【００１４】
また、本発明の一態様は、ロボット制御装置において、前記第１情報と前記第２情報の一方または両方に基づく情報を表示する、構成が用いられてもよい。
この構成により、ロボット制御装置では、第１情報と第２情報の一方または両方に基づく情報を表示する。これにより、ロボット制御装置では、ロボットを制御するために使用される物体に関する情報に基づく情報を、ユーザに対して可視的に提供することができる。
【００１５】
上記課題の少なくとも一つを解決するために本発明の一態様は、以上のようなロボット制御装置により制御される、ロボットである。
この構成により、ロボットでは、物体を定義する情報を含む第１情報と、物体に関するロボットの状態に応じて変化する第２情報と、に基づいて、制御される。これにより、ロボットでは、ロボットを制御するために使用される物体に関する情報の効率化を図ることができる。
【００１６】
上記課題の少なくとも一つを解決するために本発明の一態様は、以上のようなロボット制御装置と、前記ロボット制御装置により制御されるロボットと、を備えるロボットシステムである。
この構成により、ロボットシステムでは、ロボット制御装置は、物体を定義する情報を含む第１情報と、物体に関するロボットの状態に応じて変化する第２情報と、に基づいて、ロボットを制御する。これにより、ロボットシステムでは、ロボットを制御するために使用される物体に関する情報の効率化を図ることができる。
【００１７】
以上のように、本発明に係るロボット制御装置、ロボットおよびロボットシステムによれば、物体を定義する情報を含む第１情報と、物体に関するロボットの状態に応じて変化する第２情報と、に基づいて、ロボットを制御する。これにより、本発明に係るロボット制御装置、ロボットおよびロボットシステムでは、ロボットを制御するために使用される物体に関する情報の効率化を図ることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態（第１実施形態）に係るロボットシステムの概略的な構成例を示す図である。
【図２】本発明の一実施形態（第１実施形態）に係るロボット制御装置の概略的な構成例を示すブロック図である。
【図３】本発明の一実施形態（第１実施形態）に係るロボット制御装置のハードウェア構成の概略の一例を示す図である。
【図４】本発明の一実施形態（第１実施形態）に係るロボット制御装置のハードウェア構成の概略の一例を示す図である。
【図５】本発明の一実施形態（第１実施形態）に係るロボット制御装置により位置指令の制御を行うイメージを示す図である。
【図６】本発明の一実施形態（第１実施形態）に係るロボット制御装置により位置指令および力覚値の制御を行うイメージを示す図である。
【図７】本発明の一実施形態（第１実施形態）に係るロボット制御装置によりビジュアルサーボの制御を行うイメージを示す図である。
【図８】本発明の一実施形態（第１実施形態）に係る定義オブジェクト管理テーブルの一例を示す図である。
【図９】本発明の一実施形態（第１実施形態）に係る把持関連情報管理テーブルの一例を示す図である。
【図１０】本発明の一実施形態（第１実施形態）に係るオブジェクト管理テーブルの一例を示す図である。
【図１１】本発明の一実施形態（第１実施形態）に係る把持状態情報管理テーブルの一例を示す図である。
【図１２】本発明の一実施形態（第１実施形態）に係るオブジェクトの把持位置の例を示す図である。
【図１３】本発明の一実施形態（第１実施形態）に係るオブジェクトに対する把持のイメージ（第１把持位置の把持前）の例を示す図である。
【図１４】本発明の一実施形態（第１実施形態）に係るオブジェクトに対する把持のイメージ（第１把持位置の把持後）の例を示す図である。
【図１５】本発明の一実施形態（第１実施形態）に係るオブジェクトに対する把持のイメージ（第２把持位置の把持前）の例を示す図である。
【図１６】本発明の一実施形態（第１実施形態）に係るオブジェクトに対する把持のイメージ（第２把持位置の把持後）の例を示す図である。
【図１７】本発明の一実施形態（第１実施形態）に係る双腕のロボットにより行われる作業の一例を示す図である。
【図１８】本発明の一実施形態（第２実施形態）に係るロボットシステムの概略的な構成例を示す図である。
【発明を実施するための形態】
【００１９】
本発明の実施形態について図面を参照して詳細に説明する。
（第１実施形態）
【００２０】
［ロボットシステム］
図１は、本発明の一実施形態（第１実施形態）に係るロボットシステム１の概略的な構成例を示す図である。
ロボットシステム１は、双腕のロボット１１と、作業台８１と、対象物９１を備える。
なお、作業台８１と対象物９１のうちの一方または両方は、ロボットシステム１に備えられていない（つまり、ロボットシステム１以外のものである）と捉えることも可能である。
また、ロボットシステム１は、例えば、外部のカメラ（図示せず）を備えてもよい。
【００２１】
［双腕のロボット］
ロボット１１は、上部にある頭部と、中央部にある胴体部と、下部にある台部（台の部分）と、胴体部に設けられた腕部を備える。
ロボット１１は、腕部として２本の腕を有する双碗のロボットである。
【００２２】
ロボット１１は、一方の腕側の構成として、第１のマニピュレーターＭ１と、第１の力覚センサー４１−１と、第１のエンドエフェクターＥ１を備える。これらは一体化され、本実施形態では、第１のマニピュレーターＭ１と第１のエンドエフェクターＥ１との間に第１の力覚センサー４１−１を備える。
ロボット１１は、他方の腕側の構成として、第２のマニピュレーターＭ２と、第２の力覚センサー４１−２と、第２のエンドエフェクターＥ２を備える。これらは一体化され、本実施形態では、第２のマニピュレーターＭ２と第２のエンドエフェクターＥ２との間に第２の力覚センサー４１−２を備える。
【００２３】
本実施形態では、一方の腕側の構成（エンドエフェクターＥ１が取り付けられたマニピュレーターＭ１）により７軸の自由度の動作を行うことが可能であり、他方の腕側の構成（エンドエフェクターＥ２が取り付けられたマニピュレーターＭ２）により７軸の自由度の動作を行うことが可能であるが、他の構成例として、６軸以下または８軸以上の自由度の動作を行う構成が用いられてもよい。
ここで、マニピュレーターＭ１、Ｍ２は、７軸の自由度で動作する場合、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増えることによって、例えば、動作が滑らかになり、当該マニピュレーターＭ１、Ｍ２の周辺に存在する物体との干渉を容易に回避することができる。また、マニピュレーターＭ１、Ｍ２が７軸の自由度で動作する場合、当該マニピュレーターＭ１、Ｍ２の制御は、マニピュレーターＭ１、Ｍ２が８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。このような理由から、本実施形態では、好ましい一例として、７軸の自由度で動作するマニピュレーターＭ１、Ｍ２が用いられている。
また、本実施形態では、胴体部は、腰の部分で、１軸（腰のところの軸）の自由度で回転することが可能な構成である。
【００２４】
また、ロボット１１は、頭部の左右のそれぞれに設けられた２個のカメラ（第１のカメラ２１−１、第２のカメラ２１−２）と、第１のマニピュレーターＭ１の所定部位に設けられたカメラ（第３のカメラ３１−１）と、第２のマニピュレーターＭ２の所定部位に設けられたカメラ（第４のカメラ３１−２）を備える。
それぞれのカメラ（第１のカメラ２１−１、第２のカメラ２１−２、第３のカメラ３１−１、第４のカメラ３１−２）は、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）あるいはＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）等を用いたカメラである。
第１のカメラ２１−１および第２のカメラ２１−２は、それぞれ、頭部の動きに応じて動かされる。
第３のカメラ３１−１および第４のカメラ３１−２は、それぞれ、第１のマニピュレーターＭ１および第２のマニピュレーターＭ２のそれぞれの動きに応じて動かされる。
【００２５】
また、ロボット１１は、ロボット制御装置６１を備える。本実施形態では、ロボット１１は、台部の内部にロボット制御装置６１を備える。
ロボット制御装置６１は、ロボット１１の動作を制御する。ロボット制御装置６１は、例えば、第１のマニピュレーターＭ１および第２のマニピュレーターＭ２の動作を制御する。さらに、ロボット１１の腰などの部分の動作が可能な構成では、ロボット制御装置６１は当該腰などの部分の動作を制御する。
本実施形態では、第１のカメラ２１−１、第２のカメラ２１−２、第３のカメラ３１−１および第４のカメラ３１−２のそれぞれは、画像を撮像して、撮像された画像の情報をロボット制御装置６１に送信（出力）する。また、第１の力覚センサー４１−１および第２の力覚センサー４１−２のそれぞれは、第１のエンドエフェクターＥ１および第２のエンドエフェクターＥ２のそれぞれに作用する力およびモーメントのうちの一方または両方を検出して、検出結果の情報をロボット制御装置６１に送信（出力）する。ロボット制御装置６１は、これらの情報を受信（入力）し、受信された情報を、ロボット１１の動作を制御する際に、使用することが可能である。
ここで、第１のカメラ２１−１、第２のカメラ２１−２、第３のカメラ３１−１、第４のカメラ３１−２、第１の力覚センサー４１−１および第２の力覚センサー４１−２のそれぞれとロボット制御装置６１とは有線のケーブル（回線）を介して接続されており、当該回線を介して情報を通信することが可能である。なお、有線のケーブルの代わりに、無線の回線が用いられてもよい。
【００２６】
本実施形態では、第１のマニピュレーターＭ１の位置および姿勢、第２のマニピュレーターＭ２の位置および姿勢、および各カメラ（第１のカメラ２１−１、第２のカメラ２１−２、第３のカメラ３１−１、第４のカメラ３１−２）により撮像される画像について、座標系のキャリブレーションが行われている。
【００２７】
本実施形態では、ロボット制御装置６１は、あらかじめ設定された動作制御プログラムにしたがって、ロボット１１の動作を制御する。ロボット制御装置６１は、ロボット１１の動作を実現するために必要な各種の情報を、ロボット１１（本体）に対して教示する。
具体例として、ロボット制御装置６１は、各マニピュレーター（第１のマニピュレーターＭ１および第２のマニピュレーターＭ２）の動作を制御することで、各エンドエフェクター（第１のエンドエフェクターＥ１および第２のエンドエフェクターＥ２）により物体を把持すること、各エンドエフェクターにより把持された物体を移動させること、各エンドエフェクターにより把持された物体を所定位置に載置して離す（把持を解除する）こと、各エンドエフェクターにより把持された物体を加工（例えば、穴開けなど）すること、などが可能である。
本実施形態では、それぞれのエンドエフェクターＥ１、Ｅ２は、掌５１−１、５１−２および爪（指）５２−１、５２−２を備える。
【００２８】
［ロボット制御装置］
図２は、本発明の一実施形態（第１実施形態）に係るロボット制御装置６１の概略的な構成例を示すブロック図である。
ロボット制御装置６１は、入力部１１１と、出力部１１２と、記憶部１１３と、制御部１１４を備える。制御部１１４は、情報取得部１３１と、制御態様決定部１３２と、ロボット制御部１３３を備える。
【００２９】
入力部１１１は、外部から情報を入力する。一例として、入力部１１１は、力覚センサー４１−１〜４１−２およびカメラ２１−１〜２１−２、３１−１〜３１−２のそれぞれから送信される情報を入力する。他の例として、入力部１１１は、キーボードあるいはマウスなどの操作部を備え、当該操作部に対してユーザー（人）により行われる操作の内容に応じた情報を入力してもよい。
本実施形態では、入力部１１１は、ケーブル（図示せず）を介して力覚センサー４１−１、４１−２と通信し、ケーブル（図示せず）を介してカメラ２１−１〜２１−２、３１−１〜３１−２と通信する。
【００３０】
出力部１１２は、外部に情報を出力する。一例として、出力部１１２は、力覚センサー４１−１〜４１−２およびカメラ２１−１〜２１−２、３１−１〜３１−２のそれぞれに対して情報を出力（送信）する。他の例として、出力部１１２は、表示部により情報を表示出力してもよい。当該表示部は、例えば、画面を有するディスプレイ装置であり、当該画面に情報を表示出力する。当該表示部は、ロボット制御装置６１の外部に設けられてもよく、あるいは、ロボット制御装置６１の内部に設けられてもよい。他の例として、出力部１１２は、他の態様で情報を出力してもよく、例えば、音（音声を含む。）により情報を出力してもよい。
本実施形態では、出力部１１２は、ケーブル（図示せず）を介して力覚センサー４１−１〜４１−２と通信し、ケーブル（図示せず）を介してカメラ２１−１〜２１−２、３１−１〜３１−２と通信する。
【００３１】
記憶部１１３は、情報を記憶する。一例として、記憶部１１３は、ロボット制御部１３３により使用される制御プログラムおよび各種のパラメーターの情報を記憶する。他の例として、記憶部１１３は、任意の情報を記憶してもよく、例えば、ロボット１１を制御する際に使用される画像などの情報を記憶してもよい。
【００３２】
ロボット制御部１３３は、ロボット制御装置６１において各種の制御を行う。制御部１１４は、例えば、記憶部１１３に記憶された制御プログラムおよび各種のパラメーターの情報に基づいて、各種の制御を行う。
情報取得部１３１は、入力部１１１により入力される情報を取得する。
制御態様決定部１３２は、情報取得部１３１により取得された情報に基づいて、ロボット１１を制御する態様（制御態様）を決定する。
ロボット制御部１３３は、ロボット１１の動作を制御する。本実施形態では、ロボット制御部１３３は、制御態様決定部１３２により決定された制御態様で、ロボット１１の動作を制御する。具体的には、ロボット制御部１３３は、ケーブル（図示せず）を介してマニピュレーターＭ１、Ｍ２（例えば、各関節のアクチュエーター）と通信することで、当該マニピュレーターＭ１、Ｍ２の動作を制御する。また、ロボット制御部１３３は、ケーブル（図示せず）を介してエンドエフェクターＥ１、Ｅ２と通信することで、当該エンドエフェクターＥ１、Ｅ２の動作を制御する。
【００３３】
［ロボット制御装置のハードウェア構成］
図３は、本発明の一実施形態（第１実施形態）に係るロボット制御装置６１のハードウェア構成の概略の一例を示す図である。
図３には、ロボット制御装置６１の構成部として、ＣＰＵボード２１１と、サーボボード２１２と、制御ボード２１３と、制御ボード２１４を示してある。
また、図３には、ロボット制御装置６１の外部の構成部として、２個のグローバルカメラ２４１、２４２と、２個のビジュアルサーボ（Ｖｉｓｕａｌ  Ｓｅｒｖｏ）カメラ２４３、２４４と、２個のアーム（マニピュレーター）２３１、２３２と、２個のハンド２３３、２３４を示してある。
【００３４】
それぞれの制御ボード２１３、２１４は、ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）およびＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を用いて構成されている。
それぞれの制御ボード２１３、２１４は、ジャイロ２７１、２８１、ハンドカメラ２７２、２８２、力覚センサー２７３、２８３に関する制御を行い、これらの検出値の情報を受信する。
【００３５】
ここで、図３の例における２個のグローバルカメラ２４１、２４２、２個のアーム２３１、２３２、２個のハンド２３３、２３４は、それぞれ、図１に示されるロボット１１の頭部の２個のカメラ（第１のカメラ２１−１、第２のカメラ２１−２）、当該ロボット１１の２個のマニピュレーターＭ１、Ｍ２、当該ロボット１１の２個のエンドエフェクターＥ１、Ｅ２に相当する。
また、図３の例における２個のビジュアルサーボカメラ２４３、２４４は、ロボット１１の外部に設けられたカメラ（図１では図示せず）である。
また、図３の例における２個のハンドカメラ２７２、２８２、２個の力覚センサー２７３、２８３は、それぞれ、図１に示されるロボット１１のマニピュレーターＭ１、Ｍ２に設けられた２個のカメラ３１−１、３１−２、当該ロボット１１の２個の力覚センサー４１−１、４１−２に相当する。
【００３６】
ＣＰＵボード２１１は、概略的に、ビジョン処理部２５１と、モーション処理部２５２を備える。
本実施形態では、ビジョン処理部２５１により行われる処理の方が、モーション処理部２５２により行われる処理と比べて、優先度が低い。つまり、モーション処理部２５２により行われる処理の方が、優先度が高い。
【００３７】
ＣＰＵボード２１１は、それぞれのグローバルカメラ２４１、２４２との間で通信し、例えば、それぞれのグローバルカメラ２４１、２４２により撮像された画像の情報を受信する。この通信は、任意の手法で行われてもよく、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）の規格を用いて行われてもよい。
ＣＰＵボード２１１は、それぞれのビジュアルサーボカメラ２４３、２４４との間で通信し、例えば、それぞれのビジュアルサーボカメラ２４３、２４４により撮像された画像の情報を受信する。この通信は、任意の手法で行われてもよく、例えば、１ギガビット／秒のイーサネット（登録商標）であるＧｂＥの規格を用いて行われてもよい。
ＣＰＵボード２１１は、それぞれの制御ボード２１３、２１４との間で通信し、例えば、それぞれのジャイロ２７１、２８１の検出値の情報、それぞれのハンドカメラ２７２、２８２により撮像された画像の情報、それぞれの力覚センサー２７３、２８３の検出値の情報を受信する。この通信は、任意の手法で行われてもよく、例えば、ＧｂＥの規格を用いて行われてもよい。
【００３８】
サーボボード２１２は、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）２６１と、ＦＰＧＡ２６２を用いて構成されている。ＳｏＣ２６１とＦＰＧＡ２６２とは、バスを介して、通信可能に接続されている。
ＣＰＵボード２１１とサーボボード２１２（本実施形態では、ＳｏＣ２６１）との通信は、任意の手法で行われてもよく、例えば、超高速フィールドネットワークシステム（ＥｔｈｅｒＣＡＴ）を用いて行われる。
【００３９】
サーボボード２１２では、ＦＰＧＡ２６２がそれぞれの制御ボード２１３、２１４およびそれぞれのアーム２３１、２３２と通信し、それぞれのジャイロ２７１、２８１、それぞれのハンドカメラ２７２、２８２、それぞれの力覚センサー２７３、２８３、それぞれのハンド２３３、２３４を制御する。この通信は、任意の手法を用いて行われてもよい。
【００４０】
図４は、本発明の一実施形態（第１実施形態）に係るロボット制御装置のハードウェア構成の概略の一例を示す図である。
図４には、ＣＰＵボード２１１について、詳しい構成例を示してある。
ＣＰＵボード２１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１と、メモリー３１２と、チップセット（Ｃｈｉｐｓｅｔ）３１３と、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１４と、コントローラー３１５（例えば、ネットワークコントローラー）と、コントローラー３１６を備える。
【００４１】
ここで、ＣＰＵ３１１とメモリー３１２とが通信可能に接続されており、ＣＰＵ３１１とチップセット３１３とが通信可能に接続されており、チップセット３１３とＧＰＵ３１４とが通信可能に接続されており、チップセット３１３とコントローラー３１５とが通信可能に接続されており、チップセット３１３とコントローラー３１６とが通信可能に接続されている。
【００４２】
メモリー３１２は、例えば、ＤＤＲ４  ＳＤＲＡＭ（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ４  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含む。
ＧＰＵ３１４は、画像の処理を行い、例えば、衝突を確認する処理、あるいは、３次元の物体を認識する処理などを行ってもよい。ＧＰＵ３１４は、例えば、ＣＰＵ３１１から送信（転送）された画像の情報を処理し、その処理の結果の情報をＣＰＵ３１１に送信する。
コントローラー３１５は、サーボボード２１２との間で通信する。
【００４３】
コントローラー３１６は、様々な処理部（処理部群３５１に含まれる処理部）との間で通信する。図４の例では、処理部群３５１には、２個のハンドカメラ、２個のビジュアルサーボカメラ、２個のグローバルカメラ、コンソール（Ｃｏｎｓｏｌｅ）、ネットワーク（Ｎｅｔｗｏｒｋ）、教示を行うパーソナルコンピューター（ＰＣ）である教示ＰＣといった処理部が含まれている。
【００４４】
ここで、図４の例における２個のハンドカメラは、図１に示される２個のハンドカメラ２７２、２８２に相当する。
また、図４の例における２個のビジュアルサーボカメラは、図１に示される２個のビジュアルサーボカメラ２４３、２４４に相当する。
また、図４の例における２個のグローバルカメラは、それぞれ、図１に示されるロボット１１の頭部のカメラ２１−１、２１−２として使用することが可能である。
【００４５】
［ロボット制御装置による制御のイメージ］
＜位置指令の制御＞
図５は、本発明の一実施形態（第１実施形態）に係るロボット制御装置６１により位置指令（のみ）の制御を行うイメージを示す図である。
図５には、ＣＰＵ３１１およびＧＰＵ３１４により行われる処理のタイミングのイメージを示してある。
図５には、１ｍｓごとのタイミングを示してある。図５の例では、７ｍｓ分のタイミング群Ｔ１と、それに続く４ｍｓ分のタイミング群Ｔ２と、それに続く１１ｍｓ分のタイミング群Ｔ３を示してある。
【００４６】
タイミング群Ｔ１は、ロボット制御装置６１がロボット１１に対して、位置の停止を指令する位置指令を送信する期間である。
タイミング群Ｔ２は、ロボット制御装置６１がロボット１１に対して、位置の移動を指令する位置指令を送信する期間である。
タイミング群Ｔ３は、ロボット制御装置６１がロボット１１に対して、位置の停止を指令する位置指令を送信する期間である。
なお、位置の停止または移動は、例えば、ロボット１１の両腕のマニピュレーターＭ１、Ｍ２およびエンドエフェクターＥ１、Ｅ２のうちの１以上の停止または移動である。
また、位置指令は、例えば、一定の時間間隔で送信される。
ロボット制御装置６１では、これらの処理と並列的に以下の処理を行う。
【００４７】
ＣＰＵ３１１は、タイミングＴ１の初期付近における３ｍｓ程度の間、経路計画Ｔ１１の処理を実行する。経路計画Ｔ１１の処理は、ロボット１１の動作の経路を計画する処理である。ロボット１１の動作の経路としては、例えば、ロボット１１のエンドエフェクター（図１の例では、エンドエフェクターＥ１、Ｅ２）に設定されたＴＣＰ（Ｔｏｏｌ  Ｃｅｎｔｅｒ  Ｐｏｉｎｔ）の位置の経路などが用いられてもよい。なお、一般に、経路計画は、空間的軌跡の計画である。
ＣＰＵ３１１は、経路計画Ｔ１１の処理の後に、２ｍｓ程度の間、軌道計画Ｔ１２の処理を実行する。なお、一般に、軌道計画は、時間的空間的軌跡の計画である。
【００４８】
ＣＰＵ３１１は、軌道計画Ｔ１２の処理の後に、１ｍｓ程度あけてから、ロボット１１に対する位置の指令（位置指令）を計算する処理（位置指令計算Ｔ１３の処理）を開始する。ＣＰＵ３１１は、当該位置指令計算Ｔ１３の処理を、１ｍｓ程度ごとに、４回のタイミングＴ１３−１〜Ｔ１３−４で実行する。ＣＰＵ３１１は、当該位置指令計算Ｔ１３の処理により得られた位置指令（移動指令）を、タイミング群Ｔ２の期間に、送信する。
その後、ＣＰＵ３１１は、１ｍｓ程度の後、ロボット１１の位置の移動を終了する処理（位置移動終了Ｔ１４の処理）を実行する。当該位置移動終了Ｔ１４の処理は、例えば、ロボット１１の動作を減速させて停止させる処理であり、図５の例では、２ｍｓ程度かかっている。ＣＰＵ３１１は、位置指令（停止指令）を、タイミング群Ｔ３の期間に、送信する。
また、ロボット制御装置６１では、これらの処理と並列的に以下の処理を行う。
【００４９】
ＧＰＵ３１４は、ＣＰＵ３１１により制御されて、画像処理を実行する。
図５の例では、ＧＰＵ３１４は、ＣＰＵ３１１により経路計画Ｔ１１の処理が実行される間、２ｍｓ程度の間、衝突確認Ｔ２１の処理を実行する。当該衝突確認Ｔ２１の処理は、ロボット１１が障害物と衝突しないことを確認する処理である。そして、ＧＰＵ３１４は、衝突確認Ｔ２１の処理の結果の情報をＣＰＵ３１１に送信（通知）する。
【００５０】
＜位置指令および力覚値の制御＞
図６は、本発明の一実施形態（第１実施形態）に係るロボット制御装置６１により位置指令および力覚値の制御を行うイメージを示す図である。
図６には、１ｍｓごとのタイミングの群であるタイミング群Ｔ１０１、Ｔ１０２、Ｔ１０３を示してある。ここで、タイミング群Ｔ１０１、Ｔ１０２、Ｔ１０３のそれぞれは、図５の例におけるタイミング群Ｔ１、Ｔ２、Ｔ３のそれぞれと同じである。
【００５１】
また、図６には、ＣＰＵ３１１により行われる処理として、経路計画Ｔ１１１の処理と、軌道計画Ｔ１１２の処理と、位置指令計算と力覚計算との合成Ｔ１１３の処理と、位置移動終了Ｔ１１４の処理を示してある。ここで、経路計画Ｔ１１１の処理と、軌道計画Ｔ１１２の処理と、位置指令計算と力覚計算との合成Ｔ１１３の処理と、位置移動終了Ｔ１１４の処理のそれぞれのタイミングは、図５の例における経路計画Ｔ１１の処理と、軌道計画Ｔ１２の処理と、位置指令計算Ｔ１３の処理と、位置移動終了Ｔ１４の処理のそれぞれのタイミングと同じである。
【００５２】
また、図６の例における経路計画Ｔ１１１の処理と、軌道計画Ｔ１１２の処理と、位置移動終了Ｔ１１４の処理のそれぞれは、図５の例における経路計画Ｔ１１の処理と、軌道計画Ｔ１２の処理と、位置移動終了Ｔ１４の処理のそれぞれと同じである。
図６の例では、図５の例と比べて、図５の例における位置指令計算Ｔ１３の処理の代わりに、ＣＰＵ３１１は位置指令計算と力覚計算との合成Ｔ１１３の処理を実行する。位置指令計算と力覚計算との合成Ｔ１１３の処理は、位置指令計算の結果と、力覚センサー（本実施形態では、２個の力覚センサー４１−１、４１−２のうちの一方または両方）の検出値に基づく計算（力覚制御）の結果とを合成した結果（ここでは、両方を考慮した結果）である移動指令を計算する処理である。ＣＰＵ３１１は、位置指令計算と力覚計算との合成Ｔ１１３の処理を、１ｍｓごとに、４回のタイミングＴ１１３−１〜Ｔ１１３−４で実行する。
【００５３】
また、図６には、ＣＰＵ３１１により行われる処理として、衝突確認Ｔ１２１の処理を示してある。ここで、衝突確認Ｔ１２１の処理のタイミングは、図５の例における衝突確認Ｔ２１の処理のタイミングと同じである。
また、図６の例における衝突確認Ｔ１２１の処理は、図５の例における衝突確認Ｔ２１の処理と同じである。
【００５４】
＜ビジュアルサーボの制御＞
図７は、本発明の一実施形態（第１実施形態）に係るロボット制御装置６１によりビジュアルサーボの制御を行うイメージを示す図である。
図７には、ＣＰＵ３１１およびＧＰＵ３１４により行われる処理のタイミングのイメージを示してある。
図７には、１ｍｓごとのタイミングを示してある。図７の例では、９ｍｓ分のタイミング群Ｔ２０１と、それに続く１３ｍｓ分のタイミング群Ｔ２０２と、それに続く３ｍｓ分のタイミング群Ｔ２０３を示してある。
【００５５】
タイミング群Ｔ２０１は、ロボット制御装置６１がロボット１１に対して、位置の停止を指令する位置指令を送信する期間である。
タイミング群Ｔ２０２は、ロボット制御装置６１がロボット１１に対して、位置の移動を指令する位置指令を送信する期間である。
タイミング群Ｔ２０３は、ロボット制御装置６１がロボット１１に対して、位置の停止を指令する位置指令を送信する期間である。
なお、位置の停止または移動は、例えば、ロボット１１の両腕のマニピュレーターＭ１、Ｍ２およびエンドエフェクターＥ１、Ｅ２のうちの１以上の停止または移動である。
また、位置指令は、例えば、一定の時間間隔で送信される。
ロボット制御装置６１では、これらの処理と並列的に以下の処理を行う。
【００５６】
ＣＰＵ３１１は、タイミングＴ２０１の初期付近における２ｍｓ程度の間、物体認識準備Ｔ２１１の処理を実行する。物体認識準備Ｔ２１１は、カメラ（任意のカメラでもよい。）により撮像された画像の情報に基づいて物体を認識するための準備である。なお、図７の例では、物体認識の処理は、ＧＰＵ３１４により行われる。
ＣＰＵ３１１は、物体認識準備Ｔ２１１の処理の後に、２ｍｓ程度の間、撮像Ｔ２１２の処理を実行する。撮像Ｔ２１２の処理は、カメラ（物体認識に使用するカメラ）により画像を撮像するように制御を行う処理である。
【００５７】
ＣＰＵ３１１は、撮像Ｔ２１２の処理の後に、２ｍｓ程度あけてから、０．５ｍｓ程度の目標位置計算Ｔ２１３の処理と、それに続く２ｍｓ程度の撮像Ｔ２１４の処理を実行する。目標位置計算Ｔ２１３の処理は、ロボット１１の所定箇所（例えば、ＴＣＰ）を移動させる目標となる位置を計算する処理である。その後、同様なタイミングで、目標位置計算Ｔ２１５、Ｔ２１７の処理と撮像Ｔ２１６、Ｔ２１８の処理を繰り返して実行する。
目標位置計算Ｔ２１９の処理において、ＣＰＵ３１１は、ビジュアルサーボ制御の終了を判断すると、３ｍｓ程度のビジュアルサーボ終了Ｔ２２０の処理を実行する。ＣＰＵ３１１は、例えば、ビジュアルサーボ制御の目標が達せられたと判断した場合に、ビジュアルサーボ制御の終了を判断する。
【００５８】
ＣＰＵ３１１は、タイミング群Ｔ２０２の開始の少し前から終了の少し前まで、目標位置計算Ｔ２１３の処理および撮像Ｔ２１４の処理と並行して、１ｍｓ程度ごとに、位置指令補間Ｔ２３１−１〜Ｔ２３１−１３の処理を実行する。位置指令補間Ｔ２３１−１〜Ｔ２３１−１３の処理は、ロボット１１に対する位置指令について、ＧＰＵ３１４による物体認識Ｔ２４１〜Ｔ２４３の処理の結果に基づいて、補間を行う処理である。図７の例では、位置指令補間Ｔ２３１−１〜Ｔ２３１−１３の処理は、ＣＰＵ３１１における最優先タスクとなっており、他の処理よりも優先して行われ、他の処理は空いたリソースで行われる。
【００５９】
ＣＰＵ３１１は、ロボット１１を停止させるための位置指令（停止指令）を、タイミング群Ｔ２０１の期間に、送信する。
その後、  ＣＰＵ３１１は、位置指令補間Ｔ２３１−１〜Ｔ２３１−１３の処理により得られた位置指令（移動指令）を、タイミング群Ｔ２０２の期間に、送信する。
その後、ＣＰＵ３１１は、位置指令（停止指令）を、タイミング群Ｔ２０３の期間に、送信する。
また、ロボット制御装置６１では、これらの処理と並列的に以下の処理を行う。
【００６０】
ＧＰＵ３１４は、ＣＰＵ３１１により制御されて、画像処理を実行する。
図７の例では、ＧＰＵ３１４は、ＣＰＵ３１１により実行される撮像Ｔ２１２、Ｔ２１４、Ｔ２１６、Ｔ２１８の処理と目標位置計算Ｔ２１３、Ｔ２１５、Ｔ２１７、Ｔ２１９の処理との間に、２ｍｓ程度の物体認識Ｔ２４１〜Ｔ２４４の処理を実行する。物体認識Ｔ２４１〜Ｔ２４４の処理は、撮像された画像に基づいて物体を認識する処理である。そして、ＧＰＵ３１４は、物体認識Ｔ２４１〜Ｔ２４４の処理の結果の情報をＣＰＵ３１１に送信（通知）する。
【００６１】
［テーブル］
図８〜図１１を参照して、ロボット制御装置６１により行われるロボット１１の制御に使用されるテーブルの例を示す。
【００６２】
＜定義オブジェクト管理テーブル＞
図８は、本発明の一実施形態（第１実施形態）に係る定義オブジェクト管理テーブル１０１１の一例を示す図である。本実施形態では、定義オブジェクト管理テーブル１０１１の情報は、ロボット制御装置６１の記憶部１１３に記憶される。
定義オブジェクト管理テーブル１０１１は、定義オブジェクト番号と、定義オブジェクト名称と、関連定義オブジェクト番号と、障害物参照用の形状データファイル名称と、把持関連情報と、属性と、を対応付けて記憶する。
【００６３】
定義オブジェクトは、定義されたオブジェクトであり、本実施形態では、オブジェクトのテンプレートとして使用され得る。
定義オブジェクト番号は、定義オブジェクトを識別する情報であり、図８の例では、１から始まる連続番号である。
定義オブジェクト名称は、定義オブジェクトの名称であり、図８の例では、「ねじ締めプレート」、「ねじ締めベース」などである。
関連定義オブジェクト番号は、関連する定義オブジェクト番号である。図８の例では、定義オブジェクト番号「４」の「組立治具＿突起部」は、定義オブジェクト番号「３」の「組立治具」と関連していることが示されている。
【００６４】
障害物参照用の形状データファイル名称は、障害物として参照する場合などにおける形状データファイルの名称であり、図８の例では、「ねじ締めプレート．ｐｏｌｙｇｏｎｄａｔａ」、「ねじ締めベース．ｐｏｌｙｇｏｎｄａｔａ」などである。
なお、それぞれの定義オブジェクトの形状は、任意の態様で管理されてもよく、例えば、直方体の組み合わせ、あるいは、曲線の組み合わせなどとして、管理されてもよい。それぞれの定義オブジェクトの形状の情報としては、例えば、ＣＡＤデータにより定義されてもよい。
本実施形態では、相似形状を有する定義オブジェクトであっても、大きさが異なる場合には、異なる定義オブジェクトとして捉えられている。
【００６５】
把持関連情報は、定義オブジェクトの把持に関連する情報であり、図８の例では、「台座把持情報データ」、「歯車把持情報データ」、「ねじＭ５把持情報データ」などの種類がある。
属性は、定義オブジェクトの属性であり、図８の例では、「環境」、「ワーク」、「ツール」などである。
【００６６】
このように、定義オブジェクト管理テーブル１０１１は、定義オブジェクトの一意である情報を管理するフィールドを有するテーブルである。
【００６７】
＜把持関連情報管理テーブル＞
図９は、本発明の一実施形態（第１実施形態）に係る把持関連情報管理テーブル１０２１の一例を示す図である。本実施形態では、把持関連情報管理テーブル１０２１の情報は、ロボット制御装置６１の記憶部１１３に記憶される。
図９には、把持関連情報である「台座把持情報データ」に対応する把持関連情報管理テーブル１０２１の例を示してある。本実施形態では、「歯車把持情報データ」などの他の種類の把持関連情報についても、把持関連情報ごとに、把持関連情報管理テーブルの情報が、ロボット制御装置６１の記憶部１１３に記憶される。
本実施形態では、図８に示される定義オブジェクト管理テーブル１０１１における把持関連情報により、それぞれの定義オブジェクトと把持関連情報管理テーブルの情報とが対応付けられている。つまり、把持関連情報が一致するものが対応付けられる。
【００６８】
把持関連情報管理テーブル１０２１は、把持位置番号と、定義オブジェクト座標系上の位置姿勢情報と、１組以上の把持幅位置およびハンド軸動作速度と、付加情報と、を対応付けて記憶する。
把持位置番号は、把持位置を識別する情報であり、図９の例では、０から始まる連続番号である。図９の例では、連続する２つの把持位置番号ごとに組（ペア）になっており、具体的には、「０」と「１」の把持位置番号が組になっており、「２」と「３」の把持位置番号が組になっている、などである。
なお、このような組は、他のＩＤなどを用いて設定されてもよい。
【００６９】
定義オブジェクト座標系上の位置姿勢情報は、定義オブジェクトに設定された３次元座標系における位置および姿勢の情報であり、位置は［ｘ’，ｙ’，ｚ’］の各軸の座標で表され、姿勢は［ｕ’，ｖ’，ｗ’］の各軸（ｘ’、ｙ’、ｚ’の軸）周りの座標で表される。ここで、定義オブジェクトに設定された３次元座標系としては、任意の座標系が用いられてもよく、直交座標系が用いられてもよく、例えば、定義オブジェクトの図心あるいは重心などを原点とする座標系が用いられてもよい。
図９の例では、把持位置番号が「０」である位置姿勢情報は、ｘ’＝０、ｙ’＝８０、ｚ’＝２０、ｕ’＝０、ｖ’＝０、ｗ’＝０であり、また、把持位置番号が「１」である位置姿勢情報は、ｘ’＝０、ｙ’＝１００、ｚ’＝２０、ｕ’＝０、ｖ’＝０、ｗ’＝０である。
本実施形態では、定義オブジェクト座標系上の位置姿勢情報は、定義オブジェクトの把持において使用され得る。
【００７０】
図９の例では、把持幅位置およびハンド軸動作速度は、把持幅位置（１）およびハンド軸動作速度（１）、把持幅位置（２）およびハンド軸動作速度（２）、・・・というように、２組以上記憶することが可能である。これらの複数の組により、複数のパターンが記憶される。
把持幅位置（把持幅位置（１）など）は、把持に使用されるエンドエフェクターの状態を示す情報である。図９の例では、エンドエフェクターとしてグリッパーハンドのような１軸制御を用いたハンドが用いられる場合を示してあり、把持幅位置（エンドエフェクターの状態）としてハンドが開く角度（ハンド開度）が用いられている。
【００７１】
ハンド軸動作速度（ハンド軸動作速度（１）など）は、把持に使用されるエンドエフェクターの軸を動作させる速度であり、図９の例では、ハンド開度になるように移動するときの速度である。この速度は、図９の例では、所定の速度に対する割合［％］として示されている。当該所定の速度としては、任意の速度が用いられてもよく、一例として、動作が可能な最大の速度が用いられてもよい。
このように、ハンドの開度だけでなく、ハンドの開閉の速度を管理することで、制御対象となるオブジェクト（ここでは、定義オブジェクト）に応じた詳細な制御に関する情報を管理することが可能である。
なお、図９の例では、ハンドの位置および速度を設定項目としたが、他の構成例として、ハンドの加速度、あるいは、ハンドの把持トルクなどが設定項目とされてもよい。
【００７２】
付加情報は、任意の情報であってもよく、図９の例では、「把持前」、「把持後」といった情報を記憶する。
図９の例では、「０」と「１」などのように連続する２つの把持位置番号が組になっており、一方に「把持前」が設定されており、他方に「把持後」が設定されている。「把持前」が設定された把持位置番号に対応する情報は把持の前に関する情報であり、「把持後」が設定された把持位置番号に対応する情報は把持の後に関する情報である。これらにより、把持前におけるハンド制御、および、把持後におけるハンド制御を管理することができる。
【００７３】
このように、把持関連情報管理テーブル１０２１は、定義オブジェクトの把持に関する情報を管理するフィールドを有するテーブルである。
【００７４】
＜オブジェクト管理テーブル＞
図１０は、本発明の一実施形態（第１実施形態）に係るオブジェクト管理テーブル１０３１の一例を示す図である。本実施形態では、オブジェクト管理テーブル１０３１の情報は、ロボット制御装置６１の記憶部１１３に記憶される。
オブジェクト管理テーブル１０３１は、オブジェクト番号と、定義オブジェクト番号と、オブジェクト名称と、インデックス番号と、位置姿勢情報と、１つ以上の障害物対象フラグと、を対応付けて記憶する。
【００７５】
オブジェクトは、実際のオブジェクトのことである。
オブジェクト番号は、オブジェクトを識別する情報であり、図１０の例では、１から始まる連続番号である。
定義オブジェクト番号は、オブジェクトに対応する定義オブジェクトの定義オブジェクト番号である。図１０の例では、「１」のオブジェクト番号と「１」の定義オブジェクト番号とが対応付けられており、「２」のオブジェクト番号と「１」の定義オブジェクト番号とが対応付けられている、などである。
オブジェクト名称は、オブジェクトの名称であり、図１０の例では、「ねじ締めプレート」、「ねじ締めベース」などである。なお、オブジェクト名称は、対応する定義オブジェクトの名称と同じである。
【００７６】
インデックス番号は、インデックスの番号である。図１０の例では、インデックス番号として、オブジェクト名称が同じ（「ねじ締めプレート」）である「１」、「２」、「９」のオブジェクト番号のオブジェクトを区別するために「１」、「２」、「３」が設定されている。
なお、インデックス番号は、例えば、初期には所定の初期値（例えば、「０」など）に設定されてもよい。
【００７７】
位置姿勢情報は、所定の座標系におけるオブジェクトの位置および姿勢の情報である。当該所定の座標系としては、任意の座標系が用いられてもよく、直交座標系が用いられてもよく、例えば、ロボット１１の所定位置を原点とする３次元座標系（ロボット座標系）が用いられてもよい。当該３次元座標系では、位置は［ｘ，ｙ，ｚ］の各軸の座標で表され、姿勢は［ｕ，ｖ，ｗ］の各軸（ｘ、ｙ、ｚの軸）周りの座標で表される。ここで、オブジェクトの位置および姿勢としては、例えば、オブジェクトの図心あるいは重心などの位置および姿勢が用いられる。
一例として、図９に示される把持関連情報管理テーブル１０２１における定義オブジェクト座標系の原点と、図１０に示されるオブジェクト管理テーブル１０３１におけるオブジェクトの位置および姿勢の点とは、同じ点に設定される。
図１０の例では、位置姿勢情報は、「Ｐ１０」、「Ｐ１１」などのようなポイントデータで示されている。それぞれのポイントデータには、実際の位置および姿勢の情報が対応付けられており、これらの対応付けの情報（図示を省略。）がロボット制御装置６１の記憶部１１３に記憶される。
【００７８】
障害物対象フラグは、それぞれのオブジェクトが、障害物であること（ＯＮ＝１）、または、障害物ではないこと（ＯＦＦ＝０）を記憶する。
図１０の例では、障害物対象フラグは、左アーム（本実施形態では、左腕に相当するマニピュレーターＭ２）にとって障害物となるか否かを設定する障害物対象フラグと、右アーム（本実施形態では、右腕に相当するマニピュレーターＭ１）にとって障害物となるか否かを設定する障害物対象フラグと、腰軸（本実施形態では、腰のところの回転軸）にとって障害物となるか否かを設定する障害物対象フラグがある。
図１０の例では、「８」のオブジェクト番号のオブジェクトである作業台が、左アームと右アームと腰軸のすべてについて、障害物となること（「１」）が示されている。
【００７９】
このように、オブジェクト管理テーブル１０３１は、オブジェクトに関する情報を管理するフィールドを有するテーブルである。
本実施形態では、オブジェクト管理テーブル１０３１では、定義オブジェクト管理テーブル１０１１により管理される情報が参照されて、実際に作業の対象となるオブジェクトの情報を管理する。
【００８０】
ここで、図１０の例では、複数のマニピュレーターＭ１、Ｍ２を有するロボット１１（本実施形態では、双腕のロボット１１）について、それぞれのマニピュレーターＭ１、Ｍ２ごとに障害物に関する情報を格納するフィールドが設けられていることから、このようなロボット１１について、意図する制御内容を簡易に定義することを図ることが可能であり、例えば、複数のマニピュレーターＭ１、Ｍ２により同時に作業を行う場合においても、作業指示（その記述内容）の簡易化を図ることが可能である。つまり、当該作業指示（その記述内容）が非常に複雑になってしまうことを抑制することが可能である。
なお、単腕のロボットについては、例えば、マニピュレーターについては、オブジェクト管理テーブル１０３１において、１本のマニピュレーターについて障害物に関する情報が管理されればよい。
【００８１】
＜把持状態情報管理テーブル＞
図１１は、本発明の一実施形態（第１実施形態）に係る把持状態情報管理テーブル１０４１の一例を示す図である。本実施形態では、把持状態情報管理テーブル１０４１の情報は、ロボット制御装置６１の記憶部１１３に記憶される。
把持状態情報管理テーブル１０４１は、ハンド装着場所番号と、オブジェクト番号と、オブジェクト名称と、把持時のハンド位置姿勢情報と、ＴＣＰ情報と、を対応付けて記憶する。
【００８２】
ここで、把持状態情報管理テーブル１０４１は、実際におけるロボット１１の把持の状況を記憶する。
また、図１１の例では、エンドエフェクターＥ１、Ｅ２としてハンドが用いられる場合を示すが、ハンド以外のものが用いられる場合においても、それぞれのエンドエフェクターに合った情報が管理されてもよい。
【００８３】
ハンド装着場所番号は、エンドエフェクター（図１１の例では、ハンド）が装着される場所を表す番号であり、図１１の例では、左ハンド（本実施形態では、左手に相当するエンドエフェクターＥ２）を示す「０」、または、右ハンド（本実施形態では、右手に相当するエンドエフェクターＥ１）を示す「１」である。
オブジェクト番号は、エンドエフェクター（図１１の例では、ハンド）により把持しているオブジェクトのオブジェクト番号である。図１１の例では、「−１」は、何も把持していないこと（非把持）を示す。
【００８４】
オブジェクト名称は、オブジェクトの名称である。図１１の例では、非把持の場合には「Ｎｏｎｅ」が示されている。
なお、オブジェクトにオブジェクト名称以外の識別情報（ここで、「オブジェクトＩＤ」という。）が対応付けられている場合には、オブジェクト名称の代わりに、または、オブジェクト名称とともに、オブジェクトＩＤが用いられてもよい。
【００８５】
把持時のハンド位置姿勢情報は、エンドエフェクター（図１１の例では、ハンド）によりオブジェクトを把持している時における当該エンドエフェクターの位置および姿勢の情報であり、所定の座標系における位置および姿勢の情報である。当該所定の座標系としては、任意の座標系が用いられてもよく、直交座標系が用いられてもよく、例えば、ロボット１１の所定位置を原点とする３次元座標系（ロボット座標系）が用いられてもよい。当該３次元座標系では、位置は［ｘ，ｙ，ｚ］の各軸の座標で表され、姿勢は［ｕ，ｖ，ｗ］の各軸（ｘ、ｙ、ｚの軸）周りの座標で表される。ここで、エンドエフェクター（図１１の例では、ハンド）の位置および姿勢としては、例えば、当該エンドエフェクターの所定箇所の位置および姿勢などが用いられる。
図１１の例では、把持時のハンド位置姿勢情報は、「Ｐ１１」などのようなポイントデータで示されている。それぞれのポイントデータには、実際の位置および姿勢の情報が対応付けられており、これらの対応付けの情報（図示を省略。）がロボット制御装置６１の記憶部１１３に記憶される。
【００８６】
ＴＣＰ情報は、ロボット１１のＴＣＰの位置および姿勢の情報である。
図１１の例では、ＴＣＰ情報は、「Ｐ２０」などのようなポイントデータで示されている。それぞれのポイントデータには、実際の位置および姿勢の情報が対応付けられており、これらの対応付けの情報（図示を省略。）がロボット制御装置６１の記憶部１１３に記憶される。
【００８７】
このように、把持状態情報管理テーブル１０４１は、実際の把持の状態に関する情報を管理するフィールドを有するテーブルである。
【００８８】
［把持の具体例］
図１２〜図１６を参照して、ロボット１１のエンドエフェクターＥ１、Ｅ２により物体（オブジェクト）を把持するイメージの例を示す。
図１２は、本発明の一実施形態（第１実施形態）に係るオブジェクト１１１１の把持位置（第１把持位置１１３１、第２把持位置１１３２）の例を示す図である。
オブジェクト１１１１の位置および姿勢は、オブジェクト管理テーブル１０３１により把握される。また、オブジェクト１１１１における把持位置（第１把持位置１１３１、第２把持位置１１３２）は、把持関連情報管理テーブル１０２１、定義オブジェクト管理テーブル１０１１、および、オブジェクト管理テーブル１０３１により把握される。
本例では、図９の例に係る把持関連情報管理テーブル１０２１における、ある１組の把持前および把持後の情報（例えば、「０」と「１」の把持位置番号の組）に対応する把持位置（例えば、把持前の把持位置）が第１把持位置１１３１であるとし、また、他の１組の把持前および把持後の情報（例えば、「２」と「３」の把持位置番号の組）に対応する把持位置（例えば、把持前の把持位置）が第２把持位置１１３２であるとする。
【００８９】
図１３は、本発明の一実施形態（第１実施形態）に係るオブジェクト１１１１に対する把持のイメージ（第１把持位置１１３１の把持前）の例を示す図である。
図１３の例では、第１把持位置１１３１について、ハンド１２１１の把持前のイメージを示してある。
ここで、ハンド１２１１は、ロボット１１のエンドエフェクターＥ１（または、エンドエフェクターＥ２）の一例である。
【００９０】
図１４は、本発明の一実施形態（第１実施形態）に係るオブジェクト１１１１に対する把持のイメージ（第１把持位置１１３１の把持後）の例を示す図である。
図１４の例では、第１把持位置１１３１について、ハンド１２１１の把持後のイメージを示してある。
【００９１】
図１５は、本発明の一実施形態（第１実施形態）に係るオブジェクト１１１１に対する把持のイメージ（第２把持位置１１３２の把持前）の例を示す図である。
図１５の例では、第２把持位置１１３２について、ハンド１２１２の把持前のイメージを示してある。
ここで、ハンド１２１２は、ロボット１１のエンドエフェクターＥ２（または、エンドエフェクターＥ１）の一例である。
【００９２】
図１６は、本発明の一実施形態（第１実施形態）に係るオブジェクト１１１１に対する把持のイメージ（第２把持位置１１３２の把持後）の例を示す図である。
図１６の例では、第２把持位置１１３２について、ハンド１２１２の把持後のイメージを示してある。
【００９３】
［ロボットシステムにおいて行われる作業の例］
本実施形態では、所定の作業環境（作業空間）における双腕のロボット１１の作業を想定する。ロボット制御装置６１は、各種のテーブルを用いて、ロボット１１の動作を制御する。
まず、ロボット１１による作業前に、ユーザーは、定義オブジェクト管理テーブル１０１１に情報を設定することで、作業環境に登場するオブジェクトの定義を行う。例えば、ユーザーは、定義オブジェクト管理テーブル１０１１に、登場するオブジェクトの名称、形状の情報、把持に関連する情報などを登録する。
【００９４】
ここで、形状の情報としては、例えば、特定の３次元座標系上に定義された形状の情報が用いられ、（例えば、後に）障害物として認識することが可能な情報が登録される。具体例として、形状の情報として、ある軸に平行な直方体を表す軸平行バウンディングボックス（ＡＡＢＢ）、あるいは、ある軸に対して方向を持った直方体を表す有向バウンディングボックス（ＯＢＢ）などを表す情報のファイル等と関連付けられたＩＤ（例えば、ファイル名）が設定されてもよい。
なお、形状の情報としては、任意の情報であってもよく、例えば、ロボット制御装置６１の内部などで処理可能であれば、ＳＴＬ等のように、一般的なフォーマットで表現される３Ｄ情報であってもよい。
【００９５】
把持関連情報は、定義されたオブジェクトを把持するために必要な情報をまとめたテーブルであり、オブジェクトごとに設定することが可能である。
ユーザーは、ワーク（例えば、作業の対象となる物体）あるいはツール（例えば、治具）などに対応付けられた把持関連情報を、把持関連情報管理テーブル１０２１として登録する。例えば、ユーザーは、把持関連情報管理テーブル１０２１に、ワークあるいはツールなどを把持するための情報として、把持の位置および姿勢の情報と、エンドエフェクターの動作の情報を登録する。
【００９６】
図９の例では、１個の定義オブジェクトに対して、把持位置などからなる把持に関する情報を複数（図９の例では、２つ）設定することが可能であり、それぞれの把持位置について、把持前の情報と把持後の情報を設定することが可能である。
ここで、例えば、グラフィカルユーザーインターフェイス（ＧＵＩ：Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を用いて、ユーザーが、把持関連情報管理テーブル１０２１の情報を直感的に設定することが可能な構成が用いられてもよい。一例として、ロボット制御装置６１または他の任意の装置（例えば、設定用のコンピューターなど）は、図１２〜図１６に示されるようなイメージ（画像）を画面に表示し、ユーザーが当該画像を見ながら行った操作（把持関連情報管理テーブル１０２１における各種のパラメーターの変更の操作）の内容に応じて当該画像を変化させ、ユーザーが当該画像を見ながら行った操作（登録の操作）の内容に応じて把持関連情報管理テーブル１０２１の情報を設定（登録）してもよい。
【００９７】
次に、ユーザーは、既に登録されている定義オブジェクト管理テーブル１０１１の情報を参照する形式で、オブジェクト管理テーブル１０３１の情報を登録することで、個別のオブジェクトの情報を登録する。オブジェクト管理テーブル１０３１には、例えば、参照する定義オブジェクト番号、オブジェクトの位置および姿勢の情報、オブジェクトを障害物の対象として設定するか否かを示すフラグ（障害物対象フラグ）の情報などが登録される。なお、オブジェクトの障害物対象フラグの情報は、マニピュレーターＭ１、Ｍ２ごとに設定することが可能である。
【００９８】
図１０の例に係るオブジェクト管理テーブル１０３１では、同じオブジェクトが複数回扱われることが可能な場合を示してあり、同じオブジェクトについては同じ定義オブジェクト番号が設定される。
図１０の例に係るオブジェクト管理テーブル１０３１では、例えば、オブジェクトが移動して当該オブジェクトの位置が変化した場合、あるいは、障害物の対象となるか否かの属性が変化した場合に、ユーザーは動的に設定情報を変更することが可能である。ユーザーは、例えば、ロボット１１による作業中に、オブジェクト管理テーブル１０３１の設定情報を適切に更新することで、マニピュレーターＭ１、Ｍ２を制御するための入力となる情報を効率的に管理して、適切な制御を実現することができる。
【００９９】
このように、本実施形態では、オブジェクトに関する情報を、複数のテーブル（定義オブジェクト管理テーブル１０１１、把持関連情報管理テーブル１０２１、オブジェクト管理テーブル１０３１）に分割して管理し、各テーブルでは特定の項目をキー（Ｋｅｙ）として参照することで、テーブル間の情報を関連付けている。
また、本実施形態では、実際の把持状態に関する情報が、把持状態情報管理テーブル１０４１により管理される。
【０１００】
図１７は、本発明の一実施形態（第１実施形態）に係る双腕のロボット１１により行われる作業の一例を示す図である。
なお、図１７の例では、ねじ１５３１に対するねじ穴１５５１、およびシャフト１５３２（図１７の例では、円柱状の物体）に対する嵌め込み穴１５５２（目標位置）が設けられた作業台１５１１（台座）が用いられている。
図１７の例では、ロボット１１の２本の腕（マニピュレーターＭ１、Ｍ２）により同時に動作が行われる。
具体的には、ロボット１１では、一方のマニピュレーターＭ１のエンドエフェクターＥ１によりねじ１５３１を把持しており、他方のマニピュレーターＭ２のエンドエフェクターＥ２によりシャフト１５３２を把持している。ロボット１１では、一方のマニピュレーターＭ１のエンドエフェクターＥ１によりねじ１５３１を作業台１５１１の面に設けられたねじ穴１５５１のところ（例えば、直上）に移動させる動作と、他方のマニピュレーターＭ２のエンドエフェクターＥ２によりシャフト１５３２を、力覚制御を用いて作業台１５１１の面に押し付けながら、作業台１５１１の面に設けられた嵌め込み穴１５５２のところ（例えば、直上）に移動させる動作と、を同時に行う。
【０１０１】
このような作業において、それぞれのオブジェクトごと、および、それぞれのマニピュレーターＭ１、Ｍ２ごとに、障害物対象フラグを異なる値に設定することが可能である。本実施形態では、このような設定を行うことが可能なデータ構造であることから、それぞれのマニピュレーターＭ１、Ｍ２が同期的あるいは非同期的に制御されても、スムーズで適切なマニピュレーターＭ１、Ｍ２の動作の制御を実現することができる。
これにより、例えば、双腕のロボット１１がオブジェクトに関する所定の作業を行う場合に、当該オブジェクトに関する各種のテーブルの情報に基づいて、障害物の回避を行いながら、当該作業を遂行することができる。
【０１０２】
［第１実施形態のまとめ］
以上のように、本実施形態に係るロボットシステム１では、オブジェクトに関する情報の管理に関する単位を複数に分割することで、管理を行い易くすることができる。本実施形態では、オブジェクトに関する情報を複数の異なるテーブル（本実施形態では、定義オブジェクト管理テーブル１０１１、把持関連情報管理テーブル１０２１、オブジェクト管理テーブル１０３１）で管理して、特定のキーでテーブルどうしを関連付けるデータ構造とすることで、効率的なデータの利用が可能となる。例えば、このようなデータの管理をプログラム等で実装した場合に、メモリーの使用の効率化を図ることができる。
【０１０３】
このように、本実施形態に係るロボットシステム１では、ロボット１１を制御するために使用される物体（オブジェクト）に関する情報の効率化を図ることができる。例えば、本実施形態に係るロボットシステム１では、ロボット１１により行われる動作によって変化しない情報（例えば、定義オブジェクト管理テーブル１０１１の情報、把持関連情報管理テーブル１０２１の情報）と、物体（オブジェクト）を含む作業環境におけるロボットの動作によって変化していく情報（例えば、オブジェクト管理テーブル１０３１における位置姿勢情報および障害物対象フラグの情報、把持状態情報管理テーブル１０４１の情報）について、共通な情報（例えば、定義オブジェクトに関する情報）を一括管理することで、全体の情報量を減らすことが可能である。
【０１０４】
ここで、対比技術の一例として、仮に、定義オブジェクト管理テーブル１０１１が存在しない構成では、複数の同じオブジェクトが存在する場合には、これら複数の同じオブジェクトについて、オブジェクトを管理するテーブルが複数同じデータを管理することになる。本実施形態では、このような対比技術と比べて、定義オブジェクト管理テーブル１０１１を用意することで、実際のオブジェクトの位置などについて、定義オブジェクト管理テーブル１０１１に定義された情報を参照する形式にできることから、実装においても効率的となり得る。
【０１０５】
また、本実施形態に係るロボットシステム１では、定義オブジェクトに関する情報として、把持関連情報を定義することを可能とすることで、対象となるオブジェクトに対応する定義オブジェクトをキーとして、把持の作業に使用可能な情報を関連付けることができる。ここで、把持に関する情報は、ロボット１１を用いる実作業において有用である。把持に関する情報を定義オブジェクトの情報と関連付けることで、例えば、オブジェクトベースで作業指示を行う場合に有効なデータ構造が実現される。
【０１０６】
また、本実施形態に係るロボットシステム１では、オブジェクトの属性として、双腕のロボット１１が有する複数のマニピュレーターＭ１、Ｍ２のそれぞれごとに、障害物として認識するか否かを管理することで、複数のマニピュレーターＭ１、Ｍ２を並列に動作させて障害物を回避しつつ作業を行う場合において、ロボット１１に対する作業の指示（例えば、それぞれのマニピュレーターＭ１、Ｍ２に対する動作の指示）の適切化、容易化を図ることができる。
【０１０７】
ここで、本実施形態に係るロボットシステム１では、各種のテーブル（本実施形態では、定義オブジェクト管理テーブル１０１１、把持関連情報管理テーブル１０２１、オブジェクト管理テーブル１０３１、把持状態情報管理テーブル１０４１）の情報を、ロボット制御装置６１がロボット１１の動作を制御するために使用したが、他の構成例として、各種のテーブルの情報をユーザーに対して可視化する（例えば、画面に表示する）ために使用してもよい。例えば、ロボットシステム１では、各種のテーブルにおける任意の情報に基づく情報を、ユーザーに対して、表示部により表示してもよい。
また、本実施形態に係るロボットシステム１では、ユーザーにより行われる操作などによって、所定のテーブル（例えば、定義オブジェクト管理テーブル１０１１、把持関連情報管理テーブル１０２１）における任意の情報を受け付けて設定することが可能である。
【０１０８】
また、本実施形態に係るロボットシステム１では、オブジェクトの位置および姿勢を検出し、オブジェクト管理テーブル１０３１において当該オブジェクトの位置および姿勢の情報を記憶して管理する構成としたが、他の構成例として、オブジェクトに貼付等された所定の目印（マーカー）の位置および姿勢を検出してもよい。この場合、オブジェクト管理テーブル１０３１では、当該マーカーの位置および姿勢の情報を記憶して管理してもよく、または、当該マーカーの位置および姿勢から検出されるオブジェクトの位置および姿勢の情報を記憶して管理してもよい。
【０１０９】
また、本実施形態では、定義オブジェクトの種類ごとに設けられた把持関連情報管理テーブル１０２１により、エンドエフェクターＥ１、Ｅ２による把持に関する情報を記憶して管理するが、他の構成例として、複数の種類のエンドエフェクターのそれぞれごとに、異なる把持関連情報管理テーブルが設けられる構成が用いられてもよい。このような構成では、異なるエンドエフェクターのそれぞれについて、把持に関する適切な情報を設定することができる。
【０１１０】
なお、本実施形態では、ロボット１１のマニピュレーターＭ１、Ｍ２またはエンドエフェクターＥ１、Ｅ２、あるいはオブジェクトなどの各種のものについて、位置および姿勢を検出あるいは記憶等して処理を行う場合を示したが、他の構成例として、位置および姿勢のうちの任意の一方のみが必要な場合には、当該一方のみを検出あるいは記憶等する構成が用いられてもよい。
また、本実施形態では、２本の腕を有する双腕のロボット１１（複腕ロボットの一種）が用いられたが、他の構成例として、３本以上の腕を有する複腕ロボットが用いられてもよい。
【０１１１】
（第２実施形態）
第１実施形態に係る各種のテーブル（本実施形態では、定義オブジェクト管理テーブル１０１１、把持関連情報管理テーブル１０２１、オブジェクト管理テーブル１０３１、把持状態情報管理テーブル１０４１）と同様なテーブルを用いた構成を、単腕のロボットに適用することが可能である。
【０１１２】
［ロボットシステム］
図１８は、本発明の一実施形態（第２実施形態）に係るロボットシステム２００１の概略的な構成例を示す図である。
ロボットシステム２００１は、ロボット２０１１と、ロボット制御装置２０１２と、ロボット２０１１とロボット制御装置２０１２とを通信可能に接続するケーブル２０１３と、カメラ２０２１と、カメラ２０２１とロボット制御装置２０１２とを通信可能に接続するケーブル２０２２と、作業台２０５１と、対象物２０５２（オブジェクト）を備える。
なお、カメラ２０２１と、ケーブル２０２２と、作業台２０５１と、対象物２０５２のうちの１以上は、ロボットシステム２００１に含まれないもの（つまり、ロボットシステム２００１の外部にあるもの）であると捉えられてもよい。
また、図１８では、ロボット２０１１とロボット制御装置２０１２とを接続する配線の詳細を省略しており、１本のケーブル２０１３のみを示してあるが、任意の配線が用いられてもよい。
【０１１３】
ロボット２０１１は、基端（支持台）２０３１と、マニピュレーターＭ１１と、力覚センサー２０３２と、エンドエフェクターＥ１１を備える。
ここで、本実施形態では、ロボット２０１１は、単腕のロボットである。
【０１１４】
本実施形態では、ロボット制御装置２０１２は、ロボット２０１１とは別体で設けられている。他の構成例として、ロボット制御装置２０１２は、ロボット２０１１と一体で設けられてもよく、例えば、ロボット２０１１の基端２０３１の内部に設けられてもよい。
また、本実施形態では、ロボット２０１１とロボット制御装置２０１２とが、有線のケーブル２０１３を介して、通信する構成を示す。他の構成例として、ロボット２０１１とロボット制御装置２０１２とが、無線の回線を介して、通信する構成が用いられてもよい。
また、本実施形態では、カメラ２０２１とロボット制御装置２０１２とが、有線のケーブル２０２２を介して、通信する構成を示す。他の構成例として、カメラ２０２１とロボット制御装置２０１２とが、無線の回線を介して、通信する構成が用いられてもよい。
【０１１５】
本実施形態では、作業台２０５１は、テーブルである。なお、作業台２０５１の代わりに、他のものが用いられてもよく、例えば、床、天井、あるいは、壁などが用いられてもよい。
対象物２０５２は、作業台２０５１の面に載置されている。
ここで、対象物２０５２としては、任意の物体が用いられてもよい。対象物２０５２は、例えば、生体であってもよく、または、生体でなくてもよい。
【０１１６】
カメラ２０２１は、画像を撮像する装置（撮像装置）である。
本実施形態では、カメラ２０２１は、対象物２０５２について画像の撮像を行うことが可能なところに設けられている。なお、他の構成例として、カメラ２０２１は、ロボット２０１１に取り付けられて設けられてもよく、あるいは、ロボット２０１１に内蔵されて設けられてもよい。
【０１１７】
［ロボット］
ロボット２０１１の基端２０３１は、設置されている。
ロボット２０１１のマニピュレーターＭ１１の一端は、基端２０３１と接続されている。ロボット２０１１のマニピュレーターＭ１１の他端と、エンドエフェクターＥ１１とが、これらの間に力覚センサー２０３２を介して、接続されている。
ロボット２０１１のマニピュレーターＭ１１は、６軸垂直多関節型の構造を有しており、６個の関節を備える。それぞれの関節は、アクチュエーター（図示せず）を備える。そして、ロボット２０１１では、６個の関節のそれぞれのアクチュエーターの動作によって、６軸の自由度の動作を行う。他の構成例として、５軸以下の自由度で動作を行うロボット、または、７軸以上の自由度で動作を行うロボットが用いられてもよい。
ロボット２０１１のエンドエフェクターＥ１１は、例えば、ハンドであり、物体を把持することが可能な指部を備える。他の構成例として、ロボット２０１１のエンドエフェクターＥ１１は、任意のものであってもよく、例えば、空気の吸引を利用して物体を吸着するもの、磁力を利用して物体を寄せ付けるものなどであってもよい。
【０１１８】
［ロボット制御装置］
ロボット制御装置２０１２は、ロボット２０１１を制御する。例えば、ロボット制御装置２０１２は、マニピュレーターＭ１１が有するそれぞれのアクチュエーター、力覚センサー２０３２およびエンドエフェクターＥ１１のそれぞれを制御する。
また、ロボット制御装置２０１２は、カメラ２０２１を制御する。
ロボット制御装置２０１２は、力覚センサー２０３２から、検出結果の情報を受信する。
また、ロボット制御装置２０１２は、カメラ２０２１から、撮像された画像の情報を受信する。
ロボット制御装置２０１２は、力覚センサー２０３２およびカメラ２０２１のそれぞれから受信された情報のうちの１以上に基づいて、ロボット２０１１を制御してもよい。
【０１１９】
［第２実施形態のまとめ］
以上のように、本実施形態に係るロボットシステム２００１では、オブジェクトに関する各種のテーブルの情報をロボット制御装置２０１２などに記憶して、ロボット制御装置２０１２が当該テーブルの情報に基づいて単腕のロボット２０１１の動作を制御することができる。
これにより、本実施形態に係るロボットシステム２００１では、例えば、双腕と単腕との相違に係る点を除いて、第１実施形態と同様な効果を得ることができる。
【０１２０】
なお、本実施形態では、単腕のロボット２０１１を例としたが、他の構成例として、スカラロボット、直角座標ロボットなどが用いられてもよい。直角座標ロボットは、例えば、ガントリロボットである。
【０１２１】
（以上の実施形態のまとめ）
一構成例として、物体（オブジェクト）を定義する情報を含む第１情報（例えば、図８の例に係る定義オブジェクト管理テーブル１０１１の情報、図９の例に係る把持関連情報管理テーブル１０２１の情報）と、物体に関するロボット（図１の例ではロボット１１、図１８の例ではロボット２０１１）の状態に応じて変化する第２情報（例えば、図１０の例に係るオブジェクト管理テーブル１０３１、図１１の例に係る把持状態情報管理テーブル１０４１）と、に基づいて、ロボットを制御する、ロボット制御装置（図１の例ではロボット制御装置６１、図１８の例に係るロボット制御装置２０１２）である。
一構成例として、ロボット制御装置において、第１情報は、物体の把持に関する位置および姿勢のうちの一方または両方の情報（例えば、定義オブジェクト管理テーブル１０１１における把持関連情報、把持関連情報管理テーブル１０２１の情報）を含む。
一構成例として、ロボット制御装置において、物体の把持に関する情報は、把持前の情報と、把持後の情報（例えば、把持関連情報管理テーブル１０２１における付加情報）を含む。
一構成例として、ロボット制御装置において、第２情報は、物体の位置および姿勢のうちの一方または両方の情報（例えば、オブジェクト管理テーブル１０３１における位置姿勢情報）を含む。
一構成例として、ロボット制御装置において、第１情報と第２情報の一方または両方は、物体が障害物であるか否かを示す情報（例えば、オブジェクト管理テーブル１０３１における障害物対象フラグの情報）を含む。
一構成例として、ロボット制御装置において、物体が障害物であるか否かを示す情報は、ロボットの可動箇所（例えば、オブジェクト管理テーブル１０３１における左アーム、右アーム、腰軸）ごとに設定される。
一構成例として、ロボット制御装置において、第１情報を設定する情報を受け付ける。
一構成例として、ロボット制御装置において、第１情報と第２情報の一方または両方に基づく情報を表示する。
一構成例として、以上のようなロボット制御装置により制御される、ロボット（図１の例ではロボット１１、図１８の例ではロボット２０１１）である。
一構成例として、以上のようなロボット制御装置と、ロボット制御装置により制御されるロボットと、を備えるロボットシステム（図１の例ではロボットシステム１、図１８の例ではロボットシステム２００１）である。
【０１２２】
なお、以上に説明した装置（例えば、ロボット制御装置６１、２０１２）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体（記憶媒体）に記録（記憶）し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、オペレーティングシステム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）あるいは周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）あるいは電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１２３】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【０１２４】
１、２００１…ロボットシステム、１１、２０１１…ロボット、２１−１〜２１−２、３１−１〜３１−２、２４１〜２４４、２７２、２８２、２０２１…カメラ、４１−１〜４１−２、２７３、２８３、２０３２…力覚センサー、５１−１〜５１−２…掌、５２−１〜５２−２…爪、６１、２０１２…ロボット制御装置、８１、１５１１、２０５１…作業台、９１、２０５２…対象物、１１１…入力部、１１２…出力部、１１３…記憶部、１１４…制御部、１３１…情報取得部、１３２…制御態様決定部、１３３…ロボット制御部、２１１…ＣＰＵボード、２１２…サーボボード、２１３、２１４…制御ボード、２３１〜２３２…アーム、２３３〜２３４…ハンド、２５１…ビジョン処理部、２５２…モーション処理部、２６１…ＳｏＣ、２６２…ＦＰＧＡ、２７１、２８１…ジャイロ、３１１…ＣＰＵ、３１２…メモリー、３１３…チップセット、３１４…ＧＰＵ、３１５、３１６…コントローラー、３５１…処理部群、１０１１…定義オブジェクト管理テーブル、１０２１…把持関連情報管理テーブル、１０３１…オブジェクト管理テーブル、１０４１…把持状態情報管理テーブル、１１１１…オブジェクト、１１３１、１１３２…把持位置、１２１１〜１２１２…ハンド、１５３１…ねじ、１５３２…シャフト、１５５１…ねじ穴、１５５２…嵌め込み穴、２０１３、２０２２…ケーブル、２０３１…基端、Ｍ１、Ｍ２、Ｍ１１…マニピュレーター、Ｅ１、Ｅ２、Ｅ１１…エンドエフェクター、Ｔ１〜Ｔ３、Ｔ１０１〜Ｔ１０３、Ｔ２０１〜Ｔ２０３…タイミング群、Ｔ１１、Ｔ１１１…経路計画、Ｔ１２、Ｔ１１２…軌道計画、Ｔ１３…位置指令計算、Ｔ１３−１〜Ｔ１３−４、Ｔ１１３−１〜Ｔ１１３−４…タイミング、Ｔ１４、Ｔ１１４…位置移動終了、Ｔ２１、Ｔ１２１…衝突確認、Ｔ１１３…位置指令計算と力覚計算との合成、Ｔ２１１…物体認識準備、Ｔ２１２、Ｔ２１４、Ｔ２１６、Ｔ２１８…撮像、Ｔ２１３、Ｔ２１５、Ｔ２１７、Ｔ２１９…目標位置計算、Ｔ２２０…ビジュアルサーボ終了、Ｔ２４１〜Ｔ２４４…物体認識
【図１】
2018015858.tif 000003
【図２】
2018015858.tif 000004
【図３】
2018015858.tif 000005
【図４】
2018015858.tif 000006
【図５】
2018015858.tif 000007
【図６】
2018015858.tif 000008
【図７】
2018015858.tif 000009
【図８】
2018015858.tif 000010
【図９】
2018015858.tif 000011
【図１０】
2018015858.tif 000012
【図１１】
2018015858.tif 000013
【図１２】
2018015858.tif 000014
【図１３】
2018015858.tif 000015
【図１４】
2018015858.tif 000016
【図１５】
2018015858.tif 000017
【図１６】
2018015858.tif 000018
【図１７】
2018015858.tif 000019
【図１８】
2018015858.tif 000020