(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022157636
(43)【公開日】2022-10-14
(54)【発明の名称】制御装置、工作装置、制御方法及びコンピュータプログラム
(51)【国際特許分類】
G05B 19/4155 20060101AFI20221006BHJP
【FI】
G05B19/4155 T
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021061972
(22)【出願日】2021-03-31
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】近藤 純平
【テーマコード(参考)】
3C269
【Fターム(参考)】
3C269AB01
3C269AB33
3C269BB14
3C269CC09
3C269KK11
3C269MN07
3C269MN16
3C269PP03
(57)【要約】
【課題】搬送装置が工具に接触することを抑制可能な制御装置、工作装置、制御方法及びコンピュータプログラムを提供する。
【解決手段】制御装置は、工具マガジンを有する工作機械及び該工作機械に対しワークの搬入及び搬出を行い、アームを有する搬送装置の動作を制御する制御装置において、前記工具マガジンに装着した工具の領域を示す工具領域を演算する工具領域演算部と、前記アームの領域を示すアーム領域を演算するアーム領域演算部と、前記工具領域演算部が演算した前記工具領域と前記アーム領域演算部が演算した前記アーム領域とが干渉するか否か判定する干渉判定部と、該干渉判定部にて前記アーム領域が前記工具領域に干渉すると判定した場合、前記搬送装置を停止する停止部とを備える。
【選択図】
図19
【特許請求の範囲】
【請求項1】
工具マガジンを有する工作機械及び該工作機械に対しワークの搬入及び搬出を行い、アームを有する搬送装置の動作を制御する制御装置において、
前記工具マガジンに装着した工具の領域を示す工具領域を演算する工具領域演算部と、
前記アームの領域を示すアーム領域を演算するアーム領域演算部と、
前記工具領域演算部が演算した前記工具領域と前記アーム領域演算部が演算した前記アーム領域とが干渉するか否か判定する干渉判定部と、
該干渉判定部にて前記アーム領域が前記工具領域に干渉すると判定した場合、前記搬送装置を停止する停止部と
を備える制御装置。
【請求項2】
前記干渉判定部は、
前記アーム領域における工具領域側の端点が前記工具領域の境界に干渉可能な第一干渉可能位置にあるか否か判定する第一判定部と、
前記工具領域におけるアーム領域側の端点が前記アーム領域の境界に干渉可能な第二干渉可能位置にあるか否か判定する第二判定部と
を備え、
前記第一判定部にて前記アーム領域における工具領域側の端点が前記第一干渉可能位置になく、且つ、前記第二判定部にて前記工具領域におけるアーム領域側の端点が前記第二干渉可能位置にないと判定した場合、前記アーム領域は前記工具領域に干渉しないと判定する
請求項1に記載の制御装置。
【請求項3】
前記干渉判定部は、
前記第一判定部にて前記アーム領域における工具領域側の端点が前記第一干渉可能位置にあると判定した場合、又は、前記第二判定部にて前記工具領域におけるアーム領域側の端点が前記第二干渉可能位置にあると判定した場合、前記アーム領域及び工具領域が重なるか否か判定する第三判定部と、
前記第三判定部にて、前記アーム領域及び工具領域が重ならないと判定した場合、前記第一干渉可能位置に対応した第一条件又は前記第二干渉可能位置に対応した第二条件に基づいて、前記アーム領域及び工具領域が干渉するか否か判定する第四判定部と、
前記第三判定部にて、前記アーム領域及び工具領域が重なると判定した場合、前記第一条件及び前記第二条件とは異なる第三条件に基づいて、前記アーム領域及び工具領域が干渉するか否か判定する第五判定部と
を有する
請求項2に記載の制御装置。
【請求項4】
前記工具領域が、前記アームの展開時に前記アーム領域が到達不可能な非干渉位置に配置してあるか否か判定する工具領域判定部と、
前記工具領域判定部にて前記工具領域が前記非干渉位置に配置してあると判定した場合、干渉判定の対象から前記工具領域を除外し、前記工具領域判定部にて前記工具領域が前記非干渉位置に配置してないと判定した場合、前記工具領域を干渉判定の対象に決定する第一決定部と
を備える請求項1から3のいずれか一つに記載の制御装置。
【請求項5】
前記アーム領域の姿勢が、前記アームの展開時に前記アーム領域が前記工具領域に到達不可能な非干渉姿勢であるか否か判定する非干渉判定部と、
該非干渉判定部にて前記アーム領域の姿勢が前記非干渉姿勢であると判定した場合、干渉判定の対象から前記アーム領域を除外し、前記非干渉判定部にて前記アーム領域の姿勢が前記非干渉姿勢でないと判定した場合、前記アーム領域を干渉判定の対象に決定する第二決定部と
を備える請求項1から4のいずれか一つに記載の制御装置。
【請求項6】
請求項1から5のいずれか一つに記載の制御装置を備える工作装置。
【請求項7】
工具マガジンを有する工作機械及び該工作機械に対しワークの搬入及び搬出を行い、アームを有する搬送装置の動作を制御する制御方法において、
前記工具マガジンに装着した工具の領域を示す工具領域を演算し、
前記アームの領域を示すアーム領域を逐次的に演算し、
前記アームが前記工作機械内に進入した場合、演算した前記工具領域と演算した前記アーム領域とが干渉するか否か判定し、
前記アーム領域が前記工具領域に干渉すると判定した場合、前記搬送装置を停止する
制御方法。
【請求項8】
工具マガジンを有する工作機械及び該工作機械に対しワークの搬入及び搬出を行い、アームを有する搬送装置の動作を制御する制御装置にて実行可能なコンピュータプログラムにおいて、
前記制御装置に、
前記工具マガジンに装着した工具の領域を示す工具領域を演算し、
前記アームの領域を示すアーム領域を逐次的に演算し、
前記アームが前記工作機械内に進入した場合、演算した前記工具領域と演算した前記アーム領域とが干渉するか否か判定し、
前記アーム領域が前記工具領域に干渉すると判定した場合、前記搬送装置を停止する
処理を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、ワークを加工する工作機械及びワークを搬送する搬送装置の駆動を制御する制御装置、工作装置、制御方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
工作機械及びワークを搬送する搬送装置を有する工作装置がある。工作装置には外部装置が接続可能である。操作者は外部装置を操作し、工作機械及び搬送装置に動作を教示する(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
搬送装置はアームを備える。工作機械は複数の工具を収納する工具マガジンを備える。アームを工作機械の内側に入れてアームの動作を工作装置に教示している場合、アームが工具に接触するおそれがある。
【0005】
本開示は斯かる事情に鑑みてなされたものであり、搬送装置が工具に接触することを抑制可能な制御装置、工作装置、制御方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の一実施形態に係る制御装置は、工具マガジンを有する工作機械及び該工作機械に対しワークの搬入及び搬出を行い、アームを有する搬送装置の動作を制御する制御装置において、前記工具マガジンに装着した工具の領域を示す工具領域を演算する工具領域演算部と、前記アームの領域を示すアーム領域を演算するアーム領域演算部と、前記工具領域演算部が演算した前記工具領域と前記アーム領域演算部が演算した前記アーム領域とが干渉するか否か判定する干渉判定部と、該干渉判定部にて前記アーム領域が前記工具領域に干渉すると判定した場合、前記搬送装置を停止する停止部とを備える。
【0007】
本開示の一実施形態においては、各工具の工具領域を演算し、アームの動作中、アーム領域を逐次演算する。アーム領域と工具領域とが干渉する場合、搬送装置を停止する。
【0008】
本開示の一実施形態に係る制御装置は、前記干渉判定部は、前記アーム領域における工具領域側の端点が前記工具領域の境界に干渉可能な第一干渉可能位置にあるか否か判定する第一判定部と、前記工具領域におけるアーム領域側の端点が前記アーム領域の境界に干渉可能な第二干渉可能位置にあるか否か判定する第二判定部とを備え、前記第一判定部にて前記アーム領域における工具領域側の端点が前記第一干渉可能位置になく、且つ、前記第二判定部にて前記工具領域におけるアーム領域側の端点が前記第二干渉可能位置にないと判定した場合、前記アーム領域は前記工具領域に干渉しないと判定する。
【0009】
本開示の一実施形態においては、アーム領域における工具領域側の端点が第一干渉可能位置になく、且つ、工具領域におけるアーム領域側の端点が第二干渉可能位置にないと判定した場合、アーム領域は工具領域に干渉しないと判定する。
【0010】
本開示の一実施形態に係る制御装置は、前記干渉判定部は、前記第一判定部にて前記アーム領域における工具領域側の端点が前記第一干渉可能位置にあると判定した場合、又は、前記第二判定部にて前記工具領域におけるアーム領域側の端点が前記第二干渉可能位置にあると判定した場合、前記アーム領域及び工具領域が重なるか否か判定する第三判定部と、前記第三判定部にて、前記アーム領域及び工具領域が重ならないと判定した場合、前記第一干渉可能位置に対応した第一条件又は前記第二干渉可能位置に対応した第二条件に基づいて、前記アーム領域及び工具領域が干渉するか否か判定する第四判定部と、前記第三判定部にて、前記アーム領域及び工具領域が重なると判定した場合、前記第一条件及び前記第二条件とは異なる第三条件に基づいて、前記アーム領域及び工具領域が干渉するか否か判定する第五判定部とを有する。
【0011】
本開示の一実施形態においては、アーム領域における工具領域側の端点が第一干渉可能位置にあると判定するか、又は、工具領域におけるアーム領域側の端点が第二干渉可能位置にあると判定した場合、更に、アーム領域及び工具領域が重なるか否か判定する。アーム領域及び工具領域が重ならない場合、第一条件又は第二条件に基づいて、アーム領域及び工具領域が干渉するか否か判定する。アーム領域及び工具領域が重なる場合、第三条件に基づいて、アーム領域及び工具領域が干渉するか否か判定する。
【0012】
本開示の一実施形態に係る制御装置は、前記工具領域が、前記アームの展開時に前記アーム領域が到達不可能な非干渉位置に配置してあるか否か判定する工具領域判定部と、前記工具領域判定部にて前記工具領域が前記非干渉位置に配置してあると判定した場合、干渉判定の対象から前記工具領域を除外し、前記工具領域判定部にて前記工具領域が前記非干渉位置に配置してないと判定した場合、前記工具領域を干渉判定の対象に決定する第一決定部とを備える。
【0013】
本開示の一実施形態においては、工具領域が、アームの展開時にアーム領域が到達不可能な非干渉位置に配置してある場合、干渉判定の対象から工具領域を除外する。非干渉位置に配置してない工具領域のみを干渉判定の対象とする。
【0014】
本開示の一実施形態に係る制御装置は、前記アーム領域の姿勢が、前記アームの展開時に前記アーム領域が前記工具領域に到達不可能な非干渉姿勢であるか否か判定する非干渉判定部と、該非干渉判定部にて前記アーム領域の姿勢が前記非干渉姿勢であると判定した場合、干渉判定の対象から前記アーム領域を除外し、前記非干渉判定部にて前記アーム領域の姿勢が前記非干渉姿勢でないと判定した場合、前記アーム領域を干渉判定の対象に決定する第二決定部とを備える。
【0015】
本開示の一実施形態においては、アーム領域の姿勢が、アームの展開時にアーム領域が工具領域に到達不可能な非干渉姿勢である場合、干渉判定の対象からアーム領域を除外する。アーム領域の姿勢が非干渉姿勢でない場合にのみ、アーム領域を干渉判定の対象とする。
【0016】
本開示の一実施形態に係る工作装置は、上述の制御装置を備える。
【0017】
本開示の一実施形態においては、各工具の工具領域を演算し、アームの動作中、アーム領域を逐次演算する。アーム領域と工具領域とが干渉する場合、搬送装置を停止する。
【0018】
本開示の一実施形態に係る制御方法は、工具マガジンを有する工作機械及び該工作機械に対しワークの搬入及び搬出を行い、アームを有する搬送装置の動作を制御する制御方法において、前記工具マガジンに装着した工具の領域を示す工具領域を演算し、前記アームの領域を示すアーム領域を逐次的に演算し、前記アームが前記工作機械内に進入した場合、演算した前記工具領域と演算した前記アーム領域とが干渉するか否か判定し、前記アーム領域が前記工具領域に干渉すると判定した場合、前記搬送装置を停止する。
【0019】
本開示の一実施形態においては、各工具の工具領域を演算し、アームの動作中、アーム領域を逐次演算する。アーム領域と工具領域とが干渉する場合、搬送装置を停止する。
【0020】
本開示の一実施形態に係るコンピュータプログラムは、工具マガジンを有する工作機械及び該工作機械に対しワークの搬入及び搬出を行い、アームを有する搬送装置の動作を制御する制御装置にて実行可能なコンピュータプログラムにおいて、前記制御装置に、前記工具マガジンに装着した工具の領域を示す工具領域を演算し、前記アームの領域を示すアーム領域を逐次的に演算し、前記アームが前記工作機械内に進入した場合、演算した前記工具領域と演算した前記アーム領域とが干渉するか否か判定し、前記アーム領域が前記工具領域に干渉すると判定した場合、前記搬送装置を停止する処理を実行させる。
【0021】
本開示の一実施形態においては、各工具の工具領域を演算し、アームの動作中、アーム領域を逐次演算する。アーム領域と工具領域とが干渉する場合、搬送装置を停止する。
【発明の効果】
【0022】
本開示の一実施形態に係る制御装置、工作装置、制御方法及びコンピュータプログラムにあっては、各工具の工具領域を演算し、アームの動作中、アーム領域を逐次演算する。アーム領域と工具領域とが干渉する場合、搬送装置を停止し、搬送装置が工具に接触することを抑制することができる。
【図面の簡単な説明】
【0023】
【
図4】搬送装置を略示する部分拡大右側面図である。
【
図6】第一アーム、第二アーム、及び第二アーム領域を示す模式的正面図
【
図7】第二アーム領域の寸法を示す模式的左側面図である。
【
図9】工具マガジンの中心軸を水平にした場合における各工具の位置を略示する正面図である。
【
図10】工具マガジンの中心軸を水平にした場合における工具マガジン及び工具領域を略示する正面図
【
図11】工具マガジンの中心軸を水平にした場合における位置P1付近の構成を略示する右側面図である。
【
図12】工具マガジン6の中心軸を水平にした場合における位置P2付近の構成を略示する右側面図である。
【
図13】位置P1の座標変換を説明する右側面図である。
【
図14】位置P2の座標変換を説明する右側面図である。
【
図15】先端点Q2の座標変換を説明する右側面図である。
【
図16】工具マガジンと工具領域を示す正面図である。
【
図17】第一アーム、第二アーム及び第二アーム領域を示す正面図である。
【
図18】第一傾き状態であり且つθcが90°未満である場合における工具領域F及び第二アーム領域を略示する正面図である。
【
図19】第一傾き状態であり且つθcが90°未満である場合における第二アーム領域と工具領域との干渉状態を略示する正面図である
【
図20】第二アーム領域の各頂点を示す立体図である。
【
図21】干渉状態Aに該当するか否かを説明する右側面図である。
【
図22】干渉状態Bに該当するか否かを説明する右側面図である。
【
図23】干渉状態Cに該当するか否かを説明する右側面図である。
【
図24】干渉状態Dに該当するか否かを説明する右側面図である。
【
図25】干渉状態Eに該当するか否かを説明する右側面図である。
【
図26】第一傾き状態であり且つθcが90°以上である場合における工具領域及び第二アーム領域を略示する正面図である。
【
図27】第一傾き状態であり且つθcが90°以上である場合における第二アーム領域と工具領域との干渉状態を略示する正面図である。
【
図28】第二傾き状態であり且つθcが90°未満である場合における工具領域及び第二アーム領域を略示する正面図である。
【
図29】第二傾き状態であり且つθcが90°未満である場合における第二アーム領域と工具領域との干渉状態を示す図である。
【
図30】第二傾き状態であり且つθcが90°以上である場合における工具領域及び第二アーム領域を略示する正面図である。
【
図31】第二傾き状態であり且つθcが90°以上である場合における第二アーム領域と工具領域との干渉状態を示す図である。
【
図32】制御装置による干渉判定処理を説明するフローチャートである。
【発明を実施するための形態】
【0024】
以下本発明を実施の形態に係る工作装置を示す図面に基づいて説明する。
図1は、工作装置を略示する斜視図、
図2は、工作装置を略示する正面断面図である。以下の説明では、図の上下前後左右を使用する。
【0025】
図1及び
図2に示す如く、工作装置は、工作機械1及び搬送装置20を備える。工作機械1は、基台2と、該基台2に設けた立柱3とを備える。立柱3は主軸ヘッド(図示略)を上下動可能に支持する。主軸ヘッドは、上下方向を回転軸方向とした主軸4を回転可能に支持する。主軸ヘッドの上端に主軸モータ5が設けてある。主軸モータ5の駆動によって主軸4は回転する。
【0026】
立柱3はタレット型の工具マガジン6を支持する。工具マガジン6は主軸ヘッドの前側に配置してある。工具マガジン6の周囲に複数の工具7が保持してある。工具マガジン6にはマガジンモータ17(
図5参照)が設けてある。マガジンモータ17の駆動によって工具マガジン6は工具7を交換位置に割り出す。主軸ヘッドの上下動によって、主軸4に対する工具7の取付及び取り外しを行う。主軸4の下方に左右方向及び前後方向に移動可能なテーブル15が配置してある。テーブル15は治具15aを備える。治具15aはワーク16の保持及び保持の解除を行う。
【0027】
工作機械1の前側、後側、右側及び左側をカバー8が覆う。カバー8の前面に扉9が設けてある。扉9の右側に、作業者の操作を受け付ける操作部11及び画像を表示する表示部12が設けてある。カバー8の後側に制御装置10が設けてある。カバー8の右面に側面扉13が設けてある。
【0028】
図3は、搬送装置20を略示する部分拡大斜視図、
図4は、搬送装置20を略示する部分拡大右側面図である。側面扉13の右側に搬送装置20は配置してある。搬送装置20は、支持部30、第一アーム31、第二アーム32及びハンド33を備える。
【0029】
支持部30の上端部に、第一減速機31aが設けてある。第一減速機31aは第一モータ36(
図5参照)に連結する。第一減速機31aの出力軸は前後方向を回転軸方向とし、後方に突出する。第一アーム31は第一減速機31aの後側に位置する。第一減速機31aの出力軸に第一アーム31の一端部が連結する。第一アーム31の他端部の後側に、第二減速機32aが設けてある。第二減速機32aは第二モータ37(
図5参照)に連結する。第二減速機32aの出力軸は前後方向を回転軸方向とし、後方に突出する。第二減速機32aの出力軸に第二アーム32の一端部が連結する。第一モータ36の駆動によって、第一アーム31は第一減速機31aの回転軸回りに回転し、第二モータ37の駆動によって、第二アーム32は第二減速機32aの回転軸回りに回転する。
【0030】
第二アーム32の他端部に第三減速機33aが設けてある。第三減速機33aは第三モータ38(
図5参照)に連結する。第三減速機33aの出力軸は前後方向を回転軸方向とし、後方に突出する。第三減速機33aの出力軸にハンド33は連結する。ハンド33は、正面視L形の回転板34と、二つの把持部35とを備える。回転板34の各端部に把持部35が配置してある。把持部35は、対向する二つの板部を有する。一方の板部は回転板34に固定してあり、他方の板部は、一方の板部に対して接近及び離隔可能に、回転板34に設けてある。他方の板部が一方の板部に接近し、ワーク16を把持する。他方の板部が一方の板部から離隔し、ワーク16を離す。
【0031】
図4に示すJ1軸31bは第一減速機31aの回転軸であり、J2軸32bは、第二減速機32aの回転軸であり、J3軸33bは第三減速機33aの回転軸である。
【0032】
搬送装置20は機械前後方向に駆動するサドル41を有する駆動系40を備える。駆動系40は支持部30を支持する。基台2は、駆動系40に連結し、駆動系40を支持する。駆動系40はリニアガイド及びボールねじを有し、搬送装置20が前後方向に直動するよう構成してある。またボールねじにカップリングを介して第四モータ42(
図5参照)が設けてある。
【0033】
第一減速機31aの上側にエアシリンダ50が設けてある。エアシリンダ50は、側面扉13と搬送装置20を連結する。この連結により搬送装置20の前方向への駆動により側面扉13が開かれ、工作機械内へ第一アーム31、第二アーム32、ハンド33を侵入させることが可能になる。また搬送装置20の後方向への駆動により側面扉13が閉じる。
【0034】
図5は、工作装置のブロック図である。制御装置10は、CPU10a、RAM10b及び記憶部10c等を備える。記憶部10cは、不揮発性メモリ、ハードディスク等である。不揮発性メモリは、例えばEPROM、EEPROM等である。記憶部は制御プログラムを記憶し、第一アーム31、第二アーム32及びハンド33の寸法を記憶し、また各工具7の寸法、工具マガジン6の周方向における各位置Pnと、各位置Pnに装着した各工具7との関係を示す表を記憶する。CPU10aは記憶部10cに記憶した制御プログラムをRAMに読み込み、工作装置の動作を制御する。
【0035】
第一モータ36はエンコーダ36aを備える。第二モータ37はエンコーダ37aを備える。第三モータ38はエンコーダ38aを備える。第四モータ42はエンコーダ42aを備える。マガジンモータ17はエンコーダ17aを備える。
【0036】
CPU10aは、第一モータ36、第二モータ37、第三モータ38、第四モータ42、マガジンモータ17に駆動信号を出力する。各エンコーダ36a、37a、38a、42a、17aは各モータの位置を制御装置10に出力する。CPU10aは、第一モータ36、第二モータ37、第三モータ38、第四モータ42の位置に基づき第一アーム31、第二アーム32、ハンド33の前後左右上下位置を演算する。またCPU10aはマガジンモータ17の位置に基づき、各工具7の位置を演算する。
【0037】
制御装置10には外部装置、例えば教示装置51を接続可能である。教示装置51を操作することによって、第一アーム31、第二アーム32及びハンド33の動作を制御装置10に教示することができる。制御装置10は教示装置51からの教示に従って、第一アーム31、第二アーム32及びハンド33を駆動する。制御装置10は、教示中にアームが工具に干渉するか否か判定し、干渉すると判定した場合、搬送装置20を停止する。
【0038】
以下、制御装置10による干渉判定処理について説明する。以下の説明において、X方向は左右方向を示し、右側を正側とし、左側を負側とする。Y方向は前後方向を示し、後側を正側とし、前側を負側とする。Z方向は上下方向を示し、上側を正側とし、下側を負側とする。
【0039】
第一アーム31は工具7に接触不可であり、ハンド33は教示装置51の操作者が注目する部分であり、干渉が発生し難い。第二アーム32は工具7に接触可能であり、ハンド33に比べて、操作者が注目を失念する部分であり、干渉が発生しやすい。故に干渉判定処理においては、第二アーム32と工具7との干渉の有無について判定する。
【0040】
図6は、第一アーム31、第二アーム32、及び第二アーム領域132を示す模式的正面図、
図7は、第二アーム領域132の寸法を示す模式的左側面図である。記憶部10cは、第一アーム31の長さD1、第二アーム32の長さD2、第二アーム32の上下幅D3、第二アーム32の左右幅D4を予め記憶する。CPU10aは、D1~D4に基づいて、第二アーム32の領域を示す第二アーム領域132の座標を演算する。
【0041】
第二アーム領域132は第二アーム32を囲む直方体の領域である。D2~D4は第二アーム領域132の直交する三辺の長さを決定し、体積及び形状を決定する。第二アーム領域132の座標は、第二アーム領域132の体積及び形状、長さD1、J1軸31b周りの第一アーム31の位置、支持部30の前後位置、J2軸32b周りの第二アーム領域132の位置等によって決定する。
【0042】
図8は、工具領域を説明する説明図である。CPU10aは、各工具7に対して工具領域Fを演算する。工具7は工具ホルダ7a及び刃部7bを備える。工具ホルダ7a及び刃部7bは筒形である。
図8の左側に示すように、工具ホルダ7aの直径Aが刃部7bの直径Cよりも大きい場合、CPU10aは左右寸法A、前後寸法A及び上下寸法Bを有する直方体の領域、即ち工具領域Fの座標を演算する。干渉判定処理においては、第二アーム領域132と工具領域Fとの干渉の有無について判定する。
【0043】
図8の右側に示すように、刃部7bの直径Cが工具ホルダ7aの直径Aよりも大きい場合、CPU10aは左右寸法C、前後寸法C及び上下寸法Bを有する直方体の領域、即ち工具領域Fを演算する。
【0044】
図9は、工具マガジン6の中心軸を水平にした場合における各工具7の位置を略示する正面図である。
図9及び後述の
図10のKは工具マガジン6の中心軸又は中心点を示す。
【0045】
CPU10aは、工具マガジン6に装着した工具7の座標を演算する。工具マガジン6の周縁部に、工具7を装着する位置P1、P2、P3、・・・、Pnが周方向に等間隔で並ぶ。工具マガジン6は、前後方向に延びる中心軸Kが前側に向かうに従って下降するように傾斜している。工具マガジン6はZ軸に対してθmの角度で傾斜する(
図13参照)。CPU10aは、まず中心軸Kを水平にした状態、即ちθmを0にした状態での位置Pnを演算する。
【0046】
図9に示すように、工具マガジン6の中心点のX、Y、Z座標を原点(0、0、0)とする。位置P1は工具マガジン6の最下位置であり、主軸の軸線上にある位置である。位置P1のX、Y、Z座標は(0、0、―R)となる。なおRは工具マガジン6の半径である。位置Pn-1とPnとの間の角度は360°/Uである。なおUは工具マガジン6に装着可能な工具7の最大数である。位置P1を基準にして正面視反時計回りに、360°/Uずつ角度をずらした位置が、位置P2、P3、・・・Pnである。
【0047】
位置PnのX座標をXn、Z座標をZnとする。
Xn=R・sin((n-1)・360°/U)
Zn=-R・cos((n-1)・360°/U)
CPU10aは、上記の式に基づき位置P2、P3、・・・、PnのX、Z座標を演算する。尚、中心軸Kは水平なので、Y座標は何れの位置Pnも0である。
【0048】
図10は、工具マガジン6の中心軸を水平にした場合における工具マガジン6及び工具領域Fを略示する正面図、
図11は、工具マガジン6の中心軸を水平にした場合における位置P1付近の構成を略示する右側面図である。CPU10aは、各位置Pnに各工具7の工具領域Fを追加し、工具領域Fの先端点のX、Y、Z座標を演算する。工具領域Fの先端点は、工具領域Fの先端面の中心点である。先端面は工具領域Fの中心軸Kから遠い方の面である。工具領域Fの先端面の反対側の面の中心点の位置は、位置Pnである。
図11に示す如く、工具領域Fは、先端が前側に向くように工具マガジン6に対して傾斜する。工具領域FとY軸に直角な面とがなす角度はθtである。位置P1において、工具領域Fの先端点Q1のX、Y、Z座標は、Q1(0、-Bsinθt、-(R+Bcosθt))となる。
【0049】
図12は、工具マガジン6の中心軸を水平にした場合における位置P2付近の構成を略示する右側面図である。上述の位置P2のX、Y、Z座標を(xP2、yP2、zP2)とした場合、先端点Q2のX、Y、Z座標は、(xP2+B・cosθt・sin(360°/U)、yP2-Bsinθt、zP2-B・cosθt・cos(360°/U)となる。位置P3、P4、・・・、Pn、及び先端点Q3、Q4、・・・、Qnの座標も同様である。
【0050】
次にCPU10aは、位置P1、P2、P3、・・・、Pnの座標を変換する。具体的には、中心軸Kが前側に向かうに従って下降するように、Z軸に対して角度θm傾斜した工具マガジン6に対応した位置になるように、座標を変換する。
【0051】
図13は、位置P1の座標変換を説明する右側面図である。
図13に示す如く、位置P1の座標変換後の位置をP1′とする。位置P1と位置P1′とのY方向の差分をΔyとすると、
Δy=Rsinθm
となる。位置P1と位置P1′とのZ方向の差分をΔzとすると、
Δz=R(1-cosθm)
となる。従って位置P1′のX、Y、Z座標は、(0、Rsinθm、-Rcosθm)となる。また、先端点Q1の座標変換後のX、Y、Z座標は、(0、Rsinθm、-(Rcosθm+B))となる。
【0052】
図14は、位置P2の座標変換を説明する右側面図である。位置P2の座標変換後の位置をP2′とする。位置P2と位置P2′とのY方向の差分をΔyとすると、
Δy=Rcos(360°/U)・sinθm
となる。位置P2と位置P2′とのZ方向の差分をΔzとすると、
Δz=Rcos(360°/U)・(1-cosθm)
となる。従って位置P2′のX、Y、Z座標は、(Rsin(360°/U)、Rcos(360°/U)・sinθm、-Rcos(360°/U)・cosθm)となる。位置P3、・・・、Pnの座標変換も位置P2と同様である。
【0053】
図15は、先端点Q2の座標変換を説明する右側面図である。座標変換後の先端点をQ2′とする。点Gは、∠Q2KQ2′の二等分線と線分Q2Q2′との交点である。点Hは、Kを通るZ軸に平行な直線と、Q2を通りY軸に平行な直線との交点である。∠Q2KQ2′をθaとし、∠Q2KHをθbとすると、
|Q2Q2′|=2|KQ2|sin(θa/2)となり、
θb=cos
-1(|KH|/|KQ2|)となる。
Q2の座標は既知なので、|KQ2|も既知である。Hの座標はK及びQ2の座標から演算できるので、|KH|も演算できる。また
∠Q2′Q2I=90°-θb-((180°-θa)/2)=(θa/2)-cos
-1(|KH|/|KQ2|)
となる。
【0054】
先端点Q2と先端点Q2′とのY方向の差分をΔyとすると、
Δy=|Q2Q2′|・cos∠Q2′Q2I=2|KQ2|・sin(θa/2)・cos(θa/2-cos-1(|KH|/|KQ2|))
となる。先端点Q2と先端点Q2′とのZ方向の差分をΔzとすると、
Δz=|Q2Q2′|・sin∠Q2′Q2I=2|KQ2|・sin(θa/2)・sin(θa/2-cos-1(|KH|/|KQ2|))
となる。
従って、先端点Q2′のX、Y、Z座標は、(xP2+B・cosθt・sin(360°/U)、yP2-Bsinθt+Δy、zP2-B・cosθt・cos(360°/U)+Δz)となる。
先端点Q3、Q4、・・・、Qnの座標変換後の先端点Q3′、Q4′、・・・、Qn′の座標についても、先端点Q2と同様に演算する。
【0055】
図16は、工具マガジン6と工具領域Fを示す正面図である。制御装置10は、各工具領域Fが、第一アーム31及び第二アーム32の展開時に、第二アーム32が到達不可能な非干渉位置に配置してあるか否か判定する。本実施例においては、工作機械1の右側に搬送装置20が配置してあるので、工具マガジン6の左側に位置する工具領域Fは非干渉位置にある(
図16のハッチングで示した工具領域F参照)。尚、工作機械1の左側に搬送装置20が配置してある場合には、工具マガジン6の右側に位置する工具領域Fが非干渉位置にある。
【0056】
工具領域Fは非干渉位置にあるか否かの判定は例えば以下のように行う。工具領域Fにおいて、位置P′nと先端点Q′nとのX座標を比較し、先端点Q′nのX座標が位置P′nのX座標よりも小さい場合、工具領域Fは非干渉位置にあると判定する。制御装置10は非干渉位置にあると判定した工具領域Fを干渉判定の対象から除外する。
【0057】
図17は、第一アーム31、第二アーム32及び第二アーム領域132を示す正面図である。制御装置10は、第二アーム領域132の姿勢が工具領域Fに到達不可能な非干渉姿勢であるか否か判定する。例えば、
図17に示す如く、第二アーム領域132の先端が第一アーム31よりも右側に位置する場合、工作機械1の外側に第二アーム領域132は位置するので、第二アーム領域132の姿勢は非干渉姿勢である。
【0058】
制御装置10は、XZ平面において、X軸のZ軸側と第二アーム領域132の長手方向に延びる下面とがなす角度、即ち、第二アーム領域132の前記下面からX軸に向けて延長線を引いた場合に、前記延長線と、前記延長線及びX軸の交点よりも左側部分とがなす角度θnが、X軸のZ軸側と工具領域Fの長手方向に延びる下面とがなす角度、即ち工具領域Fの前記下面からX軸に向けて延長線を引いた場合に、前記延長線と、前記延長線及びX軸の交点よりも左側部分とがなす角度θs(
図18参照)よりも小さい第一傾き状態であるか、又は、X軸のZ軸側と第二アーム領域132の下面とがなす角度θnが、X軸のZ軸側と工具領域Fの下面とがなす角度θsよりも大きい第二傾き状態であるか、判定する。制御装置10は、第一傾き状態である場合及び第二傾き状態である場合について、夫々干渉判定を実行する。第一傾き状態及び第二傾き状態の詳細は後述する。
【0059】
図18は、第一傾き状態であり且つθcが90°未満である場合における工具領域F及び第二アーム領域132を略示する正面図である。
図18に示す如く、XZ平面にて、工具領域Fの傾きの大きさは第二アーム領域132の傾きの大きさよりも大きい。即ち第一傾き状態にある。
図18に示す如く、工具領域Fの長手方向に沿う上面Taの左端をT1とし、反時計回りに残り三つの角をT2、T3、T4とする。角T3及び角T4の間の面は右面Tbである。第二アーム領域132の長手方向に沿う上面Aaの左端をA1とし、反時計回りに残り三つの角をA2、A3、A4とする。角A1及び角A2の間の面は左面Abである。
【0060】
θcは第二アーム領域132の上面Aaと工具領域Fの上面Taとがなす角度である。角度θcは、上面Aaから時計回りに形成する角度である。
図18にてθcは90°未満である。
【0061】
図19は、第一傾き状態であり且つθcが90°未満である場合における第二アーム領域132と工具領域Fとの干渉状態を略示する正面図である。
図19に示す如く、θcが90°未満である場合、第二アーム領域132と工具領域Fとの干渉状態として、五つの干渉状態A~Eがある。干渉状態Aは、角A2が上面Taに接触する状態である。干渉状態Bは、角T4が左面Abに接触する状態である。干渉状態Cは、角A1が右面Tbに接触する状態である。干渉状態Dは、角T3が上面Aaに接触する状態である。干渉状態Eは、第二アーム領域132と工具領域Fとが重なる状態である。
【0062】
干渉状態A及び干渉状態Cは、第二アーム領域132における工具領域F側の端点A1又はA2が第一干渉可能位置にある状態である。干渉状態A及び干渉状態Cであるか否かを判定するCPU10aは第一判定部を構成する。干渉状態B及び干渉状態Dは、工具領域Fにおける第二アーム領域132側の端点T3又はT4が第二干渉可能位置にある状態である。干渉状態B及び干渉状態Dであるか否かを判定するCPU10aは第二判定部を構成する。
【0063】
以下、各角のX、Y、Z座標を、各角にx、y、zを付けて表記する。例えば、角A1のX、Y、Z座標はそれぞれ、A1x、A2y、A3zとなる。
干渉状態Aとなるためには以下の条件Aを少なくとも満たす必要がある。
条件A:A2x≦T4x、且つ、min{T1z、T4z}≦A2z
なおmin{T1z、T4z}は、T1z及びT4zの小さい方を示す。
干渉状態Bとなるためには以下の条件Bを少なくとも満たす必要がある。
条件B:min{A1x、A2x}≦T4x≦max{A1x、A2x}
である。なおmin{A1x、A2x}は、A1x及びA2xの小さい方を示す。max{A1x、A2x}は、A1x及びA2xの大きい方を示す。
【0064】
干渉状態Cとなるためには以下の条件Cを少なくとも満たす必要がある。
条件C:min{T4x、T3x}≦A1x≦max{T4x、T3x}、且つ、T3z≦A1z≦T4z
である。なおmin{T4x、T3x}は、T4x及びT3xの小さい方を示す。max{T4x、T3x}はT4x及びT3xの大きい方を示す。
【0065】
干渉状態Dとなるためには以下の条件Dを少なくとも満たす必要がある。
条件D:A1x≦T3x≦A4x、且つ、min{A1z、A4z}≦T3z≦max{A1z、A4z}
である。なおmin{A1z、A4z}は、A1z及びA4zの小さい方を示す。max{A1z、A4z}はA1z及びA4zの大きい方を示す。
【0066】
第一傾き状態にあって、且つ、θcが90°未満である場合に、上記条件A~Dのいずれにも該当しない場合、第二アーム領域132と工具領域Fとは干渉しない。
【0067】
上記条件Aに該当する場合であって、且つ、T1x=T4xである場合、干渉状態Aとなる可能性があり、干渉状態Eとなる可能性はない。条件Aに該当し、且つ、T1x≠T4xであり、且つA2が線分T1T4よりも下側にある場合、干渉状態Eとなる可能性がある。
【0068】
上記条件Bに該当する場合であって、且つ、A1x=A2xである場合、干渉状態Bとなる可能性があり、干渉状態Eとなる可能性はない。条件Bに該当する場合であって、且つ、A1x>A2x、且つ、T4が線分A1A2よりも下側にある場合、干渉状態Eとなる。条件Bに該当する場合であって、且つ、A1x<A2x、且つ、T4が線分A1A2よりも上側にある場合、干渉状態Eとなる可能性がある。
【0069】
上記条件Cに該当する場合であって、且つ、T4x=T3xである場合、干渉状態Cとなる可能性があり、干渉状態Eとなる可能性はない。条件Cに該当する場合であって、且つ、T4x>T3x、且つ、A1が線分T4T3よりも上側にある場合、干渉状態Eとなる可能性がある。条件Cに該当する場合であって、且つ、T4x<T3x、且つ、A1が線分T4T3よりも下側にある場合、干渉状態Eとなる可能性がある。
【0070】
上記条件Dに該当する場合であって、且つ、A1x=A4xである場合、干渉状態Dとなる可能性があり、干渉状態Eとなる可能性はない。条件Dに該当し、且つ、A1x≠A4xであり、且つT3がA1A4よりも下側にある場合、干渉状態Eとなる可能性がある。
上述の条件A~Dの何れかを満たすと判定した場合に、更に干渉状態Eに該当するか否かを判定するCPU10aは第三判定部を構成する。
【0071】
図20は、第二アーム領域132の各頂点を示す立体図である。第二アーム領域132は直方体状をなし、角A1~A4は頂点A1~A4に夫々対応する。Y方向における頂点A1~A4に対向する位置に、頂点A5~A8が配置してある。上述の干渉状態A~Eとなる可能性がある場合、制御装置10は、以下の条件に基づいて、工具領域Fと第二アーム領域132とが干渉するか否か判定する。
【0072】
図21は、干渉状態Aに該当するか否かを説明する右側面図である。干渉状態Aとなる可能性がある場合、制御装置10は、上面Taにおいて、頂点A2のZ座標A2zと同じZ座標を有するY座標Tayを演算する。演算したTayが線分A2A6上に存在するか否か判定する。Tayが線分A2A6上に存在する場合、工具領域Fと第二アーム領域132とが干渉すると判定し、Tayが線分A2A6上に存在しない場合、工具領域Fと第二アーム領域132とが干渉しないと判定する。
Tayが線分A2A6上に存在するか否かは第一条件に対応する。
【0073】
図22は、干渉状態Bに該当するか否かを説明する右側面図である。干渉状態Bとなる可能性がある場合、制御装置10は、工具領域Fの角T4のZ座標T4zを演算する。ここで、角T4のZ座標T4zは、XZ平面上の頂点T4(
図19の干渉状態B参照)からY方向に延びる角の各点のZ座標T4zを示す。制御装置10は、Z座標T4zの各Y座標値T4yを演算し、A2y≦T4y≦A6yを満たすY座標値T4yが存在するか否か判定する。A2y≦T4y≦A6yを満たすY座標値T4yが存在する場合、工具領域Fと第二アーム領域132とが干渉すると判定し、A2y≦T4y≦A6yを満たすY座標値T4yが存在しない場合、工具領域Fと第二アーム領域132とが干渉しないと判定する。
A2y≦T4y≦A6yを満たすY座標値T4yが存在するか否かは第二条件に対応する。
【0074】
図23は、干渉状態Cに該当するか否かを説明する右側面図である。干渉状態Cとなる可能性がある場合、制御装置10は、右面Tbにおいて、頂点A1のZ座標A1zと同じZ座標を有するY座標Tbyを演算する。演算したTbyが線分A1A5上に存在するか否か判定する。Tbyが線分A1A5上に存在する場合、工具領域Fと第二アーム領域132とが干渉すると判定し、Tbyが線分A1A5上に存在しない場合、工具領域Fと第二アーム領域132とが干渉しないと判定する。
Tbyが線分A1A5上に存在するか否かは第一条件に対応する。
【0075】
図24は、干渉状態Dに該当するか否かを説明する右側面図である。干渉状態Dとなる可能性がある場合、制御装置10は、工具領域Fの角T3のZ座標T3zを演算する。ここで、角T3のZ座標T3zは、XZ平面上の頂点T3(
図19の干渉状態D参照)からY方向に延びる角の各点のZ座標T3zを示す。制御装置10は、Z座標T3zの各Y座標値T3yを演算し、A2y≦T3y≦A6yを満たすY座標値T3yが存在するか否か判定する。A2y≦T3y≦A6yを満たすY座標値T3yが存在する場合、工具領域Fと第二アーム領域132とが干渉すると判定し、A2y≦T3y≦A6yを満たすY座標値T3yが存在しない場合、工具領域Fと第二アーム領域132とが干渉しないと判定する。
A2y≦T3y≦A6yを満たすY座標値T3yが存在するか否かは、第二条件に対応する。
【0076】
図25は、干渉状態Eに該当するか否かを説明する右側面図である。干渉状態Eとなる可能性がある場合、制御装置10は、XY平面上で工具領域Fと重なるアーム領域132において、最小のX座標Axminを演算し、工具領域Fにおいて、Axminでの最大のY座標Tyを演算する。制御装置10はTy<A2yであるか否か判定し、Ty<A2yでない場合、工具領域Fと第二アーム領域132とが干渉すると判定し、Ty<A2yである場合、工具領域Fと第二アーム領域132とが干渉しないと判定する。
Ty<A2yであるか否かは第三条件に対応する。
【0077】
第一条件又は第二条件に基づいて、工具領域Fと第二アーム領域132とが干渉するか否かを判定するCPU10aは第四判定部を構成する。第三条件に基づいて、工具領域Fと第二アーム領域132とが干渉するか否かを判定するCPU10aは第五判定部を構成する。
【0078】
図26は、第一傾き状態であり且つθcが90°以上である場合における工具領域F及び第二アーム領域132を略示する正面図である。
図26にてθcは90°以上である。
図27は、第一傾き状態であり且つθcが90°以上である場合における第二アーム領域132と工具領域Fとの干渉状態を略示する正面図である。
図27に示す如く、θcが90°以上である場合、第二アーム領域132と工具領域Fとの干渉状態として、三つの干渉状態F~Hがある。干渉状態Fは、角A1が上面Taに接触する状態である。干渉状態Gは、角T4が上面Aaに接触する状態である。干渉状態Hは、第二アーム領域132と工具領域Fとが重なる状態である。
【0079】
干渉状態Fは、第二アーム領域132における工具領域F側の端点A1が第一干渉可能位置にある状態である。干渉状態Fであるか否かを判定するCPU10aは第一判定部を構成する。干渉状態Gは、工具領域Fにおける第二アーム領域132側の端点T4が第二干渉可能位置にある状態である。干渉状態Gであるか否かを判定するCPU10aは第二判定部を構成する。
【0080】
干渉状態Fとなるためには以下の条件Fを少なくとも満たす必要がある。
条件F:T1x≦A1x≦T4x、且つ、T4z≦A1z≦T1z
干渉状態Gとなるためには以下の条件Gを少なくとも満たす必要がある。
条件G:A1x≦T4x≦A4x、且つ、A1z≦T4z≦A4z
第一傾き状態にあって、且つ、θcが90°以上である場合に、上記条件F及びGのいずれにも該当しない場合、第二アーム領域132と工具領域Fとは干渉しない。
【0081】
上記条件Fに該当する場合であって、且つ、T1x=T4xである場合、干渉状態Fとなる可能性があり、干渉状態Hとなる可能性はない。条件Fに該当し、且つ、T1x≠T4xであり、且つA1が線分T1T4よりも下側にある場合、干渉状態Hとなる可能性がある。
【0082】
上記条件Gに該当する場合であって、且つ、A1z=A4zである場合、干渉状態Gとなる可能性があり、干渉状態Hとなる可能性はない。条件Gに該当し、且つ、A1z≠A4zであり、且つT4が線分A1A4よりも下側にある場合、干渉状態Hとなる可能性がある。
上述の条件F又はGを満たすと判定した場合に、更に干渉状態Hに該当するか否かを判定するCPU10aは第三判定部を構成する。
【0083】
干渉状態Fとなる可能性がある場合、制御装置10は、上面Taにおいて、頂点A1のZ座標A1zと同じZ座標を有するY座標Tayを演算する。演算したTayが線分A1A5上に存在するか否か判定する。Tayが線分A1A5上に存在する場合、工具領域Fと第二アーム領域132とが干渉すると判定し、Tayが線分A1A5上に存在しない場合、工具領域Fと第二アーム領域132とが干渉しないと判定する。
Tayが線分A1A5上に存在する否かは第一条件に対応する。
【0084】
干渉状態Gとなる可能性がある場合、制御装置10は、工具領域Fの角T4のZ座標T4zを演算する。ここで、角T4のZ座標T4zは、XZ平面上の頂点T4(
図27の干渉状態G参照)からY方向に延びる角の各点のZ座標T4zを示す。制御装置10は、Z座標T4zの各Y座標値T4yを演算し、A1y≦T4y≦A5yを満たすY座標値T4yが存在するか否か判定する。A1y≦T4y≦A5yを満たすY座標値T4yが存在する場合、工具領域Fと第二アーム領域132とが干渉すると判定し、A1y≦T4y≦A5yを満たすY座標値T4yが存在しない場合、工具領域Fと第二アーム領域132とが干渉しないと判定する。
A1y≦T4y≦A5yを満たすY座標値T4yが存在するか否かは第二条件に対応する。
【0085】
干渉状態Hとなる可能性がある場合、干渉状態Eとなる可能性がある場合と同様にして、工具領域Fと第二アーム領域132とが干渉するか否か判定する(
図25参照)。
【0086】
図28は、第二傾き状態であり且つθcが90°未満である場合における工具領域F及び第二アーム領域132を略示する正面図である。
図28に示す如く、XZ平面にて、工具領域Fの傾きの大きさは第二アーム領域132の傾きの大きさよりも小さい。即ち第二傾き状態にある。
図28に示す如く、工具領域Fの長手方向に沿う上面Taの左端をT1とし、反時計回りに残り三つの角をT2、T3、T4とする。角T3及び角T4の間の面は右面Tbである。角T2及び角T3の間の面は下面Tcである。第二アーム領域132の長手方向に沿う上面Aaの左端をA1とし、反時計回りに残り三つの角をA2、A3、A4とする。角A1及び角A2の間の面は左面Abである。角A2及び角A3の間の面は下面Acである。
【0087】
図29は、第二傾き状態であり且つθcが90°未満である場合における第二アーム領域132と工具領域Fとの干渉状態を示す図である。
図29に示す如く、θcが90°未満である場合、第二アーム領域132と工具領域Fとの干渉状態として、五つの干渉状態A′~E′がある。干渉状態A′は、角T4が下面Acに接触する状態である。干渉状態B′は、角A2が右面Tbに接触する状態である。干渉状態C′は、角T3が左面Abに接触する状態である。干渉状態D′は、角A1が下面Tcに接触する状態である。干渉状態E′は、第二アーム領域132と工具領域Fとが重なる状態である。
【0088】
干渉状態A′及び干渉状態C′は、工具領域Fにおける第二アーム領域132側の端点T3又はT4が第二干渉可能位置にある状態である。干渉状態A′及び干渉状態C′であるか否かを判定するCPU10aは第二判定部を構成する。干渉状態B′及び干渉状態D′は、第二アーム領域132における工具領域F側の端点A1又はA2が第一干渉可能位置にある状態である。干渉状態A及び干渉状態Cであるか否かを判定するCPU10aは第一判定部を構成する。
【0089】
干渉状態A′となるためには以下の条件A′を少なくとも満たす必要がある。
条件A:A2x≦T4x、且つ、min{A2z、A3z}≦T4z
なおmin{A2z、A3z}は、A2z及びA3zの小さい方を示す。
干渉状態B′となるためには以下の条件B′を少なくとも満たす必要がある。
条件B:min{T4x、T3x}≦A2x≦max{T4x、T3x}
である。なおmin{T4x、T3x}は、T4x及びT3xの小さい方を示す。max{T4x、T3x}は、T4x及びT3xの大きい方を示す。
【0090】
干渉状態C′となるためには以下の条件C′を少なくとも満たす必要がある。
条件C′:min{A1x、A2x}≦T3x≦max{A1x、A2x}、且つ、A2z≦T3z≦A1z
である。なおmin{A1x、A2x}は、A1x及びA2xの小さい方を示す。max{A1x、A2x}はA1x及びA2xの大きい方を示す。
【0091】
干渉状態D′となるためには以下の条件D′を少なくとも満たす必要がある。
条件D′:T2x≦A1x≦T3x、且つ、min{T3z、T2z}≦A1z≦max{T3z、T2z}
である。なおmin{T3z、T2z}は、T3z及びT2zの小さい方を示す。max{T3z、T2z}はT3z及びT2zの大きい方を示す。
【0092】
第二傾き状態にあって、且つ、θcが90°未満である場合に、上記条件A′~D′のいずれにも該当しない場合、第二アーム領域132と工具領域Fとは干渉しない。
【0093】
上記条件A′に該当する場合であって、且つ、A2x=A3xである場合、干渉状態A′となる可能性があり、干渉状態E′となる可能性はない。条件A′に該当し、且つ、A2x≠A3xであり、且つT4が線分A2A3よりも上側にある場合、干渉状態E′となる可能性がある。
【0094】
上記条件B′に該当する場合であって、且つ、T4x=T3xである場合、干渉状態B′となる可能性があり、干渉状態E′となる可能性はない。条件B′に該当する場合であって、且つ、T4x>T3x、且つ、A2が線分T4T3よりも下側にある場合、干渉状態E′となる。条件Bに該当する場合であって、且つ、T4x<T3x、且つ、A2が線分T4T3よりも上側にある場合、干渉状態E′となる可能性がある。
【0095】
上記条件C′に該当する場合であって、且つ、A1x=A2xである場合、干渉状態C′となる可能性があり、干渉状態E′となる可能性はない。条件C′に該当する場合であって、且つ、A1x>A2x、且つ、T3が線分A1A2よりも下側にある場合、干渉状態E′となる可能性がある。条件C′に該当する場合であって、且つ、A1x<A2x、且つ、T3が線分A1A2よりも上側にある場合、干渉状態E′となる可能性がある。
【0096】
上記条件D′に該当する場合であって、且つ、T3x=T2xである場合、干渉状態D′となる可能性があり、干渉状態E′となる可能性はない。条件D′に該当する場合であって、且つ、T3x≠T2xであり、A1が線分T3T2よりも上側にある場合、干渉状態E′となる可能性がある。
上述の条件A′~D′の何れかを満たすと判定した場合に、更に干渉状態E′に該当するか否かを判定するCPU10aは第三判定部を構成する。
【0097】
図20と同様に、第二アーム領域132は直方体状をなし、角A1~A4は頂点A1~A4に夫々対応する。Y方向における頂点A1~A4に対向する位置に、頂点A5~A8が配置してある。上述の干渉状態A′~E′となる可能性がある場合、制御装置10は、以下の条件に基づいて、工具領域Fと第二アーム領域132とが干渉するか否か判定する。
【0098】
干渉状態A′となる可能性がある場合、制御装置10は、第二アーム領域132の角T4のZ座標T4zを演算する。ここで、角T4のZ座標T4zは、XZ平面上の頂点T4(
図29の干渉状態A′参照)からY方向に延びる角の各点のZ座標T4zを示す。制御装置10は、Z座標T4zの各Y座標値T4yを演算し、A2y≦T4y≦A6yを満たすY座標値T4yが存在するか否か判定する。A2y≦T4y≦A6yを満たすY座標値T4yが存在する場合、工具領域Fと第二アーム領域132とが干渉すると判定し、A2y≦T4y≦A6yを満たすY座標値T4yが存在しない場合、工具領域Fと第二アーム領域132とが干渉しないと判定する。
A2y≦T4y≦A6yを満たすY座標値T4yが存在するか否かは第二条件に対応する。
【0099】
干渉状態B′となる可能性がある場合、制御装置10は、右面Tbにおいて、頂点A2のZ座標A2zと同じZ座標を有するY座標Tbyを演算する。演算したTbyが線分A2A6上に存在するか否か判定する。Tbyが線分A2A6上に存在する場合、工具領域Fと第二アーム領域132とが干渉すると判定し、Tbyが線分A2A6上に存在しない場合、工具領域Fと第二アーム領域132とが干渉しないと判定する。
Tbyが線分A2A6上に存在するか否かは第一条件に対応する。
【0100】
干渉状態C′となる可能性がある場合、制御装置10は、工具領域Fの角T3のZ座標T3zを演算する。ここで、角T3のZ座標T3zは、XZ平面上の頂点T3(
図29の干渉状態C′参照)からY方向に延びる角の各点のZ座標T3zを示す。制御装置10は、Z座標T3zの各Y座標値T3yを演算し、A2y≦T3y≦A6yを満たすY座標値T3yが存在するか否か判定する。A2y≦T3y≦A6yを満たすY座標値T3yが存在する場合、工具領域Fと第二アーム領域132とが干渉すると判定し、A2y≦T3y≦A6yを満たすY座標値T3yが存在しない場合、工具領域Fと第二アーム領域132とが干渉しないと判定する。
A2y≦T3y≦A6yを満たすY座標値T3yが存在するか否かは第二条件に対応する。
【0101】
干渉状態D′となる可能性がある場合、制御装置10は、下面Tcにおいて、頂点A1のZ座標A1zと同じZ座標を有するY座標Tcyを演算する。演算したTcyが線分A1A5上に存在するか否か判定する。Tcyが線分A1A5上に存在する場合、工具領域Fと第二アーム領域132とが干渉すると判定し、Tcyが線分A1A5上に存在しない場合、工具領域Fと第二アーム領域132とが干渉しないと判定する。
Tcyが線分A1A5上に存在するか否かは第一条件に対応する。
【0102】
干渉状態E′となる可能性がある場合、干渉状態Eとなる可能性がある場合と同様に、制御装置10はTy<A2yであるか否か判定し、Ty<A2yでない場合、工具領域Fと第二アーム領域132とが干渉すると判定し、Ty<A2yである場合、工具領域Fと第二アーム領域132とが干渉しないと判定する(
図25参照)。
【0103】
図30は、第二傾き状態であり且つθcが90°以上である場合における工具領域F及び第二アーム領域132を略示する正面図である。
図30にてθcは90°以上である。
図31は、第二傾き状態であり且つθcが90°以上である場合における第二アーム領域132と工具領域Fとの干渉状態を示す図である。
図31に示す如く、θcが90°以上である場合、第二アーム領域132と工具領域Fとの干渉状態として、三つの干渉状態F′~H′がある。干渉状態F′は、角T3が下面Acに接触する状態である。干渉状態G′は、角A2が下面Tcに接触する状態である。干渉状態H′は、第二アーム領域132と工具領域Fとが重なる状態である。
【0104】
干渉状態F′は、工具領域Fにおける第二アーム領域132側の端点T3が第二干渉可能位置にある状態である。干渉状態F′であるか否かを判定するCPU10aは第二判定部を構成する。干渉状態G′は、第二アーム領域132における工具領域F側の端点A2が第一干渉可能位置にある状態である。干渉状態G′であるか否かを判定するCPU10aは第一判定部を構成する。
【0105】
干渉状態F′となるためには以下の条件Fを少なくとも満たす必要がある。
条件F′:A2x≦T3x≦A3x、且つ、A3z≦T3z≦A2z
干渉状態G′となるためには以下の条件G′を少なくとも満たす必要がある。
条件G′:T2x≦A2x≦T3x、且つ、T2z≦A2z≦T3z
第二傾き状態にあって、且つ、θcが90°以上である場合に、上記条件F′及びG′のいずれにも該当しない場合、第二アーム領域132と工具領域Fとは干渉しない。
【0106】
上記条件F′に該当する場合であって、且つ、T2x=T3xである場合、干渉状態F′となる可能性があり、干渉状態H′となる可能性はない。条件F′に該当し、且つ、T2x≠T3xであり、且つA2が線分T2T3よりも上側にある場合、干渉状態H′となる可能性がある。
【0107】
上記条件G′に該当する場合であって、且つ、T3x=T4xである場合、干渉状態G′となる可能性があり、干渉状態H′となる可能性はない。条件G′に該当し、且つ、T3x≠T4xであり、且つA2が線分T3T4よりも下側にある場合、干渉状態Hとなる可能性がある。
上述の条件F′又はG′を満たすと判定した場合に、更に干渉状態H′に該当するか否かを判定するCPU10aは第三判定部を構成する。
【0108】
干渉状態F′となる可能性がある場合、制御装置10は、工具領域Fの角T3のZ座標T3zを演算する。ここで、角T3のZ座標T3zは、XZ平面上の頂点T3(
図31の干渉状態F′参照)からY方向に延びる角の各点のZ座標T3zを示す。制御装置10は、Z座標T3zの各Y座標値T3yを演算し、A2y≦T3y≦A6yを満たすY座標値T3yが存在するか否か判定する。A2y≦T3y≦A6yを満たすY座標値T3yが存在する場合、工具領域Fと第二アーム領域132とが干渉すると判定し、A2y≦T3y≦A6yを満たすY座標値T3yが存在しない場合、工具領域Fと第二アーム領域132とが干渉しないと判定する。
A2y≦T3y≦A6yを満たすY座標値T3yが存在するか否かは第二条件に対応する。
【0109】
干渉状態G′となる可能性がある場合、制御装置10は、下面Tcにおいて、頂点A2のZ座標A2zと同じZ座標を有するY座標Tcyを演算する。演算したTcyが線分A2A5上に存在するか否か判定する。Tcyが線分A2A5上に存在する場合、工具領域Fと第二アーム領域132とが干渉すると判定し、Tcyが線分A2A5上に存在しない場合、工具領域Fと第二アーム領域132とが干渉しないと判定する。
Tcyが線分A2A5上に存在するか否かは第一条件に対応する。
【0110】
干渉状態Hとなる可能性がある場合、干渉状態Eとなる可能性がある場合と同様にして、工具領域Fと第二アーム領域132とが干渉するか否か判定する(
図25参照)。
【0111】
図32は、制御装置10による干渉判定処理を説明するフローチャートである。制御装置10は、工具マガジン6の停止中且つ搬送装置20の教示中に干渉判定処理を実行する。CPU10aは、各工具7について、工具領域Fの座標を演算する(S1)。ステップS1において、CPU10aは、エンコーダ17aの検出値、即ち工具マガジン6の回転位置、工具7の寸法、工具マガジン6の周方向における各位置Pn、各位置Pnに装着した各工具7との関係を示す表等に基づいて、工具領域Fの座標を演算する。
【0112】
CPU10aは、上述のように各工具領域Fが非干渉位置にあるか否か判定し、非干渉位置にある工具領域Fを干渉判定の対象から除外する(S2、
図16参照)。即ち、非干渉位置にない工具領域Fを干渉判定の対象に決定する。CPU10aは、第二アーム領域132を演算し(S3)、第二アーム領域132の姿勢が非干渉姿勢であるか否か判定する(S4、
図17参照)。第二アーム領域132の姿勢が非干渉姿勢である場合(S4:YES)、CPU10aはステップS3に処理を戻す。第二アーム領域132の姿勢が非干渉姿勢でない場合(S4:NO)、CPU10aは第二アーム領域132が各工具領域Fに干渉するか否か判定する(S5)。ステップS2の処理を行うCPU10aは、工具領域判定部及び第一決定部を構成する。ステップS4の処理を行うCPU10aは、非干渉判定部及び第二決定部を構成する。
【0113】
ステップS5において、上述したように、CPU10aは第一傾き状態である場合又は第二傾き状態である場合について、干渉判定を実行する。またθcが90°未満である場合又は90°以上である場合について、干渉判定を実行する。
【0114】
第二アーム領域132が各工具領域Fに干渉しない場合(S5:NO)、CPU10aはステップS3に処理を戻す。第二アーム領域132が工具領域Fに干渉する場合(S5:YES)、CPU10aは搬送装置20に停止指令を出力し(S6)、処理を終了する。
【0115】
尚、第二アーム領域132の姿勢が非干渉姿勢でない場合(S4:NO)、及び第二アーム領域132が各工具領域Fに干渉しない場合(S5:NO)、CPU10aは、再度第二アーム領域132を演算する。即ち、アームの動作中、CPU10aは第二アーム領域132を逐次演算し、干渉判定を実行する。
【0116】
実施の形態に係る工作装置にあっては、各工具7の工具領域Fを演算し、アームの動作中、第二アーム領域132を逐次演算する。第二アーム領域132と工具領域Fとが干渉する場合、搬送装置20を停止し、搬送装置20が工具7に接触することを抑制することができる。
【0117】
また第二アーム領域132における工具領域F側の端点A1又はA2が第一干渉可能位置になく、且つ、工具領域Fにおける第二アーム領域132側の端点T3又はT4が第二干渉可能位置にないと判定した場合、第二アーム領域132は工具領域Fに干渉しないと判定する。
【0118】
また第二アーム領域132における工具領域F側の端点A1又はA2が第一干渉可能位置にあると判定するか、又は、工具領域Fにおける第二アーム領域132側の端点T3又はT4が第二干渉可能位置にあると判定した場合、更に、第二アーム領域132及び工具領域Fが重なるか否か判定する。第二アーム領域132及び工具領域Fが重ならない場合、第一条件又は第二条件に基づいて、第二アーム領域132及び工具領域Fが干渉するか否か判定する。第二アーム領域132及び工具領域Fが重なる場合、第三条件に基づいて、第二アーム領域132及び工具領域Fが干渉するか否か判定する。
【0119】
工具領域Fが、アームの展開時に第二アーム領域132が到達不可能な非干渉位置に配置してある場合、干渉判定の対象から工具領域Fを除外する。非干渉位置に配置してない工具領域Fのみを干渉判定の対象とする(
図16参照)。
【0120】
また第二アーム領域132の姿勢が、アームの展開時に第二アーム領域132が工具領域Fに到達不可能な非干渉姿勢である場合、干渉判定の対象から第二アーム領域132を除外する。第二アーム領域132の姿勢が非干渉姿勢でない場合にのみ、第二アーム領域132を干渉判定の対象とする(
図17参照)。
【0121】
また最初にXZ平面、即ち二次元での干渉判定を行い、二次元での干渉判定において、干渉する可能性があると判定された場合にのみ、YZ平面及びXY平面を追加した干渉判定を行う。即ち、二次元での判定において、干渉の可能性がある場合にのみ、三次元での判定を行うので、計算量を削減することができる。計算量の削減によって、移動するアームの位置を逐次計算し、リアルタイムに干渉判定処理を実現することができる。
【0122】
今回開示した実施の形態は、全ての点で例示であって、制限的なものではないと考えられるべきである。各実施例にて記載されている技術的特徴は互いに組み合わせることができ、本発明の範囲は、特許請求の範囲内での全ての変更及び特許請求の範囲と均等の範囲が含まれることが意図される。
【符号の説明】
【0123】
1 工作機械
6 工具マガジン
7 工具
10 制御装置
10a CPU
10b RAM
10c 記憶部
16 ワーク
20 搬送装置