IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2024-128550作業工程支援システム及び作業工程支援方法
<>
  • 特開-作業工程支援システム及び作業工程支援方法 図1
  • 特開-作業工程支援システム及び作業工程支援方法 図2
  • 特開-作業工程支援システム及び作業工程支援方法 図3
  • 特開-作業工程支援システム及び作業工程支援方法 図4
  • 特開-作業工程支援システム及び作業工程支援方法 図5
  • 特開-作業工程支援システム及び作業工程支援方法 図6
  • 特開-作業工程支援システム及び作業工程支援方法 図7
  • 特開-作業工程支援システム及び作業工程支援方法 図8
  • 特開-作業工程支援システム及び作業工程支援方法 図9
  • 特開-作業工程支援システム及び作業工程支援方法 図10
  • 特開-作業工程支援システム及び作業工程支援方法 図11
  • 特開-作業工程支援システム及び作業工程支援方法 図12
  • 特開-作業工程支援システム及び作業工程支援方法 図13
  • 特開-作業工程支援システム及び作業工程支援方法 図14
  • 特開-作業工程支援システム及び作業工程支援方法 図15
  • 特開-作業工程支援システム及び作業工程支援方法 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024128550
(43)【公開日】2024-09-24
(54)【発明の名称】作業工程支援システム及び作業工程支援方法
(51)【国際特許分類】
   B25J 13/08 20060101AFI20240913BHJP
   G06V 10/96 20220101ALI20240913BHJP
   G06F 9/50 20060101ALI20240913BHJP
【FI】
B25J13/08 A
G06V10/96
G06F9/50 150Z
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2023037564
(22)【出願日】2023-03-10
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】山科 和史
(72)【発明者】
【氏名】大村 柚介
【テーマコード(参考)】
3C707
5L096
【Fターム(参考)】
3C707AS01
3C707AS06
3C707BS09
3C707CS08
3C707DS01
3C707JU02
3C707JU12
3C707KS01
3C707KS10
3C707KS15
3C707KT02
3C707KT05
3C707KT06
3C707KT17
3C707KT18
3C707LV03
3C707LV14
3C707MT02
3C707WA12
3C707WA16
5L096AA06
5L096BA05
5L096CA02
5L096DA02
5L096EA05
5L096HA09
5L096JA11
5L096JA18
(57)【要約】
【課題】ロボットの制御効率を向上させることを課題とする。
【解決手段】ロボットの作業場所に関する情報である作業場所情報122、及び、作業対象物の情報である作業対象物情報123を取得する認識部111と、ロボットの作業工程が生成されると、作業工程と、作業場所情報122及び作業対象物情報123とを関連付ける関連定義部112と、関連定義部112による関連付けに基づき、ロボットの画像処理の構成を決定し、画像処理の演算量を算出する画像処理構成部113と、演算量と、ユーザが選択した優先事項に基づき、画像処理に関して、計算資源への割り当てを決定し、当該割り当ての結果を出力する処理最適化部114と、を備えることを特徴とする。
【選択図】図4
【特許請求の範囲】
【請求項1】
ロボットの作業場所に関する情報である作業場所情報、及び、作業対象物の情報である作業対象物情報を取得する認識部と、
前記ロボットの作業工程が生成されると、前記作業工程と、前記作業場所情報及び前記作業対象物情報とを関連付ける関連定義部と、
前記関連定義部による関連付けに基づき、前記ロボットの制御処理の構成を決定し、前記制御処理の演算量を算出する制御処理構成部と、
前記演算量と、ユーザが選択した優先事項に基づき、前記作業工程で行われる処理に関して、処理の計算資源への割り当てを決定し、当該割り当ての結果を出力する処理最適化部と、
を備えることを特徴とする作業工程支援システム。
【請求項2】
請求項1に記載の前記作業工程支援システムにおいて、
ユーザインターフェイスであるGUI画面が表示装置に表示され、
前記ユーザが前記GUI画面を操作することにより、前記ロボットが行う一連の動作が設定される
ことを特徴とする作業工程支援システム。
【請求項3】
請求項1に記載の前記作業工程支援システムにおいて、
前記認識部は、撮像装置で撮像された前記作業場所の画像を基に前記作業場所の明暗に関する情報と、前記作業場所の主色に関する情報と、を認識し、数値化し、当該数値化された結果を前記作業場所情報に格納する
ことを特徴とする作業工程支援システム。
【請求項4】
請求項1に記載の前記作業工程支援システムにおいて、
前記認識部は、前記作業対象物の色彩数値と、画像特徴量と、を認識し、前記色彩数値及び前記画像特徴量を前記作業対象物情報に格納する
ことを特徴とする作業工程支援システム。
【請求項5】
請求項1に記載の作業工程支援システムにおいて、前記ロボットを構成するコンポーネントの動作に関する情報と、前記作業工程の指示に利用する動作名と、を対応付けた動作情報を記憶部に保持する
ことを特徴とする作業工程支援システム。
【請求項6】
請求項2に記載の作業工程支援システムにおいて、
前記GUI画面において、前記作業工程を設定可能な作業工程編集領域が表示され、
前記作業工程編集領域に表示される動作単位設定領域において、前記ユーザによって前記作業工程を構成する動作単位が設定可能であり、
前記作業工程編集領域で、それぞれの前記動作単位について、前記ユーザによって前記ロボットが行う前記動作、前記動作を行う対象である作業対象物、及び、前記動作を行う場所である前記作業場所を設定するとともに、前記ロボットが行う動作の動作速度が設定可能であり、
前記作業工程編集領域で設定されている前記作業工程の繰り返し回数が前記ユーザによって設定可能である
ことを特徴とする作業工程支援システム。
【請求項7】
請求項1に記載の作業工程支援システムにおいて、
前記制御処理は、撮像装置から入力された画像を処理する画像処理を含み、
前記制御処理構成部は、
前記作業場所情報と、前記作業対象物情報に格納されている情報に基づいて、前記作業対象物及び前記作業場所を認識するために必要な画像処理アルゴリズムと、当該画像処理で用いられるパラメータと、を動作単位毎に制御処理構成情報に設定する
ことを特徴とする作業工程支援システム。
【請求項8】
請求項7に記載の作業工程支援システムにおいて、
前記制御処理構成部は、
前記作業場所情報に格納されている前記作業場所の明暗に関する情報に基づいて、前記パラメータのうち、ノイズ除去の強度を決定し、
前記作業対象物情報に格納されている前記作業対象物の対象色と、前記作業場所情報に格納されている前記作業場所の主色の色彩差に基づいて、前記パラメータのうち、コントラスト調整の強度及びエッジ強調の有無を決定し、
前記作業対象物情報に格納されている前記作業対象物の画像特徴量に基づいて画像認識アルゴリズムを選択し、
決定された前記ノイズ除去の強度、前記コントラスト調整の強度、前記エッジ強調の有無、選択された前記画像認識アルゴリズムを、前記動作単位毎に前記制御処理構成情報に格納する
ことを特徴とする作業工程支援システム。
【請求項9】
請求項7に記載の作業工程支援システムにおいて、
前記制御処理構成部は、
前記制御処理構成情報に格納されている情報を基に、前記画像処理において要する演算量を算出する
ことを特徴とする作業工程支援システム。
【請求項10】
請求項9に記載の作業工程支援システムにおいて、
前記処理最適化部は、
前記優先事項と、前記演算量と、に基づいて、前記画像処理を構成する各処理の計算資源に対する割り当て、及び、前記各処理の時間割を決定する
ことを特徴とする作業工程支援システム。
【請求項11】
請求項10に記載の作業工程支援システムにおいて、
前記処理最適化部は、
複数の前記撮像装置のそれぞれに対して、異なる前記割り当て及び前記時間割を決定する
ことを特徴とする作業工程支援システム。
【請求項12】
請求項1に記載の作業工程支援システムにおいて、
前記優先事項は、
前記制御処理の実行性能を最大とするパフォーマンスと、
前記制御処理を実行する際の計算資源を最小限とするリソースと、
前記制御処理を実行する際のリアルタイム性と、
前記制御処理を実行する際におけるコントローラの消費電力を最小限とする消費電力と、
を含む情報から選択される
ことを特徴とする作業工程支援システム。
【請求項13】
請求項1に記載の作業工程支援システムにおいて、
前記ロボットは、
ロボットアームと、ロボットハンドと、
を備え、
撮像装置と、
前記ロボットアームと前記ロボットハンドを制御するコントローラと、
前記ロボットアームと前記ロボットハンドを操作するための操作ハンドルと、
前記撮像装置による撮像画像を表示する表示装置と、を備え、
前記ロボットアーム、前記ロボットハンドは前記操作ハンドルを介した入力に基づいて動作する
ことを特徴とする作業工程支援システム。
【請求項14】
作業工程支援システムが、
ロボットの作業場所に関する情報である作業場所情報、及び、作業対象物の情報である作業対象物情報を取得する認識部と、
前記ロボットの作業工程が生成されると、前記作業工程と、前記作業場所情報及び前記作業対象物情報とを関連付ける関連定義ステップと、
前記関連定義ステップによる関連付けに基づき、前記ロボットの制御処理の構成を決定し、前記制御処理の演算量を算出する制御処理構成ステップと、
前記演算量と、ユーザが選択した優先事項に基づき、前記作業工程で行われる処理に関して、処理の計算資源への割り当てを決定し、当該割り当ての結果を出力する処理最適化ステップと、
を実行することを特徴とする作業工程支援方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、作業工程支援システム及び作業工程支援方法の技術に関する。
【背景技術】
【0002】
近年のロボット需要における1つの態様として、ロボットを人間が操作する遠隔操作ロボットの開発が進んでいる。一般的に遠隔操作ロボット(以下、ロボットと称する)は操作難易度が高く人間側の操作練度の向上が必要である。そこで、ロボットの制御側で人間の操作の位置補正や作業スポットの表示など、操作支援が可能であれば、操作難度が低下し、ロボットを用いた作業効率の向上が見込める。一方、このような操作支援をするためには、ロボットが事前に一連の作業を把握し、作業に関連する画像認識や制御処理を司るプログラムなどが必要である。これを、作業ごとに逐一用意するのは、開発工数がかかり汎用性に欠ける。さらに、遠隔操作では、一般的に人間の操作に対してロボットのレスポンスが遅延すると操作性が悪化する。
【0003】
そのため、事前に目的作業の手順からロボット制御処理の構成を自動で構築しつつ、その制御処理がロボット制御の遅延とならないような、性能担保の手段が必要である。
【0004】
例えば、特許文献1には、「設計支援装置は、組立に複数の作業を要する製品についての、各作業の順序制約と、各作業の作業時間と、各作業についてのロボット作業可否とを受け取る受信部と、ロボット作業不可の各作業について、前記順序制約と前記ロボット作業可否とに基づいて、ロボット作業可にした場合のロボットによる連続作業数を第1指標として計算する第1指標計算部と、ロボット作業不可の各作業について、前記順序制約と前記作業時間と前記ロボット作業可否とに基づいて、ロボット作業可にした場合の配置自由度を第2指標として計算する第2指標計算部と、前記第1指標と前記第2指標とに基づく情報と、当該第1指標および第2指標の対象作業とを関連付けて提示する提示部と、を備える」設計支援装置、設計支援方法および設計支援プログラムが開示されている(要約参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2019-016165号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
このように、特許文献1に記載の技術は、作業工程におけるロボットの配置に関する技術であり、集合体としてのロボットの作業効率を向上させるものである。しかし、特許文献1に記載の技術は、個々のロボットについて制御効率を最適化させるものではない。
【0007】
このような背景に鑑みて本発明がなされたのであり、本発明は、ロボットの制御効率を向上させることを課題とする。
【課題を解決するための手段】
【0008】
前記した課題を解決するため、本発明は、ロボットの作業場所に関する情報である作業場所情報、及び、作業対象物の情報である作業対象物情報を取得する認識部と、前記ロボットの作業工程が生成されると、前記作業工程と、前記作業場所情報及び前記作業対象物情報とを関連付ける関連定義部と、前記関連定義部による関連付けに基づき、前記ロボットの制御処理の構成を決定し、前記制御処理の演算量を算出する制御処理構成部と、前記演算量と、ユーザが選択した優先事項に基づき、前記作業工程で行われる処理に関して、処理の計算資源への割り当てを決定し、当該割り当ての結果を出力する処理最適化部と、を備えることを特徴とする。
その他の解決手段は実施形態中において適宜記載する。
【発明の効果】
【0009】
本発明によれば、ロボットの制御効率を向上させることができる。
【図面の簡単な説明】
【0010】
図1】ロボット操作システムの構成例を示す図である。
図2】コントローラにおける計算資源の構成の例を示す図である。
図3】ロボット操作システムを操作するためのGUI画面を示す図である。
図4】コントローラの機能ブロック図を示す図である。
図5】本実施形態に係る作業工程支援方法の処理手順を示すフローチャートである。
図6】作業場所登録画面の例を示す図である。
図7】作業場所情報の例を示す図である。
図8】作業対象物登録画面の例を示す図である。
図9】作業対象物情報の例を示す図である。
図10】動作情報の例を示す図である。
図11】作業工程情報の例を示す図である。
図12】画像処理構成情報を示す図である。
図13】最適化オプションとして「パフォーマンス」が選択された場合における演算マッピング結果の例を示す図である。
図14】最適化オプションを「リソース」とした場合における演算マッピング結果の例を示す図である。
図15】最適化オプションとしてリアルタイム性が選択された場合における演算マップ結果の例を示す図である。
図16】第2実施形態における演算マッピング結果の例を示す図である。
【発明を実施するための形態】
【0011】
次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。
【0012】
[第1実施形態]
(ロボット操作システムZ)
図1はロボット操作システムZの構成例を示す図である。
作業工程支援システムであるロボット操作システムZは、コントローラ1と、操作ハンドル4と、表示装置3と、カメラ2と、ロボット5とを備える。ロボット5は、コンポーネントであるロボットハンド52と、ロボットアーム51とを備える。ロボットハンド52は、部品等の作業対象物を把持するものであり、ロボットアーム51はロボットハンド52を移動させるものである。本実施形態では、ロボットアーム51の一端が固定されたロボット5で説明するが、これに限られない。例えば、ロボットに脚や、車輪等が備えつけられた移動型ロボット等に本実施形態が適用されてもよい。
【0013】
コントローラ1は、ロボットアーム51とロボットハンド52を制御するものである。また、操作ハンドル4は、ユーザがロボットアーム51とロボットハンド52を操作するものである。つまり、コントローラ1は、ユーザによる操作ハンドル4の操作に基づいて、ロボットハンド52及びロボットアーム51に制御信号を送信し、遠隔操作するものである。このように、ロボットアーム51、ロボットハンド52は操作ハンドル4を介した入力に基づいて動作する。撮像装置であるカメラ2は、カメラ2a及びカメラ2bが備えられる。カメラ2aは、ロボット5が作業する際の作業スポットを撮影するためにロボットハンド52に備えられるカメラ2である。また、カメラ2bは、ロボット5の全体や、作業場所を俯瞰して撮影可能な場所に設置されるカメラ2である。また、カメラ2bは可動することによって撮影範囲を変更可能である。
【0014】
表示装置3は、カメラ2による撮像画像(画像)を表示する。ユーザがロボット5を操作する際、カメラ2で撮影された画像が表示装置3に表示される。ユーザは、表示装置3に表示されている画像を見ながら、操作ハンドル4を操作することでロボット5を操作する。なお、本実施形態では、カメラ2は動画を撮像するものであり、画像とは動画の画像であるものとする。
【0015】
(コントローラ1)
図2はコントローラ1における計算資源の構成の例を示す図である。
コントローラ1は、PC(Personal Computer)等で構成され、CPU11と、複数のFPGA12と、GPU13と、メモリ14と、IO15と、補助記憶装置17とを備える。CPU11、FPGA12、GPU13、メモリ14、IO15及び補助記憶装置17は内部バス16で接続される。CPU11、FPGA12、GPU13を、演算装置と適宜記載する場合がる。なお、CPU11はCentral Processing Unitの略である。また、FPGA12はField Programmable Gate Arrayの略である。そして、GPU13はGraphics Processing Unitの略である。また、IO15はInput/Outputの略である。補助記憶装置17は、HD(Hard Disk)や、SSD(Solid State Drive)等で構成される。このように、近年、半導体の実装技術の向上によって、一般に用いられている汎用的なCPU11のみが搭載されているのではなく、図2に示すようなヘテロジニアスな計算資源構成のコントローラ1が増加している。したがって、本実施形態では、ロボット操作システムZはこうしたヘテロジニアスな計算資源構成のコントローラ1に対応するものとする。
【0016】
さらに、コントローラ1には、IO15を介して、キーボードや、マウス等の入力装置18が接続されている。
【0017】
ちなみに、CPU11はマルチコアを有し、複数のスレッドを実行可能である。また、FPGA12は、内部バス16を介して、CPU11、GPU13、メモリ14、IO15、補助記憶装置17と接続されているが、IO15と直接情報の送受信を行うことも可能である。
【0018】
なお、本実施形態では、処理を行う演算装置として、CPU11及びFPGA12が使用される例を示すが、CPU11とGPU13の組み合わせ、CPU11、FPGA12及びGPU13の組み合わせが使用されてもよい。
【0019】
(GUI画面D)
図3は、ロボット操作システムZを操作するためのGUI(Graphical User Intreface)画面Dを示す図である。
ユーザインターフェイスであるGUI画面Dは、図1に示す表示装置3に表示される画面であり、ユーティリティ領域D1と、作業工程編集領域D2と、処理態様編集領域D3とを備える。GUI画面Dによって、ユーザはロボット操作システムZの視覚的操作が可能となる。そして、ユーザがGUI画面Dを操作することにより、ロボット5が行う一連の動作が設定され、ロボット5の作業工程が生成される。
【0020】
以下に、GUI画面Dの構成について説明する。GUI画面Dの各構成の詳細な説明は後記して説明する。
【0021】
ユーティリティ領域D1は、作業認識ボタンD11と、画像処理検証ボタンD12とを有する。作業認識ボタンD11は、ロボット操作システムZにおけるロボット5の作業工程を構築する際に必要な事前の認識登録を実行する際に押下されるボタンである。作業定義領域D21は、ロボット5が行う一連の制御動作をひとまとめに定義するものである。画像処理検証ボタンD12は、画像処理構成の検討や、各処理の実行方式の検討を開始する際に押下されるボタンである。前記したように、ユーザがロボット5を操作する際、ユーザはカメラ2で撮影された画像を表示装置3で視認しつつ、ロボット5の操作を行う。画像処理は、ロボット5の制御処理を構成する処理のうちの一部であり、ロボット5の操作が行われる際に、ユーザが認識しやすい画像となるよう行われる処理である。つまり、制御処理は、カメラ2から入力された画像を処理する画像処理を含む。
【0022】
作業工程編集領域D2において、ロボット5が行う作業工程が設定可能である。作業工程編集領域D2において、ユーザはロボット5の作業の一工程である作業定義領域D21を視覚的に並べ替えること等を行うことが可能である。作業定義領域D21には、ユーザによって作業工程を構成する動作単位である動作単位設定領域D210が表示されいる。動作単位設定領域D210において、ユーザは設定可能である。そして、作業定義領域D21において、動作単位設定領域D210が1つ以上設定される。このように、動作単位である動作単位設定領域D210は、ユーザが指定可能なロボット5の作業工程における最小限の制御単位である。ロボット5は、作業定義領域D21毎に動作単位設定領域D210で設定されている作業を順に実行する。
【0023】
それぞれの動作単位設定領域D210では、動作内容表示領域D211、作業対象物表示領域D212、作業場所表示領域D213の各要素を有する。動作内容表示領域D211は、ユーザによってロボット5が行う動作が設定される。作業対象物表示領域D212は、動作内容表示領域D211の実行対象となる作業対象物、つまり、ロボット5が動作を行う対象である作業対象物が設定される。作業対象物とは、例えば、ロボット5が組み立てる製品の部品等である。また、作業場所表示領域D213は、ロボット5が作業を行う場所、つまり、ロボット5が動作を行う場所である作業場所が設定される。
【0024】
動作内容表示領域D211は、それぞれユーザが入力装置18を介して動作ボタンD22を押下することによって設定される。同様に、作業対象物表示領域D212、作業場所表示領域D213は、それぞれユーザが入力装置18を介して作業対象物ボタンD23、作業場所ボタンD24を押下することによって設定される。
【0025】
なお、動作内容表示領域D211、作業対象物表示領域D212、作業場所表示領域D213の設定については後記する。
【0026】
また、作業工程編集領域D2には、作業定義領域D21を追加するための追加ボタンD25が表示されている。そして、作業定義領域D21には、繰り返し回数設定領域D214及び動作速度設定領域D215が表示されている。
繰り返し回数設定領域D214では、作業定義領域D21で表示されている動作単位設定領域D210に相当する動作を繰り返す回数が設定される。このように、繰り返し回数設定領域D214では、作業定義領域D21で設定されている作業工程の繰り返し回数がユーザによって設定可能である。動作速度設定領域D215では、対応する動作単位設定領域D210で示される、ロボット5が行う動作の動作速度が設定可能である。動作速度とは、ロボット5が単位時間あたりに実行する制御動作の回数である。
【0027】
処理態様編集領域D3で、ユーザは、画像処理を行う際に、コントローラ1の計算資源構成や、ロボット5に要求される制御性能といった事項のうち、どれを優先させるかを選択可能である(優先事項の選択)。つまり、ユーザは、処理態様編集領域D3でリソースといった計算資源構成や、パフォーマンスといった制御性能のどれを最優先して画像処理を実行させるかを設定することができる。このように、処理態様編集領域D3による設定によって、コントローラ1における画像処理の実行形式が設定される。
【0028】
(コントローラ1)
図4は、コントローラ1の機能ブロック図を示す図である。図4において、図1図3を適宜参照し、図2及び図3に示されている構成については同一の符号を付して説明を省略する。
コントローラ1は、処理部110と、記憶部であるデータベース部120を有する。また、図1で示すようにコントローラ1は、図3で示したGUI画面Dが表示される表示装置3が接続されている。表示装置3に表示されるGUI画面Dには、図3で示したユーティリティ領域D1~処理態様編集領域D3が表示されている。
【0029】
処理部110は、GUI画面Dの各種操作が行われる際に、バックグランドで実行される各種機能を備える。また、処理部110は、認識部111と、関連定義部112と、画像処理構成部113と、処理最適化部114と、を備える。
認識部111は、作業場所や、作業対象物の認識を行う。これにより、認識部111は、ロボット5の作業場所に関する情報である作業場所情報122、及び、作業対象物の情報である作業対象物情報123を取得する。
関連定義部112は、ロボット5の作業工程が生成されると、作業工程と、作業場所情報122及び作業対象物情報123とを関連付ける。具体的には、関連定義部112は、GUI画面Dの作業工程編集領域D2で設定された内容と、作業場所情報122及び作業対象物情報123とが関係づけられた作業工程情報124に格納する。
制御処理構成部である画像処理構成部113は、関連定義部112による関連付けに基づき、ロボット5の制御処理の構成を決定し、制御処理の演算量を算出する。本実施形態では、ロボット5の制御処理として画像処理が行われるものとする。つまり、画像処理構成部113は、作業工程情報124の情報に基づいて、画像補正処理で必要な処理や、画像認識アルゴリズムや、演算量を決定し、決定した情報を画像処理構成情報125に格納する。画像補正処理については後記するが、画像処理を構成する処理であり「ノイズ除去」、「コントラスト強調」、「エッジ強調」等である。つまり、本実施形態では、画像処理は、画像補正処理と、画像認識アルゴリズムによる認識処理によって構成される。
【0030】
処理最適化部114は、演算量と、ユーザが選択した優先事項に基づき、画像処理に関して、計算資源への割り当てを決定し、当該割り当ての結果を出力する。つまり、処理最適化部114は、画像処理構成情報125を基に画像処理で行う各処理の計算資源への割り当てや、時間割を決定する演算マッピングを行う。
【0031】
図2に示す補助記憶装置17に格納されているプログラムがメモリ14にロードされる。ロードされたプログラムがCPU11によって実行される。これによって認識部111~処理最適化部114が具現化する。
【0032】
また、データベース部120は、処理部110によって処理されるデータを格納する記憶領域である。なお、データベース部120は図2の補助記憶装置17に相当するが、コンピュータとは別のデータベースサーバ(不図示)が設けられてもよい。
【0033】
そして、データベース部120は、動作情報121と、作業場所情報122と、作業対象物情報123と、作業工程情報124と、画像処理構成情報125と、を備える。
動作情報121は、動作に対して、ロボットアーム51が動作するか否か、ロボットハンド52が動作するか否かに関する情報が格納されている。
作業場所情報122には、ロボット5の作業場所に関する情報が格納される。
作業対象物情報123には、ロボット5が作業を行う対象物である作業対象物の情報が格納される。
作業工程情報124は、GUI画面Dの作業工程編集領域D2で設定された内容と、作業場所情報122及び作業対象物情報123とが関係づけられた情報が格納される。
画像処理構成情報125は、作業工程情報124を基に生成される情報であり、画像補正処理で行う各処理や、画像認識アルゴリズムや、演算量等が格納される。
【0034】
なお、本実施形態では、ロボット5を制御するための機能と、ロボット5の制御を支援するための機能とをコントローラ1が有している。しかし、これに限らず、ロボット5の制御を支援する装置が、ロボット5の制御を支援するコントローラ1とは別に設けられてもよい。
【0035】
[処理]
次に、図5図15を参照して、本実施形態のロボット操作システムZで行われる処理の手順を説明する。以下の説明においてステップ番号は図5に示すステップ番号である。また、適宜、図1及び図2を参照する。
ユーザがロボット5を操作する際、前記したように、ユーザは原則として、表示装置3を介してロボットハンド52、ロボットアーム51に加え、作業で扱う作業対象物も視認する。また、ロボットハンド52が作業対象物を把持して、任意の場所へ移動したり、ロボットハンド52が作業対象物を把持した状態で作業対象物に加工を加えたりする操作が生じる。この際、作業のシチュエーションによって、表示装置3で視認される背景色や、明暗、作業対象物の特徴、各作業によってユーザが注視したい視点は刻々と変化する。本実施形態のロボット操作システムZは、表示装置3に描画されるロボット5の作業状況の視認性を向上し、ロボット操作の補正を可能とすることを目的とする。
【0036】
図5は、本実施形態に係る作業工程支援方法の処理手順を示すフローチャートである。
<S1:作業場所・作業対象物登録処理:認識ステップ>
まず、ユーザは、GUI画面Dに表示されている作業認識ボタンD11を押下することで、作業工程の構築に必要な認識登録が実施される。図5に示すように、作業場所・作業対象物登録処理は、作業場所登録処理(S11)及び作業対象物登録処理(S12)を有する。なお、図5について、矢印で結ばれていない処理は、これらの処理が属する処理枠内であれば、処理の順番が固定されていないことを示している。
【0037】
ステップS1で行われる作業場所登録処理(S11)及び作業対象物登録処理(S12)について図6及び図8を参照して説明する。
【0038】
(S11:作業場所登録処理)
図6は、ステップS11(作業場所登録処理)の処理が行われるための画面である作業場所登録画面610の例を示す図である。
ステップS11では、ロボット5の作業場所が認識され、認識された作業場所に関する情報が作業場所情報122に登録される。具体的には、ユーザは、図6に示す作業場所登録画面610で、ロボット5が作業しうる作業場所を、入力装置18を介して作業場所登録画面610の破線四角611のように指定する。その後、ユーザは入力装置18を介して、指定した作業場所に任意の名前を付与する。この際、認識部111は、作業場所の主色に関する情報である作業場所の主色の数値と、作業場所の明暗に関する情報である明暗を示す数値(明度)と、を指定された作業場所に相当する画像から取得する。画像は、図1に示すカメラ2bから取得された画像であってもよいし、ユーザがロボットアーム51を操作し、ロボットハンド52に備えられているカメラ2aから取得された画像であってもよい。主色とは、例えば画像内で最も多くの部分を示す色である。また、主色の数値とは、例えば赤(R)、緑(G)、青(B)のそれぞれについての値(強度)である。そして、認識部111は、指定した作業場所の画像ファイルと、付与された名前と、取得した主色の数値と、明暗を示す数値を対応付けて作業場所情報122に登録する。
【0039】
なお、ステップS11で使用される画像は、カメラ2が撮影した動画の1フレームである。あるいは、カメラ2が動画と、静止画とを撮影可能であれば、カメラ2で撮影された静止画が用いられてもよい。
【0040】
(作業場所情報122)
図7は、作業場所情報122の例を示す図である。
図7に示すように、作業場所情報122は、「作業場所名」、「主色数値」、「明度」、「画像ファイル」の項目を有する。
「作業場所名」の項目欄には、ユーザが作業場所に対して任意に付与した作業場所の名前が格納される。
「主色数値」の項目欄には、作業場所の画像から取得された主色の数値がRGBの値として格納される。
「明度」の項目欄には、作業場所の画像から取得された明暗を示す数値が明度として格納される。
「画像ファイル」の項目欄には、図6の破線四角611で示す画像のファイル名、もしくは、ファイルへのリンクが格納される。
【0041】
このように、認識部111は、カメラ2で撮像された作業場所の画像を基に、作業場所の明暗に関する情報と、作業場所の主色に関する情報と、を認識し、数値化する。そして、認識部111は、当該数値化された結果を作業場所情報122に格納する。このようにすることで、後記する画像処理で行う処理を行うための情報を取得することができる。また、認識部111は、ユーザによって入力された作業場所の名前を、作業場所の明暗に関する情報と、作業場所の主色に関する情報に関連付けて前記作業工程支援システムに格納する。このようにすることで、作業場所の情報管理が容易となる。
【0042】
(S12:作業対象物登録処理)
図8は、ステップS12(作業対象物登録処理)の処理が行われるための画面である作業対象物登録画面620の例を示す図である。
ステップS12では、作業工程で扱う作業対象物が認識され、認識された作業工程に関する情報が作業対象物情報123に記憶される。具体的には、ユーザは、図8に示す作業対象物登録画面620で、入力装置18を介して作業対象物登録画面620の破線四角621のように作業対象物を指定する。
【0043】
その後、ユーザは入力装置18を介して、指定した画像(作業対象物の画像)に任意の名前を付与する。画像は、図1に示すカメラ1b等から取得された画像であってもよいし、ユーザがロボットアーム51を操作し、ロボットハンド52に備えられているカメラ2aから取得された画像であってもよい。この際、認識部111は、指定した作業対象物の画像に関する画像特徴量と、色彩数値とを取得する。そして、認識部111は、指定した作業対象物の画像ファイルと、付与した名前と、取得した色彩数値とを対応付けて作業対象物情報123に登録する。なお、画像特徴量を算出するためのアルゴリズムは、公知のアルゴリズム(深層学習等)を利用すればよい。本実施形態では、画像特徴量として形状の複雑性に関する情報が得られるものとする。また、作業対象物の指定は、同じ種類の作業対象物が多数ある場合、そのうちの1つが指定されればよい。例えば、同種類のねじが多数ある場合、1つのねじについて指定が行われればよい。
【0044】
なお、ステップS12で使用される画像は、カメラ2で撮影される動画の1フレームである。あるいは、カメラ2が動画と、静止画とを撮影可能であれば、カメラ2で撮影された静止画が用いられてもよい。作業対象物の指定の手法について、種々の手法をとり得る。
【0045】
(作業対象物情報123)
図9は、作業対象物情報123の例を示す図である。
図9に示すように、作業対象物情報123は、「作業対象物名」、「画像特徴量」、「色彩数値」、「画像ファイル」の項目を有する。
「作業対象物名」の項目欄には、ユーザが作業対象物に対して任意に付与した作業対象物の名前が格納される。
「画像特徴量」の項目欄には、作業対象物の画像から得られる特徴量が格納される。
「色彩数値」の項目欄には、作業対象物の画像から取得された色の数値がRGBの値として格納される。
「画像ファイル」の項目欄には、図8の破線四角621で示す画像のファイル名、もしくは、ファイルへのリンクが格納される。
【0046】
このように、認識部111は、作業対象物の色彩数値と、画像特徴量と、を認識し、色彩数値及び画像特徴量を作業対象物情報123に格納する。このようにすることで、後記する画像処理で行う処理を行うための情報を取得することができる。また、認識部111は、ユーザによって入力された作業対象物の名前を、作業対象物の色彩数値と、前記画像特徴量に関連付けて作業対象物情報123に格納する。このようにすることで、作業対象物の情報管理が容易となる。
【0047】
なお、すでに作業場所や、作業対象物が登録されている場合、ステップS1の処理を省略することが可能である。
【0048】
<S2:作業工程編集領域D2の編集>
ステップS1の作業が完了すると、ユーザは、GUI画面Dに表示されている作業工程編集領域D2の編集を行う。ステップS2の処理の説明では、図3を適宜参照する。
(S21:作業定義領域D21の追加)
まず、ユーザは入力装置18を介して追加ボタンD25を押下することにより、作業定義領域D21が追加される。図3に示す例では、2つの作業定義領域D21が設定されている(作業定義領域D21a,D21b)つまり、ユーザは、任意の数の動作単位設定領域D210を作業定義領域D21に追加可能である。なお、例えば、作業定義領域D21が選択された状態で、追加ボタンD25が押下されると、選択されている作業定義領域D21に動作単位設定領域D210が追加される。
【0049】
動作単位設定領域D210では、作業工程においてロボット5が行う動作の1つ1つが設定される。前記したように、動作単位設定領域D210は、動作内容表示領域D211、作業対象物表示領域D212、作業場所表示領域D213の各要素を有する。更に、前記したように、動作単位設定領域D210は、繰り返し回数設定領域D214及び動作速度設定領域D215を有する。
【0050】
(動作情報121)
図10は、動作情報121の例を示す図である。
図10に示すように、動作情報121には、動作に関する情報が格納されている。図10に示す動作情報121の例のように、「運ぶ」、「つかむ」、といったロボット5の作業工程の指示に利用する動作名が格納されている。そして、動作名毎にロボット5を構成するコンポーネントであるロボットアーム51及びロボットハンド52の動作が対応付けられて格納されている。例えば、動作名「運ぶ」では、ロボットアーム51は動作するものの、ロボットハンド52は停止している。
【0051】
このように、動作情報121には、動作名毎に、ロボットハンド52とロボットアーム51の動作に関する情報が格納されている。なお、動作情報121に格納される動作は、図10に示す例に限らず、ロボット5のハードウェア構成に応じた動作(「上げる」、「下げる」等)が格納されればよい。また、動作情報121は、ユーザによって事前に設定されるものである。さらに、動作情報121に格納される動作状態(「停止」、「動作」等)は、図10に示す文字列に限らず、数値(動作ID等)で格納されてもよく、動作情報121に格納される情報の格納方法は限定されるものではない。
【0052】
このような動作情報121がデータベース部120に保持されることにより、後記する動作の設定が容易となる。
【0053】
(S22:動作の設定)
ユーザが、GUI画面Dに表示されている動作ボタンD22を押下することによって、図10に示す動作情報121に格納されている動作名が選択可能となる。そして、ユーザが入力装置18を介して選択可能となった動作名のうち1つを選択することにより、選択された動作名に該当する動作が動作単位設定領域D210の動作内容表示領域D211に設定される。
【0054】
(S23:作業対象物の設定)
また、ユーザが作業対象物ボタンD23を押下すると、作業対象物情報123に格納されている作業対象物が選択可能となる。ユーザが選択可能となった作業対象物を選択することによって、動作単位設定領域D210に作業対象物が設定される。つまり、ユーザは、作業対象物情報123に登録された作業対象物の中から任意のものを作業対象物として選択する。このようにして、動作単位設定領域D210の作業対象物表示領域D212に作業対象物が設定される。
【0055】
(S24:作業場所の設定)
また、ユーザが作業場所ボタンD24を押下すると、作業場所情報122に格納されている作業場所が選択可能となる。ユーザが選択可能となった作業場所を選択することによって、動作単位設定領域D210の作業場所表示領域D213に作業場所が設定される。つまり、ユーザは、作業場所情報122で登録されている作業場所を指定する。なお、図3において、「作業#1」の「#1」で示される動作単位設定領域D210では、作業場所が2つ設定され、その他の動作単位設定領域D210では、作業場所が1つ設定されている。「作業#1」の「#1」では動作が「運ぶ」であるため、運び元と運び先の2つの作業場所が設定されている。一方、その他の動作単位設定領域D210では、動作が「嵌める」、「つかむ」、「回す」と作業対象物を運ぶ必要がない動作であるため、作業場所は1つ設定されればよい。
【0056】
(S25:動作速度の設定)
前記したように、作業定義領域D21には動作速度設定領域D215が動作単位設定領域D210毎に表示されている。ユーザは、入力装置18を介して動作速度設定領域D215に動作速度を設定する。
【0057】
(S26:繰り返し回数の設定)
また、前記したように、作業定義領域D21には繰り返し回数設定領域D214が作業定義領域D21毎に表示されている。繰り返し回数とは、ロボット5が行う一連の制御動作の繰り返し回数である。一連の制御動作とは、作業定義領域D21に設定されている動作単位設定領域D210である。例えば、図3に示す例に従うと、作業定義領域D21aでは、動作単位設定領域D210「#1」→「#2」の動作を3回繰り返すことが設定されている。また、作業定義領域D21bでは繰り返し回数設定部が「-」となっている。即ち、作業定義領域D21bでは繰り返し回数が設定されていない。つまり、作業定義領域D21bで行われる制御動作は、動作単位設定領域D210「#1」→「#2」の動作が1回のみ行われる。
【0058】
(S27:作業工程情報124の生成:関連定義ステップ)
ステップS22~S26の処理が完了すると、関連定義部112は、作業工程編集領域D2で設定された内容と、作業場所情報122と、作業対象物情報123を基に作業工程情報124を生成する。
【0059】
(作業工程情報124)
図11は、作業工程情報124の例を示す図である。
動作単位設定領域D210で定義されたの各情報(つまり、図5のステップS22~S26で設定された情報)は、関連定義部112によって、動作単位設定領域D210毎に作業工程情報124に格納される。
【0060】
図11に示すように、作業工程情報124は、「作業」、「繰り返し」、「動作単位」、「動作状態」、「作業対象物」、「作業場所」の項目を有する。「動作状態」は、「動作速度」、「ロボットアーム」、「ロボットハンド」の項目を有する。さらに、「作業対象物」は「対象複雑性」、「対象色」の項目を有する。また、「作業場所」は「主色」、「明暗」の項目を有する。
【0061】
「作業」の項目欄に格納される情報は、図3の作業定義領域D21に相当するものである。図11に示す例において「作業#1」は図3の作業定義領域D21aに相当することが示されており、「作業#2」は図3の作業定義領域D21bに相当することが示されている。
【0062】
「繰り返し」の項目欄には、図5にステップS26で図3の繰り返し回数設定領域D214に対して設定された繰り返し回数が格納される。
【0063】
「動作単位」の項目欄に格納される情報は、図3の動作単位設定領域D210に相当するものである。図11に示す例の「動作単位」の項目欄における「#1」は、図3の動作単位設定領域D210「#1」に相当することを示している。「#2」~「#4」も同様である。
【0064】
「動作状態」における「動作速度」の項目欄には図5のステップS25で図3の動作速度設定領域D215で設定された動作速度が格納されている。
【0065】
動作状態における「ロボットアーム」の項目欄に格納される情報は、該当する動作におけるロボットアーム51の動作の有無に関する情報である。ロボットアーム51が動作する場合、「〇」が格納され、停止している場合、「-」が格納される。関連定義部112(図4参照)が図3の動作内容表示領域D211に設定されている情報と、図10に示す動作情報121を参照することによって「ロボットアーム」の項目欄に情報を格納する。例えば、図3の動作単位設定領域D210aでは、動作として「運ぶ」が設定されているため、関連定義部112は、図10に示す動作情報121の「動作名」の「運ぶ」を参照する。図10に示す動作情報121の例では、「運ぶ」においてロボットアーム51は「動作」となっている。従って、関連定義部112は、図11の「ロボットアーム」の項目欄に「〇」を格納する。
【0066】
動作状態における「ロボットハンド」の項目欄には、該当する動作におけるロボットハンド52の動作の有無に関する情報が格納される。ロボットハンド52が動作する場合、「〇」が格納され、停止している場合、「-」が格納される。関連定義部112(図4参照)が図3の動作内容表示領域D211に設定されている情報と、図10に示す動作情報121を参照することによって「ロボットハンド」の項目欄に情報を格納する。例えば、図3の動作単位設定領域D210aでは、動作として「運ぶ」が設定されているため、関連定義部112は、図10に示す動作情報121の「動作名」の「運ぶ」を参照する。図10に示す動作情報121の例では、「運ぶ」においてロボットハンド52は「停止」となっている。従って、関連定義部112は、図11の「ロボットハンド」の項目欄に「-」を格納する。
【0067】
作業工程情報124の「対象複雑性」の項目欄には、図9に示される作業対象物情報123に格納されている画像特徴量に基づく作業対象物の形状の複雑性に関する数値が格納される。
また、「対象色」の項目欄には、図9に示される作業対象物情報123に格納されている作業対象物の色彩数値が格納される。ちなみに、対象色とは、作業対象物の色である。
【0068】
このように、「対象複雑性」、「対象色」の項目欄に格納される情報は、作業対象物情報123に格納されている情報である。
【0069】
作業工程情報124の「作業場所」における「主色」の欄には、図3の作業場所表示領域D213に設定されている作業場所と、作業場所情報122(図7参照)とを参照することによって取得した情報が格納される。具体的には、作業工程情報124の「作業場所」における「主色」の欄には、対象となる作業場所をキーとして作業場所情報122の「主色」の欄に格納されている情報が格納される。また、作業工程情報124の「作業場所」における「明暗」の項目欄に格納される情報(明暗に関する情報)は、作業場所情報122の「明度」の項目欄に格納されている明度が、所定の値以上か否かで決定される。
【0070】
このように、「主色」、「明暗」の項目欄に格納される情報は、作業場所情報122に格納されている情報である。
【0071】
<S31:画像処理構成情報125の生成:制御処理構成ステップ>
画像処理検証ボタンD12が押下されると、画像処理構成部113は作業工程情報124の情報に基づき、画像処理の選択と、画像処理に必要なパラメータを画像処理構成情報125に格納する。これにより、画像処理構成情報125が生成される。ちなみに、ステップS31において画像処理とは、ロボット5の操作時にカメラ2から入力される動画に対する処理である。
【0072】
(画像処理構成情報125)
図12は、画像処理構成情報125を示す図である。
図12に示すように、制御処理構成情報である画像処理構成情報125は「作業」、「動作単位」、「ノイズ除去」、「コントラスト強調」、「エッジ強調」の情報が格納されている。さらに、画像処理構成情報125には「画像認識アルゴリズム」、「FPS(Frames per Second)、「演算量」の情報が格納されている。
【0073】
画像処理構成情報125のレコードが図3の動作単位設定領域D210に相当する。
「作業」の項目欄に格納される情報は、図3の作業定義領域D21に相当するものである。図12に示す例において「作業#1」は図3の作業定義領域D21aに相当することを示し、「作業#2」は図3の作業定義領域D21bに相当することを示す。
【0074】
「動作単位設定領域」に格納される情報は、図3の動作単位設定領域D210に相当するものである。図12に示す例の「動作単位」の項目欄における「#1」は、図3の動作単位設定領域D210「#1」に相当することを示している。「#2」~「#4」も同様である。
【0075】
「ノイズ除去」、「コントラスト強調」、「エッジ強調」は、カメラ2から入力される画像に対して行われる画像補正処理を構成する処理(画像補正処理で行われる各処理)である。「ノイズ除去」、「コントラスト強調」、「エッジ強調」といった画像補正処理は、画像補正処理アルゴリズムによって行われる。前記したように画像補正処理は、画像処理を構成する処理である。また、前記したように、本実施形態では、画像処理は、画像補正処理と、画像認識アルゴリズムによる認識処理によって構成される。また、「ノイズ除去」、「コントラスト強調」、「エッジ強調」の項目欄に格納される情報は、画像処理で用いられるパラメータである。
【0076】
このように画像処理構成情報125では、画像補正処理を構成する各処理の程度や、処理の有無が格納される。「画像認識アルゴリズム」は、カメラ2から入力される作業対象物の画像や、作業場所の画像を認識するために用いられる画像認識アルゴリズムに関する情報が格納される。本実施形態では、画像認識アルゴリズムによって、認識処理が行われる。認識処理では、例えば、カメラ2から入力された画像から、作業対象物を抽出し、輪郭強調を行う等の処理が行われる。これによって、ユーザによる視認性向上が可能となる。「FPS」は、「Frames per Second」の略であり、コントローラ1に入力される動画のフレームレートである。「演算量」は、「ノイズ除去」、「コントラスト強調」、「エッジ強調」、及び、用いられる画像認識アルゴリズムが要する演算量である。なお、本実施形態では、画像補正処理を行う画像補正処理アルゴリズム及び画像認識アルゴリズムをあわせて画像処理アルゴリズムと称することとする。
【0077】
画像処理は、動作単位設定領域D210で設定された動作単位毎に行われる。つまり、図12に示す画像処理構成情報125の上から順に画像処理が行われる。ただし、図13で示すように「動作単位#1」、「動作単位#2」は3回繰り返される。
【0078】
まず、画像処理構成部113は、作業場所の明暗によってノイズ除去の強弱を決定する。「動作単位」をキーとして、図11に示す作業工程情報124の「明暗」の項目欄を参照することで、ノイズ除去の強弱(強度)が決定される。例えば、画像処理構成部113によって、作業工程情報124の「明暗」の項目欄で「暗」が格納されていれば、ノイズ除去の閾値を大きくし、ノイズ除去される画素範囲を拡大する。つまり、図12の「ノイズ除去」で「強」が設定される。前記したように、作業工程情報124の「明暗」の項目欄に格納される情報は、作業場所情報122に格納されている情報である。従って、画像処理構成部113は、作業場所情報122に格納されている作業場所の明暗に関する情報に基づいて、前記パラメータのうち、ノイズ除去の強度を決定する。
【0079】
次に、画像処理構成部113は、作業工程情報124の作業対象物の対象色と、作業工程情報124の作業場所の主色を比較し、色彩値の差によってコントラスト調整とエッジ強調を設定する。例えば、色彩値の差が小さい場合、画像処理構成部113は、画像コントラストを強調するよう設定する(「コントラスト強調:強」(コントラスト調整の強度))。また、例えば、色彩値の差が小さい場合、画像処理構成部113は、エッジ強調を実施するよう設定する(エッジ強調:あり(エッジ強調の有無))。前記したように、作業工程情報124の作業対象物の対象色は作業対象物情報123に格納されている情報であり、作業工程情報124の作業場所の主色は作業場所情報122に格納されている情報である。従って、画像処理構成部113は、作業対象物情報123に格納されている作業対象物の対象色と、作業場所情報122に格納されている作業場所の主色の色彩差に基づいて、パラメータのうち、コントラスト調整の強度を決定する。同様に、画像処理構成部113は、作業対象物情報123に格納されている作業対象物の対象色と、作業場所情報122に格納されている作業場所の主色の色彩差に基づいて、パラメータのうち、エッジ強調の有無を決定する。
【0080】
なお、これらの画像補正処理を行う画像補正処理アルゴリズムには公知のアルゴリズムが使用されればよい。
【0081】
さらに、画像処理構成部113は、図11の対象複雑性に応じて、画像画像認識アルゴリズムを選択する。一般的に作業対象物の形状の複雑性によって画像認識アルゴリズムが使い分けられる。例えば、作業対象物が単純な造形であれば、HOG(Histograms of Oriented Gradients)特徴量が用いられる。また、作業対象物が複雑な造形であればSIFT(Scaled Invariance Feature Transform)特徴量等が用いられる。選択された画像認識アルゴリズムは、図12に示す「画像認識アルゴリズム」の項目欄に格納される。画像認識アルゴリズムとして、深層学習等が用いられてもよい。なお、本実施形態で示すように作業対象物の形状複雑性に基づく画像認識アルゴリズムの選択方法は一例であり、形状の複雑性以外に基づいて画像認識アルゴリズムが選択されてもよい。前記したように、図11の対象複雑性は、作業対象物情報123に格納されている作業対象物の画像特徴量に基づく情報である。従って、画像処理構成部113は、作業対象物情報123に格納されている作業対象物の画像特徴量に基づいて画像認識アルゴリズムを選択する。
【0082】
図12に示すように、画像処理構成部113は、作業場所情報122と、作業対象物情報123に格納されている情報に基づいて、作業対象物及び作業場所を認識するために必要な画像処理アルゴリズムと、当該画像処理で用いられるパラメータと、を動作単位毎に画像処理構成情報125に設定する。具体的には、画像処理構成部113は、
定されたノイズ除去の強度、コントラスト調整の強度、エッジ強調の有無、選択された画像認識アルゴリズムを、動作単位毎に画像処理構成情報125に格納する。このような画像処理構成情報125が生成されることにより、この後の演算量の算出が容易となる。
【0083】
さらに、画像処理構成部113は、画像処理構成情報125に格納されている情報を基に、画像処理において要する演算量を算出する。つまり、画像処理構成部113は、選択した画像補正処理アルゴリズム及び画像認識アルゴリズムが要求する演算量を算出する。画像補正アルゴリズム、画像認識アルゴリズムのそれぞれは、公知の技術が用いられるため、演算量の算出は容易である。画像処理構成部113は、算出した演算量を画像処理構成情報125の「演算量」の欄に格納する。このような演算量が算出されることによって、後記する演算マッピングが容易となる。
【0084】
<S32:最適化オプション設定>
ステップS31が完了すると、ユーザは図3に示す処理態様編集領域D3で最適化オプションの設定を行う。ステップS32において、ユーザは図3のGUI画面Dに表示されている最適化オプションボタンのいずれかを押下することで、画像処理をコントローラ1に実装する上で優先する最適化オプションを指定する。図3の処理態様編集領域D3に示されているように、例えば、ユーザは入力装置18を介して、最適化オプションの種類として「パフォーマンス」を選択し、画像処理検証ボタンD12を押下する。
【0085】
図3に示す処理態様編集領域D3では、ユーザがロボット5の画像処理を、どの基準で最適化するかを指定することができる。図3に示すように効率化の基準(最適化オプション)として、「パフォーマンス」、「リアルタイム性」、「リソース」、「消費電力」を含む情報がある。「パフォーマンス」は、画像処理(制御処理)の実行性能を最大とするよう最適化することである。「リアルタイム性」は、画像処理を実行する際のリアルタイム性を確保するよう最適化することである。ちなみに、画像処理(制御処理)を実行する際のリアルタイム性とは、特定の時間内に任意の処理が必ず完了することである。「リソース」は、画像処理(制御処理)を実行する際の計算資源を最小限とするよう最適化することである。「消費電力」は、画像処理(制御処理)を実行する際におけるコントローラ1の消費電力を最小限とするよう最適化することである。最適化オプションは、1つ選択されてもよいし、複数選択されてもよい。
【0086】
<S33:演算マッピング:処理最適化ステップ>
画像処理構成情報125の生成が完了すると、処理最適化部114が、最適化オプションと、画像処理構成情報125に格納されている情報とに基づいて、画像処理の処理態様を決定する。前記したように、処理態様とは以下の(A1)に示す計算資源への割り当て、及び、(A2)に示す時間割である。このような計算資源への割り当て、時間割を行うことを演算マッピングと称する。
(A1)画像処理を構成する各処理の計算資源への割り当て方。
(A2)画像処理を構成する各処理の演算サイクルと、当該演算サイクル毎の時間割。
【0087】
このように、処理最適化部114は、上記(A1)、(A2)の情報を決定する演算マッピングを行う。つまり、処理最適化部114は、優先事項と、演算量と、に基づいて、画像処理を構成する各処理の計算資源に対する割り当て、及び、前記各処理の時間割を決定する演算マッピングを行う。
【0088】
<S34:出力:処理最適化ステップ>
ステップS33の後、処理最適化部114は、演算マッピングの結果を表示装置3に出力する。ステップS33において、例えば、図13図16に示すものが表示装置3に出力される。
【0089】
(演算マッピング結果の具体例)
図13図15を参照して、演算マッピング結果の例を示す。
なお、以降の説明では、演算マッピング結果の例を説明する便宜上、画像処理は、図1に示すカメラ2a,2bから入力された画像のノイズフィルタ処理、コントラスト強調処理、認識処理に限定して説明する。認識処理とは、画像認識アルゴリズムによる画像認識処理である。なお、前記したように、画像とは動画のことである。
【0090】
また、ノイズフィルタ処理、コントラスト強調処理、認識処理の演算サイクルの消費量は、順に「2」、「2」、「6」とする。また、ノイズフィルタ処理、コントラスト強調処理、認識処理は、すべてノイズフィルタ処理、コントラスト強調処理、認識処理の順に実行されるものとする。ちなみに、ノイズフィルタ処理はノイズを除去する処理である。つまり、カメラ2から入力された画像に対してノイズフィルタ処理、コントラスト強調処理、認識処理が行わることで、ユーザがロボット5を操作する際における画像の視認性が向上する。そして、認識処理の後、ノイズフィルタ処理、コントラスト強調処理、認識処理の結果を表示装置3に転送する結果転送処理が行われる。また、使用可能な計算資源は、CPU11のスレッド(CPUスレッド)とFPGA12とする。
【0091】
(最適化オプションとして「パフォーマンス」が選択された場合)
図13は、最適化オプションとして「パフォーマンス」が選択された場合における演算マッピング結果の例を示す図である。
図13の縦軸は計算資源への処理の展開数、横軸は経過時間を示している。また、図13では、CPUスレッドは2つ(CPUスレッド#1,#2)、用いられるFPGA12が4つ(FPGA#1~#4)である場合について説明する。なお、図13から図16において、演算サイクルTは、CPU11及びFPGA12で行われる処理の最小単位である。
【0092】
最適化オプションとして、「パフォーマンス」が選択された場合、使用可能な計算資源のすべてに各処理が並列に割り当てられることで、制御速度が最大限に速くなるよう演算マッピングが行われる。各処理とは、ノイズフィルタ処理、コントラスト強調処理、認識処理、結果転送処理である。各処理が並列に実行される一方で、1枚の画像に対して、複数の処理を同時刻に行うことはできない。つまり、1枚の同じ画像に対してノイズフィルタ処理、コントラスト強調処理、認識処理の処理を同時に行うことはできない。そのため、1枚の画像に対して各処理が順番に実行される必要がある。1枚の画像とは、動画における1フレームの画像である。つまり、図13において、CPU11及びFPGA12は、動画を構成する画像を1フレームずつ、ノイズフィルタ処理、コントラスト強調処理、認識処理、転送処理の順に実行する。図14図16も同様である。
【0093】
実際のカメラ2から入力された、ある1枚の画像に対するデータフローが図13のドット部分で示されている。また、太矢印は、当該入力された画像に対する画像処理の流れを示す。ドット部分以外の画像処理は、前に入力された画像に対する画像処理や、次の画像に対する処理である。このように、それぞれの画像に対する各処理が順次処理されつつ、別時点の画像が並列に処理されることで計算資源を有効的に使用可能である。また、最適化オプションとして、「パフォーマンス」が選択された場合、演算サイクルTは設定可能な最速周期とし、画像処理の単位時間当たりの処理枚数を向上させることが望ましい。なお、演算マッピングが行われる前に処理最適化部114が演算サイクルTを設定する。これによって、それぞれの最適化オプションが選択された際における処理の管理が容易となる。また、図13に示すように、処理最適化部114は、演算サイクルTを1単位として、それぞれの処理のタイミングを同期させる。
【0094】
(最適化オプションとして「リソース」が選択された場合)
図14は、最適化オプションを「リソース」とした場合における演算マッピング結果の例を示す図である。
図14の縦軸は計算資源への処理の展開数、横軸は経過時間を示している。また、太矢印は、当該入力された画像に対する画像処理の流れを示す。最適化オプションがリソースの場合、演算量の小さな処理であるノイズフィルタ処理、コントラスト強調処理はCPU11等のソフトウェアに割り当てられる。また、CPU11に割り当てられるノイズフィルタ処理及びコントラスト処理は、同一のスレッドで直列的に処理が行われる。そして、演算量が大きい処理である認識処理及び結果転送処理がFPGA12のようなハードウェアに実装される。このようにすることで、最低限の性能は担保しつつ、最小限の計算資源(リソース)のみで各処理を実行できる。さらに、消費電力を削減する場合は、演算サイクルTを長くすることで、コントローラ1の消費電力を抑えることが可能である(最適化オプションで「消費電力」が選択された場合)。
【0095】
(最適化オプションとして「リアルタイム性」が選択された場合)
図15は、最適化オプションとしてリアルタイム性が選択された場合における演算マップ結果の例を示す図である。
図15では、CPUスレッドが2つ(CPUスレッド#1~#2)、用いられるFPGA12が5つ(FPGA#1~#5)である場合について説明する。また、ノイズフィルタ処理、コントラスト強調処理、認識処理の演算サイクルTの消費量は、順に「2」、「2」、「4」とする。さらに、ノイズフィルタ処理、コントラスト強調処理、認識処理は、すべてノイズフィルタ処理、コントラスト強調処理、認識処理の順に実行されるものとする。
【0096】
前記したように、画像処理のリアルタイム性とは、特定の時間内に任意の処理が必ず完了することである。この場合、最適化オプションとして「パフォーマンス」が選択された場合に自ずと要求が達成可能な場合がある。つまり、最適化オプションとして「パフォーマンス」が選択されれば、「リアルタイム性」も達成される場合がある。
【0097】
これに対して、図15では、図13と異なり、FPGA12ですべての画像処理が行われている。図15に示すように、すべての画像処理をFPGA12のようなハードウェア処理とすることで、それぞれの動作クロックを揃えることができる。これにより、それぞれの演算サイクルTによる動作クロック単位のリアルタイム性確保の精度を向上させることができる。
【0098】
第1実施形態では、図3に示すようなGUI画面Dによるロボット5の作業工程の設定、及び、図13図15に示すような演算マッピングが行われる。これにより、個々のロボット5の制御効率を向上させることができる。つまり、ロボット5が行う作業工程の設定や、ロボット5を操作に必要な画像処理(制御処理)の適切な設定までを支援することが可能となる。
【0099】
また、図3に示すようなGUI画面Dによってロボット5の作業工程を設定することにより、ユーザは容易にロボット5の作業工程を設定することができる。
【0100】
ロボット操作システムZは、図13図15に示すように、計算資源への展開数、演算サイクルTの消費数や長さ、すなわち時間の単位で各種処理や、それに伴う関連処理を展開し、時間割りを設定する。このようにすることで、比較的単純な方法で性能確保が可能となる。また、第1実施形態によれば、演算マッピングが行われることで、作業内容に応じた性能担保を確保する、つまり、個々のロボット5について作業内容に応じた制御効率の最適化が可能となる。
【0101】
また、図1に示すようなロボット操作システムZが、作業工程支援の対象となることで、ユーザによるロボット5の遠隔支援が容易となる。
【0102】
なお、第1実施形態では、選択された最適化オプションは、すべての動作単位設定領域D210に適用されることを想定しているが、最適化オプションは動作単位設定領域D210毎に設定されてもよい。これは、動作単位設定領域D210毎にロボット5に要求される作業精度や作業速度が異なる場合が想定できるためである。例えば、ユーザがロボット5を素早く操作したい場合、画像処理も高速に実行されないと、処理遅延が発生してしまう等のシチュエーション等がある。演算マッピングを画像処理に適用することで、計算資源の構成に応じて画像処理の高速化等を図ることができ、ユーザはロボット5の遠隔操作を行う際の画像処理の遅延を防ぐことができる。
【0103】
[第2実施形態]
図16は、第2実施形態における演算マッピング結果の例を示す図である。
図16における縦軸及び横軸は、図13図15と同様である。なお、図16に示す例では、最適化オプションとして「パフォーマンス」が選択されているものとする。
第2実施形態では、動作単位設定領域D210に、複数のカメラ2の情報が紐づけられる場合について説明する。図16では、図1のロボット操作システムZにおいて、複数のカメラ2による画像がある場合における演算マッピング結果が示されている。
【0104】
図16において、太矢印は、ある画像に関する処理の流れを示している。また、図16において、符号710は、ある動作単位設定領域D210による処理を示し、符号720は、符号710に対応する動作単位設定領域D210とは別の動作単位設定領域D210による処理を示している。このように、図16に示す例では、前半と後半で別の動作単位設定領域D210の処理が行われている。つまり、図16に示す例では、動作単位設定領域D210の処理が時間によって分けられている。なお、符号710と符号720との境目付近で、行われていない処理がある。これは、符号710は、終了直前であるため、符号710の範囲内で終了しない処理を行わないようにしているためである。同様に、符号720は、開始されたばかりであるため、先行する処理(認識処理に対するコントラスト強調処理等)が行われていない処理は行うことができないためである。
【0105】
また、図16に示す例では、符号710では、1つのカメラ2から入力される画像に関する処理が行われる。そして、符号720では、2つのカメラ2から入力される画像に関する処理が行われる。また、符号720では、符号721が一方のカメラ2による処理を示し、符号722が他方のカメラ2による処理を示す。これらのカメラ2は、図1に示すカメラ2a、カメラ2bのいずれかである。
【0106】
そして、図16に示すように、符号710では図13に示す処理と同様の演算マッピングとなっている。そして、符号720では、一方のカメラ2と、他方のカメラ2とで計算資源を等分に分配、かつ、すべての計算資源を利用するような演算マッピングが行われている。
【0107】
符号710における処理と、符号720における処理を比較すると、符号720では、各処理で消費する演算サイクルTが増えている。すなわち、処理時間が延長している。つまり、符号720では、ノイズフィルタ処理とコントラスト強調処理とが直列に処理されている。さらに、符号720では、認識処理で消費される演算サイクルTが「4」つまり、符号710の処理における認識処理の2倍の演算サイクルTが消費されている。しかし、その代わりに、符号720では、一方のカメラ2から入力された画像の各処理(符号721)と、他方のカメラ2から入力された画像の各処理が(符号722)並列で実行されている。
【0108】
なお、図16では、2つのカメラ2に対する演算マッピングが示されているが、3つ以上のカメラ2についても同様の演算マッピングが可能である。このように、第2実施形態では、処理最適化部114は、複数の前記撮像装置のそれぞれに対して、異なる前記割り当て及び前記時間割を決定する。
【0109】
このような演算マッピングが行われることによって、複数のカメラ2による支援が必要な場合、図16のような演算マッピングを行うことが可能である。
【0110】
本発明は前記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、前記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を有するものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0111】
本実施形態では、演算マッピングの対象が画像処理となっているが、これに限らない。例えば、ロボット5の動作に関する処理が演算マッピングの対象となってもよい。
【0112】
また、前記した各構成、機能、認識部111~処理最適化部114、動作情報121~画像処理構成情報125等は、それらの一部又はすべてを、例えば集積回路で設計すること等によりハードウェアで実現してもよい。また、図2に示すように、前記した各構成、機能等は、CPU11等のプロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、情報、ファイル等の情報は、HD(Hard Disk)に格納すること以外に、メモリ14や、SSD(Solid State Drive)等の記録装置、又は、IC(Integrated Circuit)カードや、SD(Secure Digital)カード、DVD(Digital Versatile Disc)等の記録媒体に格納することができる。
また、各実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には、ほとんどすべての構成が相互に接続されていると考えてよい。
【符号の説明】
【0113】
1 コントローラ
2,2a,2b カメラ(撮像装置)
3 表示装置
4 操作ハンドル
5 ロボット
11 CPU
12 FPGA
17 補助記憶装置
18 入力装置
51 ロボットアーム
52 ロボットハンド
110 処理部
111 認識部
112 関連定義部
113 画像処理構成部(制御処理構成部)
114 処理最適化部
120 データベース部(記憶部)
121 動作情報
122 作業場所情報
123 作業対象物情報
124 作業工程情報
125 画像処理構成情報(制御処理構成情報)
610 作業場所登録画面
611 破線四角
620 作業対象物登録画面
621 破線四角
D GUI画面
D1 ユーティリティ領域
D2 作業工程編集領域
D3 処理態様編集領域
D11 作業認識ボタン
D12 画像処理検証ボタン
D21 作業定義領域
D22 動作ボタン
D23 作業対象物ボタン
D24 作業場所ボタン
D25 追加ボタン
D210 動作単位設定領域
D211 動作内容表示領域
D212 作業対象物表示領域
D213 作業場所表示領域
D214 繰り返し回数設定領域
D215 動作速度設定領域
Z ロボット操作システム(作業工程支援システム)
S1 作業場所・作業対象物登録処理(認識ステップ)
S27 作業工程情報の生成(関連定義ステップ)
S31 画像処理構成情報の生成(制御処理構成ステップ)
S33 演算マッピング(処理最適化ステップ)
S34 出力(処理最適化ステップ)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16