(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-05
(45)【発行日】2024-09-13
(54)【発明の名称】撮像システム構築装置
(51)【国際特許分類】
B25J 9/10 20060101AFI20240906BHJP
【FI】
B25J9/10 A
(21)【出願番号】P 2020108638
(22)【出願日】2020-06-24
【審査請求日】2023-02-09
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】北村 毅
(72)【発明者】
【氏名】笹谷 聡
(72)【発明者】
【氏名】伊藤 誠也
(72)【発明者】
【氏名】知原 信博
【審査官】神山 貴行
(56)【参考文献】
【文献】特開2016-078195(JP,A)
【文献】特開2020-075354(JP,A)
【文献】特許第6688523(JP,B1)
【文献】特開2015-042437(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
ロボットの姿勢推測用の画像を撮像する撮像システムの構築を補助する撮像システム構築装置であって、
前記撮像システムは、
ロボットと3次元位置を取得するための参照物を撮像する撮像装置と、
前記ロボットの基部座標系と前記撮像装置のカメラ座標系の変換に用いる基部・カメラ変換行列と、を含み、
前記撮像システム構築装置は、
前記撮像システムのシステム要件を満たす前記撮像装置と前記参照物の仕様と配置、および、前記ロボットの姿勢群の指令値である校正用パラメータを計画する撮像システム計画ユニットと、
該撮像システム計画ユニットが計画した、前記撮像装置と前記参照物の仕様と配置、及び
、前記ロボットの校正用パラメータにより、前記ロボットに対する前記撮像装置の相対的な配置、または、前記画像から姿勢推定に用いるパラメータに関する校正の精度を評価する撮像システム評価ユニットと、
該撮像システム評価ユニットが評価した、前記校正の精度が前記システム要件を満たさない場合、前記システム要件を満たすために必要な追加要件を、前記撮像システム計画ユニットにフィードバックすることで、前記校正の再実行、もしくは、前記撮像装置と前記参照物の仕様の再計画を可能とする要件フィードバック部と、
を備え、
前記システム要件とは、要件入力装置から入力された、計測精度、校正精度、コスト、前記ロボットの動作範囲、または、前記撮像装置の取り付け可能な空間であり、
前記撮像装置の仕様とは、前記撮像装置の撮影方式、画角、動作距離、精度、解像度、設計情報、または、保護等級であり、
前記参照物の仕様とは、前記参照物の寸法、模様、形状、または、種類であることを特徴とする撮像システム構築装置。
【請求項2】
請求項1に記載の撮像システム構築装置において、
前記撮像システム計画ユニットは、
前記撮像装置の性能情報を保有するデータベースに基づき、前記システム要件を満たす前記撮像装置の仕様や配置を計画する現実装置計画部を備えることを特徴とする撮像システム構築装置。
【請求項3】
請求項2に記載の撮像システム構築装置において、
前記現実装置計画部は、
前記システム要件に基づいて前記撮像装置の仕様を決定する撮像装置選定部と、
前記撮像装置の配置を決定する撮像装置配置決定部と、
前記参照物を選定するマーカ選定部と、
前記参照物の前記ロボットへの取り付け位置を決定するマーカ配置決定部と、
を備えることを特徴とする撮像システム構築装置。
【請求項4】
請求項1に記載の撮像システム構築装置において、
前記撮像システム計画ユニットは、
前記撮像装置と前記参照物の3次元情報を保有するデータベースに基づき、シミュレータ上に仮想装置を生成し、該仮想装置を動作させることで校正用データを生成し、校正を実施することで精度の評価を行う仮想校正評価部を備えることを特徴とする撮像システム構築装置。
【請求項5】
請求項4に記載の撮像システム構築装置において、
前記仮想校正評価部は、
前記ロボットの3次元モデルに基づいてシミュレータ上に仮想装置を生成する仮想装置生成部と、
前記システム要件に基づいて校正方式を決定する校正方式決定部と、
校正に用いるロボットの姿勢の校正用パラメータを生成する校正用パラメータ生成部と、
指令値に基づいて前記仮想装置を動作させ、校正用のデータを仮想的に生成する仮想校正データ生成部と、
仮想的に校正を行う仮想校正実行部と、
校正結果とシミュレータ生成時の真値の差が前記システム要件を満たすか評価する校正精度評価部と、
を備えることを特徴とする撮像システム構築装置。
【請求項6】
請求項5に記載の撮像システム構築装置において、
前記校正用パラメータ生成部は、
前記ロボットの姿勢群の指令値を生成するアルゴリズムを複数有する生成ロジックデータベースを備えることを特徴とする撮像システム構築装置。
【請求項7】
請求項5に記載の撮像システム構築装置において、
前記撮像システム評価ユニットは、
前記校正用パラメータに基づいて前記ロボットを動作させることで校正用データを収集する校正データ取得部と、
収集した校正用データにより校正を実行する校正実行部と、
校正結果を用いて校正の精度を評価する校正評価部と、
を備えることを特徴とする撮像システム構築装置。
【請求項8】
請求項7に記載の撮像システム構築装置において、
前記校正評価部は、
校正結果のログデータに基づいて校正の精度を評価する校正精度推定部と、
校正結果のログデータに基づいて誤差を推定する誤差推定部と、
前記ロボットを用いて評価のための動作を生成し、実行することで精度を評価する評価動作実行部と、
を備えることを特徴とする撮像システム構築装置。
【請求項9】
請求項1に記載の撮像システム構築装置において、
前記要件フィードバック部は、
校正の精度がシステム要件を満たすか判定を行う精度充足判定部と、
精度が不足した場合にその原因を特定する精度不足原因推定部と、
特定された原因により撮像システムがシステム要件を満たすために必要な追加要件を生成する追加要件生成部と、
を備えることを特徴とする撮像システム構築装置。
【請求項10】
請求項1に記載の撮像システム構築装置において、
前記要件フィードバック部は、
顧客要件に基づく作業内容を前記ロボットに実施させるロボット作業実行部と、
作業に失敗したときに再校正を行う必要があるか判定し、必要な場合は前記撮像システム計画ユニットに校正を実施する追加要件を送信する再校正実施評価部と、
を備えることを特徴とする撮像システム構築装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自律ロボットの周辺環境の推定に用いる撮像システムの構築を補助する撮像システム構築装置に関する。
【背景技術】
【0002】
近年の労働力不足を解消するため、従来は人が行ってきた、物流分野におけるピッキング作業や、産業分野における組み立て作業など、何らかのワーク(作業対象物)を取り扱う各種作業を自動化する自律ロボットのニーズが高まっている。自律ロボットに適切な自律作業を実行させるには、自律ロボットの姿勢やワーク等の周辺環境を高精度に認識できる撮像システムの構築が必要となる。
【0003】
高精度の撮像システムを構築するには、撮像画像に基づいて推定した自律ロボットの姿勢と、実際の自律ロボットの姿勢が一致するように、撮影装置の種類や仕様を選定したり、自律ロボットに対する撮像装置の相対的な配置(位置、姿勢)を決定したり、撮像画像から実際の姿勢推定に用いるパラメータを最適化したりする、キャリブレーション(以降、「校正」とも称する)の実施が必要である。このキャリブレーションには、例えば、形状が既知のターゲットマーカを自律ロボット上に取り付け、様々な姿勢に変更したロボットを撮像装置により撮影し、撮影画像とロボットの姿勢の複数の組を比較することで、撮像装置と自律ロボット間の相対的な位置と姿勢を推定する方法がある。
【0004】
しかしながら、上記のキャリブレーション方法では、撮像システムを構築するにあたり、工数の肥大化が懸念される。例えば、システム導入先によりロボットの作業内容や周囲環境の条件が異なるため、条件によっては撮像装置の選定・配置の決定といった撮像方法の選定に膨大な工数を要する。また、高精度なキャリブレーションを実現するためのロボットの姿勢群などのパラメータの調整工数が莫大になる恐れがある。そのため、近年では撮像システムの構築工数を削減するための仕組み・試作への注目が高い。
【0005】
例えば、特許文献1の要約書では、「キャリブレーションを実行するための設定を容易化する」ための解決手段として、「ロボット制御システムは、撮像部により撮像された画像に基づいて、当該撮像部の視野内に存在する任意の対象物の三次元座標を計測する計測部と、計測された三次元座標とロボットの作用部の位置および姿勢との間の予め算出された対応関係に従って、ロボットの作用部を位置決めするための指令を生成する指令生成部と、対応関係を算出するためのキャリブレーションを実行するキャリブレーション実行部と、キャリブレーションにおいて、ロボットの作用部に関連付けられた基準物体を配置すべき領域であるキャリブレーション領域の設定を受付ける設定受付部とを含む。」との記載がある。すなわち、特許文献1では、撮像装置が撮影したロボットの情報などからシミュレーション環境を構築し、キャリブレーションに使用するロボットの姿勢群をGUI上で選択あるいは自動で生成することで、キャリブレーションの工数を削減している。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記の通り、特許文献1によれば、ロボットの姿勢群に関するパラメータ決定の工数を削減しつつキャリブレーションを実行することができる。
【0008】
しかしながら、特許文献1では、キャリブレーション後に作業が成功するか否かの精度については考慮されておらず、また、撮像方法の選定に関連する作業工数を削減することも考慮されていない。
【0009】
そこで、本発明の目的は、ロボット、撮像装置、ターゲットマーカを含む現実装置と、シミュレータ上の仮想装置を活用し、作業の成功が保証できる撮像装置の選定・配置とキャリブレーション時のロボットの姿勢群に関するパラメータを自動で策定し、現実装置によるキャリブレーションの評価から、撮像システムを高度化するための追加要件をシミュレータにフィードバックすることで、仮想装置でキャリブレーションを自動的に再度実行する、もしくは撮像方法を修正する指示を作業者に提示することを可能とし、最適な撮像システムの構築を容易にする撮像システム構築装置を提供することである。
【課題を解決するための手段】
【0010】
上記課題を解決するため、本発明の撮像システム構築装置は、ロボットの周辺環境の推定に用いる撮像システムの構築を補助する撮像システム構築装置であって、前記撮像システムは、ロボットと3次元位置を取得するための参照物を撮像する撮像装置と、前記ロボットの基部座標系と前記撮像装置のカメラ座標系の変換に用いる基部・カメラ変換行列と、を含み、前記撮像システム構築装置は、前記撮像システムのシステム要件を満たす前記撮像装置と前記参照物の仕様と配置、および、前記撮像装置と前記ロボットの校正用パラメータを計画する撮像システム計画ユニットと、該撮像システム計画ユニットが計画した、前記ロボットと前記参照物と前記撮像装置からなる現実装置により、校正の精度を評価する撮像システム評価ユニットと、該撮像システム評価ユニットが評価した、前記校正の精度が前記システム要件を満たさない場合、前記システム要件を満たすために必要な追加要件を、前記撮像システム計画ユニットにフィードバックすることで、前記校正の再実行、もしくは、前記現実装置の再構築を可能とする要件フィードバック部と、を備えるものとした。
【発明の効果】
【0011】
本発明の撮像システム構築装置によれば、現実装置とシミュレータ上の仮想装置を活用し、撮像装置の種類と配置、およびキャリブレーションのパラメータを自動で策定することで、顧客要件を満たす撮像システムの構築に要する工数を低減できる。
【図面の簡単な説明】
【0012】
【
図1】一実施例における撮像システム構築装置を示す機能ブロック図
【
図8】校正データ取得部の処理を示すフローチャート
【
図10】校正精度推定部の処理を示すフローチャート
【
図12】評価動作実行部の処理を示すフローチャート
【
図15】追加要件生成部の処理を示すフローチャート
【
図16】現実装置の配置を変更した変形例の構成を示す図
【発明を実施するための形態】
【0013】
以下、本発明の撮像システム構築装置の一実施例について、適宜図を参照しながら詳細に説明する。
【0014】
(全体構成)
図1は、本実施例の撮像システム構築装置2の構成と、現実装置3や要件入力装置4との入出力を示す機能ブロック図である。この撮像システム構築装置2は、自律ロボットの一態様であるロボットアーム(以下、「ロボット31」と称する)によるピッキング作業を自動化するために必要な、ロボット31の姿勢推測用の画像を撮像するための撮像システムの構築を補助する装置である。なお、本発明における撮像システムとは、後述する撮像装置33の仕様および配置(ロボット31に対する相対位置、相対姿勢)と、後述する基部・カメラ変換行列M
1の組み合わせで定義されるシステムである。
【0015】
(制御装置1)
まず、
図2を用いて、撮像システム構築装置2を具現化する制御装置1のハードウェア構成を説明する。図示するように、制御装置1は全体を統括制御するCPU11と、CPU11の指令を伝達するバス12と、ROM13と、RAM14と、記憶装置15と、ネットワークインターフェース16と、後述する撮像装置33を接続するための撮像インターフェース17と、画面出力を行うための画面表示インターフェース18と、外部入力を行うための入力インターフェース19と、を有する一般的なコンピュータである。また、ネットワークインターフェース16には、ロボット31を制御し動作させるためのロボット制御装置16aが接続されている。
【0016】
また、記憶装置15内には、シミュレータ上に仮想装置を生成したり、キャリブレーション(校正)を実行したりするためのプログラム15aと、オペレーティングシステム15bと、現実装置3をシミュレータ上の仮想装置として生成するための3Dモデル15cなどが格納されている。RAM14にロードされたプログラム15aを、CPU11が処理することで、撮像システム構築装置2の各機能が実現される。
【0017】
(撮像システム構築装置2)
次に、制御装置1により実現される、撮像システム構築装置2の各機能の概要を説明する。
図1に示すように、撮像システム構築装置2の機能は、撮像システム計画ユニット2Aと、撮像システム評価ユニット2Bと、要件フィードバック部29に大別される。
【0018】
撮像システム計画ユニット2Aは、要件受付部20と、現実装置計画部21と、仮想校正評価部22と、校正用パラメータ生成部23と、校正用パラメータ24から構成される。要件受付部20は、要件入力装置4から入力されたシステム要件を現実装置計画部21や仮想校正評価部22へ出力する。現実装置計画部21は、システム要件を満たす現実装置3の仕様と配置(位置、姿勢)を、シミュレータを用いて計画する。仮想校正評価部22は、現実装置計画部21にて計画した現実装置3の仕様や配置の情報からシミュレータ上に仮想装置を生成し、仮想装置を用いてキャリブレーションの実行に必要な校正データを仮想的に生成し、仮想的にキャリブレーションを実行することで評価を行う。校正用パラメータ生成部23は、仮想校正評価部22で生成した校正データに基づきロボット31の姿勢群である校正用パラメータ24を生成する。
【0019】
撮像システム評価ユニット2Bは、校正データ取得部25と、校正データ26と、校正実行部27と、校正評価部28から構成される。校正データ取得部25は、校正用パラメータ24に基づき現実装置3を制御し、ロボット31の各関節の角度情報であるエンコーダ値と撮像装置33による撮像データとを含む校正データ26を収集する。校正実行部27は、校正データ26を使用してキャリブレーションを実行することでロボット31と撮像装置33の相対的な位置と姿勢の変換行列を求める。校正評価部28は、キャリブレーションの精度を求める。
【0020】
要件フィードバック部29は、構成評価部28で推定されたキャリブレーション精度がシステム要件を満たしているか判断し、システム要件を満たしていない場合はシステム要件を満たすよう再度撮像システムを構築するために必要な追加要件を要件受付部20にフィードバックする。
【0021】
以下、現実装置3と要件入力部4を説明した後、撮像システム構築装置2の現実装置計画部21、仮想校正評価部22、校正データ取得部25、校正評価部28、要件フィードバック部29について詳細に説明する。
【0022】
(現実装置3)
図3は、現実装置3の概略図である。ここに示すように、現実装置3は、多関節のロボットアームであるロボット31と、ロボット31上に設置した参照物であるターゲットマーカ32と、ロボット31の一部とその周辺を画角に収める撮像装置33と、を有する。以降、各々について詳細に説明する。
【0023】
本実施例では、ロボット31として、6軸ロボットアームを用いる。この6軸ロボットアームは、土台となる基部31a、第一リンク31b、第一関節31c、第二リンク31d、第二関節31e、第三リンク31f、第三関節31gを有する。第三関節31gより先には、3自由度を持つアーム31hが取り付けられているため、ロボット31は、第一関節31c、第二関節31e、第三関節31gを合わせて6の自由度を持ち、任意の姿勢を取ることができる。なお、ロボット31の設置位置について、本実施例では床や土台に固定しているが、短軸スライダーなどを用いることで自由度を増加させ、より広い空間を対象とした作業を実行することもできる。
【0024】
ターゲットマーカ32は、平面状の治具に寸法が既知の模様を印刷したものであり、撮像装置33の撮影画像によりターゲットマーカ32の3次元位置を特定することができる。なお、撮像装置33の撮影画像により、3次元位置が特定可能であれば、ターゲットマーカ32は平面状の治具である必要は無く、球状治具や特殊な形状の治具を用いることもできる。なお、ターゲットマーカ32の取り付け位置について、本実施例ではアーム31hの先端に取り付けているが、ロボット31上であればこの例に限定されない。ただし、一般的にはロボット31の自由度が高く、ピッキング作業が行う空間でターゲットマーカ32を撮影できるアーム先端に取り付けることが望ましい。
【0025】
撮像装置33の撮影方式は、ピッキング対象物であるワークの形状を測定するため、3次元計測が可能である必要がある。本実施例においてはステレオカメラを用いているが、Time of Flight(ToF)方式のカメラや、アクティブステレオ方式のカメラを使用しても良い。なお、撮像装置33は、天井や壁など任意の場所に設置できるが、3次元計測を精度よく実施できる範囲内にワークが映るように撮像装置33を設置することが望ましい。
【0026】
(現実装置3の座標系と座標変換の校正)
図4は、現実装置3の座標系と座標変換の関係を示した図である。ここに示すように、現実装置3の座標系には、ロボット31の基部を原点とする基部座標系C
1と、ロボット31のアーム先端を原点とするアーム座標系C
2と、ターゲットマーカ32の中心を原点とするマーカ座標系C
3と、撮像装置33の光学中心を原点とするカメラ座標系C
4と、がある。
【0027】
また、現実装置3の座標変換に用いる変換行列には、基部座標系C1とカメラ座標系C4の変換に用いる基部・カメラ変換行列M1と、マーカ座標系C3とカメラ座標系C4の変換に用いるマーカ・カメラ変換行列M2と、アーム座標系C2と基部座標系C1の変換に用いるアーム・基部変換表列M3と、アーム座標系C2とマーカ座標系C3の変換に用いるアーム・マーカ変換行列M4と、がある。
【0028】
例えば、基部・カメラ変換行列M1の回転行列をRcr、並進行列をtcrとしたとき、カメラ座標系C4における任意の点C(xc,yc,zc)は、以下の式1により基部座標系C1の点R(xr,yr,zr)に変換できる。
【0029】
【0030】
現実装置3の座標変換行列は、一般的に、次の方法で取得する。基部・カメラ変換行列M1は、キャリブレーションにより取得する。マーカ・カメラ変換行列M2は、撮像装置33によりターゲットマーカ32を撮影して得た画像を解析することにより取得する。アーム・基部変換行列M3は、ロボット31の3Dモデル15cと関節角度情報を用いることで取得する。アーム・マーカ変換行列M4は、未知もしくはターゲットマーカ32をロボット31に取り付けするための治具の設計値により取得する。
【0031】
なお、本実施例では、各座標系の原点、座標系の向き、座標変換を上述のように設定しているが、この例に限らない。
【0032】
(要件入力装置4)
要件入力装置4では、作業者は、作業内容やワークの種類などの顧客要件を入力する。これにより、撮像システム構築装置2は、撮像システムに必要な計測精度、キャリブレーション精度、コスト、ロボット31の動作範囲や撮像装置33の取り付け可能な空間などのシステム要件を取得することができる。
【0033】
図5Aと
図5Bは、要件入力装置4の画面表示部の画面例である。ここでは、要件入力装置4として、一般的なノートPCを使用している。顧客要件調査を担当する作業者は、顧客先で画面に表示された内容に沿ってヒアリングを行うことで、容易に顧客要件を調査することができる。以降、要件入力装置4の詳細を説明する。
【0034】
要件入力装置4に入力する顧客要件の一例として、
図5Aの入力画面41のように、使用するロボット31の種類、デパレタイズやピースピッキングなど作業内容の種類、ダンボールや木箱などワークの種類、ワークの大きさや形状、予算や目標とするピッキングの作業時間等がある。これらの顧客要件を、要件入力装置4を介して、撮像システム構築装置2の要件受付部20に出力することで、要件受付部20は撮像システムに必要なシステム要件を現実装置計画部21や仮想校正評価部22へと出力することができる。例えば、ワークが荷物台に積まれた複数の大型のダンボールであれば、画角が広い撮像装置33を選定する必要があるため、必要な画角の情報をシステム要件として現実装置計画部21へと出力する。加えて、顧客要件として、作業内容がピッキング、エンドエフェクタが吸着ハンドであることを要件受付部20に出力することで、吸着ハンドの吸着面とダンボールの把持面の面積を比較し、把持に必要な計測精度とキャリブレーション精度のシステム要件を現実装置計画部21と仮想校正評価部22へと出力する。
【0035】
また、
図5Aの入力画面42のように、入力する顧客要件には、ロボット31を導入する工場内で、撮像装置33を設置可能な空間等がある。工場の設計情報に基づき3次元空間を生成し、ロボットを一台、もしくは複数設置し、その周辺で撮像装置33を設置可能な空間を指定することで、撮像装置33の取り付け範囲のシステム要件を現実装置計画部21へと出力することができる。取り付け範囲は、単なる直方体のような空間の指定、もしくは複雑な形状でもよい。
【0036】
さらに、
図5Bの入力画面43のように、顧客要件として工場内もしくはロボット31の周辺における設置物や障害物を登録しても良い。また、現状の設備に限らず将来的に設置を見込む設備でもよい。この顧客要件を要件受付部20に入力することで、設置物や障害物が原因で撮像装置33により撮影した画像にワークやロボット31が映らない事態を事前に防止する。また、情報秘匿の観点から撮影不可の領域や物がある場合は、同様に撮影不可の物体として登録することで、撮像範囲に関するシステム要件を現実装置計画部21へ出力することができる。
【0037】
また、
図5Bの入力画面44のように、照明や窓など光源の位置を顧客要件として入力してもよい。3次元計測可能な撮像装置33の一部は、照明などが発する光によって正確に計測ができないものがある。顧客要件として光源の登録を行うことで、照明が強く当たる空間では、撮像装置33として照明光に強い種類の機種を選択したり、反射光が入り込まないよう撮像装置33の位置や取付角度を設定したりするシステム要件を現実装置計画部21へ出力することができる。
【0038】
(現実装置計画部21)
現実装置計画部21では、要件入力装置4から入力されたシステム要件に基づき、現実装置3のうち、撮像装置33とターゲットマーカ32の仕様と配置をシミュレータ上で決定する。
【0039】
図6は、現実装置計画部21のブロック構成図である。ここに示すように、現実装置計画部21は、要件データベース21aと、撮像装置データベース21bと、撮像装置選定部21cと、撮像装置配置決定部21dと、マーカ選定部21fと、マーカ配置決定部21gと、ハードウェア配置情報21hと、を有する。以下、順次説明する。
【0040】
要件データベース21aは、要件受付部20より出力されたシステム要件としてピッキング作業に必要な計測精度やキャリブレーション精度、コスト、ピッキングの作業時間、ロボット31の動作範囲や撮像装置33の取り付け可能な空間等を保持する。撮像装置データベース21bは、複数の撮像装置33の夫々について撮影方式、画角、動作距離、精度、解像度、設計情報、保護等級等の情報を格納する。撮像装置選定部21cは、要件データベース21aと撮像装置データベース21bに基づき、価格やピッキングの作業時間の要件を満たし、取り付け可能な空間においてピッキングに必要な計測精度を持つ撮像装置33を選定する。撮像装置配置決定部21dは、撮像装置33を取り付け可能な領域のうち、既存の設備を活用して取り付け可能な位置や姿勢、もしくは選定された撮像装置33が最も精度よく計測できる取り付け位置と姿勢を決定する。
【0041】
マーカ選定部21fは、選定した撮像装置33の撮影画像を解析したときに精度よく検出可能なターゲットマーカをマーカデータベース21eより選定する。マーカ配置決定部21gは、ロボット31の形状や作業範囲、周辺環境などからターゲットマーカ32の取り付け位置を決定する。
【0042】
ハードウェア配置情報21hは、選定した撮像装置33とターゲットマーカ32の種類と配置を保持する。
【0043】
また、現実装置計画部21には、過去の案件における現実装置3の構成を保持する現実装置構成データベースを追加し、上記した撮像装置選定部21c、撮像装置配置決定部21d、マーカ選定部21f、マーカ配置決定部21gと接続することで、現実装置3の構成を決定しても良い。
【0044】
なお、本実施例では自動で撮像装置33とターゲットマーカ32の仕様と配置情報を決定したが、撮像装置33とターゲットマーカ32の種類と配置についてシステム要件を満たす複数の候補を格納し、ユーザに提示することで比較検討するための現実装置提示部と、決定後にハードウェア配置情報21hに反映する現実装置決定部を設けても良い。
【0045】
(仮想校正評価部22)
仮想校正評価部22では、現実装置3を仮想的にシミュレータ上に生成し、アルゴリズムに基づきキャリブレーション用のデータを仮想的に生成し、データを用いてキャリブレーションを実施した結果、精度が十分であるか評価を行う。
【0046】
図7は、仮想校正評価部22のブロック構成図である。ここに示すように、仮想校正評価部22は、仮想装置生成部22aと、校正方式決定部22bと、生成ロジックデータベース22cと、校正用パラメータ生成部22dと、仮想校正用パラメータ22eと、仮想校正データ生成部22fと、仮想校正データ22gと、仮想校正実行部22hと、校正精度評価部22iと、上記した3Dモデル15cと、を有する。以下、順次説明する。
【0047】
仮想装置生成部22aは、現実装置計画部21が出力したハードウェア配置情報21hを、記憶装置15に記憶した3Dモデル15cを用いて、シミュレータ上に仮想的に生成する。校正方式決定部22bは、システム要件にて必要なキャリブレーション精度からキャリブレーションの手法を選択する。校正用パラメータ生成部22dは、キャリブレーションに用いるロボット31の姿勢群の指令値を生成するアルゴリズムを複数格納する生成ロジックデータベース22cから姿勢群の指令値を生成するアルゴリズムを定め、アルゴリズムに基づきロボット31の姿勢群の指令値である仮想校正用パラメータ22eを生成する。
【0048】
仮想校正データ生成部22fは、仮想校正用パラメータ22eに基づきシミュレータ上のロボット31を移動させた時の姿勢値と撮影データを含む仮想校正データ22gを生成する。
【0049】
仮想校正実行部22hは、仮想校正データ22gよりキャリブレーションを実行し、基部・カメラ変換行列M1を推定する。校正精度評価部22iは、推定した基部・カメラ変換行列M1とシミュレータ設計時の真値を比較し、キャリブレーションの精度がシステム要件を満たすか評価する。
【0050】
なお、複数のキャリブレーション方法を、ユースケース別に保持する校正方式DBを作成し、校正方式決定部22bにてキャリブレーション方式の決定に用いても良い。同様に、校正方式決定部22bでは複数の校正方法を画面上に提示し、ユーザが選択するようにしても良い。
【0051】
また、生成ロジックデータベース22cはキャリブレーションに用いるロボット31の姿勢群の指令値を生成するロジックを複数格納していたが、これを姿勢群DBとして姿勢群の指令値そのものを校正用パラメータ生成部22dで取得しても良い。
【0052】
また、校正方式決定部22bと校正用パラメータ生成部22dから、複数のキャリブレーション手法とロボット31の姿勢群の指令値を生成するアルゴリズムの組み合わせについてそれぞれ仮想校正データ生成部22f、仮想校正実行部22h、校正精度評価部22iでの処理を実施し、各組合せのキャリブレーションの精度とキャリブレーションに要する時間をユーザに提示することで、システム要件を満たすキャリブレーション方式とロボット31の姿勢群の指令値の生成アルゴリズムの組を選択するようしても良い。
【0053】
(校正データ取得部25)
図8は、校正データ取得部25の処理を示すフローチャートである。この処理は、キャリブレーションに必要なロボット31の姿勢値と、撮像装置33により撮影する画像の複数の組を含む校正データ26を取得する処理であり、本実施例では、ロボット31と画像の組をN組取得するものとする。
【0054】
まず、S1では、ステップ総数Nおよびロボット31の姿勢群の指令値を校正用パラメータ24より取得し、S2では、ステップ数iを1に設定する。
【0055】
次に、S3では、i番目(1番目)の姿勢群の指令値によりロボット31の姿勢を制御し、S4では、そのロボット31を、撮像装置33で撮影する。
【0056】
S5では、撮影データを解析することでターゲットマーカ32の検出が可能か判定する。本来は仮想校正評価部22によるシミュレータ上で、すべてのステップにおいてターゲットマーカ32が検出できるロボット姿勢の指令値のみが適用されることが望ましいが、シミュレータと現実の環境の差異によって、検出不可能となる場合がある。
【0057】
S5で、ターゲットマーカ32が検出不可(図中No)と判定された場合は、S6で、現在の姿勢を不適切姿勢データベース25aに格納した後、S7で、ステップ数iを1増やしてから、S3に戻る。
【0058】
一方、S5で、ターゲットマーカ32が検出可能(図中Yes)と判定された場合は、S8では、撮影データを解析することで、マーカ・カメラ変換行列M2を推定し、S9では、画像とマーカ・カメラ変換行列M2と基部・アーム変換行列M3を校正データ26に格納する。
【0059】
そして、S10では、全ステップが終了したか判定する。全ステップが終了していない場合(図中No)は、S7で、ステップ数を1増やしてから、S3に戻る。一方、全ステップ終了した場合(図中Yes)は、校正データ取得部25の処理を終了する。
【0060】
(校正評価部28)
校正評価部28では、校正実行部27にて現実装置3でキャリブレーションを実施した校正結果のログデータよりキャリブレーションの精度を推定する。
【0061】
図9に、校正評価部28のブロック構成図を示す。ここに示すように、校正評価部28は、校正結果28aと、校正評価28bと、校正精度推定部28cと、誤差推定部28dと、評価動作実行部28eと、を有する。
【0062】
校正結果28aには、校正実行部27のキャリブレーションの結果として、基部・カメラ変換行列M1と、キャリブレーションに使用した画像、ロボット31の姿勢値であるアーム・基部変換行列M3などのログデータを含む。また、校正評価28bは、キャリブレーションの精度を保持する。
【0063】
校正精度推定部28cは、校正結果28aを用いてキャリブレーションにより推定した基部・カメラ変換行列M1の精度を推定する。誤差推定部28dは、基部・カメラ変換行列M1の誤差の大きさを推定する。評価動作実行部28eは、キャリブレーションの精度を評価するための動作を生成し評価する。
【0064】
この校正評価部28では、撮像システムを新規に構築するキャリブレーションの実施後に、校正精度推定部28c、誤差推定部28d、評価動作実行部28eのいずれか、もしくは複数を実施する。以降では、校正精度推定部28c、誤差推定部28d、評価動作28eについて詳細に説明する。
【0065】
<<校正精度推定部28c>>
図10は、校正精度推定部28cによる、キャリブレーション精度の推定処理の一例を示すフローチャートである。
【0066】
まず、S11では、校正精度推定部28cは、キャリブレーションで推定した基部・カメラ変換行列M1とアーム・マーカ変換行列M4を、校正結果28aから取得する。また、S12では、校正データ取得部25にて収集した各ステップのアーム・基部変換行列M3とマーカ・カメラ変換行列M2を、校正データ26から取得する。
【0067】
その後、S13では、キャリブレーションにて得た基部・カメラ変換行列M1と、各ステップのアーム・基部変換行列M3とマーカ・カメラ変換行列M2を用いて、各ステップにおけるアーム・マーカ変換行列M4を計算する。そして、S14では、i=1~Nの全ステップにおけるアーム・マーカ変換行列M4の分散を算出し評価値として出力する。
【0068】
上記のS13において、基部・カメラ変換行列M1の回転行列をRcr、並進行列をtcr、iステップ目のマーカ・カメラ変換行列M2の回転行列をRmci、並進行列をtmci、iステップ目のアーム・基部変換行列M3の回転行列をRari、並進行列をtariとしたき、iステップ目のアーム・マーカ変換行列M4の回転行列Ramiと並進行列tamiは以下のように計算される。
【0069】
【0070】
このようにしてS14にて全ステップにおけるアーム・マーカ変換行列M4の分散を算出したが、アーム・マーカ変換行列M4は本来ステップ毎に値が変動しないため、分散値の大きさにより各パラメータの推定精度の評価が可能である。
【0071】
<<誤差推定部28d>>
図11は、誤差推定部28dによる、誤差推定処理の一例を示すフローチャートである。
【0072】
まず、S15では、キャリブレーションで推定した基部・カメラ変換行列M1の各軸のパラメータD(x,y,z,rx,ry,rz)を、校正結果28aから取得する。また、S16では、キャリブレーションを実行した際に得られる評価関数fを校正結果28aから取得する。
【0073】
その後、S17では、評価関数fの二階微分値を各軸において計算し、S18では、二階微分値より各軸方向に対して評価関数fの感度を推定する。最後に、S19では、評価関数fの感度により各軸の精度を評価し出力する。
【0074】
ここで、S18において、dxを微小な値としたとき、x軸における評価関数fの二階微分値を取得する例を以下に示す。
【0075】
【0076】
なお、式3では、位置成分のパラメータD(x,y,z)を評価しているが、姿勢成分のパラメータD(rx,ry,rz)など別の指標を評価指標としてもよい。
【0077】
<<評価動作実行部28e>>
図12は、評価動作実行部28eが、現実装置3を動作させることで、キャリブレーションの精度を求める処理の一例を示すフローチャートである。
【0078】
まず、S20では、校正結果28aを用いてロボット31上のターゲットマーカ32を撮像装置33の光軸上など任意の点Aに移動させる。次に、S21では、撮像装置33にターゲットマーカ32を撮影させる。その後、S22では、撮像データを解析することでマーカ・カメラ変換行列M2を推定し、S23で、推定結果と点Aの真値を比較することで精度を算出する。
【0079】
なお、ロボット31の手先を空間中の物体に接触させることでズレの評価を行う、もしくは撮像装置33によりターゲットマーカ32を撮影することで得られた画像と、校正結果28aを参照して現在のロボット31の姿勢における理想の画像を生成し差分の評価を行う、もしくはロボット31を動作させ任意の位置に移動できるか評価する、など、精度を評価するために現実装置3を動作させるものであれば、評価動作実行部28eでの処理内容は、
図12の例に限らない。
【0080】
(要件フィードバック部29)
要件フィードバック部29は、キャリブレーションの精度がシステム要件を満たしていない場合、仮想校正評価部22で使用されるキャリブレーションの姿勢群の指令値生成のロジックを切り替える機能、もしくは、追加の姿勢の指令値を生成する追加要件を出力する機能、現実装置計画部21に撮像装置33の仕様や配置の変更を追加要件として出力する機能、顧客先で構築した撮像システムを使用したピッキング作業の実施中に作業が失敗したとき、キャリブレーションを実施する必要があるか判定し、必要があれば再度実施するよう追加要件を出力する機能、等を有する。
【0081】
図13は、要件フィードバック部29の一例を示す機能ブロック図である。ここに示すように、要件フィードバック部29は、精度充足判定部29aと、仮想装置変更要件生成部29bと、精度不足原因推定部29cと、追加要件生成部29dと、ロボット作業実行部29fと、再校正実施評価部29eと、を備える。
【0082】
精度充足判定部29aは、校正精度評価部22iにて推定したキャリブレーション精度が、システム要件を満たしているか判定する。
【0083】
仮想装置変更要件生成部29bは、キャリブレーション精度がシステム要件を満たす場合に、シミュレータ上の仮想装置の配置を、実機によりキャリブレーションして求めた校正データ26の値に基づいて修正し、キャリブレーション用のロボット31の姿勢群の指令値である校正用パラメータ24から不適切姿勢データベース25aに登録された姿勢を削除するよう指示を生成する。
【0084】
精度不足原因推定部29cは、キャリブレーション精度がシステム要件を満たさない場合に、その原因を推定する。追加要件生成部29dは、精度が不足した原因より、シミュレータに対してシステム要件を満たすために必要な追加要件を生成する。
【0085】
ロボット作業実行部29fは、一度撮像システムの構築を完了した後、現実装置3のロボット31を用いて顧客要件である作業内容を実施させる。再校正実施評価部29eは、ロボット作業実行部29fにて作業内容が失敗したときに、再度キャリブレーションを実施する必要があるか判定し、必要ある場合は要件受付部20にキャリブレーションを実施する追加要件を生成し、シミュレータにフィードバックする。
【0086】
以降では、精度不足原因推定部29c、追加要件生成部29d、再校正実施評価部29eについて詳細に説明する。
【0087】
<<精度不足原因推定部29c>>
図14に、精度不足原因推定部29cの機能ブロック図を示す。ここに示すように、精度不足原因推定部29cは、現実装置配置検証部29c1と、校正用パラメータ検証部29c2と、現実装置仕様検証部29c3と、を有する。
【0088】
現実装置配置検証部29c1では、現実装置3の配置が原因で精度の不足が生じたか検証する。具体的には、現実装置計画部21による現実装置3の配置と、校正データ26による現実装置3の配置に乖離がある場合に、現実装置3の配置に原因があると推定する。また、撮像装置33により取得した撮像データと、仮想校正評価部22で生成した仮想撮像データを比較することで、シミュレータにより生成した現実装置3の配置が、実際の配置と大きくずれているか確認してもよい。
【0089】
校正用パラメータ検証部29c2では、校正用パラメータ24が原因で精度の不足が生じたか検証する。具体的には、不適切姿勢データベース25aにおいてターゲットマーカ32を検出できないロボット31の姿勢がある場合に、不適切データベース25aの姿勢を削除した仮想校正データ22gより、仮想的にキャリブレーションを行い、精度の確認を行う。その結果、精度が一定値以上低下した場合は、ロボット31の姿勢群である校正用パラメータ24に原因があると推定する。
【0090】
現実装置仕様検証部29c3では、現実装置3の故障や不具合が原因で精度の不足が生じたか検証する。具体的には、不適切姿勢データベース25aの数が大半を占めており、ターゲットマーカ32を全く検出できない場合は、撮像装置33が故障している、もしくは撮像装置33のレンズに汚れが生じている、もしくはターゲットマーカ32が破損している、もしくは現実装置が全く想定と異なる場所に設置されていると判断する。撮像装置33の故障もしくは汚れを検証するため、撮像装置33より3次元計測を行い、視野中心で有効な3次元情報が取得できない場合は、撮像装置33が原因であると推定する。視野中心で有効な3次元情報が得られた場合は、ターゲットマーカ32の破損および現実装置3の配置に大きな誤りがあると推定する。
【0091】
<<追加要件生成部29d>>
図15は、追加要件生成部29dの処理を示すフローチャートである。ここに示すように、まず、S24では、精度不足原因推定部29cが推定した精度不足原因が現実装置3の配置不良であるか確認する。そして、現実装置3の配置不良が原因である場合は(図中Yes)、S25に進み、現実装置3の配置を、現実装置計画部21にて選定した配置に合わせるようユーザに提示する追加要件を生成する。一方、現実装置3の配置が原因でない場合は(図中No)、S26に進み、精度不足原因推定部29cが推定した精度不足原因が、校正用パラメータ24の不良であるか確認する。
【0092】
そして、校正用パラメータ24が原因でない場合は、S27に進み、撮像装置33で3次元計測が可能かの判定結果を確認する。計測可能であれば(図中Yes)、S28に進み、ターゲットマーカ32の破損や現実装置3の配置に誤りがないか確認する追加要件を生成する。一方、計測可能でなければ(図中No)、S29に進み、撮像装置33の故障やレンズの汚れを確認する追加要件を生成する。
【0093】
一方、校正用パラメータ24が原因の場合は、S30に進み、不適切姿勢の数が全姿勢の数に対して少ないかを判定する。そして、少なければ(図中Yes)、S31に進み、不適切姿勢を削除して、撮像装置33により障害物などが周辺にあるか確認し、不適切姿勢周辺かつ障害物が存在しない空間でロボット31の姿勢の指令値を生成するよう追加要件を生成する。一方、不適切姿勢の数が少なくなければ(図中No)、S32に進み、姿勢群の指令値を生成するアルゴリズムを変更する追加要件を生成する。
【0094】
そして、S25,S28,S29,S31,S32の何れかの処理を終えたときに、
図15の処理を終了する。
【0095】
<<再校正実施評価部29e>>
続いて、再校正実施評価部29eについて説明する。再校正実施評価部29eは、撮像システム構築後、ロボット作業実行部29fにて、ピッキング作業が失敗した時に呼び出され、キャリブレーションを再度実行する必要があるか判定を行う。本実施例では、評価動作実行部28eのように校正精度を評価する動作を現実装置3に行わせることで、ロボット31や撮像装置33の位置関係にずれがあるか判定する、もしくは校正結果に基づきシミュレータ上の仮想装置で撮影した画像と、現実装置で撮影した画像が乖離しているは判定する、もしくは失敗時の撮像データと、過去の撮像データに乖離がある場合は再度キャリブレーションを行う追加要件を生成する。画像が乖離しているか否かは、機械学習などにより判定できる。
【0096】
以上の構成により、現実装置3による撮像システムの評価を、シミュレータにフィードバックすることにより、キャリブレーションの姿勢群の指令値生成のロジックを切り替える、もしくは追加の姿勢の指令値を生成する追加要件を出力することで再度キャリブレーションを実行させる、もしくは撮像方法を修正するようユーザに提示することが可能となる。例として、ロボット31により顧客要件の作業内容を実施中に、撮像装置33やワークを意図的にずらし作業を失敗させることで、再度キャリブレーションを実施する、もしくは撮像方法を修正するような画面出力を確認することができる。
【0097】
(撮像システム構築装置2の動作の具体例)
次に、本実施例の撮像システム構築装置2の動作の具体例として、追加要件をシミュレータにフィードバックする動作を示す。まず、作業者により要件入力装置4から顧客要件が入力され、要件受付部20で顧客要件に基づき推定されたシステム要件から現実装置計画部21と仮想校正評価部22を実施する。その後、校正用パラメータ生成部23にて20個のロボット31の姿勢群の指令値を生成し、校正データ取得部25での処理を実施する。
【0098】
ところが、顧客の環境が動的に変化する案件などで、キャリブレーション作業時にロボット31周辺に未知の障害物が生じた場合には、ロボット31が指令値へと移動できないケースが一部発生し、このときの指令値が不適切姿勢データベース25aに格納される。本ケースでは4つの姿勢が不適切姿勢データベース25aに登録されているとする。続けて、校正データ取得部25にて正常に取得された校正データ26を使用して、校正実行部27にてキャリブレーションが実行される。校正評価部28によりキャリブレーションの精度を推定し、要件フィードバック部29では精度充足判定部29aにて精度がシステム要件を満たすか判定を行う。
【0099】
このとき、キャリブレーション精度がシステム要件を満たさない場合は、精度不足原因推定部29cが実行される。精度不足原因推定部29cでは、はじめに現実装置配置検証部29c1が実行される。現実装置配置検証部29c1では現実装置3による撮影データと仮想装置による仮想撮影データを比較する。この比較により、現実装置3が原因でないと判定された場合は、校正用パラメータ検証部29c2での検証処理が実行される。校正用パラメータ検証部29c2では、不適切姿勢データベース25aを参照し、不適切姿勢を除いたロボット31の姿勢群の指令値により、仮想校正評価部22と同様、仮想的にキャリブレーションを実行する。
【0100】
この結果、4つの不適切姿勢を除いた姿勢群によるキャリブレーションではシステム要件を満たさない場合は、校正用パラメータ24を変更する必要があるとして、追加要件生成部29dが呼び出される。追加要件生成部29dでは、校正用パラメータ24が原因であるため、不適切姿勢の数を検証し、この例のように全指令値のうち少数の姿勢のみが不適切姿勢として不適切姿勢データベース25aに格納される場合は、不適切姿勢データベース25a中の指令値を校正用パラメータ24から削除し、撮像装置33により障害物などが周辺にあるか確認することで障害物がある空間を推定する。そして、不適切姿勢周辺かつ障害物が存在しない空間でロボット31の姿勢の指令値を再度生成するよう追加要件を生成し、要件受付部20へとフィードバックすることで、仮想校正評価部22によりキャリブレーションのパラメータを生成するアルゴリズムを変更させ、再度生成された校正用パラメータ24によるキャリブレーションが実行される。以上の処理によって、システム要件を満たす撮像装置の構築が完了する。
【0101】
以上の撮像システム構築装置2により、ロボット31、ターゲットマーカ32、撮像装置33を含む現実装置3とシミュレータを活用し、ピッキング作業の成功が保証できる撮像装置33の選定・配置とキャリブレーション時のロボット31の姿勢群に関するパラメータを自動で策定し、現実装置によるキャリブレーションの評価から、撮像システムを高度化するための追加要件をシミュレータにフィードバックすることで、キャリブレーションを自動的に再度実行する、もしくは撮像方法を修正する指示を作業者に提示することを可能とし、最適な撮像システムの構築を容易にできる。
【0102】
さらに、要件入力装置4から、作業内容やワークの種類などの顧客要件を入力することで、撮像システムに必要な計測精度、キャリブレーション精度、コスト、ロボット31の動作範囲や撮像装置33の取り付け可能な空間を含むシステム要件が推定できる。
【0103】
さらに、現実装置計画部21では、現実装置の3次元情報や性能の情報を有するシミュレータにより、入力されたシステム要件を満たす現実装置の仕様と配置の決定に要する工数を低減できる。
【0104】
さらに、仮想校正評価部22により、現実装置計画部21で決定した現実装置の仕様と配置に基づきシミュレータ上に仮想装置を生成できる。また、キャリブレーション時のロボット31の姿勢群の指令値を、シミュレータ上の指令値生成アルゴリズムに基づき生成し、仮想装置によるキャリブレーションを実施し、キャリブレーション結果によるロボット・センサ間の相対的な位置と姿勢の推定パラメータを、仮想装置生成時の真値と比較することでキャリブレーションの精度を確認することができる。
【0105】
以上の現実装置計画部21と仮想校正評価部22とを含むシミュレータにより、ピッキング作業の成功を保証できる現実装置の仕様と配置、およびキャリブレーション用のロボット31の姿勢群の指令値の決定とを含む撮像システムの構築に要する工数を削減できる。
【0106】
さらに、校正評価部28では、現実装置によりキャリブレーションを実施したときの推定精度を評価できる。
【0107】
なお、本来、シミュレータに基づき構築した撮像システムによりシステム要件を満たすことが望ましいが、シミュレータと現実の差異により、キャリブレーション精度が低下する恐れがある。そこで、要件フィードバック部29では、現実装置3によるキャリブレーション評価がシステム要件を満たすか判定し、システム要件を満たさない場合は、その原因を推定する機能を有する。また、原因がキャリブレーションの姿勢群の指令値である場合、シミュレータに、キャリブレーションの姿勢群の指令値生成のアルゴリズムを切り替える、もしくは追加のロボット31の姿勢の指令値を生成する追加要件を出力することで、再度キャリブレーションを実行させることを可能とする。また、現実装置が原因である場合、シミュレータに撮像装置33の仕様や配置の変更を追加要件として出力しシミュレータ上で表示することで、ユーザが現実装置の故障、配置の不備などを点検することを可能とする。また、顧客先にて、構築した撮像システムを使用したピッキング作業の実施中に作業が失敗したとき、キャリブレーションを実施する必要があるか判定し、必要があれば再度実施するよう追加要件を出力することで、再度キャリブレーションを実行する機能を有する。
【0108】
以上で説明したように、本実施例の撮像システム構築装置により、顧客要件を満たす撮像システムの構築に要する工数を低減できる。
【0109】
(変形例1)
図16のように、ロボット31のアーム31hに撮像装置33を取り付けし、周辺に設置したターゲットマーカを現実装置として、撮像システムを構築してもよい。また、現実装置計画部21に、撮像装置取り付け方式選定部を追加して、撮像装置33をロボット上に設置するか、周辺に設置するか選択するようにしてもよい。
【符号の説明】
【0110】
1:制御装置
2:撮像システム構築装置
2A:撮像システム計画ユニット
20:要件受付部
21:現実装置計画部
22:仮想校正評価部
23:校正用パラメータ生成部
24:校正用パラメータ
2B:撮像システム評価ユニット
25:校正データ取得部
26:校正データ
27:校正実行部
28:校正評価部
29:要件フィードバック部
3:現実装置
31 ロボットアーム
32 ターゲットマーカ
33 撮像装置
4:要件入力装置