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

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

▶ 株式会社日立製作所の特許一覧

特開2023-130586修正装置、修正方法、および修正プログラム
<>
  • 特開-修正装置、修正方法、および修正プログラム 図1
  • 特開-修正装置、修正方法、および修正プログラム 図2
  • 特開-修正装置、修正方法、および修正プログラム 図3
  • 特開-修正装置、修正方法、および修正プログラム 図4
  • 特開-修正装置、修正方法、および修正プログラム 図5
  • 特開-修正装置、修正方法、および修正プログラム 図6
  • 特開-修正装置、修正方法、および修正プログラム 図7
  • 特開-修正装置、修正方法、および修正プログラム 図8
  • 特開-修正装置、修正方法、および修正プログラム 図9
  • 特開-修正装置、修正方法、および修正プログラム 図10
  • 特開-修正装置、修正方法、および修正プログラム 図11
  • 特開-修正装置、修正方法、および修正プログラム 図12
  • 特開-修正装置、修正方法、および修正プログラム 図13
  • 特開-修正装置、修正方法、および修正プログラム 図14
  • 特開-修正装置、修正方法、および修正プログラム 図15
  • 特開-修正装置、修正方法、および修正プログラム 図16
  • 特開-修正装置、修正方法、および修正プログラム 図17
  • 特開-修正装置、修正方法、および修正プログラム 図18
  • 特開-修正装置、修正方法、および修正プログラム 図19
  • 特開-修正装置、修正方法、および修正プログラム 図20
  • 特開-修正装置、修正方法、および修正プログラム 図21
  • 特開-修正装置、修正方法、および修正プログラム 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023130586
(43)【公開日】2023-09-21
(54)【発明の名称】修正装置、修正方法、および修正プログラム
(51)【国際特許分類】
   B25J 19/06 20060101AFI20230913BHJP
【FI】
B25J19/06
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022034951
(22)【出願日】2022-03-08
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】武田 博樹
(72)【発明者】
【氏名】梶田 大毅
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS11
3C707LS15
3C707MS08
3C707MS14
(57)【要約】
【課題】複数の作用位置で干渉しないようにエンドエフェクタの寸法を修正すること。
【解決手段】修正装置は、エンドエフェクタに関する設計情報と、前記エンドエフェクタにより作用される複数の作用位置を有するワークに関する設計情報と、を取得する取得部と、前記エンドエフェクタに関する設計情報および前記ワークに関する設計情報に基づいて、前記ワークと干渉せずに前記ワークの作用位置で作用可能に配置された前記エンドエフェクタの第1姿勢を、前記作用位置ごとに算出する算出部と、前記算出部による算出結果に基づいて、前記エンドエフェクタを構成する部品の寸法を修正する修正部と、を有することを特徴とする。
【選択図】図1
【特許請求の範囲】
【請求項1】
エンドエフェクタに関する設計情報と、前記エンドエフェクタにより作用される複数の作用位置を有するワークに関する設計情報と、を取得する取得部と、
前記エンドエフェクタに関する設計情報および前記ワークに関する設計情報に基づいて、前記ワークと干渉せずに前記ワークの作用位置で作用可能に配置された前記エンドエフェクタの第1姿勢を、前記作用位置ごとに算出する算出部と、
前記算出部による算出結果に基づいて、前記エンドエフェクタを構成する部品の寸法を修正する修正部と、
を有することを特徴とする修正装置。
【請求項2】
請求項1に記載の修正装置であって、
前記修正部は、前記複数の作用位置のすべてにおいて前記第1姿勢が存在するか否かを判断し、前記複数の作用位置のすべてにおいて前記第1姿勢が存在する場合、修正後の前記エンドエフェクタに関する設計情報を出力する、
ことを特徴とする修正装置。
【請求項3】
請求項1に記載の修正装置であって、
前記修正部は、前記複数の作用位置のすべてにおいて前記第1姿勢が存在するか否かを判断し、前記複数の作用位置のすべてにおいて前記第1姿勢が存在する場合、前記第1姿勢と前記作用位置とを関連付けた姿勢情報を出力する、
ことを特徴とする修正装置。
【請求項4】
請求項1に記載の修正装置であって、
前記修正部は、前記複数の作用位置のすべてにおいて前記第1姿勢が存在するか否かを判断し、前記第1姿勢が存在しない作用位置が1つでも存在する場合、前記部品の寸法を修正する、
ことを特徴とする修正装置。
【請求項5】
請求項4に記載の修正装置であって、
前記算出部は、前記第1姿勢が存在しない作用位置での前記エンドエフェクタの第2姿勢について、前記ワークと前記エンドエフェクタとの干渉が解消する干渉解消方向を特定し、前記エンドエフェクタを構成する部品群の中から、前記干渉解消方向と前記部品群の各々の部品が有する方向との角度差に基づいて、修正対象部品を選択し、
前記修正部は、前記修正対象部品の寸法を修正する、
ことを特徴とする修正装置。
【請求項6】
請求項5に記載の修正装置であって、
前記算出部は、前記角度差が最小となる方向を有する前記部品を前記修正対象部品として選択する、
ことを特徴とする修正装置。
【請求項7】
請求項6に記載の修正装置であって、
前記算出部は、前記第2姿勢が複数存在する場合、前記第2姿勢ごとに前記干渉解消方向を特定し、前記干渉解消方向ごとに前記角度差が最小となる方向を有する部品候補を特定し、前記部品候補の中から前記角度差が最小となる方向を有する前記部品を前記修正対象部品として選択する、
ことを特徴とする修正装置。
【請求項8】
請求項6に記載の修正装置であって、
前記算出部は、前記第2姿勢が複数存在する場合、前記第2姿勢ごとに前記干渉解消方向と、前記ワークと前記エンドエフェクタとの干渉領域と、を特定し、前記干渉領域の体積が最大となる特定の干渉解消方向との角度差が最小となる方向を有する前記部品を、前記修正対象部品として選択する、
ことを特徴とする修正装置。
【請求項9】
請求項6に記載の修正装置であって、
前記算出部は、前記第2姿勢が複数存在する場合、前記第2姿勢ごとに前記干渉解消方向と、前記ワークと前記エンドエフェクタとの干渉領域と、を特定し、前記干渉領域の体積が最小となる特定の干渉解消方向との角度差が最小となる方向を有する前記部品を、前記修正対象部品として選択する、
ことを特徴とする修正装置。
【請求項10】
請求項4に記載の修正装置であって、
前記修正部は、前記エンドエフェクタに関する設計情報を、前記エンドエフェクタの修正後の寸法で更新し、更新後の前記エンドエフェクタに関する設計情報に基づいて、前記複数の作用位置のすべてにおいて前記第1姿勢が存在するか否かを判断し、前記第1姿勢が存在しない作用位置が1つでも存在する場合、前記部品の寸法を修正する、
ことを特徴とする修正装置。
【請求項11】
請求項1に記載の修正装置であって、
前記取得部は、前記エンドエフェクタが装着されるロボットアームに関する設計情報を取得し、
前記ロボットアームに関する設計情報と、前記修正部による修正後の前記エンドエフェクタに関する設計情報と、前記複数の作用位置の各々の作用位置における前記第1姿勢と、に基づいて、前記ロボットアームに装着された前記エンドエフェクタを第1作用位置から第2作用位置へ移動させる前記ロボットアームの軌道を生成する生成部と、
を有することを特徴とする修正装置。
【請求項12】
請求項11に記載の修正装置であって、
前記生成部は、前記エンドエフェクタが、前記第1作用位置の前記第1姿勢を前記第1作用位置でとり、前記第2作用位置の前記第1姿勢を前記第2作用位置でとるように、前記ロボットアームの軌道を生成する、
ことを特徴とする修正装置。
【請求項13】
請求項12に記載の修正装置であって、
前記生成部は、前記第1作用位置の前記第1姿勢が複数存在する場合、前記第1作用位置の前記第1姿勢の各々から前記第2作用位置の前記第1姿勢への前記ロボットアームの姿勢変化に基づいて、前記第1作用位置の複数の前記第1姿勢の中から軌道生成対象となる前記第1作用位置の前記第1姿勢を特定する、
ことを特徴とする修正装置。
【請求項14】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する修正装置による修正方法であって、
前記プロセッサは、
エンドエフェクタに関する設計情報と、前記エンドエフェクタにより作用される複数の作用位置を有するワークに関する設計情報と、を取得する取得処理と、
前記エンドエフェクタに関する設計情報および前記ワークに関する設計情報に基づいて、前記ワークと干渉せずに前記ワークの作用位置で作用可能に配置された前記エンドエフェクタの第1姿勢を、前記作用位置ごとに算出する算出処理と、
前記算出処理による算出結果に基づいて、前記エンドエフェクタを構成する部品の寸法を修正する修正処理と、
を実行することを特徴とする修正方法。
【請求項15】
プロセッサに、
エンドエフェクタに関する設計情報と、前記エンドエフェクタにより作用される複数の作用位置を有するワークに関する設計情報と、を取得する取得処理と、
前記エンドエフェクタに関する設計情報および前記ワークに関する設計情報に基づいて、前記ワークと干渉せずに前記ワークの作用位置で作用可能に配置された前記エンドエフェクタの第1姿勢を、前記作用位置ごとに算出する算出処理と、
前記算出処理による算出結果に基づいて、前記エンドエフェクタを構成する部品の寸法を修正する修正処理と、
を実行させることを特徴とする修正プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを修正する修正装置、修正方法、および修正プログラムに関する。
【背景技術】
【0002】
既存の製造ラインにおいて生産する品種を変更する際に、ロボットの手先に装着した溶接ガンや開閉把持ハンドのようなエンドエフェクタとワークとの干渉が避けられず、エンドエフェクタの寸法を修正する工数が発生する場合がある。
【0003】
また、下記特許文献1は、冗長性を有する作業対象物に対してロボットの腕が届く範囲が最大限となるように産業用ロボットの位置、姿勢を制御する産業用ロボットの位置制御方法を開示する。この方法は、6軸以上の自由度を持ち、空間上の直交座標系で目標制御点(マトリックス:Tcp)の位置、姿勢を与えられたとき、Tcp=TbTwTfTe(Tbは3本の基本軸J1、J2、J3で決定される位置マトリックス;Twは3本の手首軸でとる姿勢マトリックス;Tfは工具の取付けフランジマトリックス;Teは工具のエンドエフェクタマトリックス)の関係からロボットの位置を制御する。この場合Tbの取り得る位置集合である、目標のTcpの位置を原点としたベクトルVの冗長軸方向の点Pvを原点とした円周上で、ロボット演算原点T0からの距離が最小となる点Pb’をTcpの直交成分となるように目標TcpをTcp’として求め直し、このTcp’を逆運動学変換し、導出した各関節座標系の各軸の位置を動作目標とする。
【0004】
また、下記特許文献2は、ロボットのハンド装置を開示する。このハンド装置は、ロボットアームに装着する本体フレームに、固定側ロケートピンと、移動自在な可動側ロケートピンと、可動側ロケートピンの移動を拘束解除する固定手段を備え、不動の位置に、可動側ロケートピンが係脱する位置出し手段を備えたハンド装置とし、ロボットの動作制御を利用して両ロケートピンの位置関係を無段階に調整可能にし、1台で多種類のワークのハンドリングを可能にする。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002-301672号公報
【特許文献2】特開2000-167791号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しなしながら、上述した従来技術では、複数の作用位置のすべてにおいてエンドエフェクタがワークと干渉しないような姿勢をとることが可能な自動修正については考慮されていない。
【0007】
本発明は、複数の作用位置で干渉しないようにエンドエフェクタの寸法を修正することを目的とする。
【課題を解決するための手段】
【0008】
本願において開示される発明の一側面となる修正装置は、エンドエフェクタに関する設計情報と、前記エンドエフェクタにより作用される複数の作用位置を有するワークに関する設計情報と、を取得する取得部と、前記エンドエフェクタに関する設計情報および前記ワークに関する設計情報に基づいて、前記ワークと干渉せずに前記ワークの作用位置で作用可能に配置された前記エンドエフェクタの第1姿勢を、前記作用位置ごとに算出する算出部と、前記算出部による算出結果に基づいて、前記エンドエフェクタを構成する部品の寸法を修正する修正部と、を有することを特徴とする。
【発明の効果】
【0009】
本発明の代表的な実施の形態によれば、複数の作用位置で干渉しないようにエンドエフェクタの寸法を修正することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
図1図1は、実施例1にかかる修正装置によるエンドエフェクタの寸法の修正例を示す説明図である。
図2図2は、修正装置のハードウェア構成例を示すブロック図である。
図3図3は、エンドエフェクタ設計情報の一例を示す説明図である。
図4図4は、ワークの一例を示す斜視図である。
図5図5は、ワーク設計情報の一例を示す説明図である。
図6図6は、作用位置情報の一例を示す説明図である。
図7図7は、探索パラメタ情報の一例を示す説明図である。
図8図8は、実施例1にかかる修正装置による修正処理手順例を示すフローチャートである。
図9図9は、図8に示した配置可能エンドエフェクタ姿勢算出処理(ステップS802)の詳細な処理手順例を示すフローチャートである。
図10図10は、図8に示したエンドエフェクタ寸法修正処理(ステップS803)の詳細な処理手順例を示すフローチャートである。
図11図11は、配置可能エンドエフェクタを示すエンドエフェクタ設計情報300の一例を示す説明図である。
図12図12は、配置可能エンドエフェクタ姿勢情報の一例を示す説明図である。
図13図13は、寸法修正情報の一例を示す説明図である。
図14図14は、実施例1にかかる出力データを表示する表示画面の一例を示す説明図である。
図15図15は、ロボットアーム、エンドエフェクタ、ワークおよび治具の配置関係の一例を示す説明図である。
図16図16は、ロボットアームの軌道算出例を示す説明図である。
図17図17は、ロボットアーム設計情報の一例を示す説明図である。
図18図18は、治具設計情報の一例を示す説明図である。
図19図19は、実施例2にかかる修正装置による修正処理手順例を示すフローチャートである。
図20図20は、図19に示したロボットアーム軌道生成処理(ステップS1904)の詳細な処理手順例を示すフローチャートである。
図21図21は、ロボットアーム軌道情報の一例を示す説明図である。
図22図22は、実施例2にかかる出力データを表示する表示画面の一例を示す説明図である。
【発明を実施するための形態】
【0011】
修正装置は、設計情報からエンドエフェクタの寸法を自動修正するコンピュータであり、設計段階において、エンドエフェクタの寸法を修正する工数を削減することができる。エンドエフェクタは、6軸アームのような産業用ロボットのロボットアームの先端に取り付ける機器であり、たとえば、溶接ガン、開閉把持ハンド、トルクドライバ、エンドミルがある。
【0012】
本明細書のエンドエフェクタは、特に断りがない限り実物のエンドエフェクタではなく、エンドエフェクタの設計情報、つまり、3次元のグラフィックデータ(たとえば、3次元CADデータ)である。エンドエフェクタの作業対象となるワークについても同様である。また、エンドエフェクタやワークの3次元のグラフィックデータはそれぞれローカル座標系で規定されるが、修正装置で寸法修正を実行する場合、座標変換によりエンドエフェクタやワークは共通のグローバル座標系に配置される。エンドエフェクタが装着されるロボットアームやワークが保持される治具についても同様である。
【0013】
また、エンドエフェクタとワークとの干渉とは、文字通りエンドエフェクタとワークとが重複することを示すが、ワークの作用位置でのエンドエフェクタの接触は含まない。たとえば、エンドエフェクタが開閉把持ハンドである場合、エンドエフェクタは作用位置を把持することでワークと接触するが、この接触は、「干渉」ではない。すなわち、干渉とは、作用位置以外でエンドエフェクタとワークとが重複することである。
【実施例0014】
図1は、実施例1にかかる修正装置によるエンドエフェクタの寸法の修正例を示す説明図である。図1に示すエンドエフェクタ100は、略Cの字形状をした溶接ガンであり、支持部101を有する。支持部101の両端で屈曲した一対の溶接部102,103の先端104,105が対応しあうように屈曲されている。先端104,105間の空隙にワーク110が挿入された状態が、エンドエフェクタ100が溶接可能な状態である。
【0015】
なお、支持部101、一対の溶接部102,103で囲まれた空洞部の奥行きを懐深さdといい、一対の溶接部102,103の長さである。また、wは支持部101、一対の溶接部102,103の幅であり、gは一対の溶接部102,103であり、支持部101の長さである。
【0016】
(1)配置可能エンドエフェクタ姿勢算出
修正装置は、まず、ワーク110を配置可能なエンドエフェクタ100の姿勢を算出する。先端104,105で溶接されるワーク110の位置を作用位置apと称す。先端104,105および作用位置apを通る直線をワーク110の法線111とする。修正装置は、法線111を回転軸としてワーク110を小刻みに回転させ、ワーク110が支持部101に干渉する場合のエンドエフェクタ100の姿勢を計算する。この計算により、干渉領域120が検出されたとする。干渉領域120とは、修正装置が計算したワーク110と支持部101との重複領域である。
【0017】
(2)エンドエフェクタ寸法修正
修正装置は、干渉領域120が検出されると、干渉が解消される方向(干渉解消方向)130に一対の溶接部102,103を伸ばすことで、エンドエフェクタ100の寸法を修正して干渉を解消する。具体的には、たとえば、修正装置は、懐深さdをdr(>d)に修正する。
【0018】
<修正装置のハードウェア構成例>
図2は、修正装置のハードウェア構成例を示すブロック図である。修正装置200は、プロセッサ201と、記憶デバイス202と、入力デバイス203と、出力デバイス204と、通信インターフェース(通信IF)205と、を有する。プロセッサ201、記憶デバイス202、入力デバイス203、出力デバイス204、および通信IF205は、バス206により接続される。プロセッサ201は、修正装置200を制御する。記憶デバイス202は、プロセッサ201の作業エリアとなる。また、記憶デバイス202は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス202としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス203は、データを入力する。入力デバイス203としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナ、マイク、センサがある。出力デバイス204は、データを出力する。出力デバイス204としては、たとえば、ディスプレイ、プリンタ、スピーカがある。通信IF205は、ネットワークと接続し、データを送受信する。
【0019】
<エンドエフェクタ設計情報>
図3は、エンドエフェクタ設計情報の一例を示す説明図である。エンドエフェクタ設計情報は、修正装置200の記憶デバイス202または修正装置200と通信可能な他のコンピュータの記憶デバイスに格納される。
【0020】
エンドエフェクタ設計情報300は、エンドエフェクタ100の設計情報、つまり、エンドエフェクタ100の3次元形状を示すグラフィックデータである。図3では、エンドエフェクタ設計情報300をテーブル形式で表現する。
【0021】
エンドエフェクタ設計情報300は、フィールドとして、部品301と、配置位置姿勢302と、面情報303と、寸法304と、を有する。部品301は、エンドエフェクタ100を構成する1つの要素(構成要素)であり、部品301を一意に特定する値として「Pe1」、「Pe2」、「Pe3」、…を保持する。具体的には、たとえば、「Pe1」は支持部101を示し、「Pe2」は溶接部102を示し、「Pe3」は溶接部103を示す。
【0022】
配置位置姿勢302は、エンドエフェクタ100をそのローカル座標系に配置した場合の部品301の姿勢であり、配置位置姿勢302を一意に特定する値として「Qe1」、「Qe2」、「Qe3」、…を保持する。具体的には、たとえば、「Qe1」は支持部101の頂点座標値群であり、「Qe2」は溶接部102の頂点座標値群であり、「Qe3」は溶接部103の頂点座標値群である。
【0023】
面情報303は、部品301の面に関する情報であり、面情報303を一意に特定する値として「Se11」、「Se12」、…、「Se21」、「Se22」、…、「Se31」、「Se32」、…を保持する。具体的には、たとえば、「Se11」、「Se12」、…の各々は、支持部101の面を構成するポリゴンデータを示し、当該ポリゴンデータの頂点座標値群および法線ベクトルを含む。また、「Se21」、「Se22」、…の各々は、溶接部102の面を構成するポリゴンデータを示し、当該ポリゴンデータの頂点座標値群および法線ベクトルを含む。また、「Se31」、「Se32」、…の各々は、溶接部103の面を構成するポリゴンデータを示し、当該ポリゴンデータの頂点座標値群および法線ベクトルを含む。
【0024】
寸法304は、部品301の長さに関する情報であり、サブフィールドとして、種類341と、方向342と、数値343と、を有する。
【0025】
種類341は、寸法304を分類した複数の組み合わせであり、種類341を一意に特定する値として、たとえば、上述した懐深さd、幅w、間隔gがある。部品301が「Pe1」の場合、溶接部102であるため、種類341は懐深さdおよび幅wの組み合わせとなる。部品301が「Pe2」の場合、支持部101であるため、種類341は間隔gおよび幅wの組み合わせとなる。
【0026】
方向342は、エンドエフェクタ100をローカル座標系に配置した場合の種類341によって特定される寸法304の向きを示す。たとえば、部品301が「Pe1」(支持部101)の種類341である間隔gの方向342を一意に特定する値dg1は、図1に示したように、Z方向を示すベクトル(0,0,1)である。また、その幅wの方向342を一意に特定する値dw1は、図1に示したように、Y方向を示すベクトル(0,1,0)である。
【0027】
また、部品301が「Pe2」(溶接部102)の種類341である懐深さdの方向342を一意に特定する値dd2は、図1に示したように、X方向を示すベクトル(1,0,0)である。また、その幅wの方向342を一意に特定する値dw2は、図1に示したように、Y方向を示すベクトル(0,1,0)である。
【0028】
また、部品301が「Pe3」(溶接部103)の種類341である懐深さdの方向342を一意に特定する値dd3は、図1に示したように、X方向を示すベクトル(1,0,0)である。また、その幅wの方向342を一意に特定する値dw3は、図1に示したように、Y方向を示すベクトル(0,1,0)である。
【0029】
数値343は、種類341によって特定される寸法304の値である。たとえば、部品301が「Pe1」(支持部101)の種類341である間隔gの数値343を一意に特定する値v(dg1)は、たとえば、500.0[mm]である。また、その幅wの数値343を一意に特定する値v(dw1)は、たとえば、50.0[mm]である。
【0030】
また、部品301が「Pe2」(溶接部102)の種類341である懐深さdの数値343を一意に特定する値v(dd2)は、たとえば、300.0[mm]である。また、その幅wの数値343を一意に特定する値v(dw2)は、たとえば、50.0[mm]である。
【0031】
また、部品301が「Pe3」(溶接部103)の種類341である懐深さdの数値343を一意に特定する値v(dd3)は、たとえば、300.0[mm]である。また、その幅wの数値343を一意に特定する値v(dw3)は、たとえば、50.0[mm]である。
【0032】
<ワーク110>
図4は、ワーク110の一例を示す斜視図である。ワーク110は、エンドエフェクタ100の作用対象であり、1以上の作用位置ap1~ap6(図4では例として6個)を有する。作用位置ap1~ap6を区別しない場合は、単に、作用位置apと表記する。本例のエンドエフェクタ100は溶接ガンであるため、作用位置apは溶接位置となるが、エンドエフェクタ100が開閉把持ハンドであれば把持位置、トルクドライバであればネジの締め付け位置、エンドミルであれば穿孔位置である。
【0033】
図5は、ワーク設計情報の一例を示す説明図である。ワーク設計情報500は、修正装置200の記憶デバイス202または修正装置200と通信可能な他のコンピュータの記憶デバイスに格納される。
【0034】
ワーク設計情報500は、ワーク110の設計情報、つまり、ワーク110の3次元形状を示す3次元のグラフィックデータである。図5では、ワーク設計情報500をテーブル形式で表現する。
【0035】
ワーク設計情報500は、フィールドとして、部品501と、配置位置姿勢502と、面情報503と、を有する。部品501は、ワーク110を構成する1つの要素(構成要素)であり、ワーク110を一意に特定する値として「Pw1」、…を保持する。具体的には、たとえば、「Pw1」はワーク110の本体である。
【0036】
配置位置姿勢502は、ワーク110をそのローカル座標系に配置した場合の部品501の姿勢であり、配置位置姿勢502を一意に特定する値として「Qw1」、…を保持する。具体的には、たとえば、「Qe1」はワーク110の頂点座標値群である。
【0037】
面情報503は、部品501の面に関する情報であり、面情報503を一意に特定する値として「Sw11」、「Sw12」、…を保持する。具体的には、たとえば、「Sw11」、「Sw12」、…の各々は、ワーク110の面を構成するポリゴンデータを示し、当該ポリゴンデータの頂点座標値群および法線ベクトルを含む。
【0038】
図6は、作用位置情報600の一例を示す説明図である。図6では、作用位置情報600をテーブル形式で表現する。作用位置情報600は、フィールドとして、作用位置ID601と、座標値602と、を有する。作用位置ID601は、作用位置apを一意に特定する識別情報であり、値として作用位置ap1~ap6を保持する。座標値602は、ワーク110のローカル座標系における作用位置ap1~ap6の3次元位置を示す。
【0039】
<探索パラメタ情報>
図7は、探索パラメタ情報の一例を示す説明図である。探索パラメタ情報700は、修正装置200の記憶デバイス202または修正装置200と通信可能な他のコンピュータの記憶デバイスに格納される。図7では、探索パラメタ情報700をテーブル形式で表現する。
【0040】
探索パラメタ情報700は、干渉領域120を探索するためのパラメタの集合であり、フィールドとして、探索パラメタ種701と、値702と、を有する。探索パラメタ種701は、探索パラメタの種類を示す。探索パラメタ種701には、たとえば、探索角度刻み数aと、修正刻み距離lと、修正最大回数kと、いう3種類の探索パラメタがある。
【0041】
探索角度刻み数aは、エンドエフェクタ100を法線111を回転軸として回転させる場合の刻み数である。2π/aがその刻み角度となる。修正刻み距離lは、寸法304を修正する刻み距離である。修正最大回数kは、図1に示した(2)エンドエフェクタ寸法修正の最大実行回数である。
【0042】
値702は、探索パラメタ種701によって特定される探索角度刻み数a、修正刻み距離lおよび修正最大回数kの設定値である。値702は、ユーザが入力デバイス203を操作することで設定可能である。
【0043】
<修正処理手順>
図8は、実施例1にかかる修正装置200による修正処理手順例を示すフローチャートである。修正装置200は、データ取得処理(ステップS801)を実行する。具体的には、たとえば、修正装置200は、取得部801として、エンドエフェクタ設計情報300、ワーク設計情報500、作用位置情報600および探索パラメタ情報700を読み込む。なお、エンドエフェクタ100およびワーク110は、共通のグローバル座標系に配置されるため、エンドエフェクタ設計情報300、ワーク設計情報500、および作用位置情報600で規定された座標値は、変換される。
【0044】
つぎに、修正装置200は、算出部802として、配置可能エンドエフェクタ姿勢算出処理を実行する(ステップS802)。具体的には、たとえば、修正装置200は、図1に示した(1)配置可能エンドエフェクタ姿勢算出を実行する。配置可能エンドエフェクタ姿勢算出処理(ステップS802)の詳細については、図9で後述する。
【0045】
つぎに、修正装置200は、修正部803として、エンドエフェクタ寸法修正処理を実行する(ステップS803)。具体的には、たとえば、修正装置200は、図1に示した(2)エンドエフェクタ寸法修正を実行する。エンドエフェクタ寸法修正処理(ステップS803)の詳細については、図10で後述する。
【0046】
なお、取得部801、算出部802および修正部803は、具体的には、たとえば、図2に示した記憶デバイス202に記憶されたプログラムをプロセッサ201に実行させることにより実現され、それぞれステップS801~S803を実行する。
【0047】
図9は、図8に示した配置可能エンドエフェクタ姿勢算出処理(ステップS802)の詳細な処理手順例を示すフローチャートである。まず、修正装置200は、作用位置情報600の全作用位置ap1~apn(nは1以上の整数で、作用位置情報600のエントリ数、すなわち、作用位置apの総数)のループ変数iをi=1に設定する(ステップS901)。ステップS901では、ステップS905で処理が戻されるとループ変数iをインクリメントする。
【0048】
つぎに、修正装置200は、エンドエフェクタ100の先端104,105が作用位置apiにおいてワーク110表面に垂直に接するようにエンドエフェクタ100を配置する(ステップS902)。これにより、図1に示したように、先端104,105および作用位置apiが法線111上に位置するようになる。
【0049】
つぎに、修正装置200は、エンドエフェクタ100を、作用位置apiにおいて法線111を回転軸として2π/aずつ回転させ、当該回転の都度、エンドエフェクタ100の姿勢についてワーク110との干渉を算出する(ステップS903)。すなわち、修正装置200は、エンドエフェクタ100の探索角度刻み数a個の姿勢についてワーク110との干渉を計算する。このように、修正装置200は、エンドエフェクタ100の姿勢を固定した状態で、作用位置apiを固定したままワーク110の姿勢を変更させる。
【0050】
この干渉計算では、修正装置200は、エンドエフェクタ姿勢情報、干渉領域情報、および干渉解消方向情報を算出する。エンドエフェクタ姿勢情報とは、2π/a刻みの回転ごとのエンドエフェクタ100の姿勢であり、具体的には、たとえば、グローバル座標系における2π/a刻みの回転ごとの部品301の配置位置姿勢302、面情報303、および寸法304である。
【0051】
干渉領域情報とは、エンドエフェクタ100とワーク110との3次元的な重複領域である干渉領域120を構成する情報である。具体的には、たとえば、干渉領域120は、干渉によりエンドエフェクタ100内部に位置することになったワーク110の表面であり、干渉領域情報は、エンドエフェクタ100内部に位置するワーク110表面の面情報503により規定される。また、干渉領域情報は、干渉領域120の体積も含む。
【0052】
干渉解消方向情報とは、干渉解消方向130を規定する情報であり、ワーク110と重複したエンドエフェクタ100の表面(たとえば、図1に示した干渉領域120のハッチングされた面)を構成するポリゴンデータの法線ベクトルである。法線ベクトルの平均が干渉解消方向130となる。このようにして、エンドエフェクタ100とワーク110との干渉の有無や干渉する場合にはその干渉領域120が特定される。
【0053】
すなわち、干渉解消方向130は、エンドエフェクタ100とワーク110との干渉が解消される方向であり、ワーク110が干渉解消方向130に移動してエンドエフェクタ100から離間すると、干渉領域120の体積が減少し、エンドエフェクタ100との干渉が解消される。修正装置200は、エンドエフェクタ寸法修正処理(ステップS803)において、ワーク110と干渉せずにエンドエフェクタ100が作用位置apで作用できるようエンドエフェクタ100の部品301の寸法を修正することになる。
【0054】
なお、干渉解消方向130は、エンドエフェクタ100とワーク110とが1回も干渉しなければ存在しないが、探索角度刻み数a個の姿勢で干渉計算されるため、1つの作用位置apにつき最大でa個存在する。
【0055】
つぎに、修正装置200は、ステップS903で算出されたエンドエフェクタ姿勢情報、干渉領域情報、および干渉解消方向情報を記憶デバイス202に記録する(ステップS904)。
【0056】
つぎに、修正装置200は、i=nであるか否かを判断し、i=nでなければステップS901に戻り、i=nであれば、配置可能エンドエフェクタ姿勢算出処理を終了する。
【0057】
図10は、図8に示したエンドエフェクタ寸法修正処理(ステップS803)の詳細な処理手順例を示すフローチャートである。まず、修正装置200は、修正最大回数kのループ変数jをi=1に設定する(ステップS1001)。ステップS1001では、ステップS1004で処理が戻されるとループ変数jをインクリメントする。
【0058】
つぎに、修正装置200は、全作用位置ap1~apnでワーク110と干渉しないエンドエフェクタ100の姿勢があるか否かを判断する(ステップS1002)。作用位置ap1~apnの各々でのワーク110と干渉しないエンドエフェクタ100の姿勢は同一姿勢である必要はない。すなわち、どのようなエンドエフェクタ100の姿勢であっても、現状(ループ変数j)のエンドエフェクタ100の形状で全作用位置ap1~apnに対しワーク110と干渉せずに作用できればよい。
【0059】
すなわち、全作用位置ap1~apnでワーク110と干渉しないエンドエフェクタ100の姿勢がない場合(ステップS1002:No)とは、探索角度刻み数a個のどの姿勢でもワーク110と干渉してしまう作用位置apが一つでもあることを示す。
【0060】
全作用位置ap1~apnでワーク110と干渉しないエンドエフェクタ100の姿勢がない場合(ステップS1002:No)、修正装置200は、エンドエフェクタ100の寸法304のうち、干渉解消方向130となす角度が最小となる方向342を寸法304に有する部品301を選択する。そして、修正装置200は、選択部品301の当該最も近い干渉解消方向130となす角度が最小となる方向342を有する寸法304の数値343を修正刻み距離lだけ増加する(ステップS1003)。
【0061】
たとえば、干渉解消方向130となす角度が最小となる方向342が、溶接部102の懐深さdの方向dd2であれば、修正装置200は、その数値v(dd2)を修正刻み距離lだけ増加する。なお、この場合、溶接部102と対となる溶接部103についても同様に、数値v(dd3)を修正刻み距離lだけ増加する。
【0062】
なお、干渉解消方向130は、探索角度刻み数a個の姿勢で干渉計算されるため、1つの作用位置apにつき最大でa個存在するため、干渉解消方向130も干渉ごとに存在する。このため、ステップS1003では、修正装置200は、干渉解消方向130ごとに角度差が最小となる部品301の候補を特定し、部品301の候補の中から角度差が最小となる部品301を修正対象部品として選択してもよい。
【0063】
また、干渉解消方向130が複数存在する場合、修正装置200は、干渉領域120の体積が最大となる干渉解消方向130となす角度が最小となる方向342を有する寸法304となる部品301を修正対象部品として選択してもよい。これにより、他の干渉解消方向130に対応する干渉領域120も消滅する可能性が高くなる。
【0064】
また、干渉解消方向130が複数存在する場合、修正装置200は、干渉領域120の体積が最小となる干渉解消方向130となす角度が最小となる方向342を有する寸法304となる部品301を修正対象部品として選択してもよい。これにより、エンドエフェクタ100の寸法の微調整が可能、換言すれば、寸法の過剰修正を抑制することができる。
【0065】
また、エンドエフェクタ100がワーク110と干渉する作用位置apが複数存在する場合、修正装置200は、いずれか1つの作用位置apを選択してステップS1003を実行する。
【0066】
このあと、修正装置200は、j=kであるか否かを判断し、j=kでなければステップS1001に戻り、j=kであれば、エンドエフェクタ寸法修正処理を終了する(ステップS1004)。この場合、k回修正しても、現状のエンドエフェクタ100の形状で全作用位置ap1~apnに対しワーク110と干渉せずに作用できないことになる。
【0067】
また、ステップS1002において、全作用位置ap1~apnでワーク110と干渉しないエンドエフェクタ100の姿勢がある場合(ステップS1002:Yes)、修正装置200は、配置可能エンドエフェクタ100、配置可能エンドエフェクタ姿勢、および寸法修正情報を更新して出力する(ステップS1005)。寸法修正情報とは、ステップS1003での増加分の修正刻み距離lである。
【0068】
具体的には、たとえば、修正装置200は、j=1の場合、配置可能エンドエフェクタ100を、ステップS1003で寸法修正されていないエンドエフェクタ100とし、j≧2の場合、配置可能エンドエフェクタ100を、(j-1)回目でステップS1003により寸法修正されたエンドエフェクタ100とする。
【0069】
また、修正装置200は、配置可能エンドエフェクタ姿勢情報を、j回目で全作用位置ap1~apnに対しワーク110と干渉しなかったエンドエフェクタ姿勢情報に更新する。
【0070】
また、修正装置200は、j=1の場合、寸法修正情報を、ステップS1003で寸法修正されていない寸法修正情報とし、j≧2の場合、寸法修正情報を、(j-1)回目でステップS1003により寸法修正されたときの寸法修正情報とする。これにより、エンドエフェクタ寸法修正処理(ステップS803)が終了する。
【0071】
<出力データ例>
つぎに、図11図14を用いて、ステップS1005の出力データの一例について説明する。なお、出力データは、出力デバイス204の一例である表示装置に表示されたり、通信IF205を介して他のコンピュータに送信され、当該他のコンピュータの表示装置に表示されたりする。
【0072】
図11は、配置可能エンドエフェクタ100を示すエンドエフェクタ設計情報300の一例を示す説明図である。図11では、部品301が「Pe2」(溶接部102)の懐深さdについての寸法304の数値343である「v(dd2)」と、部品301が「Pe3」(溶接部103)の懐深さdについての寸法304の数値343である「v(dd3)」と、が修正されたことを示している。
【0073】
図12は、配置可能エンドエフェクタ姿勢情報の一例を示す説明図である。配置可能エンドエフェクタ姿勢情報1200は、フィールドとして、作用位置ID601と、姿勢ID1201と、姿勢1202と、を有する。姿勢ID1201は、j回目で全作用位置ap1~apnに対しワーク110と干渉しなかったエンドエフェクタ100の姿勢1202を一意に特定する識別情報である。
【0074】
姿勢1202は、j回目で全作用位置ap1~apnに対しワーク110と干渉しなかったエンドエフェクタ100のグローバル座標系での配置位置を示し、たとえば、エンドエフェクタ100の頂点座標値の集合で規定される。
【0075】
図13は、寸法修正情報の一例を示す説明図である。寸法修正情報1300は、フィールドとして、種類341と、修正値1301と、を有する。修正値1301は、種類341で特定される長さ(懐深さd、間隔g、幅w、…)の修正分の値であり、修正刻み距離lの倍数となる。
【0076】
図14は、実施例1にかかる出力データを表示する表示画面の一例を示す説明図である。表示画面1400は、配置可能エンドエフェクタ姿勢情報1200と、寸法修正情報1300と、を表示する。また、配置可能エンドエフェクタ姿勢情報1200および寸法修正情報1300内のエンドエフェクタ100は、図11に示した修正後のエンドエフェクタ設計情報300に基づいて描画される。ワーク110は、ワーク設計情報500に基づいて描画される。
【0077】
また、表示画面1400は、修正刻み距離プルダウン1401と、単位プルダウン1402と、再計算実行ボタン1403と、を有する。修正刻み距離プルダウン1401は、入力デバイス203を操作することで修正刻み距離lを選択可能なユーザインタフェースである。修正刻み距離lを直接入力することも可能である。なお、図示はしないが、種類341ごとに修正刻み距離プルダウン1401を設けてもよい。これにより、種類341ごとに修正刻み距離lを異ならせることができる。
【0078】
単位プルダウン1402は、入力デバイス203を操作することで修正刻み距離lの単位を選択可能なユーザインタフェースである。再計算実行ボタン1403は、入力デバイス203を操作することでエンドエフェクタ寸法修正処理(ステップS803)の再実行を指示するユーザインタフェースである。再計算実行ボタン1404が押下されることで、修正刻み距離プルダウン1401で選択された修正刻み距離lでエンドエフェクタ寸法修正処理(ステップS803)が再実行される。
【0079】
このように、実施例1によれば、複数の作用位置で干渉しないように修正することができる。すなわち、どの作用位置apでもワーク110に作用することができるエンドエフェクタ100の寸法を、設計段階で事前に修正することができる。したがって、エンドエフェクタ100の寸法を修正する工数の削減を図ることができる。
【実施例0080】
つぎに、実施例2について説明する。実施例2にかかる修正装置200は、実施例1において、エンドエフェクタ100が装着されるロボットアームの軌道を算出する。これにより、修正済みのエンドエフェクタ100の姿勢で動かすことが可能なロボットアームの軌道を特定することができる。換言すれば、配置可能なエンドエフェクタ100の姿勢であったとしても、そのロボットアームの軌道が生成できなければ、有効な修正にはならない。このように、ロボットアームの軌道も考慮して、修正済みのエンドエフェクタ100の姿勢の有効性の向上を図ることができる。なお、ロボットアームが複数の作用位置apを経由する順番は、修正装置200に設定されているものとする。
【0081】
なお、実施例2では、実施例1との相違点を中心に説明するため、実施例1と共通部分については説明を省略する。また、ロボットアームの軌道算出自体についても既知技術であるため、説明を省略する。
【0082】
図15は、ロボットアーム、エンドエフェクタ100、ワーク110および治具の配置関係の一例を示す説明図である。ワーク110は、治具1500に保持される。治具1500は、台座1501と、台座1501上の4本の支持部材1502と、を有する。4本の支持部材1502は、ワーク110の4側面から挟むことにより、ワーク110の表面が略水平となるようにワーク110を保持する。
【0083】
ロボットアーム1510は、たとえば、6軸のマニピュレータであり、先端1511を有する。先端1511は、エンドエフェクタ100が着脱可能である。
【0084】
<ロボットアーム1510の軌道算出例>
図16は、ロボットアーム1510の軌道算出例を示す説明図である。図16では、説明を単純化するため、作用位置apをap1、ap3とする。配置可能エンドエフェクタ姿勢算出処理(ステップS802)およびエンドエフェクタ寸法修正処理(ステップS803)により、作用位置ap1については、姿勢ID1201がR11~R13の姿勢1202(以下、姿勢R11~R13と表記)が出力され、作用位置ap3については、姿勢ID1201がR21~R23の姿勢1202(以下、姿勢R23~R33と表記)が出力されたものとする。
【0085】
修正装置200は、配置可能エンドエフェクタ100の姿勢R11~R13と姿勢R31~R33との9通りの組み合わせ{(R11、R31)、(R11、R32)、(R11、R33)、(R12、R31)、(R12、R32)、(R12、R33)、(R13、R31)、(R13、R32)、(R13、R33)}の中から、いずれかの組み合わせを選択する。具体的には、たとえば、修正装置200は、ロボットアーム1510の姿勢変化が最小となる組み合わせを選択する。図16の例では、姿勢R11、R32の組み合わせが、ロボットアーム1510の姿勢変化が最小となる組み合わせとして選択される。
【0086】
ロボットアーム1510の姿勢は、たとえば、ロボットアーム1510が有する複数の関節の回転角ベクトルにより規定される。ロボットアーム1510の姿勢変化は、たとえば、ロボットアーム1510の姿勢変化前の回転角ベクトルと、ロボットアーム1510の姿勢変化後の回転角ベクトルと、のユークリッド距離により特定される。
【0087】
ロボットアーム1510の姿勢変化前とは、配置可能エンドエフェクタ100の姿勢R11~R13から選択する場合は、ロボットアーム1510の移動前の初期姿勢であり、配置可能エンドエフェクタ100の姿勢R31~R33から選択する場合は、作用位置ap1についての配置可能エンドエフェクタ100の姿勢R11~R13の各々をとる場合のロボットアーム1510の姿勢である。
【0088】
ロボットアーム1510の姿勢変化後とは、配置可能エンドエフェクタ100の姿勢R11~R13から選択する場合は、作用位置ap1についての配置可能エンドエフェクタ100の姿勢R11~R13の各々をとる場合のロボットアーム1510の姿勢であり、配置可能エンドエフェクタ100の姿勢R31~R33から選択する場合は、作用位置ap3についての配置可能エンドエフェクタ100の姿勢R31~R33の各々をとる場合のロボットアーム1510の姿勢である。
【0089】
ロボットアーム1510の姿勢変化前後のユークリッド距離が最小となる組み合わせ(R11、R32)が、ロボットアーム1510の姿勢変化が最小となる組み合わせである。
【0090】
そして、修正装置200は、ロボットアーム1510の移動前の初期姿勢と、配置可能エンドエフェクタ100が作用位置ap1で姿勢R11をとるときのロボットアーム1510の姿勢と、の間を補間するロボットアーム1510の軌道1601を生成する。
【0091】
同様に、修正装置200は、配置可能エンドエフェクタ100が作用位置ap1で姿勢R11をとるときのロボットアーム1510の姿勢と、配置可能エンドエフェクタ100が作用位置ap3で姿勢R32をとるときのロボットアーム1510の姿勢と、の間を補間するロボットアーム1510の軌道1602を生成する。
【0092】
なお、ロボットアーム1510の軌道1601、1602の少なくとも一方が生成できない場合、修正装置200は、配置可能エンドエフェクタ100の姿勢R11~R13と姿勢R31~R33との9通りの組み合わせから、組み合わせ(R11、R32)を除いてロボットアーム1510の姿勢変化前後のユークリッド距離が最小となる組み合わせを再選択し、再選択した組み合わせについて、ロボットアーム1510の軌道を再生成することになる。
【0093】
図17は、ロボットアーム設計情報の一例を示す説明図である。ロボットアーム設計情報1700は、修正装置200の記憶デバイス202または修正装置200と通信可能な他のコンピュータの記憶デバイスに格納される。
【0094】
ロボットアーム設計情報1700は、ロボットアーム1510の設計情報、つまり、ロボットアーム1510の3次元形状を示す3次元のグラフィックデータである。図17では、ロボットアーム設計情報1700をテーブル形式で表現する。
【0095】
ロボットアーム設計情報1700は、フィールドとして、部品1701と、配置位置姿勢1702と、面情報1703と、を有する。部品1701は、ロボットアーム1510を構成する1つの要素(構成要素)であり、部品1701を一意に特定する値として「Pr1」、「Pr2」、…を保持する。具体的には、たとえば、「Pr1」は関節、「Pr2」はリンクである。
【0096】
配置位置姿勢1702は、ロボットアーム1510をそのローカル座標系に配置した場合の部品1701の姿勢であり、配置位置姿勢1702を一意に特定する値として「Qr1」、「Qr2」、…を保持する。具体的には、たとえば、「Qr1」は関節の頂点座標値群および関節の回転角度であり、「Qr2」はリンクの頂点座標値群である。
【0097】
面情報1703は、部品1701の面に関する情報であり、面情報1703を一意に特定する値として「Sr11」、「Sr12」、…、「Sr21」、「Sr22」、…を保持する。具体的には、たとえば、「Sr11」、「Sr12」、…の各々は、関節の面を構成するポリゴンデータを示し、当該ポリゴンデータの頂点座標値群および法線ベクトルを含む。同様に、「Sr21」、「Sr22」、…の各々は、リンクの面を構成するポリゴンデータを示し、当該ポリゴンデータの頂点座標値群および法線ベクトルを含む。
【0098】
図18は、治具設計情報の一例を示す説明図である。治具設計情報1800は、修正装置200の記憶デバイス202または修正装置200と通信可能な他のコンピュータの記憶デバイスに格納される。
【0099】
治具設計情報1800は、治具1500の設計情報、つまり、治具1500の3次元形状を示す3次元のグラフィックデータである。図18では、治具設計情報1800をテーブル形式で表現する。
【0100】
治具設計情報1800は、フィールドとして、部品1801と、配置位置姿勢1802と、面情報1803と、を有する。部品1801は、治具1500を構成する1つの要素(構成要素)であり、部品1801を一意に特定する値として「Pj1」、「Pj2」、…を保持する。具体的には、たとえば、「Pj1」は台座1501、「Pj2」は支持部材1502である。
【0101】
配置位置姿勢1802は、治具1500をそのローカル座標系に配置した場合の部品1801の姿勢であり、配置位置姿勢1802を一意に特定する値として「Qj1」、「Qj2」、…を保持する。具体的には、たとえば、「Qj1」は台座1501の頂点座標値群であり、「Qr2」は支持部材1502の頂点座標値群である。
【0102】
面情報1803は、部品1801の面に関する情報であり、面情報1803を一意に特定する値として「Sj11」、「Sj12」、…、「Sj21」、「Sj22」、…を保持する。具体的には、たとえば、「Sj11」、「Sj12」、…の各々は、台座1501の面を構成するポリゴンデータを示し、当該ポリゴンデータの頂点座標値群および法線ベクトルを含む。同様に、「Sj21」、「Sj22」、…の各々は、支持部材1502の面を構成するポリゴンデータを示し、当該ポリゴンデータの頂点座標値群および法線ベクトルを含む。
【0103】
<修正処理手順>
図19は、実施例2にかかる修正装置200による修正処理手順例を示すフローチャートである。修正装置200は、データ取得処理を実行する(ステップS1901)。データ取得処理(ステップS1901)では、修正装置200は、エンドエフェクタ設計情報300、ワーク設計情報500、作用位置情報600および探索パラメタ情報700のほか、ロボットアーム設計情報1700および治具設計情報1800も読み込む。
【0104】
つぎに、修正装置200は、配置可能エンドエフェクタ姿勢算出処理(ステップS802)およびエンドエフェクタ寸法修正処理(ステップS803)を実行する。ステップS803のあと、修正装置200は、生成部1904として、ロボットアーム軌道生成処理(ステップS1904)を実行する。ロボットアーム軌道生成処理(ステップS1904)は、治具1500と干渉せずにロボットアーム1510の軌道を算出する処理である。
【0105】
なお、生成部1904は、具体的には、たとえば、図2に示した記憶デバイス202に記憶されたプログラムをプロセッサ201に実行させることにより実現され、ステップS1904を実行する。
【0106】
図20は、図19に示したロボットアーム軌道生成処理(ステップS1904)の詳細な処理手順例を示すフローチャートである。修正装置200は、各作用位置apにおけるエンドエフェクタ100の配置可能な姿勢1202のうち、作用位置ap間におけるエンドエフェクタ100の移動前後でのロボットアーム1510の姿勢変化が最小となる姿勢を探索する(ステップS2001)。
【0107】
具体的には、たとえば、図21に示した例では、修正装置200は、作用位置ap1でのエンドエフェクタ100の姿勢R11~R13のうち、ロボットアーム1510の移動前の初期姿勢からのロボットアーム1510の姿勢変化が最小となるエンドエフェクタ100の姿勢1202を探索する。図21の例では、エンドエフェクタ100の姿勢R11が、ロボットアーム1510の姿勢変化が最小となるエンドエフェクタ100の姿勢1202としてエンドエフェクタ100の姿勢R11が探索される。
【0108】
また、修正装置200は、作用位置ap3でのエンドエフェクタ100の姿勢R31~R33のうち、ロボットアーム1510の移動前の初期姿勢からのロボットアーム1510の姿勢変化が最小となるエンドエフェクタ100の姿勢1202を探索する。図21の例では、エンドエフェクタ100の姿勢R32が、ロボットアーム1510の姿勢変化が最小となるエンドエフェクタ100の姿勢1202として探索される。
【0109】
つぎに、修正装置200は、移動前後の作用位置ap間におけるロボットアーム1510の姿勢を示すロボットアーム軌道情報を生成する(ステップS2002)。ロボットアーム軌道情報は、記憶デバイス202に格納される。
【0110】
図21は、ロボットアーム軌道情報の一例を示す説明図である。ロボットアーム軌道情報2100は、フィールドとして、時刻2101と、関節角度2102と、を有する。各エントリが時刻2101におけるロボットアーム1510の姿勢を示しており、時系列になることでロボットアーム1510の軌道を構成する。時刻2101は、ロボットアーム1510が動作するタイミングである。関節角度2102は、時刻2101におけるロボットアーム1510の各関節の角度を示すベクトルであり、ロボットアーム1510の姿勢を規定する。
【0111】
たとえば、図16の例では、時刻2101が「t0」の関節角度2102が、ロボットアーム1510の移動前の初期姿勢を示しており、「t1」~「t3」の関節角度2102が、ロボットアーム1510が初期姿勢から作用位置ap1までを補間する姿勢を示すロボットアーム1510の軌道1601であり、「t4」の関節角度2102が、ロボットアーム1510の作用位置ap1での姿勢であり、「t5」~「t8」の関節角度2102が、ロボットアーム1510が作用位置ap1から作用位置ap2までを補間する姿勢を示すロボットアーム1510の軌道1602であり、「t9」の関節角度2102が、ロボットアーム1510の作用位置ap2での姿勢である。
【0112】
図22は、実施例2にかかる出力データを表示する表示画面の一例を示す説明図である。表示画面2200は、ロボットアーム軌道情報2100と、寸法修正情報1300と、を表示する。また、ロボットアーム軌道情報2100内のエンドエフェクタ100は、図11に示した修正後のエンドエフェクタ設計情報300に基づいて描画される。ワーク110は、ワーク設計情報500に基づいて描画される。ロボットアーム1510は、ロボットアーム設計情報1700に基づいて描画される。治具1500は、治具設計情報1800に基づいて描画される。
【0113】
表示画面2200では、ロボットアーム軌道情報2100を時刻2101ごとに静止画として表示してもよく、時刻2101の時系列な動画で再生可能に表示してもよい。
【0114】
このように、実施例2によれば、作用位置ap間のロボットアーム1510の姿勢を姿勢変化が最小となるように、ロボットアーム1510の姿勢を生成することができ、配置可能エンドエフェクタ100およびロボットアーム1510による作業の効率化を図ることができる。
【0115】
また、配置可能エンドエフェクタ100の姿勢で移動可能なロボットアーム1510の軌道を生成することで、エンドエフェクタ100の寸法修正自体は作用位置apに対して有効だが、そのような配置可能エンドエフェクタ100の姿勢でロボットアーム1510の軌道が生成できないことにより発生するエンドエフェクタ100の寸法の再修正といった手戻りを回避することができる。
【0116】
また、上述した実施例1および実施例2にかかる修正装置200は、下記(1)~(14)のように構成することもできる。
【0117】
(1)修正装置200は、エンドエフェクタ設計情報300と、前記エンドエフェクタ100により作用される複数の作用位置を有するワーク設計情報500と、を取得する取得部801と、前記エンドエフェクタ設計情報300および前記ワーク設計情報500に基づいて、前記ワーク110と干渉せずに前記ワーク110の作用位置apで作用可能に配置された前記エンドエフェクタ100の第1姿勢1202を、前記作用位置apごとに算出する算出部802と、前記算出部802による算出結果に基づいて、前記エンドエフェクタ100を構成する部品301の寸法304を修正する修正部803と、を有する。
【0118】
(2)上記(1)の修正装置200において、前記修正部803は、前記複数の作用位置apのすべてにおいて前記第1姿勢1202が存在するか否かを判断し、前記複数の作用位置apのすべてにおいて前記第1姿勢1202が存在する場合、修正後の前記エンドエフェクタ設計情報300を出力する。
【0119】
(3)上記(1)の修正装置200において、前記修正部803は、前記複数の作用位置apのすべてにおいて前記第1姿勢1202が存在するか否かを判断し、前記複数の作用位置apのすべてにおいて前記第1姿勢1202が存在する場合、前記第1姿勢1202と前記作用位置apとを関連付けた配置可能エンドエフェクタ姿勢情報1200を出力する。
【0120】
(4)上記(1)の修正装置200において、前記修正部803は、前記複数の作用位置apのすべてにおいて前記第1姿勢1202が存在するか否かを判断し、前記第1姿勢1202が存在しない作用位置apが1つでも存在する場合、前記部品301の寸法304を修正する。
【0121】
(5)上記(4)の修正装置200において、前記算出部802は、前記第1姿勢1202が存在しない作用位置apでの前記エンドエフェクタ100の第2姿勢1202について、前記ワーク110と前記エンドエフェクタ100との干渉が解消する干渉解消方向130を特定し、前記エンドエフェクタ100を構成する部品301群の中から、前記干渉解消方向130と前記部品群の各々の部品301が有する方向342との角度差に基づいて、修正対象部品301を選択し、前記修正部803は、前記修正対象部品301の寸法304を修正する。
【0122】
(6)上記(5)の修正装置200において、前記算出部802は、前記角度差が最小となる方向342を有する前記部品301を前記修正対象部品301として選択する。
【0123】
(7)上記(6)の修正装置200において、前記算出部802は、前記第2姿勢1202が複数存在する場合、前記第2姿勢1202ごとに前記干渉解消方向130を特定し、前記干渉解消方向130ごとに前記角度差が最小となる方向342を有する部品候補を特定し、前記部品候補の中から前記角度差が最小となる方向342を有する前記部品301を前記修正対象部品301として選択する。
【0124】
(8)上記(6)の修正装置200において、前記算出部802は、前記第2姿勢1202が複数存在する場合、前記第2姿勢1202ごとに前記干渉解消方向130と、前記ワーク110と前記エンドエフェクタ100との干渉領域120と、を特定し、前記干渉領域120の体積が最大となる特定の干渉解消方向130との角度差が最小となる方向342を有する前記部品301を、前記修正対象部品301として選択する。
【0125】
(9)上記(6)の修正装置200において、前記算出部802は、前記第2姿勢1202が複数存在する場合、前記第2姿勢1202ごとに前記干渉解消方向130と、前記ワーク110と前記エンドエフェクタ100との干渉領域120と、を特定し、前記干渉領域120の体積が最小となる特定の干渉解消方向130との角度差が最小となる方向342を有する前記部品301を、前記修正対象部品301として選択する。
【0126】
(10)上記(4)の修正装置200において、前記修正部803は、前記エンドエフェクタ設計情報300を、前記エンドエフェクタ100の修正後の寸法304で更新し、更新後の前記エンドエフェクタ設計情報300に基づいて、前記複数の作用位置apのすべてにおいて前記第1姿勢1202が存在するか否かを判断し、前記第1姿勢1202が存在しない作用位置apが1つでも存在する場合、前記部品301の寸法304を修正する。
【0127】
実施例2
(11)上記(1)の修正装置200において、前記取得部801は、前記エンドエフェクタ100が装着されるロボットアーム設計情報1700を取得し、前記ロボットアーム設計情報1700と、前記修正部803による修正後の前記エンドエフェクタ設計情報300と、前記複数の作用位置apの各々の作用位置apにおける前記第1姿勢1202と、に基づいて、前記ロボットアーム1510に装着された前記エンドエフェクタ100を第1作用位置apから第2作用位置apへ移動させる前記ロボットアーム1510の軌道を生成する生成部1904と、を有する。
【0128】
(12)上記(11)の修正装置200において、前記生成部1904は、前記エンドエフェクタ100が、前記第1作用位置apの前記第1姿勢1202を前記第1作用位置apでとり、前記第2作用位置apの前記第1姿勢1202を前記第2作用位置apでとるように、前記ロボットアーム1510の軌道を生成する。
【0129】
(13)上記(12)の修正装置200において、前記生成部1904は、前記第1作用位置apの前記第1姿勢1202が複数存在する場合、前記第1作用位置apの前記第1姿勢1202の各々から前記第2作用位置apの前記第1姿勢1202への前記ロボットアームの姿勢変化に基づいて、前記第1作用位置apの複数の前記第1姿勢1202の中から軌道生成対象となる前記第1作用位置apの前記第1姿勢1202を特定する。
【0130】
(14)上記(12)の修正装置200において、前記生成部1904は、前記第2作用位置apの前記第1姿勢1202が複数存在する場合、前記第1作用位置apの前記第1姿勢1202から前記第2作用位置apの前記第1姿勢1202の各々への前記ロボットアームの姿勢変化に基づいて、前記第2作用位置apの複数の前記第1姿勢1202の中から軌道生成対象となる前記第2作用位置apの前記第1姿勢1202を特定する。
【0131】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。たとえば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【0132】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、たとえば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0133】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
【0134】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0135】
100 エンドエフェクタ
110 ワーク
120 干渉領域
130 干渉解消方向
200 修正装置
201 プロセッサ
202 記憶デバイス
300 エンドエフェクタ設計情報
301 部品
304 寸法
341 種類
342 方向
343 数値
500 ワーク設計情報
600 作用位置情報
700 探索パラメタ情報
801 取得部
802 算出部
803 修正部
1200 配置可能エンドエフェクタ姿勢情報
1202 姿勢
1300 寸法修正情報
1500 治具
1510 ロボットアーム
1601、1602 軌道
1700 ロボットアーム設計情報
1904 生成部
2100 ロボットアーム軌道情報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22