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

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

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

特許7439206情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法
<>
  • 特許-情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法 図1
  • 特許-情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法 図2
  • 特許-情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法 図3
  • 特許-情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法 図4
  • 特許-情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法 図5
  • 特許-情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法 図6
  • 特許-情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法 図7
  • 特許-情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法 図8
  • 特許-情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法 図9
  • 特許-情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-16
(45)【発行日】2024-02-27
(54)【発明の名称】情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法
(51)【国際特許分類】
   B25J 9/22 20060101AFI20240219BHJP
   G05B 19/42 20060101ALI20240219BHJP
【FI】
B25J9/22 A
G05B19/42 J
【請求項の数】 38
(21)【出願番号】P 2022163661
(22)【出願日】2022-10-12
(62)【分割の表示】P 2018018583の分割
【原出願日】2018-02-05
(65)【公開番号】P2022179671
(43)【公開日】2022-12-02
【審査請求日】2022-11-09
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003133
【氏名又は名称】弁理士法人近島国際特許事務所
(72)【発明者】
【氏名】木村 弦
【審査官】牧 初
(56)【参考文献】
【文献】特開2015-160277(JP,A)
【文献】特開2008-269021(JP,A)
【文献】特開平09-146621(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05B 19/42
(57)【特許請求の範囲】
【請求項1】
第1位置および第2位置の間でロボットアームを動作させる軌道を取得する情報処理方法において、
前記第1位置から前記第2位置までの経路を規定する中間教示点群を少なくとも2つ設定し、前記中間教示点群に基づき少なくとも2つの中間軌道を取得する中間軌道取得工程と、
前記中間軌道取得工程で取得された前記中間軌道において評価値を取得する評価工程と、
前記評価値に基づき前記中間軌道のうち所定の中間軌道に基づいて、前記ロボットアームを動作させる軌道を取得する軌道取得工程と、を有している、
ことを特徴とする情報処理方法。
【請求項2】
請求項1に記載の情報処理方法において、
前記軌道取得工程では、前記評価値に基づき前記中間軌道のうち前記所定の中間軌道を選択する、
ことを特徴とする情報処理方法。
【請求項3】
請求項1または2に記載の情報処理方法において、
前記中間軌道取得工程では、所定の中間教示点群が有する中間教示点に異なる変位を与えることで前記少なくとも2つの中間教示点群を設定する、
ことを特徴とする情報処理方法。
【請求項4】
請求項3に記載の情報処理方法において、
前記中間軌道取得工程では、前記中間教示点に値を加算することで前記変位を与え、前記少なくとも2つの中間教示点群を設定する、
ことを特徴とする情報処理方法。
【請求項5】
請求項3または4に記載の情報処理方法において、
前記変位は相関のある乱数に基づいて付与される、
ことを特徴とする情報処理方法。
【請求項6】
請求項5に記載の情報処理方法において、
前記中間教示点は隣り合っており、前記中間軌道取得工程では、隣り合った前記中間教示点に前記乱数に基づき前記変位を付与する、
ことを特徴とする情報処理方法。
【請求項7】
請求項5または6に記載の情報処理方法において、
分散共分散行列における共分散に正の値を付与することで前記乱数に相関を持たせる、
ことを特徴とする情報処理方法。
【請求項8】
請求項1からのいずれか1項に記載の情報処理方法において、
前記中間軌道取得工程では、前記ロボットアームの駆動機構に関する物理的な制約条件を満たす前記中間軌道を取得する、
ことを特徴とする情報処理方法。
【請求項9】
請求項に記載の情報処理方法において、
前記制約条件は、前記ロボットアームの可動範囲である、
ことを特徴とする情報処理方法。
【請求項10】
請求項またはに記載の情報処理方法において、
前記制約条件は、前記ロボットアームに関する関節トルク制約、関節角速度制約、関節角加速度制約、ジャーク制約、手先速度制約、ないし手先加速度制約のうち、いずれか1つまたは複数である、
ことを特徴する情報処理方法。
【請求項11】
請求項から10のいずれか1項に記載の情報処理方法において、
前記評価工程では、前記中間軌道における、前記ロボットアームと、前記ロボットアームの動作する空間に配置される物体と干渉量に基づき前記評価値を取得する、
ことを特徴とする情報処理方法。
【請求項12】
請求項11に記載の情報処理方法において、
前記干渉量は、前記ロボットアームと、前記ロボットアームの動作する空間に配置される物体と、が同一の空間を占める干渉時間、または干渉距離である、
ことを特徴とする情報処理方法。
【請求項13】
請求項11または1に記載の情報処理方法において、
前記中間軌道取得工程では、前記制約条件を満たしていれば、前記ロボットアームと物体とにおいて干渉が発生している所定の中間軌道も前記少なくとも2つの中間軌道として取得する、
ことを特徴とする情報処理方法。
【請求項14】
請求項11から1のいずれか1項に記載の情報処理方法において、
前記軌道取得工程において、前記干渉量が0となった場合を、前記ロボットアームと前記物体とにおいて干渉が発生していないと判定する、
ことを特徴とする情報処理方法。
【請求項15】
請求項1から14のいずれか1項に記載の情報処理方法において、
前記少なくとも2つの中間教示点群の内、1つの中間教示点群はユーザがユーザインタフェースを介して設定できる、
ことを特徴とする情報処理方法。
【請求項16】
請求項1から1のいずれか1項に記載の情報処理方法において、
前記中間軌道取得工程、前記評価工程、及び前記軌道取得工程を繰り返し実行する、
ことを特徴とする情報処理方法。
【請求項17】
請求項1から1のいずれか1項に記載の情報処理方法において、
前記中間軌道取得工程では、前記ロボットアームを動作させる動作時間が小さくなるように前記少なくとも2つの中間軌道を取得する、
ことを特徴とする情報処理方法。
【請求項18】
請求項1から1のいずれか1項に記載の情報処理方法において、
前記評価工程では、前記少なくとも2つの中間軌道で前記ロボットアームを動作させた場合の動作時間に基づき前記評価値を取得する、
ことを特徴とする情報処理方法。
【請求項19】
請求項1から1のいずれか1項に記載の情報処理方法において、
前記軌道取得工程において、前記評価値が所定条件を満たすことを条件として、前記ロボットアームを動作させる軌道の取得を停止する、
ことを特徴とする情報処理方法。
【請求項20】
請求項1に記載の情報処理方法において、
前記所定条件は、前記ロボットアームを動作させる軌道の取得を所定回数実行しても前記評価値変化していないと判定される場合である、
ことを特徴とする情報処理方法。
【請求項21】
請求項1から20のいずれか1項に記載の情報処理方法において、
前記ロボットアームを動作させる軌道の取得の繰り返し実行回数が所定回数に達したことに基づいて前記ロボットアームを動作させる軌道の取得を停止する、
ことを特徴とする情報処理方法。
【請求項22】
請求項1から21のいずれか1項に記載の情報処理方法において、
前記中間軌道取得工程において、ポテンシャル法、PRM、RRT、可視グラフ法、セル分割法、ボロノイ図法、のうちの少なくとも1つを用いて前記少なくとも2つの中間軌道を取得する、
ことを特徴とする情報処理方法。
【請求項23】
請求項1から22のいずれか1項に記載の情報処理方法において、
前記中間軌道取得工程において、Spline補間、B-Spline補間、ベジェ曲線補間、のうちの少なくとも1つを用いて前記少なくとも2つの中間軌道を平滑化する、
ことを特徴とする情報処理方法。
【請求項24】
請求項1から2のいずれか1項に記載の情報処理方法において、
前記軌道取得工程において取得された前記ロボットアームを動作させる軌道を表示装置に表示する表示工程をさらに備える、
ことを特徴とする情報処理方法。
【請求項25】
請求項1から2のいずれか1項に記載の情報処理方法において、
前記軌道取得工程において取得された前記ロボットアームを動作させる軌道を前記ロボットアームを制御する制御装置に出力する出力工程をさらに備える、
ことを特徴とする情報処理方法。
【請求項26】
請求項1から2のいずれか1項に記載の情報処理方法において、
前記軌道取得工程では、前記所定の中間軌道に基づき、前記ロボットアームを動作させる軌道を更新する、
ことを特徴とする情報処理方法。
【請求項27】
請求項1から2のいずれか1項に記載の情報処理方法において、
前記第1位置または前記第2位置の設定を受け付ける受付工程をさらに備える、
ことを特徴とする情報処理方法。
【請求項28】
請求項1から10のいずれか1項に記載の情報処理方法において、
前記中間軌道取得工程で取得された前記少なくとも2つの中間軌道において、前記ロボットアームと、前記ロボットアームが動作する空間に配置される物体とが干渉しているか否かを判定する判定工程を備え、
前記評価工程において、前記判定工程により前記ロボットアームと、前記ロボットアームが動作する空間に配置される物体との干渉が発生していないと判定された中間軌道において、前記ロボットアームを動作させる動作時間に関する前記評価値を取得する、
ことを特徴とする情報処理方法。
【請求項29】
請求項28に記載の情報処理方法において、
前記判定工程において、前記ロボットアームと、前記ロボットアームが動作する空間に配置される物体との干渉が発生していると判定された中間軌道は、前記評価工程において評価する対象としないよう無効とする、
ことを特徴とする情報処理方法。
【請求項30】
請求項1または2に記載の情報処理方法において、
前記中間軌道取得工程において、
前記少なくとも2つの中間教示点群として、第1中間教示点群と第2中間教示点群とを設定し、
前記第1中間教示点群は、前記第1位置から前記第2位置までにおいて、前記ロボットアームと、前記ロボットアームが動作する空間に配置される物体とが干渉を回避できる経路を規定し、
前記第1中間教示点群に変位を与えることで前記第2中間教示点群を取得し、前記第2中間教示点群に基づき前記少なくとも2つの中間軌道を取得する、
ことを特徴とする情報処理方法。
【請求項31】
請求項30に記載の情報処理方法において、
前記第1中間教示点群を線路計画アルゴリズムにより設定する、
ことを特徴とする情報処理方法。
【請求項32】
請求項30または31に記載の情報処理方法において、
前記軌道取得工程において、前記所定の中間軌道に対応する前記第2中間教示点群に、前記第1中間教示点群を移動させ、移動した前記第1中間教示点群に基づいて、前記ロボットアームを動作させる軌道を取得する、
ことを特徴とする情報処理方法。
【請求項33】
請求項1から32のいずれか1項に記載の情報処理方法の各工程をコンピュータに実行させるプログラム。
【請求項34】
請求項33に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項35】
第1位置および第2位置の間でロボットアームを動作させる軌道を取得する情報処理装置において、
前記第1位置から前記第2位置までの経路を規定する中間教示点群を少なくとも2つ設定し、前記中間教示点群に基づき少なくとも2つの中間軌道を取得し、
得された前記中間軌道において評価値を取得し、
前記評価値に基づき前記中間軌道のうち所定の中間軌道に基づいて、前記ロボットアームを動作させる軌道を取得する、
ことを特徴とする情報処理装置。
【請求項36】
請求項1から32のいずれか1項に記載の情報処理方法を用いて取得された軌道で前記ロボットアームを動作させてワークの組み立てを行い、物品を製造する生産システム。
【請求項37】
請求項1から32のいずれか1項に記載の情報処理方法を用いて取得された軌道に基づき動作が制御される前記ロボットアームを備えたロボットシステム。
【請求項38】
請求項1から32のいずれか1項に記載の情報処理方法を用いて取得された軌道で前記ロボットアームを動作させてワークの組み立てを行い、物品を製造する物品の製造方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はロボットアームの軌道を生成する情報処理方法および情報処理装置に関するものである。
【背景技術】
【0002】
従来より、自動車や電機製品などの工業製品の生産システム(生産ライン)に、産業用のロボット装置を配置して溶接や組み立てなどの作業を自動化する構成が知られている。この種の生産システムでは、ロボット装置、ワーク、ワークの置き台、冶具、その他周辺機器などが互いに干渉(接触、衝突)する可能性がある状態で配置される。近年では、このような生産システムのロボット装置のアームの動作軌道の設計作業において、仮想環境を用いたシミュレーションが利用されることがある。
【0003】
オフラインでシミュレータ装置を使用してロボット装置の動作シミュレーションを行う場合、仮想環境中にロボットアーム、ワーク置き台、冶具、その他の周辺機器などの3D(3次元)モデルを配置する。例えば、このようなシミュレータ装置では、予め作成したロボットアームの教示点の間の軌道を生成し、また、その軌道で仮想環境中のロボットアームの3Dモデルを動作させるシミュレーションを行って検証するものがある。ロボットアームモデルが動作する様子は、シミュレータ装置のディスプレイの仮想表示画面に動画形式などによって表示することができる。
【0004】
当然ながら、ロボットアームの動作軌道によってシミュレーション結果は大きく異なってくる。ロボットアームの軌道が不適切であれば、ロボットアームの動作軌道の一部がロボットアームの動作不可能な領域に入ったり、ロボットアームが他の物体と干渉したり、無駄な動作によって、サイクルタイムが遅くなる場合がある。
【0005】
旧来の手法では、ロボットアームが動作不可能な領域に入ったり、周辺機器とロボットアームが干渉したりしないという条件を満たすロボットアームの教示点をオペレータが画面上で試行錯誤的に作成していた。その場合、可動である、干渉しない、という条件がまず考慮されるため、必ずしも最適な動作速度で動作できるロボット軌道が生成されず、サイクルタイムが遅くなってしまう場合があった。その場合には、ロボットアームの教示点を再検討して設置し直す手動作業を行う必要があった。
【0006】
また、一方で、生産システム(ライン)でロボット装置を用いる場合、工程設計者の教示点作成の工数が大きいので、人件費の高騰も問題となっている。そこで、近年では、教示者による直接教示に代わって、計算機を用いてロボットアームの教示作業を効率化する方法や装置が提案されている。
【0007】
下記の非特許文献1では、ロボットアームの周りの障害物との干渉を回避し、なおかつロボットアームの関節に用いるモータのトルクを最小にする軌道の生成方法が開示されている。図8は、非特許文献1におけるロボットアームの軌道生成の手法を概略的に示している。図8において、ロボットアームAは、J1、および、J2の2つの回転軸を持つ2自由度に簡略化されたロボットアームで、Obは障害物を示している。
【0008】
図8において、p1、p2…p9は、それぞれロボットアームAの手先(TCP:Tool Center Point)を移動させる位置を示している。これらの位置のうち、p1は動作の開始位置(開始教示点)を、p9は動作の目標位置(目標教示点)をそれぞれ示している。また、p2~p8は、開始位置(p1)と、目標位置(p9)の間に配置される中間指令値を示している。例えば、制御周期ごとに、p1、p2…p9の姿勢を、ロボットアームAに順に指令し、p1からp9に到達する動作を行わせることができる。この場合、開始位置(p1)と、目標位置(p9)との間のロボットアームの動作時間は、制御周期×(9-1)と計算される。非特許文献1の場合、中間指令値(p2~p8)の数は、あらかじめ定数として決定されており、この場合は7個である。図8では、p4、p5において、ロボットアームと障害物Obが干渉しているが、以下の方法によって干渉回避の可能な軌道を生成することができる。
【0009】
まず、中間指令値p2、p3、…p8に相当する関節角度に対し、滑らかに変位を与え、新たな中間指令値ri2、ri3、…ri8(i = 1、…N)をN個生成する。次に、中間指令値ri2、ri3、…ri8(i = 1、…N)の評価を行い、その評価値を元に、中間指令値p2、p3、…p8を変位させる処理を繰り返すことにより、軌道を最適化する。非特許文献1では、中間指令値の評価値として、ロボットアームAと障害物Obとのめり込み量、各関節軸に用いるモータトルクを用いている。このような評価値を用いることにより、ロボットアームAと、障害物Obが干渉せず、各関節軸に用いるモータトルクが過負荷状態にならない軌道を生成している。
【先行技術文献】
【非特許文献】
【0010】
【文献】Kalakrishnan, Mrinal, et al. "STOMP: Stochastic trajectory optimization for motion planning." Robotics and Automation (ICRA), 2011 IEEE International Conference on IEEE, 2011.
【発明の概要】
【発明が解決しようとする課題】
【0011】
上記のように、非特許文献1の技術では、ロボットアームAと、障害物Obが干渉せず、各関節軸に用いるモータトルクが過負荷状態にならない軌道を生成する。しかしながら、非特許文献1の技術では、中間指令値の個数は固定数であり、従って、開始教示点(p1)から目標教示点(p9)までの動作時間が固定されており、例えばアームの動作時間を最適化できない問題がある。また、動作時間が固定されると、各関節軸に用いるモータトルクの制約条件や、他の制約条件を満たすのが難しくなる。このような達成困難になるロボット動作に関する制約条件には、例えば関節軸トルク、関節角速度、関節角加速度や加加速度、手先速度や手先加速度に関する制約条件が含まれる。即ち、非特許文献1に記載されるような従来技術では、次のような問題がある。即ち、中間指令値の個数が少なすぎる領域では、ロボット動作に関する制約条件を満たす保証がなく、逆に、中間指令値の個数が多すぎる領域では、動作時間が最適な軌道を得られない。
【0012】
本発明の課題は、上記の問題に鑑み、ロボット動作に関する制約条件を満たした最適な軌道を確実に生成できるようにすることにある。
【課題を解決するための手段】
【0013】
本発明の一態様は、第1位置および第2位置の間でロボットアームを動作させる軌道を取得する情報処理方法において、前記第1位置から前記第2位置までの経路を規定する中間教示点群を少なくとも2つ設定し、前記中間教示点群に基づき少なくとも2つの中間軌道を取得する中間軌道取得工程と、前記中間軌道取得工程で取得された前記中間軌道において評価値を取得する評価工程と、前記評価値に基づき前記中間軌道のうち所定の中間軌道に基づいて、前記ロボットアームを動作させる軌道を取得する軌道取得工程と、を有していることを特徴とする情報処理方法である。
本発明の他の一態様は、第1位置および第2位置の間でロボットアームを動作させる軌道を取得する情報処理装置において、前記第1位置から前記第2位置までの経路を規定する中間教示点群を少なくとも2つ設定し、前記中間教示点群に基づき少なくとも2つの中間軌道を取得し、取得された前記中間軌道において評価値を取得し、前記評価値に基づき前記中間軌道のうち所定の中間軌道に基づいて、前記ロボットアームを動作させる軌道を取得することを特徴とする情報処理装置である。
【発明の効果】
【0014】
上記構成により、本発明によれば、ロボット動作に関する制約条件を満たした最適な軌道を確実に生成することができる。
【図面の簡単な説明】
【0015】
図1】本発明の実施形態に係る軌道生成装置の機能的な構成を示した説明図である。
図2】本発明の実施形態に係るロボットアームにおける2軸構成を示した説明図である。
図3】本発明の実施形態に係る教示点群と軌道を示した説明図である。
図4】本発明の実施形態に係る軌道の最適化処理を説明するフローチャート図である。
図5】(a)~(e)は本発明の実施形態に係る軌道の最適化処理を示した説明図である。
図6】本発明の実施形態に係る教示点群と軌道を示した説明図である。
図7】(a)~(e)は本発明の実施形態に係る軌道の最適化処理を示した説明図である。
図8】従来技術による軌道制御の手法を示した説明図である。
図9】本発明の実施形態に適用可能な制御装置の概略構成を示したブロック図である。
図10】本発明の実施形態に係る生産システムに配置可能なロボット装置を示した説明図である。
【発明を実施するための形態】
【0016】
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【0017】
<実施形態1>
図1は本実施形態に係る軌道生成装置の構成を示している。なお、本実施形態では、本発明に係る軌道生成を行う装置を指して「軌道生成装置」というが、この軌道生成装置は、例えばロボットシミュレータ装置などの製品として提供されるものであってよい。
【0018】
図1の軌道生成装置は、演算処理部1、教示者などがデータ入力などを行うための操作部2、動作プログラムなどを記録する記録部3や、ロボットアームの動作軌道などを表示するための表示部4を備えている。この軌道生成装置は、例えばPC(パーソナルコンピュータ)のようなコンピュータハードウェアによって構成することができる。ここで、演算処理部1の具体的な構成例を図9に示す。
【0019】
図9は、軌道生成装置、特に演算処理部1(図1)の主要部に相当する制御装置1000の構成例を示している。図示のようにこの制御装置1000は、CPU1601廻りに配置された各ブロックから成る制御系である。なお、このCPU1601廻りに配置された各ブロックから成る構成は、例えば、後述のロボット制御装置(200:図10)などにおいてもほぼ同様に適用できる。
【0020】
図9の制御装置1000は、主制御手段としてのCPU1601、記憶装置としてのROM1602、およびRAM1603を備える。ROM1602には、後述する制御手順を実現するためのCPU1601の制御プログラムや定数情報などを格納しておくことができる。また、RAM1603は、後述する制御手順を実行する時にCPU1601のワークエリアなどとして使用される。
【0021】
図9の構成が、演算処理部1(図1)の場合には、ユーザーインターフェース装置として、例えばディスプレイ1608(図1の表示部4)、および操作部1609(図1の操作部2)がインターフェース1607に接続される。操作部1609は、例えばフルキーボードおよびポインティングデバイスなどから構成することができ、軌道シミュレーションや検証を行う作業者のためのユーザーインターフェースを構成する。
【0022】
図9の制御装置1000は、ネットワークNWを介して通信する通信手段としてネットワークインターフェース1605を備える。演算処理部1(図1)は、ネットワークインターフェース1605~ネットワークNWを介して実機のロボットアームA(ないしはそのロボット制御装置200(図10))に対して教示点データや、軌道データをなどの制御情報を送受信することができる。その場合、ネットワークインターフェース1605は、例えばIEEE 802.3のような有線通信、IEEE 802.11、802.15のような無線通信による通信規格で構成する。しかしながら、ネットワークNWには、もちろん、それ以外の任意の通信規格を採用しても構わない。
【0023】
なお、後述の制御手順を実現するためのCPU1601の制御プログラムは、HDDやSSDなどから成る外部記憶装置1604や、ROM1602(の例えばEEPROM領域)のような記憶部に格納しておくこともできる。その場合、後述の制御手順を実現するためのCPU1601の制御プログラムは、ネットワークインターフェース1605を介して、上記の各記憶部に供給し、また新しい(別の)プログラムに更新することができる。あるいは、後述の制御手順を実現するためのCPU1601の制御プログラムは、各種の磁気ディスクや光ディスク、フラッシュメモリなどの記憶手段と、そのためのドライブ装置を経由して、上記の各記憶部に供給し、またその内容を更新することができる。上述の制御手順を実現するためのCPU1601の制御プログラムを格納した状態における各種の記憶手段や記憶部は、本発明の制御手順を格納したコンピュータ読み取り可能な記録媒体を構成することになる。
【0024】
なお、ロボット制御装置200(図10)の場合には、図9の構成にロボットアームAの各部のモータやソレノイドなど(不図示)を駆動するドライバ回路などが、インターフェース1606に接続される。また、ディスプレイ1608および操作部1609から成るユーザーインターフェースは、ロボット制御装置200の場合には、ティーチングペンダントのような操作端末(例えば図10の204)に置き換えてもよい。
【0025】
一般に、ロボットアームは、関節とリンクによって構成され、関節機構の形式には回転関節や直動関節の他、球関節などさまざまな種類がある。本実施形態においては、軌道を生成するロボットアームは、図2に示すようにリンクを回転関節によって結合した構成を有するものとする。
【0026】
図2は、本実施形態において、軌道生成の対象となるロボットアームの例である。図2のロボットアームAは、説明を容易にするため、簡略化した構成で図示されている。
【0027】
図2のロボットアームAは、2つの回転関節からなる2つの軸J1、J2を備えている。以下では、これら関節の軸J1、J2の関節角度(関節位置)は、それぞれθ1、θ2と表記する。また、軸J2の先端には、基準位置として、TCP(Tool Center Point)が定義される。本実施形態では、ロボットアームAの位置を定義する教示点は、このTCPの位置として表現される。また、生成するロボットアームAの軌道は、このTCPが移動する軌道として生成される。
【0028】
一般に、軸J1、J2の関節角度θ1、θ2が与えられた場合、運動学的な演算によりTCPの位置を取得でき、また、TCPの位置が与えられた場合、逆運動学的な演算によりTCPがその位置を取る時の軸J1、J2の関節角度θ1、θ2を取得できる。以下では、TCPに言及する場合、単に「手先」と呼ぶ場合がある。
【0029】
なお、ロボットアームAは、理解を容易にするため、ごく簡略化した構成として図示しているが、この構成は本発明を実施する形態に限定するものではない。例えば、当業者が本発明を実施する場合、ロボットアームAとしては、6軸多関節ロボットアームや、直動型のロボットアームの構成を用いることができる。そして、以下に示す本実施形態のロボットアームに係る制御系の構成や制御手順は、それらのロボットアームを用いる場合に容易に敷衍可能である。
【0030】
次にロボットアームAの移動動作について説明する。ロボットアームAを移動させる場合、その移動の開始位置を示す教示点を開始教示点、目標位置を示す教示点を目標教示点という。ロボットアームAの教示点は、手先(TCP)の位置、姿勢もしくは、関節軸角度により決定することができる。また、逆運動学計算により、手先(TCP)の位置、姿勢は、各関節軸の関節角度に変換可能であり、逆に、(順)運動学計算により、各関節軸の関節角度は、手先の位置、姿勢に変換可能である。
【0031】
ここで、開始教示点、目標教示点をそれぞれPs、Pgとする。また、開始教示点と、目標教示点の間に配置する教示点を、中間教示点と呼び、P1、P2、…、Pnと表現するものとする。また、P1、P2、…、Pnを総称する場合は、中間教示点群と呼ぶことがある。
【0032】
中間教示点群P1、P2、…Pnを曲線で滑らかに補間する方法として、Spline補間、B-Spline補間、ベジェ曲線補間といった補間方法が知られている。これらの補間方法を用い、教示点間を滑らかに繋ぐ経路を生成することにより、ロボットアームAを滑らかに動作させることができる。
【0033】
本明細書では、ロボットアームの「動作経路」、もしくは「経路」とは、速度などの時間的概念は含まないロボットアームの動作の軌跡を指す。また、ロボットアームの「動作軌道」、もしくは「軌道」とは、ロボットアームの上記の「(動作)経路」に加え、ロボットアームの動作速度の情報を持つ情報体を意味し、本明細書では上記の「(動作)経路」とは明確に区別して用いる。なお、ロボット制御技術では、「軌道」は、ある単位時間、例えばロボットコントローラの制御クロック周期ごとのロボットアームの関節(角度)の指令値データ列によって表現される場合もある。
【0034】
上記の補間手法を用いて生成したロボットアームの経路に対し、速度情報を含めた軌道を生成する方法として、最短時間制御がある。最短時間制御を用いることにより、補間により生成した経路に基づき、ロボットアームの物理的な制約を守った上で、動作時間が最短になる軌道を求めることが可能となる。なお、最短時間制御は決まった経路上を通る上で、最短時間となる移動速度を求める技術であって、ロボットアームを動作させる経路はあくまで中間教示点群P1、P2、…Pnに依存する。ロボットアームの物理的な制約は、他にも、例えば、関節トルク制約、関節角速度制約、関節角加速度制約、ジャーク制約、手先速度制約、手先加速度制約を作用させることが考えられる。以下では、最短時間制御を用いて生成した軌道を、ある制御周期ごとのロボットアームの位置指令値の列として、p1、p2、…ptと表現する。
【0035】
図3は、ロボットアームA(を模擬する3Dモデル:ロボットアームモデル)、および障害物Ob(を模擬する3Dモデル:障害物モデル)がともに動作環境(仮想環境)に配置されている様子を示している。また、図3では、開始教示点Ps、目標教示点Pg、と、中間教示点群P1、P2、…Pnと、それにより生成される軌道(p1、p2、…pt)を示してある。
【0036】
図3に示した軌道(p1、p2、…pt)では、p4、p5において、ロボットアームAが障害物Obと干渉しており、この軌道では開始教示点Psから、目標教示点Pgまで移動ができない。本実施形態の目的は、開始教示点Psから、目標教示点Pgの間で、ロボットアームと障害物とが干渉しない(また他の制約条件も満たす)、最適な中間教示点群P1、P2、…Pnを求めることにある。なお、障害物Obは静止していると限定せず、移動している場合でも、軌道の最適化計算は可能である。
【0037】
図4は、本実施形態による軌道生成方法の主要な制御手順を記載したフローチャートである。図4に示した制御手順は、CPU1601の制御プログラムとして、ROM1602(あるいは外部記憶装置1604など)に格納しておくことができる。また、図5は、図4の各ステップの制御手順を図3と同様の様式で示している。以下では、軌道生成および最適化は、ロボットアームAや障害物Obの3Dモデルに関して行うが、記述を簡略にするため、以下では、「3Dモデル」の明示を省略し、制御の対象がロボットアームAや障害物Obであるかの如く記載する場合がある。
【0038】
図4のステップS100では、ロボットアームAが作業を行う作業空間での、ロボットアームAのモデルおよび、制約条件、開始教示点Ps、目標教示点Pgを入力する(図5(a))。これらの入力は、例えば操作部2や表示部4によって構成したユーザーインターフェースを介してユーザに行わせることができる。また、特に開始教示点Ps、目標教示点Pgは、表示部4上の仮想表示(GUI)を介して、ユーザに入力させる他、AI的な処理によって軌道生成を行う場合は、CPU1601が決定してもよい。
【0039】
上記のロボットアームAのモデルは、ロボットアームを構成する部品の設計情報であり、各リンクの慣性モーメント、質量、位置、姿勢、軸数などの情報を含む。また、制約条件とは、ロボットアームの物理的な制約を定義したもので、関節トルク制約、関節角速度制約、関節角加速度制約、ジャーク制約、手先速度制約、手先加速度制約などを含む。
【0040】
ステップS101では、ステップS100で与えた、ロボットアームAの開始教示点Ps、目標教示点Pgの間に、初期値としての中間教示点(第1の中間教示点群)P1、P2、…Pnを生成する(図5(b))。本実施形態では、図5(b)に示すように、生成する中間教示点の数をnとし、中間教示点を順にP1、P2、…Pnとしている。
【0041】
中間教示点の生成方法には、障害物を回避する経路を計算する経路計画アルゴリズムを用いることが考えられる。経路生成方法には、ポテンシャル法、PRM (Probabilistic RoadMap)、RRT (Rapidly-exploring Random Tree)といった多くの方法がある。また、以上の経路生成手段に限定されず、可視グラフ法、セル分割法、ボロノイ図法などの他の経路生成方法も適用してもよい。また、単純に、経路計画アルゴリズムを用いずに、開始教示点、目標教示点の間を直線で線形補間する処理を用いてもよい。なお、上記のような経路計画技術はあくまで、教示点間を直線でつないだ場合にのみ干渉回避が保証される経路を算出する。従って、中間教示点群P1、P2、…Pnを曲線で補間した経路においては必ずしも干渉回避が保証されない場合がある。
【0042】
例えば、図5(b)に示すように、中間教示点群P1、P2、…Pn(第1の中間教示点群)は、例えば障害物Obに干渉するような軌道に相当する。本実施形態では、このような初期値としての中間教示点群P1、P2、…Pn(第1の中間教示点群)から処理を開始しても、最適な軌道を生成するよう、中間教示点群P1、P2、…Pn(第1の中間教示点群)を移動させることができる。
【0043】
あるいは、初期値としての中間教示点群P1、P2、…Pn(第1の中間教示点群)は、ユーザが、操作部2および表示部4のユーザーインターフェースを介して、画面上の仮想環境中にプロットする操作を行って設定してもよい。
【0044】
図4のステップS102では、中間教示点群P1、P2、…Pn(第1の中間教示点群)に対して空間的な変位を与え、新たな中間教示点群R1、R2、…Rn(第2の中間教示点群)を生成する(図5(c):中間教示点生成工程)。この変位を与える方法としては、例えば、中間教示点の1つ1つに対し、空間的な変位を与えるためのパラメータとして乱数値を足し込む(加算する)方法が考えられる。ただし、単にランダムな乱数値を作用させる手法を採ると、教示点が振動的に配置され、ロボットアームの動作が滑らかでなくなる場合がある。一般的に、ロボットアームの動作が振動的になると、動作時間が増える傾向にあるため、教示点は振動的に配置されるのは望ましくない。
【0045】
そこで、空間的な変位を与えるために隣り合う中間教示点に作用させる乱数の間に相関を与え、これにより軌道(経路)を平滑化することができる。たとえば、中間教示点群P1、P2、…Pnにおける、ロボットアームの1軸の関節値をθ11、θ12、…θ1nとし、これらを変数とした多変量正規分布を考える。このように、分散共分散行列における共分散に、正の値を与えることで、隣り合う中間教示点の関節値に相関を持たせることができ、経路に沿った滑らかな乱数を発生させることが可能となる。
【0046】
ステップS103では、中間教示点群R1、R2、…Rnの間を曲線で補間し、最短時間制御を用いて軌道を生成する(軌道生成工程)。ここで、静止した障害物を回避すると言う目的であれば、曲線で補間した「経路」上でのロボットアームAの干渉を評価すれば事足りるが、動作する障害物を考えた際には、時間軸も考慮に入れなければならないため、本実施形態では、「軌道」を考慮する。
【0047】
ステップS104では、生成した軌道が制約を満たしているか判定し、軌道が制約を満たしていない場合は、S102に戻り、軌道が制約を満たしている場合は、S105に進む。ステップS104で判断する制約条件は、ステップS103で用いた最短時間制御技術で制約することができない制約である。ステップS104で判断する制約条件は、少なくとも、ステップS103で生成した軌道上では、ロボットアームAの機構が可動範囲外にはみ出さないことを制約条件とする。また、ステップS104で判断する制約条件には、他の条件、例えば、ロボットアームの関節トルク制約、関節角速度制約、関節角加速度制約、ジャーク制約、手先速度制約、ないし手先加速度制約が考えられる。ステップS104では、これらの制約条件のうちいずれか1つまたは複数の制約を満足する軌道を生成するよう判定を行うことができる。
【0048】
ステップS105では、中間教示点群R1、R2、…Rnおよび、それを元に生成した軌道を保存する。保存する中間教示点群は、他の保存した中間教示点群と区別するため、Ri1、Ri2、…Rinと表記する。iは、保存した順番である。
【0049】
ステップS106では、保存した中間教示点群および軌道が、ある定数N個になったか否かを判定する。ステップS106で、保存した中間教示点群および軌道がN個に達していなければ、ステップS102に戻り、N個になっていれば、ステップS107に進む。
【0050】
ステップS107では、保存したN個の中間教示点群Ri1、Ri2、…Rin(i = 1~N)に評価値を与える(図5(d):評価工程)。本実施形態では、この評価値は、中間教示点群P1、P2、…Pn(第1の中間教示点群)を、最適な軌道を生成するよう変位(移動)させるために用いる。
【0051】
また、この評価値は、例えば、中間教示点群Ri1、Ri2、…Rin(i = 1~N)に対応する軌道を評価することにより生成する。例えば、本実施形態では、障害物Obとの干渉を回避する軌道を求めるため、ロボットアームと障害物とが干渉量を評価値とする。例えば、この干渉量は、ロボットアームと障害物とが同一の空間を占める干渉時間や、めり込み量ないし干渉距離(あるいは両者の掃引空間の重複する体積など)であってよい。本実施形態では、例えば干渉量として干渉時間を採用し、評価値とする。
【0052】
図5(d)の例では、3つの中間教示点群に対して、干渉量(干渉時間またはめり込み量)で生成した評価値を示してある。この評価値は、第2の中間教示点群R11、R12…R1nでは10、R21、R22…R2nでは30、R31、R32…R3nでは50、となっている。ここで最も評価値が良いのは干渉量の小さい(0に近い)中間教示点群R11、R12…R1nである。
【0053】
なお、障害物Obの干渉回避以外の目的で、中間教示点群Ri1、Ri2、…Rin(i = 1~N)に対応する軌道の評価に他の手法を採用してもよい。
【0054】
ステップS108で、N個の中間教示点群Ri1、Ri2、…Rin(i = 1~N)の評価値を元に、中間教示点群P1、P2、…Pnを移動させる(図5(e))。この移動の方法の1つとしては、例えば、中間教示点群Ri1、Ri2、…Rin(i = 1~N)の中で、評価値が最も低い(良好な)中間教示点群に中間教示点群P1、P2、…Pnを移動させる方法が考えられる。図5(e)の例では、干渉量の小さい(0に近い)中間教示点群R11、R12…R1nの位置に中間教示点群P1、P2、…Pn(第1の中間教示点群中)を移動させている。
【0055】
また、中間教示点群Ri1、Ri2、…Rin(i = 1~N)の評価値の逆数を重みとして、N個の中間教示点群Ri1、Ri2、…Rin(i = 1~N)の重み付き平均をとり、中間教示点群P1、P2、…Pnを移動させる方法を用いてもよい。
【0056】
ステップS109では、ステップS102からステップS108までの処理を打ち切る条件を満たすか判定する。打ち切り条件を満たしていなければ、ステップS102に戻り、打ち切り条件を満たしていれば、ステップS110に進む。
【0057】
あるいは、ステップS102~ステップS109のループを実行する上限回数を定めておいてもよい。その場合、ステップS109でその上限回数に達している場合は、それ以上の試行を諦めてステップS110に進む。あるいは適当なエラーメッセージを表示部4で出力する、といったエラー処理を行うことにしてもよい。
【0058】
ステップS109で判断する打ち切り条件は、例えば移動後の中間教示点群P1、P2、…Pn(第1の中間教示点群)に対して、ステップS107と同様な評価値を生成し、評価値が所定条件を満たすことを条件とする。例えば、本実施形態の目的は、ロボットアームAと障害物Obとの干渉を回避することである。そこで、移動後の中間教示点群P1、P2、…Pn(第1の中間教示点群)について生成した評価値が0(干渉量:干渉時間やめり込み量が0)となることとする。これにより、ロボット動作に関する制約条件を満たした最適な軌道を生成することができる(軌道決定工程)。
【0059】
ステップS110では、最適化された教示点として、中間教示点群P1、P2、…Pnを出力する。この出力は、例えば表示部4の仮想表示内で、最適化された中間教示点群P1、P2、…Pnによって生成される軌道でロボットアームAの3Dモデル(ロボットアームモデル)を動作させることにより行う。あるいは、ステップS110は、実機のロボットアームAないしそのロボット制御装置(200:図10)に最適化された中間教示点群P1、P2、…Pnまたはそれにより生成された軌道データを出力する処理であってもよい。
【0060】
本実施形態では、干渉回避を目的としているため、ステップS110まで到達した場合は、図6のように、移動後の中間教示点群P1、P2、…Pnに基づき生成した軌道(p1、p2、…pt)において、ロボットアームが干渉物と干渉しない状態となる。
【0061】
本実施形態によれば、複数の中間教示点群Ri1、Ri2、…Rin(i = 1~N)を生成し、それにより定義される軌道を評価した結果に基づき、中間教示点群P1、P2、…Pnを移動させる。軌道の評価には、関節トルク制約のような物理的制約に関する条件を用い、中間教示点群P1、P2、…Pnを移動させる処理の脱出条件には、障害物回避の達成の条件を用いる。このような構成により、本実施形態によれば、障害物を回避し、関節トルク制約などの物理的制約を満たす滑らかな曲線軌道を生成することができる。
【0062】
<実施形態2>
以下、図7を参照して、ロボットアームA(の3Dモデル)が障害物Obとの干渉回避を達成した上で、かつ最短時間で移動できる軌道を生成する最適化処理の例を示す。図7以外の構成、例えば、軌道生成装置およびその制御装置のハードウェア構成などは、実施形態1と同様であるものとする。
【0063】
本実施形態の軌道生成方法の制御手順は、実施形態1の図4のフローチャートと同等であるが、本実施形態2では、実施形態1とは、中間教示点群P1、P2、…Pnの初期値、軌道の制約方法、軌道の評価方法、および打ち切り条件が異なる。図7は、本実施形態において行われる軌道(第1の中間教示点)の最適化の様子を示したものである。図7は、図5と同様の形式で、本実施形態における図4の各ステップの処理を示している。
【0064】
上記の実施形態1では、図4のステップS101で、開始教示点Ps、目標教示点Pgの間(図7(a))に経路計画技術によって中間教示点群P1、P2、…Pnを生成する例を示した。これに対して、本実施形態では、図4のステップS101において実施形態1の最適化処理を経て出力された中間教示点群P1、P2、…Pn(図6および図7(b))を用いる。
【0065】
既に実施形態1の最適化処理を経て出力された中間教示点群P1、P2、…Pnを初期値とすることにより、既に障害物を回避済みの軌道の動作時間を縮める最適化を行うことができる。このように、本発明の最適化制御手順(図4)は、2パス(あるいはそれ以上の複数パス)で用いることができ、その場合、各パスにおいて、異なる制約条件を作用させることによって、各制約条件について最適化された軌道を取得することができる。
【0066】
実施形態1では、新たな中間教示点群R1、R2、…Rn(第2の中間教示点群)を生成し(図5(c))、図4のステップS104で、この第2の中間教示点群の軌道が制約を満たしているか判定する際に、ロボットアームAの可動範囲内か否かを判定していた。本実施形態では、新たな中間教示点群R1、R2、…Rn(第2の中間教示点群)を生成し(図7(c))、可動範囲内か否かの判定に加え、ロボットアームAが障害物Obと干渉しているか否かを判定する。障害物と干渉している場合は、その中間教示点群R1、R2、…Rnを無効とし、ステップS102に戻る。
【0067】
また、実施形態1では、図4のステップS107で、干渉時間もしくはめり込み量を評価値として軌道を評価していた。本実施形態では、ロボットアームAの動作時間を評価値として軌道を評価する(図7(d))。これにより、動作時間が最短となる中間教示点群P1、P2、…Pnを生成することができる。図7(d)の例では、動作時間に係る第2の中間教示点群の評価値は、R11、R12…R1nでは180、R21、R22…R2nでは120、R31、R32…R3nでは150、となっている。ここで最も評価値が良いのは干渉量の小さい(動作時間値の小さい)中間教示点群R21、R22…R2nである。
【0068】
また、実施形態1では、図4ステップS109の打ち切り条件の1つとして、評価値が0になることを考えた。これに対して本実施形態では、ステップS102~ステップS109までの繰り返しに上限回数を設ける方法、もしくは、中間教示点群P1、P2、…Pnの評価値が連続して(ほぼ)変化しない回数に上限を設ける方法を用いる。例えば、それ以上に動作時間が短縮されない場合にステップS102~ステップS109のループを脱出し、最短時間の得られる中間教示点群P1、P2、…PnをステップS110で出力する(図7(e))。あるいは、本実施形態2では、ステップS110で、最適化された教示点として、必ずしも最終の移動状態の中間教示点群P1、P2、…Pnを出力しなくてもよい。例えば、ステップS102からステップS108までの繰り返しにおける中間教示点群P1、P2、…Pnの変化の履歴を取り、もっとも評価が高いものを出力しても良い。
【0069】
以上に示したように、本実施形態によれば、障害物を回避し、トルク制約などの物理的制約を守った上で、さらに動作時間を最短とする軌道を生成できるという効果がある。特に、最適化制御手順(図4)は、2パス(あるいはそれ以上の複数パス)で用いることができ、その場合、各パスにおいて、異なる制約条件を作用させることによって、各制約条件について最適化された軌道を取得することができる。
【0070】
ここで、ロボットアームAのより具体的な構成例や、ロボットアームAを生産システムに適用した場合の構成などにつき示しておく。
【0071】
図10は、模式的な図2の構成よりも具体的なロボットアームAの全体構成を示している。図10において、ロボットアームA(ロボット装置)は、例えば6軸(関節)の垂直多関節形式のアーム本体201を備える。アーム本体201の各関節は、各関節にそれぞれ設けられたサーボモータをサーボ制御することにより所望の位置姿勢に制御することができる。
【0072】
アーム本体201の先端(手先)には、例えばハンド202のようなツールが装着され、このハンド202によって、ワーク203を把持し、ワーク203を組み付けたり、加工したりする生産作業を行わせることができる。ワーク203は、自動車や電機製品などの工業製品の例えば部品であって、ロボットアームAはこのような生産システム(生産ライン)に生産装置として配置することができる。
【0073】
ロボットアームAのアーム本体201の動作は、ロボット制御装置200(ロボットコントローラ)により制御される。ロボットアームAの動作は、ロボット制御装置200に接続された操作端末204(例えばティーチングペンダント)によってプログラミング(教示)することもできる。例えば、操作端末204により教示点を順次指定することによって、ロボットアームAの特定部位(例えばTCP:アーム先端のツール装着面など)を所望の軌跡で移動させる動作をプログラミングすることができる。
【0074】
また、ネットワークNWを介して、ロボットアームAないしロボット制御装置200は、上記の軌道生成装置(あるいはロボットシミュレータ:図1)から、上述のように最適化された中間教示点ないし軌道データを受信することができる。これにより、上記の処理によって最適化された中間教示点ないし軌道データに基づき、ロボットアームAを生産システム(生産ライン)に配置し、生産装置として動作させ、物品を製造することができる。
【0075】
本発明は、上述の実施例の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0076】
A…ロボットアーム、J1、J2…関節軸、Ob…障害物、Ps…開始教示点、Pg…目標教示点、P1、P2、…Pn…(第1の)中間教示点群、Ri1、Ri2、Rin…(第2の)中間教示点群、1…演算処理部、2…操作部、3…記録部、4…表示部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10