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

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

▶ 株式会社ダイヘンの特許一覧

<>
  • 特開-教示データ蓄積装置 図1
  • 特開-教示データ蓄積装置 図2
  • 特開-教示データ蓄積装置 図3
  • 特開-教示データ蓄積装置 図4
  • 特開-教示データ蓄積装置 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024098188
(43)【公開日】2024-07-23
(54)【発明の名称】教示データ蓄積装置
(51)【国際特許分類】
   B25J 9/22 20060101AFI20240716BHJP
【FI】
B25J9/22 A
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023001479
(22)【出願日】2023-01-10
(71)【出願人】
【識別番号】000000262
【氏名又は名称】株式会社ダイヘン
(74)【代理人】
【識別番号】100115749
【弁理士】
【氏名又は名称】谷川 英和
(74)【代理人】
【識別番号】100121223
【弁理士】
【氏名又は名称】森本 悟道
(72)【発明者】
【氏名】村田(檀上) 梓紗
(72)【発明者】
【氏名】鳴川 雄太
(72)【発明者】
【氏名】古川 直樹
(72)【発明者】
【氏名】久保 正樹
(72)【発明者】
【氏名】北野 豊和
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS11
3C707BS10
3C707JU03
3C707LS09
3C707LS20
(57)【要約】
【課題】一連の教示の完了後に、ロボットに取り付けられた線状体のシミュレーションを行った場合には、教示結果が無駄になる可能性があった。
【解決手段】教示データ蓄積装置3は、実環境と表示装置4の相対的な位置関係を取得する位置関係取得部33と、仮想ロボットの3次元モデル10の操作及び教示指示を受け付ける受付部34と、3次元モデルと相対的な位置関係に基づき、操作された3次元モデル10を表示する表示画像を生成する画像生成部35と、表示画像を表示装置4に出力する出力部36と、教示指示の受付時に教示データを蓄積する蓄積部37と、仮想ロボットのロボット本体の3次元モデルに取り付けられた線状体のねじれ量を取得するねじれ量取得部38とを備え、出力部36は、取得されたねじれ量に関する出力を行う。このようにして、線状体のねじれ量を確認しながら教示を行うことができる。
【選択図】図1
【特許請求の範囲】
【請求項1】
実ロボットに対応する仮想ロボットの3次元モデルが記憶されるモデル記憶部と、
前記実ロボットの教示データが記憶される教示データ記憶部と、
実環境と、画像を実環境の画像または実環境そのものに重ねて表示する表示装置との相対的な位置関係を取得する位置関係取得部と、
前記仮想ロボットの3次元モデルに対する操作及び教示の指示を受け付ける受付部と、
前記仮想ロボットの3次元モデルと前記相対的な位置関係とに基づいて、操作された仮想ロボットの3次元モデルを実環境の所定の位置に表示するための表示画像を生成する画像生成部と、
前記画像生成部によって生成された表示画像を前記表示装置に出力する出力部と、
前記受付部によって前記仮想ロボットの3次元モデルに対する教示の指示が受け付けられた際に、当該仮想ロボットの3次元モデルに応じて教示データを前記教示データ記憶部に蓄積する蓄積部と、
仮想ロボットのロボット本体の3次元モデルに取り付けられた線状体のねじれ量を取得するねじれ量取得部と、を備え、
前記出力部は、前記ねじれ量取得部によって取得されたねじれ量に関する出力をも行う、教示データ蓄積装置。
【請求項2】
前記受付部は、前記線状体の取り回しの変更をも受け付け、
前記ねじれ量取得部は、前記受付部によって受け付けられた変更後の取り回しに応じた線状体のねじれ量を取得する、請求項1記載の教示データ蓄積装置。
【請求項3】
前記ねじれ量取得部は、前記受付部によって前記線状体の取り回しの変更が受け付けられた場合に、当該変更後の取り回しに応じた、前記教示データ記憶部で記憶されている教示データに対応するねじれ量の代表値をも取得し、
前記出力部は、前記ねじれ量取得部によって取得されたねじれ量の代表値に関する出力をも行う、請求項2記載の教示データ蓄積装置。
【請求項4】
前記教示データ記憶部で記憶されている教示データに対応するねじれ量の代表値がゼロに近づくようにするための前記線状体の取り回しの変更を特定する特定部をさらに備え、
前記出力部は、前記特定部によって特定された前記線状体の取り回しの変更に関する出力をも行う、請求項2記載の教示データ蓄積装置。
【請求項5】
前記線状体の取り回しの変更は、前記線状体の初期ねじれ量の変更、前記線状体の長さの変更、前記線状体の固定位置の変更の少なくともいずれかである、請求項2から請求項4のいずれか記載の教示データ蓄積装置。
【請求項6】
前記画像生成部は、前記ねじれ量取得部によって取得されたねじれ量を色によって表示する表示画像を生成する、請求項1から請求項4のいずれか記載の教示データ蓄積装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、教示データを蓄積する教示データ蓄積装置に関する。
【背景技術】
【0002】
従来、ケーブルやホースなどの線状体の姿勢などについてシミュレーションを行うシステムが知られている。また、そのようなシミュレーションが、ロボットに取り付けられた線状体について行われることもある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2016-087750号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、ロボットに取り付けられた線状体に関するシミュレーションは、通常、ロボットの動作が決定された後、すなわちティーチングが完了した後に行われる。したがって、そのシミュレーション結果によって、線状体に許容範囲を超えるねじれが発生していることが分かった場合には、再度、新たなティーチングを行う必要があり、以前のティーチングが無駄になる可能性があるという問題があった。
【0005】
本発明は、上記課題を解決するためになされたものであり、教示データに応じてロボットが動作した際に、ロボット本体に取り付けられた線状体に許容範囲を超えるねじれが発生しないようにすることができる教示データ蓄積装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明の一態様による教示データ蓄積装置は、実ロボットに対応する仮想ロボットの3次元モデルが記憶されるモデル記憶部と、実ロボットの教示データが記憶される教示データ記憶部と、実環境と、画像を実環境の画像または実環境そのものに重ねて表示する表示装置との相対的な位置関係を取得する位置関係取得部と、仮想ロボットの3次元モデルに対する操作及び教示の指示を受け付ける受付部と、仮想ロボットの3次元モデルと相対的な位置関係とに基づいて、操作された仮想ロボットの3次元モデルを実環境の所定の位置に表示するための表示画像を生成する画像生成部と、画像生成部によって生成された表示画像を表示装置に出力する出力部と、受付部によって仮想ロボットの3次元モデルに対する教示の指示が受け付けられた際に、仮想ロボットの3次元モデルに応じて教示データを教示データ記憶部に蓄積する蓄積部と、仮想ロボットのロボット本体の3次元モデルに取り付けられた線状体のねじれ量を取得するねじれ量取得部と、を備え、出力部は、ねじれ量取得部によって取得されたねじれ量に関する出力をも行う、ものである。
【発明の効果】
【0007】
本発明の一態様による教示データ蓄積装置によれば、ロボット本体に取り付けられた線状体のねじれ量をティーチングの際に知ることができる。したがって、例えば、線状体のねじれ量が大きい場合には、線状体の取り回しを変更したり、ティーチングを変更したりすることによって、線状体のねじれ量がより小さくなるようにすることができる。その結果、蓄積された教示データに応じてロボットが動作した際に、ロボット本体に取り付けられた線状体に許容範囲を超えるねじれが発生しないようにすることができる。
【図面の簡単な説明】
【0008】
図1】本発明の実施の形態による教示データ蓄積装置の構成を示すブロック図
図2】同実施の形態による教示データ蓄積装置の動作を示すフローチャート
図3】同実施の形態における仮想ロボットの3次元モデル及びねじれ量の表示の一例を示す図
図4】同実施の形態における取得されたねじれ量の一例を示す図
図5】同実施の形態による教示データ蓄積装置の他の構成の一例を示すブロック図
【発明を実施するための形態】
【0009】
以下、本発明による教示データ蓄積装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。本実施の形態による教示データ蓄積装置は、ティーチングの際に、ロボット本体に取り付けられた線状体のねじれ量を取得し、そのねじれ量に関する出力を行うものである。
【0010】
図1は、本実施の形態による教示データ蓄積装置3を含む情報処理システム100の構成を示す模式図である。図1で示されるように、情報処理システム100は、ロボット1と、ロボット制御装置2と、教示データ蓄積装置3と、表示装置4とを備える。なお、各装置間は、例えば、有線または無線で接続されてもよい。また、本実施の形態では、図1で示されるように実ロボットであるロボット1が実環境に存在する場合について主に説明するが、そうでなくてもよい。例えば、実環境にロボット1が存在していなくてもよい。この場合には、情報処理システム100は、例えば、ロボット1やロボット制御装置2を備えていなくてもよい。
【0011】
ロボット1は、通常、産業用ロボットであり、モータにより駆動される関節によって連結された複数のアーム(すなわち、リンク)を有するマニピュレータであってもよい。ロボット1は、例えば、垂直多関節ロボットであってもよく、水平多関節ロボットであってもよい。また、ロボット1は、例えば、搬送ロボットであってもよく、溶接ロボットであってもよく、組立ロボットであってもよく、塗装ロボットであってもよく、または、その他の用途のロボットであってもよい。本実施の形態では、ロボット1が溶接ロボットである場合について主に説明する。また、ロボット1は、ロボット本体と、そのロボット本体に取り付けられた線状体1aとを含んでいる。なお、ロボット1のうち、線状体1a以外の部分がロボット本体であると考えてもよい。線状体1aは、例えば、電力を供給するための配線ケーブルや、制御信号等を送信するための配線ケーブルであってもよく、溶接ワイヤが内部を通過するコンジットケーブルであってもよく、液体や気体を供給するための配管であってもよく、ロボット本体に取り付けられているその他の線状の構成であってもよい。線状体1aは、通常、ロボット1の姿勢に応じて形状が変化するもの、すなわち可撓性を有するものであることが好適である。図1では、線状体1aが、両端部1b,1cにおいてそれぞれロボット1の筐体に固定されている場合について示しているが、線状体1aは、例えば、両端部1b,1c以外においてもロボット1の筐体に固定されていてもよい。線状体1aがロボット1の筐体に固定されている位置を固定位置と呼ぶこともある。また、図1では、一例として、線状体1aの一部がロボット1の筐体の内部を通過している場合について示しているが、そうでなくてもよい。線状体1aは、例えば、その全体が筐体の外部に存在してもよく、その全体が筐体の内部に存在してもよい。なお、ロボット1は、実環境に存在するロボットであるため、仮想環境に存在する3次元モデルの仮想ロボットと区別するために実ロボットと呼ぶこともある。実環境とは、実空間の環境のことである。
【0012】
ロボット制御装置2は、ティーチングプレイバック方式によってロボット1の動作を制御する。教示データに基づいてロボット1を動作させるロボット制御装置2は、すでに公知であり、その詳細な説明を省略する。なお、情報処理システム100は、例えば、ロボット1のティーチングを行うためのティーチングペンダントをさらに有していてもよく、また、ロボット1が溶接ロボットである場合には、必要に応じて溶接電源やワイヤ送給装置等をさらに有していてもよい。
【0013】
教示データ蓄積装置3は、ロボット1に対応する仮想ロボットの3次元モデル10を用いて、ロボット1の教示データを蓄積するものである。教示データ蓄積装置3の詳細については後述する。
【0014】
表示装置4は、画像を実環境の画像または実環境そのものに重ねて表示する。すなわち、教示を行う作業者は、表示装置4によって、実環境と仮想環境の画像との両方を見ることができる。表示装置4は、教示を行う作業者が頭部に装着する装着型の表示装置であってもよく、または、タブレット端末などの可搬型の情報処理端末である表示装置であってもよい。装着型の表示装置は、例えば、ヘッドマウントディスプレイであってもよい。また、表示装置4は、例えば、透過型ディスプレイを有するものであってもよい。この場合には、表示装置4は、画像を実環境そのものに重ねて表示することになる。透過型ディスプレイを有する装着型の表示装置4としては、例えば、HoloLens(登録商標)等が知られている。このような透過型ディスプレイを有する表示装置4は、複合現実(MR:Mixed Reality)を実現するための表示装置であると考えることもできる。また、表示装置4は、例えば、非透過型ディスプレイを有するものであってもよい。この場合には、表示装置4は、画像を実環境の画像に重ねて表示することになる。したがって、非透過型ディスプレイを有する表示装置4は、実環境を撮影するためのカメラを有しているか、または、実環境を撮影するカメラと接続されていることが好適である。カメラで撮影された実環境の画像は、リアルタイムで非透過型ディスプレイに表示される。非透過型ディスプレイを有する装着型の表示装置4としては、例えば、Oculus Quest等が知られている。このような非透過型ディスプレイを有する表示装置4は、拡張現実(AR:Augmented Reality)を実現するための表示装置であると考えることもできる。タブレット端末などの可搬型の情報処理端末である表示装置4は、例えば、カメラとディスプレイとを有しており、カメラで撮影した実環境の画像をリアルタイムでティスプレイに表示してもよい。本実施の形態では、表示装置4が透過型のディスプレイを有するヘッドマウントディスプレイである場合について主に説明する。
【0015】
図1で示されるように、教示データ蓄積装置3は、ロボット制御装置2及び表示装置4と接続されており、モデル記憶部31と、教示データ記憶部32と、位置関係取得部33と、受付部34と、画像生成部35と、出力部36と、蓄積部37と、ねじれ量取得部38とを備える。
【0016】
モデル記憶部31では、実ロボットであるロボット1に対応する仮想ロボットの3次元モデル10が記憶される。仮想ロボットの3次元モデル10は、3次元モデルで構成されている以外は、実ロボットであるロボット1と同じサイズ及び構成であるものとする。また、この3次元モデル10は、ロボット1と同様に、複数のアームの関節の角度などを変更可能になっているものとする。また、仮想ロボットの3次元モデル10も、ロボット1と同様に、両端部10b,10cで筐体に固定された線状体10aを有している。
【0017】
モデル記憶部31に仮想ロボットの3次元モデルの情報が記憶される過程は問わない。例えば、記録媒体を介して情報がモデル記憶部31で記憶されるようになってもよく、通信回線等を介して送信された情報がモデル記憶部31で記憶されるようになってもよい。モデル記憶部31は、不揮発性の記録媒体によって実現されることが好適であるが、揮発性の記録媒体によって実現されてもよい。記録媒体は、例えば、半導体メモリや磁気ディスクなどであってもよい。また、モデル記憶部31で記憶されている3次元モデル10の形状や各関節の角度は、例えば、受け付けられた操作に応じて変更されてもよい。
【0018】
教示データ記憶部32では、実ロボットであるロボット1の教示データが記憶される。ロボット1の教示データは、蓄積部37によって教示データ記憶部32に蓄積される。なお、教示データ記憶部32に蓄積された教示データは、実ロボットであるロボット1の制御に用いられる教示データである。そのため、例えば、教示データ記憶部32で記憶されている教示データは、ロボット制御装置2に出力されてもよい。この場合には、教示データ蓄積装置3は、例えば、教示データ記憶部32で記憶されている教示データをロボット制御装置2や、その他の装置、着脱可能な記録媒体等に出力するための図示しない教示データ出力部を有していてもよい。また、例えば、ロボット制御装置2がロボット1を制御する際に、教示データ記憶部32で記憶されている教示データにアクセスしてもよい。教示データは、例えば、教示点ごとにロボット1の位置及び姿勢を示すものであってもよい。ロボット1の位置及び姿勢を示す情報は、例えば、ロボット1の手先の位置及び姿勢を示す情報であってもよく、ロボット1の各軸における角度を示す情報であってもよい。また、教示データには、例えば、直線補間、曲線補間、円弧補間などの教示点間の補間方法を示す情報も含まれていてもよい。また、教示データには、例えば、複数の教示点が補間された教示線が含まれていてもよい。教示データが教示点などの位置の情報を含む場合に、その位置の情報は、例えば、ロボットのローカル座標系における情報であってもよく、または、ワールド座標系における情報であってもよい。仮想ロボットの3次元モデル10が実ロボットであるロボット1とは異なる位置に表示される際には前者が好適である。なお、後者の場合には、教示データは、通常、ワールド座標系における所定の位置に配置されたロボット1について用いられる教示データとなる。教示データ記憶部32は、不揮発性の記録媒体によって実現されることが好適であるが、揮発性の記録媒体によって実現されてもよい。記録媒体は、例えば、半導体メモリや磁気ディスクなどであってもよい。
【0019】
なお、モデル記憶部31と、教示データ記憶部32とは、同一の記録媒体によって実現されてもよく、または、別々の記録媒体によって実現されてもよい。前者の場合には、例えば、仮想ロボットの3次元モデル10を記憶している領域がモデル記憶部31となり、教示データを記憶している領域が教示データ記憶部32となる。
【0020】
位置関係取得部33は、実環境と表示装置4との相対的な位置関係を取得する。なお、実環境は、例えば、ロボット1が存在する実環境であってもよい。本実施の形態では、この場合について主に説明する。実環境と表示装置4との相対的な位置関係を取得するとは、例えば、実環境の座標系であるワールド座標系と、表示装置4のローカル座標系である表示座標系との相対的な位置関係を取得することであってもよい。その相対的な位置関係は、例えば、両座標系間の変換を示す同次変換行列によって示されてもよい。なお、実環境と表示装置4との相対的な位置関係は、例えば、実環境に存在するロボット1や他のオブジェクト、または後述する基準マーカと、表示装置4との相対的な位置関係であってもよく、実環境における表示装置4の位置や姿勢を示す情報であってもよい。
【0021】
位置関係取得部33が、この相対的な位置関係を取得する方法は問わない。例えば、実環境の環境地図が用意されている場合には、位置関係取得部33は、実環境の環境地図と、表示装置4によって取得された周囲の物体までの距離や周囲の画像とを用いて、SLAM(Simultaneous Localization and Mapping)や、Visual-SLAMの手法を用いて、3次元の実環境における表示装置4の位置や姿勢を示す情報である相対的な位置関係を取得してもよい。この場合には、例えば、教示データ蓄積装置3において環境地図が保持されており、位置関係取得部33は、表示装置4から受け取った周囲の物体までの距離や周囲の画像と、環境地図とを用いて、相対的な位置関係を取得してもよい。また、例えば、SLAMやVisual-SLAMの手法を用いた相対的な位置関係の取得は表示装置4において行われ、その相対的な位置関係が位置関係取得部33に渡されてもよい。この場合には、位置関係取得部33による相対的な位置関係の取得は、相対的な位置関係の受け付けであってもよい。また、この場合には、表示装置4は、周囲の物体までの距離を測定可能な深度センサや、周囲の画像を取得可能なカメラを有していてもよい。また、位置関係取得部33は、表示装置4のカメラで撮影された画像を受け取り、その画像に含まれるロボット1や他のオブジェクト、または後述する基準マーカの3以上の特徴点を用いて、ワールド座標系と表示座標系との間の変換を示す同次変換行列を取得してもよい。
【0022】
また、位置関係取得部33は、上記した以外の方法によって、実環境と表示装置4との相対的な位置関係を取得してもよい。その方法の一例については、例えば、次の文献1~3等を参照されたい。また、後述する表示画像の生成ごとに、位置関係取得部33によって上記のようにして相対的な位置関係が取得されてもよく、または、そうでなくてもよい。後者の場合には、例えば、相対的な位置関係が取得された後の表示装置4の位置や姿勢の変化を用いて、実環境と表示装置4との相対的な位置関係が更新されてもよい。この更新は、例えば、位置関係取得部33によって行われてもよい。また、この更新が行われる場合には、表示装置4は、例えば、加速度センサや表示装置4の向きを取得するためのセンサ等を備えており、それらのセンサを用いて位置の変化や姿勢の変化が取得されてもよい。なお、それらのセンサによって取得された値は、例えば、位置関係取得部33などの相対的な位置関係を更新する構成要素に渡されてもよい。表示装置4の向きを取得するためのセンサは、例えば、ジャイロセンサや方位センサ等であってもよい。
文献1:特開2017-100234号公報
文献2:特開2020-055075号公報
文献3:特開2020-069538号公報
【0023】
受付部34は、仮想ロボットの3次元モデル10に対する操作を受け付ける。また、受付部34は、仮想ロボットの3次元モデルに対する教示の指示を受け付ける。例えば、3次元モデル10に対する操作や教示の指示は、表示装置4の表示画像を見ている作業者から受け付けられてもよい。3次元モデル10に対する操作は、例えば、3次元モデル10の少なくとも一部の位置や姿勢を変化させるための操作であってもよい。操作や教示の指示の受け付けは、例えば、実環境に存在するティーチングペンダントなどの入力デバイスを介して行われてもよく、表示装置4のディスプレイに表示された仮想ボタンや仮想ティーチングペンダントなどの仮想入力インターフェースを介して行われてもよい。後者の場合には、例えば、仮想ロボットの3次元モデル10に対する操作や教示の指示の受け付けは、例えば、表示装置4を介して行われてもよい。仮想入力インターフェースは、例えば、エアタップなどの動作に応じて表示装置4のディスプレイに表示され、作業者の指やポインティングデバイスによってボタン等が選択された場合に、そのボタン等の操作に応じた入力が表示装置4から受付部34に渡されてもよい。また、作業者の手などのジェスチャによって、仮想ロボットの3次元モデル10の少なくとも一部(例えば、ツールなどの手先など)の位置や姿勢を変更できてもよい。この場合には、例えば、作業者がディスプレイに表示された3次元モデル10を手でつまむ動作(ホールド動作)を行うことによって、その手でつまんだ部分が操作の対象として特定され、その手の位置や姿勢を変化させることによって、特定された対象の位置や姿勢を変化させる操作が行われ、そのつまむ動作を終了させることによって、特定された対象への操作が終了されてもよい。この場合には、例えば、操作の対象を示す情報(例えば、3次元モデル10における位置や部分を示す情報)と、操作の内容を示す情報(例えば、位置の変更や姿勢の変更などを示す情報)とが表示装置4から受付部34に渡されてもよく、または、表示装置4において取得されたハンドトラッキングの結果が受付部34に渡され、教示データ蓄積装置3において、操作の対象や操作の内容が特定されてもよい。表示装置4において操作の対象を示す情報と操作の内容を示す情報とが取得される場合には、表示装置4は、教示データ蓄積装置3で保持されている、仮想空間における仮想ロボットの現時点の3次元モデル10の情報にアクセス可能であってもよい。なお、作業者の手を用いた操作が行われる場合には、表示装置4はカメラを有しており、そのカメラで撮影された作業者の手のハンドトラッキングが行われることによって、作業者の手が、ディスプレイ上のどの位置に存在するのかが特定されてもよい。また、作業者の手などのジェスチャに応じた3次元モデルの表示画像への操作を、3次元仮想空間における3次元モデルの位置や姿勢の変化に変換する方法はすでに公知であり、その詳細な説明を省略する。
【0024】
また、受付部34は、仮想ロボットのロボット本体の3次元モデル10に取り付けられた線状体10aの取り回しの変更を受け付けてもよい。受付部34は、例えば、実環境の入力デバイスや、仮想入力インターフェースを介して入力された線状体10aの取り回しの変更を受け付けてもよい。線状体10aの取り回しの変更とは、例えば、線状体10aの初期ねじれ量の変更、線状体10aの長さの変更、線状体10aの固定位置の変更の少なくともいずれかであってもよい。線状体10aの初期ねじれ量は、線状体10aの端部10b,10cの固定位置の少なくとも一方において、線状体10aを初期の角度から回転させた角度であってもよい。線状体10aの取り回しの変更が初期ねじれ量の変更である場合に、受付部34は、変更後の初期ねじれ量を受け付けてもよい。線状体10aの長さは、線状体10aにおける一方の固定位置である端部10bから、他方の固定位置である端部10cまでの線状体10aに沿った長さであってもよい。線状体10aの取り回しの変更が長さの変更である場合に、受付部34は、変更後の長さを受け付けてもよい。線状体10aの固定位置は、例えば、線状体10aの端部の固定位置であってもよい。その固定位置は、例えば、あらかじめ決められた範囲内において位置を変更できるようになっていてもよい。例えば、線状体10aが配線ケーブルである場合に、線状体10aの端部に延長アダプタを追加することによって、端部の固定位置を数センチメートル程度、変更できるようになっていてもよい。線状体10aの取り回しの変更が固定位置の変更である場合に、受付部34は、変更後の固定位置を識別する識別子を受け付けてもよい。この場合には、線状体10aの固定位置と、その固定位置を識別する識別子との対応関係があらかじめ教示データ蓄積装置3において保持されていることが好適である。また、線状体10aの取り回しの変更が、線状体10aの長さの変更や固定位置の変更である場合には、その変更の受け付けに応じて仮想ロボットの3次元モデル10における線状体10aの部分が変更されてもよい。この変更は、例えば、画像生成部35によって行われてもよい。本実施の形態では、線状体10aの取り回しの変更が、線状体10aの初期ねじれ量の変更である場合について主に説明する。
【0025】
受付部34は、上記した以外の情報等を受け付けてもよい。受付部34は、例えば、教示が終了した旨などを受け付けてもよい。受付部34は、例えば、入力デバイスや表示装置4から入力された情報を受け付けてもよく、有線または無線の通信回線を介して送信された情報を受信してもよい。なお、受付部34は、受け付けを行うためのデバイス(例えば、入力デバイスや通信デバイスなど)を含んでもよく、または含まなくてもよい。また、受付部34は、ハードウェアによって実現されてもよく、または所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【0026】
画像生成部35は、モデル記憶部31で記憶されている3次元モデル10と、位置関係取得部33によって取得された相対的な位置関係とに基づいて、3次元モデル10を実環境の所定の位置に表示するための表示画像を生成する。また、仮想ロボットの3次元モデル10への操作が受け付けられた場合には、画像生成部35は、操作された3次元モデル10を表示するための表示画像を生成する。画像生成部35は、例えば、モデル記憶部31で記憶されている3次元モデル10の各関節の角度を、受け付けられた操作に応じて変更してもよい。なお、3次元モデル10を実環境の所定の位置に表示するとは、例えば、実ロボットであるロボット1と仮想ロボットの3次元モデル10とが所定の位置関係となるように3次元モデル10を表示することであってもよく、後述するように、基準マーカと仮想ロボットの3次元モデル10とが所定の位置関係となるように3次元モデル10を表示することであってもよい。所定の位置関係は、例えば、あらかじめ決められた位置関係であってもよく、作業者が変更することができる位置関係であってもよい。仮想ロボットの3次元モデル10は、例えば、ロボット1または基準マーカの位置に表示されてもよく、ロボット1または基準マーカと異なる位置に表示されてもよい。仮想ロボットの3次元モデル10をロボット1の位置に表示するとは、ロボット1と同じ位置に仮想ロボットが配置されるように3次元モデル10を表示することであり、例えば、仮想ロボットの3次元モデル10の基端側の端部(例えば、床面などへの取り付け部分)が、ロボット1の基端側の端部に重なるように表示することであってもよい。仮想ロボットの3次元モデル10を基準マーカの位置に表示するとは、基準マーカの位置に実ロボットを配置した状況が仮想的に再現されるように仮想ロボットの3次元モデル10を表示することであってもよく、例えば、仮想ロボットの3次元モデル10の基端側の端面(例えば、床面などへの取り付け面)が、基準マーカの面と一致するように仮想ロボットの3次元モデル10を表示することであってもよい。ロボット1や基準マーカと異なる位置に仮想ロボットの3次元モデル10が表示される場合には、例えば、ロボット1や基準マーカの隣に3次元モデルが表示されてもよい。いずれにしても、仮想ロボットの3次元モデル10は、実環境における位置が変化しないように表示されることになる。したがって、表示装置4において、作業者が表示装置4の向きを変化させたとしても、実環境における仮想ロボットの3次元モデル10の表示位置は変化しないことになる。
【0027】
ワールド座標系におけるロボット1や基準マーカの配置位置は既知である。また、例えば、ロボット1や基準マーカと仮想ロボットの3次元モデル10との位置関係も決まっている。したがって、これらの情報を用いることによって、画像生成部35は、ロボット1や基準マーカの配置位置があらかじめ決まっている仮想空間において、そのロボット1の配置位置と所定の位置関係となるように仮想ロボットの3次元モデル10を配置することができる。なお、仮想ロボットの3次元モデル10における各関節の角度は、操作が行われていない場合には初期値となり、操作が行われた場合には操作後の値となる。操作後の各関節の角度は、例えば、実ロボットと同様に、操作後の仮想ロボットの3次元モデル10における手先の位置及び姿勢を用いた逆運動学によって算出されてもよい。また、画像生成部35は、位置関係取得部33によって取得された相対的な位置関係によって、ワールド座標系と表示装置4のローカル座標系である表示座標系との関係を知ることができるため、仮想空間における表示装置4の位置及び向きを特定することができる。したがって、画像生成部35は、仮想空間における仮想ロボットの3次元モデル10を、表示装置4の位置及び向きを基準としてレンダリングすることによって、3次元モデル10を表示するための2次元の表示画像を生成することができる。仮想ロボットの3次元モデル10が操作されると、上記のように、仮想空間における仮想ロボットの3次元モデル10の形状が、それに応じて変更されることになる。また、表示装置4の位置や向きが実環境において変化した場合には、それに応じて仮想空間上の視点の位置や方向が変更されることになる。そして、その変更後にレンダリングが行われることによって、操作後の3次元モデル10の表示画像や、表示装置4の位置や向きの変化後の3次元モデル10の表示画像が生成されることになる。なお、画像生成部35は、仮想ロボットの3次元モデル10の表示画像が表示装置4のディスプレイに表示された際に、その表示画像の大きさが実環境と整合するように、表示画像を生成するものとする。すなわち、表示装置4のディスプレイに表示された仮想ロボットの3次元モデル10と、その3次元モデル10と同じ相対的な位置関係となるように実環境に配置された実ロボットとが、表示装置4を介して見たときに同じ大きさになるように、表示画像が生成されることになる。
【0028】
なお、受け付けられた操作に応じて仮想ロボットを操作できないこともあり得る。例えば、仮想ロボットの3次元モデル10の手先を、移動可能な範囲を超えて移動させる操作または回転可能な範囲を超えて回転させる操作が受け付けられることもある。このような場合には、画像生成部35は、その操作に応じた表示画像を生成しなくてもよく、または、可能な範囲内で移動または回転を行った仮想ロボットの3次元モデル10の表示画像を生成してもよい。
【0029】
画像生成部35は、教示データに応じた教示位置をも表示するための表示画像を生成してもよい。すなわち、表示画像に、教示位置も表示されてもよい。教示位置が表示されることによって、作業者は、教示された位置を知ることができるようになる。教示位置を表示するとは、例えば、教示点を表示することであってもよく、複数の教示点の補間結果である教示線を表示することであってもよい。なお、教示データに含まれる位置の情報が、ロボットのローカル座標系の情報であっても、ワールド座標系の情報であっても、教示データによって、仮想ロボットの3次元モデル10と、教示位置との位置関係を知ることができる。したがって、仮想空間における教示位置が決まることになるため、画像生成部35は、上記説明と同様にして、仮想ロボットの3次元モデル10と教示位置とを含む表示画像を生成することができる。
【0030】
画像生成部35は、例えば、ねじれ量取得部38によって取得されたねじれ量をも表示するための表示画像を生成してもよい。ねじれ量は、例えば、数値や文字列によって表示されてもよく、色によって表示されてもよい。前者の場合には、一例として、「ねじれ量:14度」などの文字列が表示されてもよい。後者の場合には、画像生成部35は、ねじれ量を色によって表示する表示画像を生成してもよく、一例として、仮想ロボットの3次元モデル10における線状体10aの部分が、ねじれ量に応じた色で表示されてもよく、仮想ロボットの3次元モデル10の全体が、ねじれ量に応じた色で表示されてもよい。ねじれ量に応じた色は、一例として、ねじれ量の絶対値が0度以上、10度未満は青色、10度以上、15度未満は緑色、15度以上、20度未満は黄色、20度以上は赤色などであってもよい。また、画像生成部35は、例えば、後述するアラートをも表示するための表示画像を生成してもよい。アラートの表示は、例えば、「警告」などの文字列や図形の表示であってもよく、表示画像の一部または全体の強調表示(例えば、点滅させることや、赤色などの警告を示す色に変更することなど)であってもよい。
【0031】
出力部36は、画像生成部35によって生成された表示画像を表示装置4に出力する。なお、出力部36は、表示画像のみを出力してもよい。この場合には、表示装置4において、実環境の画像または実環境そのものに表示画像が重ねられて表示されることになる。一方、表示装置4が非透過型ディスプレイを有する場合であって、表示装置4で撮影された実環境の画像が教示データ蓄積装置3で受け付けられている場合には、実環境の画像と表示画像とが合成された結果が、表示装置4に出力されてもよい。この合成は、例えば、教示データ蓄積装置3が有する図示しない合成部によって行われてもよい。
【0032】
また、出力部36は、ねじれ量取得部38によって取得されたねじれ量に関する出力を行ってもよい。この出力は、例えば、ねじれ量そのものの出力であってもよく、ねじれ量の絶対値が閾値を超えたことを示すアラートの出力であってもよい。ねじれ量そのものの出力は、例えば、ねじれ量を表示するための表示画像の出力であってもよく、ねじれ量を音声などによって示す出力であってもよい。アラートの出力は、例えば、アラートを表示するための表示画像の出力であってもよく、アラートを音声や警告灯の点灯などによって示す出力であってもよい。なお、例えば、ねじれ量の絶対値が閾値を超えていない場合には、アラートの出力は行われなくてもよい。出力部36が出力する表示画像は、例えば、画像生成部35によって生成されたものであってもよい。
【0033】
蓄積部37は、受付部34によって仮想ロボットの3次元モデル10に対する教示の指示が受け付けられた際に、仮想ロボットの3次元モデル10に応じて教示データを教示データ記憶部32に蓄積する。すなわち、蓄積部37は、教示の指示が受け付けられた際に表示されている3次元モデル10の位置及び姿勢を示す情報を教示データとして教示データ記憶部32に蓄積する。1回の教示の指示の受け付けに応じて蓄積されるのは、通常、1個の教示点に応じた教示データである。この教示データの蓄積が繰り返されることによって、例えば、ロボットの手先の経路に応じた教示データが教示データ記憶部32で記憶されるようになる。蓄積対象の教示データは、上記したように、例えば、教示点ごとの3次元モデル10の手先の位置及び姿勢を示す情報であってもよく、教示点ごとの3次元モデル10の各関節の角度を示す情報であってもよい。なお、教示データには、例えば、教示位置を示す情報が含まれていてもよい。教示位置を表示することができるようにするためである。蓄積部37は、教示データの蓄積に必要な情報、例えば、仮想ロボットの3次元モデル10のローカル座標系であるロボット座標系における手先の位置や姿勢、または各関節の角度などの情報を画像生成部35から取得してもよく、モデル記憶部31で記憶されている3次元モデル10から取得してもよく、または、他の構成から取得してもよい。仮想ロボットの3次元モデル10のロボット座標系における手先の位置や姿勢は、例えば、仮想空間における手先の位置や姿勢を、仮想空間と仮想ロボットの3次元モデル10のロボット座標系との間の変換を示す同次変換行列を用いて変換することによって取得することができる。
【0034】
ねじれ量取得部38は、仮想ロボットのロボット本体の3次元モデルに取り付けられた線状体10aのねじれ量を取得する。この取得対象のねじれ量は、線状体10aの全体としてのねじれ量である。ねじれ量は、例えば、線状体10aに関するシミュレーションを行うことによって取得されてもよい。このシミュレーションは、例えば、上記特許文献1に記載されているシミュレーションであってもよく、ケーブルやホースなどの線状体に関する市販のシミュレーションツールを用いたシミュレーションであってもよく、その他の物理シミュレーションであってもよい。このシミュレーションは、例えば、線状体10aの3次元モデルを用いて行われてもよい。線状体10aの3次元モデルは、例えば、仮想ロボットの3次元モデル10の一部であってもよく、またはそれとは別の3次元モデルであってもよい。なお、線状体10aに関するシミュレーションを行うことによってねじれ量が取得される場合には、そのシミュレーションに必要となる線状体10aのパラメータ、例えば、長さ、太さ、ヤング率などの弾性特性を示すパラメータなどがあらかじめ設定されており、それらのパラメータを用いてシミュレーションが行われてもよい。ねじれ量取得部38は、現在の3次元モデル10によって、その3次元モデル10における線状体10aの両端の固定位置に関する位置及び姿勢を特定することができる。そして、ねじれ量取得部38は、その特定した位置及び姿勢を用いて線状体10aに関するシミュレーションを行うことによって、線状体10aのねじれ量を取得してもよい。なお、例えば、図1で示されるように、線状体10aが仮想ロボットの3次元モデル10の筐体の内部を通過しているなどのように、固定位置以外においても線状体10aの一部の位置が決まっている場合には、それを拘束条件としてシミュレーションを行ってもよい。ねじれ量取得部38は、一例として、線状体10aの長手方向について、所定の間隔ごとにねじれ量を取得し、その所定の間隔ごとのねじれ量を積算することによって、線状体10aの全体のねじれ量を取得してもよい。ねじれ量取得部38は、例えば、現在の3次元モデル10の形状に応じたねじれ量が分かるようにするためにリアルタイムでねじれ量を取得してもよく、または、所定の時間間隔ごとに、または所定のイベント(例えば、教示の指示の受け付けなど)の発生ごとにねじれ量を取得してもよい。本実施の形態では、リアルタイムでねじれ量が取得される場合について主に説明する。なお、リアルタイムでねじれ量が取得される場合であっても、3次元モデル10に対する操作が行われていないときには、ねじれ量は変化しない。したがって、ねじれ量取得部38は、例えば、3次元モデル10への操作が受け付けられるごとに、新たなねじれ量を取得してもよい。また、取得されたねじれ量は、例えば、教示データが蓄積される際に、その教示データに対応付けられて教示データ記憶部32に蓄積されてもよい。なお、教示データに対応付けられて蓄積されるねじれ量は、その教示データに対応する3次元モデル10の形状に対応するねじれ量である。また、ねじれ量の正負は、例えば、線状体10aの長さ方向における、基端側の端部10bからハンド側の端部10cに向かって、時計回りのねじれが正となり、反時計回りのねじれが負となるように定義されてもよく、その逆であってもよい。
【0035】
また、ねじれ量取得部38は、受付部34によって線状体10aの取り回しの変更が受け付けられた場合に、その受け付けられた変更後の取り回しに応じた線状体10aのねじれ量を取得してもよい。例えば、初期ねじれ量が変更された場合には、ねじれ量取得部38は、その変更後の初期ねじれ量に応じた線状体10aのねじれ量を取得してもよい。より具体的には、初期ねじれ量0度について取得された線状体10aのねじれ量が15度であったとすると、その後、初期ねじれ量が-10度に変更された場合に、ねじれ量取得部38は、変更後の初期ねじれ量に応じた線状体10aのねじれ量5度(=15度-10度)を取得してもよい。なお、取り回しの変更後のねじれ量は、例えば、取り回しの変更後の線状体10aについて、再度のシミュレーションを行うことによって取得されてもよい。取り回しの変更が、例えば、線状体10aの長さの変更や、線状体10aの固定位置の変更である場合には、再度のシミュレーションを行うことによって、変更後の取り回しに応じたねじれ量が取得されることが好適である。
【0036】
次に、教示データ蓄積装置3の動作について図2のフローチャートを用いて説明する。
(ステップS101)位置関係取得部33は、実環境と表示装置4との相対的な位置関係を取得する。
【0037】
(ステップS102)ねじれ量取得部38は、この時点の仮想ロボットの3次元モデル10の形状に応じて、線状体10aのねじれ量を取得する。なお、線状体10aの取り回しの変更が受け付けられた場合には、その変更後の取り回しに応じた線状体10aのねじれ量が取得されるものとする。
【0038】
(ステップS103)画像生成部35は、仮想ロボットの3次元モデル10と、ステップS101で取得された相対的な位置関係と、取得されたねじれ量とを用いて、仮想ロボットの3次元モデル10を表示するための表示画像であって、線状体10aのねじれ量に応じた表示を行うための表示画像を生成する。なお、表示対象の3次元モデル10は、操作が受け付けられる前は初期の形状であり、操作が受け付けられた後は、その操作後の形状になる。
【0039】
(ステップS104)出力部36は、生成された表示画像を表示装置4に出力する。
【0040】
(ステップS105)受付部34は、仮想ロボットの3次元モデル10への操作を受け付けたかどうか判断する。そして、仮想ロボットの3次元モデル10への操作を受け付けた場合には、ステップS106に進み、そうでない場合には、ステップS110に進む。
【0041】
(ステップS106)位置関係取得部33は、実環境と表示装置4との相対的な位置関係を取得する。
【0042】
(ステップS107)ねじれ量取得部38は、この時点の仮想ロボットの3次元モデル10の形状に応じて、線状体10aのねじれ量を取得する。
【0043】
(ステップS108)画像生成部35は、仮想ロボットの3次元モデル10と、ステップS106で取得された相対的な位置関係と、ステップS107で取得されたねじれ量とを用いて、操作後の仮想ロボットの3次元モデル10を表示するための表示画像であって、線状体10aのねじれ量に応じた表示を行うための表示画像を生成する。
【0044】
(ステップS109)出力部36は、生成された表示画像を表示装置4に出力する。そしてステップS105に戻る。
【0045】
(ステップS110)受付部34は、教示の指示を受け付けたかどうか判断する。そして、教示の指示を受け付けた場合には、ステップS111に進み、そうでない場合には、ステップS112に進む。
【0046】
(ステップS111)蓄積部37は、その時点の仮想ロボットの3次元モデル10の位置及び姿勢に応じた教示データを教示データ記憶部32に蓄積する。そして、ステップS105に戻る。
【0047】
(ステップS112)画像生成部35は、表示画像の生成を行うかどうか判断する。そして、表示画像を生成する場合には、ステップS101に戻り、そうでない場合には、ステップS113に進む。なお、画像生成部35は、例えば、表示画像の生成を行うと定期的に判断してもよい。この判断が行われることによって、例えば、操作が行われていなくても、表示装置4の位置や向きが変更された場合には、その変更後の位置や向きに応じた表示画像が表示装置4で表示されるようになる。
【0048】
(ステップS113)受付部34は、線状体10aの取り回しの変更を受け付けたかどうか判断する。そして、取り回しの変更を受け付けた場合には、ステップS101に戻り、そうでない場合には、ステップS114に進む。
【0049】
(ステップS114)画像生成部35は、教示データに関する教示が終了したかどうか判断する。そして、教示が終了した場合には、教示データを生成する一連の処理は終了となり、そうでない場合には、ステップS105に戻る。画像生成部35は、例えば、教示データの蓄積が終了した旨の情報が受付部34で受け付けられた際に、教示データに関する教示が終了したと判断してもよい。
【0050】
なお、図2のフローチャートにおいて、教示が終了したと判断された場合に、教示データが出力されてもよい。また、図2のフローチャートにおける処理の順序は一例であり、同様の結果を得られるのであれば、各ステップの順序を変更してもよい。
【0051】
次に、本実施の形態による教示データ蓄積装置3の動作について、具体例を用いて説明する。本具体例では、頭部装着型の表示装置4を装着している作業者が、溶接線に沿った教示を行う場合について説明する。また、線状体10aの初期ねじれ量は、教示作業の開始時点において「0度」に設定されているものとする。
【0052】
まず、作業者が教示データ蓄積装置3を起動すると、位置関係取得部33は、表示装置4から受け取った撮影画像を用いて、実環境に配置されたロボット1と表示装置4との相対的な位置関係を取得して画像生成部35に渡す(ステップS101)。また、ねじれ量取得部38は、その時点の仮想ロボットのロボット本体の3次元モデルに取り付けられた線状体10aのねじれ量を取得する(ステップS102)。そして、画像生成部35は、相対的な位置関係と、モデル記憶部31で記憶されている3次元モデル10と、取得されたねじれ量とを用いて、基準マーカ6の位置に仮想ロボットの3次元モデル10を表示するための表示画像を生成して出力部36に渡す(ステップS103)。表示画像を受け取ると、出力部36は、表示画像を表示装置4に出力する(ステップS104)。その結果、作業者は、基準マーカ6の位置に表示された3次元モデル10を見ることができる。なお、表示画像は、定期的に更新されてもよい(ステップS112、S101~S104)。
【0053】
ここで、基準マーカ6は、2次元の所定の画像である。基準マーカ6は、例えば、ARマーカであってもよく、QRコード(登録商標)であってもよく、2次元のあらかじめ形状の決まっているその他の画像であってもよい。基準マーカ6のサイズは、例えば、あらかじめ決まっていてもよい。基準マーカ6は、例えば、紙や樹脂製のシートに印刷されていてもよい。仮想ロボットの3次元モデル10が基準マーカ6の位置に表示される場合には、作業者が所望の位置に基準マーカ6を配置することによって、その基準マーカ6の位置に3次元モデル10が表示されるようにすることができる。
【0054】
なお、3次元モデル10は、基準マーカ6の位置以外に表示されてもよい。この場合でも、3次元モデル10は、基準マーカ6と所定の位置関係となるように表示されることが好適である。例えば、3次元モデル10は、基準マーカ6の隣に表示されてもよい。
【0055】
図3は、仮想ロボットの3次元モデル10の表示の一例を示す図である。作業者は、図3で示されるように、基準マーカ6の位置に表示された仮想ロボットの3次元モデル10と、ねじれ量を示す表示51とを見ることができる。このようにして、作業者は、その時点の3次元モデルの形状に応じたねじれ量を知ることができる。
【0056】
その後、作業者は、ティーチングペンダントなどの入力デバイスや、ジェスチャなどによって3次元モデル10を操作して、3次元モデル10の溶接トーチの先端が溶接線の位置となるようにする。その結果、操作後の3次元モデル10及びねじれ量を表示するための表示画像が表示装置4に出力され、作業者は、操作後の3次元モデル10の溶接トーチの位置や姿勢、それに応じた線状体10aのねじれ量について確認することができる(ステップS105~S109)。その後、作業者が、ティーチングペンダントなどの入力デバイスや、ジェスチャなどによって教示の指示を入力すると、その教示の指示に応じて、教示点に応じた教示データが教示データ記憶部32に蓄積される(ステップS110,S111)。なお、教示データの蓄積に対応付けられて、その時点のねじれ量も蓄積されてもよい。その後、溶接線の他の教示点についても、同様にして教示データが蓄積される(ステップS105~S111)。
【0057】
なお、作業者は、表示されたねじれ量によって、線状体10aがどの程度ねじれているのかについて知ることができる。そのため、例えば、ねじれ量の絶対値が許容範囲を超えている場合に、3次元モデル10の溶接トーチの姿勢を変更することによって、ねじれ量の絶対値がより小さくなる姿勢での教示を行うこともできる。また、溶接トーチの姿勢の変更だけでは、ねじれ量の絶対値を減少させることができない場合には、作業者は、線状体10aの取り回しを変更してもよい。例えば、ねじれ量の絶対値が20度以下になるようにしたい場合において、新たな教示点に対応する3次元モデル10の姿勢におけるねじれ量が21度となったときには、作業者は、初期ねじれ量「-10度」を、実環境の入力デバイスや、仮想入力インターフェースを介して入力してもよい。その入力された取り回しの変更は受付部34で受け付けられ、ねじれ量取得部38に渡される(ステップS113)。そして、ねじれ量取得部38がねじれ量を新たに取得する際には、その変更後の取り回しである初期ねじれ量「-10度」に応じて、ねじれ量「11度」(=21度-10度)を取得し、そのねじれ量を含む表示画像が表示されてもよい(ステップS101~S104)。
【0058】
このようにして、作業者は、教示の途中において、線状体10aの取り回しを適宜、変更しながら、教示を行うことができる。したがって、教示を行った後のシミュレーションでねじれ量の絶対値が許容範囲を超えていたことが判明し、すべての教示データが無駄になる事態を回避することができる。また、仮に溶接トーチの姿勢の変更や、線状体10aの取り回しの変更によっても、ねじれ量の絶対値を許容範囲内に抑えることができない場合には、例えば、教示の作業を中止し、仮想ロボットの3次元モデル10と、溶接対象のワークとの位置関係を変更することなどによって、新たな教示を行うようにしてもよい。この場合であっても、例えば、無駄になる教示データを少なくすることができる。なお、教示が完了した後に(ステップS114)、教示データ記憶部32で記憶されている教示データが出力されてもよい。また、教示の途中において線状体10aの取り回しが変更されている場合には、その変更後の取り回しを示す情報(例えば、初期ねじれ量など)と一緒に、教示データが出力されてもよい。
【0059】
なお、ねじれ量取得部38は、受付部34によって線状体10aの取り回しの変更が受け付けられた場合に、その変更後の取り回しに応じた、教示データ記憶部32で記憶されている教示データに対応するねじれ量の代表値をも取得してもよい。すなわち、ねじれ量取得部38は、線状体10aの取り回しが変更された場合に、それまでに蓄積された各教示データに対応する仮想ロボットの3次元モデル10の位置及び姿勢に応じた線状体10aのねじれ量をそれぞれ取得し、その取得した1以上のねじれ量の代表値を取得してもよい。代表値は、例えば、最大値、及び最小値であってもよく、ねじれ量の絶対値の最大値であってもよい。この場合には、出力部36は、ねじれ量取得部38によって取得されたねじれ量の代表値に関する出力をも行ってもよい。代表値に関する出力は、例えば、代表値そのものの出力であってもよく、代表値が閾値を超えたことを示すアラートの出力であってもよい。また、代表値を表示するための表示画像や、アラートを表示するための表示画像が出力される場合には、その表示画像は、例えば、画像生成部35によって生成されてもよい。また、例えば、教示データに対応付けてねじれ量が蓄積されている場合には、変更された線状体10aの取り回しに応じて、蓄積されている1以上の教示データごとに新たなねじれ量が取得されたときに、その新たなねじれ量も教示データに対応付けて蓄積されてもよい。この場合には、例えば、ねじれ量は上書きされてもよく、またはそうでなくてもよい。後者の場合でも、最新のねじれ量を区別できるように蓄積されることが好適である。また、新たなねじれ量は、例えば、変更後の取り回しを示す情報に対応付けられて蓄積されてもよい。
【0060】
例えば、上記具体例において、現在のねじれ量が「21度」となった時点において、教示データ記憶部32において、図4で示されるように、教示データとねじれ量とを対応付ける情報が記憶されていたとする。すると、初期ねじれ量「-10度」が受け付けられた場合に、ねじれ量取得部38は、図4における教示データと対応付けられている各ねじれ量から10度をそれぞれ減算して上書きで蓄積し、その減算結果の最大値「9度」及び最小値「-3度」を取得してもよい。そして、その最大値「9度」及び最小値「-3度」も含む表示画像が生成されて出力されてもよい。このようにすることで、作業者は、線状体10aの取り回しの変更に応じた現在のねじれ量だけでなく、以前の教示データに応じたねじれ量についても確認することができる。そのため、例えば、線状体10aの取り回しの変更によって、現在のねじれ量が許容範囲内になったとしても、以前の教示データに応じたねじれ量が許容範囲内にならない場合には、再度、線状体10aの取り回しの変更を行うことによって、現在のねじれ量も、過去のねじれ量もすべて所望の範囲内になるように調整することもできるようになる。なお、例えば、受け付けられた取り回しの変更内容を示す情報も、教示データに対応付けられて教示データ記憶部32に蓄積されてもよい。
【0061】
以上のように、本実施の形態による教示データ蓄積装置3によれば、仮想ロボットの3次元モデル10を用いた教示の際に、線状体10aのねじれ量について知ることができる。したがって、ねじれ量の絶対値が大きい場合には、例えば、3次元モデル10の手先の姿勢を変更することによって、ねじれ量の絶対値がより小さくなるように教示を行うこともできる。また、姿勢の変更のみでは、ねじれ量の絶対値を減少させることができない場合には、線状体10aの取り回しを変更することによって、ねじれ量の絶対値を減少させることもできる。その際に、例えば、教示済みの教示点に対応する教示データに応じたねじれ量の代表値も取得されて出力されることによって、教示済みの各教示点についても、ねじれ量が所望の範囲内となるようにすることもできる。また、ねじれ量を色で表示した場合には、作業者は、ねじれ量を示す数値を確認しなくても、直感的にねじれ量について知ることができるようになる。
【0062】
なお、本実施の形態では、作業者が、試行錯誤しながら線状体10aの取り回しを変更する場合について主に説明したが、そうでなくてもよい。例えば、教示データに対応するねじれ量の代表値がゼロに近づくようにするための線状体10aの取り回しの変更が提案され、それに応じて、取り回しの変更が行われてもよい。この場合には、教示データ蓄積装置3は、例えば、図5で示されるように、特定部39をさらに備えていてもよい。この特定部39は、教示データ記憶部32で記憶されている教示データに対応するねじれ量の代表値がゼロに近づくようにするための線状体10aの取り回しの変更を特定してもよい。教示データに対応するねじれ量の代表値がゼロに近づくようにするための線状体10aの取り回しの変更とは、その変更前の教示データに対応するねじれ量の代表値より、その変更後の教示データに対応するねじれ量の代表値の方がゼロに近くなるような取り回しの変更であってもよい。特定部39は、例えば、受付部34によって特定の指示が受け付けられたことに応じて、その特定を行ってもよい。特定部39による線状体10aの取り回しの変更に関する特定が行われる場合には、出力部36は、特定部39によって特定された線状体10aの取り回しの変更に関する出力をも行ってもよい。この出力は、例えば、特定された取り回しの変更内容を示す情報の出力であってもよい。この出力は、例えば、特定された取り回しの変更内容を示す表示画像の出力であってもよく、特定された取り回しの変更内容を示す音声等の出力であってもよい。その表示画像は、例えば、画像生成部35によって生成されてもよい。
【0063】
特定部39は、一例として、線状体10aの取り回しの変更について、教示データごとの変更後のねじれ量の代表値に応じた目的関数を最適化することによって、取り回しの変更を決定してもよい。すなわち、特定部39は、目的関数を最適化する最適解である取り回しの変更を、教示データに対応するねじれ量の代表値がゼロに近づくようにするための線状体10aの取り回しの変更として特定してもよい。目的関数の最適化は、例えば、目的関数の最小化であってもよい。ねじれ量の代表値が、ねじれ量の絶対値の最大値である場合には、目的関数は、例えば、ねじれ量の絶対値の最大値の増加関数であってもよい。例えば、図4で示されるように教示データごとのねじれ量が取得された場合には、特定部39は、ねじれ量の絶対値の最大値が最小化するように、初期ねじれ量「-13度」を特定してもよい。その特定結果の出力に応じて、作業者は、変更後の取り回しとして、初期ねじれ量「-13度」を教示データ蓄積装置3に入力してもよい。このようにすることで、作業者が試行錯誤を行わなくても、線状体10aの取り回しに関する適切な変更を行うことができるようになる。
【0064】
また、本実施の形態において、画像生成部35は、例えば、仮想ロボットの3次元モデル10における筐体内部に存在する線状体10aも透視して見えるように表示するための表示画像を生成してもよい。このようにすることで、作業者は、筐体内部も含めて線状体10aの形状を確認することができるようになり、例えば、線状体10aに無理な力が掛からないような教示を行うこともできるようになる。なお、筐体内部に存在する線状体10aとは、例えば、筐体の外部からは見えない線状体10aのことであってもよい。また、筐体内部に存在する線状体10aとは、例えば、線状体10aの一部であってもよい。
【0065】
また、本実施の形態では、ねじれ量取得部38によって、リアルタイムでねじれ量が取得される場合について主に説明したが、そうでなくてもよい。例えば、教示データが蓄積されるごとに、ねじれ量が取得されてもよい。この場合には、作業者は、教示指示の入力後に、その教示に応じたねじれ量が許容範囲を超えていると判断したときに、最新の教示をキャンセルして、再度、教示を行ってもよい。
【0066】
また、本実施の形態では、溶接のための教示が行われる場合について主に説明したが、それ以外の目的で教示が行われてもよいことは言うまでもない。溶接以外の教示が行われる場合には、上記した溶接線は、例えば、作業線や、ロボットの手先の移動経路などであってもよい。
【0067】
また、本実施の形態では、基準マーカ6が2次元の所定の画像である場合について主に説明したが、そうでなくてもよい。マーカレスARと同様に、基準マーカとして、実環境に存在する物が用いられてもよい。実環境に存在する物は特に限定されるものではないが、例えば、実ロボットの設置に用いられる土台部分や、ロボットを配置する位置の近傍に存在する治具等であってもよい。また、各面にマーカを貼り付けた立体形状(例えば、直方体形状など)の物体におけるマーカを、基準マーカとしてもよい。また、基準マーカは、例えば、土台や治具などのように、3次元のものであってもよい。
【0068】
また、本実施の形態では、線状体10aの取り回しを変更できる場合について主に説明したが、そうでなくてもよい。線状体10aの取り回しは変更できなくてもよい。この場合であっても、3次元モデル10の手先の姿勢を適宜変更することなどによって、ねじれ量が少なくなる教示を行うことができる。
【0069】
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、または、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。例えば、教示データ蓄積装置3の少なくとも一部の構成は、物理的には、ディスプレイを有する装置などに含まれてもよい。したがって、図1で示される装置の切り分けは、物理的な装置に応じたものではなく、機能に応じた便宜上のものであると考えてもよい。
【0070】
また、上記実施の形態において、教示データ蓄積装置3に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、または、別々のデバイスを有してもよい。
【0071】
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、または、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。また、そのプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、または分散処理を行ってもよい。
【0072】
また、以上の実施の形態は、本発明を具体的に実施するための例示であって、本発明の技術的範囲を制限するものではない。本発明の技術的範囲は、実施の形態の説明ではなく、特許請求の範囲によって示されるものであり、特許請求の範囲の文言上の範囲及び均等の意味の範囲内での変更が含まれることが意図される。
【符号の説明】
【0073】
3 教示データ蓄積装置、31 モデル記憶部、32 教示データ記憶部、33 位置関係取得部、34 受付部、35 画像生成部、36 出力部、37 蓄積部、38 ねじれ量取得部、39 特定部
図1
図2
図3
図4
図5