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

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

▶ キヤノン株式会社の特許一覧

特許7414919シミュレータ装置及びシミュレーション方法
<>
  • 特許-シミュレータ装置及びシミュレーション方法 図1
  • 特許-シミュレータ装置及びシミュレーション方法 図2
  • 特許-シミュレータ装置及びシミュレーション方法 図3
  • 特許-シミュレータ装置及びシミュレーション方法 図4
  • 特許-シミュレータ装置及びシミュレーション方法 図5
  • 特許-シミュレータ装置及びシミュレーション方法 図6
  • 特許-シミュレータ装置及びシミュレーション方法 図7
  • 特許-シミュレータ装置及びシミュレーション方法 図8
  • 特許-シミュレータ装置及びシミュレーション方法 図9
  • 特許-シミュレータ装置及びシミュレーション方法 図10
  • 特許-シミュレータ装置及びシミュレーション方法 図11
  • 特許-シミュレータ装置及びシミュレーション方法 図12
  • 特許-シミュレータ装置及びシミュレーション方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-05
(45)【発行日】2024-01-16
(54)【発明の名称】シミュレータ装置及びシミュレーション方法
(51)【国際特許分類】
   B25J 9/22 20060101AFI20240109BHJP
【FI】
B25J9/22 A
【請求項の数】 30
(21)【出願番号】P 2022150364
(22)【出願日】2022-09-21
(62)【分割の表示】P 2018006044の分割
【原出願日】2018-01-18
(65)【公開番号】P2022171939
(43)【公開日】2022-11-11
【審査請求日】2022-10-21
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003133
【氏名又は名称】弁理士法人近島国際特許事務所
(72)【発明者】
【氏名】菅谷 聡
【審査官】國武 史帆
(56)【参考文献】
【文献】特開2019-123052(JP,A)
【文献】特開2004-174662(JP,A)
【文献】特表2010-531743(JP,A)
【文献】特開2016-093869(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
第1関節と第2関節とを有するロボットを動作させるためのプログラムをシミュレーションするシミュレータ装置であって、
前記ロボットの動作パラメータに基づき警告事象を特定し、
示部に
前記動作パラメータに関する情報を時系列で表示する情報表示領域を表示し、
前記情報表示領域において、前記第1関節に対応する第1領域と前記第2関節に対応する第2領域を表示し、前記第1領域に前記第1関節に対応する前記動作パラメータである第1動作パラメータを表示し、前記第2領域に前記第2関節に対応する前記動作パラメータである第2動作パラメータを表示
前記警告事象を、前記第1領域と前記第2領域とに表示する、
ことを特徴とするシミュレータ装置
【請求項2】
請求項1に記載のシミュレータ装置において、
前記第1領域と前記第2領域とは区分けされて前記表示部に表示されている、
ことを特徴とするシミュレータ装置。
【請求項3】
請求項2に記載のシミュレータ装置において、
前記第1領域と前記第2領域とは区分けされた状態で前記表示部の同じウィンドウに表示されている、
ことを特徴とするシミュレータ装置。
【請求項4】
請求項1から3のいずれか1項に記載のシミュレータ装置において、
前記情報表示領域における前記警告事象の表示において、前記警告事象前記第1領域と前記第2領域とに横断して表示する、
ことを特徴とするシミュレータ装置
【請求項5】
請求項1から4のいずれか1項に記載のシミュレータ装置において、
前記警告事象を前記第1動作パラメータおよび前記第2動作パラメータに重畳させて表示する、
ことを特徴とするシミュレータ装置
【請求項6】
請求項に記載のシミュレータ装置において、
前記警告事象を前記第1動作パラメータおよび前記第2動作パラメータが視認できるように前記第1動作パラメータおよび前記第2動作パラメータに重畳させて表示する、
ことを特徴とするシミュレータ装置
【請求項7】
請求項からのいずれか1項に記載のシミュレータ装置において、
前記警告事象の表示において、前記警告事象の段階に応じて異なる表示形式で表示する、
ことを特徴とするシミュレータ装置
【請求項8】
請求項に記載のシミュレータ装置において、
前記警告事象の表示において、前記警告事象の段階に応じて異なる色で表示する、
ことを特徴とするシミュレータ装置
【請求項9】
請求項に記載のシミュレータ装置において、
前記警告事象の表示において、前記警告事象の段階に応じて異なるパターンで表示する、
ことを特徴とするシミュレータ装置
【請求項10】
請求項に記載のシミュレータ装置において、
前記警告事象の表示において、前記警告事象の段階に応じて異なる濃度で表示する、
ことを特徴とするシミュレータ装置
【請求項11】
請求項に記載のシミュレータ装置において、
前記警告事象の表示において、前記警告事象の段階に応じて異なる輝度で表示する、
ことを特徴とするシミュレータ装置
【請求項12】
請求項から11のいずれか1項に記載のシミュレータ装置において、
前記警告事象の特定において、
前記動作パラメータに基づいて、仮想環境における前記ロボットのモデルと、他のモデルと、が接触している状態を第1干渉段階として特定し、
前記動作パラメータに基づいて、前記ロボットのモデルと、前記他のモデルと、が所定量の間隙を有している状態を第2干渉段階として特定し、
前記第1領域および前記第2領域における前記警告事象の表示において、前記第1干渉段階の第1表示形式と、前記第2干渉段階の第2表示形式と、を異ならせる、
ことを特徴とするシミュレータ装置
【請求項13】
請求項から11のいずれか1項に記載のシミュレータ装置において、
前記警告事象の特定において、
前記動作パラメータに基づいて、前記ロボットにおいて特異点が発生している状態を第1特異点段階として特定し、
前記動作パラメータに基づいて、前記ロボットにおいて前記第1特異点から所定の範囲内にある状態を第2特異点段階として特定し、
前記第1域における前記警告事象の表示において、前記第1特異点段階の第1表示形式と、前記第2特異点段階の第2表示形式と、を異ならせる、
ことを特徴とするシミュレータ装置
【請求項14】
請求項から11のいずれか1項に記載のシミュレータ装置において、
前記警告事象の特定において、
前記動作パラメータに基づいて、前記ロボットにおいて所定部位に第1閾値以上の加速度が発生している状態を第1加速度段階として特定し、
前記動作パラメータに基づいて、前記ロボットにおいて前記所定部位に前記第1閾値より小さく第2閾値以上の加速度が発生している状態を第2加速度段階として特定し、
前記第1領域および前記第2領域における前記警告事象の表示において、前記第1加速度段階の第1表示形式と、前記第2加速度段階の第2表示形式と、を異ならせる、
ことを特徴とするシミュレータ装置
【請求項15】
請求項12から14のいずれか1項に記載のシミュレータ装置において、
前記警告事象の表示において、前記第1表示形式を前記第2表示形式で挟んで表示する、
ことを特徴とするシミュレータ装置
【請求項16】
請求項1から1のいずれか1項に記載のシミュレータ装置において、
前記警告事象の表示において、前記第1表示形式と前記第2表示形式とを隣接させて表示する、
ことを特徴とするシミュレータ装置
【請求項17】
請求項から1のいずれか1項に記載のシミュレータ装置において、
ユーザの所定操作に基づき、前記警告事象が、前記情報表示領域に表示されている状態に更新される、
ことを特徴とするシミュレータ装置
【請求項18】
請求項1に記載のシミュレータ装置において、
前記所定操作に基づき、前記時系列上の所定タイミングにおける前記ロボットの状が前記情報表示領域に表示されている状態から、前記時系列上における前記所定タイミングの前または後において一番近いタイミングの前記警告事象が前記情報表示領域に表示されている状態に更新される、
ことを特徴とするシミュレータ装置
【請求項19】
請求項1に記載のシミュレータ装置において、
前記ユーザが、前記所定タイミングにおける前記ロボットの状態が前記情報表示領域に表示されている状態から、前記時系列上で前記所定タイミングの前に存在する前記警告事象を表示させる操作を行った際、前記時系列上における前記所定タイミングの前において一番近いタイミングの前記警告事象が前記情報表示領域に表示されている状態に更新され、
前記ユーザが、前記所定タイミングにおける前記ロボットの状態が前記情報表示領域に表示されている状態から、前記時系列上で前記所定タイミングの後に存在する警告事象を表示させる操作を行った際、前記時系列上における前記所定タイミングの後において一番近いタイミングの警告事象が前記情報表示領域に表示されている状態に更新される、
ことを特徴とするシミュレータ装置
【請求項20】
請求項1または1に記載のシミュレータ装置において、
前記時系列上において前記警告事象を複数特定し、
前記所定操作に基づき、複数の前記警告事象のうち所定の警告事象が前記情報表示領域に表示されている状態から、前記時系列上における当該所定の警告事象の前または後において一番近いタイミングの警告事象が前記情報表示領域に表示されている状態に更新される、
ことを特徴とするシミュレータ装置
【請求項21】
請求項1から20のいずれか1項に記載のシミュレータ装置において、
前記表示部に
仮想環境で模擬的に動作する前記ロボットの動作を表示する動作表示領域を表示し、
前記動作表示領域と前記情報表示領域とは連動して表示される、
ことを特徴とするシミュレータ装置
【請求項22】
請求項21に記載のシミュレータ装置において、
前記ユーザの前記警告事象の検索を指定する操作に基づき、検索された前記警告事象における前記ロボットの状態が前記動作表示領域と前記情報表示領域とに表示されている状態に更新される、
ことを特徴とするシミュレータ装置
【請求項23】
請求項21または2に記載のシミュレータ装置において、
前記動作表示領域において前記ロボットのモデルのアニメーション表示を行い、前記警告事象が発生する描画フレームを検索し、前記警告事象が発生する描画フレームを検出した場合、前記動作表示領域の前記アニメーション表示を検索された描画フレームの状態に更新される、
ことを特徴とするシミュレータ装置
【請求項24】
請求項から2のいずれか1項に記載のシミュレータ装置において、
ユーザによって、特定する前記警告事象の種類と、前記警告事象を特定する閾値と、を設定できる、
ことを特徴とするシミュレータ装置
【請求項25】
請求項1から2のいずれか1項に記載のシミュレータ装置において、
前記第1領域に前記第1関節の可動範囲である第1可動範囲を表示し、前記第2領域に前記第2関節の可動範囲である第2可動範囲を表示する、
ことを特徴とするシミュレータ装置
【請求項26】
請求項1から2のいずれか1項に記載のシミュレータ装置において、
前記情報表示領域に時間軸を表示する、
ことを特徴とするシミュレータ装置
【請求項27】
第1関節と第2関節とを有するロボットを動作させるためのプログラムのシミュレーション方法であって、
前記ロボットの動作パラメータに基づき警告事象を特定し、
表示部に、
前記動作パラメータに関する情報を時系列で表示する情報表示領域を表示し、
前記情報表示領域において、前記第1関節に対応する第1領域と前記第2関節に対応する第2領域を表示し、前記第1領域に前記第1関節に対応する前記動作パラメータである第1動作パラメータを表示し、前記第2領域に前記第2関節に対応する前記動作パラメータである第2動作パラメータを表示
前記警告事象を、前記第1領域と前記第2領域とに表示する、
ことを特徴とするシミュレーション方法。
【請求項28】
請求項1から2のいずれか1項に記載のシミュレータ装置を用いて検証された動作を前記ロボットまたはロボットシステムに実行させて物品を製造する物品の製造方法。
【請求項29】
請求項2に記載のシミュレーション方法をコンピュータにより実行可能なプログラム。
【請求項30】
請求項29に記載のプログラムを格納した、コンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット装置を模擬するモデルを仮想環境で動作させ、前記仮想環境で動作する前記ロボット装置のモデルをモデル表示部に表示するシミュレータ装置、およびその制御方法に関する。
【背景技術】
【0002】
一般に、ロボットを用いて作業を行う装置の場合、ロボットの周辺には冶具や隣接するロボットや壁などの障害物が存在する。そのため、ロボットがこれらの障害物と干渉(衝突、接触)する可能性がある。ロボットが干渉(衝突、接触)を生じずに動作できるかを実機で確認することは容易ではない。そのため、仮想空間でロボットの動作を検証できるシミュレータが用いられることがある。この種のシミュレータでは、実機の構造や寸法に基づき作成された3Dモデルを、実機と同様の教示点データやロボットプログラムを用いて仮想空間中で稼働させる。そしてその様子を、例えばディスプレイ上に3Dアニメーションなどの形態で表示することにより、ワーク搬送や組み立てなどの動作を検証できる。
【0003】
このようなシミュレータを用いることで、干渉(衝突、接触)の有無の確認や、そのような干渉を生じる可能性のある特定のロボット動作の修正を、実機を用いることなく実行できる。干渉(衝突、接触)の検出は、ロボットや障害物の3Dモデルの仮想空間中での位置関係を識別する干渉監視タスクを動かしておき、例えば干渉すべきではない、ロボットと、障害物のモデルがともに同一の空間を占めていないか判定することにより行う。
【0004】
もし、干渉監視タスクが干渉(衝突、接触)を検出した場合には、3Dモデルを表示しているディスプレイに干渉検出状態を表示し、ユーザに通知する。この時の表示の手法として、一般に実施されているのは、仮想空間内で干渉(衝突、接触)を生じている3Dモデルの全体、あるいは当該の部位の表示色を変更するものである(例えば下記の特許文献1)。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2013-136123号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記のように3Dモデルやその当該部位の表示色を干渉発生に応じて変更する従来構成は、静止した状態で干渉が発生していたり、3D仮想表示が静止画となっているような状態では、ユーザが容易にその状態を確認できる。しかし、3Dモデルをアニメーション(動画)表示などにより仮想表示中で連続的に動作させている間の表示では視認が難しい場合があり、干渉が発生しているか否かを直感的に判断するのが難しい場合がある。
【0007】
また、3Dモデルのアニメーション(動画)表示中にユーザが干渉状態を確認し、直ちにアニメーションを停止させる操作を行っても、動画表示は問題のタイミングの表示より先に進んだ位置で停止する場合がある。その場合、表示フレームを過去の方向に駒送りさせるなどの作業を行わなければ干渉発生のタイミングを表示させることができず、また、この種のGUI操作は一般に煩雑である。特に、仮想環境を表示させるのにアニメーション(動画)表示を用いる場合には、さらに、1フレームだけ瞬間的に干渉が起きている場合や、他の3Dモデルの影になっている個所で干渉が起きている場合など、表示画面による状態確認が難しい場合があった。確認漏れを防ぐためには、3Dモデルの動作を1フレームずつ前後に駒送りして確認する手法が考えられるが、検証している動作のタクトが長ければ、確認作業に多大な工数がかかり効率がよくない場合がある。
【0008】
本発明の課題は、以上の問題に鑑み、検証中のロボット装置の動作に係る干渉(衝突)などの警告事象の有無を、容易かつ直感的に判断できるユーザインターフェースを提供することにある。
【課題を解決するための手段】
【0009】
本発明の一態様は、第1関節と第2関節とを有するロボットを動作させるためプログラムをシミュレーションするシミュレータ装置であって、前記ロボットの動作パラメータに基づき警告事象を特定し、表示部に前記動作パラメータに関する情報を時系列で表示する情報表示領域を表示し、前記情報表示領域において、前記第1関節に対応する第1領域と前記第2関節に対応する第2領域を表示し、前記第1領域に前記第1関節に対応する前記動作パラメータである第1動作パラメータを表示し、前記第2領域に前記第2関節に対応する前記動作パラメータである第2動作パラメータを表示し、前記警告事象を、前記第1領域と前記第2領域とに表示する、ことを特徴とするシミュレータ装置である。
本発明の一態様は、第1関節と第2関節とを有するロボットを動作させるためのプログラムのシミュレーション方法であって、前記ロボットの動作パラメータに基づき警告事象を特定し、表示部に、前記動作パラメータに関する情報を時系列で表示する情報表示領域を表示し、前記情報表示領域において、前記第1関節に対応する第1領域と前記第2関節に対応する第2領域を表示し、前記第1領域に前記第1関節に対応する前記動作パラメータである第1動作パラメータを表示し、前記第2領域に前記第2関節に対応する前記動作パラメータである第2動作パラメータを表示し、前記警告事象を、前記第1領域と前記第2領域とに表示する、ことを特徴とするシミュレーション方法である。
【発明の効果】
【0010】
上記構成によれば、モデル表示部の表示と連動して、ロボット装置のモデルの動作に係る事象を、時間軸上に表示する事象表示部を設けることにより、ユーザは、検証中のロボット装置の衝突の有無を、容易かつ直感的に判断することができる。
【図面の簡単な説明】
【0011】
図1】実施形態1に係わるハードウェア構成を示した説明図である。
図2】実施形態1に係わるシミュレータ装置の制御系を示したブロック図である。
図3】実施形態1に係わるシミュレーションソフトウェアおよび表示出力の概要を示した説明図である。
図4】実施形態1に係わるシミュレータ装置の処理手順を示したフローチャート図である。
図5】(a)、(b)は実施形態1に係わる事象表示部の構成例を示した説明図である。
図6】(a)、(b)、(c)および(d)は実施形態2に係わる事象表示部の構成例を示した説明図である。
図7】(a)、(b)および(c)は実施形態3に係わる事象表示部の構成例を示した説明図である。
図8】実施形態4に係わるシミュレータ装置の制御系を示したブロック図である。
図9】(a)、(b)および(c)は実施形態4に係わる特異点表示の構成例を示した説明図である。
図10】(a)および(b)は実施形態4に係わる先端加速度表示の構成例を示した説明図である。
図11】実施形態5に係わる検索制御手順を示したフローチャート図である。
図12】実施形態5に係わるアニメーションの再生制御手順を示したフローチャート図である。
図13】本発明に係わるシミュレータ装置により検証されたロボット制御データにより動作し、物品を製造するロボット装置を示した説明図である。
【発明を実施するための形態】
【0012】
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【0013】
<実施形態1>
以下、図1図5を参照して、本発明の実施形態1に係わるシミュレータ装置およびその制御方法につき説明する。
【0014】
図1に示すように、本実施形態に係わるシミュレータ装置は、コンピュータ本体Aと、コンピュータ本体Aに接続されたディスプレイB、マウスC、キーボードDを備える。
【0015】
コンピュータ本体Aには、シミュレーションソフトウェアEがインストールされており、同ソフトウェアEの後述する処理によって、ディスプレイBに画面表示が行われる。図1では、ディスプレイB上のシミュレーションソフトウェアEの画面表示に相当する部分を示している。
【0016】
図2は、本実施形態のシミュレーションソフトウェアEの実行環境である制御系の構成例を示している。図2の構成は、ハードウェア的には、上記のコンピュータ本体Aの制御回路によって構成されるが、同図は、機能的なブロック構成として図示されており、図中の各機能ブロックは、ハードウェア構成、ソフトウェア構成のいずれと見ても構わない。図2の構成は、制御部101に対して、表示部102、操作部103、入出力部104、記憶部105、および解析部106を接続して成る。
【0017】
表示部102は、例えば図1のディスプレイBに相当し、後述のモデル表示部や事象表示部の表示を行えるものであればその表示方式はどのようなものであっても構わない。また、操作部103は、ユーザインターフェースを構成するもので、例えば、図1のマウスC、およびキーボードDに相当する。操作部103のハードウェアとしては、トラックパッドなど他のポインティングデバイスが含まれていてもよい。また、表示部102と操作部103は、タッチパネルのようなデバイスを用いることによって、一体化されていても構わない。
【0018】
図3に示すように、表示部102は、画面の描画を行い、3Dモデル表示部107(モデル表示部)と、事象表示部108と、解析条件設定部109を表示する。
【0019】
3Dモデル表示部107、事象表示部108、解析条件設定部109の表示は、仮想環境中におけるロボット装置の3Dモデルの動作を介して、また、表示部102と操作部103によるユーザ操作を介して、連動的に制御する。例えば、3Dモデル表示部107で表示中の描画フレームに該当する事象表示部108上の時間軸上の位置には、カーソルや縦棒を表示してこれら2つの表示を関連付ける。また、3Dモデル表示部107でアニメーション(動画)表示を行う場合は、事象表示部108の表示は、3Dモデル表示部107の表示に相当する時間軸上の位置が表示内に収まるよう自動的にスクロールさせる。また、同時に上記のカーソルや縦棒を時間軸上の3Dモデル表示部107の表示に相当する位置を取るよう、自動的に移動させる。
【0020】
また、モデル表示部107に表示されている情報、ないし事象表示部108に表示されている情報、のいずれかを操作部で指定ないし選択すると、他方の表示部に表示されている情報が当該の操作に応じて更新されるよう制御するのが望ましい。
【0021】
また、好ましくは、3Dモデル表示部107、事象表示部108、解析条件設定部109の表示は、表示部102によって、ユーザが関連のある部分を同時に視認できるような態様で表示される。例えば、表示部102が1台のディスプレイBにより構成される場合には、1表示画面中にこれら各表示部(107~109)をマルチウィンドウやタブの形式で表示する。ただし、表示部102を構成するディスプレイBが複数台(いわゆるマルチヘッド構成)存在する場合には、上記の各表示部(107~109)が複数の異なるディスプレイの表示画面にそれぞれ表示されるような構成であってもよい。
【0022】
例えば、3Dモデル表示部107、事象表示部108、解析条件設定部109を表示部102の1表示画面中に同時に表示させる。その場合の各部(107~109)を構成する表示ウィンドウの画面上の分割態様や、オーバーラップ態様などは、多くのオペレーティングシステムにおけるGUIでの操作慣習などに従って変更できるようにしておく。また、ディスプレイBが1台のみではなく、複数台のモニタ装置から構成されているような場合には、3Dモデル表示部107、事象表示部108、解析条件設定部109の任意の部分が別のモニタ装置の表示画面にそれぞれ表示されるような構成であってもよい。
【0023】
3Dモデル表示部107は、装置を再現した3Dモデルを表示する。視点の変更や3Dモデルの配置の変更などを行うことができる。
【0024】
本実施形態の事象表示部108は、解析実行ボタン111とグラフ表示部112を備える。
【0025】
事象表示部108のグラフ表示部112は、時間軸に沿った表示を行うためのもので、例えば、動作の時刻とロボット装置の各軸の指令値との関係を図示のようなグラフ形式で表示する。本実施形態では、画面表示中では、グラフ表示部112の時間軸は、主に図中の左右方向に沿って配置された状態で図示されている。図3のグラフ表示部112では、ロボット装置(の3Dモデル:Robot1)の2つの関節軸(Joint1、2)の関節位置(関節角度)の時間軸に沿った変化をグラフ表示する表示状態にある。
【0026】
グラフ表示部112の時間軸の単位には、基準時刻(例えば、OSのエポック、ロボットプログラムや教示点データなどのロボット制御データにより記述された動作の開始時刻など)からの経過時間(秒、ミリ秒など)を用いればよい。グラフ表示部112の時間軸の単位はGMTやJSTなどの標準時刻を用いるなど、当業者において任意に採用して構わない。なお、表示部112の画面上での時間軸のスケール(縮尺)は、例えば、グラフ表示部112の1画面に対応する時間幅を選択するような適当なユーザインターフェースを介して変更(拡大、縮小)できるようにしておくとよい。
【0027】
グラフ表示部112の表示は、時間軸(例えば左右方向)に沿ってスクロールさせる、また、表示項目が多い場合には、その項目の方向(例えば上下方向)にスクロールできるようしておく。例えば図3のグラフ表示部112では下縁部、右端縁部にいわゆるスクロールバーを設けてあり、このスクロールバーをマウスC(図1)などで操作し、上記のようなスクロールを行わせる。また、上記のようなスクロールは、マウスCに設けられたホイール(不図示)などによって行ってもよい。
【0028】
解析条件設定部109は、後述する解析部106の解析条件の選択を行うためのものである。入出力部104は、シミュレーションに必要なデータの入出力を行う。記憶部105は、入出力部104で入力されたデータと、後述する解析部106の結果を保存する。記憶部105は、ROM、RAM、HDDやSDDなどの外部記憶装置によって構成することができる。その場合、後述のフローチャートなどにより示す制御手順を記述した制御プログラムは記憶部105のROM領域や、HDDやSDDなどの外部記憶装置に格納しておくことができる。これらの本発明に係る制御手順を記述した制御プログラムの格納手段は、本発明のコンピュータ読み取り可能な記録媒体を構成する。また、本発明に係る制御プログラムの格納手段は、ROM領域や、HDDやSDDなどの外部記憶装置などの固定的な記憶ハードウェアのみならず、着脱可能な記憶メディア(各種の磁気ディスクや光ディスク、半導体メモリデバイス)であってもよい。また、本発明に係る制御プログラムは、これらの記憶メディアを介して運搬され、また、これらの記憶メディアからシミュレータ装置にインストールされたり、インストール済みの制御プログラムを更新したりすることができる。あるいは、さらに、シミュレータ装置への本発明に係る制御プログラムのインストールや更新(アップデート)は、コンピュータ読み取り可能な記録媒体による他、ネットワークなどを介して行われるものであってよい。
【0029】
また、記憶部105のRAM領域は、制御部101や解析部106を実現するCPUのための主記憶領域(ないしワークエリア)として用いられる。この主記憶領域は、RAM領域だけではなく、RAM領域およびHDDやSDDなどの外部記憶装置に配置されたスワップ領域から成る、いわゆる仮想記憶(領域)として構成されていてもよい。
【0030】
本実施形態の解析部106は、本シミュレータ装置で検証するロボット装置の3Dモデルの動作に関する事象を解析する。解析部106は、ロボット装置の3Dモデルの動作に関する警告事象を特定する。本実施形態の解析部106は、特に干渉判定、即ち、仮想環境中で動作するロボット装置のモデルと、他の障害物モデルと、の干渉が生じたか否かの判定を行い、干渉(衝突あるいは接触)が生じた場合に、その事象を警告事象として特定する。即ち、本実施形態の解析部106は、干渉判定110の機能を備える。
【0031】
解析条件設定部109で、マウスC、キーボードDなどを用いて解析実行ボタン111を操作すると、解析部106は、干渉判定110の処理を行う。ここでは、仮想環境中で動作しているロボット装置や他の物体のモデルの状態に関するシミュレーションデータを解析し、ロボット装置と他の物体のモデルとの干渉を警告事象として検出する。
【0032】
なお、解析条件設定部109、事象表示部108は、図3では別の表示ウィンドウ(あるいはペイン)として図示してあるが、解析条件設定部109は事象表示部108の一部を構成する、と考えてよい。また、解析条件設定部109の表示部位は、事象表示部108の表示ウィンドウ(あるいはペイン)の内側に表示される構成であってもよい。
【0033】
本実施形態では、3Dモデル表示部107、事象表示部108、解析条件設定部109の表示の連動的な制御に関しては、上記のような解析条件の設定操作や、解析実行ボタン111の操作によるものがある。また、本実施形態では、例えば解析条件設定部109、解析実行ボタン111の操作により、干渉(衝突、接触)などの検索(解析)条件を満たすイベント(事象)が検索されると、これに応じて、事象表示部108のグラフ表示部112の表示を更新する。例えば、検索されたイベント(事象)に該当する時間軸上の位置がグラフ表示部112に現れるよう、グラフ表示部112の表示を更新する。また、当該のイベント(事象)は、後述のように表示色変更などの表示態様の制御を伴って、グラフ表示部112に表示させる。
【0034】
上記のように、事象表示部108のグラフ表示部112の表示は、ユーザが注目する事象がその表示内に表われるように、時間軸に沿って(あるいは項目の配列方向に)スクロールできる。そして、このようなスクロール操作、グラフ表示部112に表示中の注目事象に対するマウスCのクリックなどに連動して、3Dモデル表示部107で表示されるロボット装置(の3Dモデル)の動作状態を、その注目事象に相当する状態に更新する。
【0035】
解析条件設定部109による解析条件の設定操作や、解析実行ボタン111の操作を用いたシミュレーション解析は、例えば図4に示すような制御手順によって行う。
【0036】
まず、図4のステップS1では、シミュレーション対象のデータを入力する。このシミュレーション対象のデータは、検証したいロボット装置の3Dモデル、3Dモデルの配置情報、装置の可動軸の指令値などを含む。このシミュレーション対象のデータは、例えば、ロボットプログラム、教示点データの形式、あるいはその他の特定の記述形式により設定ファイルなどに記述される。ユーザは、シミュレーション対象のデータに該当するファイル名などを表示部102と操作部103のユーザインターフェースを介して指定する。
【0037】
ステップS1で、指定されたシミュレーション対象のデータが読み込まれると、図3のように、3Dモデル表示部107に当該のロボット装置の3Dモデルを(例えば所定の初期状態で)表示する。その際、事象表示部108のグラフ表示部112には、3Dモデル表示部107に表示されているモデルの状態が含まれるその前後の時間軸に相当する、当該の3Dモデルに関する事象を表示する。図3のグラフ表示部112の表示形式では、ロボット装置の3Dモデルの動作の時間(時刻)に沿って、その関節軸の位置(角度)の値、例えば指令値がグラフ形式で表示される。
【0038】
ステップS2では、解析の条件の設定を行う。本実施形態では、ここでは、解析条件設定部109で解析(検索)すべき警告事象として、干渉(衝突)または閾値付き干渉(衝突)のどちらかを選択する。本実施形態では、干渉(衝突)とは、3Dモデル同士が物理的に接触している状態に相当する。また、閾値付き干渉(衝突)とは、加工精度や実機ロボットの機械的誤差などによるシミュレーション誤差に起因して実機で生じうる干渉(衝突)を未然に防ぐためのものである。例えば、閾値付き干渉(衝突)では、3Dモデル同士が接触している状態の前後に動作の確実性が確保可能な数値範囲を指定し、その範囲に入っていないことを確認する。解析条件設定部109で解析(検索)すべき警告事象として、閾値付き衝突を選択した場合は、この動作の確実性が確保できる範囲を閾値として設定する。この閾値としては、ユーザが3Dモデル同士が接触している状態に対するクリアランス(間隙距離)の値(mm単位など)などの形式で解析条件設定部109により指定する。
【0039】
ステップS3では、解析部106が、ロボット制御データ(ロボットプログラムや教示点データ)によって記述されたロボット動作に対する解析処理を実行する。この解析は、例えば、解析実行ボタン111(図3)により開始させる。ここでは、ロボット装置の3Dモデルを仮想環境中で動作させ、適当な単位、例えば、3Dモデル表示部107で行う動画表示のフレームなどを単位として、干渉判定(110)を行う。例えば、ロボット装置の3Dモデルを動作を1フレームずつ、検査し、すべてのフレームに対して干渉判定(110)を行う。このとき、干渉判定(110)は、ステップS2で設定した条件で行う。
【0040】
解析部106の干渉判定(110)は、例えば干渉(衝突)、閾値付き干渉(衝突)、干渉(衝突)なし、のような3種類の事象を識別するデータを判定(解析)結果として出力する。この干渉判定(110)の判定(解析)結果は、リザルトコードなど、予め決められた(エラー)コード(数値)などによって表現される。この解析部106の干渉判定(110)の解析結果は、動作のフレームと合わせて記憶部105に保存する。
【0041】
ステップS4では、ステップS3の解析結果によって、ロボット装置の3Dモデルの動作に係る事象を分類してその状態(内容)ごとに別に異なる表示パターン(表示態様)で3Dモデル表示部107(ディスプレイB)に表示する。本実施形態では、この解析結果は、事象表示部108のグラフ表示部112で表示する。
【0042】
ここで、事象の分類は、解析部106が、上記の干渉(衝突)、閾値付き干渉(衝突)、干渉(衝突)なし、のような3種類の事象を特定する解析を行う場合、この3つの事象にロボット装置の3Dモデルの動作に係る事象を分類する。なお、特定の(例えば1フレーム)の解析結果に干渉(衝突)と、閾値付き干渉(衝突)とが両方ある場合は、より問題性が高い干渉(衝突)の表示を優先して、干渉(衝突)事象と分類する。
【0043】
分類された事象のうち、解析条件設定部109で解析(検索)すべき警告事象として指定された事象の表示に関しては、他の事象、例えば干渉(衝突)なしの事象の表示よりも強調し、際立たたせるため、異なる表示パターン(表示態様)によって実施する。例えば、干渉(衝突)または(および)閾値付き干渉(衝突)の事象が特定(検索)すべき警告事象として指定されている場合には、グラフ表示部112において、図5(a)、(b)に示すような表示態様の制御を行う。
【0044】
例えば干渉(衝突)として特定された警告事象の場合は、図5(a)に示すように、グラフ表示部112の該当するフレームを他の部分と異なる色、例えば赤色の帯(113)を重ねて表示する。また、閾値付き干渉(衝突)と特定された警告事象に該当するフレームは、図5(b)に示すように、他の部分と異なる色、例えば黄色の帯(114)を重ねて表示する。なお、「干渉(衝突)」の警告事象の場合、一般に、ロボット装置はある軌道に沿って動作するため、その前後に「閾値付き干渉(衝突)」に相当する警告事象が現れる。このため、図5(b)では、赤色の帯(113)の前後両側に、黄色の帯(113a、113a)が表示されている。他の、干渉(衝突)なしの事象(イベント)については、グラフ表示部112のデフォルトの表示色(ないし表示輝度や濃度)を採用して行う。なお、ここではグラフ表示部112の表示色を変更する表示態様の変更制御を例示しているが、例えば表示輝度や濃度の変更によって表示態様の変更を行ってもよい。
【0045】
以上のように、本実施形態では、事象表示部108のグラフ表示部112で、解析部106の解析(検索)結果に応じて警告事象に相当するイベント表示で、他の事象のイベント表示とは異なる表示態様を採用する。これにより、ユーザは、事象表示部108のグラフ表示部112の1つの画面でロボット装置(の3Dモデル)の干渉(衝突)などに係る警告事象の有無を容易に認識できるようになる。即ち、ユーザは、干渉(衝突)などに係る警告事象の有無を直感的に判断でき、本シミュレータ装置を用いた確認作業に必要な工数を大きく削減することができる。
【0046】
上記の事象表示部108のグラフ表示部112で、警告事象を視認したユーザは、その警告事象が消勢するよう、ロボット装置(の3Dモデル)のためのロボット制御データ(教示点データやロボットプログラム)を変更する。
【0047】
干渉(衝突)状態、または閾値付き干渉(衝突)状態がある場合は、ユーザは、例えば干渉(衝突)が生じた事象のフレーム(を表示している色の帯)をマウスCで選択する操作を行う。この操作に応じて、シミュレーションソフトウェアEは、その事象の時点におけるロボット装置の3Dモデルの仮想環境における位置姿勢を計算し、3Dモデル表示部107に表示する。これによりユーザは、当該の干渉(衝突)、または閾値付き干渉(衝突)の事象の生じた時点におけるロボット装置の3Dモデルの仮想環境を3Dモデル表示部107の3D表示によって容易に確認できる。この時の3Dモデル表示部107の3D表示は、問題の事象のタイミングにおける静止画表示であってもよいし、その前後の適当な時間幅に相当する動画表示などであってもよい。
【0048】
また、警告事象に係る3Dモデル表示部107の3Dモデルの表示では、干渉(衝突)を生じた部位、あるいは干渉(衝突)を生じた特定のロボット装置の3Dモデル(全体)の表示態様を他のモデルとは異なるものに変更する。例えば、この表示態様の変更として表示色の変更を行う場合は、事象表示部108で当該の警告事象を(強調)表示している帯の表示色と同じ表示色を用いる。警告事象に係る3Dモデル表示部107の3Dモデルの表示でこのような表示態様の変更を行うことにより、当該の警告事象に関する、特定の3Dモデル、あるいは当該の警告事象に関する、特定の部位をユーザは極めて容易に視認することができる。
【0049】
なお、グラフ表示部112の時間軸の表示スケールによっては、当該の警告事象を表示している帯(113、114など)が細く選択できない場合が考えられる。その場合には、グラフ表示部112の時間の表示スケールを変更すれば、当該の警告事象を表示している帯(113、114など)の幅を拡大できるため、グラフ表示部112の1フレーム当たりの表示面積が増え、選択操作がしやすくなる。
【0050】
警告事象を解消するためのロボット制御データの修正箇所は、3Dモデル表示部107の3Dモデルの状態から確認することができる。例えば、警告事象として特定されたロボットの干渉(衝突)状態をロボットの衝突状態を回避するためには、回避点となる教示点を作成し、その教示点を経由するプログラムを作成する。
【0051】
その場合、3Dモデル表示部107を用いてロボット装置(の3Dモデル)の位置姿勢を操作して、回避点となる教示点を作成する。マウスCなどのポインティングデバイスと3Dモデル表示部107を用いて3Dモデルの位置姿勢を操作するユーザインターフェースは公知であり、この回避点となる教示点の作成にはそのような公知のユーザインターフェースを用いることができる。なお、この3Dモデル表示部107でのロボット装置(の3Dモデル)の操作中、干渉判定110の処理を行い、干渉(衝突)が生じた場合には、上記と同様の表示態様の変更を行って、その警告事象をユーザに警告することができる。
【0052】
回避点としての教示点がユーザにより指定されると、その教示点へ移動する命令を、ロボット制御データ、例えばロボットプログラムや教示点データに追記する。このような追記を行うユーザインターフェースも、シミュレータ装置においては公知であり、この教示点のロボットプログラムや教示点データへの追記に利用できる。追記したプログラムや教示点データは、本シミュレータ装置が内蔵する、あるいは外部のロボットのコントローラの逆運動学的な演算によって、ロボット装置の関節などを個々に動作させるための指令値のデータに変換することができる。その後、変更(追記)後のロボットプログラムや教示点データをシミュレーションソフトウェアEに入力し、上記のステップS1~S4の処理を再度、行うことにより、干渉(衝突)などの警告事象の有無を確認することができる。ユーザが以上のような修正操作を繰り返すことによって、ロボット制御データを検証でき、干渉(衝突)などの警告事象を生じることがない状態に編集することができる。
【0053】
以上のように、本実施形態によれば、仮想環境で動作する前記ロボット装置のモデルを表示するモデル表示部107の表示と連動して、仮想環境におけるロボット装置のモデルの動作に係る事象を時間軸上に表示する事象表示部108を設けている。従って、本実施形態によれば、検証中のロボット装置の動作に係る干渉(衝突)などの警告事象の有無を、容易かつ直感的に判断できるユーザインターフェースを提供することができる。本実施形態のユーザインターフェースによれば、ユーザは検証中のロボット装置の動作に係る警告事象の有無を直感的に判断でき、検証作業、あるいはロボット制御データの編集作業を確認漏れなどなく確実に、極めて効率よく行える。
【0054】
<実施形態2>
実施形態1では、事象表示部108に時間軸を伴なう表示部としてグラフ表示部112を設ける構成を示した。しかしながら、時間軸上に事象を表示する事象表示部108の表示フォーマットは、実施形態1のような時間軸上に線ないし波形の表現の線を表示する、いわゆる「線図」の様式を有するグラフ表示部112に限定されるものではない。事象表示部としては、時間軸を有し、ある時間長を有する一連のロボット動作を経時的に事象を表示できるものであればどのような表示でもよく、例えば、以下に示すような種々の構成が考えられる。
【0055】
図6(a)~(d)に、本実施形態2における事象表示部(201、202、203…)の種々の表示形態の例を示している。なお、以下では、事象表示部(201、202、203…)の表示形態のみを示し、それ以外のハードウェア/ソフトウェア的な構成については、実施形態1と同等の構成が設けられているものとする。また、実施形態1の部材と同一ないし同等の機能を有する部材については、前述と同じ参照符号を用い、その詳細な説明は省略する場合がある。
【0056】
図6(a)、および図6(b)は、それぞれ直線、および、円形(環状)の、いわゆるスライダ表示による事象表示部201、201の構成を示している。図6(a)、(b)において、事象表示部201、201は、直線状、または円環状のスライダバー上の干渉、および閾値付き干渉(衝突)の各警告事象の位置をそれぞれ示す赤色の帯(113)、黄色の帯(113a、114)を表示している。スライダバーの両端には時間軸の始点および終点の時刻の数値表示(0~xxxx)を行っている。また、図6(a)、(b)において、事象表示部201、201には、スライダバー上の特定時刻あるいはその時刻の事象を選択するためのスライダハンドル201aが設けられている。
【0057】
スライダハンドル201aによって、スライダバー上の特定時刻の事象を選択した場合、その事象に関する情報を表示する詳細表示部のウィンドウやタブを別途ポップアップさせて表示する。これにより、ユーザは、指定された事象の詳細情報、例えば各関節の関節位置(角度)などの詳細情報を読み取ることができる。この時、ポップアップさせる表示ウィンドウやタブの表示内容としては、下記の図6(c)、(d)の事象表示部202、203の1行のように、各関節の関節位置(角度)の数値情報や、ロボットプログラムの命令文、などが考えられる。
【0058】
図6(a)、(b)のような事象表示部201、201は、実施形態1のグラフ表示部112よりもコンパクトであり、限られたスペースに表示する場合に適している。例えば、図6(a)、(b)の表示形態は、グラフ表示部112(ディスプレイB)が、例えば、モバイル端末やティーチングペンダントなどの、表示面積が限定され、縦横の画素数も多く取れないような表示画面で構成される場合に適している。
【0059】
また、図6(c)は、表(テーブル)形式の表示態様を有する事象表示部202の例を示している。図6(c)の事象表示部202では、時間軸は、表の縦方向(行の配列方向)取られ、各コラムを用いてあるロボット装置(Robot1)の6つの関節位置(角度)を表示している。この表形式の事象表示部202でも、干渉、および閾値付き干渉(衝突)の各警告事象の位置をそれぞれ示す赤色の帯(113)、黄色の帯(113a、114)を表示することができる。このような表形式の、比較的詳細な事象表示部202は、動作の指令値と解析結果の関連性などを検証する場合に適している。例えば、ロボットの干渉(衝突)状態を回避する教示点を作成する場合である。テーブル形式の事象表示部202に表示した干渉(衝突)状態のフレームの各軸の指令値の数値と各軸のリミットより、あとどれくらい移動できるかを確認でき、教示点の作成の目安として役立つ。
【0060】
事象表示部の時間軸を持つ表示としては、経時的な順序で、例えばロボット動作の記述を配列したリスト表示のような表示態様も考えられる。このようなリスト表示には、例えばロボットプログラムを記述したソースコードのリスト表示が考えられる。例えば、図6(d)の事象表示部203は、ロボットプログラムのソースコードのリスト表示、例えばプログラムエディタの表示として構成されている。図6(d)の事象表示部203では、実行させるロボット動作を記述した命令を経時的な順序で配列した10行のロボットプログラムが表示されている。
【0061】
図6(d)の事象表示部203でも、干渉、および閾値付き干渉(衝突)の各警告事象の位置をそれぞれ示す赤色の帯(113)、黄色の帯(113a、114)を表示することができる。この例では、干渉、および閾値付き干渉(衝突)の各警告事象が生起した当該の命令文に警告事象を強調するよう、表示色の変更により表示態様の制御を行っている。なお、図6(a)~(d)の各例では、干渉、および閾値付き干渉(衝突)の各警告事象を表示色を変更する表示態様の制御によって表示するようにしているが、輝度や濃度など他の表示態様の制御を行っても構わない。
【0062】
図6(d)に示すようなロボットのプログラムエディタ形式の事象表示部203は、干渉や、閾値付き干渉(衝突)の警告事象がロボットプログラム上のどの命令で発生しているかを判断したい場合に適している。なお、一般にロボットプログラムでは、TCPをある位置まで移動(Move)させるような形式の命令文が用いられる。そのため、1つの命令文の中には複数のロボット動作のフレームが含まれ、その1つの命令文干渉(衝突)と、閾値付き干渉(衝突)と、の両方の警告事象に該当する場合が考えられる。その場合、表示態様の変更は、より問題性が高い警告である干渉(衝突)の方の表示態様を採用することにより行う。
【0063】
事象表示部として、これまでに示した、実施形態1のグラフ表示部112を用いた構成や、図6(a)~(d)の事象表示部201~203は、単独の画面でも特有の効果あるが、複数の画面を組み合わせて利用することによる効果もある。上記のように、図6(a)、(b)のスライダ表示による事象表示部201、201のインターフェースから、図6(c)、(d)のような、詳細表示に係る事象表示部202や203をポップアップさせてもよい。また、ディスプレイBの表示画面に余裕があれば、ユーザがこれらを同時に視認できるよう、表示させてもよい。
【0064】
また、実施形態1のグラフ表示部112と、図6(d)のプログラムエディタ形式の事象表示部203を組合せて用いるには、例えば、以下のような表示制御を行うことができる。この場合、図6(d)のプログラムエディタ形式の事象表示部203は、表示部102と操作部103のユーザインターフェースを介して行われるユーザの編集操作によって、表示されているプログラムのコードを編集(変更)できるものとする。また、編集結果のソースコードのファイルは、必要に応じて、外部記憶装置などの記憶メディア(HDDやSDDなど)に記憶できるものとする。
【0065】
例えばシミュレーションの過程で、ロボット装置の3Dモデルが2点の教示点の間を移動している途中で干渉(衝突)ないし閾値付き干渉(衝突)のような警告事象を生じることがある。その場合、ユーザは、この干渉(衝突)状態を回避できるよう、例えば教示点を追加してプログラムを修正する作業を行う。このようなケースでは、実施形態1の3Dモデル表示部107、さらに事象表示部として、実施形態1のグラフ表示部112と、図6(d)のプログラムエディタ形式の事象表示部203をユーザが両方とも利用できるよう表示する構成が役立つ。
【0066】
その場合、まず、ユーザはグラフ表示部112を確認し、マウスCなどを用いて、干渉(衝突)ないし閾値付き干渉(衝突)のような警告事象に該当するフレームの色の帯(113、113a、114)を指定し、そのフレームに移動する。この警告事象に該当するフレームへの移動操作を行うと、同時に視認できるよう表示している3Dモデル表示部107の表示をそのフレームに更新させ、当該の警告事象の状態における位置、姿勢でロボット装置を表示させる。
【0067】
この時、3Dモデル表示部107の視点移動や、3Dモデルの回転などを行うGUIによって、警告事象を視認しやすいように3Dモデル表示部107の表示を変更できるようにしておくとよい。また、3Dモデル表示部107を用いる場合、マウスCなどを用いて、表示中の3Dモデルを操作する直接教示操作を行う構成が知られている。このような直接教示操作は、上記のような警告事象の回避ための教示点追加操作に用いることができる。
【0068】
例えば、3Dモデル表示部107に表示中の干渉(衝突)ないし閾値付き干渉のような警告事象の状態から、ユーザにマウスCなどを用いた直接教示操作を行い、ロボット装置の3Dモデルの位置姿勢を変更し、当該の警告事象を回避できる教示点を指定する。回避教示点を作成した後、グラフ表示部112で、当該の干渉(衝突)ないし閾値付き干渉の警告事象のフレームを再度、選択する。なお、この時、プログラムエディタ形式の事象表示部203がまだ表示であればこの選択操作に応じて、プログラムエディタ形式の事象表示部203で該当箇所のコードを表示する。
【0069】
プログラムエディタ形式の事象表示部203の表示は、3Dモデル表示部107の表示の状態、あるいは、グラフ表示部112の時間軸上の事象選択に連動するように更新させる。例えば、グラフ表示部112で、当該の干渉(衝突)ないし閾値付き干渉の警告事象のフレームを再度、選択すると、当該のフレームの命令コードをハイライト表示によって強調表示する。警告事象のフレームに該当する命令コードの、例えば直前には、3Dモデル表示部107を用いて追加、作成した回避教示点へ移動する命令コードを自動的に追記する。あるいは、この教示点への移動を指定する命令コードは、挿入位置のみ自動的に生成し、ユーザが手動操作によって入力してもよい。あるいは、回避教示点へ移動する命令コードを自動的に生成して該当位置に自動的に挿入するが、その挿入を許可するユーザ操作を待って命令コード追記を確定するような制御を行ってもよい。
【0070】
回避教示点への移動命令を追加した後、修正したロボットプログラムを実行すると、ロボット装置の指令値データが作成される。この作成された指令値データを、再度、シミュレーションソフトウェアEに入力して実施例1のS1~S4の処理を行うことにより、修正後の動作を確認することができる。
【0071】
以上のように、3Dモデル表示部107の表示、さらに1つあるいは事象表示部203の表示を連動させ、ユーザの事象選択や編集の操作に応じてそれらの表示を更新することができる。これにより、ロボット制御データ(教示点やロボットプログラム)の修正を容易に行え、ロボット装置のシミュレーションに必要な工数を削減し、効率よくシミュレーション作業を行うことができる。なお、本シミュレータ装置で検証するロボット制御データ(教示点やロボットプログラム)の作成はシミュレータ内の仮想コントローラで行う、例えば3Dモデル表示部107を用いた直接教示などによって行う構成が考えられる。また、これに限らず、本シミュレータ装置で検証するロボット制御データ(教示点やロボットプログラム)としては、外部の他の装置、ティーチングペンダントなどの制御端末などにより作成したものを用いてもよい。
【0072】
<実施形態3>
以下、図7(a)~(c)を参照して、本発明の実施形態3に係わるシミュレータ装置の表示制御につき説明する。
【0073】
実施形態1の事象表示部108のグラフ表示部112では、干渉、および閾値付き干渉(衝突)の各警告事象の位置をそれぞれ示す赤色の帯(113)、黄色の帯(113a、114)を表示する表示態様の制御例を示した。
【0074】
時間軸を有する事象表示部108で干渉、閾値付き干渉(衝突)の各警告事象を強調するための表示態様の変更制御としては、上記のような表示色の変更以外の手法を用いてもよい。
【0075】
例えば、図7(a)の事象表示部201に示すように、干渉、閾値付き干渉(衝突)の各警告事象を強調表示するために、それぞれストライプの帯(301)やメッシュの帯(302)などの表示パターンを用いてもよい。このようなハッチング的な表示態様は、ディスプレイBがカラー表示機能のない白黒ディスプレイなどである場合に適している。
【0076】
なお、図7(a)、および下記の図7(b)の表示形式は図6(a)に示したスライダバーによる事象表示部201の例を示しているが、図5の同様の表示態様は事象表示部108に時間軸を伴なう表示部としてグラフ表示部112を設けた構成でも用いてよい。
【0077】
図7(b)の事象表示部201では、干渉、閾値付き干渉(衝突)の各警告事象を強調表示するために、それぞれ矢印(303)や三角(304)などのマークをスライダバー上の当該事象の位置に表示している。このようなマークによる強調表示は、スライダバーによる事象表示部201や、グラフ表示部112のロボット動作の1フレーム当たりの表示面積が小さい場合などに適している。また、解析結果の状態が変化したフレームにのみマークを表示すれば、マークが重なり合う可能性が低くなり、表示視認の容易性が向上する。
【0078】
また、図7(c)の事象表示部202は、図6(b)と同等のテーブル(表)形の表示フォーマットである。図7(c)の事象表示部202では、例えば、干渉、閾値付き干渉(衝突)の各警告事象を強調表示するために、それぞれ文字の大きさ(305)や文字の太さ(306:ボールドフェイス)の変更を行っている。その他に採用可能な文字の表示態様の変更としては、例えば文字の色、フォント(字体)などの変更が考えられる。ディスプレイBによっては、ハッチング的な表示パターンと文字の重畳表示では、文字の可読性が低下する特性を有するものがある。そのようなディスプレイでは、図7(c)のように文字それ自体の表示態様の変更により干渉、閾値付き干渉(衝突)の各警告事象を強調表示する構成が有用である場合がある。
【0079】
図7(a)~(c)に示した表示態様によっても、干渉、閾値付き干渉(衝突)などの警告事象を強調表示することによりユーザは警告事象を直感的に認識することができ、効率よくシミュレーション作業を行うことができる。即ち、本実施形態のユーザインターフェースによれば、ユーザは検証中のロボット装置の動作に係る警告事象の有無を直感的に判断でき、検証作業、あるいはロボット制御データの編集作業を確認漏れなどなく確実に、極めて効率よく行える。
【0080】
なお、図7(a)~(c)に示したような、ハッチング的な表示パターン、マークの表示、文字の表示態様の変更などを行う場合、同時に実施形態1、2で例示した表示色(あるいは輝度、濃度など)の変更を同時に行ってもよい。例えば、赤色のストライプの帯(301)や黄色の三角(304)などのように、色(輝度、濃度)と、色以外の表示態様の変更を同時に行うことで、警告事象をより判り易く表示することができる。
【0081】
<実施形態4>
以下、図8図10を参照して、本発明の実施形態4に係わるシミュレータ装置の制御系の構成、およびその表示制御につき説明する。
【0082】
上述の実施形態1~3では、主に干渉(衝突)を警告事象として例示して、制御系の構成、およびその表示制御につき説明した。しかしながら、警告事象として事象表示部によって表示すべき事象は、他の解析結果に係るものであってもよい。本実施形態4では、解析部106が干渉判定(110)に加え、特異点判定(401)、および先端加速度判定(402)の解析機能を有する構成を例示する。以下では、ハードウェアおよびソフトウェア的な構成として、実施形態1~3で説明に用いた構成を基本構成とし、それとは異なる部分につき説明する。以下では、既に説明した部材と同一ないし同等の部材には同一の参照符号を用い、その詳細な説明は省略するものとする。
【0083】
図8は、実施形態1の図2と同等の形式で本実施形態の制御系のハードウェアないしソフトウェア的な機能ブロック構成を示している。図8において、図2との相違は、解析部106が干渉判定110に加えて、特異点判定401、および先端加速度判定402の機能を有している点にある。干渉判定110の機能は、上述の各実施形態と同様に干渉、および閾値付き干渉(衝突)の各警告事象を特定する機能である。
【0084】
また、特異点判定401は、ロボット装置の位置、姿勢の解が定まらない領域を計算し判定する処理である。例えば、ロボット制御データとして、例えばTCPの位置を指定する教示点が与えられた場合、逆運動学的な計算を行っても、ロボット装置の位置、姿勢の解を得られない教示点の位置がロボット装置の動作空間に存在する。実際のロボット装置、ないしそれを模擬する3Dモデルでは関節の可動角度範囲や、リンク長などハードウェア条件により特異点となる領域が異なり、これを制限するためである。この特異点判定401は、ロボットの位置の補正などに起因して、ロボット装置の位置、姿勢の解を得られない特異点に移動してしまい、異常停止する可能性を防ぐために利用する。
【0085】
また、先端加速度判定402は、ロボット装置の先端(例えばTCP)の加速度を計算し、閾値以上の加速度になっていないかを判定する処理である。ロボット装置の先端(例えばTCP)を過大な加速度で動作させると、ロボット装置は把持中のワークを落下させる、あるいはその関節機構に過負荷がかかって故障を生じる可能性がある。この先端加速度判定402は、そのような過大な加速度でロボット装置が動作しないよう制御するために利用する。
【0086】
以下では、解析部106が、干渉判定110に加え、特異点判定401、先端加速度判定402の機能を有しており、これらの判定手段が特定した警告事象を事象表示部により表示する場合の表示態様につき例示する。なお、本実施形態では、シミュレーション対象のロボット装置(ないしその3Dモデル)に6軸多関節ロボットを用いるものとする。
【0087】
実施形態1において、干渉判定110による解析と、特定された警告事象の表示態様の変更を伴う制御の手順を図4に示した。この図4の制御手順は、特異点判定401、および先端加速度判定402による解析、およびこれらにより特定された警告事象の表示態様の変更を伴う制御に用いることができる。
【0088】
ただし、図4のステップS4では、特異点判定401、および先端加速度判定402により特定された警告事象の表示態様の変更を伴う表示制御では、例えば干渉判定110により特定された警告事象の場合と同様に、他の事象と区別可能な表示態様を用いる。
【0089】
例えば、特異点判定401が解析し、特定すべきロボット装置(の3Dモデル)の特異点には、特定の関節の2軸が一直線上に位置する状態がある。また、6軸多関節ロボットなどの場合、その関節には、Wrist、Elbow、Sholderの3種類が存在し、これらの3種について生じる特異点の状態には、次の特異点Wrist、特異点Elbow、特異点Sholderがある。
【0090】
ここで、特異点Wristとは、4軸と6軸が一直線上になり、位置姿勢の解が定まらなくなる状態である。特異点Elbowとは、2軸と3軸と5軸が一直線上になり、位置姿勢の解が定まらなくなる状態である。特異点Sholderとは、1軸と6軸が一直線上になり、位置姿勢の解が定まらなくなる状態である。
【0091】
本実施形態では、図9(a)に示すように、解析条件設定部109を、解析すべき3種類の特異点Wrist、特異点Elbow、特異点Sholderの閾値をユーザが設定できるよう構成する。特異点Wristは角度(deg単位など)で設定する。特異点Elbow、特異点Sholderは特異点からの距離(mm単位など)で設定する。
【0092】
特異点判定401の解析結果の表示は、ロボットの1台ずつについて行う。2台以上のロボットがあり、すべてのロボットの特異点の解析結果を重ねて表示してしまうと、どのロボットで特異点が発生したのか判別が難しくなるためである。
【0093】
例えば、図9(b)は、本実施形態において、事象表示部108のグラフ表示部112で特異点判定401の解析結果を表示する例を示している。ここで、特異点判定401の解析結果は、上述の干渉に関する警告事象の表示態様の場合と同様に、特異点事象と、(解析条件設定部109で指定した)閾値付き特異点事象とでは、異なる色の帯(113、113a、114)によって表示している。
【0094】
図9(b)の表示態様では、Robot1、Robot2の2台のロボット装置につき、その1番の関節(Joint1)の角度を上下2段のグラフ表示に分離して表示している。このように、グラフ表示部112の表示をRobot1、Robot2の2台のロボット装置ごとに分離し、関節角度(の指令値)をグラフ表示することにより、直感的にどのロボットで特異点が発生したのかを判断できるようになる。
【0095】
また、図9(c)は、図6(a)と同様の事象表示部201によって、特異点事象と、解析条件設定部109で指定した閾値付き特異点事象と、他の事象と区別できるよう表示態様を変更する例である。図9(c)のようなスライダバー形式の事象表示部201では、1台のロボット分しか表示することができない。その場合には、プルダウンメニューなどから成る表示選択(403)手段を事象表示部201に設けておき、表示すべきロボットの解析結果を選択できるようにしておくと良い。図9(c)の例でも、警告事象として特定された特異点事象と、(解析条件設定部109で指定した)閾値付き特異点事象は、異なる色の帯(113、113a、114)によって表示している。
【0096】
図10(a)、(b)により、先端加速度判定402により特定(解析)された警告事象の表示態様の変更制御につき説明する。先端加速度判定402によって、先端加速度は、特定の基準部位(TCPなど)の加速度が、一定の閾値以上になった場合、警告事象として特定する。この場合、例えば、図10(a)に示すように、解析条件設定部109は、検証したい条件などに応じてユーザが複数の閾値(1および2)を設定できるよう構成しておくとよい。
【0097】
先端加速度判定402の特定した警告事象を事象表示部108のグラフ表示部112で行う表示は、特異点の場合同様に、図10(b)に示すように、ロボットの1台ごとに分離して行うのが好適である。図10(b)の例では、先端加速度判定402により、解析条件設定部109で設定された2つの閾値をロボット装置(の3Dモデル)の先端加速度が超過しているフレームが警告事象として特定されている。そしてそれら2つの閾値の超過をそれぞれ異なる色の帯(113、113a、114)によって表示している。なお、グラフ表示部112(または図6(b)、図7(c)のようなテーブル形式の事象表示部202)では、表示に使用する数値は関節角度の指令値などではなく、先端加速度の計算結果を表示するようにしてもよい。
【0098】
本実施形態では、以上のような特異点判定401、および先端加速度判定402によって、特異点および先端加速度を解析して得た警告事象を実施形態1~3の干渉判定110の場合と同様に、他の事象とは異なる表示態様で表示する。そのため、これらの警告事象を強調表示することによりユーザは警告事象を直感的に認識することができ、効率よくシミュレーション作業を行うことができる。即ち、本実施形態のユーザインターフェースによれば、ユーザは検証中のロボット装置の動作に係る警告事象の有無を直感的に判断でき、検証作業、あるいはロボット制御データの編集作業を確認漏れなどなく確実に、極めて効率よく行える。
【0099】
<実施形態5>
以下、図11および図12を参照して、本発明の実施形態5に係わるシミュレータ装置の表示制御につき説明する。なお、図11および図12では、フローチャートによって制御部101の制御手順を示すが、シミュレータ装置のその他のハードウェア/ソフトウェア的な構成については、上述の各実施形態で説明したものと同様であるものとする。
【0100】
本実施形態5では、相互に連動している事象表示部(上述の各実施形態の108、201~203)や3Dモデル表示部107で、解析結果の状態がその前後で変化する事象のフレームに移動する手法を例示する。
【0101】
例えば、3Dモデル表示部107の表示上で、その前後で、非警告事象(警告事象ではない、通常の事象)から警告事象へ、または警告事象から非警告事象へと状態が変化する位置を検索し、その表示状態に移動できれば便利である。また、警告事象に、上述の干渉、および閾値付き干渉(衝突)などの場合のように、異なる種類ないし段階の警告事象が存在する。本実施形態では、これらの異なる警告事象の間での遷移も検索対象とする。
【0102】
ただし、一般には、事象表示部(108、201~203)の表示面などにおいて多くの表示領域を占めるのは非警告事象であり、そこから警告事象を検索し、その位置へ移動する用途が主である。そこで、以下では非警告事象から警告事象へ変化する位置を検索する場合を例に説明する。しかしながら、図11図12などに図示した手順は、警告事象から非警告事象へ変化する位置を検索する場合にも用いることができる。
【0103】
図11図12のフローチャート図は、実施形態5に係わるシミュレータ装置の事象表示部(108、201~203)の異なる表示制御手順をそれぞれ示している。
【0104】
なお、以下では、警告事象の例として、干渉、および閾値付き干渉(衝突)の各警告事象を用いて説明する。しかしながら、実施形態3、4などで説明した他の警告事象を検索する場合でも図11および図12の制御手順は利用可能である。
【0105】
図11の表示制御手順は、表示中の(あるいは選択状態にある)事象フレームから一番近い、解析結果の状態が変化する事象のフレームへユーザの1操作で移動するためのものである。ここでは、検索対象とする事象の状態の変化は、未干渉(未衝突)事象から閾値付き干渉(衝突)への変化、閾値付き干渉(衝突)への変化から干渉(衝突)事象への変化とする。さらに、本実施形態では、干渉(衝突)事象から閾値付き干渉(衝突)への変化、さらに閾値付き干渉(衝突)から未干渉(未衝突)事象への変化も検索の対象として取り扱う。
【0106】
本実施形態の表示制御は、図11に示すように、ステップS5~ステップS7の検索処理によって行われる。なお、本実施形態の検索処理は、キーボードDからの所定操作や、ディスプレイBで表示した検索ダイアログなどにより起動されるものとするが、検索処理の起動には、他の手法を用いても構わない。
【0107】
上記のような契機によって本実施形態の検索処理が起動されると、ステップS5で、解析部(106)の解析結果に基づき、上に例示したように状態が変化する事象のフレームを検索する。ここで、検索結果が複数存在する場合には、それをリストにして保存する。これにより、次回の検索では保存したリストを用いて検索処理を行える。
【0108】
ステップS6では、該当するフレームがあれば、ステップS7において、現在、事象表示部(108、201~203)で表示中のフレームから一番近いフレームを選択し、選択したフレームに移動する。そして、その当該のフレームによってロボット装置の3Dモデルの状態を3Dモデル表示部107で表示させる。また、これに連動して事象表示部(108、201~203)の表示も、当該の事象の変化位置が表示領域内に現われるよう、例えば自動的にスクロールさせたり、あるいは表示倍率を自動的に変化させたりする。また、ステップS6で、状態変化に該当するフレームがなければ、検索処理を終了させる。
【0109】
以上のように、図11の制御手順により、相互に連動している事象表示部(上述の各実施形態の108、201~203)や3Dモデル表示部107で、解析結果の状態がその前後で変化する事象のフレームに移動することができる。従って、ユーザは検証中のロボット装置の動作に係る警告事象の有無を直感的に判断でき、検証作業、あるいはロボット制御データの編集作業を確認漏れなどなく確実に、極めて効率よく行える。
【0110】
なお、検索の方向は、ロボット装置のモデルを動作させる時間軸上で、過去および未来(前方および後方)の両方の方向に移動できるようにしておくのが望ましい。そこで、図11の検索処理を起動するダイアログをディスプレイBなどで表示する場合には、過去または未来(前方または後方)の「検索方向」を指定できるようにしておくとよい。
【0111】
また、上述の検索した事象(またはフレーム)リストが既に存在する場合には、そのリストをテーブル形式やグラフ形式で表示する表示ウィンドウや表示タブをディスプレイBに表示させてもよい。このようなテーブル形式やグラフ形式のリスト表示によれば、注目している警告事象がどれくらいの頻度、数、周期などで生起しているのかを一覧でき、容易に確認できる。
【0112】
また、このテーブル形式やグラフ形式のリスト表示は、事象検索のためのダイアログとして用いることもできる。例えば、リスト表示に含まれている特定の警告または非警告事象をマウスCなどにより指定することにより、3Dモデル表示部107のロボット装置の3Dモデルの表示状態を当該の事象の状態に更新する。このような連動的な表示制御により、ユーザは検証中のロボット装置の3Dモデルの振舞いを、きめ細かく把握することができる。
【0113】
図12は、3Dモデル表示部107でロボット装置の3Dモデルの動作をアニメーション(動画)表示している間に、事象の変化を検索し、その位置でアニメーション(動画)表示を停止(ストップモーションないし静止画表示)させる制御を示している。
【0114】
3Dモデル表示部107で、ロボット装置の3Dモデルの動作をアニメーション(動画)を表示(再生)させる場合、再生速度の設定や、ハードウェア的な制約により、フレームを間引き(いわゆる駒落し)して表示が行われる場合がある。3Dモデル表示部107では、従来技術のように、干渉(衝突)などを生じた部位、あるいはそのロボット装置を強調表示(表示色や輝度、濃度などの変更による)してよい。しかしながら、3Dモデル表示部107で上記のようなフレームドロップを伴うアニメーション(動画)表示が行われている場合、1ないし数フレームしか現れない警告事象の強調表示が駒落しされる可能性もある。
【0115】
そこで、図12の制御手順では、全てのフレームから事象の変化するフレームを検索し、該当するフレームがあれば、3Dモデル表示部107の表示をそのフレームを表示するよう更新し、そこで停止させる。これにより、3Dモデル表示部107でアニメーション(動画)表示が行われている場合でも、確実に事象の変化するフレーム、例えば警告事象に相当するフレームをユーザに確認させることができる。
【0116】
図12において、3Dモデル表示部107のアニメーションの再生が指定されると、ステップS8、表示中のフレームの次に描画するフレームを設定する。この処理は、特定の記憶部105内の特定領域に割り当てられた次に描画するフレームの画像データが描画済みのフレームバッファを指定することなどにより行う。通常、フレームバッファは2個(ないしそれ以上の数)、記憶部105に配置され、一方のフレームバッファで読み出し(ステップS13の表示)が行われている間に、他方のフレームバッファでは後続のフレーム描画を行うようになっている。
【0117】
本実施形態では、現在表示中のフレームから、次のフレームがディスプレイBに表示されるまでの区間(ステップS8~S13)を利用して、検索対象の事象の変化に該当するフレームの検索(ステップS9、S10)を行う。即ち、ステップS9では検索対象の事象の変化に該当するフレームを検索し、該当するフレームがなければステップS13に移行して、ステップS8で設定したフレームを用いて3Dモデル表示部107の表示を更新する。
【0118】
ステップS8の後、フレーム間の検索(S9、S10)により、事象の変化に該当するフレームが検索されなければ、アニメーション(動画)表示は、ステップS13、S14(最後の動作の判定)を経てステップS8に戻るループで動作の最後まで表示される。ステップS14で、最後の表示フレームが表示済みになっている場合には、アニメーション(動画)表示は停止される(ステップS12)。
【0119】
一方、ステップS10で検索対象の事象の変化に該当するフレームが検索されると、ステップS10からS11への遷移が生じる。ステップS11では、ステップS8で設定した「次フレーム」ではなく、検索された事象の変化が生じているフレーム用いて、3Dモデル表示部107の表示を更新する。そして、このフレームを静止画表示として残したまま、アニメーション(動画)表示を停止させる(ステップS12)。
【0120】
以上のように、図12の制御手順によれば、3Dモデル表示部107でアニメーション(動画)表示を行う場合、表示フレーム間の区間を用いて、後続フレームの方向へ事象の変化に該当するフレームを検索し、そのフレームを表示して停止させることができる。そのため、3Dモデル表示部107でアニメーション(動画)表示が行われている場合、そして例えフレームドロップが発生しているような状況でも、確実に事象の変化するフレーム、例えば警告事象に相当するフレームをユーザに確認させることができる。従って、ユーザは検証中のロボット装置の動作に係る警告事象の有無を直感的に判断でき、検証作業、あるいはロボット制御データの編集作業を確認漏れなどなく確実に、極めて効率よく行える。
【0121】
ここで、図1図2のシミュレータ装置によって検証されたロボット制御データ(教示点データやロボットプログラム)によって動作するロボット装置のより具体的な構成例や、そのロボットアームを生産システムに適用した場合の構成などにつき示しておく。
【0122】
図13は、図1図2のシミュレータ装置によって検証されたロボット制御データ(教示点データやロボットプログラム)によって動作するロボット装置1001の全体構成を示している。図13において、ロボット装置1001(ロボット装置)は、例えば6軸(関節)の垂直多関節形式のロボットアーム本体1201を備える。ロボットアーム本体1201の各関節は、各関節にそれぞれ設けられたサーボモータをサーボ制御することにより所望の位置姿勢に制御することができる。
【0123】
ロボットアーム本体1201の先端(手先)には、例えばハンド1202のようなツールが装着され、このハンド1202によって、ワーク1203を把持し、ワーク1203を組み付けたり、加工したりする生産作業を行わせることができる。ワーク1203は、自動車や電機製品などの工業製品の例えば部品であって、ロボット装置1001はこのような生産システム(生産ライン)に生産装置として配置することができる。
【0124】
ロボット装置1001のロボットアーム本体1201の動作は、ロボット制御装置1200(ロボットコントローラ)により制御される。ロボット装置1001のためのロボット制御データは、ロボット制御装置1200に接続された操作端末1204(例えばティーチングペンダント)によってプログラミング(教示)する、あるいは微修正などの編集を加えることもできる。
【0125】
また、ネットワークNWを介して、ロボット装置1001ないしロボット制御装置1200は、図1図2に示したシミュレータ装置から、上述のように最適化されたロボット制御データないし軌道データを受信することができる。これにより、上記の処理によって最適化されたロボット制御データに基づき、ロボット装置1001を生産システム(生産ライン)を構成する生産装置として動作させ、ロボット装置1001により物品を製造することができる。
【0126】
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0127】
A…コンピュータ本体、B…ディスプレイ、C…マウス、D…キーボード、E…シミュレーションソフトウェア、101…制御部、102…表示部、103…操作部、104…データ入出力部、105…記憶部、106…解析部、107…3Dモデル表示部、108、201、202、203…事象表示部、109…解析条件設定画面、110…干渉判定、111…解析実行ボタン、112…グラフ表示部、113…(赤色の)帯、114…(黄色の)帯、301…(ストライプの)帯、302…(メッシュの)帯、303、304…マーク、401…特異点判定、402…先端加速度判定。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13