(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024168645
(43)【公開日】2024-12-05
(54)【発明の名称】ロボットシステム、ロボットシステムの制御方法、物品の製造方法、プログラム、及び記録媒体
(51)【国際特許分類】
B25J 13/08 20060101AFI20241128BHJP
【FI】
B25J13/08 A
【審査請求】未請求
【請求項の数】31
【出願形態】OL
(21)【出願番号】P 2023085500
(22)【出願日】2023-05-24
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003133
【氏名又は名称】弁理士法人近島国際特許事務所
(72)【発明者】
【氏名】品川 和彦
(72)【発明者】
【氏名】山本 祐輔
(72)【発明者】
【氏名】松本 大志
(72)【発明者】
【氏名】小田 明裕
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS04
3C707BS10
3C707ES03
3C707ET08
3C707KS03
3C707KS04
3C707KS36
3C707KT01
3C707KT06
3C707KT11
3C707KX08
3C707MS08
3C707MS14
(57)【要約】
【課題】ロボットハンドがワークを保持する成功率を高める。
【解決手段】ロボットシステムは、ロボットアーム及びロボットハンドを有するロボットと、前記ロボットハンドを基準とする所定方向における前記ロボットハンドと物体との状態を計測するセンサと、前記ロボットを制御する制御部と、を備え、前記制御部は、保持対象とするワークに前記ロボットハンドを接近させる接近動作を前記ロボットに実行させ、前記接近動作を前記ロボットに実行させている場合に、前記センサから計測結果を取得し、前記計測結果に基づく所定条件が成立する場合、前記ロボットハンドが前記物体に干渉するのを回避する回避動作を前記ロボットに実行させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ロボットアーム及びロボットハンドを有するロボットと、
前記ロボットハンドを基準とする所定方向における前記ロボットハンドと物体との状態を計測するセンサと、
前記ロボットを制御する制御部と、を備え、
前記制御部は、
保持対象とするワークに前記ロボットハンドを接近させる接近動作を前記ロボットに実行させ、
前記接近動作を前記ロボットに実行させている場合に、前記センサから計測結果を取得し、
前記計測結果に基づく所定条件が成立する場合、前記ロボットハンドが前記物体に干渉するのを回避する回避動作を前記ロボットに実行させる、
ことを特徴とするロボットシステム。
【請求項2】
前記センサは、前記ロボットハンドと前記物体との距離を計測し、
前記距離の前記計測結果に基づく前記所定条件が成立する場合は、前記センサに計測された前記距離が閾値以下となる場合を含む、
ことを特徴とする請求項1に記載のロボットシステム。
【請求項3】
前記回避動作は、前記ロボットに前記接近動作を行わせた場合の前記ロボットハンドの移動方向とは異なる方向に前記ロボットハンドを移動させる移動動作を含む、
ことを特徴とする請求項1に記載のロボットシステム。
【請求項4】
前記移動動作は、前記ロボットハンドを前記移動方向とは反対の方向に退避させる退避動作を含む、
ことを特徴とする請求項3に記載のロボットシステム。
【請求項5】
前記制御部は、前記ロボットハンドを退避させた後、前記ワークとは別のワークを前記保持対象とする、
ことを特徴とする請求項4に記載のロボットシステム。
【請求項6】
前記センサは、エネルギーを照射し、前記物体で反射した前記エネルギーを受けて、前記距離を計測する、
ことを特徴とする請求項2に記載のロボットシステム。
【請求項7】
前記センサは、エネルギーを所定範囲に照射し、前記物体で反射した前記エネルギーを受けて、前記所定範囲における前記距離を計測する、
ことを特徴とする請求項2に記載のロボットシステム。
【請求項8】
前記距離の前記計測結果に基づく前記所定条件が成立する場合は、前記センサに前記所定範囲において前記距離が閾値以下となる第1領域が検出される場合を含む、
ことを特徴とする請求項7に記載のロボットシステム。
【請求項9】
前記回避動作は、前記ロボットに前記接近動作を行わせた際の前記ロボットハンドの移動方向とは異なる方向に前記ロボットハンドを移動させる移動動作を含む、
ことを特徴とする請求項8に記載のロボットシステム。
【請求項10】
前記移動動作は、前記ロボットハンドを前記移動方向とは反対の方向に退避させる退避動作と、前記ロボットハンドの位置又は姿勢を補正する補正動作と、を含み、
前記制御部は、前記第1領域の幅、又は前記所定範囲における前記第1領域以外の第2領域の幅に応じて、前記退避動作及び前記補正動作のいずれか一方を前記ロボットに行わせる、
ことを特徴とする請求項9に記載のロボットシステム。
【請求項11】
前記移動動作は、前記ロボットハンドを前記移動方向とは反対の方向に退避させる退避動作を含み、
前記制御部は、前記所定範囲における前記第1領域以外の第2領域の幅が所定幅以下の場合、前記退避動作を前記ロボットに行わせる、
ことを特徴とする請求項9に記載のロボットシステム。
【請求項12】
前記移動動作は、前記ロボットハンドの位置又は姿勢を補正する補正動作を含み、
前記制御部は、前記所定範囲における前記第1領域以外の第2領域の幅が所定幅を超える場合、前記補正動作を前記ロボットに行わせる、
ことを特徴とする請求項9に記載のロボットシステム。
【請求項13】
前記所定範囲が前記所定幅よりも広い、
ことを特徴とする請求項11に記載のロボットシステム。
【請求項14】
前記ロボットハンドが指部を有し、
前記所定幅は前記指部の幅である、
ことを特徴とする請求項13に記載のロボットシステム。
【請求項15】
前記移動動作は、前記ロボットハンドの位置又は姿勢を補正する補正動作を含み、
前記制御部は、前記第1領域が検出された場合、前記第1領域が検出されなくなるまで前記補正動作を前記ロボットに行わせる、
ことを特徴とする請求項9に記載のロボットシステム。
【請求項16】
前記移動動作は、前記ロボットハンドを前記移動方向とは反対の方向に退避させる退避動作を含み、
前記制御部は、前記所定範囲のうち前記距離が前記閾値を超える2つの第2領域に前記第1領域が挟まれる場合、前記退避動作を前記ロボットに行わせる、
ことを特徴とする請求項9に記載のロボットシステム。
【請求項17】
前記制御部は、前記補正動作を行った後、前記接近動作を継続する、
ことを特徴とする請求項10に記載のロボットシステム。
【請求項18】
複数のワークがばら積みされた所定領域を撮像する撮像装置を更に備え、
前記制御部は、
前記撮像装置が前記所定領域を撮像した撮像画像を前記撮像装置から取得し、
前記撮像画像に基づき、前記複数のワークの中から前記保持対象とする前記ワークを選択する、
ことを特徴とする請求項1に記載のロボットシステム。
【請求項19】
前記制御部は、
前記保持対象とする前記ワークを保持させる保持動作を開始させる保持開始位置を取得し、
前記接近動作は、前記ロボットハンドを前記保持開始位置に移動させる動作を含む、
ことを特徴とする請求項1に記載のロボットシステム。
【請求項20】
前記制御部は、前記ロボットハンドが前記保持開始位置に到達した場合、前記接近動作を停止して、前記ロボットハンドに前記保持動作を行わせる、
ことを特徴とする請求項19に記載のロボットシステム。
【請求項21】
前記センサが第1センサであり、
前記ロボットハンドは、複数の指部を有し、
前記複数の指部の間に前記保持対象とする前記ワークが有るか無いかを検出するための第2センサを更に備える、
ことを特徴とする請求項19に記載のロボットシステム。
【請求項22】
前記ロボットハンドは、指部を有し、
前記センサは、前記指部に設けられており、前記距離として前記指部と前記物体との距離を計測する、
ことを特徴とする請求項2に記載のロボットシステム。
【請求項23】
前記センサは、前記指部の先端に設けられており、前記距離として前記指部の先端と前記物体との距離を計測する、
ことを特徴とする請求項22に記載のロボットシステム。
【請求項24】
前記エネルギーは光である、
ことを特徴とする請求項6に記載のロボットシステム。
【請求項25】
前記光は赤外線である、
ことを特徴とする請求項24に記載のロボットシステム。
【請求項26】
前記制御部は、
前記ロボットハンドが前記物体に干渉するのを回避する回避動作のユーザの選択を受け付けるユーザインタフェース画像を表示部に表示させ、
前記計測結果に基づく所定条件が成立する場合、前記ユーザインタフェース画像を介した前記ユーザの選択に応じた前記回避動作を前記ロボットに実行させる、
ことを特徴とする請求項1に記載のロボットシステム。
【請求項27】
複数の指部を含むロボットハンド、及びロボットアームを有するロボットと、
前記複数の指部のそれぞれに設けられ、前記複数の指部のうち対応する指部を基準とする所定方向における前記対応する指部と物体との状態をそれぞれ計測する複数のセンサと、
前記ロボットを制御する制御部と、を備え、
前記制御部は、
保持対象とするワークに前記ロボットハンドを接近させる接近動作を前記ロボットに実行させ、
前記接近動作を前記ロボットに実行させている場合に、前記複数のセンサのそれぞれから計測結果を取得し、
前記複数のセンサのいずれにおいても前記計測結果に基づく所定条件が成立する場合、前記ロボットに前記接近動作を実行させた場合の前記ロボットハンドの移動方向とは反対の方向に前記ロボットハンドを退避させる退避動作を、前記ロボットに実行させる、
ことを特徴とするロボットシステム。
【請求項28】
ロボットアーム及びロボットハンドを有するロボットと、前記ロボットハンドを基準とする所定方向における前記ロボットハンドと物体との状態を計測するセンサと、を備えるロボットシステムの制御方法であって、
保持対象とするワークに前記ロボットハンドを接近させる接近動作を前記ロボットに実行させ、
前記接近動作を前記ロボットに実行させている場合に、前記センサから計測結果を取得し、
前記計測結果に基づく所定条件が成立する場合、前記ロボットハンドが前記物体に干渉するのを回避する回避動作を前記ロボットに実行させる、
ことを特徴とするロボットシステムの制御方法。
【請求項29】
請求項1乃至27のいずれか1項に記載のロボットシステムを用いて物品を製造することを特徴とする物品の製造方法。
【請求項30】
請求項28に記載の制御方法をコンピュータに実行させるためのプログラム。
【請求項31】
請求項30に記載のプログラムを記録した、コンピュータによって読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットの技術に関する。
【背景技術】
【0002】
バラ積みされた複数のワークの中から1のワークをロボットハンドに保持させる技術として、カメラ等を用いて保持対象のワークを認識し、保持対象のワークにロボットハンドを移動させ、ロボットハンドに保持対象のワークを保持させる技術が一般的に知られている。
【0003】
特許文献1には、ロボットハンドにワークを保持させる前に、ばら積みされたワークをカメラに撮像させ、ロボットハンドが保持対象とするワークの周囲にある別のワークと干渉するかどうかを、撮像画像を用いて判定することが開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、撮像後、ロボットハンドを保持対象とするワークへ接近させている途中に、保持対象とするワークの状態、及び/又は保持対象とするワークの周囲の状態が変化することがある。これにより、ワーク及び周囲の物などを含む物体にロボットハンドが干渉し、ワークの保持に失敗することがある。
【0006】
本開示は、ロボットハンドがワークを保持する成功率を高めることにある。
【課題を解決するための手段】
【0007】
本開示の第1態様は、ロボットアーム及びロボットハンドを有するロボットと、前記ロボットハンドを基準とする所定方向における前記ロボットハンドと物体との状態を計測するセンサと、前記ロボットを制御する制御部と、を備え、前記制御部は、保持対象とするワークに前記ロボットハンドを接近させる接近動作を前記ロボットに実行させ、前記接近動作を前記ロボットに実行させている場合に、前記センサから計測結果を取得し、前記計測結果に基づく所定条件が成立する場合、前記ロボットハンドが前記物体に干渉するのを回避する回避動作を前記ロボットに実行させる、ことを特徴とするロボットシステムである。
【0008】
本開示の第2態様は、複数の指部を含むロボットハンド、及びロボットアームを有するロボットと、前記複数の指部のそれぞれに設けられ、前記複数の指部のうち対応する指部を基準とする所定方向における前記対応する指部と物体との状態をそれぞれ計測する複数のセンサと、前記ロボットを制御する制御部と、を備え、前記制御部は、保持対象とするワークに前記ロボットハンドを接近させる接近動作を前記ロボットに実行させ、前記接近動作を前記ロボットに実行させている場合に、前記複数のセンサのそれぞれから計測結果を取得し、前記複数のセンサのいずれにおいても前記計測結果に基づく所定条件が成立する場合、前記ロボットに前記接近動作を実行させた場合の前記ロボットハンドの移動方向とは反対の方向に前記ロボットハンドを退避させる退避動作を、前記ロボットに実行させる、ことを特徴とするロボットシステムである。
【0009】
本開示の第3態様は、ロボットアーム及びロボットハンドを有するロボットと、前記ロボットハンドを基準とする所定方向における前記ロボットハンドと物体との状態を計測するセンサと、を備えるロボットシステムの制御方法であって、保持対象とするワークに前記ロボットハンドを接近させる接近動作を前記ロボットに実行させ、前記接近動作を前記ロボットに実行させている場合に、前記センサから計測結果を取得し、前記計測結果に基づく所定条件が成立する場合、前記ロボットハンドが前記物体に干渉するのを回避する回避動作を前記ロボットに実行させる、ことを特徴とするロボットシステムの制御方法である。
【発明の効果】
【0010】
本開示によれば、ロボットハンドがワークを保持する成功率を高めることができる。
【図面の簡単な説明】
【0011】
【
図1】第1実施形態に係るロボットシステムの概略構成を示す説明図である。
【
図2】(a)は第1実施形態に係るロボットハンドの模式図である。(b)は第1実施形態の変形例1に係るロボットハンドの模式図である。(c)は第1実施形態に係るワークの配置状態の説明図である。
【
図3】第1実施形態に係る制御システムの説明図である。
【
図4】第1実施形態に係る制御システムにおけるコンピュータシステムのブロック図である。
【
図5】第1実施形態に係る制御部の機能ブロック図である。
【
図6】第1実施形態に係るばら積みされたワークの説明図である。
【
図7】(a)~(c)は第1実施形態に係る保持点と保持開始位置との関係を示す説明図である。
【
図8】(a)及び(b)は第1実施形態に係る保持点及び保持開始位置の決定方法の説明図である。
【
図9】(a)及び(b)は第1実施形態に係る接近動作の説明図である。
【
図10】第1実施形態に係るロボットハンドの斜視図である。
【
図11】(a)~(c)は第1実施形態に係る距離センサにより干渉が検知される状態の説明図である。
【
図12】第1実施形態に係るロボットハンドを保持開始位置に位置決めした状態を示す図である。
【
図13】第1実施形態に係る制御のフローチャートである。
【
図14】
図13に示すフローチャートの各ステップの動作の説明図である。
【
図15】第2実施形態に係る距離センサの説明図である。
【
図16】第2実施形態に係る制御のフローチャートである。
【
図17】(a)及び(b)は第1実施形態に係る判定の説明図である。
【
図18】(a)及び(b)は第2実施形態に係る補正動作の説明図である。
【
図19】(a)及び(b)は第2実施形態の変形例2の説明図である。(c)は第2実施形態の変形例3の説明図である。
【
図20】(a)及び(b)は第3実施形態に係る補正動作の説明図である。
【
図21】(a)は第4実施形態に係るロボット制御部のブロック図である。(b)は第4実施形態に係るグラフィカルインターフェースの説明図である。
【
図22】第4実施形態に係る制御のフローチャートである。
【
図23】第5実施形態に係るロボットハンドの説明図である。
【
図24】(a)及び(b)は第5実施形態に係るロボットハンドの説明図である。
【
図25】第5実施形態に係るロボットハンドの説明図である。
【発明を実施するための形態】
【0012】
以下、本開示の例示的な実施形態について、図面を参照しながら詳細に説明する。なお、各実施するための形態の説明において、同一の構成要素については同一の符号を付し、重複した説明は省略するものとする。
【0013】
[第1実施形態]
図1は、第1実施形態に係るロボットシステム10の概略構成を示す説明図である。ロボットシステム10は、ロボット100と、制御システム500と、撮像部の一例である撮像装置としてのカメラ211と、を備える。制御システム500は、情報処理装置200と、制御装置400と、を有する。ロボット100は、産業用ロボットであり、生産ラインに配置され、物品の製造に用いられる。
【0014】
ロボット100と制御装置400とは、データ伝送可能に有線又は無線で接続されている。制御装置400と情報処理装置200とは、データ伝送可能に有線又は無線で接続されている。カメラ211と情報処理装置200とは、データ伝送可能に有線又は無線で接続されている。ここで、鉛直方向、即ち下方向を-Z0方向、上方向を+Z0方向とする。
【0015】
ロボット100は、マニピュレータである。ロボット100は、例えば架台に固定される。ロボット100の周囲、即ちロボット100の可動範囲内には、上部が開口したトレー20と、載置台30とが配置される。トレー20内には、複数のワークWがばら積みされる。即ち、トレー20の内底面21上に複数のワークWがばら積みされる。これにより、ロボット100は、ワークWにアクセスすることが可能である。各ワークWは、保持対象の一例であり、例えば部品である。なお、ロボット100、カメラ211、トレー20、載置台30、及びワークW等は、実空間である作業空間R1に配置されている。ロボット100は、ワークWを保持可能に構成されており、また保持したワークWを搬送可能に構成されている。
【0016】
ロボット100の周囲の物体、例えばトレー20、載置台30、及びワークWは、ロボット100が干渉し得る物体である。ここでロボット100が物体に干渉することは、ロボット100が、物体を保持すること以外に、物体に影響を及ぼすことを含む。例えば、ロボット100が物体に干渉することは、ロボット100に含まれる、ワークWを保持する部分以外の部分が、物体に接触又は衝突することを含む。
【0017】
ロボット100は、ロボットアーム101と、エンドエフェクタ(保持機構)の一例であるロボットハンド120と、を有する。ロボットアーム101は、垂直多関節のロボットアームである。ロボットアーム101は、例えば6軸のロボットアームである。なお、ロボットアーム101は、垂直多関節のロボットアームに限定されるものではなく、SCARA(Selective Compliance Assembly Robot Arm)であってもよいし、パラレルリンクロボットアームであってもよいし、直交ロボットであってもよい。
【0018】
ロボットハンド120は、ロボットアーム101に支持されている。ロボットハンド120は、ロボットアーム101の所定部位、例えばロボットアーム101の先端部に取り付けられている。ロボットハンド120は、ワークWを保持可能に構成されている。
【0019】
図2(a)は、第1実施形態に係るロボットハンド120の模式図である。
図2(a)に示すように、ロボットハンド120は、グリップ式のロボットハンドであり、ロボットアーム101に支持される本体部121と、本体部121に駆動される2つの指部122と、を有する。2つの指部122は、本体部121に駆動されることで開閉移動する。2つの指部122は、開位置から閉じる方向に移動することで、ワークWに接触してワークWを挟み、ワークWと指部122との間の摩擦力によってワークWを保持する。指部122の材質は、ゴム又は金属であってもよい。
【0020】
なお、以下の説明では、ロボットハンド120が2つの指部122を有する場合を例に説明するが、これに限定されるものではなく、ロボットハンド120は2つ以上の指部を有していればよい。
図2(b)は、第1実施形態の変形例1に係るロボットハンド120の模式図である。例えば
図2(b)に示すように、ロボットハンド120が2つ以上の指部として3つの指部122を有していてもよい。
【0021】
図2(c)は、第1実施形態に係るワークWの配置状態の説明図である。
図2(c)に示すように、ワークWは、表面と裏面とで形状が異なる。
図2(c)において、ワークWは、カメラ211から見て、表面又は裏面が上向きに露見される。ワークWは、剛体であることが好ましいが、柔軟性を有する可撓体であってもよい。トレー20に配置される複数のワークWは、所定の誤差の範囲内で、互いに同一の形状、互いに同一の大きさ、及び互いに同一の色である。
【0022】
カメラ211は、例えば2次元のデジタルカメラであり、不図示のイメージセンサを有する。イメージセンサは、例えばCMOSイメージセンサ又はCCDイメージセンサである。カメラ211は、ロボット100の周囲に配置された不図示のフレームに固定されている。カメラ211は、
図1に示すように、トレー20に配置された複数のワークWを含む所定領域R0を撮像可能な位置に配置されている。即ち、カメラ211は、ロボット100の保持対象であるワークWを含む所定領域R0を撮像可能である。例えばカメラ211は、ロボット100の上方に配置され、-Z0方向の被写体を撮像するように配置されている。なお、カメラ211は、ロボット100に配置されるオンハンドカメラであってもよい。いずれにしても、カメラ211は、トレー20にバラ積みされた複数のワークWのうち、保持対象のワークWを含む領域R0を撮像可能であればよい。
【0023】
情報処理装置200及び制御装置400は、それぞれコンピュータで構成されている。情報処理装置200は、カメラ211に撮像指令を送ってカメラ211に撮像を行わせることができる。撮像指令を受けたカメラ211は、複数のワークWがばら積みされた所定領域R0を撮像し、撮像画像として、画像データI1を生成する。情報処理装置200は、カメラ211によって生成された画像データI1を取得可能に構成されており、取得した画像データI1を処理可能に構成されている。情報処理装置200は、画像処理の一例として、画像データI1に基づいて、保持対象とするワークWの位置及び姿勢などのワークWの情報を求める処理を実行可能である。
【0024】
制御装置400は、情報処理装置200からワークWの情報を取得し、ワークWの情報に基づいて、ワークWの近傍の位置へロボットハンド120が移動するようロボットアーム101を制御可能である。そして、制御装置400は、ロボットハンド120にワークWを保持させ、その後、載置台30にワークWを配置させる制御処理を実行可能である。このように、第1実施形態では、制御装置400は、トレー20にばら積みされたワークWを1個ずつロボット100に保持させ、ワークWを載置台30上に整列させる処理を実行する。
【0025】
このように、制御装置400は、ロボットハンド120を所望の位置に移動させ、ロボット100に所望の作業を行わせることができる。例えば、ワークWと他のワークとを用意しておき、ワークWを他のワークに組み付ける作業をロボット100に行わせることで、物品を製造することができる。なお、ロボット100によるワークの組み付けによる物品の製造を例に説明したがこれに限られない。例えば、ロボットアーム101に切削工具や研磨工具などのツールを設け、ツールによりワークを加工することで物品の製造を行ってもよい。
【0026】
図3は、第1実施形態に係る制御システム500の説明図である。制御システム500は、情報処理装置200、制御装置400、表示部の一例であるディスプレイ402、入力装置の一例であるキーボード403及びマウス404を有する。ディスプレイ402、キーボード403及びマウス404は、例えば制御装置400に接続されている。
【0027】
図4は、第1実施形態に係る制御システム500におけるコンピュータシステムのブロック図である。情報処理装置200は、プロセッサの一例であるCPU(Central Processing Unit)251を備える。CPU251は、プログラム261を実行することにより、後述する情報処理部として機能する。また、情報処理装置200は、記憶部として、ROM(Read Only Memory)252、RAM(Random Access Memory)253、及びHDD(Hard Disk Drive)254を備える。また、情報処理装置200は、記録ディスクドライブ255、及び入出力インタフェースであるインタフェース256を備える。CPU251、ROM252、RAM253、HDD254、記録ディスクドライブ255、及びインタフェース256は、互いにデータ転送可能にバスで接続されている。
【0028】
情報処理装置200のインタフェース256には、制御装置400及びカメラ211が接続されている。
【0029】
ROM252には、コンピュータの動作に関する基本プログラムが格納されている。RAM253は、CPU251の演算処理結果等、各種データを一時的に記憶する記憶装置である。HDD254には、CPU251の演算処理結果や外部から取得した各種データ等が記録されると共に、CPU251に、各種処理を実行させるためのプログラム261が記録されている。プログラム261は、CPU251が実行可能なアプリケーションソフトウェアである。
【0030】
CPU251は、HDD254に記録されたプログラム261を実行することで、後述する情報処理及び制御処理を実行することが可能となる。また、CPU251は、プログラム261を実行することで、カメラ211を制御し、カメラ211から画像データI1を取得する。記録ディスクドライブ255は、記録ディスク262に記録された各種データやプログラム等を読み出すことができる。
【0031】
なお、第1実施形態では、コンピュータによって読み取り可能な非一時的な記録媒体がHDD254であり、HDD254にプログラム261が記録されているが、これに限定するものではない。プログラム261は、コンピュータによって読み取り可能な非一時的な記録媒体であれば、いかなる記録媒体に記録されていてもよい。プログラム261をコンピュータに供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。また、情報処理装置200が備える記憶デバイスがHDD254であるが、これに限定されるものではなく、記憶デバイスがSSD(Solid State Drive)であってもよい。
【0032】
制御装置400は、プロセッサの一例であるCPU451を備える。CPU451は、プログラム461を実行することにより、後述するロボット制御部450として機能する。また、制御装置400は、記憶部として、ROM452、RAM453、及びHDD454を備える。また、制御装置400は、記録ディスクドライブ455、及び入出力インタフェースであるインタフェース456を備える。CPU451、ROM452、RAM453、HDD454、記録ディスクドライブ455、及びインタフェース456は、互いにデータ転送可能にバスで接続されている。
【0033】
制御装置400のインタフェース456には、ロボット100、情報処理装置200、ディスプレイ402、キーボード403及びマウス404が接続されている。
【0034】
ROM452には、コンピュータの動作に関する基本プログラムが格納されている。RAM453は、CPU451の演算処理結果等、各種データを一時的に記憶する記憶装置である。HDD454には、CPU451の演算処理結果や外部から取得した各種データ等が記録されると共に、CPU451に、各種処理を実行させるためのプログラム461が記録(格納)されている。プログラム461は、CPU451が実行可能なアプリケーションソフトウェアである。
【0035】
CPU451は、HDD454に記録されたプログラム461を実行することで制御処理を実行し、
図1のロボット100の動作を制御することが可能となる。記録ディスクドライブ455は、記録ディスク462に記録された各種データやプログラム等を読み出すことができる。
【0036】
なお、第1実施形態では、コンピュータによって読み取り可能な非一時的な記録媒体がHDD454であり、HDD454にプログラム461が記録されているが、これに限定するものではない。プログラム461は、コンピュータによって読み取り可能な非一時的な記録媒体であれば、いかなる記録媒体に記録されていてもよい。プログラム461をコンピュータに供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。また、制御装置400が備える記憶デバイスがHDD454であるが、これに限定されるものではなく、記憶デバイスがSSDであってもよい。
【0037】
また、制御装置400又は情報処理装置200は、ネットワークに接続されていてもよい。また、カメラ211と情報処理装置200との間、情報処理装置200と制御装置400との間、又は制御装置400とロボット100との間がネットワークで接続されていてもよい。
【0038】
図5は、第1実施形態に係る制御部550の機能ブロック図である。情報処理装置200のCPU251がプログラム261を実行し、制御装置400のCPU451がプログラム461を実行することにより、これら複数のCPU251,451が制御部550として機能する。なお、第1実施形態では、複数のCPU251,451が制御部550として機能するが、これに限定されるものではなく、制御部550の機能を、1つのコンピュータ、即ち1つのCPUで実現してもよい。
【0039】
制御部550は、CPU251が機能する情報処理部250と、CPU451が機能するロボット制御部450と、を有する。情報処理部250は、画像処理部212、検出部213、高さ計測部214、優先順位付け部215、位置計測部216及び保持点算出部217を含む。ロボット制御部450は、回避動作制御部410及びメイン制御部420を含む。回避動作制御部410は、干渉判定部411及びワーク有無判定部412を含む。
【0040】
メイン制御部420は、ロボット100を制御することにより、ロボット100にトレー20上の複数のワークWを1つずつ保持させ、ロボット100に保持させたワークWを載置台30上に整列して配置させる。
【0041】
画像処理部212は、カメラ211に撮像指令を送ってカメラ211に撮像を行わせることができる。画像処理部212は、カメラ211によって生成された画像データI1を取得可能に構成されており、取得した画像データI1を処理可能に構成されている。画像データI1は例えば濃淡画像である。濃淡画像は、モノクロ画像であってもよいし、カラー(例えばRGB)画像であってもよい。この他、ワークWの形状的な特徴をデジタル的に数値化できるものであれば、どのような画像であってもよい。例えば画像データI1は、2値化画像であってもよいし、エッジ画像であってもよい。
【0042】
図6は、第1実施形態に係るばら積みされたワークWの説明図である。検出部213は、画像データI1において、
図6に示すような、バラ積みされた複数のワークWの中で、別のワークWが重ならない又は別のワークWが僅かに重なっているワークW1の画像を含む探索領域を検出する。探索領域は、例えば露出度が所定値より大きいワークW1の画像を含む領域である。その後、検出部213は、当該探索領域において、ワークW1の状態の情報を求める。ワークW1の状態の情報は、例えばワークW1の位置及び姿勢の情報を含む。ワークW1の位置及び姿勢の情報は、
図2(c)に示すようなワークWの載置位置及び表裏の情報を含む。
【0043】
高さ計測部214は、検出部213において検出された探索領域に含まれるワークW1について、基準位置に対する高さ、例えばトレー20の内底面21に対する高さを計測する。ワークW1の高さは、例えば画像データI1においてワークW1に対応する輪郭の大きさによって計算してもよいし、ロボット100の周囲に設けられた高さ計測用の不図示の距離センサで計測してもよい。
【0044】
優先順位付け部215は、画像データI1から2つ以上の探索領域が検出された場合、2つ以上の探索領域にそれぞれ対応する2つ以上のワークW1について、ロボット100が取り易い順に優先順位を付ける。一例として、優先順位付け部215は、高さの高い順に、2つ以上のワークW1に優先順位をつける。
【0045】
位置計測部216は、探索領域の画像に対しパターンマッチング等のマッチング処理を行い、ワークW1の位置及び姿勢に関する三次元情報を取得する。マッチング処理では、探索領域の画像に対し、ワークW1の稜線情報を示すCADデータを用いて行ってもよい。例えば、探索領域の画像が濃淡画像である場合、位置計測部216は、当該濃淡画像に対してエッジ検出などの前処理を施し、前処理により得られる線分情報と、CADデータの線分情報とを照合することで一致度を示すスコアを求め、スコアに基づいて、ワークW1の位置及び姿勢を求めてもよい。CADデータは、例えばHDD254等の記憶デバイスに予め保存されていてもよい。
【0046】
保持点算出部217は、位置計測部216により導出されたワークW1の位置及び姿勢の情報と、例えばHDD254等の記憶デバイスに保存された、ワークW1の保持点の情報と、を照合することで、作業空間R1におけるワークW1の保持点の二次元位置を求める。またワークW1の保持点に対応する高さ位置は後述する距離センサ305,306によって検出した位置である。
【0047】
図7(a)~
図7(c)は、第1実施形態に係る保持点40及び保持開始位置41の関係を示す説明図である。保持点算出部217は、ワークW1に対して、
図7(a)に示す保持点40の二次元位置と、保持点40に対応する保持開始位置41とを求める。保持開始位置41は、ロボットハンド120の2つの指部122に保持動作を開始させる、作業空間R1における三次元位置である。保持開始位置41は、保持点40を通る線分の端に位置する2点41
1,41
2の位置情報を含み、例えば
図7(b)に示すワークW1のボス部の外周位置、又は
図7(c)に示すワークW1の外形の外周位置に設定される。保持開始位置41に含まれる2点41
1,41
2を結ぶ線分は、2つの指部122が閉じる動作をするときの軌道である。ワークWを保持したときの2つの指部122の位置は、保持開始位置41より保持点40に近づいた位置である。
【0048】
図8(a)及び
図8(b)は、第1実施形態に係る保持点40及び保持開始位置41の決定方法の説明図である。
図8(a)に示すように、保持点40がボス部にある場合、指部122とワークW1のボス部とのクリアランスの値をCとし、ボス部の外形幅をD1とすると、保持開始位置41を示す2点41
1,41
2間の距離は、「D1+2×C」となる。また、
図8(b)に示すように、ロボットハンド120にワークWの外形を保持させる場合、指部122とワークW1の外形とのクリアランスの値をCとし、ワークW1の外形の幅をD2とすると、保持開始位置41を示す2点41
1,41
2間の距離は、「D2+2×C」となる。なお、クリアランスの値Cは、ユーザが設定可能であり、1~3mmの範囲内、例えば2mmに設定される。
【0049】
なお、保持点算出部217は、ワークW1において複数の保持点40を設定することができる。また、保持点算出部217は、1つの保持点40に対して、複数の保持開始位置41を設定することができる。
【0050】
情報処理部250は、保持対象とするワークW1の位置、姿勢、形状及び高さの情報、並びに保持点40及び保持開始位置41の情報を、ロボット制御部450に出力することができる。
【0051】
ロボット制御部450のメイン制御部420は、情報処理部250から取得した、ワークW1の位置及び姿勢の情報、並びに保持点40の情報に基づいて、保持対象とするワークW1の上方位置へロボットハンド120が移動するようロボットアーム101を制御する。そして、メイン制御部420は、ロボットハンド120にワークW1を保持点40へ向かってロボットハンド120がワークW1に接近するようロボットアーム101を制御する。即ち、メイン制御部420は、2つの指部122の所定部分が保持開始位置41に接近するようロボットアーム101を制御する。ここで、保持対象とするワークW1は、優先順位が最も高いワークW1である。
【0052】
図9(a)及び
図9(b)は、第1実施形態に係る接近動作の説明図である。ロボットハンド120をワークW1に接近させる際のロボットハンド120の移動方向は、
図9(a)に示すように、鉛直方向である-Z0方向であってもよいし、-Z0方向に対して斜め方向であってもよいし、
図9(b)に示すように、カメラ211とワークW1とを結ぶ直線方向であってもよし、これらの方向以外の方向であってもよい。その際、指部122の先端が向いている方向は、ロボットハンド120の移動方向と交差する方向であってもよいが、ロボットハンド120の移動方向であることが好ましい。
【0053】
干渉判定部411は、ロボットハンド120と物体との距離を計測するセンサの計測結果を用いて、ロボットハンド120が物体に干渉するかどうかを判定する。なお本実施形態では、ロボットハンド120と物体との状態として距離を計測するが、これに限られない。例えば、ロボットハンド120の位置と物体との位置とに基づく、ロボットハンド120と物体との相対的または絶対的な位置情報を、ロボットハンド120と物体との状態として計測しても構わない。干渉判定部411が物体に干渉すると判定した場合、回避動作制御部410は、回避動作を行うようロボット100を制御する。ロボットハンド120と物体との距離を計測するセンサは、近接センサ、距離センサ、画像センサ、又はカメラ等のセンサを用いることができる。また、センサは、ロボットハンド120、ロボットアーム101、又はロボット100以外の部材のいずれかに取り付けられてもよい。
【0054】
以下、好適な例として、ロボットハンド120の指部122に距離センサが取り付けられた場合について説明する。
【0055】
図10は、第1実施形態に係るロボットハンド120の斜視図である。ロボットハンド120を基準とする座標系Σを定義する。座標系Σにおいて、指部122の長手方向と平行な方向をZ方向、Z方向と直交し、2つの指部122の開閉方向と平行な方向をX方向、Z方向及びX方向と直交する方向をY方向とする。2つの指部122は、本体部121からX方向に延在する爪状の部材であり、X方向に並んで配置されている。
【0056】
ロボットハンド120の2つの指部122のうちの一方の指部1221に、距離センサ303が配置され、2つの指部122のうちの他方の指部1222に、距離センサ304が配置されている。各距離センサ303,304は、第1センサの一例である。距離センサ303は、Z方向における指部1221と不図示の物体との距離を計測する。距離センサ304は、Z方向における指部1222と不図示の物体との距離を計測する。Z方向は、所定方向の一例である。
【0057】
第1実施形態では、距離センサ303は、指部1221のZ方向の先端12211に設けられている。これにより、距離センサ303は、指部1221の先端12211から、先端12211に対面する不図示の物体までのZ方向の距離を計測する。また、距離センサ304は、指部1222のZ方向の先端12212に設けられている。これにより、距離センサ304は、指部1222の先端12212から、先端12212に対面する不図示の物体までのZ方向の距離を計測する。
【0058】
さらに、ロボットハンド120の指部1221に、距離センサ305が配置され、ロボットハンド120の指部1222に、距離センサ306が配置されている。距離センサ305,306は、2つの指部122の間にワークW1が有るか無いかを検出するためのセンサである。即ち、距離センサ305,306は、ロボットハンド120の指部122が、ワークW1の保持を開始させることができるかどうかを検出するためのセンサである。各距離センサ305,306は、第2センサの一例である。
【0059】
距離センサ305は、指部1221の保持部分12221に設けられている。距離センサ306は、指部1222の保持部分12222に設けられている。保持部分12221,12222は、ロボットハンド120がワークW1を保持する際にワークW1に接触してワークW1に保持力を作用させる部分である。距離センサ305は、指部1221の保持部分12221から、保持部分12221に対面する不図示の物体までのX方向の距離を計測するセンサである。距離センサ306は、指部1222の保持部分12222から、保持部分12222に対面する不図示の物体までのX方向の距離を計測するセンサである。
【0060】
距離センサ303~306の各々は、ToF(Time of Flight)方式のセンサであってもよいが、近接センサでもよく、第1実施形態では近接センサである。第1実施形態の距離センサ303は、距離センサ303と物体との距離を計測し、距離センサ304は、距離センサ304と物体との距離を計測する。
【0061】
距離センサ303~306の各々は、エネルギーを照射する送信部と、物体で反射したエネルギーを受ける受信部とを有する。エネルギーは、光、超音波、磁界、電界、電磁界などであってもよく、光が好ましい。光は、レーザー光であってもよい。距離センサ303~306の各々は、例えばフォトリフレクタであり、送信部は、例えばエネルギーとして光を発するLEDである。受信部は、光を受光するフォトトランジスタである。LEDは、光として赤外線を発することが好適である。外乱光の影響を受けづらいためである。
【0062】
LEDで発せられた光は、ワークW1に照射されると、ワークW1で反射する。その反射光をフォトトランジスタが受光をすることで、距離が計測される。フォトトランジスタは、距離に応じた反射光の輝度を電流として出力する。電流は抵抗を介することで電圧として計測される。計測可能距離は、概ね4mm以下である。
【0063】
各距離センサ303,304は、検出値である距離の計測結果を、干渉判定部411へ送信する。各距離センサ305,306は、検出値である距離の計測結果を、ワーク有無判定部412へ送信する。各距離センサ303~306には、閾値が設定可能である。例えば、各距離センサ303,304には、閾値TH1が設定され、各距離センサ305,306には、閾値TH2が設定される。
【0064】
距離センサ303,304は、
図10に示す+Z方向である指先方向を光軸方向として、光軸方向に光を照射し、反射光を受光して距離を計測する。距離センサ305は、
図10に示す+X方向である指部122
1の閉方向を光軸方向として、光軸方向に光を照射し、反射光を受光して距離を計測する。距離センサ306は、
図10に示す-X方向である指部122
2の閉方向を光軸方向として、光軸方向に光を照射し、反射光を受光して距離を計測する。なお、+Z方向は、Z方向におけるプラス方向である。-Z方向は、+Z方向と反対の方向であり、Z方向におけるマイナス方向である。
【0065】
距離センサ305,306の取付け位置は、例えば指部122の先端から-Z方向に4.5mmの位置である。距離センサ305,306の取付け位置が指部122の先端から離れていることにより、指部122の先端から離れた位置でワークW1が保持されることになる。なお、距離センサ305,306の取付け位置は、指部122の先端から-Z方向に4.5mmの位置に限定されるものではない。
【0066】
図11(a)~
図11(c)は、第1実施形態に係る距離センサ303,304により干渉が検知される状態の説明図である。
【0067】
図11(a)には、バラ積みされたワークWが崩れてワークW1の位置がずれたり、振動によってワークW1の位置がずれたりすることで、ワークW1の保持点40とロボットハンド120の指部122との位置関係がずれた場合が示されている。この場合、保持対象とするワークW1が、ロボットハンド120に干渉し得る物体である。指部122がワークW1へ接近した際に、指部122がワークW1のボス部と干渉する前に、干渉判定部411により距離センサ303の距離の計測結果が閾値TH1以下と判定される。
【0068】
図11(b)には、保持対象のワークW1の隣にワークW2が配置されている場合が図示されている。この場合、ワークW1の隣のワークW2が、ロボットハンド120に干渉し得る物体である。指部122がワークW1へ接近した際に、指部122が隣のワークW2のボス部と干渉する前に、干渉判定部411により距離センサ303の距離の計測結果が閾値TH1以下と判定される。
【0069】
図11(c)には、保持対象のワークW1の近くにトレー20の内底面21がある場合が図示されている。この場合、トレー20が、ロボットハンド120に干渉し得る物体である。指部122がワークW1へ接近した際に、指部122がトレー20の内底面21と干渉する前に、干渉判定部411により距離センサ304の距離の計測結果が閾値TH1以下と判定される。
【0070】
以上、ロボットハンド120が物体に干渉する前に、干渉判定部411により距離センサ303,304の少なくとも一方の距離の計測結果が閾値TH1以下と判定される。閾値TH1は、例えば2mmに設定される。
【0071】
図12は、第1実施形態に係るロボットハンド120を保持開始位置41に位置決めした状態を示す図である。
図12に示すように、ロボットハンド120の指部122
1,122
2が保持開始位置41に位置決めされる。
図12に示すように指部122
1,122
2の間にワークW1が存在することで、ワーク有無判定部412により、距離センサ305,306の距離の計測結果が閾値TH2以下と判定され、「ワークあり」を示す値がメイン制御部420に送られる。閾値TH2は、ロボットハンド120を保持開始位置41に位置決めした状態おいて、「クリアランスの値C<閾値TH2」を満たすように設定される。例えばC=2mmとした場合、閾値TH2は、2mmより大きい値に設定される。その際、閾値TH2は、4mm以下に設定されることが好ましい。
【0072】
ワーク有無判定部412における「ワークあり」の判定は、距離センサ305の距離の計測結果、又は距離センサ305の距離の計測結果の一方が閾値TH2以下となった場合であってもよいし、距離センサ305の距離の計測結果、及び距離センサ305の距離の計測結果の両方が閾値TH2以下となった場合であってもよい。
【0073】
第1実施形態に係る一連の動作について、
図13のフローチャートを用いながら説明する。
図13は、第1実施形態に係る制御のフローチャートである。
図14は、
図13に示すフローチャートの各ステップの動作の説明図である。
【0074】
ステップS101において、画像処理部212は、ばら積みされたワークWが存在する所定領域R0をカメラ211に撮像させる。
【0075】
次にステップS102において、画像処理部212は、カメラ211から画像データI1を取得する。画像処理部212は、取得した画像データI1の中から、ワークW1を含む探索領域を検出し、探索領域に基づいてワークW1の位置、姿勢、保持点40および保持開始位置41を認識する。
【0076】
次にステップS103において、高さ計測部214は、探索領域におけるワークW1の高さを計測する。画像データI1から2つ以上の探索領域が検出された場合、ステップS104において、優先順位付け部215は、2つ以上の探索領域にそれぞれ対応する2つ以上のワークW1に、ロボット100が取り易い順に優先順位を付ける。例えば、優先順位付け部215は、2つ以上のワークW1に、高さの高い順に優先順位を付ける。
【0077】
次にステップS105において、メイン制御部420は、優先順位iのワークW1を選択する。iは1以上の整数であり、iの初期値は1である。i=1が最も優先順位が高く、iの数値が大きくなるほど、優先順位が低くなる。
【0078】
以上、ステップS101~S105において、メイン制御部420は、画像データI1に基づいて、複数のワークWの中から保持対象とするワークW1を選択する。
【0079】
次にステップS106において、メイン制御部420は、ロボットハンド120が保持点40の上方へ移動するようロボットアーム101を制御する。その際、ロボットハンド120の指部122の先端は、-Z0方向、即ちロボットハンド120をワークW1に接近させる移動方向に向けられている。次にステップS107において、メイン制御部420は、ロボットハンド120が保持点40に接近するようロボットアーム101を制御する。即ち、メイン制御部420は、ロボットハンド120の指部122が保持開始位置41に接近するようロボットアーム101を制御する。これにより、保持対象とするワークW1にロボットハンド120を接近させる接近動作が開始される。
【0080】
なお本実施形態では、上述の接近動作における、ロボットハンド120の移動量の限界値を任意に設定できるものとする。本実施形態では限界値として、ロボットハンド120の指部122がトレー20の内底面21に接触するまでのロボットハンド120の移動量とする。なお、本実施形態では、トレー20の内底面21まで指部122が接触するまでの移動量を限界値に設定するが、これに限られない。例えば、トレー20の内底面21から所定量の間隔を持たせた位置を限界値として設定しても構わない。ロボットハンド120の移動量の検出は、ロボットアーム101の各関節にエンコーダを設けエンコーダにより取得しても良いし、別途ロボットハンド120の移動量を取得するためのカメラを設けて取得しても構わない。
【0081】
干渉判定部411は、接近動作をロボット100に行わせているときに、距離センサ303,304の各々から距離の計測結果を取得する。距離の計測結果に基づく所定条件が成立する場合、回避動作制御部410は、ロボットハンド120が物体に干渉するのを回避する回避動作をロボット100に行わせる。第1実施形態では、接近動作中、ステップS108において、干渉判定部411は、距離センサ303,304の距離の計測結果に対する閾値TH1の判定を行う。即ち、第1実施形態では、距離の計測結果に基づく所定条件が成立する場合は、距離センサ303,304のうちいずれかのセンサに計測された距離が閾値TH1以下となる場合である。距離の計測結果に基づく所定条件が成立しない場合は、距離センサ303,304のうちいずれも、計測された距離が閾値TH1を超える場合である。
【0082】
即ち、ステップS108において、干渉判定部411は、ロボットハンド120が物体に干渉する前に、ロボットハンド120がワークW1に接近する接近動作を継続したと仮定したときにロボットハンド120が物体に干渉するかどうかを判定する。
【0083】
接近動作中、ステップS108がYES、即ち干渉判定部411に距離が閾値TH1以下と判定された場合、ステップS109において、回避動作制御部410は、ロボットハンド120が物体に干渉するのを回避する回避動作をロボット100に行わせる。
【0084】
回避動作は、ロボット100に接近動作を行わせた際のロボットハンド120の移動方向(-Z0方向)とは異なる方向にロボットハンド120を移動させる移動動作であることが好ましい。第1実施形態における回避動作(移動動作)は、ロボットハンド120を移動方向(-Z0方向)とは反対の方向(+Z0方向)に退避させる退避動作である。
【0085】
即ち、第1実施形態では、回避動作制御部410は、ロボットハンド120の接近動作を停止させるようロボットアーム101を制御し、次いでロボットハンド120がワークW1の上方へ退避するようロボットアーム101を制御する。これによりワークW1や、ワークW1の周囲のワークW、トレー20などの物体にロボットハンド120が干渉するのを回避することができる。
【0086】
ロボットハンド120が退避する方向は、ロボットハンド120がワークW1へ接近する方向とは反対の方向、例えばトレー20の内底面21に直交する方向であることが好ましい。また、ロボットハンド120の退避位置は、ワークW1の高さより高い位置、例えば内底面21から所定高さの位置であることが好ましい。
【0087】
ロボットハンド120を退避させた後、ステップS109において、メイン制御部420は、優先順位iをインクリメントし(i=i+1)、ステップS105の処理に戻り、別のワークを保持対象とする。つまりメイン制御部420は、別のワークとして次点の優先順位のワークを保持対象のワークW1とする。なお、ステップS101の処理へ戻り、カメラ211に再び撮像を行わせてもよいが、ステップS105の処理へ戻ることにより、素早いサイクルで次のワークW1を保持する動作へ移行することが可能である。
【0088】
接近動作中、ステップS108がNO、即ち干渉判定部411に距離が閾値TH1を超えると判定された場合、ステップS110の処理に移行する。即ち、距離の計測結果に基づく所定条件が成立しない場合、ステップS110の処理に移行する。
【0089】
ステップS110において、ワーク有無判定部412は、ワークの有無を判定する。ステップS110がNO、即ちワーク有無判定部412がワークなしと判定した場合、干渉判定部411は、ステップS108の処理へ戻り、メイン制御部420は、ワークW1への接近動作を継続する。ワーク有無判定部412がワークありと判定した場合、ロボットハンド120は保持開始位置41に到達しており、メイン制御部420は次のステップS111の処理へ進む。
【0090】
なお、ロボットハンド120のワークW1への接近動作を継続させている際に、ロボットハンド120が限界値に到達してもステップS110でワークW1の検出が為されない場合、回避動作制御部410は、何らかのエラーが発生したとして、ロボット100を停止させる。そして、制御フローを終了するものとする。ロボット100を停止させる場合は、回避動作制御部410は、接近動作させている際のロボットハンド120の移動方向とは反対方向にロボットハンド120を退避させ、その後ロボット100を停止させても構わない。
【0091】
ワーク有無判定においてワーク有りと判定した場合、すなわちロボットハンド120がワークW1の保持を開始する保持開始位置41に到達した場合、ステップS111において、メイン制御部420は、接近動作を停止させる。そして、メイン制御部420は、ロボットハンド120に保持対象とするワークW1を保持させる保持動作を開始させる。メイン制御部420は、ロボットハンド120に保持動作を行わせてロボットハンド120にワークW1を保持させた後、ロボット100に載置台30へワークW1を搬送させるようロボットアーム101を制御する。その後、メイン制御部420は、ステップS101の処理へ戻る。以上のステップS101~S111の動作を繰り返し実行することにより、トレー20にばら積みされた複数のワークWが1つずつ載置台30に整列して配置される。
【0092】
以上、第1実施形態によれば、バラ積みされたワークWのうちの1つのワークW1をロボットハンド120に保持させる際に、ロボットハンド120をワークW1へ接近させながら、ロボットハンド120が物体に干渉するかどうかの判定を行う。物体には、保持対象とするワークW1、ワークW1の周囲にあるワークW、トレー20などが含まれる。ロボットハンド120が物体に干渉する、即ち距離の計測結果が閾値TH1以下であると判定された場合、ロボットハンド120が物体に干渉するのを回避するようロボットアーム101が動作する。これにより、ロボットハンド120が物体に干渉せずにワークW1を保持することができ、ロボットハンド120が保持対象のワークW1を保持する成功率を高めることができる。
【0093】
また、即ち距離の計測結果が閾値TH1を超えると判定された場合、ロボットハンド120が、物体に干渉することなく、例えばばら積みされたワークWを崩すことなく、ワークW1を保持することができる。即ち、ロボットハンド120がワークW1を保持する成功率を高めることができる。
【0094】
また、ロボットハンド120がワークWに干渉することが回避されるので、ばら積みされたワークWが崩れたり、ワークW、ロボットハンド120又はワークWの周囲の物が破損したりすることが低減される。
【0095】
また、バラ積みされたワークWが崩れるのを低減できるので、ロボットハンド120がワークWに再アプローチする際の処理時間を短縮することができる。
【0096】
また、ステップS108の判定は、ロボットハンド120をワークW1に接近させる接近動作中、ロボットハンド120が目標とする保持開始位置41に到達するまで、所定の制御周期で行われる。よって、接近動作中、ほぼリアルタイムにロボットハンド120がワークW1に干渉するかどうかが判定されるため、ロボットハンド120が物体に干渉するのを確実に回避することができ、また、ロボットハンド120がワークW1を保持する成功率を高めることができる。
【0097】
[第2実施形態]
次に第2実施形態について説明する。第2実施形態において、第1実施形態と共通する事項については説明を簡単化あるいは省略し、以下、第1実施形態と異なる事項について詳細に説明する。第2実施形態では、干渉判定部411が距離センサ303,304のいずれか一方で距離の測定結果が閾値TH1以下となった場合に、保持開始位置41を変更する補正動作を行うものである。
【0098】
図15は、第2実施形態に係る距離センサ303,304の説明図である。各距離センサ303,304は、所定方向として放射方向に所定範囲の一例である照射範囲50に亘って光を照射する。第2実施形態では、各距離センサ303,304は、X方向に広がる、又はX方向に走査するように光を照射する。放射方向は、+Z方向に対して所定角度内の方向である。照射範囲50は、距離センサ303,304から+Z方向に離れた所定位置のX方向の範囲である。X方向は、第2実施形態では2つの指部122の開閉方向である。照射範囲50は、所定幅の一例である指部122のX方向の幅(ハンド幅)53より広い範囲である。以下、光をX方向に線状に照射する場合を例に説明するが、XY方向に面状に照射するようにしてもよい。以下、「幅」は、X方向の幅をいう。
【0099】
各距離センサ303,304は、物体で反射した光を受けて、照射範囲50における、ロボットハンド120と物体と距離を計測する。各距離センサ303,304は、照射範囲50のうち、干渉を検知している領域、即ち計測した距離が閾値TH1以下の領域51と、干渉を検知していない領域、即ち計測した距離が閾値TH1を超える領域52とを検出可能である。領域51は、第1領域の一例であり、領域52は、第2領域の一例である。距離センサ303,304には、例えばカメラを内蔵したレーザー変位センサ、又は2次元のレーザー変位センサなどが適用可能である。
【0100】
干渉判定部411は、距離センサ303,304の少なくとも一方が閾値TH1以下となる領域51を検出した場合、ロボットハンド120が物体に干渉すると判定する。また、干渉判定部411は、領域51,52のX方向の幅を示す値[mm]を、距離センサ303,304から取得することができる。
【0101】
領域51は、照射範囲50の少なくとも一部の領域となり得る。領域52は、照射範囲50のうち、領域51以外の領域である。領域51がなければ、領域52は照射範囲50と一致する。領域51が照射範囲50と一致すれば、領域52はない。
【0102】
第2実施形態に係る一連の動作について、
図16のフローチャートを用いながら説明する。
図16は、第2実施形態に係る制御のフローチャートである。
図16中、ステップS201~S207の処理は、
図13のステップS101~S107の処理と同様であるため、説明を省略する。
【0103】
干渉判定部411は、ロボットハンド120がワークW1に接近する接近動作をロボット100に行わせているときに、距離センサ303,304の各々から距離の計測結果を取得する。距離の計測結果に基づく所定条件が成立する場合、回避動作制御部410は、ロボットハンド120が物体に干渉するのを回避する回避動作をロボット100に行わせる。
【0104】
第2実施形態では、接近動作中、ステップS208において、干渉判定部411は、距離センサ303,304の距離の計測結果に対する閾値TH1の判定を行う。即ち、第2実施形態では、距離の計測結果に基づく所定条件が成立する場合は、距離センサ303,304のうちいずれかのセンサに領域51が検出される場合である。距離の計測結果に基づく所定条件が成立しない場合は、距離センサ303,304のうちいずれも、領域51が検出されない場合である。
【0105】
即ち、ステップS208において、干渉判定部411は、ロボットハンド120が物体に干渉する前に、ロボットハンド120がワークW1に接近する接近動作を継続したと仮定したときにロボットハンド120が物体に干渉するかどうかを判定する。
【0106】
接近動作中において、ステップS208がYES、即ち距離が閾値TH1以下となる領域51が検出された場合、ロボットハンド120の移動を一旦停止させて、ステップS209の処理に移行する。そして、ステップS209~S211において、回避動作制御部410は、ロボットハンド120が物体に干渉するのを回避する回避動作をロボット100に行わせる。
【0107】
回避動作は、ロボット100に接近動作を行わせた際のロボットハンド120の移動方向(-Z0方向)とは異なる方向にロボットハンド120を移動させる移動動作であることが好ましい。
【0108】
第2実施形態における回避動作(移動動作)は、ロボットハンド120を移動方向(-Z0方向)とは反対の方向(+Z0方向)に退避させる退避動作と、ロボットハンド120の位置又は姿勢を補正する補正動作と、を含む。第2実施形態では、回避動作制御部410は、領域51の幅又は領域52の幅に応じて、退避動作及び補正動作のいずれか一方を選択的にロボット100に行わせる。また、第2実施形態では、補正動作は、ロボットハンド120の位置を補正する動作である。
【0109】
以下、具体的に説明すると、ステップS209において、回避動作制御部410は、距離センサ303,304のうち一方のセンサのみ領域51が検出され、かつその領域51以外の領域52の幅がハンド幅53を超えるかどうかを判定する。
【0110】
図17(a)及び
図17(b)は、第1実施形態に係るステップS209の判定の説明図である。ステップS209がNOの場合、例えば
図17(a)に示すように、領域52の幅がハンド幅53以下の場合、又は
図17(b)に示すように、距離センサ303,304の両方において領域51が検出された場合、ステップS210において、回避動作制御部410は、退避動作をロボット100に行わせる。
【0111】
図17(a)の場合、ワークW1の位置または姿勢が大きく変化してしまっていることが想定され、ロボットハンド120の位置を補正しても、ロボットハンド120にワークW1を保持させることが困難であることが想定される。また、
図17(b)の場合、ロボットハンド120をどの方向に動かしても、ロボットハンド120にワークW1を保持させることが困難であることが想定される。即ち、回避動作制御部410は、複数のセンサ303,304のいずれにおいても距離の計測結果に基づく所定条件が成立する場合、ロボットハンド120を退避させる退避動作を、ロボット100に行わせる、このように、いずれのケースにおいても、回避動作制御部410は、ロボット100に退避動作を行わせることが好ましい。
【0112】
ロボットハンド120を退避させた後、ステップS209において、メイン制御部420は、優先順位iをインクリメントし(i=i+1)、ステップS205の処理に戻り、別のワークを保持対象とする。つまりメイン制御部420は、別のワークとして次点の優先順位のワークを保持対象のワークW1とする。なお、ステップS201の処理へ戻り、カメラ211に再び撮像を行わせてもよいが、ステップS205の処理へ戻ることにより、素早いサイクルで次のワークW1を保持する動作へ移行することが可能である。
【0113】
ステップS209がYES、即ち領域52の幅がハンド幅53を超える場合、ステップS211において、回避動作制御部410は、補正動作をロボット100に行わせる。補正動作をロボット100に行わせることで、素早いサイクルで再度、保持動作へ移行することができる。
【0114】
その後、メイン制御部420は、再度、ロボットハンド120をワークW1に接近させる接近動作をロボット100に行わせ、ステップS212の処理に移行する。この際の接近動作量[mm]は、指定値でもよいし、干渉判定部411が再度干渉を判定するまで接近させてもよい。ステップS212,S213の処理は、
図13のステップS110,S111の処理と同様である。
【0115】
ステップS212において、ワーク有無判定部412は、距離センサ305,306の検出値より、ワークの有無を判定する。ワークなしと判定した場合はステップS208の処理へ戻り、ワークW1への接近動作を継続する。ワークありと判定した場合はステップS213の処理へ進む。ステップS213において、メイン制御部420は、ロボットハンド120へ保持動作を指令する。
【0116】
なお、ロボットハンド120のワークW1への接近動作を継続させている際に、ロボットハンド120が限界値に到達してもステップS212でワークW1の検出が為されない場合、回避動作制御部410は、何らかのエラーが発生したとして、ロボット100を停止させる。そして、制御フローを終了するものとする。ロボット100を停止させる場合は、回避動作制御部410は、接近動作させている際のロボットハンド120の移動方向とは反対方向にロボットハンド120を退避させた後、ロボット100を停止させても構わない。
【0117】
以下、補正動作について具体的に説明する。
図18(a)及び
図18(b)は、第2実施形態に係る補正動作の説明図である。
図18(a)及び
図18(b)には、回避動作制御部410が、ロボットハンド120の保持開始位置41を変更する様子が図示されている。
【0118】
カメラ211の撮像誤差や、撮像後のワークWの崩れ等の理由により、
図18(a)に示すように、ロボットハンド120(距離センサ303)とワークW1との距離が閾値TH1以下となり、ロボットハンド120がワークW1に干渉しそうになっている。
【0119】
回避動作制御部410は、領域52とハンド幅53とを比較し、領域52がハンド幅53より大きい場合、
図18(b)に示すように、領域52に対向する位置、即ち領域52の上方の位置にロボットハンド120の指部122が移動するよう、ロボットアーム101を動作させ、新たな保持開始位置41´を設定する。この時の補正量[mm]を補正量Δxとし、ロボットハンド120をX方向に直線移動させることで、ロボットハンド120の位置を補正している。
【0120】
以上、第2実施形態によれば、ロボットハンド120は物体への干渉を回避でき、かつ補正動作において、ロボットハンド120の位置が補正されるので、ワークW1をロボットハンド120に保持させる成功率を高めることができる。また、ロボットハンド120を退避させる退避動作をロボット100に行わせる場合と比べて、処理時間を短縮することができる。また、補正動作により、ばら積みされたワークWのうち、ピッキング可能なワークW1の数を増やすことができるため、トレー20内の全てのワークWの搬送を成功させる確率が向上する。
【0121】
以下、第2実施形態の変形例を示す。
図19(a)及び
図19(b)は、第2実施形態の変形例2の説明図であり、
図19(c)は第2実施形態の変形例3の説明図である。上述の第2実施形態では、各距離センサ303,304のエネルギーが指部122のハンド幅53よりも広がるように放射され、照射範囲50が指部122のハンド幅53よりも広い場合について説明したが、これに限定されるものではない。各距離センサ303,304のエネルギーが指部122のハンド幅53以下の幅で放射され、照射範囲50が指部122のハンド幅53以下であってもよい。
【0122】
2つの指部122の幅は、互いに同じ幅である。また、距離センサ303,304が照射する光の幅、即ち照射範囲50の幅は、互いに同じ幅である。変形例2の距離センサ303,304においては、検出される領域51の幅がハンド幅53より大きくなることはない。このため、第2実施形態とは異なる制御が必要である。
【0123】
まず、変形例2について説明する。
図19(a)に示すように、領域52は、ハンド幅53より狭い。変形例2では、回避動作制御部410は、距離センサ303,304のうち一方のみのセンサにより領域51が検出された場合、領域51以外の領域52に対向する位置にロボットハンド120の指部122が移動するようロボットアーム101を動作させる。
図19(b)に示すように、回避動作制御部410は、照射範囲50において領域51が消滅するまでロボットハンド120を直線移動させる。このときの補正量Δxは、2つの指部122の間隔54/2以内が好ましい。補正方向は領域52に対向する方向である。補正量Δxが大きすぎると、保持点40が間隔54の間に存在しなくなる場合があるためである。
【0124】
以上、回避動作制御部410は、領域51が検出された場合、領域51が検出されなくなるまで前記補正動作をロボット100に行わせる。メイン制御部420は、ロボットハンド120の補正動作後、ロボットハンド120がワークW1に接近する接近動作をロボット100に行わせる。この時の接近動作量[mm]は、指定値でもよいし、距離センサ303、304が干渉を検知するまで接近させてもよいし、ロボットハンド120が保持開始位置に到達するまででもよい。
【0125】
次に変形例3について説明する。
図19(c)に示すように、照射範囲50において領域51と、領域51を挟む2つの領域52とが検出されることがある。2つの領域52の間に領域51が検出されるので、領域51を消滅させるのが困難な場合がある。このような場合、回避動作制御部410は、ロボットハンド120を上方へ退避させる退避動作をロボット100に行わせる。即ち、回避動作制御部410は、照射範囲50のうち2つの領域52に領域51が挟まれる場合、退避動作をロボット100に行わせる。退避させた後は、上述した通り、次点のワークW1を保持対象とすればよい。なお、変形例3の退避動作は、第2実施形態のように照射範囲50の幅がハンド幅53より広い場合であっても適用可能である。
【0126】
なお、第1実施形態においては、補正動作を行わず、退避動作をロボット100に行わせる場合について説明したが、これに限定されるものではない。第1実施形態において、退避動作の替わりに第2実施形態の補正動作をロボット100に行わせてもよい。また、第1実施形態において、退避動作又は補正動作を選択的にロボット100に行わせてもよい。
【0127】
また、第2実施形態又は第2実施形態の変形例に、第1実施形態、又は第1実施形態の変形例の少なくとも1つを組み合わせてもよい。
【0128】
[第3実施形態]
次に第3実施形態について説明する。第3実施形態において、第1又は第2実施形態と共通する事項については説明を簡単化あるいは省略し、以下、第1又は第2実施形態と異なる事項について詳細に説明する。上述の第2実施形態では、補正動作としてロボットハンド120を直線移動させる場合について説明したが、第3実施形態では、補正動作としてロボットハンド120を回転させる場合について説明する。即ち、第3実施形態の補正動作は、ロボットハンド120の姿勢を補正する動作である。
【0129】
図20(a)及び
図20(b)は、第3実施形態に係る補正動作の説明図である。なお、制御の流れは、第2実施形態で説明した
図16のフローチャートを用いて説明した通りであるため、詳細な説明は省略する。第3実施形態では、
図16のステップS211の処理が第2実施形態と異なる。
【0130】
第3実施形態における距離センサ303,304は、第2実施形態又はその変形例の距離センサと同様の構成である。
図20(a)においては、距離センサ303,304のうち距離センサ303のみ領域51が検出された場合が図示されている。
【0131】
干渉判定部411が、
図20(a)に示すように、ワークW2と指部122(距離センサ303)との距離が閾値TH1以下であると判定した場合、回避動作制御部410は、
図20(b)に示すように、ロボットハンド120を回転させる補正動作をロボット100に行わせる。
【0132】
回避動作制御部410は、回転軸55を中心にロボットハンド120を回転させる。回転軸55は、2つの指部122のX方向の中心に位置する軸であって、Y方向と平行に延びる軸である。ロボットハンド120の回転方向は、干渉なしを検出している距離センサ304の方向である。ロボットハンド120の回転補正量は、距離センサ303において検出される領域51が消滅するまで、即ち計測される距離が閾値を上回るまでの回転量としてもよいし、一定量としてもよい。
【0133】
なお、回転軸55は、2つの指部122の先端間の中心を通る軸であることが好ましいが、これに限定されるものではない。例えば回転軸55は、本体部121を通る軸であってもよいし、いずれかの指部122を通る軸であってもよい。
【0134】
第3実施形態では干渉判定部411が干渉すると判定した場合、メイン制御部420は、ロボットハンド120が回転するようロボット100に補正動作を行わせた後、再度、ワークW1にロボットハンド120を接近させる接近動作をロボット100に行わせる。
【0135】
以上、第3実施形態によれば、ロボットハンド120は物体への干渉を回避でき、かつ補正動作において、ロボットハンド120の姿勢が補正されるので、ワークW1をロボットハンド120に保持させる成功率を高めることができる。また、ロボットハンド120を退避させる退避動作をロボット100に行わせる場合と比べて、処理時間を短縮することができる。また、補正動作により、ばら積みされたワークWのうち、ピッキング可能なワークW1の数を増やすことができるため、トレー20内の全てのワークWの搬送を成功させる確率が向上する。
【0136】
なお、第3実施形態又は第3実施形態の変形例に、第1実施形態、第1実施形態の変形例、第2実施形態、又は第2実施形態の変形例の少なくとも1つを組み合わせてもよい。
【0137】
[第4実施形態]
次に第4実施形態について説明する。第4実施形態において、第1~第3実施形態と共通する事項については説明を簡単化あるいは省略し、以下、第1~第3実施形態と異なる事項について詳細に説明する。
【0138】
図21(a)は、第4実施形態に係るロボット制御部400Aのブロック図である。第4実施形態では、ロボット制御部400Aは、回避動作制御部410、メイン制御部420、及び設定部600を有する。設定部600は、ユーザの選択に応じて、回避動作を設定する。回避動作制御部410は、設定部600に設定された回避動作をロボット100に行わせる。第3実施形態において、ユーザが選択可能な回避動作は、第1実施形態で説明した退避動作、第2実施形態で説明したロボットハンド120の位置を補正する補正動作(位置補正動作)、及び第3実施形態で説明したロボットハンド120の姿勢を補正する補正動作(姿勢補正動作)を含む。
【0139】
図21(b)は、第4実施形態に係るグラフィカルインターフェース(GUI)の説明図である。設定部600は、例えば
図3に示すディスプレイ402に、
図21(b)に示すユーザインタフェース画像(UI画像)UI1を表示させる。UI画像UI1には、回避動作をユーザが選択可能な複数のチェックボックスB1,B2,B3と、ユーザが操作可能な決定ボタンB10と、が含まれる。各チェックボックスB1,B2,B3には、対応する回避動作が割り当てられている。例えば、チェックボックスB1には退避動作が割り当てられており、チェックボックスB2には位置補正動作が割り当てられており、チェックボックスB3には姿勢補正動作が割り当てられている。UI画像UI1を介したユーザの選択は、マウス404などのポインティングデバイスを用いて行われる。
【0140】
設定部600は、UI画像UI1を介してロボット100に行わせる回避動作の選択を受け付ける。例えば、ユーザによってチェックボックスB1が選択(チェック)され、決定ボタンB10が操作された場合、設定部600は、回避動作として、チェックボックスB1に割り当てられている退避動作を設定する。また、例えば、ユーザによってチェックボックスB2が選択(チェック)され、決定ボタンB10が操作された場合、設定部600は、回避動作として、チェックボックスB2に割り当てられている位置補正動作を設定する。また、例えば、ユーザによってチェックボックスB3が選択(チェック)され、決定ボタンB10が操作された場合、設定部600は、回避動作として、チェックボックスB3に割り当てられている姿勢補正動作を設定する。
【0141】
図22は、第4実施形態に係る制御のフローチャートである。
図22中、ステップS401~S408の処理は、
図13のステップS101~S108の処理、又は
図16のステップS201~S208と同様であるため、説明を省略する。
【0142】
ステップS408がYESの場合、即ち距離の計測結果に基づく所定条件が成立する場合、ステップS409において、回避動作制御部410は、設定部600に設定された回避動作が、退避動作、位置補正動作及び姿勢補正動作のうちのいずれであるかを判定する。
【0143】
設定部600に設定された回避動作が退避動作である場合、回避動作制御部410は、ステップS410の処理に移行する。設定部600に設定された回避動作が位置補正動作である場合、回避動作制御部410は、ステップS411の処理に移行する。設定部600に設定された回避動作が姿勢補正動作である場合、回避動作制御部410は、ステップS412の処理に移行する。
【0144】
ステップS410において、回避動作制御部410は、ロボットハンド120がワークW1から退避する退避動作を、ロボット100に行わせる。退避動作は、第1実施形態で説明した通りである。ロボットハンド120を退避させた後、ステップS410において、メイン制御部420は、優先順位iをインクリメントし(i=i+1)、ステップS405の処理に戻り、別のワークを保持対象とする。これによりワークW1や、ワークW1の周囲のワークW、トレー20などの物体にロボットハンド120が干渉するのを回避することができる。
【0145】
ステップS411において、回避動作制御部410は、ロボットハンド120の位置を補正する位置補正動作を、ロボット100に行わせる。位置補正動作は、第2実施形態において、補正動作として説明した通りである。ロボットハンド120の位置を補正した後、ステップS413の処理に移行する。ステップS413およびステップS414は、それぞれ
図13のステップS110およびステップS111と同様であり、説明を省略する。
【0146】
ステップS412において、回避動作制御部410は、ロボットハンド120の姿勢を補正する姿勢補正動作を、ロボット100に行わせる。姿勢補正動作は、第3実施形態において、補正動作として説明した通りである。ロボットハンド120の姿勢を補正した後、ステップS413の処理に移行する。
【0147】
以上、第4実施形態によれば、ワークや装置条件応じて、退避動作をユーザが選択することが可能になる。例えば、位置補正動作では、XYZ軸のみのアクチュエータによっても実施可能である。姿勢補正動作では、6軸ロボットを使うことで実施可能でなる。なお、使用される装置の条件が事前に分かれば、回避動作の選択を自動で行ってもよい。
【0148】
なお、第4実施形態又は第4実施形態の変形例に、第1実施形態、第1実施形態の変形例、第2実施形態、第2実施形態の変形例、第3実施形態、及び第3実施形態の変形例の少なくとも1つを組み合わせてもよい。
【0149】
[第5実施形態]
次に第5実施形態について説明する。第5実施形態において、第1~第4実施形態と共通する事項については説明を簡単化あるいは省略し、以下、第1~第4実施形態と異なる事項について詳細に説明する。
【0150】
図23は、第5実施形態に係るロボットハンド120Aの説明図である。第5実施形態では、ロボットハンド120の替わりにロボットハンド120Aをロボットに適用したものである。
【0151】
ロボットハンド120Aは、吸着方式によるロボットハンドであり、吸着パッド601と、空気の流出口602を有する吸着ハンド本体603と、を備える。吸着ハンド本体603の流出口602は、真空エジェクタ15の真空ポートに接続されている。ロボットハンド120Aは、吸着パッド601とワークW1と間の距離を近づけて吸着保持する。真空エジェクタ15は、ロボットシステムに備えられていてもよいし、工場などに配置された設備であってもよい。真空エジェクタ15が動作することにより、吸着パッド601にワークWが吸い寄せられる。
【0152】
吸着パッド601は、保持するワークW1との間で摩擦力を発生させるために、ゴム部材であることが好ましい。ワークW1を吸着した際の吸着パッド601とワークW1との摩擦力により、ロボット100によるワークW1の搬送中にワークW1が吸着パッド601から移動したり落下したりすることを防ぐことができる。
【0153】
図24(a)及び
図24(b)は、第5実施形態に係るロボットハンド120Aの説明図である。ロボットハンド120Aには、第1センサの一例である距離センサ303が配置されている。距離センサ303は、
図24(a)に示すように吸着ハンド本体603の外周部に配置されてもよいし、
図24(b)に示すように吸着ハンド本体603の内部に配置されてもよい。なお、吸着ハンド本体603は、内部が空洞になっており、距離センサ303を設置する空間が確保されている。
【0154】
図25は、第5実施形態に係るロボットハンド120Aの説明図である。
図25に示すように、距離センサ303は、ワークW1とロボットハンド120Aの先端である吸着パッド601との距離を測定する。測定された距離が閾値TH1以下となった場合、干渉すると判定され、回避動作制御部410は、ロボットハンド120AがワークW1に干渉しないよう回避動作をロボットに行わせる。例えば回避動作制御部410は、ロボットハンド120Aが上方へ退避するよう退避動作をロボットに行わせる。
【0155】
ロボットハンド120AがワークW1へ接近動作中に、ワーク有無判定部412にワークありと判定された場合、メイン制御部420は、真空エジェクタ15を動作させてロボットハンド120AにワークW1を保持させる。ワークの有無を確認のための距離センサ305は、距離センサ303と同様に吸着ハンド本体603の外周部に設定されてもよいし、吸着ハンド本体603の内部に設置されてもよい。また、距離センサ305を省略して距離センサ303において距離を計測してもよい。
【0156】
ロボットハンド120AがワークW1を吸着保持しようとするとき、ロボットハンド120Aは、ワークW1から離間している。距離センサ305の閾値TH2は、ロボットハンド120AがワークW1を吸着保持しようとするときの、距離センサ305とワークW1と間の距離に設定されている。ワーク有無判定部412は、距離センサ305が計測した距離が閾値TH2以下となった場合、ワーク有りと判定する。
【0157】
なお、真空エジェクタ15は、接近動作中、動作させておいてもよい。これにより、ロボットハンド120Aは、吸着動作を行いながらワークW1へ接近する。また、ワーク有無判定部412は、距離センサ305に替えて、真空エジェクタ15を動作させた際の真空圧の変化を読み取って、ワークの有無を判定してもよい。また、ワーク有無判定部412は、距離センサ305の閾値TH2による判定と、上記吸着させたときの真空圧変化と、併用して、ワークの有無を判定してもよい。以上の構成により、ロボットハンド120Aにおいても、ロボットハンド120AとワークW1とが干渉することなく、バラ積みされたワークWの中から保持対象のワークW1を吸着することができる。
【0158】
また、第5実施形態又は第5実施形態の変形例に、第1実施形態、第1実施形態の変形例、第2実施形態、第2実施形態の変形例、第3実施形態、第3実施形態の変形例、第4実施形態、及び第4実施形態の変形例の少なくとも1つを組み合わせてもよい。
【0159】
本開示は、以上説明した実施形態に限定されるものではなく、実施形態は、本開示の技術的思想内で多くの変形が可能である。また、本実施形態に記載された効果は、本開示の実施形態から生じる最も好適な効果を列挙したに過ぎず、本開示の実施形態による効果は、本実施形態に記載されたものに限定されない。
【0160】
第1~第5実施形態では、ロボットアーム101が垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアーム101が、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。また、本開示は、制御装置に設けられる記憶装置の情報に基づき、伸縮、屈伸、上下移動、左右移動もしくは旋回の動作またはこれらの複合動作を自動的に行うことができる機械に適用可能である。
【0161】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0162】
以上の実施形態の開示は、以下の項を含む。
【0163】
(項1)
ロボットアーム及びロボットハンドを有するロボットと、
前記ロボットハンドを基準とする所定方向における前記ロボットハンドと物体との状態を計測するセンサと、
前記ロボットを制御する制御部と、を備え、
前記制御部は、
保持対象とするワークに前記ロボットハンドを接近させる接近動作を前記ロボットに実行させ、
前記接近動作を前記ロボットに実行させている場合に、前記センサから計測結果を取得し、
前記計測結果に基づく所定条件が成立する場合、前記ロボットハンドが前記物体に干渉するのを回避する回避動作を前記ロボットに実行させる、
ことを特徴とするロボットシステム。
【0164】
(項2)
前記センサは、前記ロボットハンドと前記物体との距離を計測し、
前記距離の前記計測結果に基づく前記所定条件が成立する場合は、前記センサに計測された前記距離が閾値以下となる場合を含む、
ことを特徴とする項1に記載のロボットシステム。
【0165】
(項3)
前記回避動作は、前記ロボットに前記接近動作を行わせた場合の前記ロボットハンドの移動方向とは異なる方向に前記ロボットハンドを移動させる移動動作を含む、
ことを特徴とする項1又は2に記載のロボットシステム。
【0166】
(項4)
前記移動動作は、前記ロボットハンドを前記移動方向とは反対の方向に退避させる退避動作を含む、
ことを特徴とする項3に記載のロボットシステム。
【0167】
(項5)
前記制御部は、前記ロボットハンドを退避させた後、前記ワークとは別のワークを前記保持対象とする、
ことを特徴とする項4に記載のロボットシステム。
【0168】
(項6)
前記センサは、エネルギーを照射し、前記物体で反射した前記エネルギーを受けて、前記距離を計測する、
ことを特徴とする項2に記載のロボットシステム。
【0169】
(項7)
前記センサは、エネルギーを所定範囲に照射し、前記物体で反射した前記エネルギーを受けて、前記所定範囲における前記距離を計測する、
ことを特徴とする項2に記載のロボットシステム。
【0170】
(項8)
前記距離の前記計測結果に基づく前記所定条件が成立する場合は、前記センサに前記所定範囲において前記距離が閾値以下となる第1領域が検出される場合を含む、
ことを特徴とする項7に記載のロボットシステム。
【0171】
(項9)
前記回避動作は、前記ロボットに前記接近動作を行わせた際の前記ロボットハンドの移動方向とは異なる方向に前記ロボットハンドを移動させる移動動作を含む、
ことを特徴とする項8に記載のロボットシステム。
【0172】
(項10)
前記移動動作は、前記ロボットハンドを前記移動方向とは反対の方向に退避させる退避動作と、前記ロボットハンドの位置又は姿勢を補正する補正動作と、を含み、
前記制御部は、前記第1領域の幅、又は前記所定範囲における前記第1領域以外の第2領域の幅に応じて、前記退避動作及び前記補正動作のいずれか一方を前記ロボットに行わせる、
ことを特徴とする項9に記載のロボットシステム。
【0173】
(項11)
前記移動動作は、前記ロボットハンドを前記移動方向とは反対の方向に退避させる退避動作を含み、
前記制御部は、前記所定範囲における前記第1領域以外の第2領域の幅が所定幅以下の場合、前記退避動作を前記ロボットに行わせる、
ことを特徴とする項9に記載のロボットシステム。
【0174】
(項12)
前記移動動作は、前記ロボットハンドの位置又は姿勢を補正する補正動作を含み、
前記制御部は、前記所定範囲における前記第1領域以外の第2領域の幅が所定幅を超える場合、前記補正動作を前記ロボットに行わせる、
ことを特徴とする項9又は11に記載のロボットシステム。
【0175】
(項13)
前記所定範囲が前記所定幅よりも広い、
ことを特徴とする項11又は12に記載のロボットシステム。
【0176】
(項14)
前記ロボットハンドが指部を有し、
前記所定幅は前記指部の幅である、
ことを特徴とする項13に記載のロボットシステム。
【0177】
(項15)
前記移動動作は、前記ロボットハンドの位置又は姿勢を補正する補正動作を含み、
前記制御部は、前記第1領域が検出された場合、前記第1領域が検出されなくなるまで前記補正動作を前記ロボットに行わせる、
ことを特徴とする項9に記載のロボットシステム。
【0178】
(項16)
前記移動動作は、前記ロボットハンドを前記移動方向とは反対の方向に退避させる退避動作を含み、
前記制御部は、前記所定範囲のうち前記距離が前記閾値を超える2つの第2領域に前記第1領域が挟まれる場合、前記退避動作を前記ロボットに行わせる、
ことを特徴とする項9に記載のロボットシステム。
【0179】
(項17)
前記制御部は、前記補正動作を行った後、前記接近動作を継続する、
ことを特徴とする項10、12、又は15に記載のロボットシステム。
【0180】
(項18)
複数のワークがばら積みされた所定領域を撮像する撮像装置を更に備え、
前記制御部は、
前記撮像装置が前記所定領域を撮像した撮像画像を前記撮像装置から取得し、
前記撮像画像に基づき、前記複数のワークの中から前記保持対象とする前記ワークを選択する、
ことを特徴とする項1乃至17のいずれか1項に記載のロボットシステム。
【0181】
(項19)
前記制御部は、
前記保持対象とする前記ワークを保持させる保持動作を開始させる保持開始位置を取得し、
前記接近動作は、前記ロボットハンドを前記保持開始位置に移動させる動作を含む、
ことを特徴とする項1乃至18のいずれか1項に記載のロボットシステム。
【0182】
(項20)
前記制御部は、前記ロボットハンドが前記保持開始位置に到達した場合、前記接近動作を停止して、前記ロボットハンドに前記保持動作を行わせる、
ことを特徴とする項19に記載のロボットシステム。
【0183】
(項21)
前記センサが第1センサであり、
前記ロボットハンドは、複数の指部を有し、
前記複数の指部の間に前記保持対象とする前記ワークが有るか無いかを検出するための第2センサを更に備える、
ことを特徴とする項19又は20に記載のロボットシステム。
【0184】
(項22)
前記ロボットハンドは、指部を有し、
前記センサは、前記指部に設けられており、前記距離として前記指部と前記物体との距離を計測する、
ことを特徴とする項2に記載のロボットシステム。
【0185】
(項23)
前記センサは、前記指部の先端に設けられており、前記距離として前記指部の先端と前記物体との距離を計測する、
ことを特徴とする項22に記載のロボットシステム。
【0186】
(項24)
前記エネルギーは光である、
ことを特徴とする項6乃至17のいずれか1項に記載のロボットシステム。
【0187】
(項25)
前記光は赤外線である、
ことを特徴とする項24に記載のロボットシステム。
【0188】
(項26)
前記制御部は、
前記ロボットハンドが前記物体に干渉するのを回避する回避動作のユーザの選択を受け付けるユーザインタフェース画像を表示部に表示させ、
前記計測結果に基づく所定条件が成立する場合、前記ユーザインタフェース画像を介した前記ユーザの選択に応じた前記回避動作を前記ロボットに実行させる、
ことを特徴とする項1乃至25のいずれか1項に記載のロボットシステム。
【0189】
(項27)
複数の指部を含むロボットハンド、及びロボットアームを有するロボットと、
前記複数の指部のそれぞれに設けられ、前記複数の指部のうち対応する指部を基準とする所定方向における前記対応する指部と物体との状態をそれぞれ計測する複数のセンサと、
前記ロボットを制御する制御部と、を備え、
前記制御部は、
保持対象とするワークに前記ロボットハンドを接近させる接近動作を前記ロボットに実行させ、
前記接近動作を前記ロボットに実行させている場合に、前記複数のセンサのそれぞれから計測結果を取得し、
前記複数のセンサのいずれにおいても前記計測結果に基づく所定条件が成立する場合、前記ロボットに前記接近動作を実行させた場合の前記ロボットハンドの移動方向とは反対の方向に前記ロボットハンドを退避させる退避動作を、前記ロボットに実行させる、
ことを特徴とするロボットシステム。
【0190】
(項28)
ロボットアーム及びロボットハンドを有するロボットと、前記ロボットハンドを基準とする所定方向における前記ロボットハンドと物体との状態を計測するセンサと、を備えるロボットシステムの制御方法であって、
保持対象とするワークに前記ロボットハンドを接近させる接近動作を前記ロボットに実行させ、
前記接近動作を前記ロボットに実行させている場合に、前記センサから計測結果を取得し、
前記計測結果に基づく所定条件が成立する場合、前記ロボットハンドが前記物体に干渉するのを回避する回避動作を前記ロボットに実行させる、
ことを特徴とするロボットシステムの制御方法。
【0191】
(項29)
項1乃至27のいずれか1項に記載のロボットシステムを用いて物品を製造することを特徴とする物品の製造方法。
【0192】
(項30)
項28に記載の制御方法をコンピュータに実行させるためのプログラム。
【0193】
(項31)
項30に記載のプログラムを記録した、コンピュータによって読み取り可能な記録媒体。
【符号の説明】
【0194】
10…ロボットシステム、100…ロボット、101…ロボットアーム、120…ロボットハンド、303…距離センサ(センサ)、304…距離センサ(センサ)、550…制御部