(57)【要約】【課題】  撮像画像に基づいて、ポートと撮像部との対応関係を識別することで、撮像画像を用いたロボット制御を適切に行うロボット制御システム、ロボット、ロボット制御方法及びプログラム等を提供すること。【解決手段】  ロボット制御システム３００は、複数のポートに接続される複数の撮像部からの複数の撮像画像を取得する撮像画像取得部３１０と、取得した複数の撮像画像のうち、少なくとも１つの撮像画像に基づいてロボットの制御を行うロボット制御部３３０と、複数の撮像部のうちのいずれの撮像部が、複数のポートのうちのいずれのポートに接続されたかを識別するポート識別処理を、複数の撮像画像に基づいて行う処理部３２０を含む。【選択図】      図２
2015058488.tif 000002
【特許請求の範囲】
【請求項１】
複数のポートに接続される複数の撮像部からの複数の撮像画像を取得する撮像画像取得部と、
取得した前記複数の撮像画像のうち、少なくとも１つの撮像画像に基づいてロボットの制御を行うロボット制御部と、
前記複数の撮像部のうちのいずれの撮像部が、前記複数のポートのうちのいずれのポートに接続されたかを識別するポート識別処理を、前記複数の撮像画像に基づいて行う処理部と、
を含むことを特徴とするロボット制御システム。
【請求項２】
請求項１において、
前記ロボット制御部は、
前記処理部での前記ポート識別処理の処理中において、前記ロボットを動作させる制御を行い、
前記処理部は、
前記ロボット制御部による前記ロボットの動作中に撮像された前記複数の撮像画像に基づいて、前記ポート識別処理を行うことを特徴とするロボット制御システム。
【請求項３】
請求項１又は２において、
前記処理部は、
前記複数の撮像画像に撮像された１又は複数の識別用マーカーの検出処理を行って、前記複数の撮像画像の各撮像画像に対応する撮像マーカーパターンを取得し、取得した前記撮像マーカーパターンに基づいて、前記ポート識別処理を行うことを特徴とするロボット制御システム。
【請求項４】
請求項３において、
前記処理部は、
前記複数の撮像画像のうちの所与の撮像画像に対する前記検出処理により検出された前記識別用マーカーの時系列的な変化を、前記所与の撮像画像に対応する前記撮像マーカーパターンとして取得することを特徴とするロボット制御システム。
【請求項５】
請求項４において、
前記処理部は、
前記検出処理により取得した前記撮像マーカーパターンと、前記撮像部の設置位置に応じて決定される基準マーカーパターンとの比較処理に基づいて、前記ポート識別処理を行うことを特徴とするロボット制御システム。
【請求項６】
請求項３乃至５のいずれかにおいて、
前記処理部は、
前記ロボットの動作環境に配置された１又は複数のマーカーを、前記１又は複数の識別用マーカーとして前記検出処理を行い、前記検出処理の結果に基づいて前記ポート識別処理を行うことを特徴とするロボット制御システム。
【請求項７】
請求項３乃至５のいずれかにおいて、
前記処理部は、
前記ロボットに配置された１又は複数のマーカーを、前記１又は複数の識別用マーカーとして前記検出処理を行い、前記検出処理の結果に基づいて前記ポート識別処理を行うことを特徴とするロボット制御システム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記処理部は、
前記撮像部の設置位置に応じて登録された登録画像と、前記複数の撮像画像との比較処理に基づいて前記ポート識別処理を行うことを特徴とするロボット制御システム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記処理部は、
前記複数の撮像画像に基づいて前記ポート識別処理を行うとともに、前記複数の撮像画像に基づいて撮像異常検出処理を行うことを特徴とするロボット制御システム。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記複数の撮像部は、１又は複数のハンドアイカメラと、前記ロボットに取り付けられたグローバルカメラと、を少なくとも含み、
前記撮像画像取得部は、
前記１又は複数のハンドアイカメラからの前記撮像画像、及び前記グローバルカメラからの前記撮像画像を少なくとも含む、前記複数の撮像画像を取得することを特徴とするロボット制御システム。
【請求項１１】
複数のポートに接続される複数の撮像部からの複数の撮像画像を取得する撮像画像取得部と、
取得した前記複数の撮像画像のうち、少なくとも１つの撮像画像に基づいてロボットの制御を行うロボット制御部と、
前記複数の撮像部のうちのいずれの撮像部が、前記複数のポートのうちのいずれのポートに接続されたかを識別するポート識別処理を、前記複数の撮像画像に基づいて行う処理部と、
を含むことを特徴とするロボット。
【請求項１２】
複数のポートに接続される複数の撮像部からの複数の撮像画像を取得する処理を行い、
前記複数の撮像部のうちのいずれの撮像部が、前記複数のポートのうちのいずれのポートに接続されたかを識別するポート識別処理を、前記複数の撮像画像に基づいて行い、
取得した前記複数の撮像画像のうち、前記ポート識別処理により前記ポートとの対応関係が識別された少なくとも１つの撮像画像に基づいて、ロボットの制御を行う、
ことを特徴とするロボット制御方法。
【請求項１３】
複数のポートに接続される複数の撮像部からの複数の撮像画像を取得するステップと、
前記複数の撮像部のうちのいずれの撮像部が、前記複数のポートのうちのいずれのポートに接続されたかを識別するポート識別処理を、前記複数の撮像画像に基づいて行うステップと、
取得した前記複数の撮像画像のうち、前記ポート識別処理により前記ポートとの対応関係が識別された少なくとも１つの撮像画像に基づいて、ロボットの制御を行うステップと、
をコンピューターに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御システム、ロボット、ロボット制御方法及びプログラム等に関する。
【背景技術】
【０００２】
現在、視覚装置を搭載したロボットが数多く用いられている。視覚装置であるカメラが設置される場所として、ロボットの上部（頭部）やロボットアーム先端が代表的である。このように複数台のカメラを使用してロボットにより作業を行なう場合は、どのシーンでどのカメラを使うかを指定し、入力画像（カメラからの撮像画像）を切り替えて処理する必要がある。
【０００３】
例えば、所与のロボット作業においてハンドアイカメラからの画像を用いる必要がある場合、ロボット制御システムに対して入力される複数の撮像画像から、所望のハンドアイカメラの画像を適切に選択しなくてはならない。従来、入力画像がハンドアイカメラの画像であるかを確認するには、現在処理対象としている入力画像をディスプレイに出力し、人の目で確認する等の手法が用いられている。
【０００４】
特許文献１には、カメラのズーム機能、パン・チルト機能を用いて、複数のユーザーの各ユーザーに対して、当該ユーザーの権限に応じて、所望の画像を閲覧可能とするカメラ制御システムが開示されている。つまり特許文献１に開示されたカメラ制御システムを用いることで、実行する処理に応じて取得する撮像画像を切り替え、当該処理において必要な画像を取得（選択）することが可能になると考えられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２１４７９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように従来手法では、取得した撮像画像が所望の処理に利用できる適切な画像であるか否かは、ユーザー自身が確認、判断する必要があった。しかしこの確認作業等は非常に煩雑であるため、ユーザーの省力化を考慮すれば、システムによる自動化が望まれる。
【０００７】
特にロボットの分野においては、ロボット自身が複数のポートを有することが一般的である。ここでのポートとはカメラ等の外部機器を接続するためのインターフェースに対応する。カメラの設置位置も、ロボットの上部やアーム先端、或いは作業台上、作業空間の壁や天井等、種々の位置が考えられるところ、どこに設置されるカメラがどのポートに接続されるかは、多くの組み合わせが考えられる。つまりカメラを用いてロボットを適切に制御するためには、どのポートにどのカメラが接続されているかを決定する必要がある。さらにロボットが複数台設けられる場合には、各ロボットについてポートとカメラの対応関係を決定せねばならず、ユーザーが手動で行うのでは負担が大きい。
【０００８】
この点は特許文献１においても同様である。また、特許文献１ではカメラが複数あってもよいとの記載はあるが、あくまでカメラのズーム・パン・チルト機能を用いた撮像範囲（或いは表示範囲）の変更が主眼であり、複数の撮像部のうち、適切な撮像部からの撮像画像を選択するという点には触れられていない。
【０００９】
本発明の幾つかの態様によれば、撮像画像に基づいて、ポートと撮像部との対応関係を識別することで、撮像画像を用いたロボット制御を適切に行うロボット制御システム、ロボット、ロボット制御方法及びプログラム等を提供することができる。
【課題を解決するための手段】
【００１０】
本発明の一態様は、複数のポートに接続される複数の撮像部からの複数の撮像画像を取得する撮像画像取得部と、取得した前記複数の撮像画像のうち、少なくとも１つの撮像画像に基づいてロボットの制御を行うロボット制御部と、前記複数の撮像部のうちのいずれの撮像部が、前記複数のポートのうちのいずれのポートに接続されたかを識別するポート識別処理を、前記複数の撮像画像に基づいて行う処理部と、を含むロボット制御システムに関係する。
【００１１】
本発明の一態様では、複数の撮像部からの撮像画像に基づいて、いずれの撮像部がいずれのポートに接続されたかを識別する。よって、ロボット制御において複数の撮像部を用いる場合であっても、どのポートへの入力がどの撮像部からの撮像画像かを自動的に識別することができ、ユーザーの負担を軽減しつつ、適切なロボット制御を行うこと等が可能になる。
【００１２】
また、本発明の一態様では、前記ロボット制御部は、前記処理部での前記ポート識別処理の処理中において、前記ロボットを動作させる制御を行い、前記処理部は、前記ロボット制御部による前記ロボットの動作中に撮像された前記複数の撮像画像に基づいて、前記ポート識別処理を行ってもよい。
【００１３】
これにより、ポート識別処理中にロボット制御を行うことで、精度よくポート識別処理を行うこと等が可能になる。
【００１４】
また、本発明の一態様では、前記処理部は、前記複数の撮像画像に撮像された１又は複数の識別用マーカーの検出処理を行って、前記複数の撮像画像の各撮像画像に対応する撮像マーカーパターンを取得し、取得した前記撮像マーカーパターンに基づいて、前記ポート識別処理を行ってもよい。
【００１５】
これにより、識別用マーカーを用いてポート識別処理を行うこと等が可能になる。
【００１６】
また、本発明の一態様では、前記処理部は、前記複数の撮像画像のうちの所与の撮像画像に対する前記検出処理により検出された前記識別用マーカーの時系列的な変化を、前記所与の撮像画像に対応する前記撮像マーカーパターンとして取得してもよい。
【００１７】
これにより、検出された識別用マーカーの時系列的な変化を、撮像マーカーパターンとしてポート識別処理に用いること等が可能になる。
【００１８】
また、本発明の一態様では、前記処理部は、前記検出処理により取得した前記撮像マーカーパターンと、前記撮像部の設置位置に応じて決定される基準マーカーパターンとの比較処理に基づいて、前記ポート識別処理を行ってもよい。
【００１９】
これにより、撮像マーカーパターンと基準マーカーパターンとの比較処理によりポート識別処理を行うこと等が可能になる。
【００２０】
また、本発明の一態様では、前記処理部は、前記ロボットの動作環境に配置された１又は複数のマーカーを、前記１又は複数の識別用マーカーとして前記検出処理を行い、前記検出処理の結果に基づいて前記ポート識別処理を行ってもよい。
【００２１】
これにより、ロボットの動作環境に配置された識別用マーカーを用いて、ポート識別処理を行うこと等が可能になる。
【００２２】
また、本発明の一態様では、前記処理部は、前記ロボットに配置された１又は複数のマーカーを、前記１又は複数の識別用マーカーとして前記検出処理を行い、前記検出処理の結果に基づいて前記ポート識別処理を行ってもよい。
【００２３】
これにより、ロボットに配置された識別用マーカーを用いて、ポート識別処理を行うこと等が可能になる。
【００２４】
また、本発明の一態様では、前記処理部は、前記撮像部の設置位置に応じて登録された登録画像と、前記複数の撮像画像との比較処理に基づいて前記ポート識別処理を行ってもよい。
【００２５】
これにより、登録画像に基づいてポート識別処理を行うこと等が可能になる。
【００２６】
また、本発明の一態様では、前記処理部は、前記複数の撮像画像に基づいて前記ポート識別処理を行うとともに、前記複数の撮像画像に基づいて撮像異常検出処理を行ってもよい。
【００２７】
これにより、撮像画像に基づいて、ポート識別処理とともに撮像異常検出処理を行うこと等が可能になる。
【００２８】
また、本発明の一態様では、前記複数の撮像部は、１又は複数のハンドアイカメラと、前記ロボットに取り付けられたグローバルカメラと、を少なくとも含み、前記撮像画像取得部は、前記１又は複数のハンドアイカメラからの前記撮像画像、及び前記グローバルカメラからの前記撮像画像を少なくとも含む、前記複数の撮像画像を取得してもよい。
【００２９】
これにより、ハンドアイカメラ及びグローバルカメラを対象としてポート識別処理を行うこと等が可能になる。
【００３０】
また、本発明の他の態様は、複数のポートに接続される複数の撮像部からの複数の撮像画像を取得する撮像画像取得部と、取得した前記複数の撮像画像のうち、少なくとも１つの撮像画像に基づいてロボットの制御を行うロボット制御部と、前記複数の撮像部のうちのいずれの撮像部が、前記複数のポートのうちのいずれのポートに接続されたかを識別するポート識別処理を、前記複数の撮像画像に基づいて行う処理部と、を含むロボットに関係する。
【００３１】
また、本発明の他の態様は、複数のポートに接続される複数の撮像部からの複数の撮像画像を取得する処理を行い、前記複数の撮像部のうちのいずれの撮像部が、前記複数のポートのうちのいずれのポートに接続されたかを識別するポート識別処理を、前記複数の撮像画像に基づいて行い、取得した前記複数の撮像画像のうち、前記ポート識別処理により前記ポートとの対応関係が識別された少なくとも１つの撮像画像に基づいて、ロボットの制御を行う、ロボット制御方法に関係する。
【００３２】
また、本発明の他の態様は、複数のポートに接続される複数の撮像部からの複数の撮像画像を取得するステップと、前記複数の撮像部のうちのいずれの撮像部が、前記複数のポートのうちのいずれのポートに接続されたかを識別するポート識別処理を、前記複数の撮像画像に基づいて行うステップと、取得した前記複数の撮像画像のうち、前記ポート識別処理により前記ポートとの対応関係が識別された少なくとも１つの撮像画像に基づいて、ロボットの制御を行うステップと、をコンピューターに実行させるプログラムに関係する。
【図面の簡単な説明】
【００３３】
【図１】本実施形態に係るロボット制御システムを含むロボットの構成例。
【図２】本実施形態に係るロボット制御システムの構成例。
【図３】本実施形態に係るロボット制御システムを含むロボットの他の構成例。
【図４】図４（Ａ）は識別用マーカーの配置例、図４（Ｂ）はポート識別処理期間中のロボット制御の例。
【図５】図５（Ａ）〜図５（Ｆ）はポート識別処理期間中のロボット制御の具体例。
【図６】本実施形態の処理を説明するフローチャート。
【図７】図７（Ａ）は識別用マーカーの配置例、図７（Ｂ）はアームの初期位置の例、図７（Ｃ）はポート識別処理期間中のロボット制御の例。
【図８】図８（Ａ）〜図８（Ｆ）はポート識別処理期間中のロボット制御の具体例。
【図９】図９（Ａ）、図９（Ｂ）はポート（ＩＤ）と撮像部の対応関係の例。
【図１０】所与のロボット制御による撮像マーカーパターンの例。
【図１１】図１１（Ａ）、図１１（Ｂ）は登録画像の例。
【図１２】本実施形態の処理を説明する他のフローチャート。
【発明を実施するための形態】
【００３４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３５】
１．本実施形態の手法
まず本実施形態の手法について説明する。近年、視覚装置を搭載したロボットが数多く用いられている。ここでの視覚装置とは狭義にはカメラのことであり、以下では撮像部と記載する。視覚装置（撮像部）を搭載したロボットでは、当該撮像部により撮像された撮像画像を用いてロボット制御が行われる。例えば、撮像画像に基づいてロボット自身や周囲環境の変化を検出し、検出結果をフィードバックループにおいて利用するビジュアルサーボを行ってもよい。或いは、作業空間上に配置されるワークを撮像することで、当該ワークの検査処理を行うものであってもよい。その他、撮像画像を用いたロボット制御は種々の手法が考えられる。
【００３６】
撮像画像を用いたロボット制御では、当該撮像画像として、適切な撮像部により撮像された画像を用いる必要がある。例えば、ロボットのアーム先端にハンドアイカメラを取り付け、当該アーム先端部分を複数のワークの直上に順次移動させて画像を撮像することで、各ワークの検査を行う制御を考える。この場合、検査に用いられる撮像画像は、移動対象であるアームの先端部分に取り付けられた撮像部からの画像でなくてはならない。仮にロボットの上部に設置されたグローバルカメラからの撮像画像を処理に用いてしまうと、各ワークが画像中に充分なサイズで撮像されなかったり、アーム等に遮蔽されることでそもそもワークが画像中に撮像されない等の可能性が考えられ、検査処理の精度低下等につながるためである。
【００３７】
しかし、ロボット制御システムにとって、各撮像画像がどの撮像部により撮像されたものであるかという情報は自明ではない。近年のロボットは図１に示したように複数のポートを有することが一般的である。ここでのポートとは、例えばＵＳＢ（Universal Serial Bus）に代表されるような、外部機器を接続するためのインターフェースを表す。また、本実施形態でのポートは、外部機器との接続インターフェースを広く表すものであり、有線接続に用いられるものには限定されない。例えば、短距離無線通信等を用いて外部機器と接続される場合の通信インターフェース（狭義には無線ＬＡＮ等の接続インターフェース）であってもよい。
【００３８】
また、撮像部側の接続インターフェースも種々考えられることから、ロボット制御システムの複数のポートを用いて、複数の撮像部が接続される可能性は充分考えられる。その場合、ロボット制御システムにとっては、第１のポートからは第１の撮像画像が信号として入力されている、第２のポートからは第２の撮像画像が信号として入力されているといったことはわかるが、第１，第２の撮像画像がどの撮像部により撮像されたものであるかは自明でない。
【００３９】
そのため、従来手法では各撮像画像がどの撮像部により撮像されたものであるかを、ユーザーが手動で入力していた。これは言い換えれば、どの撮像部がどのポートに接続されているか、という対応関係をユーザーが手動で入力するということに対応する。図１の例であれば、ロボットは、ロボット上部に設けられるグローバルカメラＧｃａｍと、アーム先端部分に設けられるハンドアイカメラＨｃａｍを有する。この場合ユーザーが、ポートｓとＧｃａｍが対応する、ポートｔとＨｃａｍが対応する（ｓ、ｔはポートの番号を表す値）という情報を入力していた。
【００４０】
ユーザーによる対応関係の入力手法は種々考えられるが、例えば各ポートに入力された撮像画像を表示部に表示し、表示された当該撮像画像に撮像された被写体等を用いた判定をユーザーに行わせればよい。図１の例において、ポートｔに入力された画像では、図１１（Ａ）に示したようにワーク２０が画像中で大きく撮像されており、ポートｓに入力された画像では、図１１（Ｂ）に示したようにワーク２０や作業台１０、ロボットのアーム１１０等が広く撮像されていれば、各画像を閲覧したユーザーは、ポートｓにＧｃａｍが接続され、ポートｔにＨｃａｍが接続されていることを理解できる。よってその対応関係をデータベース等に入力すればよい。実際のロボット制御においては、データベースから対応関係を読み出し、必要な撮像画像を選択して処理に用いる等の手法をとることが考えられる。
【００４１】
或いは、撮像部をポートに接続する際に、接続作業を行うユーザーに対応関係を入力させてもよい。通常、接続作業を行う際には、担当ユーザーはどの撮像部をどのポートに接続しようとしているか認識しているはずである。よって、当該担当ユーザーに対応関係を入力させれば、実際に撮像された画像を閲覧するまでもなく、対応関係を決定可能である。
【００４２】
いずれにせよ、従来手法ではポートと撮像部との対応関係はユーザーの手動入力を前提としていた。しかしこの入力作業は煩雑であり、ユーザーの負担が大きい。例えば、ビジュアルサーボであれば１カ所の制御箇所で２つ（ステレオ用）のカメラを用いることが多い。よってＮ箇所でビジュアルサーボを行おうとすれば２×Ｎのカメラが必要となる。またロボットが、ビジュアルサーボ用カメラの他に、グローバルカメラとハンドアイカメラを有することも一般的である。またロボット側についても、例えば８〜１０個程度のポートを有することは一般的ある。つまり、撮像画像を用いたロボット制御を適切に行うためには、かなりの数の撮像部を接続し、そのポートとの対応関係を特定しなくてはならない。さらに、工場のライン等では多くのロボットを用いることになり、全てのロボットについて対応関係を入力するのではユーザー負担が過剰となる。
【００４３】
例えば、デフォルトで指定された撮像部を、交換することなく使い続けるのであれば、ユーザー入力を行わずに撮像部とポートの対応関係を１通りに特定可能である。しかし撮像部の故障や、ユーザーによる高スペックな撮像部への変更要求等を考えれば現実的とは言えない。また、特定の撮像部は特定のポートへ接続するという対応関係を事前に決定しておき、ロボットを用いるユーザーに対して当該対応関係に従った接続を行わせることで、対応関係の入力を省略することも考えられる。しかしこの場合も、ユーザーによる撮像部の自由な組み合わせが阻害されることになり好ましくなく、また接続ミスにより事前に規定された対応関係を満たさないことになるケースも生じうる。また、撮像部側が機器特定用の情報（ネットワーク機器でいうＭＡＣアドレスに対応する情報）を有することもあるが、安価なカメラを中心にそのような情報を持たない撮像部も多く、対応関係の特定に利用することは難しい。
【００４４】
以上の点を鑑み、本出願人は複数の撮像部について、当該撮像部からの撮像画像に基づいて、ポートとの対応関係を自動的に識別するポート識別処理を行う手法を提案する。このようにすれば、撮像部とポートの対応関係を手動入力する必要がなく、１台のロボットに多数のカメラが接続されたり、そのようなロボットを多数用いるような場合であっても、ユーザーの負担を増大させることなくロボット制御を実行することが可能になる。撮像画像に基づくポート識別処理の詳細については後述する。
【００４５】
また、本出願人はポート識別処理の期間中にロボット制御を行う手法を合わせて提案する。本実施形態では、撮像部からの撮像画像はロボット制御（具体的には対応関係確定後の制御であり、上記の例ではビジュアルサーボや検査等）に用いられることから、ロボット本体の近傍に設けられることが想定される。そのため、図４（Ｂ）等を用いて後述するように、ロボットのアーム１１０を移動させる等のロボット制御を行うことで、特定の撮像部で撮像される被写体を意図的に変化させることが可能である。つまり、所与のロボット制御を行った場合に、特定の撮像部であれば撮像画像に所定の変化が見られ、他の撮像部であれば撮像画像に異なる変化が見られる（或いは変化しない）といった、撮像部ごとの撮像画像の傾向を表す情報を事前に取得することが可能である。よって、このような情報を用いることで、撮像画像に基づくポート識別処理を、より精度よく行うことが可能になる。
【００４６】
以下、ロボット制御システム等のシステム構成例を説明した後、撮像画像に基づくポート識別処理の具体例について説明する。また、ポート識別処理の変形例についても説明し、最後に本実施形態の具体例を説明する。
【００４７】
２．システム構成例
図１に本実施形態に係るロボット制御システムを含むロボットのシステム構成例を示す。本実施形態のロボットは、ロボット本体１００と、ベースユニット部２００を含む。ただし、ロボットは図１の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。また、種々の変形実施が可能な点は、図２等のシステム構成例においても同様である。
【００４８】
ロボット本体１００は、頭部や胴体に相当する部分に加え、アーム１１０を含む。アーム１１０は、関節１１１，１１３と、関節の間に設けられるフレーム１１５，１１７から構成される。また、アーム１１０の先端にはエンドエフェクターが設けられる。ここでのエンドエフェクターとは、図１に示したようにハンド１１９であってもよいし、ハンドアイカメラＨｃａｍ（複数の撮像部のうちの１つ）であってもよいし、工具等の他のものであってもよい。また、図１ではハンドアイカメラＨｃａｍは片腕に設けられるものとしたが、複数のアームのそれぞれにハンドアイカメラを設けてもよい。
【００４９】
なお、図１では２本のアームを有する双腕ロボットの例を示したが、本実施形態のロボットはこれに限定されない。例えばアームは１本であってもよいし、３本以上であってもよい。また、各アームに含まれる関節やフレームの数も種々の変形実施が可能である。例えば図１のようにシンプルな構成のアームを用いてもよいし、人間の腕に近いとされている６自由度、７自由度のアームを用いてもよい。ロボット制御においては、作業台１０に載せられたワーク２０に対して、アーム１１０を用いて作業を行うことが想定される。
【００５０】
ベースユニット部２００は、ロボット本体１００の下部に設けられ、ロボット本体１００を支持する。図１の例では、ベースユニット部２００には車輪等が設けられ、ロボット全体が移動可能な構成となっている。ただし、ベースユニット部２００が車輪等を持たず、床面等に固定される構成であってもよい。また、本実施形態に係るロボット制御システムは、ベースユニット部２００に格納されてもよい。この場合、撮像部等との接続インターフェースであるポートは、例えば図１に示したようにベースユニット部２００の側面等に設けられることになる。
【００５１】
上述したように、ロボットの作業環境には複数の撮像部が設けられる。図１の例では、アーム１１０の先端にハンドアイカメラＨｃａｍが設けられるとともに、ロボット上部（頭部に相当する位置）にグローバルカメラＧｃａｍが設けられる。なお、グローバルカメラＧｃａｍはステレオマッチングを行うために２つ設けられてもよい。ＨｃａｍやＧｃａｍはそれぞれポートに接続され、ロボット制御システムは当該ポートを介して、Ｈｃａｍ等の撮像部からの撮像画像を取得し、ロボット制御に利用することになる。
【００５２】
図２に、ロボット制御システム３００のシステム構成例を示す。ロボット制御システム３００は、撮像画像取得部３１０と、処理部３２０と、ロボット制御部３３０を含む。
【００５３】
撮像画像取得部３１０は、撮像部４００からの撮像画像を取得する。撮像部４００は、上述したようにハンドアイカメラＨｃａｍやグローバルカメラＧｃａｍを含んでもよい。また、複数の撮像部の各撮像部は、複数のポートのいずれかに接続され、撮像画像取得部３１０は、ポートを介して複数の撮像画像を取得する。
【００５４】
処理部３２０は、撮像画像取得部３１０が取得した撮像画像に基づいて、各撮像画像がどの撮像部により撮像されたものであるかを識別する。上述したように、各撮像画像がどのポートにより入力されたものであるかはロボット制御システムにとって既知であるため、撮像画像と撮像部の対応付けとは、各撮像部について当該撮像部が接続されたポートを識別するポート識別処理に他ならない。ポート識別処理の詳細については後述する。
【００５５】
ロボット制御部３３０は、ポート識別処理の結果に基づいて、所望の撮像画像を用いたロボット制御を行う。具体的にはアーム１１０やエンドエフェクター１１２（ハンド１１９等）に対する制御信号を出力する。ただし、ロボット制御部３３０による制御は、ポート識別処理後に行われるものに限定されない。上述したように、ポート識別処理の期間中にアーム１１０を移動させる等のロボット制御を行ってもよく、それにより高精度でのポート識別処理が可能になる。ポート識別処理の期間中のロボット制御例については後述する。
【００５６】
なお、図１のロボットでは、ベースユニット部２００にロボット制御システム３００が格納されることで、ロボット本体１００とロボット制御システム３００とが一体として構成されるものとしたが、これに限定されない。例えば、図３に示したように、ロボット本体１００と、ロボット制御システム３００とが別体として構成されてもよい。なお、図３ではＰＣによりロボット制御システム３００を実現する例を示しているが、これに限定されるものではない。
【００５７】
３．撮像画像に基づくポート識別処理の具体例
次に、撮像画像に基づくポート識別処理の具体例として、識別用マーカーの検出処理を用いる手法について説明する。本実施形態では、ロボットの動作環境に１又は複数の識別用マーカーを設置する。そして、所望の撮像部からの撮像画像においては、設置された識別用マーカーは、このようなパターンで撮像されるはずである、ということを表す基準マーカーパターンを設定しておく。
【００５８】
その上で、複数の撮像部の各撮像部で実際に撮像された撮像画像に対して、識別用マーカーの検出処理を行い、各撮像画像で検出された識別用マーカーのパターンを、撮像マーカーパターンとして取得する。さらに、取得された撮像マーカーパターンと、基準マーカーパターンの比較処理を行って、所望の撮像部からの撮像画像はどのポートに対する入力であるか、すなわち所望の撮像部がどのポートに接続されたかを識別する。なお、以下の説明では、ポート識別処理の期間中にロボット制御を行うものとしているが、これに限定されない。
【００５９】
具体例を図４（Ａ）等を用いて説明する。図４（Ａ）はロボットの動作環境における識別用マーカーの配置例を表す。図４（Ａ）は、例えば図１の作業台１０を上方から見た場合の図に対応する。ここでは、図４（Ａ）に示した位置関係で、６つの識別用マーカーＭ１〜Ｍ６が配置されているものとする。なお、識別用マーカーは作業台１０に配置されるものには限定されず、ワーク２０に配置されてもよいし、壁や床等に配置されてもよい。
【００６０】
このような識別用マーカーの配置において、ロボット制御部３３０は、アームＡＲＭを制御することで、ＡＲＭの先端に設けられたハンドアイカメラＨｃａｍを、図４（Ｂ）に示した移動経路で移動させる。この際、撮影位置１〜６に示した６カ所の位置で、撮像画像が撮像されるものとする。ここで、撮像位置１は識別用マーカーＭ１の上部の位置であり、撮像位置２〜６についても、それぞれ識別用マーカーＭ２〜Ｍ６に対応する位置となる。
【００６１】
なお、Ｈｃａｍを図４（Ｂ）に示した経路で移動させるロボット制御とは、例えば、図５（Ａ）〜図５（Ｆ）に示したようなアームＡＲＭの制御に対応する。図５（Ａ）が撮影位置１に対応し、以下図５（Ｂ）〜図５（Ｆ）がそれぞれ撮影位置２〜６に対応する。ただし、Ｈｃａｍを図４（Ｂ）の移動経路に沿って移動させるためのロボット制御は、図５（Ａ）〜図５（Ｆ）に限定されるものではない。また、図５（Ａ）〜図５（Ｆ）では説明の便宜上、識別用マーカーを上部から見た場合に、Ｈｃａｍの下部に位置する識別用マーカー以外のマーカーが、アームＡＲＭ等により極力遮蔽されない例を示しているが、そのようにする必要はない。
【００６２】
図４（Ａ）、図４（Ｂ）の例では、第１の撮影タイミングｔ１では、Ｈｃａｍは識別用マーカーＭ１の上部に位置するため、ｔ１でのＨｃａｍからの撮像画像に対する識別用マーカーの検出処理を行うことで、Ｍ１が検出されることになる。同様に、第ｉ（ｉ＝２，３，４，５，６）の撮影タイミングｔｉでは、Ｈｃａｍは識別用マーカーＭｉの上部に位置するため、ｔｉでのＨｃａｍからの撮像画像に対する識別用マーカーの検出処理を行うことで、Ｍｉが検出されることになる。
【００６３】
つまり、ｔ１〜ｔ６での検出処理の結果を時系列順に並べることで、識別用マーカーの検出パターンを、（Ｍ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５，Ｍ６）と規定することができる。つまり、図５（Ａ）〜図５（Ｆ）に例示したようなロボット制御を行うことで、アームＡＲＭの先端に取り付けられたハンドアイカメラＨｃａｍからの撮像画像では、（Ｍ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５，Ｍ６）というパターンの検出結果が得られることが期待されることになる。よって本実施形態では、図４（Ｂ）のロボット制御を行った場合のハンドアイカメラＨｃａｍからの撮像画像についての基準マーカーパターンとして、（Ｍ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５，Ｍ６）というパターンを保持しておく。
【００６４】
ポート識別処理においては、保持しておいた基準マーカーパターンと、実際に図４（Ｂ）のロボット制御において、ｔ１〜ｔ６で取得された撮像画像に対する検出処理の結果とを比較すればよい。ここでの、実際の撮像画像に対する識別用マーカーの検出処理の結果が撮像マーカーパターンである。
【００６５】
所望の撮像部からの撮像画像に対して検出処理を行った場合には、例えば図５（Ａ）〜図５（Ｆ）に示したＨｃａｍからの撮像画像に対する検出処理となるため、取得される撮像マーカーパターンは（Ｍ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５，Ｍ６）となる。つまり、撮像マーカーパターンと基準マーカーパターンが一致することになり、検出処理の対象とした撮像画像が所望の撮像画像であるということがわかる。これは、処理対象の撮像画像が入力されたポートに対して、所望の撮像部（図５（Ａ）等の例では左腕であるＡＲＭ先端に取り付けられたハンドアイカメラＨｃａｍ）が接続されているという識別処理が実行されたということになる。
【００６６】
一方、それ以外の撮像部からの撮像画像に対して検出処理を行った場合には、撮像マーカーパターンと基準マーカーパターンが一致しない。例えば、検出処理の対象である撮像画像が、図５（Ａ）等に不図示の他のアームの先端に設けられたハンドアイカメラからの画像である場合には、当該撮像画像からは少なくともＭ１〜Ｍ６の識別用マーカーが１つずつ順次検出されることはなく、撮像マーカーパターンは基準マーカーパターン（Ｍ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５，Ｍ６）には一致しない。
【００６７】
また、図１に示したグローバルカメラＧｃａｍからの撮像画像を対象とした場合には、撮像画像は例えば図５（Ａ）等と同様に、作業台を上部から見た画像として取得されることが想定される。その場合、検出処理の結果としてＭ１〜Ｍ６の識別用マーカーが検出されることはあり得るが、検出結果をｔ１〜ｔ６の順に時系列順に並べた結果である撮像マーカーパターンは、基準マーカーパターン（Ｍ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５，Ｍ６）に一致するものではない。
【００６８】
つまり、撮像マーカーパターンと基準マーカーパターンが一致しないという結果により、検出処理の対象とした撮像画像が所望の撮像画像ではないということがわかる。これは、処理対象の撮像画像が入力されたポートに対して、所望の撮像部が接続されていない（さらにいえば所望の撮像部以外の撮像部が接続されている）というポート識別処理が実行されたということになる。
【００６９】
以上のことから、ポート識別処理においては、撮像画像取得部３１０が取得した複数の撮像画像について、それぞれ撮像マーカーパターンを取得して基準マーカーパターンとの比較処理を行っていけばよい。撮像マーカーパターンと基準マーカーパターンが一致する場合には、処理対象である撮像画像が所望の撮像部からの画像であると判定し、撮像マーカーパターンと基準マーカーパターンが一致しない場合には、処理対象である撮像画像が所望の撮像部以外の撮像部からの画像であると判定する。
【００７０】
本実施形態の処理を説明するフローチャートを図６に示す。この処理が開始されると、まずアーム１１０の移動が行われる（Ｓ１０１）。なお、図６のフローチャートでは図４（Ｂ）に示したように所望の撮像部をＨｃａｍとしており、アーム１１０の移動とは当該アームの先端に設けられたハンドアイカメラＨｃａｍの移動に対応する。
【００７１】
そして、所定の撮像タイミングで撮像を行い（Ｓ１０２）、処理対象としている撮像部からの撮像画像を取得する。上述してきたように、処理対象である撮像部が特定のポートに接続されている、すなわち取得した撮像画像は特定のポートに対する入力であるということはロボット制御システム３００は認識しているが、当該撮像部が所望の撮像部（ここではＨｃａｍ）であるか否かは不明である。
【００７２】
Ｓ１０２の後、アーム位置が最終位置であるかの判定を行う（Ｓ１０３）。図６ではＳ１０１〜Ｓ１０３の１回のループで１回の撮像が行われる。つまり、図４（Ｂ）の例であれば、最初のＳ１０１，Ｓ１０２の処理で、撮影位置１への移動と、撮像タイミングｔ１での撮像が行われる。そしてＳ１０３では撮影位置６までの撮像が終わっていないため、判定がＮｏとなりＳ１０１に戻る。２回目のＳ１０１〜Ｓ１０３のループでは撮影位置２への移動と、撮像タイミングｔ２での撮像が行われ、やはり最終位置まで移動していないのでＳ１０１に戻る。以降も、Ｓ１０１〜Ｓ１０３を繰り返すことでｔ３〜ｔ６での撮像を行う。
【００７３】
ｔ６までの撮像が終わった場合には、アーム１１０の移動が終了したものとして、Ｓ１０３でＹｅｓとなり、Ｓ１０１〜Ｓ１０３のループにより撮像された撮像画像において、識別用マーカーが順番通りに検出されているかの判定を行う（Ｓ１０４）。具体的には、上述したようにＳ１０１〜Ｓ１０３のループにより撮像された撮像画像に対する、識別用マーカーの検出処理の結果を撮像マーカーパターンとして取得し、事前に取得されていた基準マーカーパターンとの比較処理を行えばよい。
【００７４】
撮像マーカーパターンと基準マーカーパターンが一致する場合には、Ｓ１０４でＹｅｓとなり、処理対象としていた撮像画像が所望の画像である、すなわちＳ１０１〜Ｓ１０３のループで取得した撮像画像が入力されているポートに対して、所望の撮像部であるＨｃａｍが接続されていると判定して処理を終了する。
【００７５】
一方、撮像マーカーパターンと基準マーカーパターンが一致しない場合には、Ｓ１０４でＮｏとなり、処理対象としていた撮像画像が所望の画像でないと判定される。その場合には、処理対象とする撮像部（ポート）を切り替えて（Ｓ１０５）、切り替え後の撮像部に対して同様の処理を行うためＳ１０１に戻る。
【００７６】
以上の説明では、所定のロボット制御における基準マーカーパターンは１つであることを想定していた。この場合のポート識別処理は、１つの基準マーカーパターンとの一致不一致の判定となる。つまり１回のポート識別処理においては、所望の撮像部か否かは識別できても、所望の撮像部ではない撮像部についてはそれ以上の判定は行えない。例えば、左腕先端に設けられたハンドアイカメラＨｃａｍではない、という情報は取得できても、具体的にどの設置位置に設けられた撮像部であるかは特定できないものであった。
【００７７】
これに対しては、例えば第１のロボット制御で第１の基準マーカーパターンを設定することで、第１の撮像部を特定し、第２のロボット制御で第２の基準マーカーパターンを設定することで、第２の撮像部を特定するといった手法を用いてもよい。具体的には、左腕を動かすロボット制御により左腕先端に設けられたハンドアイカメラを識別し、右腕を動かすロボット制御により右腕先端に設けられたハンドアイカメラを識別するといった手法である。このようにすれば、Ｎ回のロボット制御により、Ｎ個の撮像部を特定することが可能になる。
【００７８】
しかし本実施形態のポート識別処理はこれに限定されない。例えば、所与のロボット制御を行う場合において、複数の基準マーカーパターンを設定しておいてもよい。具体例を図７（Ａ）等を用いて説明する。
【００７９】
図７（Ａ）に識別用マーカーの配置位置の例を示す。ここでは、図４（Ａ）に加えて識別用マーカーＭ７が追加された配置となっている。そして図７（Ｂ）にロボットのアームの初期位置を示す。ここでのロボットは双腕ロボットであり、右腕に対応するＡＲＭ１と左腕に対応するＡＲＭ２を有する。そしてＡＲＭ１の先端にハンドアイカメラＨｃａｍ１が設けられ、ＡＲＭ２の先端にハンドアイカメラＨｃａｍ２が設けられる。また、ここでのロボットは図１に示したようなグローバルカメラＧｃａｍも有しているものとする。
【００８０】
この場合のロボット制御の一例が図７（Ｃ）である。ＡＲＭ２に設けられたＨｃａｍ２は、図４（Ｂ）のＨｃａｍと同様に、識別用マーカーＭ１〜Ｍ６の上部を順次移動する。一方、ＡＲＭ１については、移動が行われず初期位置にとどまったままである。
【００８１】
図７（Ｃ）に示したロボット制御が行われることで、ＡＲＭ２の先端のＨｃａｍ２については、図４（Ｂ）と同様の移動経路、撮像位置となるため、Ｈｃａｍ２に対応する基準マーカーパターンは（Ｍ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５，Ｍ６）となる。一方、ＡＲＭ１の先端のＨｃａｍ１については、識別用マーカーＭ７の直上から移動することがない。しかしＡＲＭ１と識別用マーカーＭ７の位置関係を考慮すれば、Ｈｃａｍ１以外の撮像部により、識別用マーカーＭ７だけを常時検出し続けることは困難と考えられる。つまり、Ｈｃａｍ１で検出される識別用マーカーは、ｔ１〜ｔ６においてＭ７のまま変化しないパターンとなるが、当該パターンは他の撮像部で見られるものではなく、Ｈｃａｍ１を識別するに当たって有用である。つまり図７（Ｃ）に示したロボット制御において、Ｈｃａｍ１に対応する基準マーカーパターンとして（Ｍ７，Ｍ７，Ｍ７，Ｍ７，Ｍ７，Ｍ７）というパターンを設定することができる。
【００８２】
図７（Ｃ）のロボット制御を実現するＡＲＭ１，ＡＲＭ２の移動の具体例を図８（Ａ）〜図８（Ｆ）に示す。図５（Ａ）〜図５（Ｆ）と同様に、図８（Ａ）〜図８（Ｆ）も、それぞれ撮像タイミングｔ１〜ｔ６に対応する。ここでグローバルカメラＧｃａｍはロボットの上部に設けられるものであるから、下方向（作業台の方向）に光軸を向けることで、Ｇｃａｍからの撮像画像として、図８（Ａ）〜図８（Ｆ）のような画像が撮像できるはずである。つまり、図８（Ａ）〜図８（Ｆ）は、アームの姿勢変化を説明する図であると同時に、Ｇｃａｍからの撮像画像の変化を説明する図である。
【００８３】
図８（Ａ）〜図８（Ｆ）をＧｃａｍの撮像画像として捉えた場合、図８（Ａ）からわかるように、タイミングｔ１では、Ｍ１がＡＲＭ２により遮蔽され、Ｍ７がＡＲＭ１により遮蔽されるため、その他の識別用マーカーＭ２〜Ｍ６が検出される。同様に、図８（Ｂ）からｔ２ではＭ１及びＭ３〜Ｍ６が検出され、以下ｔ３ではＭ１〜Ｍ２及びＭ４〜Ｍ６、ｔ４ではＭ１〜Ｍ３及びＭ５〜Ｍ６、ｔ５ではＭ１〜Ｍ４及びＭ６、ｔ６ではＭ１〜Ｍ５が検出される。
【００８４】
このようなパターンは、上述したＨｃａｍ１やＨｃａｍ２の基準マーカーパターンとは大きく異なるものであり、Ｇｃａｍを識別する情報として有用である。つまり図７（Ｃ）に示したロボット制御において、Ｇｃａｍに対応する基準マーカーパターンとして（Ｍ２〜Ｍ６，Ｍ１及びＭ３〜Ｍ６，Ｍ１〜Ｍ２及びＭ４〜Ｍ６，Ｍ１〜Ｍ３及びＭ５〜Ｍ６，Ｍ１〜Ｍ４及びＭ６，Ｍ１〜Ｍ５）というパターンを設定することができる。
【００８５】
なお、図８（Ａ）〜図８（Ｆ）では、撮像タイミングｔ１〜ｔ６において、Ｈｃａｍ２で撮像している識別用マーカー以外のマーカーを極力遮蔽しないようにＡＲＭ２が移動するために、基準マーカーパターンが上述のパターンとなった。ただし、ロボット制御及び基準マーカーパターンはこれに限定されない。例えば、ＡＲＭ２がＨｃａｍ２の撮像対象以外の識別用マーカーを遮蔽するように移動してもよい。その場合、Ｇｃａｍの基準マーカーパターンとしては、ＡＲＭ２による識別用マーカーの遮蔽具合を考慮して設定されることになる。例えば、ｔ１においてＡＲＭ２がＭ１を遮蔽するだけではなく、ＡＲＭ２のフレーム部分によりＭ６も遮蔽するような場合には、Ｇｃａｍの基準マーカーパターンのうち、ｔ１に対応する要素については、Ｍ１，Ｍ６，Ｍ７を除いたＭ２〜Ｍ５となる。
【００８６】
以上により、図７（Ｃ）に示したような１つのロボット制御に対して、複数の撮像部に対応する複数の基準マーカーパターンを設定することができる。そして、ポート識別処理においては、複数の撮像部からの撮像画像（複数のポートに対する入力）のそれぞれについて、複数の基準マーカーパターンのいずれに一致するかを判定すればよい。
【００８７】
例えば、図９（Ａ）に示したように、入力された３つの撮像画像に対して、それぞれＩＤを付けて、暫定的にどの撮像部に対応するかを決定する。ここではＩＤ＝１の画像はＧｃａｍの撮像画像であり、ＩＤ＝２はＨｃａｍ１、ＩＤ＝３はＨｃａｍ２の撮像画像であることを仮定している。
【００８８】
その上で、図７（Ｃ）等のロボット制御を行い、各ＩＤに対応する撮像画像を取得し、識別用マーカーの検出処理を行って撮像マーカーパターンを取得する。撮像マーカーパターンの取得例を図１０に示す。図１０の例では、ＩＤ＝１の画像に対する検出処理により、（Ｍ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５，Ｍ６）という撮像マーカーパターンが取得された。同様に、ＩＤ＝２の画像からは（Ｍ２〜Ｍ６，Ｍ１及びＭ３〜Ｍ６，Ｍ１〜Ｍ２及びＭ４〜Ｍ６，Ｍ１〜Ｍ３及びＭ５〜Ｍ６，Ｍ１〜Ｍ４及びＭ６，Ｍ１〜Ｍ５）という撮像マーカーパターンが取得され、ＩＤ＝３の画像からは（Ｍ７，Ｍ７，Ｍ７，Ｍ７，Ｍ７，Ｍ７）という撮像マーカーパターンが取得された。
【００８９】
これらの撮像マーカーパターンと、上記３つの基準マーカーパターンを比較することで、ＩＤ＝１の画像はＨｃａｍ２に対応し、ＩＤ＝２の画像はＧｃａｍに対応し、ＩＤ＝３の画像はＨｃａｍ１に対応することがわかる。つまり、１回のロボット制御により、Ｈｃａｍ２はＩＤ＝１に対応するポートに接続され、ＧｃａｍはＩＤ＝２に対応するポートに接続され、Ｈｃａｍ１はＩＤ＝３に対応するポートに接続されているというポート識別処理が実行される。
【００９０】
よって、図９（Ａ）のように暫定的に設定したＩＤと撮像部との対応関係を、図９（Ｂ）に示したようにポート識別処理の結果に基づいて再設定する。以降のロボット制御（ビジュアルサーボ等）においては、再設定後の図９（Ｂ）を用いて、所望の撮像部からの画像を選択して処理に用いればよい。このようにすれば、１つのロボット制御において複数の撮像部を特定するポート識別処理を行うこと、及び当該特定される撮像部に、ロボット制御での移動対象となっていない撮像部を含めること等が可能になる。
【００９１】
４．変形例
以上の説明では、作業台１０やワーク２０、或いはワーク２０が載せられ作業台１０上に置かれるパレット、或いはロボット周辺の壁や床等に、識別用マーカーが配置されることを想定していた。
【００９２】
しかし、ポート識別処理終了後に行われる撮像画像を用いたロボット制御において、当該ロボット制御用のマーカーが動作環境に配置されることが充分考えられる。例えば、ワーク２０の移動作業において、把持位置や解放位置を決定するための位置決め処理の中で、基準位置に配置されたマーカーの認識処理を行うこと等があり得る。その場合、ポート識別処理のために配置した識別用マーカーがあることで、その後の処理で用いたいマーカーの配置がスペース上の問題から困難になったり、複数のマーカーが混在することでマーカー検出処理の精度が低下するおそれがある。
【００９３】
ポート識別処理と、その後のロボット制御とで、それぞれマーカーの配置をやり直せばそのような問題は生じないが、その都度適切な位置にマーカーを配置する作業が必要となりユーザーの負担が大きい。
【００９４】
そこで、ポート識別処理に用いる識別用マーカーを、ロボットの動作環境ではなくロボット自身に配置してもよい。具体的には、ロボットのアーム１１０や胴体部、ベースユニット部２００等に識別用マーカーを配置する。識別用マーカーが所与の図形等で構成されるのであれば、当該図形等が描かれたシート等をロボットに貼り付ければよい。或いは、識別用マーカーはＬＥＤ光源等の発光部でもよく、その場合にはロボットに対してＬＥＤ光源等を設置すればよい。
【００９５】
通常、ロボット制御用のマーカーはロボット自身に配置されることは考えにくいため、当該マーカーと識別用マーカーとの干渉を抑止できる。なお、人間が手首や肘の関節を動かすことで、手を種々の方向（例えば自分の顔や胴体、下半身等の方向）に向けられることからも理解しやすいように、ハンドアイカメラＨｃａｍ等によりロボット自身の一部又は全部を撮像することは難しくない。つまり、識別用マーカーをロボットに配置したとしても、当該識別用マーカーを撮像してポート識別処理に利用することは容易である。
【００９６】
また、本実施形態の識別用マーカーは、ロボットの動作環境だけに配置されるもの、或いはロボットだけに配置されるものに限定されず、動作環境とロボット自身の両方に識別用マーカーを配置してもよい。
【００９７】
また、以上の説明では、識別用マーカーを用いてポート識別処理を行うものとしたがこれに限定されない。例えば、ロボットが所与の姿勢にあるときに、特定の撮像部において撮像されるであろう画像を、登録画像として登録しておいてもよい。
【００９８】
例えば、ロボットが図１に示した姿勢をとる場合であれば、ハンドアイカメラＨｃａｍからは作業台１０とワーク２０が画像上で大きく撮像されるため、図１１（Ａ）に示したような画像が撮像される。一方、グローバルカメラＧｃａｍは作業台１０を上部から撮像するため、図１１（Ｂ）に示したような画像が撮像される。よって、図１１（Ａ）や図１１（Ｂ）等を登録画像として登録しておき、ポート識別処理においてはロボットに実際に図１の姿勢をとらせて各撮像部からの撮像画像を取得し、取得した撮像画像と登録画像の比較処理を行う。撮像画像のうちの所与の撮像画像が、図１１（Ａ）に近い画像であると特定されれば、当該撮像画像はハンドアイカメラＨｃａｍからの画像であると識別できるし、図１１（Ｂ）に近い画像であると特定されれば、当該撮像画像はグローバルカメラＧｃａｍからの画像であると識別できる。ただし、図１１（Ａ）、図１１（Ｂ）では、ロボットの動作環境を撮像した画像を登録画像としている。よって、ロボットが異なる場所に移動される、或いは作業内容が変化する等の要因により動作環境が変化する場合には、登録画像も再登録する必要がある点に留意すべきである。
【００９９】
その他、識別用マーカーを用いないポート識別処理は種々の変形実施が可能である。例えば、所与のハンドに何らかの遮蔽物（例えば板状の物体）を持たせ、当該遮蔽物を用いて各撮像部の正面を順次遮蔽していってもよい。この場合、遮蔽物により遮蔽された撮像部については、極端に暗い画像が撮像されることになる。よって、複数の撮像画像のうち、極端に暗く撮像された画像を特定すれば、当該画像が、対応するタイミングにおいて遮蔽物に遮蔽された撮像部からの画像であると識別することができる。
【０１００】
また、以上の説明では、複数の撮像画像に基づいてポート識別処理を行うものとしたが、当該複数の画像に基づいて他の処理を併せて行ってもよい。例えば、識別用マーカーを用いる場合であれば、撮像画像における識別用マーカーの検出結果を用いて撮像異常検出処理を行ってもよい。
【０１０１】
上述したように、図４（Ｂ）の例でも図７（Ｃ）の例でも、特定したい撮像部については基準マーカーパターンが設定される。図４（Ｂ）であればＨｃａｍの基準マーカーパターンが設定されるし、図７（Ｃ）の例であればＧｃａｍ，Ｈｃａｍ１，Ｈｃａｍ２の基準マーカーパターンが設定される。また、図４（Ｂ）の例であっても、撮像画像が入力されていながら、当該撮像画像がいずれの撮像部に対応するかを特定しないということは考えにくい。上述したように、撮像部との対応関係が特定されていない撮像画像は、ロボット制御において用いることが難しいためである。つまり狭義には、入力された全ての撮像画像に対応する基準マーカーパターンが設定されることになる。
【０１０２】
以上の点を鑑みると、入力された撮像画像において、識別用マーカーが全く検出されないということは考えにくい。図７（Ｃ）であればＧｃａｍ，Ｈｃａｍ１，Ｈｃａｍ２のいずれからの撮像画像についても、ロボット制御を行うことで図１０に示したようなパターンで識別用マーカーが検出される。図４（Ｂ）であれば、Ｈｃａｍ以外の所与の撮像部では、図４（Ｂ）に示したロボット制御の期間中には全く識別用マーカーが検出されないという可能性はあり得る。しかし、複数の撮像画像の各撮像画像について、当該所与の撮像部からの画像であるか否かを判定するロボット制御においては、当該所与の撮像部に対応する撮像画像からは所与の基準マーカーパターンに従って識別用マーカーが検出されるはずである。
【０１０３】
つまり、ポート識別処理における撮像画像から、全く識別用マーカーが検出されない場合には、当該撮像画像を撮像した撮像部に、何らかの異常が発生していると推測できる。ここでの異常とは、撮像部がハードウェア的に破損しているということもあれば、ホワイトバランスや露光時間のように、撮影に用いられるパラメーターの設定異常ということもあり得る。いずれにせよ、ポート識別処理における複数の撮像画像について、識別用マーカーが検出されない画像があるか否かの判定を行うことで、ポート識別処理と併せて撮像異常検出処理を行うことが可能である。
【０１０４】
撮像異常検出処理まで考慮した場合の、本実施形態の処理を説明するフローチャートを図１２に示す。Ｓ２０１〜Ｓ２０３については、図６のＳ１０１〜Ｓ１０３の処理と同様である。そしてアームの移動が終了した場合（Ｓ２０３でＹｅｓの場合）には、撮像マーカーパターンと基準マーカーパターンの比較処理の前に、そもそも識別用マーカーが検出されているか否かの判定を行う（Ｓ２０４）。識別用マーカーが検出されていない場合（Ｓ２０４でＮｏの場合）には、上述したように撮像異常が疑われる。よって、撮影条件を変更し（Ｓ２０５）、アームを初期位置に移動させた上で（Ｓ２０６）、Ｓ２０１に戻って再度処理をやり直す。なお、図１２のフローチャートには不図示であるが、例えば撮影条件を一定回数変更しても、識別用マーカーの検出ができない場合には、対象としている撮像画像を撮像した撮像部には、何らかの異常が発生しているものと確定させてエラー処理に移行してもよい。なお、エラー処理への移行条件は種々の変形実施が可能である。また、エラー処理の具体的な内容については、広く知られた種々の手法を適用可能であるため詳細な説明は省略する。
【０１０５】
撮像画像から識別用マーカーが検出された場合（Ｓ２０４でＹｅｓの場合）には、図６と同様に、撮像マーカーパターンと基準マーカーパターンの比較処理に移行すればよい。従って、Ｓ２０４でＹｅｓとなった後のＳ２０７，Ｓ２０８については、図６のＳ１０４，Ｓ１０５と同様である。
【０１０６】
５．本実施形態の具体例
以上の本実施形態では、ロボット制御システム３００は図２に示したように、複数のポートに接続される複数の撮像部からの複数の撮像画像を取得する撮像画像取得部３１０と、取得した複数の撮像画像のうち、少なくとも１つの撮像画像に基づいてロボットの制御を行うロボット制御部３３０と、複数の撮像部のうちのいずれの撮像部が、複数のポートのうちのいずれのポートに接続されたかを識別するポート識別処理を、複数の撮像画像に基づいて行う処理部３２０と、を含む。
【０１０７】
これにより、ロボット制御システム３００が複数のポートをインターフェースとして、複数の撮像画像を取得した場合に、各撮像画像がどの撮像部に対応するかを判別する処理、すなわち撮像部とポートとの対応関係を識別するポート識別処理を、撮像画像に基づいて自動的に行うことが可能になる。近年のロボットでは、図１に示したように撮像部（及び撮像部以外の機器）を接続可能なポートが複数用意されるとともに、１つのロボットに対してＧｃａｍやＨｃａｍに示したように複数の撮像部が接続されることが多く見られる。本実施形態の手法を用いることで、ポートと撮像部との対応関係をユーザーが手動で入力する必要がなくなるため、ユーザーの負担軽減が可能となる。また、本実施形態の手法ではユーザーによる手動での対応関係の入力を妨げるものではない。その場合、ユーザーによる手動入力に誤りが生じるケースも考えられるが、本実施形態の手法を確認用途で用いることで、対応関係の誤りを自動検出し、不適切な撮像画像を用いたロボット制御を行うことを抑止できる。また、本実施形態の手法によれば、誤り検出だけでなく、自動での誤り訂正も可能である。
【０１０８】
また、ロボット制御部３３０は、処理部３２０でのポート識別処理の処理中（処理期間中）において、ロボットを動作させる制御を行ってもよい。そして処理部３２０は、ロボット制御部３３０によるロボットの動作中に撮像された複数の撮像画像に基づいて、ポート識別処理を行う。
【０１０９】
ここで、ポート識別処理の処理中におけるロボット制御とは、例えば図４（Ｂ）や図７（Ｃ）に示したアーム制御であり、さらに具体的には図５（Ａ）〜図５（Ｆ）や図８（Ａ）〜図８（Ｆ）に示したアーム制御であってもよい。
【０１１０】
これにより、ロボット制御に基づくロボットの動作中での撮像画像を用いて、ポート識別処理を行うことができる。例えば図１のハンドアイカメラＨｃａｍであれば、当該Ｈｃａｍが取り付けられたアーム１１０を動かすことで、撮像画像に撮像される被写体範囲を変更することができる。また、グローバルカメラＧｃａｍについても首振り動作を行うことで撮像画像に撮像される被写体範囲を変更することができる。つまり、所与のロボット制御を行うことで、特定の撮像部で撮像される撮像画像の内容をコントロールすることが可能である。よって、所与の撮像部からの撮像画像が、それ以外の撮像部からの撮像画像とは明確に異なるようなロボット制御を行えば、当該所与の撮像部についてのポート識別処理を精度よく行うことが可能になる。なお、複数の撮像部はロボットに設置されるものに限定されず、作業台上や床面、壁面に設置されるものもあり得る。その場合、ロボット制御を行ったとしても、撮像部の位置や撮像方向自体を変更するものとはならないことが想定される。しかし、それらの撮像部もロボット制御に用いられる以上、ロボット近傍に設置される（或いはロボット近傍を撮像する）ため、ロボット制御により撮像対象をコントロール可能である。例えば、ロボットのアーム等を撮像部の撮像エリアに進入させるか否か、さらには進入度合いをどの程度にするか等を制御可能である。
【０１１１】
以上の説明からわかるように、ここでのポート識別処理の期間中におけるロボット制御は、所与の撮像部からの撮像画像の内容を変更可能な制御であればよく、図４（Ｂ）や図７（Ｃ）に示した制御に限定されないことは言うまでもない。
【０１１２】
また、処理部３２０は、複数の撮像画像に撮像された１又は複数の識別用マーカーの検出処理を行って、複数の撮像画像の各撮像画像に対応する撮像マーカーパターンを取得し、取得した撮像マーカーパターンに基づいて、ポート識別処理を行ってもよい。
【０１１３】
具体的には、処理部３２０は、複数の撮像画像のうちの所与の撮像画像に対する検出処理により検出された識別用マーカーの時系列的な変化を、所与の撮像画像に対応する撮像マーカーパターンとして取得してもよい。
【０１１４】
これにより、識別用マーカーを用いてポート識別処理を行うことが可能になる。具体的には、識別用マーカーの検出結果を撮像マーカーパターンとして取得し、当該撮像マーカーパターンに基づくポート識別処理を行う。撮像マーカーパターンとして、検出された識別用マーカーの時系列的な変化を用いてもよく、その場合の撮像マーカーパターンは図１０に示したように、（Ｍ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５，Ｍ６）等の情報となる。撮像マーカーパターンを時系列的な変化とすることで、所与の撮像画像での撮像マーカーパターンと、他の撮像画像での撮像マーカーパターンとの差異を大きくすることが可能になり、結果としてポート識別処理の精度を向上させることができる。
【０１１５】
なお、撮像マーカーパターンは検出された識別用マーカーの時系列的な変化に限定されない。例えば、１つの撮像タイミングでの識別用マーカーの検出結果を撮像マーカーパターンとして用いてもよい。このようにすれば、時系列的な変化を用いる場合に比べて、撮像マーカーパターンを短時間で取得することができ、且つポート識別処理の処理負荷軽減等も可能になる。また、識別用マーカーの検出結果は、所与のマーカーが識別できたか否かを表すものには限定されない。例えば、所与の識別用マーカーが検出された場合に、撮像画像中での当該識別用マーカーのサイズ、位置、角度等を含む情報であってもよい。この場合、検出された識別用マーカーが１つであっても、その画像上サイズ等に応じて、異なる撮像マーカーパターンが取得されることが考えられる。
【０１１６】
また、処理部３２０は、検出処理により取得した撮像マーカーパターンと、撮像部の設置位置に応じて決定される基準マーカーパターンとの比較処理に基づいて、ポート識別処理を行ってもよい。
【０１１７】
これにより、撮像マーカーパターンと基準マーカーパターンとの比較処理に基づいて、ポート識別処理を行うことが可能になる。識別用マーカーの配置パターン、及び撮像部がどの位置に設置されどの方向を撮像するかがわかれば、当該撮像部で撮像される撮像画像での識別用マーカーの検出結果は推測可能である。よってそのような推測結果を基準マーカーパターンとして事前に取得しておけば、ポート識別処理は撮像マーカーパターンと基準マーカーパターンの比較処理という容易な処理により実現することができる。
【０１１８】
なお、図８（Ａ）〜図８（Ｆ）を用いて上述したように、撮像画像に撮像される識別用マーカーは、ロボット制御の内容にも依存する。例えば、図５（Ａ）等でのＨｃａｍからの撮像画像は、Ｈｃａｍが設けられるＡＲＭの移動経路に依存するし、図８（Ａ）等を用いて上述したＧｃａｍからの撮像画像は、ＡＲＭ１やＡＲＭ２による識別用マーカーの遮蔽状況に依存する。つまり基準マーカーパターンとは、狭義には撮像部の設置位置及びロボット制御部３３０によるロボット制御に応じて決定されることになる。
【０１１９】
また、処理部３２０は、ロボットの動作環境に配置された１又は複数のマーカーを、前記１又は複数の識別用マーカーとして検出処理を行い、検出処理の結果に基づいてポート識別処理を行ってもよい。
【０１２０】
或いは、処理部３２０は、ロボットに配置された１又は複数のマーカーを、前記１又は複数の識別用マーカーとして検出処理を行い、検出処理の結果に基づいてポート識別処理を行ってもよい。
【０１２１】
これにより、ロボットの動作環境或いはロボット自身に配置されたマーカーを、識別用マーカーとして用いることが可能になる。マーカーは例えば所与の色や形状を有する図形であってもよい。また、撮像部は光の検出が可能であるから、ＬＥＤ光源等の発光部をマーカーとして利用することも可能である。ロボットの動作環境は、ポート識別処理後のビジュアルサーボ等のロボット制御においても、撮像部の撮像対象となることが想定される。よって、動作環境に配置されるマーカーは、本実施形態で対象としている撮像部による撮像が物理的に不可能となることは考えにくく、識別用マーカーとして用いるのに適切なものである。ここで、「撮像が物理的に不可能」とは、撮像部をどのように移動させてもマーカーを撮像できない相対位置関係にある、或いは、撮像部からマーカーまでの距離が大きく、画像中でのマーカーのサイズが、検出処理ができない程度に小さくなってしまう、等の状況を表す。ロボットに設置されるマーカーについても、撮像が物理的に不可能となることは考えにくいため、同様に扱うことができる。さらに、ロボットに識別用マーカーを配置することで、識別用マーカーと、ポート識別処理後のロボット制御で用いるマーカーとが混在することを抑止でき、マーカーの検出精度を向上させること等が可能である。
【０１２２】
また、処理部３２０は、撮像部の設置位置に応じて登録された登録画像と、複数の撮像画像との比較処理に基づいてポート識別処理を行ってもよい。
【０１２３】
これにより、登録画像と撮像画像の比較を行うことで、ポート識別処理を行うことが可能になる。本実施形態の手法では、特定の位置に設置された撮像部であれば、このような特性の撮像画像が取得されるはずである、という基準となる情報を保持しておき、実際に取得された複数の撮像画像から取得された情報と、当該基準となる情報との比較処理によりポート識別処理を行う。上述した識別用マーカーを用いる例であれば、基準となる情報とは基準マーカーパターンであるし、撮像画像から取得された情報とは撮像マーカーパターンである。しかしこれらの情報は識別用マーカーを用いるものに限定されず、画像情報そのものであってもよい。つまり基準となる情報として、特定の条件下で特定の位置に設置された撮像部により撮像された撮像画像を取得しておき、当該撮像画像を登録画像とすればよい。登録画像とは例えば図１１（Ａ）や図１１（Ｂ）等である。具体的には、ロボットが図１の姿勢をとった場合のＨｃａｍについての登録画像が図１１（Ａ）となり、同様にロボットが図１の姿勢をとった場合のＧｃａｍについての登録画像が図１１（Ｂ）となる。この場合、ポート識別処理とは、実際に撮像された撮像画像と登録画像の比較処理により実現できる。ただし、登録画像は撮像画像である必要はない。例えば、ロボットの動作環境を３次元ＣＧ等を用いてモデル化し、当該３次元ＣＧ空間上に、撮像部の位置及び姿勢に対応する位置及び姿勢の仮想カメラを配置することで取得される２次元画像を、登録画像として用いてもよい。
【０１２４】
また、処理部３２０は、複数の撮像画像に基づいてポート識別処理を行うとともに、複数の撮像画像に基づいて撮像異常検出処理を行ってもよい。
【０１２５】
これにより、図１２を用いて上述したように、撮像画像に基づいてポート識別処理と併せて撮像異常検出処理を行うことが可能になる。このようにすれば、撮像部における撮像が正常に行われていないということも自動的に検出できる。よって、ユーザー自身が撮像異常がないかを手動で（例えば撮像画像を実際に閲覧して）確認する必要がなくなり、さらなる省力化が可能になる。
【０１２６】
また、複数の撮像部は、１又は複数のハンドアイカメラ（例えば図１のＨｃａｍ）と、ロボットに取り付けられたグローバルカメラ（例えば図１のＧｃａｍ）と、を少なくとも含み、撮像画像取得部３１０は、１又は複数のハンドアイカメラからの撮像画像、及びグローバルカメラからの撮像画像を少なくとも含む、複数の撮像画像を取得してもよい。
【０１２７】
これにより、ハンドアイカメラとグローバルカメラを含む複数の撮像部を対象として、ポート識別処理を実行することが可能になる。図１に示したように、ハンドアイカメラはアーム１１０の先端等に設置されるため、その位置及び姿勢の自由度が高く、ワーク２０等の作業対象に近接して撮像することも可能である。一方、グローバルカメラは、ワーク２０等の作業対象だけでなく、その周辺環境も撮像範囲とするため、ロボットの動作状況の認識に有用である。つまり近年のロボットでは、当該ロボットにハンドアイカメラとグローバルカメラが接続されることが一般的であり、各撮像部が接続されたポートを適切に識別することは、撮像画像を用いたロボット制御において非常に重要であると言える。
【０１２８】
また以上の本実施形態は、複数のポートに接続される複数の撮像部からの複数の撮像画像を取得する撮像画像取得部３１０と、取得した複数の撮像画像のうち、少なくとも１つの撮像画像に基づいてロボットの制御を行うロボット制御部３３０と、複数の撮像部のうちのいずれの撮像部が、複数のポートのうちのいずれのポートに接続されたかを識別するポート識別処理を、複数の撮像画像に基づいて行う処理部３２０と、を含むロボットに適用できる。
【０１２９】
ここでのロボットとは、例えば図１に示した形態であってもよく、ロボット制御部３３０は、ロボットに含まれるアーム１１０や、アーム１１０に設けられるエンドエフェクター１１２（ハンド１１９等）の制御を行うことになる。
【０１３０】
なお、本実施形態のロボット制御システム３００等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、ＣＰＵ等のプロセッサーがプログラムを実行することで、本実施形態のロボット制御システム３００等が実現される。具体的には、非一時的な情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをＣＰＵ等のプロセッサーが実行する。ここで、情報記憶媒体（コンピューターにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリー（カード型メモリー、ＲＯＭ等）などにより実現できる。そして、ＣＰＵ等のプロセッサーは、情報記憶媒体に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピューターに実行させるためのプログラム）が記憶される。
【０１３１】
なお、以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またロボット制御システム、ロボット等の構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０１３２】
１０  作業台、２０  ワーク、１００  ロボット本体、１１０  アーム、
１１１，１１３  関節、１１２  エンドエフェクター、１１５，１１７  フレーム、
１１９  ハンド、２００  ベースユニット部、３００  ロボット制御システム、
３１０  撮像画像取得部、３２０  処理部、３３０  ロボット制御部、４００  撮像部、
５００  制御装置、ＡＲＭ  アーム、Ｇｃａｍ  グローバルカメラ、
Ｈｃａｍ  ハンドアイカメラ、Ｍ１-Ｍ７  識別用マーカー
【図１】
2015058488.tif 000003
【図２】
2015058488.tif 000004
【図３】
2015058488.tif 000005
【図４】
2015058488.tif 000006
【図５】
2015058488.tif 000007
【図６】
2015058488.tif 000008
【図７】
2015058488.tif 000009
【図８】
2015058488.tif 000010
【図９】
2015058488.tif 000011
【図１０】
2015058488.tif 000012
【図１１】
2015058488.tif 000013
【図１２】
2015058488.tif 000014