(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-05
(45)【発行日】2024-01-16
(54)【発明の名称】ロボットの構成部材の干渉を検出するロボット装置
(51)【国際特許分類】
B25J 9/22 20060101AFI20240109BHJP
B25J 13/08 20060101ALI20240109BHJP
【FI】
B25J9/22 Z
B25J13/08 A
B25J13/08 Z
(21)【出願番号】P 2022541514
(86)(22)【出願日】2021-07-30
(86)【国際出願番号】 JP2021028475
(87)【国際公開番号】W WO2022030414
(87)【国際公開日】2022-02-10
【審査請求日】2023-03-08
(31)【優先権主張番号】P 2020133037
(32)【優先日】2020-08-05
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100130133
【氏名又は名称】曽根 太樹
(72)【発明者】
【氏名】山▲崎▼ 岳
【審査官】仁木 学
(56)【参考文献】
【文献】特開2019-25621(JP,A)
【文献】特開2009-116505(JP,A)
【文献】特開平5-127730(JP,A)
【文献】特開平4-201096(JP,A)
【文献】特開2010-12567(JP,A)
【文献】国際公開第2020/066949(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
複数の構成部材を含むロボットと、
ロボットを制御する制御装置と、を備え、
前記制御装置は、ロボットの構成部材の3次元の形状データを記憶する記憶部と、
ロボットを駆動した時に、ロボットの構成部材がワークまたはロボットの周りに配置される周辺物と干渉するか否かを判定する判定部と、
ロボットの複数の構成部材のうち、ロボットの運転状態に応じて干渉の判定を行う一部の構成部材を設定する設定部と、を含み、
前記判定部は、前記設定部にて設定された構成部材の3次元の形状データに基づいて、前記設定部にて設定された構成部材がワークまたは周辺物と干渉するか否かを判定する、ロボット装置。
【請求項2】
ロボットの構成部材の3次元の形状データは、実際の形状に一致するように形成されている、請求項1に記載のロボット装置。
【請求項3】
ワークに対して作業を行う作業ツールを備え、
ロボットは、作業ツールを移動するように形成されており、
前記制御装置は、作業ツールを制御する、請求項1または2に記載のロボット装置。
【請求項4】
前記記憶部は、作業ツールの実際の形状に一致する3次元の形状データを記憶しており、
前記設定部は、ロボットの運転状態に応じて、ロボットの複数の構成部材および作業ツールのうち、干渉の判定を行う部材を設定し、
前記判定部は、前記設定部にて設定された部材の3次元の形状データに基づいて、前記設定部にて設定された部材がワークまたは周辺物と干渉するか否かを判定する、請求項3に記載のロボット装置。
【請求項5】
前記判定部は、ロボットの位置が移動する経路において、ロボットの位置および姿勢を算出し、ロボットの位置および姿勢に基づいて、前記設定部にて設定された部材の干渉の判定を行う、請求項1から4のいずれか一項に記載のロボット装置。
【請求項6】
前記記憶部は、作業ツールの形状を簡略化した形状を有する作業ツールのモデル、および周辺物の形状を簡略化した形状を有する周辺物のモデルのうち、少なくとも一方のモデルを記憶しており、
前記判定部は、作業ツールのモデルおよび周辺物のモデルのうち少なくとも一方のモデルを用いて、前記設定部にて設定された部材の干渉の判定を行う、請求項3に記載のロボット装置。
【請求項7】
物体の表面に設定される測定点の位置の情報を含む3次元の形状データを取得するための3次元センサを備え、
前記制御装置は、3次元センサの出力に基づいて、ワークの3次元の形状データを生成する処理部を含み、
前記判定部は、ワークの3次元の形状データに基づいて、前記設定部にて設定されたロボットの構成部材がワークと干渉するか否かを判定する、請求項1から3のいずれか一項に記載のロボット装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの構成部材の干渉を検出するロボット装置に関する。
【背景技術】
【0002】
ロボットおよび作業ツールを備えるロボット装置では、ロボットが位置および姿勢を変更することにより、様々な作業を実施することができる。ロボット装置の周りには作業に関連する周辺物が配置される。例えば、ワークを収容するコンテナまたはワークを搬送する搬送装置などが周辺物として配置される。または、ロボット装置の作業領域を確定するために、フェンスが配置される場合がある。
【0003】
ロボットが駆動すると、ロボットまたは作業ツールが周辺物と干渉する虞がある。ロボット装置が周辺物と干渉しないことを確認するために、ロボット装置の動作のシミュレーションを行うシミュレーション装置を用いることができる。シミュレーション装置では、ロボットを表現するモデルおよび周辺物を表現するモデルが生成されて、ロボットを駆動した時の干渉の発生を判定することができる。
【0004】
作業者は、シミュレーションの結果に基づいて、ロボット装置と周辺物とが干渉しないようにロボットおよび周辺物の配置を定めることができる。また、ロボット装置と周辺物とが干渉しないように、ロボットが駆動する時のロボットの位置および姿勢を定めることができる。特に、作業者は、教示操作盤を操作して、実際にロボットを駆動することができる。作業者は、干渉が生じないようにロボットの位置および姿勢を教示するティーチングプレイバック(オンラインティーチング)を行うことができる。
【0005】
ところで、ロボットの動作が1つに定まらないロボット装置が知られている。例えば、多数のワークがコンテナなどの容器にバラ積みされている場合が有る。バラ積みされたワークを取り出すロボット装置では、ワークが積まれている状態を予め定めることが出来ないために、ワークを把持するときのロボットの位置および姿勢を教示することは困難である。従来の技術においては、ワークの位置および姿勢を視覚センサにて検出して、ワークを容器から取り出すロボット装置が知られている(例えば、特開2013-43271号公報)。
【0006】
バラ積みされたワークを取り出すロボット装置では、シミュレーション装置にて検討を行って干渉を回避することが困難な場合が有る。このために、ロボット装置を実際に動かすときに3次元センサにて周辺物を撮像し、ロボットと周辺物との干渉が生じるか否かを判定する制御装置が知られている(例えば、特開2020-28957号公報)。このような制御装置では、ロボットとの干渉が生じる虞のある周辺物の位置データを予め取得する。そして、制御装置は、複数の円柱状のモデルなどによりロボットのモデルを生成する。制御装置は、ワークの位置および姿勢に応じてロボットの位置および姿勢を算出し、ロボットが周辺物と干渉するか否かを判定している。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2013-43271号公報
【文献】特開2020-28957号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ロボットの動作がワークの状態等により定まるロボット装置では、ロボットの位置および姿勢を予め定めることは困難である。このために、作業者は、ロボット装置が駆動する時の多くのロボットの位置および姿勢をシミュレーション装置によって生成する。作業者は、様々なロボットの位置および姿勢にて、多くの回数のシミュレーションを実施することにより、干渉が生じないことを確認していた。しかしながら、シミュレーションを行う回数は、作業者の経験に基づいて定められる。一般的に、実際にロボット装置の使用を開始するときには、シミュレーションにて検討できなかったロボット装置の駆動状態に関して、ロボットの位置および姿勢の微調整を行う。このために、ロボットおよび作業ツールが干渉しないように充分な余裕を有してロボットおよび周辺物が配置されることが多かった。
【0009】
また、制御装置がロボットを駆動するときにロボットまたは作業ツールが周辺物と干渉するか否かを判定する機能を、ロボットの製造者以外の使用者が実現するためには、ロボットのアーム等の構成部材を分解して3次元的に形状を計測する、または、ロボットの構成部材の形状データをロボットの製造者に公開してもらうしかないという問題がある。このために、使用者は、ロボットの構成部材を簡易な形状のモデルに置き換えて実施している。例えば、ロボットのアームを、直方体または円柱のモデルに置き換えて判定している。簡易な形状のモデルは、ロボットと周辺物との干渉を回避するために、実際のロボットの構成部材よりも大きくなるように生成される。すなわち、ロボットの構成部材がモデルの内部に含まれるように、大きなモデルが生成される。このために、実際にロボットを駆動したときにロボットの構成部材が周辺物と干渉しない場合であっても、干渉が生じると判定される場合があった。
【0010】
一方で、ロボットの構成部材のモデルの形状を実際の形状に近づけると、ロボットのモデルの干渉を判定する計算量が多くなり、干渉の判定に時間がかかるという問題があった。または、計算時間を短くするために、高い性能の計算機を用いる必要があった。
【課題を解決するための手段】
【0011】
本開示の態様のロボット装置は、複数の構成部材を含むロボットと、ロボットを制御する制御装置とを備える。制御装置は、ロボットの構成部材の3次元の形状データを記憶する記憶部を含む。制御装置は、ロボットを駆動した時に、ロボットの構成部材がワークまたはロボットの周りに配置される周辺物と干渉するか否かを判定する判定部を含む。制御装置は、ロボットの複数の構成部材のうち、ロボットの運転状態に応じて干渉の判定を行う一部の構成部材を設定する設定部を含む。判定部は、設定部にて設定された構成部材の3次元の形状データに基づいて、設定部にて設定された構成部材がワークまたは周辺物と干渉するか否かを判定する。
【発明の効果】
【0012】
本開示の態様によれば、少ない計算量でロボットの干渉の判定を行うロボット装置を提供することができる。
【図面の簡単な説明】
【0013】
【
図1】実施の形態におけるロボット装置の斜視図である。
【
図2】実施の形態におけるロボット装置のブロック図である。
【
図3】実施の形態における3次元の形状データの説明図である。
【
図4】実施の形態におけるロボットおよびハンドのモデルの斜視図である。
【
図5】実施の形態におけるワークを搬送する制御のフローチャートである。
【
図6】干渉を回避する位置を探索する制御を説明するロボットおよびハンドの斜視図である。
【
図7】干渉を回避する位置を説明する領域の平面図である。
【
図8】干渉を回避する姿勢を探索する制御を説明するロボットおよびハンドの斜視図である。
【
図9】干渉を回避する姿勢を説明するハンドの概略平面図である。
【
図10】ハンドおよびコンベヤのモデルを簡略化したロボット装置のモデルの斜視図である。
【発明を実施するための形態】
【0014】
図1から
図10を参照して、実施の形態におけるロボット装置について説明する。本実施の形態では、容器の内部に山の様に積まれているワークを取り出して、コンベヤまでワークを搬送するロボット装置を例に取り上げて説明する。
【0015】
図1は、本実施の形態におけるロボット装置の斜視図である。ロボット装置5は、ロボット1および作業ツールとしてのハンド2を備える。本実施の形態のロボット1は、複数の関節部を含む多関節ロボットである。ロボット1は、上部アーム11と下部アーム12とを含む。下部アーム12は、旋回ベース13に支持されている。旋回ベース13は、ベース14に支持されている。ロボット1は、上部アーム11の端部に連結されているリスト15を含む。リスト15は、回転可能に形成されているフランジ15aを含む。ロボット1は、複数の構成部材を含む。本実施の形態では、構成部材として、上部アーム11、下部アーム12、旋回ベース13、ベース14、およびリスト15を例示して説明する。上部アーム11、下部アーム12、旋回ベース13、およびリスト15は、ロボットが駆動することにより位置および姿勢が変化する。これらの構成部材は、予め定められた回転軸の周りに回転する。ロボットとしては、この形態に限られず、作業ツールを支持して、作業ツールを移動することができる任意のロボットを採用することができる。
【0016】
作業ツールは、ワークに対して予め定められた作業を行うように形成されている。本実施の形態のハンド2は、ワークWを把持したり解放したりする。ハンド2は、リスト15のフランジ15aに固定された本体部2aと、本体部2aに支持された電磁石2bとを含む。電磁石2bは、磁力による吸着力を発生させる。本実施の形態の電磁石2bは、円柱状に形成されている。電磁石2bの底面にワークWが吸着される。
【0017】
ロボット装置5は、ロボット1の周りに配置される周辺物としてのコンベヤ8を備える。コンベヤ8は、ロボット1の近傍に配置されている。コンベヤ8に載置されたワークWは、矢印93に示す向きに搬送される。本実施の形態のコンベヤ8は、ロボット1が位置および姿勢を変更した時に、下部アーム12がコンベヤ8に干渉する可能性を有する位置に配置されている。すなわち、コンベヤ8の一部は、ロボット1の下部アーム12の動作範囲の内部に配置されている。
【0018】
本実施の形態のワークWは、鉄などの磁性を有する材質にて形成されている。本実施の形態のワークWは、直方体の形状を有する。ワークWは、面積が最大となる面積最大面を有する。ワークWは、容器としてのコンテナ9の内部に配置されている。コンテナ9は、ロボット1の周りに配置されている周辺物に相当する。複数のワークWは、それぞれのワークWの向きが不規則になるようにバラ積みされている。
【0019】
ロボット装置5は、コンテナ9に収容されたワークWの位置および姿勢を検出するための3次元センサとしてのレンジセンサ6を備える。本実施の形態のレンジセンサ6は、2台のカメラ61,62を含むステレオカメラである。カメラ61,62は、2次元の画像を撮像することができる2次元カメラである。カメラ61,62としては、CCD(Charge-Coupled Device)センサまたはCMOS(Complementary Metal-Oxide Semiconductor)センサなどの撮像素子を備えた任意のカメラを採用することができる。2台のカメラ61,62の相対的な位置は予め定められている。本実施の形態のレンジセンサ6は、ワークWに向かって縞模様などのパターン光を投影するプロジェクタ63を含む。
【0020】
レンジセンサ6は、物体の表面に設定される測定点までの距離の情報を取得する。レンジセンサ6は、コンテナ9に収容されたワークWを撮像できる位置に配置される。本実施の形態では、レンジセンサ6は、コンテナ9の上方に配置されている。レンジセンサ6は、支持部材83により支持されている。レンジセンサ6は、撮像が可能な範囲である撮像範囲を有する。カメラ61,62は、撮像範囲の内部にコンテナ9が含まれるように配置されることが好ましい。
【0021】
本実施の形態のロボット装置5は、レンジセンサ6の出力から生成された3次元情報に基づいて、コンテナ9から取り出す1個のワークWを選定する。
図1では、ロボット1の位置および姿勢は、取出しを開始する基準となる初期位置および初期姿勢である。ロボット装置5は、矢印91に示すように、ロボット1の位置および姿勢を変更して、コンテナ9の内部に配置されているワークWを把持する。ロボット装置5は、矢印92に示すようにロボット1の位置および姿勢を変更して、コンテナ9の内部からコンベヤ8までワークWを搬送する。この後に、ロボット1は、基準となる初期位置および初期姿勢に戻る。
【0022】
本実施の形態のロボット装置5には、ロボット1の位置および姿勢が変化した時に不動の基準座標系37が設定されている。
図1の例では、ロボット1のベース14に、基準座標系37の原点が配置される。基準座標系37はワールド座標系とも称される。また、ロボット装置5には、作業ツールの任意の位置に設定された原点を有するツール座標系38が設定されている。ツール座標系38は、ハンド2と共に位置および姿勢が変化する。本実施の形態では、ツール座標系38の原点は、ツール先端点に設定されている。
【0023】
基準座標系37およびツール座標系38のそれぞれの座標系は、座標軸として、互いに直行するX軸、Y軸、およびZ軸を含む。また、X軸の周りの座標軸としてW軸、Y軸の周りの座標軸としてP軸、および、Z軸の周りの座標軸としてR軸が設定されている。
【0024】
ロボット1の位置および姿勢が変化すると、ツール座標系38の原点の位置および姿勢が変化する。例えば、ロボット1の位置は、ツール先端点の位置(ツール座標系38の原点の位置)に対応する。また、ロボット1の姿勢は、基準座標系37に対するツール座標系38の姿勢に対応する。
【0025】
図2に、本実施の形態におけるロボット装置のブロック図を示す。
図1および
図2を参照して、ロボット1は、ロボット1の位置および姿勢を変化させるロボット駆動装置を含む。ロボット駆動装置は、アームおよびリスト等の構成部材を駆動するロボット駆動モータ22を含む。ロボット装置5は、ハンド2を駆動するハンド駆動装置を備える。ハンド2の電磁石2bが駆動することにより、ワークWが電磁石2bに吸着される。本実施の形態の電磁石2bの底面は平面である。電磁石2bの底面がワークWの面積が最大になる主表面を吸着する。
【0026】
ロボット装置5は、ロボット1およびハンド2を制御する制御装置4を備える。制御装置4は、プロセッサとしてのCPU(Central Processing Unit)を含む演算処理装置(コンピュータ)を含む。制御装置4は、CPUにバスを介して接続されたRAM(Random Access Memory)およびROM(Read Only Memory)等を有する。制御装置4は、ロボット1およびハンド2の制御に関する情報を記憶する記憶部42を含む。記憶部42は、揮発性メモリ、不揮発性メモリ、またはハードディスク等の情報を記憶可能な記憶媒体にて構成されることができる。
【0027】
ロボット装置5は、動作プログラム41に基づいてワークWを搬送する。制御装置4は、動作指令を送出する動作制御部43を含む。動作制御部43は、動作プログラム41に従って駆動するプロセッサに相当する。プロセッサが動作プログラム41を読み込んで、動作プログラム41に定められた制御を実施することにより、動作制御部43として機能する。
【0028】
動作制御部43は、動作プログラム41に基づいてロボット1を駆動するための動作指令をロボット駆動部45に送出する。ロボット駆動部45は、ロボット駆動モータ22を駆動する電気回路を含む。ロボット駆動部45は、動作指令に基づいてロボット駆動モータ22に電気を供給する。また、動作制御部43は、動作プログラム41に基づいてハンド2を駆動する動作指令をハンド駆動部44に送出する。ハンド駆動部44は、電磁石2bを駆動する電気回路を含む。ハンド駆動部44は、動作指令に基づいて電磁石2bに電気を供給する。更に、動作制御部43は、動作プログラム41に基づいて、撮像する動作指令をレンジセンサ6に送出する。レンジセンサ6は、制御装置4により制御されている。
【0029】
本実施の形態の制御装置4は、動作プログラム41に基づいてロボット1の動作を設定する動作設定部51を含む。動作制御部43は、動作設定部51からの指令に基づいて動作指令を生成する。本実施の形態の動作設定部51は、コンテナ9から取り出すワークWを選定し、ワークWをハンド2にて把持する制御を実施する。また、動作設定部51は、ハンド2にて把持されたワークWをコンベヤ8まで搬送する制御を実施する。
【0030】
動作設定部51は、レンジセンサ6の出力に基づいて、ワークWの3次元情報を生成する処理部52を含む。物体の3次元情報は、物体の3次元の形状データに相当する。また、処理部52は、コンテナ9に配置されているワークWの位置および姿勢を検出する。動作設定部51は、コンテナ9から取り出すワークWを選定する選定部54を含む。動作設定部51は、ロボット1の経路を生成する経路生成部55を含む。動作設定部51は、ロボット1の運転状態に応じて、干渉の判定を行う一部の部材を設定する設定部56を含む。動作設定部51は、ロボット1を駆動した時に干渉するか否かを判定する判定部57を含む。動作設定部51は、干渉が生じると判定された場合に、干渉が生じないようにロボット1の位置および姿勢を修正する経路修正部58を含む。
【0031】
動作設定部51は、動作プログラム41に従って駆動するプロセッサに相当する。また、動作設定部51に含まれる処理部52、選定部54、経路生成部55、設定部56、判定部57、および経路修正部58のそれぞれのユニットは、動作プログラム41に従って駆動するプロセッサに相当する。プロセッサが動作プログラム41を読み込んで、動作プログラム41に定められた制御を実施することにより、それぞれのユニットとして機能する。
【0032】
ロボット1は、ロボット1の位置および姿勢を検出するための状態検出器を含む。本実施の形態における状態検出器は、アーム等の構成部材の駆動軸に対応するロボット駆動モータ22に取り付けられた位置検出器18を含む。それぞれの位置検出器18が出力する回転角に基づいて、ロボット1の位置および姿勢が算出される。
【0033】
図3に、本実施の形態の制御装置に記憶される3次元の形状データの説明図を示す。
図2および
図3を参照して、本実施の形態では、ロボット装置5を駆動する前に3次元の形状データ46が制御装置4に入力される。記憶部42は、3次元の形状データ46を記憶する。3次元の形状データ46は、それぞれの部材の3次元の形状を示す任意のデータを採用することができる。
【0034】
3次元の形状データ46は、ワークの形状データ46aを含む。ワークの形状データ46aは、コンテナ9に配置されるワークWの位置および姿勢を検出するために使用される。3次元の形状データ46は、ロボットの構成部材の形状データ46bおよびハンドの形状データ46cを含む。ロボットの構成部材の形状データ46bおよびハンドの形状データ46cは、ロボット1の構成部材またはハンド2と、他の物との干渉の判定に使用される。本実施の形態のワークの形状データ46a、ロボットの構成部材の形状データ46b、およびハンドの形状データ46cは、CAD(Computer Aided Design)装置にて生成される3次元データが採用されている。特に、ロボットの構成部材の形状データ46bおよびハンドの形状データ46cは、製造者が設計した時のCAD装置のデータが採用されている。CAD装置にて生成された設計時のデータは、実際の部材の形状に一致している。すなわち、四角柱または円錐などの簡易な形状の3次元の形状データを用いずに、実際の形状に相当する設計時のデータが採用されている。但し、構成部材の干渉に関係しない部分は、設計データから除外されていても構わない。例えば、構成部材の表面に形成され、ボルトの頭部が配置されるための窪み部などの細かい部分は、設計データから除外されていても構わない。
【0035】
図4に、本実施の形態のロボットおよびハンドのモデルの斜視図を示す。動作設定部51は、ロボットの構成部材の形状データ46bおよびハンドの形状データ46cにより、ロボットの構成部材のモデルおよびハンドのモデルを生成する。ロボット1およびハンド2を設計する時の設計データの形状と同一の形状を有するモデルが生成される。
【0036】
ロボットのモデルM1は、複数の構成部材のモデルを含む。ロボットのモデルM1は、上部アームのモデルM11、下部アームのモデルM12、旋回ベースのモデルM13、ベースのモデルM14、およびリストのモデルM15を含む。本実施の形態では、それぞれのロボット1の構成部材のモデルは、実際の構成部材の形状に一致する。例えば、ロボット1の構成部材の曲面状の表面、段差、および突起部などの細かい部分についても、実際のロボット1の形状と一致する。また、ハンドのモデルM2についても、細かい部分まで実際のハンド2の形状に一致する。なお、前述の通りに、構成部材の干渉に関係しない凹部などの細かい部分は除外されていても構わない。
【0037】
なお、
図1を参照して、本実施の形態のロボット1は、上部アーム11および下部アーム12の外側に配置される電気ケーブル16を含む。ロボット1の位置および姿勢が変化すると電気ケーブル16の形状が変化する。このために、
図4を参照して、本実施の形態のロボットのモデルM1では電気ケーブル16が除外されているが、この形態に限られない。ロボット1の電気ケーブルおよび配管等の部材のモデルが生成されていても構わない。
【0038】
図2および
図3を参照して、3次元の形状データ46は、ロボット1の周りに配置された周辺物の形状データ46dを含む。周辺物の形状データ46dは、周辺物とロボット1またはハンド2との干渉の判定に使用される。本実施の形態においては、周辺物の形状データ46dには、コンベヤ8の形状データおよびコンテナ9の形状データが含まれる。周辺物の形状データ46dとしては、CAD装置にて生成される3次元データを採用することができる。
【0039】
周辺物としては、コンベヤおよびコンテナに限られず、ロボットの周りに配置され、ロボットまたは作業ツールと干渉が生じる虞のある任意の障害物を採用することができる。例えば、周辺物として、ワークを載置する架台またはロボット装置の周りに配置される柵等の固定された物体を採用することができる。または、周辺物としては、ロボットの近傍を通る搬送車等の移動する物体を採用しても構わない。
【0040】
図5に、本実施の形態のロボット装置の制御のフローチャートを示す。
図5には、1個のワークWを搬送する制御が記載されている。
図5に示す制御は、1個のワークWを取り出すごとに繰り返して実施することができる。
図2および
図5を参照して、前述の通りに、ロボット装置および周辺物の3次元の形状データ46は、予め記憶部42に記憶されている。
【0041】
始めに、動作設定部51は、ロボット1の位置および姿勢を、ワークWの取り出しを開始するときの初期位置および初期姿勢にする(
図1を参照)。本実施の形態においては、この時のロボット1の移動点を初期点と称する。初期点における初期位置および初期姿勢は、作業者が予め定めておくことができる。初期点は、例えば、レンジセンサ6の撮像範囲にロボット1およびハンド2が配置されないように定められる。
【0042】
ステップ111において、レンジセンサ6は、コンテナ9の内部のワークWを撮像する。動作設定部51の処理部52は、カメラ61,62にて撮像した画像を処理する。処理部52は、ステレオ法によりワークWの3次元情報を生成する。処理部52は、ワークWの表面に測定点を設定する。処理部52は、2台のカメラ61,62にて撮像される2つの画像の視差に基づいて、レンジセンサ6から測定点までの距離を算出する。処理部52は、レンジセンサ6から測定点までの距離に基づいて、測定点の位置を検出する。3次元情報には、物体の表面に設定される複数の測定点の位置の情報が含まれる。
【0043】
3次元情報は、例えば、距離画像または3次元マップであり、3次元の形状データに相当する。距離画像は、レンジセンサ6からの距離に応じて画像の色または画像の濃さを変化させた画像である。3次元マップは、予め定められた座標系における測定点の座標値、またはレンジセンサからの測定点までの距離および測定点の方向の情報を含む。
【0044】
ステップ112において、処理部52は、ワークWの3次元情報をワークの形状データ46aと比較するテンプレートマッチングを行うことにより、コンテナ9に収容されているワークWの位置および姿勢を検出する。なお、本実施の形態のワークの形状データは、CAD装置にて生成される3次元データが採用されているが、この形態に限られない。作業者は、様々な方向からワークを撮像したときの距離画像をワークの形状データとして採用しても構わない。
【0045】
または、処理部52は、ワークWの検出において、2次元の画像を利用しても構わない。レンジセンサ6の2つのカメラ61,62のうち、一つのカメラにて2次元の画像を撮像する。2次元の画像のテンプレートマッチングにより、2次元の画像におけるワークを検出する。そして、処理部52は、1つのワークを選定し、ワークWの表面に対応する領域の3次元情報を取得する。例えば、処理部52は、ワークWの表面に対応する複数の測定点により平面を算出して、ワークWの位置および姿勢を算出することができる。
【0046】
ステップ113において、選定部54は、ロボット装置5にて取り出すための目標のワークWを選定する。選定部54は、処理部52にて検出されたワークWの位置および姿勢に基づいて目標のワークWを選定する。選定部54は、任意の制御により目標のワークWを選定することができる。例えば、選定部54は、レンジセンサ6に最も近いワークWを目標のワークWに設定することができる。すなわち、選定部54は、ワークWの位置が高いものから順番にワークWを選定することができる。
【0047】
ステップ114において、記憶部42は、ロボット装置5にて取り出すワークW以外のワークWの3次元情報を記憶部42に記憶する。ロボット装置5にて取り出すワークW以外のワークWは、ロボット1またはハンド2と干渉が生じる物になる。この3次元情報は、ロボット1またはハンド2と干渉が生じるか否かを判定する制御に使用される。
【0048】
ステップ115において、経路生成部55は、目標のワークWの位置および姿勢に応じて、ロボット1がワークWを把持する点である把持点を設定する。経路生成部55は、把持点におけるロボット1の把持位置および把持姿勢を算出する。
【0049】
ステップ116において、経路生成部55は、初期点からワークWを把持する把持点までのロボット1の第1の経路を生成する。
図1においては、矢印91に示す経路が第1の経路に相当する。経路生成部55が第1の経路を生成するための制御については、ロボット1またはハンド2の3次元形状を考慮して、ロボット1またはハンド2がワークWに干渉しないように、種々の経路探索アルゴリズムを適用することができる。経路生成部55は、ロボット1の位置が通過する複数の移動点を生成することができる。複数の移動点を通る経路が第1の経路に相当する。また、複数の移動点同士の間には補間点が設定されても構わない。この時に、経路生成部55は、ハンド2またはロボット1と他の物との干渉を考慮せずに、第1の経路を生成することができる。
【0050】
次に、ステップ117において、設定部56は、ロボット1の複数の構成部材およびハンド2のうち、干渉の判定を行う部材を設定する。ここでの例では、設定部56は、ロボット1の複数の構成部材のうち、リスト15および上部アーム11を干渉の判定を行う構成部材に設定する。また、設定部56は、ハンド2を干渉の判定を行う部材に設定する。
【0051】
設定部56は、ロボット1の運転状態に応じて干渉の判定を行う部材を設定する。
図1を参照して、矢印91に示すように第1の経路に沿ってロボット1の位置が移動する時に、ハンド2およびリスト15はコンテナ9の内部に挿入される。また、上部アーム11は、コンテナ9の近傍に配置される。ハンド2、リスト15、および上部アーム11は、コンテナ9に接触する虞が生じる。このために、ハンド2、リスト15、および上部アーム11を干渉の判定を行う部材に設定することができる。また、設定部56は、コンテナ9およびワークWを干渉の判定を行う部材に設定することができる。干渉の判定を行う部材は、例えば、動作プログラム41に予め定めておくことができる。設定部56は、動作プログラム41を読み込んで干渉の判定を行う部材を設定する。
【0052】
次に、ステップ118において、判定部57は、把持点および第1の経路において、干渉が生じるか否かを判定する。判定部57は、設定部56にて設定された部材の3次元の形状データと、ワークの3次元情報、および周辺物の3次元の形状データに基づいて、設定部56にて設定された部材がワークまたは周辺物と干渉するか否かを判定する。なお、周辺物が配置される位置は、予め定められている。
【0053】
始めに、判定部57は、ロボット1がワークWを把持するための把持位置および把持姿勢になったときに、ハンド2、リスト15、および上部アーム11が、コンテナ9またはロボット装置5に把持されるワークW以外のワークWに干渉するか否かを判定する。
【0054】
判定部57は、ロボット1の把持位置および把持姿勢を取得する。判定部57は、ロボット1の把持位置および把持姿勢に基づいて、ロボット装置5の構成部材のモデルの位置および姿勢を算出する。判定部57は、構成部材のそれぞれの駆動軸の情報に基づいて、モデルの位置および姿勢を算出する。ここでは、判定部57は、ハンドのモデルM2、リストのモデルM15、および上部アームのモデルM11の位置および姿勢を算出する。それぞれのモデルの位置および姿勢は、例えば、基準座標系37にて表現することができる。
【0055】
更に、判定部57は、コンテナ9の3次元の形状データおよびワークの3次元情報を取得する。ここで、判定部57は、コンテナの3次元の形状データおよびワークの3次元情報に基づいて、コンテナのモデルおよびワークのモデルを生成しても構わない。コンテナのモデルまたはワークのモデルについても、例えば、基準座標系37にて表現することができる。
【0056】
判定部57は、ハンドのモデルM2、リストのモデルM15、および上部アームのモデルM11が、コンテナ9または把持されるワークW以外のワークWと接触する位置に配置される場合に、干渉が生じると判定することができる。
【0057】
次に、判定部57は、ロボット1の位置が第1の経路に沿って移動する時に、干渉が生じるか否かを判定する。判定部57は、経路生成部55にて生成された移動点を取得する。また、判定部57は、移動点同士の間に生成された補間点を取得する。判定部57は、それぞれの移動点および補間点において、ロボット1の位置および姿勢を算出する。把持点おける判定の制御と同様に、判定部57は、それぞれの移動点および補間点において、ハンドのモデルM2、リストのモデルM15、および上部アームのモデルM11が、コンテナ9または把持されるワークW以外のワークWと干渉するか否かを判定する。
【0058】
ステップ118において、把持点および第1の経路において、ロボット1の構成部材が、ワークまたは周辺物と干渉すると判定される場合に、制御は、ステップ119に移行する。また、把持点および第1の経路において、ハンド2が、ワークまたは周辺物と干渉すると判定される場合に、制御は、ステップ119に移行する。
【0059】
ステップ119において、経路修正部58は、把持点、移動点および補間点のうち、干渉が生じる点において、ロボット1の位置または姿勢を修正する。または、経路修正部58は、ロボット1の位置および姿勢の両方を修正しても構わない。ここで、把持点、移動点、または補間点におけるロボット1の位置の修正方法および姿勢の修正方法について説明する。
【0060】
図6に、ロボットの位置の修正方法を説明するハンドのモデルおよびロボットのモデルの斜視図を示す。ここでの例では、ロボット1の位置が移動点MPAに配置されるときに干渉が生じると判定されている。そこで、経路修正部58は、ロボット1の位置を修正する。経路修正部58は、移動点MPAの周りに移動点MPAを移動させるための領域71を設定する。領域71の形状および大きさは予め定めておくことができる。本実施の形態においては、ツール座標系38のX軸およびY軸を含む平面において、四角形の領域71が設定されている。
【0061】
図7に、移動点の位置を移動させる領域の平面図を示す。本実施の形態においては、移動点MPAからツール座標系38のX軸の方向およびY軸の方向に、予め定められた距離にて領域71が設定されている。経路修正部58は、領域71の内部において、干渉を回避できる移動点MPBを探索する。経路修正部58は、X軸方向およびY軸方向に領域71を等分に分割する。そして、領域71を分割した時の小さな領域の頂点に移動点MPBを設定することができる。ここでの例では、X軸方向に6分割され、Y軸方向に6分割されている。移動点MPAの周りに48点の移動点MPBが設定されている。
【0062】
経路修正部58は、それぞれの移動点MPBにロボット1の位置を移動したときに、ハンドのモデルM2、リストのモデルM15、および上部アームのモデルM11に干渉が生じるか否かを判定する。経路修正部58は、全ての移動点MPBについて干渉の判定を実施することができる。
【0063】
経路修正部58は、干渉が回避される移動点MPBを修正後の移動点に設定することができる。干渉が回避される複数の移動点MPBが存在する場合には、経路修正部58は、予め定めた優先順位に基づいて、1個の移動点MPBを選定することができる。例えば、経路修正部58は、元の移動点MPAに最も近い移動点MPBを採用することができる。更に、X軸の正側の方向または負側の方向の優先順位を定めておくことができる。更に、Y軸の正側の方向または負側の方向の優先順位を定めておくことができる。
【0064】
図8に、移動点におけるロボットの姿勢を修正するときのハンドのモデルおよびロボットのモデルの斜視図を示す。経路修正部58は、ロボット1の姿勢を変更して、干渉が回避できる姿勢を探索する。ここでの例では、経路修正部58は、ツール座標系38のZ軸の周り、すなわち、R軸の方向にハンドのモデルM2を回転させる。経路修正部58は、矢印94に示す方向にハンドのモデルM2を回転させることにより、ロボットの姿勢を変更する。
【0065】
図9に、ハンドのモデルが回転する時の平面図を示す。本実施の形態の経路修正部58は、予め定められた角度ごとにハンドのモデルM2を回転させる。ここでの例では、1回転を6個に分割した回転角度が設定されている。経路修正部58は、全ての回転角度において、ハンド2、リスト15、および上部アーム11の位置および姿勢を算出し、干渉が生じるか否かを判定する。
【0066】
経路修正部58は、干渉が回避されるロボット1の姿勢を修正後の姿勢に設定することができる。干渉を回避できる複数の姿勢がある場合には、経路修正部58は、任意の制御により1つの姿勢を選定することができる。例えば、経路修正部58は、元の回転角度に最も近い回転角度を採用することができる。また、ハンドを回転する時の時計回りまたは半時計周りの優先順位を定めておくことができる。
【0067】
経路修正部58は、ロボットの位置またはロボットの姿勢のいずれか一方を変更しても干渉が回避できない場合に、他方を変更することができる。本実施の形態では、ロボットの姿勢を変更しても干渉が回避できない場合に、ロボットの位置を変更している。
【0068】
図5を参照して、このように、ステップ119においては、干渉が生じる点におけるロボットの位置または姿勢を変更する。経路修正部58は、修正後のロボットの位置および姿勢を採用して、新たな第1の経路を生成することができる。そして、制御は、ステップ118に移行して、干渉が生じるか否かを判定することができる。把持点および第1の経路において干渉が生じなくなるまで、ステップ118およびステップ119の制御を繰り返すことができる。
【0069】
ステップ118において、把持点および第1の経路において、干渉が生じない場合には把持点および第1の経路におけるロボット1の位置および姿勢を確定する。制御は、ステップ120に移行する。次に、ワークWをコンベヤ8に搬送する第2の経路を生成する。
【0070】
ステップ120において、経路生成部55は、把持点からワークWをコンベヤ8に載置するための目標点までの第2の経路を生成する。
図1を参照して、矢印92に示す経路が第2の経路に相当する。経路生成部55は、ステップ116において第1の経路を生成した制御と同様の制御により、第2の経路を生成することができる。
【0071】
次に、ステップ121において、設定部56は、ロボット1の運転状態に応じて干渉の判定を行う部材を設定する。
図1を参照して、ロボット装置5がワークWを把持した後にコンベヤ8まで搬送する時に、下部アーム12がコンベヤ8と干渉する虞がある。この運転状態では、下部アーム12の干渉の判定を行う。設定部56は、動作プログラム41の記載に基づいて、下部アーム12を干渉の判定を行う部材に設定する。また、設定部56は、動作プログラム41の記載に基づいて、コンベヤ8を干渉の判定を行う部材に設定する。
【0072】
ステップ122において、判定部57は、ステップ118と同様の制御により、目標点および第2の経路において、下部アーム12とコンベヤ8との干渉が生じるか否かを判定する。判定部57は、下部アームのモデルM12およびコンベヤ8の3次元の形状データに基づいて、下部アーム12とコンベヤ8との干渉が生じるか否かを判定する。
【0073】
ステップ122において、目標点および第2の経路において干渉が生じると判定される場合に、制御はステップ123に移行する。ステップ123において、経路修正部58は、ステップ119におけるロボット1の位置を修正する制御またはロボット1の姿勢を修正する制御と同様の制御により、ロボット1の位置または姿勢を修正する。そして下部アーム12とコンベヤ8との干渉が生じなくなるまで、ステップ122およびステップ123の制御を繰り返す。ステップ122において、目標点および第2の経路において干渉が生じないと判定される場合に、目標点および第2の経路におけるロボット1の位置および姿勢が確定される。制御は、ステップ124に移行する。
【0074】
ステップ124において、動作設定部51は、把持点、目標点、第1の経路、および第2の経路におけるロボット1の位置および姿勢を動作制御部43に送出する。ロボット1の位置は、第1の経路に沿って移動する。ロボット1は、把持位置および把持姿勢に向かって位置および姿勢を変更する。ロボット1が把持位置および把持姿勢に到達した後に、ハンド2の電磁石2bが励磁されることにより、ワークWを把持することができる。
【0075】
次に、ロボット1の位置は、第2の経路に沿って移動する。動作制御部43は、ロボット1の位置および姿勢を変更して、コンベヤ8にワークWを載置する目標点までワークWを移動する。ロボット1が目標位置および目標姿勢に到達した後に、ハンド2の電磁石2bの励磁を停止することによりワークWが解放される。その後に、ロボット1は、初期位置および初期姿勢に戻る。
【0076】
本実施の形態のロボット装置5では、干渉の判定を行う場合に、ロボット1の運転状態に応じて、ロボット1の複数の構成部材から一部の構成部材を選定している。すなわち、制御装置4は、ロボット1の運転状態に応じて、干渉の判定を行う構成部材を切替えている。また、制御装置4は、一部の構成部材の3次元の形状データに基づいて干渉の判定を行っている。このために、短時間で正確な判定を行うことができる。例えば、ロボット1の全ての構成部材の3次元の形状データを用いて、他の物との干渉を判定する場合には、計算量が多くなり、計算時間が長くなる。しかしながら、本実施の形態では、一部の構成部材を運転状態に応じて選定することにより、干渉の判定の計算量を少なくすることができる。また、ロボット1の構成部材の形状に一致する形状データを用いることにより、正確にロボット1の干渉の判定を行うことができる。
【0077】
更に、本実施の形態においては、ハンド2のモデルM2としてハンド2の実際の形状に一致する3次元の形状データを採用している。このために、ハンド2の干渉を正確に判定することができる。
【0078】
本実施の形態においては、ロボットの構成部材の干渉の判定に加えてハンドの干渉の判定を行っているが、この形態に限られない。ハンドの干渉の判定は行わなくても構わない。例えば、ハンドの形状がコンテナおよびワークとの干渉を生じない形状である場合には、ハンドの干渉の判定は行わなくても構わない。更には、ロボット装置は、作業ツールを備えていなくても構わない。例えば、ロボット装置が作業ツールを自動的に交換する装置を備える場合が有る。作業ツールを交換するために作業ツールがロボットに取り付けられていない状態でロボットが位置および姿勢を変更する場合が有る。この期間中に、制御装置は、作業ツールの干渉の判定を行わずに、ロボットの構成部品の干渉の判定を行うことができる。また、本実施の形態においては、ロボットの駆動が一時的に停止する把持点および目標点において干渉の判定を行うとともに、第1の経路および第2の経路において干渉の判定を行っているが、この形態に限られない。第1の経路および第2の経路においては、干渉の判定を行わなくても構わない。
【0079】
本実施の形態の動作設定部51は、レンジセンサ6を用いて、ロボット装置5にて取り出すワークW以外のワークWの3次元情報を生成している。すなわち、コンテナ9に残存するワークWの3次元情報を生成している。そして、動作設定部51は、ワークWの3次元情報を用いて、ハンド2またはロボット1の構成部材がワークWに干渉するか否かを判定している。コンテナ9に配置されているワークWと、ハンド2の本体部2aまたはリスト15とが干渉して、目標のワークWを把持することができない場合がある。本実施の形態におけるロボット装置5では、ロボット装置5にて取り出すワークWの周りに配置されているワークWと、ハンド2またはロボット1との干渉を判定することができる。
【0080】
本実施の形態では、コンテナ9等の周辺物については、CAD装置にて生成される3次元の形状データを採用することにより、実際の形状と一致するモデルが生成されている。周辺物のモデルの生成方法としては、この形態に限られない。動作設定部は、3次元センサにて周辺物を撮像して、3次元センサの出力に基づいて周辺物の3次元の形状データを生成しても構わない。
【0081】
例えば、動作設定部51は、レンジセンサ6の出力に基づいて、モデルマッチングの方法により、コンテナ9の3次元情報を生成することができる。動作設定部51は、周辺物の形状データ46dとして、コンテナ9の3次元情報を生成する。動作設定部51は、コンテナ9の3次元情報に基づいて、ロボット1とコンテナ9とが干渉を生じるか否かを判定しても構わない。この制御は、周辺物が移動する場合に好適である。
【0082】
また、周辺物が1つの方向に移動する場合には、3次元センサの代わりに2次元センサを採用することができる。周辺物の3次元の形状データは予め記憶部に記憶させておくことができる。予め定められた位置に周辺物を配置して2次元センサで基準画像を撮像する。周辺物が移動した時に2次元センサにて周辺物を撮像して画像における周辺物の位置を検出する。このときの画像における周辺物の位置と基準画像における周辺物の位置とに基づいて、周辺物の位置を検出することができる。
【0083】
図10に、作業ツールの形状を簡略化したモデルおよびコンベヤの形状を簡略化したモデルを含むロボット装置のモデルの斜視図を示す。作業ツールのモデルおよび周辺物のモデルのうち少なくとも一方のモデルは、簡略化された形状を有するモデルを採用しても構わない。
【0084】
製造者は、ロボット1を設計したときにCAD装置にて生成される設計データ(3次元の形状データ)を有する。このために、製造者は、ロボット1の製造時にロボットの構成部材の形状データ46b(ロボットのモデルM1)を記憶部42に記憶させることができる。一方で、作業者は、作業ツールまたはコンベヤ等の周辺物を、ロボットの製造者とは異なる製造者から購入する場合がある。この時に、作業者は、作業ツールまたは周辺物の設計データを製造者から入手できない場合がある。
【0085】
この場合に、作業者は、作業ツールの形状を簡略化した形状を有する作業ツールのモデル、および周辺物の形状を簡略化した形状を有する周辺物のモデルのうち、少なくとも一方のモデルを採用しても構わない。簡易なモデルは、作業者が作成して記憶部42に記憶させることができる。判定部57は、作業ツールのモデルおよび周辺物のモデルのうち少なくとも一方のモデルを用いて、設定部56にて設定された部材の干渉が生じるか否かを判定する。
【0086】
図10に示す例では、ハンドのモデルMS2は、四角錐台の形状を有する。コンベヤのモデルMS8は、直方体の形状を有する。このような簡易なモデルは、作業者が形状および大きさを指定することにより、容易に生成することができる。例えば、作業者が直方体のそれぞれの辺の長さを指定することにより、コンベヤのモデルMS8を生成することができる。簡易なモデルの形状としては、円柱、六面体、または球等の任意の形状を採用することができる。また、簡易なモデルは、実際の装置が内部に含まれるように大きく形成されることが好ましい。このように、作業者は、作業ツールのモデルおよび周辺物のモデルとして、簡易なモデルを採用しても構わない。
【0087】
上記の実施の形態では、ロボット1の構成部材として、上部アーム11、下部アーム12、旋回ベース13、ベース14、およびリスト15を例示しているが、この形態に限られない。ロボットの構成部材としては、アームの一部分、旋回ベースの一部分、ベースの一部分、またはリストの一部分であっても構わない。すなわち、ロボットを構成する任意の部分をロボットの構成部材に選定することができる。例えば、制御装置は、上部アームの一部分の3次元の形状データを記憶して、この形状データに基づいてワークまたは周辺物との干渉が生じるか否かを判定しても構わない。
【0088】
また、本実施の形態では、ロボットの全ての構成部材の3次元の形状データは、実際の形状に一致するように形成されているが、この形態に限られない。ロボットの一部の構成部材の3次元の形状データが実際の形状に一致するように形成され、その他の構成部材の3次元の形状データが簡易な形状のデータであっても構わない。更に、ロボットの少なくとも一部の構成部材の3次元の形状データが四角柱などの簡易な形状のデータであっても構わない。
【0089】
本実施の形態の3次元センサとしてのレンジセンサ6は、プロジェクタを備えるが、プロジェクタを備えなくても構わない。更に、3次元センサは、ワークの表面の3次元情報を取得できる任意のセンサを採用することができる。例えば、光飛行時間方式により距離画像を撮像するTOF(Time of Flight)カメラ、または、ラインセンサ等を採用することができる。
【0090】
本実施の形態のレンジセンサ6は、支持部材83に固定されているが、この形態に限られない。3次元センサは、ワークを撮像可能なように配置することができる。例えば、3次元センサは、ロボットのリストと一体的に移動するように、リストに固定されていても構わない。
【0091】
本実施の形態のロボット装置は、ワークを搬送する作業を行うが、この形態に限られない。任意の作業を行うロボット装置に本実施の形態の制御を適用することができる。作業ツールは、ワークに対して予め定められた作業を行う任意の装置を採用することができる。特に、本実施の形態の制御は、ワークの状態または周辺物の状態に応じてロボットの位置および姿勢が変化するロボット装置に好適である。例えば、ワークをパレットの上面等に並べて積むロボット装置に本実施の形態の制御を適用することができる。
【0092】
上述のそれぞれの制御においては、機能および作用が変更されない範囲において適宜ステップの順序を変更することができる。
【0093】
上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、請求の範囲に示される実施の形態の変更が含まれている。
【符号の説明】
【0094】
1 ロボット
2 ハンド
4 制御装置
5 ロボット装置
6 レンジセンサ
8 コンベヤ
9 コンテナ
11 上部アーム
12 下部アーム
13 旋回ベース
14 ベース
15 リスト
42 記憶部
46 3次元の形状データ
46a ワークの形状データ
46b ロボットの構成部材の形状データ
46c ハンドの形状データ
46d 周辺物の形状データ
52 処理部
56 設定部
57 判定部