IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーウェーブの特許一覧

特開2022-16872制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置
<>
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図1
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図2
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図3
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図4
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図5
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図6
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図7
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図8
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図9
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図10
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図11
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図12
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図13
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図14
  • 特開-制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022016872
(43)【公開日】2022-01-25
(54)【発明の名称】制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置
(51)【国際特許分類】
   B25J 9/00 20060101AFI20220118BHJP
   G06F 3/0486 20130101ALI20220118BHJP
【FI】
B25J9/00 Z
G06F3/0486
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2020119839
(22)【出願日】2020-07-13
(71)【出願人】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】100121821
【弁理士】
【氏名又は名称】山田 強
(74)【代理人】
【識別番号】100125575
【弁理士】
【氏名又は名称】松田 洋
(72)【発明者】
【氏名】三間 優人
【テーマコード(参考)】
3C707
5E555
【Fターム(参考)】
3C707BS10
3C707JU02
3C707JU03
3C707JU07
3C707LS02
3C707LS09
5E555AA04
5E555AA54
5E555BA90
5E555BB02
5E555BC13
5E555CA02
5E555CB08
5E555CB34
5E555DB18
5E555DB41
5E555DC11
5E555DC21
5E555FA00
(57)【要約】
【課題】産業用ロボットの動作シーケンスを確認・設定等する場合の作業効率の向上及び設定ミスの低減を図ること。
【解決手段】設定装置のディスプレイにおけるスクリプトエリアに配置された制御ブロックの種類及び配列に基づいてロボットの動作シーケンスが設定される。ディスプレイにおけるブロックパレットには、補助ブロックの1つであるグループ表示ブロック74が表示される。グループ表示ブロック74には、ユーザの操作に基づいてスクリプトエリアに配置される場合には、他の制御ブロックを複数収容可能な収容部74bが追加される。ユーザの操作によって収容部74bに他の制御ブロックB11,B12が収容されることで、それら制御ブロックB11,B12が1つのまとまりとして表示される。
【選択図】 図6
【特許請求の範囲】
【請求項1】
設定されている動作シーケンスに基づいて動作する産業用ロボットを備え、ユーザによって前記産業用ロボットの動作を規定する制御ブロックが表示画面における所定領域に並べて配置され、当該所定領域に配置された前記制御ブロックの種類及び配列に基づいて前記動作シーケンスが設定されるように構成されたロボットシステムに適用され、前記所定領域に前記制御ブロックが配置される場合に、当該所定領域において制御ブロックのまとまりを表示する制御ブロック群の表示方法であって、
所定の表示条件が成立した場合に、前記所定領域に複数の前記制御ブロックを収容可能となるように構成された収容部を追加表示する追加表示ステップと、
ユーザの収容操作に基づいて前記収容部に前記制御ブロックを収容することにより、前記所定領域における前記制御ブロックの前記まとまりを示すまとまり表示ステップと
を有している制御ブロック群の表示方法。
【請求項2】
前記所定領域に表示されるブロックとして、当該所定領域に配置された前記制御ブロックの種類及び配列に基づいて前記動作シーケンスが設定される場合に当該設定に寄与しない非制御ブロックであって前記収容部を含む特殊ブロックが設けられており、
前記追加表示ステップでは、前記所定領域に前記特殊ブロックを表示させることにより当該所定領域に前記収容部を追加表示し、
前記まとまり表示ステップでは、前記所定領域に表示されている前記特殊ブロックの前記収容部に複数の前記制御ブロックを収容する請求項1に記載の制御ブロック群の表示方法。
【請求項3】
前記特殊ブロックは、前記収容部と文字列を表示する文字列表示部とを有してなり、
ユーザの編集操作に基づいて前記文字列表示部に表示されている文字列を編集するステップを有している請求項2に記載の制御ブロック群の表示方法。
【請求項4】
ユーザの表示切替操作に基づいて、前記特殊ブロックの前記文字列表示部を非表示とするステップを有している請求項3に記載の制御ブロック群の表示方法。
【請求項5】
前記追加表示ステップでは、前記所定領域に表示されている前記制御ブロックの何れかを指定する操作を含む所定操作が行われた場合に前記所定の表示条件成立となり、当該指定された制御ブロックに前記収容部を追加する請求項1に記載の制御ブロック群の表示方法。
【請求項6】
前記追加表示ステップは、前記収容部の追加対象となる前記制御ブロックに対して、前記所定領域における制御ブロックの並び方向において後の順序となる側に前記収容部を追加する請求項5に記載の制御ブロック群の表示方法。
【請求項7】
前記制御ブロックに追加された前記収容部を、当該収容部に収容されている他の前記制御ブロックが当該収容部から全て取り出された場合に非表示とするステップを有している請求項5又は請求項6に記載の制御ブロック群の表示方法。
【請求項8】
ユーザの表示切替操作に基づいて前記収容部内の表示を省略又は簡略化するステップを有しており、
前記制御ブロックには、前記動作シーケンスに分岐を発生させる分岐ブロックが含まれており、
前記分岐ブロックは、分岐条件毎に表示される複数の条件ブロックで構成されており、
前記追加表示ステップでは、前記分岐ブロックが前記所定領域に配置される場合に前記所定の表示条件成立となり、それら条件ブロックに前記収容部を各々追加し、
それら条件ブロックに追加された各収容部には各条件ブロックに続く他の制御ブロックを各々収容可能となっている請求項5乃至請求項7のいずれか1つに記載の制御ブロック群の表示方法。
【請求項9】
ユーザの表示切替操作に基づいて前記収容部内の表示を省略又は簡略化するステップを有している請求項1乃至請求項7のいずれか1つに記載の制御ブロック群の表示方法。
【請求項10】
コンピュータにインストールされるプログラムであって、
当該コンピュータに、請求項1乃至請求項9のいずれか1つに記載の各ステップを実行させる産業用ロボットの動作シーケンスの設定支援プログラム。
【請求項11】
設定されている動作シーケンスに基づいて動作する産業用ロボットを備えるロボットシステムに適用され、ユーザによる前記動作シーケンスの設定を支援する設定支援装置であって、
ユーザの配置操作に基づいて前記産業用ロボットの動作を規定する制御ブロックが表示画面における所定領域に並べて配置され、当該所定領域に配置された前記制御ブロックの種類及び配列に基づいて前記動作シーケンスを設定する構成となっており、
所定の表示条件が成立した場合に、複数の前記制御ブロックを収容可能となるように構成された収容部を前記所定領域に追加表示する追加表示手段と、
ユーザの収容操作に基づいて前記収容部に前記制御ブロックを収容することにより、前記所定領域における前記制御ブロックのまとまりを示すまとまり表示手段と
を有している産業用ロボットの動作シーケンスの設定支援装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御ブロック群の表示方法、産業用ロボットの動作シーケンスの設定支援プログラム、産業用ロボットの動作シーケンスの設定支援装置に関する。
【背景技術】
【0002】
産業用ロボットの動作シーケンスを設定する方法の1つとして、ユーザによりロボットの動作を規定する複数種の制御ブロックが表示画面における作業領域に並べて配置され、当該作業領域に配置された制御ブロックの種類や配列に基づいて動作シーケンスを設定可能としたもの(制御プログラムを作成可能としたもの)がある(例えば特許文献1参照)。このような方法(所謂ビジュアルプログラミング)によれば、プログラミング言語の知識が乏しいユーザであっても簡易に動作シーケンスを設定することができる。これは、ロボットシステムの普及を図る上で好ましい。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005-309593号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、上述したビジュアルプログラミングでは、表示の簡略化等の理由から制御ブロック間の関係を示す情報が存在せず、配列されている制御ブロック間の関係(まとまり)が希薄になると想定される。つまり、動作シーケンスを設定したユーザ(作成者)の意図が分かりづらくなり、例えば、制御プログラムのメンテナンスを行う場合や、新たな制御プログラムの作成に際して既存の制御プログラムを参照する場合には、制御プログラムの内容を作成者の隠れた意図を踏まえながら理解することは困難になると懸念される。仮に別のユーザがプログラムの解釈を間違えたまま制御ブロック群を他の動作シーケンスに流用した場合には、ロボットの動きが想定とは異なる動きとなるといった設定ミス(プログラムミス)が生じ得る。このようなミスは、ロボットの動作に対する信頼性を低下させる要因になるため好ましくない。他方で、制御ブロック間の関係(まとまり)を解説書等の各種資料を参照して随時確認しながらメンテナンス等の作業を行う必要が生じることは、作業効率の向上を図る上で妨げになる。このように、動作シーケンスの設定に係る構成には、作業効率の向上及び設定ミスの低減を図る上で未だ改善の余地がある。
【0005】
本発明は、上記課題に鑑みてなされたものであり、その主たる目的は、産業用ロボットの動作シーケンスを確認・設定等する場合の作業効率の向上及び設定ミスの低減を図ることにある。
【課題を解決するための手段】
【0006】
以下、上記課題を解決するための手段について記載する。
【0007】
第1の手段.設定されている動作シーケンスに基づいて動作する産業用ロボット(ロボット20)を備え、ユーザによって前記産業用ロボットの動作を規定する制御ブロックが表示画面(ディスプレイ41)における所定領域(スクリプトエリア65)に並べて配置され、当該所定領域に配置された前記制御ブロックの種類及び配列に基づいて前記動作シーケンスが設定されるように構成されたロボットシステム(ロボットシステム10)に適用され、前記所定領域に前記制御ブロックが配置される場合に、当該所定領域において制御ブロックのまとまりを表示する制御ブロック群の表示方法であって、
所定の表示条件が成立した場合に、前記所定領域に複数の前記制御ブロックを収容可能となるように構成された収容部(例えば収容部74b)を追加表示する追加表示ステップと、
ユーザの収容操作に基づいて前記収容部に前記制御ブロックを収容することにより、前記所定領域における前記制御ブロックの前記まとまりを示すまとまり表示ステップと
を有している制御ブロック群の表示方法。
【0008】
第1の手段によれば、所定領域に配列された制御ブロック群の一部を収容部に収容した状態で表示することができる。収容部を用いて制御ブロックのまとまりを明示することにより、当該動作シーケンスを設定したユーザの意図、すなわち制御ブロック間の関係が明らかとなる。これにより、例えば動作シーケンスを規定している制御プログラム(制御ブロック群)のメンテナンスを行う場合や、当該制御プログラムを流用して新たな動作シーケンスを設定する場合の作業効率を好適に向上させるとともに作業ミスを低減することができる。
【0009】
第2の手段.前記所定領域に表示されるブロックとして、当該所定領域に配置された前記制御ブロックの種類及び配列に基づいて前記動作シーケンスが設定される場合に当該設定に寄与しない非制御ブロックであって前記収容部を含む特殊ブロック(グループ表示ブロック74)が設けられており、
前記追加表示ステップでは、前記所定領域に前記特殊ブロックを表示させることにより当該所定領域に前記収容部を追加表示し、
前記まとまり表示ステップでは、前記所定領域に表示されている前記特殊ブロックの前記収容部に複数の前記制御ブロックを収容する。
【0010】
動作シーケンスの設定に寄与しない特殊ブロックを表示させた後に、当該特殊ブロックの収容部に複数の制御ブロックを収容することにより、それら制御ブロックが1つのまとまりである旨が明示される。なお、制御ブロックについては収容部に直接収容される構成としてもよいし、他の特殊ブロックに収容された状態で収容される構成としてもよい。
【0011】
第3の手段.前記特殊ブロックは、前記収容部と文字列を表示する文字列表示部(ブロック本体部74a)とを有してなり、
ユーザの編集操作に基づいて前記文字列表示部に表示されている文字列を編集するステップを有している。
【0012】
文字列を編集することにより特殊ブロックの収容部に収容された複数の制御ブロックのまとまりの意図を明示できる。
【0013】
第4の手段.ユーザの表示切替操作に基づいて、前記特殊ブロックの前記文字列表示部を非表示とするステップを有している。
【0014】
文字列表示部を非表示に切替可能とすれば、所定領域に表示されるブロックの数に係る制約を緩和できる。これは、上述したコメント機能の活用を促す上で好ましい。
【0015】
第5の手段.前記追加表示ステップでは、前記所定領域に表示されている前記制御ブロックの何れかを指定する操作を含む所定操作が行われた場合に前記所定の表示条件成立となり、当該指定された制御ブロックに前記収容部を追加する。
【0016】
所定領域に表示中の制御ブロックに収容部が追加され、この収容部に他の制御ブロックが収容されることで、それらの制御ブロックに何らかの関係性がある旨を明示できる。この構成は、まとまりを明示する機能によって所定領域が圧迫されやすくなることを回避する上で有利である。
【0017】
第6の手段.前記追加表示ステップは、前記収容部の追加対象となる前記制御ブロックに対して、前記所定領域における制御ブロックの並び方向において後の順序となる側に前記収容部を追加する。
【0018】
本手段に示す位置に収容部を追加すれば、まとまりを表示する場合であっても制御ブロックの並び順が崩れることを回避できる。
【0019】
第7の手段.前記制御ブロックに追加された前記収容部を、当該収容部に収容されている他の前記制御ブロックが当該収容部から全て取り出された場合に非表示とするステップを有している。
【0020】
収容されていた制御ブロックを収容部から全て取り出した場合に当該収容部を非表示とすれば、制御ブロックに収容部を追加する機能が所定領域を無駄に圧迫する要因になることを簡易に回避できる。
【0021】
第8の手段.ユーザの表示切替操作に基づいて前記収容部内の表示を省略又は簡略化するステップを有しており、
前記制御ブロックには、前記動作シーケンスに分岐を発生させる分岐ブロック(分岐形成ブロック73)が含まれており、
前記分岐ブロックは、分岐条件毎に表示される複数の条件ブロック(例えば条件ブロックB62a,B62b)で構成されており、
前記追加表示ステップでは、前記分岐ブロックが前記所定領域に配置される場合に前記所定の表示条件成立となり、それら条件ブロックに前記収容部を各々追加し、
それら条件ブロックに追加された各収容部には各条件ブロックに続く他の制御ブロックを各々収容可能となっている。
【0022】
所定領域に分岐ブロックを配置することにより、動作シーケンスに分岐を発生させることができる。分岐においては、どこからどこまでの制御ブロックが当該分岐に直接的に関係しているものかが不明確となることでプログラムの意図が誤認される可能性が高くなると想定される。そこで、本手段8に示すように、各条件ブロックに収容部を各々追加し、各収容部に制御ブロックを個別に収容可能とすることで、そのような不都合の発生を好適に抑制できる。また、収容部内のブロック群等を非表示又は簡略化表示させる場合、すなわち分岐を閉じる場合に、どのブロックまで非表示又は簡略化の対象になるかが明らかとなる。これは、分岐ブロックを使用する際の利便性の向上を図る上で好ましい。
【0023】
第9の手段.ユーザの表示切替操作に基づいて前記収容部内の表示を省略又は簡略化するステップを有している。
【0024】
ブロックの収容部内の表示を省略又は簡略化表示させることができる構成とすれば、表示画面の所定領域に表示されるブロックの数に係る制約を好適に緩和できる。
【0025】
なお、本手段に示す構成に代えて「ユーザの表示切替操作に基づいて前記収容部を表示状態又は非表示状態に切り替えるステップを有している」とすることも可能である。
【0026】
第10の手段.コンピュータ(設定装置40)にインストールされるプログラムであって、
当該コンピュータに、前記各ステップを実行させる産業用ロボットの動作シーケンスの設定支援プログラム。
【0027】
第10の手段に示す設定支援プログラムを用いて動作シーケンスを設定する構成とすれば、制御ブロックの並びでは把握しきれない意図を好適に反映することができる。これにより、産業用ロボットの動作シーケンスを設定する場合の作業効率の向上及び作業ミスの低減に寄与できる。
【0028】
第11の手段.設定されている動作シーケンスに基づいて動作する産業用ロボット(ロボット20)を備えるロボットシステム(ロボットシステム10)に適用され、ユーザによる前記動作シーケンスの設定を支援する設定支援装置(設定装置40)であって、
ユーザの配置操作に基づいて前記産業用ロボットの動作を規定する制御ブロックが表示画面(ディスプレイ41)における所定領域(スクリプトエリア65)に並べて配置され、当該所定領域に配置された前記制御ブロックの種類及び配列に基づいて前記動作シーケンスを設定する構成となっており、
所定の表示条件が成立した場合に、複数の前記制御ブロックを収容可能となるように構成された収容部(例えば収容部74b)を前記所定領域に追加表示する追加表示手段と、
ユーザの収容操作に基づいて前記収容部に前記制御ブロックを収容することにより、前記所定領域における前記制御ブロックのまとまりを示すまとまり表示手段と
を有している産業用ロボットの動作シーケンスの設定支援装置。
【0029】
第11の手段に示す設定支援装置よれば、所定領域に配列された制御ブロック群の一部を収容部に収容した状態で表示することができる。収容部を用いて制御ブロックのまとまりを明示することにより、当該動作シーケンスを設定したユーザの意図、すなわち制御ブロック間の関係が明らかとなる。これにより、例えば動作シーケンスを規定する制御プログラム(制御ブロック群)のメンテナンスを行う場合や、当該制御プログラムを流用して新たな動作シーケンスを設定する場合の作業効率を好適に向上させるととともに作業ミスを低減することができる。
【図面の簡単な説明】
【0030】
図1】第1の実施形態におけるロボットシステムを示す概略図。
図2】ディスプレイを示す概略図。
図3】各種制御ブロックの機能を示す概略図。
図4】まとまりが明示されていない場合に生じる解釈の揺れを例示した概略図。
図5】グループ表示ブロックを選択した場合の挙動を示す概略図。
図6】制御ブロックのまとまりが表示されている状態を示す概略図。
図7】設定装置のCPUにて実行されるグループ表示用処理を示すフローチャート。
図8】グループ化の流れを例示した概略図。
図9】グループ化の流れを例示した概略図。
図10】グループ化の流れを例示した概略図。
図11】第2の実施形態におけるグループ表示用処理を示すフローチャート。
図12】グループ化の流れを例示した概略図。
図13】(a)対比例を示す概略図、(b)第3の実施形態における分岐作成ブロックにおける制御ブロックのまとまりを示す概略図。
図14】グループ化の流れの変形例を示す概略図。
図15】グループ表示ブロックの変形例を示す概略図。
【発明を実施するための形態】
【0031】
<第1の実施形態>
以下、機械組立工場などで用いられるロボットシステムに具現化した第1の実施形態について図面を参照しつつ説明する。
【0032】
図1に示すように、ロボットシステム10は、垂直多関節型の産業用ロボットであるロボット20と、当該ロボット20を制御するコントローラ30とを備え、それらロボット20とコントローラ30とが通信可能となるように接続されてなる。
【0033】
ロボット20は、ロボット本体と当該ロボット本体に付属するサーボアンプとで構成されている。ロボット本体は、台座プレートに固定されるベース21と、ベース21に取り付けられた6軸のアーム22と、アーム22の先端に設けられたハンド23(ツール)とを有している。アーム22は6つの可動部が連結されてなり、関節部毎にそれら可動部を駆動させるモータと、各モータの回転角度を検出するエンコーダとが配設されている。また、アーム22には、ハンド23の開閉用(ツール駆動用)のモータと、当該モータの回転角度を検出するエンコーダとが配設されている。サーボアンプには、コントローラ30と通信を行う通信部と、コントローラ30からの指令やエンコーダにより検出された回転角度等に基づいて各関節用のモータ及びハンド23用のモータの駆動制御等を行う制御部が設けられている。
【0034】
コントローラ30は、ロボット20の動作シーケンスを設定するための設定支援プログラム(設定支援アプリケーション)がインストールされた設定装置40(「設定支援装置」に相当)と通信可能となっている。設定装置40は、ディスプレイ41、キーボード42、マウス43を有するコンピュータであり、ユーザによるキーボード42及びマウス43の操作に基づいて動作シーケンスを設定する。設定された動作シーケンスは設定装置40からコントローラ30に送信され、コントローラ30は受信した動作シーケンスに従ってロボット20を制御する。
【0035】
以下、設定支援プログラムを利用した動作シーケンスの設定に係る構成について説明する。
【0036】
設定装置40においては上記設定支援プログラムを起動させることにより、ディスプレイ41に設定支援用の画面が表示される(「表示画面」に相当)。この画面は、図2に示すように左右に分割されており、画面の左側部分には、ロボット20の動作ステップを規定する制御ブロック、プログラム作成補助用の補助ブロック、ブロック操作用の操作ボタン76~79、プログラム操作用の操作ボタン81~83等の各種アイコンがリストアップされたブロックパレット61が表示され、画面の右側部分には、ロボット20の制御プログラムを作成するためのスクリプトエリア65(作成領域)が表示される。
【0037】
ユーザは上記マウス43に連動するカーソルCを操作してブロックパレット61に表示されているブロック71~75を選択し、選択したブロックをスクリプトエリア65へドラッグ&ドロップさせることで当該スクリプトエリア65に配置し、配置したブロックをスクリプトエリア65にて所定方向に並ぶようにして配列することによりロボット20の動作シーケンスを設定する。つまり、ロボット20の動作シーケンスは、スクリプトエリア65に配置されたブロックの種類や配列等によって規定される。言い換えれば、スクリプトエリア65に配置されたブロックの種類や配列等によってロボット20の制御プログラムが構築される。このような方法(所謂ビジュアルプログラミング)によれば、プログラミング言語の知識が乏しいユーザであっても簡易に動作シーケンスを設定することができる。
【0038】
なお、設定装置40によってユーザによる制御プログラムの作成を支援する点に鑑みれば当該設定装置40を制御プログラムの作成を支援する「作成支援装置」、設定支援プログラムを作成支援プログラム(作成支援アプリケーション)ということもできる。
【0039】
ここで、図3を参照して動作シーケンスの設定(プログラミング)に使用されるブロック71~75の機能(役割り)について補足説明する。
【0040】
移動制御ブロック71は、ロボット20のアーム22の移動を規定する制御ブロックである。ユーザは、移動制御ブロック71をスクリプトエリア65に配置した後、当該移動制御ブロック71の詳細設定メニュー(プロパティ)から目標位置、移動速度、軌道等の各種情報を個別に指定可能となっている。
【0041】
ハンド制御ブロック72は、ロボット20のハンド23の動作を規定する制御ブロックである。ユーザは、ハンド制御ブロック72をスクリプトエリア65に配置した後、当該ハンド制御ブロック72の詳細設定メニュー(プロパティ)からハンド23の開/閉を指定可能となっている。
【0042】
分岐形成ブロック73は、動作シーケンスの分岐を規定する制御ブロックである。ユーザは、分岐形成ブロック73をスクリプトエリア65に配置した後、当該分岐形成ブロック73の詳細設定メニュー(プロパティ)から分岐条件を指定可能となっている。
【0043】
座標変更ブロック75は、ツール座標を変更する制御ブロックである。ユーザは、座標変更ブロック75をスクリプトエリア65に配置した後、当該座標変更ブロック75の詳細設定メニュー(プロパティ)から新たに参照するツール座標を指定可能となっている。
【0044】
スクリプトエリア65においては、これらの制御ブロックが連結された状態で上下に並べて配置されることにより、上側の制御ブロックから下側の制御ブロックへ順に動作ステップが進むように動作シーケンスが設定される構成となっている。なお、本実施形態においては連結された制御ブロックの間に僅かな隙間が確保される構成となっているが、この隙間の大きさについては任意である。但し、隙間が過度に大きくなることは制御ブロックの連結の有無をユーザが誤認する要因になり得る。故に、望ましくは当該隙間が制御ブロックの最小縦幅よりも小さくなるようにすることが好ましい。また、隙間を0にして制御ブロック同士を当接させる構成としてもよい。
【0045】
以上詳述したビジュアルプログラミングでは、制御ブロック間の関係を示す情報が省略され、表示の簡略化が図られている。このような構成では、配列されている制御ブロック間の関係(まとまり)が希薄になると想定される。つまり、動作シーケンスを設定した際のユーザ(作成者)の意図が分かりづらくなる。以下、図4を参照して具体例について説明する。
【0046】
図4(a)には、A点(Pa)へ移動→ハンド23を開く→B点(Pb)へ移動→ハンド23を閉じるという4つの動作ステップを規定する制御ブロック群を表示している。具体的には、上から移動制御ブロックB1→ハンド制御ブロックB2→移動制御ブロックB3→ハンド制御ブロックB4の順に4つの制御ブロックが並んでいる。このように並んだ4つの制御ブロックB1~B4から作成者の意図を読み取ろうとした場合には、以下の2つの解釈が生じる。すなわち、図4(b)に示すように、制御ブロックB1~B4を、制御ブロックB1~B2のまとまりと、制御ブロックB3~B4のまとまりとに分けた場合には、「A点でハンドを開きたい」という解釈が生じる。これに対して、図4(c)に示すように、制御ブロックB1~B4を、制御ブロックB1と、制御ブロックB2~B4のまとまりとに分けた場合には、「B点に移動する前にハンドを開いておきたい」という解釈が生じる。
【0047】
動作シーケンス(制御プログラム)のメンテナンスを行う場合や、新たな動作シーケンス(制御プログラム)の作成に際して既存の動作シーケンス(制御プログラム)を参照する場合には、動作シーケンスの内容を当該動作シーケンスの作成者の隠れた意図を踏まえながら理解することは困難になると懸念される。仮に別のユーザが解釈を間違えたまま制御ブロック群を他の動作シーケンスに流用した場合には、ロボット20の動きが想定とは異なる動きとなるといった設定ミス(プログラムミス)が生じ得る。このようなミスは、ロボット20の動作に対する信頼性を低下させる要因になるため好ましくない。本実施形態では、このような事情に配慮した工夫がなされていることを特徴の1つとしている。以下、図3図5及び図6を参照して当該工夫について説明する。
【0048】
上述した補助ブロックには、複数のブロックのまとまり(グループ)を表示するためのグループ表示ブロック74が含まれている(図3参照)。グループ表示ブロック74は、スクリプトエリア65に配置されることによりその形態が変化する。具体的には、図5に示すようにスクリプトエリア65に配置されることにより、当該グループ表示ブロック74を構成するブロック本体部74aの下側に他のブロックを収容可能な収容部74bが追加される。つまり、ブロックパレット61においてはグループ表示ブロック74はブロック本体部74aのみとなるように表示が簡略化されており、スクリプトエリア65に配置されることでグループ表示ブロック74がブロック本体部74a及び収容部74bとなるように拡張される。
【0049】
収容部74bは矩形状をなす枠線FLを有しており、この枠線FLによって囲まれた領域が収容領域SEとなっている。収容部74bの大きさは、当該収容部74bに収容されているブロックの数や大きさに応じて自動的に変更される。
【0050】
ブロック本体部74aにはコメント(文字列)を表示するコメント領域NEが設けられており、配置初期の状態では当該コメントが「グループ」となっている。このコメントについては、ユーザがブロック本体部74aに対して変更操作(例えばダブルクリック)を行うことで任意に変更可能となる。
【0051】
図6に示す例では、グループ表示ブロック74の収容部74bに移動制御ブロックB1とハンド制御ブロックB2とが収容されており、当該グループ表示ブロック74のコメントが「A点で放す」に変更されている。このような構成を図4(a)に示した事例に適用することで、プログラムの作成者の意図が図4(b)のパターンであることが自明となる。これにより、上述した解釈の揺れ(間違い)による上記ミスを抑制できる。
【0052】
次に、図7を参照して、設定装置40のCPU45により定期処理の一環として実行されるグループ表示用処理について説明する。
【0053】
グループ表示用処理においては先ず、ステップS101にてスクリプトエリア65にグループ表示ブロック74が配置されているか否かを判定する。ステップS101にて否定判定をした場合には、ステップS102に進む。ステップS102では、ユーザによりグループ表示ブロック74をスクリプトエリア65に追加する操作(ドラッグ&ドロップ)が行われたか否かを判定する。ステップS102にて否定判定をした場合には、そのまま本グループ表示用処理を終了する。ステップS102にて肯定判定をした場合には、ステップS103に進みグループ表示ブロック74の追加処理を行う。この追加処理により、ユーザによって指定された位置にブロック本体部74a及び収容部74bからなるグループ表示ブロック74(図6参照)が追加されることとなる。
【0054】
ステップS101の説明に戻り、スクリプトエリア65にグループ表示ブロック74が配置されている場合には、ステップS101にて肯定判定をしてステップS104に進む。ステップS104ではブロック本体部74aのコメント領域NEに表示されているコメントが変更されている最中であるか否かを判定する。ステップS104にて肯定判定をした場合には、ステップS111にてコメント変更用処理を実行した後、本グループ表示用処理を終了する。
【0055】
ステップS104にて否定判定をした場合には、ステップS105に進む。ステップS105ではブロックの収容操作が行われたか否かを判定する。ステップS105にて肯定判定をした場合には、ステップS106にてブロック収容処理を実行した後、本グループ表示用処理を終了する。本実施形態においては、ブロック収容の操作パターン(収容パターン)が、制御ブロックをブロックパレット61からダイレクトに収容するパターンAと、スクリプトエリア65に配置された制御ブロックを収容するパターンB及びパターンCとの3つに分かれている。以下、図8図10を参照して各パターンについて説明する。なお、図8図10の各パターンについては、制御ブロックの配列が図4と同様となる場合について例示している。
【0056】
図8に示すように、パターンAにおいては先ず、ブロックパレット61に表示されているグループ表示ブロック74をスクリプトエリア65へドラッグ&ドロップする。これにより、スクリプトエリア65に収容部が追加されたグループ表示ブロックB23が配置される。次に、ブロックパレット61に表示されている移動制御ブロック71をグループ表示ブロックB23の収容領域SEへドラック&ドロップする。これにより収容領域SEに移動制御ブロックB24が収容(配置)される。同じく、ブロックパレット61に表示されているハンド制御ブロック72をグループ表示ブロックB23の収容領域SE、詳しくは移動制御ブロックB24の下側となる位置へドラック&ドロップする。これにより収容領域SEにハンド制御ブロックB25が収容(配置)される。この時点では、グループ表示ブロックB23の収容領域SEには配列方向(縦方向)にある程度の余白が存在している。この余白は、グループ表示ブロックB23をその下側に位置する移動制御ブロックB21に接続することで自動的に減縮されることとなる。
【0057】
図9に示すように、パターンBにおいては、収容対象となる移動制御ブロックB31及びハンド制御ブロックB32をスクリプトエリア65に配置した状態にて、ブロックパレット61に表示されているグループ表示ブロック74をスクリプトエリア65へドラッグ&ドロップする。これにより、スクリプトエリア65に収容部が追加されたグループ表示ブロックB35が配置される。次に、スクリプトエリア65に配置されている移動制御ブロックB31をグループ表示ブロックB35の収容領域SEへドラック&ドロップする。これにより収容領域SEに移動制御ブロックB24が収容(配置)される。同じく、スクリプトエリア65に配置されているハンド制御ブロックB32をグループ表示ブロックB35の収容領域SE、詳しくは移動制御ブロックB31の下側となる位置へドラック&ドロップする。これにより収容領域SEにハンド制御ブロックB32が収容(配置)される。この時点では、グループ表示ブロックB35の収容領域SEには配列方向(縦方向)にある程度の余白が存在している。この余白は、グループ表示ブロックB35をその下側に位置する移動制御ブロックB33に接続することで自動的に減縮されることとなる。
【0058】
図10に示すように、パターンCにおいては、収容対象となる移動制御ブロックB41及びハンド制御ブロックB42をスクリプトエリア65に配置した状態にて、ブロックパレット61に表示されているグループ表示ブロック74をスクリプトエリア65へドラッグ&ドロップする。これにより、スクリプトエリア65に収容部が追加されたグループ表示ブロックB45が配置される。次に、グループ表示ブロックB45における枠線FLの下枠部を収容対象であるハンド制御ブロックB42と収容対象でない移動制御ブロックB43との間へドラック&ドロップする。これにより、下枠部の位置が移動制御ブロックB41の上方となる位置からハンド制御ブロックB42と移動制御ブロックB43との間となる位置へ変更され、移動制御ブロックB41とハンド制御ブロックB42とが収容領域SEに収容される。この際、グループ表示ブロックB35の位置及び収容領域SEの大きさが、制御ブロックB41~B42に合わせて自動的に変更されることとなる。
【0059】
図7のグループ表示用処理の説明に戻り、ステップS105にて否定判定をした場合、すなわちブロックの収容操作が行われていない場合には、ステップS107に進む。ステップS107では、グループ表示ブロックに収容されているブロックの取出操作が行われたか否かを判定する。ステップS107にて肯定判定をした場合には、ステップS108にてブロックの取出処理を実行した後、本グループ表示用処理を終了する。ブロックの取出操作が行われることにより収容領域SEが減縮されることとなる。なお、グループ表示ブロックが上側又は下側に位置する他のブロックと接続されている状態にて制御ブロックが取り出された場合には、当該接続は維持されることとなる。
【0060】
ステップS107にて否定判定をした場合には、ステップS109に進む。ステップS109では、グループ表示ブロックの削除操作が行われたか否かを判定する。ステップS109にて否定判定をした場合にはそのまま本グループ表示用処理を終了する。ステップS109にて肯定判定をした場合には、ステップS110にてグループ表示ブロックの削除処理を実行し、ステップS108にてブロック取出処理を実行した後、本グループ表示用処理を終了する。つまり、グループ表示ブロックの収容領域SEにブロックが収容されている状況下にて当該グループ表示ブロックの削除操作が行われた場合には、収容されているブロックについては削除されることなくスクリプトエリア65に残ることとなる。
【0061】
以上詳述した第1の実施形態によれば、以下の優れた効果を奏する。
【0062】
スクリプトエリア65(「所定領域」に相当)に配列された制御ブロック群の一部をグループ表示ブロック74(「非制御ブロック」、「特殊ブロック」に相当)の収容部74bに収容した状態で表示することができる。収容部74bを用いて制御ブロックのまとまりを明示することにより、動作シーケンスを設定したユーザの意図、すなわち制御ブロック間の関係が明らかとなる。これにより、例えば動作シーケンス(制御プログラム)のメンテナンスを行う場合や、当該動作シーケンスを構築する制御ブロック群の一部を流用して新たな動作シーケンスを設定する場合の作業効率を好適に向上させるととともに設定ミスを低減することができる。
【0063】
制御ブロック同士を接続した場合には、それら制御ブロック間に隙間が形成される構成となっている。グループ表示ブロック74の枠線FLについてはこの隙間を通過する構成となっており、当該枠線FLと制御ブロックとの重なりが回避される。このようなに接続された状態であっても制御ブロック間に隙間を確保することにより、枠線FLによってまとまりを表示する際の識別性を好適に向上させることができる。
【0064】
グループ表示ブロック74のブロック本体部74a(「文字列表示部」に相当)のコメントはユーザの変更操作によって任意に変更される。これは、制御ブロックのまとまりの意図を明示し、他のユーザによる解釈の揺れ(ばらつき)を抑制する上で好ましい。
【0065】
<第2の実施形態>
上記第1の実施形態では、グループ表示ブロック74の収容領域SEに複数の制御ブロックを収容することにより制御ブロックのまとまりを表示する構成とした。本実施形態においても、収容領域に制御ブロックを収容することにより制御ブロックのまとまりを表示する点では同様であるものの、当該まとまりの表示をグループ表示ブロック74を用いることなく実現している点で第1の実施形態と構成が相違している。以下、第1の実施形態との相違点を中心に本実施形態における特徴的な構成について説明する。先ず図9を参照して、設定装置40のCPU45にて定期処理の一環として実行されるグループ表示用処理について説明する。
【0066】
グループ表示用処理においては先ず、ステップS201にて制御ブロックの収容操作が行われているか否かを判定する。ステップS201にて肯定判定をした場合にはステップS202に進む。ステップS202では、枠線FLが表示されているか否かを判定する。既に枠線FLが表示されている場合には、ステップS204にて制御ブロックの収容処理を実行した後、本グループ表示用処理を終了する。枠線FLが表示されていない場合には、ステップS203にて枠線FLの表示処理を実行し、続くステップS204にて制御ブロックの収容処理を実行した後、本グループ表示用処理を終了する。
【0067】
ここで、図12を参照して、本実施形態における収容操作及び枠線FL(収容部)の追加対象について説明する。
【0068】
スクリプトエリア65に少なくとも1の制御ブロックが配置されている場合には、スクリプトエリア65に表示されている他の制御ブロックやブロックパレット61に表示されている制御ブロックを上記1の制御ブロックに重なる位置へドラッグ&ドロップすることで当該1の制御ブロックに他の制御ブロックを収容することができる。例えば図12に示す例では、スクリプトエリア65に移動制御ブロックB51及びハンド制御ブロックB52を含む複数の制御ブロックB51~B54が配置されている。移動制御ブロックB51に重なる位置へハンド制御ブロックB52を移動させることにより、当該移動制御ブロックB51に収容部(枠線FL及び収容領域SE)が収容され、当該収容領域SEにハンド制御ブロックB52が収容される。
【0069】
以下の説明では、収容する側の制御ブロックを「親制御ブロック」、収容される側の制御ブロックを「子制御ブロック」として適宜区別する。
【0070】
図11のグループ表示用処理の説明に戻り、ステップS201にて否定判定をした場合、すなわち制御ブロックの収容操作が行われていない場合には、ステップS205に進む。ステップS205では、子制御ブロックの取出操作が行われたか否かを判定する。ステップS205にて肯定判定をした場合にはステップS206に進み、対象となった親制御ブロックに他の子制御ブロックが収容されているか否かを判定する。ステップS206にて否定判定をした場合には、ステップS207にて枠線FLの非表示処理を実行する。これにより、追加されていた枠線FL及び収容領域SEが消去されることとなる。ステップS207の非表示処理を実行した後、又はステップS205にて肯定判定をした場合には、ステップS208にて取出操作の対象となった子制御ブロックの取出処理を実行して本グループ表示用処理を終了する。
【0071】
ステップS205にて否定判定をした場合、すなわち取出操作が行われていない場合には、ステップS209に進む。ステップS209では親制御ブロックの削除操作が行われたか否かを判定する。ステップS209にて否定判定をした場合にはそのまま本グループ表示用処理を終了する。ステップS209にて肯定判定をした場合には、ステップS210にて親制御ブロックの削除処理を実行する。その後は、当該親制御ブロックに子制御ブロックが収容されていない場合にはステップS211にて否定判定をして本グループ表示用処理を終了し、当該親制御ブロックに子制御ブロックが収容されている場合にはステップS211にて肯定判定をしてステップS208の取出処理を実行した後、本グループ表示用処理を終了する。
【0072】
以上詳述した第2の実施形態によれば、以下の優れた効果を奏する。
【0073】
スクリプトエリア65に配置されている制御ブロックに収容部が追加され、この収容部に他の制御ブロックが収容されることで、それらの制御ブロックに何らかの関係性がある旨を明示できる。この構成は、まとまりを表示する機能によって所定領域が圧迫されやすくなることを回避する上で有利である。
【0074】
制御ブロックに追加される収容部は、追加対象となる制御ブロックに対して、制御ブロックの並び方向において後の順序となる側(下側)に追加される。このような位置に収容部を追加すれば、まとまりを表示する場合であっても制御ブロックの並び順が崩れることを回避できる。
【0075】
制御ブロックの主たる機能は動作ステップの設定にある。この点に鑑みれば、まとまりの表示を解除した後も収容部が残ったままとなることは配列等の視認性を低下させる要因となるため好ましくない。本実施形態においては、親制御ブロックに収容されていた子制御ブロックを収容部から全て取り出した場合には、当該収容部が非表示となる。このような構成によれば、制御ブロックに収容部を追加する機能がスクリプトエリア65を無駄に圧迫する要因になることを簡易に回避し、上記懸念を好適に払拭できる。
【0076】
ここで、ビジュアルプログラミングによってロボットの制御プログラムを作成する場合には、先ず移動制御ブロックを組み合わせることでベースとなる動作軌道を規定した後、当該軌道(プログラム)に他の詳細な動きを肉付けするといった流れでプログラムの作成作業が行われることがある。このような事情に鑑みれば、移動制御ブロックに他の制御ブロック等を追加・収容してまとまりを表示可能とすることには、ユーザの利便性を飛躍的に向上させることができるという技術的意義がある。
【0077】
<第3の実施形態>
本実施形態では分岐形成ブロックに係る構成が特徴的なものとなっている。以下、本実施形態における特徴的な構成を上記第2の実施形態との相違点を中心に説明する。
【0078】
図13(a)に示すように、分岐の契機となるハンド制御ブロックB61、ハンド制御ブロックB61の制御の結果(把持成功/把持失敗)に応じて分岐を形成する分岐形成ブロックB62、分岐条件を示す条件ブロックB62a,B62b、把持成功となった場合に続く移動制御ブロックB63,B64,B65、把持失敗となった場合に続く移動制御ブロックB66、ハンド制御ブロックB67,移動制御ブロックB68が単に並べて配置されている場合には、分岐発生の契機から分岐発生後の動作までがどのようなまとまりとなっているかが不明となる。特に、分岐が発生してからどの制御ブロックまでが分岐に関するまとまりとなっているかが不明となることは作成者の意図の解釈を困難とし、上記設定ミス(プログラムミス)が生じやすくなると想定される。
【0079】
この点、本実施形態では、ブロックパレット61に表示されている分岐形成ブロック73をスクリプトエリア65へドラッグ&ドロップによって配置した場合には、当該分岐形成ブロック73が、複数の条件ブロックに分割された状態で表示される。図13(b)に示すように、それら条件ブロックB62a,B62bについても収容部(枠線FL及び収容領域SE)の追加対象となっており、各条件ブロックB62a,B62bがスクリプトエリア65に配置される際に、それら条件ブロックB62a,B62bに収容部が各々追加される。これらの収容部は、ユーザの収容操作に基づいて各条件ブロックB62a,B62bに続く他の制御ブロックを各々収容可能となっている。
【0080】
図13(b)に示す具体例では、把持成功となる条件ブロックB62aの収容領域SEには移動制御ブロックB63が収容されており、それに続く移動制御ブロックB64,B65については収容されていない。これにより、把持成功となった条件分岐とのまとまりは移動制御ブロックB63までとなっている旨が明示される。また、把持失敗となる条件ブロックB62bの収容領域SEには移動制御ブロックB66及びハンド制御ブロックB67が収容されており、それに続く移動制御ブロックB68については収容されていない。これにより、把持失敗となった条件分岐とのまとまりはハンド制御ブロックB67までとなっている旨が明示される。このように、分岐においてどの制御ブロックが当該分岐に直接的に関係しているものかが明確となれば、プログラムの意図の解釈に揺れが生じることを好適に抑制できる。
【0081】
<その他の実施形態>
なお、上述した各実施形態の記載内容に限定されず例えば次のように実施してもよい。ちなみに、以下の各構成を個別に上記各実施形態に対して適用してもよく、一部又は全部を組み合わせて上記各実施形態に対して適用してもよい。また、上記各実施形態に示した各種構成の全て又は一部を任意に組み合わせることも可能である。この場合、組み合わせの対象となる各構成の技術的意義(発揮される効果)が担保されることが好ましい。
【0082】
・上記各実施形態では、枠線FLを用いて収容領域SEを明示する構成としたが、この枠線FLについては表示を省略することも可能である。少なくともユーザが収容領域SEを他の領域と識別可能となるように構成されているのであれば足り、その具体的構成については任意である。例えば、収容領域SEの色を他の領域と異なる色とすることで当該収容領域SEを識別可能としてもよい。なお、枠線FLの形状については矩形に限定されるものでは無く任意である。例えば、円形、楕円形、多角形とすることも可能である。また、内外の境界を明示することができるのあれば足り、枠線FLを環状とする必要は必ずしもない。
【0083】
・上記各実施形態では、動作シーケンス設定用プログラム(設定支援プログラム)がインターネットを通じてユーザに提供される場合について例示したが、これに限定されるものではない。例えば、動作シーケンス設定用プログラムが記憶されたCD-ROMやUSBメモリ等の記憶媒体(メディア)がユーザに提供される仕組みとしてもよい。また、動作シーケンス設定用プログラムをインストール済みの設定装置40がユーザに提供される仕組みとしてもよい。
【0084】
・ロボット用の動作シーケンスを設定する設定装置40の具体的構成については任意である。例えば、タブレットやスマートフォン等の携帯端末(ティーチングペンダントを含む)であってもよい。
【0085】
・上記各実施形態では、グループ表示ブロックの削除操作が行われた場合には、当該グループ表示ブロックを削除する一方で同グループ表示ブロックに収容されている他のブロックはスクリプトエリア65に残る構成としたが、これを以下の構成とすることも可能である。すなわち、グループ表示ブロックの削除操作が行われた場合には、当該グループ表示ブロックに収容されている他のブロックについても削除される構成としてもよい。また、グループ表示ブロックの融解操作(グループ解除操作)が行われた場合には、当該グループ表示ブロックを削除する一方で同グループ表示ブロックに収容されている他のブロックはスクリプトエリア65に残る構成とし、グループ表示ブロックの削除操作が行われた場合には、当該グループ表示ブロックに収容されている他のブロックについても削除される構成とすることも可能である。
【0086】
・制御ブロックについてもグループ表示ブロックと同様にコメント編集を可能としてもよい。
【0087】
・上記第1の実施形態では、スクリプトエリア65に表示されているグループ表示ブロック74に制御ブロックを事後的に追加することで制御ブロックのまとまりが表示される構成としたが、これに代えて又は加えて、スクリプトエリア65に表示されている制御ブロックに対して後からグループ表示ブロックが適用(追加)される構成とすることも可能である。例えば、図14の概略図に示すように、スクリプトエリア65に表示中の複数の制御ブロックB71,B72を選択した後に操作メニューを表示させて、当該操作メニューの中からグループ化の項目を選択することで、それら複数の制御ブロックB71,B72を収容部に収容した状態でグループ表示ブロックB75が表示される構成としてもよい。
【0088】
・上記第1の実施形態に示したグループ表示ブロック74については、グループ名等のコメントを常時表示する構成としたが、ユーザによる所定の表示操作(例えばグループ表示ブロックにカーソルCを合わせる操作)がなされた場合にのみ当該コメントをポップアップ表示させる構成としてもよい。
【0089】
また、グループ表示ブロック74については、ユーザの切替操作に基づいて表示状態(ブロック本体部の有無等)が切り替わる構成とすることも可能である。例えば、図15の概略図に示すように、グループ表示ブロック74の表示状態として、ブロック本体部74a及び収容部74bの両方が表示され且つ収容部74bに収容された各種ブロックが明示される第1表示状態と、ブロック本体部74a及び収容部74bの両方が表示され且つ収容部74bに収容された各種ブロックの表示が簡略化又は省略される第2表示状態と、ブロック本体部74aの表示が省略され且つ収容部74bが表示され当該収容部74bに収容された各種ブロックが明示される第3表示状態とを設け、ユーザの切替操作に基づいて第1表示状態、第2表示状態、第3表示状態に切り替わる構成とするとよい。このような構成とすれば、スクリプトエリア65に表示されるブロックの数に係る制約を緩和できる。これは、上述したコメント機能の活用を促す上で好ましい。
【0090】
特に図15の中央に示すように第2表示状態とする場合には、内部に収容されている制御ブロック等の各種ブロックに関する情報を収容部等に簡易的に表示する構成とするとよい。例えば、収容されているブロックの数を表示したり、収容されているブロック群の概要を簡易なコメントによって表示したりするとよい。これにより、表示を簡略化した状態であってもプログラムの内容が極端にわかりづらくなることを抑制できる。
【0091】
なお、第2表示状態においては、収容部の表示自体を省略する構成とすることも可能である。このような構成とする場合であっても、他の制御ブロックが収容されている状態である場合と収容されていない状態である場合との識別を容易とすることが好ましい。例えば、ブロック本体部の表示色等を収容されているブロックの有無や数によって変化させる構成とするとよい。具体的には、ブロックを収容していない場合には「白色」、ブロックを1~3個収容している場合には「青色」、ブロックを4~10個収容している場合には「黄色」、ブロックを11個以上収容している場合には「赤色」とするとよい。因みに、図15の変形例における第1表示状態/第2表示状態に切替機能を第2及び第3の実施の形態に示した収容部が付属する制御ブロックに適用することも可能である。
【0092】
・上記第1の実施形態に示したグループ表示ブロック74内に他のグループ表示ブロック74を収容可能な構成としてもよい。すなわち、グループの階層表示を行う構成としてもよい。
【0093】
・座標変更ブロック75に他の制御ブロックを収容可能としてもよい。このような構成によれば、変更されたツール座標が適用される範囲(制御ブロック群)を制御ブロックのまとまりによって明示できる。
【0094】
・上記第2の実施形態では、スクリプトエリア65に配置されている制御ブロック(例えば移動制御ブロック)に重なる位置へ他の制御ブロックを移動させることで収容する側の制御ブロック(親制御ブロック)に収容部が自動的に追加される構成としたが、これに限定されるものではない。例えば、収容する側の制御ブロックにカーソルを合わせることで操作メニューが表示され、その操作メニューの中から収容部の追加メニューの項目を選択することで当該制御ブロックに収容部が追加される構成としてもよい。
【0095】
・上記第2の実施形態では、親制御ブロックに収容されている子制御ブロックを当該親制御ブロックから全て取り出した場合には、当該親制御ブロックの収容部が消去される(非表示となる)構成としたが、これに限定されるものではない。親制御ブロックに収容されている子制御ブロックを全て取り出した場合であっても当該親制御ブロックにおける収容部の表示が維持される構成とし、ユーザによる消去操作が行われることで当該収容部が消去される(非表示となる)ように構成してもよい。
【0096】
・上記第2の実施形態では、制御ブロックの下側に制御ブロックを収容する収容部が追加される構成について例示したが、収容部の追加位置については任意に変更してもよい。例えば、制御ブロックよりも上側(プログラム進行における下流側)に収容部が追加される構成とすることも可能である。
【符号の説明】
【0097】
10…ロボットシステム、20…ロボット、21…ベース、22…アーム、23…アーム、30…コントローラ、40…設定装置、41…ディスプレイ、45…CPU、61…ブロックパレット、65…スクリプトエリア、74…グループ表示ブロック、74a…ブロック本体部、74b…収容部、NE…コメント領域、SE…収容領域、FL…枠線。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15