(57)【要約】【課題】教示点から障害物を回避する軌道を容易に生成可能なロボット装置及び多関節ロボットの軌道シミュレーション装置並びに軌道生成方法を提供すること。【解決手段】多関節ロボット２と、障害物１００に接触した際に多関節ロボット２に作用する反力を検出可能な力覚センサ２３と、多関節ロボット２の先端部が移動を開始する移動開始点と移動を終了する移動終了点とが入力されると、移動開始点と移動終了点とから補完軌道１０３を演算し、補完軌道１０３に沿って多関節ロボット２を駆動した際に、多関節ロボット２が障害物１００と接触して力覚センサ２３が障害物１００からの反力を検出すると、反力から補完軌道１０３と交差する方向へ多関節ロボット２を離間させる移動量を算出し、移動量で多関節ロボット２を移動させ、かつ移動量を記憶しておき、記憶した移動量を補完軌道１０３に加えて障害物回避軌道１０４を生成する制御装置６と、を備えた。【選択図】図３
2014065098.tif 000002
【特許請求の範囲】
【請求項１】
多関節ロボットと、
前記多関節ロボットが障害物に接触した際に前記多関節ロボットに作用する前記障害物からの反力を検出可能な検出センサと、
前記多関節ロボットの先端部が移動を開始する移動開始点と、前記先端部が移動を終了する移動終了点と、が入力されると、前記移動開始点と前記移動終了点とから前記先端部を移動させる初期軌道を演算し、演算した前記初期軌道に沿って前記多関節ロボットを駆動制御した際に、前記多関節ロボットが障害物と接触することで前記検出センサが前記障害物からの反力を検出すると、検出した前記反力から、前記初期軌道と交差する方向へ前記多関節ロボットを移動させる移動量を算出し、前記移動量で前記多関節ロボットを迂回移動させ、かつ前記移動量を記憶しておき、記憶した前記移動量を前記初期軌道に加えて障害物回避軌道を生成する制御装置と、を備えた、
ことを特徴とするロボット装置。
【請求項２】
前記制御装置は、前記検出センサが前記反力を検出しない場合に、前記初期軌道に近づける移動量を算出し、前記移動量で前記多関節ロボットを迂回移動させつつ前記移動量を記憶して、記憶した前記移動量を前記初期軌道に加えて前記障害物回避軌道を生成する、
ことを特徴とする請求項１に記載のロボット装置。
【請求項３】
前記多関節ロボットは、ロボットアームと、前記ロボットアームの先端に設けられたエンドエフェクタと、を有し、
前記検出センサは、前記エンドエフェクタに作用する反力を検出する力覚センサからなり、
前記制御装置は、前記力覚センサにより検出された前記反力の検出値を用いたインピーダンス制御により前記移動量を算出する、
ことを特徴とする請求項１又は２に記載のロボット装置。
【請求項４】
前記検出センサは、前記多関節ロボットの各関節に発生するトルクを計測するトルクセンサからなり、
前記制御装置は、初期軌道を移動する際の出力トルクと、前記障害物と接触した際に前記トルクセンサにより検出される検出値と、の差分量を用いたインピーダンス制御により前記移動量を算出する、
ことを特徴とする請求項１から３のいずれか１項に記載のロボット装置。
【請求項５】
仮想空間上の仮想多関節ロボットの先端部が移動を開始する仮想移動開始点と、前記先端部が移動を終了する仮想移動終了点と、を入力可能な入力装置と、
前記仮想移動開始点及び前記仮想移動終了点が入力されると、前記仮想移動開始点と前記仮想移動終了点とから前記先端部を移動させる仮想初期軌道を演算し、前記仮想初期軌道に沿って前記仮想多関節ロボットを移動させた際に、前記仮想多関節ロボットが前記仮想空間上の仮想障害物と接触することで前記仮想多関節ロボットに作用するであろう前記仮想障害物からの仮想反力から、前記仮想初期軌道と交差する方向へ前記仮想多関節ロボットを移動させる仮想移動量を算出し、算出した前記仮想移動量を記憶させて、記憶した前記仮想移動量を前記仮想初期軌道に加えることで多関節ロボットの障害物回避軌道を生成する画像処理装置と、を備えた、
ことを特徴とする多関節ロボットの軌道シミュレーション装置。
【請求項６】
前記画像処理装置は、前記仮想多関節ロボットが前記仮想空間上の仮想障害物と接触しない場合には、前記仮想初期軌道に近づける前記仮想移動量を算出し、そのときの仮想移動量を記憶して前記仮想初期軌道に加えて前記障害物回避軌道を生成する、
ことを特徴とする請求項５に記載の多関節ロボットの軌道シミュレーション装置。
【請求項７】
多関節ロボットの先端部が移動を開始する移動開始点と、前記先端部が移動を終了する移動終了点と、から前記先端部が移動する初期軌道を生成する初期軌道生成工程と、
生成された前記初期軌道に基づいて前記多関節ロボットの駆動制御を開始する駆動開始工程と、
前記初期軌道に基づいて移動する前記多関節ロボットが障害物と接触することで、前記多関節ロボットに作用する前記障害物からの反力を検出可能な検出センサが前記反力を検出すると、検出した前記反力から前記初期軌道と交差する方向に前記多関節ロボットを移動させる移動量を算出する移動量算出工程と、
前記移動量で前記多関節ロボットを迂回移動させる迂回移動工程と、
前記迂回移動工程での前記移動量を記憶する移動量記憶工程と、
記憶した前記移動量を前記初期軌道に加えて障害物回避軌道を生成する障害物回避軌道生成工程と、を備えた、
ことを特徴とする多関節ロボットの軌道生成方法。
【請求項８】
前記移動量算出工程は、前記検出センサが前記反力を検出しない場合に、前記初期軌道に近づけるように前記移動量を算出する、
ことを特徴とする請求項７に記載の多関節ロボットの軌道生成方法。
【請求項９】
請求項７又は８に記載の各工程をコンピュータに実行させるための多関節ロボットの軌道生成プログラム。
【請求項１０】
請求項９に記載の多関節ロボットの軌道生成プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、教示点から軌道を生成するロボット装置及び多関節ロボットの軌道シミュレーション装置並びに軌道生成方法に関し、特に障害物を回避する軌道を生成可能なロボット装置及び多関節ロボットの軌道シミュレーション装置並びに軌道生成方法に関する。
【背景技術】
【０００２】
一般的に、多関節ロボットの軌道生成においては、多関節ロボットによる作業開始の位置及び姿勢と、作業終了の位置及び姿勢と、を入力すると、制御装置が直線補完や各軸角度の補完等を行うことで開始姿勢から終了姿勢への軌道を生成する。
【０００３】
また、生成される軌道上に障害物がある場合には、障害物との干渉が予想されるため、ユーザが予め軌道を細かく区切って教示点を追加し、障害物との干渉を回避させる。同様に、既に軌道を教示済みの多関節ロボットの周辺環境が変化し、軌道のいずれかの地点で多関節ロボットと周辺環境とが干渉する場合にも、ユーザが中継姿勢を表す教示点の追加や修正を行って周辺環境との干渉を回避させる。このように、多関節ロボットの軌道生成においては、多関節ロボットと周辺環境との干渉や多関節ロボットの可動領域を考慮した中継姿勢の教示点の追加、修正が必要であった。
【０００４】
ここで、多関節ロボットの軌道生成において、中継姿勢の教示点を追加、修正する際に障害物との干渉を考慮するためには、多関節ロボットのエンドエフェクタだけでなく、ロボットアームの全てのリンクについて障害物との干渉を調べる必要がある。更に、軌道上でスムーズな姿勢変化を行うためには、追加、修正する教示点の前後で姿勢が極端に変化しないように修正教示点を決定する必要がある。
【０００５】
しかしながら、多関節ロボットがどのような姿勢をとることができるか、またその姿勢への移行にはどのような姿勢変化が必要かを知るには、教示者の熟練と多大な作業時間がかかるため、教示点の追加や修正には手間がかかるという問題があった。
【０００６】
これに対しては、作業開始位置から終了位置までの中継姿勢を探索する多関節ロボットの軌道生成方法として、ポテンシャル場を用いたロボット装置の軌道生成が開示されている（特許文献１参照）。
【０００７】
特許文献１に記載の方法では、障害物から遠ざかるほどレベルが低下するポテンシャル値を設定したポテンシャルマップを予め生成する。そして、開始点からの移動距離と目標までの移動距離とポテンシャルマップによる評価関数が最良となる方向に経路を生成することで、障害物を回避しながら目標点まで移動する軌道を生成している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平０５−２２８８６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載の方法では、事前にポテンシャルマップを生成するという計算量の大きな工程が必要となる上、障害物が移動する場合には、移動障害物に対応できないという問題があった。
【００１０】
そこで、本発明は、与えられた教示点に基づいて、障害物を回避する軌道を容易に生成可能なロボット装置及び多関節ロボットの軌道シミュレーション装置並びに軌道生成方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、ロボット装置において、多関節ロボットと、前記多関節ロボットが障害物に接触した際に前記多関節ロボットに作用する前記障害物からの反力を検出可能な検出センサと、前記多関節ロボットの先端部が移動を開始する移動開始点と、前記先端部が移動を終了する移動終了点と、が入力されると、前記移動開始点と前記移動終了点とから前記先端部を移動させる初期軌道を演算し、演算した前記初期軌道に沿って前記多関節ロボットを駆動制御した際に、前記多関節ロボットが障害物と接触することで前記検出センサが前記障害物からの反力を検出すると、検出した前記反力から、前記初期軌道と交差する方向へ前記多関節ロボットを移動させる移動量を算出し、前記移動量で前記多関節ロボットを迂回移動させ、かつ前記移動量を記憶しておき、記憶した前記移動量を前記初期軌道に加えて障害物回避軌道を生成する制御装置と、を備えたことを特徴とする。
【００１２】
また、本発明は、多関節ロボットの軌道シミュレーション装置において、仮想空間上の仮想多関節ロボットの先端部が移動を開始する仮想移動開始点と、前記先端部が移動を終了する仮想移動終了点と、を入力可能な入力装置と、前記仮想移動開始点及び前記仮想移動終了点が入力されると、前記仮想移動開始点と前記仮想移動終了点とから前記先端部を移動させる仮想初期軌道を演算し、前記仮想初期軌道に沿って前記仮想多関節ロボットを移動させた際に、前記仮想多関節ロボットが前記仮想空間上の仮想障害物と接触することで前記仮想多関節ロボットに作用するであろう前記仮想障害物からの仮想反力から、前記仮想初期軌道と交差する方向へ前記仮想多関節ロボットを移動させる仮想移動量を算出し、算出した前記仮想移動量を記憶させて、記憶した前記仮想移動量を前記仮想初期軌道に加えることで多関節ロボットの障害物回避軌道を生成する画像処理装置と、を備えたことを特徴とする。
【００１３】
また、本発明は、多関節ロボットの軌道生成方法において、多関節ロボットの先端部が移動を開始する移動開始点と、前記先端部が移動を終了する移動終了点と、から前記先端部が移動する初期軌道を生成する初期軌道生成工程と、生成された前記初期軌道に基づいて前記多関節ロボットの駆動制御を開始する駆動開始工程と、前記初期軌道に基づいて移動する前記多関節ロボットが障害物と接触することで、前記多関節ロボットに作用する前記障害物からの反力を検出可能な検出センサが前記反力を検出すると、検出した前記反力から前記初期軌道と交差する方向に前記多関節ロボットを移動させる移動量を算出する移動量算出工程と、前記移動量で前記多関節ロボットを迂回移動させる迂回移動工程と、前記迂回移動工程での前記移動量を記憶する移動量記憶工程と、記憶した前記移動量を前記初期軌道に加えて障害物回避軌道を生成する障害物回避軌道生成工程と、を備えたことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、与えられた教示点に基づいて、障害物を回避する軌道を容易に生成可能なロボット装置及び多関節ロボットの軌道シミュレーション装置並びに軌道生成方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１実施形態に係るロボット装置の全体構造を示す模式図である。
【図２】第１実施形態に係る多関節ロボットを制御する制御装置のブロック図である。
【図３】第１実施形態に係る制御装置による軌道生成を示すフローチャートである。
【図４】第１実施形態に係る多関節ロボットの障害物回避軌道を示す模式図である。
【図５】第２実施形態に係るロボット装置の全体構造を示す模式図である。
【図６】第３実施形態に係る軌道シミュレーション装置を示す模式図である。
【図７】第３実施形態に係る軌道シミュレーション装置による軌道生成を示すフローチャートである。
【発明を実施するための形態】
【００１６】
＜第１実施形態＞
以下、本発明の第１実施形態に係るロボット装置１について、図１から図４を参照しながら説明する。まず、第１実施形態に係るロボット装置１の全体構成について、図１及び図２を参照しながら説明する。図１は、本発明の第１実施形態に係るロボット装置１の全体構造を示す模式図である。図２は、第１実施形態に係る多関節ロボット２を制御する制御装置６のブロック図である。
【００１７】
図１に示すように、ロボット装置１は、多関節ロボット２と、多関節ロボット２を制御する制御装置６と、を備えている。
【００１８】
多関節ロボット２は、６軸多関節のロボットアーム２０と、ロボットアーム２０の先端部に接続されたエンドエフェクタ２１と、を備えている。ロボットアーム２０は、各関節を各関節軸まわりにそれぞれ回転駆動する６つのアクチュエータ（図示せず）を備えており、６つのアクチュエータのそれぞれを選択的に駆動することでエンドエフェクタ２１を任意の３次元位置に移動させる。例えば、ユーザにより入力された教示点（制御開始点及び制御終了点）に基づいて制御装置６により演算された補完軌道を通過するように、図１に示す実線位置から２点鎖線位置にエンドエフェクタ２１を移動させる。
【００１９】
エンドエフェクタ２１は、ワーク等を把持する把持爪２２と、把持爪２２に作用する応力（反力）を検出可能な検出センサとしての力覚センサ２３と、を備えている。力覚センサ２３は、把持爪２２に発生する３軸方向の力及び３軸モーメントを検出する。
【００２０】
図２に示すように、制御装置６は、演算装置６０と、記憶装置６１と、を有するコンピュータ本体に、ロボットアーム２０、エンドエフェクタ２１がバスを介して接続されて構成されている。また、コンピュータ本体には、入力装置６２、ディスプレイ６４、記録メディア読取装置６６及び通信装置６７などもバスを介して接続されている。なお、図２においては、これらを接続するためのインターフェイスは不図示としている。
【００２１】
演算装置６０は、ＣＰＵ６０ａと、画像処理装置６０ｂと、を備えている。ＣＰＵ６０ａは、ロボット制御部６０ｅと、を備えている。
【００２２】
ロボット制御部６０ｅは、記憶装置６１に記憶された各種プログラムや入力装置６２から入力される設定等に基づいて、ロボットアーム２０やエンドエフェクタ２１を駆動制御する。例えば、ロボット制御部６０ｅは、記憶装置６１に記憶された後述する軌道情報に基づくインピーダンス制御により、障害物１００を回避する障害物回避軌道１０４（後述の図４参照）上をエンドエフェクタ２１が移動するようにロボットアーム２０を駆動制御する。
【００２３】
なお、エンドエフェクタ２１の駆動制御についての詳細な説明は省略する。また、多関節ロボット２の軌道生成方法については、後に詳しく説明する。
【００２４】
画像処理装置６０ｂは、ＣＰＵ６０ａからの描画指示に応じてディスプレイ６４を制御して、画面上に所定の画像を表示させる。記憶装置６１は、バスを介してＣＰＵ６０ａに接続されており、各種プログラムやユーザ等により入力される制御開始点及び制御終了点等の軌道情報が格納されたＲＯＭ６１ａと、ＣＰＵ６０ａの作業領域として確保されたＲＡＭ６１ｂと、を備えている。
【００２５】
入力装置６２は、キーボード６２ａと、マウス６２ｂと、から構成されており、エンドエフェクタ２１を移動させる制御開始点及び制御終了点等の軌道情報、或いはその他の指示の入力を可能としている。記録メディア読取装置６６は、軌道生成プログラム等の各種プログラムを記録したコンピュータ読み取り可能な記録媒体６８を読み込み、ＲＯＭ６１ａに格納させるため等に用いられる。通信装置６７は、例えば、上述したような記録媒体６８を使用せずに、通信装置６７を介してインターネット等から配信される更新プログラム等をダウンロードする際に用いられる。
【００２６】
次に、上述のように構成されたロボット装置１の制御装置６による多関節ロボット２の軌道生成方法について、図３及び図４を参照しながら説明する。図３は、第１実施形態に係る制御装置６による多関節ロボット２の軌道生成を示すフローチャートである。図４は、第１実施形態に係る多関節ロボット２の障害物回避軌道１０４を示す模式図である。
【００２７】
図３に示すように、多関節ロボット２の軌道生成方法は、ユーザ等による情報の入力等が行われる前処理段階と、制御装置６による最終的な軌道が計算される制御段階と、に分割することができる。多関節ロボット２の軌道生成方法としては、まず、前処理段階でユーザによる情報の入力が行われた後、制御装置６による制御段階が実行される。なお、制御段階における各工程は、軌道生成プログラムとして制御装置６のＲＯＭ６１ａに格納されており、例えば、通信装置６７を介してインターネット等から配信される更新プログラム等により更新可能になっている。
【００２８】
以下、多関節ロボット２の軌道生成方法について、前処理段階と制御段階とに分けて説明する。
【００２９】
まず、前処理段階について説明する。前処理段階としては、まず、ユーザが、対象となる多関節ロボット２の移動開始点としての制御開始点及び移動終了点としての制御終了点を、入力装置６２を用いて入力し、入力された制御開始点及び制御終了点は、ＲＯＭ６１ａに格納される（ステップＳ１１０）。なお、ユーザにより入力された制御開始点及び制御終了点は、多関節ロボット２が可動可能な３次元空間上の可動領域内に設定される。
【００３０】
制御開始点及び制御終了点がＲＯＭ６１ａに格納されると、次に、制御装置６により、制御開始点と制御終了点とを一般的な補完方法を用いて結んだ初期軌道としての補完軌道１０３（図１参照）が生成される（初期軌道生成工程）。生成された補完軌道１０３は、ＲＯＭ６１ａに格納される（ステップＳ１２０）。なお、ここでいう一般的な補完方法とは、制御開始点から制御終了点までを直線で結んだ際の直線上の各点における各軸の角度値を算出する直線補完や、制御開始点から制御終了点における各軸の角度値の差を任意の間隔に分割した関節補完などをいう。また、初期軌道生成工程は、軌道生成プログラムの一部として、制御段階と共に制御装置６のＲＯＭ６１ａに格納してもよい。
【００３１】
補完軌道１０３が生成されると、次に、多関節ロボット２が存在する３次元空間上に、侵入不可領域を表す障害物１００を設置する（ステップＳ１３０）。なお、障害物１００は、複数設置することも可能であり、時間による位置の変更や時間による形状の変形を設定することも可能である。障害物１００を設置することで前処理段階が終了する。
【００３２】
次に、制御段階について説明する。制御装置６により制御段階が実行されると、多関節ロボット２を駆動制御して、まず、エンドエフェクタ２１を補完軌道１０３に沿って移動させる（駆動開始工程、ステップＳ１４０）。このとき、制御装置６は、力覚センサ２３が検出する検出値を受信しており、検出値が予め設定された所定の閾値を超えた場合、エンドエフェクタ２１が障害物１００に接触（干渉）したと判断する（ステップＳ１５０のＹＥＳ）。つまり、検出値が予め設定された所定の閾値を超えた場合の反力を、エンドエフェクタ２１が障害物１００に接触したときの反力として検出する。
【００３３】
次に、制御装置６は、力覚センサ２３の検出値を用いたインピーダンス制御を行い、インピーダンス制御で、補完軌道１０３に対して交差する方向（本実施形態においては直交する方向）への移動量を算出する（移動量算出工程、ステップＳ１６０）。移動量は、交差方向成分に変換された力覚センサ２３の出力の、「出力量」、「出力量の時間微分」、「出力量の２回微分」を用いてインピーダンス制御を行うことで算出される。なお、補完軌道１０３に対して交差する方向としては、補完軌道１０３と直交（９０度）する方向に限定されないが、直交する方向が好ましい。
【００３４】
移動量が算出されると、移動量を加えた補完軌道１０３に沿ってエンドエフェクタ２１を迂回移動させ（迂回移動工程）、このときの移動量を記憶しておく（移動量記憶工程）。制御装置６は、エンドエフェクタ２１が障害物１００に接触されなくなったと判断するまでステップＳ１４０に戻りながら上述を繰り返し、それぞれの移動量を記憶しておく。
【００３５】
一方、エンドエフェクタ２１が障害物１００に接触されなくなったと判断すると（ステップＳ１５０のＮＯ）、次に、制御装置６は、補完軌道１０３に対するエンドエフェクタ２１の補完軌道１０３に対するずれの有無を判断する（ステップＳ１７０）。これは、力覚センサ２３からの検出値を用いてインピーダンス制御を行った結果、エンドエフェクタ２１の位置と補完軌道１０３には交差方向のずれ量が生じる場合があるためであり、このままでは、制御終了点に到達しなくなるためである。
【００３６】
補完軌道１０３から迂回移動した軌道に対する移動量（補正量）は、「ずれ量」、「ずれ量の微分」、「ずれ量の２回微分」を用いてインピーダンス制御を行うことで算出される（ステップＳ１８０）。また、補完軌道１０３に対して交差する方向としては、補完軌道１０３と直交（９０度）する方向が好ましく、ずれ量が小さくなるように算出する。
【００３７】
移動量（補正量）が算出されると、ステップＳ１６０での移動量から移動量（補正量）を引いた位置にエンドエフェクタ２１を迂回移動させ、移動したことで障害物１００と接触した場合には、ステップＳ１６０を繰り返し、このときの移動量を記憶しておく。このような動作を繰り返し行うことで、エンドエフェクタ２１は、障害物１００を回避しながら制御終了点に向かって移動する。
【００３８】
上述を繰り返すことで制御終了点まで到達する（ステップＳ１９０）と、次に、制御した結果の軌道（記憶した移動量）を、図４に示す障害物回避軌道１０４としてＲＯＭ６１ａに格納する（障害物回避軌道生成工程、ステップＳ１１００）。一方、制御終了点まで到達していない場合には、ステップＳ１４０に戻って上述を繰り返す。
【００３９】
以上説明したように、第１実施形態に係るロボット装置１は、制御開始点と制御終了点とを与えるだけで、補完軌道１０３を生成し、障害物１００があった場合には、自動で障害物１００に対する障害物回避軌道１０４を生成する。そのため、例えば、ポテンシャルマップを作成する等の計算量の大きな工程を用いることなく、障害物１００を回避する軌道を容易に生成することができる。
【００４０】
また、本実施形態は、既に詳細な軌道が設定された後に新規障害物を設置する場合に特に有効である。例えば、一定範囲内を何度も通過するような動作を教示した後に、その一定範囲内の一部分を進入禁止領域にすると、再教示に膨大な労力がかかる。しかしながら、本実施形態を用いることにより、進入禁止領域に障害物を設置し、インピーダンス制御による軌道設計を行うことで、関係無い部分での軌道は保ったまま、簡単に障害物回避軌道に修正することが可能となる。
【００４１】
なお、第１実施形態においては、力覚センサ２３をエンドエフェクタ２１に設け、把持爪２２に発生する反力を検出させたが、例えば、ロボットアーム２０の各関節に力覚センサを設ける構成であってもよい。例えば、ロボットアームの各関節に力覚センサを設け、ロボットアームが障害物に接触することで得られる反力を検出する構成であってもよい。この場合、ロボットアームと障害物との干渉位置は、ロボットアームの根本（基部）から数えて２自由度目以降であることが必要となる。
【００４２】
また、第１実施形態においては、力覚センサ２３の出力を用いて移動量を算出したが、例えば、補完軌道を通過する際の力覚センサ２３の出力の差分を用いて移動量を算出する構成であってもよい。
【００４３】
＜第２実施形態＞
次に、本発明の第２実施形態に係るロボット装置１Ａについて、図２及び図３を援用すると共に、図５を参照しながら説明する。第２実施形態は、ロボットアームにトルクセンサ（検出センサ）を設けた点が第１実施形態と相違する。そのため、第２実施形態においては、第１実施形態と相違する点、即ち、トルクセンサを用いた場合の軌道生成方法を中心に説明し、第１実施形態と同様の構成については、同じ符号を付してその説明を省略する。図５は、第２実施形態に係るロボット装置１Ａの全体構造を示す模式図である。
【００４４】
図５に示すように、第２実施形態に係るロボット装置１Ａは、多関節ロボット２Ａと、制御装置６Ａと、を備えており、多関節ロボット２Ａは、６軸多関節のロボットアーム２０Ａと、エンドエフェクタ２１と、を備えている。ロボットアーム２０Ａは、各関節にトルクセンサ２４が設けられており、各関節に発生するトルクを計測可能になっている。なお、制御装置６Ａについては、基本的な構成が第１実施形態に係る制御装置６と同様（図２参照）であるため、図２を援用するものとしてその説明を省略する。以下、トルクセンサ２４を用いた軌道生成方法について、図３を援用しながら説明する。
【００４５】
第２実施形態に係るロボット装置１Ａによる軌道生成方法は、図３に示すステップＳ１５０及びステップＳ１６０が相違する。以下、ステップＳ１５０及びステップＳ１６０について説明する。
【００４６】
第２実施形態のステップＳ１５０では、ロボットアーム２０Ａが移動中に各関節のトルクセンサ２４が検出する各関節の出力トルクと検出値との差分量が予め設定した閾値を超えると、障害物２００と接触したと判定する（ステップＳ１５０のＹＥＳ）。つまり、差分量が予め設定された所定の閾値を超えた場合の外力トルクを、ロボットアーム２０Ａが障害物２００に接触したときの外力トルクとして検出する。
【００４７】
ロボットアーム２０Ａが障害物２００に接触したと判断すると、次に、制御装置６Ａは、初期移動を移動する際に計測されたトルクセンサ２４の出力トルクと、障害物２００に接触した際の検出値と、の差分を用いたインピーダンス制御を行う。具体的には、各関節の出力トルクと検出値との、「差分量」、「差分量の微分」、「差分量の２回微分」を用いてインピーダンス制御を行い、検出値が出力トルクに合うような差分トルク量を導出する。そして、エンドエフェクタ２１が補完軌道２０３に沿って移動する際のモータ出力へ加算する。
【００４８】
一方、ロボットアーム２０Ａが障害物２００に接触されなくなったと判断すると（ステップＳ１５０のＮＯ）、第１実施形態と同様制御装置６Ａは補完軌道１０３に対するエンドエフェクタ２１の補完軌道２０３に対するずれの有無を判断する（ステップＳ１７０）。ずれ量が生じていた場合には、第１実施形態と同様に、ずれ量が小さくなるように移動量（補正量）を算出する。
【００４９】
移動量（補正量）が算出されると、ステップＳ１６０での移動量から移動量（補正量）を引いた位置にエンドエフェクタ２１を迂回移動させ、移動したことで障害物２００と接触した場合には、ステップＳ１６０を繰り返し、このときの移動量を記憶しておく。これにより、図５に示すように、補完軌道２０３が障害物回避軌道２０４に修正され、ロボットアーム２０Ａが障害物２００を回避可能な軌道２０５を通過可能になる。
【００５０】
モータ出力へ加算されたことによる移動量は、ＣＰＵ６１ａに適宜記憶され、制御終了点に到達すると、ステップＳ１８０によるずれ量を加算した移動量と共に、制御した結果の軌道を、障害物回避軌道２０４としてＲＯＭ６１ａに格納される。
【００５１】
以上説明したように、第２実施形態に係るロボット装置１Ａは、ロボットアーム２０Ａにトルクセンサ２４を設けることで、第１実施形態に係る効果に加え、ロボットアーム２０Ａの軌道を考慮した軌道生成が可能になり、より正確な軌道生成を行うことができる。
【００５２】
なお、第２実施形態においては、トルクセンサ２４の出力の差分を用いて移動量を算出したが、例えば、トルクセンサ２４の出力のみを用いて移動量を算出する構成であってもよい。
【００５３】
＜第３実施形態＞
次に、本発明の第３実施形態に係る多関節ロボットの軌道シミュレーション装置７について、図６を参照しながら説明する。図６は、第３実施形態に係る軌道シミュレーション装置７を示す模式図である。
【００５４】
軌道シミュレーション装置７は、各種情報を入力可能な入力装置７２と、入力された情報に基づいて軌道をシミュレーションする制御装置７４と、を備えて構成されている。入力装置７２は、不図示のキーボード及びマウスから構成されており、仮想多関節ロボットを移動させる仮想移動開始点としての仮想制御開始点及び仮想移動終了点としての仮想制御終了点等の軌道情報、仮想障害物の情報、その他の指示の入力等を可能としている。
【００５５】
制御装置７４は、画像処理装置７０ｂと、ＣＰＵ７０ａと、ＲＯＭ７１ａと、を備えて構成されている。画像処理装置７０ｂは、ＣＰＵ７０ａからの描画指示に応じてディスプレイを制御して、画面上に所定の画像を表示させる。ＣＰＵ７０ａは、ＲＯＭ７１ａに記憶された各種プログラムや入力装置７２から入力される設定等に従って、ディスプレイ（仮想空間上）で仮想多関節ロボットを移動させる。また、ＲＯＭ７１ａには、物理量を表す情報Ｉ１０１、物理計算手法Ｉ１０２及び制御手法Ｉ１０３も格納されている。
【００５６】
物理量を表す情報Ｉ１０１には、シミュレートする仮想多関節ロボットを構成する仮想部品の形状や各関節や仮想空間上の配置情報、仮想センサ配置情報、仮想障害物の形状や配置情報などの物理量が格納されている。物理計算手法Ｉ１０２には、各関節の動作を計算し、仮想多関節ロボットの動作をシミュレートする方法や、仮想障害物と接触することで仮想障害物からの仮想反力をシミュレートする手法等が格納されている。制御手法Ｉ１０３には、仮想制御開始点から仮想制御終了点を補完する方法や、インピーダンス制御手法などが格納されている。
【００５７】
次に、上述のように構成された軌道シミュレーション装置７による仮想多関節ロボットの障害物回避軌道の生成方法について、図７を参照しながら説明する。図７は、第３実施形態に係る軌道シミュレーション装置７による軌道生成を示すフローチャートである。
【００５８】
まず、対象となる仮想多関節ロボットの仮想制御開始点及び仮想制御終了点を、入力装置７２を用いて入力し、入力された仮想制御開始点及び仮想制御終了点は、ＲＯＭ７１ａに格納される（ステップＳ２１０）。なお、ユーザにより入力された仮想制御開始点及び仮想制御終了点は、仮想多関節ロボットが可動可能な仮想空間上の可動領域内に設定される。
【００５９】
次に、ＣＰＵ７０ａにより、仮想制御開始点と仮想制御終了点とを一般的な補完方法を用いて結んだ仮想初期軌道としての仮想補完軌道を生成する。生成された仮想補完軌道は、ＲＯＭ７１ａに格納される（ステップＳ２２０）。なお、一般的な補完方法とは、仮想制御開始点から仮想制御終了点までを直線で結んだ際の仮想直線上の各点における各軸の角度値を算出する直線補完や、仮想制御開始点から仮想制御終了点における各軸の角度値の差を任意の間隔に分割した関節補完などをいう。
【００６０】
次に、仮想多関節ロボットが存在する仮想空間上に、侵入不可領域を表す仮想障害物を設置し（ステップＳ２３０）、仮想多関節ロボットを駆動制御して、仮想多関節ロボットの先端部を仮想補完軌道に沿って移動させる（ステップＳ２４０）。このとき、ＣＰＵ７０ａは、仮想力覚センサの検出値を受信しており、検出値が予め設定された所定の閾値を超えた場合、仮想多関節ロボットが仮想障害物に接触（干渉）したであろうと判断する（ステップＳ２５０のＹＥＳ）。つまり、検出値が予め設定された所定の閾値を超えた場合の仮想反力を、障害物に接触したであろう仮想検出値として検出する。
【００６１】
次に、ＣＰＵ７０ａは、仮想力覚センサの仮想検出値を用いたインピーダンス制御を行い、仮想補完軌道に対する仮想移動量を算出する（ステップＳ２６０）。なお、インピーダンス制御を用いた仮想移動量の算出方法は、第１実施形態と同様であるため、ここではその説明は省略する。仮想移動量が算出されると、仮想移動量を加えた仮想補完軌道に沿って仮想多関節ロボットの先端部を迂回させ、このときの仮想移動量を記憶しておく。ＣＰＵ７０ａは、仮想多関節ロボットの先端部が仮想障害物に接触されなくなったと判断するまでステップＳ２４０に戻りながら上述を繰り返し、それぞれの仮想移動量を記憶しておく。
【００６２】
一方、仮想多関節ロボットの先端部が仮想障害物に接触されなくなったと判断すると（ステップＳ２５０のＮＯ）、次に、ＣＰＵ７０ａは、仮想補完軌道に対する仮想多関節ロボットの先端部の仮想補完軌道に対するずれの有無を判断する（ステップＳ２７０）。これは、仮想力覚センサからの仮想検出値を用いてインピーダンス制御を行った結果、仮想多関節ロボットの先端部の位置と仮想補完軌道には交差方向の仮想ずれ量が生じる場合があるためである。なお、仮想補完軌道に対する仮想補正量（移動量）は、インピーダンス制御を行うことで算出されるが（ステップＳ２８０）、算出方法は第１実施形態と同様であるため、ここではその説明は省略する。
【００６３】
仮想補正量が算出されると、ステップＳ２６０での仮想移動量から仮想補正量を引いた位置に仮想多関節ロボットの先端部を移動させ、移動することで仮想障害物と接触した場合には、ステップＳ２６０を繰り返し、このときの仮想移動量を記憶しておく。このような動作を繰り返し行うことで、仮想多関節ロボットの先端部は、仮想障害物を回避しながら仮想制御終了点に向かって移動することになる。
【００６４】
上述を繰り返すことで、仮想制御終了点まで到達する（ステップＳ２９０）と、制御した結果の仮想軌道（記憶した仮想移動量）を、障害物回避軌道としてＲＯＭ７１ａに格納する（ステップＳ２１００）。一方、仮想制御終了点まで到達していない場合には、ステップＳ２４０に戻って上述を繰り返す。
【００６５】
以上説明したように、軌道生成を軌道シミュレーション装置７で行うことにより、障害物との接触（干渉）時に多関節ロボットや障害物が破損することがないため、実機を用意する必要がなくなり、コストを抑えることができる。また、例えば、空中に障害物を設置することができるため、様々な態様のシミュレートを低コストで行うことができる。
【００６６】
また、例えば、多関節ロボットの可動範囲内で多関節ロボットが特異な姿勢をとる特異点がある場合、教示の際には、特異姿勢をとる多関節ロボットの手先位置に多関節ロボットの手先を入れたくない場合が生じる。このような場合、特異点を仮想障害物として仮想空間上に設定することができる。
【００６７】
例えば、特異姿勢をとったときの仮想多関節ロボットの手先を中心とする球形の仮想障害物を設定することで、特異点を仮想障害物と設定することができる。この場合、仮想多関節ロボットの手先中心に全方向仮想センサを設定し、手先中心の仮想センサのみが仮想障害物に干渉するように設定する（なお、シミュレーション環境であれば、任意の部分にのみ反応するようなセンサを設定することが可能になる）。このようにすることで、特異点を回避するような動作（軌道）を出力することが可能になる。なお、シミュレーション環境であれば、任意の部分にのみ反応するような検出センサを設定することも可能である。
【００６８】
なお、第３実施形態においては、仮想障害物として、固定された仮想障害物を用いて説明したが、仮想障害物は、例えば、移動可能な仮想障害物であってもよい。この場合、仮想障害物を設定した後、仮想障害物の時系列での仮想運動をＣＰＵ７０ａに記憶させておき、仮想多関節ロボットの移動に合わせて仮想障害物の位置を更新する。このようにすることで、仮想障害物を移動可能な仮想障害物とすることができ、移動する仮想障害物に対する干渉の検知を行うことが可能になる。
【００６９】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されない。
【００７０】
例えば、本実施形態においては、複数の回転軸を有する多軸多関節のロボットアームを用いて説明したが、本発明においてはこれに限定されない。例えば、直動軸を有する多軸多関節のロボットアームを用いた場合においても同様の軌道生成ができる。
【符号の説明】
【００７１】
１、１Ａ、１Ｂ    ロボット装置
２    多関節ロボット
６    制御装置（制御部）
７    軌道シミュレーション装置
２０    ロボットアーム
２１    エンドエフェクタ
２３    力覚センサ（検出センサ）
７２    入力装置
７４    制御装置
１００    障害物
１０３    補完軌道（初期軌道）
１０４    障害物回避軌道
２００    障害物
【図１】
2014065098.tif 000003
【図２】
2014065098.tif 000004
【図３】
2014065098.tif 000005
【図４】
2014065098.tif 000006
【図５】
2014065098.tif 000007
【図６】
2014065098.tif 000008
【図７】
2014065098.tif 000009