(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024127407
(43)【公開日】2024-09-20
(54)【発明の名称】カメラ装置、システム、及びプログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20240912BHJP
H04N 23/61 20230101ALI20240912BHJP
【FI】
B25J13/08 A
H04N23/61
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023036547
(22)【出願日】2023-03-09
(71)【出願人】
【識別番号】320008672
【氏名又は名称】i-PRO株式会社
(74)【代理人】
【識別番号】110000442
【氏名又は名称】弁理士法人武和国際特許事務所
(72)【発明者】
【氏名】武藤 亮介
(72)【発明者】
【氏名】畑瀬 雄一
【テーマコード(参考)】
3C707
5C122
【Fターム(参考)】
3C707BS10
3C707KS03
3C707KT01
3C707KT05
3C707LW12
3C707NS02
5C122DA27
5C122EA68
5C122FH11
5C122FH14
5C122HA46
5C122HA48
5C122HB01
(57)【要約】
【課題】作業機械のスループットの低下を抑制しつつ、作業機械を目標位置に到達させるための情報を提供可能なカメラ装置を提供する。
【解決手段】カメラ装置は、作業機械の目標位置を含む撮像領域を撮像する撮像部と、撮像部に撮像させた画像に基づいて、目標位置を特定する制御部とを備える。制御部は、作業機械が移動開始位置から初期目標位置に移動する過程の複数の撮像位置それぞれにおいて、撮像部に撮像領域を撮像させる撮像処理と、撮像領域の画像から目標位置を特定する学習モデルに撮像処理で撮像した画像を入力して、目標位置を示す目標座標及び目標座標の確からしさを表す評価値を出力する出力処理とを実行する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
作業機械の目標位置を含む撮像領域を撮像する撮像部と、
前記撮像部に撮像させた画像に基づいて、前記目標位置を特定する制御部とを備え、
前記制御部は、前記作業機械が移動開始位置から初期目標位置に移動する過程の複数の撮像位置それぞれにおいて、
前記撮像部に前記撮像領域を撮像させる撮像処理と、
前記撮像領域の画像から前記目標位置を特定する学習モデルに前記撮像処理で撮像した画像を入力して、前記目標位置を示す目標座標及び前記目標座標の確からしさを表す評価値を出力する出力処理とを実行する、カメラ装置。
【請求項2】
前記制御部は、複数の前記撮像位置それぞれに対応付けられた前記学習モデルを用いて、前記出力処理を実行する、請求項1に記載のカメラ装置。
【請求項3】
前記制御部は、前回の前記出力処理で出力した前記評価値が閾値未満である場合に、前回の前記撮像処理の撮像条件とは異なる撮像条件で、今回の前記撮像処理を実行する、請求項1に記載のカメラ装置。
【請求項4】
前記制御部は、前記撮像処理で用いた前記撮像条件に対応付けられた前記学習モデルを用いて、前記出力処理を実行する、請求項3に記載のカメラ装置。
【請求項5】
請求項1に記載のカメラ装置と、
前記カメラ装置から取得した複数セットの前記目標座標及び前記評価値に基づいて、前記作業機械を前記目標位置に移動させる制御装置とを備える、システム。
【請求項6】
前記制御装置は、
複数の前記評価値のうちの最大の前記評価値を抽出する抽出処理と、
前記抽出処理で抽出した前記評価値が閾値以上か否かを判定する判定処理と、
前記判定処理で前記評価値が前記閾値以上だと判定した場合に、当該評価値に対応付けられた前記目標座標への移動を前記作業機械に指示する移動指示処理とを実行する、請求項5に記載のシステム。
【請求項7】
作業機械の目標位置を含む撮像領域を撮像する撮像部を備えるカメラ装置のプログラムであって、
前記作業機械が移動開始位置から初期目標位置に移動する過程の複数の撮像位置それぞれにおいて、
前記撮像部に前記撮像領域を撮像させる撮像処理と、
前記撮像領域の画像から前記目標位置を特定する学習モデルに前記撮像処理で撮像した画像を入力して、前記目標位置を示す目標座標及び前記目標座標の確からしさを表す評価値を出力する出力処理とを前記カメラ装置に実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カメラ装置、システム、及びプログラムに関する。
【背景技術】
【0002】
従来より、工場などで稼働するロボットアームを動作させる技術として、カメラで撮像した画像に基づいて目標位置を特定し、特定した目標位置に向けてロボットアームを移動させる方法が提案されている。例えば特許文献1には、三次元位置測定によって複数の基準マークの位置を特定する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1の三次元位置測定は、ロボットアームを実際に移動させる前のキャリブレーションとして実行されるので、ロボットアームが移動を開始するまでにタイムラグが発生する。また、作業員が手作業でセットした部品をロボットアームにピックアップさせるような作業において、部品が予め定められた位置からズレてセットされると、ロボットアームが部品の位置に到達できないという課題がある。
【0005】
本発明は、上記した実情に鑑みてなされたものであり、その目的は、作業機械のスループットの低下を抑制しつつ、作業機械を目標位置に到達させるための情報を提供可能なカメラ装置を提供することにある。
【課題を解決するための手段】
【0006】
上記の課題を解決するため、本発明に係るカメラ装置は、作業機械の目標位置を含む撮像領域を撮像する撮像部と、前記撮像部に撮像させた画像に基づいて、前記目標位置を特定する制御部とを備え、前記制御部は、前記作業機械が移動開始位置から初期目標位置に移動する過程の複数の撮像位置それぞれにおいて、前記撮像部に前記撮像領域を撮像させる撮像処理と、前記撮像領域の画像から前記目標位置を特定する学習モデルに前記撮像処理で撮像した画像を入力して、前記目標位置を示す目標座標及び前記目標座標の確からしさを表す評価値を出力する出力処理とを実行する。
【発明の効果】
【0007】
本発明によれば、作業機械のスループットの低下を抑制しつつ、作業機械を目標位置に到達させるための情報を提供可能なカメラ装置を得ることができる。なお、上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0008】
【
図1】ロボット制御システムのユースケースを示す図である。
【
図2】ロボット制御システムのシステム構成例を示す図である。
【
図3】ロボットアームの移動経路を示す平面図である。
【
図4】第1実施形態に係る作業機械制御処理のフローチャートである。
【
図5】第1実施形態に係る撮像&算出処理のフローチャートである。
【
図6】第1実施形態に係る撮像テーブルのデータ例を示す図である。
【
図7】第2実施形態に係る学習モデルの一覧を示す図である。
【
図8】第2実施形態に係る撮像&算出処理のフローチャートである。
【
図9】第3実施形態に係る学習モデルの一覧を示す図である。
【
図10】第3実施形態に係る撮像&算出処理のフローチャートである。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら発明の実施形態を説明するが、本実施形態は、汎用性の高いカメラ装置を実現することで、国連の提唱する持続可能な開発目標(SDGs:Sustainable Development Goals)の「9.産業と技術革新の基盤をつくろう」に貢献する。
【0010】
図1は、ロボット制御システム1のユースケースを示す図である。
図2は、ロボット制御システム1のシステム構成例を示す図である。
図1及び
図2に示すように、ロボット制御システム1(システム)は、カメラ装置10と、ロボットビジョンコントローラ30(制御装置)とを少なくとも含む。また、ロボット制御システム1は、制御対象のロボット50(作業機械)をさらに含んでもよい。カメラ装置10とロボットビジョンコントローラ30との間、ロボットビジョンコントローラ30とロボット50との間は、それぞれデータ或いは信号の入出力が互いに可能となるように接続されている。
【0011】
図1に示すユースケースにおいて、ロボット制御システム1は、例えば工場等の生産施設内に配置されている。ロボット制御システム1は、生産施設内に配備されているベルトコンベアCB上を移送されるワークWの規定位置に、トレーT上の部品P(例えば、ボルト)を実装するロボット50を制御する。
【0012】
なお、本実施の形態に係るロボット制御システム1のユースケースは上述した部品搭載に限定されず、ワークへのラベル貼付、ワークへのビス打ち、部品組立、部品加工、溶接、塗装、ボンディング等に使用されてもよい。また、ロボット制御システム1は、物流ラインの作業工程(段ボール搬送、物の仕分けなど)、食品工場の作業工程(惣菜盛り付けなど)、収穫ロボットの作業工程(摘果など)、医療用や実験用ロボットの作業工程(培養、合成など)に適用することもできる。なお、本実施の形態に係るロボット50は、人と協働して作業を実行する人協働ロボットとして用いられてもよい。
図1のユースケースでは、作業員によって所定位置に設置されたトレーTから、ロボット50が部品Pをピックアップして、ワークWに実装することを想定する。
【0013】
カメラ装置10は、例えば、ロボット50のロボットアームARの先端部に固定されている。ロボットアームの先端部とは、例えばロボットハンド若しくはエンドエフェクタの近傍である。そして、カメラ装置10は、ロボットアームARと共に移動する。但し、カメラ装置10は、ロボットアームARに固定されることに限定されず、天井や壁に固定されていてもよいし、天井や壁に沿って移動可能に構成されていてもよい。
【0014】
カメラ装置10として2Dカメラを用いる場合、ロボット制御システム1は、ベルトコンベアで流れるもの(高さ一定)のピックアップ作業などに好適である。また、カメラ装置10として、3Dカメラを用いる場合、物流拠点などにおける様々な高さの物体の仕分け作業などに好適である。また、カメラ装置10として、赤外カメラを用いる場合、医療用ロボットや実験用ロボットなど、可視光では見えない細胞などを扱う作業に好適である。
【0015】
カメラ装置10は、ロボットアームARの目標位置を含む撮像領域を撮像する。本実施形態では、トレーT上の部品P(対象物)の位置を、ロボットアームARの目標位置として説明する。但し、ロボットアームARの目標位置は、これに限定されず、部品Pを実装するワークW上の位置であってもよい。また、カメラ装置10は、AI(Artificial Intelligence)を用いたパターンマッチング処理により、撮像した画像に含まれる目標位置の座標(以下、「目標座標」と表記する。)、及び目標座標の確からしさを表す評価値のセットを出力する。そして、カメラ装置10は、出力した目標座標及び評価値のセットを、ロボットビジョンコントローラ30に送信する。
【0016】
ロボットビジョンコントローラ30は、カメラ装置10から取得した目標座標及び評価値のセットに基づいて、ロボットアームARの目標位置を設定する。そして、ロボットビジョンコントローラ30は、設定した目標位置にロボットアームARが到達するように、ロボット50の動きを指示する。ロボットビジョンコントローラ30は、例えば、プログラムを記憶するメモリと、プログラムをメモリから読み出して実行するCPU(プロセッサ)とを備える。ロボット50は、ロボットビジョンコントローラ30からの指示に基づいて、ロボットアームARを目標位置に到達させる。
【0017】
図2に示すように、カメラ装置10は、撮像部11と、SoC12とを備える。
【0018】
撮像部11は、光学レンズ111と、イメージセンサ112とを一体化したカメラユニットである。光学レンズ111は、カメラ装置10の外部の光を集光して、イメージセンサ112に入射させる。イメージセンサ112は、光学レンズ111が集光した光を光電変換して、画像データをメモリ121に出力する。イメージセンサ112は、例えば、CMOS(Complementary Metal-Oxide-Semiconductor)やCCD(Charge-Coupled Device)である。
【0019】
SoC12(制御部)は、集積回路により構成される1つのチップ上に各種の電子部品が集積された集積回路製品である。SoC12は、メモリ121と、CPU122と、ISP123と、AI処理部124と、外部インタフェース125とを含む。
図2では、インタフェースを便宜的に「I/F」と図示している。
【0020】
メモリ121は、RAM(Random Access Memory)とROM(Read Only Memory)とを少なくとも含む。メモリ121は、カメラ装置10の動作の実行に必要なプログラム及び制御用データ、更には、カメラ装置10の各部の動作中に生成されたデータもしくは情報を一時的に保持する。RAMは、例えば、カメラ装置10の各部の動作時に使用されるワークメモリである。ROMは、例えば、カメラ装置10の各部を制御するためのプログラム及び制御用データを予め記憶して保持する。
【0021】
CPU122は、カメラ装置10の全体的な動作を制御するプロセッサである。CPU122は、カメラ装置10の各部の動作を統括するための制御処理、カメラ装置10の各部との間のデータの入出力処理、データの演算処理及びデータの記憶処理を行う。CPU122は、メモリ121に記憶されたプログラム及び制御用データに従って動作する。CPU122は、動作時にメモリ121を使用し、CPU122が生成又は取得したデータをメモリ121に転送して一時的に保存する。
【0022】
ISP(Image Signal Processor)123は、カメラ装置10内で行われる各種の画像処理を実行するプロセッサである。ISP123は、メモリ121から画像データを読み出し、読み出した画像データを用いて各種の画像処理を行う。ISP123は、動作時にメモリ121を使用し、ISP123が生成又は取得したデータもしくは情報をメモリ121に転送して一時的に保存する。
【0023】
AI処理部124は、例えばGPU(Graphics Processing Unit)及びメモリを用いて構成されている。なお、AI処理部124は、GPUに代えて、またはGPUに加えて、DSP(Digital Signal Processor)を備えていてもよい。
【0024】
外部インタフェース125は、ロボットビジョンコントローラ30との間で各種データの送受信を行うためのインタフェースである。すなわち、外部インタフェース125は、CPU122から取得したデータをロボットビジョンコントローラ30に送信し、ロボットビジョンコントローラ30から取得したデータをCPU122に送信する。
【0025】
図3は、ロボットアームARの移動経路を示す平面図である。本実施形態では、移動開始位置に位置するロボットアームARのエンドエフェクタに、予め定められた設置位置に設置されたトレーT上の部品Pをピックアップさせる処理を想定する。ここで、トレーTは作業員によって設置されるので、設置位置からズレて設置されている可能性がある。そのため、ロボットビジョンコントローラ30に、部品Pの厳密な位置を予め設定しておくのは難しい。一方、カメラ装置10でトレーTを撮像して部品Pの厳密な位置を特定してからロボットアームARの移動を開始すると、スループットが低下する。
【0026】
そこで、
図3に示すように、ロボットビジョンコントローラ30は、部品Pの厳密な位置を特定する前に、ロボットアームARのエンドエフェクタを、移動開始位置から初期目標位置に向けて移動を開始させる。移動開始位置は、例えば、ロボットアームARの原点位置(基準位置)である。初期目標位置は、部品Pの位置(修正目標位置)の近傍の任意の位置であって、例えば、設置位置に設置されたトレーTの中心位置である。本明細書では、初期目標位置及び修正目標位置を総称して、「目標位置」と表記することがある。
【0027】
次に、ロボットビジョンコントローラ30は、複数の撮像位置それぞれにおいて、部品Pの位置を示す目標座標及び評価値のセットを、カメラ装置10から取得する。そして、ロボットビジョンコントローラ30は、カメラ装置10から取得した複数セットの目標座標及び評価値に基づいて部品Pの位置(修正目標位置)を設定し、設定した修正目標位置に向けてロボットアームARを移動させる。すなわち、ロボットビジョンコントローラ30は、ロボットアームARが初期目標位置に移動している過程で修正目標位置を設定し、ロボットアームARの行先を修正目標位置に変更する。
【0028】
撮像位置(
図3の第1位置~第4位置)とは、移動開始位置と初期目標位置との間に設定された位置である。但し、撮像位置は、移動開始位置と初期目標位置とを結んだ直線(初期経路)上の位置に限定されず、現在位置と修正目標位置とを結んだ直線(修正経路1、2)上の位置でもよい。ロボットビジョンコントローラ30は、例えば、ロボットアームARが移動を開始してからの経過時間、またはロボットアームARのアクチュエータから出力されたエンコーダ値に基づいて、カメラ装置10が撮像位置に到達したことを検知する。また、撮像位置の数は、2以上であれば具体的な数は限定されない。
【0029】
また、ロボットビジョンコントローラ30には、例えば、移動開始位置を原点とするx-y座標系が定義されている。一方、カメラ装置10の撮像領域には、例えば、左上隅を原点とするu-v座標系が定義されている。そして、カメラ装置10から取得した目標座標は、u-v座標系である。そこで、ロボットビジョンコントローラ30は、カメラ装置10から取得した目標座標を、u-v座標系からx-y座標系に変換して、修正目標位置を決定する。
【0030】
[第1実施形態に係る作業機械制御処理]
図4~
図6を参照して、第1実施形態に係る作業機械制御処理を説明する。
図4は、第1実施形態に係る作業機械制御処理のフローチャートである。
図5は、第1実施形態に係る撮像&算出処理のフローチャートである。
図6は、第1実施形態に係る撮像テーブルのデータ例を示す図である。
【0031】
まず、ロボットビジョンコントローラ30は、ロボットアームARの初期目標位置への移動をロボット50に指示する(S11)。また、ロボットビジョンコントローラ30は、変数nを初期化(=1)する(S12)。変数nは、撮像&算出処理を実行する撮像位置を示す値を保持する変数である。
【0032】
ロボット50は、ロボットビジョンコントローラ30からの指示に従って、ロボットアームARの初期目標位置への移動を開始する(S13)。そして、ロボット50は、ロボットアームARの現在位置を示す位置情報をロボットビジョンコントローラ30に送信する処理(S14)を、所定の時間間隔で繰り返し実行する。
【0033】
ロボットビジョンコントローラ30は、ロボット50から受信した位置情報に基づいて、ロボットアームARのエンドエフェクタ(換言すれば、カメラ装置10)が第n位置に到達したか否かを判定する(S15)。そして、ロボットビジョンコントローラ30は、カメラ装置10が第n位置に到達したと判定した場合に(S15:Yes)、
図5に示す撮像&算出処理を実行する(S16)。撮像&算出処理は、第n位置のカメラ装置10に撮像領域を撮像させ、撮像した画像から目標座標及び評価値を出力して、撮像テーブルに撮像レコードを追加する処理である。撮像レコードの詳細については後述する。
【0034】
ロボットビジョンコントローラ30は、撮像条件及び汎用モデルを指定した撮像指示をカメラ装置10に送信する(S31)。撮像条件は、カメラ装置10が撮像領域を撮像する際の条件(例えば、照明の有無、露光時間、ゲインなど)を指す。汎用モデルとは、カメラ装置10が撮像した画像から目標座標及び評価値を算出するための学習モデル(AIモデル)であって、複数の撮像位置で共通して用いられる学習モデルである。汎用モデルは、AI処理部124に複数の教師データを入力することによって、予め生成されたものである。汎用モデルを生成するための教師データは、複数の撮像位置それぞれで撮像された画像及び目標座標である。
【0035】
CPU122は、ロボットビジョンコントローラ30から指定された撮像条件で撮像部11に撮像領域を撮像させ、生成された画像データをメモリ121に保存する(S32)。次に、AI処理部124は、ステップS32でメモリ121に保存された画像データを、メモリ121に記憶された汎用モデルに入力して、目標座標及び評価値を出力する(S33)。ステップS32の処理は撮像処理の一例であり、ステップS33の処理は出力処理の一例である。そして、CPU122は、AI処理部124から出力された目標座標及び評価値のセットを、ロボットビジョンコントローラ30に送信する(S34)。
【0036】
目標座標は、撮像部11に撮像させた画像内における目標位置の座標(u-v座標系)である。評価値は、目標座標の確からしさを示す値である。すなわち、評価値の値が大きいほど目標座標の信頼性が高く、評価値の値が小さいほど目標座標の信頼性が低いことを示す。例えば、撮像部11に撮像させた画像に部品Pの少なくとも一部が映っていない、撮像部11に撮像させた画像が暗い、または撮像部11に撮像させた画像が白飛びしている等、画像に含まれる部品Pが認識しづらくなるような条件下において撮像領域が撮像された場合に、評価値が低くなる傾向がある。
【0037】
次に、ロボットビジョンコントローラ30は、カメラ装置10から受信した目標座標及び評価値を含む撮像レコードを、
図6に示す撮像テーブルに追加する(S35)。撮像テーブルは、複数の撮像レコードを保持するデータテーブルである。撮像テーブルには、作業機械制御処理の開始時点で撮像レコードが登録されておらず、繰り返し実行されるステップS16(より詳細には、ステップS35)で撮像レコードが1つずつ追加される。撮像レコードとは、ステップS34でカメラ装置10から取得した目標座標及び評価値を少なくとも含む情報である。また、撮像レコードは、
図6に示すように、変数nと、ステップS31で指定した撮像条件とを、さらに含んでもよい。
【0038】
図4に戻って、ロボットビジョンコントローラ30は、最大の評価値を含む撮像レコードを、撮像テーブルから抽出する(S17)。変数n=1の段階では撮像レコードは1つしか登録されていないので、変数n=1の撮像レコードが抽出される。次に、ロボットビジョンコントローラ30は、抽出した撮像レコードに含まれる評価値(ここでは、変数n=1のときの評価値:55)が、予め定められた閾値以上か否かを判定する(S18)。閾値は、カメラ装置10から出力された目標座標に向けてロボットアームARの移動経路を変更する価値があると評価できる値(例えば、60)に設定される。ステップS17の処理は抽出処理の一例であり、ステップS18の処理は判定処理の一例である。
【0039】
図6の例において、ロボットビジョンコントローラ30は、撮像レコードに含まれる最大の評価値(ここでは、変数n=1のときの評価値:55)が閾値未満だと判定した場合に(S18:No)、ステップS19~S21の処理をスキップして、全ての撮像位置を通過したか否かを判定する(S22)。そして、ロボットビジョンコントローラ30は、全ての撮像位置を通過していないと判定した場合に(S22:No)、変数nに1を加算して(S23)、第2位置に対するステップS14以降の処理を実行する。
【0040】
次に、ロボットビジョンコントローラ30は、カメラ装置10が第2位置に到達したタイミングで撮像&算出処理を実行し(S15:Yes→S16)、変数n=2の撮像レコードを抽出する(S17)。次に、ロボットビジョンコントローラ30は、抽出した撮像レコードの評価値(ここでは、変数n=2のときの評価値:75)が閾値以上だと判定して(S18:Yes)、当該評価値に対応付けられた目標座標(u2,v2)を、新たな目標位置(以下、「修正目標位置」と表記する。)に設定する(S19)。より詳細には、ロボットビジョンコントローラ30は、目標座標(u2,v2)をu-v座標系からx-y座標系に変換して、変換後の座標で示される位置を修正目標位置に設定する。
【0041】
次に、ロボットビジョンコントローラ30は、新たに設定した修正目標位置への移動をロボット50に指示する(S20)。ステップS20の処理は移動指示処理の一例である。ロボット50は、
図3に示すように、ロボットビジョンコントローラ30から指示された修正目標位置にエンドエフェクタが到達するように、ロボットアームARの移動経路を初期経路から修正経路1に変更する(S21)。また、ロボットビジョンコントローラ30は、全ての撮像位置を通過していないと判定して(S22:No)、変数nに1を加算して(S23)、第3位置に対するステップS14以降の処理を実行する。
【0042】
次に、ロボットビジョンコントローラ30は、カメラ装置10が第3位置に到達したタイミングで撮像&算出処理を実行し(S15:Yes→S16)、変数n=3の撮像レコードを抽出する(S17)。次に、ロボットビジョンコントローラ30は、抽出した撮像レコードの評価値(ここでは、変数n=3のときの評価値:90)が閾値以上だと判定して(S18:Yes)、当該評価値に対応付けられた目標座標(u3,v3)を、新たな目標位置(以下、「修正目標位置」と表記する。)に設定する(S19)。
【0043】
次に、ロボットビジョンコントローラ30は、新たに設定した修正目標位置への移動をロボット50に指示する(S20)。ロボット50は、
図3に示すように、ロボットビジョンコントローラ30から指示された修正目標位置にエンドエフェクタが到達するように、ロボットアームARの移動経路を修正経路1から修正経路2に変更する(S21)。また、ロボットビジョンコントローラ30は、全ての撮像位置を通過していないと判定して(S22:No)、変数nに1を加算して(S23)、第4位置に対するステップS14以降の処理を実行する。
【0044】
次に、ロボットビジョンコントローラ30は、カメラ装置10が第4位置に到達したタイミングで撮像&算出処理を実行する(S15:Yes→S16)。しかしながら、
図6の例では、最大の評価値を含むのは変数n=3の撮像レコードなので、目標位置は修正されない。そして、ロボットビジョンコントローラ30は、全ての撮像位置を通過したと判定して(S22:Yes)、作業機械制御処理を終了する。また、ロボット50は、最新の修正目標位置にエンドエフェクタが到達したタイミングで、ロボットアームARを停止して、エンドエフェクタに部品Pをピックアップさせる。
【0045】
[第1実施形態の作用効果]
第1実施形態によれば、複数の撮像位置で撮像&出力処理(S16)を実行する。このように、撮像位置及びタイミングをずらして撮像&出力処理を実行することによって、評価値の高い目標座標が得られる可能性が高まる。これにより、ロボットアームARを目標位置に到達させるのに有用な情報(複数の撮像レコード)を、ロボットビジョンコントローラ30に提供することができる。その結果、ロボットビジョンコントローラ30による精度の高いロボットアームARの制御が実現する。
【0046】
また、ロボットアームARが移動開始位置から目標位置に向けて移動する過程で、ステップS14~S23の処理を繰り返し実行することによって、目標位置を確定させてからロボットアームARの移動を開始するのと比較して、ロボット制御システム1のスループットの低下を抑制することができる。
【0047】
さらに、第1実施形態によれば、変数n=2におけるステップS19~S21で目標位置を修正した後に、さらに変数n=3、4におけるステップS14~S23の処理を実行する。これにより、さらに信頼性の高い目標座標(u3,v3)が後で見つかった場合に、目標位置を再修正することができる。但し、評価値が閾値以上になって修正目標位置を設定したら(S18:Yes→S19)、他の撮像位置が残っていても作業機械制御処理を終了してもよい。一方、全ての撮像位置を通過しても修正目標位置を設定できない場合は、エンドエフェクタが部品Pの位置に到達できないと判断して、作業機械制御処理を異常終了してもよい。
【0048】
[第2実施形態に係る作業機械制御処理]
図7及び
図8を参照して、第2実施形態に係る作業機械制御処理を説明する。
図7は、第2実施形態に係る学習モデルの一覧を示す図である。
図8は、第2実施形態に係る撮像&算出処理のフローチャートである。なお、第1実施形態との共通点の詳細な説明は省略し、相違点を中心に説明する。
【0049】
まず、
図7に示すように、メモリ121には、複数の撮像位置それぞれに対応付けられた学習モデルが記憶されている。より詳細には、メモリ121は、複数の学習モデルを、撮像位置を表す変数nの値に対応付けて記憶している。第1モデルは、第1位置で撮像された画像及び目標座標を含む教師データを、予めAI処理部124に入力して得られたものである。同様に、第2モデル、第3モデル、及び第4モデルは、第2位置、第3位置、及び第4位置で撮像された画像及び目標座標を含む教師データを、予めAI処理部124に入力して得られたものである。
【0050】
また、第2実施形態に係る作業機械制御処理は、第1実施形態(
図4)と共通する。一方、第2実施形態に係る撮像&算出処理(
図8)は、ステップS31A、S33Aの処理が第1実施形態(
図5)と相違する。
【0051】
まず、第2実施形態に係るロボットビジョンコントローラ30は、撮像条件及び第nモデルを指定した撮像指示をカメラ装置10に送信する(S31A)。すなわち、第1位置における撮像&算出処理では第1モデルが指定され、第2位置における撮像&算出処理では第2モデルが指定され、第3位置における撮像&算出処理では第3モデルが指定され、第4位置における撮像&算出処理では第4モデルが指定される。
【0052】
また、第2実施形態に係るAI処理部124は、ステップS32でメモリ121に保存された画像データを、メモリ121に記憶された第nモデルに入力して、目標座標及び評価値を出力する(S33A)。すなわち、SoC12は、複数の撮像位置それぞれに対応付けられた学習モデルを用いて、出力処理を実行する。
【0053】
[第2実施形態の作用効果]
第2実施形態によれば、複数の撮像位置それぞれに最適化された学習モデルを用いて、目標座標及び評価値を出力することによって、目標位置をさらに高精度に特定することができる。その結果、さらに精度の高いロボットアームARの制御が実現する。
【0054】
[第3実施形態に係る作業機械制御処理]
図9及び
図10を参照して、第3実施形態に係る作業機械制御処理を説明する。
図9は、第3実施形態に係る学習モデルの一覧を示す図である。
図10は、第3実施形態に係る撮像&算出処理のフローチャートである。なお、第1実施形態との共通点の詳細な説明は省略し、相違点を中心に説明する。
【0055】
まず、
図9に示すように、メモリ121には、複数の撮像条件それぞれに対応付けられた学習モデルが記憶されている。より詳細には、メモリ121は、複数の学習モデルを、様々な撮像条件(例えば、照明の有無、照明の波長、露光時間、ゲイン)の組み合わせに対応付けて記憶している。すなわち、第3実施形態に係る学習モデルは、対応する撮像条件で撮像された画像及び目標座標を含む教師データを、予めAI処理部124に入力して得られたものである。
【0056】
照明の有無とは、撮像部11による撮像の際にフラッシュを用いるか否かを示す。照明装置は、カメラ装置10に搭載されていてもよいし、通信ケーブルを用いてカメラ装置10に接続されていてもよい。照明の波長とは、照射する光の波長のことであり、白色照明だけでなく、赤や緑といった単波長でもよいし、非可視光である赤外波長でもよい。露光時間とは、画像を生成するためにイメージセンサ112が外光を受光している時間である。ゲインとは、イメージセンサ112が光電変換した電気信号の増幅率である。但し、撮像条件の具体例は、前述の例に限定されない。
【0057】
また、第3実施形態に係る作業機械制御処理は、第1実施形態(
図4)と共通する。一方、第3実施形態に係る撮像&算出処理(
図10)は、ステップS41-S42が追加されると共に、ステップS31A、S33Aの処理が第1実施形態(
図5)と相違する。
【0058】
まず、第3実施形態に係るロボットビジョンコントローラ30は、前回の評価値が閾値未満か否かを判定する(S41)。ステップS41の閾値は、現在の撮像条件が目標座標を適切に特定するのに適していると評価できる値に設定される。ステップS41で用いる閾値は、
図4のステップS18と同一でもよいし、異なっていてもよい。
【0059】
次に、ロボットビジョンコントローラ30は、前回の評価値が閾値未満だと判定した場合に(S41:Yes)、今回(n回目)の撮像処理の撮像条件を、前回(n-1回目)の撮像処理で用いた撮像条件から変更する(S42)。一方、ロボットビジョンコントローラ30は、前回の評価値が閾値以上だと判定した場合に(S41:No)、今回(n回目)の撮像処理の撮像条件を、前回(n-1回目)の撮像処理で用いた撮像条件と同一にする。そして、ロボットビジョンコントローラ30は、撮像条件及び撮像条件に対応する学習モデルを指定した撮像指示をカメラ装置10に送信する(S31B)。
【0060】
なお、ステップS42では、複数の撮像条件(照明の有無、露光時間、ゲイン)のうちの1つが変更されてもよいし、複数が変更されてもよい。また、ロボットビジョンコントローラ30は、ステップS42を実行する度に、変更する撮像条件を変えてもよい。さらに、変数n=1のときは、ステップS41-S42の処理が省略されて、デフォルトの撮像条件が設定される。すなわち、ステップS41-S42の処理は、n≧2のときに実行される。
【0061】
また、CPU122は、ロボットビジョンコントローラ30から指定された撮像条件で撮像部11に撮像領域を撮像させ、生成された画像データをメモリ121に保存する(S32B)。すなわち、SoC12は、前回の出力処理で出力した評価値が閾値未満の場合に、前回の撮像処理の撮像条件とは異なる撮像条件で、今回の撮像処理を実行する。一方、SoC12は、前回の出力処理で出力した評価値が閾値以上の場合に、前回の撮像処理の撮像条件と同一の撮像条件で、今回の撮像処理を実行する。
【0062】
さらに、第3実施形態に係るAI処理部124は、ステップS32でメモリ121に保存された画像データを、ロボットビジョンコントローラ30から指定された学習モデルに入力して、目標座標及び評価値を出力する(S33B)。すなわち、SoC12は、今回の撮像処理で用いた撮像条件に対応付けられた学習モデルを用いて、今回の出力処理を実行する。
【0063】
[第3実施形態の作用効果]
第3実施形態によれば、前回の出力処理で出力した評価値が閾値未満の場合に、撮像条件を変更して今回の撮像処理を実行する。これにより、繰り返し実行する撮像処理において、目標位置を特定するのに適した画像を撮像できる可能性が高まる。
【0064】
また、第3実施形態によれば、複数の撮像条件それぞれに最適化された学習モデルを用いて、目標座標及び評価値を出力することによって、目標位置をさらに高精度に特定することができる。その結果、さらに精度の高いロボットアームARの制御が実現する。
【0065】
[その他の実施形態]
なお、第1~第3実施形態は、本発明の趣旨を逸脱しない範囲において、任意の組み合わせで組み合わせることができる。
【0066】
また、SoC12及びロボットビジョンコントローラ30の役割分担は、前述の例に限定されない。すなわち、SoC12の処理の一部または全部は、ロボットビジョンコントローラ30によって実行されてもよい。また、ロボットビジョンコントローラ30の処理の一部または全部は、SoC12によって実行されてもよい。
【0067】
さらに、プログラムによって実現される各手段の一部または全部は、集積回路等のハードウェアで実現することもできる。さらに、プログラムは、コンピュータによって読み出し可能な非一過性の記録媒体に記録されて提供されてもよい。記録媒体とは、例えば、ハードディスク、SDカード、DVDの他、インターネット上のサーバ等を指す。
【0068】
以上、図面を参照しながら各種の実施の形態について説明したが、本開示はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例、修正例、置換例、付加例、削除例、均等例に想到し得ることは明らかであり、それらについても当然に本開示の技術的範囲に属するものと了解される。また、発明の趣旨を逸脱しない範囲において、上述した各種の実施の形態における各構成要素を任意に組み合わせてもよい。
【産業上の利用可能性】
【0069】
本開示は、作業機械のスループットの低下を抑制しつつ、作業機械を目標位置に到達させるための情報を提供可能なカメラ装置として有用である。
【符号の説明】
【0070】
1 ロボット制御システム
10 カメラ装置
11 撮像部
30 ロボットビジョンコントローラ
50 ロボット
111 光学レンズ
112 イメージセンサ
121 メモリ
122 CPU
124 AI処理部
125 外部インタフェース