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

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

▶ ファナック株式会社の特許一覧

特許7405960ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法
<>
  • 特許-ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法 図1
  • 特許-ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法 図2
  • 特許-ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法 図3
  • 特許-ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法 図4
  • 特許-ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法 図5
  • 特許-ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法 図6
  • 特許-ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法 図7
  • 特許-ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法 図8
  • 特許-ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法 図9
  • 特許-ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法 図10
  • 特許-ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法 図11
  • 特許-ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法
(51)【国際特許分類】
   B25J 13/08 20060101AFI20231219BHJP
【FI】
B25J13/08 Z
【請求項の数】 14
(21)【出願番号】P 2022515357
(86)(22)【出願日】2021-04-09
(86)【国際出願番号】 JP2021015082
(87)【国際公開番号】W WO2021210514
(87)【国際公開日】2021-10-21
【審査請求日】2022-11-21
(31)【優先権主張番号】P 2020073038
(32)【優先日】2020-04-15
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(72)【発明者】
【氏名】石井 優希
(72)【発明者】
【氏名】顧 義華
【審査官】樋口 幸太郎
(56)【参考文献】
【文献】特開平06-262562(JP,A)
【文献】特開2015-009324(JP,A)
【文献】特開平09-179632(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 13/08
(57)【特許請求の範囲】
【請求項1】
ロボットの制御装置であって、
ワークの形状を表す形状データに基づいて設定された複数の目標位置に前記ロボットを順に位置決めし、該ワークの作業対象箇所に沿って作業を実行させるように前記ロボットを制御するロボット制御部を備え、
前記ロボット制御部は、前記ロボットが、前記形状データにおける前記作業対象箇所の終端に対応して設定された最後の前記目標位置に到達した後、該最後の目標位置を超えて前記作業を継続させるように前記ロボットを制御する、制御装置。
【請求項2】
前記複数の目標位置と、前記最後の目標位置から所定の延長方向へ所定の距離だけ離隔した位置に設定された追加目標位置と、が規定された動作プログラムを記憶する記憶部をさらに備え、
前記ロボット制御部は、前記動作プログラムに従って前記ロボットを動作させて、該ロボットが前記最後の目標位置に達した後、前記追加目標位置まで前記作業を継続させる、請求項1に記載の制御装置。
【請求項3】
前記ロボット制御部は、前記ロボットのツールを前記ワークに対して押し付けることで前記作業を実行させ、
前記制御装置は、
前記ロボットが前記作業を実行しているときに前記ワークから前記ロボットに加えられた力のデータを取得する力取得部と、
前記最後の目標位置を超えて前記作業を継続している間、前記力が予め定めた閾値以下になったか否かを判定する力判定部と、をさらに備える、請求項1又は2に記載の制御装置。
【請求項4】
前記ロボット制御部は、前記力判定部によって前記力が前記閾値以下になったと判定された場合に、前記作業を終了させる、請求項3に記載の制御装置。
【請求項5】
前記ロボット制御部は、
前記作業の実行中に、前記力取得部が取得した前記力に基づいて、前記ロボットが前記ツールを前記ワークに対して押し付ける押付力を予め定めた目標値に制御する倣い制御を実行し、
前記力判定部によって前記力が前記閾値以下になったと判定された場合に、前記倣い制御を終了させる、請求項3に記載の制御装置。
【請求項6】
前記ロボット制御部は、前記ロボットのツールを前記ワークに対して押し付けることで前記作業を実行させ、
前記制御装置は、
前記ロボットが前記作業を実行しているときに、前記ワークに対して前記ツールを押し付ける方向への前記ロボットの移動量を取得する移動量取得部と、
前記最後の目標位置を超えて前記作業を継続している間、前記移動量が予め定めた閾値を超えたか否かを判定する移動判定部と、をさらに備える、請求項1又は2に記載の制御装置。
【請求項7】
前記ロボット制御部は、前記移動判定部によって前記移動量が前記閾値を超えたと判定された場合に、前記作業を終了させる、請求項6に記載の制御装置。
【請求項8】
前記ロボットが前記作業を実行しているときに前記ワークから前記ロボットに加えられた力のデータを取得する力取得部をさらに備え、
前記ロボット制御部は、
前記作業の実行中に、前記力取得部が取得した前記力に基づいて、前記ロボットが前記ツールを前記ワークに対して押し付ける押付力を予め定めた目標値に制御する倣い制御を実行し、
前記移動判定部によって前記移動量が前記閾値を超えたと判定された場合に、前記倣い制御を終了させる、請求項6に記載の制御装置。
【請求項9】
ロボットと、
請求項1~8のいずれか1項に記載の制御装置と、を備える、ロボットシステム。
【請求項10】
ロボットの動作プログラムを生成する装置であって、
ワークの形状を表す形状データを取得する形状データ取得部と、
前記形状データに基づいて、前記ワークの作業対象箇所に対する作業のために前記ロボットを順に位置決めすべき複数の目標位置を設定する目標位置設定部と、
前記形状データにおける前記作業対象箇所の終端に対応して前記目標位置設定部が設定した最後の前記目標位置から、所定の延長方向へ所定の距離だけ離隔した位置に、追加目標位置を自動で設定する追加目標位置設定部と、
前記複数の目標位置と前記追加目標位置とが規定された前記動作プログラムを生成するプログラム生成部と、を備える、装置。
【請求項11】
前記形状データ取得部は、前記形状データとして、前記ロボットを制御するための制御座標系に対して既知の位置関係に配置された視覚センサが撮像した前記ワークの画像データを取得し、
前記装置は、前記画像データに基づいて、前記制御座標系における前記作業対象箇所の位置を取得する位置取得部をさらに備え、
前記目標位置設定部は、前記位置取得部が取得した前記作業対象箇所の前記位置に基づいて、前記複数の目標位置を設定する、請求項10に記載の装置。
【請求項12】
前記形状データ又は前記目標位置に基づいて前記延長方向を設定する方向設定部をさらに備える、請求項10又は11に記載の装置。
【請求項13】
ロボットの制御方法であって、
ワークの形状を表す形状データに基づいて設定された複数の目標位置に前記ロボットを順に位置決めし、該ワークの作業対象箇所に沿って作業を実行させるように前記ロボットを制御し、
前記ロボットが、前記形状データにおける前記作業対象箇所の終端に対応して設定された最後の前記目標位置に到達した後、該最後の目標位置を超えて前記作業を継続させるように前記ロボットを制御する、制御方法。
【請求項14】
ロボットの動作プログラムを生成する方法であって、
ワークの形状を表す形状データを取得し、
前記形状データに基づいて、前記ワークの作業対象箇所に対する作業のために前記ロボットを順に位置決めすべき複数の目標位置を設定し、
前記形状データにおける前記作業対象箇所の終端に対応して設定した最後の前記目標位置から、所定の延長方向へ所定の距離だけ離隔した位置に、追加目標位置を自動で設定し、
前記複数の目標位置と前記追加目標位置とが規定された前記動作プログラムを生成する、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの制御装置及び制御方法、ロボットシステム、並びに、ロボットの動作プログラムを生成する装置及び方法に関する。
【背景技術】
【0002】
ロボットを複数の目標位置に順に位置決めし、該ロボットに所定の作業(例えば、バリ取り)を実行させる制御装置が知られている(例えば、特許文献1)
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-91269号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、ロボットの目標位置が実際のワークからずれてしまい、ワークの作業対象箇所の終端まで作業を完遂できなくなる場合があった。
【課題を解決するための手段】
【0005】
本開示の一態様において、ロボットの制御装置は、ワークの形状を表す形状データに基づいて設定された複数の目標位置にロボットを順に位置決めし、該ワークの作業対象箇所に沿って作業を実行させるようにロボットを制御するロボット制御部を備え、該ロボット制御部は、ロボットが、形状データにおける作業対象箇所の終端に対応して設定された最後の目標位置に到達した後、該最後の目標位置を超えて作業を継続させるようにロボットを制御する。
【0006】
本開示の他の態様において、ロボットの動作プログラムを生成する装置は、ワークの形状を表す形状データを取得する形状データ取得部と、形状データに基づいて、ワークの作業対象箇所に対する作業のためにロボットを順に位置決めすべき複数の目標位置を設定する目標位置設定部と、形状データにおける作業対象箇所の終端に対応して目標位置設定部が設定した最後の目標位置から、所定の延長方向へ所定の距離だけ離隔した位置に、追加目標位置を自動で設定する追加目標位置設定部と、複数の目標位置と追加目標位置とが規定された動作プログラムを生成するプログラム生成部とを備える。
【0007】
本開示のさらに他の態様において、ロボットの制御方法は、ワークの形状を表す形状データに基づいて設定された複数の目標位置にロボットを順に位置決めし、該ワークの作業対象箇所に沿って作業を実行させるようにロボットを制御し、ロボットが、形状データにおける作業対象箇所の終端に対応して設定された最後の目標位置に到達した後、該最後の目標位置を超えて作業を継続させるようにロボットを制御する。
【0008】
本開示のさらに他の態様において、ロボットの動作プログラムを生成する方法は、ワークの形状を表す形状データを取得し、形状データに基づいて、ワークの作業対象箇所に対する作業のためにロボットを順に位置決めすべき複数の目標位置を設定し、形状データにおける作業対象箇所の終端に対応して設定した最後の目標位置から、所定の延長方向へ所定の距離だけ離隔した位置に、追加目標位置を自動で設定し、複数の目標位置と追加目標位置とが規定された動作プログラムを生成する。
【発明の効果】
【0009】
本開示によれば、作業対象箇所の終端まで確実に作業を完遂し、該終端の近傍部分が未作業となってしまうのを防止できる。これにより、ワークの仕上がり品質を向上させることができる。
【図面の簡単な説明】
【0010】
図1】一実施形態に係るロボットシステムの図である。
図2図1に示すロボットシステムのブロック図である。
図3】ワークの一例を示す図である。
図4】形状データに基づいて取得した作業対象箇所の位置と、実空間での作業対象箇所の位置との誤差を説明するための図である。
図5】形状データに基づいて取得した作業対象箇所に対し目標位置を設定した態様を模式的に示す図である。
図6図2に示す制御装置が実行する動作フローの一例を示すフローチャートである。
図7図2に示す制御装置が実行する動作フローの他の例を示すフローチャートである。
図8】他の実施形態に係るロボットシステムのブロック図である。
図9図8に示す制御装置が実行する動作フローの一例を示すフローチャートである。
図10図8に示す制御装置が実行する動作フローの他の例を示すフローチャートである。
図11】制御装置が実行する動作フローのさらに他の例を示すフローチャートである。
図12】他の実施形態に係るロボットシステムのブロック図である。
【発明を実施するための形態】
【0011】
以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。まず、図1及び図2を参照して、一実施形態に係るロボットシステム10について説明する。ロボットシステム10は、ロボット12、力センサ14、視覚センサ16、及び制御装置18を備える。
【0012】
本実施形態においては、ロボット12は、垂直多関節ロボットであって、ロボットベース20、旋回胴22、ロボットアーム24、手首部26、及びエンドエフェクタ28を有する。ロボットベース20は、作業セルの床に固定されている。旋回胴22は、鉛直軸周りに旋回可能となるようにロボットベース20に設けられている。ロボットアーム24は、旋回胴22に水平軸周りに回動可能に設けられた下腕部30と、該下腕部30の先端部に回動可能に設けられた上腕部32とを有する。手首部26は、上腕部32の先端部に回動可能に設けられ、エンドエフェクタ28を回動可能に支持する。
【0013】
ロボットベース20、旋回胴22、ロボットアーム24、及び手首部26には、サーボモータ35(図2)がそれぞれ内蔵されている。サーボモータ35は、制御装置18からの指令に応じてロボット12の各可動要素(すなわち、旋回胴22、ロボットアーム24、及び手首部26)を駆動する。これら可動要素の動作により、ロボット12は、エンドエフェクタ28を移動させる。
【0014】
本実施形態においては、エンドエフェクタ28は、ワークWに形成されたバリを削って除去する作業(いわゆる、バリ取り)を行う。具体的には、エンドエフェクタ28は、ツール34と、該ツール34を軸線A周りに回転駆動するツール駆動部36とを有する。ツール34は、バリ取りツールであって、その円錐状の先端部でワークWを削る。ツール駆動部36は、例えばサーボモータを有し、制御装置18からの指令に応じてツール34を回転駆動する。
【0015】
ロボット12には、ロボット座標系C1(図1)が設定されている。ロボット座標系C1は、ロボット12の各可動要素の動作を自動制御するための制御座標系であって、3次元空間内に固定されている。本実施形態においては、ロボット座標系C1は、その原点が、ロボットベース20の中心に配置され、そのz軸が、旋回胴22の旋回軸に一致するように、ロボット12に対して設定されている。
【0016】
一方、ツール34には、ツール座標系C2が設定されている。ツール座標系C2は、ロボット座標系C1におけるツール34(すなわち、エンドエフェクタ28)の位置及び姿勢を制御するための制御座標系である。本実施形態においては、ツール座標系C2は、その原点が、ツール34の先端点に配置され、そのz軸が軸線Aに一致するように、ツール34に対して設定されている。
【0017】
ツール34を移動させるとき、制御装置18は、ロボット座標系C1においてツール座標系C2を設定し、設定したツール座標系C2によって表される位置及び姿勢にツール34を配置させるように、ロボット12の各サーボモータ35を制御する。こうして、制御装置18は、ロボット座標系C1における任意の位置及び姿勢にツール34を位置決めできる。
【0018】
力センサ14は、ロボット12の作業(すなわち、バリ取り)中にワークWからツール34に加えられる力Fを検出する。例えば、力センサ14は、円筒状の本体部と、該本体部に設けられた複数の歪ゲージを有する6軸力覚センサである。本実施形態においては、力センサ14は、手首部26とエンドエフェクタ28(具体的には、ツール駆動部36)との間に介挿されている。
【0019】
視覚センサ16は、例えば、2次元カメラ又は3次元視覚センサであって、光学系(コリメートレンズ、フォーカスレンズ等)、及び撮像センサ(CCD、CMOS等)等を有する。視覚センサ16は、物体を撮像し、撮像した画像データを制御装置18へ送信する。視覚センサ16は、エンドエフェクタ28に対して所定の位置に固定されている。
【0020】
視覚センサ16には、センサ座標系C3が設定されている。センサ座標系C3は、視覚センサ16が撮像した画像データの各画素の座標を規定する。本実施形態においては、センサ座標系C3は、その原点が、視覚センサ16の撮像センサの受光面の中心に配置され、そのx軸及びy軸が、該撮像センサの横方向及び縦方向とそれぞれ平行に配置され、且つ、そのz軸が視覚センサ16の光軸Oに一致するように、該視覚センサ16に対して設定される。
【0021】
センサ座標系C3とツール座標系C2との位置関係は、キャリブレーションにより既知とされている。よって、視覚センサ16が撮像した画像データのセンサ座標系C3の座標は、キャリブレーションにより得られた変換行列M1を介して、ツール座標系C2の座標に変換することができる。
【0022】
また、ツール座標系C2の座標は、ロボット座標系C1における該ツール座標系C2の位置及び姿勢(すなわち、原点の座標及び各軸の方向)に応じて定められる既知の変換行列M2を介して、ロボット座標系C1の座標に変換可能となっている。よって、センサ座標系C3の座標は、変換行列M1及びM2を介して、ロボット座標系C1の座標に変換可能である。こうして、視覚センサ16は、制御座標系(ロボット座標系C1、ツール座標系C2)に対して既知の位置関係に配置されている。
【0023】
制御装置18は、ロボット12、力センサ14、及び視覚センサ16の動作を制御する。具体的には、制御装置18は、プロセッサ40、記憶部42、I/Oインターフェース44、入力装置46、及び表示装置48を有するコンピュータである。プロセッサ40は、CPU又はGPU等を有し、バス50を介して、記憶部42、I/Oインターフェース44、入力装置46、及び表示装置48と通信可能に接続されている。プロセッサ40は、記憶部42、I/Oインターフェース44、入力装置46、及び表示装置48と通信しつつ、後述する各種機能を実現するための演算処理を行う。
【0024】
記憶部42は、RAM又はROM等を有し、各種データを一時的又は恒久的に記憶する。I/Oインターフェース44は、例えば、イーサネット(登録商標)ポート、USBポート、光ファイバコネクタ、又はHFMI(登録商標)端子等を有し、プロセッサ40からの指令の下、外部機器とデータを無線又は有線で通信する。上述のサーボモータ35、ツール駆動部36、力センサ14、及び視覚センサ16は、I/Oインターフェース44に無線又は有線で通信可能に接続されている。
【0025】
入力装置46は、キーボード、マウス、又はタッチパネル等を有し、オペレータの入力操作を受け付けて、入力された情報をプロセッサ40に送信する。表示装置48は、LCD又は有機ELディスプレイ等を有し、プロセッサ40からの指令の下、各種情報を表示する。
【0026】
図3に、ロボット12の作業対象となるワークWの一例を示す。本実施形態においては、ワークWの頂点Dから頂点Eまで延びるエッジFに対し、バリ取り作業を行うものとする。プロセッサ40は、動作プログラムOPに従ってロボット12を動作させて、ワークWに対して作業を行う。この動作プログラムOPは、記憶部42に予め格納される。
【0027】
以下、ロボットシステム10において動作プログラムOPを生成する方法について説明する。まず、プロセッサ40は、ワークWをモデル化したワークモデルWの図面データ(例えば、3DCADデータ)DDを取得する。例えば、オペレータは、製図装置(CAD装置等)を操作して、ワークモデルWの図面データDDを作成し、該製図装置から制御装置18へ該図面データDDを供給する。
【0028】
プロセッサ40は、I/Oインターフェース44を介して図面データDDを取得し、記憶部42に記憶する。この図面データDDは、ワークWの形状を表す形状データに対応する。したがって、プロセッサ40は、形状データを取得する形状データ取得部102(図2)として機能する。
【0029】
次いで、プロセッサ40は、ワークモデルWにおいて作業対象箇所を指定する入力情報を受け付ける。具体的には、プロセッサ40は、ワークモデルWを表示装置48に表示し、オペレータは、表示装置48に表示されたワークモデルWを視認しつつ、入力装置46を操作して、ワークモデルWにおいて、エッジFをモデル化したエッジモデルFを作業対象箇所として指定する入力情報を入力する。プロセッサ40は、オペレータからの入力情報に応じて、エッジモデルFを、図面データDDにおける作業対象箇所Fとして設定する。
【0030】
次いで、プロセッサ40は、ワークモデルWに設定した作業対象箇所Fに基づいて、ロボット座標系C1における作業対象箇所Fの位置を取得する。ここで、本実施形態においては、実空間において、ワークWの作業対象箇所(エッジ)Fがロボット座標系C1のx軸に平行に延在するように、該ワークWがロボット座標系C1における既知の設置位置に位置決めされる。プロセッサ40は、ロボット座標系C1における設置位置データとワークモデルWとから、ロボット座標系C1における作業対象箇所Fの位置PFMのデータ(具体的には、座標)を取得できる。
【0031】
次いで、プロセッサ40は、視覚センサ16を動作させて、実物のワークWの作業対象箇所(すなわち、エッジ)Fを撮像する。具体的には、プロセッサ40は、取得したロボット座標系C1の位置PFMに基づいてロボット12を動作させ、視覚センサ16を、作業対象箇所Fを視野に収めることができる撮像位置に位置決めする。
【0032】
次いで、プロセッサ40は、視覚センサ16を動作させてワークWを撮像する。このときに視覚センサ16が撮像した画像データIDには、作業対象箇所Fが、作業対象箇所画像IDとして写ることになる。視覚センサ16が撮像した画像データIDは、ワークWの形状を表す形状データに対応する。
【0033】
プロセッサ40は、形状データ取得部102として機能して、視覚センサ16から画像データIDを取得する。次いで、プロセッサ40は、画像データIDを解析して該画像データIDに写る特徴点を抽出し、該画像データIDに写る作業対象箇所画像IDを特定する。
【0034】
次いで、プロセッサ40は、上述変換行列M1及びM2を用いて、作業対象箇所画像IDのセンサ座標系C3の座標をロボット座標系C1に変換し、ロボット座標系C1における作業対象箇所Fの位置PFIのデータ(具体的には、座標)を取得する。このように、本実施形態においては、プロセッサ40は、画像データIDに基づいて、制御座標系(ロボット座標系C1)における作業対象箇所Fの位置PFIを取得する位置取得部104(図2)として機能する。
【0035】
ここで、プロセッサ40が画像データIDに基づいて取得した作業対象箇所Fの位置PFIと、実空間に設置されたワークWの作業対象箇所Fの位置との間で、誤差が生じる場合がある。この誤差について、図4を参照して説明する。図4中の点線は、ロボット座標系C1における実際のワークWの位置を模式的に示している。一方、図4中の実線Fは、ロボット座標系C1において、画像データIDに基づいて取得された位置PFIにある作業対象箇所Fを示している。
【0036】
図4に示すように、画像データIDに基づいて取得された作業対象箇所Fの終端Eと、実際のワークWの作業対象箇所Fの終端(すなわち、頂点)Eとは、誤差δだけ互いからずれている。このような誤差は、ロボット12が視覚センサ16を撮像位置に配置したときの位置決め精度、視覚センサ16の検出精度、画像データIDの解像度、実物のワークWとワークモデルWとの寸法誤差、又は、実空間におけるワークWの設置位置の誤差等に起因して、生じ得る。
【0037】
次いで、プロセッサ40は、取得した位置PFIに基づいて、ワークWに対する作業のためにロボット12(具体的には、ツール34の先端点)を順に位置決めすべき複数の目標位置TPを設定する。具体的には、プロセッサ40は、ロボット座標系C1において、作業対象箇所Fの位置PFIに対応させる(例えば、位置PFIに一致させるか、又は、位置PFIから所定の距離だけ離隔させる)ように、複数の目標位置TP(n=1,2,3,・・・,m-2,m-1,m)を、作業対象箇所Fに沿って自動的に設定する。
【0038】
このように設定された目標位置TP図5に模式的に示す。ここで、プロセッサ40は、ロボット座標系C1において、複数の目標位置TPのうち、作業時にロボット12を最後に位置決めすべき最後の目標位置TPを、作業対象箇所Fの終端Eに対応(一致又は所定の距離だけ離隔)して設定する。換言すれば、最後の目標位置TPは、画像データIDにおける作業対象箇所F(すなわち、作業対象箇所画像ID)の終端Eに対応して設定されている。
【0039】
このように、本実施形態においては、プロセッサ40は、形状データ(図面データDD、画像データID)に基づいて目標位置TPを設定する目標位置設定部106(図2)として機能する。プロセッサ40は、設定した各々の目標位置TPのロボット座標系C1における位置データ(座標)を記憶部42に記憶する。
【0040】
ここで、仮に、プロセッサ40が、上述のように設定した目標位置TPが規定された動作プログラムを生成し、該動作プログラムに従ってロボット12に作業を実行させた場合、ロボット12が最後の目標位置TPに到達したときに作業を終了させることになる。この場合、最後の目標位置TPが実際のワークWの頂点Eから誤差δだけずれているので、実際の作業対象箇所Fのうち、終端Eの近傍部分が未作業となってしまう可能性がある。
【0041】
このような事態を避けるために、本実施形態においては、プロセッサ40は、設定した最後の目標位置TPから、所定の延長方向EDへ所定の距離Δだけ離隔した位置に、追加目標位置TPを自動で設定する。具体的には、プロセッサ40は、まず、延長方向EDを設定する。一例として、プロセッサ40は、画像データIDを解析することによって、作業対象箇所画像IDの、終点E近傍での延在方向を特定する。プロセッサ40は、特定した作業対象箇所画像IDの延在方向を、延長方向EDとして設定する。
【0042】
他の例として、プロセッサ40は、ワークモデルWの図面データDDを参照し、該ワークモデルWをロボット座標系C1における既知の設置位置に配置したときのエッジモデルFの延在方向を、延長方向EDとして設定する。このように、これらの例の場合、プロセッサ40は、形状データ(画像データID、図面データDD)に基づいて延長方向EDを設定している。
【0043】
さらに他の例として、プロセッサ40は、設定した最後の目標位置TPと、該最後の目標位置TPよりも前の目標位置TP(n<m)とに基づいて、延長方向EDを設定してもよい。例えば、プロセッサ40は、最後の目標位置TPの直前の目標位置TPm-1から該最後の目標位置TPまでのベクトルVD1を求める。
【0044】
プロセッサ40は、該ベクトルVD1の方向を、延長方向EDとして設定する。この例の場合、プロセッサ40は、目標位置TPに基づいて、延長方向EDを設定している。このように、本実施形態においては、プロセッサ40は、形状データ(画像データID、図面データDD)又は目標位置TPに基づいて延長方向EDを設定する方向設定部108(図2)として機能する。
【0045】
次いで、プロセッサ40は、ロボット座標系C1において、最後の目標位置TPから、設定した延長方向EDへ距離Δだけ離隔した位置に追加目標位置TPを自動で設定する。この距離Δは、オペレータによって予め定められ、記憶部42に記憶される。プロセッサ40は、設定した追加目標位置TPのロボット座標系C1における位置データ(座標)を、記憶部42に記憶する。このように、プロセッサ40は、追加目標位置TPを設定する追加目標位置設定部110(図2)として機能する。
【0046】
次いで、プロセッサ40は、複数の目標位置TP(n=1~m)の位置データと、追加目標位置TPの位置データとを用いて、これら目標位置TP及び追加目標位置TPが規定された動作プログラムOPを生成する。動作プログラムOPは、作業のための一連の動作をロボット12に実行させるコンピュータプログラムである。
【0047】
動作プログラムOPには、目標位置TP及び追加目標位置TPの位置データ、目標位置TPへ位置決めするための命令文、2つの目標位置TP及びTPn+1の間のロボット12(具体的には、ツール34)の移動速度及び移動経路のデータが、規定されている。このように、本実施形態においては、プロセッサ40は、動作プログラムOPを生成するプログラム生成部112(図2)として機能する。
【0048】
以上のように、プロセッサ40は、形状データ取得部102、位置取得部104、目標位置設定部106、方向設定部108、追加目標位置設定部110、及びプログラム生成部112として機能して、動作プログラムOPを生成する。よって、形状データ取得部102、位置取得部104、目標位置設定部106、方向設定部108、追加目標位置設定部110、及びプログラム生成部112は、動作プログラムOPを生成する装置100(図2)を構成する。
【0049】
次に、図6を参照して、制御装置18が実行する動作フローの一例について説明する。図6に示すフローは、プロセッサ40が、オペレータ、上位コントローラ、又はコンピュータプログラム(例えば、上述の動作プログラムOP)から作業開始指令を受け付けたときに、開始する。
【0050】
ステップS1において、プロセッサ40は、ワークWに対する作業(バリ取り)を開始する。具体的には、プロセッサ40は、動作プログラムOPに従ってロボット12を制御し、ツール駆動部36によってツール34を回転駆動させ、該ツール34をワークWに対して押し付けつつ、該ツール34(又は、ツール座標系C2の原点)を目標位置TP、TP、TP・・・,TPの順に位置決めする動作を開始する。こうして、作業対象箇所Fに沿ってツール34でワークWを削ってバリを除去する作業が開始される。このように、本実施形態においては、プロセッサ40は、ロボット12を制御するロボット制御部52(図2)として機能する。
【0051】
ステップS2において、プロセッサ40は、倣い制御を開始する。具体的には、プロセッサ40は、力センサ14が連続的(例えば、周期的)に検出する力Fのデータを、該力センサ14から連続的に取得する。このように、本実施形態においては、プロセッサ40は、力Fのデータを取得する力取得部54(図2)として機能する。
【0052】
そして、プロセッサ40は、取得した力Fに基づいて、ロボット12がツール34をワークWに対して押し付ける押付力Fを予め定めた目標値Fに制御する。例えば、プロセッサ40は、取得した力Fの大きさが、目標値Fを基準として予め定めた範囲[Fth1,Fth2]内にある(Fth1≦F≦Fth2)か否かを判定する。この範囲[Fth1,Fth2]を画定する閾値Fth1及びFth2は、例えば、Fth1≦F≦Fth2を満たす値として、オペレータによって予め定められ、記憶部42に記憶される。
【0053】
プロセッサ40は、Fth1>Fである場合は、押付力Fが目標値Fよりも過度に小さいと判断し、ロボット12を動作させてツール34を、ワークWへ向かう方向(例えば、ロボット座標系C1のz軸マイナス方向)へ変位させ、ワークWに作用する押付力Fを増大させる。
【0054】
また、プロセッサ40は、F>Fth2である場合は、押付力Fが目標値Fよりも過度に大きいと判断し、ロボット12を動作させてツール34をワークWから離反する方向(例えば、ロボット座標系C1のz軸プラス方向)へ変位させ、ワークWに作用する押付力Fを減少させる。こうして、プロセッサ40は、押付力Fを目標値Fに制御する倣い制御を実行する。
【0055】
ステップS3において、プロセッサ40は、ロボット12が最後の目標位置TPに到達したか否かを判定する。具体的には、プロセッサ40は、ロボット12の各サーボモータ35に設けられた回転検出器(エンコーダ、又はホール素子等)から、該サーボモータ35の回転位置(又は、回転角度)を示す位置フィードバックFBを受信する。
【0056】
プロセッサ40は、各サーボモータ35からの位置フィードバックFBに基づいて、ロボット座標系C1におけるツール34(又は、ツール座標系C2の原点)の位置Pを求めることができる。このステップS3において、プロセッサ40は、求めたツール34の位置Pが、最後の目標位置TPに一致したか(又は、該最後の目標位置TPを基準として定められた範囲内となったか)否かを判定する。
【0057】
プロセッサ40は、位置Pが最後の目標位置TPに一致した(すなわち、YES)と判定した場合は、ステップS4へ進む一方、位置Pが最後の目標位置TPに達していない(すなわち、NO)と判定した場合は、ステップS3をループする。ステップS3でYESと判定した後、プロセッサ40は、ロボット12によって、ワークWに押し当てたツール34を、最後の目標位置TPを超えて追加目標位置TPへ向かって移動させることで、作業を継続させる。
【0058】
ステップS4において、プロセッサ40は、直近に力センサ14から取得した力Fの大きさが閾値Fth0以下となったか否かを判定する。この閾値Fth0は、例えばゼロに近い値(Fth1>Fth0≒0)としてオペレータによって予め定められ、記憶部42に記憶される。
【0059】
プロセッサ40は、力Fが閾値Fth0以下になった(すなわち、YES)と判定した場合は、ステップS6へ進む一方、力Fが閾値Fth0よりも大きい(すなわち、NO)と判定した場合は、ステップS5へ進む。このように、本実施形態においては、ロボット12が最後の目標位置TPを超えて作業を継続している間に力Fが閾値Fth0以下になったか否かを判定する力判定部56(図2)として機能する。
【0060】
ステップS5において、プロセッサ40は、ロボット12が追加目標位置TPに到達したか否かを判定する。具体的には、プロセッサ40は、位置フィードバックFBから求めた上述の位置Pが追加目標位置TPに一致したか(又は、該追加目標位置TPを基準として定められた範囲内となったか)否かを判定する。
【0061】
プロセッサ40は、位置Pが追加目標位置TPに一致した(すなわち、YES)と判定した場合は、ステップS6へ進む一方、位置Pが追加目標位置TPに達していない(すなわち、NO)と判定した場合は、ステップS4へ戻る。こうして、プロセッサ40は、ステップS4又はS5でYESと判定するまで、ステップS4及びS5をループし、作業を継続する。
【0062】
ステップS6において、プロセッサ40は、作業を終了する。具体的には、プロセッサ40は、ロボット12によってツール34を、ワークWから離反させるように所定の逃げ方向(例えば、ロボット座標系C1のz軸プラス方向)へ移動させるとともに、ツール駆動部36の動作を停止させることで該ツール34の回転を停止する。こうして、プロセッサ40は、ワークWに対する作業を終了する。
【0063】
このように、本実施形態においては、プロセッサ40は、ロボット12が最後の目標位置TPに到達した後、該最後の目標位置TPを超えて作業を継続させている。この構成によれば、仮に上記のような誤差δが生じていたとしても、作業対象箇所Fの終端Eまで作業を完遂し、該終端Eの近傍部分が未作業となってしまうのを防止できる。これにより、ワークWの仕上がり品質を向上させることができる。
【0064】
また、本実施形態においては、プロセッサ40は、目標位置TPに加えて追加目標位置TPが規定された動作プログラムOPに従ってロボット12を動作させて、該ロボット12に追加目標位置TPまで作業を継続させている。この構成によれば、プロセッサ40は、ロボット12によって作業対象箇所Fの終端Eまで、確実且つ迅速に作業を完遂できる。
【0065】
また、本実施形態においては、上述のステップS4で力Fが閾値Fth0以下になったか否かを判定し、YESと判定した場合に作業を終了させている(ステップS6)。この機能に関し、最後の目標位置TPから追加目標位置TPまで作業を実行している間、ツール34が、ワークWの作業対象箇所Fの終端Eを、ロボット座標系C1のx軸プラス方向の側へ超えてしまう場合がある。この場合、ツール34がワークWから離反するので、ワークWからツール34に加えられる力Fが急激に小さくなる。
【0066】
本実施形態によれば、ツール34が終端Eを超えたことを、力Fを監視することで検知し、ツール34が終端Eを超えた蓋然性が高い場合(つまり、ステップS4でYESと判定した場合)は作業を終了させて、ロボット12を退避させている。これにより、ロボット12が終端Eを超えて移動して、該ロボット12の周囲の環境物と干渉してしまう可能性を低減できるとともに、作業を迅速に終了させることができるので、作業のサイクルタイムを縮減できる。
【0067】
また、本実施形態においては、プロセッサ40は、形状データ取得部102、目標位置設定部106、追加目標位置設定部110、及びプログラム生成部112を備える装置100の機能を担い、動作プログラムOPを生成している。この装置100によれば、形状データ(図面データDD、画像データID)から、目標位置TP及び追加目標位置TPが規定された動作プログラムOPを、自動で生成できる。
【0068】
また、本実施形態においては、装置100は、画像データIDに基づいて制御座標系(ロボット座標系C1)における作業対象箇所Fの位置PFIを取得する位置取得部104をさらに備え、取得した該位置PFIに基づいて複数の目標位置TPを設定している。この構成によれば、複数の目標位置TPを、制御座標系(ロボット座標系C1)に実際に設置されたワークWの作業対象箇所Fに対し、ある程度正確に対応するように設定でき、これにより、上記の誤差δが過大となってしまうのを防止できる。
【0069】
また、本実施形態においては、装置100は、形状データ(図面データDD、画像データID)又は目標位置TPに基づいて延長方向EDを設定する方向設定部108をさらに備えている。この構成によれば、作業の延長方向EDを、作業対象箇所Fの延在方向に概ね沿うように設定できるので、終端Eまで作業対象箇所Fに沿って正確に作業を継続できる。
【0070】
次に、図7を参照して、制御装置18が実行する動作フローの他の例について説明する。図7に示すフローは、図6に示すフローと、ステップS7及びS8をさらに有する点で相違する。具体的には、プロセッサ40は、ステップS4でYESと判定したとき、ステップS7において、上述のステップS2で開始した倣い制御を終了する。その結果、プロセッサ40は、ツール34を、ワークWに対して進退(例えば、ロボット座標系C1のz軸方向に変位)させることなく、追加目標位置TPへ向かって移動させる。
【0071】
ステップS8において、プロセッサ40は、上述のステップS5と同様に、ロボット12が追加目標位置TPに到達したか否かを判定し、YESと判定した場合はステップS6へ進む一方、NOと判定した場合はステップS8をループする。このように、本実施形態によれば、ロボット12が最後の目標位置TPを超えて作業を継続している間に力Fが閾値Fth0以下になった(すなわち、ツール34が終端Eを超えた)場合に、倣い制御を終了している。これにより、プロセッサ40が不要の倣い制御を実行することを防止し、以って、プロセッサ40の演算量を削減できるとともに、ロボット12が周囲の環境物と干渉してしまう可能性を低減できる。
【0072】
次に、図8を参照して、制御装置18の他の機能について説明する。本実施形態においては、制御装置18は、上述の力判定部56の代わりに、移動量取得部58及び移動判定部60の機能を有する。以下、図9を参照して、図8に示す制御装置18が実行する動作フローの一例について説明する。なお、図9に示すフローにおいて、図6に示すフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。
【0073】
図9に示すフローの開始後、プロセッサ40は、上述のステップS1~S3を実行する。ここで、本実施形態においては、プロセッサ40は、ステップS3でYESと判定した後、ワークWに対してツール34を押し付ける方向PD(例えば、ロボット座標系C1のz軸マイナス方向)へのロボット12(具体的には、ツール34)の移動量ξを連続的(例えば、周期的)に取得する。
【0074】
具体的には、プロセッサ40は、各サーボモータ35からの位置フィードバックFBに基づいて上述の位置Pを連続的に取得し、該位置Pから、方向PDへのロボット12(エンドエフェクタ28)の移動量ξを求める。こうして、プロセッサ40は、ロボット12が作業を実行している間、移動量ξを取得し、記憶部42に記憶する。したがって、プロセッサ40は、移動量ξを取得する移動量取得部58(図8)として機能する。なお、プロセッサ40は、移動量ξを取得する動作を、ステップS1で作業を開始したときに、開始してもよい。
【0075】
ステップS9において、プロセッサ40は、直近に取得した移動量ξが、予め定めた閾値ξthを超えたか否かを判定する。この閾値ξthは、オペレータによって予め定められ、記憶部42に記憶される。プロセッサ40は、移動量ξが閾値ξthを超えた(ξ≧ξth)場合はYESと判定し、ステップS6へ進む一方、移動量ξが閾値ξthを超えていない(ξ<ξth)場合はNOと判定し、ステップS5へ進む。このように、プロセッサ40は、ロボット12が最後の目標位置TPを超えて作業を継続している間、移動量ξが閾値ξthを超えたか否かを判定する移動判定部60(図8)として機能する。
【0076】
以上のように、本実施形態においては、プロセッサ40は、上述のステップS9で移動量ξが閾値ξthを超えたと判定した場合に作業を終了させている(ステップS6)。この機能に関し、最後の目標位置TPから追加目標位置TPまで作業を実行している間、ツール34が終端Eを超えると、ツール34が方向PD(例えば、ロボット座標系C1のz軸マイナス方向)へ急激に変位し、これにより、方向PDへの移動量ξが増大する。
【0077】
本実施形態によれば、ツール34が終端Eを超えたことを、移動量ξを監視することで検知し、ツール34が終端Eを超えた蓋然性が高い場合(つまり、ステップS9でYESと判定した場合)は作業を終了させ、ロボット12を退避させている。これにより、ロボット12が終端Eを超えて移動して、該ロボット12の周囲の環境物と干渉してしまう可能性を低減できるとともに、作業を迅速に終了させることができるので、作業のサイクルタイムを縮減できる。
【0078】
次に、図10を参照して、図8に示す制御装置18が実行する動作フローの他の例について説明する。図10に示すフローは、図9に示すフローと、ステップS7及びS8をさらに有する点で相違する。具体的には、プロセッサ40は、ステップS9でYESと判定したとき、上述のステップS7を実行して倣い制御を終了し、次いで、ステップS8を実行する。本実施形態によれば、プロセッサ40が不要の倣い制御を実行することを防止でき、以って、プロセッサ40の演算量を削減できるとともに、ロボット12が周囲の環境物と干渉してしまう可能性を低減できる。
【0079】
なお、図8に示す実施形態において、プロセッサ40は、移動量ξの代わりに(又は加えて)、方向PDへのロボット12(エンドエフェクタ28)の速度又は加速度を取得してもよい。そして、プロセッサ40は、ステップS9において、取得した速度又は加速度が、予め定めた閾値を超えたか否かを判定してもよい。ツール34が終端Eを超えた場合、ロボット12の速度又は加速度も増大するので、速度又は加速度を監視することで、
ツール34が終端Eを超えたことを検知できる。
【0080】
なお、上述の実施形態においては、ステップS1において、プロセッサ40が、目標位置TP及び追加目標位置TPが規定されている動作プログラムOPに従って作業を実行する場合について述べた。しかしながら、これに限らず、プロセッサ40は、追加目標位置TPが規定されていない動作プログラムOP’に従って作業を実行してもよい。
【0081】
このような動作フローの例を、図11に示す。例えば、図2に示す制御装置18のプロセッサ40が、図11に示すフローを実行する。なお、図11に示すフローにおいて、図6に示すフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。
【0082】
ステップS1において、プロセッサ40は、動作プログラムOP’に従ってロボット12を制御し、作業を開始する。この動作プログラムOP’には、複数の目標位置TP(n=1,2,3,・・・,m-2,m-1,m)が規定されている一方、上述の追加目標位置TPが規定されていない。その後、プロセッサ40は、ステップS2~S4を実行する。
【0083】
ステップS4でNOと判定したとき、ステップS10において、プロセッサ40は、ロボット12による作業を継続させる。具体的には、プロセッサ40は、まず、延長方向EDを決定する。一例として、プロセッサ40は、上述のステップS3でYESと判定した時点(又は、ステップS4でNOと判定した時点)でのロボット12(ツール34)の移動方向を取得する。
【0084】
例えば、プロセッサ40は、位置フィードバックFBから求められる上述の位置Pに基づいて、該移動方向を取得することができる。プロセッサ40は、求めた移動方向を、延長方向EDとして決定する。代替的には、プロセッサ40は、上述の方向設定部108と同様に、形状データ(画像データID、図面データDD)又は目標位置TPに基づいて延長方向EDを決定してもよい。
【0085】
そして、プロセッサ40は、決定した延長方向EDへロボット12を移動させるとともに、ツール駆動部36によるツール34の回転を継続させ、これにより、ワークWに対する作業を継続させる。そして、プロセッサ40は、ステップS4へ戻る。ここで、ロボット12が最後の目標位置TPに到達したとしても、このときにワークWからツール34に加えられる力Fが閾値Fth0よりも大きい(F>Fth0)場合、ツール34が終端Eを超えておらず、作業対象箇所Fのうち、終端Eの近傍部分が未作業となっている可能性がある。
【0086】
本実施形態においては、ロボット12が最後の目標位置TPに到達した時点(すなわち、ステップS3でYESと判定した時点)で、力Fの大きさに基づいて作業を継続するか否かを判定している。この構成によれば、追加目標位置TPが規定されていない動作プログラムOP’に従って作業を実行したとしても、終端Eまで確実に作業を完遂できる。
【0087】
なお、上述の実施形態においては、装置100が、プロセッサ40によって実行される機能として制御装置18に実装されている場合について述べた。しかしながら、これに限らず、装置100は、制御装置18の外部に設けられてもよい。このような形態を図12に示す。図12に示すロボットシステム70は、上述のロボット12、力センサ14、視覚センサ16、及び制御装置18に加えて、設計支援装置72をさらに備える。
【0088】
設計支援装置72は、CAD装置74、及びCAM装置76を有する。CAD装置74は、オペレータによる操作を受け付けて、ワークモデルWの図面データDDを作成する製図装置である。CAM装置76は、図面データ(3DCADデータ)に基づいてコンピュータプログラムを生成する装置である。
【0089】
本実施形態においては、装置100は、CAM装置76に実装されている。CAM装置76は、CAD装置74から図面データDDを受け付け、形状データ取得部102、位置取得部104、目標位置設定部106、方向設定部108、追加目標位置設定部110、及びプログラム生成部112として機能して動作プログラムOPを生成する。
【0090】
設計支援装置72は、制御装置18のI/Oインターフェース44と通信可能に接続され、制御装置18から、ロボット12の位置データ、及び視覚センサ16が撮像した画像データID等を取得する一方、生成した動作プログラムOPを制御装置18へ送信する。なお、CAD装置74及びCAM装置76は、各々がプロセッサ(CPU、GPU等)及び記憶部(ROM、RAM)を有する別々のコンピュータであってもよいし、共通のプロセッサ及び記憶部を有する1つのコンピュータから構成されてもよい。
【0091】
なお、上述の実施形態においては、プロセッサ40が、形状データとしての画像データIDに基づいて目標位置TPを設定する場合について述べた。しかしながら、これに限らず、プロセッサ40は、形状データとしての図面データDDに基づいて目標位置TPを設定することもできる。
【0092】
例えば、プロセッサ40は、ワークモデルWから取得される上述の位置PFMに基づいて、ロボット座標系C1において目標位置TPを、該位置PFMに対応(例えば、一致又は所定の距離だけ離隔)させるように設定してもよい。この場合、ロボットシステム10、70から視覚センサ16を省略することもできる。
【0093】
また、上述の実施形態においては、力センサ14が、手首部26とエンドエフェクタ28との間に介挿されている場合について述べたが、ロボット12の如何なる部位(例えば、ロボットベース20、下腕部30、上腕部32)に設置されてもよい。また、力センサ14は、6軸力覚センサに限らず、例えば、各サーボモータ35に設けられて該サーボモータ35に掛かるトルクを検出する複数のトルクセンサを有してもよい。プロセッサ40は、該複数のトルクセンサからトルク(力)のデータを取得し、該トルクに基づいてワークWからツール34に加えられる力Fを求めることができる。
【0094】
また、ロボットシステム10、70から力センサ14を省略することもできる。例えば、プロセッサ40は、力取得部54として機能して、各サーボモータ35から電流フィードバック(外乱トルク)FBを取得し、該電流フィードバックFBに基づいて力Fを取得することもできる。
【0095】
また、図2に示す制御装置18から、力取得部54及び力判定部56を省略することもできる。この場合、図6に示すフローからステップS2及びS4が省略されることになる。同様に、図8に示す制御装置18から、力取得部54、移動量取得部58、及び移動判定部60を省略することもできる。この場合、図9に示すフローからステップS2及びS9が省略されることになる。
【0096】
また、上述の装置100から、位置取得部104を省略することもできる。例えば、プロセッサ40は、上述したように図面データDDに基づいて目標位置TPを設定することもできる。この場合、画像データIDから制御座標系における作業対象箇所Fの位置PFIを取得するプロセスを省略できる。
【0097】
また、装置100から、方向設定部108を省略することもできる。例えば、上述の実施形態のように作業対象箇所Fがロボット座標系C1のx軸に平行に延在するように配置されている場合(換言すれば、作業対象箇所Fの延在方向が既知である場合)、延長方向EDは、ロボット座標系C1のx軸プラス方向(既知の延在方向)としてオペレータによって予め定められてもよい。この場合、形状データ又は目標位置TPに基づいて延長方向EDを設定するプロセスを省略できる。
【0098】
また、装置100において、追加目標位置設定部110は、所定の作業条件に応じて、上述の距離Δを変更してもよい。この作業条件は、例えば、ロボット12(具体的には、ツール34)の移動速度及び移動経路、ワークWの仕様(寸法、形状、材料等)、視覚センサ16の仕様(画像データIDの解像度、撮像センサのサイズ等)を含む。
【0099】
一例として、プロセッサ40は、画像データIDの解像度が低い程、距離Δが大きくなるように、該解像度に応じて距離Δを変更してもよい。画像データIDの解像度が低い程、上述の誤差δが大きく成り得るので、該解像度の低さに応じて距離Δを大きくすることによって、作業対象箇所Fで未作業の部分が生じるのをより確実に回避できる。
【0100】
他の例として、プロセッサ40は、ロボット12の移動速度が大きい程、距離Δが小さくなるように、該移動速度に応じて距離Δを変更してもよい。移動速度が大きいと、ロボット12の移動距離が増大し易くなるので、移動速度の大きさに応じて距離Δを小さくすることによって、ツール34が終端Eを超えて作業を継続してしまう可能性を低減できる。
【0101】
また、上述の制御座標系として、ロボット座標系C1及びツール座標系C2に限らず、例えば、ワールド座標系又はワーク座標系が設定され得る。ワールド座標系は、ロボット12の作業セルの3次元空間を規定する座標系であって、ロボット座標系C1は、ワールド座標系において固定される。また。ワーク座標系は、ロボット座標系C1(又はワールド座標系)におけるワークWの位置及び姿勢を規定する座標系である。
【0102】
また、上述の実施形態においては、ロボット12がワークWのバリ取り作業を行う場合について述べたが、本開示の概念は、ロボット12を複数の目的位置TPに位置決めして作業を実行させる、如何なる用途に適用することもできる。例えば、ロボット12は、ワークWの表面を研磨するものであってもよいし、ワークWをレーザ加工(レーザ切断、レーザ溶接)するものであってもよいし、又は、ワークWの表面に塗工するものであってもよい。以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
【符号の説明】
【0103】
10,70 ロボットシステム
12 ロボット
14 力センサ
16 視覚センサ
18 制御装置
40 プロセッサ
42 記憶部
52 ロボット制御部
54 力取得部
56 力判定部
58 移動量取得部
60 移動判定部
100 装置
102 形状データ取得部
104 位置取得部
106 目標位置設定部
108 方向設定部
110 追加目標位置設定部
112 プログラム生成部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12