(57)【要約】【課題】撮影装置の支持部の振動や変形などの外乱が予想される環境においても、簡単安価な構成によって、撮影画像を用いて高精度かつ高速にロボットハンドの位置姿勢を制御する。【解決手段】ロボット装置１が装着された架台４に対して固定の位置関係を有し、撮影装置で撮影可能な３個以上の基準マーカ４１〜４４を配置する。ロボット装置１に装着した３次元測定装置、手先カメラ８で測定した各マーカの位置姿勢に基づき、ロボット装置を制御するためのロボット座標系と、マーカ基準のマーカ座標系と、の間で座標変換を行う校正データを算出する。固定カメラ２で基準マーカ４１〜４４と、ワーク５１と、を撮影する。撮影画像から取得したマーカ座標系におけるワークの位置姿勢データと、前記校正データと、を用いて算出したロボット座標系におけるワークの位置姿勢に基づき、ロボット装置の位置姿勢を制御する。【選択図】図１
2020011339.tif 000002
【特許請求の範囲】
【請求項１】
撮影装置で撮影した撮影画像に基づき、ワークを操作するロボット装置の位置姿勢を制御する制御装置を備えたロボットシステムの制御方法において、
前記ロボット装置に対する相対位置が固定され、前記撮影装置で撮影可能な３個以上のマーカを配置し、
前記制御装置が、前記ロボット装置に装着した３次元測定装置により測定した前記ロボット装置に対する前記マーカの位置姿勢に基づき、前記ロボット装置を制御するためのロボット座標系と、前記マーカから定まるマーカ座標系と、の間で座標変換を行う校正データを算出する校正工程と、
前記制御装置が、前記撮影装置により、前記マーカと、ロボット装置により操作されるワークと、が撮影された撮影画像を取得させる撮影工程と、
前記制御装置が、前記撮影画像から取得した前記マーカ座標系における前記ワークの位置姿勢データと、前記校正データと、を用いて、前記ロボット座標系における前記ワークの位置姿勢を算出する位置姿勢算出工程と、
前記制御装置が、前記位置姿勢算出工程で算出された前記ロボット座標系における前記ワークの位置姿勢に基づき、前記ロボット装置の位置姿勢を制御するロボット制御工程と、を含むロボットシステムの制御方法。
【請求項２】
請求項１に記載のロボットシステムの制御方法において、前記ロボット装置に装着した前記３次元測定装置が前記マーカを撮影可能な３次元撮影装置であるロボットシステムの制御方法。
【請求項３】
請求項１に記載のロボットシステムの制御方法において、前記ロボット装置に装着した前記３次元測定装置が前記マーカの位置および形状を測定可能なプローブ測定装置であるロボットシステムの制御方法。
【請求項４】
請求項１から３のいずれか１項に記載のロボットシステムの制御方法において、前記ロボット装置を制御するためのロボット座標系（Ｒ）と、前記撮影装置のカメラ座標系（Ｃ）と、前記マーカから定まるマーカ座標系（Ｍ）と、ワークの位置姿勢から定まるワーク座標系（Ｗ）と、前記ロボット座標系（Ｒ）と前記マーカ座標系（Ｍ）との間の座標変換を行う校正データ（ＲＴＭ）と、次式を用いて、前記ワークのロボット座標系におけるワークの位置姿勢（ＲＴＷ）を算出するロボットシステムの制御方法。
【数１】
2020011339.tif 000012
【請求項５】
請求項２に記載のロボットシステムの制御方法において、前記ロボット装置に装着した前記３次元撮影装置のカメラ座標系（Ｃ２）と、前記ロボット装置の制御するためのロボット座標系（Ｒ）と、次式を用いて、前記マーカから定まるマーカ座標系（Ｍ）と、前記ロボット座標系（Ｒ）と、の間の座標変換を行う校正データ（ＲＴＭ）を算出するロボットシステムの制御方法。
【数２】
2020011339.tif 000013
【請求項６】
請求項２に記載のロボットシステムの制御方法において、前記３次元撮影装置が前記ロボット装置に対して着脱機構を介して着脱可能であり、前記３次元撮影装置を着脱機構を介して治具に固定した状態で、前記着脱機構により定まる着脱機構座標系（Ｈ）と、前記３次元撮影装置のカメラ座標系（Ｃ２）と、の間の座標変換を行う校正データを算出するロボットシステムの制御方法。
【請求項７】
請求項６に記載のロボットシステムの制御方法において、前記３次元撮影装置のカメラ座標系（Ｃ２）と、前記ロボット装置を制御するためのロボット座標系（Ｒ）と、前記着脱機構により定まる着脱機構座標系（Ｈ）と、次式を用いて、マーカ座標系（Ｍ）と、前記ロボット座標系（Ｒ）と、の間の座標変換を行う校正データ（ＲＴＭ）を算出するロボットシステムの制御方法。
【数３】
2020011339.tif 000014
【請求項８】
請求項１から７のいずれか１項に記載のロボットシステムの制御方法において、前記ロボット装置が架台に装着されており、前記撮影装置を支持する支持部が、前記架台から分離された基台部に支持されているロボットシステムの制御方法。
【請求項９】
請求項８に記載のロボットシステムの制御方法において、前記基台部が前記ワークを搬送する搬送装置を支持するロボットシステムの制御方法。
【請求項１０】
請求項１から９のいずれか１項に記載のロボットシステムの制御方法の各工程を前記制御装置に実行させるための制御プログラム。
【請求項１１】
請求項１０に記載の制御プログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項１２】
撮影装置で撮影した撮影画像に基づき、ワークを操作するロボット装置の位置姿勢を制御する制御装置を備えたロボットシステムにおいて、
前記ロボット装置が装着された架台に対して固定の位置関係を有し、前記撮影装置で撮影可能な３個以上のマーカが配置され、
前記制御装置は、
前記ロボット装置に装着した３次元測定装置により測定した前記ロボット装置に対する前記マーカの位置姿勢に基づき、前記ロボット装置を制御するためのロボット座標系と、前記マーカから定まるマーカ座標系と、の間で座標変換を行う校正データを算出する校正工程と、
前記撮影装置により、前記マーカと、ロボット装置により操作されるワークと、が撮影された撮影画像を取得させる撮影工程と、
前記撮影画像から取得した前記マーカ座標系における前記ワークの位置姿勢データと、前記校正データと、を用いて、前記ロボット座標系における前記ワークの位置姿勢を算出する位置姿勢算出工程と、
前記位置姿勢算出工程で算出された前記ロボット座標系における前記ワークの位置姿勢に基づき、前記ロボット装置の位置姿勢を制御するロボット制御工程と、を実行するロボットシステム。
【請求項１３】
請求項１２に記載のロボットシステムにおいて、前記ロボット装置に装着した前記３次元測定装置が前記マーカを撮影可能な３次元撮影装置であるロボットシステム。
【請求項１４】
請求項１２に記載のロボットシステムにおいて、前記ロボット装置に装着した前記３次元測定装置が前記マーカの位置および形状を測定可能なプローブ測定装置であるロボットシステム。
【請求項１５】
請求項１２から１４のいずれか１項に記載のロボットシステムにおいて、前記撮影装置を支持する支持部が、前記架台から分離された基台部に支持されているロボットシステム。
【請求項１６】
請求項１５に記載のロボットシステムにおいて、前記基台部が前記ワークを搬送する搬送装置を支持するロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影装置で撮影した撮影画像に基づき、ワークを操作するロボット装置の位置姿勢を制御する制御装置を備えたロボットシステムの制御方法、およびロボットシステムに関する。
【背景技術】
【０００２】
近年、ロボットにより組立作業を実現する組立生産装置が広く用いられるようになっている。このようなロボット装置において、ワークのピッキングや組立作業を高精度に行うために、ロボットと視覚センサを組み合わせたロボットの位置姿勢補正システムが知られている。ここでいう視覚センサとは、対象物の撮影画像から、位置や姿勢を計測可能なセンサのことである。
【０００３】
視覚センサとしては、単眼カメラのように対象物の位置、姿勢（以下、位置姿勢と記す）を２次元的に計測するものや、ステレオカメラのように対象物の位置姿勢を３次元的に計測するセンサが用いられる。一般に、このようなロボット用途の視覚センサを表す言葉として、「ビジョン」、「ロボットビジョン」、「カメラ」などの表現が用いられることがある。
【０００４】
ワークのピッキングを行うロボット装置のロボットビジョンシステムでは、例えば、ワーク供給エリアの上方に配置された視覚センサを用いてワーク供給エリア全体を撮影する構成が知られている。この際、視覚センサを取り付けるためのスタンドをカメラスタンドと呼ぶ。ワークはトレイや部品箱といったものに複数個配置されて供給されることが一般的であり、ワーク供給エリアは比較的広い範囲となる。視覚センサで広範囲を撮影するためには、ワークと視覚センサ間の距離（ワーキングディスタンス）を比較的長くするのが一般的である。
【０００５】
ピッキング動作においては、視覚センサによってワークの位置姿勢を計測する。そして、計測結果をもとにロボットアーム先端のロボットハンドの位置姿勢を補正し、ワークを取得する。このようなロボットビジョンシステムを実現するには、事前にロボットの座標系と、視覚センサの座標系の関係を校正により求めておく必要がある。これは、視覚センサの座標系で得られた計測値を、ロボットアームの制御基準となるロボット座標系の値に座標変換する必要があるためである。また、このような構成において、ロボットの座標系と視覚センサの座標系の関係を校正する、即ち両者の座標系の間で座標変換を行う校正データを取得することを、ハンドアイキャリブレーションと呼ぶ場合がある。
【０００６】
視覚センサの座標系の定義方法について説明する。視覚センサが例えばカメラのような撮像装置であれば、事前に当該カメラに対して内部・外部パラメータ校正を実施する必要がある。ここで、内部パラメータはレンズの焦点距離やひずみ特性などの光学特性を意味する。単眼カメラの場合の外部パラメータは、カメラの位置姿勢を意味する。また、ステレオカメラの場合は、外部パラメータは２つのカメラ間の相対位置姿勢を意味する。
【０００７】
これらの内部・外部パラメータを用いることにより、視覚センサの座標系を定義可能となる。この内部・外部パラメータを算出することをカメラ校正と呼ぶ。
【０００８】
しかしながら、このようなロボットビジョンシステムにおいて、撮影装置の支持部、例えばカメラスタンドの振動や変形により、視覚センサ位置が変化する可能性がある。これにより、ロボット座標系と視覚センサの座標系の関係が校正時から変化し、ロボットハンドの位置姿勢の補正データに誤差が生じ、ワークのピッキングに失敗する可能性がある。
【０００９】
このように、カメラスタンドの振動や変形により視覚センサの位置が変化する問題の対策の一つとして、例えばカメラスタンドを高剛性化することが考えられる。しかしながら、高剛性化を目的とするカメラスタンドの柱を太くするといった構造上の変更によって、ハードウェアが大型化し、またコストアップする可能性がある。即ち、カメラスタンドの高剛性化といったハードウェア的な対策は、生産装置の大型化や高コスト化を招く可能性がある。
【００１０】
そこで、事前に取得しておいた予想画像データと、実際に撮影した画像データを比較して、カメラの内部・外部パラメータが校正時から変化していないかを判定する手法が提案されている（下記の特許文献１）。このような構成では、内部・外部パラメータの変化が認められた場合は、内部・外部パラメータを再校正する処理を行うことになる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１６−１１８１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上記特許文献１の技術は、再校正が必要となったタイミングで必要に応じて視覚センサの再校正を行う手法である。従って、例えば上記のような撮影装置の支持部に振動や変形が起きやすい環境で特許文献１の技術を実施すると、再校正が必要である旨の判定が頻発する可能性がある。例えば、特許文献１が前提とするような内部・外部パラメータの再校正は、校正プレートと呼ばれる多数のマーカが描かれたプレートを、様々な姿勢で撮影することにより行う。このような再校正は一般に煩雑であり、度々、再校正要の判定が頻発すると、場合によってはシステムの実用性が損なわれる可能性がある。
【００１３】
以上に鑑み、本発明の課題は、撮影装置の支持部の振動や変形などの外乱が予想される環境においても、簡単安価な構成によって、撮影画像を用いて高精度かつ高速にロボットハンドの位置姿勢を制御できるようにすることにある。
【課題を解決するための手段】
【００１４】
上記課題を解決するため、本発明においては、撮影装置で撮影した撮影画像に基づき、ワークを操作するロボット装置の位置姿勢を制御する制御装置を備えたロボットシステムの制御方法において、前記ロボット装置に対する相対位置が固定され、前記撮影装置で撮影可能な３個以上のマーカを配置し、前記制御装置が、前記ロボット装置に装着した３次元測定装置により測定した前記ロボット装置に対する前記マーカの位置姿勢に基づき、前記ロボット装置を制御するためのロボット座標系と、前記マーカから定まるマーカ座標系と、の間で座標変換を行う校正データを算出する校正工程と、前記制御装置が、前記撮影装置により、前記マーカと、ロボット装置により操作されるワークと、が撮影された撮影画像を取得させる撮影工程と、前記制御装置が、前記撮影画像から取得した前記マーカ座標系における前記ワークの位置姿勢データと、前記校正データと、を用いて、前記ロボット座標系における前記ワークの位置姿勢を算出する位置姿勢算出工程と、前記制御装置が、前記位置姿勢算出工程で算出された前記ロボット座標系における前記ワークの位置姿勢に基づき、前記ロボット装置の位置姿勢を制御するロボット制御工程と、を含む構成を採用した。
【発明の効果】
【００１５】
上記構成によれば、ロボット装置が装着された架台に対して固定の位置関係を有するマーカ基準で現在のワークの位置姿勢を検出し、例えばロボット座標系におけるワークの位置姿勢を取得することができる。従って、撮影装置の支持部の振動や変形などの外乱が予想される環境においても、簡単安価な構成によって、撮影画像を用いて高精度かつ高速にロボットハンドの位置姿勢を制御することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態１〜３に係わるロボットシステムの構成を示した説明図である。
【図２】図１のロボットシステムにおける座標系の説明図である。
【図３】（ａ）、（ｂ）は図１のロボットシステムにおけるロボットハンドと手先カメラを示した説明図である。
【図４】図３（ａ）、（ｂ）の手先カメラの一例として、ステレオカメラの構成を示した説明図である。
【図５】図１のロボットシステムにおけるロボット制御手順の全体構成を示したフローチャート図である。
【図６】図３（ａ）、（ｂ）、図４の手先カメラの着脱機構を示した説明図である。
【図７】図３（ａ）、（ｂ）、図４の手先カメラを校正する機構の構成を示した説明図である。
【図８】図１のロボットシステムにおけるロボットハンドとマーカ間の校正処理を示したフローチャート図である。
【図９】本発明の実施形態２に係わる基準マーカの構成を示した説明図である。
【図１０】本発明の実施形態２に係わる基準マーカの異なる配置構成を示した説明図である。
【図１１】本発明の実施形態３に係わるプローブで測定可能な基準マーカの構成を示した説明図である。
【図１２】図１のロボットシステムにおけるロボットハンドとプローブを示した説明図である。
【図１３】図１１の構成におけるロボット制御手順の全体構成を示したフローチャート図である。
【図１４】図１１のロボットシステムにおけるロボットハンドとマーカ間の校正処理を示したフローチャート図である。
【図１５】図１１のロボットシステムにおけるプローブによる基準マーカの測定の様子を示した説明図である。
【発明を実施するための形態】
【００１７】
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【００１８】
＜実施形態１＞
ここでは、まず、本明細書における数式表現について説明する。Ｔは左上の添え字の座標系から、右下の添え字の座標系への同次座標変換行列を示す。同次座標変換行列ＡＴＢは回転行列（３自由度）と、平行移動行列（３自由度）を用いて次式のように表される。
【００１９】
【数１】
2020011339.tif 000003
【００２０】
また、以下では、ｐは左上の添え字の座標系における任意の点Ｐの座標値の同次ベクトルを意味する。その座標値は（Ｘ，Ｙ，Ｚ）とすると、同次ベクトルＡｐは下式のように表される。
【００２１】
【数２】
2020011339.tif 000004
【００２２】
次に、本発明を実施可能なロボットシステムの構成の一例につき説明する。図１は、本実施形態のロボットシステムの全体構成の一例を示している。このロボットシステムは、ロボット装置１でワーク５１をピッキングする。その際、撮影装置としての固定カメラ２によりワーク５１を撮影し、画像処理装置７を用いてワーク５１の位置姿勢を計測し、そこでの計測データを用いてロボット装置１の位置姿勢データを補正する。
【００２３】
ロボット装置１は、架台４上に載置されている。ロボット装置１は、多関節ロボットアームとして構成されたロボットアーム１１および、そのエンドエフェクタとして装着されたロボットハンド１２から構成されている。図１では、ロボットアーム１１は、垂直多関節型に相当する図示となっているが、パラレルリンク型や直動関節型など他の形式の構成であってもよい。
【００２４】
ロボットアーム１１は、その先端に装着されたロボットハンド１２を移動させ、ワーク５１を操作させる。ロボットハンド１２は多指構成の治工具とする。図１では２指のロボットハンド１２を示しているが、操作指の数や細部の構成は任意でよい。ロボット装置１では、ロボットハンド１２によりワーク５１を把持（ピッキング）し、ワーク５１を移送したり、他のワークに組み付けたりする操作を行う。
【００２５】
固定カメラ２は、ワーク５１と、基準マーカ４１〜４４の撮影画像を同時に取得（撮影）できるよう配置されている。固定カメラ２は、本実施形態では３次元計測可能なステレオカメラとするが、単眼カメラであってもよい。固定カメラ２は、撮影時の不要な振動を避けるため、内部のイメージセンサはグローバルシャッタを用いた形式であるのが望ましい。
【００２６】
本実施形態では、固定カメラ２は、ストッカ３の一部を構成するカメラスタンド３１に支持されている。撮影装置としての固定カメラ２を支持する支持部として設けられたカメラスタンド３１は、破線で示した固定カメラ２の画角が、ワーク５１と、基準マーカ４１〜４４をカバーできるような位置に固定カメラ２を支持する。このため、本実施形態ではカメラスタンド３１は、コの字型の基部と、この基部からロボット装置１の作業領域の上空に向かってほぼ水平方向に伸びる固定カメラ２の支持アームと、を備えた形状となっている。
【００２７】
ストッカ３は、ロボット装置１の操作可能な範囲にワーク５１を搭載したトレイ５を供給する搬送機能を有する。図１の各部の配置は、ストッカ３の搬送機能、ロボット装置１の操作性、固定カメラ２の画角などを勘案して決定すればよい。本実施形態では、ストッカ３の搬送動作によって、生じる振動がロボットアーム１１の架台４の側になるべく伝達されないよう、ストッカ３の基台部は、ロボットアーム１１の架台４と、機械的に分離された構造としてある。
【００２８】
なお、カメラスタンド３１は、ロボットアーム１１の架台４に設置されてもよいし、室内の天井から吊り下げたマウントなどに配置してもよい。カメラスタンド３１をロボットアーム１１の架台４に設置する場合にも、好ましくは、振動源となり得るストッカ３は、架台４と、機械的に分離された構造とするのが望ましい。
【００２９】
図１の構成では、ストッカ３にはワーク５１を搭載したトレイ５を供給、排出するためのスライダ３２が配置されている。また、ストッカ３には先述したようにカメラスタンド３１が配置されている。このような構成では、カメラスタンド３１が可動部であるスライダ３２と同じ台座上にあるため、カメラスタンド３１は振動しやすく、固定カメラ２の位置も変化しやすくなる傾向がある。しかしながら、図１のような構成は、ストッカ３の構造物や、上空のスペースをカメラスタンド３１に用いることができるため、省スペース、装置の低コスト化が可能であるという利点がある。
【００３０】
本実施形態では、このような簡単安価かつ省スペースな構造、そして、固定カメラ２に振動や位置の変動を生じる可能性がある構成でも、高精度なワークの位置姿勢の検出およびそれに基づく高精度なロボット制御を行えるようにする。
【００３１】
架台４上には３次元測定装置としての手先カメラ８ないし固定カメラ２により撮影可能な基準マーカ４１〜４４が設置されている。この基準マーカ４１〜４４は、ロボット装置１（の例えば基部）と固定の位置関係を有する、例えば、図１のようにロボット装置１と同じ架台４に配置する構成とする。あるいは、基準マーカ４１〜４４がロボット装置１と固定の位置関係を有する構成としては、基準マーカ４１〜４４を建物の床に設置された治具上に配置する構成が考えられる。その場合、架台４は、建物の床に対して、何らかの固定具を介して固着される。本実施形態では、ロボット装置１と基準マーカ４１〜４４は、固定の位置関係、少なくとも、両者の間の相対位置姿勢が変化しにくい構造によって設置される必要がある。
【００３２】
なお、本実施形態の基準マーカ４１〜４４は、後述する３次元測定装置（例えば下記の手先カメラ８）で３次元測定装置に対する位置姿勢を測定可能なものであれば任意のマーカであってよい。例えば、架台４上に固定カメラ２で高精度に位置姿勢が計測な、好ましくは３個以上の特徴部があれば、その特徴部を基準マーカ４１〜４４の代りに用いてもよい。このような特徴部としては、例えば架台４上にあるタップ穴などが考えられる。
【００３３】
また、基準マーカ４１〜４４は図１では４点設けているが、３次元測定の観点では、基準マーカの点数は少なくとも３点以上であればよい。ただし、基準マーカ４１〜４４を３点以上、多数、設ける場合には、測定結果の平均演算などを利用する余地が生じ、計測誤差が軽減されるため好ましい場合がある。
【００３４】
図２に図１のロボットシステムで用いられる座標系を示す。図２に示すように、基準マーカ４１〜４４から決定される座標系をマーカ座標系Ｍとする。例えば、基準マーカ４１を原点とし、基準マーカ４１から４２へのベクトルをＸ軸、基準マーカ４１〜４４がある近似平面の法線ベクトルをＺ軸、Ｘ軸とＺ軸の外積ベクトルをＹ軸とする。このように、マーカ座標系Ｍを高精度に定義するためには、基準マーカ４１〜４４が、機械的な手段（剛体から成る架台４に対する固定）によって、各マーカ間の相対位置姿勢が高精度に保証されている必要がある。
【００３５】
図１の構成では、基準マーカ４１〜４４で囲まれたワーク供給エリアの部位は、架台４が矩形に切り欠かれた形状となっている。図１では、スライダ３２によって、固定カメラ２の計測対象となるワーク５１が複数配置された状態でトレイ５がワーク供給エリアに搬入されている。
【００３６】
例えば、ロボットハンド１２によりトレイ５上のワーク５１を把持する場合、トレイ５内でワーク５１の位置が変化したり、トレイ５全体の位置が変化したりする可能性がある。そこで、固定カメラ２でワーク５１の位置を計測して、ロボットアーム１１の位置姿勢を補正する必要がある。固定カメラ２の計測領域は、破線で示したように、ロボットアーム１１の稼働範囲内にある。図２に示すようにワークの位置姿勢を表す座標系をワーク座標系Ｗとする。
【００３７】
図１において、ロボット装置１はロボット制御装置６により制御される。ロボット制御装置６は、演算を行うＣＰＵ６１と、ＲＯＭ６２およびＲＡＭ６３からなるメモリ部と、外部と通信を行うインターフェース（Ｉ／Ｆ）部６４を有している。これらの各ブロックは制御装置内部の通信に用いられるバス６５を介して相互に接続される。
【００３８】
図１のロボット装置１は、ＣＰＵ６１の制御機能として、ロボット制御部６１１を有している。これらの制御部はあたかもハードウェアブロックであるかの如く図示しているが、実際には、ＣＰＵ６１が、例えばＲＯＭ６２に記憶されているプログラムを読み込み実行することによって実現される。
【００３９】
ロボット装置１は、ロボット制御装置６のインターフェース部６４に接続されている。ロボットアーム１１は、ロボット制御部６１１の制御に基づきインターフェース部６４を介して送信される指令値によって、その位置姿勢を制御される。図２に示すように、ロボットアーム１１の基端部には、架台４に対するロボットアーム１１の位置姿勢を代表する座標系としてロボット座標系Ｒが設定されている。ロボット制御部６１１は、例えば、ロボット座標系Ｒにおけるロボットアーム１１の位置姿勢の演算に基づき、ロボットアーム１１とロボットハンド１２の動作を制御する。
【００４０】
ＲＯＭ６２は、たとえばＣＰＵ６１が実行するプログラムを格納するためのメモリで、コンピュータ読み取り可能な記録媒体である。ＣＰＵ６１のプログラムの格納領域は、ＥＥＰＲＯＭのような更新可能なメモリデバイスにより構成されていてもよい。また、ＣＰＵ６１のプログラムを格納する記録媒体としては、ＨＤＤやＳＳＤのような外部記憶装置（不図示）を用いてもよく、また、各種光ディスクや、フラッシュメモリのような交換可能なコンピュータ読み取り可能な記録媒体を用いてもよい。
【００４１】
インターフェース部６４には、ロボット装置１の動作を教示するための操作装置として、ティーチングペンダント（ＴＰ：不図示）などを接続することができる。通常、ティーチングペンダントなどと呼ばれる操作装置は、各種ファンクションキーとディスプレイなどを有し、手動操作によって、ロボット装置１を動作させることができる。また、インターフェース部には不図示のディスプレイ（ＬＣＤパネルなど）ないしキーボードなどから成るユーザーインターフェース装置を接続することができる。このユーザーインターフェース装置は、ロボットプログラムの編集などに利用できる。
【００４２】
図３（ａ）、（ｂ）にロボットハンド１２の拡大図を示す。図３（ａ）は手先カメラ８を把持する前の状態、（ｂ）は手先カメラ８を把持した後の状態をそれぞれ示している。ロボットハンド１２はワーク５１をピッキングするための機構と手先カメラ８を着脱、位置決めするための着脱機構（１２３１、１２３２）を備えている。このロボットハンド１２も、ロボット制御装置６のインターフェース部６４に接続されており、ロボット制御装置６はフィンガ１２１、１２２の開閉を制御することができる。
【００４３】
手先カメラ８は、基準マーカ４１〜４４を３次元測定する３次元測定装置を構成する。そのため、手先カメラ８は、３次元カメラ、例えば２眼構成のステレオカメラとする。あるいは、手先カメラ８は、基準マーカ４１〜４４を３次元測定するアクティブステレオやＴｏＦ（Ｔｉｍｅ  ｏｆ  Ｆｌｉｇｈｔ）カメラなどにより構成してもよい。また、手先カメラ８は、基準マーカ４１〜４４を３次元測定する３次元測定装置であるが、この３次元測定は、後述の実施形態に示すように、画像測定ではなく他の３次元測定方式によって行ってもよい。図２、図３に示すように手先カメラ８のカメラ座標系を手先カメラ座標系Ｃ２とする。
【００４４】
本実施形態では、手先カメラ８による基準マーカ４１〜４４の３次元測定は、ロボット座標系Ｒ〜マーカ座標系Ｍ間の校正データを取得するために行う。手先カメラ８は、この校正時にのみ用いられ、ロボット装置１の通常動作では必要ない。もし、手先カメラ８が常時、ロボットアーム１１に装着されていた場合には、ロボットアーム１１の可動範囲を狭めてしまう問題が生じる。そこで、手先カメラ８は、ロボットハンド１２で着脱可能であることが望ましく、本実施形態ではロボットハンド１２で把持可能な実装形態とする。
【００４５】
好ましくは、ロボットハンド１２は、手先カメラ８を再現性良く装着可能な機構を有するものとする。例えば、図３の例では、ロボットハンド１２の掌部１２３に位置決め用のピン穴１２３１、１２３２を設けている。また、フィンガ１２１、１２２には、テーパ部を備えたガイド爪１２１ａ、１２２ａを有している。ガイド爪１２１ａ、１２２ａは、手先カメラ８側のガイド爪８２１ａ、８２２ａと協働し、フィンガ１２１、１２２が手先カメラ８を把持した時、手先カメラ８の基部がピン穴１２３１、１２３２の方向へ押し込まれるよう付勢する。また、ロボットハンド１２の掌部１２３にはロボットハンドの位置姿勢を表すハンド座標系Ｈが設定される。
【００４６】
ロボットアーム１１は、ロボット制御装置６のロボット制御部６１１から出力される指令値に基づき、各関節を駆動して、ロボットハンド１２の位置姿勢、例えばハンド座標系Ｈがロボット座標系Ｒにおいて占める位置姿勢を制御することができる。その場合、ロボット制御部６１１は、ロボット座標系Ｒを基準とするハンド座標系Ｈの相対位置姿勢の目標値に対して、ロボットアーム１１の各関節のとるべき角度目標値を算出する逆運動学演算を行う。このように、ハンド座標系Ｈにおける目標値を決定すれば、ロボットアーム１１を目標の位置姿勢まで移動することができる。
【００４７】
また、ロボットアーム１１を動作させる際、ロボット制御部６１１は、ロボットアーム１１の各関節に設けられたエンコーダが出力する現在角度が角度目標値に一致するようにサーボ制御を行う。また、ロボット制御部６１１はエンコーダから各関節の現在角度情報を取得し、ロボット座標系Ｒに対するハンド座標系Ｈの現在の相対位置姿勢を算出可能である。
【００４８】
一方、図１の画像処理装置７は、固定カメラ２および手先カメラ８の撮影と、撮影画像を処理する制御手段を構成する。画像処理装置７は、ロボット制御装置６と同様、ＣＰＵ７１を中心に構成された制御系である。例えば、画像処理装置７は、演算を行うＣＰＵ７１と、ＲＯＭ７２およびＲＡＭ７３からなるメモリ部と、外部と通信を行うインターフェース（Ｉ／Ｆ）部７４を有している。これらの各ブロックは制御装置内部の通信に用いられるバス７５を介して相互に接続される。機能ブロック（７１１〜７１４）は、ロボット制御装置６の場合と同様に、ＣＰＵ７１が制御プログラムを実行することにより実現される。
【００４９】
固定カメラ２と、手先カメラ８は、インターフェース部７４を介して、画像処理装置７に接続されている。固定カメラ２ないし手先カメラ８は、カメラ制御部７１１からの指令に基づき、それぞれワーク供給エリアおよび基準マーカ４１〜４４を撮影し、撮影画像の画像データを画像処理装置７に送信することができる。また、カメラ制御部７１１は、必要に応じてワーク５１や基準マーカ４１〜４４を照らす照明の点灯や輝度の調整も行う機能を有するものとする。
【００５０】
受信した画像データは画像処理装置７内のカメラ制御部７１１（画像処理部）によって処理される。カメラ制御部７１１では画像データからワーク５１や基準マーカを４１〜４４の位置姿勢を算出する。ここでは、例えば、固定カメラ２の撮影画像から基準マーカ４１〜４４位置を計測する手法について説明する。
【００５１】
本実施形態では、白背景に黒色、円形の基準マーカ４１〜４４が架台４上に配置されているものとする。以下では、基準マーカ４１〜４４の黒丸の中心位置の計測処理について説明する。
【００５２】
カメラ制御部７１１において、固定カメラ２の内部の２つのカメラの撮影画像データに対してエッジ抽出処理を実施する。各エッジの長さと真円度から、基準マーカ４１〜４４のエッジを抽出する。また、抽出したエッジに対して楕円近似を行い、楕円中心の画像座標を求める。各画像の楕円中心から求まる視差と、固定カメラ２の校正結果である内部・外部パラメータを用いて、ステレオ計測を実施し、固定カメラ座標系Ｃにおける基準マーカ４１〜４４の中心の位置を求める。ここでｉは基準マーカの識別番号とする（本実施形態ではｉ＝１〜４）。内部・外部パラメータの求め方については後述する。
【００５３】
画像処理装置７の補正量演算部７１３では、カメラ制御部７１１で計測されたワーク５１と基準マーカ４１〜４４の位置情報と、ロボット座標系〜マーカ座標系間の座標変換を行う校正データを用いて、ロボットアーム１１の制御指令値（後述）を算出する。ロボット座標系〜マーカ座標系間の校正データは、校正演算部７１４により算出し、ＲＯＭ７２ないしＲＡＭ７３などに格納しておく。算出された制御指令値は画像処理装置７のインターフェース部７４を介して、ロボット制御装置６のインターフェース部６４に送信され、ロボット制御装置６からロボットアーム１１に指令値が送信される。
【００５４】
校正演算部７１４では、固定カメラ２および手先カメラ８の内部・外部パラメータを演算する機能と、基準マーカとロボットアーム１１間の校正値を演算する機能がある。後者の方法については後述するものとし、ここではまず前者の方法について説明する。本実施形態ではステレオカメラの場合について説明する。ステレオカメラの内部・外部パラメータは画像処理装置７内のメモリ、例えばＲＯＭ７２ないしＲＡＭ７３に格納しておく。
【００５５】
ここで、図４を用いて、固定カメラ２および手先カメラ８の内部パラメータと外部パラメータに関して説明する。図４では、固定カメラ２を例にとって図示しているが、手先カメラ８の場合も同様である。
【００５６】
図４は固定カメラ２の内部構造を模式的に示している。内部パラメータとは、固定カメラ２のステレオカメラを構成する単眼カメラ２１、２２の各々の焦点距離、画像中心、レンズ歪み等の、撮影特性に関するパラメータのことである。この内部パラメータによって、イメージセンサ２３と２４上に定まるセンサ座標系Ｓｌ、Ｓｒとカメラ座標系Ｃｌ、Ｃｒとの相対位置姿勢が求まる。なお、ｌ、ｒの各添字は、左（眼）、右（眼）の撮影各光学系を示す。
【００５７】
一方、外部パラメータは、それら単眼カメラ２１と２２相互の相対位置姿勢を規定するパラメータである。これにより、単眼カメラ２１と２２の各カメラ座標系ＣｌとＣｒとの相対位置姿勢が求まる。
【００５８】
一般に、ステレオカメラ（２）の内部・外部パラメータの校正では、まず例えば、そのステレオカメラ（２）によって、既知のサイズ、形状の画像パターンを付与した校正用被写体を、対象の位置姿勢を変えながら複数枚撮影する。そして、単眼カメラ２１と２２の撮影画像に対して、画像処理を行い画像上における校正用被写体のパターン上の特徴点位置を求める。この時、理論上では各単眼カメラの撮影画像上で、同じ特徴点は同一平面上（エピポーラ平面）に存在するというエピポーラ拘束という条件が成り立つ。このエピポーラ拘束が成り立つように、最適化計算を解くことにより、内部・外部パラメータを算出することができる。内部・外部パラメータの校正では、チェスボードないし市松模様の画像パターンを付与した校正プレートなどが校正用被写体として用いられる。
【００５９】
次に、図５、図８を参照して、本実施形態におけるロボット装置１の位置姿勢制御について説明する。図５、図８の制御手順は、ＣＰＵ７１の制御プラグラムとしてたとえばＲＯＭ７２に格納しておくことができる。
【００６０】
全体の大まかな流れとしては、オフライン作業（Ｓ１０１〜Ｓ１０３）と、オンライン作業（Ｓ１０４〜Ｓ１０６）に分けられる。オフライン作業であるＳ１０１から１０３は基本的には、一度だけ行う処理である。これらは作業者が行う準備作業のステップである。オンライン作業により行われるステップＳ１０４からＳ１０６は、ワーク５１が供給され、ピッキング動作を行うたびに実施する処理である。
【００６１】
まず、オフライン作業（Ｓ１０１〜Ｓ１０３）では、固定カメラ２の校正を実施し（Ｓ１０１）、固定カメラ２の内部・外部パラメータを取得する。この固定カメラ２の校正は、固定カメラ２をカメラスタンド３１に設置する前に別の治具上で実施してもよいし、また、カメラスタンド３１に設置した状態で行ってもよい。
【００６２】
次に、手先カメラ８の校正を実施する（Ｓ１０２）。本処理は手先カメラ８の内部・外部パラメータ算出処理と、ハンドカメラ校正処理を行う。これらの処理は手先カメラ８をロボットハンド１２に接続する前に別装置で実施することが好ましい。
【００６３】
ここで、ハンドカメラ校正作業について説明する。先述したようにロボットハンド１２は、手先カメラ８を把持する仕様に設計されている。図３や図６に示すようにロボットハンド１２の掌部１２３に、位置決め用のピン穴１２３１、１２３２が２つ形成されている。手先カメラ８の下面にはピン８１、８２が２本装着されている。ピン穴１２３１、１２３２（図３）にピン８１、８２（図６）が嵌合することにより、ロボットハンド１２と手先カメラ８は高精度に位置決めされる。
【００６４】
図７は、ハンドカメラ校正装置の説明図である。図３に示すように、例えばロボットハンド１２のピン穴１２３１を原点としてロボットハンド１２に固定された座標系をハンド座標系Ｈと定義する。これに対して、手先カメラ８が出力する位置情報の座標系を手先カメラ座標系Ｃ２と定義する。
【００６５】
画像処理装置７が、手先カメラ８の撮影画像を画像処理して求めた３次元の位置計測結果は、手先カメラ座標系Ｃ２上での位置に相当する。ロボット〜マーカ間校正を行うには、手先カメラ８による３次元計測結果からロボットハンド１２の位置を推定する必要がある。このため、オンライン作業前に、ハンドカメラ校正を実行して、ハンド座標系Ｈと手先カメラ座標系Ｃ２との相対位置姿勢を表すハンドカメラ間変換行列ＨＴＣ２を求める。ハンドカメラ間変換行列ＨＴＣ２は、ハンド座標系Ｈと手先カメラ座標系Ｃ２との間で座標値を変換する校正データに相当する。
【００６６】
図７のハンドカメラ校正装置は、ロボットハンド１２の掌部１２３のピン穴１２３１、１２３２と同形状のピン穴を設けたハンドモック１２１０を備えている。
【００６７】
また、図７のハンドカメラ校正装置は、ハンドモック１２１０に対して高精度に位置決めされた位置に校正用マーカ治具９を備える。校正用マーカ治具９には、手先カメラ８で計測可能な指標である黒地に白円のパターンで複数配置されている。ハンド座標系Ｈにおける各指標の位置は、必要な精度で機械的に高精度に設定されているものとする。なお、ここでは校正用マーカ治具９のマーカパターンとして、黒地に白円の水玉パターンを例示したが、マーカパターンには他のグラフィック構成を用いて構わない。
【００６８】
校正用マーカ治具９の指標を手先カメラ８で撮影した画像に基づき、手先カメラ座標系Ｃ２における指標の位置を求めることができる。即ち、ハンド座標系Ｈにおける各指標の位置と、指標の計測結果を用いて、最適化計算を解くことにより、ハンドカメラ間変換行列ＨＴＣ２を求めることができる。図７に示したような構成を有するハンドカメラ校正装置によれば、ロボットシステムを介さずに測定を行うため、高精度にハンドカメラ間変換行列ＨＴＣ２を求めることができる。
【００６９】
再び、図５において、手先カメラ８の校正（Ｓ１０２）に続き、ロボット−マーカ間校正を実施する（Ｓ１０３）。このロボット−マーカ間校正では、手先カメラ８を介して、ロボットアーム１１のロボット座標系Ｒと、基準マーカ４１〜４４から定まるマーカ座標系Ｍとの間の校正を行う。具体的には、ロボット座標系Ｒとマーカ座標系Ｍとの間で座標変換を行う校正データを演算により取得する。
【００７０】
ロボット−マーカ間校正を（Ｓ１０３）は、例えば、図８のように実施する。図８において、まず、ロボットハンド１２で手先カメラ８を把持し、装着する（Ｓ２０１）。その後、ロボット制御装置６に接続されているティーチングペンダント（不図示）などを用いてロボットアーム１１を基準マーカ４１〜４４を撮影できる位置まで手先カメラ８を移動させる。通常、ティーチングペンダント（不図示）によるロボットアーム１１の制御はユーザが手動で行う。しかしながら、基準マーカ４１〜４４を撮影できる位置への手先カメラ８の移動（あるいはさらに下記の撮影）は予め用意した制御プログラムによって自動的に行う校正であってもよい。
【００７１】
次に、画像処理装置７から手先カメラ８に対して撮影指令を送信し、手先カメラ８は撮影指令を受信すると、撮影した基準マーカ４１〜４４の撮影画像を画像処理装置７に送信する（Ｓ２０２）。
【００７２】
これに応じて、画像処理装置７は、基準マーカとアーム間の相対位置姿勢を算出する工程（Ｓ２０３）を実行する。画像処理装置７は撮影画像を受信すると、画像処理部７１２で撮影画像の座標系Ｓｌ、Ｓｒ（図４）における基準マーカ４１〜４４の位置を算出する。
【００７３】
次に、ＲＯＭ７２に保存されている手先カメラ８の内部・外部パラメータを読み出し、三角測量の原理により、左カメラ座標系Ｃｌ基準での３次元位置に変換するステレオ計測を実施する。ここで、便宜上、手先カメラ座標系Ｃ２は、左カメラ座標系Ｃｌと等価であるものとする（図４）。例えば、平行ステレオの場合、計測点Ｐ１のＸＹＺ座標は、下式のように表現される。
【００７４】
【数３】
2020011339.tif 000005
【００７５】
上式において、ｆは焦点距離、Ｂは単眼カメラのレンズ主点間の距離である基線長、ｄは単眼カメラの撮影画像上における特徴点のＸ位置ｘｌとｘｒの差である視差、ｙは単眼カメラの撮影画像上における特徴点のＹ位置を意味する。ｆは内部パラメータから、Ｂは外部パラメータから決定される。また、基準マーカ４１〜４４の位置をＰｉ（ｉ＝１−４）とする。たとえばｉ＝１が基準マーカ４１の位置に相当する。
【００７６】
次に、手先カメラ座標系Ｃ２から見た基準マーカＣ２ｐｉの座標を、ハンドカメラ間変換行列ＨＴＣ２と、ハンド座標系とロボット座標系の変換行列ＲＴＨと、を用いて、次式によってロボット座標系Ｒの座標値に変換する。このとき、ハンド座標系とロボット座標系の変換行列ＲＴＨはロボット装置１の機械的なジオメトリから定まる値でありロボット制御装置６内のＲＯＭ６２に格納されているものとする。
【００７７】
【数４】
2020011339.tif 000006
【００７８】
上記の処理は、その他の基準マーカ４２〜４４でも同様に実施する。これにより、ロボット座標系Ｒから見た基準マーカの座標値Ｒｐｉ（ｉ＝１−４）を取得できる。
【００７９】
また、先述したように基準マーカ間の相対位置姿勢は機構的に決定されているため、マーカ座標系Ｍから見た基準マーカの座標値Ｍｐｉ（ｉ＝１−４）も取得することができる。ここで、ロボット−マーカ間校正で求めたいロボットマーカ間変換行列ＲＴＭと、算出した基準マーカの座標値には次式のような関係性がある。
【００８０】
【数５】
2020011339.tif 000007
【００８１】
そこで、下式（数６）に示すように、上式（数５）の右辺と左辺の差分のノルム二乗和が０に近づくように、同次座標変換行列ＨＴＭに対して、非線形最適化計算を解くことができる。ここで、Ｎは基準マーカの数を示す。
【００８２】
【数６】
2020011339.tif 000008
【００８３】
以上のようにして算出したロボットマーカ間変換行列ＲＴＭを、画像処理装置７内のＲＯＭ７２あるいはＲＡＭ７３に格納する。その後、手先カメラ８をロボットハンド１２から取り外す。以上が、図５のオフライン作業（Ｓ１０１〜Ｓ１０３）であり、その後、制御はオンライン作業（Ｓ１０４〜Ｓ１０６）に入る。ここでは、オンライン作業として、ワーク５１がストッカから供給された後の制御を例として説明する。
【００８４】
まず、基準マーカとワーク間の相対位置姿勢の計測（Ｓ１０４）について説明する。画像処理装置７は固定カメラ２に対して撮影指令を送信する。固定カメラ２の視野内にはワーク５１と基準マーカ４１〜４４がすべて入っているものとする。また、固定カメラ２による撮影時には、ロボットアーム１１によって、撮影対象が固定カメラ２に対して隠蔽されないよう、ロボットアーム１１の位置はロボット制御装置６によって制御されるものとする。
【００８５】
固定カメラ２は、撮影したワーク５１と基準マーカ４１〜４４の撮影画像を画像処理装置７に送信する。画像処理装置７内の画像処理部７１２は、受信した撮影画像の画像データからワーク５１の位置姿勢と基準マーカ４１〜４４の位置を計測する。ワークの位置姿勢算出においてはワーク５１の特徴部を３点以上ステレオ計測することにより、求めることができる。ここで、図２に示したように、ワーク５１の位置姿勢を表す座標系をワーク座標系Ｗとすれば、ワーク座標系Ｗと固定カメラ座標系Ｃ間の座標変換を行う校正データを変換行列ＣＴＷを決定することができる。
【００８６】
同様に、固定カメラ座標系Ｃにおける基準マーカ４１〜４４の位置情報があれば、マーカ座標系Ｍと固定カメラ座標系Ｃ間の変換行列ＣＴＭも決定することができる。これらの変換行列と次式を用いて、基準マーカ４１〜４４とワーク５１間の変換行列ＭＴＷを算出することができる。
【００８７】
【数７】
2020011339.tif 000009
【００８８】
次に、ロボットとワーク間の相対的な位置姿勢を算出する位置姿勢算出工程を行う（Ｓ１０５）。ここで、画像処理装置７内のＲＯＭ７２に保存されているロボットマーカ間変換行列ＲＴＭと先ほど固定カメラ２の撮影画像を介して取得した基準マーカとワーク間の変換行列ＭＴＷと、を用いて、ロボットとワーク間の相対位置姿勢ＲＴＷは次式のように表せる。
【００８９】
【数８】
2020011339.tif 000010
【００９０】
次に、測定したロボットとワーク間の相対位置姿勢ＲＴＷを用いてロボット位置を補正してワークをピッキングする（Ｓ１０６）。その場合、事前にワーク５１をピッキングする際のロボットハンド１２の位置姿勢を求めておく。この時のロボットハンド１２の位置から定まる把持時ハンド座標系Ｈ２と、ワーク座標系Ｗ間の相対位置姿勢をＨ２ＴＷとする。この値はロボット制御装置６の例えばＲＯＭ６２に格納しておく。また、ロボット座標系Ｒにおける、現在のロボットハンド１２の位置姿勢をＲＴＨｎと表す。ここで、Ｈｎは現在のロボットハンド１２位置から定まるハンド座標系である。これらの情報を用いて、次式より、ロボットハンド１２の補正量ＨｎＴＨ２を算出する。
【００９１】
【数９】
2020011339.tif 000011
【００９２】
ロボット制御装置６はこの補正量ＨｎＴＨ２だけ、ロボットハンド１２が移動するよう、ロボットアーム１１の位置姿勢を補正する。ロボットアーム１１が所望の位置に移動したら、ロボット制御装置６はロボットハンド１２のフィンガを閉じ制御を行うことにより、ワーク５１を把持することができる。
【００９３】
以上のように、本実施形態では、ロボット装置１の架台４と固定の位置関係で配置される基準マーカを、３次元測定装置としてロボットアームに装着した手先カメラ（３次元撮影装置）で計測する。これにより、マーカ座標系Ｍとロボット座標系Ｒの間で座標変換を行うための校正データを精度よく取得することができる。そして、この校正データを用いて固定カメラ２による撮影結果からロボット座標系Ｒにおけるワークの位置姿勢を精度よく取得することができる。本実施形態によれば、固定カメラ２の振動や変位が生じていても、座標演算は、予めロボット座標系Ｒとの関係が正確に校正されたマーカ座標系Ｍを介して行われる。このため、固定カメラ２のカメラスタンドをワークの搬送装置に固定するような安価かつ簡便な構成であっても、固定カメラ２の振動や変位に影響されることなく、高精度なロボット制御が可能となる。
【００９４】
＜実施形態２＞
本実施形態では、実施形態１とは基準マーカの形状・配置が異なる構成を示す。基準マーカ以外の構成および制御手順については、実施形態１と同様でよく、それらについての重複した説明は、以下では省略する。また、以下では、実施形態１と同一ないし相当する部材については同一の参照符号を用い、その詳細な説明は省略するものとする。
【００９５】
図９は、本実施形態における基準マーカプレート４５の構成例を示している。図９において、基準マーカプレート４５は架台４上に設置されている。なお、図９では、固定カメラ２については設置位置のみを図示し、カメラスタンドなど、撮影装置の支持手段については図示を省略している。
【００９６】
基準マーカプレート４５には、図中の黒丸で示すように、カメラで位置を高精度に計測可能な指標（マーカ）が４点、付与されている。なお、基準マーカプレート４５の指標（マーカ）の数は本実施形態では４点としているが、手先カメラ８などを用いて３次元測定を行うためには少なくとも３点以上が設けられていればよい。当然ながら、基準マーカプレート４５は固定カメラ２の視野内およびロボットアーム１１の可動範囲内に設置される。図９では、基準マーカプレート４５は、架台４のトレイ５が進入する部位の側方に配置されている。
【００９７】
また、基準マーカプレート４５内の指標は、手先カメラ８の視野内にすべて収まるように配置されている。従って、図５、図８の手順において、ハンド−マーカ間の校正（Ｓ１０３）のために手先カメラ８で基準マーカプレート４５を撮影（Ｓ２０２）するには、ロボットアーム１１を例えば基準マーカプレート４５の直上の上空位置に移動しさえすればよい。これにより、ハンド−マーカ間の校正（Ｓ１０３）において、ユーザが撮影を行う作業時間を短縮することができる。また、基準マーカプレート４５上に指標（マーカ）を配置することにより、高精度なマーカ間の相対位置姿勢精度を得るのが容易である。これにより、マーカ座標系Ｍを高精度に定義することが可能となる。
【００９８】
図９の構成では、トレイ５の中心から基準マーカプレート４５の配置位置がずれているが、固定カメラ２の撮影光軸をトレイ５の中心部に置きたい場合も考えられる。そして、基準マーカプレート４５を固定カメラ２の撮影視野の周辺部で撮影するよりも、撮影精度の高い撮影視野の中心部で撮影するのが好ましい場合がある。その場合には、図１０に示すように、基準マーカプレート４５をトレイ５の下部に配置し、トレイ５のワーク５１の載置部位以外の部分に開口部５８ａを配置する、といった構成が考えられる。基準マーカプレート４５の支持手段としては、架台４から延ばした、支持腕や、架台４を設置した床面を用いる。このような構造により、ワーク５１と基準マーカプレート４５を固定カメラ２の視野中心付近に配置することができる。一般的にいって、多くの撮影光学系では、撮影視野の周辺部ではレンズ歪みの影響により、計測精度が低下する傾向がある。しかしながら、図１０のような構成により、このように視野中心付近に基準マーカプレート４５を配置することができ、より高精度に基準マーカとワーク間の相対位置姿勢の計測（Ｓ１０４）を実施することができる。
【００９９】
＜実施形態３＞
実施形態１、２では、マーカ座標系とロボット座標系の間の校正を行う３次元測定装置として、手先カメラ８を用いた。しかしながら、ロボット装置１の架台４と固定の位置関係で配置された基準マーカは必ずしも画像情報のみを介して検出可能なものである必要はない。また、マーカ座標系とロボット座標系の間の校正に必要な３次元測定装置としては、３次元撮影装置以外の構成を用いてもよい。以下では、例えば半球状のマーカを用い、そのマーカの位置および形状を測定するプローブ測定装置を３次元測定装置に用いる例を示す。本実施形態においても、前述の実施形態１、２と同一ないし相当する部材については同一の参照符号を用い、その詳細な説明は省略するものとする。
【０１００】
図１１は、本実施形態３のロボット座標系〜マーカ座標系の校正に必要な要部の構成を示している。図１１において、図１の構成と異なるのは、ロボット装置１のロボットハンド１２に装着するのが手先カメラ８ではなく、プローブ治具１０である点である。図１２はこのプローブ治具１０およびロボットハンド１２の要部の構成を示しており、同図に示すように、プローブ治具１０の先端には球状のプローブ１０３が設けられている。
【０１０１】
図１２に示したプローブ治具１０の台座部分と、ロボットハンド１２の結合機構の構成は、例えば図３に示した手先カメラ８のものとほぼ同等である。上面にはピン８１、８２が２本装着されている。従って、ロボットハンド１２を図３（ａ）に示すように構成しておけば、ピン穴１２３１、１２３２にピン８１、８２を挿入することによって、ロボットハンド１２とプローブ治具１０は高精度に位置決めされる。また、フィンガ１２１、１２２のガイド爪１２１ａ、１２２ａと協働するガイド爪（８２１ａ）８２２ａとの構成および動作も実施形態１と同様である。
【０１０２】
ピン８１、８２とプローブ１０３の相対位置関係は必要な精度範囲で、高精度に定まっているものとする。そのためには、プローブ治具１０の加工精度を制御して必要な精度を保つ。
【０１０３】
あるいは、プローブ１０３の位置の校正を予め行っておくのであれば、真球度が出ている基準球４６を、架台４上に固定しておく（図１２、図１５）。この基準球４６の表面の複数個所に対して接触測定を行う（図１５）。この測定結果と、基準球４６の設計値を比較し、プローブ１０３の座標位置を算出することができる。以上のようにして、プローブ治具１０をロボットハンド１２で装着した際に、ハンド座標系（着脱機構座標系）Ｈ基準でのプローブ１０３の位置を高精度に演算することができる。
【０１０４】
図１１ではロボット制御装置６の構成は、図示を省略しているが、ロボット制御装置６は図１と同様の構成とすることができる。また、図１における画像処理装置７については、固定カメラ２の側の処理のみを行うものとし、手先カメラ８に関する処理、即ち、マーカ座標系とロボット座標系の間の校正については、ロボット制御装置６側で行う。
【０１０５】
その場合、ロボットハンド１２には力覚センサ（不図示）を設けておく。この力覚センサは、例えば、プローブ治具１０を装着したフィンガ１２１、１２２に印加される反力を検出するよう構成される。この力覚センサ（不図示）を用いることにより、プローブ１０３が接触した瞬間を検知することができる。なお、同様の機能を有する力覚センサは、ロボットハンド１２ではなく、プローブ治具１０やロボットアーム１１に内蔵されていてもよい。
【０１０６】
二つ目の実施形態１ないし２との相違点は、前述の基準マーカ４１〜４４に相当するマーカ手段としての基準球４６〜４９の形状である。本実施形態では、基準球４６〜４９は球体であるものとする。球体形状を採用する理由は、プローブ１０３で接触してマーカ位置を計測する際と、固定カメラ２で基準球４６〜４９を計測する時、高精度な計測が可能なためである。ただし、基準球４６〜４９の形状は、球体形状に限らず、円柱形状や円錐形状でも、単純なボス穴でもよく、接触、非接触のいずれの３次元計測によっても高精度な計測が可能であれば任意の立体形状であればよい。
【０１０７】
図１３、図１４は、機能的には上述の図５、図８に相当するフローチャートで、本実施形態におけるロボット装置１の位置姿勢制御の制御手順を示している。図１３、図１４では、図５、図８の１００番台および２００番台のステップ番号は、３００番台および４００番台のステップ番号に置換されている。その場合、図１３、図１４のステップのうち、ステップ番号の１の位の数字が図５、図８のものと同じステップは、図５、図８において該当するステップと同等の処理に相当する。図１３、図１４の制御手順は、ＣＰＵ７１の制御プラグラムとしてたとえばＲＯＭ７２に格納しておくことができる。
【０１０８】
図１３において、実施形態１の図５の処理との相違点は、オフライン作業（Ｓ３０１、Ｓ３０２）に手先カメラの校正（Ｓ１０２）がない点である。
【０１０９】
図１４は、ロボット−マーカ間校正（Ｓ３０２）の処理内容を詳細に示している。このロボット−マーカ間校正（Ｓ３０２）では、プローブ治具１０により基準球４６〜４９を測定し、ロボットアーム１１のロボット座標系Ｒと基準球４６〜４９から定まるマーカ座標系Ｍ間の座標変換を行う校正データを取得する。
【０１１０】
図１４において、プローブ治具１０をアーム先端に装着（Ｓ４０１）する。本実施形態では、ロボットハンド１２でプローブ治具１０を把持させる。この操作は、ティーチングペンダントを用いてユーザが行ってもよいし、予め用意した制御プログラムに基づいて行ってもよい。
【０１１１】
次に、ロボット制御装置６（図１）がロボットアーム１１を制御し、プローブ治具１０を用いて基準球４６〜４９に接触（Ｓ４０２）させ、各基準マーカの位置を計測する。
【０１１２】
図１５は、プローブ治具１０により基準球４６を接触計測する様子を示している。同図に示すように、基準球４６に対してプローブ１０３を４点以上、接触させ、接触した瞬間のプローブ１０３の位置を計測する。この計測結果を用いて、球面の方程式にフィッティングすることにより、プローブ１０３の中心位置と半径を計測する。同じ接触計測は、基準球４６〜４９の全てに対して行う。これにより、ロボット座標系Ｒから見た基準球４６〜４９の中心座標値Ｒｐｉ（ｉ＝１−４）を取得することができる。この処理は、上述の実施形態１、２において、手先カメラ８で取得した画像から、ロボット座標系Ｒにおける基準マーカ４１〜４４の中心座標値を求める処理と同等である。
【０１１３】
図１５において、基準球４６〜４９とロボット間の相対位置姿勢を算出する処理（Ｓ４０３）は、実施形態１、図８のステップＳ２０３と同じ内容である。ここでは、マーカ座標系Ｍとロボット座標系Ｒの間で座標変換を行うための校正データを取得する。
【０１１４】
再び図１４において、オンライン作業（Ｓ３０３〜Ｓ３０５）は、図５のオンライン作業（Ｓ１０４〜Ｓ１０６）と同等である。このオンライン作業（Ｓ３０３〜Ｓ３０５）では、ワーク（５１）と基準球４６〜４９を固定カメラ２で撮影し、マーカ座標系Ｍにおけるワーク（５１）の位置姿勢を取得する（Ｓ３０３）。そして、マーカ座標系Ｍとロボット座標系Ｒの間で座標変換を行い、ロボット座標系Ｒにおけるワーク（５１）の実際位置を取得し（Ｓ３０４）、ロボットアーム１１の位置姿勢を補正して、所期のロボット動作を行う。
【０１１５】
以上のように、本実施形態では、ロボット装置１の架台４と固定の位置関係で配置される基準マーカに、プローブ計測可能な立体（球体）形状を用いている。そして、３次元測定装置として、ロボットアームに装着したプローブを用いる。このような構成においても、実施例１、２と同様にマーカ座標系Ｍとロボット座標系Ｒの間で座標変換を行うための校正データを精度よく取得することができる。そして、この校正データを用いて固定カメラ２による撮影結果からロボット座標系Ｒにおけるワークの位置姿勢を精度よく取得することができる。本実施形態によれば、固定カメラ２の振動や変位が生じていても、座標演算は、予めロボット座標系Ｒとの関係が正確に校正されたマーカ座標系Ｍを介して行われる。このため、固定カメラ２のカメラスタンドをワークの搬送装置に固定するような安価かつ簡便な構成であっても、固定カメラ２の振動や変位に影響されることなく、高精度なロボット制御が可能となる。
【０１１６】
なお、本実施形態では、ロボット装置１の架台４と固定の位置関係で配置される基準マーカに、プローブ計測可能な球体形状を採用している。このような球状の基準マーカを架台４に配置する場合、図１５に示したように、架台４の上面よりも球体の最大外径が上にくるように配置するほうが好ましい。例えば、基準マーカは、その球体の赤道部分が架台４の上面よりも上方に露出するよう設置する。このような基準マーカの配置構成によれば、固定カメラ２で基準マーカを撮影する際に、必ず球体の最大外径が視野内に入ることになる。従って、画像処理で球体のエッジを抽出する際に、常に最大外径部を基準マーカのエッジとして検出することができる。そして、例えばこの基準マーカのエッジを楕円フィットする処理によって、極めて精度よく、球体中心を計測することができる。また、プローブ治具１０の代わりに、フィンガ１２１、１２２を直接、基準球４６〜４９に接触させて基準球４６〜４９を直接、３次元計測する構成を用いてもよい。その場合には、プローブ治具１０の把持誤差の影響を削減し、プローブ治具１０を省略できる利点がある。
【０１１７】
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１１８】
１…ロボット装置、２…固定カメラ、４…架台、６…ロボット制御装置、７…画像処理装置、８…手先カメラ、１１…ロボットアーム、１２…ロボットハンド、３１…カメラスタンド、４１〜４４…基準マーカ、５１…ワーク。
【図１】
2020011339.tif 000015
【図２】
2020011339.tif 000016
【図３】
2020011339.tif 000017
【図４】
2020011339.tif 000018
【図５】
2020011339.tif 000019
【図６】
2020011339.tif 000020
【図７】
2020011339.tif 000021
【図８】
2020011339.tif 000022
【図９】
2020011339.tif 000023
【図１０】
2020011339.tif 000024
【図１１】
2020011339.tif 000025
【図１２】
2020011339.tif 000026
【図１３】
2020011339.tif 000027
【図１４】
2020011339.tif 000028
【図１５】
2020011339.tif 000029