(57)【要約】【課題】プログラミング生成装置におけるロボット自動生成処理において、編集作業が容易となるようジョイント（Joint）動作を直線に分割する。【解決手段】ロボットの動作を制御するための動作プログラムを軌跡情報に基づき生成するプログラム生成装置１である。そして、前記軌跡情報は複数の動作点を有し、前記複数の動作点の中から適数の動作点を選択する選択手段と、前記選択された動作点を直線でつなげて直線動作に係る変更後の軌跡情報を生成する軌跡情報変更手段とを備える。【選択図】 図１
2013046938.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動作を制御するための動作プログラムを軌跡情報に基づき生成するプログラム生成装置において、
前記軌跡情報は複数の動作点を有し、前記複数の動作点の中から適数の動作点を選択する選択手段と、前記選択された各動作点を直線でつなげて軌跡情報を変更する軌跡情報変更手段とを備えたことを特徴とするプログラム生成装置。
【請求項２】
ロボットの動作を制御するための動作プログラムを軌跡情報に基づき生成するプログラム生成装置において、
前記軌跡情報を生成するロボット動作生成手段と、前記軌跡情報において干渉またはオーバートラベルを含む障害が発生するか否かをチェックするチェック手段と、前記軌跡情報を編集するロボット動作編集手段とを備え、
前記ロボット動作生成手段で前記軌跡情報を生成する際に、予め前記チェック手段によるチェックの結果に応じて前記軌跡情報を編集することにより前記ロボット動作編集手段での編集処理を少なくすることを特徴とするプログラム生成装置。
【請求項３】
前記ロボット動作編集手段は、編集画面を備え、この編集画面は前記動作点を、移動、追加および削除する機能を有することを特徴とする請求項２に記載のプログラム生成装置。
【請求項４】
ロボットの動作を制御するための動作プログラムを軌跡情報に基づき生成するプログラム生成方法において、
前記軌跡情報は複数の動作点を有し、選択手段が前記複数の動作点の中から適数の動作点を選択する工程と、軌跡情報変更手段が前記選択された各動作点を直線でつなげて軌跡情報を変更する工程とを含むことを特徴とするプログラム生成方法。
【請求項５】
ロボットの動作を制御するための動作プログラムを軌跡情報に基づき生成するプログラム生成方法において、
ロボット動作生成手段が前記軌跡情報を生成する工程と、チェック手段が前記軌跡情報において干渉またはオーバートラベルを含む障害が発生するか否かをチェックする工程と、ロボット動作編集手段が前記軌跡情報を編集する工程とを含み、
前記ロボット動作生成手段で前記軌跡情報を生成する際に、予め前記チェック手段によるチェックの結果に応じて前記軌跡情報を編集することにより前記ロボット動作編集手段での編集処理を少なくすることを特徴とするプログラム生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラム生成装置及びその方法に関し、特にロボット自動生成処理において、編集作業が容易となるようジョイント動作をリニア（直線：Linear）動作に分割するプログラム生成装置及びその方法に関するものである。
【背景技術】
【０００２】
図７に示すように、従来のロボットの動作プログラム生成システムにおいては、例えば溶接ロボットＲのジョイント（joint）動作編集においては、実機におけるハンドボックスＰＣにより溶接ロボットＰを操作しワークＷＡに対して溶接箇所をティーチングして動作軌跡の生成を行い動作プログラムを作成し、この動作プログラムをＮＣ装置Ｚに入力し溶接ロボットＲを制御している。
【０００３】
特許文献１を参照。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２５３４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ロボットを熟知した作業者でないと困難な作業となり、また、干渉やＯＴ（オーバートラベル：動作が出来ない領域へロボットが移動することにより発生する障害等をいう）の発生を確認しながらのトライアンドエラーによりティーチングを行うことで非常に工数が掛かるという問題があった。
【０００６】
例えば、図８に示すように、溶接ロボットＲが動作点ＰＡ、ＰＢ、ＰＣ、ＰＤ、ＰＥ、ＰＦ、ＰＧおよびＰＨを通る軌跡でワークＷ１、ワークＷ２に対し溶接を行う場合に、溶接ロボットＲが動作点ＰＯの位置でＯＴ（オーバートラベル）を起こす場合や、障害物Ｓに接触する場合等をオペレータは予め考慮し動作プログラムを作成する必要があり工数が掛かるという問題がある。
【課題を解決するための手段】
【０００７】
本発明は上述の問題を解決するためのものであり、請求項１に係る発明は、ロボットの動作を制御するための動作プログラムを軌跡情報に基づき生成するプログラム生成装置において、
前記軌跡情報は複数の動作点を有し、前記複数の動作点の中から適数の動作点を選択する選択手段と、前記選択された各動作点を直線でつなげて軌跡情報を変更する軌跡情報変更手段とを備えたプログラム生成装置である。
【０００８】
請求項２に係る発明は、ロボットの動作を制御するための動作プログラムを軌跡情報に基づき生成するプログラム生成装置において、
前記軌跡情報を生成するロボット動作生成手段と、前記軌跡情報において干渉またはオーバートラベルを含む障害が発生するか否かをチェックするチェック手段と、前記軌跡情報を編集するロボット動作編集手段とを備え、
前記ロボット動作生成手段で前記軌跡情報を生成する際に、予め前記チェック手段によるチェックの結果に応じて前記軌跡情報を編集することにより前記ロボット動作編集手段での編集処理を少なくするプログラム生成装置である。
【０００９】
請求項３に係る発明は、前記ロボット動作編集手段は、編集画面を備え、この編集画面は前記動作点を、移動、追加および削除する機能を有する請求項２に記載のプログラム生成装置である。
【００１０】
請求項４に係る発明は、ロボットの動作を制御するための動作プログラムを軌跡情報に基づき生成するプログラム生成方法において、
前記軌跡情報は複数の動作点を有し、選択手段が前記複数の動作点の中から適数の動作点を選択する工程と、軌跡情報変更手段が前記選択された各動作点を直線でつなげて軌跡情報を変更する工程とを含むプログラム生成方法である。
【００１１】
請求項５に係る発明は、ロボットの動作を制御するための動作プログラムを軌跡情報に基づき生成するプログラム生成方法において、
ロボット動作生成手段が前記軌跡情報を生成する工程と、チェック手段が前記軌跡情報において干渉またはオーバートラベルを含む障害が発生するか否かをチェックする工程と、ロボット動作編集手段が前記軌跡情報を編集する工程とを含み、
前記ロボット動作生成手段で前記軌跡情報を生成する際に、予め前記チェック手段によるチェックの結果に応じて前記軌跡情報を編集することにより前記ロボット動作編集手段での編集処理を少なくするプログラム生成方法である。
【発明の効果】
【００１２】
本発明によれば、ロボットを熟知した作業者でなくても直感的にロボットの動作プログラムが作成可能である。また、ティーチングによるトライ＆エラーが無くなることによるロボットの動作プログラムの生成の工数削減ができるという効果を奏する。さらに、最小限のポイントでOT（オーバートラベル）や干渉を防ぐロボットの動作プログラムを生成することが可能である。
【図面の簡単な説明】
【００１３】
【図１】ロボット制御システムの概略を示す概略図である。
【図２】ロボットの概略を説明する説明図である。
【図３】プログラム生成装置の動作を示すフローチャートである。
【図４】プログラム生成装置の動作を説明する説明図である。
【図５】軌跡情報の編集を説明する説明図である。
【図６】軌跡情報の編集を説明する説明図である。
【図７】従来の技術を説明する従来図である。
【図８】従来の技術を説明する従来図である。
【発明を実施するための形態】
【００１４】
図１にロボット制御システム１の一例を示す。ロボット制御システム１は、プログラム生成装置２と、このプログラム生成装置２の制御部３と、ＮＣ装置４と、ロボット５とを備える。
【００１５】
プログラム生成装置２は、コンピュータにより構成されるものであり、本体２Ａ（ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含む）、入出力部（表示部２Ｂ、キーボード２Ｃを含む）等を備えコンピュータプログラムにより動作するものである。
【００１６】
本実施の形態では、産業用ロボットの制御を例に説明するが、特に産業用ロボットに限定されるものではない。産業用ロボットは、例えば、ワークに対し溶接、塗装、搬送等を実行する。
【００１７】
前記プログラム生成装置２は、例えば、溶接線、溶接角度、溶接速度等（入力情報Ｉ１）を指定後、ロボット動作自動生成を実行すると、ロボット動作生成エンジン部３Ｂがホーム位置から各溶接線の始点、終点を通過し、干渉やＯＴ（オーバートラベル：動作が出来ない領域へロボットが移動することにより発生する障害等をいう）の発生しないロボット動作軌跡（軌跡情報）、エラー情報（動作軌跡生成不可情報）Ｏ１を自動生成する。また、手動ティーチング部３Ａによりロボット５の動作の軌跡を表示部２Ｂの画面Ｇ１に表示しながら定義することもできる。
【００１８】
ロボット編集画面Ｇ２は、プログラム生成装置２の表示部２Ｂに表示されるもので、ロボット動作（軌跡情報）を自動で生成後、ワークＷ、ロボット５、環境を表示したシミュレーション画面である。自動生成されたロボット動作の内、ジョイント（joint）動作をリニア（直線：Linear）に分割しリニア（直線：Linear）の動作に変換する。作業者はロボットのＯＴ（オーバートラベル）や干渉を確認しながら直線を結ぶ交点を移動、削除、追加しながらロボット動作編集を行う。編集後の軌跡情報から動作プログラムＰを生成しＮＣ装置４に転送する。
【００１９】
ＮＣ装置４は、プログラム生成装置２で生成したロボットの動作プログラムＰに従いロボット５をコントロールする。ロボット５は前記ＮＣ装置４の操作信号に基づき動作する。
【００２０】
図２を参照する。ロボット５の腕構造は、例えば６軸のものがある。体を回転させる旋回軸５Ａ（Ｓ軸）、体を前後に動かす下腕軸５Ｂ（Ｌ軸）、腕を上下に動かす上腕軸５Ｃ（Ｕ軸）、腕を回転させる手首旋回軸５Ｄ（Ｒ軸）、手首を上下に振る手首曲げ軸５Ｅ（Ｂ軸）、および手首を回転させる手首回転軸５Ｆ（Ｔ軸）により構成される。
【００２１】
上記ロボット５において、リニア（直線：Linear）動作とは、ロボット５の先端Ｙが直線上を動く動作（例えば、直線の溶接部に沿って動く場合等）であり、ジョイント（joint）動作とは、前記リニア（直線：Linear）動作以外の動作であり、一般的にロボット５の先端Ｙの始点から終点までにおけるパスを制御する必要がない動作である。
【００２２】
図３を参照する。プログラム生成装置２の動作を示す。本動作のフローチャートでは、自動で動作軌跡を生成する場合と、ティーチング処理により動作を生成する場合を統一的に示している。
【００２３】
なお、制御部３（手動ティーチング部３Ａ、ロボット動作生成エンジン部３Ｂ等を有する）は、複数の動作点の中から適数の動作点を選択する選択手段と、選択された各動作点を直線でつなげて軌跡情報を変更する軌跡情報変更手段として機能する。また、軌跡情報を生成するロボット動作生成手段と、軌跡情報において干渉またはオーバートラベルを含む障害が発生するか否かをチェックするチェック手段と、軌跡情報を編集するロボット動作編集手段として機能する。さらに、ＣＡＭ機能も有する。
【００２４】
初めに、ステップＳ０１では、プログラム生成装置２の制御部３のＣＡＭ機能にてロボット動作リスト（始点、終点、姿勢）を指定後、動作の軌跡情報の生成を開始する。
【００２５】
ステップＳ０２では、制御部３は、自動で動作の軌跡情報を作成か否かを判断する。自動で動作の軌跡情報を作成すると判断した場合に処理はステップＳ０３に進む。動作の軌跡情報を作成しないと判断した場合に処理はステップＳ０５に進む。
【００２６】
ステップＳ０３では、制御部３による制御により自動の動作のための軌跡情報の生成を開始する。
【００２７】
ステップＳ０４では、制御部３はロボット動作のリスト（始点、終点）に対して順次（ステップＳ０８〜ステップＳ２１までの処理）のロボット動作生成処理を実行する。このステップＳ０４の処理後は、ステップＳ０８に移行する。
【００２８】
一方、ステップＳ０５では、制御部３は手動ティーチング動作軌跡生成処理を開始する。
【００２９】
ステップＳ０６では、ジョイント（joint）動作の始点、終点、姿勢を指定する。
【００３０】
ステップＳ０７では、制御部３が、動作軌跡のチェックを行う。このステップＳ０７の処理後はステップＳ０８に進む。
【００３１】
ステップＳ０８〜ステップＳ２１までのリニア（直線：Linear）分割処理を説明する。
【００３２】
ステップＳ０８では、制御部３は動作の生成処理を開始する。
【００３３】
ステップＳ０９では、制御部３が終点に対するＩＫ（Inverse Kinematics：逆運動学）を計算する。
【００３４】
ステップＳ１０では、制御部３が終点ＩＫ（Inverse Kinematics：逆運動学）が可能か否かを判定する。終点ＩＫ（Inverse Kinematics：逆運動学）が可能の場合に処理はステップＳ１１に進む。終点ＩＫ（Inverse Kinematics：逆運動学）が可能でない場合に処理はステップＳ２０に進む。
【００３５】
ステップＳ１１では、制御部３が溶接パスか否かを判定する。溶接パスの場合に処理はステップＳ１６に進む。溶接パスでない場合は処理がステップＳ１２に進む。
【００３６】
ステップＳ１２では、制御部３が軌跡情報の自動生成か否かを判定する。自動生成の場合に処理はステップＳ１３に進む。自動生成でない場合（例えばティーチング処理による生成の場合）は処理がステップＳ１５に進む。
【００３７】
ステップＳ１３では、制御部３が与えられた始点、終点に対するロボットの動作に軌跡情報を生成する。
【００３８】
図４（ａ）を参照する。制御部３により始点ＳＰと、終点ＥＰに対し、動作点Ｐ１〜動作点Ｐ２１までの複数の動作点が自動で生成される。なお、実際にはロボットはこの動作点を結ぶライン上を移動する。
【００３９】
ステップＳ１４では、制御部３が軌跡情報の生成が可能か否かを判定する。生成が可能の場合に処理はステップＳ１５に進む。生成が可能でない場合は処理がステップＳ２０に進む。
【００４０】
ステップＳ１５では、制御部３によりパスの分割処理が行われる。
【００４１】
図４（ｂ）を参照する。パスの分割処理（初回の処理の場合）では、軌跡情報は複数の動作点（始点ＳＰ、動作点１〜２１、終点ＥＰ）を有し、複数の動作点の中から適数の動作点を選択し、選択された動作点から直線の動作に係る軌跡情報を生成することにより分割処理を行う。例えば、始点ＳＰ、動作点Ｐ６、動作点Ｐ１２、動作点Ｐ１９、終点ＥＰが選択される。そして、始点ＳＰと、動作点Ｐ６を結んだリニア（直線：Linear）Ｌ１が生成される。動作点Ｐ６と、動作点Ｐ１２を結んだリニア（直線：Linear）Ｌ２が生成される。動作点Ｐ１２と、動作点Ｐ１９を結んだリニア（直線：Linear）Ｌ３が生成される。動作点Ｐ１９と、終点ＥＰを結んだリニア（直線：Linear）Ｌ４が生成される。
【００４２】
一方、制御部３はステップＳ１７で干渉があると判断されている場合（２回目以降の処理の場合）は、以下の処理を行う。
【００４３】
図４（ｃ）を参照する。制御部３は製品Ｓと干渉するリニア（直線：Linear）Ｌ３と、このリニア（直線：Linear）Ｌ３に係る元の動作点Ｐ１２〜Ｐ１９を選択する。
【００４４】
図４（ｄ）を参照する。続いて、制御部３はリニア（直線：Linear）Ｌ３を分割するため、この直線Ｌ３に係る動作点Ｐ１２〜Ｐ１９の中から適数の分割点を選択する。
【００４５】
本例では、分割点Ｐ１２、Ｐ１４、Ｐ１７およびＰ１９を選択する。そして、動作点Ｐ１２と、動作点Ｐ１４を結んだリニア（直線：Linear）Ｌ３Ａが生成される。動作点Ｐ１４と、動作点Ｐ１７を結んだリニア（直線：Linear）Ｌ３Ｂが生成される。動作点Ｐ１７と、動作点Ｐ１９を結んだリニア（直線：Linear）Ｌ３Ｃが生成される。本例では、これにより製品Ｓへの干渉が回避される。なお、干渉する場合は、ステップＳ１５〜ステップＳ１７までの処理が干渉が無くなるまで繰り返し行われる。これにより、軌跡情報が変更される（本例では、始点ＳＰ、動作点Ｐ６、動作点Ｐ１２、動作点Ｐ１４、動作点Ｐ１７、動作点Ｐ１９、終点ＥＰ、及びリニアＬ１、リニアＬ２、リニアＬ３Ａ、リニアＬ３Ｂ、リニアＬ３Ｃ、リニアＬ４が選択される）。
【００４６】
ステップＳ１６では、制御部３が分割パスでの動作テストを行う。または、パスのテストを行う（ティーチング動作が作成された場合のパスのテスト）。
【００４７】
図４（ｂ）を参照する。分割パスでの動作テストの場合を示す。すなわち、直線（リニア動作）Ｌ１〜Ｌ４のそれぞれについて、製品Ｓに干渉するか否かを判断する。この結果、直線（リニア動作）Ｌ３が製品Ｓに干渉すると認識される。なお、ティーチング動作で作成された場合のパスのテストの同様な方法で行われる。
【００４８】
ステップＳ１７では、制御部３が干渉、ＯＴ（オーバートラベル）等が有るか否かを判定する。干渉、ＯＴ（オーバートラベル）等が有ると判断した場合に処理はステップＳ１５に戻る。干渉、ＯＴ（オーバートラベル）等が無いと判断した場合は処理がステップＳ１８に進む。
【００４９】
ステップＳ１８では、制御部３がパスの生成が成功か否かを判定する。パスの生成が成功と判断した場合に処理はステップＳ１９に進む。パスの生成が成功でない場合は処理がステップＳ２０に進む。
【００５０】
ステップＳ１９では、制御部３がパスデータ（変更後の軌跡情報）をメモリに保存する。ステップＳ２０では、制御部３がエラーとステータスをメモリに保存する。
【００５１】
ステップＳ２１では、制御部３による動作生成処理（変更後の軌跡情報の生成）が終了する。
【００５２】
ステップＳ２２では、制御部３が生成されたロボットの動作に係る軌跡情報をメモリに保存する。
【００５３】
ステップＳ２３では、制御部３による自動動作軌跡生成処理が終了する。一方、ステップＳ２４では、制御部３の手動ティーチング動作軌跡生成が終了する。
【００５４】
ステップＳ２５では、制御部３の軌跡情報を編集するロボット動作編集手段によりシミュレーション描画動作軌跡の編集を行う（必要時に行う）。すなわち、動作点の移動、動作点の追加、動作点の削除等を行う。
【００５５】
なお、本例では始点ＳＰ、動作点Ｐ６、動作点Ｐ１２、動作点Ｐ１４、動作点Ｐ１７、動作点Ｐ１９、終点ＥＰ、及びリニアＬ１、リニアＬ２、リニアＬ３Ａ、リニアＬ３Ｂ、リニアＬ３Ｃ、リニアＬ４が選択されるため、動作点、リニア（直線）が少なく編集が容易である。
【００５６】
編集方法についての一例を図５を参照し説明する。ロボット編集画面Ｇ２に表示されたワークＷを編集した結果を示す。すなわち、ロボット５は始点ＳＥＰＳから動作点ＰＳ１〜ＰＳ２２までを通る軌跡Ｔ１〜Ｔ２３上を移動するように編集される。具体的に編集された部分は動作点ＰＳ８をワークＷから離れた位置に移動させたものである（ロボット５とワークＷとの干渉を防ぐため）。また、当初の溶接箇所は、直線Ｔ７と直線Ｔ１３のみであったが、直線Ｔ１７に係る箇所の溶接も追加したものである。そして、これに伴う軌跡を変更したものである。
【００５７】
ステップＳ２６では、制御部３が工程を選択し、位置と姿勢（ヨー、ピッチ、ロー）を変更する。図６に変更するための画面を示す。それぞれの欄に数値を入力することにより変更する。
【００５８】
ステップＳ２７では、制御部３が軌跡情報から動作プログラム（例えばＮＣデータ）を作成しＮＣ装置４送信する。
【００５９】
ステップＳ２８では、動作プログラム（例えばＮＣデータ）をＮＣ装置４が受信する。ステップＳ２９では、ＮＣ装置４により制御されロボット５が駆動する。
【００６０】
上記のように、ロボット５の軌跡情報において、ジョイント（joint）の動作は、いくつかのリニア（直線：Linear）動作に分割したロボット動作の軌跡情報として生成される。上記分割後のリニア（直線：Linear）動作の軌跡情報において干渉チェックを行い、干渉がある場合は、このリニア（直線：Linear）動作の始点と終点の区間のジョイント（joint）の動作をさらに細かいリニア（直線：Linear）動作に分割する処理を繰り返すことで、干渉のないリニア（直線：Linear）動作が生成される。
【００６１】
上記で生成されたロボット動作の軌跡情報をロボット編集画面Ｇ２においてシミュレーション表示確認後、必要があればロボット動作を編集する。この編集作業においてはシミュレーション表示内で動作点をピック移動することで編集が容易になる。
【００６２】
また、予めロボットの軌跡をティーチングまたは自動等により生成することにより、指定されるロボット経路で干渉やOT（オーバートラベル）が発生するかをチェックし、生成されたロボット動作の内、ジョイント（Joint）動作をいくつかの直線に分割し、分割した各直線を時間経過ピッチのロボット軸値を取得し、各ポイントで干渉やOT（オーバートラベル）が発生するかをチェックし、分割した直線においても干渉やOT（オーバートラベル）が発生する場合、その分割直線の始点と終点の区間の軌跡に対してさらなる分割処理を実行する。
【００６３】
そして、分割処理は分割した直線で干渉やOT（オーバートラベル）が発生しなくなるまで繰り返し行う一方、分割した直線長さが最小値（となり合うピッチ間の距離）以下となる場合は、分割処理を終了するので、ロボット編集画面Ｇ２のシミュレーションにてロボット動作が編集しやすい直線動作を描画できる。また、プログラム生成装置２の編集画面にて、上記生成された直線動作の交点をピックし、移動、追加、削除を行いながらロボット動作を生成して、この時シミュレーションしながら干渉やOT（オーバートラベル）が発生しないかを編集画面上で確認が可能である。
【００６４】
この発明は前述の発明の実施の形態に限定されることなく、適宜な変更を行うことにより、その他の態様で実施し得るものである。
【符号の説明】
【００６５】
１  ロボット制御システム
２  プログラム生成装置
２Ａ  本体
２Ｂ  表示部
２Ｃ  入力装置
３  制御部
３Ａ  手動ティーチング部
３Ｂ  ロボット動作エンジン部
４  ＮＣ装置
５  ロボット
Ｗ  ワーク
【図１】
2013046938.tif 000003
【図２】
2013046938.tif 000004
【図３】
2013046938.tif 000005
【図４】
2013046938.tif 000006
【図５】
2013046938.tif 000007
【図６】
2013046938.tif 000008
【図７】
2013046938.tif 000009
【図８】
2013046938.tif 000010