JP7382217B2 - オフラインプログラミング装置及びオフラインプログラミング方法 - Google Patents

オフラインプログラミング装置及びオフラインプログラミング方法 Download PDF

Info

Publication number
JP7382217B2
JP7382217B2 JP2019227276A JP2019227276A JP7382217B2 JP 7382217 B2 JP7382217 B2 JP 7382217B2 JP 2019227276 A JP2019227276 A JP 2019227276A JP 2019227276 A JP2019227276 A JP 2019227276A JP 7382217 B2 JP7382217 B2 JP 7382217B2
Authority
JP
Japan
Prior art keywords
display area
teaching
error
points
point
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.)
Active
Application number
JP2019227276A
Other languages
English (en)
Other versions
JP2021094644A (ja
Inventor
智輝 佐久間
純一 川端
寛之 森石
雄幹 山崎
翔嗣 清水
裕平 谷内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawasaki Motors Ltd
Original Assignee
Kawasaki Jukogyo KK
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kawasaki Jukogyo KK filed Critical Kawasaki Jukogyo KK
Priority to JP2019227276A priority Critical patent/JP7382217B2/ja
Priority to US17/786,636 priority patent/US20230030278A1/en
Priority to CN202080087031.9A priority patent/CN115210047A/zh
Priority to EP20901449.7A priority patent/EP4079465A4/en
Priority to PCT/JP2020/046831 priority patent/WO2021125192A1/ja
Publication of JP2021094644A publication Critical patent/JP2021094644A/ja
Application granted granted Critical
Publication of JP7382217B2 publication Critical patent/JP7382217B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4069Simulating machining process on screen
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4068Verifying part programme on screen, by drawing or other means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35345Display entry of high level program together with corresponding nc program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35349Display part, programmed locus and tool path, traject, dynamic locus
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39044Estimate error model from error at different attitudes and points
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39298Trajectory learning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40314Simulation of program locally before remote operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)
  • Finish Polishing, Edge Sharpening, And Grinding By Specific Grinding Devices (AREA)

Description

本開示は、オフラインプログラミング装置及びオフラインプログラミング方法に関する。
ロボットの動作を規定するプログラムを、ロボットの実機を用いることなく作成するオフラインプログラミングが知られている。特許文献1には、GUI(グラフィカルユーザインタフェース)を使用してロボットへの指令を表すアイコンを動作順に配置していくことでロボットの動作プログラムを作成する方法が開示されている。
特許文献1に開示されている方法では、プログラム作成者がアイコンをプログラム上に配置したことを検出し、配置したアイコンまでの動作プログラムを自動的にシミュレーションし、シミュレーションによるエラーが検出された場合、アイコンが動作不可能なこと及びその理由を示すメッセージを表示する。
特開2008-142788号公報
オフラインプログラミング(以下、「OLP」ともいう)では、ロボットの動作点を定義する教示点をユーザが入力すると、入力された教示点間を繋ぐようなプログラムをOLP装置が作成する。
特許文献1に開示される方法では、エラーが生じたアイコン、即ち教示点を示すことはできるが、教示点間におけるエラー情報を出力することはできない。
本発明は、かかる事情を鑑みてなされたものであり、教示点間におけるエラーをユーザが把握しうるオフラインプログラミング装置及びオフラインプログラミング方法を提供することを目的とする。
本発明の一態様に係るオフラインプログラミング装置は、複数の教示点の入力を受け付ける入力部と、隣り合う前記教示点の間を繋ぐ一又は複数の中間点を決定し、数の前記教示点及び一又は複数の前記中間点を含むロボットの動作プログラムを作成する作成部と、前記動作プログラムを実行したときの前記ロボットの動作軌跡をシミュレートするシミュレーション部と、前記動作軌跡を表現するGUI画面を表示する表示部と、を備え、前記GUI画面は、数の前記教示点の時系列の並びを示す第1表示領域と、前記第1表示領域に含まれる一部の複数の前記教示点の間において数の前記中間点の時系列の並びを、前記第1表示領域より大きい尺度で示す第2表示領域とを含み、前記第1表示領域における時系列の並びを示す方向と、前記第2表示領域における時系列の並びを示す方向と、が同じであり、前記動作軌跡にエラーが検出された場合、前記第1表示領域には、前記エラーが発生する時点を含む、前記教示点の間の区間が第1エラー表示方法によって示されることが可能であり、前記第2表示領域には、前記エラーが発生する時点に対応する前記中間点が第2エラー表示方法によって示されることが可能である。
本開示の一態様に係るオフラインプログラミング方法は、複数の教示点の入力を受け付けるステップと、隣り合う前記教示点の間を繋ぐ一又は複数の中間点を決定し、数の前記教示点及び一又は複数の前記中間点を含むロボットの動作プログラムを作成するステップと、前記動作プログラムを実行したときの前記ロボットの動作軌跡をシミュレートするステップと、前記動作軌跡を表現するGUI画面を表示するステップと、を含み、前記GUI画面は、数の前記教示点の時系列の並びを示す第1表示領域と、前記第1表示領域に含まれる一部の複数の前記教示点の間において数の前記中間点の時系列の並びを、前記第1表示領域より大きい尺度で示す第2表示領域とを含み、前記第1表示領域における時系列の並びを示す方向と、前記第2表示領域における時系列の並びを示す方向と、が同じであり、前記動作軌跡にエラーが検出された場合、前記第1表示領域には、前記エラーが発生する時点を含む、前記教示点の間の区間が第1エラー表示方法によって示されることが可能であり、前記第2表示領域には、前記エラーが発生する時点に対応する前記中間点が第2エラー表示方法によって示されることが可能である。
上記のオフラインプログラミング装置及びオフラインプログラミング方法により、第2表示領域において、エラーが発生する時点に対応する中間点が第2エラー表示方法によって示される。したがって、教示点間におけるエラーをユーザに通知することができる。
本発明は、上記のような特徴的な構成を備えるオフラインプログラミング装置及びオフラインプログラミング方法として実現することができるだけでなく、オフラインプログラミング方法における特徴的なステップをコンピュータに実行させるためのコンピュータプログラムとして実現することができる。オフラインプログラミング装置の一部又は全部を半導体集積回路として実現したり、オフラインプログラミング装置を含むオフラインプログラミングシステムとして実現したりすることができる。
本発明によれば、教示点間におけるエラーをユーザに通知することができる。
実施形態に係るオフラインプログラミング装置の構成の一例を示すブロック図である。 実施形態に係るオフラインプログラミング装置の機能の一例を示す機能ブロック図である。 実施形態に係るオフラインプログラミング装置の動作手順の一例を示すフローチャートの一部である。 実施形態に係るオフラインプログラミング装置の動作手順の一例を示すフローチャートの他の部分である。 実施形態に係るプログラミング画面の一例を示す図である。 詳細確認バーを含むプログラミング画面の一例を示す図である。 詳細確認バーの表示変更の一例を示す図である。 詳細確認バーの表示変更の一例を示す図である。 隣り合う2つの教示点の間においてエラーが発生した場合のシミュレーションバーの表示形態の一例を示す図である。 エラーが教示点において発生した場合のシミュレーションバーの表示形態の一例を示す図である。 エラーと警告事象とが発生した場合のシミュレーションバーの表示形態の一例を示す図である。 エラーと警告事象とが発生した場合のシミュレーションバーの表示形態の他の例を示す図である。 第2教示点が与えられていない場合におけるプログラミング画面の一例を示す図である。 第2教示点が与えられた場合におけるプログラミング画面の一例を示す図である。 教示点が選択された場合におけるプログラミング画面の表示形態の一例を示す図である。
以下、図面を参照しつつ、本発明の実施形態の詳細を説明する。なお、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
[1.オフラインプログラミング装置の構成]
本実施形態に係るオフラインプログラミング装置は、ロボットの実機に接続されずに、ロボットの動作を規定するプログラムを作成するための装置である。ロボットは、一例では垂直多関節型ロボットであり、他の例では水平多関節型ロボットであり、さらに他の例ではパラレルリンクロボットである。
図1は、本実施形態に係るオフラインプログラミング装置の構成の一例を示すブロック図である。OLP装置100は、例えばコンピュータによって構成される。OLP装置100は、プロセッサ110と、非一過性メモリ120と、一過性メモリ130と、入出力インタフェース140と、入力装置150と、表示装置160とを備える。
一過性メモリ130は、例えばSRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)等の揮発性メモリである。非一過性メモリ120は、例えばフラッシュメモリ、ハードディスク、ROM(Read Only Memory)等の不揮発性メモリである。非一過性メモリ120には、コンピュータプログラムであるOLPプログラム170及びOLPプログラム170の実行に使用されるデータが格納される。
OLP装置100は、コンピュータを備えて構成され、OLP装置100の各機能は、前記コンピュータの記憶装置に記憶されたコンピュータプログラムであるOLPプログラム170がCPUであるプロセッサ110によって実行されることで発揮される。OLPプログラム170は、フラッシュメモリ、ROM、CD-ROMなどの記録媒体に記憶させることができる。プロセッサ110は、OLPプログラム170を実行し、後述するようなプログラミング画面の表示を行う。
なお、プロセッサ110は、CPUに限られない。プロセッサ110は、例えば、ASIC(Application Specific Integrated Circuit)、ゲートアレイ、FPGA(Field Programmable Gate Array)等のハードウェアロジック回路であってもよい。この場合、ハードウェアロジック回路は、OLPプログラム170と同様の処理を実行可能に構成される。
入出力インタフェース140には、入力装置150及び表示装置160が接続される。入力装置150は、例えば、キーボード、マウス、タッチパッド、ペンタブレット等であり、ユーザがOLP装置100にデータを入力するために用いられる。表示装置160は、液晶パネル又は有機EL(Electro Luminescence)パネルであり、指令に応じて文字情報及び画像等を表示することができる。入出力インタフェース140は、例えばUSB(Universal Serial Bus)、HDMI(High-Definition Multimedia Interface。「HDMI」は登録商標)に準拠しており、入力装置150からデータを受け付けたり、表示装置160へ表示用データを出力したりすることができる。
[2.オフラインプログラミング装置の機能]
図2は、本実施形態に係るOLP装置100の機能の一例を示す機能ブロック図である。OLP装置100は、入力部101、作成部102、シミュレーション部103、及び表示部104としての機能を有する。
入力部101は、ある時点におけるロボットの動作を定義するコマンドのユーザからの入力を受け付ける。コマンドには、ロボットの姿勢、すなわち動作点を定義する教示点と、例えば直線、円弧等のロボットの動作方向と、例えばバリ取り、溶接、移動等のロボットが実行する作業種類とが含まれる。ユーザは、入力部101に対して、複数の時点での時系列のコマンドを入力することができる。
作成部102は、入力部101によって受け付けられたコマンドに基づいて、隣り合う教示点の間を繋ぐ一又は複数の中間点を決定し、複数の教示点及び中間点を含むロボットの動作プログラムを作成する。ロボットの実機において動作プログラムが実行されると、時系列のコマンドにしたがった動作軌跡でロボットが動作する。
シミュレーション部103は、動作プログラムを実行したときのロボットの動作軌跡をシミュレートする。すなわち、シミュレーション部103は、3次元の仮想空間におけるロボットの動作軌跡を演算する。
シミュレーション部103は、動作軌跡におけるエラーを検出することができる。ここでいう「エラー」とは、演算された動作軌跡を実現できない事象を含む。エラーには、ロボットの構成部品同士又はロボットの構成部品と他の物体との干渉、及び、例えばモータの最大出力を超える移動速度、移動可能な範囲から逸脱した移動等の許容範囲を超える異常な動作が含まれる。シミュレーション部103は、エラーを検出する場合、エラーが発生する時点を特定することができる。
さらにシミュレーション部103は、動作軌跡において、ユーザへの警告を要する事象(警告事象)を検出することができる。ここでいう「警告事象」とは、演算された動作軌跡を実現することはできるが、特定の警告条件に合致する事象をいう。警告条件には、例えば、モータの最大出力以下であるが、規定値以上である移動速度、他の物体に対する許容範囲を超えた接近等が含まれる。シミュレーション部103は、警告事象を検出する場合、警告事象が発生する時点を特定することができる。
表示部104は、動作プログラムを作成するためのプログラミング画面を表示する。プログラミング画面は、動作軌跡を表現するGUI画面でもある。プログラミング画面については後述する。
[3.オフラインプログラミング装置の動作]
図3A及び図3Bは、本実施形態に係るオフラインプログラミング装置の動作手順の一例を示すフローチャートである。
プロセッサ110は、OLPプログラム170を起動すると、以下のような各処理を実行する。まず、表示装置160にプログラミング画面を表示させる(ステップS101)。この時点ではコマンドが登録されていないため、アイコン、画像(映像)等を含まない初期状態のプログラミング画面が表示される。
ユーザは入力装置150によってコマンドをOLP装置100に入力することができる。プロセッサ110は、ユーザからのコマンドの入力を受け付ける(ステップS102)。さらにプロセッサ110は、入力されたコマンドを示すマーク(アイコン)であるコマンドブロックを、プログラミング画面に含まれる1つの領域であるコマンドリスト領域に追加する(ステップS103)。
図4は、本実施形態に係るプログラミング画面の一例を示す図である。プログラミング画面200には、コマンドリスト領域300と、シミュレーションバー400と、アニメーション表示領域600とが含まれる。コマンドリスト領域300には、複数のコマンドボックス310が時系列に一列に並ぶ。つまり、コマンドリスト領域300において、コマンドボックス310は、コマンドの実行順に並べられる。
再び図3Aを参照する。プログラミング画面において、動作プログラムを作成するために必要となる全てのコマンドの入力が完了すると、ユーザはシミュレーションの開始を指示することができる。プロセッサ110は、シミュレーションの開始指示を受け付けたか否かを判定する(ステップS104)。
シミュレーションの開始指示を受け付けていない場合(ステップS104においてNO)、プロセッサ110は、ステップS102を実行する。これにより、コマンドの追加入力が可能となる。シミュレーションの開始指示を受け付けた場合(ステップS104においてYES)、プロセッサ110は、入力されたコマンドに基づいて、ロボットの動作プログラムを作成する(ステップS105)。さらにプロセッサ110は、シミュレーションを実行する(ステップS106)。すなわち、プロセッサ110は、入力されたコマンドによって規定される動作プログラムを実行したときの動作軌跡をシミュレートする。
シミュレーションが終了すると、プロセッサ110は、表示装置160にシミュレーションバーを表示させ(ステップS107)、シミュレーションによって生成された動作軌跡をアニメーション表示させる(ステップS108)。
再び図4を参照する。シミュレーションバー400は、コマンドリスト領域300の側方に設けられる。シミュレーションバー400は、コマンドリスト領域300におけるコマンドボックス310の列と平行に設けられる。シミュレーションバー400は、コマンドボックス310の列と平行な線状部である。
シミュレーションバー400は、コマンドリスト領域300におけるコマンドボックス310に対応している。つまり、シミュレーションバー400における各コマンドボックス310の横(右方)の部位(シミュレーションバー400において、各コマンドボックス310と縦方向に同じ位置の部分)が、各コマンドボックス310に対応する。例えば、図4の例において、「直線 アプローチ1」の文字を含むコマンドボックス310には、シミュレーションバー400において当該コマンドボックス310の横の部位が対応する。シミュレーションバー400は、コマンドリスト領域300に表示されるコマンドボックス310の列の長さ以上の長さを有する。これにより、シミュレーションバー400は、コマンドリスト領域300に表示される全てのコマンドボックス310に対応する。
シミュレーションバー400は、エラー色及び警告色とは異なる色(例えば、白)によって表示される。エラーが検出された場合、シミュレーションバー400においてエラーが発生する時点に対応する部分がエラー色(例えば、赤)で表示される。以下、シミュレーションバー400においてエラー色で表示される部分を、第1エラー領域420という。
シミュレーションバー400の各部位は、コマンドボックス310に対応するため、第1エラー領域420によって、エラーの発生時点の付近の教示点が示される。図4の例では、第1エラー領域420が、「直線 バリ取り1」の文字を含むコマンドボックス310から「直線 バリ取り2」の文字を含むコマンドボックス310までの範囲にあるため、「直線 バリ取り1」の文字を含むコマンドボックス310の教示点から「直線 バリ取り2」の文字を含むコマンドボックス310の教示点までの範囲においてエラーが発生することが把握される。
警告事象が検出された場合、シミュレーションバー400において警告事象が発生する時点に対応する部分が警告色(例えば、黄)で表示される。以下、シミュレーションバー400において警告色で表示される部分を、第1警告領域430という。
シミュレーションバー400の各部位は、コマンドボックス310に対応するため、第1警告領域430によって、警告事象の発生時点の付近の教示点が示される。図4の例では、第1警告領域430が、「直線 バリ取り3」の文字を含むコマンドボックス310から「直線 デパート1」の文字を含むコマンドボックス310までの範囲にあるため、「直線 バリ取り3」の文字を含むコマンドボックス310の教示点から「直線 デパート1」の文字を含むコマンドボックス310の教示点までの範囲において警告事象が発生することが把握される。
アニメーション表示領域600は、表示装置160に、動作プログラムを実行したときのロボットの動作軌跡をアニメーション表示(グラフィック表示)させる。アニメーションによって、ユーザはロボットの動作軌跡を視覚によって確認することができる。
再び図3Aを参照する。ユーザは、シミュレーションバー400上の任意の一点を選択することができる。例えば、ユーザは、マウスポインタをシミュレーションバー400上の一点合わせてクリックしたり、タッチパッド又はペンタブレットにおいて指又はペンで上記一点に対応する位置をタッチしたりすることによって、上記一点を選択することができる。
プロセッサ110は、ユーザからのシミュレーションバー400上の一点の選択を受け付けたか否かを判定する(ステップS109)。ユーザからの一点の選択を受け付けていない場合(ステップS109においてNO)、OLP装置100による処理が終了する。ユーザからのシミュレーションバー400上の一点の選択を受け付けた場合(ステップS109においてYES)、プロセッサ110は、表示装置160に詳細確認バーを表示させる(ステップS110)。
図5は、詳細確認バーを含むプログラミング画面の一例を示す図である。シミュレーションバー400上の一点が選択されると、選択された点の位置にポインタ411が表示され、シミュレーションバー400の側方に詳細確認バー500が表示される。詳細確認バー(第2表示領域)500は、アニメーション表示領域600の一部に表示される。
詳細確認バー500は、隣り合う教示点の間の複数の中間点の時系列の並びを示す。詳細確認バー500には、シミュレーションバー400において選択された点の前後の区間における中間点の時系列の並びが、シミュレーションバー400より大きい尺度で示される。すなわち、詳細確認バー500は、シミュレーションバー400では表示しきれない詳細な情報を表示することができる。
具体的な一例では、詳細確認バー500は、一又は複数の教示点と、複数の中間点とのそれぞれを示す目盛りを含む。例えば、中間点の目盛りは細線で、教示点の目盛りは太線で表される。つまり、詳細確認バー500において、中間点及び教示点が互いに区別可能に表示される。
詳細確認バー500は、エラー色及び警告色とは異なる色(例えば、黒)によって表示される。エラーが検出された場合、詳細確認バー500においてエラーが発生する時点に対応する部分がエラー色で表示される。以下、詳細確認バー500においてエラー色で表示される部分を、第2エラー領域520という。
詳細確認バー500には中間点の時系列の並びが示されるため、第2エラー領域520によって、エラーの発生時点の付近の中間点が示される。図5の例では、第2エラー領域520が、「027」の目盛りの中間点から「029」の目盛りの中間点までの範囲にあるため、当該範囲においてエラーが発生することが把握される。これにより、ユーザは、シミュレーションバー400によってエラーの発生時点を大まかに特定し、詳細確認バー500によってエラーの発生時点を詳細に特定することができる。
警告事象が検出された場合、詳細確認バー500において警告事象が発生する時点に対応する部分が警告色で表示される。以下、詳細確認バー500において警告色で表示される部分を、第2警告領域という。詳細確認バー500には中間点の時系列の並びが示されるため、第2警告領域によって、警告事象の発生時点の付近の中間点が示される。図5の例では、第2警告領域は詳細確認バー500の表示区間から外れており示されていないが、第2エラー領域520と同様の形態で表示される。これにより、ユーザは、シミュレーションバー400によって警告事象の発生時点を大まかに特定し、詳細確認バー500によって警告事象の発生時点を詳細に特定することができる。
図3Bを参照する。ユーザは、シミュレーションバー400に沿って、ポインタ411をスライドさせることができる。例えば、ユーザは、ポインタ411を選択した状態で、ドラッグ又はスワイプすることによってポインタ411をスライドさせることができる。ポインタ411がスライドすることにより、シミュレーションバー400上で選択される点が変更される。
プロセッサ110は、ユーザからのシミュレーションバー400上の選択点の変更を受け付けたか否かを判定する(ステップS111)。ユーザからの選択点の変更を受け付けていない場合(ステップS111においてNO)、プロセッサ110はステップS113へ処理を移す。ユーザからの選択点の変更を受け付けた場合(ステップS111においてYES)、プロセッサ110は、表示装置160に詳細確認バー500の表示を変更させる(ステップS112)。
図6A及び図6Bは、詳細確認バー500の表示変更の一例を示す図である。図6A及び図6Bには、詳細確認バー500の表示変更の前後が示される。図6A及び図6Bに示すように、詳細確認バー500の縦方向中央には、選択点を示すインジケータ511が表示される。インジケータ511が示す時点は、ポインタ411によって選択された時点と同一である。すなわち、ポインタ411によって選択された、シミュレーションバー400に示される時点と、インジケータ511によって示された、詳細確認バー500に示された時点とは同一である。インジケータ511の位置は固定されている。つまり、インジケータ511は、常に詳細確認バー500の縦方向中央に位置し、ポインタ411がスライドされたとしてもその位置は変更されない。
図6A及び図6Bに一例を示すように、ポインタ411がスライドされると、ポインタ411の位置変更に応じて、詳細確認バー500が示している区間が変更される。すなわち、図6Aでは、詳細確認バー500が、「021」の目盛りから「039」の目盛りまでの区間を示しているのに対して、図6Bでは、詳細確認バー500が、「013」の目盛りから「032」の目盛りまでの区間を示している。このように、ユーザの選択点の変更に応じて詳細確認バー500の表示区間が変更されるため、ユーザはポインタ411をスライドすることによって、確認したい区間の詳細な情報を詳細確認バー500に表示させることができる。なお、図6A及び図6Bに示す例では、インジケータ511は横に延びた破線であるが、これに限定されない。例えば、インジケータ511は、横に延びた実線であってもよいし、円、矢印等のマークであってもよい。
ポインタ411がスライドされ、詳細確認バー500が示している区間が変更されると、その変更に追従して第2エラー領域520の位置が変更される。第2エラー領域520は、詳細確認バー500においてエラーが発生している区間に現れる。したがって、ポインタ411の位置が変更され、詳細確認バー500の表示区間が変化した場合、詳細確認バー500における表示区間の変化量と同じ量だけ、当該表示区間が変化した方向と同じ方向に、第2エラー領域520の位置が変化する。このとき、第2エラー領域520の一部又は全部が詳細確認バー500の表示範囲から逸脱すると、第2エラー領域520の一部又は全部が詳細確認バー500に表示されなくなる。なお、第2警告領域も同様に、詳細確認バー500の表示区間の変化に伴って位置が変化する。
再び図3Bを参照する。ユーザは、動作プログラムを編集し、ロボットの動作軌跡の一部を変更することがある。例えば、ロボットの部品が他の物体に干渉するエラーが発生する場合、ユーザは、干渉を回避するように動作軌跡を変更する。本実施形態に係るOLP装置100では、ユーザは、詳細確認バー500を動作プログラムの編集に利用することができる。
ユーザは、動作プログラムを編集するために、新たなコマンドを追加する。この場合、ユーザは、コマンドを追加したい時点にポインタ411を合わせ、その時点に新たなコマンドを追加することをOLP装置100に指示することができる。例えば、ユーザは詳細確認バー500において、1つの中間点が選択されていることを確認し、当該中間点にコマンドを追加する指示をOLP装置100に与える。
コマンドの追加指示は、種々の方法によって実現される。例えば、コマンドリスト領域300にコマンドを追加するためのボタン等を表示し、ユーザが当該ボタンを選択することによってコマンドの追加を指示したり、プログラミング画面200上でのクリック又はタッチ操作に応じて複数の項目を含むドロップダウンリストを表示し、当該ドロップダウンリストの「コマンド追加」の項目をユーザが選択することによってコマンドの追加を指示したりすることができる。
プロセッサ110は、ユーザからのコマンドの追加指示を受け付けたか否かを判定する(ステップS113)。コマンドの追加指示を受け付けていない場合(ステップS113においてNO)、プロセッサ110は処理をステップS116へ進める。他方、コマンドの追加指示を受け付けた場合(ステップS113においてYES)、プロセッサ110は、そのとき選択されている時点にコマンドを追加する(ステップS114)。コマンドの追加では、選択されている時点に教示点が設定される。さらに、新たなコマンドに含まれるロボットの動作方向及び作業種類とがユーザによって指定される。
プロセッサ110は、シミュレーションの開始指示を受け付けたか否かを判定する(ステップS115)。シミュレーションの開始指示を受け付けた場合(ステップS115においてYES)、プロセッサ110はステップS105へ処理を移す。これによって、追加されたコマンドを含んだ動作プログラムが作成され、シミュレーションが実行される。
他方、シミュレーションの開始指示を受け付けていない場合(ステップS115においてNO)、プロセッサ110は、ユーザから処理の終了指示を受け付けたか否かを判定する(ステップS116)。終了指示を受け付けていない場合(ステップS116においてNO)、プロセッサ110は、ステップS111へ処理を移す。ユーザからの処理の終了指示を受け付けた場合(ステップS116においてYES)、プロセッサ110は、OLPプログラム170を終了する。以上で、OLP装置100による処理が終了する。
[4.プログラミング画面の表示態様]
プログラミング画面200、特にシミュレーションバー400及び詳細確認バー500は様々な表示態様を有する。以下、プログラミング画面200の表示態様の具体例について説明する。
シミュレーションバー400は、エラー又は警告事象の発生時点によって、表示形態が変化する。さらに具体的には、エラー又は警告事象が、隣り合う2つの教示点の間において発生するか、教示点において発生するかによって、シミュレーションバー400の表示形態が異なる。
図7A及び図7Bは、エラーの発生時点に応じたシミュレーションバーの表示形態を説明するための図である。図7Aには、エラーが、隣り合う2つの教示点の間において発生した場合のシミュレーションバー400の表示形態の一例が示され、図7Bには、エラーが教示点において発生した場合のシミュレーションバー400の表示形態の一例が示される。
エラーが隣り合う2つの教示点の間において発生した場合、すなわち、1つの中間点においてエラーが発生したり、複数の中間点を含む区間(教示点は含まれない)においてエラーが発生したりした場合、図7Aに示すように、第1エラー領域420は、エラー発生時点を挟む、隣り合う2つの教示点の間の区間に設けられる。なお、ここでいう「教示点の間の区間」は、両端の教示点を含む区間であってもよく、両端の教示点を含まない区間であってもよく、一端の教示点を含み、他端の教示点を含まない区間であってもよい。図7Aの例では、「直線 バリ取り1」のコマンドボックス310の教示点と、「直線 バリ取り2」のコマンドボックス310の教示点との間の区間において、第1エラー領域420が設けられる。これにより、ユーザは、「直線 バリ取り1」の教示点と、「直線 バリ取り2」の教示点との間において、エラーが発生することを把握することができる。
詳細確認バー500には、さらに詳細なエラー発生箇所が示される。つまり、詳細確認バー500では、シミュレーションバー400における第1エラー領域420よりも小さい区間に、第2エラー領域520が設けられる。第2エラー領域520は、エラーが発生する時点を含む複数の中間点の間の区間に設けられる。例えば、複数の中間点に亘る期間においてエラーが発生する場合、詳細確認バー500の当該期間に第2エラー領域520が設けられる。他の例では、1つの中間点においてエラーが発生する場合、当該中間点を含む、例えば当該中間点の両隣の中間点(又は教示点)の間の区間に第2エラー領域520が設けられる。
エラーが1つの教示点において発生した場合、すなわち、1つの教示点だけにおいてエラーが発生したり、1つの教示点を含む区間(他の教示点は含まれない)においてエラーが発生したりした場合、図7Bに示すように、第1エラー領域420は、エラー発生時点の教示点と、その両隣の2つの教示点とを挟む、連続する3つの教示点に亘る区間に設けられる。図7Bの例では、「直線 アプローチ3」のコマンドボックス310の教示点と、「直線 バリ取り1」のコマンドボックス310の教示点と、「直線 バリ取り2」のコマンドボックス310の教示点とに亘る区間において、第1エラー領域420が設けられる。これにより、ユーザは、「直線 バリ取り1」の教示点において、エラーが発生することを把握することができる。
この場合も、詳細確認バー500には、さらに詳細なエラー発生箇所が示される。例えば、1つの教示点だけにおいてエラーが発生する場合、当該教示点を含む、例えば当該教示点の両隣の中間点の間の区間に第2エラー領域520が設けられる。他の例では、1つの教示点と1又は複数の中間点とを含む期間においてエラーが発生する場合、詳細確認バー500の当該期間に第2エラー領域520が設けられる。
ロボットの動作軌跡においてエラーと警告事象とが発生する場合、シミュレーションバー400には、第1エラー領域420と第1警告領域430とのそれぞれが設けられる。図8Aは、エラーと警告事象とが発生した場合のシミュレーションバーの表示形態の一例を示す図であり、図8Bは、他の例を示す図である。
図8Aには、シミュレーションバー400において、第1エラー領域420と第1警告領域430とが互いに離れている例が示される。第1エラー領域420及び第1警告領域は、上述したように、エラー及び警告事象の発生時点によって定まる区間に現れる。第1エラー領域420と第1警告領域430とが重ならないとき、すなわち、第1エラー領域420と第1警告領域430とが接するとき(第1エラー領域420の一方側の端の教示点と第1警告領域の他方側の端の教示点とが同一であるとき)、又は、第1エラー領域420と第1警告領域430とが互いに離れているとき、第1エラー領域420及び第1警告領域430はそれぞれ全体が表示される。
図8Aの例では、「直線 アプローチ3」のコマンドボックス310の教示点と、「直線 バリ取り1」のコマンドボックス310の教示点との間の区間においてエラーが発生し、「直線 バリ取り2」のコマンドボックス310の教示点と、「直線 バリ取り3」のコマンドボックス310の教示点との間の区間において警告事象が発生している。この場合、「直線 アプローチ3」のコマンドボックス310の教示点と、「直線 バリ取り1」のコマンドボックス310の教示点との間の区間において第1エラー領域420が設けられ、「直線 バリ取り2」のコマンドボックス310の教示点と、「直線 バリ取り3」のコマンドボックス310の教示点との間の区間において第1警告領域430が設けられる。こ例では第1エラー領域420と第1警告領域430とは互いに離れている。
図8Bには、シミュレーションバー400において、第1エラー領域420と第1警告領域430とが一部において互いに重なっている例が示される。第1エラー領域420と第1警告領域430とが少なくとも一部において互いに重なるとき、第1エラー領域420が優先して表示される。すなわち、第1エラー領域420と第1警告領域とが重なっている範囲については、第1エラー領域420として表示され、第1警告領域430としては表示されない。
図8Bの例では、「直線 アプローチ3」のコマンドボックス310の教示点と、「直線 バリ取り1」のコマンドボックス310の教示点との間の区間においてエラーが発生し、「直線 バリ取り1」のコマンドボックス310の教示点において警告事象が発生している。この場合、「直線 アプローチ3」のコマンドボックス310の教示点と、「直線 バリ取り1」のコマンドボックス310の教示点との間の区間が第1エラー領域420となり、「直線 アプローチ3」のコマンドボックス310の教示点と、「直線 バリ取り2」のコマンドボックス310の教示点との間の区間が第1警告領域430となるはずである。しかし、「直線 アプローチ3」のコマンドボックス310の教示点と、「直線 バリ取り1」のコマンドボックス310の教示点との間の区間において第1エラー領域420と第1警告領域430とが重なるため、この区間では第1エラー領域420が表示される。
上記において説明した教示点は、ロボットの姿勢と動きを定義する命令(動作コマンド)であった。つまり、上述したコマンドは、ロボットの姿勢、すなわち動作点を定義する教示点と、例えば直線、円弧等のロボットの動作方向と、例えばバリ取り、溶接、移動等のロボットが実行する作業種類とを含むものであった。ロボットの動作のプログラミングでは、ロボットの姿勢を定義しない命令(非動作コマンド)が与えられることがある。例えば、ロボットに対する制御信号の入出力、ロボットの待機時間の設定、サブプログラムの呼び出し、動作精度の変更、ロボットのアーム先端に取り付けられるエンドエフェクタの加工位置の設定は、非動作コマンドである。
上述のような非動作コマンドが与えられた場合におけるプログラミング画面200について説明する。図9Aは、非動作コマンドが与えられていない場合におけるプログラミング画面200の一例を示す図であり、図9Bは、非動作コマンドが与えられた場合におけるプログラミング画面200の一例を示す図である。
図9Aの例では、「直線 アプローチ1」、「直線 バリ取り1」、「直線 デパート1」等、動作コマンドを含むコマンドボックス310のみがコマンドリスト領域300に含まれる。これらのコマンドボックス310(つまり、教示点)は時系列に並んでおり、シミュレーションバー400は、コマンドリスト領域300に表される教示点の時系列の並びを示している。詳細確認バー500には、コマンドリスト領域300に表される教示点及び中間点の時系列の並びが拡大表示される。つまり、シミュレーションバー400には、コマンドリスト領域300における動作コマンドの時系列の並びが示され、詳細確認バー500には、複数の動作コマンドの間における複数の中間点の時系列の並びが示される。
図9Bの例では、「直線 アプローチ1」、「直線 バリ取り1」、「直線 デパート1」等、動作コマンドを含むコマンドボックス310に加え、非動作コマンドである「信号出力」のコマンドボックス310も含まれる。信号出力のタイミングは、「直線 アプローチ3」の教示点と「直線 バリ取り1」の教示点との間である。しかし、信号出力は、ロボットの動作軌跡には現れない。シミュレーションバー400には、コマンドリスト領域300における動作コマンド及び非動作コマンドの時系列の並びが示される。つまり、シミュレーションバー400において、非動作コマンドである「信号出力」のコマンドボックス310の側方の部分は、「信号出力」の非動作コマンドを示している。
詳細確認バー500には、非動作コマンドは反映されない。つまり、詳細確認バー500は、非動作コマンドを除く複数の動作コマンドの間における複数の中間点の時系列の並びを示す。図9A及び図9Bの例では、詳細確認バー500における「026」の目盛りが「直線 バリ取り1」の動作コマンドの教示点であり、「034」の目盛りが「直線 バリ取り2」の動作コマンドの教示点である。図9Bの例では、「直線 バリ取り1」のコマンドボックス310と「直線 バリ取り2」のコマンドボックス310との間に、非動作コマンドの「信号出力」のコマンドボックス310が挿入されている。しかし、図9Bに示される詳細確認バー500は、図9Aに示される詳細確認バー500と変わっていない。つまり、図9Bに示される詳細確認バー500には、動作コマンドである「026」の目盛り及び「034」の目盛りの間に、非動作コマンド「信号出力」に対応する目盛りが設けられていない。
このように、詳細確認バー500では、非動作コマンドが反映されない。これにより、詳細確認バー500には、シミュレーションによって作成される動作軌跡に現れない非動作コマンドは除かれ、動作軌跡に含まれる動作コマンドの教示点及び中間点が示されるため、詳細な動作軌跡を時系列でユーザに提示することができる。
ロボットの動作軌跡を確認したり、動作プログラムを変更したりする場合、教示点でロボットがどのような姿勢を取るかを確認することができれば便利である。本実施形態に係るOLP装置100は、プログラミングを支援するため、教示点でのロボットの姿勢を確認するための機能を提供する。図9Cは、ポインタ411が教示点を指す場合におけるプログラミング画面200の表示形態の一例を示す図である。
図9Cに示される例では、ポインタ411が1つの教示点を指す場合、コマンドリスト領域300において、選択された教示点のコマンドボックス310が強調表示され、詳細確認バー500においても、選択された教示点の目盛りが強調表示される。強調表示は、例えば、コマンドボックス310の枠線を太くしたり、詳細確認バー500の目盛りの線を太くしたりすることで実現することができる。ただし、例えば、コマンドボックス310の色を他のコマンドボックス310と異ならせたり、詳細確認バー500の目盛りの線を点滅させたりするなど、他の方法によって強調表示してもよい。これにより、選択されている時点に教示点が設定されていることをユーザに通知することができる。ユーザは、コマンドボックス310及び詳細確認バー500の目盛りの線が強調表示されるまでポインタ411の位置を調整し、コマンドボックス310及び詳細確認バー500の目盛りの線が強調表示されたときに、アニメーション表示領域600において表されるロボットの姿勢を確認することができる。
[5.変形例]
本開示に係るOLPシステムの構成及び動作は、上記の実施形態に限定されない。具体的には、複数の教示点の時系列の並びを示すものであれば、シミュレーションバー400に限定されない。
例えば、シミュレーションバー400において、エラーが発生した区間を第1エラー領域420によって示したり、警告事象が発生した区間を第1警告領域430によって示したりするのではなく、コマンドリスト領域300において、エラーが発生した時点に対応する区間のコマンドボックス310を、他のコマンドボックスとは異なるエラー色によって表示したり、警告事象が発生した時点に対応する区間のコマンドボックス310を、他のコマンドボックスとは異なる警告色によって表示したりしてもよい。シミュレーションバー400は設けるが、第1エラー領域420及び第1警告領域430ではなく、エラーが発生する区間を矢印その他の記号で示したり、その区間の目盛りを他の区間の目盛りとは異なる表示(例えば、点滅させる)で示したりしてもよい。
上記の実施形態では、第1エラー表示方法を、エラーが発生する時点に対応するシミュレーションバー400の部分領域をエラー色で表示することとしたが、これに限定されない。例えば、エラーが発生する時点に対応するシミュレーションバー400の部分領域を点滅表示してもよい。上記の実施形態では、第2エラー表示方法を、エラーが発生する時点に対応する詳細確認バー500の部分領域をエラー色で表示することとしたが、これに限定されない。例えば、エラーが発生する時点に対応する詳細確認バー500の部分領域を点滅表示してもよい。
[6.効果]
以上のように、OLP装置100は、入力部101と、作成部102と、シミュレーション部103と、表示部104とを備える。入力部101は、複数の教示点の入力を受け付ける。作成部102は、隣り合う教示点の間を繋ぐ一又は複数の中間点を決定し、複数の教示点及び中間点を含むロボットの動作プログラムを作成する。シミュレーション部103は、動作プログラムを実行したときのロボットの動作軌跡をシミュレートする。表示部104は、ロボットの動作軌跡を表現するプログラミング画面200(GUI画面)を表示する。プログラミング画面200は、シミュレーションバー400と、詳細確認バー500とを含む。シミュレーションバー400は、複数の教示点の時系列の並びを示す。詳細確認バー500は、シミュレーションバー400に含まれる一部の複数の教示点の間において複数の中間点の時系列の並びを、シミュレーションバー400より大きい尺度で示す。動作軌跡にエラーが検出された場合、シミュレーションバー400には、エラーが発生する時点を含む、教示点の間の区間が第1エラー表示方法によって示されることが可能である。詳細確認バー500には、エラーが発生する時点に対応する中間点が第2エラー表示方法によって示されることが可能である。なお、ここでいう「教示点の間の区間」は、両端の教示点を含む区間であってもよく、両端の教示点を含まない区間であってもよく、一端の教示点を含み、他端の教示点を含まない区間であってもよい。エラーが発生する時点に対応する中間点が第2エラー表示方法によって示されていれば、中間点のみが第2エラー表示によって示されてもよく、中間点を含む区間が第2エラー表示によって示されてもよい。
上記構成により、詳細確認バー500において、エラーが発生する時点に対応する中間点が第2エラー表示方法によって示される。したがって、教示点間におけるエラーをユーザに通知することができる。
入力部101は、教示点と、教示点におけるロボットの動作方向の指示とを含むコマンドの入力を受け付けてもよい。プログラミング画面200は、コマンドリスト領域300を含んでもよい。コマンドリスト領域300には、複数のコマンドのそれぞれを示す複数のコマンドボックス310(マーク)が一列に並ぶ。シミュレーションバー400は、コマンドリスト領域300のコマンドボックス310の列と平行に設けられる。シミュレーションバー400には、コマンドリスト領域300におけるコマンドボックス310に対応してエラーが発生する教示点が示されることが可能であってもよい。
これにより、コマンドリスト領域300に並ぶコマンドボックス310に対応して、エラーが発生する教示点がシミュレーションバー400において示される。したがって、いずれのコマンドにおいてエラーが発生するかをユーザが容易に理解することができる。つまり、ユーザは修正すべきコマンドを容易に特定することができる。
シミュレーションバー400は、コマンドリスト領域300のコマンドボックス310の列と平行な線状部を含んでもよい。第1エラー表示方法は、線状部におけるエラーが発生する部分をエラー色で表示する方法であってもよい。
これにより、コマンドリスト領域300と平行に設けられるシミュレーションバー400の面積を小さくしつつ、エラーを表示することが可能となる。
シミュレーションバー400は、ユーザが一部を選択することが可能であってもよい。詳細確認バー500には、シミュレーションバー400においてユーザに選択された部分における複数の中間点の時系列の並びが、シミュレーションバー400より大きい尺度で示されることが可能であってもよい。
これにより、ユーザが詳細な情報を確認したいシミュレーションバー400の部分を選択することで、選択された部分の詳細な情報をユーザに提供することができる。
表示部104は、シミュレーションバー400においてユーザによって選択された時点を、詳細確認バー500において他の時点とは異なる方法で表示することが可能であってもよい。
これにより、ユーザは、詳細確認バー500において、ユーザが選択した時点を他の時点と区別して把握することができる。
入力部101は、ユーザがシミュレーションバー400の一部を選択した状態で、コマンドの追加指示を受け付けることが可能であってもよい。作成部102は、コマンドの追加指示を受け付けた場合に、シミュレーションバー400においてユーザに選択された時点に教示点を追加して、動作プログラムを再度作成してもよい。
これにより、ユーザは、教示点よりも詳細な中間点を正確に指定して、新たなコマンドを追加することができる。
シミュレーションバー400においてユーザによって選択された時点が1つの教示点に対応する時点と一致する場合に、表示部104は、詳細確認バー500において選択された時点の教示点を、他の教示点とは異なる方法によって表示することが可能であってもよい。
これにより、教示点に対応する時点が選択されていることを、ユーザに通知することができる。
第1エラー表示方法は、隣り合う2つの教示点の間においてエラーが発生する場合、シミュレーションバー400における2つの教示点の間の区間をエラー色で表示する方法であってもよい。
これにより、ユーザは、複数の教示点の間の複数の区間のうち、いずれの区間においてエラーが発生するかを特定することができる。
第1エラー表示方法は、1つの教示点においてエラーが発生する場合、シミュレーションバー400における1つの教示点を挟む2つの教示点の間の区間をエラー色で表示する方法であってもよい。
これにより、ユーザは、複数の教示点のうち、いずれの教示点においてエラーが発生するかを特定することができる。さらに、エラーが発生する教示点に隣り合う教示点間の区間がエラー色で表示されるため、エラーが発生する教示点だけが強調表示される場合に比べてエラー色が表示される面積が大きくなり、ユーザが当該区間を容易に認識することができる。
第2エラー表示方法は、詳細確認バー500におけるエラーの発生箇所を含む複数の中間点の間の区間をエラー色で表示する方法であってもよい。
これにより、教示点間より細かい区間によって、エラーの詳細な発生箇所をユーザに通知することができる。
動作軌跡に警告事象が検出された場合、シミュレーションバー400には、警告事象が発生する時点に対応する教示点を含む区間が、警告色で表示されることが可能であってもよい。
これにより、エラーよりも軽微な警告事象の発生箇所を、エラー発生箇所とは区別してユーザに通知することができる。
第1エラー領域420と、第1警告領域430とが重なる場合、第1エラー領域420がエラー色で表示され、第1警告領域430のうち第1エラー領域420と重なった部分を除く部分が、警告色で表示されることが可能であってもよい。
これにより、警告事象の発生区間よりも重要度が高いエラー発生区間を、警告事象の発生区間よりも優先して表示することができる。
入力部101は、ロボットの姿勢及び動作方向を時点毎に定義する複数の動作コマンドと、前記ロボットの姿勢及び動作方向を定義しない非動作コマンドとの入力を受け付けることが可能であってもよい。シミュレーションバー400は、複数の動作コマンドそれぞれの教示点と、非動作コマンドとの時系列の並びを示してもよい。詳細確認バー500に、シミュレーションバー400に含まれる一部の複数の教示点及び非動作コマンドを含む区間が示される場合、この区間において非動作コマンドを除く複数の教示点の間における複数の中間点の時系列の並びが示されることが可能であってもよい。
これにより、詳細確認バー500には、シミュレーションによって作成される動作軌跡に現れない第2教示点は除かれ、動作軌跡に含まれる第1教示点及び中間点が示されるため、詳細な動作軌跡を時系列でユーザに提示することができる。
[7.補記]
今回開示された実施の形態はすべての点で例示であって、制限的ではない。本発明の権利範囲は、上述の実施形態ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味及びその範囲内でのすべての変更が含まれる。
100 オフラインプログラミング装置
101 入力部
102 作成部
103 シミュレーション部
104 表示部
110 プロセッサ
120 非一過性メモリ
130 一過性メモリ
140 入出力インタフェース
150 入力装置
160 表示装置
170 OLPプログラム
200 プログラミング画面(GUI画面)
300 コマンドリスト領域
310 コマンドボックス(マーク)
400 シミュレーションバー(第1表示領域)
411 ポインタ
420 第1エラー領域
430 第1警告領域
500 詳細確認バー(第2表示領域)
511 インジケータ
520 第2エラー領域
600 アニメーション表示領域

Claims (14)

  1. 複数の教示点の入力を受け付ける入力部と、
    隣り合う前記教示点の間を繋ぐ一又は複数の中間点を決定し、数の前記教示点及び一又は複数の前記中間点を含むロボットの動作プログラムを作成する作成部と、
    前記動作プログラムを実行したときの前記ロボットの動作軌跡をシミュレートするシミュレーション部と、
    前記動作軌跡を表現するGUI画面を表示する表示部と、を備え、
    前記GUI画面は、
    数の前記教示点の時系列の並びを示す第1表示領域と、前記第1表示領域に含まれる一部の複数の前記教示点の間において数の前記中間点の時系列の並びを、前記第1表示領域より大きい尺度で示す第2表示領域とを含み、
    前記第1表示領域における時系列の並びを示す方向と、前記第2表示領域における時系列の並びを示す方向と、が同じであり、
    前記動作軌跡にエラーが検出された場合、
    前記第1表示領域には、前記エラーが発生する時点を含む、前記教示点の間の区間が第1エラー表示方法によって示されることが可能であり、前記第2表示領域には、前記エラーが発生する時点に対応する前記中間点が第2エラー表示方法によって示されることが可能である、オフラインプログラミング装置。
  2. 前記入力部は、前記教示点と、前記教示点における前記ロボットの動作方向の指示とを含むコマンドの入力を受け付け、
    前記GUI画面は、複数の前記コマンドのそれぞれを示す複数のマークが一列に並ぶコマンドリスト領域を含み、
    前記第1表示領域は、前記コマンドリスト領域の前記マークの列と平行に設けられ、
    前記第1表示領域には、前記コマンドリスト領域における前記マークに対応して前記エラーが発生する前記教示点が示されることが可能である、請求項1に記載のオフラインプログラミング装置。
  3. 前記第1表示領域は、前記コマンドリスト領域の前記マークの列と平行な線状部を含み、
    前記第1エラー表示方法は、前記線状部における前記エラーが発生する部分を特定の色で表示する方法である、請求項2に記載のオフラインプログラミング装置。
  4. 前記第1表示領域は、ユーザが一部を選択することが可能であり、
    前記第2表示領域には、前記第1表示領域においてユーザに選択された部分における複数の前記中間点の時系列の並びが、前記第1表示領域より大きい尺度で示されることが可能である、請求項1から請求項3のいずれか1項に記載のオフラインプログラミング装置。
  5. 前記表示部は、前記第1表示領域においてユーザによって選択された時点を、前記第2表示領域において他の時点とは異なる方法で表示することが可能である、請求項4に記載のオフラインプログラミング装置。
  6. 前記入力部は、ユーザが前記第1表示領域の一部を選択した状態で、コマンドの追加指示を受け付けることが可能であり、
    前記作成部は、前記コマンドの追加指示を受け付けた場合に、前記第1表示領域においてユーザに選択された時点に前記教示点を追加して、前記動作プログラムを再度作成する、請求項4又は請求項5に記載のオフラインプログラミング装置。
  7. 前記第1表示領域においてユーザによって選択された時点が1つの前記教示点に対応する時点と一致する場合に、前記表示部は、前記第2表示領域において前記1つの前記教示点を、他の前記教示点とは異なる方法によって表示することが可能である、請求項4から請求項6のいずれか1項に記載のオフラインプログラミング装置。
  8. 前記第1エラー表示方法は、隣り合う2つの前記教示点の間においてエラーが発生する場合、前記第1表示領域における前記2つの前記教示点の間の区間を特定の色で表示する方法である、請求項1から請求項7のいずれか1項に記載のオフラインプログラミング装置。
  9. 前記第1エラー表示方法は、1つの前記教示点においてエラーが発生する場合、前記第1表示領域における前記1つの前記教示点を挟む2つの前記教示点の間の区間を特定の色で表示する方法である、請求項1から請求項8のいずれか1項に記載のオフラインプログラミング装置。
  10. 前記第2エラー表示方法は、前記第2表示領域における前記エラーの発生箇所を含む複数の前記中間点の間の区間を特定の色で表示する方法である、請求項8又は請求項9に記載のオフラインプログラミング装置。
  11. 前記動作軌跡にユーザへの警告を要する事象が検出された場合、前記第1表示領域には、前記事象が発生する時点に対応する前記教示点を含む区間が、前記特定の色とは異なる特定の警告色で表示されることが可能である、請求項8から請求項10のいずれか1項に記載のオフラインプログラミング装置。
  12. 前記特定の色で表示する第1区間と、前記警告色で表示する第2区間とが重なる場合、前記第1区間が前記特定の色で表示され、前記第2区間のうち前記第1区間と重なった部分を除く部分が、前記警告色で表示されることが可能である、請求項11に記載のオフラインプログラミング装置。
  13. 前記入力部は、前記ロボットの姿勢及び動作方向を時点毎に定義する複数の動作コマンドと、前記ロボットの姿勢及び動作方向を定義しない非動作コマンドとの入力を受け付け、
    前記第1表示領域は、前記複数の動作コマンドそれぞれの前記教示点と、前記非動作コマンドとの時系列の並びを示し、
    前記第2表示領域に、前記第1表示領域に含まれる一部の複数の前記教示点及び前記非動作コマンドを含む区間が示される場合、前記区間において前記非動作コマンドを除く前記複数の前記教示点の間における前記複数の前記中間点の時系列の並びが示されることが可能である、請求項1から請求項12のいずれか1項に記載のオフラインプログラミング装置。
  14. 複数の教示点の入力を受け付けるステップと、
    隣り合う前記教示点の間を繋ぐ一又は複数の中間点を決定し、数の前記教示点及び一又は複数の前記中間点を含むロボットの動作プログラムを作成するステップと、
    前記動作プログラムを実行したときの前記ロボットの動作軌跡をシミュレートするステップと、
    前記動作軌跡を表現するGUI画面を表示するステップと、を含み、
    前記GUI画面は、
    数の前記教示点の時系列の並びを示す第1表示領域と、前記第1表示領域に含まれる一部の複数の前記教示点の間において数の前記中間点の時系列の並びを、前記第1表示領域より大きい尺度で示す第2表示領域とを含み、
    前記第1表示領域における時系列の並びを示す方向と、前記第2表示領域における時系列の並びを示す方向と、が同じであり、
    前記動作軌跡にエラーが検出された場合、
    前記第1表示領域には、前記エラーが発生する時点を含む、前記教示点の間の区間が第1エラー表示方法によって示されることが可能であり、前記第2表示領域には、前記エラーが発生する時点に対応する前記中間点が第2エラー表示方法によって示されることが可能である、オフラインプログラミング方法。
JP2019227276A 2019-12-17 2019-12-17 オフラインプログラミング装置及びオフラインプログラミング方法 Active JP7382217B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019227276A JP7382217B2 (ja) 2019-12-17 2019-12-17 オフラインプログラミング装置及びオフラインプログラミング方法
US17/786,636 US20230030278A1 (en) 2019-12-17 2020-12-15 Offline programming device and offline programming method
CN202080087031.9A CN115210047A (zh) 2019-12-17 2020-12-15 离线编程装置以及离线编程方法
EP20901449.7A EP4079465A4 (en) 2019-12-17 2020-12-15 OFFLINE PROGRAMMING DEVICE AND METHOD
PCT/JP2020/046831 WO2021125192A1 (ja) 2019-12-17 2020-12-15 オフラインプログラミング装置及びオフラインプログラミング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019227276A JP7382217B2 (ja) 2019-12-17 2019-12-17 オフラインプログラミング装置及びオフラインプログラミング方法

Publications (2)

Publication Number Publication Date
JP2021094644A JP2021094644A (ja) 2021-06-24
JP7382217B2 true JP7382217B2 (ja) 2023-11-16

Family

ID=76430096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019227276A Active JP7382217B2 (ja) 2019-12-17 2019-12-17 オフラインプログラミング装置及びオフラインプログラミング方法

Country Status (5)

Country Link
US (1) US20230030278A1 (ja)
EP (1) EP4079465A4 (ja)
JP (1) JP7382217B2 (ja)
CN (1) CN115210047A (ja)
WO (1) WO2021125192A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210316458A1 (en) * 2020-04-08 2021-10-14 Smart Building Tech Co., Ltd. Cloud based computer-implemented visually programming method and system for robotic motions in construction
JP7217821B1 (ja) 2022-02-08 2023-02-03 株式会社ダイヘン ロボット教示システム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090307666A1 (en) 2008-06-04 2009-12-10 Microsoft Corporation Real-time validation of interactive applications
JP2015160253A (ja) 2014-02-26 2015-09-07 キヤノン株式会社 軌道生成方法、ロボット装置、プログラム及び記録媒体
US20160136815A1 (en) 2014-05-21 2016-05-19 Bot & Dolly, Llc Closed-Loop Control System for Robotic Operation
JP2019084664A (ja) 2017-11-10 2019-06-06 株式会社安川電機 プログラミング支援装置、ロボットシステム及びプログラム生成方法
JP2019123052A (ja) 2018-01-18 2019-07-25 キヤノン株式会社 シミュレータ装置、およびシミュレータ装置の制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2518178B2 (ja) * 1987-06-03 1996-07-24 株式会社安川電機 ロボットの相互干渉チェックのためのプログラム表示方法
JP2008142788A (ja) 2006-12-06 2008-06-26 Yaskawa Electric Corp 動作プログラム作成支援方法および動作プログラム作成装置。
EP3472677A1 (en) * 2016-06-20 2019-04-24 Hypertherm, Inc Systems and methods for planning paths to guide robots

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090307666A1 (en) 2008-06-04 2009-12-10 Microsoft Corporation Real-time validation of interactive applications
JP2015160253A (ja) 2014-02-26 2015-09-07 キヤノン株式会社 軌道生成方法、ロボット装置、プログラム及び記録媒体
US20160136815A1 (en) 2014-05-21 2016-05-19 Bot & Dolly, Llc Closed-Loop Control System for Robotic Operation
JP2019084664A (ja) 2017-11-10 2019-06-06 株式会社安川電機 プログラミング支援装置、ロボットシステム及びプログラム生成方法
JP2019123052A (ja) 2018-01-18 2019-07-25 キヤノン株式会社 シミュレータ装置、およびシミュレータ装置の制御方法

Also Published As

Publication number Publication date
CN115210047A (zh) 2022-10-18
EP4079465A4 (en) 2024-01-03
EP4079465A1 (en) 2022-10-26
JP2021094644A (ja) 2021-06-24
WO2021125192A1 (ja) 2021-06-24
US20230030278A1 (en) 2023-02-02

Similar Documents

Publication Publication Date Title
US20230267690A1 (en) Information processing apparatus and control method of display apparatus
US9976852B2 (en) Inspection program editing environment providing user defined collision avoidance volumes with integral modification properties
JP7382217B2 (ja) オフラインプログラミング装置及びオフラインプログラミング方法
TWI541713B (zh) 階梯程式作成裝置
EP3179324B1 (en) Interactive tool tip to display and navigate to different resources of a data point
JP2008249674A (ja) 計測データ表示装置
JP6867457B2 (ja) 情報処理装置
US20140075392A1 (en) Dynamic Faceplates For Multiple Objects
TWI570530B (zh) Numerical control system and numerical control data generation method
EP3674887B1 (en) User interface development assistance device, user interface development assistance method, and user interface development assistance program
JP4516224B2 (ja) ラダー図作成プログラム
US11360454B2 (en) Ladder display device for circuit generation using touch panel
TWI569118B (zh) 畫面作成軟體
JP6222430B2 (ja) 制御システム及びそのエンジニアリングに用いるプログラム
JP5205111B2 (ja) ラダー図モニタ装置
EP2284740A1 (en) Design support program, design support system, and design support method
WO2024028977A1 (ja) 教示装置
WO2023026490A1 (ja) 教示装置
JPH1185835A (ja) 作図装置
JP2002023906A (ja) 座標表示装置
JP4350256B2 (ja) プロパティ設定方法及びプロパティ設定処理を含むcadプログラムを記憶してなる媒体

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20210122

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230908

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231106

R150 Certificate of patent or registration of utility model

Ref document number: 7382217

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150