(57)【要約】【課題】例えば、よりエフェクタによるアクセスの精度の高いマニピュレータを備えた物体ハンドリング装置を得る。【解決手段】実施形態の物体ハンドリング装置は、例えば、ベースと、マニピュレータと、第一カメラと、較正処理部と、を備える。マニピュレータは、ベースに設けられ、リンクと、可動部と、リンクを回転駆動するモータと、を有する。第一カメラは、マニピュレータに設けられる。較正処理部は、第一カメラによるベースの所定位置の撮影結果、およびマニピュレータがベースに接触した際のリンクとモータの回転角の変化量に基づくマニピュレータに生じる負荷に基づいて可動部の位置の較正処理を実行する。【選択図】図１８Ａ
2018158439.tif 000002
【特許請求の範囲】
【請求項１】
ベースと、
前記ベースに設けられ、リンクと、可動部と、前記リンクを回転駆動するモータと、を有したマニピュレータと、
前記マニピュレータに設けられた第一カメラと、
前記第一カメラによる前記ベースの所定位置の撮影結果、および前記マニピュレータが前記ベースに接触した際の前記リンクと前記モータの回転角の変化量に基づく前記マニピュレータに生じる負荷に基づいて前記可動部の位置の較正処理を実行する較正処理部と、
を備えた、物体ハンドリング装置。
【請求項２】
前記ベースに設けられた第二カメラを備え、
前記較正処理部は、前記第二カメラが前記可動部を撮影した複数の画像に基づいて前記第二カメラの画像から得られる位置に対する画像較正値を取得することにより較正処理を実行する、請求項１に記載の物体ハンドリング装置。
【請求項３】
前記ベースに設けられた第一マークを備え、
前記較正処理部は、前記第一カメラが前記第一マークを撮影した画像に基づいて較正処理を実行する、請求項１または２に記載の物体ハンドリング装置。
【請求項４】
物体を載置する載置部を備え、
前記第一マークが前記載置部にあるいは前記載置部と隣接して設けられた、請求項３に記載の物体ハンドリング装置。
【請求項５】
前記較正処理部は、前記第一カメラが物体ハンドリング装置外の所定位置を撮影した画像に基づいて較正処理を実行する、請求項１〜４のうちいずれか一つに記載の物体ハンドリング装置。
【請求項６】
前記較正処理部は、前記物体ハンドリング装置外に位置されたエフェクタによるアクセス対象物に設けられた第二マークを前記第一カメラが撮影した画像に基づいて較正処理を実行する、請求項５に記載の物体ハンドリング装置。
【請求項７】
ベースと、前記ベースに設けられ、リンクと、可動部と、前記リンクを回転駆動するモータと、を有したマニピュレータと、前記マニピュレータに設けられた第一カメラと、を備えた、物体ハンドリング装置の較正処理を実行する制御装置であって、
前記第一カメラによる前記ベースの所定位置の撮影結果を取得する第一取得部と、
前記マニピュレータが前記ベースに接触した際の前記リンクと前記モータの回転角の変化量に基づく前記マニピュレータに生じる負荷を取得する第二取得部と、
前記第一取得部によって得られた前記撮影結果および前記第二取得部によって得られた前記負荷に基づいて前記可動部の位置の較正処理を実行する較正処理部と、
を備えた、制御装置。
【請求項８】
ベースと、前記ベースに設けられ、リンクと、可動部と、前記リンクを回転駆動するモータと、を有したマニピュレータと、前記マニピュレータに設けられた第一カメラと、前記可動部の位置の較正処理を実行する較正処理部と、を備えた物体ハンドリング装置によって実行される、較正方法であって、
前記第一カメラが、前記ベースの所定位置を撮影し、
前記較正処理部が、前記第一カメラによる撮影結果および前記マニピュレータが前記ベースに接触した際の前記リンクと前記モータの回転角の変化量に基づく前記マニピュレータに生じる負荷に基づいて前記可動部の位置の較正処理を実行する、
較正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、物体ハンドリング装置、制御装置、および較正方法に関する。
【背景技術】
【０００２】
従来、エフェクタを有したロボットアーム等のマニピュレータを備えた物体ハンドリング装置が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００３−５３３１６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、よりエフェクタによるアクセスの精度の高いマニピュレータを備えた物体ハンドリング装置が得られれば、有益である。
【課題を解決するための手段】
【０００５】
実施形態の物体ハンドリング装置は、例えば、ベースと、マニピュレータと、第一カメラと、較正処理部と、を備える。マニピュレータは、ベースに設けられ、リンクと、可動部と、リンクを回転駆動するモータと、を有する。第一カメラは、マニピュレータに設けられる。較正処理部は、第一カメラによるベースの所定位置の撮影結果、およびマニピュレータがベースに接触した際のリンクとモータの回転角の変化量に基づくマニピュレータに生じる負荷に基づいて可動部の位置の較正処理を実行する。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態の物体ハンドリング装置を含む物体ハンドリングシステムの模式的かつ例示的な斜視図である。
【図２】図２は、実施形態のコントローラの模式的かつ例示的なブロック図である。
【図３Ａ】図３Ａは、実施形態のハンドの構成を示す模式的かつ例示的な側面図（一部断面図）であって、吸着パッドが突出した状態を示す図である。
【図３Ｂ】図３Ｂは、実施形態のハンドの構成を示す模式的かつ例示的な側面図（一部断面図）であって、吸着パッドが突出しかつ傾いた状態を示す図である。
【図３Ｃ】図３Ｃは、実施形態のハンドの構成を示す模式的かつ例示的な側面図（一部断面図）であって、吸着パッドが収納された状態を示す図である。
【図３Ｄ】図３Ｄは、実施形態のハンドの構成を示す模式的かつ例示的な図３Ｃの視線と直交する方向から見た側面図（一部断面図）であって、吸着パッドが収納された状態を示す図である。
【図４】図４は、実施形態の別のハンドの模式的かつ例示的な斜視図であって、フィンガーが閉じた状態を示す図である。
【図５Ａ】図５Ａは、図４のフィンガーが開いた状態を示す図である。
【図５Ｂ】図５Ｂは、図４のフィンガーが開いた状態を示す図であって、図５Ａとは異なる方向から見た図である。
【図６】図６は、実施形態のハンド制御部のブロック図である。
【図７Ａ】図７Ａは、図４のハンドの動作手順の一例を示す模式的かつ例示的な側面図である。
【図７Ｂ】図７Ｂは、図４のハンドの動作手順の一例を示す模式的かつ例示的な側面図であって、図７Ａの次の段階を示す図である。
【図７Ｃ】図７Ｃは、図４のハンドの動作手順の一例を示す模式的かつ例示的な側面図であって、図７Ｂの次の段階を示す図である。
【図７Ｄ】図７Ｄは、図４のハンドの動作手順の一例を示す模式的かつ例示的な側面図であって、図７Ｃの次の段階を示す図である。
【図７Ｅ】図７Ｅは、図４のハンドの動作手順の一例を示す模式的かつ例示的な側面図であって、図７Ｄの次の段階を示す図である。
【図８】図８は、実施形態のさらに別のハンドの模式的かつ例示的な側面図である。
【図９】図９は、実施形態の物体ハンドリング装置を含むシステムの基本動作の一例が示されたフローチャートである。
【図１０】図１０は、実施形態の物体ハンドリング装置を含むシステムの基本動作の別の一例が示されたフローチャートである。
【図１１】図１１は、実施形態の情報取得システムの模式的かつ例示的な斜視図である。
【図１２】図１２は、実施形態の物体データベースに格納されている物体情報を示す表である。
【図１３】図１３は、実施形態の把持データベースに格納されている把持情報を示す表である。
【図１４】図１４は、情報取得システムによる物体情報を取得する手順を示す例示的なフローチャートである。
【図１５】図１５は、実施形態の把持基本系モデルの模式図である。
【図１６】図１６は、実施形態の把持方法基本データの模式図である。
【図１７】図１７は、実施形態の情報取得システムによる把持情報の自動生成の手順の一部を示す模式図である。
【図１８Ａ】図１８Ａは、実施形態の物体ハンドリング装置のオートキャリブレーションの手順を示す例示的なフローチャートである。
【図１８Ｂ】図１８Ｂは、実施形態のベース座標系とマニピュレータ座標系との間の平面誤差の説明図である。
【図１８Ｃ】図１８Ｃは、実施形態のカメラによって撮影された較正パターンが設けられたマニピュレータの画像を示す模式図である。
【図１９Ａ】図１９Ａは、実施形態の物体データベースおよび把持データベースに基づくハンドによるハンドリングの手順を示す例示的なフローチャートである。
【図１９Ｂ】図１９Ｂは、実施形態の物体データベースおよび把持データベースに基づくハンドによるハンドリングの手順を示す例示的なフローチャートであって、図１９Ａの続きを示す図である。
【図２０Ａ】図２０Ａは、実施形態の動作経由点を示す模式的かつ例示的な図であって、初期位置、対象物、および搬送目標位置を示す図である。
【図２０Ｂ】図２０Ｂは、実施形態の動作経由点を示す模式的かつ例示的な図であって、初期位置から把持目標位置までの動作経由点を示す図である。
【図２０Ｃ】図２０Ｃは、実施形態の動作経由点を示す模式的かつ例示的な図であって、引上位置から把持解放位置までの動作経由点を示す図である。
【図２１Ａ】図２１Ａは、実施形態のマニピュレータ制御部の模式的かつ例示的なブロック図である。
【図２１Ｂ】図２１Ｂは、実施形態の画像特徴量目標値の模式的かつ例示的な説明図である。
【図２１Ｃ】図２１Ｃは、実施形態のマニピュレータ制御部の別の例の模式的かつ例示的なブロック図である。
【図２１Ｄ】図２１Ｄは、実施形態のマニピュレータ制御部におけるパラメータ変更の手順を示すフローチャートである。
【図２２Ａ】図２２Ａは、図１９Ａの状態変更動作の手順を示すフローチャートである。
【図２２Ｂ】図２２Ｂは、図１９Ａの状態変更動作の図２２Ａとは別の手順を示す例示的なフローチャートである。
【図２３】図２３は、図１９Ｂの把持探索動作の手順を示す例示的なフローチャートである。
【図２４】図２４は、図１９Ｂのリトライ動作の手順を示す例示的なフローチャートである。
【図２５Ａ】図２５Ａは、実施形態の学習動作やデータベースの生成を実行する手順を示す例示的なフローチャートである。
【図２５Ｂ】図２５Ｂは、実施形態の学習・データベース生成モードでの把持および搬送の手順を示す例示的なフローチャートである。
【図２６】図２６は、実施形態の複数の物体ハンドリング装置で学習データを共有する学習システムの例示的な概略構成図である。
【図２７】図２７には、図１の物体ハンドリングシステムとは別の実施形態のシステムを示す模式的かつ例示的な構成図である。
【図２８】図２８は、実施形態のマニピュレータの模式的かつ例示的な断面図である。
【図２９】図２９は、図２８のマニピュレータの１リンク分を示す模式図である。
【図３０】図３０は、一般的な速度制御系のブロック図である。
【図３１】図３１は、物理パラメータのファインチューニングによる効果を示す図である。
【図３２】図３２は、実施形態のマニピュレータ制御部のオブザーバの例示的なブロック図である。
【図３３】図３３は、図３２のオブザーバを有したマニピュレータ制御部のブロック図である。
【図３４】図３４は、実施形態のマニピュレータ制御部の別の例を示すブロック図である。
【図３５】図３５は、実施形態のオブザーバの別の例を示すブロック図である。
【図３６】図３６は、実施形態のオブザーバのさらに別の例を示すブロック図である。
【発明を実施するための形態】
【０００７】
以下、本発明の例示的な実施形態が開示される。以下に示される実施形態の構成や制御（技術的特徴）、ならびに当該構成や制御によってもたらされる作用および結果（効果）は、一例である。また、以下に例示される実施形態の複数の構成等には、同様の構成要素が含まれている。以下、同様の構成要素には共通の符号が付与され、重複する説明が省略される。
【０００８】
［システムの構成］
図１は、実施形態の物体ハンドリング装置１（ハンドリングロボット）を含む物体ハンドリングシステム（ロボットハンドリングシステム）の斜視図である。
【０００９】
物体ハンドリング装置１は、物体Ｐを搬送する装置である。物体Ｐは、例えば、商品や、物品、部品等であって、その大きさや、硬さ等のスペックは様々である。物体Ｐは、対象物や、搬送物等とも称されうる。
【００１０】
図１に示されるように、物体ハンドリング装置１は、コントローラ１００や、マニピュレータ２０、ベース３０、搬送機構４０、処理部５０、移動機構６等を有している。ベース３０は、多方向移動ホイールや、回転ホイール、クローラ、駆動モータ等を含む移動機構６によって、フロアや地面上を自在に移動可能に構成されており、これにより、ベース３０に固定されたコントローラ１００や、マニピュレータ２０、搬送機構４０、処理部５０も、ベース３０と一体にフロアや地面上を自在に移動することができる。
【００１１】
搬送機構４０は、マニピュレータ２０とは別に設けられた物体Ｐの搬送装置である。具体的には、ローラやベルトコンベヤ等を有し、コントローラ１００によって動作が制御されることにより、物体ハンドリング装置１内の所定位置と物体ハンドリング装置１外の所定位置との間で物体Ｐを搬送することができる。例えば、マニピュレータ２０が物体Ｐを物体ハンドリング装置１に搬入する場合には、当該搬入後に、搬送機構４０は当該物体Ｐを物体ハンドリング装置１外に搬出することができる。他方、マニピュレータ２０が物体Ｐを物体ハンドリング装置１から搬出する場合には、当該搬出前に、搬送機構４０は当該物体Ｐを物体ハンドリング装置１内に搬入することができる。また、図１に示されるように、搬送機構４０は、ケースＢに収容された状態で、あるいはケースＢ単位で、物体Ｐを搬送することができる。
【００１２】
処理部５０は、ベース３０上に設けられ、物体Ｐの一時的な保持や、載置、保管等に利用される。処理部５０は、作業場所や、作業スペース、作業領域、作業テーブル、バッファ等と称されうる。処理部５０には、複数のマーク５１が設けられている。マーク５１は、カメラ２１，３３等による撮影のターゲットとなり、物体Ｐの搬送や、後述するキャリブレーション等に利用される。また、処理部５０には、ＲＦ−ＩＤリーダライタや、バーコードリーダ、各種センサ等（不図示）が設けられうる。カメラ２１は、第一カメラの一例であり、カメラ３３は、第二カメラの一例である。また、処理部５０は、載置部の一例であり、マーク５１は、第一マークの一例である。
【００１３】
また、ベース３０には、バキュームポンプ１ａや、バッテリ１ｂの他、不図示のボンベやコンプレッサ、ユーザインタフェース、安全機構等が装備されうる。バキュームポンプ１ａは、例えば、マニピュレータ２０が物体Ｐを吸着する場合に当該吸着するためのエアやガスの負圧を生じる。バッテリ１ｂは、例えば、バキュームポンプ１ａや、マニピュレータ２０がモータ駆動される場合の当該モータ等の電力源である。ボンベやコンプレッサは、例えば、マニピュレータ２０が空気圧駆動される場合のエアやガスの正圧の生成や、吸着の解放処理、電磁弁の駆動等に用いられうる。また、ボンベやコンプレッサは、エジェクターと接続することにより、負圧の生成にも利用されうる。ユーザインタフェースは、例えば、操作ボタンや、スイッチ、キーボード等である。安全機構は、例えば、ライトカーテンや衝突検知器等である。
【００１４】
マニピュレータ２０は、アーム２と、ハンド２００と、を有している。アーム２は、所謂多関節または多軸ロボットアームであり、例えば、複数のサーボモータで駆動される。また、アーム２は、例えば、垂直多関節型、水平多関節型、直動ロボットを複数組み合わせた型のロボット等であってもよい。また、アーム２には、力センサ等の各種センサ（不図示）が設けられる。また、ハンド２００は、例えば、吸着や、ジャミング、挟み込み等による多指機構によって、物体Ｐ（対象物）を把持する機構である。ハンド２００は、把持機構や、エフェクタ、エンドエフェクタと称されうる。ハンド２００は、例えば、小型アクチュエータや、柔軟性を得るための弾性機構２００ｅ（弾性部、図３Ａ等）等を有している。また、ハンド２００には、カメラ２１や、力センサ等の各種センサ（不図示）等が設けられている。ハンド２００の詳細な構成については、後述する。弾性機構２００ｅは、弾性関節とも称されうる。アーム２およびハンド２００は、可動部の一例である。
【００１５】
作業台７０は、例えば、ラックや、シェルフ、組立作業を行うテーブル等であり、物体ハンドリング装置１による物体Ｐの搬出先あるいは搬入元の場所を提供する。作業台７０には、マーク７１が設けられている。マーク７１は、カメラ２１，３３等による撮影のターゲットとなり、物体Ｐの搬送や、後述するキャリブレーション等に利用される。また、システムには、物体ハンドリング装置１とは別のロボット８等が含まれてもよい。マーク７１は、第二マークの一例である。
【００１６】
［コントローラの構成］
図２は、コントローラ１００のブロック図である。図２に示されるように、コントローラ１００は、演算処理部１０１や、各種データベースの他、主記憶部（不図示）、補助記憶部（不図示）等を有している。データベースには、例えば、物体データベース１０２ａ（物体ＤＢ）や、把持データベース１０２ｂ（把持ＤＢ）、ロボットデータベース１０２ｃ（ロボットＤＢ）、環境データベース１０２ｄ（環境ＤＢ）等がある。また、主記憶部は、例えば、ＲＯＭやＲＡＭ等であり、補助記憶部は、例えば、ＨＤＤやＳＳＤ等である。データベースは、補助記憶部の一部であってもよい。
【００１７】
演算処理部１０１は、マニピュレータ制御部１１０や、画像処理部１０１ａ、信号処理部１０１ｂ、計画生成部１０１ｃ、把持・動作計画生成部１０１ｄ、状態監視部１０１ｅ、エラー検出部１０１ｆ、学習制御部１０１ｇ、物体認識部１０１ｈ等を有している。また、マニピュレータ制御部１１０は、アーム制御部１２０や、ハンド制御部１４０等を含んでいる。
【００１８】
画像処理部１０１ａは、各種画像センサ情報を処理し、動作計画や動作制御、エラー検出や学習に必要な情報を生成する。
【００１９】
信号処理部１０１ｂは、各種センサ情報に対し、信号増幅処理やアナログデジタル変換処理や雑音除去や特徴情報の抽出、状態変化の判定処理などの信号処理を実行する。
【００２０】
計画生成部１０１ｃは、ユーザー入力情報とシステムの状態、各種センサ情報をもとに、物体ハンドリング装置１の作業計画を生成、管理する。
【００２１】
把持・動作計画生成部１０１ｄは、マニピュレータ２０による物体Ｐの把持、移載の動作に関する動作計画を生成する。一例として、物体Ｐの把持を行う際には、現在のハンド２００の位置から、周囲環境に干渉することなく、物体Ｐを把持可能な位置までのハンド２００の移動経由点を算出する処理を行う。この場合、把持・動作計画生成部１０１ｄは、位置情報や、時間情報、速度情報、加速度情報等を含む動作計画を算出してもよい。
【００２２】
アーム制御部１２０は、主としてアーム２の動作を制御する。アーム制御部１２０は、手先軌道生成部１２１や、軸角生成部１２２、姿勢監視部１２３、駆動制御部１２４等を含む。
【００２３】
手先軌道生成部１２１は、マニピュレータ２０（ハンド２００）の手先の動作軌道を制御するための手先軌道情報を生成する。手先軌道情報は、例えば、アーム２に極力負荷をかけず滑らかな移動を可能とする手先の軌道の情報であって、位置情報や、時間情報、速度情報、加速度情報等を含みうる。
【００２４】
軸角生成部１２２は、マニピュレータ２０（ハンド２００）の手先が手先軌道情報に従って移動するためのアーム２の各関節の角度を変化させるモータ（不図示）の角度情報を生成する。角度情報は、例えば、角度情報や、時間情報、角速度情報、角加速度情報等を含みうる。
【００２５】
姿勢監視部１２３は、マニピュレータ２０に含まれる複数の軸駆動部（不図示）の位置を監視し、マニピュレータ２０の姿勢を算出する。
【００２６】
駆動制御部１２４は、軸角生成部１２２で生成された角度情報にしたがって、マニピュレータ２０のモータの動作（位置）、ひいてはマニピュレータ２０の動作（位置や姿勢等）を制御する。
【００２７】
状態監視部１０１ｅは、姿勢監視部１２３から得られた情報から取得された姿勢情報に基づいて、例えば、動作中や、停止中、動作完了等といったマニピュレータ２０の動作状態を示す動作状態情報を生成する。
【００２８】
エラー検出部１０１ｆは、物体ハンドリング装置１の状態や、作業計画の実施状態、駆動制御状態、物体Ｐの把持状態、物体Ｐの搬送の状態等を測定し、エラーを検知する。
【００２９】
学習制御部１０１ｇは、マニピュレータ２０の振動抑制など動作精度向上のためのロボットモデル学習や、物体Ｐの把持性能向上のための把持制御パラメータ学習、把持データベース学習、作業計画の実施性能向上のためのエラー検知学習、等の学習機能を制御する。
【００３０】
物体認識部１０１ｈは、画像処理部１０１ａによる物体Ｐの画像を含む画像処理結果に基づいて、物体Ｐを認識する。
【００３１】
データベース情報生成更新部１０１ｉ（ＤＢ情報生成更新部）は、物体データベース１０２ａに格納される物体情報および把持データベース１０２ｂに格納される把持情報を生成し、かつ更新する。データベース情報生成更新部１０１ｉの処理については後に詳しく述べる。
【００３２】
自動較正部１０１ｊは、オートキャリブレーションを実行する。オートキャリブレーションについては後に詳しく述べる。自動較正部１０１ｊは、較正処理部の一例である。
【００３３】
物体データベース１０２ａには、物体Ｐの属性情報が格納されている。以下では、物体Ｐの属性情報を物体情報と称する。また、把持データベース１０２ｂには、物体Ｐ毎に、当該物体を把持する制御に関わる各種情報が格納されている。物体データベース１０２ａおよび把持データベース１０２ｂについては後に詳しく述べる。
【００３４】
ロボットデータベース１０２ｃには、物体ハンドリング装置１の構造や、各部のスペック（例えば、寸法や、重量、慣性モーメント等）、各駆動部（モータ等）の性能諸元（例えば、動作範囲や、速度、トルク性能等）が保存されている。
【００３５】
環境データベース１０２ｄには、物体ハンドリング装置１が対応している作業台７０の情報や、物体ハンドリング装置１の動作範囲や周囲の干渉物など周囲環境情報が保存されている。
【００３６】
［ハンドの構成例１］
図３Ａ〜図３Ｄは、ハンド２００Ａ（２００）の構成例を示す側面図（一部断面図）である。図３Ａ〜図３Ｄに示されるハンド２００Ａは、吸着パッド２００ａ、フィンガー２００ｂ等の複数の把持機構を有している。また、吸着パッド２００ａは、ジャミング機構等で構成してもよい。すなわち、ハンド２００Ａは、複数の異なる把持方法によって、物体Ｐを把持することができる。また、コントローラ１００のハンド制御部１４０は、物体Ｐを把持する際、当該物体Ｐに適した把持機構を選択して用いることができる。なお、フィンガー２００ｂは、平行移動する多指フィンガーや、多関節フィンガーである。
【００３７】
図３Ｂに示されるように、ハンド２００Ａは、コントローラ１００のハンド制御部１４０によって姿勢可変機構２００ｄを制御し、吸着パッド２００ａの姿勢（角度）を変化することができるよう、構成されている。よって、ハンド２００Ａは、より確実に物体Ｐを把持することができる。
【００３８】
ハンド２００Ａは、弾性機構２００ｅおよびジャミング部２００ｃを有している。弾性機構２００ｅおよびジャミング部２００ｃによって、ハンド２００Ａから物体Ｐに印加される力が抑制される。また、ハンド２００Ａは、弾性機構２００ｅの弾性変形可能な状態と不可能な状態とを切り替えるクラッチ２００ｆを有している。よって、物体Ｐを把持して搬送している状態で、クラッチ２００ｆにより弾性機構２００ｅの相対変位可能な二箇所の相対変位を制限することで、弾性機構２００ｅの弾性に起因するハンド２００Ａの振動を、抑制することができる。ジャミング部２００ｃは、例えば、弾性伸縮機構を覆うように設けられ、ジャミングによる状態の固定化を行うことにより、クラッチ２００ｆと同様に、伸縮部の相対変位を制限し、弾性に起因するハンド２００Ａの振動を抑制することができる。
【００３９】
ハンド２００Ａには、接触センサ２００ｇや、力センサ２００ｈ、変位センサ２００ｉ（例えば、非接触レーザ変位計）が設けられている。さらに、ハンド２００Ａに設けられたカメラ２１は、例えば、距離情報を検出できるカメラ（例えば、ＲＧＢＤセンサ）である。よって、コントローラ１００のアーム制御部１２０やハンド制御部１４０がこれらセンサやカメラによる検出結果に基づいてモータ等の制御対象を制御することにより、ハンド２００から物体Ｐに印加される力がより一層抑制されうる。
【００４０】
また、吸着パッド２００ａを、突出位置ｐａ（図３Ａ，図３Ｂ）と収納位置ｐｂ（図３Ｃ，図３Ｄ）との間で移動可能に構成することにより、吸着パッド２００ａによる物体Ｐの把持が可能な状態（図３Ａ，図３Ｂ）と、フィンガー２００ｂによる物体Ｐの把持が可能な状態（図３Ｃ，図３Ｄ）とを切り替えることができる。
【００４１】
［ハンドの構成例２］
図４、図５Ａ、および図５Ｂは、ハンド２００Ｂ（２００）の構成例を示す斜視図である。図４は、フィンガー２００ｂが閉じた状態、図５Ａおよび図５Ｂは、フィンガー２００ｂが開いた状態を示し、図５Ｂは、図５Ａとは異なる方向から見た図である。
【００４２】
ハンド２００Ｂは、ベース２００ｊにガイド２００ｋを介してそれぞれ平行移動可能に設けられた二つのフィンガー２００ｂを有している。ガイド２００ｋは、例えば、レールとスライダとを有し、フィンガー２００ｂを直線状の軌道に沿って移動可能に案内するとともに、当該軌道上の複数の位置で位置決めすることができる。このような構成により、複数のフィンガー２００ｂは、互いの距離（間隔）を変化させることができる。なお、ガイド２００ｋによるフィンガー２００ｂの案内方向は、アーム２の先端部分の長手方向との交差方向（直交方向）である。
【００４３】
ハンド２００Ｂは、回転直動変換機構２００ｍを有している。回転直動変換機構２００ｍは、ベース２００ｊ内に収容されたモータ（不図示）の回転を直動に変換する機構であり、例えばラックアンドピニオンである。このような構成により、コントローラ１００のハンド制御部１４０によってモータを制御することにより、フィンガー２００ｂの位置、すなわち二つのフィンガー２００ｂの距離（間隔）を制御することができる。本実施形態では、回転直動変換機構２００ｍが、フィンガー２００ｂのそれぞれに対応して設けられている。ただし、回転直動変換機構２００ｍは、これには限定されず、種々の構成や方式が採用されうる。一例として、回転直動変換機構２００ｍは、モータに連動して回転するピニオンと、当該ピニオンと噛み合う互いに平行な二つのラックとを有し、ラックがそれぞれフィンガー２００ｂをガイド２００ｋに沿って平行移動させる構成であってもよいし、別の例として、回転直動変換機構２００ｍは、モータによって回転される雌ねじナットとベース２００ｊに回り止めされて直動する雄ねじシャフトとを有したねじ機構であってもよい。また、モータと回転直動変換機構２００ｍとの間に、減速機構や、回転方向変換機構等が介在してもよい。
【００４４】
フィンガー２００ｂは、ガイド２００ｋに沿って案内される移動ベース２００ｂ１に、先端部２００ｂ２が弾性的に伸縮可能に支持された、フローティング構造（弾性伸縮構造）を有している。先端部２００ｂ２は、弾性機構２００ｅを介して、移動ベース２００ｂ１に、フィンガー２００ｂの延びる方向に移動可能に支持されている。移動ベース２００ｂ１に対する先端部２００ｂ２の移動方向は、アーム２の先端部分の長手方向である。変位センサ２００ｉは、移動ベース２００ｂ１と先端部２００ｂ２との相対変位を測定する。なお、変位センサ２００ｉは、エンコーダや、超音符センサ、可変抵抗、静電容量センサ、パルスコーダ―、ファイバセンサ等であってもよい。本実施形態では、フィンガー２００ｂの形状が先細りであるとともに板状であり、かつ弾性機構２００ｅや変位センサ２００ｉがフィンガー２００ｂの先端から離間して配置されている。このような構成により、フィンガー２００ｂが狭い隙間等にも入り易いという効果が得られる。
【００４５】
図６は、ハンド制御部１４０のブロック図である。ハンド制御部１４０は、コマンド生成部１４０ａ、目標値生成部１４０ｂ、駆動制御部１４０ｃ、判定部１４０ｄ、ドライバ１４０ｅを有する。
【００４６】
コマンド生成部１４０ａは、把持・動作計画生成部１０１ｄ（図２）から計画生成部１０１ｃ（図２）を経由して入力された動作命令に応じて、各作業プロセスで必要となる動作手順を動作コマンドとして生成する。把持・動作計画生成部１０１ｄ、計画生成部１０１ｃ、およびコマンド生成部１４０ａは、それぞれの演算処理に際し、物体データベース１０２ａや把持データベース１０２ｂを参照することができる。物体データベース１０２ａおよび把持データベース１０２ｂの利用については、後に詳しく述べる。なお、動作命令は、マニピュレータ２０のアーム２やハンド２００の一連の動作に関する命令であり、例えばプログラムの形態で保持される。また、動作命令は、不図示のユーザインタフェースにおいて表示された命令コマンドを作業者がタッチすることにより与えられてもよいし、作業者の音声指示により与えられてもよい。
【００４７】
目標値生成部１４０ｂは、コマンド生成部１４０ａからモータ等の駆動部（可動部）に対する動作コマンドの指令を受け取る。目標値生成部１４０ｂは、駆動部の目標値を算出し、駆動部の駆動に関する目標指令値を生成する。
【００４８】
駆動制御部１４０ｃは、目標値生成部１４０ｂから駆動部の目標指令値を受け取り、目標指令値に応じて駆動部を駆動するための駆動指示を生成する。
【００４９】
判定部１４０ｄは、信号処理部１０１ｂから各種センサによる検出結果を受け取るとともに、コマンド生成部１４０ａから動作コマンドを受け取る。判定部１４０ｄは、各種センサによる検出結果と、動作コマンドとに基づいて、動作コマンドに応じた動作が得られた状況であるか否かを判定し、当該状況に応じてコマンド生成部１４０ａに戻値コマンド（補正指令）を与えることができる。また、判定部１４０ｄは、当該状況に応じて駆動制御部１４０ｃに駆動停止指令を与えることができる。
【００５０】
ドライバ１４０ｅは、駆動制御部１４０ｃから駆動部の駆動指令を受け取り、駆動部の駆動出力を生成する。すなわち、ドライバ１４０ｅによって駆動部が駆動される。
【００５１】
［ハンドの動作例］
図７Ａ〜図７Ｅは、ハンド２００Ｂの動作手順の一例を示す模式図である。図７Ａに示されるように、アーム制御部１２０によって制御されたアーム２の動作に伴い、当該アーム２の先端部に設けられたハンド２００Ｂは、物体Ｐの上方から所定位置まで下降する。このときハンド２００Ｂの二つのフィンガー２００ｂは閉じた状態である。
【００５２】
このとき、図７Ａに示されるように、アーム制御部１２０は、計画生成部１０１ｃで計画された計画や、カメラ２１によって撮影された画像、各種センサの検出結果等に基づいて、アーム２の駆動部を制御し、物体Ｐより上方に離間した所定位置で、マニピュレータ２０の下降を停止することができる。
【００５３】
次に、図７Ｂに示されるように、ハンド制御部１４０は、計画生成部１０１ｃで計画された計画や、カメラ２１によって撮影された画像、各種センサの検出結果等に基づいて、二つのフィンガー２００ｂの間隔が物体Ｐの幅よりも僅かに広くなるよう、ハンド２００Ｂの駆動部を制御する。
【００５４】
次に、図７Ｃに示されるように、アーム制御部１２０は、計画生成部１０１ｃで計画された計画や、カメラ２１によって撮影された画像、各種センサの検出結果等に基づいて、ハンド２００Ｂが物体Ｐを把持する所定位置（把持位置）まで下降するよう、アーム２の駆動部を制御する。
【００５５】
次に、図７Ｄに示されるように、ハンド制御部１４０は、計画生成部１０１ｃで計画された計画や、カメラ２１によって撮影された画像、各種センサの検出結果等に基づいて、二つのフィンガー２００ｂの間隔が狭まって二つのフィンガー２００ｂが物体Ｐを把持するよう、ハンド２００Ｂの駆動部を制御する。
【００５６】
次に、図７Ｅに示されるように、アーム制御部１２０は、計画生成部１０１ｃで計画された計画や、カメラ２１によって撮影された画像、各種センサの検出結果等に基づいて、ハンド２００Ｂが物体Ｐを把持した状態で把持位置よりも上方の所定位置まで上昇するよう、アーム２の駆動部を制御する。
【００５７】
アーム制御部１２０およびハンド制御部１４０は、アーム２およびハンド２００Ｂの一連の動作を、計画生成部１０１ｃによって予め計画された計画に従って実行することができる。また、アーム制御部１２０およびハンド制御部１４０は、例えば、カメラ２１によって撮影された画像やセンサの検出結果等から、ハンド２００Ｂが物体Ｐや処理部５０と接触したことが判定できた場合に、当該接触した位置でアーム２の下降を停止するとともにアーム２を僅かに上方へ移動させるなど、適宜カメラやセンサ等の結果に応じたアーム２およびハンド２００Ｂの制御を実行してもよい。なお、下降、把持、および上昇のハンド２００Ｂの一連の動作は、物体Ｐの把持方式によらず実行されうる。
【００５８】
［ハンドの構成例３］
図８は、ハンド２００Ｃ（２００）の構成例を示す斜視図である。図８に示されるように、ハンド２００Ｃでは、フィンガー２００ｂの先端部に吸着パッド２００ａが設けられている。この場合、ハンド制御部１４０は、物体Ｐに応じて、あるいはその他の状況に応じて、吸着パッド２００ａによる物体Ｐの把持か、フィンガー２００ｂによる物体Ｐの把持かを、選択することができる。また、この場合、吸着パッド２００ａは、図３Ｂのハンド２００Ａのように、姿勢可変機構２００ｄを介してフィンガー２００ｂに回転可能に設けられているのが好適である。
【００５９】
［システムの基本動作１（作業台への部品の供給）］
図９は、システムの基本動作の一例が示されたフローチャートである。ここでは、搬送機構４０が、ケースＢとしての部品かごに収容された物体Ｐとしての部品を、部品かごごと物体ハンドリング装置１内に取得（搬入）し、マニピュレータ２０が当該部品を作業台７０へ搬出する場合が例示される。
【００６０】
まず、コントローラ１００において、システムが起動されるかまたはリセットされるとともに、上位系から動作指示を受け取ると（Ｓ１０１）、コントローラ１００は、まず、初期キャリブレーション動作を実行する（Ｓ１０２）。この場合、コントローラ１００は、特段問題が無ければ、上位系に問題が無い旨を通知する。これにより、上位系からコントローラ１００に、部品の作業台７０への供給が指示されるか、あるいは当初受け取っていた動作指示（供給指示）に基づく制御が開始される。なお、初期キャリブレーション動作については、後に詳しく述べる。
【００６１】
次に、コントローラ１００は、部品（供給対象部品）を収容した部品かごが、物体ハンドリング装置１外の所定位置、例えば部品棚から、物体ハンドリング装置１内の所定位置に搬送されるよう、搬送機構４０を制御する（Ｓ１０３）。
【００６２】
次に、コントローラ１００は、ベース３０の支柱３２に設けられたカメラ３３を（図１）、部品かごを撮影するよう制御する（Ｓ１０４）。
【００６３】
次に、コントローラ１００は、カメラ３３によって撮影された画像に基づいて、部品かご内における供給対象部品の有無の確認と、部品かご内における当該部品の位置、姿勢、および把持位置の計算と、を実行する（Ｓ１０５）。
【００６４】
次に、コントローラ１００は、部品かご内の供給対象部品を把持するよう、マニピュレータ２０を制御する（Ｓ１０６）。
【００６５】
次に、コントローラ１００は、カメラ２１，３３によって撮影された画像や、各種センサの検出結果等に基づいて、ハンド２００による供給対象部品の把持状態を確認する（Ｓ１０７）。
【００６６】
次に、コントローラ１００は、カメラ２１，３３によって撮影された画像等に基づいて、作業台７０（搬送先）が部品を供給できる状態にあるか否かを確認する（Ｓ１０８）。
【００６７】
次に、コントローラ１００は、ハンド２００が把持した部品を作業台７０の指定位置に所定姿勢で配置するよう、マニピュレータ２０を制御する（Ｓ１０９）。
【００６８】
一連の作業が終了すると、コントローラ１００は、待機位置に移動するよう、マニピュレータ２０を制御する（Ｓ１１０）。
【００６９】
［システムの基本動作２（作業台からの部品の取り出し）］
図１０は、システムの基本動作の別の一例が示されたフローチャートである。ここでは、マニピュレータ２０が作業台７０から物体Ｐとしての部品を物体ハンドリング装置１内に取得（搬入）し、搬送機構４０が当該部品を物体ハンドリング装置１外へ搬出する場合が例示される。
【００７０】
まず、コントローラ１００において、システムが起動されるかまたはリセットされるとともに、上位系から動作指示を受け取ると（Ｓ２０１）、コントローラ１００は、まず、ハンド２００が作業台７０近傍の所定位置へ移動するよう、マニピュレータ２０を制御する（Ｓ２０２）。
【００７１】
次に、コントローラ１００は、ハンド２００のカメラ２１によって撮影されたマーク７１の画像等に基づいて、作業台７０の位置および姿勢を認識するとともに、当該認識した結果に基づいて、バーチャル作業空間（演算空間）における作業台７０の位置データの補正を実行する（Ｓ２０３）。
【００７２】
次に、コントローラ１００は、作業台７０に存在する部品（取出対象部品）を撮影するようハンド２００のカメラ２１を制御するとともに、撮影された画像に対する画像処理等により、当該部品を認識する（Ｓ２０４）。
【００７３】
次に、コントローラ１００は、作業台７０に存在する取出対象部品を把持するよう、マニピュレータ２０を制御する（Ｓ２０５）。
【００７４】
次に、コントローラ１００は、カメラ２１，３３によって撮影された画像や、各種センサの検出結果等に基づいて、ハンド２００による取出対象部品の把持状態を確認する（Ｓ２０６）。
【００７５】
次に、コントローラ１００は、カメラ２１，３３によって撮影された画像や、各種センサの検出結果等に基づいて、搬送先の状態を確認する（Ｓ２０７）。
【００７６】
次に、コントローラ１００は、ハンド２００が把持した部品を物体ハンドリング装置１の指定位置に所定姿勢で配置するよう、マニピュレータ２０を制御する（Ｓ２０８）。この場合の指定位置は、例えば、搬送機構４０上である。
【００７７】
次に、コントローラ１００は、取出対象部品の状態やバーコードなどを確認する。さらに、物体データベース１０２ａを更新する（Ｓ２０９）。
【００７８】
次に、コントローラ１００は、部品（供給対象部品）を収容した部品かごが、物体ハンドリング装置１内の所定位置から、物体ハンドリング装置１外の所定位置、例えば部品棚に搬送されるよう、搬送機構４０を制御する（Ｓ２１０）。
【００７９】
［情報取得システムの構成］
図１１は、情報取得システム３００の斜視図である。図１１に示される情報取得システム３００は、スライドステージ３０１や、回転ステージ３０２、位置調整機構３０３、センサアーム３０４、スライド機構３０５、ＲＧＢカメラ３０６、距離画像カメラ３０７、レーザセンサ３０８、照明アーム３０９、照明３１０、コントローラ３２０等を備えている。
【００８０】
コントローラ３２０は、ＲＧＢカメラ３０６が物体Ｐの種々の方向からの画像を撮影し、かつ距離画像カメラ３０７が物体Ｐの種々の方向からの距離画像を撮影するよう、各部を制御する。物体Ｐは、回転ステージ３０２上に載せられている。位置調整機構３０３は、回転ステージ３０２の高さ方向の位置を変化させ、スライドステージ３０１は回転ステージ３０２の水平方向の位置を変化させる。センサアーム３０４は、位置調整機構３０３に回動可能に支持されている。このような構成にあっては、コントローラ３２０が、スライドステージ３０１の水平位置、回転ステージ３０２の角度、位置調整機構３０３の伸縮度、センサアーム３０４の角度を設定あるいは調整することにより、ＲＧＢカメラ３０６および距離画像カメラ３０７による物体Ｐの撮影方向および撮影距離を変更することができる。なお、以下では、スライドステージ３０１、回転ステージ３０２、位置調整機構３０３、およびセンサアーム３０４を、可動機構と称することがある。レーザセンサ３０８による距離の測定結果は、距離画像カメラ３０７による測定距離のキャリブレーションに用いることができる。また、コントローラ３２０は、照明３１０による照明条件を調整することができる。
【００８１】
コントローラ３２０は、撮影された画像や、センサによる検出結果に基づいて、物体Ｐの物体情報を生成する。生成された物体情報は、物体データベース１０２ａに格納される。また、コントローラ３２０は、物体Ｐの物体情報に基づいて、当該物体Ｐを把持するための把持情報を生成することができる。生成された把持情報は、把持データベース１０２ｂに格納される。また、コントローラ３２０は、把持情報に、入力あるいは受信された情報等から、物体Ｐの把持可能な位置や姿勢、把持のしやすさ等を示す把持スコア、把持実行時の押し込み可能量、把持判定のための閾値等を、付加して格納することができる。
【００８２】
また、情報取得システム３００は、オペレータによる操作を入力するためのユーザインタフェース（不図示）を備える。また、情報取得システム３００は、重量センサを有するとともに、その他のセンサ（不図示）を有することができる。また、情報取得システム３００は、全体を覆うカバー（不図示）を装着できるよう構成されうる。
【００８３】
［物体データベースおよび把持データベース］
図１２は、物体データベース１０２ａに格納されている物体情報を示す表である。物体データベース１０２ａに格納される物体情報には、例えば、物体ＩＤ番号や、物体名情報、アイテムカテゴリ情報、多方向２次元画像情報、３次元画像情報、詳細ＣＡＤモデル情報、簡易ＣＡＤモデル情報、バーコード情報、物体判定用識別器情報、重量情報、把持時の特性情報（例えば、柔らかい、壊れやすい、形が変わる等）、撮影条件情報等が含まれうる。ここに、物体判定用識別器情報は、例えば、物体の判別に用いられる分類器、識別器、パターンマッチング用の辞書等の情報である。また、撮影条件情報は、撮影日時や、環境、撮影機材等を示す情報である。
【００８４】
図１３は、把持データベース１０２ｂに格納されている把持情報を示す表である。把持データベース１０２ｂに格納される把持情報には、例えば、物体ＩＤ番号や、物体名情報、把持形状カテゴリ情報、把持方法情報、把持位置情報、把持スコア情報、探索範囲情報、押込み量情報、把持判定情報、搬送姿勢情報、許容速度情報等が含まれうる。把持データベース１０２ｂでは、把持位置情報や、把持スコア情報、探索範囲情報、押込み量情報、把持判定情報、搬送姿勢情報、許容速度情報等は、把持方法毎に設定されている。図１２，１３から明らかとなるように、物体データベース１０２ａに格納される物体情報と、把持データベース１０２ｂに格納される把持情報とは、物体ＩＤ番号や、物体名情報によって、互いに関連付けされている。
【００８５】
［情報取得システムによる物体情報の取得手順］
図１４は、情報取得システム３００による物体情報を取得する手順を示すフローチャートである。カバーが開けられ、回転ステージ３０２上に物体Ｐが設置され（Ｓ３０１）、ユーザインタフェース等から物体名ＩＤ番号あるいは物体名情報が入力されると、コントローラ３２０は、情報取得システム３００の各部に、物体情報を取得する処理の実行を開始する指示を出力する（Ｓ３０２）。
【００８６】
次に、物体Ｐを設置する位置の調整が実行される（Ｓ３０３）。Ｓ３０３では、例えば、コントローラ３２０は、物体ＰのＲＧＢカメラ３０６や距離画像カメラ３０７の仮撮影画像に基づいて、可動機構を作動させて物体Ｐの位置を調整し、物体Ｐの図心想定位置を撮影中心と一致させる。
【００８７】
次に、コントローラ３２０は、重量センサによる物体Ｐの重量の検出結果を取得し、当該検出結果に基づいて物体Ｐの重量を計測する（Ｓ３０４）。
【００８８】
次に、コントローラ３２０は、可動機構、例えば、回転ステージ３０２やセンサアーム３０４の位置（角度）をステップ的に変化させ、各位置（角度）において、撮影を実行するようＲＧＢカメラ３０６や距離画像カメラ３０７を制御する（Ｓ３０５）。また、この際、コントローラ３２０は、各ステップにおいて、レーザセンサ３０８による距離の計測結果を取得しておく。
【００８９】
次に、コントローラ３２０は、必要に応じて、物体Ｐが反転した状態で、ステップＳ３０５と同様の撮影を実行する。物体Ｐの反転は、オペレータが行ってもよいし、マニピュレータ２０や他のロボット８等の装置が使用できる状況にあっては、コントローラ３２０が当該装置を利用して実行してもよい（Ｓ３０６）。
【００９０】
撮影が完了すると、コントローラ３２０は、物体データベース１０２ａに登録する１次物体情報を自動生成する（Ｓ３０７）。ここで、１次物体情報とは、例えば、物体Ｐの、アイテムカテゴリ情報、多方向２次元画像情報、３次元画像情報、詳細ＣＡＤモデル情報、簡易ＣＡＤモデル情報、バーコード情報、物体判定用識別器情報等である。１次物体情報の自動生成については、後に詳しく述べる。
【００９１】
次に、コントローラ３２０は、自動生成した１次物体情報をユーザインタフェースの出力部（ディスプレイ等）に表示し、ユーザインタフェースの入力部（キーボード等）によるオペレータの修正指示および入力データに基づいて、１次物体情報を修正する（Ｓ３０８）。
【００９２】
次に、コントローラ３２０は、修正された１次物体情報に基づいて、１次把持情報を自動生成する（Ｓ３０９）。ここで、１次把持情報とは、物体Ｐの把持についての、把持形状カテゴリ情報、把持方法情報、把持位置情報、把持スコア情報、探索範囲情報、押込み量情報、把持判定情報、搬送姿勢情報、許容速度情報等である。１次把持情報の自動生成については、後に詳しく述べる。
【００９３】
次に、コントローラ３２０は、自動生成した１次把持情報をユーザインタフェースの出力部（ディスプレイ等）に表示し、ユーザインタフェースの入力部（キーボード等）によるオペレータの修正指示および入力データに基づいて、１次把持情報を修正する（Ｓ３１０）。
【００９４】
次に、コントローラ３２０は、物品判定用識別器情報等の学習関連の処理を更新する（Ｓ３１１）。
【００９５】
次に、コントローラ３２０は、修正された１次物体情報を、物体データベース１０２ａに更新登録するとともに、修正された１次把持情報を、把持データベース１０２ｂに更新登録する（Ｓ３１２）。
【００９６】
［情報取得システムにおける物体情報の自動生成］
１次物体情報のうち、詳細ＣＡＤモデル情報は、例えば、得られた多方向２次元画像情報や、当該多方向２次元画像情報から再構成されて得られた３次元画像情報、距離画像情報等から得られたポイントクラウドデータのような三次元点群情報を、ＳＴＬやＳＴＥＰといった３次元の面情報や点群情報に変換することにより、取得することができる。
【００９７】
さらに、得られた詳細ＣＡＤモデル情報の図心および当該図心の基準座標が定義される。基準座標は、例えば、情報取得システム３００に物体Ｐが置かれた姿勢を基準としてもよい。具体的には、例えば、物体Ｐの外接長方形の最大面の法線方向の逆方向をＺ軸、最大面の長辺に沿う方向をＹ軸、短辺に沿う方向をＸ軸とするなどのルールを適用することができる。
【００９８】
また、簡易ＣＡＤモデル情報は、例えば、得られた詳細ＣＡＤモデルの頂点情報を削減したり、三次元点群情報を立方体や円柱など、少数の基本形に当てはめたりすることによって、データサイズが削減された情報として、取得することができる。
【００９９】
また、バーコード情報は、得られた多方向２次元画像情報から、画像処理によってバーコード領域を抽出し、バーコード情報を解析することにより、対象アイテムのＩＤ等の情報を得ることができる。この場合、バーコード情報には、物体Ｐにおけるバーコード領域の存在位置や存在方向を示す情報や、詳細ＣＡＤモデル情報あるいは簡易ＣＡＤモデル情報におけるバーコード領域の存在位置や存在方向を示す情報と、関連付けて、あるいは当該情報を含めて、物体データベース１０２ａに格納される。
【０１００】
また、アイテムカテゴリ情報は、製造現場ではネジやナット、締結部品、保護部品等の部品の種別を表すような分類、完成品の物流現場では、衣類や文房具、電子機器のような物品の種別を表すような分類であり、画像情報やＣＡＤモデル情報から、カテゴリ認識技術を用いて決定することができる。
【０１０１】
また、物体判定用識別情報、すなわち、物体の判別に用いられる分類器、識別器、パターンマッチング用の辞書等の情報は、例えば、得られた多方向２次元画像情報、３次元画像情報、物体名情報等から、ＳＩＦＴ、ＨＯＧやＨａａｒ−ｌｉｋｅといった２次元画像の特徴量や、ＳＨＯＴといった３次元形状データを用いた特徴量を用いた手法や深層学習等、ニューラルネットを用いた手法などにより、生成することができる。
【０１０２】
［情報取得システムにおける把持情報の自動生成］
図１５は、把持基本系モデルの模式図であり、図１６は、把持方法基本データの模式図である。また、図１７は、情報取得システム３００による把持情報の自動生成の手順の一部を示す模式図である。
【０１０３】
コントローラ３２０（データベース情報生成部）は、把持情報生成のために、予め物体モデルの基本系である図１５に例示されるような把持基本系モデルと、把持基本系モデルに対する基本的な把持方法を定義した図１６に例示されるような把持方法基本系データと、を有している。把持基本系モデルおよび把持方法基本系データは、プログラムに記載されてもよいし、補助記憶部等にデータベースとして登録されてもよい。
【０１０４】
把持基本系モデルは、図１５に示されるように、例えば、直方体Ｍｏ１や、平板Ｍｏ２、角棒Ｍｏ３、円筒Ｍｏ４、丸棒Ｍｏ５等の形状データである。把持方法基本データは、把持基本系モデルの各面や特徴点に対して、ハンド２００による吸着Ｍｅ１１〜Ｍｅ１２や、挟み込みＭｅ２２〜Ｍｅ２４、掴み等、把持が可能な把持方法が定義されている。図１６の例では、直方体Ｍｏ１に対しては、直方体Ｍｏ１の各面に対する吸着パッド方式による吸着Ｍｅ１１や、相対する各面を挟み込む挟み込みＭｅ２１が可能なことが定義される。なお、図１５，１６は一例に過ぎず、図１５以外の把持基本形モデルや、図１６に示されたもの以外の把持方法基本データも、勿論定義可能である。
【０１０５】
把持カテゴリ情報は、図１７に示されるように、例えば、形状（例えば、直方体型、平板型、複合型等）や構造材質（例えば、固さ、脆さ、柔軟性、多孔性等）によって分類される。把持カテゴリの形状は、物体情報のＣＡＤモデル情報と把持基本系モデルのマッチング処理を行い、最も近い把持基本系モデルを当てはめることにより決定できる。把持カテゴリの構造材質情報は、物体情報のＲＧＢＤ画像情報からのカテゴリ認識や、アイテムカテゴリ情報からの再分類によって決定できる。
【０１０６】
把持方法情報は、図１７に示されるように、例えば、把持カテゴリの形状情報から、把持方法基本データを参照することによって、決定できる。なお、形状の組み合わせによって、把持方法基本データで定義された方向が隠れる場合等には、把持方法から除外する。
【０１０７】
把持位置情報は、把持方法情報と同様に、把持カテゴリの形状情報で定義された対象物の基本姿勢に対して、把持方法基本データで定義された各把持方法での把持を行う、把持位置の座標値と把持姿勢を計算することにより決定できる。
【０１０８】
把持スコア情報は、各把持方法に対して、把持位置の形状との組み合わせで規定されるルールにしたがって算出することができる。当該ルールは、例えば、吸着パッドによる吸着の場合、吸着を行う平面部の面積が広ければ、スコアを高くする、ＣＡＤモデルの平面部に微小な凹凸があるような場合には、スコアを低くする、構造材質情報がプラスティックのような空気を通さないものであれば、スコアを高くする、多孔質のような空気を通すものであれば、スコアを低くする、等である。これらの情報を学習データとした識別器を通して把持スコアを決定することができる。把持スコアは、把持の成功確率の指標と考えることができる。
【０１０９】
探索範囲情報は、把持作業中に把持失敗判定が生じた際に、対象物の再探索に利用する情報であり、把持カテゴリの形状で決定された物体Ｐのサイズが小さいほど探索範囲は小さく設定され、サイズが大きいほど探索範囲は大きく設定される。
【０１１０】
押込み量情報は、把持判定の際にハンド２００の押し込み量を定義したものであり、把持カテゴリの構造材質情報から、硬い材質ほど押込み量は小さく設定され、柔らかい材質ほど押込み量は大きく設定される。
【０１１１】
把持判定情報は、把持判定を行う際の閾値であって、例えば、吸着において、吸着時の負圧（圧力）を把持判定に用いる場合にあっては、形状情報や構造材質情報から、把持位置の漏れ流量が少ないと予想される場合には、より大きな負圧が維持されるため、吸着の判定基準となる負圧の絶対値を大きくする。漏れ流量があると予想される場合には、圧力が下がりにくいため、吸着の判定基準となる負圧の絶対値を小さくする。この場合でも、十分に吸引の流量が確保できていれば、物体Ｐの把持は可能である。また、挟持の場合には、例えば、材質が硬い場合には、挟持の際のフィンガー２００ｂへの反力を高く設定し、柔らかいものの場合には、フィンガー２００ｂへの反力を低く設定する。このように、把持状態の判定値を物体Ｐの特性によって変化させることで、より多くの種類の物体Ｐを安定して把持することが可能となる。
【０１１２】
なお、情報取得システム３００のコントローラ３２０が実行する上述した処理は、物体ハンドリング装置１のデータベース情報生成更新部１０１ｉが実行することができる。すなわち、物体ハンドリング装置１は、情報取得システム３００の一例でもある。この場合、処理部５０上に載置された物体Ｐが、ハンド２００（マニピュレータ２０）のカメラ２１によって複数方向や複数の距離から撮影される。この場合、マニピュレータ２０を用いて処理部５０における物体Ｐの姿勢を変化させてもよい。そして、演算処理部１０１により、コントローラ３２０による上述した処理と同様の処理が実行される。
【０１１３】
［物体ハンドリング装置の特徴的な機能］
物体ハンドリング装置１は、以下の（１）〜（５）の特徴的な機能を有している。以下、これら機能について、順に説明する。
（１）マニュアルキャリブレーションを最小限に抑えるオートキャリブレーション機能
（２）弾性関節を有したハンドによる物体データベースおよび把持データベースに基づいた物体の柔軟なハンドリングを実現する把持機能
（３）機構・センシングの誤差、環境の変化に対し、逐次目標を軌道修正し、対象物を確実にとらえるモデルベーストリアルタイムビジュアルフィードバック制御機能
（４）作業状態を常時モニタリングし、最適な作業手順の選択、エラー復帰を実行するエラーリカバリ機能
（５）作業中のパラメータ学習により使用環境に適応していく学習制御機能
【０１１４】
［（１）オートキャリブレーション］
図１８Ａは、物体ハンドリング装置１のオートキャリブレーションの手順を示すフローチャートである。また、図１８Ｂは、ベース座標系Ｓ１とマニピュレータ座標系Ｓ２との間の平面誤差の説明図であり、図１８Ｃは、カメラ２１によって撮影された較正パターンＣＰが設けられたマニピュレータ２０の画像を示す模式図である。
【０１１５】
オートキャリブレーションは、演算処理部１０１の自動較正部１０１ｊが実行する。自動較正部１０１ｊは、自動的に、図１に示されるベース座標系Ｓ１、マニピュレータ座標系Ｓ２、および装置外座標系Ｓ３間のずれを把握し、誤差の少ない検出結果および制御結果を得るための較正を実行する。なお、前提として、処理部５０のマーク５１の位置は、設計情報としてベース座標系Ｓ１において既知である。また、各座標系Ｓ１，Ｓ２，Ｓ３の原点の位置や座標軸の方向は、図１に示したものには限定されない。
【０１１６】
自動較正部１０１ｊは、まず、処理部５０とマニピュレータ２０の平面誤差を、ハンド２００に設けられたカメラ２１の撮影画像に基づいて検出する。具体的に、自動較正部１０１ｊは、処理部５０のマーク５１の設計での位置がハンド２００のカメラ２１の視野の中心ポイント、または所定の想定ポイントに重なると想定される位置および姿勢となるよう、マニピュレータ２０を制御する。この場合、カメラ２１の光軸がマーク５１と直交する姿勢とする。そして、図１８Ｂに示されるように、カメラ２１によりマーク５１を撮影した画像から、中心ポイントまたは所定の想定ポイントＰｔとマーク５１のＸＹ平面（方向Ｘおよび方向Ｙ）のずれδｘ，δｙ（平面誤差）を計測する。方向Ｘおよび方向Ｙは、第一方向の一例である。カメラ２１が距離画像カメラである場合、マーク５１のＸＹ平面位置だけでなく、Ｚ方向位置も取得できる。Ｚ方向位置を取得することにより、次のステップ（Ｓ５０２）での、マニピュレータ２０による奥行位置誤差の探索範囲を絞ることができる。なお、距離画像カメラの情報は、その方向によって位置精度が異なる。一般に、奥行方向には精度が低いため、距離画像カメラの情報のみで十分な精度を出すことは難しい。ずれδｘ，δｙは、第一誤差の一例である（Ｓ５０１）。
【０１１７】
次に、自動較正部１０１ｊは、処理部５０とマニピュレータ２０の奥行位置誤差を、接触センサ２００ｇや、力センサ２００ｈ、変位センサ２００ｉ等の検出結果に基づいて検出する。具体的に、自動較正部１０１ｊは、まず、ハンド２００の先端部またはハンド２００に設けられたプローブ（不図示）が、マーク５１の設計での位置からＸＹ平面においてＳ５０１で得られたずれδ１を減らす方向および距離に移動した位置から当該ＸＹ平面と直交した方向Ｚに所定量ずれた位置に移動するよう、マニピュレータ２０を制御する。次に、自動較正部１０１ｊは、ハンド２００の先端部またはプローブがマーク５１と接触する位置まで移動するよう、マニピュレータ２０を制御する。マーク５１との接触は、接触センサ２００ｇや、力センサ２００ｈ、変位センサ２００ｉ等の検出結果から認識することができる。自動較正部１０１ｊは、ハンド２００の先端部またはプローブがマーク５１と接触した位置でマニピュレータ２０を停止し、当該停止した位置でのマニピュレータ座標系Ｓ２での位置（奥行き位置、Ｚ方向の位置）を取得する。複数のマーク５１について、上述した処理を実行してマニピュレータ座標系Ｓ２でのＺ方向位置を取得し、さらに各マーク５１の設計でのＺ方向の位置とのずれδｚ（奥行誤差）を算出する。方向Ｚは、第二方向の一例である。ずれδｚは、第二誤差の一例である（Ｓ５０２）。
【０１１８】
次に、自動較正部１０１ｊは、ベース座標系Ｓ１においてマニピュレータ座標系Ｓ２を較正する。具体的に、自動較正部１０１ｊは、複数のマーク５１のずれδｘ，δｙ，およびδｚが最少となる第一補正行列、すなわち、マニピュレータ２０（ハンド２００）の代表部位のベース座標系Ｓ１における位置および姿勢の指令値に対して、当該指令値に極力近い代表部位の実際の位置および姿勢を得るための操作値を算出する第一補正行列を得る。ここでは、第一補正行列を得ることが、ベース座標系Ｓ１におけるマニピュレータ座標系Ｓ２の較正の一例である。第一補正行列は、指示較正値（第一指示較正値）の一例である（Ｓ５０３）。
【０１１９】
次に、自動較正部１０１ｊは、ベース座標系Ｓ１においてベース３０のカメラ３３の位置および姿勢を較正する。この処理においては、マニピュレータ座標系Ｓ２がベース座標系Ｓ１に対して既に較正済みであることが肝要となる。具体的に、自動較正部１０１ｊは、まず、図１８Ｃに示されるようなマニピュレータ２０（アーム２またはハンド２００）に設けられた較正パターンＣＰが、カメラ３３の視野内に入るよう、マニピュレータ２０を制御する。次に、自動較正部１０１ｊは、較正パターンＣＰが当該視野内に設定された複数の所定位置に移動するようマニピュレータ２０を制御し、それぞれの場所で較正パターンＣＰを撮影するよう、カメラ３３を制御する。次に、自動較正部１０１ｊは、カメラ３３による較正パターンＣＰの撮影結果から得られた位置および姿勢と、設計によって本来較正パターンＣＰのカメラ３３による撮影結果から得られるべき位置および姿勢とに基づいて、ベース座標系Ｓ１におけるカメラ３３の内部光学系の座標系の原点及び姿勢を算出する。カメラの内部光学系の座標系はカメラ座標系と呼ばれ、原点および姿勢は一般に外部パラメータと呼ばれるものであり、その値は、透視投影行列の推定手法等により、算出することができる。ここでは、当該公知の手法により、カメラ３３のベース座標系Ｓ１における実際の位置および姿勢を得るための第二補正行列を得る。このように、ベース座標系Ｓ１におけるカメラ３３の位置及び姿勢が較正されることにより、以後カメラ３３で撮影した結果から、撮影対象物の位置及び姿勢を正しく算出することが可能となる。第二補正行列は、画像較正値の一例である（Ｓ５０４）。
【０１２０】
次に、自動較正部１０１ｊは、以下に示すＳ５０５およびＳ５０６の手順を経て、ベース座標系Ｓ１において作業台７０（装置外）の位置および姿勢を較正する（Ｓ５０７）。この処理においても、マニピュレータ座標系Ｓ２がベース座標系Ｓ１に対して既に較正済みであることが肝要となる。具体的に、まず、自動較正部１０１ｊは、作業台７０とマニピュレータ２０の平面誤差を、ハンド２００に設けられたカメラ２１の撮影画像に基づいて検出する。具体的に、自動較正部１０１ｊは、作業台７０のマーク７１がカメラ２１の視野内に入るよう、マニピュレータ２０を制御する。次に、カメラ２１によるマーク７１およびその周辺部の特徴点情報から、作業台７０の大まかな位置および姿勢を算出する。次に、自動較正部１０１ｊは、マーク７１の設計での位置がハンド２００のカメラ２１の視野の中心ポイント、または所定の想定ポイントに重なると想定される位置および姿勢となるよう、マニピュレータ２０を制御する。この場合、カメラ２１の光軸がマーク７１と直交する姿勢とする。そして、カメラ２１によりマーク７１を撮影した画像から、中心ポイントまたは所定の想定ポイントとマーク７１のＸＹ平面のずれ（平面誤差）を計測する（Ｓ５０５）。なお、本実施形態では、カメラ２１がマーク７１の画像を撮影したが、カメラ３３がマーク７１の画像を撮影してもよい。カメラ３３を用いる場合には、カメラ３３の位置及び姿勢がベース座標系Ｓ１において較正されていることが肝要である。
【０１２１】
次に、自動較正部１０１ｊは、処理部５０とマニピュレータ２０の奥行位置誤差を、接触センサ２００ｇや、力センサ２００ｈ、変位センサ２００ｉ等の検出結果に基づいて検出する。具体的に、自動較正部１０１ｊは、まず、ハンド２００の先端部またはハンド２００に設けられたプローブ（不図示）が、マーク７１の設計での位置からＸＹ平面と直交したＺ方向に所定量ずれた位置に移動するよう、マニピュレータ２０を制御する。次に、自動較正部１０１ｊは、ハンド２００の先端部またはプローブがマーク７１と接触する位置まで移動するよう、マニピュレータ２０を制御する。マーク７１との接触は、接触センサ２００ｇや、力センサ２００ｈ、変位センサ２００ｉ等の検出結果から認識することができる。自動較正部１０１ｊは、ハンド２００の先端部またはプローブがマーク７１と接触した位置でマニピュレータ２０を停止し、当該停止した位置でのベース座標系Ｓ１での位置（奥行き位置、Ｚ方向の位置）を取得する。複数のマーク７１について、上述した処理を実行してベース座標系Ｓ１でのＺ方向位置を取得し、さらに各マーク７１の設計でのＺ方向の位置とのずれを算出する（Ｓ５０６）。
【０１２２】
次に、自動較正部１０１ｊは、ベース座標系Ｓ１において作業台７０の位置および姿勢を較正する。具体的に、自動較正部１０１ｊは、複数のマーク７１の平面方向のずれおよび奥行方向のずれが最少となる第三補正行列、すなわち、作業台７０の代表部位のベース座標系Ｓ１における位置および姿勢の指令値に対して、当該指令値に極力近い代表部位の実際の位置および姿勢を得るための操作値を算出する第三補正行列を得る。ここでは、第三補正行列を得ることが、ベース座標系Ｓ１における作業台７０の位置および姿勢の較正の一例である。第三補正行列は、指示較正値（第二指示較正値）の一例である（Ｓ５０７）。
【０１２３】
本実施形態によれば、自動較正部１０１ｊは、指令値、カメラ２１が撮影した画像、およびセンサによる検出結果から、比較的容易にあるいはより精度良く、指示較正値（第一指示較正値、第二指示較正値）を取得することができるため、指令値に対する誤差を減らすことができる。さらに、自動較正部１０１ｊは、複数の指令値と当該指令値のそれぞれに対応してカメラ３３が撮影した複数の画像とから、比較的容易にあるいはより精度良く、画像較正値を取得することができるため、画像から得られる位置の誤差を減らすことができる。また、自動較正部１０１ｊによる較正処理は、物体ハンドリング装置１が例えば起動時や所定の時刻や時間間隔で自動的に実行されるのが好適である。このようなオートキャリブレーションは、アーム２やハンド２００に弾性機構２００ｅ等の弾性部や弾性関節が設けられた物体ハンドリング装置１において有益である。本実施形態では、カメラ画像および力センサ２００ｈ等の複数のセンサを用いて座標系の較正を行う場合に、それぞれの精度の高い方向の情報をより優先的に活用している。これにより、より精細な座標系の較正が可能となる。なお、本実施形態ではカメラ画像による誤差算出の方向と力センサ２００ｈの誤差算出の方向とが互いに直交している場合について説明したが、これら方向は、直交成分があれば、完全に直交していない場合でも有効である。
【０１２４】
［（２）データベースに基づく柔軟なハンドリング］
図１９Ａおよび図１９Ｂは、物体データベースおよび把持データベースに基づくハンド２００による柔軟なハンドリングの手順を示すフローチャートである。また、図２０Ａ〜２０Ｃは、動作経由点を示す図であって、図２０Ａは、初期位置ｐ０、対象物（部品、物体）、および搬送目標位置ｐｅを示す図、図２０Ｂは、初期位置ｐ０から把持目標位置ｐ３までの動作経由点を示す図、図２０Ｃは、引上位置ｐ４から把持解放位置ｐ６までの動作経由点を示す図である。ここでは、一例として、演算処理部１０１（図２）が、ケースＢとしての部品かごから、物体Ｐとしての部品を取り出すよう各部を制御する際の手順が示される。
【０１２５】
演算処理部１０１は、カメラ２１が部品（物体Ｐ）の周辺を撮影するよう、カメラ２１およびマニピュレータ２０を制御する。ここでは、複数の部品の画像が撮影されてもよい（Ｓ６０１）。
【０１２６】
次に、物体認識部１０１ｈは、カメラ２１によって撮影された部品の画像と、物体データベース１０２ａの物体情報とを比較して、撮影された部品を特定する。物体認識部１０１ｈは、物体データベース１０２ａから、該当部品の物体ＩＤ番号を取得する（Ｓ６０２）。
【０１２７】
次に、演算処理部１０１は、上位から指示された対象物としての部品の物体ＩＤ番号とＳ６０２で特定された部品の物体ＩＤ番号とを比較し、認識した部品に対象物が含まれているか否かを判定する（Ｓ６０３）。
【０１２８】
認識した部品に対象物が無い場合にあっては（Ｓ６０３でＮｏ）、照明条件や、ハンド２００のカメラ２１の撮影姿勢等、何らかの撮影条件を変更し、ベース３０のカメラ３３あるいはハンド２００のカメラ２１で再撮影を実施し（Ｓ６０４）、Ｓ６０２に戻る。
【０１２９】
認識した部品に対象物があった場合（Ｓ６０３でＹｅｓ）、物体認識部１０１ｈは、撮影された三次元情報と物体データベース１０２ａのＣＡＤモデル情報とのマッチングを行い、認識された物品の姿勢を算出する。このとき、部品かごの姿勢や、対象物以外の部品の姿勢の計算等を実施してもよい（Ｓ６０５）。
【０１３０】
次に、把持・動作計画生成部１０１ｄは、把持データベース１０２ｂに格納されている把持情報を参照し、認識した部品の把持方法および把持点の候補を算出する。ここで、把持データベース１０２ｂには、部品に対して、複数の把持方法、複数の把持点、およびそれぞれの把持スコア等が含まれているが、把持・動作計画生成部１０１ｄは、認識した部品の位置姿勢情報、部品かごの位置姿勢情報に基づいて、把持スコアの再計算、把持点の選択等を実行する。具体的には、認識した部品の各面に配置された把持点のうち、部品かごの開口部方向に向いた把持点のスコアを高くする、等である（Ｓ６０６）。
【０１３１】
次に、把持・動作計画生成部１０１ｄは、ハンド２００の初期位置ｐ０から搬送目標位置ｐｅまでの図２０Ａ〜２０Ｃに示される動作経由点の算出を実行する。動作経由点は、例えば、ハンド２００を部品かご（ケースＢ）に挿入させるための挿入準備位置ｐ１、ハンド２００で部品（物体Ｐ）の把持する直前の把持直前位置ｐ２、部品の把持動作を行うための把持目標位置ｐ３、把持した部品を部品かごから引き上げる引上位置ｐ４、ハンド２００を作業台７０の空間に挿入するための作業台進入位置ｐ５、対象物を作業台７０の所定の位置に置くための把持解放位置ｐ６等である。挿入準備位置ｐ１は、部品かごの位置姿勢の認識結果から、ハンド２００のカメラ２１で部品かごを確認しやすいハンド２００の位置や把持目標位置ｐ３に移行しやすい位置を考慮して算出する。把持直前位置ｐ２は、把持目標位置ｐ３に対して、法線方向に少し離れた位置など、ほぼ直線的な動作で把持目標位置ｐ３に到達できることを考慮して算出する。作業台進入位置ｐ５は、作業台７０の位置姿勢の認識結果から、ハンド２００のカメラ２１で作業台７０を確認しやすいハンド２００の位置や把持解放位置ｐ６に移行しやすい位置を考慮して算出する。把持解放位置ｐ６は、部品の把持を解放した際に、部品が所定の位置に収まるように算出する（Ｓ６０７）。
【０１３２】
次に、手先軌道生成部１２１は、動作経由点情報、物体ハンドリング装置１の形状、部品かごや、部品などの外部環境の状態を示す情報を利用し、干渉を避けながら、ハンド２００が所望の動作経由点を通過する手先軌道を生成する。具体的には、ＲＲＴやＰＲＭといった手法を用いて算出することが可能である（Ｓ６０８）。
【０１３３】
ここで、有効な軌道が算出できなかった場合において（Ｓ６０９でＮｏ）、演算処理部１０１は、次の把持点候補が存在するか否かを確認し、次の把持点候補が無かった場合（Ｓ６１０でＮｏ）、作業は状態変更動作Ｆ２２（図２２Ａ，図２２Ｂ、後に詳述）へ移行する。次の把持点候補があった場合には（Ｓ６１０でＹｅｓ）、演算処理部１０１は、当該次の把持点候補を設定し、Ｓ６０７の処理を実行する。
【０１３４】
Ｓ６０８で有効な軌道が算出できた場合（Ｓ６０９でＹｅｓ）、マニピュレータ制御部１１０は、ハンド２００を初期位置から挿入準備位置ｐ１に移動する。ここで、移動はあらかじめ決められた軌道に添って移動しても良いし、ハンドカメラやハンド２００のカメラ２１等による部品かごの位置姿勢をもとに、後述のビジュアルフィードバックサーボにより軌道を修正しながら移動しても良い（Ｓ６１２）。
【０１３５】
次に、マニピュレータ制御部１１０は、ハンド２００を挿入準備位置ｐ１から、把持直前位置ｐ２に移動する。この際、ハンド２００のカメラ２１やベース３０のカメラ３３等による部品の特徴点情報をもとに、後述のビジュアルフィードバックサーボにより軌道を修正しながら移動しても良い（Ｓ６１３）。
【０１３６】
次に、演算処理部１０１は、ハンド２００のカメラ２１やベース３０のカメラ３３等による部品とハンド２００の観測情報から、把持目標位置ｐ３に対して位置および姿勢の誤差が算出された場合には、把持目標位置ｐ３およびその際の姿勢を修正する（Ｓ６１４）。
【０１３７】
次に、マニピュレータ制御部１１０は、ハンド２００を把持直前位置ｐ２から、把持目標位置ｐ３に移動する（Ｓ６１５）。
【０１３８】
次に、ハンド制御部１４０は、把持動作を開始する。具体的には、吸着方式で把持を行う場合、電磁弁等を走査し、吸着力を発生させる。二指や多指ハンドによる挟持の場合には、指を閉じる動作を開始する（Ｓ６１６）。
【０１３９】
次に、信号処理部１０１ｂが把持動作状態の各種センサ情報の処理を実施し、計画生成部１０１ｃが把持動作状態情報を監視する。把持動作状態情報は、具体的には、吸着時の真空圧力や流量、接触センサのセンサ値、弾性関節部の変位センサ値、把持機構駆動部のトルク、把持動作処理時間等である。把持動作状態の確認は、把持データベース１０２ｂに格納されている把持判定情報を利用する。把持目標位置ｐ３を超えて、さらに把持動作を継続する場合には、把持データベース１０２ｂの押込み量情報を利用する。
【０１４０】
次に、状態監視部１０１ｅは、把持動作状態情報に基づいて、把持確認状態になったか否かの判定を行う。把持確認状態は、具体的には、吸着時であれば真空圧力が所定の値になった状態であり、接触センサで接触が確認された状態であり、変位センサやトルク値が所望の値になった状態である。ここでの判定の閾値は把持データベース１０２ｂに登録された把持判定情報を利用する（Ｓ６１８）。
【０１４１】
状態監視部１０１ｅは、把持確認状態が検出されたら（Ｓ６１８でＹｅｓ）、把持状態の結果の判定を行う。具体的には、吸着時であれば真空圧力、二指であれば二指の間隔等で、判定を行うことができる（Ｓ６１９）。
【０１４２】
把持状態の結果の判定において、部品を把持できていないと判定した場合には（Ｓ６２０でＮｏ）、Ｓ６２１に移行する。Ｓ６２１では、現状の把持点で把持点近傍探索処理が実施済みであるかどうかを確認する。探索が実施済みの場合には（Ｓ６２１でＹｅｓ）、次の把持点候補を設定する（Ｓ６２２）。実施済みでない場合には（Ｓ６２１でＮｏ）、把持探索動作を実施する。
【０１４３】
Ｓ６２０でＹｅｓの場合、マニピュレータ制御部１１０は、引き抜き方向へハンド２００を移動する（Ｓ６２３）。
【０１４４】
次に、演算処理部１０１は、把持状態を再度確認し、把持状態が不安定、もしくは把持できていなければ、すなわち、搬送不能な状態であれば（Ｓ６２４でＮｏ）、リトライ動作Ｆ２４（図２４、後に詳述）へ移行する。なお、把持状態の確認のための閾値は、対象物や把持方法等によって異なるため、把持データベース１０２ｂの把持判定情報を利用する。
【０１４５】
Ｓ６２４の判断において、搬送可能であった場合（Ｓ６２４でＹｅｓ）、マニピュレータ制御部１１０は、ハンド２００の姿勢を搬送姿勢に変換する。このとき、搬送に適した姿勢や把持の状態は、部品によって異なるため、把持データベース１０２ｂの搬送姿勢情報を参照して決定する。具体的には、把持データベース１０２ｂで指定される姿勢は、吸着の場合には、部品と吸着パッド２００ａにモーメントがかかりにくい吸着パッド２００ａが下向きの姿勢である。挟持の場合には、多指の一部が部品の下部を支えるような姿勢である。いずれの場合にも、搬送時の振動を抑制する為、クラッチ２００ｆを制御することにより弾性機構２００ｅを固定し、非弾性状態にすることが可能である（Ｓ６２５）。
【０１４６】
次に、マニピュレータ制御部１１０は、搬送姿勢を保ったまま、作業台進入位置ｐ５に移動する。ここで、把持中の移動では、把持している部品を落下させるリスクがあるため、把持データベース１０２ｂの許容速度情報を用いて、搬送速度を許容速度以下に抑えることで、搬送時間を最大限短縮しながら、安定した搬送を実現することができる。ここでの搬送速度は、把持状態に応じて変更することができる。これは把持データベース１０２ｂの把持判定情報に複数のレベルを設定し、当該レベルに応じた複数の搬送許容速度を設定することによって実現できる。例えば、吸着方式の場合、吸着圧を把持判定情報として利用できる。一例として、ある部品に対しては、吸着圧が−４０ｋＰａ以下である場合には十分に吸着把持ができているため、搬送許容速度を５００ｍｍ／ｓｅｃに設定する。吸着圧が−４０ｋＰａ〜−３０ｋＰａである場合には、搬送速度を２００ｍｍ／ｓｅｃに設定する。吸着圧が−３０ｋＰａ〜−１５ｋＰａである場合には、搬送許容速度を２００ｍｍ／ｓｅｃとする（Ｓ６２６）。なお、搬送状態の許容値は、速度のみに応じて設定する必要はなく、加速度や加加速度（ジャーク）に応じて設定しても良い。また、吸着圧が−１５ｋＰａより大きい場合は、十分な吸着把持状態が得られていないため、Ｓ６２４において搬送不能と判断され（Ｓ６２４でＮｏ）、リトライ動作等に移行する。
【０１４７】
演算処理部１０１は、ハンド２００のカメラ２１を、作業台７０の搬送先位置周辺を撮影するよう制御する（Ｓ６２７）。次いで、演算処理部１０１は、上位からの指示と撮影結果に基づいて、部品の把持解放位置ｐ６を修正する（Ｓ６２８）。次に、マニピュレータ制御部１１０は、ハンド２００を把持解放位置ｐ６へ移動させ、ハンド制御部１４０は部品の把持を解除して、部品を上位から指示された搬送目標位置ｐｅに置く（Ｓ６２９）。これにより、一連の処理が終了する。
【０１４８】
［（３）リアルタイムビジュアルフィードバック制御］
図２１Ａは、マニピュレータ制御部１１１（１１０）のブロック図である。図２１Ｂは、画像特徴量目標値の説明図である。マニピュレータ制御部１１１は、非線形動力学モデルを用いたモータ１１１ｅの制御量を補正するフィードバック系と画像特徴量を用いた特徴量ベースの制御器の両方、もしくはいずれかを持っていることが特徴である。
【０１４９】
マニピュレータ制御部１１１では、計画生成部１０１ｃから、部品（物体Ｐ）の把持位置など、ハンド２００の移動目標となる位置情報が与えられると、画像特徴量生成器１１１ａが、物体データベース１０２ａ等の物体情報を利用して、把持目標位置ｐ３への移動を達成するための画像特徴量目標値を生成する。画像特徴量目標値は、具体的には、図２１Ｂに示すように、ハンド２００が把持目標位置ｐ３に到達したときにハンド２００のカメラ２１等のカメラセンサから得られる部品画像の特徴点の配置情報等である。なお、図２１Ｂでは、理解のために特徴量像を示しているが、実際には特徴点の座標や特徴点間の距離など数値的な情報で良い。これは、物体データベース１０２ａに保存された部品の各面の画像や特徴量情報から必要な面の情報を抜き出したり、ＣＡＤモデル情報から生成したり、取り出した情報を視点変換することなどにより生成することができる。
【０１５０】
特徴量ベース制御器１１１ｂは、画像特徴量目標値とハンド２００のカメラ２１等のカメラセンサから得られる画像特徴量の誤差を入力として、モータ１１１ｅ制御量を算出する。特徴量ベース制御器１１１ｂは、画像ヤコビヤンを用いて、一般的なＰＩ制御系を用いることで構成することができる。
【０１５１】
算出されたモータ１１１ｅ制御量は、物体ハンドリング装置１の非線形動力学モデル補償器１１１ｄによって、値が補償される。非線形動力学モデルを用いた制御量の補償方法の詳細については後述する。ここで、非線形動力学モデルには、物体ハンドリング装置１だけでなく、重量など把持の部品のモデルや部品の把持位置など把持状態に関する情報が取り込まれている。
【０１５２】
モータ１１１ｅは補償された制御量に従って、駆動され、アーム２を動かし、ハンド２００を所定の位置に動かすなどのタスクを実行する。画像特徴量算出器１１１ｆはハンド２００のカメラ２１等のカメラセンサからの出力画像を用いて、目標に対する画像特徴量を算出する。
【０１５３】
図２１Ａのマニピュレータ制御部１１１では、把持目標位置ｐ３に対して、ハンド２００のカメラ２１で観測される画像が一致するようにマニピュレータ２０が動作する為、マニピュレータ２０の機構パラメータやカメラパラメータに多少の誤差があっても、最終的には誤差が抑圧され、正確な位置にハンド２００を動かすことが可能となる。また、部品が移動していても、部品の移動に合わせて、ハンド２００を追従することが可能となる。さらに、マニピュレータ制御部１１１は、非線形動力学モデル補償器１１１ｄを有している。これにより、アーム２のたわみや、振動を補償し、より正確にハンド２００の追従が可能になる。カメラ画像を用いた制御系では、アーム２が振動すると、画像情報が大きく揺らぐため、安定した制御を実現することが困難であるが、本システムでは、非線形動力学モデル補償器１１１ｄによる振動抑圧によって、安定した制御の実現が可能である。
【０１５４】
さらに、図２１Ａのマニピュレータ制御部１１１では、非線形動力学モデルパラメータ管理部１１１ｇにより、部品（物体Ｐ）の把持状態によって、非線形動力学モデル補償器１１１ｄが用いる非線形動力学モデルを切り替えることができる。通常、非線形動力学モデルを用いたモデルベースト制御系では、ハンド２００が物体を把持したり、解放したりすることで、アーム２の負荷が変化すると、モデルと現実の差が大きくなり、制御系が不安定となる。しかしながら、マニピュレータ制御部１１１では、認識された物体情報や、把持の状態の情報から非線形動力学モデルを切り替えることにより、把持搬送作業のどの工程においても、安定した制御を実現することができる。なお、ここでは、把持目標位置ｐ３を示す情報として部品の特徴点を利用したが、作業台７０や、処理部５０のマーク５１、部品かご（ケースＢ）の特徴点を利用することも可能である。
【０１５５】
図２１Ｃは、マニピュレータ制御部１１１Ａ（１１０）の別の例を示すブロック図である。目標画像や特徴点が得られない場合には、図２１Ａの特徴量ベース制御器１１１ｂに替えて図２１Ｃのような通常のＰＩ制御系のＰＩ制御器１１１ｈを利用する。マニピュレータ制御部１１１Ａのような制御系であっても十分なキャリブレーションによって、比較的安定した動作が可能となるほか、非線形動力学モデル補償器１１１ｄにより、より正確な制御が可能となる。
【０１５６】
図２１Ｄは、マニピュレータ制御部１１１におけるパラメータ変更の手順を示すフローチャートである。ここでは、部品かごから、作業台７０に物体Ｐとしての部品を把持搬送する際の手順が示される。
【０１５７】
演算処理部１０１は、部品周辺を撮影するよう、ベース３０のカメラ３３を制御する（Ｓ７０１）。
【０１５８】
次に、物体認識部１０１ｈは、ベース３０のカメラ３３によって撮影された画像と物体データベース１０２ａの物体情報とを利用して、撮影された部品の物体ＩＤ情報を特定する（Ｓ７０２）。
【０１５９】
次に、物体認識部１０１ｈは、撮影された三次元情報と物体データベース１０２ａのＣＡＤモデル情報のマッチングを行い、認識された部品の姿勢を算出する。このとき、部品かごの姿勢や、部品以外の物体の姿勢計算も実行する（Ｓ７０３）。
【０１６０】
次に、把持・動作計画生成部１０１ｄは、把持データベース１０２ｂを参照し、認識した部品に対して把持方法及び把持位置を算出する（Ｓ７０４）。
【０１６１】
次に、マニピュレータ制御部１１１（１１０）は、算出された把持方法に合わせて、ハンド２００の状態の変換動作を実施する。具体的には、吸着方式と算出された場合には、吸着パッド２００ａを突出させる、フィンガー２００ｂによる挟持方式と算出された場合には、吸着パッド２００ａを収納する、等の動作である（Ｓ７０５）。
【０１６２】
次に、非線形動力学モデルパラメータ管理部１１１ｇは、Ｓ７０５で設定したハンド２００の状態に合わせて、非線形動力学モデル補償器１１１ｄで用いる動力学モデルのモデルパラメータを設定する。設定するモデルパラメータには、事前学習によって決定したものが用いられる。また、事前学習が行われていない場合には、このタイミングで制御系にランダム信号等を印加し、パラメータ学習を行っても良い（Ｓ７０６）。
【０１６３】
次に、マニピュレータ制御部１１１は、設定したモデルパラメータを用いて、ハンド２００が挿入準備位置ｐ１に移動するようマニピュレータ２０を制御する。ここでは、最適なモデルが設定されているため、マニピュレータ２０を最高速で動かしても、安定した動作が可能である。さらに、部品かごの特徴点を活用した特徴量ベースの制御を実施することで、より正確に部品かごを挿入準備位置ｐ１に移動することが可能となる（Ｓ７０７）。
【０１６４】
次に、マニピュレータ制御部１１１は、ハンド２００が挿入準備位置ｐ１から把持直前位置ｐ２へ移動するよう、マニピュレータ２０を制御する。部品の特徴点情報を活用した特徴量ベースの制御を実施することで、より正確に把持直前位置ｐ２へ移動することができる（Ｓ７０８）。
【０１６５】
次に、マニピュレータ制御部１１１は、ハンド２００が把持直前位置ｐ２から把持目標位置ｐ３へ中速で移動するよう、マニピュレータ２０を制御する。このとき、部品の認識のずれ等の影響でハンド２００と対象の物体Ｐや周辺の物体Ｐが接触しても、ハンド２００に弾性部があるため、弾性部が衝撃を吸収し、物体Ｐを傷つけることが無い。また、弾性部が衝撃や、押込み力を吸収する間に、変位センサ２００ｉや接触センサ２００ｇが接触を判定し、マニピュレータ２０の動作を止める、または力を逃がす方向に動かすことで、物体Ｐや、ハンド２００の破壊を回避することができる（Ｓ７０９）。
【０１６６】
次に、ハンド制御部１４０は、部品を把持するようハンド２００を制御する。ここでは、接触状態を正確に検出することができる為、安定して部品を把持することができる（Ｓ７１０）。
【０１６７】
次に、非線形動力学モデルパラメータ管理部１１１ｇは、把持方法、把持位置、および部品の特性に合わせて動力学モデルをセットする。把持方法及び、把持位置、把持対象の物体の特性は物体データベース１０２ａ、把持データベース１０２ｂから算出可能であり、さらに、実際に把持動作を行ったセンサ情報から、正確な把持位置を補正しても良い。非線形動力学モデルパラメータ管理部１１１ｇでは、事前に複数の先端負荷の重量や、重心オフセット等の条件で学習したモデルパラメータを有しており、指定された把持方法及び、把持位置、把持対象の物体の特性から最適なモデルパラメータの選択をする、または比較的条件の近い複数のモデルパラメータを用いた内挿等により、最適なパラメータを決定する（Ｓ７１１）。
【０１６８】
次に、マニピュレータ制御部１１１は、把持した部品を部品かごから引き抜くよう、マニピュレータ２０を制御する（Ｓ７１２）。
【０１６９】
次に、マニピュレータ制御部１１１は、把持データベース１０２ｂを参照し、搬送許容値情報に基づいて、搬送許容速度で部品を搬送するよう、マニピュレータ２０を制御する。このとき、搬送先の作業台７０に設けられたマーク７１を特徴点として活用することで、より正確な特徴点量が得られる為、安定した特徴量ベースの制御を実施することができる（Ｓ７１３）。
【０１７０】
次に、マニピュレータ制御部１１１は、作業台７０の搬送目標位置ｐｅに部品を配置する（Ｓ７１４）。
【０１７１】
次に、ハンド制御部１４０は、初期状態となるようハンド２００の状態を変換する（Ｓ７１５）。
【０１７２】
次に、非線形動力学モデルパラメータ管理部１１１ｇは、ハンド２００の状態に合わせて、モデルパラメータを設定する（Ｓ７１６）。
【０１７３】
次に、マニピュレータ制御部１１１は、ハンド２００が初期位置ｐ０に最高速度で移動するよう、マニピュレータ２０を制御する（Ｓ７１７）。
【０１７４】
［（４）エラーリカバリ］
図２２Ａは、図１９Ａの状態変更動作Ｆ２２の手順を示すフローチャートである。図１９Ａの状態変更動作Ｆ２２に関し、演算処理部１０１は、まず、部品かご（ケースＢ）の位置や姿勢が変化するよう、マニピュレータ２０や搬送機構４０を制御する（Ｓ８０１）。次に、図１９ＡのＳ６０１に戻る（Ｓ８０２）。このような状態変更のリカバリにより、物体ハンドリング装置１と把持対象となる部品（物体Ｐ）の位置関係が変化するため、部品を把持するまでの経路を設定できる確率、すなわち部品を把持できる確率が高まりやすい。
【０１７５】
図２２Ｂは、図１９Ａの状態変更動作Ｆ２２の図２２Ａとは別の手順を示すフローチャートである。図１９Ａの状態変更動作Ｆ２２に関し、この例では、演算処理部１０１は、まず、部品の周辺、例えば、部品や部品かごの画像上の中心や画像から算出した想定重心から離れた位置のうち、ハンド２００が接触可能な接触可能位置を、算出する。これは、３次元点群など距離画像カメラの情報から、部品（物体Ｐ）の外形位置を算出し、そこまでの経路を計算することによって求めることが可能である（Ｓ９０１）。次に、マニピュレータ制御部１１０は、ハンド２００の先端部が接触可能位置に所定の力を印加するよう、マニピュレータ２０を制御する。この際、ハンド２００は弾性機構２００ｅおよび力センサｈを有しており、マニピュレータ制御部１１０は、印加する力の大きさや加速度等を制御することが可能であるため、部品を損傷させることなく、所定の力を印加することが可能である（Ｓ９０２）。次に、マニピュレータ制御部１１０は、ハンド２００を初期位置ｐ０に戻す（Ｓ９０３）。そして、図１９ＡのＳ６０１に戻る（Ｓ９０４）。この手順では、Ｓ９０２において、部品あるいはその周辺に力が加わることで、物品の配置状態が変化する。このような状態変更のリカバリによっても、物体ハンドリング装置１と把持対象となる物品との位置関係が変化するため、物品把持位置への経路が生まれる可能性が高まる。
【０１７６】
図２３は、図１９Ｂの把持探索動作Ｆ２３の手順を示すフローチャートである。図１９ＢのＳ６２１の後、マニピュレータ制御部１１０は、ハンド２００が一旦把持目標位置ｐ３から所定距離離れた位置に移動するよう、マニピュレータ２０を制御する（Ｓ１００１）。演算処理部１０１は、把持目標位置ｐ３の周辺を撮影する（Ｓ１００２）。演算処理部１０１は、撮影結果から、把持対象となる部品（物体Ｐ）の画像が含まれるなど、所定の条件を満たす有効な撮影ができていると判断した場合には（Ｓ１００３でＹｅｓ）、把持目標位置ｐ３を計算する（Ｓ１００５）。他方、Ｓ１００３で、所定の条件を満たす有効な撮影ができていると判断できなかった場合には（Ｓ１００３でＮｏ）、演算処理部１０１は、把持データベース１０２ｂに含まれている探索範囲情報を使い、既に算出されている把持目標位置ｐ３から探索範囲情報で指定された範囲内かつ所定距離ずれた位置を、新しい把持目標位置ｐ３に設定する（Ｓ１００４）。Ｓ１００４またはＳ１００５の後、図１９ＡのＳ６０７に戻る。Ｓ６０７では、Ｓ１００４またはＳ１００５で設定された新たな把持目標位置ｐ３に対し、動作経由点を算出する（Ｓ１００６）。探索範囲情報では、部品（物体Ｐ）に合わせて、効率の良い探索範囲が指定されている。具体的には、例えば、部品（物体Ｐ）が小さいほど探索範囲が狭く設定されるとともに、探索範囲の把持目標位置ｐ３からのオフセット距離（ステップ距離）も小さく設定され、言い換えると、部品が大きいほど探索範囲が広く設定されるとともに、探索範囲の把持目標位置ｐ３からのオフセット距離（ステップ距離）も大きく設定されている。このような把持探索リカバリによって、処理部品を把持するまでの経路を設定できる確率、すなわち部品を把持できる確率が高まりやすい。
【０１７７】
図２４は、図１９Ｂのリトライ動作Ｆ２４の手順を示すフローチャートである。図１９ＢのＳ６２４で、搬送不能な状態であると判断された場合、マニピュレータ制御部１１０は、部品かご（ケースＢ）にハンド２００を所定距離移動し、部品かご上で部品（物体Ｐ）の把持を解放するよう、マニピュレータ２０を制御する。これにより、部品を部品かご内に戻すことができる（Ｓ１１０１）。そして、図１９ＡのＳ６０１に戻る（Ｓ１１０２）。
【０１７８】
［（５）作業中のパラメータ学習制御］
図２５Ａは、学習動作やデータベースの生成を実行する手順を示すフローチャートである。物体ハンドリング装置１では、物体データベース１０２ａや把持データベース１０２ｂといったデータベースや学習結果を利用した物体認識部１０１ｈを備えるなど、事前に作成された学習データを活用している。しかしながら、さまざまな物体を取り扱う場合にあっては、学習データが不十分なあるいは無い物体を取り扱うこともある。そのような場合において、図２５Ａに示される手順が有効となる。
【０１７９】
まず、演算処理部１０１は、上位のシステムから特定の物体についての把持・搬送の指令を受ける（Ｓ１２０１）。次に、学習制御部１０１ｇ（図２）は、物体の物体ＩＤ番号に基づいて、物体データベース１０２ａから当該物体に関する物体情報を取得するとともに、把持データベース１０２ｂから当該物体に関する把持情報を取得する（Ｓ１２０２）。
【０１８０】
次に、学習制御部１０１ｇは、当該物体についての物体情報あるいは把持情報が十分であるか否かを判断し（Ｓ１２０３）、十分であると判断された場合には（Ｓ１２０３でＹｅｓ）、マニピュレータ制御部１１０は、図１９Ａ，１９Ｂに示されるような通常モードにより、物体の把持および搬送を実行する（Ｓ１２０５）。他方、Ｓ１２０３において、情報が不十分であると判断された場合には（Ｓ１２０３でＮｏ）、演算処理部１０１は、学習・データベース生成モードで、把持および搬送を実行するよう、各部を制御する。学習・データベース生成モードによる把持および搬送については、後に詳しく述べる（Ｓ１２０４）。
【０１８１】
把持および搬送の処理が完了すると（Ｓ１２０６）、学習制御部１０１ｇは、学習・データベース生成モードで把持および搬送が実行された場合、および通常モードで把持および搬送が実行された場合の双方について、学習データおよび物体データベース１０２ａおよび把持データベース１０２ｂを更新する。ここでの更新処理は、例えば、通常モードで把持および搬送がを実行された場合でも、把持の成功や失敗、経由点生成の成功や失敗などの結果を報酬情報とし、選択された把持位置や把持方法などに関連づけられたスコア情報を更新するなどの処理である（Ｓ１２０７）。
【０１８２】
図２５Ｂは、学習・データベース生成モードでの把持および搬送の手順を示すフローチャートである。まずは、画像処理部１０１ａが、ベース３０のカメラ３３で部品かごを撮影した画像から物体ＩＤ番号およびアイテムカテゴリ情報を取得し、物体認識部１０１ｈは、物体データベース１０２ａに、物体ＩＤ番号およびアイテムカテゴリ情報と一致するものが含まれているか否かを調べる（Ｓ１３０１）。物体データベース１０２ａに一致するものがあった場合、把持および搬送の処理の対象とする。次に、演算処理部１０１は、物体データベース１０２ａに記憶された物体の周辺の３次元画像情報と、把持基本系モデルとのマッチングを実施し、最も一致率の高い把持基本系モデルを選択する（Ｓ１３０２）。そして、把持・動作計画生成部１０１ｄは、把持基本系モデルから把持方法基本データを参照し、把持方法及び、ベース座標系Ｓ１での把持位置を算出する（Ｓ１３０３）。次に、マニピュレータ制御部１１０は、通常把持モードよりも低い速度での把持および搬送を実行するよう、マニピュレータ２０を制御する（Ｓ１３０４）。
【０１８３】
学習制御部１０１ｇは、上位装置から学習・データベース作成モードでの処理が指示された場合や、上位装置から指定された処理の完了時刻までに十分に時間がある場合にあっては、詳細学習を実行することとし、Ｓ１３０７へ移行する（Ｓ１３０５でＹｅｓ）。
【０１８４】
Ｓ１３０５でＮｏの場合には、低速の状態のまま、所定位置への把持および搬送が実行される（Ｓ１３０６）。
【０１８５】
Ｓ１３０７以降は、詳細学習モードである。まず、Ｓ１３０７において、マニピュレータ制御部１１０は、物体Ｐを通常よりも低速で処理部５０まで搬送し、当該処理部５０上に載置する（Ｓ１３０７）。次に、演算処理部１０１は、処理部５０上に載置された物体Ｐについて、図１４に示されたのと同様の手順により、物体情報を取得する（Ｓ１３０８）。次に、演算処理部１０１は、ハンド２００に設けられたカメラ２１により、物体ＰのＲＧＢ画像および距離画像を取得する（Ｓ１３０９）。次に、マニピュレータ制御部１１０は、物体の姿勢が反転するよう、マニピュレータ２０を制御する（Ｓ１３１０）。次に、演算処理部１０１は、ハンド２００に設けられたカメラ２１が、物体Ｐを、多方向から撮影し、ＲＧＢ画像および距離画像を得るよう、各部を制御する（Ｓ１３１１）。次に、データベース情報生成更新部１０１ｉは、撮影された画像情報から３次元画像情報、詳細ＣＡＤモデル情報、および簡易ＣＡＤモデル情報等の物体情報を生成する（Ｓ１３１２）。また、データベース情報生成更新部１０１ｉは、簡易ＣＡＤモデル情報や撮影された多方向画像から、把持情報を生成する（Ｓ１３１３）。
【０１８６】
次に、演算処理部１０１は、把持のテストを実施する。具体的には、例えば、複数の把持方法を試行し、把持の成功や失敗の確認、失敗した把持方法のデータを削除する。また、把持成功吸着時の真空圧などを用いて、把持判定情報を生成する（Ｓ１３１４）。
【０１８７】
次に、データベース情報生成更新部１０１ｉは、Ｓ１３１４で生成された把持情報を把持データベース１０２ｂに書き込むことにより、当該把持データベース１０２ｂを更新する（Ｓ１３１５）。
【０１８８】
次に、マニピュレータ制御部１１０は、ハンド２００を、更新された把持データベース１０２ｂの把持情報に基づいて物体Ｐを把持するように制御し、学習制御部１０１ｇは、ハンド２００が物体Ｐを把持した状態で、マニピュレータ制御部１１０に、非線形動力学モデル学習用のテスト信号を供給する処理を実行する。そして、実行した結果に基づいて、物体データベース１０２ａおよび把持データベース１０２ｂを更新する（Ｓ１３１６）。そして、マニピュレータ制御部１１０は、所定の位置へ物体Ｐを把持して搬送するよう、マニピュレータ２０を制御する（Ｓ１３１７）。
【０１８９】
図２６は、複数の物体ハンドリング装置１で学習データを共有する学習システム４００の概略構成図である。上述した学習動作は、物体認識用のデータのみならず、把持のためのデータや搬送のためのデータを学習するため、組み合わせ条件が多く、より多くの学習データが必要となる。この点、図２６に示されるように、複数の物体ハンドリング装置１で学習データを共有することにより、より高速な学習が可能となる。また、この学習システム４００では、マニピュレータ２０（ロボット）の動作用の学習データも生成されるため、新しい物体が把持・搬送の対象となった場合のみならず、新しいロボットが導入されたような場合にも、学習データを活用し、より迅速により安定した把持および搬送を実現することが可能となる。
【０１９０】
図２７には、図１の物体ハンドリングシステムとは別のシステムを示す構成図である。図２７のシステムでは、物体ハンドリング装置１Ａが移動機構６を備えず固定的に設置されているとともに、作業台７０Ａが移動機構６Ａを備えている。このようなシステムでも、物体ハンドリング装置１Ａは、上述したのと同様のオートキャリブレーションを実行することができるし、その他の処理も同様に実行することができる。
【０１９１】
［非線形動力学モデルの学習と振動抑制］
図２８は、マニピュレータ２０Ａの断面図である。このマニピュレータ２０Ａは、架台５０１、第１リンク５０３、第１モータ５０４、第１減速機５０５、第１エンコーダ５０６、第２リンク５０８、第２モータ５０９、第２減速機５１０、第２エンコーダ５１１を有する。架台５０１の上部に第１リンク５０３の一端が取り付けられており、第１リンク５０３の他端には第２リンク５０８が取り付けられている。第２リンク５０８の先端に負荷５１２が付加される。ここで、負荷５１２は、物体ハンドリング装置１のハンド２００または、ハンド２００と把持中の物体を合わせたものである。
【０１９２】
コントローラ１００Ａは、第１モータ５０４及び第１エンコーダ５０６と、バネ特性を持つ第１減速機５０５との組合せにより、第１軸５０２を中心として架台５０１に対して第１リンク５０３を水平旋回させる。また、コントローラ１００Ａは、第２モータ５０９及び第２エンコーダ５１１と、バネ特性を持つ第２減速機５１０との組合せにより、第２軸５０７を中心として第１リンク５０３に対して第２リンク５０８を水平旋回させる。
【０１９３】
図２９は、このマニピュレータの１リンク分を示す模式図である。これは、２慣性系と呼ばれる。図２８及び図２９を参照して、このマニピュレータは、弾性関節（弾性機構、弾性部）を持つシリアル２リンクアームとして非線形動力学モデル化することができる。図２９では、１リンク分の非線形動力学モデルの記述に必要な物理パラメータ、慣性モーメント、摩擦係数、およびバネ係数などについて第１軸を代表として示す。この図２９においては、モータ５２０によってリンク５３０が減速機５２５を介して駆動制御される。第１軸に関する物理パラメータとしては、モータ５２０のトルク入力がｕ１で表され、モータ５２０の慣性モーメントがｍＭ１で表され、モータ５２０の回転角、すなわちエンコーダによって検出された出力がθＭ１で表され、モータ５２０の粘性摩擦係数がｄＭ１で表され、モータ５２０のクーロン動摩擦係数がｆＭ１で表され、減速機５２５の減衰係数がｄＧ１で表され、減速機５２５のバネ係数がｋＧ１で表され、リンク５３０の慣性モーメントがｍＬ１で表され、リンク５３０の粘性摩擦係数がｄＬ１で表され、リンク５３０の回転角がθＬ１で表される。
【０１９４】
弾性関節を持つシリアル２リンクアームの非線形動力学モデルは、次のようなモータ側が式（１）で与えられ、リンク側が式（２）で与えられる。
【数１】
2018158439.tif 000003
【数２】
2018158439.tif 000004
ただし、
θＭ＝[θＭ１，θＭ２]Ｔ：モータの回転速度（サフィックス１、２は軸番号）
θＬ＝[θＬ１，θＬ２]Ｔ：リンクの回転速度
α＝[α１，α２]Ｔ：リンクの並進加速度
ＭＬ（θＬ）∈Ｒ２×２：リンク慣性行列
ｃＬ（ｄθＬ／ｄｔ，θＬ）∈Ｒ２×１：遠心力およびコリオリ力ベクトル
ＭＭ＝ｄｉａｇ（ｍＭ１，ｍＭ２）：モータおよび減速機高速段慣性
ＤＭ＝ｄｉａｇ（ｄＭ１，ｄＭ２）：モータ軸粘性摩擦係数
ＤＬ＝ｄｉａｇ（ｄＬ１，ｄＬ２）：リンク軸粘性摩擦係数
ＫＧ＝ｄｉａｇ（ｋＧ１，ｋＧ２）：減速機バネ係数
ＤＧ＝ｄｉａｇ（ｄＧ１，ｄＧ２）：減速機減衰係数
ＮＧ＝ｄｉａｇ（ｎＧ１，ｎＧ２）：減速比（ｎＧ１，ｎＧ２≦１）
ｆＭ＝[ｆＭ１，ｆＭ２]Ｔ：モータ軸のクーロン動摩擦トルク
Ｅ＝ｄｉａｇ（ｅ１，ｅ２）：トルク／電圧（電流指令値）定数
ｕ＝[ｕ１，ｕ２]Ｔ：入力電圧（モータの電流制御系への指令値）
である。ここで、式（１）中のｓｇｎ（ａ）は符号関数を表し、ａが正、負、零の値に応じてｓｇｎ（ａ）はそれぞれ１、−１、０の値を取る。
また、ｄｉａｇ（ａ、ｂ）は、ａおよびｂを対角要素とする対角行列を表す。
【０１９５】
ここで、α、β、γをリンクの長さ、重心位置、質量、慣性より構成される基底パラメータとすると、リンクの慣性行列は式（３）のように表される。
【数３】
2018158439.tif 000005
上記基底パラメータの詳細は、以下の式（４）にように表される。
α＝ｍ１ｌｇ１２＋Ｉｚ１＋ｍ２ｌ１２
β＝ｍ２ｌｇ２２＋ｌｚ２                      （４）
γ＝ｍ２ｌ１ｌｇ１
ただし、
ｌｉ：各リンクの長さ（ｉは軸番号）
ｍｉ：各リンクの質量
ｌｇｉ：各リンクの重心位置（リンクは長手方向に左右対称）
ｌｚｉ：各リンクの重心周りの慣性モーメント
である。先端の負荷５１２が変化すると、当該先端の負荷５１２が付加されているリンクの質量ｍ２が変化し、基底パラメータα、β、γがともに変化する。
遠心力およびコリオリ力ベクトルについては、式（５）のようになる。
【数４】
2018158439.tif 000006
【０１９６】
モータ角速度制御系については、ＰＩ（比例および積分）制御をＦＦ−Ｉ−Ｐ（フィードフォワード−積分−比例）制御として２自由度ＰＩ制御にした式（６）を基本構成とする。
【数５】
2018158439.tif 000007
ただし、
ｄθＭＲｉ／ｄｔ：モータの角速度目標値（ｉは軸番号）
ｄθＭｉ／ｄｔ：モータの角速度
ｋＦＶｉ：モータの角速度目標値フィードフォワード制御ゲイン
ｋＩＶｉ：モータの角速度偏差積分フィードバック制御ゲイン
ｋＰＶｉ：モータの角速度比例フィードバック制御ゲイン
ｕｉ：入力電圧（モータの電流制御系への指令値（トルク入力））
である。
【０１９７】
図３０は、一般的な速度制御系のブロック図である。この２自由度ＰＩ速度制御系は、図３０に示すように、位置制御系（Ｐ制御）の内側にカスケード接続された制御系として構成される。なお、図３０においては、第１軸に関する２自由度ＰＩ速度制御系を示している。
【０１９８】
以下においては、位置制御系を除いたモータの角速度制御系に焦点を当てて、制御周期が十分短いものと仮定しこれによりモータの角度制御系が連続系であるとして説明を行う。
【０１９９】
まず、図２８に示す２リンクアームの先端の負荷５１２を例えば５ｋｇとし、式（１）に現れる物理パラメータ（以下においては、基底パラメータα、β、γも含むものとする）を公知の同定法を用いて推定する。この同定法としては、例えば、ロボットモデルの関節剛性を考慮した特許文献３などの同定法等が用いられる。
【０２００】
次に、これらの推定された物理パラメータをモータ速度制御ゲインと共に、動力学モデルを表す式（１）および速度フィードバック制御則を表す式（６）に代入する。これにより、シリアル２リンクアームの速度制御系の時間応答シミュレータを構築し、ロボット実機の時間応答と良く合うかどうかを確認する。
【０２０１】
上記の同定法によって物理パラメータが精度よく推定されていれば、これらの時間応答は良く合うはずである。もし、少しずれているようであれば、上記時間応答シミュレータを用いた非線形最小２乗法（レーベンバーグ−マルカート法など）による最適化計算を用いて、物理パラメータをファインチューニングする。図３１は、物理パラメータのファインチューニングによる効果を示す図である。例えば、図３１の上側に最適化前、下側に最適化後の角速度ステップ応答を示す。図３１において、横軸は時間を示し、縦軸は角速度を示し、実線はロボット実機の応答を示し、破線はシミュレータによる応答結果を示す。最適化後の下側のグラフからわかるように、物理パラメータを最適化することで、シミュレータとロボット実機の角速度ステップ応答を良く合わせることができる。
【０２０２】
そこで、本実施形態においては、上記エンコーダで計測したモータの角速度からリンクの角速度を推定するオブザーバを構成し、モータの角速度の計測値だけでなく、リンクの角速度の推定値もフィードバックすることによってマニピュレータ先端の振動を抑制しながら精度良く動作させる。以下の実施形態では、速度制御されたロボット実機とシミュレーションの時間応答とが良く合うことに着目し、物理パラメータの推定精度の良さを生かしたオブザーバを構成する。以下、各実施形態に係るオブザーバを説明する。
【０２０３】
（非線形動力学モデルによるマニピュレータ制御部（１））
図３２は、マニピュレータ制御部１１２のオブザーバ６００のブロック図である。この実施形態のオブザーバ６００は、第１および第２軸のＰＩ制御器６０１、６０２と、２リンクアームの非線形動力学モデル６０３と、非線形動力学モデル６０３の出力を積分する積分器６０４ａ、６０４ｂ、６０４ｃ、６０４ｄ、６０５ａ、６０５ｂ、６０５ｃ、６０５ｄとを有する。ＰＩ制御器６０１は、第１軸を駆動するモータの速度ｄθＭ１／ｄｔと第１軸を駆動するモータの回転速度の推定値との偏差に基づいてＰＩ制御する。ＰＩ制御器６０２は、第２軸を駆動するモータの速度ｄθＭ２／ｄｔと第２軸を駆動するモータの回転速度の推定値との偏差に基づいてＰＩ制御する。２リンクアームの非線形動力学モデル６０３は、ＰＩ制御器６０１の出力と第１軸の操作量ｕ１との和となる第１入力τ１およびＰＩ制御器６０２の出力と第２軸の操作量ｕ２との和となる第２入力τ２に基づいて非線形動力学モデル６０３に基づいて第１および第２リンクの角加速度の推定を行うとともに第１および第２リンクをそれぞれ駆動するモータの角加速度の推定を行い、推定した角加速度を出力する。
【０２０４】
積分器６０４ａは、非線形動力学モデル６０３から出力される第１リンクの角加速度の推定値を積分し、角速度の推定値を出力する。積分器６０４ｂは、積分器６０４ａの出力を積分し、第１リンクの回転角の推定値を出力する。積分器６０４ｃは、非線形動力学モデル６０３から出力される第１リンクを駆動するモータの角加速度の推定値を積分し、上記モータの角速度の推定値を出力する。積分器６０４ｄは、積分器６０４ｃの出力を積分し、第１リンクを駆動するモータの回転角の推定値を出力する。
【０２０５】
積分器６０５ａは、非線形動力学モデル６０３から出力される第２リンクの角加速度の推定値を積分し、角速度の推定値を出力する。積分器６０５ｂは、積分器６０５ａの出力を積分し、第２リンクの回転角の推定値を出力する。積分器６０５ｃは、非線形動力学モデル６０３から出力される第２リンクを駆動するモータの角加速度の推定値を積分し、上記モータの角速度の推定値を出力する。積分器６０５ｄは、積分器６０５ｃの出力を積分し、第２リンクを駆動するモータの回転角の推定値を出力する。
【０２０６】
これらの第１および第２リンクの角加速度の推定値、第１および第２リンクの角速度の推定値、第１および第２リンクを駆動するモータの角速度の推定値、およびモータの回転角の推定値は、それぞれオブザーバ６００から出力される。
【０２０７】
また、このオブザーバ６００において、第１リンクの角速度の推定値、第１リンクとこの第１リンクを駆動するモータとの間に設けられる減速機の減速比ｎＧ１、および第１リンクを駆動するモータの角速度の推定値に基づいて、第１リンクのねじれ角速度の推定値を演算し、この推定値が出力される。同様に、第２リンクの角速度の推定値、第２リンクとこの第２リンクを駆動するモータとの間に設けられる減速機の減速比ｎＧ２、および第２リンクを駆動するモータの角速度の推定値に基づいて、第２リンクのねじれ角速度の推定値を演算し、この推定値が出力される。
【０２０８】
この実施形態のオブザーバ６００は、マニピュレータの非線形動力学モデル６０３を丸ごと内蔵し、ＰＩ制御器６０１、６０２のオブザーバゲインはマニピュレータの各軸の既存の速度制御系のＰＩ制御ゲインをそのまま使用する、というシミュレータそのものである。すなわち、ＰＩ制御器６０１、６０２のオブザーバゲインは速度制御と等価なオブザーバゲインである。また、積分制御が入っているので出力推定値の定常偏差を零にする機能も内蔵されている。そして、オブザーバの実装における近似、およびゲイン調整にかかるエンジニアリングコストが全くない。
【０２０９】
非線形動力学モデル６０３に基づくＰＩ制御型オブザーバは、式（１）を変形した式（７）に示す２階微分形式で表される。なお、式（７）において、記号「＾」は推定値を表す。
【数６】
2018158439.tif 000008
ただし、
ｄθＭ／ｄｔ＝[ｄθＭ１／ｄｔ,  ｄθＭ２／ｄｔ]Ｔ：オブザーバへのモータ角速度入力
ｕ＝[ｕ１,ｕ２]Ｔ：オブザーバへの入力（モータ電流指令値）
ＫＰＶ＝ｄｉａｇ（ｋＰＶ１，ｋＰＶ２）：速度偏差比例制御ゲイン
ＫＩＶ＝ｄｉａｇ（ｋＩＶ１，ｋＩＶ２）：速度偏差積分制御ゲイン
τ＝[τ１,τ２]Ｔ：オブザーバへの入力（モータ電流指令値）
である。
【０２１０】
ここで、ＰＩ制御器６０１、６０２のオブザーバゲインは、ロボット実機の速度ループのＦＦ−Ｉ−Ｐ制御（２自由度ＰＩ制御）のＰとＩのゲインと同じものを選んでいる。この場合、オブザーバの追従性能の１自由度だけを考えれば良いので、ＦＦ＝Ｐ、すなわちフィードフォワード系を比例系としたＰＩ制御として設定する。このシステムは、ゲインが一定の非線形オブザーバの一種である。また、積分制御が入っているので出力推定値の定常偏差は零になり、外乱除去オブザーバとしての機能も内蔵されている。
【０２１１】
式（７）で表される状態オブサーバをコントローラ１００Ａに実装し、リアルタイムで図３２に示す積分器を用いて２回積分することによって状態の推定ができる。なお、実際の積分は数値積分によって行われる。
【０２１２】
さて、２慣性系の角速度制御においては、モータの角速度とリンクの角速度、モータとリンクとの軸ねじれ角速度の３状態量をフィードバックすれば、任意の極の配置が可能となり、速応性（制御系の目標値に追従する速さ）と減衰率を自在に設定できる。しかし、既存のＰＩ制御系の再調整を伴うので移行するのは困難である。そこで、ＰＩ制御系への入力として、まず、オブザーバ６００から出力される軸ねじれ角速度（リンク角速度とモータ角速度の差）の推定値だけを状態フィードバックする。この軸ねじれ角速度のフィードバックでは、ＰＩ制御のゲイン交差周波数を変化させずに減衰率だけを増加させる効果が見込まれる。このため、現場での手調整が容易なので、特に産業用ロボットの制御装置には導入しやすい。
【０２１３】
図３３は、図３２のオブザーバ６００を有したマニピュレータ制御部１１２（１１０）のブロック図である。オブザーバ６００には、モータ角速度（エンコーダ差分）とモータドライバへの入力電圧（電流指令値）が入力される。このＰＩ制御型のオブザーバ６００による、第１および第２リンクに関する軸ねじれ角速度の推定値の状態フィードバック部７０１、７０２、７０３、７０４は、式（７）に示す２自由度ＰＩ制御（ＦＦ−Ｉ−Ｐ制御）にプラグインする形で実現可能であり、式（８）に示す制御則になる。
【数７】
2018158439.tif 000009
【０２１４】
この軸ねじれ角速度の推定値の状態フィードバック制御ゲインｋＴＶｉ（ｉ＝１，２）は、時間応答波形を見ながらの手調整が容易である。また、弾性関節を持つマニピュレータの正確な非線形動力学モデルに基づいたオブザーバを用いているので、シリアルリンクで構成されるマニピュレータの振動抑制制御では、第１軸だけの状態フィードバックだけでも十分な効果がある。なお、図３３には、高慣性化のためのリンク角加速度のフィードバック定数算出部７０５が示されているが、このフィードバック定数算出部７０５の機能については、後述する。
【０２１５】
本実施形態では、手先負荷が軽い場合にリンク側の慣性を大きく見せかけるための高慣性化制御について示す。その制御則は、式（８）にリンク角加速度の推定値のネガティブフィードバックを加えたものであり（図３３の状態フィードバック部７０３、７０４）、式（９）に示すようになる。
【数８】
2018158439.tif 000010
【０２１６】
ここで、角加速度の推定値の状態フィードバック制御ゲインｋＡＶｉは、リンクの慣性モーメントの次元を持っており、マニピュレータの先端負荷の慣性変動分Δｍを補償できると考えられる。例えば、式（３）の慣性行列がΔｍの変動（減少）を受けると、基底パラメータα、β、γがそれぞれ式（１０）に示すように、α’、β’、γ’に変化する。
α’＝α―Δｍ
β’＝β−Δｍ                  （１０）
γ’＝γ−Δｍ
ここで、式（３）の慣性行列の（１、１）成分に、式（１０）に示すマニピュレータの先端負荷の慣性変動後のα’、β’、γ’を代入し、減速比ｎＧ１を考慮すると、式（１１）に示すようになる。
ｋＡＶ１＝（２＋２ｃｏｓ（θＬ２））Δｍ×ｎＧ１          （１１）
この式（１１）により、第１軸の角加速度の推定値の状態フィードバック制御ゲインを算出することができる。式（１１）が、図３３に示す高慣性化のためのリンク角加速度のフィードバック定数算出部７０５の機能である。
【０２１７】
（非線形動力学モデルによるマニピュレータ制御部（２））
図３４は、マニピュレータ制御部１１３（１１０）のブロック図である。マニピュレータ制御部１１３は、高慣性化および定慣性化によるリンク角加速度のフィードバック制御およびそのゲイン算出機能を備えている。
【０２１８】
上述した慣性の低下は、アーム先端の負荷の質量が軽いときだけでなく、マニピュレータの姿勢変化でも生じる。２リンクマニピュレータでは、例えば、第２軸の角度が大きくなると第１軸の周りの慣性が低下することになる。そこで、姿勢変化による慣性の低下についても、リンク角加速度のフィードバックによって補償することを考える。
【０２１９】
２リンクマニピュレータの場合、式（３）に示す慣性行列の（１、１）成分の最大値からの慣性低下分を考慮すると、式（１２）に示すようになる。
ｋＡＶ１＝２γ（１−ｃｏｓ（θＬ２））ｎＧ１      （１２）
この式（１２）により、第１軸のリンク角加速度のフィードバック制御ゲインを算出できる。このフィードバックによって、アームの姿勢によらずに慣性を一定に保つこと、すなわち、定慣性化制御が実現され、上述の高慣性化制御と同等の振動抑制効果が得られる。
【０２２０】
この定慣性化制御と、実施形態の高慣性化制御は併用することが可能であり、式（１１）と式（１２）を融合すると、式（１３）に示すようになる。
ｋＡＶ１＝[（２＋２ｃｏｓ（θ２Ｌ））Δｍ＋２γ（１−ｃｏｓ（θＬ２））]ｎＧ１    （１３）
この式（１３）により、第１軸の高慣性化および定慣性化制御によるリンク角加速度のフィードバック制御ゲインを算出することができる。これが、図３４に示す高慣性化および定慣性化制御によるリンク角加速度のフィードバック定数算出部７０５Ａの機能である。
【０２２１】
さらに、式（３）に示す慣性行列の非対角要素に注目すると、（１、２）成分と（２、１）成分についても、高慣性化および定慣性化制御によるリンク角加速度のフィードバック制御ゲインｋＢＶ１、ｋＢＶ２はそれぞれ、式（１４）、（１５）のように算出することができる。
ｋＢＶ１＝[（１＋ｃｏｓ（θ２Ｌ））Δｍ＋γ（１−ｃｏｓ（θＬ２））]ｎＧ１      （１４）
ｋＢＶ２＝[（１＋ｃｏｓ（θ２Ｌ））Δｍ＋γ（１−ｃｏｓ（θＬ２））]ｎＧ１      （１５）
【０２２２】
これらｋＢＶ１、ｋＢＶ２を用いて、第１軸に第２軸の角加速度のフィードバック、第２軸に第１軸の角加速度のフィードバックを式（９）に加えると、式（１６）に示すようになる。
【数９】
2018158439.tif 000011
【０２２３】
このようにして、一般化した高慣性化および定慣性化制御を加えた振動抑制制御系が得られる。図３４は、高慣性化および定慣性化制御を加えた振動抑制制御系全体のブロック図である。
【０２２４】
図３５は、別のオブザーバ６００Ａのブロック図である。この実施形態のオブザーバ６００Ａは、図３２のオブザーバ６００において、物理パラメータ切り替え部６０６を新たに設けた構成を有している。この実施形態のオブザーバ６００Ａは、先端負荷の変動とそれに伴う摩擦力の変動に対しては、図３５に示すように、物理パラメータ切り替え部６０６によって非線形動力学モデル６０３の物理パラメータセットの切り替え（ゲインスケジューリング）を行い、振動抑制性能がロボットの先端負荷および摩擦力の変動によらずにロバストになるようにする。物理パラメータセットを陽に切り替えるためには、例えば、“Ｐａｙｌｏａｄ（５ｋｇ）”のようなロボット言語を実装し、先端負荷が変化するタイミングで用いれば良い。なお、物理パラメータセットとしては、例えば質量、慣性モーメント、摩擦係数、バネ係数等が挙げられる。
【０２２５】
図３５に示す例では、物理パラメータ切り替え部６０６は、先端負荷が５、４、３、２、１、０ｋｇ、つまり６通りの物理パラメータセットを必要とする。しかし、５ｋｇの物理パラメータセットさえ精度よく推定しておけば、上述した非線形最小２乗法による最適化の手法によって、先端負荷４ｋｇの物理パラメータセットを生成することができる。同じ要領で４ｋｇから３ｋｇ、３ｋｇから２ｋｇ、２ｋｇから１ｋｇ、１ｋｇから０ｋｇの物理パラメータセットを生成することができる。
【０２２６】
図３６は、さらに別のオブザーバ６００Ｂのブロック図である。この実施形態のオブザーバ６００Ｂは、図３２に示す実施形態のオブザーバ６００において、テーブル記憶部６０７と、ステップ応答データ比較部６０８と、物理パラメータ最適化部６０９とを新たに設けた構成を有している。第５実施形態のオブザーバ６００Ｂは、先端負荷が５ｋｇ、４ｋｇ、３ｋｇ、２ｋｇ、１ｋｇ、０ｋｇといった数値からずれていても良い。図３６では、予め取得しておいた先端負荷の質量毎（５ｋｇ、４ｋｇ、３ｋｇ、２ｋｇ、１ｋｇ、０ｋｇ）の速度ステップ応答データと、その時の物理パラメータセットを格納するテーブル記憶部６０７が用意されている。
【０２２７】
まず、未知の先端負荷を持つ実機の速度ステップ応答データを取得する。次に、取得した速度ステップ応答データと、テーブル記憶部６０７に格納された、先端負荷毎の速度ステップ応答データとをステップ応答データ比較部６０８において比較する。そして、この比較結果に基づいて、実機の速度ステップ応答データに対応する先端負荷が、テーブル記憶部６０７に格納された先端負荷、例えば５ｋｇ、４ｋｇ、３ｋｇ、２ｋｇ、１ｋｇ、０ｋｇのうちから最も近い先端負荷を選択し、この選択した先端負荷に対応する物理パラメータセットを初期値として選択する。実機の速度ステップ応答データに対応する先端負荷に最も近い先端負荷の選択は、例えば、実機の速度ステップ応答データと、テーブル記憶部６０７に格納された各先端負荷の速度ステップ応答データとの差の２乗の和が最小となる先端負荷を選択する。
【０２２８】
さらに、上記初期値として選択された物理パラメータセットを用いて物理パラメータ最適化部６０９によって最適化計算を行う。この最適化計算は、上述した非線形最小２乗法による手法と全く同様である。以上によって、未知の先端負荷に対しても、精度の良い物理パラメータセットが得られるので、精度の良いオブザーバを構築でき、効果的な振動抑制制御を供することができる。
【符号の説明】
【０２２９】
１，１Ａ…物体ハンドリング装置、２…アーム（可動部）、２０…マニピュレータ、２１…カメラ（第一カメラ）、３０…ベース、３３…カメラ（第二カメラ）、５０…処理部（載置部）、５１…マーク（第一マーク）、７１…マーク（第二マーク）、１１０…マニピュレータ制御部、１０１ｊ…自動較正部（較正処理部）、２００…ハンド（エフェクタ、可動部）、２００ｇ…接触センサ（センサ）、２００ｈ…力センサ（センサ）、２００ｉ…変位センサ（センサ）、Ｘ…方向（第一方向）、Ｙ…方向（第一方向）、Ｚ…方向（第二方向）、δｘ，δｙ…ずれ（第一誤差）、δｚ…ずれ（第二誤差）。
【図１】
2018158439.tif 000012
【図２】
2018158439.tif 000013
【図３Ａ】
2018158439.tif 000014
【図３Ｂ】
2018158439.tif 000015
【図３Ｃ】
2018158439.tif 000016
【図３Ｄ】
2018158439.tif 000017
【図４】
2018158439.tif 000018
【図５Ａ】
2018158439.tif 000019
【図５Ｂ】
2018158439.tif 000020
【図６】
2018158439.tif 000021
【図７Ａ】
2018158439.tif 000022
【図７Ｂ】
2018158439.tif 000023
【図７Ｃ】
2018158439.tif 000024
【図７Ｄ】
2018158439.tif 000025
【図７Ｅ】
2018158439.tif 000026
【図８】
2018158439.tif 000027
【図９】
2018158439.tif 000028
【図１０】
2018158439.tif 000029
【図１１】
2018158439.tif 000030
【図１２】
2018158439.tif 000031
【図１３】
2018158439.tif 000032
【図１４】
2018158439.tif 000033
【図１５】
2018158439.tif 000034
【図１６】
2018158439.tif 000035
【図１７】
2018158439.tif 000036
【図１８Ａ】
2018158439.tif 000037
【図１８Ｂ】
2018158439.tif 000038
【図１８Ｃ】
2018158439.tif 000039
【図１９Ａ】
2018158439.tif 000040
【図１９Ｂ】
2018158439.tif 000041
【図２０Ａ】
2018158439.tif 000042
【図２０Ｂ】
2018158439.tif 000043
【図２０Ｃ】
2018158439.tif 000044
【図２１Ａ】
2018158439.tif 000045
【図２１Ｂ】
2018158439.tif 000046
【図２１Ｃ】
2018158439.tif 000047
【図２１Ｄ】
2018158439.tif 000048
【図２２Ａ】
2018158439.tif 000049
【図２２Ｂ】
2018158439.tif 000050
【図２３】
2018158439.tif 000051
【図２４】
2018158439.tif 000052
【図２５Ａ】
2018158439.tif 000053
【図２５Ｂ】
2018158439.tif 000054
【図２６】
2018158439.tif 000055
【図２７】
2018158439.tif 000056
【図２８】
2018158439.tif 000057
【図２９】
2018158439.tif 000058
【図３０】
2018158439.tif 000059
【図３１】
2018158439.tif 000060
【図３２】
2018158439.tif 000061
【図３３】
2018158439.tif 000062
【図３４】
2018158439.tif 000063
【図３５】
2018158439.tif 000064
【図３６】
2018158439.tif 000065