JP2022017732A - ロボットの動作プログラムの作成装置、およびロボットの動作プログラムの改善方法 - Google Patents
ロボットの動作プログラムの作成装置、およびロボットの動作プログラムの改善方法 Download PDFInfo
- Publication number
- JP2022017732A JP2022017732A JP2020120444A JP2020120444A JP2022017732A JP 2022017732 A JP2022017732 A JP 2022017732A JP 2020120444 A JP2020120444 A JP 2020120444A JP 2020120444 A JP2020120444 A JP 2020120444A JP 2022017732 A JP2022017732 A JP 2022017732A
- Authority
- JP
- Japan
- Prior art keywords
- command
- operation program
- commands
- robot
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
Description
本開示は、ロボットの動作プログラムの作成装置、およびロボットの動作プログラムの改善方法に関する。
従来、産業用コントローラーのプログラムの開発支援を行う技術が存在する。特許文献1においては、複数のサーボモーターの同期制御において、タイミングを決定するマスター軸に取り付けられているマスターエンコーダーの回転速度が、以下の処理により決定される。まず、マスターエンコーダーの回転速度の候補が抽出される。そして、各候補について、その回転速度で制御プログラムを実行した場合に制約に違反しないかがチェックされる。たとえば、その回転速度で制御プログラムを実行した場合に、圧縮処理が、指定されている時間、行われるかがチェックされる。全ての候補についてチェックが行われ、制約に違反しない最速の回転速度が特定されて、装置開発者に示される。その結果、最も生産量を多くすることが可能なマスター軸のマスターエンコーダーの回転速度が得られる。
しかし、サーボモーターの回転速度を上げてロボットに動作を行わせると、ロボットアームの残留振動が大きくなる。その結果、ロボットの制御点の位置精度が低下したり、ロボットアームやエンドエフェクターが他の構造物と干渉したりすることがある。また、エンドエフェクターが保持している作業対象物が、落下する場合もある。このため、特許文献1の技術をロボットに適用しても、決定された制御内容で実際の生産が可能であるとは限らない。ロボットの作業の効率を上げるためには、ロボットの動作プログラムを作成する作業者が、実際にロボットの動作を確認しながら、動作プログラムを調整する。現在、そのような調整には、専門知識と経験が求められる。専門知識と経験がない作業者が、ロボットの動作プログラムを生成または調整する際に、実際に作業の効率を上げられるように支援を行う技術が、求められている。
本開示の一形態によれば、ロボットの動作プログラムの作成装置が提供される。このロボットの動作プログラムの作成装置は、1以上のコマンドを含み、ロボットが実行する作業を記述する動作プログラムを受け付ける受付部と、前記ロボットが実行できる複数のコマンドのうち、動作プログラムの実行に要する時間に影響を与える一部のコマンドを記憶している記憶部と、受け付けた前記動作プログラムの中から、前記記憶部に記憶された前記コマンドと一致するコマンドを検出する検出部と、を備える。
A.第1実施形態:
A1.ロボットシステムの構成:
図1は、本実施形態のロボットシステム1を模式的に示す説明図である。本実施形態のロボットシステム1は、ロボット100と、エンドエフェクター200と、カメラ700と、設定装置600と、を備える。
A1.ロボットシステムの構成:
図1は、本実施形態のロボットシステム1を模式的に示す説明図である。本実施形態のロボットシステム1は、ロボット100と、エンドエフェクター200と、カメラ700と、設定装置600と、を備える。
ロボット100は、ロボット制御装置300と、4個の関節J1~J4を備えたアーム110と、を有する4軸ロボットである。関節J1,J2,J4は、ねじり関節である。関節J3は、直動関節である。アーム110を構成する関節と関節の間の構成要素を、本明細書において「アーム要素」と呼ぶ。図1においては、アーム110に含まれる複数のアーム要素のうち、関節J1と関節J2の間のアーム要素110a、関節J2と関節J3の間のアーム要素110b、およびアーム110の先端を構成するアーム要素110dについて、符号を付して示す。
ロボット100は、4個の関節J1~J4をそれぞれサーボモーターで回転または直進させることにより、アーム110の先端部に取りつけられたエンドエフェクター200を、3次元空間中の指定された位置に指定された姿勢で配することができる。3次元空間におけるエンドエフェクター200の位置を代表する地点を、「制御点」またはTCP(Tool Center Point)とも呼ぶ。
ロボット100は、各関節に、サーボモーター410と、減速機510と、モーター角度センサー420と、を備える。図1では、技術の理解を容易にするために、関節J1についてのみ、模式的にサーボモーター410と、減速機510と、モーター角度センサー420と、を示している。
サーボモーター410は、ロボット制御装置300から電流を供給されて駆動力を発生させる。より具体的には、サーボモーター410は、ロボット制御装置300から電流を供給されて、その出力軸410oを回転させる。
モーター角度センサー420は、サーボモーター410の出力軸410oの角度位置Pmを検出する。モーター角度センサー420は、ロータリエンコーダーである。モーター角度センサー420が検出した出力軸410oの角度位置Pmは、ロボット制御装置300に送信される。
減速機510は、入力軸510iと出力軸510oを備える。減速機510は、入力軸510iに対する回転入力を、回転入力より回転速度が低い回転出力に変換して、出力軸510oから出力する。減速機510の入力軸510iは、サーボモーター410の出力軸410oに接続されている。
アーム要素110aは、関節J1の減速機510の出力軸510oに固定されている。その結果、アーム要素110aは、サーボモーター410の出力軸410oの回転によって、減速機510を介して、関節J1において回転される。
ロボット制御装置300は、アーム110およびエンドエフェクター200を制御する制御装置である。ロボット制御装置300は、ロボット100の筐体内に収容されている。ロボット制御装置300は、プロセッサーであるCPU(Central Processing Unit)310と、RAM(Random Access Memory)330と、ROM(Read Only Memory)340と、を備えるコンピューターを含む。CPU310は、ROM340に記憶されたコンピュータープログラムをRAM330にロードして実行することによって、様々な機能を実現する。
エンドエフェクター200は、アーム110の先端に取りつけられている。エンドエフェクター200は、ロボット制御装置300に制御されて、ワークピースW01をつかむことができ、また、つかんでいるワークピースW01を離すことができる。その結果、たとえば、ロボット100のアーム110とエンドエフェクター200とは、ロボット制御装置300に制御されて、作業対象物であるワークピースW01をつかんで移動させることができる。なお、図1においては、技術の理解を容易にするため、エンドエフェクター200を単純な円柱で示している。
カメラ700は、ワークピースW01と、そのワークピースW01の周辺と、アーム110と、を含む写真画像を撮像することができる。カメラ700が生成した画像は、ロボット制御装置300に送信され、ロボット100の制御に使用される。
設定装置600は、ロボット100の動作を規定する動作プログラムを生成する。設定装置600は、出力装置として機能するディスプレイ602と、入力装置として機能するキーボード604およびマウス605と、を備えたコンピューターである。設定装置600は、さらに、プロセッサーであるCPU610と、RAM630と、ROM640と、を備えている。CPU610は、ROM640に記憶されたコンピュータープログラムをRAM630にロードして実行することによって、後述する様々な機能を実現する。
設定装置600は、ロボット制御装置300に接続されている。設定装置600によって生成された動作プログラムが、ロボット制御装置300に送信される。ロボット制御装置300は、設定装置600から受信した動作プログラムにしたがってロボット100を動作させる。
A2.動作プログラムの実行に要する時間に影響を与えるコマンド:
ロボット100の動作プログラムは、1以上のコマンドを含む。ロボット100の動作プログラムは、それらのコマンドにより、ロボットが実行する作業を記述する。設定装置600のRAM630は、ロボット100が実行できる複数のコマンドのうち、動作プログラムの実行に要する時間に影響を与える一部のコマンドCt1を記憶している。RAM630は、さらに、ロボット100が実行できる複数のコマンドのうち、2以上のコマンドの組み合わせであって、動作プログラムの実行に要する時間に影響を与える組み合わせCt2を、記憶している。これらRAM630に記憶されているこれらの1以上のコマンドを、まとめてコマンドCtsと呼ぶ。
ロボット100の動作プログラムは、1以上のコマンドを含む。ロボット100の動作プログラムは、それらのコマンドにより、ロボットが実行する作業を記述する。設定装置600のRAM630は、ロボット100が実行できる複数のコマンドのうち、動作プログラムの実行に要する時間に影響を与える一部のコマンドCt1を記憶している。RAM630は、さらに、ロボット100が実行できる複数のコマンドのうち、2以上のコマンドの組み合わせであって、動作プログラムの実行に要する時間に影響を与える組み合わせCt2を、記憶している。これらRAM630に記憶されているこれらの1以上のコマンドを、まとめてコマンドCtsと呼ぶ。
設定装置600のRAM630は、動作プログラムの実行に要する時間に影響を与える1以上のコマンドCtsとして、以下のコマンド、またはコマンドの組み合わせを記憶している。
(a)Speed:制御点の移動速度の上限を定める。Speedコマンドに続いて記述されるパラメーターが移動速度の上限を表す。
制御点の移動速度は、ある地点と他の地点の間を制御点が移動するのに要する時間に、影響を与える。このため、Speedコマンドは、動作プログラムの実行に要する時間に影響を与えるコマンドCt1として、RAM630に記憶されている。
(b)Accel:制御点の加速度の上限、および減速度の上限を定める。「減速度」とは、負の加速度である。Accelコマンドに続いて記述される一つ目のパラメーターが加速度の上限を表し、二つ目のパラメーターが減速度の上限を表す。
制御点の加速度および減速度は、制御点の移動速度、ひいてはある地点と他の地点の間を制御点が移動するのに要する時間に、影響を与える。このため、Accelコマンドは、動作プログラムの実行に要する時間に影響を与えるコマンドCt1として、RAM630に記憶されている。
(c)Go:目標地点へ制御点を直線的に移動させる。Goコマンドに続いて記述されるパラメーターが、目標地点を表す。
RAM630は、動作プログラムの実行に要する時間に影響を与えるコマンドの組み合わせとして、連続する複数のGoコマンドの組み合わせを記憶している。
RAM630は、動作プログラムの実行に要する時間に影響を与えるコマンドの組み合わせとして、連続する複数のGoコマンドの組み合わせを記憶している。
連続する複数のGoコマンドの組み合わせは、多くの場合、制御点を最終的な目標地点へ移動させる際に、ある地点を回避して制御点を移動させるために、制御点が1以上の中継地点を通るように、設定される。このため、最終的な目標地点以外の目標地点、すなわち中継地点への移動を指定しているGoコマンドの目標地点を、より適切に設定することにより、出発地点から最終的な目標地点への制御点の移動に要する時間を、短縮できる場合がある。よって、連続する複数のGoコマンドの組み合わせは、動作プログラムの実行に要する時間に影響を与えるコマンドの組み合わせCt2として、RAM630に記憶されている。
(d)Wait:指定された時間、ロボット100の動作を停止させる。Waitコマンドに続いて記述されるパラメーターが、ロボット100の動作を停止させる時間を表す。たとえば、残留振動が発生すると予想される動作のコマンドの後に、Waitコマンドが配される。
Vrun:ワークピースW01を表すCAD(Computer-Aided Design)データに基づく3次元図形の拡大、縮小および回転を行って、カメラ700で取得した3次元画像に対してマッチングを行うことにより、ワークピースW01の位置および姿勢を検出する。
Vrun:ワークピースW01を表すCAD(Computer-Aided Design)データに基づく3次元図形の拡大、縮小および回転を行って、カメラ700で取得した3次元画像に対してマッチングを行うことにより、ワークピースW01の位置および姿勢を検出する。
Vrunコマンドは、3次元図形の拡大、縮小および回転、ならびにマッチングを行うことから、他のAccelコマンドやGoコマンド等に比べて、CPU610の処理負荷が大きい。このため、Vrunコマンドの処理が完了するまでロボット100の動作が停止する。その結果、Vrunコマンドの実行により、ロボット100の動作が停止している状態で、Vrunコマンドに隣接するWaitコマンドで停止すべき旨が指定されている時間が、経過する可能性がある。そのような場合には、動作プログラムからWaitコマンドを削除することにより、動作プログラムの実行に要する時間を短縮できる。よって、連続するWaitコマンドとVrunコマンドの組み合わせは、動作プログラムの実行に要する時間に影響を与えるコマンドの組み合わせCt2として、RAM630に記憶されている。なお、Waitコマンドが先であり、Vrunコマンドが後である態様と、Vrunコマンドが先であり、Waitコマンドが後である態様との、いずれもがRAM630に記憶されている。
A3.動作プログラムの生成:
(1)インターフェイス画面DIを使用して動作プログラムを生成する際の処理:
図2は、ロボット100の動作を指示する動作プログラムを生成するための統合開発環境(IDE:Integrated Development Environment)のインターフェイス画面DIを表す図である。インターフェイス画面DIは、シミュレーション画面Dsと、編集画面De02と、プログラム実行ボタンBeと、を含む。
(1)インターフェイス画面DIを使用して動作プログラムを生成する際の処理:
図2は、ロボット100の動作を指示する動作プログラムを生成するための統合開発環境(IDE:Integrated Development Environment)のインターフェイス画面DIを表す図である。インターフェイス画面DIは、シミュレーション画面Dsと、編集画面De02と、プログラム実行ボタンBeと、を含む。
編集画面De02は、プログラミング言語で表現されたプログラムリストの形式で表された動作プログラムを生成するためのインターフェイスである。ユーザーは、入力装置としてのキーボード604およびマウス605により、編集画面De02において、プログラムリストの形式の動作プログラムを生成する。ユーザーは、キーボード604およびマウス605を使用して、プログラムリストを最初から生成することができる。ユーザーは、RAM630またはROM640に格納されているプログラムリストをIDEに読み込んで、キーボード604およびマウス605を使用して、プログラムリストを修正することにより、新たなプログラムリストを生成することもできる。
シミュレーション画面Dsは、編集画面De02によって生成された動作プログラムの一部または全部を実行した場合のロボット100の動作を動画で示すための画面である。シミュレーション画面Dsは、シミュレーション実行ボタンBsを含む。
シミュレーション実行ボタンBsが押されると、シミュレーション画面Dsにおいて、編集画面De02によって生成された動作プログラムの一部または全部を実行した場合のロボット100の動作が動画で示される。編集画面De02において、プログラムリストの一部が指定されて、シミュレーション実行ボタンBsが押された場合には、プログラムリストのうちの指定された部分のみが、シミュレーション画面Ds上で実行される。編集画面De02において、プログラムリストの一部が指定されずに、シミュレーション実行ボタンBsが押された場合には、プログラムリスト全体が、シミュレーション画面Ds上で実行される。
ただし、動作プログラムに従った動作ではない物理的なロボット100の挙動については、シミュレーション画面Dsにおけるロボット100の表示に反映されない。動作プログラムに従った動作ではない物理的なロボット100の挙動には、ロボット100の各部の慣性に起因する残留振動が含まれる。
プログラム実行ボタンBeは、編集画面De02によって生成された動作プログラムの一部または全部を、実際にロボット100に実行させるためのボタンである。編集画面De02において、プログラムリストの一部が指定されて、プログラム実行ボタンBeが押された場合には、プログラムリストのうちの指定された部分のみが、ロボット100によって実行される。編集画面De02において、プログラムリストの一部が指定されずに、プログラム実行ボタンBeが押された場合には、プログラムリスト全体が、ロボット100によって実行される。
作業者は、たとえば、動作プログラムに従った動作ではない物理的なロボット100の挙動を確認するために、動作プログラムの一部または全部を、実際にロボット100に実行させる。
図3は、インターフェイス画面DIを使用して動作プログラムを生成する際の処理を示すフローチャートである。図3の処理によって、ロボットの動作プログラムの改善方法が実行される。図3の処理は、具体的には、設定装置600のCPU610によって実行される。
ステップS100において、CPU610は、キーボード604およびマウス605、ならびにRAM630およびROM640のうちの1以上の構成から、動作プログラムを受け付ける。ステップS100の処理を実現するCPU610の機能部を、「受付部611」として図1に示す。
ステップS200において、CPU610は、動作プログラムの実行に要する時間に影響を与えるコマンドとしてRAM630に記憶されたコマンドCt1と、一致するコマンドを、動作プログラムの中から検出する。さらに、CPU610は、RAM630に記憶されたコマンドの組み合わせCt2を構成する2以上のコマンドと、一致する2以上のコマンドを、動作プログラムの中から検出する。RAM630に記憶されたコマンドの組み合わせCt2は、動作プログラムの実行に要する時間に影響を与えるコマンドの組み合わせである。ステップS200の処理を実現するCPU610の機能部を、「検出部612」として図1に示す。
ステップS300において、CPU610は、編集画面De02の動作プログラムを表す表示において、検出されたコマンドを強調して表示する。
図4は、編集画面De02の動作プログラムを表す表示の例を示す図である。編集画面De02に表示されるプログラムリストDp04は、Speedコマンドを含む(図4の中段参照)。図3のステップS200では、プログラムリストDp04の中から、RAM630に記憶されたコマンドCt1と一致するSpeedコマンドが検出される。ステップS300では、編集画面De02のプログラムリストDp04を表す表示において、検出されたSpeedコマンドが、強調されて表示される。具体的には、Speedコマンドには、検出されなかったコマンドとは異なる背景の色を付される。図4において強調されたAccelコマンドの表示をコマンド表示Cd041として示す。
編集画面De02に表示されるプログラムリストDp04は、さらに、Accelコマンドを含む(図4の中段参照)。図3のステップS200では、プログラムリストDp04の中から、RAM630に記憶されたコマンドCt1と一致するAccelコマンドが検出される。ステップS300では、編集画面De02のプログラムリストDp04を表す表示において、検出されたAccelコマンドが、Speedコマンドと同様に、強調されて表示される。図4において強調されたAccelコマンドの表示をコマンド表示Cd042として示す。
編集画面De02に表示されるプログラムリストDp04は、さらに、連続する3個のGoコマンドの組み合わせを含む(図4の下段参照)。図3のステップS200では、プログラムリストDp04の中から、RAM630に記憶されたコマンドの組み合わせCt2と一致する、連続するGoコマンドの組み合わせが検出される。ステップS300では、編集画面De02のプログラムリストDp04を表す表示において、検出された連続する3個のGoコマンドの組み合わせが、強調されて表示される。具体的には、連続する3個のGoコマンドの組み合わせには、検出されなかったコマンドとは異なる背景の色を付される。図4において強調された連続するGoコマンドの組み合わせの表示を、コマンド表示Cd043として示す。図4の例においては、P0が制御点の最終的な目標地点を示し、P1,P2が制御点の経由すべき中継地点を示す。
図5は、編集画面De02の動作プログラムを表す表示の他の例を示す図である。編集画面De02に表示されるプログラムリストDp05は、連続するWaitコマンドとVrunコマンドの組み合わせを含む。なお、プログラムリスト中、シングルクォーテーション「’」以下の文章は、プログラムとしては機能しないコメント文である。図5の例においては、「Vision開始コマンド」は、コメント文である。
図3のステップS200では、プログラムリストDp05の中から、RAM630に記憶されたコマンドの組み合わせCt2と一致する、連続するWaitコマンドとVrunコマンドの組み合わせが検出される。ステップS300では、編集画面De02のプログラムリストDp05を表す表示において、検出された連続するWaitコマンドとVrunコマンドの組み合わせが、図4の連続する3個のGoコマンドの組み合わせと同様に、強調されて表示される。図5において強調された連続するWaitコマンドとVrunコマンドの組み合わせの表示を、コマンド表示Cd053として示す。
なお、図5におけるコマンド表示Cd051は、図4におけるコマンド表示Cd041と同じ表示である。図5におけるコマンド表示Cd052は、図4におけるコマンド表示Cd042と同じ表示である。
図3のステップS300の処理を実現するCPU610の機能部を、「強調表示部613」として図1に示す。
図3のステップS200,S300の処理を行うことにより、受け付けた動作プログラムの中から、動作プログラムの実行に要する時間に影響を与えるコマンドや、コマンドの組み合わせを、検出することができる。このため、ロボット100の動作プログラムを作成する作業者が動作プログラムを生成または調整する際に、IDEの編集画面De02を通じて、そのようなコマンド、およびコマンドの組み合わせの存在を作業者に告知することによって、実際にロボット100の作業の効率を上げられるように、作業者による動作プログラムの生成の支援を行うことができる。
また、編集画面De02の動作プログラムを表す表示において、検出されたコマンドが強調して表示される。このため、作業者が動作プログラムを生成または調整する際に、動作プログラム中の、動作プログラムの実行に要する時間に影響を与えるコマンドの場所を、作業者に提示することができる。その結果、作業者は、ロボットの作業の効率を上げられるように、容易に、動作プログラムを生成または調整することができる。
図3のステップS350において、CPU610は、編集画面De02において、検出され強調されたコマンドの表示の上にカーソルがあるか否かを判定する。検出され強調されたコマンドの表示の上にカーソルがない場合には、処理は、ステップS550に進む。検出され強調されたコマンドの表示の上にカーソルがある場合には、処理は、ステップS400に進む。
ステップS400において、CPU610は、動作プログラムを表す表示において、検出されたコマンドに関する改善を促す表示を、検出されたコマンドと関連付けて行う。
図6は、編集画面De02の動作プログラムを表す表示の例を示す図である。図6の例においては、検出され、強調されたAccelコマンドのコマンド表示Cd042の上に、カーソルがある。そのような場合には、検出されたAccelコマンドに関する改善を促す表示S01が、検出されたAccelコマンドと関連付けて、示される。具体的には、Accelコマンドの表示を指し示す吹き出し内に、「Speed, Accelのパラメーターを調節することで、TATが向上する可能性があります。」という文字情報のメッセージが、ヒントを表すマークとともに表示される。このメッセージは、Accelコマンドと関連付けられて、あらかじめRAM630に記憶されている。
図7は、編集画面De02の動作プログラムを表す表示の他の例を示す図である。図7の例においては、検出され、強調されたWaitコマンドとVrunコマンドの組み合わせのコマンド表示Cd053の上に、カーソルがある。そのような場合には、検出されたWaitコマンドとVrunコマンドの組み合わせに関する改善を促す表示S02が、検出されたWaitコマンドとVrunコマンドの組み合わせと関連付けて、示される。具体的には、WaitコマンドとVrunコマンドの組み合わせの表示を指し示す吹き出し内に、「Vrunコマンドは処理に時間がかかるため、直前のWaitコマンドを削除することで、TATが向上する可能性があります。」という文字情報のメッセージが、ヒントを表すマークとともに表示される。このメッセージは、VrunコマンドとWaitコマンドの組み合わせと関連付けられて、あらかじめRAM630に記憶されている。
このような処理を行うことにより、ロボット100の動作プログラムを作成する作業者が動作プログラムを生成または調整する際に、作業者は、以下の利益を享受できる。すなわち、作業者は、改善を促す表示S01,S02に基づいて、動作プログラムの実行に要する時間に影響を与える一部のコマンドについて、動作プログラムを生成または調整することができる。
検出されたコマンドに関する改善を促す表示を、検出されたコマンドと関連付けて行う処理を実現するCPU610の機能部を、「改善示唆部614」として図1に示す。
図7の例においては、さらに、動作プログラムを表す表示において、検出されたコマンドに関する改善案Siが、検出されたWaitコマンドとVrunコマンドの組み合わせの表示と関連付けて表示されている。具体的には、WaitコマンドとVrunコマンドの組み合わせの表示を指し示す吹き出し内に、「Wait 0.5(改行)Vrun'Vision 開始コマンド→Vrun'Vision 開始コマンド」という改善案が、ヒントを表すマークとともに表示される。この改善案Siにおいては、連続するWaitコマンドとVrunコマンドの組み合わせからWaitコマンドが削除されている。
このような処理を行うことにより、ロボット100の動作プログラムを作成する作業者が動作プログラムを生成または調整する際に、作業者は、以下の利益を享受できる。すなわち、作業者は、改善案Siの表示に基づいて、動作プログラムの実行に要する時間に影響を与えるコマンドについて、容易に、動作プログラムを改善することができる。
図7の例においては、検出されたコマンドに関する改善案Siは、検出されたコマンドのコマンド表示Cd053とは異なる態様で表示されている。具体的には、改善案Siは、改善を促す表示S02とともに、吹き出し内に表示されている。
このような処理を行うことにより、作業者は、検出されたコマンドとその改善案Siとを混同することなく、動作プログラムを改善することができる。
図3のステップS400の処理を実現するCPU610の機能部を、「改善案提示部615」として図1に示す。
作業者は、編集画面De02において、改善案Si上でマウス605を左クリックすることにより、表示されている動作プログラムに改善案Siを反映すべき旨の指示を、CPU610にすることができる。
図3のステップS450において、CPU610は、編集画面De02において、動作プログラムに改善案Siを反映すべき旨の指示がされたか否かを判定する。動作プログラムに改善案Siを反映すべき旨の指示がされないまま、あらかじめ定められた時間が経過した場合には、処理は、ステップS550に進む。あらかじめ定められた時間内に、動作プログラムに改善案Siを反映すべき旨の指示がされた場合には、処理は、ステップS500に進む。
ステップS500において、CPU610は、動作プログラムに改善案Siを反映する。
図8は、編集画面De02における改善案の反映後のプログラムリストの例を示す図である。図8の例においては、動作プログラムを表すプログラムリストDp08に図7の改善案Siが反映されている。そして、改善案Siの反映前の動作プログラムと改善案Siの反映後の動作プログラムとの差分が、注釈とともにコメント文Hs10で表示されている。具体的には、Vrunコマンドの上に、コメント文として、「The following code has been replaced」という注釈と、改善案Siの反映前の動作プログラムと改善案Siの反映後の動作プログラムとの差分である、削除された「Wait 0.5」が記載されている。
なお、図8におけるコマンド表示Cd081は、図5におけるコマンド表示Cd051と同じ表示である。図8におけるコマンド表示Cd082は、図5におけるコマンド表示Cd052と同じ表示である。
このような処理を行うことにより、作業者は、以下の利益が得られる。すなわち、作業者は、表示された改善案Siを動作プログラムに反映させることによって、動作プログラムの実行に要する時間に影響を与えるコマンドについて、容易に、動作プログラムを改善することができる。また、動作プログラムのうち改善された部分の過去の記載と対比することにより、過去の改善の履歴を考慮した上で、動作プログラムを改善することができる。
図3のステップS550において、CPU610は、インターフェイス画面DIにおいて、プログラム実行ボタンBeがクリックされたか否かを判定する。プログラム実行ボタンBeがクリックされたことは、編集画面De02に表示されている動作プログラムの実行が指示されたことを意味する。プログラム実行ボタンBeがクリックされない場合には、処理は、ステップS650に進む。プログラム実行ボタンBeがクリックされた場合には、処理は、ステップS600に進む。
ステップS600において、CPU610は、編集画面De02において表示されている動作プログラムを、実際にロボット100に実行させ、作業ごとの実行時間に基づく表示を、IDEのインターフェイス画面DIに示す。以下では、プログラムリストの一部が指定されずに、プログラム実行ボタンBeが押され、プログラムリスト全体が実行された場合を例に説明する。
図9は、プログラムリストDp09における作業Op1,Op2と、プログラムリストDp09において指定される各作業の目標時間を指定する記載Drt1,Drt2と、を示す図である。作業者は、プログラムリストの冒頭に、各作業における目標時間を記載することができる。目標時間は、たとえば、編集対象である動作プログラムの工程と、その前後の工程との関係に基づいて定めることができる。また、目標時間は、あらかじめ定められている標準的な時間とすることもできる。目標時間は、作業者の経験に基づいて定めることもできる。
CPU610の機能部としての受付部611は、プログラムリストの冒頭の目標時間の記載により、作業に要する時間の目標値を受け付ける。図9の例では、作業1についての目標時間は、プログラムリストDp09の冒頭において、記載Drt1によって指定されている。作業1についての目標時間は、5秒である。作業2についての目標時間は、記載Drt2によって指定されている。作業2についての目標時間は、2秒である。
作業者は、プログラムリスト中にコメント文で「作業N」(Nは整数)と記載することにより、プログラムリスト中の一つの「作業」の開始箇所を指定することができる。プログラムリスト中の「作業N」から次の「作業M」(Mは整数)までの部分が、一つの「作業」に対応する部分である。通常は、「作業N」、「作業M」は、順に番号付けされる。しかし、「作業N」、「作業M」の番号は、任意に付すことができる。なお、動作プログラムの実行前には、図9におけるDdt1,Ddt2は表示されていない。
CPU610は、動作プログラムをロボット100に実行させる際に、動作プログラムに含まれる作業Op1,Op2の実行時間を取得する。
図10は、ロボット100のロボット制御装置300において実行される動作プログラムのプログラムリストDp10を示す図である。設定装置600のCPU610は、ステップS550でプログラム実行ボタンBeが押されると、プログラムリストDp09中に、Set Clockコマンドと、End Clockコマンドとの組み合わせを追加する。具体的には、それぞれの「作業」のコメント文の直後に、Set Clockコマンドが追加され、それぞれの「作業」のコメント文の直前に、End Clockコマンドが追加される。ただし、最初の「作業」のコメント文の直前には、End Clockコマンドは追加されず、最後の「作業」のコメント文の直後には、Set Clockコマンドは追加されない。Set ClockコマンドとEnd Clockコマンドとが追加されたプログラムリストDp10が、図10に示されている。
Set Clockコマンドは、時間の計測を開始するコマンドである。End Clockコマンドは、時間の計測を終了するコマンドである。これらのコマンドが実行されることにより、作業ごとの実行時間が測定される。具体的には、プログラムリストDp10のうち、コメント文「作業1」からコメント文「作業2」までの部分の実行時間は、Set ClockコマンドCs1とEnd ClockコマンドCe1により、測定される。コメント文「作業2」以下の部分の実行時間は、Set ClockコマンドCs2とEnd ClockコマンドCe2により、測定される。ステップS600でプログラムリストに挿入されるSet Clockコマンドと、End Clockコマンドとは、編集画面De02には表示されない。
ロボット100よる動作プログラムの実行後、設定装置600のCPU610は、各作業Op1,Op2について、目標値と実行時間とに基づく表示Ddt1,Ddt2を、編集画面De02のプログラムリストに示す。具体的には、編集画面De02に表示されるプログラムリストDp09中に、各作業と対応づけられて、目標値に対する実行時間の差分の表示が示される。図9の例においては、作業1について、差分の表示Ddt1が示される。作業1について、目標値に対する実行時間の差分の時間は、8.24秒である。作業2について、差分の表示Ddt2が示される。作業2について、目標値に対する実行時間の差分の時間は、10.5秒である。
このような表示を行うことにより、作業者は、以下の利益が得られる。すなわち、作業者は、目標値と実行時間とを対比することにより、目標値を達成するために短縮するべき時間を認識しながら、動作プログラムを改善することができる。具体的には、作業者は、各作業についてどの程度、処理時間を削減すればよいかについて、目安を得ることができる。
図3のステップS600において、動作プログラムに含まれる作業の実行時間を取得し、作業について、目標値と実行時間とに基づく表示を行うCPU610の機能部を、「評価部616」として図1に示す。
ステップS650において、CPU610は、動作プログラムの生成を終了する旨の指示が入力されたか否かを判定する。動作プログラムの生成を終了する旨の指示が入力されていない場合には、処理は、S200に戻る。動作プログラムの生成を終了する旨の指示が入力された場合には、処理は、終了する。
(2)インターフェイス画面DIを通じた改善を促す表示のタイミング:
以上の説明においては、一つの動作プログラムがひととおり完成している状態において、統合開発環境のインターフェイス画面DIに表示される、改善を促す表示等について説明した(図4~図9参照)。すなわち、図3のステップS100において、CPU610の受付部611が動作プログラムの全体を受け付けた状態において、ステップS200において、受け付けた動作プログラムの中から、CPU610の検出部612が、RAM630に記憶されたコマンドCt1や、コマンドの組み合わせCt2を構成する2以上のコマンドと一致する2以上のコマンドを検出する。そして、ステップS300において、CPU610の改善示唆部614は、動作プログラムの全体を受け付けた状態において、動作プログラムを表す表示において、検出されたコマンドや、コマンドの組み合わせに関する改善を促す表示S01,S02を、検出されたコマンドや、コマンドの組み合わせと関連付けて行う(図3のS400、図4~図9参照)。
以上の説明においては、一つの動作プログラムがひととおり完成している状態において、統合開発環境のインターフェイス画面DIに表示される、改善を促す表示等について説明した(図4~図9参照)。すなわち、図3のステップS100において、CPU610の受付部611が動作プログラムの全体を受け付けた状態において、ステップS200において、受け付けた動作プログラムの中から、CPU610の検出部612が、RAM630に記憶されたコマンドCt1や、コマンドの組み合わせCt2を構成する2以上のコマンドと一致する2以上のコマンドを検出する。そして、ステップS300において、CPU610の改善示唆部614は、動作プログラムの全体を受け付けた状態において、動作プログラムを表す表示において、検出されたコマンドや、コマンドの組み合わせに関する改善を促す表示S01,S02を、検出されたコマンドや、コマンドの組み合わせと関連付けて行う(図3のS400、図4~図9参照)。
このような処理においては、動作プログラムの全体から検出された、動作プログラムの実行に要する時間に影響を与えるコマンドCt1や、コマンドの組み合わせCt2に関する改善を促す表示が、動作プログラムを表す表示において、行われる。このため、作業者は、表示を参考にして、動作プログラムの全体を最適化するように、動作プログラムを改善することができる。
たとえば、Speedコマンドによる移動速度の上限の指定や、Accelコマンドによる制御点の加速度の上限、および減速度の上限の指定は、個別のGoコマンドに対して行うこともでき、複数のGoコマンドに先だって、複数のGoコマンドに対して行うこともできる。このため、動作プログラムの全体から検出されたSpeedコマンドやAccelコマンドの場所を把握することにより、作業者は、制御点の移動速度や加速度が、動作プログラム全体として最適となるように、SpeedコマンドやAccelコマンドのそれぞれを設定することができる。
一方、図3のステップS100において、CPU610の受付部611が動作プログラムの一部であって、1以上のコマンドを含む一部を受け付けた状態において、ステップS200において、受け付けた動作プログラムの一部の中から、CPU610の検出部612は、記憶部630に記憶されたコマンドCt1や、コマンドの組み合わせCt2を構成する2以上のコマンドと一致する2以上のコマンドを検出することもできる。そして、ステップS300において、CPU610の改善示唆部614は、動作プログラムの一部を受け付けた状態において、動作プログラムの一部を表す表示において、改善を促す表示S01,S02を、検出されたコマンドや、コマンドの組み合わせと関連付けて行うこともできる。
このような処理により、作業者は、動作プログラムの作成途中においても、動作プログラムを改善しながら、動作プログラムの作成を進めることができる。
本実施形態における設定装置600を、ロボットの動作プログラムの作成装置とも呼ぶ。設定装置600のRAM630を「記憶部」とも呼ぶ。
B.第2実施形態:
上記第1実施形態においては、改善案Siの反映前の動作プログラムと改善案Siの反映後の動作プログラムとの差分が、注釈とともにコメント文Hs10として表示される(図7および図8参照)。プログラムリスト中の同一の箇所について、複数回の修正が行われている場合には、作業者からの指示を受けて、過去の修正履歴が表示される態様とすることもできる。
上記第1実施形態においては、改善案Siの反映前の動作プログラムと改善案Siの反映後の動作プログラムとの差分が、注釈とともにコメント文Hs10として表示される(図7および図8参照)。プログラムリスト中の同一の箇所について、複数回の修正が行われている場合には、作業者からの指示を受けて、過去の修正履歴が表示される態様とすることもできる。
第2実施形態においては、改善案Siの反映前の動作プログラムと改善案Siの反映後の動作プログラムとの差分を表すコメント文Hs10にカーソルを合わせて、マウス605の右クリックすることにより、CPU610に過去の修正履歴の表示が指示され、インターフェイス画面DIに過去の修正履歴が表示される。第2実施形態の他の点は、第1実施形態と同じである。
図11は、過去の修正履歴の表示を示す図である。図11の例においては、改善案Siの反映前の動作プログラムと改善案Siの反映後の動作プログラムとの差分を表すコメント文が、改善案Siの反映後の動作プログラムを表すプログラムリストDp11において、強調されて表示されている。具体的には、コメント文Hs20に、他のコメント文やコマンドとは異なる背景の色を付されている。強調されて表示されているのは、図8のプログラムリストDp08において、右クリックされたコメント文Hs10に対応するコメント文である。
図11の例においては、プログラムリストDp11の左部に、コメント文Hs20が表している記載について、過去の修正履歴が表示されている。表示B01より、Wait 0.5が削除されたのは、本日の18時であることが分かる。表示B02より、Wait 0.5より前には、Wait 0.4が記載されており、本日の17時42分にWait 0.4が削除されたことが分かる。さらに過去の履歴がある場合には、その内容が時刻とともに表示される。ユーザーは、履歴の表示上にカーソルを置いてマウス605で左クリックしてCPU610に指示することにより、プログラムリストの該当部分の記載を、その履歴が表す内容に戻すことができる。
このような態様とすることにより、作業者は、動作プログラムの改善において、容易に、試行錯誤することができる。たとえば、図3のステップS600において、動作プログラムの実行結果が修正前の動作プログラムよりも悪かった場合には、上記の処理により、動作プログラムを、容易に、修正前の状態に戻すことができる。
C.第3実施形態:
第1実施形態においては、図3のステップS600において、編集画面De02に表示されるプログラムリストDp09中に、各作業と対応づけられて、実行時間の目標時間に対する差分が示される(図9のDdt1,Ddt2参照)。しかし、さらに作業者が直感的に動作プログラムの改善の結果を把握できるように、実行時間に基づく表示を行うこともできる。
第1実施形態においては、図3のステップS600において、編集画面De02に表示されるプログラムリストDp09中に、各作業と対応づけられて、実行時間の目標時間に対する差分が示される(図9のDdt1,Ddt2参照)。しかし、さらに作業者が直感的に動作プログラムの改善の結果を把握できるように、実行時間に基づく表示を行うこともできる。
第3実施形態においては、図3のステップS600において、さらに、修正前の動作プログラムの実行時間と、修正後の動作プログラムの実行時間と、を対比する表示が、棒グラフの形態で行われる。第3実施形態の他の点は、第1実施形態と同じである。
図12は、第3実施形態において、図3のステップS600で示される実行時間を示す表示である。CPU610の機能部としての評価部616は、図3のステップS600において、今回のS600の処理で実行された動作プログラムに含まれる作業ごとの実行時間と、前回のS600の処理で実行された動作プログラムに含まれる作業ごとの実行時間と、に基づいて、棒グラフを作成し、IDEのインターフェイス画面DIにおいて表示する。
図12の例において、表示Hg10は、前回のS600の処理で実行された動作プログラムの実行時間を表す。表示Hg10に含まれる表示Hg11は、動作プログラムに含まれる作業1の実行時間を表す。表示Hg10に含まれる表示Hg12は、動作プログラムに含まれる作業2の実行時間を表す。表示Hg10に含まれる表示Hg13は、動作プログラムに含まれる作業3の実行時間を表す。なお、図12に示した例は、第1実施形態の動作プログラムとは異なる動作プログラムに基づく例である。
表示Hg20は、今回のS600の処理で実行された動作プログラムの実行時間を表す。表示Hg20に含まれる表示Hg21は、動作プログラムに含まれる作業1の実行時間を表す。表示Hg20に含まれる表示Hg22は、動作プログラムに含まれる作業2の実行時間を表す。表示Hg20に含まれる表示Hg23は、動作プログラムに含まれる作業3の実行時間を表す。
このような態様とすれば、作業者は、修正の結果得られた実行時間の短縮の効果を、直感的に把握することができる。また、作業者は、動作プログラム全体の実行時間のうちの多くを占める作業を、直感的に把握できる。その結果、作業者は、その作業の実行時間を短縮することで、動作プログラム全体の実行時間を効率的に短縮することができる。
D.他の実施形態:
D1.他の実施形態1:
(1)上記第1実施形態においては、処理に時間を要するコマンドとしてVrunコマンドを挙げて、検出対象のコマンドとの組み合わせCt2を説明した。しかし、処理に時間を要するコマンドとして、他のコマンドが、Waitコマンドとの組み合わせで、記憶部に記憶されていてもよい。たとえば、他のロボットと協働するロボットにおいて、他のロボットと干渉しないように経路を決定する経路計画を行うコマンドが、処理に時間を要するコマンドとして、Waitコマンドとの組み合わせで、記憶部に記憶されていてもよい。
D1.他の実施形態1:
(1)上記第1実施形態においては、処理に時間を要するコマンドとしてVrunコマンドを挙げて、検出対象のコマンドとの組み合わせCt2を説明した。しかし、処理に時間を要するコマンドとして、他のコマンドが、Waitコマンドとの組み合わせで、記憶部に記憶されていてもよい。たとえば、他のロボットと協働するロボットにおいて、他のロボットと干渉しないように経路を決定する経路計画を行うコマンドが、処理に時間を要するコマンドとして、Waitコマンドとの組み合わせで、記憶部に記憶されていてもよい。
(2)上記第1実施形態においては、設定装置600のRAM630が、動作プログラムの実行に要する時間に影響を与える1以上のコマンドCtsを記憶している(図1参照)。しかし、動作プログラムの実行に要する時間に影響を与える1以上のコマンドは、設定装置600のROM640や、ロボット制御装置300のRAM330や、ROM340、さらには、ネットワークで接続された他の記憶媒体に記憶されていてもよい。
(3)上記第1実施形態においては、図3のステップS200において検出されたコマンドには、ステップS300において、検出されなかったコマンドとは異なる背景の色を付される(図4~図8参照)。しかし、検出されたコマンドは、他の方法で強調して表示されてもよい。たとえば、検出されたコマンドは、検出されなかったコマンドとは異なる色で表示されてもよい。また、検出されたコマンドは、検出されなかったコマンドよりも太い文字で表示されてもよい。さらに、検出されたコマンドには、検出されなかったコマンドには付されないマークや、直線状または波線状の下線などが付されてもよい。
(4)上記第1実施形態においては、作業者によってプログラムリスト中に記載されたコメント文「作業N」から次のコメント文「作業M」(M,Nは整数)までが、一つの「作業」として、指定される。しかし、動作プログラムに含まれる各作業は、他の方法で指定されてもよい。たとえば、プログラムリストにおいて、ある量の字下げを伴って記載されているコマンドAから、同じ量の字下げを伴って記載されているコマンドであって、コマンドAの後、最初に記載されているそのようなコマンドBまでを、一つの「作業」として、処理する態様とすることができる。また、プログラムリストにおいて、作業と作業の間に空白行を配することにより、各作業に対応する範囲が指定される態様とすることもできる。
(5)上記第1実施形態においては、目標値と実行時間とに基づく表示Ddt1,Ddt2は、動作プログラムに従って実際にロボット100を動かして得られた各作業の実行時間の測定値に基づいて表示される(図9参照)。第3実施形態の棒グラフHg10、Hg20は、実際に動作プログラムに従ってロボット100を動かして得られた各作業の実行時間の測定値に基づいて表示される(図12参照)。しかし、動作プログラムに含まれる作業の実行時間は、他の方法で取得されることもできる。
たとえば、コマンドごとに、標準的な実行時間や最大の実行時間を記憶部に記憶しておき、それらを加算することで、作業の実行時間を取得することもできる。また、物理的なロボット100の挙動を反映することができるシミュレーターによって、コンピューター上でロボット100の動作をシミュレーションして、作業ごとの実行時間を測定することもできる。さらに、実際のロボット100を動かして測定される作業の実行時間と、シミュレーションによって得られる作業の実行時間と、あらかじめ用意されているコマンドごとの実行時間に基づいて算出される作業の実行時間と、の中から2以上を組み合わせて、動作プログラムに含まれる各作業の実行時間を取得することもできる。
(6)上記第3実施形態においては、修正前の動作プログラムの実行時間と、修正後の動作プログラムの実行時間と、を対比する表示が、棒グラフの形態で行われる(図12参照)。これらの棒グラフに加えて、または、修正前の動作プログラムの実行時間に代えて、各作業の目標時間から得られる動作プログラムの実行時間の目標時間を表す棒グラフが、表示されてもよい。動作プログラムの実行時間を表す棒グラフは、各作業の目標時間を表す部分から構成されることができる。
(7)上記第1実施形態においては、改善案Si上でマウス605が左クリックされることにより、表示されている動作プログラムに改善案Siを反映すべき旨の指示が行われる(図7参照)。しかし、表示されている動作プログラムに改善案を反映すべき旨の指示は、他の方法で実行されることもできる。
たとえば、表示されている動作プログラムに改善案を反映すべき旨の指示は、画面に表示されたボタンを押すことによって実行されることができる。また、表示されている動作プログラムに改善案を反映すべき旨の指示は、キーボードのあらかじめ定められた1以上のキーを押すことによって、実行されることができる。上記実施形態において、マウス605の左クリックや右クリックで行われる他の指示についても、同様に、上記の例を含む他の態様で行われることができる。
D2.他の実施形態2:
上記実施形態においては、受け付けた前記動作プログラムの中から、RAM630に記憶されたコマンドの組み合わせCt2を構成する2以上のコマンドと一致する2以上のコマンドが検出され、強調表示される(図4のCd43および図5のCd53参照)。しかし、コマンドの組み合わせCt2を構成する2以上のコマンドは検出されず、動作プログラムの実行に要する時間に影響を与える個別のコマンドCt1のみが検出されてもよい。
上記実施形態においては、受け付けた前記動作プログラムの中から、RAM630に記憶されたコマンドの組み合わせCt2を構成する2以上のコマンドと一致する2以上のコマンドが検出され、強調表示される(図4のCd43および図5のCd53参照)。しかし、コマンドの組み合わせCt2を構成する2以上のコマンドは検出されず、動作プログラムの実行に要する時間に影響を与える個別のコマンドCt1のみが検出されてもよい。
D3.他の実施形態3:
上記実施形態においては、編集画面De02の動作プログラムを表す表示において、検出されたコマンドが強調して表示される(図4および図5参照)。しかし、特定のコマンドの検出は、表示の強調ではなく、たとえば、音声出力など、他の方法で作業者に伝えられてもよい。音声出力は、検出されたコマンドに関する言語による音声出力でもよく、特定のコマンドが検出されたことを表す非言語の音による出力でもよい。
上記実施形態においては、編集画面De02の動作プログラムを表す表示において、検出されたコマンドが強調して表示される(図4および図5参照)。しかし、特定のコマンドの検出は、表示の強調ではなく、たとえば、音声出力など、他の方法で作業者に伝えられてもよい。音声出力は、検出されたコマンドに関する言語による音声出力でもよく、特定のコマンドが検出されたことを表す非言語の音による出力でもよい。
D4.他の実施形態4:
上記実施形態においては、動作プログラムを表す表示において、検出されたコマンドに関する改善を促す表示S01,S02が、検出された前記コマンドと関連付けて行われる(図6、図7参照)。しかし、改善を促すメッセージは、たとえば、音声出力など、他の方法で作業者に伝えられてもよい。音声出力は、検出されたコマンドに関する改善を促す言語による音声出力でもよく、削除可能な特定のコマンドが検出されたことを表す非言語の音による出力でもよい。また、検出されたコマンドの少なくとも一部について、作業者に伝えられることなく、自動的に修正されてもよい。
上記実施形態においては、動作プログラムを表す表示において、検出されたコマンドに関する改善を促す表示S01,S02が、検出された前記コマンドと関連付けて行われる(図6、図7参照)。しかし、改善を促すメッセージは、たとえば、音声出力など、他の方法で作業者に伝えられてもよい。音声出力は、検出されたコマンドに関する改善を促す言語による音声出力でもよく、削除可能な特定のコマンドが検出されたことを表す非言語の音による出力でもよい。また、検出されたコマンドの少なくとも一部について、作業者に伝えられることなく、自動的に修正されてもよい。
D5.他の実施形態5:
上記実施形態においては、動作プログラムを表す表示において、検出されたコマンドに関する改善案Siが、検出されたWaitコマンドとVrunコマンドの組み合わせと関連付けて表示される(図7参照)。しかし、改善を促す表示のみが行われ、改善案が提示されない態様とすることもできる。そのような態様においては、作業者は、自ら改善案を考案する。
上記実施形態においては、動作プログラムを表す表示において、検出されたコマンドに関する改善案Siが、検出されたWaitコマンドとVrunコマンドの組み合わせと関連付けて表示される(図7参照)。しかし、改善を促す表示のみが行われ、改善案が提示されない態様とすることもできる。そのような態様においては、作業者は、自ら改善案を考案する。
D6.他の実施形態6:
上記実施形態においては、検出されたコマンドに関する改善案Siは、検出されたコマンドのコマンド表示Cd053とは異なる態様で表示される。具体的には、改善案Siは、改善を促す表示S02とともに、吹き出し内に表示される(図7参照)。しかし、改善案は、もとの表記と同様の態様で、プログラムリストにおいて、元の表記と併記されてもよい。改善案は、たとえば、プログラムリストにおいて、改善案である旨の注釈とともに、コメント文として表記されてもよい。
上記実施形態においては、検出されたコマンドに関する改善案Siは、検出されたコマンドのコマンド表示Cd053とは異なる態様で表示される。具体的には、改善案Siは、改善を促す表示S02とともに、吹き出し内に表示される(図7参照)。しかし、改善案は、もとの表記と同様の態様で、プログラムリストにおいて、元の表記と併記されてもよい。改善案は、たとえば、プログラムリストにおいて、改善案である旨の注釈とともに、コメント文として表記されてもよい。
D7.他の実施形態7:
上記実施形態においては、動作プログラムに改善案Siを反映すべき旨の指示がされた場合には、動作プログラムに改善案Siが反映される(図7、図8参照)。しかし、提示された改善案は、自動的に動作プログラムに反映されず、作業者自身によってキーボードを使用して入力される態様とすることもできる。
上記実施形態においては、動作プログラムに改善案Siを反映すべき旨の指示がされた場合には、動作プログラムに改善案Siが反映される(図7、図8参照)。しかし、提示された改善案は、自動的に動作プログラムに反映されず、作業者自身によってキーボードを使用して入力される態様とすることもできる。
D8.他の実施形態8:
上記第1実施形態においては、各作業Op1,Op2について、目標値と実行時間とに基づく表示Ddt1,Ddt2が行われる。具体的には、編集画面De02に表示されるプログラムリストDp09中に、各作業と対応づけられて、目標値に対する実行時間の差分の表示が示される(図9参照)。しかし、そのような目標値と実行時間とに基づく表示が行われず、検出されたコマンドに関する改善を促す表示、および改善案が行われる態様とすることができる。
上記第1実施形態においては、各作業Op1,Op2について、目標値と実行時間とに基づく表示Ddt1,Ddt2が行われる。具体的には、編集画面De02に表示されるプログラムリストDp09中に、各作業と対応づけられて、目標値に対する実行時間の差分の表示が示される(図9参照)。しかし、そのような目標値と実行時間とに基づく表示が行われず、検出されたコマンドに関する改善を促す表示、および改善案が行われる態様とすることができる。
E.さらに他の実施形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
(1)本開示の一形態によれば、ロボットの動作プログラムの作成装置が提供される。このロボットの動作プログラムの作成装置は、1以上のコマンドを含み、ロボットが実行する作業を記述する動作プログラムを受け付ける受付部と、前記ロボットが実行できる複数のコマンドのうち、動作プログラムの実行に要する時間に影響を与える一部のコマンドを記憶している記憶部と、受け付けた前記動作プログラムの中から、前記記憶部に記憶された前記コマンドと一致するコマンドを検出する検出部と、を備える。
このような態様とすれば、受け付けた動作プログラムの中から、動作プログラムの実行に要する時間に影響を与えるコマンドを検出することができる。このため、ロボットの動作プログラムを作成する作業者が動作プログラムを生成または調整する際に、そのようなコマンドの存在を作業者に告知することによって、実際にロボットの作業の効率を上げられるように、作業者によるロボットの動作プログラムの作成の支援を行うことができる。
このような態様とすれば、受け付けた動作プログラムの中から、動作プログラムの実行に要する時間に影響を与えるコマンドを検出することができる。このため、ロボットの動作プログラムを作成する作業者が動作プログラムを生成または調整する際に、そのようなコマンドの存在を作業者に告知することによって、実際にロボットの作業の効率を上げられるように、作業者によるロボットの動作プログラムの作成の支援を行うことができる。
(2)上記形態の作成装置において、前記記憶部は、さらに、前記ロボットが実行できる複数のコマンドのうち、2以上のコマンドの組み合わせであって、動作プログラムの実行に要する時間に影響を与える組み合わせを記憶しており、前記検出部は、受け付けた前記動作プログラムの中から、前記記憶部に記憶された前記組み合わせを構成する2以上のコマンドと一致する2以上のコマンドを検出する、態様とすることもできる。
このような態様とすれば、受け付けた動作プログラムの中から、動作プログラムの実行に要する時間に影響を与えるコマンドの組み合わせを検出することができる。このため、ロボットの動作プログラムを作成する作業者が動作プログラムを生成または調整する際に、そのようなコマンドの組み合わせの存在を作業者に告知することによって、ロボットの作業の効率を上げられるように、作業者の支援を行うことができる。
このような態様とすれば、受け付けた動作プログラムの中から、動作プログラムの実行に要する時間に影響を与えるコマンドの組み合わせを検出することができる。このため、ロボットの動作プログラムを作成する作業者が動作プログラムを生成または調整する際に、そのようなコマンドの組み合わせの存在を作業者に告知することによって、ロボットの作業の効率を上げられるように、作業者の支援を行うことができる。
(3)上記形態の作成装置において、さらに、前記動作プログラムを表す表示において、検出された前記コマンドを強調して表示する強調表示部を備える、態様とすることもできる。
このような態様とすれば、作業者が動作プログラムを生成または調整する際に、動作プログラム中の、動作プログラムの実行に要する時間に影響を与えるコマンドの場所を、作業者に提示することができる。その結果、作業者は、実際にロボットの作業の効率を上げられるように、動作プログラムを生成または調整することができる。
このような態様とすれば、作業者が動作プログラムを生成または調整する際に、動作プログラム中の、動作プログラムの実行に要する時間に影響を与えるコマンドの場所を、作業者に提示することができる。その結果、作業者は、実際にロボットの作業の効率を上げられるように、動作プログラムを生成または調整することができる。
(4)上記形態の作成装置において、さらに、前記動作プログラムを表す表示において、検出された前記コマンドに関する改善を促す表示を、検出された前記コマンドと関連付けて行う、改善示唆部を備える、態様とすることもできる。
このような態様とすれば、ロボットの動作プログラムを作成する作業者が動作プログラムを生成または調整する際に、作業者は、改善を促す表示に基づいて、動作プログラムの実行に要する時間に影響を与える一部のコマンドについて、動作プログラムを生成または調整することができる。
このような態様とすれば、ロボットの動作プログラムを作成する作業者が動作プログラムを生成または調整する際に、作業者は、改善を促す表示に基づいて、動作プログラムの実行に要する時間に影響を与える一部のコマンドについて、動作プログラムを生成または調整することができる。
(5)上記形態の作成装置において、さらに、前記動作プログラムを表す表示において、検出された前記コマンドに関する改善案を、検出された前記コマンドと関連付けて表示する、改善案提示部を備える、態様とすることもできる。
このような態様とすれば、ロボットの動作プログラムを作成する作業者が動作プログラムを生成または調整する際に、作業者は、改善案の表示に基づいて、動作プログラムの実行に要する時間に影響を与えるコマンドについて、容易に、動作プログラムを改善することができる。
このような態様とすれば、ロボットの動作プログラムを作成する作業者が動作プログラムを生成または調整する際に、作業者は、改善案の表示に基づいて、動作プログラムの実行に要する時間に影響を与えるコマンドについて、容易に、動作プログラムを改善することができる。
(6)上記形態の作成装置において、前記改善案提示部は、前記動作プログラムを表す表示において、検出された前記コマンドに関する改善案を、検出された前記コマンドとは異なる態様で表示する、態様とすることもできる。
このような態様とすれば、作業者は、検出されたコマンドとその改善案とを混同することなく、動作プログラムを改善することができる。
このような態様とすれば、作業者は、検出されたコマンドとその改善案とを混同することなく、動作プログラムを改善することができる。
(7)上記形態の作成装置において、前記改善案提示部は、表示されている動作プログラムに前記改善案を反映すべき旨の指示を受けて、前記動作プログラムに前記改善案を反映する、態様とすることもできる。
このような態様とすれば、作業者は、表示された改善案を動作プログラムに反映させることにより、動作プログラムの実行に要する時間に影響を与えるコマンドについて、容易に、動作プログラムを改善することができる。
このような態様とすれば、作業者は、表示された改善案を動作プログラムに反映させることにより、動作プログラムの実行に要する時間に影響を与えるコマンドについて、容易に、動作プログラムを改善することができる。
(8)上記形態の作成装置において、前記受付部は、前記作業に要する時間の目標値を受け付け、前記作成装置は、さらに、前記動作プログラムに含まれる前記作業の実行時間を取得し、前記作業について、前記目標値と前記実行時間とに基づく表示を行う、評価部を備える、態様とすることもできる。
このような態様とすれば、作業者は、目標値と実行時間とを対比することにより、目標値を達成するために短縮するべき時間を認識しながら、動作プログラムを改善することができる。
このような態様とすれば、作業者は、目標値と実行時間とを対比することにより、目標値を達成するために短縮するべき時間を認識しながら、動作プログラムを改善することができる。
(9)上記形態の作成装置において、前記検出部は、前記動作プログラムの一部であって、1以上のコマンドを含む一部を前記受付部が受け付けた状態において、受け付けた前記動作プログラムの前記一部の中から、前記記憶部に記憶された前記コマンドと一致するコマンドを検出し、前記改善示唆部は、前記受付部が前記動作プログラムの前記一部を受け付けた状態において、前記動作プログラムの前記一部を表す表示において、検出された前記コマンドに関する前記改善を促す表示を、検出された前記コマンドと関連付けて行う、態様とすることもできる。
このような態様とすれば、作業者は、動作プログラムの作成途中においても動作プログラムを改善しながら、動作プログラムの作成を進めることができる。
このような態様とすれば、作業者は、動作プログラムの作成途中においても動作プログラムを改善しながら、動作プログラムの作成を進めることができる。
(10)上記形態の作成装置において、前記検出部は、前記動作プログラムの全体を前記受付部が受け付けた状態において、受け付けた前記動作プログラムの中から、前記記憶部に記憶された前記組み合わせを構成する前記2以上のコマンドと一致する2以上のコマンドを検出し、前記改善示唆部は、前記受付部が前記動作プログラムの全体を受け付けた状態において、前記動作プログラムを表す表示において、検出された前記組み合わせに関する前記改善を促す表示を、検出された前記2以上のコマンドと関連付けて行う、態様とすることもできる。
このような態様とすれば、動作プログラムの全体から検出された、動作プログラムの実行に要する時間に影響を与えるコマンドの組み合わせに関する前記改善を促す表示が、動作プログラムを表す表示において、行われる。このため、作業者は、表示を参考にして、動作プログラムの全体を最適化するように、動作プログラムを改善することができる。
このような態様とすれば、動作プログラムの全体から検出された、動作プログラムの実行に要する時間に影響を与えるコマンドの組み合わせに関する前記改善を促す表示が、動作プログラムを表す表示において、行われる。このため、作業者は、表示を参考にして、動作プログラムの全体を最適化するように、動作プログラムを改善することができる。
(11)本開示の他の形態によれば、ロボットの動作プログラムの改善方法が提供される。このロボットの動作プログラムの改善方法は、(a)1以上のコマンドを含み、ロボットが実行する作業を記述する動作プログラムを受け付ける工程と、(b)受け付けた前記動作プログラムの中から、前記ロボットが実行できる複数のコマンドのうち動作プログラムの実行に要する時間に影響を与える一部のコマンドであって記憶部に記憶されているコマンドと、一致するコマンドを検出する工程と、を備える。
本開示は、ロボットの動作プログラムの作成装置およびロボットの動作プログラムの改善方法以外の種々の形態で実現することも可能である。例えば、ロボット、ロボットの作成方法、ロボットの動作プログラムの作成方法、ならびにそれらの方法を実現するコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体等の形態で実現することができる。
1…ロボットシステム、100…ロボット、110…アーム、110a…アーム要素、110b…アーム要素、110d…アーム要素、200…エンドエフェクター、300…ロボット制御装置、310…CPU、330…RAM、340…ROM、410…サーボモーター、410o…出力軸、420…モーター角度センサー、510…減速機、510i…入力軸、510o…出力軸、600…設定装置、602…ディスプレイ、604…キーボード、605…マウス、610…CPU、611…受付部、612…検出部、613…強調表示部、614…改善示唆部、615…改善案提示部、616…評価部、630…RAM、640…ROM、700…カメラ、B01…履歴の表示、B02…履歴の表示、Be…プログラム実行ボタン、Bs…シミュレーション実行ボタン、Cd041…コマンド表示、Cd042…コマンド表示、Cd043…コマンド表示、Cd051…コマンド表示、Cd052…コマンド表示、Cd053…コマンド表示、Cd081…コマンド表示、Cd082…コマンド表示、Ce1…End Clockコマンド、Ce2…End Clockコマンド、Cs1…Set Clockコマンド、Cs2…Set Clockコマンド、Ct1…記憶されているコマンド、Ct2…記憶されているコマンドの組み合わせ、Cts…記憶されている1以上のコマンド、DI…インターフェイス画面、Ddt1…実行時間の差分を表す表示、Ddt2…実行時間の差分を表す表示、De02…編集画面、Dp04…プログラムリスト、Dp05…プログラムリスト、Dp08…プログラムリスト、Dp09…プログラムリスト、Dp10…プログラムリスト、Drt1…目標時間を指定する記載、Drt2…目標時間を指定する記載、Ds…シミュレーション画面、Hg10…棒グラフの表示、Hg11…棒グラフの一部の表示、Hg12…棒グラフの一部の表示、Hg13…棒グラフの一部の表示、Hg20…棒グラフの表示、Hg21…棒グラフの一部の表示、Hg22…棒グラフの一部の表示、Hg23…棒グラフの一部の表示、Hs10…コメント文、Hs20…コメント文、J1…関節、J2…関節、J3…関節、J4…関節、Op1…作業、Op2…作業、S01…改善を促す表示、S02…改善を促す表示、Si…改善案、W01…ワークピース
Claims (11)
- ロボットの動作プログラムの作成装置であって、
1以上のコマンドを含み、ロボットが実行する作業を記述する動作プログラムを受け付ける受付部と、
前記ロボットが実行できる複数のコマンドのうち、動作プログラムの実行に要する時間に影響を与える一部のコマンドを記憶している記憶部と、
受け付けた前記動作プログラムの中から、前記記憶部に記憶された前記コマンドと一致するコマンドを検出する検出部と、を備える、作成装置。 - 請求項1に記載の作成装置であって、
前記記憶部は、さらに、前記ロボットが実行できる複数のコマンドのうち、2以上のコマンドの組み合わせであって、動作プログラムの実行に要する時間に影響を与える組み合わせを記憶しており、
前記検出部は、受け付けた前記動作プログラムの中から、前記記憶部に記憶された前記組み合わせを構成する2以上のコマンドと一致する2以上のコマンドを検出する、作成装置。 - 請求項1または2に記載の作成装置であって、さらに、
前記動作プログラムを表す表示において、検出された前記コマンドを強調して表示する強調表示部を備える、作成装置。 - 請求項1から3のいずれか1項に記載の作成装置であって、さらに、
前記動作プログラムを表す表示において、検出された前記コマンドに関する改善を促す表示を、検出された前記コマンドと関連付けて行う、改善示唆部を備える、作成装置。 - 請求項1から4のいずれか1項に記載の作成装置であって、さらに、
前記動作プログラムを表す表示において、検出された前記コマンドに関する改善案を、検出された前記コマンドと関連付けて表示する、改善案提示部を備える、作成装置。 - 請求項5に記載の作成装置であって、
前記改善案提示部は、前記動作プログラムを表す表示において、検出された前記コマンドに関する改善案を、検出された前記コマンドとは異なる態様で表示する、作成装置。 - 請求項5または6に記載の作成装置であって、
前記改善案提示部は、表示されている動作プログラムに前記改善案を反映すべき旨の指示を受けて、前記動作プログラムに前記改善案を反映する、作成装置。 - 請求項1から7のいずれか1項に記載の作成装置であって、
前記受付部は、前記作業に要する時間の目標値を受け付け、
前記作成装置は、さらに、
前記動作プログラムに含まれる前記作業の実行時間を取得し、前記作業について、前記目標値と前記実行時間とに基づく表示を行う、評価部を備える、作成装置。 - 請求項4に記載の作成装置であって、
前記検出部は、前記動作プログラムの一部であって、1以上のコマンドを含む一部を前記受付部が受け付けた状態において、受け付けた前記動作プログラムの前記一部の中から、前記記憶部に記憶された前記コマンドと一致するコマンドを検出し、
前記改善示唆部は、前記受付部が前記動作プログラムの前記一部を受け付けた状態において、前記動作プログラムの前記一部を表す表示において、検出された前記コマンドに関する前記改善を促す表示を、検出された前記コマンドと関連付けて行う、作成装置。 - 請求項2に直接または間接に従属する請求項4に記載の作成装置であって、
前記検出部は、前記動作プログラムの全体を前記受付部が受け付けた状態において、受け付けた前記動作プログラムの中から、前記記憶部に記憶された前記組み合わせを構成する前記2以上のコマンドと一致する2以上のコマンドを検出し、
前記改善示唆部は、前記受付部が前記動作プログラムの全体を受け付けた状態において、前記動作プログラムを表す表示において、検出された前記組み合わせに関する前記改善を促す表示を、検出された前記2以上のコマンドと関連付けて行う、作成装置。 - ロボットの動作プログラムの改善方法であって、
(a)1以上のコマンドを含み、ロボットが実行する作業を記述する動作プログラムを受け付ける工程と、
(b)受け付けた前記動作プログラムの中から、前記ロボットが実行できる複数のコマンドのうち動作プログラムの実行に要する時間に影響を与える一部のコマンドであって記憶部に記憶されているコマンドと、一致するコマンドを検出する工程と、を備える、方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020120444A JP2022017732A (ja) | 2020-07-14 | 2020-07-14 | ロボットの動作プログラムの作成装置、およびロボットの動作プログラムの改善方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020120444A JP2022017732A (ja) | 2020-07-14 | 2020-07-14 | ロボットの動作プログラムの作成装置、およびロボットの動作プログラムの改善方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022017732A true JP2022017732A (ja) | 2022-01-26 |
Family
ID=80186156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020120444A Pending JP2022017732A (ja) | 2020-07-14 | 2020-07-14 | ロボットの動作プログラムの作成装置、およびロボットの動作プログラムの改善方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022017732A (ja) |
-
2020
- 2020-07-14 JP JP2020120444A patent/JP2022017732A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7945349B2 (en) | Method and a system for facilitating calibration of an off-line programmed robot cell | |
CN102163047B (zh) | 学习控制机器人 | |
JP2001105359A (ja) | ロボットシステム用グラフィック表示装置 | |
JP2007054942A (ja) | ロボットプログラム評価・修正方法及びロボットプログラム評価・修正装置 | |
US20180036883A1 (en) | Simulation apparatus, robot control apparatus and robot | |
WO1990004222A1 (en) | Robot program checking method | |
JP5123502B2 (ja) | ポストプロセッサ開発支援システム及びそれを用いたcamシステム | |
JP6961128B1 (ja) | シミュレーション装置、工作機械システム、シミュレーション方法および加工方法 | |
JP2008142788A (ja) | 動作プログラム作成支援方法および動作プログラム作成装置。 | |
JP2017211872A (ja) | アラーム解決のためのプログラム修正支援機能を備えた数値制御装置 | |
JP2004108852A (ja) | 測定支援方法および装置 | |
JP2022017732A (ja) | ロボットの動作プログラムの作成装置、およびロボットの動作プログラムの改善方法 | |
JPH10143221A (ja) | 機器制御プログラムの開発支援システムおよび開発支援方法 | |
JP6392817B2 (ja) | シミュレーション装置 | |
JP2009070181A (ja) | 動作プログラム作成支援システム | |
US11454952B2 (en) | Numerical control apparatus | |
JP6836540B2 (ja) | 情報処理装置及び情報処理方法 | |
WO2023073883A1 (ja) | 補助ファイルを生成するシミュレーション装置および制御システム | |
JPH08137532A (ja) | ロボット動作プログラム作成方法およびロボット教示方法 | |
JP5763352B2 (ja) | Ncプログラム作成装置 | |
JPH0747209B2 (ja) | 溶接条件自動設定装置 | |
JPH07121222A (ja) | 定置ツールを用いたバリ取り動作プログラムの自動作成方法 | |
JP3823938B2 (ja) | プログラム作成装置 | |
JPS6260006A (ja) | ロボツト制御プログラムの干渉チエツク方法 | |
JP2002117079A (ja) | 工程設計支援装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20210922 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20211104 |