JP4693643B2 - ロボットの教示支援装置及びそのためのプログラム - Google Patents

ロボットの教示支援装置及びそのためのプログラム Download PDF

Info

Publication number
JP4693643B2
JP4693643B2 JP2006021445A JP2006021445A JP4693643B2 JP 4693643 B2 JP4693643 B2 JP 4693643B2 JP 2006021445 A JP2006021445 A JP 2006021445A JP 2006021445 A JP2006021445 A JP 2006021445A JP 4693643 B2 JP4693643 B2 JP 4693643B2
Authority
JP
Japan
Prior art keywords
evaluation
point
solution
movement
moving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006021445A
Other languages
English (en)
Other versions
JP2007203380A (ja
Inventor
雅幸 掃部
利彦 宮崎
智宏 高木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawasaki Motors Ltd
Original Assignee
Kawasaki Jukogyo KK
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kawasaki Jukogyo KK filed Critical Kawasaki Jukogyo KK
Priority to JP2006021445A priority Critical patent/JP4693643B2/ja
Publication of JP2007203380A publication Critical patent/JP2007203380A/ja
Application granted granted Critical
Publication of JP4693643B2 publication Critical patent/JP4693643B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)

Description

本発明は、ロボットを移動させるに必要な情報をロボットに教示する教示作業を支援する教示支援装置に関する。
特許文献1に開示される技術では、冗長自由度ロボットの手先を現在位置および現在姿勢に維持したうえで、冗長自由度ロボットの冗長関節が取り得る可動領域を表示する。作業者は、ロボット装置の表示結果に基づいて、ロボットの教示作業を行うことができる。この場合、冗長関節の可動領域が取り得る可動領域が表示されるだけでは、どの冗長関節の角度位置が最適かどうかについて、作業者が判断しなければならず十分な教示支援を行うことができない。
特許文献2に開示される技術では、作業者が教示した各関節の角度位置を初期値として、冗長関節の角度位置に関する微調整を繰返す勾配法を用いて、ロボットの移動タイムを短縮化する各関節の角度位置を探索する。具体的には、ユーザが教示した各関節の角度位置を所期値として、冗長関節の角度位置を+δ微調整した条件と、−δ微調整した条件と、微調整しない条件とで、ロボットの移動タイムを計算および比較し、より短時間の条件に対応した冗長関節の角度位置を随時採用する。
特許文献3に開示される技術では、特許文献2と同様に勾配法を用いて、ロボットの各関節の角度位置のリミット位置と、ロボットから障害物までの距離とをパラメータとする余裕度が最大となるときの冗長関節の角度位置を最終的な教示データとする。
また勾配法以外に全域探索法を用いて、ロボットに設定される評価値が最も高くなるようにすることも考えられる。全域探索法を用いた場合、ロボットの各関節の角度位置が取り得る組合せを全て求め、次に全組合せについてそれぞれ評価値を求めて、評価値が最も高くなる各関節の角度位置の組合せを採用する。
特開平5−337861号公報 特開平9−128024号公報 特開平9−201784号公報
図28は、1つの冗長関節を有するロボットにおいて、ロボットの手先位置を2つの移動点間を移動させるにあたって、開始点でのロボットの各関節の角度位置を初期値に固定し、終了点でのロボットの各関節の角度位置を変化させた場合のロボット移動時間の変化を示すグラフである。図28には、各関節の角度位置の取り得る離散形態符号の正負の組合せによっては、冗長関節の角度位置が1つの値であっても、ロボットは複数の離散形態を取り得え、離散形態を異ならせた2つのグラフを図28(1)、図28(2)にそれぞれ示す。また縦軸にロボットの移動時間を示し、横軸に冗長関節の角度位置を示す。図28に示すように、冗長値の変化に対するロボット移動時間の変化特性は、非線形性となりやすい。特に、各関節の角度位置の可動範囲が制限されている場合には、さらに非線形性が強くなる。
特許文献2および特許文献3に示すように、勾配法を用いてロボットの各関節の角度位置を評価する場合、局所解に陥るおそれがある。勾配法では、初期値r1から冗長関節の角度位置を変化させて、ロボット移動時間が極小値となる局所解r2に到達した時点で探索を終了する。ロボット移動時間の変化特性が非線形となる場合には、初期値r1におけるロボット移動時間に対して、探索後の局所解r2におけるロボット移動時間は、あまり短縮されない。また局所解r2は、ロボット移動時間が最短となる最適解r3とは異なることが多く、最適解r3を探索できない可能性が高い。
たとえば初期値r1の各関節の角度位置におけるロボット移動時間を図28(1)の丸点で示す。また初期値r1の各関節の角度位置から勾配法を用いた場合における局所解r2の各関節の角度位置におけるロボット移動時間を図28(1)の三角点で示す。また離散形態の異なる場合も含めて、最も移動時間が短くなる最適解r3の各関節の角度位置におけるロボット移動時間を図28(2)の四角点で示す。この場合、初期値r1では、ロボット移動時間は、約1.5である。また局所解r2に到達した状態では、ロボット移動時間は、約1.2秒である。これに対して最適解r3に到達した時点では、ロボット移動時間は、約0.8秒である。上述したように勾配法では、最適解r3を探索できない可能性が高く、ロボット移動時間を充分に短縮することができないことがあり、十分な教示支援を行うことができないという問題がある。
また全ての種類の離散形態における各関節における移動時間を全て求めるように総当り的に、冗長関節の角度位置と離散形態とを変化させる場合には、最適解r3を求めることができるが、最適解r3を求めるのに費やす演算時間が膨大となる。特に、手先を複数個の移動点について順に移動させる場合、移動点ごとに複数の冗長関節の角度位置が存在するので、指数関数的に演算量が増大ししまう。
たとえばN個の移動点を順に手先が移動し、移動点ごとにm個の各関節の角度位置の組合せが存在する場合、第1移動点から第N移動点まで移動するのに取り得ることが可能な移動点毎の各関節の角度位置の組合せは、m通りの組合せが存在する。したがって、最も評価の高い移動点毎の各関節の角度位置の組合せを求めることが困難となる。特に、移動点の数を増やしたり、冗長関節の角度位置の刻み幅を細かくしたりすると、計算機の演算量が膨大化してしまい、結果として最適解r3を得ることができないという問題がある。また図28には、ロボット移動時間をロボットの形態を評価する評価値としたが、ロボット移動時間以外の他の評価基準でロボットの形態を評価する場合も同様の問題が発生する。
したがって本発明の目的は、最適な移動点毎の各関節の角度位置の組合せを短時間で演算可能であって、作業者によるロボットの教示作業を支援する教示支援装置を提供することである。
本発明は、(a)複数の関節を有する多関節ロボットの予め定める移動対象部位を、複数の移動点を順次通過するように移動させるにあたって、移動点を移動対象部位がそれぞれ通過するときに各関節の角度位置で表される関節形態の、移動点毎の組合せを求めてロボット教示作業を支援する教示支援装置であって、
(b)各移動点を特定するための移動点情報を入力する入力手段と、
(c)ロボットの移動対象部位を移動点に配置可能な関節形態を解候補とし、移動点毎に、全ての解候補をそれぞれ演算する解候補演算手段と、
(d)移動点毎にそれぞれ選択される解候補の組合せを評価する評価演算手段であって、
(d1)通過順が最初の移動点から通過順が最後の移動点に向かう移動方向、および通過順が最後の移動点から通過順が最初の移動点に向かう移動方向のいずれか一方を評価方向とし、
(d2)最上流の移動点における各解候補のうちの1つと、評価方向最上流の移動点の評価方向下流側に隣接する2つめの移動点における各解候補のうちの1つとのそれぞれの組合せについて、予め定める評価基準に従って評価値を求め、2つめの移動点における解候補毎に、評価値が最も高い組合せをそれぞれ抽出して、2つめの移動点における各解候補毎に、2つめの移動点における各解候補のうちの1つと、それに関連して抽出した最上流の移動点における1つの解候補との組合せをそれぞれ決定し、
(d3)2つめの移動点の評価方向下流側に隣接する3つめの移動点から評価方向最下流の移動点まで、評価方向に順次、各移動点における各解候補毎に、注目する移動点における各解候補のうちの1つと、注目する移動点に対して評価方向上流側に隣接する移動点における各解候補のうちの1つとのそれぞれの組合せについて、前記評価基準に従って評価値を求め、それら2つの解候補の組合せの評価値と、評価値を求めた2つの解候補のうちで評価方向上流側の移動点における解候補について既に決定しているさらに評価方向上流側のそれぞれの移動点毎の各解候補に関する評価値の合計値とを合わせた累積評価値を求め、注目する移動点における解候補毎に、累積評価値が最も高い組合せを抽出して、注目する移動点における解候補毎に、注目する移動点における各解候補のうちの1つと、それに関連して抽出した評価方向上流側に隣接する移動点における1つの解候補との組合せを決定し、
(d4)評価方向の最下流の移動点における各解候補のうち、累積評価値が最も高い解候補を抽出し、この解候補に関連して既に決定される移動点毎の各解候補の組合せを、移動点毎の関節形態の組合せとして求める評価演算手段と、
(e)評価演算手段による演算結果を出力する出力手段とを含み、
前記入力手段は、多関節ロボットの進入が禁止される進入禁止領域に関する禁止領域情報を入力し、
前記評価基準は、評価方向に隣接する2つの移動点における各解候補の表わす関節形態を変数とする評価関数に基づいて決定される第1評価基準と、評価方向に隣接する2つの移動点間について移動対象部位を移動させる間にロボットの少なくとも一部が進入禁止領域に進入しないことを基準とする第2評価基準とを含み、
前記評価演算手段は、評価方向に隣接する2つの移動点のうちの評価方向下流側の移動点における解候補に対して、評価方向に隣接する2つの移動点のうちの評価方向上流側の移動点における各解候補毎に第1評価基準に従う第1評価値をそれぞれ求め、それらのうちで、第1評価値が最も高い組合せ順に、第2評価基準を満足するか否かを演算し、第2評価基準を満足し、かつ第1評価値が最も高い組合せを、評価値が最も高い組合せとして抽出することを特徴とするロボットの教示支援装置である。
本発明に従えば、解候補演算手段は、入力手段から入力される移動点情報に基づいて、移動点毎に、移動対象部位を移動点に配置可能な全ての解候補を演算する。評価演算手段は、隣接する2つの移動点において、一方の移動点における各解候補のうちの1つと、他方の移動点における各解候補のうちの1つとで取り得る全ての組合せについて、評価値をそれぞれ求める。
評価演算手段は、評価値を求めた全ての組合せのうちで、評価方向に2つめの移動点における解候補毎に、評価値の最も高い、最上流の移動点における解候補との組合せを抽出する。また評価演算手段は、評価方向に3つめ以降の注目する移動点における解候補毎に、累積評価値の最も高い、注目する移動点よりも上流に隣接する移動点における解候補との組合せを抽出する。このようにして評価方向下流に向かって各評価値を順次求める。この場合、最下流の移動点における各解候補と、最下流の移動点よりも評価方向上流に隣接する移動点における解候補との組合せのうちで、累積評価値が最も高い組合せの2つの解候補と、それら2つの解候補に関連して抽出される移動点毎の解候補の組合せが、手先を始点から終点まで移動させるにあたって全体的な評価が最も高い組合せとなる。
このように本発明では、2つの解候補ごとに評価値が高い解候補の組合せをそれぞれ抽出し、抽出した組合せを用いて、全体的な評価が最も高い移動点毎の解候補の組合せを求める。これによって評価値が低い解候補の組合せを除いたうえで、全体的な評価の高い解候補の組合せを探索することができ、全体的な評価が最も高い組合せを短時間でかつ効率よく求めることができる。
また本発明は、(a)複数の関節を有する多関節ロボットの予め定める移動対象部位を、複数の移動点を順次通過させて環状の循環移動経路を循環移動させるにあたって、移動点を移動対象部位がそれぞれ通過するときに各関節の角度位置で表される関節形態の、移動点毎の組合せを求めてロボット教示作業を支援する教示支援装置であって、
(b)各移動点を特定するための移動点情報を入力する入力手段と、
(c)移動点のうちで、仮想的に循環移動を開始する最初の移動点と、最初の移動点の移動方向上流側となる最後の移動点とを選択する選択手段と、
(d)ロボットの移動対象部位を移動点に配置可能な関節形態を解候補とし、移動点毎に、全ての解候補をそれぞれ演算する解候補演算手段と、
(e)移動点毎にそれぞれ選択される解候補の組合せを評価する評価演算手段であって、
(e1)通過順が最初の移動点から通過順が最後の移動点に向かう移動方向、および通過順が最後の移動点から通過順が最初の移動点に向かう移動方向のいずれか一方を評価方向とし、
(e2)最上流の移動点における各解候補のうちの1つと、評価方向最上流の移動点の評価方向下流側に隣接する2つめの移動点における各解候補のうちの1つとのそれぞれの組合せについて、予め定める評価基準に従って評価値を求め、2つめの移動点における解候補毎に、評価値が最も高い組合せをそれぞれ抽出して、2つめの移動点における各解候補毎に、2つめの移動点における各解候補のうちの1つと、それに関連して抽出した最上流の移動点における1つの解候補との組合せをそれぞれ決定し、
(e3)2つめの移動点の評価方向下流側に隣接する3つめの移動点から評価方向最下流の移動点まで、評価方向に順次、各移動点における各解候補毎に、注目する移動点における各解候補のうちの1つと、注目する移動点に対して評価方向上流側に隣接する移動点における各解候補のうちの1つとのそれぞれの組合せについて、前記評価基準に従って評価値を求め、それら2つの解候補の組合せの評価値と、評価値を求めた2つの解候補のうちで評価方向上流側の移動点における解候補について既に決定しているさらに評価方向上流側のそれぞれの移動点毎の各解候補に関する評価値の合計値とを合わせた累積評価値を求め、注目する移動点における解候補毎に、累積評価値が最も高い組合せを抽出して、注目する移動点における解候補毎に、注目する移動点における各解候補のうちの1つと、それに関連して抽出した評価方向上流側に隣接する移動点における1つの解候補との組合せを決定し、
(e4)評価方向最下流の移動点における解候補ごとに、評価方向最下流の移動点における解候補のうちの1つと、その解候補に関連して決定される評価方向最上流の移動点における1つの解候補との組合せについて、予め定める評価基準に従って評価値を求め、それら2つの解候補の組合せの評価値と、評価値を求めた評価方向最下流の移動点の解候補の累積評価値とを合わせた循環累積評価値を求め、循環累積評価値が最も高い解候補の組合せを抽出し、この組合せの解候補に関連して決定される移動点毎の各解候補の組合せを、移動点毎の関節形態の組合せとして求める評価演算手段と、
(f)評価演算手段による演算結果を出力する出力手段とを含むことを特徴とするロボットの教示支援装置である。
本発明によれば、循環移動経路において、評価値が低い解候補の組合せを除いたうえで、全体的な評価の高い解候補の組合せを探索することができ、全体的な評価が最も高い組合せを短時間でかつ効率よく求めることができる。また移動を開始するときの移動点の関節形態と、循環移動経路を一周したときの移動点の関節形態とを同じとすることによって、循環移動経路を円滑に移動させることができる。
また本発明は、前記入力手段は、多関節ロボットの進入が禁止される進入禁止領域に関する禁止領域情報を入力し、
前記解候補演算手段は、ロボットの移動対象部位を移動点に配置可能な関節形態のうちで、ロボットの少なくとも一部が進入禁止領域に進入するような関節形態について、解候補から除外することを特徴とする。
本発明に従えば、全体的な評価が最も高い解候補の組合せでは、移動点を移動対象部位が通過するときに、ロボットが進入禁止領域に進入することが防がれ、実用的な解候補の組合せを求めることができる。またロボットが進入禁止領域に進入するであろう関節形態を解候補から除外することで、評価演算手段で用いられる解候補の数を低減することができ、全ての組合せの評価値を演算するに要する時間と、最も高い解候補の探索に要する時間とを短縮することができる。
また本発明は、前記入力手段は、多関節ロボットの進入が禁止される進入禁止領域に関する禁止領域情報を入力し、
前記評価基準は、評価方向に隣接する2つの移動点における各解候補の表わす関節形態を変数とする評価関数に基づいて決定される第1評価基準と、評価方向に隣接する2つの移動点間について移動対象部位を移動させる間にロボットの少なくとも一部が進入禁止領域に進入しないことを基準とする第2評価基準とを含み、
前記評価演算手段は、評価方向に隣接する2つの移動点のうちの評価方向下流側の移動点における解候補に対して、評価方向に隣接する2つの移動点のうちの評価方向上流側の移動点における各解候補毎に第1評価基準に従う第1評価値をそれぞれ求め、それらのうちで、第1評価値が最も高い組合せ順に、第2評価基準を満足するか否かを演算し、第2評価基準を満足し、かつ第1評価値が最も高い組合せを、評価値が最も高い組合せとして抽出することを特徴とする。
本発明に従えば、全体的な評価が最も高い解候補の組合せでは、2つの移動点の間を移動対象部位が通過する間にわたって、ロボットが進入禁止領域に進入することが防がれ、より実用的な解候補の組合せを求めることができる。
また注目する移動点の1つの解候補に対して、注目する移動点の上流側の移動点における解候補毎に第1評価値をそれぞれ求めたあとで、第1評価値が最も高い組合せ順に、第2評価基準を満たすかどうかを演算する。第1評価値が最も高い組合せが第2評価基準を満たす場合には、その時点で、評価値が最も高い組合せが決定されるので、第1評価値が最も高い組合せ以外の組合せについて、第2評価基準を満たすかどうかを演算する必要がない。
このように第2評価基準を満たすかどうかについては、第1評価値が最も高い組合せを暫定的に決定した状態で行うので、1つの解候補に対して上流側の移動点における解候補毎に第1評価基準を満たすかどうかをそれぞれ演算する場合に比べて、第2評価基準を満足するか否かを演算する回数を少なくすることができる。第2評価基準を判断するためには、注目する2つの移動点の間について、移動対象部位を移動させる間にわたって、ロボットの一部が進入禁止領域に進入したかどうかを判断しなければならない。したがって第2評価基準を求めるための演算量は、第1評価値を演算する場合に比べて大きくなる。上述したように本発明では、演算量の大きい第2評価基準を判断する回数を少なくすることができるので、全体として演算時間を短縮することができる。
また本発明は、前記評価値は、評価方向に隣接する2つの移動点における各関節の角度位置の偏差を変数とする評価関数に基づいて決定されることを特徴とする。
本発明では、評価値が、隣接する2つの移動点における各関節の角度位置の偏差となるので、評価値が最も高い組合せを採用することで、関節を移動させる角度位置が小さくなりやすく、移動対象部位を移動させるに要するロボットの移動時間を短くすることができる。したがって上述した最適な解候補の組合せを用いることで、移動点の始点から終点まで短時間で移動対象部位を移動させることができる。またたとえば評価関数を適切に設定することで、ロボットの変位量が小さくなり、移動対象部位を移動させるに要するロボットの消費エネルギーを小さくすることができる。
また本発明は、前記解候補演算手段によって演算される、ロボットの移動対象部位を移動点に配置可能な全ての関節形態を記憶する記憶手段をさらに含み、
前記評価演算手段は、記憶手段に記憶される関節形態を解候補としてそれぞれ読出して、移動点毎の関節形態の組合せを求めることを特徴とする。
本発明に従えば、記憶手段に関節形態を記憶した状態で、入力手段によって進入禁止領域が入力された場合または進入禁止領域が更新された場合など、記憶手段に記憶される関節形態を用いて、解候補を再抽出することができ、進入禁止領域が入力される毎に解候補を演算する場合に比べて、短時間で解候補を求めることができる。
また本発明は、前記ロボットの教示支援装置の動作をコンピュータに行わせるためのコンピュータ読取り可能なプログラムである。
本発明に従えば、プログラムをコンピュータに読取らせることによって、コンピュータを上述したロボットの教示支援装置として動作させることができる。
請求項1記載の本発明によれば、演算可能な全ての解候補を対象としたうえで、最適な解候補の組合せを求めることで、局所解に陥る可能性のある勾配法に比べて、最適な解候補の組合せを確実に得ることができる。また2つの解候補の組合せにおける評価値の低い組合せを除いて、最適な解候補の組合せを探索することで、全ての解候補を用いて探索する全域探索法に比べて短時間に最適な解候補の組合せを得ることができる。
たとえば移動点がN個存在し、移動点毎に解候補がm個存在する場合、最適な解候補の組合せを求めるには、全ての解候補を用いた全域探索法では、mN通りの組合せでの全体的な評価値を全て計算し、それらのうちから全体的な評価の高い解候補の組合せを探索する必要がある。これに対して、本発明では、全体的な評価の高い解候補の組合せを求めるには、m2・(N−1)通りの組合せを計算するだけでよく、演算量を極めて少なくすることができる。また移動点の数N、1つの移動点毎の解候補の数mがそれぞれ多い場合でも、全ての解候補を用いた全域探索法に比べて演算量の増加率が小さいので、移動点および解候補の数を増やしやすく、より最適な解を得ることができる。
また、最適な解候補の組合せでは、2つの移動点の間を移動対象部位が通過する間にわたって、ロボットが進入禁止領域に進入することが防がれる。したがってより実用的となる最適な解候補の組合せを求めることができる。また第1評価値が最も高い組合せが求まった後で、絞り込まれた組合せについて第2評価基準を満たすかどうかを演算することで、計算負荷の大きい第2評価基準を用いて演算する回数を少なくすることができ、演算時間を短縮することができる。
請求項2記載の本発明によれば、移動対象部位を循環移動経路に沿って循環移動させる場合に、局所解に陥る可能性のある勾配法に比べて、最適な解候補の組合せを確実に得ることができる。また2つの解候補の組合せにおける評価値の低い組合せを除いて、最適な解候補の組合せを探索することで、全ての解候補を用いて探索する全域探索法に比べて短時間に最適な解候補の組合せを得ることができる。さらに移動を開始するときの移動点の関節形態と、循環移動経路を一周したときの移動点の関節形態とを同じとすることによって、循環移動経路を円滑に移動させることができる。
請求項3記載の本発明によれば、最適な解候補の組合せでは、移動点を移動対象部位が通過するときに、ロボットが進入禁止領域に進入することが防がれる。したがって実際に適用可能な解候補の組合せのうちで、最適な解候補の組合せを求めることができる。たとえば最適な解候補の組合せに基づいてロボットを動作させた場合に、作業者が最初に想定したロボットの形態と大きく異なっていても、ロボットが進入禁止領域に進入することを防ぐことができ、ロボットと障害物とが衝突することを防ぐことができる。また本発明では、ロボットが進入禁止領域に進入する各関節の角度位置を解候補から除外することで、解候補の数を減らすことができ、さらに演算量を少なくすることができる。
請求項4記載の本発明によれば、最適な解候補の組合せでは、2つの移動点の間を移動対象部位が通過する間にわたって、ロボットが進入禁止領域に進入することが防がれる。したがってより実用的となる最適な解候補の組合せを求めることができる。また第1評価値が最も高い組合せが求まった後で、絞り込まれた組合せについて第2評価基準を満たすかどうかを演算することで、計算負荷の大きい第2評価基準を用いて演算する回数を少なくすることができ、演算時間を短縮することができる。
請求項5記載の本発明によれば、評価値が最も小さい組合せを採用することで、ロボットの関節を移動させる角度位置が小さくなりやすく、移動対象部位を移動させるに要するロボットの移動時間を短くすることができる。これによって最適な解候補の組合せを用いて、移動対象部位を移動させることで、ロボットを短時間で移動させることができ、ロボットによる作業効率を向上することができる。
請求項6記載の本発明によれば、入力手段によって進入禁止領域が入力された場合または進入禁止領域が更新された場合などに、記憶手段に記憶される関節形態を用いて、解候補を再抽出することができ、進入禁止領域が入力される毎に解候補を演算する場合に比べて、短時間で解候補を求めることができる。
請求項7記載の本発明によれば、プログラムをコンピュータに読取らせることによって、コンピュータを上述したロボットの教示支援装置として動作させることができ、短時間で最適な解候補をコンピュータに求めさせることができる。
図1は、本発明の第1実施形態であるロボットの教示支援装置20を示すブロック図である。本発明の第1実施形態の教示支援装置20は、作業者によるロボット教示作業を支援するための装置である。ロボット教示作業は、多関節ロボットに予め定める動作を行わせるために、作業者がロボットを教示する作業である。
本実施の形態では、多関節ロボットは、複数の関節を有する7自由度ロボットである。多関節ロボットは、移動対象部位として手先が設定され、各関節のそれぞれの角度位置を変化させることによって、手先を任意の位置および姿勢に移動可能に構成される。以下、各関節のそれぞれの角度位置が決定された場合のロボットの外形的形態を関節形態と称する。また多関節ロボットは、冗長性を有し、手先を予め定める位置および姿勢に移動させた状態で、複数の関節形態を取り得る。言い換えると、多関節ロボットは、手先を予め定める位置および姿勢に移動させることが可能な関節形態が複数通り存在する。
多関節ロボットは、始点から終点まで、予め定める移動経路に沿って手先を移動させる。このとき手先は、始点から終点まで移動する間に複数の経由点を通過する。教示支援装置20は、ロボットが手先を複数の移動点を順次通過させて移動させるにあたって、各移動点を手先がそれぞれ通過するときの、移動点毎に設定される関節形態の最適な組合せを出力、具体的には表示する。ここで最適な組合せとは、予め定める評価基準に従う評価値が最も高い関節形態の組合せを意味する。
作業者は、支援教示装置20によって表示される関節形態の組合せを把握することで、移動点毎の最適な関節形態の組合せを手動で探索する手間を省くことができ、ロボット教示作業を容易に行うことができる。このように教示支援装置20は、移動点毎の最適な関節形態の組合せを求めることで、作業者によるロボット教示作業を支援する。
図1に示すように、教示支援装置20は、演算部21と、記憶部22と、入力部23と、出力部24とを含んで構成されるコンピュータである。演算部21は、データ作成部30と、データ探索部31とを含んで構成される。データ作成部30は、移動点毎に、ロボットの手先を移動点に配置可能な全ての関節形態を、解候補としてそれぞれ求める解候補演算手段となる。1つの解候補は、各関節のそれぞれの角度位置の組合せで表わされる。さらにデータ作成部30は、手先の移動方向に隣接する2つの移動点における一方の移動点の各解候補のうちの1つと、他方の移動点の解候補のうちの1つとに基づいて評価した評価値を演算する。
またデータ探索部31は、データ作成部30によって作成された各評価値のうちから、移動点毎の最適な解候補の組合せを探索する。データ作成部30とデータ探索部31とによって、請求の範囲に記載される評価演算手段を構成する。データ探索部31は、最適な解候補の組合せを求め、求めた最適な解候補の組合せを出力部24に与える。このような演算部21は、CPUなどの中央演算回路によって実現される。演算部21は、RAMまたはROMなどの記憶回路に記憶されるプログラムを実行することによって、データ作成部30およびデータ探索部31の動作を行うことができる。このように教示支援プログラムを、コンピュータが読込んで実行することによって、コンピュータは、後述する教示支援動作を行うことができる。
記憶部22は、移動点情報記憶部32と、解候補記憶部33と、評価値記憶部34と、ロボット型式記憶部35とを含んで構成される。移動点情報記憶部32は、移動点情報を記憶する。移動点情報は、移動点毎で、手先が移動すべき位置および姿勢を表わす情報である。ここで、移動点は、手先が移動する点であって、始点と、終点と、始点および終点を結ぶ手先の移動経路上に配置される複数の経由点とを含む。本実施の形態では、移動点情報記憶部32は、予め定める位置姿勢で手先が移動点に位置するときの各関節のそれぞれの角度位置を、移動点情報として記憶する。移動点情報として記憶される各関節のそれぞれの角度位置は、暫定的な各関節の角度位置である。
解候補記憶部33は、解候補を記憶する。解候補は、上述したようにロボットの手先を移動点に配置可能な、各関節のそれぞれの角度位置の組合せで表わされる。したがって1つの解候補には、手先を対応する移動点に配置可能となるような、それぞれの関節毎の角度位置の情報が含まれる。7つの関節Jt1〜Jt7を有する7軸ロボットでは、1つの解候補は、各関節Jt1〜Jt7にそれぞれ対応する7つの角度位置q1〜q7が組合わされた情報が含まれる。
また7軸ロボットは、冗長性を有するので、手先が予め定められる位置と姿勢で1つの移動点に位置する解候補は、1つではなく無数に存在する。解候補記憶部33は、移動点ごとに、移動点に設定される位置姿勢で手先を配置可能な無数の解候補のうちで、演算可能な全ての解候補が記憶される。たとえば移動点がN個存在し、1つの移動点毎にm個の解候補が演算可能な場合には、解候補記憶手段には、N×m個の解候補が記憶される。
解候補記憶部33は、演算部21のデータ作成部30によって解候補を示す情報が入力され、入力された解候補と、その解候補と対応する移動点とを関連させて記憶する。また解候補記憶部33は、1つの移動点における各解候補について、それぞれを区別するための番号を付して記憶する。
評価値記憶部34は、評価値を記憶する。評価値は、手先の移動方向に隣接する2つの移動点における一方の移動点の各解候補のうちの1つと、他方の移動点の各解候補のうちの1つとに基づいて、予め定める評価基準に従って評価される値である。本実施の形態では、隣接する2つの移動点における2つの解候補のうちで、関節毎の角度位置を変数とする評価関数に基づいて評価値が決定される。
本実施の形態では、2つの解候補において、関節Jt1〜Jt7毎にそれぞれ対応する角度位置の偏差δ1〜δ7を求める。それら各偏差δ1〜δ7の最大の値となるものに基づいて評価値として決定する。具体的には、評価値は、2つの移動点の間について手先を移動させる間に、各関節Jt1〜Jt7のうちで、角度位置の移動量が最大となる最大移動関節の移動量を表わす。最大移動関節の移動量を小さくすると、手先を一方の移動点から他方の移動点まで、移動するのに必要な移動時間を短くすることができる。したがって評価値は、小さければ小さいほど評価が高い。
図1に戻って、ロボット型式記憶部35は、ロボットの型式を記憶する。ロボットの型式は、各関節の角度位置が既知な場合に、ロボットに設定される原点に対する手先の位置および姿勢を求めることが可能な情報が記憶される。またロボット型式情報には、各関節の角度位置の取り得ることが可能な可動範囲がそれぞれ含まれる。
具体的には、ロボットの各関節がそれぞれ同軸関節、傾斜関節および垂直関節のいずれであるかを示す関節構造を示す情報、関節間を連結するリンク体の長さを示すリンク情報がロボット型式記憶部35に記憶される。教示支援装置20が、種類の異なるロボットにおいても対応可能とする場合には、種類の異なるロボット毎に上述したロボットの型式情報が記憶される。たとえば記憶部22は、ハードディスクドライブなどの大容量記憶装置によって実現される。
また入力部23および出力部24は、教示支援装置20と外部と接続するためのインターフェース部となる。本実施の形態では、入力部23は、作業者によって操作されることによって、作業者から情報が与えられ、与えられた情報を演算部21に入力する入力手段となる。出力部24は、演算部21によって演算された演算結果を出力する出力手段となる。本実施の形態では、入力部23は、キーボードおよびポインティングデバイスなどの入力手段によって実現される。また教示支援装置20がロボットコントローラと接続される場合、入力部23は、作業者からロボットの動作指令が入力されるティーチングペンダントによって実現されてもよい。また出力部24は、演算部21の演算結果を画像情報に変換し、変換した画像情報を表示するディスプレイによって実現される。
図2は、教示支援装置20の動作の全体的な流れを示すフローチャートである。ステップa0では、演算部21にデータ作成プログラムおよびデータ探索プログラムが記憶されるなどして、教示支援可能な状態に移行すると、教示支援動作を開始し、ステップa1に進む。
ステップa1では、作業者から、入力部23に評価値が最も高い関節形態の組合せを求めるために必要な情報が入力される。入力部23は、作業者から入力された情報を演算部21に入力する。入力部23が、必要な情報を全て演算部21に入力するとステップa2に進む。
ステップa2では、演算部21のデータ作成部30が、入力部23から与えられた各情報に基づいて、移動点毎に、手先を移動点に配置可能な解候補を全て演算する。データ作成部30は、各解候補を移動点と関連付けて、解候補記憶部33にデータベース化して記憶する。次に、データ作成部30は、隣接する2つの移動点における解候補について、取り得る全ての組合せで評価値をそれぞれ求める。データ作成部30は、2つの解候補の全ての組合せの評価値をそれぞれ求めると、評価値と、評価値を求めた2つの解候補と、2つの解候補における各移動点とを関連付けて、評価値記憶部34にデータベース化して記憶し、ステップa3に進む。
ステップa3では、演算部21のデータ探索部31が、ステップa2で求めた全ての組合せの評価値のうちから、移動点毎の最適な解候補の組合せを探索する。探索が完了すると、探索結果を示す信号を出力部24に入力し、ステップa4に進む。ステップa4では、出力部24が、演算部21のデータ探索部31から与えられた最適な解候補の組合せに基づいて、移動点毎に、ロボットの関節形態を示す画像を表示させ、ステップa5に進み、教示支援動作を終了する。
図3は、図2に示すステップa1における入力部23の動作手順を示すフローチャートである。入力部23は、ステップb0で作業者によって操作されると、ステップb1に進み、入力受付け動作を開始する。
ステップb1では、入力部23は、ロボットの型式の指示指令の入力を受付ける。作業者によってロボットの型式が選択入力されると、作業者が選択したロボットの型式を演算部21に入力し、ステップb2に進む。
ステップb2では、入力部23は、移動点情報の入力を受付ける。本実施の形態では、移動点情報は、手先を移動点に配置させた場合のロボットの各関節の角度位置となる。作業者によって、移動点毎の、ロボットの各関節の角度位置の情報がそれぞれ入力されると、作業者が入力した情報を演算部21に入力し、ステップb3に進む。
ステップb3では、入力部23は、ロボットのうちの1つの関節である冗長関節の角度位置の刻み幅の入力を受付ける。入力部23は、作業者によって入力された刻み幅の情報を演算部21に入力し、ステップb4に進む。ステップb4では、入力部23は、入力受付け動作を終了する。ここで、ステップb1〜b3の受付け順は、これに限定されず、他の順番で作業者から入力される情報を、演算部21に入力してもよい。
また移動点情報は、移動点毎の手先の位置および姿勢が直接入力されてもよい。また移動点情報は、複数の移動点のうちの一部の移動点に関する情報が入力されてもよい。この場合、残余の移動点に関する情報は、入力された一部の移動点の情報に基づいて、演算部21が残余の移動点に関する情報を補間演算することによって求めることができる。また教示支援するロボットが一種類であるならば、ロボットの型式を入力する必要がない。
図4は、図2に示すステップa2におけるデータ作成部30の動作手順を示すフローチャートである。データ作成部30は、ステップc0で入力部23から評価値を求めるための各情報が入力されると、ステップc1に進み、データ作成動作を開始する。
ステップc1では、データ作成部30は、入力されたロボットの型式に対応するロボットの各関節および各リンクの情報を、ロボット型式記憶部32から取得する。またデータ作成部30は、入力されたロボットの各関節の角度位置の情報と、ロボットの各関節および各リンクの情報とに基づいて、ロボットの順運動学問題を解くことによって、移動点における手先の位置および姿勢を求める。このようにしてデータ作成部30は、移動点毎に入力されるロボットの各関節の角度位置から、手先の位置姿勢を求める順変換演算を行うことによって、移動点毎の手先の位置姿勢を全て求めることができる。データ作成部30は、求めた各移動点における手先の位置姿勢を記憶部22にそれぞれ記憶し、ステップc2に進む。
ステップc2では、データ作成部30は、移動点毎に、ステップc2で求めた手先の位置および姿勢となるような解候補を全て求める。解候補は、冗長関節の角度位置を予め定める範囲で微小移動させて、微小移動ごとに、手先が移動点に設定される位置姿勢となるように、残余の各関節の角度位置について、ロボットの逆運動学問題を解く。これによって、手先が移動点に設定される位置姿勢となるような、冗長関節の角度位置と、残余の各関節のそれぞれの角度位置との組合せで構成される1つの解候補を求めることができる。
このように手先の位置姿勢と冗長関節の角度位置とから、ロボットの各関節の角度位置を求める逆変換演算を行うことによって、冗長関節の角度位置を微小移動する毎に1つの解候補を求めることができる。ここで、データ作成部30は、上述したステップb2で与えられる情報に基づいて、冗長関節の角度位置を微小移動する刻み幅を決定する。刻み幅が小さくなればなるほど、1つの移動点が取り得ることが可能な解候補の数が増加する。
このようにして移動点毎に、予め定める範囲のなかで、冗長関節の角度位置を刻み幅ごとに移動させて、複数の解候補を求めることによって、移動点毎の解候補を求めることができる。データ作成部30は、移動点毎にそれぞれ、全ての解候補を求めると、移動点に対応させて各解候補を区別する番号を関連付けて、各解候補を記憶部22にそれぞれ記憶し、ステップc3に進む。
ステップc3では、データ作成部30は、手先を移動する移動方向に関して、移動方向に隣接する2つの移動点における一方の移動点の各解候補のうちの1つと、他方の移動点の解候補のうちの1つとに基づいて評価した評価値を演算する。データ作成部30は、2つの移動点間における解候補の全ての組合せについて評価値を求める。データ作成部30は、求めた評価値と、評価値を求めた移動点間と、解候補の組合せとを関連させて、各評価値を区別する番号を関連付けて、各評価値を記憶部22にそれぞれ記憶し、ステップc4に進む。ステップc4では、データ作成部30は、データ作成動作を終了する。
図5は、ステップc2において、データ作成部30が全ての解候補を求める手順を示すフローチャートである。ステップd0で、全ての移動点における手先の位置姿勢を求めると、ステップd1に進み、解候補作成動作を行う。
ステップd1では、データ作成部30は、ステップc1で求めた各移動点のうちから1つの移動点を選択し、ステップd2に進む。ステップd2では、1つの冗長関節の角度位置に対応して、1つの解候補を求めるために、離散形態を選択する。解候補は、冗長関節の角度位置が1つの値であっても、各関節の角度位置の正負を示す離散形態符号の組合せを異ならせることで、複数の解候補が求まる場合がある。データ作成部30は、1つの解候補を求めることを目的として、離散形態符号の組合せのうちから1つを選択して、ステップd3に進む。
ステップd3では、冗長関節の関節位置の角度範囲における開始位置から終了位置までで、作業者から入力される刻み幅ごとに抽出した複数の関節位置のうちの1つを選択し、ステップd4に進む。ステップd4では、上述するステップd1〜d3で得られた、移動点における手先の位置姿勢と、離散形態と、冗長関節の関節位置と、ロボットの関節およびリンク体の情報とに基づいて、逆変換を行って演算解を求め、ステップd5に進む。本実施の形態では、逆変換を行って解が求まらない場合も、ステップd5に進む。
ステップd5では、逆変換を行って求めた演算解が、ロボットによって実現可能な機構的解として存在するか否かを判断する。具体的には、ステップd4で求めた演算解が、ロボットにおける特異点を超えていると判断すると、演算解が機構的解でないと判断し、ステップd11に進む。ステップd11では、現時点で選択される離散形態において、以前に選択された冗長関節の角度位置と異なる角度位置を選択し、ステップd4に戻る。
ステップd5において、逆変換を行って求めた演算解が、機構的解であると判断すると、ステップd6に進む。ステップd6では、機構的解として判断された演算解を解候補とし、他の解候補と区別するための番号を付して、対応する移動点の情報とともに解候補を記憶部22に記憶し、ステップd7に進む。
ステップd7では、現時点で選択される離散形態において、冗長関節の関節位置の角度範囲における開始位置から終了位置までで、刻み幅毎に抽出した複数の関節位置の全てを、それぞれ選択し終えたかどうかを判断し、まだ選択していない関節位置が存在する場合には、ステップd11に進む。ステップd11では、現時点で選択される離散形態において、以前に選択された冗長関節の角度位置とは異なる角度位置を選択し、ステップd4に戻る。
ステップd7において、現時点で選択される離散形態において、刻み幅毎に抽出した複数の関節位置の全てを選択し終えたと判断すると、ステップd8に進む。ステップd8では、現時点で選択される移動点において、手先の位置姿勢を固定した場合に、取り得る全ての離散形態符号の組合せの全てを、選択し終えたかどうかを判断し、まだ選択していない離散形態符号の組合せが存在すると判断した場合には、ステップd12に進む。ステップd12では、現時点で選択される移動点において、既に選択された離散形態とは異なる離散形態を選択して、ステップd3に戻る。
ステップd8において、現時点で選択される移動点において、ロボットが取り得ることが可能な離散形態符号の組合せの全てをそれぞれ選択し終えたと判断すると、ステップd9に進む。ステップd9では、移動点の全てを、それぞれ選択し終えたかどうかを判断し、まだ選択していない移動点が存在すると判断した場合には、ステップd13に進む。ステップd13では、既に選択された移動点とは異なる移動点を選択し、ステップd2に戻る。ステップd9において、全ての移動点について、選択し終えたと判断すると、ステップd10に進み、解候補作成動作を終了する。このようにして移動点毎、離散形態毎、冗長関節の角度毎に、解候補を求める。
図6は、ステップc3において、データ作成部30が評価値を演算する手順を示すフローチャートである。また図7は、データ作成部30によって求められるそれぞれの評価値を説明するための図である。図7には、4つの移動点p1〜p4と、移動点毎にそれぞれ4つの解候補c(i)_1〜c(i)_4とがそれぞれ存在している場合を示す。また矢印付き線の先端部に図示される数値は、矢印付き線で結ばれる2つの解候補の組合せにおける評価値をそれぞれ示す。
図6に示すように、ステップe0で、全ての解候補を求めると、ステップe1に進み、評価演算動作を行う。ステップe1では、手先を移動させる移動方向最上流の移動点p1と、最上流の移動点の移動方向下流側に隣接する2つめの移動点p2とを選択し、ステップe2に進む。ステップe2では、直前に選択した2つの移動点p(i),p(i+1)のうち下流側の移動点p(i+1)における各解候補c(i+1)のうちで、1番目の番号が関連付けられる解候補c(i+1)_1を選択し、ステップe3に進む。ステップe3では、直前に選択した2つの移動点p(i),p(i+1)のうち上流側の移動点p(i)における各解候補c(i)のうちで、1番目の番号が関連付けられる解候補c(i)_1を選択し、ステップe4に進む。
ステップe4では、予め定める評価基準に従って、直前に選択した、2つの解候補c(i)_j,c(i+1)_kを評価する。本実施の形態では、移動方向上流側の解候補c(i)_jが示す関節形態から、移動方向下流側の解候補c(i+1)_kが示す関節形態まで手先を移動するまでの移動時間t(i+1)_k_jを評価値として演算する。評価基準に従った移動時間t(i+1)_k_jは、2つの解候補c(i)_j,c(i+1)_kの関節形態のうちで、それぞれ対応する関節の角度位置の偏差が最も大きい値(δmax=max|δ1,δ2,…δ6,δ7|)を予め定める各関節の移動速度vで除算した値(=δmax/v)で表わされる。この移動速度vは、各関節の移動速度が一定であり、加減速時間がゼロであって、サーボ遅れがないと仮定した移動速度である。たとえば移動速度vは、100[deg/秒]に設定される。このように移動時間に関する値を評価値として採用した場合、評価値の値が小さければ小さいほど評価が高い。
たとえば図7では、第1移動点p1と第2移動点p2との組合せ(p1→p2)のうちで、第2移動点p2における第1解候補c2_1に対して、第1移動点p1における第1解候補c1_1との移動時間t2_1_1は3秒であり、第2解候補c1_2との移動時間t2_1_2は7秒である。このようにしてデータ作成部30は、2つの移動点p(i),p(i+1)の間を移動するのに必要な移動時間t(i+1)_k_jを求め、ステップe5に進む。
ステップe5では、ステップe4で求めた評価値t(i+1)_k_jと、2つの移動点p(i),p(i+1)と、2つの解候補c(i)_j,c(i+1)_kとを関連付けて記憶し、ステップe6に進む。ステップe6では、現時点で選択される2つの移動点において、上流側の移動点p(i)における各解候補c(i)のうちから、まだ選択していない解候補が存在するか否かを判断する。まだ選択していない解候補が存在すると判断すると、ステップe10に進む。
ステップe10では、現時点で選択される2つの移動点において、上流側の移動点p(i)における各解候補c(i)のうちから、まだ選択していない解候補を選択し、ステップe4に戻る。具体的には、直前に選択された、上流側の移動点p(i)における解候補c(i)_jの、次の番号が関連付けられる解候補c(i)_j+1を選択する。
ステップe6において、現時点で選択される2つの移動点において、上流側の移動点p(i)における各解候補c(i)_jのうちで、全ての解候補をすでに選択したとすると、ステップe7に進む。ステップe7では、現時点で選択される2つの移動点において、下流側の移動点p(i+1)における各解候補c(i+1)のうちから、まだ選択していない解候補が存在するか否かを判断する。まだ選択していない解候補が存在すると判断すると、ステップe11に進む。
ステップe11では、現時点で選択される2つの移動点において、下流側の移動点p(i+1)における各解候補c(i+1)のうちから、まだ選択していない解候補を選択し、ステップe3に進む。具体的には、直前に選択された、下流側の移動点p(i+1)における解候補c(i+1)_kの、次の番号が関連付けられる解候補c(i+1)_k+1を選択する。
ステップe7において、現時点で選択される2つの移動点において、下流側の移動点p(i+1)における各解候補c(i+1)のうちで、全ての解候補をすでに選択したとすると、ステップe8に進む。ステップe8では、移動方向に隣接する2つの移動点p(i),p(i+1)の組合せを全て選択したか否かを判断し、まだ選択していない2つの移動点の組合せが存在すると判断すると、ステップe12に進む。ステップe12では、直前に選択した2つの移動点p(i),p(i+1)のうちの移動方向下流側の移動点p(i+1)と、その移動点よりもさらに移動方向下流側の移動点p(i+2)との2つの移動点の組合せを選択し、ステップe2に戻る。
ステップe8において、移動方向に隣接する2つの移動点p(i),p(i+1)の組合せを全て選択したとすると、ステップe9に進み、評価値演算動作を終了する。このようにして移動方向に隣接する2つの移動点の組合せ毎、上流側の解候補毎、下流側の解候補毎に、評価値を求める。またデータ作成部30は、上述した図6に示す手順と異なる手順で、全ての評価値をそれぞれ求めてもよい。
図8は、データ作成部30によって記憶部22に作成された移動時間t(i+1)_k_jのデータ構造を説明するための図である。図8には、移動点毎にm個の解候補がそれぞれ存在している場合を示す。またt(i+1)_k_jは、評価値をそれぞれ示す。ここでiは、移動方向に隣接する2つの移動点p(i),p(i+1)のうちの上流側の移動点p(i)の番号を示す。またjは、上流側の移動点p(i)における解候補の番号を示し、kは、下流側の移動点p(i+1)における解候補の番号を示す。
上述したように本実施の形態では、2つの移動点p(i),p(i+1)のうちの下流側の移動点p(i+1)における1つの解候補c(i+1)_kに対して、上流側の移動点p(i)における各解候補c(i)_jがそれぞれ対応する組合せが存在する。たとえば図8では、移動方向1つめの移動点p1と移動方向2つめの移動点p2との組合せ(p1→p2)のうちで、2つめの移動点p2における第1解候補c2_1と、1つめの移動点p1における各解候補c1_jとでそれぞれ求められる移動時間t2_1_1〜t2_1_mは、m個存在する。また2つめの移動点p2における第2解候補c2_2と、1つめの移動点p1における各解候補c1_jとでそれぞれ求められる移動時間t2_2_1〜t2_2_mもまた、m個存在する。このことは、2つの移動点p(i),p(i+1)の組合せが異なる場合も同様である。したがって本実施の形態では、m×m×(N−1)個の評価値が記憶部22に記憶される。言い換えるとデータ作成部30は、m×m×(N−1)回、評価値を演算する。
図9は、ステップa3において、データ探索部31が最適な解候補の組合せを演算する手順を示すフローチャートである。また図10は、データ探索部31によって求められる全体最適な解候補の組合せを説明するための図である。図10は、上述した図7に対応し、矢印付き線で結ばれる2つの解候補は、下流側の移動点p(i+1)の1つの解候補c(i+1)_kと、その解候補に対して、上流側の移動点p(i)の各解候補のうちで評価値の最も高いの解候補c(i)_Jとをそれぞれ示す。また各解候補の下方に図示される数値は、2つの解候補の組合せにおける累積評価値を示す。
図9に示すように、ステップf0で、全ての評価値を求めると、ステップf1に進み、最適な解候補の組合せの演算動作を開始する。ステップf1では、手先を移動させる移動方向最上流の移動点p1と、最上流の移動点の移動方向下流側に隣接する2つめの移動点p2とを選択し、ステップf2に進む。ステップf2では、選択した2つの移動点p(i),p(i+1)のうち下流側の移動点p(i+1)における各解候補c(i+1)のうちで、1番目の番号が関連付けられる解候補c(i+1)_1を選択し、ステップf3に進む。
ステップf3では、直前に選択された2つの移動点のうちの下流側の移動点p(i+1)おける1つの解候補c(i+1)_kに対して、上流側の移動点p(i)の各解候補c(i)_1〜c(i)_mで、それぞれ累積評価値T(i+1)_k_1〜T(i+1)_k_mを求める。そして累積評価値が最も高くなる、上流側の移動点p(i)の解候補c(i)_Jを抽出する。累積評価値T(i+1)_k_jは、2つの解候補c(i)_j,c(i+1)_kの組合せによって求められる評価値t(i+1)_k_jと、上流側の移動点p(i)の解候補c(i)_jに既に関連付けられる累積評価値T(i)_k_Jとを加算した値である。ここで最上流の移動点p1の各解候補c1_jについては、関連付けられる累積評価値T(1)_k_Jが存在せず、演算時には便宜上ゼロとして関連付けられる。
たとえば図7に示す第3移動点p3の第1解候補c3_1に対して、第2移動点p2の各解候補c2_1〜c2_4のうちでは、第3解候補c2_3が抽出される。この場合、累積評価値T3_1_Jは、第2移動点p2と第3移動点p3との2つの解候補c(2),c(3)の組合せによって求められる評価値t3_1_jである6と、上流側となる第2移動点p2の第3解候補c2_3に既に関連付けられる累積評価値T2_k_Jであるゼロとを加算した値である。このようにしてデータ探索部31は、ステップf2で選択した解候補c(i+1)_kに対して、累積評価値T(i+1)_k_Jが最も高くなる上流側の移動点p(i)における解候補c(i)_jを1つ抽出すると、ステップf4に進む。
ステップf4では、ステップf3で抽出した下流側の移動点p(i+1)の解候補c(i+1)_kに、ステップf3で求めた最も評価の高い累積評価値T(i+1)_k_Jを関連付ける。そして累積評価値T(i+1)_k_Jと、直前に選択した下流側の移動点p(i+1)の解候補c(i+1)_kと、抽出した上流側の移動点p(i)の解候補c(i+1)_Jと、2つの移動点の組合せとを関連させて、記憶部22に記憶する。記憶が完了すると、ステップf5に進む。
ステップf5では、現時点で選択される2つの移動点において、下流側の移動点p(i+1)における各解候補c(i+1)のうちから、まだ選択していない解候補が存在するか否かを判断する。まだ選択していない解候補が存在すると判断すると、ステップf10に進む。
ステップf10では、現時点で選択される2つの移動点において、下流側の移動点p(i+1)における各解候補c(i+1)のうちから、まだ選択していない解候補を選択し、ステップf3に戻る。具体的には、直前に選択された、下流側の移動点p(i+1)における1つの解候補c(i+1)_kの、次の番号が関連付けられる解候補c(i+1)_k+1を選択する。
ステップf5において、現時点で選択される2つの移動点において、下流側の移動点p(i+1)における各解候補c(i+1)のうちで、全ての解候補をすでに選択したとすると、ステップf6に進む。ステップf6では、移動方向に隣接する2つの移動点p(i),p(i+1)の組合せを全て選択したか否かを判断し、まだ選択していない2つの移動点の組合せが存在すると判断すると、ステップf11に進む。ステップf11では、直前に選択した2つの移動点p(i),p(i+1)のうちの移動方向下流側の移動点p(i+1)と、その移動点よりもさらに移動方向下流側の移動点p(i+2)との2つの移動点の組合せを選択し、ステップf2に戻る。
ステップf6において、移動方向に隣接する2つの移動点p(i),p(i+1)の組合せを全て選択したとすると、ステップf7に進む。図11は、データ探索部31によって記憶部22に作成された累積評価値T(i+1)_k_Jのデータ構造を説明するための図である。図11は、図8に対応し、T(i+1)_k_Jは、各解候補に関連付けられた累積評価値をそれぞれ示す。累積評価値は、第2の移動点p2〜最下流の移動点pNのそれぞれの移動点の数と同じだけ存在する。たとえば第2の移動点p2にm個の解候補が存在すると、第2の移動点p2における累積評価値もm個存在する。第3の移動点p3〜最下流の移動点pNも同様である。したがって本実施の形態では、m×(N−1)個の累積評価値が記憶部22に記憶される。
図9に戻って、ステップf7では、最下流の移動点pNの解候補cN_1〜cN_mのうちで、関連付けられる累積評価値TN_1_J〜TN_m_Jが最も高い解候補を抽出する。言い換えると、最下流の移動点pNと、その1つ手前の移動点p(N−1)との組合せにおいて、累積評価値が最も高い解候補の組合せを抽出する。抽出すると、ステップf8に進む。
ステップf8では、ステップf8で抽出した解候補の組合せに関連する解候補を移動点毎に順次抽出し、抽出した移動点毎の解候補の組合せを、最適な解候補の組合せとして記憶する。具体的には、記憶部22に記憶される累積評価値に関する情報に基づいて、ステップf8で抽出した最下流の移動点の解候補と組合わされた場合に、累積評価値の最も高くなる移動方向上流側の移動点の解候補を抽出し、その抽出した解候補と組合わされた場合に、累積評価値の最も高くなる移動方向さらに上流側の移動点の解候補を抽出する。
言い換えると、累積評価値が記憶されたデータベースを用いて、抽出した最下流の移動点の解候補から移動方向上流側に遡って、移動点間毎に評価の最も高い累積評価値の組合せの解候補を順次辿り、辿った解候補を移動点毎に順次抽出する。このようにして移動点毎に抽出された解候補の組合せが、全体的な評価値の最も高い解候補の組合せ、すなわち最適な解候補の組合せとなる。最適な解候補の組合せを抽出すると、ステップf9に進み、最適な解候補の組合せの演算動作を終了する。本実施の形態では、手先が移動点を移動する方向を評価方向として演算したが、手先が移動点を移動する方向と反対方向を評価方向として、演算を順次行っても、最も評価の高い移動点毎の解候補の組合せを求めることができる。
本実施の形態では、図8に示すような2つの解候補の組合せ毎に求められる全ての評価値を演算してから、最適な解候補の組合せを探索するまでに、繰返す計算回数は、m×m×(N−1)回となる。これに対して、累積評価値を用いずに全域探索法を用いた場合には、最適な解候補の組合せを探索するまでに、繰返す計算回数は、m回となる。ここでmは、上述したように、1つの移動点に取得る解候補の数であって、Nは移動点の数となる。したがって冗長関節の角度位置を変更する刻み幅を細かくすると探索に必要な繰返し回数は、累積評価を用いない場合には指数的に増大する。これに対して、本実施形態では刻み幅を細かくしても比例的にしか増大せず、繰返し計算回数の増加を極めて効果的に抑えることができる。
たとえばN=30、m=800とすると、累積評価を用いない場合には、約1.2×1087回繰返し演算しなければならないのに対して、本実施形態では、約1.9×10回繰返し演算を行うだけでよい。したがって高い演算能力を有する処理回路を必要とすることなく、短時間で最適な解候補の組合せを探索することができる。
図12は、演算結果と演算前との移動時間の変化のシミュレーション結果をそれぞれ示すグラフである。図12には、作業者によって入力された初期状態の移動点毎の関節形態の組合せで、手先を順次移動させた場合の移動点間の移動時間を破線で示す。また教示支援装置20によって演算された最適な移動点毎の関節形態の組合せにおける移動点間の移動時間を実線で示す。
上述したように教示支援装置20は、移動点間ごとに最大移動関節の移動量が最も小さくなるような、関節形態の組合せを出力する。したがって演算結果の関節形態の組合せを適用することによって、初期状態に比べて全体的な移動時間を短縮することができる。本実施形態では、演算結果を採用することで、初期状態に比べて、第1移動点から第28移動点に達するまでの総合移動時間を47.4%短縮することができた。このように演算結果を用いることで、ロボットの移動時間を大幅に短縮することができ、ロボット動作時の作業効率を向上することができる。
また本実施の形態の計算条件および計算時間を表1に示す。表1に示すように、本実施の形態では、計算時間に約12分を費やしたが、累積評価を用いない場合には、2時間費やしても最適な解候補の組合せを探索することができなかった。
Figure 0004693643
図13は、図12に関連した演算結果によるロボットの関節形態の変化を示す図であって、ロボットの関節形態は、図13(1)〜図13(12)の順に進む。図14は、図12に関連した初期状態でのロボットの関節形態変化を示す図であって、ロボットの関節形態は、図14(1)〜図14(12)の順に進む。図13に示す演算結果によるロボットの関節形態変化は、図14に示す初期状態での関節形態変化に比べて、移動点間ごとに最大移動関節の移動量が小さく、不所望な関節の角変位を省くことができる。
以上のように本実施の形態では、冗長関節の角度位置ごとでかつ、離散形態ごとに、解候補の全域探索を行う。そして解候補の組合せごとに移動点間の移動時間を全て求め、下流側の解候補ごとに、移動時間が最も短い上流側の解候補の組合せをそれぞれ抽出する。その抽出結果に基づいて、始点から終点まで手先を移動させる全体的な移動時間が最も短くなる解候補の組合せを探索する。
このようにして、全ての解候補の組合せを対象として、最適な解候補の組合せを求めることで、局所解に陥る可能性のある勾配法に比べて、最適な解候補の組合せを確実に得ることができる。また評価の低い組合せを除いて、最適な解候補の組合せを探索することで、評価の低い組合せを除かずに行う全域探索法に比べて短時間に最適な解候補の組合せを得ることができる。具体的には、上述したように冗長関節の角度位置を変更する刻み幅を細かくすると探索に必要な繰返し回数は、累積評価を用いない場合には指数的に増大するのに対して、本実施形態では比例的にしか増大せず、繰返し計算回数の増加を極めて効果的に抑えることができる。これによって移動点を増やすことができ、一度に移動可能な領域を増やすことができる。また刻み幅を小さくすることができ、より最適な解候補の組合せを求めることができる。
また本実施の形態では、傾斜関節を有するロボットの解候補の最適な組合せを教示支援装置20が求める。傾斜関節を有するロボットは、特異点が多く、移動時間の非線形性が高くなる。また手先を移動させるのに関節の角度位置変化が変則的である。このようなロボットでは、作業者は、全体的な移動時間が最短となる解候補を、手動で推定しずらい。本実施の形態の教示支援装置を用いることによって、作業者は、手動で推定しずらい最適な解候補の組合せを把握することができる。したがって教示支援装置は、教示作業の支援を効果的に達成することができる。
また本発明の第2実施形態として、教示支援装置20は、ロボットに対する障害物に関する情報が入力部23から入力されてもよい。以下、障害物を回避したうえで最適な関節形態の組合せを求める教示支援装置20について説明する。障害物を考慮した関節形態を求める場合であっても、教示支援装置20は、図1と同様となる演算部21、記憶部22、入力部23および出力部24を有する。また教示支援装置20は、図2と同様な動作手順によって演算結果を出力する。
図15は、本発明の第2実施形態であるロボットの教示支援装置20での入力部23の動作手順を示すフローチャートである。入力部23は、ステップg0で作業者によって操作されると、ステップg1に進み、入力受付け動作を開始する。
入力部23は、図3に示すステップb1,b2と同様の動作をステップg1,g2で順に行った後、ステップg3に進む。ステップg3では、入力部23は、障害物の入力を受付ける。作業者によって、ロボットに対する障害物の情報、すなわちロボットの進入が禁止される進入禁止領域の情報が入力されると、その情報を演算部21に入力し、ステップg4に進む。入力部23は、図3に示すステップb3,b4と同様の動作をステップg4,g5で順に行い、入力受付け動作を終了する。
図16は、第2実施形態でのステップc2において、データ作成部30が全ての解候補を求める手順を示すフローチャートである。第2実施形態では、図5に示す動作と類似しており、演算解が障害物と干渉しているか否かを判断するステップd14が余分に含まれる。したがって同様のステップについては、説明を省略し、同様の参照符号を付する。
第2実施形態では、ステップd5において、逆変換を行って求めた演算解が、機構的解であると判断すると、ステップd14に進む。ステップd14では、データ作成部30は、演算解に従った関節形態で手先を移動点に定められる位置姿勢に位置決めした状態で、進入禁止領域にロボットの一部が進入するか否か、いわゆる干渉チェックを行う。進入禁止領域にロボットの一部が進入することを判断すると、ステップd11に進む。またロボットの一部が進入しないことを判断すると、ステップd6に進む。その他の構成については、図5に示す動作と同一である。第2実施形態によれば、干渉の可能性がある解候補を記憶部22に採用せずに、障害物と衝突しない実用可能な解候補について記憶部22に記憶することになる。第2実施形態では、その他の手順については、第1実施形態と同様である。
図17は、干渉チェックの方法を説明するための図である。本実施の形態では、データ作成部30は、OBB(Oriented Bounding Box)を用いた干渉判定計算を行う。図17に示すように、進入禁止領域を直方体とし、リンク体を線分としたときに、線分が直方体に進入するか否かで判断する。データ作成部30は、ステップd4で求めた解候補に基づいて、順変換演算を行って、各リンク体を線分としたときの3次元位置、線分の方向ベクトルを求め、それぞれの線分ごとに上述した干渉チェックを行う。
OBBを用いた干渉判定計算では、表2に示す係数の組合せのうち、少なくとも1つが、R>R0+R1+εで表される関係を満たしていれば、非干渉であると判断される。ここでεは、干渉余裕であり、リンク体の半径以上に設定される。リンク体の半径よりも予め定める量大きくすることで、障害物に近接した状態であっても干渉したと判断させることができる。εは、ステップg3で、障害物情報とともに作業者から入力される。
Figure 0004693643
表2において、aは、障害物を直方体としたときの重心から端面までの縦方向の寸法である。aは、障害物を直方体としたときの重心から端面までの横方向の寸法である。aは、障害物を直方体としたときの重心から端面までの幅方向の寸法である。またωは、リンク体を線分としたときにその線分が延びる方向を示すベクトルである。またAは、障害物を直方体としたときの縦方向を示す単位ベクトルであり、Aは、障害物を直方体としたときの横方向を示す単位ベクトルである。Aは、障害物を直方体としたときの幅方向を示す単位ベクトルである。またDは、リンク体を線分としたときの中点と、障害物を直方体としたときの重心とを結ぶ方向を示すベクトルである。また「×」は、ベクトルの外積を示し、「・」は、ベクトルの内積を表わす。
ここで、図17に示す干渉チェックは、一例であってその他の干渉チェック手法を用いて、手先を移動点に定められる位置姿勢に位置決めさせた場合における干渉チェックを行ってもよい。
図18は、障害物を回避する場合における、演算結果と演算前との移動時間の変化のシミュレーション結果をそれぞれ示すグラフである。図18には、作業者によって入力された初期状態の移動点毎の関節形態の組合せで、手先を順次移動させた場合の移動点間の移動時間を破線で示す。また教示支援装置20によって演算された最適な移動点毎の関節形態の組合せにおける移動点間の移動時間を実線で示す。
第2実施形態による教示支援装置20は、障害物を回避したうえで、移動点間ごとに最大移動関節の移動量が最も小さくなるような、関節形態の組合せを出力する。この場合も、初期状態の関節形態の組合せに比べて、演算結果の関節形態の組合せを適用することによって、全体的な移動時間を短縮することができる。本実施形態では、演算結果を採用することで、初期状態に比べて、総合移動時間を17.2%短縮することができた。このように演算結果を用いることで、障害物を回避したうえで、ロボットの移動時間を短縮することができ、ロボット動作時の作業効率を向上することができる。また本実施の形態の計算条件および計算時間を表3に示す。障害物情報が入力されると、ロボットの移動時間の短縮効果は小さくなるが、実用可能な解を出力することができる。また干渉チェック自体は、計算負荷が比較的大きいが、干渉チェックによって解候補が絞り込まれることによって、後段の演算処理における繰返し計算を減らすことができ、障害物を考慮しない場合に比べて、全体的な演算時間を短縮することができる場合がある。
Figure 0004693643
図19は、図18に関連した障害物を回避する演算結果によるロボットの関節形態の変化を示す図であって、ロボットの関節形態は、図19(1)〜図19(12)の順に進む。図20は、図18に関連した障害物を回避する初期状態でのロボットの関節形態変化を示す図であって、ロボットの関節形態は、図20(1)〜図20(12)の順に進む。図19に示す演算結果によるロボットの関節形態変化は、障害物を回避したうえで、図20に示す初期状態での関節形態変化に比べて、移動点間ごとに最大移動関節の移動量が小さく、不所望な関節の角変位を省くことができる。
以上のように本実施形態では、第1実施形態と同様の効果を得ることができる。評価値に基づいて決定される第1評価基準と、ロボットと障害物との干渉の有無によって決定される第2評価基準とによって、総合的な評価基準となる。障害物との干渉チェックを行い、障害物との接触することが防がれた解候補のうちで、最適な解候補の組合せを演算する。これによって実際に適用可能な解候補の組合せを求めることができ、教示支援装置20を、オフラインティーチングに好適に用いることができる。また図16のステップd14に示すように、障害物とロボットとが接触するであろう解候補を除いた状態で、評価工程、探索工程を行う。これによって1つの移動点に対応する解候補の数mを少なくすることができ、障害物を考慮に入れずに計算する場合に比べて、評価工程および探索工程に費やす計算時間を短縮することができる。これによって全体的な演算時間を短縮できる場合がある。また障害物に関する情報を入力することによって、作業者が最初に想定したロボットの形態と大きく異なっていても、ロボットが進入禁止領域に進入することを防ぐことができ、ロボットと障害物とが衝突することを防ぐことができる。さらに評価値および解候補を記憶部22に記憶することで、障害物の情報が更新、変更されたとしても、以前に演算した評価値および解候補の値を用いることで、短時間に最適な解候補の組合せを求めることができる。
また第3実施形態として、教示支援装置20は、第2実施形態に加えて、手先を一方の移動点から他方の移動点へ移動させる間に、ロボットの一部が障害物に衝突するか否かを判断し、ロボットの一部が衝突しない関節形態変化を求めてもよい
図21は、第3実施形態での、ステップa3において、データ探索部31が最適な解候補の組合せを演算する手順を示すフローチャートである。第3実施形態では、図9に示す動作と類似しており、手先を一方の移動点から他方の移動点へ移動させる間に、ロボットの一部が障害物に衝突するか否かを判断するステップf12と、それに関連するステップf13が余分に含まれる。したがって同様のステップについては、説明を省略し、同様の参照符号を付する。
第3実施形態では、ステップf3において、累積評価値が最も高い組合せの2つの解候補について、対応する2つの移動点間を移動する間に、ロボットの一部が進入禁止領域に進入するか否かを判断する。具体的には、抽出した2つの解候補に従って、一方の移動点から他方の移動点まで移動した場合に、一方の移動点から予め定める時間間隔毎に変化するであろうロボットの関節形態ごとに、ステップd14で示す静的干渉チェックを繰返す。静的干渉チェックを繰返すうちで一度でもロボットが進入禁止領域に進入する判断すると、ステップf13に進む。
ステップf13では、以前にステップf3で求められた上流側の移動点の解候補を除外し、ステップf3に戻る。ステップf3では、ステップf13によって、除外された解候補を除いて、上流側の移動点の残余の解候補のうちから、最も累積評価値の高い解候補を抽出し、ステップf12に進む。
またステップf12において、静的干渉チェックを繰返すうちで一度もロボットが進入禁止領域に進入しないと判断すると、ステップf4に進む。そしてステップf4で、干渉することなく、最も累積評価値の高い解候補の組合せを記憶する。その他の構成については、図9に示す動作と同一である。第3実施形態によれば、動的干渉の可能性がある解候補の組合せを採用せずに、障害物と衝突しない実用可能な解候補の組合せについて記憶部22に記憶することになる。第3実施形態では、その他の手順については、第2実施形態と同様である。
大略的に、ステップd4において解候補を求める計算量(D4α)、ステップd14において静的干渉チェックする計算量(D14α)、ステップf3において評価の最も高い累積評価値を抽出する計算量(F3α)、ステップf12において動的干渉チェックする計算量(F12α)、の順番で計算負荷が大きくなる(F12α>F3α>D14α>D4α)。
またステップd14において静的干渉チェックを行う計算対象の数(D14β)は、ステップd5によって絞り込まれた解候補について行われるので、ステップd4において解候補を求める計算対象の数(D4β)よりも少ない。またステップd4において評価の最も高い累積評価値を抽出する計算対象の数(D4β)は、静的干渉チェックによってさらに絞り込まれた計算対象について行われる。またステップf12において動的干渉チェックを行う計算対象の数(F12β)は、ステップd4においてさらに絞り込まれた計算対象について行われる。したがって計算対象の数は、演算工程が進むにつれて絞り込まれる(D4β>D14β>F3β>F12β)。
以上のように本実施形態では、第1実施形態および第2実施形態と同様の効果を得ることができる。また本実施形態では、移動点間を手先が移動する間についても、障害物を衝突することを防ぐことができる、最適な移動点毎の解候補の組合せを求めることができ、さらに実用的な解候補を求めることができる。また本実施の形態では、計算負担の小さい演算は大量に実施してデータベース化し、計算負担の大きい演算は前の工程で絞り込まれた計算対象についてのみ実行する。これによって計算負担の大きい演算を繰返す回数を抑えて、効率よく演算を行うことができ、計算時間の増加を抑えることができる。
またデータベースに以前に演算した全ての解候補および全ての評価値を記憶しておくことで、最適な移動点毎の解候補を演算した後に、作業者によって障害物情報が再入力された場合または進入禁止領域が更新された場合など、記憶手段に記憶される関節形態を用いて、解候補を再抽出することができ、障害物情報が入力される毎に解候補および全ての評価値を演算する場合に比べて、短時間で解候補を求めることができる。また第3実施形態の変形例として、第2実施形態によって求められた移動点毎の最適な解候補の組合せについて、動的干渉チェックを行ってもよい。もし動作干渉チェックでロボットと障害物とが干渉することがわかったら、その解候補の組合せを除いて再び最適な解候補の組合せを求める。このようにすることで、移動点毎の最適な解候補の組合せを短時間で求めることができる場合がある。
上述した実施の形態におけるロボットは、手先を始点から終点に移動させるとした。これに対して、本発明の教示支援装置は、各移動点を結ぶ環状の循環移動経路に沿うように、ロボットが手先を循環移動させる場合にも適用することができる。たとえばロボットは、第1移動点p1、第2移動点p2、第3移動点p3、第4移動点p4、第1移動点p1と順に進んで、循環移動経路を一周する。また本実施の形態では、理解を容易にするために、ロボットの周囲に障害物が存在しない場合について説明する。
図22は、ロボットが手先を循環移動経路に沿って循環移動させる場合における、演算部21の動作を示すフローチャートである。また図23は、移動点毎の解候補の最適な組合せの演算手順を説明するための図である。
ステップh0では、評価値を求めるために必要な情報が作業者から入力部23に入力され、入力部23が必要な情報を演算部21に与えると、ステップh1に進み、動作を開始する。手先が循環移動経路を移動する場合、作業者は、上述した図3に示すステップb1〜b3で与える情報の他に、さらに複数の循環移動点p1〜p4のうち、1つを始点p1として入力し、始点p1に対して移動方向上流側の循環移動点を終点p4として入力する。
ステップh1では、演算部21は、作業者から入力された情報に基づいて、複数の移動点のうちから、始点と終点とを選択し、ステップh2に進む。本実施の形態では、第1移動点p1を始点として選択し、第4移動点p4を終点として選択する。したがって演算部22は、始点および終点を選択する選択手段となる。ステップh2では、ステップh1で選択した始点p1を移動方向最上流の移動点とし、終点p4を移動方向最下流の移動点として、上述した図5に示すステップd1〜d10、図6に示すステップe1〜e9、図9に示すステップf1〜f7に示す動作を順に行い、図23に示すように、終点p4における各解候補c4について累積評価値T4_k_Jをそれぞれ関連付けると、ステップh3に進む。
ステップh3では、終点p4における解候補c4のうちで、1番目の番号が関連付けられる解候補c4_1を選択し、ステップh4に進む。ステップh4では、直前に選択した終点p4における解候補c4_kから移動方向上流側に累積評価値の最も高い組合せとなる解候補を順に辿って求められる、始点p1における解候補c1を選択し、ステップh5に進む。この場合、ステップh3で選択される始点p1の解候補c1は、終点p4の1つの解候補c4に対して、1つだけの関係となる。
ステップh5では、直前に選択した終点p4における解候補c4と、直前に選択した始点p1における解候補c1との評価値を求め、ステップh6に進む。たとえば図23では、終点p4の第1解候補c4_1が示す関節形態から、始点p1の第4解候補c1_4が示す関節形態まで手先を移動するための移動時間を評価値として演算する。次に、その評価値を、終点p4の解候補c4に関連づけられる累積評価値に加算した値を、直前に選択した終点P4と始点p1との2つの解候補に関連付けられる循環累積評価値として求める。次に、求めた循環累積評価値を2つの解候補と関連させて、記憶部22に記憶し、ステップh6に進む。
ステップh6では、終点p4における各解候補のうちから、まだ選択していない解候補が存在するか否かを判断する。まだ選択していない解候補が存在すると判断すると、ステップh9に進む。ステップh9では、まだ終点における解候補のうちから、まだ選択していない解候補を選択し、ステップh4に戻る。
ステップh6において、終点p4における全ての解候補をすでに選択したとすると、ステップh7に進む。ステップh7では、図22に示すように、終点P4と始点p1との2つの解候補の組合せごとに、循環累積評価値がそれぞれ関連付けられている。演算部22は、終点P4と始点p1との解候補の組合せのうちで、循環累積評価値が最も高い解候補を抽出し、ステップh8に進む。
ステップh8では、ステップh7で抽出した始点p1の解候補から、ステップh7で抽出した終点p4の解候補に移動方向に進むまでに、経由点の解候補に関連する移動点毎の解候補を順次抽出し、抽出した移動点毎の解候補の組合せを、最適な解候補の組合せとして記憶する。具体的には、記憶部22に記憶される循環累積評価値に関する情報に基づいて、ステップh7で抽出した始点p1の解候補と組合わされた場合に、累積評価値の最も高くなる移動点毎の解候補を順次抽出する。
言い換えると、ステップh7で抽出した終点p4の解候補を抽出し、そして抽出した終点p4の解候補から移動方向上流側に遡って、移動点間毎に評価の最も高い累積評価値の組合せの解候補を順次辿り、辿った解候補を移動点毎に順次抽出する。このようにして移動点毎に抽出された解候補の組合せが、全体的な評価値の最も高い解候補の組合せ、すなわち最適な解候補の組合せとなる。このようにして循環移動経路における最適な解候補の組合せを抽出すると、ステップh8に進み、最適な解候補の組合せの演算動作を終了する。そして教示支援装置20は、循環移動経路における移動点毎の最適な解候補の組合せを出力表示させる。
本実施の形態では、ステップh6で、終点p4から始点p1に移動した場合の評価値を求めることで、手先を始点に位置合せした関節形態と、その状態から循環移動経路を一周して再び手先を始点に位置合せした関節形態とを同じにしたうえで、移動点毎の解候補の最適な組合せを演算することができる。これによって始点を基準として一周した後で、速やかに再び始点から移動を開始することができ、手先を循環移動経路に沿って円滑に周回させることができる。
また上述したステップh1では、作業者が複数の移動点p1〜p4のうちから始点p1と終点p4を入力するとしたが、演算部22が始点p1と終点p4とを決定してもよい。この場合、演算部22は、移動点のうちの1つを始点として選択し、その始点の移動方向上流側の移動点を終点とする。また循環移動経路の場合についても、障害物を考慮して移動点毎の解候補の組合せを演算することが可能である。
図24は、循環移動経路を考慮した演算結果と、演算前との移動時間の変化のシミュレーション結果をそれぞれ示すグラフである。図24には、作業者によって入力された初期状態の移動点毎の関節形態の組合せで、手先を順次移動させた場合の移動点間の移動時間を破線で示す。また教示支援装置20によって演算された最適な移動点毎の関節形態の組合せにおける移動点間の移動時間を実線で示す。
上述したように本実施の形態では、教示支援装置20は、循環移動経路を手先を移動させるにあたって、一周前と一周後の関節形態を同じにしたうえで、移動点間ごとに最大移動関節の移動量が最も小さくなるような、関節形態の組合せを出力する。出力した演算結果の関節形態の組合せを適用することによって、初期状態に比べて全体的な移動時間を短縮することができる。本実施形態では、演算結果を採用することで、初期状態に比べて、第1移動点から第28移動点に達して、再び第28移動点から第1移動点に達するまでの総合移動時間を38.6%短縮することができた。このように演算結果を用いることで、ロボットの移動時間を大幅に短縮することができ、ロボット動作時の作業効率を向上することができる。また周囲に障害物がある場合も同様にして求めることができる。
図25は、循環移動経路において解候補の組合せを求める他の手順を説明するための図である。演算部21は、各移動点のうちで任意の1つを始点として選択した場合において、終点から始点に移動した場合の累積評価値を求める。次に各移動点のうちで既に選択した移動点以外の移動点を始点として選択した場合において、終点から始点に移動した場合の累積評価値を求める。このような動作を移動点の数だけ繰返して、各移動点がそれぞれ始点として採用された場合における、終点から始点に移動した場合の循環累積評価値をそれぞれ求める。それらのなかで、最も循環累積評価値の高いものを抽出して、循環移動経路における移動点毎の解候補の組合せとする。これによってさらに最適な移動点毎の解候補の組合せを求めることができる。
たとえば4つの移動点が存在する場合、第1〜第4移動点p1〜p4をそれぞれ始点とした場合について、図22に示す手順をそれぞれ行い、それらのなかで終点から始点まで移動するのに、最も循環累積評価値が高いものを出力する。これによってさらに最適な移動点毎の解候補の組合せを求めることができる。ここで、始点として選択される移動点と、終点として選択される移動点は、実際に手先を移動開始させる始点と、手先を移動終了する終点とにそれぞれ一致しなくてもよい。
また本実施の形態では、手先を循環移動経路に沿って移動させるとしたが、往路と復路との各移動点で関節形態を等しくする必要がない場合には、予め定められる移動経路を往復移動する場合も同様にして、移動点毎の解候補の最適な組合せを求めることができる。また往路と復路との各移動点で関節形態を等しくする必要がある場合には、往路または復路のいずれかの経路のうちの始点から終点までで最適な解候補の組合せを求めることによって、対応することができる。
図26は、本実施の形態の教示支援装置によって関節形態が演算される多関節ロボットを示す正面図である。多関節ロボットは、7自由度を有するロボットであり、6つのリンク体3〜8と、隣接する2つのリンク体を回転自在に連結する7つの関節9〜15とを有する。各リンク体3〜8は、それぞれ連結されて直列状に延びるアーム構成体16を構成する。また多関節ロボット1は、アーム構成体16の基端部に連結される基端部に連結される基台17と、アーム構成体16の先端部に連結されるエンドエフェクタ18である手先とを有する。基台17は、壁部または床部などの固定部に予め固定される。ロボットは、基台17に設定される基準座標を有し、基準座標に従って手先を任意の位置姿勢に移動させる。
各関節9〜15は、同軸関節および傾斜関節のうちのいずれか一方である。同軸関節は、隣接するリンク体を、その各リンク体の軸線と同軸の回転軸線まわりに回転自在に連結する。また傾斜関節は、隣接する2つのリンク体のうちの一方を、各リンク体の軸線に対して所定の角度傾斜する回転軸線まわりに円錐回転自在に連結する。傾斜関節軸の回転軸線は、連結する各リンク体の軸線に対して45度で傾斜する。
各関節9〜15は、基台17から第1〜第7関節9〜15の順で並ぶ。具体的には、第1関節9、第5関節13および第7関節15は、同軸関節である。また第2関節10、第3関節11、第4関節12および第6関節14は、傾斜関節である。各関節9〜12の角度位置が移動することで、アーム構成体16は、各リンク体3〜6のそれぞれの軸線が同軸に配置されて、一直線状に延びる状態に変形可能に構成される。各リンク体一直線状に延びた状態では、第2関節10と第3関節11との回転軸線が平行となり、第3関節11と第4関節12との回転軸線が垂直となる。また本実施形態のロボット1は、第5関節13と、第6関節14と、第7関節15との回転軸線が一点となる3軸交点Pで交わる。このように直列方向一端部から直接方向他端部側に向かって連続して並ぶ3つの関節のそれぞれの回転軸線が3軸交点Pで交わる。また本実施の形態では、第1関節9が冗長関節として設定される。
多関節ロボット1は、各関節9〜12の角度位置を移動させることで、アーム構成体16を蛇のように変形させ、可動範囲内で、手先18を任意の位置および任意の姿勢に位置決め可能である。また多関節ロボット1は、7自由度を有するので、手先の位置および姿勢を位置決めした状態で、各関節の角度位置の取り得る組合せが無数に存在する。各リンク体3〜8は、個別に回転駆動するモータをそれぞれ内蔵する。各モータは、関節が連結する2つの部材をその回転軸線まわりに予め定める任意の角度に変位可能に構成される。これによってモータによって、関節によって連結される2つのリンク体のうち、一方のリンク体は、他方のリンク体に対して関節の回転軸線まわり回転駆動される。アーム構成体16が一直線状に延びる状態を基準状態として、各関節に連結されるリンク体の角変位量を、関節の角度位置とする。
またロボット1は、制御装置2によって制御される。制御装置2は、入力部と、中央演算処理部と、出力部とを有する。制御装置2によって関節ごとに設けられるモータが制御されることによって、各リンク体を互いに関節の角変位軸線まわりに角変位させて、ロボットの形態を変化させて、手先を目的とする位置姿勢に位置決めすることができる。ここでロボットの形態とは、ロボットの形状および姿勢などの外形的形態を意味する。
本実施の形態のロボット1に対して、データ作成部30が行うステップd4の逆変換実行工程について説明する。本実施の形態のロボット1は、各関節9〜15の構造および各リンク体3〜8の長さが既知である。これによって、手先18が予め定める位置および姿勢に位置決めされるときには、3軸交点Pの3次元位置を一意的に決定することができる。この場合、第1〜第4関節9〜12の角度位置を変数として、3軸交点PのX座標位置、Y座標位置およびZ座標位置をそれぞれ求めるための3つの順変換関係式と、冗長関節である第1関節9の角度位置と、3軸交点Pの3次元位置とに基づくことによって、3軸交点Pを3次元位置に位置決め配置可能な、第1〜第4関節9〜12を解析的に決定することができる。
具体的には、第1〜第4関節9〜12の角度位置を変数とする、3軸交点Pの3次元位置を求めるための3つの連立方程式に、冗長関節である第1関節9の角度位置と、3軸交点Pの3次元位置とを代入することで、3つの未知数を有する3元連立方程式を導くことができ、3元連立方程式を解くことで、3軸交点Pを3次元位置に位置決め配置可能な、第1〜第4関節9〜12を解析的に決定することができる。また上述した3元連立方程式を変形させることで、第1関節9の角度位置と、3軸交点Pの3次元位置とを変数として、第2〜第4関節10〜12の角度位置を求める関係式を導くことができる。
また第2〜第4関節10〜12の角度位置のいずれかの解を求めることができない場合、ロボットの可動限界を超えており、機構的解が存在しないことを意味する。またロボットの可動余裕を考慮して、可動限界に対して予め定める所定角度、手前に設定される制限角度位置から可動限界側に角度位置が位置する場合にも機構的解が存在しないと判断してもよい。
第2〜第4関節10〜12の角度位置が、可動限界に達していないと判断されると、既に決定した第1〜第4関節9〜12の角度位置と、手先の位置および姿勢とに基づくことによって、逆変換を行うことによって、第5〜第7関節13〜15の角度位置を解析的に決定することができる。具体的には、第1〜第4関節9〜12の角度位置から、第4リンク体6の姿勢を決定し、決定した姿勢に基づいて、手先が予め定める位置および姿勢となる場合の第5〜第7関節13〜15の角度位置を一意に決定することができる。
したがって上述したデータ作成部30は、(1)手先の位置姿勢から3軸交点Pの3次元位置を求めることが可能な方程式を表わす計算プログラムと、(2)冗長関節の角度位置と、3軸交点Pの3次元座標とに基づいて、第1〜第4関節9〜12の角度位置を求めることが可能な方程式を表わす計算プログラムと、(3)第1〜第4関節9〜12の角度位置の解が存在するか否かを判断する計算プログラムと、(4)第1〜第4関節9〜12の角度位置と手先の位置姿勢とから、第5〜第7関節13〜15の角度位置を求めることが可能な方程式を表わす計算プログラムとを、それぞれ記憶する。データ作成部30は、上述した各計算プログラム(1)〜(4)を順に実行することによって、移動点における手先の位置姿勢と、第1関節9の角度位置とを選択した状態で、第1〜第7関節9〜15のそれぞれの角度位置を演算することができる。
このように、本実施の形態では、第1関節〜第4関節のうちのいずれかを冗長関節として選択することで、解候補を解析的に求めることができる。これに対して、第5〜第7関節のうちの1つを冗長関節として選択すると、解候補の解析解を求めることができない。また第1〜第3関節部で3軸交点Pを構成した場合には、第4〜第7関節のうちのいずれかを冗長関節として選択することで、解候補を解析的に求めることができる。
すなわち、リンク体を介して互いに角変位可能に連結されて直列に並ぶ7つの関節を含み、7つの関節9〜15のうちで直列方向一端部から直列方向他端部に向かって並ぶ3つの関節の回転軸線が一点で交差する3軸交点を形成する3つの交点形成関節を有する7自由度の多関節ロボットにおいて、アーム構成体の一端部に対する他端部の位置および姿勢が固定条件として入力される場合に、3つの交点形成関節以外となる4つの注目する関節のうち1つが、冗長関節として入力されることで、形態変更動作において各関節9〜15の角度を解析的に求めることができる。
たとえば本実施の形態では、(1)式に、第1関節9の角度位置q1を代入することで、第4関節12の角度位置q4を求めることができる。
Figure 0004693643
(1)式において第1〜第4関節9〜12の角度位置をそれぞれq1〜q4とする。また第1〜第3リンク体3〜5の長さをそれぞれL1〜L3とし、第4関節12から3軸交点Pまでの距離をL4とする。またarccosは、逆余弦関数(アークコサイン関数)を意味する。またarccosに付されるプラスマイナスの符号を離散形態符号と称する。
第4関節12の角度位置q4が1つしかない場合、第4関節の角度位置は、可動限界である特異点に位置する。またアークコサインの変数の絶対値が1を超える場合、解が存在せず、可動限界を超えて、機構解が存在しないことを判断することができる。第4関節12の角度位置が求まると、第3関節11の角度位置と、第2関節10の角度位置とを順次求めることができ、さらに第5〜第7関節12〜15の角度位置を求めることができる。また第3関節の角度位置、第6関節の角度位置を求める方程式にも、離散形態符号がそれぞれ付与されるので、多関節ロボットは、第1関節の角度位置が1つに決定された場合に、8通りの第2〜第7関節の角度位置の組合せが存在する。データ作成部30は、図5における離散形態を選択するときに、この離散形態符号の正負のいずれかが選択されることによって、1つの冗長関節の角度位置ごとに、8通りの組合せのうちから1つを求めることができる。
また第1関節9と第2関節10との間の距離をL1とし、第2関節10と第3関節11との間の距離をL2とし、第3関節12と第4関節13との間の距離をL3とし、第1関節9から第4関節13との間の距離をLwとすると、Lw+L2>L1+L3、Lw>L2、L1>L3、Lw−L2<L3−L1である場合には、ロボットは、回転揺動状態となる。回転揺動状態では、第1関節を冗長関節として、その角度範囲を変化させたとても、第1関節の角度位置が可動限界に達してしまい、ロボットが取り得る角度位置の全てを計算できない場合がある。たとえば第1関節9と第2関節10とのうちのいずれか一方と、第3関節11と第4関節12とのうちのいずれか一方との2つを冗長関節として選択することで、ロボットが回転揺動状態となったとしても、ロボットが取り得る全ての範囲を計算することができる。ロボットは、その変形形態毎によってLwが変化するので、変形形態によっては、回転揺動状態に陥る可能性がある。
たとえばデータ作成部30は、第1関節9と第2関節10とのうちのいずれか一方を選択する場合と、第3関節11と第4関節12とのうちのいずれか一方とを選択する場合の2通りで、図5に示す動作を行うことによって、変形形態が回転揺動状態に陥ったとしても、求められる解候補の数を増やすことができ、より最適な解候補の組合せを求めることができる。
このように注目する複数(S1)の関節のうちで、冗長関節の数(S2)を除く残余の関節の数(S1−S2)が、ロボットに設定される移動対象部位を、予め定める位置および姿勢の少なくともいずれかを含む拘束条件に従って拘束される数(T)と一致するように、注目する複数の関節の少なくとも1つが冗長関節として選択することで、冗長関節の角度と、拘束条件とに基づいて、複数の関節の角角度を変数として設定部分の位置または姿勢を求めるための関係式を解くことで、拘束条件で移動対象部位を拘束した場合の各関節の角度位置を解析的に求めることができる。解析的に解候補を求めることで、入力された移動点に対して手先がずれることが防がれ、正確に手先を移動経路にそって移動させることができる。
また上述した実施形態では、解析的に逆変換を行う場合について説明したが、ステップd4の逆変換実行動作を行うにあたって、近似解を用いてもよい。この場合、データ作成部30は、手先の移動量と、各関節の角度との関係を示すヤコビ行列に基づいて、冗長関節である第1関節の角度位置を変化させた場合に、手先がほぼ固定位置となるような残余の関節の角度位置を求めて、解候補を求めてもよい。
図27は、他の形態のロボットを示す図である。上述した各実施形態の教示支援装置20は、傾斜関節を有するロボット以外における移動点毎の関節形態の最適な組合せを求めることも可能である。たとえば図27に示すように、垂直関節と同軸関節とで構成され、傾斜関節を有しない6軸多関節ロボット100とを予め定める走行軸に沿って動作させる走行装置101とを含む7軸ロボットシステムであっても同様に、移動点毎の最適な関節形態の組合せを求めることができる。また本実施形態では、一軸冗長ロボットについて説明したが、2軸以上の冗長性を有するロボットであっても、適用可能である。この場合、複数の冗長関節の角度位置が選択されることによって、解候補を求めることができる。
そのほか垂直多関節型の6軸ロボットにも適用可能である。たとえば手先の3次元位置が拘束条件として設定され、手先の姿勢に制限がない場合などで、手先を予め定める数の自由度で拘束した場合に、ロボットの取り得る関節形態が複数ある場合などに適用可能である。
このように手先の3次元位置と3次元姿勢のうちのいずれか1つが拘束されないような場合のほか、ロボットに複数の離散形態が存在する場合には、手先の3次元位置および3次元姿勢が全て拘束されても、解候補が複数存在することになるので、広い意味で本発明を適用することができる。たとえば垂直多関節6軸ロボットには、8種類の離散形態があるので、そのロボットの位置および姿勢が拘束されても、本発明を適用することで、1つの移動点あたり8とおりの解候補のなかから最適な解候補の組合せを演算することができる。したがって7つ以上の関節を有するロボットについて特に効果が大きいが、6つ以下の関節を有するロボットであっても、同様の効果を得ることができる。
以上のような各本実施の形態は、発明の例示に過ぎず、発明の範囲内において構成を変更することができる。たとえば教示支援装置20は、オフラインティーチング、すなわちロボット1を可動させずに、移動点毎の解候補の組合せに従って動作した場合の関節形態の変化を表示装置に表示するとしたが、オンラインティーチングに用いられてもよい。すなわち教示支援装置20の出力結果を、ロボット1の制御装置に入力してもよい。またロボット制御装置に、教示支援装置20の機能が盛り込まれていてもよい。これによってロボットを、教示支援装置によって決定された解候補の組合せに従って動作させることができる。実際に教示支援装置によって演算された演算結果でロボットを動作させることによって、作業者は、移動点毎の解候補の組合せの合否を判断することができる。また演算手順は一例であって、演算可能であれば適宜手順を変更してもよい。
また本実施の形態では、解候補の組合せを評価するにあたって、最大移動関節の移動量δmaxから求められる移動時間(δmax/v)を評価基準としたが、2つの解候補に基づいた他の計算式を評価基準としてもよい。たとえば2つの解候補における各関節の角度位置の偏差(δ1〜δ7)にそれぞれ速度に関する定数Kiを乗算した値のうちで最大となる値(δmax=max|K1・δ1,K2・δ2,…K6・δ6,K7・δ7|)を評価基準としてもよい。ここで速度に関する定数Kiは、各関節に設定される最大速度および加減速度を考慮した値である。これによってより正確な移動時間を評価基準とすることができる。また各関節部のうちで注目する関節の角度位置の偏差を評価基準としてもよい。
また評価基準は、ヤコビ行列Jを評価基準として用いてもよい。本実施の形態では、ヤコビ行列Jは、移動方向上流側の移動点の1つの解候補から移動方向下流側の1つの解候補へ関節形態を変化する場合に、各関節の角度偏差を手先の3次元位置変化に変換する行列である。この場合、評価基準として、2つの解候補の組合せからそれぞれ求められる各ヤコビ行列が最大となるような形態を選ぶ。このように評価基準を決定することによって、手先をどの方向に対しても滑らかな動きが実現できるようにすることができる。
本実施の形態では、ヤコビ行列Jは、第1〜第7関節Jt1〜Jt7の角度位置変化δq1〜δq7を代入することで、手先の3次元位置変化(δPx,δPy,δPz)を演算する変換行列であって、次式によって表わされる。
δP=J・δQ
δP=(δpx,δpy,δpz)
δQ=(δq1,δq2,δq3,δq4,δq5,δq6,δq7)
ここで、δpxは手先のX座標位置変化、δpyは手先のY座標位置変化、δpzは手先のZ座標位置変化を示す。この場合、ヤコビ行列Jは、7行×3列の行列であって、上述した(1)式などの順変換式に基づいて求めることができる。ヤコビ行列の大きさは、ヤコビ行列Jと、ヤコビ行列Jを転置した行列Jとを掛算した値の絶対値を求めることによって求められる。このようにしてヤコビ行列の大きさを求め、その大きさが最大となる2つの解候補の組合せを評価が最も高いものとする。
またヤコビ行列Jは、第1〜第7関節Jt1〜Jt7の角度位置変化δq1〜δq7を代入することで、手先の3次元位置変化(δPx,δPy,δPz)および3次元姿勢(δPrx,δPry,δPrz)を演算する変換行列であってもよい。このようにヤコビ行列もまた、上述した演算式に限定されず適宜選択可能である。
また評価基準は、2つの解候補に基づいて決定されるならば、移動時間に関する値以外であってもよい。たとえば2つの解候補における各関節の角度位置の偏差(δ1〜δ7)を合計した合計偏差Σδiを評価基準とし、最も小さくなる組合せを探索してもよい。この合計偏差Σδiが小さいと、ロボットを動作させる動作量が全体的に小さくなるので、手先を移動させるのに、電力消費量の最も少ない移動点毎の解候補の組合せを求めることができる。また各動作偏差のうちで、手先に比べて基台側の関節については、大きい重みをつけたものΣXi・δiを合計することによって、より現実的に電力消費量の最も少ない組合せを求めることができる。
また移動時間、ヤコビ行列および電力消費量のほか、ロボットの精度、ロボットと障害物との余裕度などを評価基準としてもよい。このように本発明の評価基準は、2つの移動点の解候補を互いに用いて求められるものであれば、移動時間に限定されない。たとえば基台側の関節をあまり動かしたくないという評価基準、基台側の関節をなるべく動かしたいという評価基準などであってもよい。
本発明の第1実施形態であるロボットの教示支援装置20を示すブロック図である。 教示支援装置20の動作の全体的な流れを示すフローチャートである。 図2に示すステップa1における入力部23の動作手順を示すフローチャートである。 図2に示すステップa2におけるデータ作成部30の動作手順を示すフローチャートである。 ステップc2において、データ作成部30が全ての解候補を求める手順を示すフローチャートである。 ステップc3において、データ作成部30が評価値を演算する手順を示すフローチャートである。 データ作成部30によって求められるそれぞれの評価値を説明するための図である。 データ作成部30によって記憶部22に作成された移動時間t(i+1)_k_jのデータ構造を説明するための図である。 ステップa3において、データ探索部31が最適な解候補の組合せを演算する手順を示すフローチャートである。 データ探索部31によって求められる全体最適な解候補の組合せを説明するための図である。 データ探索部31によって記憶部22に作成された累積評価値T(i+1)_k_Jのデータ構造を説明するための図である。 演算結果と演算前との移動時間の変化のシミュレーション結果をそれぞれ示すグラフである。 図12に関連した演算結果によるロボットの関節形態の変化を示す図である。 図12に関連した初期状態でのロボットの関節形態変化を示す図である。 本発明の第2実施形態であるロボットの教示支援装置20での入力部23の動作手順を示すフローチャートである。 第2実施形態でのステップc2において、データ作成部30が全ての解候補を求める手順を示すフローチャートである。 干渉チェックの方法を説明するための図である。 障害物を回避する場合における、演算結果と演算前との移動時間の変化のシミュレーション結果をそれぞれ示すグラフである。 図18に関連した障害物を回避する演算結果によるロボットの関節形態の変化を示す図である。 図18に関連した障害物を回避する初期状態でのロボットの関節形態変化を示す図である。
第3実施形態での、ステップa3において、データ探索部31が最適な解候補の組合せを演算する手順を示すフローチャートである。 ロボットが手先を循環移動経路に沿って循環移動させる場合における、演算部21の動作を示すフローチャートである。 移動点毎の解候補の最適な組合せの演算手順を説明するための図である。 循環移動経路を考慮した演算結果と、演算前との移動時間の変化のシミュレーション結果をそれぞれ示すグラフである。 循環移動経路において解候補の組合せを求める他の手順を説明するための図である。 本実施の形態の教示支援装置によって関節形態が演算される多関節ロボットを示す正面図である。 他の形態のロボットを示す図である。 1つの冗長関節を有するロボットにおいて、ロボットの手先位置を2つの移動点間を移動させるにあたって、ロボットの各関節の角度位置を変化させた場合のロボット移動時間の変化を示すグラフである。
符号の説明
1 多関節ロボット
20 教示支援装置
21 演算部
22 記憶部
23 入力部
24 出力部
30 データ作成部
31 データ探索部
32 移動点情報記憶部
33 解候補記憶部
34 評価値記憶部
35 ロボット型式記憶部

Claims (7)

  1. (a)複数の関節を有する多関節ロボットの予め定める移動対象部位を、複数の移動点を順次通過するように移動させるにあたって、移動点を移動対象部位がそれぞれ通過するときに各関節の角度位置で表される関節形態の、移動点毎の組合せを求めてロボット教示作業を支援する教示支援装置であって、
    (b)各移動点を特定するための移動点情報を入力する入力手段と、
    (c)ロボットの移動対象部位を移動点に配置可能な関節形態を解候補とし、移動点毎に、全ての解候補をそれぞれ演算する解候補演算手段と、
    (d)移動点毎にそれぞれ選択される解候補の組合せを評価する評価演算手段であって、
    (d1)通過順が最初の移動点から通過順が最後の移動点に向かう移動方向、および通過順が最後の移動点から通過順が最初の移動点に向かう移動方向のいずれか一方を評価方向とし、
    (d2)最上流の移動点における各解候補のうちの1つと、評価方向最上流の移動点の評価方向下流側に隣接する2つめの移動点における各解候補のうちの1つとのそれぞれの組合せについて、予め定める評価基準に従って評価値を求め、2つめの移動点における解候補毎に、評価値が最も高い組合せをそれぞれ抽出して、2つめの移動点における各解候補毎に、2つめの移動点における各解候補のうちの1つと、それに関連して抽出した最上流の移動点における1つの解候補との組合せをそれぞれ決定し、
    (d3)2つめの移動点の評価方向下流側に隣接する3つめの移動点から評価方向最下流の移動点まで、評価方向に順次、各移動点における各解候補毎に、注目する移動点における各解候補のうちの1つと、注目する移動点に対して評価方向上流側に隣接する移動点における各解候補のうちの1つとのそれぞれの組合せについて、前記評価基準に従って評価値を求め、それら2つの解候補の組合せの評価値と、評価値を求めた2つの解候補のうちで評価方向上流側の移動点における解候補について既に決定しているさらに評価方向上流側のそれぞれの移動点毎の各解候補に関する評価値の合計値とを合わせた累積評価値を求め、注目する移動点における解候補毎に、累積評価値が最も高い組合せを抽出して、注目する移動点における解候補毎に、注目する移動点における各解候補のうちの1つと、それに関連して抽出した評価方向上流側に隣接する移動点における1つの解候補との組合せを決定し、
    (d4)評価方向の最下流の移動点における各解候補のうち、累積評価値が最も高い解候補を抽出し、この解候補に関連して既に決定される移動点毎の各解候補の組合せを、移動点毎の関節形態の組合せとして求める評価演算手段と、
    (e)評価演算手段による演算結果を出力する出力手段とを含み、
    前記入力手段は、多関節ロボットの進入が禁止される進入禁止領域に関する禁止領域情報を入力し、
    前記評価基準は、評価方向に隣接する2つの移動点における各解候補の表わす関節形態を変数とする評価関数に基づいて決定される第1評価基準と、評価方向に隣接する2つの移動点間について移動対象部位を移動させる間にロボットの少なくとも一部が進入禁止領域に進入しないことを基準とする第2評価基準とを含み、
    前記評価演算手段は、評価方向に隣接する2つの移動点のうちの評価方向下流側の移動点における解候補に対して、評価方向に隣接する2つの移動点のうちの評価方向上流側の移動点における各解候補毎に第1評価基準に従う第1評価値をそれぞれ求め、それらのうちで、第1評価値が最も高い組合せ順に、第2評価基準を満足するか否かを演算し、第2評価基準を満足し、かつ第1評価値が最も高い組合せを、評価値が最も高い組合せとして抽出することを特徴とするロボットの教示支援装置。
  2. (a)複数の関節を有する多関節ロボットの予め定める移動対象部位を、複数の移動点を順次通過させて環状の循環移動経路を循環移動させるにあたって、移動点を移動対象部位がそれぞれ通過するときに各関節の角度位置で表される関節形態の、移動点毎の組合せを求めてロボット教示作業を支援する教示支援装置であって、
    (b)各移動点を特定するための移動点情報を入力する入力手段と、
    (c)移動点のうちで、仮想的に循環移動を開始する最初の移動点と、最初の移動点の移動方向上流側となる最後の移動点とを選択する選択手段と、
    (d)ロボットの移動対象部位を移動点に配置可能な関節形態を解候補とし、移動点毎に、全ての解候補をそれぞれ演算する解候補演算手段と、
    (e)移動点毎にそれぞれ選択される解候補の組合せを評価する評価演算手段であって、
    (e1)通過順が最初の移動点から通過順が最後の移動点に向かう移動方向、および通過順が最後の移動点から通過順が最初の移動点に向かう移動方向のいずれか一方を評価方向とし、
    (e2)最上流の移動点における各解候補のうちの1つと、評価方向最上流の移動点の評価方向下流側に隣接する2つめの移動点における各解候補のうちの1つとのそれぞれの組合せについて、予め定める評価基準に従って評価値を求め、2つめの移動点における解候補毎に、評価値が最も高い組合せをそれぞれ抽出して、2つめの移動点における各解候補毎に、2つめの移動点における各解候補のうちの1つと、それに関連して抽出した最上流の移動点における1つの解候補との組合せをそれぞれ決定し、
    (e3)2つめの移動点の評価方向下流側に隣接する3つめの移動点から評価方向最下流の移動点まで、評価方向に順次、各移動点における各解候補毎に、注目する移動点における各解候補のうちの1つと、注目する移動点に対して評価方向上流側に隣接する移動点における各解候補のうちの1つとのそれぞれの組合せについて、前記評価基準に従って評価値を求め、それら2つの解候補の組合せの評価値と、評価値を求めた2つの解候補のうちで評価方向上流側の移動点における解候補について既に決定しているさらに評価方向上流側のそれぞれの移動点毎の各解候補に関する評価値の合計値とを合わせた累積評価値を求め、注目する移動点における解候補毎に、累積評価値が最も高い組合せを抽出して、注目する移動点における解候補毎に、注目する移動点における各解候補のうちの1つと、それに関連して抽出した評価方向上流側に隣接する移動点における1つの解候補との組合せを決定し、
    (e4)評価方向最下流の移動点における解候補ごとに、評価方向最下流の移動点における解候補のうちの1つと、その解候補に関連して決定される評価方向最上流の移動点における1つの解候補との組合せについて、予め定める評価基準に従って評価値を求め、それら2つの解候補の組合せの評価値と、評価値を求めた評価方向最下流の移動点の解候補の累積評価値とを合わせた循環累積評価値を求め、循環累積評価値が最も高い解候補の組合せを抽出し、この組合せの解候補に関連して決定される移動点毎の各解候補の組合せを、移動点毎の関節形態の組合せとして求める評価演算手段と、
    (f)評価演算手段による演算結果を出力する出力手段とを含むことを特徴とするロボットの教示支援装置。
  3. 前記入力手段は、多関節ロボットの進入が禁止される進入禁止領域に関する禁止領域情報を入力し、
    前記解候補演算手段は、ロボットの移動対象部位を移動点に配置可能な関節形態のうちで、ロボットの少なくとも一部が進入禁止領域に進入するような関節形態について、解候補から除外することを特徴とする請求項1または2記載のロボットの教示支援装置。
  4. 前記入力手段は、多関節ロボットの進入が禁止される進入禁止領域に関する禁止領域情報を入力し、
    前記評価基準は、評価方向に隣接する2つの移動点における各解候補の表わす関節形態を変数とする評価関数に基づいて決定される第1評価基準と、評価方向に隣接する2つの移動点間について移動対象部位を移動させる間にロボットの少なくとも一部が進入禁止領域に進入しないことを基準とする第2評価基準とを含み、
    前記評価演算手段は、評価方向に隣接する2つの移動点のうちの評価方向下流側の移動点における解候補に対して、評価方向に隣接する2つの移動点のうちの評価方向上流側の移動点における各解候補毎に第1評価基準に従う第1評価値をそれぞれ求め、それらのうちで、第1評価値が最も高い組合せ順に、第2評価基準を満足するか否かを演算し、第2評価基準を満足し、かつ第1評価値が最も高い組合せを、評価値が最も高い組合せとして抽出することを特徴とする請求項に記載のロボットの教示支援装置。
  5. 前記評価値は、評価方向に隣接する2つの移動点における各関節の角度位置の偏差を変数とする評価関数に基づいて決定されることを特徴とする請求項に記載のロボットの教示支援装置。
  6. 前記解候補演算手段によって演算される、ロボットの移動対象部位を移動点に配置可能な全ての関節形態を記憶する記憶手段をさらに含み、
    前記評価演算手段は、記憶手段に記憶される関節形態を解候補としてそれぞれ読出して、移動点毎の関節形態の組合せを求めることを特徴とする請求項1、3または4のいずれか1つに記載のロボットの教示支援装置。
  7. 請求項1〜6のいずれか1つに記載のロボットの教示支援装置の動作をコンピュータに行わせるためのコンピュータ読取り可能なプログラム。
JP2006021445A 2006-01-30 2006-01-30 ロボットの教示支援装置及びそのためのプログラム Active JP4693643B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006021445A JP4693643B2 (ja) 2006-01-30 2006-01-30 ロボットの教示支援装置及びそのためのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006021445A JP4693643B2 (ja) 2006-01-30 2006-01-30 ロボットの教示支援装置及びそのためのプログラム

Publications (2)

Publication Number Publication Date
JP2007203380A JP2007203380A (ja) 2007-08-16
JP4693643B2 true JP4693643B2 (ja) 2011-06-01

Family

ID=38483293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006021445A Active JP4693643B2 (ja) 2006-01-30 2006-01-30 ロボットの教示支援装置及びそのためのプログラム

Country Status (1)

Country Link
JP (1) JP4693643B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134352A (ja) * 2007-11-28 2009-06-18 Toyota Motor Corp ロボットの動作経路作成装置及びロボットの動作経路作成方法
JP4942672B2 (ja) * 2008-01-25 2012-05-30 三菱電機株式会社 ロボット軌道制御装置及びロボット軌道制御方法
JP4847613B2 (ja) 2010-05-10 2011-12-28 ファナック株式会社 多軸加工機用数値制御装置
US8650965B2 (en) 2010-08-31 2014-02-18 Kabushiki Kaisha Yaskawa Denki Robot, robot system, robot control device, and state determining method
JP2012240144A (ja) * 2011-05-18 2012-12-10 Yaskawa Electric Corp ロボット制御装置およびロボットシステム
JP5221724B2 (ja) 2011-09-07 2013-06-26 ファナック株式会社 ワーク設置誤差補正部を有する多軸工作機械用数値制御装置
JP2015174185A (ja) * 2014-03-14 2015-10-05 三菱重工業株式会社 ロボットのシミュレーション装置及び方法、制御装置、及びロボットシステム
JP6359756B2 (ja) * 2015-02-24 2018-07-18 株式会社日立製作所 マニプレータ、マニプレータの動作計画方法、および、マニプレータの制御システム
JP7028083B2 (ja) * 2018-06-29 2022-03-02 三菱電機株式会社 ロボット制御装置およびロボットシステム
JP7232704B2 (ja) * 2019-05-13 2023-03-03 株式会社トヨタプロダクションエンジニアリング ロボットプログラム評価装置、ロボットプログラム評価方法及びロボットプログラム評価プログラム
JP2022134605A (ja) 2021-03-03 2022-09-15 オムロン株式会社 ロボット姿勢決定装置、方法、及びプログラム
JP2023006244A (ja) * 2021-06-30 2023-01-18 セイコーエプソン株式会社 教示支援方法、教示支援装置および教示支援プログラム
CN117561146A (zh) * 2021-07-02 2024-02-13 发那科株式会社 优化辅助装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003103481A (ja) * 2001-09-28 2003-04-08 Honda Motor Co Ltd 多関節ロボットの姿勢適正化方法および適正化装置
JP2005352643A (ja) * 2004-06-09 2005-12-22 Kawasaki Heavy Ind Ltd ロボット動作計画方法、ロボット動作計画装置、プログラムおよび記録媒体

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0449466A (ja) * 1990-06-19 1992-02-18 Mitsubishi Heavy Ind Ltd 計画制約解消システム
JPH04340607A (ja) * 1991-05-17 1992-11-27 Shinko Electric Co Ltd 最適経路決定装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003103481A (ja) * 2001-09-28 2003-04-08 Honda Motor Co Ltd 多関節ロボットの姿勢適正化方法および適正化装置
JP2005352643A (ja) * 2004-06-09 2005-12-22 Kawasaki Heavy Ind Ltd ロボット動作計画方法、ロボット動作計画装置、プログラムおよび記録媒体

Also Published As

Publication number Publication date
JP2007203380A (ja) 2007-08-16

Similar Documents

Publication Publication Date Title
JP4693643B2 (ja) ロボットの教示支援装置及びそのためのプログラム
CN110116405B (zh) 轨迹生成方法和轨迹生成装置
US8825209B2 (en) Method and apparatus to plan motion path of robot
US9411335B2 (en) Method and apparatus to plan motion path of robot
Palmer et al. Real-time method for tip following navigation of continuum snake arm robots
JP4941068B2 (ja) 経路作成方法及び経路作成装置
CN113618742B (zh) 一种机器人避障方法、装置和机器人
JP5044991B2 (ja) 経路作成装置及び経路作成方法
CN109760040B (zh) 干扰判定方法、干扰判定系统以及存储介质
CN103492133A (zh) 具有运动冗余臂的工业机器人和用于控制该机器人的方法
CN112809682B (zh) 机械臂避障路径规划方法、系统及存储介质
Gómez-Bravo et al. Collision free trajectory planning for hybrid manipulators
JP2009134352A (ja) ロボットの動作経路作成装置及びロボットの動作経路作成方法
JP2012056064A (ja) 経路生成装置および経路生成方法
JP4760732B2 (ja) 経路作成装置
JP2015066668A (ja) ロボットの教示点調整方法、ロボットの設置位置算出方法、ロボットシステム、プログラム及び記録媒体
JP2011031309A (ja) 移動体姿勢生成方法および移動体姿勢生成装置
CN115416016A (zh) 一种基于改进人工势场法的机械臂避障路径规划方法
JP2007000954A (ja) ロボット教示装置及び方法
KR101787865B1 (ko) 다관절 링크 기구의 역운동학 해법, 및 이 역운동학 해법을 이용한 교시 데이터 작성 장치
Zhao et al. Efficient inverse kinematics for redundant manipulators with collision avoidance in dynamic scenes
JP2021082222A (ja) 情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置
JP4848838B2 (ja) 経路作成装置及び経路作成方法
Shanmugasundar et al. Method of Trajectory Generation of a Generic Robot using Bresenham’s Circle Algorithm
JP7493926B2 (ja) 制御方法、制御装置、ロボットシステム、物品の製造方法、動作プログラム作成方法、動作プログラム作成装置、表示装置、表示装置の制御方法、プログラムおよび記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110215

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110222

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4693643

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150304

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250