JP6992415B2 - ロボットシステムの制御装置及びロボットシステム - Google Patents

ロボットシステムの制御装置及びロボットシステム Download PDF

Info

Publication number
JP6992415B2
JP6992415B2 JP2017214446A JP2017214446A JP6992415B2 JP 6992415 B2 JP6992415 B2 JP 6992415B2 JP 2017214446 A JP2017214446 A JP 2017214446A JP 2017214446 A JP2017214446 A JP 2017214446A JP 6992415 B2 JP6992415 B2 JP 6992415B2
Authority
JP
Japan
Prior art keywords
parts
control device
feeder
robot
vibration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017214446A
Other languages
English (en)
Other versions
JP2018202599A (ja
Inventor
豊太郎 木下
寿幸 石垣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=64956047&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP6992415(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to CN201810567589.1A priority Critical patent/CN108994829A/zh
Priority to EP18175990.3A priority patent/EP3412414A3/en
Priority to EP23165668.7A priority patent/EP4223462A1/en
Priority to US16/000,084 priority patent/US10894316B2/en
Publication of JP2018202599A publication Critical patent/JP2018202599A/ja
Application granted granted Critical
Publication of JP6992415B2 publication Critical patent/JP6992415B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、パーツ(部品)を取り扱うロボットシステムの制御に関するものである。
特許文献1には、ロボットがパーツフィーダーからパーツ(部品)を拾い上げて組み立て作業を行う技術が開示されている。この従来技術では、旋回式のパーツフィーダー内のパーツをカメラで撮像し、画像処理によってパーツの有無と位置と姿勢を認識し、その認識結果に従ってロボットがパーツの把握及び組み付け作業を実行する。
特開昭60-200385号公報
しかしながら、従来技術では、パーツの種類や形状に応じて専用のパーツフィーダーを用いなければならないという問題があった。また、通常のパーツフィーダーは単純な動作しか行えないため、パーツフィーダーからパーツを拾い上げる作業の効率を向上させることが困難な場合があるという問題があった。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態(aspect)として実現することが可能である。
本発明の一形態は、パーツを収容するパーツ収容部と前記パーツ収容部を振動させる複数の振動アクチュエーターとを有するパーツフィーダーと、前記パーツ収容部からパーツを拾い上げるエンドエフェクターを有するロボットと、を備えるロボットシステムを制御する制御装置であって、前記パーツフィーダーを制御するパーツフィーダー制御部と、前記ロボットを制御するロボット制御部と、を備え、前記パーツフィーダー制御部は、前記複数の振動アクチュエーターの制御パラメーターをそれぞれ含む複数の制御コマンドの中から1つ以上の制御コマンドを選択し、選択した制御コマンドを前記パーツフィーダーに送信することによって、前記選択した制御コマンドに応じた動作を前記パーツフィーダーに行わせる。前記複数の振動アクチュエーターは、前記パーツ収容部の4つの隅の位置に固定された4つの振動アクチュエーターを含み、前記複数の制御コマンドは、前記パーツ収容部内で集合している複数のパーツを分離するセパレーション動作を前記パーツフィーダーに実行させるためのセパレーションコマンドと、前記パーツ収容部内のパーツの姿勢を変更する姿勢変更動作を前記パーツフィーダーに実行させるための姿勢変更コマンドと、を含む。
(1)本発明の第1の形態によれば、パーツを収容するパーツ収容部と前記パーツ収容部を振動させる複数の振動アクチュエーターとを有するパーツフィーダーと、前記パーツ収容部からパーツを拾い上げるエンドエフェクターを有するロボットと、を備えるロボットシステムを制御する制御装置が提供される。この制御装置は、前記パーツフィーダーを制御するパーツフィーダー制御部と、前記ロボットを制御するロボット制御部と、を備える。前記パーツフィーダー制御部は、前記複数の振動アクチュエーターの制御パラメーターをそれぞれ含む複数の制御コマンドの中から1つ以上の制御コマンドを選択し、選択した制御コマンドを前記パーツフィーダーに送信することによって、前記選択した制御コマンドに応じた動作を前記パーツフィーダーに行わせる。
この制御装置によれば、振動アクチュエーターの制御パラメーターをそれぞれ含む複数の制御コマンドの中から1つ以上の制御コマンドを選択してパーツフィーダーに送信するので、パーツフィーダーの動作に適した制御パラメーターをパーツフィーダーに送信することができる。この結果、パーツの種類や形状に応じてパーツフィーダーを適切に動作させることが可能となる。或いは、パーツフィーダーからパーツを拾い上げる作業の効率を向上させることが可能となる。
(2)上記制御装置において、前記複数の制御コマンドは、前記パーツ収容部内で集合している複数のパーツを分離するセパレーション動作を前記パーツフィーダーに実行させるためのセパレーションコマンドを含むものとしてもよい。
この制御装置によれば、セパレーションコマンドを用いてパーツを互いに分離することにより、パーツフィーダーからパーツを拾い上げる作業の効率を向上させることが可能である。
(3)上記制御装置において、前記複数の制御コマンドは、前記複数の制御コマンドは、前記パーツ収容部内のパーツの姿勢を変更する姿勢変更動作を前記パーツフィーダーに実行させるための姿勢変更コマンドを含むものとしてもよい。
この制御装置によれば、姿勢変更コマンドを利用してパーツの姿勢を変更することにより、パーツを拾い上げる作業の効率を向上させることが可能である。
(4)上記制御装置において、前記セパレーションコマンドと前記姿勢変更コマンドのそれぞれは、前記複数の振動アクチュエーターを振動させるコマンドであり、前記セパレーションコマンドでは、前記姿勢変更コマンドよりも前記振動アクチュエーターの振動継続期間が長く設定されているものとしてもよい。
この制御装置によれば、セパレーションコマンドでは、姿勢変更コマンドよりも振動アクチュエーターの振動継続期間が長く設定されているので、パーツ同士をうまく分離することが可能である。
(5)上記制御装置は、前記パーツ収容部内のパーツの画像を撮像するカメラで取得された画像を使用して、前記パーツ収容部内のパーツを認識する画像認識を実行する画像認識部を備え、前記パーツフィーダー制御部は、前記画像認識の結果を用いて前記複数の制御コマンドの中から1つ以上の制御コマンドを選択して前記パーツフィーダーに送信するものとしてもよい。
この制御装置によれば、画像認識によってパーツ収容部内のパーツを認識するので、認識された結果に応じた制御コマンドをパーツフィーダーに送信して適切に動作させることが可能である。
(6)上記制御装置において、前記画像認識部は、前記パーツ収容部のパーツ収容領域を、パーツ補給装置からパーツの補給を受ける補給区画と、前記エンドエフェクターがパーツの拾い上げを行うピッキング区画と、を含む複数の区画に仮想的に区分し、前記画像認識によって前記ピッキング区画にパーツが存在することが認識された場合には、前記ロボット制御部が、前記認識されたパーツを前記エンドエフェクターによって拾い上げるように前記ロボットを制御し、前記画像認識によって前記ピッキング区画にパーツが存在しないことが認識された場合には、前記パーツフィーダー制御部が、前記ピッキング区画以外の区画から前記ピッキング区画にパーツを移動させるフィードコマンドを前記パーツフィーダーに送信するものとしてもよい。
この制御装置によれば、パーツ収容領域を、補給区画とピッキング区画とを含む複数の区画に仮想的に区分し、ピッキング区画からパーツを拾い上げるようにしたので、パーツを拾い上げる作業の効率を向上させることが可能である。また、画像認識によってピッキング区画にパーツが存在しないことが認識された場合にピッキング区画以外の区画からピッキング区画にパーツを移動させるので、ピッキング区画にパーツを適切に移動させることが可能となる。
(7)上記制御装置において、前記画像認識によって前記ピッキング区画に拾い上げ不可能なパーツのみが存在することが認識された場合には、前記パーツフィーダー制御部が、前記パーツの姿勢を変更させる姿勢変更コマンドを前記パーツフィーダーに送信するものとしてもよい。
この制御装置によれば、姿勢変更コマンドによって、パーツの姿勢を、拾い上げ不可能な姿勢から拾い上げ可能な姿勢に変更することが可能である。
(8)上記制御装置において、前記複数の区画は、更に、前記補給区画と前記ピッキング区画の間に設けられた中間区画を含み、前記フィードコマンドは、前記補給区画に存在するパーツを前記中間区画に移動させるとともに、前記中間区画に存在するパーツを前記ピッキング区画に移動させる動作を前記パーツフィーダーに実行させるものとしてもよい。
この制御装置によれば、フィードコマンドを用いて、補給区画、中間区画、ピッキング区画の順に、パーツを適切に移動させることが可能である。また、ピッキング区画におけるパーツの拾い上げ作業と、補給区画へのパーツの補給作業とを効率良く行うことが可能である。
(9)上記制御装置において、前記パーツ収容部は、パーツ収容領域と、前記パーツ収容領域の外周に設けられた外周壁とを有し、前記パーツ収容領域の外周部分には、前記エンドエフェクターの把持機構と前記外周壁とが干渉する干渉領域が存在し、前記パーツフィーダー制御部は、セパレーションコマンドによってパーツの分離を行った後に、前記干渉領域に存在するパーツを前記パーツ収容領域の内部に向けて移動させるセンタリングコマンドを前記パーツフィーダーに送信するものとしてもよい。
この制御装置によれば、エンドエフェクターの把持機構と外周壁との干渉を低減できるので、パーツの拾い上げ作業の効率を向上することが可能である。
(10)上記制御装置において、前記画像認識部は、前記カメラで取得された画像において、各パーツの外縁の複数の箇所に、前記エンドエフェクターの把持機構がパーツを把持するために使用する付加領域を設定する設定処理と、前記画像において、前記付加領域が他のパーツと重なっていないパーツを把持可能パーツとして認識する認識処理と、を実行するものとしてもよい。また、前記ロボット制御部は、前記把持可能パーツを前記エンドエフェクターの前記把持機構で把持して拾い上げるように前記ロボットを制御するものとしてもよい。
この制御装置によれば、エンドエフェクターの把持機構がパーツを把持するために使用する付加領域を考慮して把持可能パーツを認識するので、把持機構で把持できないパーツを把持対象のパーツと認識することを防止することができ、パーツの拾い上げ作業の効率を向上させることが可能である。
(11)上記制御装置において、前記画像認識部は、前記認識処理の後に、前記画像から前記把持可能パーツを消去することによって前記画像を更新する画像更新処理と、前記更新された画像を用いて、前記認識処理と前記画像更新処理とを繰り返す処理と、を実行するとともに、前記認識処理と前記画像更新処理との繰り返しの際に個々のパーツが前記把持可能パーツとして認識された順番を登録するものとしてもよい。また、前記ロボット制御部は、前記順番に従って前記パーツを前記エンドエフェクターの前記把持機構で把持して拾い上げるように前記ロボットを制御するものとしてもよい。
この制御装置によれば、認識処理と画像更新処理との繰り返しによって、より多数のパーツを把持可能パーツとして認識できるので、パーツの拾い上げ作業の効率を向上させることが可能である。
(12)上記制御装置において、前記エンドエフェクターは、第1ピックアップ機構と第2ピックアップ機構とを有するものとしてもよい。このとき、前記画像認識部は、前記ピッキング区画内に存在するパーツのうちで、1つのパーツを前記第1ピックアップ機構で拾い上げ可能な第1のピックアップ可能パーツとして認識する処理と、前記第1のピックアップ可能パーツを前記第1ピックアップ機構で保持した状態において前記第2ピックアップ機構で拾い上げ可能な第2のピックアップ可能パーツを認識する処理と、を実行するものとしてもよい。
この制御装置によれば、2つのピックアップ機構を用いてパーツを拾い上げる作業の効率を向上させることが可能である。
(13)上記制御装置において、前記画像認識部は、前記第2のピックアップ可能パーツを認識する処理において、前記第1のピックアップ可能パーツを前記第1ピックアップ機構で保持した状態において前記第2ピックアップ機構で拾い上げ可能となる1つ以上のパーツに対して、予め定められた計算方法に従ってピックアップコストをそれぞれ計算し、前記ピックアップコストに従って前記第2のピックアップ可能パーツを選択するものとしてもよい。
この制御装置によれば、第2ピックアップ機構でパーツを把持する効率を向上させることが可能である。
(14)上記制御装置において、前記制御パラメーターは、前記振動アクチュエーターに供給する振動信号の周波数と、前記振動信号の振幅と、振動継続時間と、を含むものとしてもよい。
この制御装置によれば、振動信号の周波数と振幅と振動継続時間に従って、パーツの種類に適した動作をパーツフィーダーに行わせることができるので、パーツの拾い上げ作業の効率を向上させることが可能である。
(15)上記制御装置は、前記複数の振動アクチュエーターの制御パラメーターを予め記憶する不揮発性メモリーを有し、前記不揮発性メモリーに記憶された前記制御パラメーターは、(a)前記複数の振動アクチュエーターそれぞれの振動強度のバランスと、(b)前記パーツ収容部内に存在するパーツの動きを活発化させることが可能な前記振動信号の周波数と、(c)前記パーツ収容部内に存在するパーツが前記パーツ収容部の外部に飛び出すことを防止することが可能な前記振動信号の振幅と、を含むものとしてもよい。
この制御装置によれば、適切な制御パラメーターを予め不揮発性メモリーに記憶しておくので、これらの制御パラメーターを用いてパーツフィーダーを効率的に動作させることができ、パーツの拾い上げ作業の効率を向上させることが可能である。
(16)本発明の第2の形態は、パーツを収容するパーツ収容部と前記パーツ収容部を振動させる複数の振動アクチュエーターとを有するパーツフィーダーと;前記パーツ収容部からパーツを拾い上げるエンドエフェクターを有するロボットと;前記パーツフィーダー及び前記ロボットに接続された上記制御装置と;を備えるロボットシステムである。
このロボットシステムによっても、パーツの種類や形状に応じてパーツフィーダーを適切に動作させることが可能となる。或いは、パーツフィーダーからパーツを拾い上げる作業の効率を向上させることが可能となる。
本発明は、上記以外の種々の形態で実現することも可能である。例えば、制御装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した一時的でない記録媒体(non-transitory storage medium)等の形態で実現することができる。
第1実施形態におけるロボットシステムの概念図。 制御装置の機能を示すブロック図。 パーツ収容部の平面図。 フィードコマンドによるフィード動作を示す説明図。 セパレーションコマンドによるセパレーション動作を示す説明図。 フリップコマンドによるフリップ動作を示す説明図。 センタリングコマンドによるセンタリング動作を示す説明図。 パーツ収容領域へのパーツの初回補給の様子を示す説明図。 パーツのセンタリング動作の結果を示す説明図。 パーツのセパレーション動作の結果を示す説明図。 パーツの拾い上げの様子を示す説明図。 パーツのフリップ動作の結果を示す説明図。 パーツの拾い上げの様子を示す説明図。 パーツのフィード動作の結果を示す説明図。 パーツの拾い上げと補給の様子を示す説明図。 パーツの拾い上げの様子を示す説明図。 パーツのフィード動作の様子を示す説明図。 パーツの拾い上げと補給の様子を示す説明図。 パーツの拾い上げの様子を示す説明図。 第1実施形態におけるパーツフィーダー制御のフローチャート。 パーツ数とセパレーション時間の関係を示すグラフ。 第1実施形態におけるロボット制御のフローチャート。 第2実施形態におけるパーツフィーダー制御のフローチャート。 第3実施形態におけるロボットシステムの概念図。 第3実施形態におけるパーツフィーダー制御のフローチャート。 パーツ収容領域の外周における干渉領域を示す説明図。 干渉領域回避のためのセンタリングコマンドの動作を示す説明図。 把持用の付加領域を設けたパーツの画像認識処理の説明図。 把持可能パーツが消去されるように更新された画像の説明図。 更に更新された画像の説明図。 更に更新された画像の説明図。 パーツ座標リストの説明図。 更新されたパーツ座標リストの説明図。 更に更新されたパーツ座標リストの説明図。 第4実施形態におけるパーツフィーダー制御のフローチャート。 バックフィード動作に適した状態を示す説明図。 画像認識で得られるプラットフォーム状態の例を示す説明図。 第5実施形態におけるロボットシステムの概念図。 第5実施形態のエンドエフェクターの説明図。 2つの把持機構で把持可能なパーツの認識処理の説明図。 2つの把持機構で把持可能なパーツの認識処理の説明図。 2つの把持機構で把持可能なパーツの認識処理の説明図。 2つの把持機構で把持可能なパーツの認識処理の説明図。 パーツフィーダーの制御パラメーターの初期設定のフローチャート。 パーツの動きを活発化させる振動周波数の説明図。 パーツをパーツ収容部から飛び出させない振動振幅の説明図。 検出パーツ数を増加させるフィーダー内パーツ個数の説明図。 シミュレーションによるパーツ個数の決定処理を示す説明図。 セパレーション動作の継続時間の説明図。
A. 第1実施形態
図1は、第1実施形態におけるロボットシステムの概念図である。このロボットシステムは、架台700に設置されており、ロボット100と、制御装置200と、ティーチングペンダント300と、パーツフィーダー400と、ホッパー500と、パーツトレイ600とを備えている。ロボット100は、架台700の天板710の下に固定されている。パーツフィーダー400と、ホッパー500と、パーツトレイ600は、架台700のテーブル部720に載置されている。ロボット100は、ティーチングプレイバック方式のロボットである。ロボット100を用いた作業は、予め作成された教示データに従って実行される。このロボットシステムには、直交する3つの座標軸X,Y,Zで規定されるシステム座標系Σsが設定されている。図1の例では、X軸とY軸は水平方向であり、Z軸は鉛直上方向である。教示データに含まれる教示点やエンドエフェクタの姿勢は、このシステム座標系Σsの座標値と各軸回りの角度で表現される。
ロボット100は、基台120と、アーム130とを備えている。アーム130は、4つの関節J1~J4で順次接続されている。これらの関節J1~J4のうち、3つの関節J1,J2,J4はねじり関節であり、1つの関節J3は並進関節である。本実施形態では4軸ロボットを例示しているが、1個以上の関節を有する任意のアーム機構を有するロボットを用いることが可能である。
アーム130の先端部であるアームエンド132には、エンドエフェクター160aが装着されている。図1の例では、エンドエフェクター160aは、パーツを真空吸着する吸着ノズル162を有する吸着ピックアップ機構である。アーム130には、更に、カメラ180が装着されている。このカメラ180は、エンドエフェクター160aでパーツを拾い上げる際に、拾い上げるべきパーツを選択する際に使用される。但し、このカメラ180は省略可能である。
パーツフィーダー400は、パーツを収容するパーツ収容部410と、パーツ収容部410を振動させる振動部420とを有する。架台700の天板710の下には、パーツ収容部410内のパーツの画像を撮像するためのカメラ430が設置されている。
ホッパー500は、パーツフィーダー400にパーツを補給するパーツ補給装置である。本明細書において、「ホッパー」という語句は、漏斗形状を有する装置に限らず、パーツを補給する装置を示す用語として使用する。
パーツトレイ600は、パーツを個別に収容するための多数の凹部を有するトレイである。本実施形態において、ロボット100は、パーツフィーダー400のパーツ収容部410の中からパーツを拾い上げて、パーツトレイ600内の適切な位置に収納する作業を実行する。但し、ロボットシステムは、これ以外の他の作業を行う場合にも適用可能である。
制御装置200は、プロセッサー210と、メインメモリー220と、不揮発性メモリー230と、表示制御部240と、表示部250と、I/Oインターフェース260とを有している。これらの各部は、バスを介して接続されている。プロセッサー210は、例えばマイクロプロセッサー又はプロセッサー回路である。制御装置200は、I/Oインターフェース260を介して、ロボット100と、ティーチングペンダント300と、パーツフィーダー400と、ホッパー500とに接続される。制御装置200は、更に、I/Oインターフェース260を介してカメラ180,430にも接続される。
制御装置200の構成としては、図1に示した構成以外の種々の構成を採用することが可能である。例えば、プロセッサー210とメインメモリー220を図1の制御装置200から削除し、この制御装置200と通信可能に接続された他の装置にプロセッサー210とメインメモリー220を設けるようにしてもよい。この場合には、当該他の装置と制御装置200とを合わせた装置全体が、ロボット100の制御装置として機能する。他の実施形態では、制御装置200は、2つ以上のプロセッサー210を有していてもよい。更に他の実施形態では、制御装置200は、互いに通信可能に接続された複数の装置によって実現されていてもよい。これらの各種の実施形態において、制御装置200は、1つ以上のプロセッサー210を備える装置又は装置群として構成される。
ティーチングペンダント300は、人間の教示作業者がロボット100の動作を教示する際に使用するロボット教示装置の一種である。ティーチングペンダント300は、図示しないプロセッサーとメモリーとを有している。ティーチングペンダント300を用いた教示により作成される教示データは、制御装置200の不揮発性メモリー230に記憶される。
図2は、制御装置200の機能を示すブロック図である。制御装置200のプロセッサー210は、不揮発性メモリー230に予め記憶された各種のプログラム命令231を実行することにより、ロボット制御部211と、パーツフィーダー制御部212と、ホッパー制御部213と、画像認識部214と、制御パラメーター設定部215の機能をそれぞれ実現する。これらの各部211~215の機能については後述する。パーツフィーダー400は、制御部422と、複数の振動アクチュエーター424とを有している。複数の振動アクチュエーター424は、パーツ収容部410(図1)を振動させる振動子である。
不揮発性メモリー230は、プログラム命令231と教示データ235の他に、振動アクチュエーター424の制御パラメーター232及び制御コマンド233と、パーツ座標リスト234とを記憶する。制御パラメーター232と制御コマンド233とパーツ座標リスト234については後述する。ロボット制御部211とパーツフィーダー制御部212とホッパー制御部213は、教示データ235に従って各部の作業を制御する。
図3は、パーツ収容部410の平面図である。パーツ収容部410は、パーツ収容領域412と、パーツ収容領域412の外周に設されてZ方向に延びる外周壁414とを有する。パーツ収容領域412は、平坦な略矩形状の領域である。この例では、X方向がパーツ収容領域412の長手方向であり、Y方向がパーツ収容領域412の短手方向である。パーツを安定して収容するために、パーツ収容領域412の表面は水平に維持されることが好ましい。なお、パーツ収容領域412を「プラットフォーム」とも呼ぶ。パーツ収容領域412の下方には、複数の振動アクチュエーター424a~424dが設置されている。振動アクチュエーター424a~424dを示す白丸は、パーツ収容領域412の下にある振動アクチュエーター424a~424dの平面的な位置を示している。実際には、これらの振動アクチュエーター424a~424dは、パーツ収容領域412の下に視認できない状態で設置されている。ここでは、振動アクチュエーターの数は4であり、パーツ収容領域412の4つの隅に設置されている。但し、振動アクチュエーターの数は4つに限らず、任意数の振動アクチュエーターを設けるようにしてもよい。
複数の振動アクチュエーター424a~424dの符号の末尾に付された小文字の「a」~「d」は、各振動アクチュエーターを区別するために付した追加的な符号である。エンドエフェクター160aの符号の末尾の「a」も、他の実施形態で使用するエンドエフェクターと区別するために付した追加的な符号である。以下の説明において、このような追加的な符号が不要な場合には、「a」~「d」等を省略する。
パーツ収容領域412は、仮想的な3つの区画RA,RB,RCに区分されている。隣接する区画の間の境界線は、パーツ収容領域412の短手方向(Y方向)に平行に設定されることが好ましい。ピッキング区画RAは、エンドエフェクター160aがパーツの拾い上げを行う区画である。補給区画RCは、ホッパー500からパーツの補給を受ける区画である。中間区画RBは、ピッキング区画RAと補給区画RCの間に設けられた区画である。これらの区画の幅(X方向の寸法)は、互いに等しく設定されていることが好ましい。具体的には、複数の区画RA~RCの幅の平均値を100%としたときに、各区画の幅は100%±10%の範囲にあることが好ましい。
ピッキング区画RAとしては、複数の区画RA~RCのうちでロボット100の作業のタクトタイムが最も短い区画を選択することが好ましい。こうすれば、ロボット100の作業効率を最も高くすることが可能である。なお、本実施形態において、「タクトタイム」は、ロボット100が1つのパーツをパーツフィーダー400から拾い上げてパーツトレイ600内に収納する作業を複数回繰り返す場合に、1回の作業に要する時間である。通常は、複数の区画RA~RCのうちで、パーツトレイ600に最も近い区画がピッキング区画RAとして選択される。
なお、パーツ収容領域412に設ける区画の数は、3に限らず、2としても良く、4以上としても良い。或いは、パーツ収容領域412を複数の区画に区分しなくても良い。但し、パーツ収容領域412を複数の区画に区分すれば、ロボット100の作業の効率を向上させることができる。なお、図3の例では複数の区画の境界線を短手方向(X方向)に平行に設定していたが、この代わりに、複数の区画の境界線を長手方向(Y方向)に平行に設定してもよい。或いは、複数の区画の境界線として、短手方向(X方向)に平行な境界線と長手方向(Y方向)に平行な境界線をそれぞれ設定してもよい。具体的には、例えば、複数の区画を2×2のチェッカーボード状に配置してもよい。
パーツフィーダー400は、制御装置200のパーツフィーダー制御部212から送信される各種の制御コマンドに応じて種々の動作を行うことが可能に構成されている。それぞれの制御コマンドは、例えば以下の制御パラメーターを含むものとして構成される。
(1)振動信号の周波数
(2)振動信号の振幅
(3)振動信号の位相
(4)振動継続時間
「振動信号」とは、パーツフィーダー400の制御部422から個々の振動アクチュエーター424に与えられる信号であり、この振動信号に応じて個々の振動アクチュエーター424が振動する。
振動アクチュエーター424の制御パラメーターとしては、それぞれの動作に適した振動信号の波形も存在する。各制御コマンドによって選択される振動信号の波形は、例えば、パーツフィーダー400の制御部422(図2)内の図示しない不揮発性メモリーに予め記憶されている。この場合に、制御部422は、制御装置200から供給された制御コマンドに応じて振動信号の波形を選択する。但し、制御部422内に格納されている複数種類の振動信号の波形の中から1つの波形を選択するパラメーターを含む制御コマンドを、制御装置200からパーツフィーダー400の制御部422に送信するようにしてもよい。
以下では、代表的な制御コマンドとして、フィードコマンドと、セパレーションコマンドと、フリップコマンドと、センタリングコマンドを説明する。なお、振動アクチュエーター424の制御パラメーターを「振動パラメーター」とも呼ぶ。
図4Aは、フィードコマンドによるフィード動作を示す説明図である。複数の振動アクチュエーター424a~424dのうち、白丸の中に黒丸が追加されている振動アクチュエーターはこの動作において振動し、黒丸が追加されていない振動アクチュエーターは振動しない。これは後述する他の動作でも同様である。フィード動作では、パーツ収容領域412の長手方向(X方向)の右端にある2つの振動アクチュエーター424c,424dが振動し、左端にある2つの振動アクチュエーター424a,424bは振動しない。また、動作する2つの振動アクチュエーター424c,424dは、同じ位相で振動する。この結果、パーツ収容領域412内にあるパーツPPは、右から左に向かう方向(-X方向)に移動する。例えば、フィードコマンドを一回実行することにより、中間区画RBに存在するパーツPPがピッキング区画RAに移動し、補給区画RCに存在するパーツPPが中間区画RBに移動するようにパーツフィーダー400を動作させることが可能である。
フィードコマンドに含まれる制御パラメーターは、例えば以下の通りである。
(1)振動信号の周波数:パーツPPの動きを活発化させることが可能な周波数(例えばパーツ収容領域412の共振周波数)。
(2)振動信号の振幅:パーツPPをパーツ収容領域412上を滑るように移動させることが可能な振幅。
(3)振動信号の位相:複数の振動アクチュエーター424で同位相。
(4)振動継続時間:パーツPPを1つの区画から隣の区画に移動させることが可能な時間。
図4Bは、セパレーションコマンドによるセパレーション動作を示す説明図である。セパレーション動作では、複数の振動アクチュエーター424a~424dが同時に動作する。また、4つの振動アクチュエーター424a~424dは、同じ位相で振動する。このセパレーション動作では、パーツ収容領域412内で集合している複数のパーツPPを分離することが可能である。このようなセパレーションコマンドを用いてパーツPPを互いに分離することにより、パーツフィーダー400からパーツを拾い上げる作業の効率を向上させることが可能である。
セパレーションコマンドに含まれる制御パラメーターは、例えば以下の通りである。
(1)振動信号の周波数:パーツPPの動きを活発化させることが可能な
周波数(例えばパーツ収容領域412の共振周波数)。
(2)振動信号の振幅:パーツPPがパーツ収容領域412から外部に飛び出さない限度で可能な限り大きな振幅。
(3)振動信号の位相:複数の振動アクチュエーター424で同位相。
(4)振動継続時間:中間区画RBに集合したパーツPPを複数の区画RA~RCにほぼ均一に分散させることが可能な時間。
図4Cは、フリップコマンドによるフリップ動作を示す説明図である。フリップ動作では、複数の振動アクチュエーター424a~424dが同時に動作する。また、4つの振動アクチュエーター424a~424dは、同じ位相で振動する。このフリップ動作では、パーツ収容領域412内のパーツPPを裏返すことが可能である。砂地模様のパーツPPfは表向きのパーツであり、斜線のハッチングが付されたパーツPPbは裏向きのパーツである。フリップ動作は、これらのパーツPPを裏返す動作である。
フリップコマンドに含まれる制御パラメーターは、例えば以下の通りである。
(1)振動信号の周波数:パーツPPの動きを活発化させることが可能な周波数(例えばパーツ収容領域412の共振周波数)。
(2)振動信号の振幅:パーツPPがパーツ収容領域412から外部に飛び出さない限度で可能な限り大きな振幅。
(3)振動信号の位相:複数の振動アクチュエーター424で同位相。
(4)振動継続時間:可能な限り短く、かつ、パーツPPが裏返る数が多くなる時間。
フリップコマンドでは、セパレーションコマンドよりも振動継続期間が短く設定されている。すなわち、セパレーションコマンドは、フリップコマンドよりも振動アクチュエーター424の振動継続期間が長く設定されている。
フリップコマンドに従って振動アクチュエーター424に供給される振動信号の波形は、パーツPPを裏返すことが可能な波形とすることが好ましい。
なお、フリップコマンドは、パーツPPの姿勢を変更する姿勢変更コマンドの一種である。フリップコマンド以外の姿勢変更コマンドとしては、例えば、パーツPPをパーツ収容領域412の表面上で回転させるローテーションコマンドを利用することができる。ローテーションコマンドによるローテーション動作では、パーツPPが鉛直方向(Z方向)の回りに回転する。例えば、後述する他の実施形態のように、パーツPPを把持する把持機構を用いてパーツPPを拾い上げるときには、ローテーションコマンドのようなフリップコマンド以外の姿勢変更コマンドが有効な場合がある。姿勢変更コマンドを利用してパーツPPの姿勢を変更すれば、パーツPPを拾い上げる作業の効率を向上させることが可能である。
セパレーションコマンドと、フリップコマンド等の姿勢変更コマンドと、を利用すれば、パーツを拾い上げる作業の効率を向上させることが可能である。また、セパレーションコマンドでは、フリップコマンド等の姿勢変更コマンドよりも振動アクチュエーターの振動継続期間が長く設定されているので、パーツ同士をうまく分離することが可能である。
図4Dは、センタリングコマンドによるセンタリング動作を示す説明図である。センタリング動作では、複数の振動アクチュエーター424a~424dが同時に動作する。図4Dのセンタリング動作は、パーツPPをパーツ収容領域412の長手方向(X方向)の中心に向けて移動させるので、X方向の一方の端部にある振動アクチュエーター424a,424bが、他方の端部にある振動アクチュエーター424c,424cと180度異なる位相で振動する。他のセンタリング動作として、パーツPPをパーツ収容領域412の短手方向(Y方向)の中心に向けて移動させる動作も可能である。このセンタリング動作では、Y方向の一方の端部にある振動アクチュエーター424a,424cは、他方の端部にある振動アクチュエーター424b,424cと180度異なる位相で振動する。
センタリングコマンドに含まれる制御パラメーターは、例えば以下の通りである。
(1)振動信号の周波数:パーツPPの動きを活発化させるのに適した周波数(例えばパーツ収容領域412の共振周波数)。
(2)振動信号の振幅:パーツPPがパーツ収容領域412から外部に飛び出さない限度で可能な限り大きな振幅。
(3)振動信号の位相:一方の端部にある振動アクチュエーター424と、他方の端部にある振動アクチュエーター424で逆位相。
(4)振動継続時間:センタリング動作の目的に適した時間。
「センタリング動作の目的」としては、例えば、(a)図4Bで説明したセパレーション動作の前処理としてパーツPPをパーツ収容領域412の中央に集合させること、及び、(b)セパレーション動作の後でパーツ収容領域412の外周にある干渉領域(第3実施形態で説明する)に存在するパーツPPをパーツ収容領域412の内部に向けて移動させること、という2つ異なる目的を設定可能である。目的が異なるセンタリング動作の振動継続時間は、それぞれの目的に応じた適切な時間に設定される。
パーツフィーダー制御部212は、複数の振動アクチュエーター424の制御パラメーターをそれぞれ含む複数の制御コマンドの中から1つ以上の制御コマンドを選択し、選択した制御コマンドをパーツフィーダー400に送信することによって、選択した制御コマンドに応じた動作をパーツフィーダー400に行わせる。従って、パーツフィーダー400の動作に適した制御パラメーターをパーツフィーダー400に送信することができる。この結果、パーツPPの種類や形状に応じてパーツフィーダー400を適切に動作させることが可能となる。或いは、パーツフィーダー400からパーツPPを拾い上げる作業の効率を向上させることが可能となる。
各制御コマンドに適した制御パラメーターは、ロボット100によるパーツPPの拾い上げ作業を実施する前に、制御パラメーター設定部215によって予め設定されて不揮発性メモリー230に格納される。このような制御パラメーターの初期設定については、パーツPPの拾い上げ作業に関する各種の実施形態の後に説明する。
図5A~図5Hは、ロボット100によるパーツPPの拾い上げ作業において、パーツ収容領域412内をパーツが移動する様子を示す説明図である。図5A~図5Hでは、振動アクチュエーター424の図示は省略している。
図5Aは、パーツPPがホッパー500からパーツ収容領域412に初めて補給された初期状態を示している。ホッパー500は、補給区画RC内に複数のパーツPPを補給する。砂地模様が付されたパーツPPは表向きのパーツであり、斜線のハッチングが付されたパーツPPは裏向きのパーツである。図5Aの状態でセンタリング動作を行うと、図5Bに示すように、パーツPPがパーツ収容領域412の中央(すなわち中間区画RB)に集合する。そして、セパレーション動作を行うと、図5Cに示すように、パーツPPがパーツ収容領域412のほぼ全体に分散する。このように、セパレーション動作の前にセンタリング動作を行うことで、パーツPPをより均一に分布させることができるが、パーツPPの種類や数、投入方法や投入位置によっては、セパレーション動作のみでパーツPPを均一に分散させることができる場合がある。このような場合には、センタリング動作を省略してもよい。図5Cの状態において、通常は、各区画RA,RB,RC内に、表向きのパーツPPfと裏向きのパーツPPbとが存在する。本実施形態におけるロボット100の作業は、表向きのパーツPPfを拾い上げてパーツトレイ600に収納する作業である。表向きパーツPPfと裏向きパーツPPbの検出は、カメラ430で取得された画像について、画像認識部214が画像認識処理を実行することによって行われる。
図5Dは、図5Cの状態から、ロボット100がピッキング区画RA内に存在する表向きのパーツPPfをすべて拾い上げた状態を示している。次にフリップ動作を行い、裏向きのパーツPPbを表向きにすると図5Eの状態となる。なお、図5Eでは区画RB,RCに存在するパーツPPは図5Dと同じ状態として図を簡略化しているが、実際にはこれらの区画RB,RCのパーツPPもフリップ動作により裏返る。このフリップ動作によって表向きとなったパーツPPfは、ロボット100によってピッキング区画RAから拾い上げられる。なお、パーツPPのフリップ動作と拾い上げ動作は、ピッキング区画RA内のすべてのパーツPPの拾い上げが完了するまで繰り返される。
図5Fは、ピッキング区画RA内のすべてのパーツPPの拾い上げが完了した状態を示している。次に、フィード動作を行い、パーツ収容領域412内のパーツPPをピッキング区画RAの方向に移動させると、図5Gの状態となる。このフィード動作は、それぞれの区画RB,RCからその隣の区画RA,RBにパーツPPを移動させるように実行される。そして、ピッキング区画RA内に存在するパーツPPに関して、図5C~図5Fで説明したパーツPPの拾い上げ動作とフリップ動作が行われ、ピッキング区画RA内のすべてのパーツPPが拾い上げられる。なお、図5Gの状態では、補給区画RCにパーツPPが存在しないので、ピッキング区画RAにおけるパーツPPの拾い上げ動作とフリップ動作に並行して、ホッパー500から補給区画RCにパーツPPを補給してもよい。
図5Hは、図5Gにおいてピッキング区画RA内にあった表向きのパーツPPfの拾い上げが終了し、また、補給区画RCにパーツPPが補給された状態を示している。図5Hの状態からパーツPPのフリップ動作と拾い上げ動作を必要に応じて繰り返すことにより、ピッキング区画RA内に存在するパーツPPをすべて拾い上げると、図5Iの状態となる。次に、フィード動作を行い、パーツ収容領域412内のパーツPPをピッキング区画RAの方向に移動させると、図5Jの状態となる。そして、ピッキング区画RA内に存在するパーツPPに関して、図5C~図5Fで説明したパーツPPの拾い上げ動作とフリップ動作が行われ、ピッキング区画RA内のすべてのパーツPPが拾い上げられる。なお、図5Jの状態では、図5Gの状態と同様に、補給区画RCにパーツPPが存在しないので、ピッキング区画RAにおけるパーツPPの拾い上げ動作とフリップ動作に並行して、ホッパー500から補給区画RCにパーツPPを補給してもよい。
図5Kは、図5Jにおいてピッキング区画RA内にあった表向きのパーツPPfの拾い上げが終了し、また、補給区画RCにパーツPPが補給された状態を示している。図5Kにおいて中間区画RBに存在するパーツPPは、図5Iで補給区画RCに補給されたパーツである。図5I及び図5Kでそれぞれ補給区画RCに補給されるパーツPPの個数は、予め実験的に決定されて不揮発性メモリー230内に格納されている。本実施形態において、1回当たりの補給個数は、例えば、図5Aにおける初回の補給個数の1/2の値に設定される。一般に、パーツ収容領域412がN412個(N412は2以上の整数)の区画に区分されている場合に、2回目以降の1回当たりの補給個数は、初回の補給個数の1/(N412-1)の値に設定されることが好ましい。
パーツPPの補給個数を一定値とする代わりに、パーツ収容領域412から拾い上げられたパーツPPの個数を補給個数として使用してもよい。具体的には、前回の補給時から今回の補給時までの間に拾い上げられたパーツPPの個数を補給個数としてもよい。こうすれば、補給後にパーツ収容領域412に存在するパーツPPの個数が一定となるので、拾い上げ作業の効率が向上する。
図5Kの状態からパーツPPのフリップ動作と拾い上げ動作を必要に応じて繰り返すことにより、ピッキング区画RA内に存在するパーツPPをすべて拾い上げると、図5Lの状態となる。図5L以降は、図5B~図5Kで説明したものと同様の動作(すなわち、センタリング動作以降の各種の動作)が実行される。こうすることにより、パーツフィーダー400内にパーツPPを適宜補給しながら、パーツPPの拾い上げ作業を実行できるので、パーツPPの拾い上げ作業を効率良く行うことができる。
図6は、第1実施形態におけるパーツフィーダー制御のフローチャートである。この制御は、特に断らない限り、パーツフィーダー制御部212によって実行される。また、図6の制御は、例えば一定時間毎に繰り返し実行される。
図6で使用されるパラメーターは以下の通りである。
nParts:ピッキング区画RA内での表向きパーツPPfの検出個数。
nPartsBack:ピッキング区画RA内での裏向きパーツPPbの検出個数。
syncLock:パーツフィーダー制御とロボット制御の同期制御パラメーター。syncLockがtrueの場合にはロボット100の拾い上げ動作が禁止され、syncLockがfalseの場合にはロボット100の拾い上げ動作が許可される。
nFeed:フィード動作のカウンター値。
N412:パーツ収容領域412の区画数。本実施形態ではN412=3である。
ステップS110では、ピッキング区画RA内での表向きパーツPPfの検出個数nPartsが1以上か否かが判断される。nPartsは、後述するステップS240で検出される値であり、初期値(デフォールト値)はゼロである。nPartsが1以上の場合には図6の処理を終了し、ロボット100によるパーツPPの拾い上げ動作が実行される。ステップS110の判断が最初に実行されるときにはnPartsはゼロなので、ステップS120に進む。ステップS120では、同期制御パラメーターsyncLockがtrueに設定され、ロボット100の拾い上げ動作が禁止される。
ステップS130では、ピッキング区画RA内での裏向きパーツPPbの検出個数nPartsBackが1以上か否かが判断される。nPartsBackは、後述するステップS250で検出される値であり、初期値(デフォールト値)はゼロである。nPartsBackが1以上の場合にはステップS140においてフリップ動作が実行され、後述するステップS240に進む。換言すれば、画像認識によってピッキング区画RAに拾い上げ不可能なパーツPPのみが存在することが認識された場合には、パーツPPを裏返すフリップ動作が実行される。ステップS140では、フリップ動作の代わりに他の種類の姿勢変更動作を行うようにしてもよい。この点については第3実施形態で説明する。なお、ステップS130の判断が最初に実行されるときにはnPartsBackはゼロであり、ステップS180に進む。
ステップS180では、フィード動作のカウンター値nFeedが1以上か否かが判断される。nFeedは、後述するステップS230で設定され、ステップS160で変更される値であり、初期値(デフォールト値)はゼロである。nFeedが1以上の場合には、後述するステップS150に進む。ステップS180の判断が最初に実行されるときにはnFeedはゼロであり、ステップS190に進む。
ステップS190では、ステップS190以降の処理が初めて実行されるか否かが判断される。初めての場合には、ステップS200に進み、ホッパー500からパーツフィーダー400への初回のパーツ補給が実行される。このパーツ補給は、図5Aで説明した動作であり、ホッパー制御部213がホッパー500に制御コマンドを送信することによって実行される。ステップS190以降の処理が初めてでない場合には、ステップS200をスキップして、ステップS210に進む。
ステップS210では図5Bで説明したセンタリング動作が実行され、ステップS220では図5Cで説明したセパレーション動作が実行される。ステップS230では、nFeedが(N412-1)に設定される。本実施形態ではN412=3なので、nFeedは2となる。ステップS230の後は、後述するステップS240に進む。
ステップS180に戻り、nFeedが1以上の場合にはステップS150に進む。nFeedが1以上となるのは、前述した図5F及び図5Iの状態である。この場合には、ステップS150においてフィード動作が行われ、ステップS160においてnFeedが1つデクリメントされ、ステップS170においてパーツ補給が行われる。このパーツ補給は、図5H及び図5Kで説明した動作である。ステップS170の後は、ステップS240に進む。なお、ステップS170は、後述するステップS260でロボット100の拾い上げ動作を許可した後に実行しても良い。
ステップS240では、ピッキング区画RA内での表向きパーツPPfの個数nPartsが検出される。この検出処理は、カメラ430で撮像された画像を使用して、画像認識部214がピッキング区画RA内に存在するパーツPPを認識する画像認識を実行することによって行われる。この画像認識は、例えば、表向きパーツPPfと裏向きパーツPPbのテンプレート画像を予め不揮発性メモリー230内に格納しておき、カメラ430で撮像された画像に対してテンプレートマッチングを実行することによって実現可能である。表向きパーツPPfが検出されると、その検出個数がnPartsの値として設定され、また、検出された表向きパーツPPfの座標がパーツ座標リスト234(図2)に登録される。なお、表向きパーツPPfの座標としては、例えば、システム座標系Σs(図1)の座標値が使用される。ステップS250では、ピッキング区画RA内での裏向きパーツPPbの個数nPartsBackが検出される。この検出処理も、カメラ430で撮像された画像を使用して、画像認識部214がピッキング区画RA内に存在するパーツPPを認識する画像認識を実行することによって行われる。裏向きパーツPPbが検出されると、その検出個数がnPartsBackの値として設定される。
ステップS260では、syncLockがfalseに設定され、ロボット100の拾い上げ動作を許可して図6の処理を終了する。
なお、ステップS190において初回で無いと判断される場合は、ピックアップ区画RAにおけるパーツの拾い上げ作業が完了した状態にあり、パーツ収容領域412内のパーツ個数が少ない状況にある。この場合には、ステップS220におけるセパレーション動作の時間(「セパレーション時間」と呼ぶ)を、初回にステップS220を実行する場合のセパレーション時間よりも短縮してもよい。
図7は、パーツ収容領域412内のパーツ数とセパレーション時間の関係を示すグラフG1,G2の例を示している。グラフG1,G2は、いずれもパーツ数が少ないほどセパレーション時間を短くする特性を示している。グラフG1は上に凸の曲線であり、グラフG2は階段状である。パーツ収容領域412内のパーツ数は、カメラ430(図1)を用いた画像認識処理によって取得可能である。このように、パーツ収容領域412内のパーツ数が少ないほどセパレーション時間を短く設定すれば、全体の作業時間を更に短縮できる。
図8は、第1実施形態におけるロボット制御のフローチャートである。この制御は、ロボット制御部211によって実行される。また、図8の制御は、例えば一定時間毎に繰り返し実行される。
ステップS310では、syncLockがtrue(動作禁止)から、false(動作許可)になるまで待機する。ステップS320では、ロボット100による拾い上げの対象とするパーツPPの座標を、パーツ座標リスト234から1つ取り出す。ステップS330では、エンドエフェクター160を用いてパーツPPを1つ拾い上げる。ステップS340では、拾い上げたパーツPPを目的位置に移動させる。本実施形態では、目的位置は、パーツトレイ600内の空き位置である。
図6及び図8で説明した処理手順は一例であり、任意に変更可能である。例えば、パーツPPに表裏の区別が無い場合には、図6のステップS140,S250は省略可能である。また、前述したように、ステップS170は、ステップS260の後に実行してもよい。
以上のように、図6の手順によるパーツフィーダー制御と図8の手順によるロボット制御を実行することにより、図5A~図5Lで説明したようにパーツフィーダー400内にパーツPPを適宜補給しながら、パーツPPの拾い上げ作業を実行できる。この結果、パーツPPの拾い上げ作業を効率良く行うことができる。
なお、上述の説明では、パーツフィーダー制御部212は、画像認識部214による画像認識の結果を用いて、フリップ動作(ステップS140)や、フィード動作(ステップS150)、センタリング動作(ステップS210)、セパレーション動作(ステップS220)等の各種の動作をパーツフィーダー400に行わせていたが、これ以外の動作をパーツフィーダー400に行わせるようにしてもよい。この場合にも、パーツフィーダー制御部212は、カメラ430で取得されたパーツ収容部410内のパーツPPの画像に対する画像認識の結果を用いて、複数の制御コマンドの中から1つ以上の制御コマンドを選択してパーツフィーダーに送信することが好ましい。こうすれば、画像認識によってパーツ収容部410内のパーツを認識するので、認識された結果に応じた適切な制御コマンドをパーツフィーダー400に送信して適切に動作させることが可能である。
B. 第2実施形態
図9は、第2実施形態におけるパーツフィーダー制御のフローチャートである。図6に示した第1実施形態のフローチャートとの違いは、ステップS170とステップS190が削除されている点だけであり、他のステップは図6と同一である。
この第2実施形態では、最初にステップS200でパーツの補給が行われると、それらのパーツがすべて拾い上げられるまで新たなパーツが補給されず、パーツ収容領域412内のパーツがすべて拾い上げられ後にステップS200において再度補給が実行される。この第2実施形態によっても、第1実施形態とほぼ同様の効果が得られる。
C. 第3実施形態
図10は、第3実施形態におけるロボットシステムの概念図である。このロボットシステムは、エンドエフェクター160bを除いて第1実施形態(図1)のロボットシステムと同一である。エンドエフェクター160bは、把持機構164を用いてパーツを把持して拾い上げるグリッパーである。
図11は、第3実施形態におけるパーツフィーダー制御のフローチャートである。図6に示した第1実施形態のフローチャートとの違いは、ステップS220とステップS230の間にステップS225が追加されている点だけであり、他のステップは図6と同一である。ステップS220のセパレーション動作が終了した状態では、パーツPPがパーツ収容領域412内にほぼ均一に分散した状態となる。
図12Aは、第3実施形態においてステップS220のセパレーション動作が終了した状態を示している。個々のパーツPPの周囲の3つの凹部は、エンドエフェクター160bの把持機構164によって把持される箇所を示している。但し、把持機構164としては、3点で把持する機構の代わりに、2点で把持する機構を使用してもよい。パーツ収容部410は、パーツ収容領域412の外周に設けられた外周壁414を有している。パーツ収容領域412の外周部分には、エンドエフェクター160bの把持機構164と外周壁414とが干渉する干渉領域Rintが存在する。干渉領域Rintに一部又は全部が重なるパーツPPは、把持機構164と外周壁414との物理的な干渉により把持できない可能性がある。そこで、ロボット100によるパーツPPの拾い上げ作業を行う場合には、この干渉領域Rintに一部又は全部が重なるパーツPPが存在しない状態とすることが好ましい。
図11のステップS225では、パーツフィーダー制御部212がセンタリングコマンドをパーツフィーダー400に送信してセンタリング動作を実行させる。図12Bは、このセンタリング動作の結果を示しており、図12Aにおいて干渉領域Rintに存在していたパーツPPがパーツ収容領域412の内部に向けて移動した結果、干渉領域Rintにに一部又は全部が重なるパーツPPが存在しない状態となっている。このセンタリング動作は、図5Bで説明したステップS210におけるセンタリング動作に比べて、振動継続時間が短い値に設定されており、パーツPPの移動距離が短い。このようなセンタリング動作を行うようにすれば、エンドエフェクター160bの把持機構164と外周壁414との干渉を低減できるので、パーツPPの拾い上げ作業の効率を向上させることが可能である。
なお、第3実施形態では、把持機構164を用いてパーツPPの拾い上げを行うので、以下に説明するように、パーツPPの外縁の複数箇所に把持用の付加領域を設定して、パーツPPの検出(ステップ240の処理)を実行することが好ましい。
図13Aは、把持用の付加領域ADを設けたパーツPPの画像認識処理の説明図である。ここでは図示の便宜上、ピッキング区画RAのみを図12Bの向きから90度時計方向に回転した状態で描いており、また、パーツPPがすべて表向きであるものと仮定している。なお、干渉領域Rintは図示を省略している。各パーツPPの外縁の3カ所の把持位置には、把持機構164が把持する際に必要となる領域が付加領域ADとして点線で示されている。
図11のステップS240では、画像認識部214は、カメラ430で取得された画像において、各パーツPPに付加領域ADをそれぞれ設定する設定処理を実行する。また、画像認識部214は、各パーツPPに対して、パーツ番号を付与する。図13Aにおいて各パーツPPの中央に描かれた番号はこのパーツ番号を示している。画像認識部214は、更に、ピッキング区画RA内に存在するパーツPPのうちで、付加領域ADが他のパーツPPと重なっていないパーツPPを把持可能パーツとして認識する認識処理を実行する。なお、このときの「他のパーツPP」は、付加領域ADの無い状態のパーツPPの外形を意味している。図13Aの例では、把持可能パーツは、パーツ番号が1~5,7,8,12,15,16,18番の11個のパーツPPである。画像認識部214は、把持可能パーツと認識したパーツPPをパーツ座標リスト234に登録する。
図14Aは、パーツ座標リスト234の一例を示している。ここでは、図13Aに対する画像認識処理によって把持可能パーツとして認識された11個のパーツPPが登録されている。登録内容は、パーツ番号nと、その座標値(Xn,Yn)である。ロボット制御部211は、パーツ座標リスト234に登録された把持可能パーツを、エンドエフェクター160bの把持機構164で把持して拾い上げるようにロボット100を制御する。こうすれば、把持に必要な付加領域ADを考慮して把持可能パーツを認識するので、把持機構164で把持できないパーツPPを把持対象のパーツと認識することを防止することができ、パーツPPの拾い上げ作業の効率を向上させることが可能である。このような付加領域ADを考慮した把持可能パーツの認識は、ピッキング区画RA内のパーツPPのみに対して行うようにしても良く、或いは、パーツ収容領域412の全体に対して行っても良い。但し、ピッキング区画RA内のパーツPPのみに対して付加領域ADを考慮した把持可能パーツの認識を行うようにすれば、処理時間を短縮できる。
なお、画像認識部214は、図13Aにおける認識処理の後に、画像から把持可能パーツを消去することによって画像を更新する画像更新処理を実行するようにしてもよい。図13Bは、こうして更新された画像を示している。この画像では、図13Aにおいて把持可能パーツとして認識された11個のパーツPPは消去されており、図示の便宜上、それらの外形が破線で描かれている。画像認識部214は、この更新された画像を用いて、図13Aで説明した認識処理を再度実行する。図13Bにおいて認識される把持可能パーツは、パーツ番号が6,9,11,13,19番の5個のパーツPPである。画像認識部214は、再び把持可能パーツと認識したパーツPPをパーツ座標リスト234に追加登録する。
図14Bは、図13Bに対する画像認識処理によって把持可能パーツとして認識された5個のパーツPPが追加登録された状態を示している。画像認識部214は、図13Bにおける認識処理の後に、画像から把持可能パーツを消去することによって画像を更新する画像更新処理を実行する。
図13Cは、更新された画像を示している。この画像では、図13Bにおいて把持可能パーツとして認識された5個のパーツPPは消去されている。この更新された画像に関しても、上述と同様に、認識処理と画像更新処理とが実行される。なお、図13Cにおいて認識される把持可能パーツは、パーツ番号が14番の1個のパーツPPである。画像認識部214は、把持可能パーツと認識したパーツPPをパーツ座標リスト234に追加登録する。図14Cは、図13Cに対する画像認識処理によって把持可能パーツとして認識された1個のパーツPPが追加登録された状態を示している。画像認識部214は、図13Cにおける認識処理の後に、画像から把持可能パーツを消去することによって画像を更新する画像更新処理を実行する。図13Dは、こうして更新された画像を示している。
図13B~図13Dに即して説明したように、画像認識部214は、認識処理と画像更新処理とを繰り返すとともに、個々のパーツが把持可能パーツとして認識された順番をパーツ座標リスト234に登録することが好ましい。この後、ロボット制御部211は、パーツ座標リスト234に登録された順番に従って、ピッキング区画RA内のパーツPPを把持して拾い上げるようにロボット100の制御を実行することができる。こうすれば、より多数のパーツPPを把持可能パーツとして認識できるので、パーツPPの拾い上げ作業の効率を向上させることが可能である。但し、図13B~図13Dで説明した認識処理と画像更新処理の繰り返しを行わず、図13Aにおいて認識処理を1回のみ実行するようにしてもよい。
なお、第3実施形態では、図11のステップS140において、フリップ動作の代わりに他の種類の姿勢変更動作を行うようにしてもよい。例えば、姿勢変更動作として、パーツPPをパーツ収容領域412の表面上で回転させるローテーション動作を行うようにしてもよい。こうすれば、把持機構164で把持できないパーツPPを回転させることによって、パーツPPを把持可能な姿勢に変更することができる。このローテーション動作も、拾い上げ不可能なパーツPPの姿勢を、拾い上げ可能なパーツPPに変更するという意味で、第1実施形態で使用したフリップ動作と共通している。このように、ステップS140は、一般に、画像認識によってピッキング区画RAに拾い上げ不可能なパーツPPのみが存在することが認識された場合に、パーツPPの姿勢を変更する姿勢変更動作を実行するステップであると考えることが可能である。
D. 第4実施形態
図15は、第4実施形態におけるパーツフィーダー制御のフローチャートである。図11に示した第3実施形態のフローチャートとの違いは、ステップS150の後にステップS155が追加されている点だけであり、他のステップは図11と同一である。ステップS155では、バックフィード動作が実行される。このバックフィード動作は、ステップS150で実行したフィード動作と逆方向にパーツを移動させる動作である。このバックフィード動作の時間は、ステップS150におけるフィード動作の時間よりも短いことが好ましい。
図16は、バックフィード動作に適した状態を示す説明図である。この例では、ステップS150のフィード動作によって、パーツPPがロボット側の端部領域EA(ハッチングを付して示す)に偏存する状態となっている。このような状態では、ロボットによる拾い上げ作業に適さないパーツPPの割合が大きくなっているので、ホッパー側にバックフィードすることによって、拾い上げ作業に適した状態とすることが可能である。
なお、画像認識処理の結果を利用して、ステップS155におけるバックフィード動作の要否やバックフィード時間を判断するようにしてもよい。この判断は、例えば、次式に従って算出されるパーツの偏在率Ruを用いて行うことが可能である。
Ru=Sp/Se …(1)
ここで、Spは端部領域EA内におけるパーツPPの面積の合計、Seは端部領域EAの面積である。例えば、パーツPPが黒い画像として認識される場合には、パーツ面積Spは端部領域EA内の黒画素の数として算出可能である。
端部領域EAの幅Weaは、ピックアップ区画RAの幅よりも小さく設定される。例えば、端部領域EAの幅Weaを、パーツPPの幅の1倍~2倍の範囲の値に設定することが好ましい。なお、図16の例では、端部領域EAはパーツ収容領域412の左側に設定されているが、端部領域EAの位置は、フィード動作におけるパーツPPの移動方向に応じて設定される。すなわち、端部領域EAは、パーツ収容領域412の4つの辺のうちで、フィード動作の方向の終端となる辺の近傍に設定されることが好ましい。
パーツの偏在率Ruが予め定めされた閾値以上の場合には、図16に示すようにパーツPPが偏在しているので、ステップS155におけるバックフィード動作を行うことが好ましい。また、バックフィード動作の時間を、偏在率Ruに応じて決定するようにしてもよい。具体的には、偏在率Ruが大きいほどバックフィード時間を長くすることが好ましい。
なお、パーツの偏在率Ru以外の画像認識結果を利用して、様々な制御を実行するようにしてもよい。
図17は、画像認識で得られる種々のプラットホーム状態の例を示している。「プラットフォーム」とは、パーツ収容領域412を意味する。ここでは、以下の7つの状態が例示されている。
<状態1:ピック可能状態>
プラットフォーム内にピックアップ可能な状態でパーツが分散している状態。
<状態2:空状態>
プラットフォーム内にパーツが1つも無い状態。
<状態3:ピック位置偏在状態>
プラットフォームの端部にパーツが偏在している状態。この状態3は、図16で説明した状態に相当する。
<状態4:パーツ残数過大状態>
パーツの残数が適正数よりも20%以上多い状態。
<状態5:パーツ残数過小状態>
パーツの残数が適正数よりも20%以上少ない状態。
<状態6:裏パーツ残数過大状態>
裏パーツの数が適正数よりも10%以上多い状態。
<状態7:ピック可能パーツ無し状態>
プラットフォーム内にパーツは存在するが、ピックアップすべきパーツが存在せず、他の種類のパーツのみが存在する状態。
これらの状態は、様々な制御の実行や制御内容の調整に利用可能である。例えば、任意の時点で状態2や状態7が認識された場合には、図15のステップS200にジャンプして、パーツの補給を行うようにしてもよい。また、状態4又は状態5が認識された場合には、ステップS170における補給個数を、パーツの残数に応じて変更してもよい。このように、各種の画像認識結果に応じて制御内容を調整するようにすれば、更に作業効率を高めることが可能である。このような画像認識結果に応じた制御内容の調整は、他の実施形態にも適用可能である。また、ステップS150のフィード動作の後にステップS155のバックフィード動作を行う点も、他の実施形態に適用可能である。
E. 第5実施形態
図18は、第5実施形態におけるロボットシステムの概念図である。このロボットシステムは、エンドエフェクター160cを除いて第1実施形態(図1)及び第3実施形態(図10)のロボットシステムと同一である。エンドエフェクター160cは、2つの把持機構164を用いて2個のパーツを把持して拾い上げることが可能なダブルハンドのグリッパーである。
図19は、エンドエフェクター160cの平面図である。このエンドエフェクター160cは、2つの把持機構164a,164bと、上下移動機構166a,166bとを有している。把持機構164a,164bは、この例では3点でパーツPPを把持するグリッパーである。上下移動機構166a,166bは、把持機構164a,164bを上下方向(Z方向)にそれぞれ移動させて、2つの把持機構164a,164bの高さを変更することが可能である。なお、2つの上下移動機構166a,166bの一方を省略し、1つの上下移動機構を用いて2つの把持機構164a,164bの相対的な高さを変更するようにしてもよい。
図20A~図20Dは、2つの把持機構164a,164bで把持可能なパーツPPの認識処理を示す説明図である。画像認識部214は、まず、第1把持機構164aで把持可能なパーツPP1を認識する(図20A)。このパーツPP1を「第1の把持可能パーツPP1」と呼ぶ。画像認識部214は、次に、第1把持機構164aで第1の把持可能パーツPP1を把持した状態で、第2把持機構164bの位置を認識する(図20B)。この際、画像認識部214は、2つの把持機構164a,164bの水平方向の位置関係を利用して、第2把持機構164bの座標及び把持角度(Z軸回りの角度)を算出する。そして、第2把持機構164bで把持可能なパーツPP2を認識する(図20C)。このパーツPP2を「第2の把持可能パーツPP2」と呼ぶ。このように、第1の把持可能パーツPP1を第1把持機構164aで把持した状態において、第2把持機構164bで把持可能な第2の把持可能パーツPP2を認識する処理を実行すれば、2つの把持機構164a,164bを用いてパーツPPを拾い上げる作業の効率を向上させることが可能である。
第2の把持可能パーツPP2としては、第1の把持可能パーツPP1を第1把持機構164aで把持した状態において、第2把持機構164bで最も把持し易いパーツPPを選択することが好ましい。この選択は、例えば、ピックアップコストに応じて行うことが可能である。「ピックアップコスト」は、第1の把持可能パーツPP1を第1把持機構164aで把持した状態において、第2把持機構164bで把持可能となる1つ以上のパーツPPに対して、予め定められた計算方法に従って計算される。
ピックアップコストの計算方法としては、例えば、以下のような種々のものが考えられる。
(1)ピックアップコストの計算方法1
第1の把持可能パーツPP1を第1把持機構164aで把持した状態(図20A)から、第2把持機構164bの近傍にある1つ以上のパーツPPについて、第2把持機構164bで把持するために要するロボット100の軌跡を算出し、その軌跡の移動に要する時間をピックアップコストとする。
(2)ピックアップコストの計算方法2
第1の把持可能パーツPP1を第1把持機構164aで把持した状態(図20A)から、第2把持機構164bの近傍にある1つ以上のパーツPPについて、第2把持機構164bと各パーツPPの距離を算出し、その距離をピックアップコストとする。
(3)ピックアップコストの計算方法3
第1の把持可能パーツPP1を第1把持機構164aで把持した状態(図20A)から、第2把持機構164bの近傍にある1つ以上のパーツPPについて、第2把持機構164bで把持するために要するエンドエフェクター160cの回転角度(ねじり関節J4の回転角度)を算出し、その回転角度をピックアップコストとする。
図20Cに示した第2の把持可能パーツPP2は、計算方法2で計算したピックアップコストが最小となるパーツである。図20Dに示した第2の把持可能パーツPP2は、計算方法3で計算したピックアップコストが最小となるパーツである。なお、本実施形態のパーツPPのように、パーツPPを把持するための位置がパーツPPの形状に応じて予め決まっている場合には、計算方法1(軌跡基準)又は計算方法3(回転角度基準)が適している。一方、第1実施形態のパーツPPように、エンドエフェクター160で拾い上げるための位置がパーツPPの形状に依存しない場合(例えば吸着ピックアップ機構を使用する場合)には、計算方法1(軌跡基準)又は計算方法2(距離基準)が適している。
以上のように、第1の把持可能パーツPP1を第1把持機構164aで把持した状態において第2把持機構164bで把持可能となる1つ以上のパーツPPに対して予め定められた計算方法に従ってピックアップコストをそれぞれ計算し、そのピックアップコストに従って第2の把持可能パーツPP2を選択するようにすれば、第2把持機構164bでパーツを把持する効率を向上させることが可能である。
上述のような2つの把持可能パーツの選択は、把持機構164以外のピックアップ機構(例えば吸着ピックアップ機構)を2つ有するエンドエフェクタ-を備えたロボットにも適用可能である。この場合に、画像認識部214は、第1のピックアップ可能パーツPP1を第1ピックアップ機構で保持した状態において、第2ピックアップ機構で拾い上げ可能となる第2のピックアップ可能パーツPP2を認識する処理を実行する。こうすれば、第2ピックアップ機構でパーツを拾い上げる効率を向上させることが可能である。
F. パーツフィーダーの制御パラメーターの初期設定
図21は、パーツフィーダー400の制御パラメーターの初期設定のフローチャートであり、図22A~図22Eは、図21のステップS420~S450の処理内容を示す説明図である。この処理は、前述したロボット100によるパーツPPの拾い上げ作業を行う前に実行される。また、この処理は、カメラ430でパーツ収容領域430内のパーツPPの画像を取得し、その画像を制御パラメーター設定部215が解析することによって実行される。
ステップS410では、複数の振動アクチュエーター424の振動強度のバランス調整が行われる。この調整は、パーツ収容領域412の傾きや、個々の振動アクチュエーター424の特性の差異を補償するために行われる。具体的には、例えば、パーツ収容領域412に複数のパーツPPを収容し、複数の振動アクチュエーター424を同位相で振動させて、個々のパーツPPの座標(XY座標)を取得する。そして、複数のパーツPPの座標が偏ること無く、かつ、それらの座標の平均値がパーツ収容領域412の中央に来るように、個々の振動アクチュエーター424に供給する振動信号の振幅を調整する。こうして調整された振動強度のバランスは、ステップS420以降も利用される。
ステップS420では、パーツPPの動きを活発化させることが可能な周波数を検出する。この検出処理では、例えば、パーツ収容領域412に1つのパーツPPを収容し、所定個数の振動アクチュエーター424を振動させて、パーツPPの移動量を取得する。そして、パーツPPの移動量が最大となる振動信号の周波数を調整する。
図22Aは、ステップS420における周波数とパーツ活性度(パーツPPの移動量)の関係の一例を示している。この例では、グラフのピークにおける周波数Fcが、パーツの動きを活発化させることが可能な周波数として検出される。この周波数Fcは、例えば、パーツ収容領域412の共振周波数に等しい値である。こうして決定された適切な周波数は、ステップS430以降も利用される。
なお、ステップS420で使用する振動アクチュエーター424の数としては、1以上の任意の数を使用可能である。また、振動アクチュエーター424の使用個数と使用箇所の組み合わせ毎に、パーツの動きを活発化させることが可能な周波数を検出するようにしても良い。例えば、パーツフィーダー400が4つの振動アクチュエーター424a~424dを有しており、その内の1つ、2つ又は4つを使用する場合には、振動アクチュエーター424の使用個数と使用箇所の組み合わせの数は、最大で11通りである。なお、2つ又は4つの振動アクチュエーター424を使用する場合には、それらの位相差の値(例えば0度と180度)毎にパーツの動きを活発化させることが可能な周波数を検出してもよい。このように、振動アクチュエーター424の使用個数と使用箇所の組み合わせ毎に適切な制御パラメーターを設定することが好ましい点は、後述する他の制御パラメーターも同様である。
ステップS430では、パーツPPの飛び出しを防止することが可能な振幅を検出する。この振幅は、パーツPPがパーツ収容領域412から外部に飛び出さない限度で可能な限り大きな振幅である。この検出処理では、例えば、パーツ収容領域412に複数のパーツPPを収容し、複数の振動アクチュエーター424を振動させて、パーツPPがパーツ収容部410から外に飛び出すか否かをカメラ430の画像から判定する。この判定を、振動信号の振幅を徐々に増大してゆきながら行い、パーツPPの飛び出しが検出されない最大の振幅を求める。
図22Bは、ステップS430における振幅とパーツ活性度の関係の一例を示している。この例では、パーツPPの飛び出しが検出されない最大の振幅AmaxがパーツPPの飛び出しを防止ことが可能な振幅として検出される。こうして決定された適切な振幅は、ステップS440以降も利用される。
ステップS440では、パーツフィーダー400内の適切なパーツ個数を決定する。この処理では、例えば、パーツ収容領域412に多数のパーツPPを収容し、セパレーション動作(図4B)を行った後に、カメラ430で取得した画像を解析することによって、拾い上げ可能なパーツPPの個数を求める。拾い上げ可能な否かの判定は、パーツPPの裏表を無視して行うことが好ましい。この場合に、例えば、他のパーツPPと全く重なっていないパーツPPが拾い上げ可能と判定される。この処理を、パーツ収容領域412に収容するパーツPPの個数を順次変更した条件でそれぞれ実行し、拾い上げ可能なパーツ個数が最大となるときのパーツ個数をパーツフィーダー400内の適切なパーツ個数として決定する。
図22Cは、ステップS440におけるパーツフィーダー400内のパーツ個数と、拾い上げ可能として検出されたパーツ個数との関係の一例を示している。この例では、検出パーツ個数がピークとなるときのパーツフィーダー400内のパーツ個数がパーツフィーダー400内の適切なパーツ個数として決定される。こうして決定された適切なパーツ個数は、ステップS450以降も利用される。なお、第3~第5実施形態のように、把持機構164を用いてパーツPPを保持する場合には、図22Cに示すように、パーツPPの周囲に把持機構164による把持部分を考慮したウィンドウPWを設け、このウィンドウPWが他のパーツPPの外形と重ならないパーツPPを「拾い上げ可能なパーツPP」として認識するようにしてもよい。或いは、ウィンドウPWの代わりに、第3実施形態で説明した付加領域AD(図13A)を使用するようにしてもよい。
適切なパーツ個数は、実際にパーツをパーツフィーダー400に投入する実験を行って決定する代わりに、シミュレーションを利用して決定することも可能である。
図22Dは、シミュレーションによるパーツ個数の決定処理を示す説明図である。この際、まず、カメラ430を用いて1個のパーツを撮像し、パーツ画像Mpを切り出す。そして、切り出したパーツ画像Mpを、パーツ収容領域412と等しい形状の領域R412内にランダムに配置した画像をシミュレーションにより作成する。そして、このシミュレーション画像を解析することによって、拾い上げ可能なパーツの個数を求める。この処理を、領域R412内のパーツ画像Mpの個数を変更して複数回実行すれば、図22Cと同様の特性をシミュレーションによって得ることができる。そして、検出パーツ個数がピークとなるときのパーツフィーダー400内のパーツ個数を、パーツフィーダー400内の適切なパーツ個数として決定することが可能である。このように、シミュレーションを利用して適切なパーツ個数を決定すれば、実験を行う手間を省略することができる。
ステップS450では、セパレーションコマンドの制御パラメーターを調整する。この調整処理では、例えば、パーツ収容領域412に複数のパーツPPを収容し、セパレーションコマンドによるセパレーション動作(図4B)を行った後に、カメラ430で取得した画像を解析することによって、拾い上げ可能なパーツPPの個数を求める。拾い上げ可能な否かの判定は、パーツPPの裏表を無視して行うことが好ましい。パーツ収容領域412に収容するパーツPPの個数は、例えば、ステップS440で決定された適切なパーツ個数とすることが好ましい。この処理を、セパレーション動作の継続時間を順次変更した条件でそれぞれ実行し、拾い上げ可能なパーツ個数が十分に大きく、かつ、セパレーション動作の継続時間が過度に大きくない値を、セパレーション動作の継続時間として決定する。
図22Eは、ステップS450におけるセパレーション動作の継続時間と、拾い上げ可能として検出されたパーツ個数との関係の一例を示している。この例では、参考のために、パーツフィーダー400内のパーツ個数が130個と65個と33個の3つの場合で得られた結果を示している。これらの例から理解できるように、拾い上げ可能なパーツPPの検出個数は、セパレーション動作の継続時間が長くなるほど増加するが、ある程度の継続時間に達するとそれ以降は飽和する。そこで、拾い上げ可能なパーツ個数が十分に大きく、かつ、過度に長くならない継続時間(図22Eで白丸を付した時間)を、セパレーション動作の継続時間として決定することができる。なお、このセパレーション動作の継続時間は、例えば、拾い上げ可能なパーツ個数のピーク値に、予め定めた係数Kを乗じた値に達する時間として自動的に決定することが可能である。係数Kは、例えば1未満0.9以上の値とすることが好ましい。
ステップS460では、干渉領域Rint回避のためのセンタリングコマンドの制御パラメーターを調整する。干渉領域Rintは、第3実施形態において図12Aに即して説明したように、パーツ収容領域412の外周部分のうちで把持機構164と外周壁414とが干渉する領域である。この調整処理では、例えば、パーツ収容領域412に複数のパーツPPを収容し、セパレーション動作(図4B)を行った後に、干渉領域Rintのためのセンタリング動作(図11のステップS225,図12B)を実行し、カメラ430で取得した画像を解析することによって、拾い上げ可能なパーツPPの個数を求める。拾い上げ可能な否かの判定は、パーツPPの裏表を無視して行うことが好ましい。パーツ収容領域412に収容するパーツPPの個数は、例えば、ステップS440で決定された適切なパーツ個数とすることが好ましい。この処理を、センタリング動作の継続時間を順次変更した条件でそれぞれ実行し、拾い上げ可能なパーツ個数が十分に大きく、かつ、過度に長くならない継続時間を、干渉領域回避用のセンタリング動作の継続時間として決定する。
ステップS470では、フリップコマンドの制御パラメーターを調整する。この調整処理では、例えば、パーツ収容領域412に1つのパーツPPを収容し、フリップコマンドによるフリップ動作(図4C)を行った後に、カメラ430で取得した画像を解析することによって、パーツPPが裏返ったか否かを判定する。この処理を、フリップ動作の継続時間を順次変更した条件でそれぞれ実行し、パーツPPが裏返る確率が高く、かつ、過度に長くならない継続時間を、フリップ動作の継続時間として決定する。
ステップS480では、フィードコマンドの制御パラメーターを調整する。この調整処理では、例えば、パーツ収容領域412に複数のパーツPPを収容し、フィードコマンドによるフィード動作(図4A)を行った後に、カメラ430で取得した画像を解析することによって、パーツPPの移動量を求める。この処理を、フィード動作の継続時間を順次変更した条件でそれぞれ実行し、パーツPPの移動量が適切となる時間を、フィード動作の継続時間として決定する。或いは、パーツPPの移動速度[mm/sec]を求めることによってフィード動作の継続時間を決定するようにしてもよい。例えば、パーツ収容領域412に複数のパーツPPを収容し、フィードコマンドによるフィード動作(図4A)を一定時間(例として1秒)行った後に、カメラ430で取得した画像を解析することによって、パーツPPの移動速度[mm/sec]を求めることができる。そして、移動させたい距離に、この移動速度を掛けることで、フィード動作の継続時間を決定することができる。
ステップS490では、ホッパー500によるパーツ補給条件を決定する。この処理では、例えば、ホッパー500を一定時間動作させてパーツ収容領域412にパーツPPを補給し、カメラ430で取得した画像を解析することによって、補給されたパーツ個数を求める。この処理を、ホッパー500の補給時間を順次変更した条件でそれぞれ実行し、パーツPPの補給個数が適切となる時間を、ホッパー500の補給時間として決定する。なお、パーツPPの補給個数としては、図6のステップS200における初回の補給個数と、ステップS170における2回目以降の補給個数の両方を決定することが好ましい。前述したように、パーツ収容領域412がN412個(N412は2以上の整数)の区画に区分されている場合には、2回目以降の補給個数は、初回の補給個数の1/(N412-1)の値に設定してもよい。或いは、パーツPPの供給速度[pcs/sec]を求めることによってパーツ補給条件を決定するようにしてもよい。例えば、ホッパー500を一定時間(例として1秒)動作させてパーツ収容領域412にパーツPPを補給し、カメラ430で取得した画像を解析することによって、補給されたパーツ個数を求め、ホッパー500によるパーツPPの供給速度[pcs/sec]を求める。そして、供給したいパーツ数をこの供給速度を除算することで、ホッパー500の補給時間を求めることができる。
以上のようにして設定された各種の制御パラメーターは、制御装置200の不揮発性メモリー230(図2)に格納される。また、パーツフィーダー制御部212がパーツフィーダー400に送信する制御コマンドは、このように設定された制御パラメーターのうちで、複数の振動アクチュエーター424に関する制御パラメーターを含むように構成される。換言すれば、パーツフィーダー制御部212は、複数の振動アクチュエーター424の制御パラメーターをそれぞれ含む複数の制御コマンドの中から1つ以上の制御コマンドを選択し、選択した制御コマンドをパーツフィーダー400に送信することによって、選択した制御コマンドに応じた動作をパーツフィーダー400に行わせる。こうすれば、パーツフィーダー400の動作に適した制御パラメーターをパーツフィーダー400に送信することができる。この結果、パーツPPの種類や形状に応じてパーツフィーダー400を適切に動作させることが可能となる。或いは、パーツフィーダー400からパーツPPを拾い上げる作業の効率を向上させることが可能となる。
本発明は、上述の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
100…ロボット、120…基台、130…アーム、132…アームエンド、160a~160c…エンドエフェクター、162…吸着ノズル、164a~164b…把持機構、166a~166b…上下移動機構、180…カメラ、200…制御装置、210…プロセッサー、211…ロボット制御部、212…パーツフィーダー制御部、213…ホッパー制御部、214…画像認識部、215…制御パラメーター設定部、220…メインメモリー、230…不揮発性メモリー、231…プログラム命令、232…制御パラメーター、233…制御コマンド、234…パーツ座標リスト、235…教示データ、240…表示制御部、250…表示部、260…I/Oインターフェース、300…ティーチングペンダント、400…パーツフィーダー、410…パーツ収容部、412…パーツ収容領域、414…外周壁、420…振動部、422…制御部、424a~424d…振動アクチュエーター、430…カメラ、500…ホッパー、600…パーツトレイ、700…架台、710…天板、720…テーブル部

Claims (14)

  1. パーツを収容するパーツ収容部と前記パーツ収容部を振動させる複数の振動アクチュエーターとを有するパーツフィーダーと、前記パーツ収容部からパーツを拾い上げるエンドエフェクターを有するロボットと、を備えるロボットシステムを制御する制御装置であって、
    前記パーツフィーダーを制御するパーツフィーダー制御部と、
    前記ロボットを制御するロボット制御部と、
    を備え、
    前記パーツフィーダー制御部は、前記複数の振動アクチュエーターの制御パラメーターをそれぞれ含む複数の制御コマンドの中から1つ以上の制御コマンドを選択し、選択した制御コマンドを前記パーツフィーダーに送信することによって、前記選択した制御コマンドに応じた動作を前記パーツフィーダーに行わせ
    前記複数の振動アクチュエーターは、前記パーツ収容部の4つの隅の位置に固定された4つの振動アクチュエーターを含み、
    前記複数の制御コマンドは、前記パーツ収容部内で集合している複数のパーツを分離するセパレーション動作を前記パーツフィーダーに実行させるためのセパレーションコマンドと、前記パーツ収容部内のパーツの姿勢を変更する姿勢変更動作を前記パーツフィーダーに実行させるための姿勢変更コマンドと、を含む、制御装置。
  2. 請求項に記載の制御装置であって、
    前記セパレーションコマンドと前記姿勢変更コマンドのそれぞれは、前記複数の振動アクチュエーターを振動させるコマンドであり、前記セパレーションコマンドでは、前記姿勢変更コマンドよりも前記振動アクチュエーターの振動継続期間が長く設定されている、制御装置。
  3. 請求項1又は2に記載の制御装置であって、
    前記パーツ収容部内のパーツの画像を撮像するカメラで取得された画像を使用して、前記パーツ収容部内のパーツを認識する画像認識を実行する画像認識部を備え、
    前記パーツフィーダー制御部は、前記画像認識の結果を用いて前記複数の制御コマンドの中から1つ以上の制御コマンドを選択して前記パーツフィーダーに送信する、制御装置。
  4. 請求項に記載の制御装置であって、
    前記画像認識部は、前記パーツ収容部のパーツ収容領域を、パーツ補給装置からパーツの補給を受ける補給区画と、前記エンドエフェクターがパーツの拾い上げを行うピッキング区画と、を含む複数の区画に仮想的に区分し、
    前記画像認識によって前記ピッキング区画にパーツが存在することが認識された場合には、前記ロボット制御部が、前記認識されたパーツを前記エンドエフェクターによって拾い上げるように前記ロボットを制御し、
    前記画像認識によって前記ピッキング区画にパーツが存在しないことが認識された場合には、前記パーツフィーダー制御部が、前記ピッキング区画以外の区画から前記ピッキング区画にパーツを移動させるフィードコマンドを前記パーツフィーダーに送信する、制御装置。
  5. 請求項に記載の制御装置であって、
    前記画像認識によって前記ピッキング区画に拾い上げ不可能なパーツのみが存在することが認識された場合には、前記パーツフィーダー制御部が、前記パーツの姿勢を変更させる前記姿勢変更コマンドを前記パーツフィーダーに送信する、制御装置。
  6. 請求項4又は5に記載の制御装置であって、
    前記複数の区画は、更に、前記補給区画と前記ピッキング区画の間に設けられた中間区画を含み、
    前記フィードコマンドは、前記補給区画に存在するパーツを前記中間区画に移動させて停止させるとともに、前記中間区画に存在するパーツを前記ピッキング区画に移動させて停止させる動作を前記パーツフィーダーに実行させる、制御装置。
  7. 請求項に記載の制御装置であって、
    前記パーツ収容部は、パーツ収容領域と、前記パーツ収容領域の外周に設けられた外周壁とを有し、前記パーツ収容領域の外周部分には、前記エンドエフェクターの把持機構と前記外周壁とが干渉する干渉領域が存在し、
    前記パーツフィーダー制御部は、前記セパレーションコマンドによってパーツの分離を行った後に、前記干渉領域に存在するパーツを前記パーツ収容領域の内部に向けて移動させるセンタリングコマンドを前記パーツフィーダーに送信し、
    前記センタリングコマンドに応じて、前記4つの振動アクチュエーターのうち、前記パーツ収容部の一方の端部にある2つの振動アクチュエーターが、他方の端部にある2つの振動アクチュエーターと180度異なる位相で振動する、制御装置。
  8. 請求項に記載の制御装置であって、
    前記画像認識部は、
    前記カメラで取得された画像において、各パーツの外縁の複数の箇所に、前記エンドエフェクターの把持機構がパーツを把持するために使用する付加領域を設定する設定処理と、
    前記画像において、前記付加領域が他のパーツと重なっていないパーツを把持可能パーツとして認識する認識処理と、
    を実行し、
    前記ロボット制御部は、前記把持可能パーツを前記エンドエフェクターの前記把持機構で把持して拾い上げるように前記ロボットを制御する、制御装置。
  9. 請求項に記載の制御装置であって、
    前記画像認識部は、
    前記認識処理の後、前記把持可能パーツを前記把持機構で把持して拾い上げる前に、前記画像から前記把持可能パーツを消去することによって前記画像を更新する画像更新処理と、
    前記更新された画像を用いて、前記認識処理と前記画像更新処理とを繰り返す処理と、
    を実行するとともに、
    前記認識処理と前記画像更新処理との繰り返しの際に個々のパーツが前記把持可能パーツとして認識された順番を登録し、
    前記ロボット制御部は、前記順番に従って前記パーツを前記エンドエフェクターの前記把持機構で把持して拾い上げるように前記ロボットを制御する、制御装置。
  10. 請求項4~6のいずれか一項に記載の制御装置であって、
    前記エンドエフェクターは、第1ピックアップ機構と第2ピックアップ機構とを有し、
    前記画像認識部は、
    前記ピッキング区画内に存在するパーツのうちで、1つのパーツを前記第1ピックアップ機構で拾い上げ可能な第1のピックアップ可能パーツとして認識する処理と、
    前記第1のピックアップ可能パーツを前記第1ピックアップ機構で保持した状態において前記第2ピックアップ機構で拾い上げ可能な第2のピックアップ可能パーツを認識する処理と、
    を実行する、制御装置。
  11. 請求項10に記載の制御装置であって、
    前記画像認識部は、前記第2のピックアップ可能パーツを認識する処理において、前記第1のピックアップ可能パーツを前記第1ピックアップ機構で保持した状態において前記第2ピックアップ機構で拾い上げ可能となる1つ以上のパーツに対して、予め定められた計算方法に従ってピックアップコストをそれぞれ計算し、前記ピックアップコストに従って前記第2のピックアップ可能パーツを選択する、制御装置。
  12. 請求項1~11のいずれか一項に記載の制御装置であって、
    前記制御パラメーターは、前記振動アクチュエーターに供給する振動信号の周波数と、前記振動信号の振幅と、振動継続時間と、を含む、制御装置。
  13. 請求項12に記載の制御装置であって、
    前記複数の振動アクチュエーターの制御パラメーターを予め記憶する不揮発性メモリーを有し、
    前記不揮発性メモリーに記憶された前記制御パラメーターは、
    (a)前記複数の振動アクチュエーターそれぞれの振動強度のバランスと、
    (b)前記パーツ収容部内に存在するパーツの動きを活発化させることが可能な前記振動信号の周波数と、
    (c)前記パーツ収容部内に存在するパーツが前記パーツ収容部の外部に飛び出すことを防止することが可能な前記振動信号の振幅と、
    を含む、制御装置。
  14. パーツを収容するパーツ収容部と前記パーツ収容部を振動させる複数の振動アクチュエーターとを有するパーツフィーダーと、
    前記パーツ収容部からパーツを拾い上げるエンドエフェクターを有するロボットと、
    前記パーツフィーダー及び前記ロボットに接続された請求項1~13のいずれか一項に記載の制御装置と、
    を備えるロボットシステム。
JP2017214446A 2017-06-06 2017-11-07 ロボットシステムの制御装置及びロボットシステム Active JP6992415B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810567589.1A CN108994829A (zh) 2017-06-06 2018-06-05 控制装置及机器人系统
EP18175990.3A EP3412414A3 (en) 2017-06-06 2018-06-05 Control apparatus of robot system and robot system
EP23165668.7A EP4223462A1 (en) 2017-06-06 2018-06-05 Control apparatus of robot system and robot system
US16/000,084 US10894316B2 (en) 2017-06-06 2018-06-05 Control apparatus and robot system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017111275 2017-06-06
JP2017111275 2017-06-06

Publications (2)

Publication Number Publication Date
JP2018202599A JP2018202599A (ja) 2018-12-27
JP6992415B2 true JP6992415B2 (ja) 2022-01-13

Family

ID=64956047

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017214446A Active JP6992415B2 (ja) 2017-06-06 2017-11-07 ロボットシステムの制御装置及びロボットシステム

Country Status (1)

Country Link
JP (1) JP6992415B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020193098A (ja) * 2019-05-30 2020-12-03 セイコーエプソン株式会社 供給装置およびロボットシステム
CN111038987A (zh) * 2019-11-28 2020-04-21 厦门瑞固科技有限公司 一种振动盘
CN114148703A (zh) * 2020-09-08 2022-03-08 爱来音科技有限公司 工件姿势控制装置、具备该工件姿势控制装置的工件供给系统以及工件姿势控制方法
JP7432210B2 (ja) 2021-04-07 2024-02-16 アラインテック株式会社 ワーク姿勢制御装置とそれを備えたワーク供給システム
CN113579683A (zh) * 2021-08-23 2021-11-02 安徽艾瑞思信息科技有限公司 基于Falcon相机用于流水线零件高精度拾取的装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002544096A (ja) 1999-05-07 2002-12-24 ミクロン・ソシエテ・アノニム・ブードリ 部品供給装置
JP2008062376A (ja) 2006-09-05 2008-03-21 Adept Technology Inc 無作為におかれた対象物のためのビンピッキングシステム
JP2011073066A (ja) 2009-09-29 2011-04-14 Canon Inc 物体把持制御方法及び装置
JP2011115930A (ja) 2009-10-26 2011-06-16 Yaskawa Electric Corp ロボット装置及びワーク取り出しシステム並びにワーク取り出し方法
US20150066200A1 (en) 2013-08-27 2015-03-05 Tyco Electronics Corporation Component feeding system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04115543U (ja) * 1991-03-29 1992-10-14 日本ビクター株式会社 部品供給装置
JP3354060B2 (ja) * 1996-11-27 2002-12-09 山形カシオ株式会社 部品搭載プログラム作成装置及び媒体
US6056108A (en) * 1997-11-17 2000-05-02 Adept Technology, Inc. Impulse-based, flexible parts feeder

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002544096A (ja) 1999-05-07 2002-12-24 ミクロン・ソシエテ・アノニム・ブードリ 部品供給装置
JP2008062376A (ja) 2006-09-05 2008-03-21 Adept Technology Inc 無作為におかれた対象物のためのビンピッキングシステム
JP2011073066A (ja) 2009-09-29 2011-04-14 Canon Inc 物体把持制御方法及び装置
JP2011115930A (ja) 2009-10-26 2011-06-16 Yaskawa Electric Corp ロボット装置及びワーク取り出しシステム並びにワーク取り出し方法
US20150066200A1 (en) 2013-08-27 2015-03-05 Tyco Electronics Corporation Component feeding system

Also Published As

Publication number Publication date
JP2018202599A (ja) 2018-12-27

Similar Documents

Publication Publication Date Title
JP6992415B2 (ja) ロボットシステムの制御装置及びロボットシステム
US10894316B2 (en) Control apparatus and robot system
JP6983524B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP6771744B2 (ja) ハンドリングシステム及びコントローラ
JP2012030320A (ja) 作業システム、作業ロボット制御装置および作業プログラム
JP7470092B2 (ja) 装着処理の最適化装置
US20210187737A1 (en) Robot control apparatus, robot control method, and non-transitory computer-readable storage medium for causing one or more robots to perform a predetermined task formed by a plurality of task processes
JP7233858B2 (ja) ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
JP2022518880A (ja) ロボットがトラップ状態から脱出するように制御する方法、装置、ロボット
JP2003101300A (ja) 電気回路製造方法、電気回路製造システムおよび電気回路製造用プログラム
JP7331527B2 (ja) ロボットの動作を決定する装置、方法およびプログラム
JP5331859B2 (ja) 実装基板製造システムおよび実装基板の製造方法
JP2006245537A (ja) 部品実装順序決定方法、部品実装方法及び部品実装機
JP6666764B2 (ja) ワーク認識方法及びランダムピッキング方法
CN107432117B (zh) 安装装置及安装方法
CN114746213A (zh) 显示装置、机床及液体的放出方法
CN107520838A (zh) 机械手臂及其控制方法和装置
JP5794856B2 (ja) 電子部品装着装置、および、電子部品装着方法
EP1063875A1 (en) Surface mounting device
JP2021194744A (ja) 薄板状小型ワークの把持装置、薄板状小型ワークの把時方法
JP2009099808A (ja) 部品実装方法
WO2023171687A1 (ja) ロボット制御装置及びロボット制御方法
WO2022239477A1 (ja) 情報処理装置、システム、方法及びプログラム
TW202408758A (zh) 程式生成裝置、控制裝置及程式
JP4079698B2 (ja) 電子部品実装装置および電子部品実装方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201021

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210713

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211122

R150 Certificate of patent or registration of utility model

Ref document number: 6992415

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150