(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-05
(45)【発行日】2024-01-16
(54)【発明の名称】ロボットの制御装置、ロボットシステム、制御方法、及びコンピュータプログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20240109BHJP
【FI】
B25J13/08 A
(21)【出願番号】P 2021571186
(86)(22)【出願日】2021-01-12
(86)【国際出願番号】 JP2021000711
(87)【国際公開番号】W WO2021145311
(87)【国際公開日】2021-07-22
【審査請求日】2022-08-19
(31)【優先権主張番号】P 2020006237
(32)【優先日】2020-01-17
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【氏名又は名称】廣瀬 繁樹
(72)【発明者】
【氏名】渡邊 大吾
(72)【発明者】
【氏名】松嶋 友則
【審査官】松浦 陽
(56)【参考文献】
【文献】特開平09-076065(JP,A)
【文献】特開昭60-262214(JP,A)
【文献】特開平02-160486(JP,A)
【文献】特開平06-246660(JP,A)
【文献】国際公開第2018/173165(WO,A1)
【文献】特開平06-282321(JP,A)
【文献】米国特許第04675502(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/18 - 19/416
(57)【特許請求の範囲】
【請求項1】
ロボットを移動させてワークの作業対象箇所に対する作業を実行させる制御装置であって、
前記作業対象箇所を検出するセンサの検出データに基づいて、該作業対象箇所の位置を基準位置として取得する基準位置取得部と、
前記ロボットの移動方向を取得する移動方向取得部と、
前記ロボットを制御するために該ロボットのロボットベース又は前記ワークに対して固定して設定される制御座標系の1つの軸の方向を、基準方向として設定する基準方向設定部
であって、前記作業対象箇所は、該1つの軸と直交する平面に沿って延在する、基準方向設定部と、
前記作業対象箇所に対する前記ロボットの作業位置を前記基準位置からずらす方向を、前記移動方向取得部が取得した前記移動方向、及び前記基準方向設定部が設定した前記基準方向、と直交する方向として決定する方向決定部と、
前記作業対象箇所に対する前記作業を行うときに、前記ロボットを、前記基準位置取得部が取得した前記基準位置から、前記方向決定部が決定した前記ずらす方向へ所定のずらし量だけずらした目標位置に位置決めするロボット制御部と、を備える、制御装置。
【請求項2】
前記基準方向設定部は、前記基準方向とする前記制御座標系の軸の設定情報の入力を受け付け、該設定情報によって指定された前記1つの軸の方向を前記基準方向として設定する、請求項1に記載の制御装置。
【請求項3】
前記移動方向取得部は、前記移動方向のうち、前
記直交する平面と平行な移動方向成分を求め、
前記方向決定部は、前記ずらす方向を、前記移動方向成分及び前記基準方向と直交する方向として決定する、請求項1又は2に記載の制御装置。
【請求項4】
前記移動方向と平行な第1の軸、前記基準方向と平行な第2の軸、及び前記ずらす方向と平行な第3の軸を有する補正座標系を設定する座標系設定部をさらに備え、
前記ロボット制御部は、前記作業のために前記ロボットを位置決めする位置を、該作業を前記ロボットに実行させるための作業プログラムに規定された該ロボットの教示位置から前記目標位置へ補正するための位置補正指令を、前記補正座標系を基準として生成する、請求項2又は3に記載の制御装置。
【請求項5】
前記ロボットが移動している間に該ロボットの位置を繰り返し取得するロボット位置取得部をさらに備え、
前記移動方向取得部は、前記ロボット位置取得部が取得した前記ロボットの第1の前記位置と、該第1の位置の前に前記ロボット位置取得部が取得した前記ロボットの第2の前記位置とを用いて、前記移動方向を求める、請求項1~4のいずれか1項に記載の制御装置。
【請求項6】
前記ずらし量の入力情報を受け付ける入力受付部をさらに備える、請求項1~5のいずれか1項に記載の制御装置。
【請求項7】
作業対象箇所に対し作業を行うロボットと、
前記作業対象箇所を検出するセンサと、
請求項1~6のいずれか1項に記載の制御装置と、を備える、ロボットシステム。
【請求項8】
前記センサは、前記作業位置に対し前記移動方向の前方の位置で前記作業対象箇所を検出するように前記ロボットに設けられ、
前記基準位置取得部は、前記センサが前記前方の位置で検出した前記検出データに基づいて前記基準位置を取得する、請求項7に記載のロボットシステム。
【請求項9】
ロボットを移動させてワークの作業対象箇所に対する作業を実行させる制御方法であって、
前記作業対象箇所を検出するセンサの検出データに基づいて、該作業対象箇所の位置を基準位置として取得し、
前記ロボットの移動方向を取得し、
前記ロボットを制御するために該ロボットのロボットベース又は前記ワークに対して固定して設定される制御座標系の1つの軸の方向を、基準方向として設定し、
前記作業対象箇所は、該1つの軸と直交する平面に沿って延在し、
前記作業対象箇所に対する前記ロボットの作業位置を前記基準位置からずらす方向を、前記移動方向及び前記基準方向と直交する方向として決定し、
前記作業対象箇所に対する前記作業を行うときに、前記ロボットを、取得した前記基準位置から、決定した前記ずらす方向へ所定のずらし量だけずらした目標位置に位置決めする、制御方法。
【請求項10】
ロボットを移動させてワークの作業対象箇所に対する作業を実行させるために、コンピュータを、
前記作業対象箇所を検出するセンサの検出データに基づいて、該作業対象箇所の位置を基準位置として取得する基準位置取得部、
前記ロボットの移動方向を取得する移動方向取得部、
前記ロボットを制御するために該ロボットのロボットベース又は前記ワークに対して固定して設定される制御座標系の1つの軸の方向を、基準方向として設定する基準方向設定部
であって、前記作業対象箇所は、該1つの軸と直交する平面に沿って延在する、基準方向設定部と、
前記作業対象箇所に対する前記ロボットの作業位置を前記基準位置からずらす方向を、前記移動方向取得部が取得した前記移動方向、及び前記基準方向設定部が設定した前記基準方向、と直交する方向として決定する方向決定部、及び
前記作業対象箇所に対する前記作業を行うときに、前記ロボットを、前記基準位置取得部が取得した前記基準位置から、前記方向決定部が決定した前記ずらす方向へ所定のずらし量だけずらした目標位置に位置決めするロボット制御部、
として機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの制御装置、ロボットシステム、制御方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
作業対象箇所を検出するセンサの検出データに基づいてロボットを制御し、該ロボットに作業対象箇所に対する作業を実行させる制御方法が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
作業品質の向上又はロボットと環境物との干渉の回避等の観点から、ロボットの作業位置を作業対象箇所から僅かにずらしたい場合がある。このような場合において、作業位置をずらす方向を適切に決定可能とする技術が求められている。
【課題を解決するための手段】
【0005】
本開示の一態様において、ロボットを移動させて作業対象箇所に対する作業を実行させる制御装置は、作業対象箇所を検出するセンサの検出データに基づいて、該作業対象箇所の位置を基準位置として取得する基準位置取得部と、ロボットの移動方向を取得する移動方向取得部と、移動方向取得部が取得した移動方向に基づいて、作業対象箇所に対するロボットの作業位置を基準位置からずらす方向を決定する方向決定部と、作業対象箇所に対する作業を行うときに、ロボットを、基準位置取得部が取得した基準位置から、方向決定部が決定したずらす方向へ所定のずらし量だけずらした目標位置に位置決めするロボット制御部とを備える。
【0006】
本開示の他の態様において、ロボットを移動させて作業対象箇所に対する作業を実行させる制御方法は、作業対象箇所を検出するセンサの検出データに基づいて、該作業対象箇所の位置を基準位置として取得し、ロボットの移動方向を取得し、取得した移動方向に基づいて、作業対象箇所に対するロボットの作業位置を基準位置からずらす方向を決定し、作業対象箇所に対する作業を行うときに、ロボットを、取得した基準位置から、決定したずらす方向へ所定のずらし量だけずらした目標位置に位置決めする。
【0007】
本開示のさらに他の態様において、コンピュータプログラムは、ロボットを移動させて作業対象箇所に対する作業を実行させるために、コンピュータを、作業対象箇所を検出するセンサの検出データに基づいて、該作業対象箇所の位置を基準位置として取得する基準位置取得部、ロボットの移動方向を取得する移動方向取得部、移動方向取得部が取得した移動方向に基づいて、作業対象箇所に対するロボットの作業位置を基準位置からずらす方向を決定する方向決定部、及び、作業対象箇所に対する作業を行うときに、ロボットを、基準位置取得部が取得した基準位置から、方向決定部が決定したずらす方向へ所定のずらし量だけずらした目標位置に位置決めするロボット制御部として機能させる。
【発明の効果】
【0008】
本開示によれば、例えば作業品質の向上又はロボットと環境物との干渉の回避のために作業位置を作業対象箇所からずらしたい場合等において、ロボットの移動方向を加味してずらす方向を適切に決定できる。
【図面の簡単な説明】
【0009】
【
図1】一実施形態に係るロボットシステムの図である。
【
図2】
図1に示すロボットシステムのブロック図である。
【
図3】一実施形態に係るワークの図であって、
図1に示すエンドエフェクタを点線表示している。
【
図4】
図1に示すロボットシステムの動作フローの一例を示すフローチャートである。
【
図5】ロボットの作業位置を基準位置からずらす方向を決定する方法を説明するための図である。
【
図6】曲線状の作業対象箇所に関して作業位置を基準位置からずらす方向を決定する方法を説明するための図である。
【
図8】他の実施形態に係る制御装置のブロック図である。
【発明を実施するための形態】
【0010】
以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。まず、
図1及び
図2を参照して、一実施形態に係るロボットシステム10について説明する。ロボットシステム10は、ロボット12、センサ14、及び制御装置16を備える。
【0011】
本実施形態においては、ロボット12は、垂直多関節ロボットであって、ロボットベース18、旋回胴20、ロボットアーム22、手首部24、及びエンドエフェクタ26を有する。ロボットベース18は、ワークセルの床に固定されている。旋回胴20は、ロボットベース18に鉛直軸周りに旋回可能に設けられている。ロボットアーム22は、旋回胴20に回動可能に設けられた下腕部28と、該下腕部28の先端部に回動可能に設けられた上腕部30とを有する。手首部24は、上腕部30の先端部に連結され、エンドエフェクタ26を軸線A1周りに回動させる。
【0012】
ロボット12のコンポーネント(ロボットベース18、旋回胴20、ロボットアーム22、手首部24)には、複数のサーボモータ32(
図1)がそれぞれ内蔵されている。サーボモータ32は、制御装置16からの指令に応じて、ロボット12の各可動コンポーネント(旋回胴20、ロボットアーム22、手首部24)を駆動軸周りに駆動する。
【0013】
エンドエフェクタ26は、例えば、切削工具、レーザ加工ヘッド、溶接トーチ、又は、液剤塗布器であって、手首部24に着脱可能に取り付けられている。エンドエフェクタ26は、ワークWに対して所定の作業(切削加工、レーザ加工、溶接、液剤塗布等)を行う。
【0014】
センサ14は、例えば、後述するワークWのような物体の形状を検出するとともに、該物体までの距離を測定する3次元センサである。本実施形態においては、センサ14は、光軸A2に沿って光(例えばレーザ光)を出射する出射部、及び、物体で反射した該光を受光して光電変換する撮像センサ(CCD、CMOS等)を有するレーザスキャナ式の3次元センサであって、取付具34を介してエンドエフェクタ26のベース部26aに固定されている。
【0015】
制御装置16は、ロボット12及びセンサ14の動作を制御する。具体的には、制御装置16は、プロセッサ40、メモリ42、及びI/Oインターフェース44を有するコンピュータである。プロセッサ40は、CPU又はGPU等を有し、メモリ42及びI/Oインターフェース44とバス45を介して通信可能に接続されている。
【0016】
プロセッサ40は、メモリ42及びI/Oインターフェース44と通信しつつ、後述するロボットシステム10の機能を実現するための演算処理を行う。メモリ42は、ROM又はRAM等を有し、各種データを一時的又は恒久的に記憶する。I/Oインターフェース44は、イーサネット(登録商標)ポート、USBポート、又はHDMI(登録商標)端子等を有し、プロセッサ40の指令の下、外部機器とデータを通信する。
【0017】
上述のロボット12のサーボモータ32及びセンサ14は、I/Oインターフェース44に有線又は無線で通信可能に接続され、プロセッサ40は、I/Oインターフェース44を介して、サーボモータ32及びセンサ14へ指令を送信する。また、本実施形態においては、I/Oインターフェース44に、表示装置46及び入力装置48が、有線又は無線で通信可能に接続されている。
【0018】
表示装置46は、LCD又は有機ELディスプレイ等を有し、プロセッサ40は、I/Oインターフェース44を介して、表示装置46に画像データを送信し、該表示装置46に画像を表示させる。入力装置48は、キーボード、マウス、又はタッチセンサ等を有し、オペレータが入力した入力情報を、I/Oインターフェース44へ送信する。なお、表示装置46及び入力装置48は、制御装置16に一体に設けられてもよいし、制御装置16とは別体として設けられてもよい。
【0019】
ロボット12には、ロボット座標系CRが設定されている。ロボット座標系CRは、制御装置16がロボット12の各可動コンポーネントを自動制御するための制御座標系である。本実施形態においては、ロボット座標系CRは、その原点が、ロボットベース18の中心に配置され、そのz軸が、旋回胴20の旋回軸と一致するように、ロボット12に対して設定されている。
【0020】
一方、エンドエフェクタ26には、ツール座標系CTが設定されている。このツール座標系CTは、ロボット座標系CRにおけるエンドエフェクタ26の位置及び姿勢を自動制御するための制御座標系である。本実施形態においては、ツール座標系CTは、その原点が、エンドエフェクタ26の作業端の中心(いわゆる、TCP)に位置し、そのz軸が軸線A1と平行となる(具体的には、一致する)ように、エンドエフェクタ26に対して設定されている。
【0021】
例えば、エンドエフェクタ26がレーザ加工ヘッド、溶接トーチ、又は液剤塗布器である場合、エンドエフェクタ26の作業端は、レーザ加工ヘッドのノズルのレーザ光出射口、溶接トーチの先端、又は液剤塗布器の液剤噴射口であり、該作業端から出力軸Oに沿ってレーザ光、溶接用線材、又は液剤(接着剤、塗料、コーティング液等)を出力する。この場合、ツール座標系CTのz軸は、出力軸Oと平行となる(具体的には、一致する)ように設定される。又は、エンドエフェクタ26が切削工具である場合、該エンドエフェクタ26の作業端は、例えば切削工具の中心点(又は先端点)である。
【0022】
制御装置16は、エンドエフェクタ26の位置及び姿勢を、ツール座標系CTによって規定される位置及び姿勢に一致させるように、ロボット12の各可動コンポーネントを動作させる。こうして、エンドエフェクタ26は、ロボット12によって移動され、ロボット座標系CRにおける任意の位置及び姿勢に配置される。
【0023】
また、ワークWには、ワーク座標系CWが設定されている。ワーク座標系CWは、ワークWに対するエンドエフェクタ26の位置を制御するための制御座標系である。本実施形態においては、ワーク座標系CWは、そのz軸方向が鉛直方向と平行となるように、ワークWに対して固定して設定されている。
【0024】
また、センサ14には、センサ座標系CSが設定されている。センサ座標系CSは、ロボット12の制御のための検出データを取得するセンサ14の位置及び光軸A2の方向を規定する制御座標系であって、そのz軸が、センサ14の光軸A2と一致するように、該センサ14に対して設定されている。センサ座標系CSとツール座標系CTとの位置関係は、キャリブレーションによって既知とされている。この既知の位置関係により、センサ座標系CSの座標とツール座標系CTの座標とは、第1の座標変換データ(例えばヤコビ行列)を介して相互に変換可能となっている。
【0025】
また、ロボット座標系CRの座標とツール座標系CTの座標とは、第2の座標変換データ(例えばヤコビ行列)を介して相互に変換可能となっている。したがって、センサ座標系CSの座標とロボット座標系CRの座標とは、ツール座標系CTを介して、相互に変換可能となっている。なお、本実施形態においては、センサ座標系CSのz軸と、ツール座標系CTのz軸とが平行となるように、該センサ座標系CSが設定されている。
【0026】
制御装置16は、ワークWの作業対象箇所Bへロボット12のエンドエフェクタ26を移動させて、該エンドエフェクタ26に作業対象箇所Bに対する作業を実行させる。
図3に、ワークWの一例を示す。
図3に示すワークWは、第1の部材W1と、該第1の部材W1の上に載置された第2の部材W2とを有する。
【0027】
第1の部材W1及び第2の部材W2は、ワーク座標系CWのx-y平面(つまり、水平面)に略平行に設置された平板部材である。本実施形態においては、作業対象箇所Bは、第2の部材W2の底面の側縁と第1の部材W1の上面との境界線に設定されており、ワーク座標系CWのy軸方向へ延在するように配置されている。
【0028】
制御装置16は、ロボット12を動作させて、エンドエフェクタ26(又はTCP)を作業対象箇所Bに沿ってワーク座標系CWのy軸プラス方向へ向かって移動させつつ、エンドエフェクタ26によって作業対象箇所Bに対し作業位置WPで作業を行う。より具体的には、制御装置16のプロセッサ40は、作業対象箇所Bに対する作業をロボット12に実行させるための作業プログラムMPに従って、ロボット12の各サーボモータ32への指令を生成する。
【0029】
この作業プログラムMPは、コンピュータプログラムであって、例えば、作業対象箇所Bに対する作業を行うときにエンドエフェクタ26(又はTCP)を位置決めさせる教示位置TPn(n=1,2,3,・・・)をロボット12に教示することによって、予め構築される。作業プログラムMPには、ロボット座標系CRにおける教示位置TPnの位置データ、2つの教示位置TPn-1及びTPnの間でエンドエフェクタ26を移動させる移動速度等が規定されている。作業プログラムMPは、メモリ42に予め格納される。
【0030】
なお、本実施形態においては、作業対象箇所Bは、ワーク座標系CWのy軸に沿って延びる略直線であって、制御装置16は、エンドエフェクタ26を、ワーク座標系CWのx-y平面に平行に移動させつつ、作業対象箇所Bのワーク座標系CWのy軸マイナス方向の端からy軸プラス方向へ向かって作業対象箇所Bに対する作業を行う。
【0031】
ロボット12による作業を行うとき、センサ14は、エンドエフェクタ26の作業位置WPに対し、該エンドエフェクタ26の移動方向の前方の位置で、作業対象箇所Bを検出する。具体的には、センサ14は、
図3に示すように、作業位置WPに対しエンドエフェクタ26の移動方向の前方(
図3の例では、ワーク座標系CWのy軸プラス方向)の位置DPでワークWに光(レーザ光)を照射し、該ワークWからの反射光からワークWの形状を検出し、以って、作業対象箇所Bを検出する。
【0032】
ここで、エンドエフェクタ26に作業対象箇所Bに対する作業を実行させるとき、オペレータは、作業品質の向上、又は、エンドエフェクタ26と周囲の環境物(ワークWを含む)との干渉の回避等の観点から、エンドエフェクタ26の作業位置WPを作業対象箇所Bから意図的にずらす場合がある。そこで、本実施形態に係る制御装置16は、作業対象箇所Bに対する作業時に作業位置WPを作業対象箇所Bからずらすように、ロボット12を制御する。
【0033】
例えば、プロセッサ40は、作業位置WPのずらし量δを入力するための入力画像データを生成し、表示装置46に表示させる。オペレータは、表示装置46に表示された入力画像を視認しつつ、入力装置48を操作し、ずらし量δを、例えば数値として、入力する。I/Oインターフェース44は、表示装置46からずらし量δの入力情報を受け付ける。このように、本実施形態においては、I/Oインターフェース44は、ずらし量δの入力情報を受け付ける入力受付部50(
図2)として機能する。プロセッサ40は、I/Oインターフェース44を通してずらし量δを取得し、メモリ42に記憶する。
【0034】
次に、
図4を参照して、制御装置16によるロボット12の制御フローの一例について、説明する。
図4に示すフローは、プロセッサ40が、オペレータ、上位コントローラ、又はコンピュータプログラム(例えば、作業プログラムMP)から作業開始指令を受け付けたときに、開始する。なお、
図4に示すフローの開始時点において、センサ14の検出位置DPは、作業対象箇所Bの始点(すなわち、ワーク座標系CWのy軸マイナス方向の端)に配置されていてもよい。
【0035】
ステップS1において、プロセッサ40は、基準位置RPの取得を開始する。具体的には、プロセッサ40は、センサ14を起動し、センサ14は、作業対象箇所Bを検出し、検出データをプロセッサ40に送信する動作を開始する。一例として、センサ14は、検出データとして、作業対象箇所Bが写るセンサ座標系CSの3D画像データをプロセッサ40に送信する。プロセッサ40は、センサ14からの3D画像データを画像処理して作業対象箇所Bを特定し、センサ座標系CSにおける作業対象箇所Bの位置PS(具体的には、センサ座標系CSの座標)のデータを取得する。
【0036】
他の例として、センサ14は、作業対象箇所Bが写るセンサ座標系CSの3D画像データを画像処理して作業対象箇所Bを特定する画像処理部を有し、特定した作業対象箇所Bのセンサ座標系CSにおける位置PS(座標)のデータを取得する。そして、センサ14は、検出データとして、センサ座標系CSにおける作業対象箇所Bの位置PSのデータをプロセッサ40に送信する。
【0037】
プロセッサ40は、取得したセンサ座標系CSの位置P
Sをロボット座標系CRに変換することによって、ロボット座標系CRにおける作業対象箇所Bの位置RPを、基準位置として取得する。このように、本実施形態においては、プロセッサ40は、センサ14の検出データに基づいて基準位置RPを取得する基準位置取得部52(
図2)として機能する。ステップS1の開始後、後述のステップS9でYESと判定するまで、センサ14は作業対象箇所Bを連続的に検出し、プロセッサ40は基準位置RPを連続的に取得する。
【0038】
ステップS2において、プロセッサ40は、ロボット12の移動を開始する。具体的には、プロセッサ40は、作業プログラムMPに従ってロボット12のサーボモータ32への位置指令PCを生成し、ロボット12の可動コンポーネントを動作させて、エンドエフェクタ26を第1の教示位置TP1に配置させるべく、該エンドエフェクタ26を移動させる。
【0039】
なお、本実施形態においては、プロセッサ40は、このステップS2の開始後、ツール座標系CT(又はセンサ座標系CS)のz軸が、ワーク座標系CW(又はロボット座標系CR)のz軸と平行となるように、エンドエフェクタ26の姿勢を制御しつつ、該エンドエフェクタ26を移動させる。ステップS3において、プロセッサ40は、第nの教示位置TPnを特定する番号「n」を「1」にセットする。
【0040】
ステップS4において、プロセッサ40は、ロボット12の移動方向MDnを取得する。一例として、プロセッサ40は、ステップS2の開始後、エンドエフェクタ26を移動させている間に、エンドエフェクタ26の位置EPを繰り返し取得する。例えば、プロセッサ40は、各サーボモータ32に設けられた回転検出器(エンコーダ、ホール素子等)から位置フィードバックFBを受信し、該位置フィードバックFBに基づいて、ロボット座標系CRにおけるエンドエフェクタ26(又は、TCP)の位置EPを演算により求めることができる。
【0041】
代替的には、ロボット座標系CRにおけるエンドエフェクタ26の位置を測定可能な位置測定器を設け、プロセッサ40は、該位置測定器が測定したエンドエフェクタ26の位置EPを取得してもよい。例えば、位置測定器は、エンドエフェクタ26に設けられたカメラを有し、プロセッサ40は、該カメラの撮像画像データから、エンドエフェクタ26の位置EPを算出することができる。このように、本実施形態においては、プロセッサ40は、ロボット12(具体的には、エンドエフェクタ26)が移動している間に該ロボット12の位置EPを繰り返し取得するロボット位置取得部54(
図1)として機能する。
【0042】
次いで、プロセッサ40は、このステップS4の開始時点(又は開始直前)に取得したエンドエフェクタ26の第mの位置EPmと、該第mの位置EPmの前に取得した、エンドエフェクタ26の第m-1の位置EPm-1とを用いて、このステップS4の開始時点でのエンドエフェクタ26の移動方向MDnを、第m-1の位置EPm-1から第mの位置EPmへのベクトルの方向として求める。
【0043】
なお、プロセッサ40は、3以上の位置EPmを用いて、移動方向MDnを求めてもよい。例えば、プロセッサ40は、位置EPm-3から位置EPm-2へのベクトルV3の方向と、位置EPm-2から位置EPm―1へのベクトルV2の方向と、位置EPm-1から位置EPmへのベクトルV1の方向との和(又は平均)を算出し、該和(又は平均)の方向を、移動方向MDnとして求めてもよい。
【0044】
このようにして、プロセッサ40は、ロボット12(具体的には、エンドエフェクタ26)の移動方向MD
nを取得する。したがって、本実施形態においては、プロセッサ40は、移動方向取得部56(
図2)として機能する。なお、上述したように、本実施形態においては、プロセッサ40は、エンドエフェクタ26をワーク座標系のx-y平面と平行に移動させるので、移動方向MD
nは、ワーク座標系のx-y平面と平行となる。
【0045】
ステップS5において、プロセッサ40は、直近のステップS4で取得した移動方向MDnに基づいて、ロボット12の作業位置WPを基準位置RPnからずらす方向SDnを決定する。具体的には、プロセッサ40は、まず、直近のステップS4で取得した移動方向MDnと直交する方向を基準方向RDとして設定する。
【0046】
本実施形態においては、プロセッサ40は、基準方向RDを、制御座標系としてのワーク座標系CW(又は、ロボット座標系CR)のz軸と平行な方向として設定する。このよに、プロセッサ40は、基準方向RDを設定する基準方向設定部58(
図2)として機能する。なお、オペレータは、入力装置48を操作して、基準方向RDをワーク座標系CW(又は、ロボット座標系CR)のz軸と平行な方向として設定する設定情報を予め入力してもよい。そして、プロセッサ40は、該設定情報に応じて基準方向RDを設定してもよい。
【0047】
次いで、プロセッサ40は、ずらす方向SDnを、移動方向MDn及び基準方向RDと直交する方向として決定する。例えば、プロセッサ40は、直近に取得した移動方向MDnの単位ベクトルを求めるとともに、設定した基準方向RDの単位ベクトルを求め、移動方向MDnの単位ベクトルと基準方向RDの単位ベクトルとの外積を演算により求めることにより、ずらす方向SDnを求めることができる。
【0048】
図5に、移動方向MD
n、基準方向RD、及びずらす方向SD
nを矢印で示す。
図5に示す例では、ずらす方向SD
nは、移動方向MD
n及び基準方向RDと直交し、且つ、移動方向MD
nの右側へ向かう方向として決定されている。このように、本実施形態においては、プロセッサ40は、ずらす方向SD
nを決定する方向決定部60(
図2)として機能する。
【0049】
なお、オペレータは、入力装置48を操作して、ずらす方向SDnを、移動方向MDnの左側及び右側のいずれへ向かう方向とするのかを設定するための設定情報を予め入力してもよい。そして、プロセッサ40は、該設定情報に応じて、ずらす方向SDnを、移動方向MDnの左側又は右側へ向かう方向として決定してもよい。
【0050】
ステップS6において、プロセッサ40は、補正座標系CAを設定する。具体的には、プロセッサ40は、補正座標系CAを、直近のステップS5で決定したずらす方向SDnと平行なx軸、直近のステップS4で取得した移動方向MDnと平行なy軸、及び基準方向RDと平行なz軸を有する直交座標系として、設定する。
【0051】
補正座標系CAを
図5に例示する。プロセッサ40は、補正座標系CAの原点を、例えば、この時点で設定されているツール座標系CTの原点(すなわち、TCP)に配置するように、補正座標系CAを設定する。このように、本実施形態においては、プロセッサ40は、補正座標系CAを設定する座標系設定部62(
図2)として機能する。
【0052】
ステップS7において、プロセッサ40は、補正座標系CAを基準として位置補正指令AC
nを生成する。位置補正指令AC
nは、
図5に示すように、作業のためにエンドエフェクタ26を位置決めする位置を、補正座標系CAにおいて第nの教示位置TP
nから第nの目標位置GP
nに補正するための指令である。
【0053】
第nの目標位置GPnは、第nの基準位置RPnから、直近のステップS5で決定したずらす方向SDnへ、メモリに予め記憶されたずらし量δだけずれた位置である。この第nの基準位置RPnは、例えば、第nの教示位置TPnからの距離が最小となる、センサ14が検出した作業対象箇所B上の点として、特定される。
【0054】
プロセッサ40は、第nの教示位置TPn及び第nの基準位置RPnの位置データと、ずらす方向SDn及びずらし量δとに基づいて、補正座標系CAを基準として位置補正指令ACnを生成する。一例として、プロセッサ40は、第nの教示位置TPn及び第nの基準位置RPnの位置データを用いて、第nの教示位置TPnから基準位置RPnまでの位置補正ベクトルV1nを求める。
【0055】
これとともに、プロセッサ40は、第nの基準位置RPnの位置データとずらす方向SDn及びずらし量δとを用いて、第nの基準位置RPnからずらす方向SDnへ向かう大きさδの位置補正ベクトルV2nを求める。そして、プロセッサ40は、位置補正指令ACnを、補正座標系CAにおける位置補正ベクトルV1nと位置補正ベクトルV2nとの和として、生成する。
【0056】
他の例として、プロセッサ40は、第nの基準位置RPnの位置データと、ずらす方向SDn及びずらし量δとを用いて第nの目標位置GPnを定め、補正座標系CAにおける第nの目標位置GPnの位置データ(座標)を取得する。仮に、第nの基準位置RPnの補正座標系CAの座標を(xA,yA,zA)とすると、第nの目標位置GPnの補正座標系CAの座標は(xA+δ,yA,zA)となる。そして、プロセッサ40は、第nの教示位置TPn及び第nの目標位置GPnの位置データを用いて、位置補正指令ACnを生成する。
【0057】
プロセッサ40は、生成した補正座標系CAの位置補正指令ACnをロボット座標系CRに変換し、エンドエフェクタ26を第nの教示位置TPnへ位置決めするための位置指令PCnに加えることによって、該位置指令PCnを補正する。そして、プロセッサ40は、補正後の位置指令PCn’をサーボモータ32へ送信する。こうして、プロセッサ40は、補正後の位置指令PCn’に従ってロボット12を動作させ、エンドエフェクタ26を第nの目標位置GPnへ向かって移動させる。
【0058】
ステップS8において、プロセッサ40は、ロボット12が第nの目標位置GPnに到達したか否かを判定する。例えば、プロセッサ40は、位置フィードバックFBに基づいてエンドエフェクタ26(TCP)の位置EPを順次求め、該位置EPを監視することによって、エンドエフェクタ26(TCP)が第nの目標位置GPnに到達したか否かを判定する。
【0059】
プロセッサ40は、ロボット12が第nの目標位置GPnに到達した(すなわち、YES)と判定した場合、ステップS9へ進む一方、ロボット12が第nの目標位置GPnに到達していない(すなわち、NO)と判定した場合、ステップS8をループする。なお、このステップS8の開始時点で第nの教示位置TPnを特定する番号「n」が「1」にセットされている場合、このステップS8でYESと判定したときに、プロセッサ40は、エンドエフェクタ26を起動して、該エンドエフェクタ26による作業を開始する。
【0060】
ステップS9において、プロセッサ40は、第nの教示位置TPnを特定する番号「n」が、n=νであるか否かを判定する。ここで、νは、例えば、作業プログラムMPに規定されている教示位置TPnの総数である。プロセッサ40は、n=νである場合にYESと判定し、ステップS11に進む一方、n<νである場合にNOと判定し、ステップS10に進む。ステップS10において、プロセッサ40は、第nの教示位置TPnを特定する番号「n」を、「1」だけインクリメントする(すなわち、n=n+1)。そして、プロセッサ40は、ステップS4へ戻る。
【0061】
こうして、プロセッサ40は、ステップS9でYESと判定するまで、ステップS4~S10のループを繰り返し実行し、エンドエフェクタ26を、加工プログラムMPに規定された教示経路PT(
図5)とは異なる移動経路PGに沿って、第1の目標位置GP
1、第2の目標位置GP
2、・・・、第νの目標位置GP
νに順次位置決めしつつ、エンドエフェクタ26により作業対象箇所Bに沿って作業を行う。したがって、プロセッサ40は、作業対象箇所Bに対する作業を行うときにロボット12(具体的には、エンドエフェクタ26)を目標位置GP
nに位置決めするロボット制御部64(
図2)として機能する。
【0062】
ステップS9でYESと判定した場合、プロセッサ40は、エンドエフェクタ26動作を停止させ、以って作業を終了する。以上のように、本実施形態においては、制御装置16は、ロボット12の移動方向MDnに基づいて、ロボット12の作業位置WPを基準位置RPnからずらす方向SDnを決定している。この構成によれば、例えば作業品質の向上又はエンドエフェクタ26と環境物との干渉の回避のために作業位置WPを作業対象箇所Bからずらしたい場合等において、ロボット12の移動方向MDnを加味してずらす方向SDnを適切に決定できる。
【0063】
また、本実施形態においては、制御装置16は、基準方向RDを設定し、ずらす方向SDnを移動方向MDn及び基準方向RDと直交する方向として決定している。この構成によれば、ずらす方向SDnを、移動方向MDn及び基準方向RDから、より詳細に決定できるようになる。
【0064】
また、本実施形態においては、制御装置16は、基準方向RDを、制御座標系としてのワーク座標系CW(又は、ロボット座標系CR)のz軸方向と平行な方向として設定している。これにより、ずらす方向SDnを、ワーク座標系CW(又はロボット座標系CR)を基準として決定できるようになる。この構成によれば、オペレータは、ワーク座標系CW(又はロボット座標系CR)の軸方向を認識し易いので、ずらす方向SDnを容易且つ直感的に認識することができる。
【0065】
また、本実施形態においては、制御装置16は、ずらす方向SD
n、移動方向MD
n及び基準方向RDに基づいて補正座標系CAを設定し、該補正座標系CAを基準として位置補正指令AC
nを生成している。この構成によれば、制御装置16は、補正座標系CAにおいて位置補正指令AC
nを効率的に生成することができるので、
図4中のステップS4~S10のループの処理速度の高速化を図ることができる。
【0066】
また、本実施形態においては、上述のステップS4において、制御装置16は、ロボット12の位置EPmを繰り返し取得し、複数のEPm-1、EPmを用いて移動方向MDnを求めている。この構成によれば、ロボット12の移動方向MDnを、確実且つ迅速に取得できる。また、本実施形態においては、I/Oインターフェース44が入力受付部50として機能して、ずらし量δの入力情報を事前に受け付けている。この構成によれば、オペレータは、ずらし量δを予め任意に設定できる。
【0067】
プロセッサ40は、メモリ42に予め格納されたコンピュータプログラムに従って、
図4に示すフローを実行してもよい。このコンピュータプログラムは、ロボット12を移動させて作業対象箇所Bに対する作業を実行させるために、制御装置16(具体的には、プロセッサ40)を、基準位置取得部52、ロボット位置取得部54、移動方向取得部56、基準方向設定部58、方向決定部60、座標系設定部62、及びロボット制御部64として機能させる。このコンピュータプログラムは、例えば、上述の作業プログラムMPに組み込まれてもよいし、又は、作業プログラムMPとは別に作成されてもよい。
【0068】
なお、上述の実施形態において、ステップS4~S10のループを第n回目(n≧3)に実行する場合、ステップS4において、プロセッサ40は、第n-1の目標位置GPn-1と、第n-2の目標位置GPn-2とを用いて、エンドエフェクタ26の移動方向MDnを、第n-2の目標位置GPn-2から第n-1の目標位置GPn-1へ向かうベクトルの方向として取得してもよい。
【0069】
また、上述の実施形態においては、作業対象箇所Bが略直線である場合について述べたが、制御装置16は、曲線状(例えば、円弧状)の作業対象箇所Bに対しても、ずらす方向SD
nを適切に決定できる。具体的には、
図6に示すように、プロセッサ40は、
図4のフローを実行することで、移動方向MD
nに基づいてずらす方向SD
nを決定し、補正座標系CAを基準として位置補正指令AC
nを生成できる。
【0070】
なお、
図6に示すような曲線状の作業対象箇所Bの場合において、上述のステップS4において、プロセッサ40は、加工プログラムMPに規定された第nの教示位置TP
nにおける教示軌跡PT(又は、センサ14の検出データから抽出された作業対象箇所Bの軌跡線)の接線方向を求め、該接線方向を移動方向MD
nとして取得してもよい。
【0071】
また、上述の実施形態においては、センサ14は、その光軸A2がツール座標系CTのz軸と平行となるように設けられていたが、光軸A2がツール座標系CTのz軸に対して傾斜するように設けられてもよい。このような形態を
図7に示す。
図7に示す形態においては、センサ14の光軸A2がツール座標系CTのz軸に対して傾斜し、センサ座標系CSは、そのz軸が光軸A2に一致するように設定されている。このような形態においても、制御装置16は、
図4に示すフローを実行することにより、移動方向MD
nに基づいてずらす方向SD
nを決定し、補正座標系CAを基準として位置補正指令AC
nを生成できる。
【0072】
また、上述のステップS5において、プロセッサ40は、基準方向RDを、制御座標系としてのツール座標系CTのz軸と平行な方向として設定してもよい。代替的には、プロセッサ40は、基準方向RDを、センサ座標系CSのz軸と平行な方向として設定してもよいし、又は、作業セルの3次元空間を規定する制御座標系であるワールド座標系の1つの軸(例えば、z軸)と平行な方向として設定してもよい。
【0073】
また、上述の実施形態においては、プロセッサ40は、エンドエフェクタ26をワーク座標系CWのx-y平面と平行に移動させる場合について述べたが、これに限らず、プロセッサ40は、ワーク座標系CWのx-y平面と非平行に移動させてもよい。例えば、第n-1の教示位置TPn-1から第nの教示位置TPnへの教示軌跡PTが、ワーク座標系CWのx-y平面と非平行となり得る。
【0074】
この場合において、プロセッサ40は、上述のステップS5において、直近のステップS4で取得した移動方向MDnの、ワーク座標系CWのx-y平面と平行な成分MDn’を求める。また、プロセッサ40は、上述のように基準方向RDを設定する。次いで、プロセッサ40は、ずらす方向SDnを、成分MDn’及び基準方向RDと直交する方向として決定してもよい。
【0075】
代替的には、上述のステップS5において、プロセッサ40は、まず、直近のステップS4で取得した移動方向MDnと直交し、且つ、ワーク座標系CW(又は、ロボット座標系CR)のy-z平面と平行な方向を基準方向RDとして設定してもよい。次いで、プロセッサ40は、ずらす方向SDnを、移動方向MDn及び基準方向RDと直交する方向として決定してもよい。プロセッサ40は、このように決定したずらす方向SDnと、移動方向MDn及び基準方向RDとに基づいて、上述のステップS6及びS7を実行できる。
【0076】
また、センサ14は、上述のレーザスキャナ式の3次元センサに限らず、例えば複数のカメラと、該複数のカメラが撮像した物体の画像データから該物体までの距離を測定する画像処理部とを有する3次元視覚センサであってもよいし、又は、作業対象箇所Bを検出可能な如何なるタイプのセンサであってもよい。
【0077】
また、上述の実施形態において、第nの目標位置GP
nは、第nの基準位置RP
nから、ステップS5で決定したずらす方向SD
nへずらし量δだけずれ、且つ、ワーク座標系CW(又はロボット座標系CR)のz軸プラス方向へ所定のずらし量δ’だけずれた位置に設定されてもよい。この場合、
図5中の第nの基準位置RP
nの補正座標系CAの座標を(x
A,y
A,z
A)とすると、第nの目標位置GP
nの補正座標系CAの座標は、(x
A+δ,y
A,z
A+δ’)となる。
【0078】
この場合において、オペレータは、入力装置48を操作し、ずらし量δ’を、例えば数値として入力し、I/Oインターフェース44は、入力受付部50として機能してずらし量δ’の入力情報を受け付けてもよい。そして、プロセッサ40は、上述のステップS7において、第nの基準位置RPnの位置データ、ずらす方向SDn、ずらし量δ及びδ’を用いて第nの目標位置GPnを定め、位置補正指令ACnを生成してもよい。
【0079】
また、上述の実施形態においては、作業対象箇所Bが第2の部材W2の底面の側縁と第1の部材W1の上面との境界線に設定されている場合について述べた。しかしながら、作業対象箇所Bは、第2の部材W2の上面の側縁に設定されてもよい。そして、第nの目標位置GPnは、第nの基準位置RPnから、ステップS5で決定したずらす方向SDnへずらし量δだけずれ、且つ、ワーク座標系CW(又はロボット座標系CR)のz軸マイナス方向へ所定のずらし量δ”だけずれた位置に設定されてもよい。
【0080】
この場合、
図5中の第nの基準位置RP
nの補正座標系CAの座標を(x
A,y
A,z
A)とすると、第nの目標位置GP
nの補正座標系CAの座標は、(x
A+δ,y
A,z
A-δ”)となる。この場合において、オペレータは、入力装置48を操作し、ずらし量δ”を、例えば数値として入力し、I/Oインターフェース44は、入力受付部50として機能してずらし量δ”の入力情報を受け付けてもよい。そして、プロセッサ40は、上述のステップS7において、第nの基準位置RP
nの位置データ、ずらす方向SD
n、ずらし量δ及びδ”を用いて第nの目標位置GP
nを定め、位置補正指令AC
nを生成してもよい。
【0081】
また、
図2に示す実施形態から、基準方向設定部58を省略することもできる。この場合において、プロセッサ40は、上述のステップS5において、ずらす方向SD
nを、移動方向MD
nと直交し、且つ、ワーク座標系CW(又はロボット座標系CR)のx-y平面に平行な方向として決定してもよい。又は、プロセッサ40は、ずらす方向SD
nを、移動方向MD
nに対して所定の角度θだけ傾斜した方向として決定してもよい。この角度θの情報は、メモリ42に予め記憶され得る。
【0082】
また、
図2に示す実施形態から、座標系設定部62を省略することもできる。この場合において、
図4に示しフローからステップS6を省略し、プロセッサ40は、上述のステップS7において、例えばツール座標系CT又はロボット座標系CRを基準として位置補正指令AC
nを生成してもよい。
【0083】
また、
図2に示す実施形態から座標系設定部62を省略するとともに、作業プログラムMPに規定されている教示位置TP
n(n=1,2,3,・・・)を省略することもできる。この場合、
図4のフローからステップS6及びS7を省略できる。具体的には、ステップS5において、プロセッサ40は、直近のステップS4で取得した移動方向MD
nに基づいて第nの基準位置RP
nからずらす方向SD
nを決定し、次いで、第nの基準位置RP
nの位置データと、ずらす方向SD
n及びずらし量δとを用いて第nの目標位置GP
nを定める。
【0084】
そして、プロセッサ40は、ロボット座標系CRにおける第nの目標位置GPnの位置データ(座標)を取得し、該位置データに応じて各サーボモータ32への位置指令PCを生成し、エンドエフェクタ26を第nの目標位置GPnへ向かって移動させる。このように、本実施形態においては、プロセッサ40は、上述の位置補正指令ACnを生成することなく、基準位置RPnに基づいてエンドエフェクタ26を第nの目標位置GPnへ位置決めするための位置指令PCを順次生成している。
【0085】
また、
図2に示す実施形態からロボット位置取得部54を省略することもできる。一例として、上述のステップS4において、プロセッサ40は、センサ14の検出データに基づいて、第n-1の基準位置RP
n-1から第nの基準位置RP
nへのベクトルの方向を移動方向MD
nとして取得してもよい。又は、プロセッサ40は、センサ14の検出データから作業対象箇所Bの軌跡線を抽出し、第nの基準位置RP
nにおける該軌跡線の接線方向を求め、該接線方向を移動方向MD
nとして取得してもよい。
【0086】
さらに他の例として、プロセッサ40は、サーボモータ32への位置指令PCからロボット12の移動方向MDnを取得してもよい。具体的には、プロセッサ40は、このステップS4の開始時点(又は開始直前)にサーボモータ32へ発信した位置指令PCmと、該位置指令PCmの前にサーボモータ32へ発信した位置指令PCm-1とから、このステップS4の開始時点でのエンドエフェクタ26の移動方向MDnを求めてもよい。
【0087】
さらに他の例として、プロセッサ40は、作業プログラムMPからロボット12の移動方向MD
nを取得してもよい。例えば、プロセッサ40は、作業プログラムMPに規定されている教示位置TPから、ステップS4の開始時点(又は、開始直前)でのエンドエフェクタ26の教示経路PT(
図5)を求め、該教示経路PTから、この時点でのエンドエフェクタ26の移動方向MD
nを取得してもよい。
【0088】
以上のように、プロセッサ40は、位置フィードバックFB、位置指令PC、加工プログラムMP(教示位置TP、教示経路PT)、及びセンサ14の検出データ(基準位置RP、作業対象箇所Bの軌跡線)のいずれかを用いて、移動方向MD
nを取得できる。なお、
図2に示す実施形態から入力受付部50を省略することもできる。例えば、メモリ42は、ずらし量δを所要値として予め記憶していてもよい。
【0089】
図8に、入力受付部50、ロボット位置取得部54、座標系設定部62、及び基準方向設定部58が省略された制御装置16’を示す。制御装置16’は、上述の基準位置取得部52、移動方向取得部56、方向決定部60、及びロボット制御部64を備える。制御装置16’は、例えば、プロセッサ及びメモリを有するコンピュータであり、該プロセッサが、移動方向取得部56、方向決定部60、及びロボット制御部64として機能する。
【0090】
この制御装置16’において、例えば、方向決定部60は、ずらす方向SDnを、移動方向MDnと直交し、且つ、ワーク座標系CW(又は、ロボット座標系CR)のx-y平面と平行な方向、又は、移動方向MDnと所定の角度θだけ傾斜した方向として、決定してもよい。以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
【符号の説明】
【0091】
10 ロボットシステム
12 ロボット
14 センサ
16,16’ 制御装置
40 プロセッサ
52 基準位置取得部
54 ロボット位置取得部
56 移動方向取得部
58 基準方向設定部
60 方向決定部
62 座標系設定部
64 ロボット制御部