(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】金型の適正位置からのずれ量を取得する装置、成形システム、方法、及びコンピュータプログラム
(51)【国際特許分類】
B29C 33/30 20060101AFI20240918BHJP
B29C 45/17 20060101ALI20240918BHJP
【FI】
B29C33/30
B29C45/17
(21)【出願番号】P 2020165612
(22)【出願日】2020-09-30
【審査請求日】2023-08-09
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【氏名又は名称】廣瀬 繁樹
(72)【発明者】
【氏名】土肥 由明
【審査官】松林 芳輝
(56)【参考文献】
【文献】特開平06-143297(JP,A)
【文献】特開2018-089850(JP,A)
【文献】特開2014-041145(JP,A)
【文献】特開2008-162102(JP,A)
【文献】特開2009-285951(JP,A)
【文献】特開2005-154201(JP,A)
【文献】国際公開第2011/040150(WO,A1)
【文献】独国特許出願公開第102017128332(DE,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B29C 33/00-33/76
B29C 39/26-39/36
B29C 41/38-41/44
B29C 43/36-43/42
B29C 43/50
B29C 45/00-45/84
B29C 49/48-49/56
B29C 49/70
B29C 51/30-51/40
B29C 51/44
B22D 15/00-17/32
(57)【特許請求の範囲】
【請求項1】
成形機に設置される金型の適正位置からのずれ量を取得する装置であって、
前記金型は、前記成形機に対し予め定められた前記適正位置に配置されたときに、該金型の中心軸と直交する第1軸の方向へ延在するように配置される第1の面を有し、
前記装置は、
前記金型の設置位置が前記適正位置から変位したときに、前記第1軸の方向へ互いに離隔した位置で前記第1の面上に定めた第1参照点と第2参照点との、前記中心軸及び前記第1軸と直交する第2軸の方向の第1距離を取得する第1距離取得部と、
前記第1距離取得部が取得した前記第1距離を用いて、前記適正位置に対する前記金型の前記中心軸周りの第1の前記ずれ量を取得するずれ量取得部と、を備える、装置。
【請求項2】
前記第1参照点と前記第2参照点との前記第1軸の方向の第2距離を取得する第2距離取得部をさらに備え、
前記ずれ量取得部は、前記第1距離及び前記第2距離を既知の数式に適用することによって、前記第1のずれ量を求める、請求項1に記載の装置。
【請求項3】
前記金型に対し進退可能なロボットと該金型との接触力を検出値として検出するセンサが、該ロボット又は該金型に設けられ、
前記第1距離取得部は、前記ロボットが前記第1参照点をタッチアップしたときに前記センサが検出した第1の前記検出値に基づいて、前記第1距離を取得する、請求項1又は2に記載の装置。
【請求項4】
前記金型に対し進退可能なロボットと該金型との距離を検出値として検出するセンサが、該ロボット又は該金型に設けられ、
前記第1距離取得部は、前記センサが前記ロボットと前記第1参照点との前記距離を検出した第1の前記検出値に基づいて、前記第1距離を取得する、請求項1又は2に記載の装置。
【請求項5】
前記第1距離取得部は、前記第1の検出値が予め定めた基準値となったときの前記ロボットの位置データに基づいて、前記第1距離を求める、請求項3又は4に記載の装置。
【請求項6】
前記第1距離取得部は、前記設置位置の変位後に、前記適正位置に配置された前記金型を基準として予め定めた基準位置へ前記ロボットを移動させたときに前記センサが検出した前記第1の検出値に基づいて、前記第1距離を取得する、請求項3又は4に記載の装置。
【請求項7】
前記第1距離取得部は、前記センサが前記第2参照点に関して検出した第2の前記検出値にさらに基づいて、前記第1距離を取得する、請求項3~6のいずれか1項に記載の装置。
【請求項8】
前記第1の検出値に基づいて前記第1参照点の位置を取得するとともに、前記第2の検出値に基づいて前記第2参照点の位置を取得する位置取得部をさらに備え、
前記第1距離取得部は、前記第1参照点の位置と前記第2参照点の位置とを用いて、前記第1距離を取得する、請求項7に記載の装置。
【請求項9】
前記金型は、前記適正位置に配置されたときに前記第2軸の方向へ延在するように配置される第2の面をさらに有し、
前記位置取得部は、前記設置位置の変位後の前記第2の面上に定めた第3参照点に関して前記センサが検出した第3の前記検出値に基づいて、該第3参照点の位置をさらに取得し、
前記ずれ量取得部は、前記第1参照点の位置及び前記第2参照点の位置のいずれか一方と、前記第3参照点の位置とに基づいて、前記適正位置に対する前記金型の、前記中心軸と直交する方向の第2の前記ずれ量をさらに取得する、請求項8に記載の装置。
【請求項10】
前記金型は、前記中心軸と直交する第3の面をさらに有し、
前記位置取得部は、前記設置位置の変位後の前記第3の面上に定めた第4参照点に関して前記センサが検出した第4の前記検出値に基づいて、該第4参照点の位置をさらに取得し、
前記ずれ量取得部は、前記第4参照点の位置に基づいて、前記適正位置に対する前記金型の、前記中心軸の方向の第3の前記ずれ量をさらに取得する、請求項8又は9に記載の装置。
【請求項11】
金型が設置される成形機と、
前記金型に対して進退可能に設けられ、前記成形機が前記金型で成形した成形品に対して所定の作業を行うロボットと、
請求項1~10のいずれか1項に記載の装置と、を備える、成形システム。
【請求項12】
前記装置は、前記ずれ量取得部が取得した前記ずれ量に基づいて、前記ロボットが前記所定の作業を行うときの作業位置を補正する補正部をさらに備える、請求項11に記載の成形システム。
【請求項13】
成形機に設置される金型の適正位置からのずれ量を取得する方法であって、
前記金型は、前記成形機に対し予め定められた前記適正位置に配置されたときに、該金型の中心軸と直交する第1軸の方向へ延在するように配置される第1の面を有し、
プロセッサが、
前記金型の設置位置が前記適正位置から変位したときに、前記第1軸の方向へ互いに離隔した位置で前記第1の面上に定めた第1参照点と第2参照点との、前記中心軸及び前記第1軸と直交する第2軸の方向の第1距離を取得し、
取得した前記第1距離を用いて、前記適正位置に対する前記金型の前記中心軸周りの第1の前記ずれ量を取得する、方法。
【請求項14】
請求項13に記載の方法を前記プロセッサに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、金型の適正位置からのずれ量を取得する装置、成形システム、方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
成形機に設置される金型の適正位置からのずれ量を取得する成形システムが知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、成形機における金型の適正位置からのずれ量を、より簡単に取得する技術が求められている。
【課題を解決するための手段】
【0005】
本開示の一態様において、金型は、成形機に対し予め定められた適正位置に配置されたときに、該金型の中心軸と直交する第1軸の方向へ延在するように配置される第1の面を有する。成形機に設置される金型の適正位置からのずれ量を取得する装置は、金型の設置位置が適正位置から変位したときに、第1軸の方向へ互いに離隔した位置で第1の面上に定めた第1参照点と第2参照点との、中心軸及び第1軸と直交する第2軸の方向の第1距離を取得する第1距離取得部と、第1距離取得部が取得した第1距離を用いて、適正位置に対する金型の中心軸周りの第1のずれ量を取得するずれ量取得部とを備える。
【0006】
本開示の他の態様において、成形機に設置される金型の適正位置からのずれ量を取得する方法は、プロセッサが、金型の設置位置が適正位置から変位したときに、第1軸の方向へ互いに離隔した位置で第1の面上に定めた第1参照点と第2参照点との、中心軸及び第1軸と直交する第2軸の方向の第1距離を取得し、第1距離取得部が取得した第1距離を用いて、適正位置に対する金型の中心軸周りの第1のずれ量を取得する。
【発明の効果】
【0007】
本開示によれば、ずれ量を取得するのに要する工数を削減できるので、該ずれ量を、より簡単且つ迅速に取得できる。
【図面の簡単な説明】
【0008】
【
図2】
図1に示す成形システムのブロック図である。
【
図3】
図1に示すエンドエフェクタの拡大図である。
【
図5】金型の設置位置が適正位置から変位した状態を示す。
【
図6】
図2に示す成形システムにおいて、金型の適正位置を示す基準データを取得するフローの一例を示すフローチャートである。
【
図7】
図6中のステップS1の終了時の状態を示す。
【
図8】
図6中のステップS4でYESと判定したときの状態を示す。
【
図9】
図2に示す成形システムにおいて、金型の適正位置からのずれ量を取得するフローの一例を示すフローチャートである。
【
図10】
図9中のステップS4でYESと判定したときの状態を示す。
【
図11】
図2に示す成形システムにおいて、金型の適正位置からのずれ量を取得するフローの他の例を示すフローチャートである。
【
図12】他の実施形態に係る成形システムのブロック図である。
【
図13】
図2に示す成形システムにおいて、
図11中のステップS11の終了時の状態を示す。
【
図14】
図2に示す成形システムの他の機能を示すブロック図である。
【
図15】金型の設置位置が適正位置から変位した状態を示す。
【
図16】
図14に示す成形システムにおいて、金型の適正位置からのずれ量を取得するフローの一例を示すフローチャートである。
【
図17】
図16中のステップS21、S22及びS25のフローの一例を示すフローチャートである。
【
図18】ステップS25におけるステップS31の終了時の状態を示す。
【
図19】ステップS25におけるステップS34でYESと判定したときの状態を示す。
【
図20】
図2に示す成形システムにおいて、金型の適正位置からのずれ量を取得するフローの他の例を示すフローチャートである。
【
図21】
図20中のステップS21’及びS22’のフローの一例を示すフローチャートである。
【
図22】
図2に示す成形システムにおいて、適正位置に対する金型の、中心軸の方向のずれ量を取得する方法を説明するための図である。
【
図23】
図2及び
図12に示す成形システムのさらに他の機能を示すブロック図である。
【
図24】
図23に示す成形システムにおいて、適正位置に対する金型の、中心軸の方向のずれ量を取得する方法を説明するための図である。
【
図25】
図23に示す成形システムの動作フローの一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。また、以下の説明においては、図中のロボット座標系C1を方向の基準とし、便宜上、ロボット座標系C1のx軸プラス方向を右方とし、y軸プラス方向を前方とし、z軸プラス方向を上方として言及する。
【0010】
まず、
図1及び
図2を参照して、一実施形態に係る成形システム10について説明する。成形システム10は、成形機12、ロボット14、制御装置16、及びセンサ17(
図2)を備える。成形機12は、例えば射出成形機又はダイキャスト成形機であって、金型設置部18と、該金型設置部18に着脱可能に設置される金型20とを有する。
【0011】
本実施形態においては、金型20は、中心軸A1を有する略四角柱状の部材であって、左面22、右面24、下面26、上面28、及び後面30を有する。左面22、右面24、下面26、上面28、及び後面30の各々は、略平面である。左面22及び右面24は互いに平行に対向配置されている。
【0012】
下面26及び上面28は、互いに平行に対向配置され、左面22及び右面24と直交する。後面30は、中心軸A1と直交するとともに、左面22、右面24、下面26及び上面28と直交する。金型20の中央部には、キャビティ32が形成されている。このキャビティ32内に樹脂等の材料が流し込まれ、成形機12は、該キャビティ32内で材料を成形することによって、成形品を製造する。
【0013】
ロボット14は、成形機12が金型20で成形した成形品に対して所定の作業(例えば、成形品を取り出す作業、又は成形品にインサート部品を挿入する作業)を行う。本実施形態においては、ロボット14は、垂直多関節ロボットであって、ロボットベース34、旋回胴36、ロボットアーム38、手首部40、及びエンドエフェクタ42を有する。ロボットベース34は、作業セルの床の上に固定されている。旋回胴36は、鉛直軸周りに旋回可能となるように、ロボットベース34に設けられている。
【0014】
ロボットアーム38は、旋回胴36に水平軸周りに回動可能に設けられた下腕部44と、該下腕部44の先端に回動可能に設けられた上腕部46とを有する。手首部40は、上腕部46の先端部に回動可能に設けられ、エンドエフェクタ42を手首軸A2周りに回動させる。
【0015】
エンドエフェクタ42は、手首部40の先端部(いわゆる手首フランジ)に着脱可能に取り付けられる。本実施形態においては、エンドエフェクタ42は、物品を把持可能なロボットハンドである。一例として、エンドエフェクタ42は、物品を吸着する吸着部(負圧発生装置、電磁石、又は吸盤等)を有し、物品を吸着面で吸着して把持する。他の例として、エンドエフェクタ42は、開閉可能な複数の爪を有し、該爪によって物品を挟持して把持する。
【0016】
ロボット14の各構成要素(ロボットベース34、旋回胴36、下腕部44、上腕部46、手首部40)には、サーボモータ48(
図2)が内蔵されている。これらサーボモータ48は、制御装置16からの指令に応じて、ロボット14の各可動要素(旋回胴36、下腕部44、上腕部46、手首部40)を駆動軸周りに回動させる。その結果、ロボット14は、エンドエフェクタ42を金型20に進退させ、金型20で成形した成形品に対して所定の作業を行うことができる。
【0017】
センサ17は、ロボット14がエンドエフェクタ42で金型20をタッチアップしたときの接触力CFを検出値αとして検出する。一例として、センサ17は、ロボットベース34、旋回胴36、ロボットアーム38又は手首部40に設けられた6軸力覚センサ17Aを有する。6軸力覚センサ17Aは、複数の歪ゲージを有し、エンドエフェクタ42に加えられた外力の大きさ及び方向を検出する。
【0018】
ロボット14がエンドエフェクタ42で金型20を接触力CFでタッチアップしたとき、該接触力の反力として、金型20からエンドエフェクタ42へ、該接触力CFに応じた外力が加えられる。6軸力覚センサ17Aは、接触力CFを、エンドエフェクタ42に加えられた外力として検出することができる。6軸力覚センサ17Aの検出値αは、エンドエフェクタ42に加えられた外力の大きさ、又は歪ゲージの出力値を含む。
【0019】
他の例として、センサ17は、ロボット14に内蔵され、サーボモータ48からのフィードバック値FB(フィードバック電流、負荷トルク等)を検出するフィードバックセンサ17Bを有する。具体的には、ロボット14が金型20を接触力CFでタッチアップしたときに、上述のように金型20からエンドエフェクタ42へ外力が加えられる。
【0020】
サーボモータ48からのフィードバック値FBは、この外力に応じて変動する。よって、フィードバックセンサ17Bは、フィードバック値FBから接触力CFの大きさを検出することができる。この場合、フィードバックセンサ17Bの検出値αは、フィードバック値FBである。
【0021】
さらに他の例として、センサ17は、ロボット14の各サーボモータ48に設けられたトルクセンサ17Cを有する。トルクセンサ17Cは、サーボモータ48の駆動軸に掛かるトルクを検出する。ロボット14が金型20をタッチアップすることで金型20からエンドエフェクタ42に加えられる外力は、各サーボモータ48の駆動軸にトルクとして掛かることになる。
【0022】
よって、トルクセンサ17Cは、該トルクから接触力CFの大きさを検出することができる。この場合、トルクセンサ17Cの検出値αは、駆動軸に掛かるトルクの値、又は、各々のトルクセンサ17Cが検出したトルクから求められる、エンドエフェクタ42に加えられた外力の値を含む。
【0023】
図2に示すように、制御装置16は、プロセッサ50、メモリ52、及びI/Oインターフェース54を有するコンピュータであって、成形機12、ロボット14、及びセンサ17を制御する。プロセッサ50は、メモリ52、及びI/Oインターフェース54と、バス56を介して通信可能に接続されており、メモリ52及びI/Oインターフェース54と通信しつつ、後述する各種機能を実現するための演算処理を行う。
【0024】
メモリ52は、RAM又はROM等を有し、各種データを一時的又は恒久的に記憶する。I/Oインターフェース54は、例えば、イーサネット(登録商標)ポート、USBポート、光ファイバコネクタ、又はHDMI(登録商標)端子を有し、プロセッサ50からの指令の下、外部機器との間でデータを有線又は無線で通信する。上述のサーボモータ48及びセンサ17は、I/Oインターフェース54に、有線又は無線で通信可能に接続されている。
【0025】
図1に示すように、ロボット14に対してロボット座標系C1が設定される。ロボット座標系C1は、ロボット14の各可動要素の動作を自動制御するための座標系であって、ロボットベース34に対して固定して設定される。本実施形態においては、ロボット座標系C1は、その原点がロボットベース34の中心に配置され、そのz軸が、旋回胴36の旋回軸(すなわち、鉛直方向)に一致するように、ロボット14に対して設定されている。
【0026】
一方、
図3に示すように、エンドエフェクタ42に対しては、ツール座標系C2が設定される。このツール座標系C2は、ロボット座標系C1におけるエンドエフェクタ42の位置を規定する座標系である。本実施形態においては、ツール座標系C2は、その原点がエンドエフェクタ42の既知の作業点42aに配置され、そのz軸が手首軸A2と平行となるように、エンドエフェクタ42に対して設定される。
【0027】
エンドエフェクタ42を移動させるとき、プロセッサ50は、ロボット座標系C1にツール座標系C2を設定し、設定したツール座標系C2によって表される位置にエンドエフェクタ42を位置決めするように、ロボット14の各サーボモータ48への指令を生成する。こうして、プロセッサ50は、ロボット座標系C1における任意の位置にエンドエフェクタ42を位置決めする。ロボット座標系C1におけるツール座標系C2の原点位置(つまり、作業点42a)、及び各軸の方向は、既知である。なお、本稿においては、「位置」とは、位置及び姿勢を示すことがある。
【0028】
プロセッサ50は、予め作成された動作プログラムOP0に従ってロボット14を動作し、該ロボット14に、成形機12が金型20で成形した成形品に対して上述の所定の作業(成形品を取り出す作業、又は成形品にインサート部品を挿抜する作業等)を実行させる。例えば、動作プログラムOP0は、実空間において、金型20が金型設置部18(
図1)に対し予め定められた適正位置に設置された成形機12に対する作業のための動作を実機のロボット14に教示することによって、作成され得る。
【0029】
代替的には、動作プログラムOP0は、仮想空間に、成形機12のモデルとロボット14のモデルとを配置し、これらモデルを仮想空間内で模擬的に動作させるシミュレーションを実行することによって、作成されてもよい(いわゆる、オフラインティーチング)。成形機12のモデルとロボット14のモデルは、理想的な寸法(つまり、設計寸法)を有する3DCADモデルであり、故に、成形機12のモデルにおいては、金型20のモデルは予め定められた適正位置に設置される。作成された動作プログラムOP0は、メモリ52に予め格納される。
【0030】
ここで、オペレータは、製造工程に応じて、金型20を交換(いわゆる段替え)する場合がある。この場合において、金型設置部18に対する金型20の設置位置が、適正位置から変位し得る。以下、
図4及び
図5を参照して、このような金型20の変位の一例について説明する。
図4は、金型20が金型設置部18(
図1)に対し、予め定められた適正位置に配置されている状態を示す。
【0031】
ここで、本実施形態においては、金型20が適正位置に設置されたときに、金型20の中心軸A1が、ロボット座標系C1のy軸と略平行となり、金型20の左面22及び右面24が、ロボット座標系C1のz軸(第1軸)の方向へ延在するように配置され(又は、ロボット座標系C1のx軸と直交するように配置され)、金型20の下面26及び上面28が、ロボット座標系C1のx軸(第2軸)の方向へ延在するように配置される(又は、ロボット座標系C1のz軸と直交するように配置される)ものとする。また、このときの金型20の中心軸A1のロボット座標系C1のx-z平面内の座標は、(xA、zA)であるとする。つまり、中心軸A1は、ロボット座標系C1の既知の座標QA(xA、y、zA)として表される。
【0032】
一方、
図5は、金型20の設置位置が適正位置から変位した状態を示す。
図5に示す例では、金型20は、点線で示す適正位置から、中心軸A1周りにずれ量θ(第1のずれ量)だけ回転するように、変位している。本実施形態においては、プロセッサ50は、金型20の適正位置からのずれ量θを取得する装置60(
図2)として機能する。
【0033】
以下、
図6を参照して、装置60の機能について説明する。
図6に示すフローは、
図4に示すように金型20が適正位置に配置されている実機の成形機12を用いて、実行される。プロセッサ50は、オペレータ、上位コントローラ、又はコンピュータプログラムから、基準データ取得指令を受け付けたときに、
図6に示すフローを開始する。
【0034】
ステップS1において、プロセッサ50は、ロボット14を、予め定めた初期位置IPに配置する。この初期位置IPは、例えば、エンドエフェクタ42の作業点42aが、金型20の中心軸A1から下方へ距離Δ1だけ離隔し、且つ、金型20の左面22から左方に離隔した位置として、オペレータによって予め定められる。
【0035】
例えば、初期位置IPは、ツール座標系C2の原点を設定するロボット座標系C1の座標として、定められ得る。オペレータは、距離Δ1を、0<Δ1<Δ1
MAXの範囲内で任意に設定できる。この上限値Δ1
MAXは、中心軸A1から下面26までの、ロボット座標系C1のz軸方向の距離である。ロボット14が初期位置IPに配置された状態を
図7に例示する。このときの作業点42aのロボット座標系C1のz座標は、z=z
A-Δ1である。
【0036】
ステップS2において、プロセッサ50は、検出値αの取得を開始する。具体的には、プロセッサ50は、センサ17に指令を送り、該センサ17は、該指令に応じて検出値αを連続的(例えば、周期的)に取得する。プロセッサ50は、I/Oインターフェース54を介して検出値αをセンサ17から順次取得し、メモリ52に格納する。
【0037】
ステップS3において、プロセッサ50は、ロボット14を動作させる。具体的には、プロセッサ50は、ロボット14の各可動要素を動作させて、エンドエフェクタ42を、
図7に示す初期位置IPから右方へ移動させる。その結果、作業点42aは、金型20の左面22へ向かって接近する。
【0038】
ステップS4において、プロセッサ50は、直近に取得した検出値αが、予め定めた基準値α0(>0)となったか否かを判定する。例えば、プロセッサ50は、直近に取得した検出値αが、基準値α0を含むように定められた許容範囲[αth1,αth2]に収まっている場合(つまり、αth1≦α≦αth2)に、YESと判定してもよい。
【0039】
許容範囲[αth1,αth2]を画定する閾値αth1、αth2は、例えば、0<αth1<α0<αth2を満たす値としてオペレータによって予め定められ得る。プロセッサ50は、YESと判定した場合は、ロボット14の動作を停止してステップS5へ進む一方、NOと判定した場合は、ステップS3へ戻る。
【0040】
なお、このステップS4でNOと判定した場合、プロセッサ50は、その後に実行するステップS3においてエンドエフェクタ42を移動させる方向を、検出値αを基準値α0へ近づけることができる方向として決定してもよい。例えば、ステップS3で、検出値αが基準値α0(又は、閾値αth2)よりも大きいことによりNOと判定した場合は、その後に実行するステップS3においてエンドエフェクタ42を移動させる方向を左方に決定してもよい。
【0041】
このように、ステップS4でYESと判定するまで、プロセッサ50は、ステップS3及びS4のループを繰り返す。ステップS4でYESと判定したとき、
図8に示すように、作業点42aは、基準値α
0に対応する接触力CF
0で、左面22と基準点P1で接触することになる。
【0042】
ステップS5において、プロセッサ50は、ロボット14の位置データRP1を取得する。具体的には、プロセッサ50は、ロボット14の位置データRP1として、この時点(すなわち、ステップS4でYESと判定した時点)におけるツール座標系C2の原点(すなわち、作業点42a)のロボット座標系C1の座標Q1(x1、y1、z1)を取得する。
【0043】
なお、本実施形態においては、ツール座標系C2の原点が作業点42aに設定されているので、座標Q1(x1、y1、z1)は、作業点42aが接触する左面22上の基準点P1の座標を示す。よって、z1=zA-Δ1である。この座標Q1の座標x1は、適正位置に配置されている左面22の、ロボット座標系C1のx軸方向の位置を示す基準データとなる。
【0044】
図6のフローを実行した後、金型20の段替え等により、金型20の設置位置が
図5に示すように変位したとき、プロセッサ50は、
図9に示すフローを実行する。なお、
図9に示すフローにおいて、
図6に示すフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。プロセッサ50は、オペレータ、上位コントローラ、又はコンピュータプログラムから、ずれ取得指令を受け付けたときに、
図9に示すフローを開始する。
【0045】
図9に示すフローの開始後、プロセッサ50は、
図6のフローと同様にステップS1~S5を実行する。このときのステップS4でYESと判定した時点でのロボット14と金型20との位置関係を
図10に示す。この時点でロボット14の作業点42aは、ロボット座標系C1のy-z平面内の座標(y
1、z
1)の位置において、接触力CF
0で左面22上の第1参照点P2と接触することになる。
【0046】
そして、プロセッサ50は、ステップS5で、このときのロボット14の位置データRP2として、ツール座標系C2の原点(すなわち、作業点42a)のロボット座標系C1の座標Q2(x2、y2、z2)を取得する。ここで、y2=y1、z2=z1=zA-Δ1であるので、座標Q2(x2、y2、z2)は、(x2、y1、zA-Δ1)として表される。本実施形態においては、座標Q2は、第1参照点P2のロボット座標系C1の座標を示している。
【0047】
図5に、基準点P1及び第1参照点P2を示している。ここで、本実施形態においては、点線表示された適正位置に配置された左面22と、設置位置の変位後の左面22との交線上に、第2参照点P3を定める。この第2参照点P3のロボット座標系C1の座標は、例えば(x
1、y
1、z
α)である。このように、第1参照点P2及び第2参照点P3は、ロボット座標系C1のz軸方向へ互いに離隔した位置で左面22上に定められた点である。
【0048】
ステップS6において、プロセッサ50は、第1参照点P2と第2参照点P3との距離を取得する。具体的には、プロセッサ50は、第1参照点P2と第2参照点P3との、ロボット座標系C1のx軸方向の距離δ1(第1距離)を取得する。ここで、
図5に示すように、第1参照点P2と第2参照点P3とのx軸方向の距離δ1(つまり、第1参照点P2と基準点P1とのx軸方向の距離)は、
図6のステップS5で取得した位置データRP1(座標Q
1)の座標x
1と、
図9のステップS5で取得した位置データRP2(座標Q
2)の座標x
2とから、δ1=x
1-x
2として求めることができる。このように、本実施形態においては、プロセッサ50は、距離δ1(第1距離)を取得する第1距離取得部62(
図1)として機能する。
【0049】
ステップS7において、プロセッサ50は、距離δ1を用いてずれ量θを取得する。ここで、
図5に示すように、第2参照点P3と中心軸A1との、ロボット座標系C1のz軸方向の距離をΔ2とすると、ずれ量θは、既知の数式(三角関数)として、θ=tan
-1(δ1/(Δ1+Δ2))として表される。
【0050】
Δ1は、上述のように既知である。また、ずれ量θが、極小さい角度である場合、Δ2はゼロと近似することができる(Δ2≒0)。よって、プロセッサ50は、距離δ1を用いて、ずれ量θを、θ=tan-1(δ1/Δ1)なる式から、近似値として求めることができる。このように、本実施形態においては、プロセッサ50は、距離δ1を用いてずれ量θを取得するずれ量取得部64として機能する。
【0051】
以上のように、本実施形態においては、プロセッサ50は、第1距離取得部62及びずれ量取得部64を具備する装置60として機能する。この装置60によれば、オペレータが定めた、ロボット座標系C1のz軸方向の1つの位置(座標z=zA-Δ1)で距離δ1を取得し、該1つの位置で求めた距離δ1から、ずれ量θを取得することができる。これにより、ずれ量θを取得するのに要する工数を削減できるので、該ずれ量θを、より簡単且つ迅速に取得できる。
【0052】
また、本実施形態においては、ロボット14が基準点P1及び第1参照点P2をタッチアップしたときにセンサ17が検出した検出値αに基づいて、距離δ1を取得している(ステップS4~S6)。この構成によれば、距離δ1を取得するプロセスを効果的に自動化できるとともに、
図9に示すフローを比較的簡単なアルゴリズムで実現できる。
【0053】
また、本実施形態においては、プロセッサ50は、ロボット14が基準点P1及び第1参照点P2をタッチアップしたときにセンサ17が検出した検出値αが予め定めた基準値α0となったときのロボット14の位置データRP2に基づいて、距離δ1を取得している。この構成によれば、基準点P1及び第1参照点P2で、同じ基準値α0が検出されたときの位置データRP2を用いて距離δ1を取得していることから、該距離δ1を、より正確に求めることができる。
【0054】
次に、
図11を参照して、成形システム10の他の機能について説明する。なお、
図11に示すフローにおいて、
図9のフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。プロセッサ50は、
図5に示すように金型20の設置位置が変位した後、オペレータ、上位コントローラ、又はコンピュータプログラムからずれ取得指令を受け付けたときに、
図11に示すフローを開始する。
【0055】
ステップS11において、プロセッサ50は、ロボット14を基準位置PR1に移動させる。ここで、ロボット14の基準位置PR1は、適正位置に配置された金型20を基準として、オペレータによって予め定められる。なお、オペレータは、基準位置PR1を、適正位置に配置された実機の金型20を用いてロボット14を教示することによって定めてもよいし、又は、上述のオフラインティーチングを通して定められてもよい。以下、オペレータが、基準位置PR1を、基準点P1の座標Q1(x1、y1、z1)に設定した場合について説明する。メモリ52は、基準位置PR1の位置データとして、座標Q1(x1、y1、z1)をメモリに予め記憶する。
【0056】
ステップS11において、プロセッサ50は、まず、ロボット14を初期位置IPに配置させ、次いで、ツール座標系C2の原点を基準位置PR1:座標Q
1(x
1、y
1、z
1)に設定してロボット14を動作させ、エンドエフェクタ42(作業点42a)を、初期位置IPから、座標Q
1(x
1、y
1、z
1)に向かって右方へ移動させる。その結果、
図10と同様に、作業点42aが左面22上の第1参照点P2に接触することで、エンドエフェクタ42の移動が停止されることになる。
【0057】
なお、プロセッサ50は、このステップS11を、予め作成された動作プログラムOP1に従って実行してもよい。この動作プログラムOP1は、適正位置に配置された実機の金型20を用いてロボット14にステップS11の動作を教示することによって作成されてもよいし、又は、上述のオフラインティーチングを通して作成されてもよい。
【0058】
ステップS12において、プロセッサ50は、ステップS11でエンドエフェクタ42の移動が停止したときにセンサ17が検出した検出値α1を、該センサ17から取得し、メモリ52に記憶する。この検出値α1は、ステップS11でエンドエフェクタ42の移動が停止したときの作業点42aと第1参照点P2との接触力CF1に対応する値となる。
【0059】
ステップS13において、プロセッサ50は、第1距離取得部62として機能し、第1参照点P2と第2参照点P3との、ロボット座標系C1のx軸方向の距離δ1(第1距離)を取得する。一例として、メモリ52は、検出値αと距離δ1との関係を示すデータテーブルDT1を、予め格納する。このデータテーブルDT1は、検出値αと距離δ1のデータを、実験又はシミュレーションを通して予め収集することによって、作成され得る。データテーブルDT1の一例を以下の表1に示す。
【表1】
【0060】
表1に示すように、データテーブルDT1においては、センサ17の検出値α(具体的には、検出値αの数値範囲)と距離δ1とが、互いに関連付けられて格納されている。プロセッサ50は、データテーブルDT1から、ステップS12で取得した検出値α1に対応する距離δ1を検索して取得する。こうして、プロセッサ50は、データテーブルDT1を用いて距離δ1を取得することができる。
【0061】
他の例として、メモリ52は、センサ17の検出値αと、第1参照点P2の位置(具体的には、ロボット座標系C1のx座標)との関係を示すデータテーブルDT2を、予め格納する。このデータテーブルDT2においては、上述のデータテーブルDT1と同様に、センサ17の検出値α(例えば、数値範囲)とx座標とが互いに関連付けられて格納されている。
【0062】
プロセッサ50は、データテーブルDT2から、ステップS12で取得した検出値α1に対応するx座標:xα1を検索して取得する。次いで、プロセッサ50は、距離δ1を、δ1=xα1-x1として求める。このようにして、プロセッサ50は、データテーブルDT2を用いて距離δ1を取得することができる。
【0063】
さらに他の例として、プロセッサ50は、
図11のフローを実行する前(つまり、金型20の設置位置の変位前)に、
図4に示す適正位置においてロボット14を基準位置PR1:座標Q
1(x
1、y
1、z
1)に配置したときにセンサ17が検出した検出値α
1_Rを、予め取得する。その後、プロセッサ50は、
図11のフローを実行したときにステップS11で取得した検出値α
1と、予め取得した検出値α
1_Rとの差d
α(=α
1-α
1_R)を算出する。
【0064】
一方、メモリ52は、差dαと距離δ1との関係を示すデータテーブルDT3を、予め格納する。このデータテーブルDT3においては、差dα(例えば、数値範囲)と距離δ1とが互いに関連付けられて格納されている。このデータテーブルDT3も、検出値α1と距離δ1との関係を示すデータテーブルと見做すことができる。
【0065】
プロセッサ50は、データテーブルDT3から、取得した差dαに対応する距離δ1を検索して取得する。こうして、プロセッサ50は、データテーブルDT3を用いて距離δ1を取得することができる。距離δ1を取得した後、プロセッサ50は、上述のステップS7を実行し、ずれ量取得部64として機能して、取得した距離δ1を用いてずれ量θを取得する。
【0066】
以上のように、本実施形態においては、プロセッサ50は、予め定めた基準位置PRへロボット14を移動させたときにセンサ17が検出した検出値α
1に基づいて、距離δ1を取得している。ここで、ロボット14を、ロボット座標系C1の所定位置に位置決めする位置決め精度は、比較的高い。よって、金型20を段替えする毎に
図11のフローを繰り返し実行する場合に、ステップS11の動作の再現性が高いことから、その結果得られる検出値α
1から、距離δ1を、高精度に取得することができる。
【0067】
次に、
図1及び
図12を参照して、他の実施形態に係る成形システム70について説明する。成形システム70は、上述の成形システム10と、センサ72において相違する。センサ72は、ロボット14と金型20との距離βを検出値βとして検出する。例えば、センサ72は、ロボット14の作業点42aに設けられた変位センサ又は測距センサを有する。センサ72は、I/Oインターフェース54に有線又は無線で通信可能に接続され、検出値βを制御装置16へ送信する。
【0068】
次に、
図6を参照して、成形システム70の機能について説明する。成形システム70のプロセッサ50は、適正位置に配置された金型20に対し
図6のフローを実行することで、適正位置における左面22の位置を示す基準データを取得する。具体的には、ステップS1において、プロセッサ50は、ロボット14を初期位置IPに配置する。このとき、センサ72は、作業点42aと、該作業点42aに対向する左面22との、ロボット座標系C1のx軸方向の距離βを検出するように、方向付けられる。
【0069】
ステップS2において、プロセッサ50は、検出値βの取得を開始する。具体的には、プロセッサ50は、センサ72に指令を送り、該センサ72は、該指令に応じて、検出値βを連続的(例えば、周期的)に取得する。プロセッサ50は、I/Oインターフェース54を介して検出値βをセンサ72から順次取得し、メモリ52に格納する。
【0070】
ステップS3を開始後、ステップS4において、プロセッサ50は、直近に取得した検出値βが、予め定めた基準値β0(≧0)となったか否かを判定する。例えば、プロセッサ50は、直近に取得した検出値βが、基準値β0を含むように定められた許容範囲[βth1,βth2]に収まっている場合(つまり、βth1≦α≦βth2)に、YESと判定してもよい。
【0071】
プロセッサ50は、YESと判定した場合は、ロボット14の動作を停止してステップS5へ進む一方、NOと判定した場合は、ステップS3へ戻る。なお、このステップS4でNOと判定した場合、プロセッサ50は、その後に実行するステップS3においてエンドエフェクタ42を移動させる方向を、検出値βを基準値β0へ近づけることができる方向として決定してもよい。
【0072】
仮に、基準値β
0を、β
0=0に設定した場合、このステップS4でYESと判定したとき、
図8に示すように、作業点42aは左面22と基準点P1で接触することになる。一方、基準値β
0を、β
0>0の値に設定した場合は、このステップS4でYESと判定したとき、作業点42aは、基準点P1から基準値β
0だけ左方へ離隔した位置に配置される。
【0073】
ステップS5において、プロセッサ50は、ロボット14の位置データRP3を取得する。具体的には、プロセッサ50は、ロボット14の位置データRP3として、この時点でのツール座標系C2の原点(作業点42a)のロボット座標系C1の座標Q3(x3、y3、z3)を取得する。
【0074】
なお、本実施形態においては、y3=y1、z3=z1=zA-Δ1であるので、座標Q3(x3、y3、z3)は、(x1-β0,y1,zA-Δ1)と表される。この座標Q3の座標x3は、適正位置に配置されている左面22の、ロボット座標系C1のx軸方向の位置を示す基準データとなる。なお、基準値β0は既知であるので、プロセッサ50は、このステップS5で、位置データRP3の座標x3にβ0を加算することで、基準点P1の座標Q1(x1、y1、z1)=(x1,y1,zA-Δ1)を直接的に求めてもよい。
【0075】
その後、金型20の設置位置が
図5に示すように変位したとき、成形システム70のプロセッサ50は、
図9に示すフローを実行する。具体的には、プロセッサ50は、
図6に示すフローと同様にステップS1~S5を実行する。仮に、基準値β
0=0に設定した場合は、
図9のステップS4でYESと判定した時点で、
図10に示すように、作業点42aは、左面22と第1参照点P2:座標Q
2(x
2、y
2、z
2)で接触することになる。一方、基準値β
0>0に設定した場合は、このステップS4でYESと判定したとき、作業点42aは、第1参照点P2から基準値β
0だけ左方へ離隔した位置に配置される。
【0076】
そして、ステップS5において、プロセッサ50は、ロボット14の位置データRP4として、この時点でのツール座標系C2の原点(作業点42a)のロボット座標系C1の座標Q4(x4、y4、z4)を取得する。この座標Q4(x4、y4、z4)は、(x2-β0、y2、z2)=(x2-β0、y1、zA-Δ1)として表される。なお、基準値β0は既知であるので、プロセッサ50は、このステップS5において、位置データRP4の座標x4にβ0を加算することで、第1参照点P2の座標Q2(x2、y2、z2)=(x2,y1,zA-Δ1)を直接的に求めてもよい。
【0077】
ステップS6において、プロセッサ50は、第1距離取得部62として機能し、第1参照点P2と第2参照点P3との、ロボット座標系C1のx軸方向の距離δ1(第1距離)を取得する。具体的には、プロセッサ50は、
図6のステップS5で取得した位置データRP3(座標Q
3)の座標x
3と、
図9のステップS5で取得した位置データRP4(座標Q
4)の座標x
4とから、δ1=x
3-x
4(=x
1-x
2)として求めることができる。
【0078】
また、プロセッサ50は、
図6のステップS5で、基準点P1の座標Q
1(x
1,y
1,z
A-Δ1)を直接的に求め、
図9のステップS5で、第1参照点P2の座標Q
2(x
2,y
1,z
A-Δ1)を直接的に求めた場合は、距離δ1=x
1-x
2として求めることができる。そして、ステップS7において、プロセッサ50は、ずれ量取得部64として機能して、上述の実施形態と同様に、ずれ量θを、θ=tan
-1(δ1/Δ1)なる数式から求める。
【0079】
本実施形態によれば、上述の実施形態と同様に、ずれ量θを取得するのに要する工数を削減できるので、該ずれ量θを、より簡単且つ迅速に取得できる。また、センサ72の検出値βに基づいて距離δ1を取得していることから、距離δ1を取得するプロセスを効果的に自動化できるとともに、
図9に示すフローを比較的簡単なアルゴリズムで実現できる。
【0080】
なお、成形システム70においては、
図6に示す基準データ取得フローを省略することができる。具体的には、基準点P1の座標Q
1(x
1、y
1、z
1)=(x
1,y
1,z
A-Δ1)の各パラメータ:x
1、y
1、及びz
A-Δ1は、予め設定することができる。例えば、成形機12及びロボット14を、3DCADでモデル化し、これらモデルを用いてシミュレーションを行うことで、ステップS1及びS3でのロボット14の動作を仮想空間内で教示する(いわゆる、オフラインティーチング)。
【0081】
このオフラインティーチングを通して、基準点P1の座標Q
1(x
1,y
1,z
A-Δ1)を設定できるとともに、ステップS1及びS3の動作をロボット14に実行させるための動作プログラムを構築することができる。そして、成形システム70のプロセッサ50は、
図6に示すフローを行うことなく、金型20の設置位置の変位後に
図9のフローを実行し、予め作成された動作プログラムに従って、ステップS1及びS3の動作を実行する。そして、プロセッサ50は、ステップS5で位置データRP4:座標Q
4(x
4、y
4、z
4)=(x
2-β
0、y
1、z
A-Δ1)を取得し、ステップS6で、座標Q
4の座標x
4に既知であるβ
0を加算してx
2を求め、次いで、距離δ1=x
2-x
1を求めることができる。
【0082】
次に、
図11を参照して、成形システム70の他の機能について説明する。成形システム70のプロセッサ50は、金型20の設置位置の変位後に
図11のフローを実行することによって、ずれ量θを取得できる。具体的には、ステップS11において、プロセッサ50は、ロボット14を基準位置PR2に移動させる。
【0083】
ここで、基準位置PR2は、適正位置に配置された金型20を基準として、オペレータによって予め定められる。基準位置PR2は、実機の金型20を用いてロボット14を教示することによって定めてもよいし、又は、上述のオフラインティーチングを通して定められてもよい。
【0084】
以下、オペレータが、基準位置PR2を、基準点P1の座標Q
1(x
1、y
1、z
1)から、左方へ距離β
δだけ離隔した位置:座標Q
PR2(x
1-β
δ、y
1、z
1)に設定した場合について説明する。このステップ11において、プロセッサ50は、ロボット14を動作させて、作業点42aを、座標Q
PR2(x
1-β
δ、y
1、z
1)に位置決めする。このときの作業点42a、基準点P1、及び第1参照点P2の位置関係を
図13に示す。
【0085】
ステップS12において、プロセッサ50は、このときにセンサ72が検出した検出値βを取得する。そして、プロセッサ50は、ステップS13において、第1距離取得部62として機能し、距離δ1を、
図13に示すように、δ1=β
δ-βとして求める。そして、ステップS7で、プロセッサ50は、ずれ量取得部64として機能して、取得した距離δ1を用いてずれ量θを取得する。
【0086】
なお、本実施形態において、プロセッサ50は、金型20が適正位置に配置されているときに、ロボット14を
図13に示す基準位置PR2に位置決めし、このときにセンサ72が検出値した検出値β
δを取得してもよい。そして、金型20の設置位置の変位後に
図11のフローを実行し、ステップS13で、実測した検出値β
δ及びβを用いて、距離δ1=β
δ-βを求めてもよい。
【0087】
次に、
図1及び
図14を参照して、成形システム10のさらに他の機能について説明する。本実施形態においては、プロセッサ50は、第1距離取得部62、ずれ量取得部64、第2距離取得部66、及び位置取得部68を具備する装置60として機能する。ここで、この装置60は、上述のずれ量θに加えて、適正位置に対する金型20の、中心軸A1と直交する方向のずれ量dx及びdz(第2のずれ量)を取得する。
【0088】
具体的には、段替え等により、金型20の設置位置が、適正位置から、中心軸A1周りにずれるとともに、該中心軸A1と直交する方向に(本実施形態においては、ロボット座標系C1のx-z平面内で)ずれる場合がある。又は、上述のオフラインティーチングを通して作成した成形機12のモデルの理想的な寸法に基づいて実機の成形機12を組み立てた場合に、該実機の金型20の設置位置が、成形機12のモデルの理想的な寸法に基づいて定められる適正位置から、中心軸A1周りの方向、及び、該中心軸A1と直交する方向にずれる場合がある。
【0089】
このような設置位置の変位の例を、
図15に示す。なお、
図15においては、金型20の適正位置を点線表示し、適正位置に配置された金型20の中心軸をA1’として示している。
図15に示す例では、金型20は、中心軸A1周りにずれ量θ、左方にずれ量δx、上方にずれ量dzだけ、適正位置からずれている。
【0090】
これらずれ量θ、δx及びdzを取得すべく、プロセッサ50は、
図16に示すフローを実行する。プロセッサ50は、金型20の設置位置が変位した後、オペレータ、上位コントローラ、又はコンピュータプログラムからずれ取得指令を受け付けたときに、
図16に示すフローを開始する。
【0091】
ステップS21において、プロセッサ50は、第1の位置取得プロセスを実行する。例えば、プロセッサ50は、このステップS21で、後述する参照点P4の位置を取得する。このステップS21について、
図17を参照して説明する。ステップS21の開始後、ステップS31において、プロセッサ50は、ロボット14を、予め定めた初期位置IP1に配置する。
【0092】
この初期位置IP1は、例えば、エンドエフェクタ42の作業点42aが金型20の左面22から左方に離隔した位置として、オペレータによって任意に定められる。この初期位置IP1は、ツール座標系C2の原点を設定するロボット座標系C1の座標として、定められ得る。
【0093】
ステップS32において、プロセッサ50は、上述のステップS2と同様に、センサ17から検出値αの取得を開始する。ステップS33において、プロセッサ50は、上述のステップS3と同様に、ロボット14を動作させて、エンドエフェクタ42(作業点42a)を、初期位置IP1から右方へ移動させる。
【0094】
ステップS34において、プロセッサ50は、上述の実施形態と同様に、直近に取得した検出値αが基準値α
0となったか否かを判定する。プロセッサ50は、YESと判定した場合はステップS35に進む一方、NOと判定した場合はステップS33へ戻る。ステップS34でYESと判定した時点で、ロボット14の作業点42aは、左面22上の参照点P4(
図15)に、基準値α
0に対応する接触力CF
0で接触することになる。
【0095】
ステップS35において、プロセッサ50は、参照点P4の位置を取得する。具体的には、プロセッサ50は、この時点(すなわち、ステップS34でYESと判定した時点)でのロボット14の位置データRP5として、ツール座標系C2の原点(すなわち、作業点42a)の、ロボット座標系C1の座標Q5(x5、y5、z5)を取得する。
【0096】
ここで、本実施形態においては、ツール座標系C2の原点が作業点42aに設定されているので、座標Q5は、作業点42aが接触する左面22上の参照点P4の座標を示す。したがって、プロセッサ50は、参照点P4の位置を示すデータとして、座標Q5(x5、y5、z5)を取得する。
【0097】
再度、
図16を参照して、プロセッサ50は、ステップS22において、第2の位置取得プロセスを実行する。このステップS22で、プロセッサ50は、後述する第2参照点P5の位置を取得する。このステップS22について、
図17を参照して説明する。ステップS22の開始後、ステップS31において、プロセッサ50は、ロボット14を、予め定めた初期位置IP2に配置する。この初期位置IP2は、上述のステップS21で設定した初期位置IP1から上方に所定の距離Δ3だけ離隔した位置として、定められる。
【0098】
そして、プロセッサ50は、上述のステップS21と同様に、ステップS32で検出値αの取得を開始し、ステップS33でエンドエフェクタ42(作業点42a)を、初期位置IP2から右方へ移動させ、ステップS34で直近に取得した検出値αが基準値α
0となったか否かを判定する。このステップS33でYESと判定した時点で、ロボット14の作業点42aは、左面22上の参照点P5(
図15)に、基準値α
0に対応する接触力CF
0で接触することになる。
【0099】
ステップS35において、プロセッサ50は、参照点P5の位置を取得する。具体的には、プロセッサ50は、この時点でのロボット14の位置データRP6として、ツール座標系C2の原点のロボット座標系C1の座標Q6(x6、y6、z6)を取得する。なお、y6=y5であってもよい。本実施形態においては、ツール座標系C2の原点が作業点42aに設定されているので、座標Q6は、作業点42aが接触する左面22上の参照点P5の座標を示す。プロセッサ50は、参照点P5の位置を示すデータとして、座標Q6(x6、y6、z6)を取得する。
【0100】
このように、本実施形態においては、プロセッサ50は、センサ17の検出値αに基づいて、参照点P4の位置(座標Q
5)を取得する(ステップS21)とともに、参照点P5の位置(座標Q
6)を取得する(ステップS22)、位置取得部68(
図14)として機能する。
【0101】
また、オペレータは、参照点P4及びP5を、ロボット座標系C1のz軸方向へ互いに離隔した左面22上の2つの点として(本実施形態では、初期位置IP1及びIP2の位置を設定することによって)、任意に定めることができる。よって、参照点P4及びP5の一方が「第1参照点」に対応し、他方が「第2参照点」に対応する。
【0102】
再度、
図16を参照して、ステップS23において、プロセッサ50は、第1距離取得部62として機能し、参照点P4と参照点P5との距離を取得する。具体的には、プロセッサ50は、参照点P4と参照点P5との、ロボット座標系C1のx軸方向の距離δ2(第1距離)を取得する。
【0103】
図15に示すように、参照点P4と参照点P5のx軸方向の距離δ2は、上述のステップS21で取得した参照点P4の位置(座標Q
5)の座標x
5と、ステップS22で取得した参照点P5の位置(座標Q
6)の座標x
6とから、δ2=x
6-x
5として求めることができる。こうして、プロセッサ50は、センサ17が参照点P4及びP5に関して検出した検出値αに基づいて距離δ2を取得する。
【0104】
また、プロセッサ50は、参照点P4と参照点P5との、ロボット座標系C1のz軸方向の距離Δ3(第2距離)を取得する。例えば、プロセッサ50は、距離Δ3を、上述のステップS21で取得した参照点P4の位置(座標Q5)の座標z5と、ステップS22で取得した参照点P5の位置(座標Q6)の座標z6とから、Δ3=z6-z5として求めることができる。
【0105】
このように、本実施形態においては、プロセッサ50は、センサ17の検出値αに基づいて距離Δ3を取得する第2距離取得部66(
図14)として機能する。代替的には、参照点P4と参照点P5のz軸方向の距離Δ3は、上述のようにオペレータによって任意に設定される。よって、プロセッサ50は、距離Δ3を、オペレータが設定した設定情報から取得することもできる。
【0106】
ステップS24において、プロセッサ50は、ずれ量取得部64として機能し、距離δ2及びΔ3を用いてずれ量θを取得する。具体的には、
図15に示すように、ずれ量θは、既知の数式(三角関数)として、θ=tan
-1(δ2/Δ3)として表される。よって、プロセッサ50は、取得した距離δ2及びΔ3を既知の数式に適用することで、ずれ量θを求めることができる。
【0107】
ステップS25において、プロセッサ50は、第3の位置取得プロセスを実行する。例えば、プロセッサ50は、このステップS25で、後述する参照点P6(第3参照点)の位置を取得する。このステップS25について、
図17を参照して説明する。ステップS25の開始後、ステップS31において、プロセッサ50は、ロボット14を、予め定めた初期位置IP3に配置する。
【0108】
初期位置IP3に配置されたロボット14の金型20に対する位置関係を、
図18に示す。この初期位置IP3は、例えば、エンドエフェクタ42の作業点42aが金型20の下面26から下方に離隔した位置として、オペレータによって任意に定められる。この初期位置IP3は、ツール座標系C2の原点を設定するロボット座標系C1の座標として、定められ得る。
【0109】
ステップS32において、プロセッサ50は、上述のステップS21及びS22と同様に、センサ17から検出値αの取得を開始する。ステップS33において、プロセッサ50は、ロボット14を動作させて、エンドエフェクタ42(作業点42a)を、初期位置IP3から上方へ移動させる。
【0110】
ステップS34において、プロセッサ50は、直近にセンサ17が取得した検出値αが基準値α
0’となったか否かを判定する。この基準値α
0’は、上述の基準値α
0と同じ値であってもよいし、異なる値であってもよい。プロセッサ50は、YESと判定した場合はステップS35に進む一方、NOと判定した場合はステップS33へ戻る。ステップS34でYESと判定した時点で、ロボット14の作業点42aは、下面26上の参照点P6に、基準値α
0’に対応する接触力CF
0’で接触することになる。この状態を
図19に示す。
【0111】
ステップS35において、プロセッサ50は、参照点P6の位置を取得する。具体的には、プロセッサ50は、この時点(すなわち、ステップS34でYESと判定した時点)でのロボット14の位置データRP7として、ツール座標系C2の原点(すなわち、作業点42a)の、ロボット座標系C1の座標Q7(x7、y7、z7)を取得する。
【0112】
本実施形態においては、ツール座標系C2の原点が作業点42aに設定されているので、座標Q6は、作業点42aが接触する下面26上の基準点P6の座標を示す。したがって、プロセッサ50は、基準点P6の位置を示すデータとして、座標Q7(x7、y7、z7)を取得する。
【0113】
再度、
図16を参照して、ステップS26において、プロセッサ50は、ずれ量取得部64として機能して、ステップS21で取得した参照点P4の位置(座標Q
5)、及びステップS22で取得した参照点P5の位置(座標Q
6)のいずれか一方と、ステップS25で取得した参照点P6の位置(座標Q
7)とに基づいて、ずれ量dx及びdz(第2のずれ量)を取得する。
【0114】
以下、参照点P5の位置(座標Q6)と参照点P6の位置(座標Q7)とに基づいてずれ量dx及びdzを取得する方法の一例について、説明する。適正位置における中心軸A1の、ロボット座標系C1のx-z平面内の座標を(xA、zA)とすると、ずれ量dx及びdzは、それぞれ、dx=φ-xA、及び、dz=ω-zAなる式から求められる。そして、これら式中のφ及びωは、座標Q6(x6、y6、z6)及び座標Q7(x7、y7、z7)と、上述のステップS24で取得したずれ量θ(=tan-1(δ2/Δ3))とを用いて、以下の数式から求められる。
【0115】
【0116】
【0117】
ここで、数式中の「a」は、中心軸A1と左面22との距離であり、「b」は、中心軸A1と下面26との距離であって、設計寸法として、オペレータによって予め定められる。このような方法により、プロセッサ50は、参照点P5の位置(座標Q6)と参照点P6の位置(座標Q7)とに基づいてずれ量dx及びdzを求めることができる。なお、詳細は省略するが、プロセッサ50は、参照点P4の位置(座標Q5)と参照点P6の位置(座標Q7)とに基づいてずれ量dx及びdzを求めることもできる。
【0118】
以上のように、本実施形態においては、プロセッサ50は、適正位置からの金型20の、中心軸A1周りのずれ量θ(第1のずれ量)と、中心軸A1と直交する方向のずれ量dx及びdz(第2のずれ量)とを取得している。この構成によれば、適正位置からの金型20の、より多様な方向へのずれ量を求めることができる。
【0119】
次に、
図20及び
図21を参照して、成形システム10のさらに他の機能について説明する。プロセッサ50は、
図20に示すフローを実行することで、ずれ量θ、dx及びdzを取得する。
図20に示すフローは、
図16のフローと、ステップS21’及びS22’において相違する。
【0120】
以下、
図21を参照して、ステップS21’について説明する。ステップS21’の開始後、ステップS41において、プロセッサ50は、ロボット14を基準位置PR7に移動させる。ここで、基準位置PR7は、適正位置に配置された金型20を基準として、オペレータによって予め定められる。
【0121】
基準位置PR7は、実機の金型20を用いてロボット14を教示することによって定めてもよいし、又は、上述のオフラインティーチングを通して定められてもよい。以下、オペレータが、基準位置PR7を、
図15中の基準点P7:Q
7(x
1、y
5、z
5)に設定した場合について説明する。
【0122】
ステップS41において、プロセッサ50は、まず、ロボット14を初期位置IP4に配置させ、次いで、ツール座標系C2の原点を基準位置PR7:座標Q7(x1、y5、z5)に設定してロボット14を動作させ、エンドエフェクタ42(作業点42a)を、初期位置IP4から座標Q7に向かって右方へ移動させる。その結果、作業点42aが左面22上の参照点P4に接触することで、エンドエフェクタ42の移動が停止されることになる。
【0123】
ステップS42において、プロセッサ50は、ステップS41でエンドエフェクタ42の移動が停止したときにセンサ17が検出した検出値α2を、該センサ17から取得する。この検出値α2は、ステップS41でエンドエフェクタ42の移動が停止したときの作業点42aと参照点P4との接触力CF2に対応する値となる。
【0124】
ステップS43において、プロセッサ50は、位置取得部68として機能し、検出値α2に基づいて、参照点P4の位置を検出する。例えば、プロセッサ50は、検出値αと参照点P4の位置(具体的には、ロボット座標系C1のx座標)との関係を示すデータテーブルDT2を参照し、ステップS42で取得した検出値α2に対応するx座標:x5を検索して取得する。こうして、プロセッサ50は、参照点P4の位置としての座標Q5(x5、y5、z5)を取得できる。
【0125】
引き続き
図21を参照して、ステップS22’について説明する。ステップS22’の開始後、ステップS41において、プロセッサ50は、ロボット14を、適正位置に配置された金型20を基準として定められた基準位置PR8に移動させる。基準位置PR8は、実機の金型20を用いてロボット14を教示することによって定めてもよいし、又は、上述のオフラインティーチングを通して定められてもよい。以下、オペレータが、基準位置PR8を、
図15中の基準点P8:Q
8(x
1、y
6、z
6)に設定した場合について説明する。
【0126】
ステップS41において、プロセッサ50は、まず、ロボット14を初期位置IP5に配置させ、次いで、ツール座標系C2の原点を基準位置PR8:座標Q8(x1、y6、z6)に設定してロボット14を動作させ、エンドエフェクタ42(作業点42a)を、初期位置IP5から、座標Q8に向かって右方へ移動させる。その結果、作業点42aが左面22上の参照点P5に接触することで、エンドエフェクタ42の移動が停止されることになる。
【0127】
なお、プロセッサ50は、ステップS21’及びS22’におけるステップS41を、予め作成された動作プログラムOP2に従って実行してもよい。この動作プログラムOP2は、適正位置に配置された実機の金型20を用いてロボット14にステップS41の動作を教示することによって作成されてもよいし、又は、上述のオフラインティーチングを通して作成されてもよい。
【0128】
ステップS42において、プロセッサ50は、上述のステップS21’と同様に、ステップS41でエンドエフェクタ42の移動が停止したときにセンサ17が検出した検出値α
3を取得する。そして、ステップS43において、プロセッサ50は、上述のステップS21’と同様に、データテーブルDT2から、検出値α
3に対応するx座標:x
6を検索して取得する。こうして、プロセッサ50は、参照点P5の位置としての座標Q
6(x
6、y
6、z
6)を取得できる。その後、プロセッサ50は、
図20に示すように、上述のステップS23~S26を実行し、距離δ2及びΔ3と、ずれ量θ、dx及びdzとを、順次取得する。
【0129】
以上のように、本実施形態においては、プロセッサ50は、基準位置PR7(座標Q7)、PR8(座標Q8)へロボット14を移動させたときにセンサ17が検出した検出値α2、α3に基づいて参照点P4,P5の位置(座標Q5、Q6)を取得し、該参照点P4,P5の位置を用いて、距離δ2及びΔ3を取得している。
【0130】
なお、
図14に示す第2距離取得部66及び位置取得部68を、上述の成形システム70に適用することもできる。この場合において、成形システム70のプロセッサは、
図16のフローを実行することで、センサ72の検出値βに基づいて、距離δ2及びΔ3と、ずれ量θ、dx及びdzとを取得できる。
【0131】
例えば、成形システム70のプロセッサ50は、上述の
図9のステップS1~S4と同様に、
図17のステップS31~S34を実行できる。そして、ステップS35において、成形システム70のプロセッサ50は、センサ72の検出値β(=基準値β
0)から参照点P4、P5及びP6の位置(座標Q
5、Q
6及びQ
7)を直接的に求めてもよい。
【0132】
又は、成形システム70において、ステップS21、S22及びS25中のステップS34で参照する基準値β0を共通とし、成形システム70のプロセッサ50は、上述のステップS35で、このときのロボット14の位置データRP5’、RP6’及びRP7’(つまり、ツール座標系C2の原点のロボット座標系C1における座標)を、参照点P4、P5、P6の位置を示すデータとして取得してもよい。
【0133】
このときに取得される位置データRP5’及びRP6’は、参照点P4及びP5から左方へ距離β0だけ離隔した座標となり、また、位置データRP7’は、参照点P6から下方へ距離β0だけ離隔した座標となる。そして、プロセッサ50は、ステップS26において、位置データRP5’、RP6’、RP7’の座標を、上述のφ及びωを求める数式に代入し、ずれ量dx及びdzを求めることもできる。
【0134】
また、成形システム70のプロセッサ50は、
図20のフローを実行することで、距離δ2及びΔ3と、ずれ量θ、dx及びdzとを取得できる。例えば、成形システム70のプロセッサ50は、上述の
図11のステップS11及びS12と同様に、
図21のステップS41及びS42を実行する。そして、成形システム70のプロセッサ50は、ステップS43で、センサ72の検出値βから参照点P4及びP5の位置(座標Q
5及びQ
6)を直接的に求めてもよい。
【0135】
こうして、成形システム70のプロセッサ50は、第1距離取得部62、ずれ量取得部64、第2距離取得部66、及び位置取得部68を具備する装置60として機能して、
図16又は
図20のフローを実行することで、距離δ2及びΔ3と、ずれ量θ、dx及びdzとを取得できる。なお、成形システム10又は70のプロセッサ50は、上述のステップS25として、
図21に示すステップS41~43を実行することで、参照点P6の位置を取得することもできる。
【0136】
なお、成形システム10又は70のプロセッサ50は、適正位置に対する金型20の、中心軸A1の方向のずれ量dy(第3のずれ量)を取得することもできる。以下、
図22を参照して、成形システム10のプロセッサ50が、ずれ量dyを取得する方法について、説明する。
【0137】
まず、成形システム10のプロセッサ50は、
図22中の点線で示す適正位置に配置された金型20の後面30上の基準点P9に関し、
図17のステップS31~S35のフローを実行する。これにより、ロボット14の作業点42aは後面30上の基準点P9に接触し、プロセッサ50は、このときのロボット14の位置データRP9として、ツール座標系C2の原点(作業点42a)のロボット座標系C1の座標Q
9(x
9,y
9,z
9)を取得する。
【0138】
本実施形態においては、この座標Q9(x9,y9,z9)は、作業点42aが接触する基準点P9の座標を示すので、プロセッサ50は、座標Q9(x9,y9,z9)を、基準点P9の位置を示す基準データとして取得する。こうして、プロセッサ50は、検出値αに基づいて参照点P9の位置:座標Q9(x9,y9,z9)を取得する。
【0139】
図22に示すように金型20の設置位置が変位した後、プロセッサ50は、初期位置として、作業点42aを、座標Q
9と同じx-z平面の位置:座標(x
9,z
9)に配置させ、再度、
図17のステップS31~S35のフローを実行する。これにより、ロボット14の作業点42aは後面30上の参照点P10(第4参照点)に接触し、プロセッサ50は、このときのロボット14の位置データRP10として、ツール座標系C2の原点(作業点42a)のロボット座標系C1の座標Q
10(x
9,y
10,z
9)を取得する。
【0140】
この座標Q10(x9,y10,z9)は、作業点42aが接触する参照点P10の座標を示すので、プロセッサ50は、位置取得部68として機能して、座標Q10(x9,y10,z9)を、参照点P10の位置を示すデータとして取得する。こうして、プロセッサ50は、参照点P10に関してセンサ17が検出した検出値αに基づいて、該参照点P10の位置:座標Q10(x9,y10,z9)を取得する。
【0141】
そして、プロセッサ50は、ずれ量取得部64として機能して、座標Q
9及びQ
10を用いて、ずれ量dyを、dy=y
9-y
10なる式から求める。こうして、プロセッサ50は、参照点P10の位置(座標Q
10)に基づいてずれ量dyを取得することができる。なお、プロセッサ50は、参照点P10に関し
図21のフローを実行することで、ずれ量dyを取得することもできる。
【0142】
また、詳細は省略するが、成形システム70のプロセッサ50も、参照点P10に関し
図17又は
図21のフローを実行することで、ずれ量dyを取得することができることを理解されよう。この構成によれば、適正位置からの金型20の、より多様な方向へのずれ量を求めることができる。
【0143】
次に、
図23を参照して、成形システム10及び70のさらに他の機能について説明する。本実施形態においては、プロセッサ50は、第1距離取得部62、ずれ量取得部64、第2距離取得部66、位置取得部68、及び補正部74を具備する装置60として機能する。
【0144】
プロセッサ50は、上述のように取得したずれ量θ、dx、dy及びdzに基づいて、成形機12が金型20で成形した成形品に対してロボット14が所定の作業(成形品を取り出す作業、又は成形品にインサート部品を挿入する作業)を行うときの作業位置を補正する。例えば、ロボット14に該所定の作業を実行させるための動作プログラムOP0には、該ロボット14が作業位置で作業を実行するときにエンドエフェクタ42を位置決めする教示点TPが規定されている。
【0145】
プロセッサ50は、動作プログラムOP0に規定された教示点TPを、取得したずれ量θ、dx、dy及びdzだけ変位させるように補正してもよい。代替的には、プロセッサ50は、作業中にロボット14がエンドエフェクタ42を教示点TPに位置決めした後に、ずれ量θ、dx、dy及びdzだけエンドエフェクタ42をさらに移動させるための動作指令を追加するように、動作プログラムOP0を補正してもよい。
【0146】
こうして、ロボット14の作業位置を、ずれ量θ、dx、dy及びdzだけ補正することができる。この構成によれば、金型20の設置位置が適正位置から変位したとしても、ずれ量θ、dx、dy及びdzに対応するようにエンドエフェクタ42の作業位置を補正し、金型20が成形した成形品に対し所定の作業(成形品を取り出す作業、又は成形品にインサート部品を挿入する作業)を高精度に実行できる。
【0147】
なお、
図5に示す形態においては、プロセッサ50は、ずれ量θが極小さい角度であると仮定し、Δ2≒0と近似することによって、ずれ量θを近似値(θ=tan
-1(δ1/Δ1))として求める場合について述べた。しかしながら、プロセッサ50は、
図5に示す形態において、さらなる参照点P11を設定し、該参照点P11に関して
図9又は
図11に示すフローを実行することによって、より正確なずれ量θ
2を取得してもよい。
【0148】
この機能について、
図24を参照して説明する。プロセッサ50は、参照点P2に関して
図9又は
図11に示すフローを実行し、距離δ1と、近似値としてのずれ量θ
1=tan
-1(δ1/Δ1)とを取得した後、金型20の中心軸A1から下方へ距離Δ4だけ離隔した位置で左面22上に定めた参照点P11(第1参照点)に関して
図9又は
図11に示すフローを実行し、上述のステップS6又はS13において、参照点P11と参照点P3との、ロボット座標系C1のx軸方向の距離δ3(第1距離)を取得する。
【0149】
この場合、距離δ1、δ3、Δ1、Δ2及びΔ4の間で、δ1/(Δ1+Δ2)=δ3/(Δ2+Δ4)なる数式が成立する。この数式から、距離Δ2を、Δ2=(δ3・Δ1-δ1・Δ4)/(δ1-δ3)として求めることができる。そして、プロセッサ50は、正確なずれ量θ2を、θ2=tan-1(δ1/(Δ1+Δ2))=tan-1(δ3/(Δ2+Δ4))として求めることができる。
【0150】
この機能の動作フローの一例について、
図25を参照して説明する。ステップS51において、プロセッサ50は、参照点P2に関して
図9又は
図11に示すフローを実行し、近似値としてのずれ量θ
1=tan
-1(δ1/Δ1)を取得する。ステップS52において、プロセッサ50は、ステップS51で取得したずれ量θ
1が、予め定めた閾値θ
th以上(θ
1≧θ
th)であるか否かを判定する。プロセッサ50は、θ
1≧θ
thである場合にYESと判定し、ステップS53へ進む一方、NOと判定した場合、
図25に示すフローを終了する。
【0151】
ステップS53において、プロセッサ50は、参照点P11(第1参照点)に関して
図9又は
図11に示すフローを実行し、正確なずれ量θ
2=tan
-1(δ1/(Δ1+Δ2))=tan
-1(δ3/(Δ2+Δ4))を取得する。ここで、ずれ量θ
1が大きくなる程、Δ2が大きくなり、Δ2≒0と仮定して求めたずれ量θ
1=tan
-1(δ1/Δ1)の、理論値からの誤差が大きくなる。
図25に示すフローによれば、近似値として求めたずれ量θ
1が大きい場合(すなわち、理論値からの誤差が大きくなる場合)は、ステップS53を実行することで、正確なずれ量θ
2を取得することができる。
【0152】
なお、参照点P11が、ロボット座標系C1のz軸方向において中心軸A1よりも参照点P2に近い位置となるように、上述のΔ4が設定されてもよい。この構成によれば、ステップS53を実行するときにロボット14がエンドエフェクタ42を移動させる移動量を小さくできるので、サイクルタイムを縮減できる。なお、プロセッサ50は、ステップS52でYESと判定したときに、
図16又は
図20に示すフローを実行してもよい。
【0153】
なお、上述の実施形態において、接触力CFを検出可能なセンサ17、又は距離βを検出可能なセンサ72の代わりに、金型20の面22、24、26、28、30上の任意の点の、ロボット座標系C1における位置を取得可能なセンサ(例えば、タッチプローブ)を用いてもよい。この場合、プロセッサ50は、該センサ(タッチプローブ)の検出値から、ロボット座標系C1における上述の点P1(座標Q1)、P2(座標Q3)、P4(座標Q5)、P5(座標Q6)、P6(座標Q7)の位置のデータを直接的に取得できる。センサ17、センサ72、及び、位置を取得可能なセンサ(タッチプローブ)は、いずれも、金型20の面22、24、26、28、30を検出するセンサに相当する。
【0154】
また、上述の実施形態においては、参照点P2、P3、P4、P5、P11が、金型20の左面22上に定められる場合について述べた。しかしながら、これに限らず、参照点P2、P3、P4、P5、P11は、右面24、下面26、及び上面28のいずれに定められてもよい。
【0155】
また、上述の実施形態において、センサ17は、金型20に設けることもできる。例えば、センサ17を、圧力センサ、歪ゲージ又は圧電素子等から構成し、左面22、下面及び後面30に設置する。この場合においても、センサ17は、ロボット14が作業点42aでこれらの面をタッチアップしたときの接触力CFの検出値αを検出できる。同様に、センサ72を、金型20の左面22、下面26及び後面30に設けてもよい。
【0156】
なお、
図6、
図9、
図11、
図16、
図17、
図20、
図21及び
図25に示すフローをプロセッサ50に自動で実行させるコンピュータプログラムが、メモリ52に格納されてもよい。また、金型は、四角形に限らず、六角形又は八角形等、如何なる外形を有してもよい。また、上述の実施形態においては、ツール座標系C2の原点を作業点42aに設定する場合について述べたが、ツール座標系C2は、ロボット座標系C1における位置が既知である、如何なる位置に設定されてもよい。
【0157】
また、ロボット14は、垂直多関節ロボットに限らず、水平多関節ロボット、パラレルリンクロボット等、如何なるタイプのロボットであってもよい。以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
【符号の説明】
【0158】
10,70 成形システム
12 成形機
14 ロボット
16 制御装置
17,72 センサ
20 金型
22,24,26,28,30 金型の面
60 装置
62 第1距離取得部
64 ずれ量取得部
66 第2距離取得部
68 位置取得部
74 補正部