(57)【要約】【課題】ロボットを使用したことが無い工作機械ユーザでも、ロボットプログラム作成に要する時間を短縮できる技術を提供する。【解決手段】工作機械コントローラ１は、操作パネル２及び対話型プログラム作成部９を備え、ロボットの定型化された動作毎に用意されたテンプレート画面を用いてロボットの動作パラメータを設定する。対話型プログラム作成部９は、設定された動作パラメータを用いてロボットプリプログラムを作成し、工作機械プログラムの実行中に当該ロボットプリプログラムを読み出してロボットプリプロセッサ２０に転送する。ロボットプリプロセッサ２０は、ロボットプリプログラムを解釈してロボットコントローラ３０に制御指令を出力する。【選択図】図１
2020071533.tif 000002
【特許請求の範囲】
【請求項１】
工作機械を制御する工作機械コントローラと、
前記工作機械コントローラとデータ送受信可能に接続されるロボットプリプロセッサと、
を備え、
前記工作機械コントローラは、
ロボットの動作パラメータを設定するとともに、ロボットの手動操作が可能な操作パネルと、
設定された前記動作パラメータ及び前記手動操作を用いてロボットプリプログラムを作成するロボットプリプログラム作成手段と、
工作機械プログラムを実行して工作機械を制御するとともに、前記ロボットプリプログラムを前記ロボットプリプロセッサに送信する制御手段と、
ロボットに手動操作情報を通知する通知手段と、
を備え、
前記ロボットプリプロセッサは、
前記工作機械コントローラから送信された前記ロボットプリプログラムを受信し、前記ロボットプリプログラムに従ってロボットを制御するロボットコントローラに制御指令を出力するロボットプリプログラム実行手段と、
前記手動操作情報に基づきロボット制御指令を出力する制御指令出力手段と、
を備える工作機械システム。
【請求項２】
前記工作機械コントローラは、
前記工作機械及び前記ロボットの３Ｄモデルに基づいて前記工作機械と前記ロボットの干渉の有無を確認する干渉確認手段
を備える請求項１に記載の工作機械システム。
【請求項３】
前記ロボットプリプロセッサは、
前記ロボットの関節角度を前記工作機械コントローラに送信する通信手段
を備え、
前記干渉確認手段は、前記ロボットの関節角度を用いて前記工作機械と前記ロボットの干渉の有無を確認する
請求項２に記載の工作機械システム。
【請求項４】
前記工作機械コントローラは、
前記工作機械の３Ｄモデルを前記ロボットプリプロセッサに送信する通信手段
を備え、
前記ロボットプリプログラム実行手段は、前記３Ｄモデルに基づいて前記工作機械との干渉を回避する前記ロボットの経路を生成して前記制御指令を出力する
請求項２に記載の工作機械システム。
【請求項５】
前記工作機械コントローラの前記制御手段は、工作機械プログラムを実行し、前記工作機械プログラムにおいて記述された前記ロボットプリプログラム名に基づいて前記ロボットプリプログラムを前記ロボットプリプロセッサに送信する
請求項１に記載の工作機械システム。
【請求項６】
前記工作機械コントローラの前記ロボットプリプログラム作成手段は、前記ロボットの定型化された動作毎にテンプレート画面を作成して前記操作パネルの表示部に表示し、前記テンプレート画面で前記動作パラメータを設定する
請求項１〜５のいずれかに記載の工作機械システム。
【請求項７】
前記工作機械コントローラの前記ロボットプリプログラム作成手段は、設定された前記動作パラメータを用いて前記ロボットを割り出し、割り出された前記ロボットの位置が前記手動操作により微調整された場合に、微調整後の位置を前記動作パラメータに反映させて前記ロボットプリプログラムを作成する
請求項６に記載の工作機械システム。
【請求項８】
前記工作機械コントローラは、
前記ロボットプリプログラム及び前記３Ｄモデルを記憶する第１記憶手段
を備え、
前記ロボットプリプロセッサは、
前記工作機械コントローラから送信された前記ロボットプリプログラム及び前記３Ｄモデルを記憶する第２記憶手段
を備える請求項１〜４のいずれかに記載の工作機械システム。
【請求項９】
前記ロボットプリプログラム及び前記３Ｄモデルは、前記工作機械プログラムの実行中に前記ロボットプリプログラムの実行要求がある毎に、前記工作機械コントローラの前記第１記憶手段から読み出されて前記ロボットプリプロセッサに送信され、前記第２記憶手段に格納される
請求項８に記載の工作機械システム。
【請求項１０】
前記ロボットプリプロセッサは、前記工作機械コントローラに搭載される
請求項１〜９のいずれかに記載の工作機械システム。
【請求項１１】
前記ロボットプリプロセッサは、前記ロボットコントローラに搭載される
請求項１〜９のいずれかに記載の工作機械システム。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は工作機械システムに関し、特にロボット教示機能を備える工作機械システムに関する。
【背景技術】
【０００２】
近年では、人手不足を背景として、製造業、特に中小企業や町工場などの小規模工場において産業用ロボットを導入して自動化・省人化を進めることが必須課題となっている。
【０００３】
産業用ロボットを動作させる為には、各移動点を教示して移動経路をプログラミングする必要があるが、ロボットを使用したことが無い工作機械ユーザにとっては、新たにロボットの操作方法とプログラミングを覚える必要があり、ロボット導入の障壁となっている。
【０００４】
特許文献１には、ロボット搭載の機械のロボットの操作を機械制御部で可能とする技術が記載されている。ロボットを搭載する射出成形機の制御部とロボット制御部を通信回線で接続し、射出成形機の制御部及び表示装置、入力手段、操作盤には、ロボットの動作プログラムを作成する手段、ロボットと射出成形機の座標系を関係付けるキャリブレーション手段等を備える。射出成形機の制御部で作成されたロボット動作プログラムは通信回線を介してロボット制御部に送られ、ロボットは当該プログラムに基づいて動作する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１５４７１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ロボットを使用したことが無い工作機械ユーザが、ロボットを導入し、加工セルを運用していく際には下記が問題となる。すなわち、
（１）ロボットの操作方法・教示方法・プログラミングを一から学ぶ必要があり、それに加えて工作機械と操作系が異なるため、習熟までに時間を要する。
（２）工作機械とロボットは、それぞれの制御装置で動作が実行され、各制御装置には制御対象を動作させる場合の干渉確認を行う機能を備えることが一般的になっている。しかし、工作機械とロボットが相互に動作する場合、干渉確認するための環境が常に変化することになり干渉確認ができなくなる。処理能力に優れるＰＣ（パーソナルコンピュータ）でのオフライン作業において、工作機械やロボットを含めた加工セルのシミュレーションを実施してプログラムを生成可能な機能も実現されているが、そのシミュレーションは決まったシーケンスでの動作確認であるため、突発的な状態の変化には対応できない。
（３）工作機械とロボットのプログラムは各制御装置で管理する必要があり煩雑になる。ロボットプログラムを実行するためにはロボットコントローラの記憶領域にプログラムを予め読み込ませておき、どの記憶領域のプログラムを実行するかを指令する手法が一般的である。ライン生産方式では段取り替えを行う頻度が少ないため問題となりにくいが、多品種少量生産が必要となる工作機械ユーザでは必然的にプログラム数が増加し、記憶領域に読み込ませる際のヒューマンエラーが発生しやすくなる。この点、ＦＭＳ（フレキシブル生産システム）やＦＭＣ（フレキシブル生産セル）等の上位装置を設けることで自動選択は実現可能であるものの、ロボット導入コストを上げる要因となるため障壁となる。
【０００７】
本発明の目的は、ロボットを使用したことが無い、あるいは必ずしもロボット操作に習熟していない工作機械のユーザでも、ロボットプログラム作成に要する時間を短縮できる技術を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、工作機械を制御する工作機械コントローラと、前記工作機械コントローラとデータ送受信可能に接続されるロボットプリプロセッサとを備え、前記工作機械コントローラは、ロボットの動作パラメータを設定するとともに、ロボットの手動操作が可能な操作パネルと、設定された前記動作パラメータ及び前記手動操作を用いてロボットプリプログラムを作成するロボットプリプログラム作成手段と、工作機械プログラムを実行して工作機械を制御するとともに、前記ロボットプリプログラムを前記ロボットプリプロセッサに送信する制御手段と、ロボットに手動操作情報を通知する通知手段とを備え、前記ロボットプリプロセッサは、前記工作機械コントローラから送信された前記ロボットプリプログラムを受信し、前記ロボットプリプログラムに従ってロボットを制御するロボットコントローラに制御指令を出力するロボットプリプログラム実行手段と、前記手動操作情報に基づきロボット制御指令を出力する制御指令出力手段とを備える工作機械システムである。
【０００９】
本発明の１つの実施形態では、前記工作機械コントローラは、前記工作機械及び前記ロボットの３Ｄモデルに基づいて前記工作機械と前記ロボットの干渉の有無を確認する干渉確認手段を備える。
【００１０】
本発明の他の実施形態では、前記ロボットプリプロセッサは、前記ロボットの関節角度を前記工作機械コントローラに送信する通信手段を備え、前記干渉確認手段は、前記ロボットの関節角度を用いて前記工作機械と前記ロボットの干渉の有無を確認する。
【００１１】
本発明のさらに他の実施形態では、前記工作機械コントローラは、前記工作機械の３Ｄモデルを前記ロボットプリプロセッサに送信する通信手段を備え、前記ロボットプリプログラム実行手段は、前記３Ｄモデルに基づいて前記工作機械との干渉を回避する前記ロボットの経路を生成して前記制御指令を出力する。
【００１２】
本発明のさらに他の実施形態では、前記工作機械コントローラの前記制御手段は、工作機械プログラムを実行し、前記工作機械プログラムにおいて記述された前記ロボットプリプログラム名に基づいて前記ロボットプリプログラムを前記ロボットプリプロセッサに送信する。
【００１３】
本発明のさらに他の実施形態では、前記工作機械コントローラの前記ロボットプリプログラム作成手段は、前記ロボットの定型化された動作毎にテンプレート画面を作成して前記操作パネルの表示部に表示し、前記テンプレート画面で前記動作パラメータを設定する。    
【００１４】
本発明のさらに他の実施形態では、前記工作機械コントローラの前記ロボットプリプログラム作成手段は、設定された前記動作パラメータを用いて前記ロボットを割り出し、割り出された前記ロボットの位置が前記手動操作により微調整された場合に、微調整後の位置を前記動作パラメータに反映させて前記ロボットプリプログラムを作成する。
【００１５】
本発明のさらに他の実施形態では、前記工作機械コントローラは、前記ロボットプリプログラム及び前記３Ｄモデルを記憶する第１記憶手段を備え、前記ロボットプリプロセッサは、前記工作機械コントローラから送信された前記ロボットプリプログラム及び前記３Ｄモデルを記憶する第２記憶手段を備える。
【００１６】
本発明のさらに他の実施形態では、前記ロボットプリプログラム及び前記３Ｄモデルは、前記工作機械プログラムの実行中に前記ロボットプリプログラムの実行要求がある毎に、前記工作機械コントローラの前記第１記憶手段から読み出されて前記ロボットプリプロセッサに送信され、前記第２記憶手段に格納される。
【００１７】
本発明の工作機械コントローラとロボットプリプロセッサは、別個に形成される他に、ロボットプリプロセッサが工作機械コントローラに搭載されていてもよく、あるいはロボットプリプロセッサがロボットコントローラに搭載されていてもよい。
【発明の効果】
【００１８】
本発明によれば、工作機械のユーザは、工作機械コントローラの操作パネルを用いてロボットを手動操作でき、この操作パネルを用いてロボットの動作パラメータを設定することでロボットプリプログラムを作成することができる。また、ロボットの動作パラメータを用い、干渉を回避してロボットを教示点に割り出すことができ、位置の微調整も容易に行うことができる。
【００１９】
また、本発明によれば、工作機械プログラム実行時にロボットプリプログラムを工作機械コントローラからロボットプリプロセッサに送信するので、例えば段取り替え時のプログラム選択ミスを防ぐことができる。
【図面の簡単な説明】
【００２０】
【図１】実施形態の構成ブロック図である。
【図２】実施形態の処理フローチャート（その１）である。
【図３】実施形態の処理フローチャート（その２）である。
【図４】実施形態の処理フローチャート（その３）である。
【図５】実施形態の処理フローチャート（その４）である。
【図６】実施形態の対話型プログラム作成説明図である。
【発明を実施するための形態】
【００２１】
以下、図面に基づき本発明の実施形態について説明する。
【００２２】
図１は、本実施形態のシステム構成図を示す。本システムは、ロボットの操作容易性を追求し、工作機械からロボットに対してタスク実行要求を行うことに特化したシステムである。
【００２３】
本システムは、工作機械コントローラ１、ロボットプリプロセッサ２０、及びロボットコントローラ３０を備える。工作機械コントローラ１とロボットプリプロセッサ２０は、通信回線でデータ送受信可能に接続され、ロボットプリプロセッサ２０とロボットコントローラ３０は、通信回線でデータ送受信可能に接続される。通信回線は、例えばイーサネット（登録商標）であるが、これに限定されない。
【００２４】
まず、工作機械コントローラ１について説明する。
【００２５】
工作機械コントローラ１は、工作機械の動作を制御するコントローラ（数値制御装置）であり、操作パネル２、ロボット操作指令生成部３、ロボットプリプログラム実行要求部４、工作機械操作指令受付部５、干渉確認部６、工作機械３Ｄ（３次元）モデル転送部７、通信部８、対話型プログラム作成部９、ロボット割出支援部１０、工作機械制御部１１、及び記憶部１２を備える。
【００２６】
操作パネル２は、表示部と、工作機械操作用ＵＩ（ユーザインターフェイス）、及びロボット操作用ＵＩから構成される。工作機械ユーザは、ロボット操作用ＵＩを用いてロボットのＪＯＧ（移動動作）やエンドエフェクタを操作する。ロボット操作用ＵＩは、工作機械操作用ＵＩと対話型プログラム作成部９との協働によりロボットプリプログラムを作成する。ロボット操作用ＵＩは、操作情報を工作機械制御部１１に出力する。
【００２７】
ロボット操作指令生成部３は、工作機械制御部１１から出力されたロボット操作用ＵＩの操作情報等を、工作機械コントローラ１とロボットコントローラ３０との間に設けられるロボットプリプロセッサ２０に対する指令に変換する。ロボット操作指令生成部３は、例えば、工作機械操作用ＵＩのオーバーライド値をロボットプリプロセッサ２０に送信することで、オーバイライド操作による動作速度の変更を工作機械とロボットで共有する。また、工作機械操作用ＵＩに備えられるパルスハンドルの入力からロボット動作指令を生成してロボットプリプロセッサ２０に送信することで、ロボットを操作できる。これにより、ロボットのティーチングペンダンドが無くとも、工作機械コントローラ１に備えられた操作パネルのみでロボットの手動操作が可能となり、ロボット操作に不慣れな工作機械ユーザでも直感的に操作し得る。また、ロボット操作指令生成部３は、ロボットプリプロセッサ２０で使用する工作機械の軸位置をロボットプリプロセッサ２０に送信する。
【００２８】
ロボットプリプログラム実行要求部４は、工作機械制御部１１からの実行指令に応じ、ロボットプリプロセッサ２０へ実行要求を送信する。ロボットプリプログラム実行要求部４は、実行要求時、工作機械コントローラ１の記憶部１２に格納されている、指定されたロボットプリプログラムをロボットプリプロセッサ２０に転送する。ロボットプリプログラムの指定は、工作機械プログラム（加工プログラム）に名称を記述することで行う。これにより、工作機械プログラムでマクロを実行するような操作性のまま、ロボットのタスクを工作機械から実行できる。
【００２９】
工作機械操作指令受付部５は、ロボットプリプロセッサ２０から送信された工作機械操作指令を受け付ける。工作機械操作指令受付部５は、ロボットプリプロセッサ２０から受け付けた指令を工作機械制御部１１に転送し、工作機械制御部１１は、当該指令を実行する。工作機械操作指令には、ロボットの関節角度情報も含まれる。
【００３０】
干渉確認部６は、３Ｄモデルを利用して工作機械動作時の干渉確認をリアルタイムに行う。３Ｄモデルは、ワークストッカ等の周辺装置を含む工作機械及びロボットの３Ｄモデルデータから構成される。工作機械の３Ｄモデルデータには、ワークの３Ｄモデルデータも含まれる。干渉確認部６は、工作機械制御部１１から出力されたロボット関節角度を考慮することで、工作機械とロボットが相互に動作する状況においても干渉確認を行う。
【００３１】
工作機械３Ｄモデル転送部７は、記憶部１２に格納され、工作機械コントローラ１で使用する３Ｄモデルを記憶部１２から読み出してロボットプリプロセッサ２０に転送する。この３Ｄモデルは、工具変更など工作機械コントローラ１のシミュレーション環境が変化した場合に、ロボットプリプロセッサ２０のシミュレーション環境を一致させるために使用する。また、工作機械とロボットを同時動作させる際に、ロボットの進入禁止区域を指定する際にも使用する。例えば、工作機械が動作する領域を包含する直方体等の形状をロボットプリプロセッサ２０に送信することで、ロボットプリプロセッサ２０はロボットの進入禁止領域に干渉しないようロボット経路を生成し得る。また、工作機械３Ｄモデル転送部７は、３Ｄモデルに工作機械の軸位置の情報を付加して転送してもよい。
【００３２】
通信部８は、工作機械コントローラ１とロボットプリプロセッサ２０との間の通信処理を実行する。通信部８の一例は上述したようにイーサネット（登録商標）であるが、通信のリアルタイム性や時間同期等が必要となる場合は、それに応じた通信手段を使用し得る。
【００３３】
対話型プログラム作成部９は、工作機械操作用ＵＩとロボット操作用ＵＩとの協働によりロボットプリプログラムを作成する。対話型プログラム作成部９は、ロボットのタスクを予め定型化し、工作機械のユーザが入力したパラメータを含めてロボットプリプログラムを自動生成する。これにより、工作機械のユーザは、パラメータを入力するだけで簡単にロボットプリプログラムを作成してロボットを動作させ得る。また、対話型プログラム作成部９は、ロボット割出支援部１０を実行するためのＵＩを備え、教示点をロボットの現在位置から決定することもできる。対話型プログラム作成部９は、作成したロボットプリプログラムを記憶部１２に格納する。
【００３４】
ロボット割出支援部１０は、指定点へのロボットの割出を支援する。すなわち、対話型プログラム作成部９において位置の微調整が必要となる場合、従来のように工作機械のユーザが教示点までＪＯＧ操作をするのでは作業の難易度が上がってしまう。そこで、ロボット割出支援部１０は、対話型プログラム作成部９で入力されたパラメータを利用して割出用ロボットプリプログラムを自動生成する。ロボット割出支援部１０は、対話型プログラム作成部９に設けられたＵＩから割出実行操作がされた場合に支援処理を実行して割出用ロボットプリプログラムを自動生成し、割出用ロボットプリプログラムを実行要求する工作機械プログラムを自動生成した後、ユーザが起動ボタンを押すことによって指定点まで自動的にロボットを割り出す。割り出し完了後、操作パネル２の手動操作によってロボット位置を微調整し、対話型プログラム作成部９においてロボットの現在位置から教示点を確定する。ロボット割出支援部１０は、自動生成した、割出用ロボットプリプログラム及び割出用ロボットプリプログラムを実行要求する工作機械プログラムを記憶部１２に格納する。
【００３５】
工作機械制御部１１は、工作機械の各部の動作を制御する。本実施形態では、工作機械制御部１１は、特に、ロボット操作用ＵＩの操作情報等をロボット操作指令生成部３に出力するとともに、記憶部１２に記憶されたロボットプリプログラムを読み出してロボットプリプログラム実行要求部４に出力する。
【００３６】
記憶部１２は、ロボットプリプログラム、工作機械プログラム、及び３Ｄモデルを記憶する。ロボットプリプログラムは、ユーザによる操作に応じて対話型プログラム作成部９及びロボット割出支援部１０で作成される。３Ｄモデルは、予め作成されて記憶される。
【００３７】
ロボット操作指令生成部３、ロボットプリプログラム実行要求部４、工作機械操作指令受付部５、干渉確認部６、工作機械３Ｄモデル転送部７、対話型プログラム作成部９、ロボット割出支援部１０、及び工作機械制御部１１は、１又は複数のＣＰＵで構成され得る。１又は複数のＣＰＵは、ＲＯＭ等のプログラムメモリに記憶された処理プログラムを読み出して実行することで、これらの機能を実現する。但し、これらの機能の一部は、プログラムの実行によるソフトウェア処理ではなく、ハードウェア処理により実現してもよい。ハードウェア処理は、例えばＡＳＩＣやＦＰＧＡ（フィールドプログラマブルゲートアレイ）などの回路を用いて行ってもよい。
【００３８】
次に、ロボットプリプロセッサ２０について説明する。
【００３９】
ロボットプリプロセッサ２０は、工作機械コントローラ１とロボットコントローラ３０との連携を取るためのプロセッサである。ロボットプリプロセッサ２０は、単体で存在してもよいし、工作機械コントローラ１に搭載されていてもよく、あるいはロボットコントローラ３０に搭載されていてもよい。単体で存在する場合、もしくは工作機械コントローラ１に搭載される場合、ロボットコントローラ３０の種類（具体的にはロボットコントローラ３０のメーカ）に依存せずにロボットを動作できることが望ましい。加えて、単体で存在する場合もしくはロボットコントローラ３０に搭載される場合、工作機械コントローラ１の種類（具体的には工作機械コントローラ１のメーカ）に依存しないことが望ましい。
【００４０】
ロボットプリプロセッサ２０は、ロボットプリプログラム解釈部２１、ロボットコントローラ制御指令生成部２２、ロボット操作指令受付部２３、ロボットプリプログラム受付部２４、工作機械３Ｄモデル受付部２５、工作機械操作指令生成部２６、通信部２７、２８及び記憶部２９を備える。
【００４１】
ロボットプリプログラム解釈部２１は、ロボット操作指令受付部２３からの制御指令に従い、ロボットプリプロセッサ２０用に用意されたロボットプリプログラムを記憶部２９から読み出して解釈し、ロボットコントローラ制御指令生成部２２に出力する。また、ロボットプリプログラム解釈部２１は、ロボットプリプログラムを解釈した結果、工作機械に対する動作指令を生成する必要がある場合、工作機械操作指令生成部２６に出力する。
【００４２】
ロボットコントローラ制御指令生成部２２は、ロボットプリプログラム解釈部２１で解釈されたロボットプリプログラム指令に従い、記憶部２９から読み出した３Ｄモデルを利用して干渉回避したロボット指令値や、ロボットコントローラ３０に設けられるＩ／Ｏ接点の制御指令など、ロボットコントローラ３０を動作させるための制御指令を生成する。ロボットコントローラ制御指令生成部２２は、生成した制御指令を通信部２８を介してロボットコントローラ３０に送信する。また、ロボットコントローラ制御指令生成部２２は、ロボット操作指令受付部２３から受け取った指令に対する動作も制御する。例えば、ロボット操作指令受付部２３から受け取った工作機械のオーバーライド値をリアルタイムにロボット指令値に反映する。
【００４３】
ロボット操作指令受付部２３は、工作機械コントローラ１のロボット操作指令生成部３で生成されて通信部８、２７を介して転送されたロボット操作指令を受け付ける。ロボット操作指令受付部２３は、受け付けたロボット操作指令をロボットプリプログラム解釈部２１及びロボットコントローラ制御指令生成部２２に出力する。ロボット操作指令受付部２３は、工作機械の軸位置通知の受け付けも行い、記憶部２９に格納された工作機械３Ｄモデルに反映する。なお、工作機械３Ｄモデル転送部７において軸位置を付加した３Ｄモデルが転送された場合、この処理は不要である。
【００４４】
ロボットプリプログラム受付部２４は、工作機械コントローラ１のロボットプリプログラム実行要求部４から通信部８，２７を介して転送されたロボットプリプログラムを受け付ける。ロボットプリプログラム受付部２４は、受け付けたロボットプリプログラムを記憶部２９に格納する。記憶部２９に格納されたロボットプリプログラムは、上述したようにロボットプリプログラム解釈部２１で解釈される。
【００４５】
工作機械３Ｄモデル受付部２５は、工作機械コントローラ１の工作機械３Ｄモデル転送部７から通信部８，２７を介して転送された３Ｄモデルを受け付ける。工作機械３Ｄモデル受付部２５は、受け付けた３Ｄモデルを記憶部２９に格納する。記憶部２９に格納された３Ｄモデルは、上述したようにロボットコントローラ制御指令生成部２２で干渉を回避するロボット指令値の生成に用いられる。なお、３Ｄモデルのフォーマットは特に制限されない。
【００４６】
工作機械操作指令生成部２６は、工作機械への動作要求を通信部２７，８を介して工作機械コントローラ１の工作機械操作指令受付部５に送信する。ロボットプリプログラム解釈部２１でロボットプリプログラムを解釈した結果、工作機械に対する動作指令を生成する必要がある場合に送信する。例えば、ロボット動作途中の工作機械安全ドアの開閉動作等である。動作指令には、ロボット関節角度が含まれる。
【００４７】
通信部２７は、工作機械コントローラ１との通信処理を実行する。通信アルゴリズムを固定することで、工作機械コントローラ１は、固定の通信アルゴリズムで様々なメーカのロボットを動作させ得る。
【００４８】
通信部２８は、ロボットコントローラ３０との通信処理を実行する。ロボットコントローラ３０の種類に依存しないロボットプリプロセッサ２０とする場合、この通信部２８において通信アルゴリズムの違いを吸収し得る。
【００４９】
記憶部２９は、工作機械コントローラ１から転送された工作機械３Ｄモデル及びロボットプリプログラムを記憶する。
【００５０】
ロボットプリプログラム解釈部２１、ロボットコントローラ制御指令生成部２２、ロボット操作指令受付部２３、ロボットプリプログラム受付部２４、工作機械３Ｄモデル受付部２５、工作機械操作指令生成部２６は、１又は複数のＣＰＵで構成され得る。１又は複数のＣＰＵは、ＲＯＭ等のプログラムメモリに記憶された処理プログラムを読み出して実行することで、これらの機能を実現する。但し、これらの機能の一部は、プログラムの実行によるソフトウェア処理ではなく、ハードウェア処理により実現してもよい。ハードウェア処理は、例えばＡＳＩＣやＦＰＧＡ（フィールドプログラマブルゲートアレイ）などの回路を用いて行ってもよい。
【００５１】
なお、ロボットコントローラ３０は、ロボットプリプロセッサ２０から送信された制御指令に従ってロボットを制御する。ロボットの形態は任意であるが、例えば工作機械内に設置され、ワークの着脱（ワークローディング／ワークアンローディング）等を行う機内ロボットとしてもよい。
【００５２】
図２は、本実施形態の全体処理フローチャートを示す。
【００５３】
工作機械のユーザは、工作機械コントローラ１の操作パネル２を操作し、対話型プログラム作成部９でロボットプリプログラムを作成する（Ｓ１０１）。対話型プログラム作成部９は、工作機械のユーザが工作機械操作用ＵＩとロボット操作用ＵＩを使用してガイダンスに従い入力したパラメータを含めてロボットプリプログラムを自動生成する。工作機械のユーザは、パラメータを入力するだけで簡単にロボットプリプログラムを作成し得る。対話型プログラム作成部９は、ロボット割出支援部１０を実行するためのＵＩを備え、教示点をロボットの現在位置から決定する。対話型プログラム作成部９は、作成したロボットプリプログラムを記憶部１２に格納する。
【００５４】
ロボット割出支援部１０は、工作機械のユーザが位置の微調整が必要であると判断して対話型プログラム作成部９に設けられたＵＩから割出実行操作を行った場合に処理される。ロボット割出支援部１０は、対話型プログラム作成部９で入力されたパラメータを利用して割出用ロボットプリプログラムを自動生成し、加えて、割出用ロボットプリプログラムを実行要求する工作機械プログラムも自動生成する。工作機械のユーザが起動ボタンを押すことによって、ロボットの割り出しが自動的に行われる。割り出し完了後、操作パネル２の手動操作によってロボット位置を微調整し、対話型プログラム作成部９においてロボットの現在位置から教示点を確定する。ロボット割出支援部１０は、自動生成した、割出用ロボットプリプログラムと、割出用ロボットプリプログラムを実行要求する工作機械プログラムを記憶部１２に格納する。
【００５５】
次に、工作機械のユーザは、工作機械プログラムにロボットプリプログラム実行要求指令を記述して実行する。工作機械コントローラ１の工作機械制御部１１は、ロボットプリプログラムを記憶部１２から読み出してロボットプリプログラム実行要求部４に出力し、ロボットプリプログラム実行要求部４は、ロボットプリプログラムをロボットプリプロセッサ２０に転送して実行要求を出力する（Ｓ１０２）。
【００５６】
ロボットプリプロセッサ２０は、転送されたロボットプリプログラムをロボットプリプログラム解釈部２１で解釈する。解釈されたロボットプリプログラムは、ロボットコントローラ制御指令生成部２２に出力され、ロボットコントローラ制御指令生成部２２はロボットプリプログラムに従ってロボット指令値を生成し、ロボットコントローラ３０に出力してロボットを駆動する。工作機械のユーザは動作を確認し、ロボットプリプログラムを修正する必要があるか否かを判定する（Ｓ１０３）。例えば、操作パネル２で工作機械をシミュレーションモードに設定し、ロボット操作指令生成部３でロボットプリプロセッサ２０にもシミュレーションモード要求を通知して共有し、実際に工作機械とロボットを動作させずにシミュレーション上で工作機械とロボットの連動動作を確認する。確認の結果、ロボットプリプログラムを修正する必要がある場合（Ｓ１０３でＹＥＳ）、工作機械のユーザは対話型プログラム作成部９で作成した動作を編集する。ロボットプリプログラムを修正する必要がない場合（Ｓ１０３でＮＯ）、教示作業を終了する。  
【００５７】
図３は、図２のＳ１０１の処理、すなわち対話型プログラム作成部９でのロボットプリプログラム作成処理の詳細フローチャートを示す。
【００５８】
まず、工作機械のユーザは、操作パネル２を操作してロボットの動作に必要な動作パラメータを設定する（Ｓ２０１）。動作パラメータはロボットの動作に応じて決定される。例えば、ロボットの動作がワークアンローディングの場合、
・把持時のエアー吐出（するか否か）
・プッシャー（使用するか否か）
・ワーク引き抜き量
・把持アプローチ量
・把持オフセット
等である。これらの動作パラメータは、工作機械のユーザが対話型プログラム作成部９により作成され操作パネル２に表示される雛形（テンプレート）画面を操作しながら設定する。テンプレート画面の具体例については、さらに後述する。
【００５９】
次に、工作機械のユーザは、位置の微調整をするか否かを判定する（Ｓ２０２）。この判定は、設定すべき動作パラメータに応じて決定される。例えば、把持時のエアー吐出やワーク引き抜き量等のパラメータは位置の微調整は不要であるが、把持オフセットについては位置の微調整が必要となり得る。
【００６０】
位置を微調整する場合（Ｓ２０２でＹＥＳ）、工作機械のユーザは、操作パネル２の「仮位置割出」ボタンを押下し、ロボット割出支援部１０を実行させる。ロボット割出支援部１０は、Ｓ２０１で設定された動作パラメータを用いて割出用ロボットプリプログラムを自動生成する（Ｓ２０３）。そして、当該割出用ロボットプリプログラムを実行要求する工作機械プログラムも併せて自動生成する。工作機械のユーザが、操作パネル２から起動ボタンを押下すると、これに応じて割出用ロボットプリプログラムを実行し（Ｓ２０４）、指定点まで自動的に干渉を回避した経路でロボットを割り出す。
【００６１】
指定点までロボットを割り出した後、操作パネルの手動操作によってロボット位置を微調整する（Ｓ２０５）。微調整した後、工作機械のユーザは、操作パネル２の「現在位置読込」ボタンを押下すると、対話型プログラム作成部９は、これに応じてロボットの現在位置をパラメータに反映させる（Ｓ２０６）。
【００６２】
以上のようにして位置の微調整が実行され、最終的にロボットプリプログラムが作成されて記憶部１２に格納される（Ｓ２０７）。
【００６３】
なお、位置を微調整しない場合（Ｓ２０２でＮＯ）、Ｓ２０３〜Ｓ２０７の処理を実行する必要はない。
【００６４】
図４及び図５は、図２のＳ１０２の処理、すなわちロボットプリプログラムの実行処理の詳細フローチャートを示す。
【００６５】
まず、図４において、工作機械のユーザは、工作機械プログラムに、図３に示す処理で作成され記憶部１２に記憶されているロボットプリプログラムの実行要求を記述し、工作機械プログラムを起動ボタン操作で実行する（Ｓ３０１）。
【００６６】
工作機械制御部１１は、工作機械プログラムを解釈し（Ｓ３０２）、ロボットプリプログラムの実行要求か否かを判定する（Ｓ３０３）。ロボットプリプログラムの実行要求でない場合（Ｓ３０３でＮＯ）、干渉確認部６は、工作機械の動作干渉確認を実行する（Ｓ３０４）。干渉確認部６は、記憶部１２に記憶されている３Ｄモデルを用いて工作機械動作時の工作機械とロボットの干渉有無を確認する。このとき、ロボットプリプロセッサ２０の工作機械操作指令生成部２６から送信されるロボットの関節角度の情報を用いて干渉確認を実行する。そして、工作機械プログラムに従って工作機械を動作させる（Ｓ３０５）。以上の処理を工作機械プログラムのエンドまで繰り返し実行する（Ｓ３０６）。
【００６７】
他方、ロボットプリプログラムの実行要求である場合（Ｓ３０３でＹＥＳ）、工作機械３Ｄモデル転送部７からロボットプリプロセッサ２０に工作機械の３Ｄモデルを転送する（Ｓ３０７）。
【００６８】
ロボットプリプロセッサ２０の工作機械３Ｄモデル受付部２５は、工作機械コントローラ１から転送された３Ｄモデルを受け付け、記憶部２９に格納する（Ｓ３０８）。
【００６９】
また、工作機械制御部１１及びロボットプリプログラム実行要求部４は、工作機械プログラムに記述されることで指定されたロボットプリプログラムをロボットプリプロセッサ２０に転送して実行要求を出力する（Ｓ３０９）。
【００７０】
ロボットプリプロセッサ２０のロボットプリプログラム受付部２４は、工作機械コントローラ１から転送されたロボットプリプログラムを受け付け、記憶部２９に格納する（Ｓ３１０）。また、ロボット操作指令受付部２３は、工作機械コントローラ１から転送された実行要求を受け付ける（Ｓ３１１）。この後、図５の処理に移行する。
【００７１】
図５において、ロボットプリプログラム解釈部２１は、ロボット操作指令受付部２３で実行要求を受け付けると、これに応答して記憶部２９からロボットプリプログラムを読み出して解釈する（Ｓ３１２）。ロボットプリプログラム解釈部２１は、解釈結果をロボットコントローラ制御指令生成部２２に出力する。
【００７２】
また、ロボットプリプログラム解釈部２１は、ロボットプリプログラムを解釈した結果、工作機械に対する動作要求があるか否かを判定する（Ｓ３１３）。例えば、ロボットプリプログラムを解釈した結果、ロボット動作途中に工作機械安全ドアの開閉動作が存在する場合には工作機械に対する動作要求がありと判定する。
【００７３】
工作機械に対する動作要求がない場合（Ｓ３１３でＮＯ）、ロボットコントローラ制御指令生成部２２は、ロボットプリプログラム解釈部２１で解釈されたロボットプリプログラムに従い、３Ｄモデルを用いて干渉回避したロボットの軌道を生成して（Ｓ３１４）、ロボットコントローラ３０に出力し、ロボットを動作させる（Ｓ３１５）。干渉を回避する軌道の生成は、例えばＲＲＴ（Rapidly-exploring Random Trees）法を用い得る。これは、コンフィギュレーション空間（C-space）上の点をランダムに調査して探索木状に自由空間を構築し、空間内の初期コンフィギュレーション点と目標コンフィギュレーション点を探索木にて接続することで経路を得る手法である。但し、回避軌道の生成は、これに限定されるものではなく、任意のアルゴリズムを用い得る。
【００７４】
他方、工作機械に対する動作要求がある場合（Ｓ３１３でＹＥＳ）、工作機械操作指令生成部２６は当該動作要求を工作機械コントローラ１に送信する（Ｓ３１６）。工作機械コントローラ１の工作機械操作指令受付部５は、ロボットプリプロセッサ２０から転送された動作要求を受け付けて工作機械制御部１１に出力する。工作機械制御部１１は、受け付けた動作要求に従い、図４のＳ３０４と同様に工作機械の動作干渉確認を実行し（Ｓ３１７）、工作機械を連動して動作させる（Ｓ３１８）。
【００７５】
Ｓ３１２〜Ｓ３１８の処理は、ロボットプリプログラムが終了するまで繰り返し実行される（Ｓ３１９でＮＯ）。
【００７６】
ロボットプリプログラムが終了すると（Ｓ３１９でＹＥＳ）、ロボットプリプログラム解釈部２１は、ロボットプリプログラムの実行完了通知を工作機械操作指令生成部２６に出力し（Ｓ３２０）、図４のＳ３０６以降の処理を実行する。
【００７７】
すなわち、工作機械プログラムのエンドか否かを判定し（Ｓ３０６）、エンドであれば処理を終了する。エンドでなければ、Ｓ３０２以降の処理を繰り返す。
【００７８】
このように、本実施形態では、工作機械プログラムにロボットプリプログラムの実行要求及びロボットプリプログラム名を記述し、工作機械プログラムを実行することで、工作機械制御部１１は、工作機械コントローラ１の記憶部１２に記憶されたロボットプリプログラムをロボットプリプロセッサ２０へ転送する。ロボットプリプログラムのロボットプリプロセッサ２０への転送は、ロボットプリプログラム実行要求毎に行われる。なお、工作機械コントローラ１の記憶部１２に記憶されたロボットプリプログラムはマスタデータとし、ロボットプリプロセッサ２０の記憶部２９に記憶されたロボットプリプログラムはテンポラリとして扱う。ロボットプリプロセッサ２０の記憶部２９に記憶されたテンポラリとしてのロボットプリプログラムは実行後も削除せず、都度、工作機械コントローラ１の記憶部１２に記憶されたロボットプリプログラムのマスタデータと照合してもよい。
【００７９】
また、本実施形態では、工作機械プログラムを実行することで、工作機械制御部１１は、工作機械コントローラ１の記憶部１２に記憶された３Ｄモデルをロボットプリプロセッサ２０へ転送する。３Ｄモデルのロボットプリプロセッサ２０への転送は、ロボットプリプログラムと同様にロボットプリプログラム実行要求毎に行われる。工作機械コントローラ１の記憶部１２に記憶された３Ｄモデルはマスタデータとし、ロボットプリプロセッサ２０の記憶部２９に記憶された３Ｄモデルはテンポラリとして扱う。これにより、工具変更等、工作機械コントローラ１のシミュレーション環境が変化した場合でも、ロボットプリプロセッサ２０のシミュレーション環境を工作機械コントローラ１の変化後の環境と一致させることができる。
【００８０】
図６は、工作機械の操作パネルに表示されるパラメータ設定画面の一例を示す。対話型プログラム作成部９で作成される画面であり、ロボットのタスクを予め定型化し、動作毎のテンプレートとして作成される画面である。
【００８１】
この場合、ロボットの動作は「ワークアンローディング」であり、設定すべきパラメータが［動作パラメータ］１００として示される。ここでは、
１．把持時のエアー吐出（するか否か）
２．プッシャー（使用するか否か）
３．ワーク引き抜き量
４．把持アプローチ量
５．把持オフセット
が表示される。
【００８２】
また、［動作パラメータ］１００の右側には、作成する動作に係るチャック、ワーク、ロボット等を模式的に示した案内図２００が表示され、この図中に［動作パラメータ］１００の項目が例えば番号で示される。工作機械のユーザは、この案内図２００を参照することで、［動作パラメータ］１００の各項目が、作成する動作のどの部分に対応するかを容易に把握し得る。工作機械のユーザは、これらの項目をメニューから選択し、あるいは数値を入力することで設定する。
【００８３】
位置の微調整が必要な場合、例えば把持オフセットを微調整する場合、工作機械のユーザは、動作パラメータを設定した後に、「仮位置割出」ボタン３００を押下する。すると、図３のＳ２０３〜Ｓ２０７に示された処理が実行される。すなわち、ロボット割出支援部１０は、設定された動作パラメータを用いて割出用ロボットプリプログラムを自動生成し（Ｓ２０３）、当該割出用ロボットプリプログラムを実行要求する工作機械プログラムも併せて自動生成する。そして、割出用ロボットプリプログラムを実行し（Ｓ２０４）、指定点まで自動的にロボットを割り出す。
【００８４】
指定点までロボットを割り出した後、工作機械のユーザは、操作パネル２の手動操作（主にＪＯＧスイッチとパルスハンドル）によってロボット位置を微調整する。微調整した後、工作機械のユーザは、操作パネル２の「現在位置読込」ボタン４００を押下すると、これに応じてロボットの現在位置が動作パラメータに反映される（Ｓ２０６）。
【００８５】
本実施形態における「ロボットプリプログラム」は、ロボットプリプロセッサ２０で解釈され、これに基づいてロボットの制御指令が生成されてロボットコントローラ３０に出力されることに鑑みたものであり、ロボットプリプロセッサ２０がロボットコントローラ３０に搭載される場合には、「ロボットプリプログラム」は、「ロボットプログラム」そのものといえる。
【符号の説明】
【００８６】
１  工作機械コントローラ、２  操作パネル、３  ロボット操作指令生成部、４  ロボットプリプログラム実行要求部、５  工作機械操作指令受付部、６  干渉確認部、７  工作機械３Ｄモデル転送部、８  通信部、９  対話型プログラム作成部、１０  ロボット割出支援部、１１  工作機械制御部、１２  記憶部、２０  ロボットプリプロセッサ、２１  ロボットプリプログラム解釈部、２２  ロボットコントローラ制御指令生成部、２３  ロボット操作指令受付部、２４  ロボットプリプログラム受付部、２５  工作機械３Ｄモデル受付部、２６  工作機械操作指令生成部、２７，２８  通信部、２９  記憶部、３０  ロボットコントローラ。
【図１】
2020071533.tif 000003
【図２】
2020071533.tif 000004
【図３】
2020071533.tif 000005
【図４】
2020071533.tif 000006
【図５】
2020071533.tif 000007
【図６】
2020071533.tif 000008