説明

移動体軌道生成方法および移動体軌道生成装置

【課題】移動体の動作軌道の自動生成方法として従来ポテンシャル法が用いられていたが、ローカルミニマムによって軌道生成不能となることがあった。
【解決手段】作業空間に障害物と移動体の初期位置と目標位置とを結ぶ動作軌道モデルを設定する。さらに、作業空間中に障害物を発生源とする斥力ベクトル場を設定する。この斥力ベクトル場を、動作軌道モデルを構成する質点に作用させて動作軌道モデルを変形させることにより、移動体の動作軌道を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、障害物の存在する環境で移動する物体の最適な軌道を生成する移動体軌道生成方法および移動体軌道生成装置に係る。
【背景技術】
【0002】
従来、ロボットの動作設計にはオフラインティーチングによる動作記録方式若しくは制御プログラムによる方式がある。動作記録方式は組立作業や溶接作業などあらかじめ決められた動作を行う産業用ロボットに広く用いられており、実際の作業環境に合わせた動作の設計が可能であるという利点がある。その一方で、ティーチングに多くの時間がかかると共に、動作の設計に熟練を要するといった欠点がある。制御プログラムによる方式はセンサ情報を用いて判断を行い、ある程度環境にロバストな動作設計を行なうことが可能である。しかし、干渉を回避するための軌道の生成を、シミュレーション等を利用して確認しながら試行錯誤的に行う必要があり、設計と検証に多大な労力が必要となる。
【0003】
これに対して、ロボットの動作設計の自動化の試みとしてはポテンシャル場を用いた経路探索手法(例えば、特許文献1参照。)がある。この手法では作業空間内に目標位置が最小、現在位置が最大となるような仮想的なポテンシャルを設定する。さらに、障害物にも大きなポテンシャルを持たせることで、ポテンシャルが低くなる方向へ軌道を生成することで、障害物を回避しながら目標位置までの経路を生成できる。
【特許文献1】特開2003−280710号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
上述したポテンシャル場を用いた経路探索手法では、ポテンシャル場にローカルミニマムが生じて、経路探索時にローカルミニマムに陥ると軌道を生成できないという問題があった。ローカルミニマムとは、ポテンシャルが局所的に極小となる領域を指す。経路探索時にローカルミニマムの領域に入ると、周囲のポテンシャルがローカルミニマムの領域より高く、経路探索を続行できずに軌道生成不能となるのである。
【0005】
複雑形状の障害物がある環境では、ローカルミニマムの存在しないポテンシャル場を設定することは非常に困難である。また、ローカルミニマムを回避するために迂回した経路を生成するとなると、軌道が長大になり、不要な変曲点を含む軌道となるなど、最適な軌道とならず、軌道の最適化を図る必要等があった。
【0006】
上述した課題に鑑み、本発明の目的は、ロボットマニピュレータの手先等の目標軌道を試行錯誤的に行うことなく生成でき、かつ、上述したローカルミニマムの問題が生じない移動体軌道生成方法および移動体軌道生成装置を提供することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明による移動体軌道生成方法は、移動体が移動する空間を設定する空間設定ステップと、前記空間中に前記移動体が動作を開始する初期位置を設定する初期位置設定ステップと、前記空間中に前記移動体の目標位置を設定する目標位置設定ステップと、前記空間中に障害物の位置を設定する障害物設定ステップと、前記初期位置と前記目標位置とを結び、前記初期位置と前記目標位置の間に質点を有し、前記初期位置と前記目標位置に両端を固定された動作軌道モデルを設定する動作軌道モデル設定ステップと、前記空間に前記障害物を発生源とする斥力ベクトルからなる斥力ベクトル場を設定する斥力ベクトル場設定ステップと、前記斥力ベクトル場の前記斥力ベクトルを前記質点に作用させ、変形した前記動作軌道モデルを前記移動体の動作軌道とする動作軌道生成ステップと、を備えることを特徴とする。
【0008】
また、本発明による移動体軌道生成装置は、移動体が移動する空間を設定する空間設定手段と、前記空間中に前記移動体が動作を開始する初期位置を設定する初期位置設定手段と、前記空間中に前記移動体の目標位置を設定する目標位置設定手段と、前記空間中に障害物の位置を設定する障害物設定手段と、前記初期位置と前記目標位置とを結び、前記初期位置と前記目標位置の間に質点を有し、前記初期位置と前記目標位置に両端を固定された動作軌道モデルを設定する動作軌道モデル設定手段と、前記空間に前記障害物を発生源とする斥力ベクトルからなる斥力ベクトル場を設定する斥力ベクトル場設定手段と、前記斥力ベクトル場の前記斥力ベクトルを前記質点に作用させ、変形した前記動作軌道モデルを前記移動体の動作軌道とする動作軌道生成手段と、を備えることを特徴とする。
【発明の効果】
【0009】
本発明の移動体軌道生成方法および移動体軌道生成装置によれば、従来のポテンシャル法による軌道生成に比較して、ローカルミニマムの問題が生ずることなく移動体の最適な目標軌道を生成することができる。
【発明を実施するための最良の形態】
【0010】
以下本発明の実施例について図面を参照しながら説明する。
【実施例1】
【0011】
本発明の第1の実施例について、図面を用いて以下説明する。図1は、本実施例による移動体軌道生成方法の主要なステップを記載したフローチャートである。本実施例の移動体軌道生成方法において行われる処理について、図1を用いて説明する。なお、各実施例においては、軌道が生成される移動体はロボットマニピュレータの手先であるものとして以下説明する。
【0012】
まず、ロボットマニピュレータが作業を行う作業空間を定義する処理を行う(ステップS1)。作業空間とは、ロボットマニピュレータの初期位置や作業位置、および初期位置と作業位置の中間を含む実際の空間の情報に基づいて構築される空間である。この作業空間は、作業を行う施設等の設計情報、例えば3次元CADのデータを用いて設定する、またはカメラの映像や各種センサによる計測等で収集したデータを用いて設定する、あるいは手動で設定する、といったことが考えられる。
【0013】
具体的には、例えばロボットマニュピレータの操作装置が関連付けられ、各種3次元形状データを作成、記憶、修正可能な3次元CADシステムを構成する演算装置及び入力装置によって行われる。すなわち、上述の入力装置に施設等の設計情報や収集したデータを入力する、あるいは任意に施設情報等を入力して、上述した作業空間に対応する3次元形状データを設定することによって行われる。
【0014】
次に、定義された作業空間内に存在する障害物の位置と形状を定義する処理を行う(ステップS2)。この障害物の定義も、作業空間の定義と同様に、設計情報やデータ収集、手動設定等によって行うことができる。また、障害物が作業空間中を移動する場合は、障害物の移動情報を反映させて移動する障害物を設定することもできる。
【0015】
次に、作業空間上に斥力ベクトル場を生成する処理を行う(ステップS3)。斥力ベクトル場の生成は、作業空間上に3次元の格子を設定し、各格子点に斥力ベクトルを定義することで行う。この斥力ベクトルはステップS2で定義された障害物を発生源として設定する。各格子点に設定される斥力ベクトルの方向は障害物表面の法線方向、すなわち障害物表面に垂直な方向とし、斥力ベクトルの大きさは障害物に近いほど大きくなるように設定する。作業空間上に複数の障害物が存在する場合、各格子点に各障害物から発生する斥力ベクトルを合算したものが、最終的にその格子点に設定される斥力ベクトルとなる。
【0016】
ステップS2で定義された障害物と、ステップS3で生成された斥力ベクトル場の例を図2に示す。図2は作業空間に設定された障害物と斥力ベクトル場の概要を示す概念図である。なお、斥力ベクトル場については、斥力ベクトルのおおよその方向のみ示しており、作業空間上に設定される3次元格子は省略している。作業空間中に円筒形状の障害物10が設定されており、この障害物10から遠ざかる方向の斥力ベクトル11が設定されている。
【0017】
斥力ベクトル場を設定する際、障害物10が複雑な形状で、突起や極端な狭隘部を有する等のロボットマニピュレータの手先が通過しにくい形状や配置を取る場合は、該当箇所付近の斥力ベクトル11を大きくする等の重み付けを行ってもよい。
【0018】
次に、移動体の初期位置と目標位置を結ぶように、動作軌道モデルを作業空間上に生成・配置する処理を行う(ステップS4)。この動作軌道モデルの構造の一例を、図3を用いて説明する。動作軌道モデルは、引っ張りバネ20とヒンジバネ21を組み合わせたバネマス22を複数結合し、バネマス22同士の結合部には質点23が設定された連成バネマス構造を有する。また、動作軌道モデルの両端に設定される質点23a、質点23bは、動作軌道モデルの配置の際、質点23aは移動体の初期位置に、質点23bは移動体の目標位置に固定される。なお、図3ではバネマス22を2つ結合したものとして図示しているが、バネマス22の数は任意に設定することができる。
【0019】
なお、図3においては、移動体の初期位置と目標位置とを直線的に結ぶように動作軌道モデルを配置しているが、直線的に結ぶ必要はなく、空間中で初期位置と目標位置とを任意に結ぶように配置されていればよい。
【0020】
次に、ステップS4で生成した動作軌道モデルにステップS3で設定した斥力ベクトル11を作用させ、動作軌道を生成する処理を行う(ステップS5)。動作軌道モデルに設定された各質点23について、各質点23周辺に設定された複数の斥力ベクトル11の平均となるベクトルを作用させる。すると、動作軌道モデルを構成する引っ張りバネ20、ヒンジバネ21が変形する。この際、ヒンジバネ21は隣接する質点23間を直線形状に保つ方向に力を作用させ、ロボットマニピュレータの動作軌道31が必要以上に湾曲することを防ぐ。
【0021】
最終的には、各質点23に作用する斥力ベクトル11と引っ張りバネ20、ヒンジバネ21の張力がつりあう形状に動作軌道モデルが変形する。この変形した動作軌道モデルの描く軌道がロボットマニピュレータの動作軌道となる。なお、質点23周辺に斥力ベクトル11を作用させる際、斥力ベクトル11が設定された各格子点と斥力ベクトル11の質点23との距離に基づいて、複数の斥力ベクトル11に対して重み付けを行ってベクトルを計算することもできる。
【0022】
ステップS5における動作軌道の生成の例を、図4を用いて説明する。図4(a)は動作軌道モデルに斥力ベクトル11を作用させていない状態、図4(b)は動作軌道モデルに斥力ベクトル11を作用させて動作軌道を生成した状態を示している。なお、図4においては簡略的に2次元図で表し、各質点23を結ぶバネマス22も簡略化して図示している。
【0023】
図4(a)で示すようにステップS4において動作軌道モデルが障害物10を貫通するように配置される。なお、上述したように、質点23aは移動体の初期位置に、質点23bは移動体の目標位置に固定されている。この動作軌道モデルに斥力ベクトル11を作用させると、図4(b)で示す形状に変形し、障害物10を紙面右側から迂回する動作軌道が生成される。質点23a、質点23bは位置が固定されているため移動しない。
【0024】
次に、ステップS5で生成した動作軌道について、動作軌道モデルの各質点23間を曲線補間し、動作軌道を滑らかにする処理を行う(ステップS6)。
【0025】
以上の一連の処理により、ロボットマニピュレータの手先の動作軌道が生成される。このような動作軌道生成によれば、ポテンシャル法におけるローカルミニマムの問題が生じることなく、移動体の最適な動作軌道を生成することが可能である。また、動作軌道モデルに連成バネマス構造を採用し、各バネのバネ定数を任意に設定可能とすることで、障害物の配置や形状に応じ、障害物に対する移動体の回避軌道の大きさを任意に変更することが可能となる。
【0026】
また、ステップS1について説明したとおり移動する障害物を設定する場合は、リアルタイムに斥力ベクトル場と動作軌道モデルの形状を更新する処理を行うことも可能である。また、障害物の移動範囲が決まっている場合は、障害物の移動範囲全体を一つの障害物として設定することも可能である。
【0027】
また、本発明の移動体動作軌道生成方法は、設計情報や、実際の作業環境の情報を収集して設定することができるため、設計・計画段階の施設、建設済みの施設の何れについても適用することが可能である。
【0028】
また、動作軌道モデルを構成する引っ張りバネ20、ヒンジバネ21のバネ定数は任意に設定することができる。斥力ベクトル場が同一の場合、バネ定数が大きいほど動作軌道モデルは変形し難く、逆にバネ定数が小さいほど動作軌道モデルは変形し易くなる。したがって、例えば、手先が大きい場合はバネ定数を小さくすることにより、バネ定数が固定の場合の動作軌道よりも障害物10から離れた動作軌道が生成される。逆に、手先が小さい場合はバネ定数を大きくすることでバネ定数が固定の場合の動作軌道よりも障害物10に近い動作軌道が生成される。換言すれば、バネ定数を任意に設定することにより、障害物10に対する移動体の回避軌道の大きさを任意に変更することが可能である。
【0029】
つまり、上述の方法により手先の大きさに合わせてロボットマニピュレータと障害物10の干渉回避距離を確保した動作軌道を生成することができる。また、動作軌道モデルを構成する各バネのバネ定数は同一でなくともよい。例えば、障害物10が少ない箇所におけるバネ定数を大きくし、障害物10が多く狭隘な箇所におけるバネ定数を小さくするなど、作業空間内1の障害物10の形状に合わせて部分的にバネ定数を変えることで、バネ定数が大きい箇所では障害物10の形状に依存することなく、より直線的な軌道を得ることができ、バネ定数が小さい箇所では障害物10の形状に沿った干渉回避軌道を得ることができる。
【0030】
また、動作軌道を生成する際に、質点23の各々についてロボットマニピュレータの可動範囲を拘束条件としてもよい。すなわち、質点23の各々は斥力ベクトル11を作用させることで作業空間中を移動するが、この際にロボットマニピュレータの可動範囲外には移動できないよう設定することで、確実にロボットマニピュレータの可動範囲内に動作軌道を生成することが可能である。
【0031】
また、本実施例においては動作軌道モデルに関して、間隔を空けて質点23を離散的に配置したものとして説明したが、連続的に質点23を配置したものとして、つまり動作軌道モデルが全体として質量を有するものとすることも可能である。
【実施例2】
【0032】
本発明の第2の実施例について、図面を用いて以下説明する。なお、第1の実施例と同じ構成には同一の符号を付し、重複する説明は省略する。
【0033】
本実施例においては、ステップS4で生成される動作軌道モデルに、図5に示す連成バネマスダンパ構造を採用している。この連成バネマスダンパ構造は、連成バネマス構造の質点23と引っ張りバネ20の間にダンパ24を追加した構造である。
【0034】
この連成バネマスダンパ構造を採用することにより、ステップS5で動作軌道モデルに斥力ベクトル11を作用させて軌道を生成する際に、動作軌道モデル変形時の各質点23間の振動、つまり引っ張りバネ20の伸縮方向の振動を抑制することができる。
【0035】
また、各ダンパ24の減衰係数を可変とし、動的に位置が変動する障害物10等により瞬間的に過大な斥力が作用した場合にダンパ24の減衰係数が増加する設定、すなわちダンパ24に印加される応力の増加に応じて減衰係数が増加するよう設定することで、動作軌道が部分的に大きく変形することを防止することができる。
【0036】
また、各ダンパの減衰係数を個別に設定可能とし、たとえば移動体の初期位置と目標位置付近のダンパは減衰係数を大きくして動作軌道の変形を抑制し、他のダンパは減衰係数を小さくして動作軌道を変形しやすくする等、動作軌道モデルのバネ定数を個別に異なる設定とした場合と類似した効果を得ることができる。
【0037】
なお、当然ながら各質点23間の全箇所にダンパ24を設定する必要はなく、任意の箇所にのみダンパを追加した連成バネマスダンパ構造とすることも可能である。また、質点23と引っ張りバネ20の間にダンパ24を追加したものとして説明したが、当然ヒンジバネ21と質点23の間、あるいは引っ張りバネ20とヒンジバネ21の間にダンパ24を追加することも可能である。
【実施例3】
【0038】
本発明の第3の実施例について以下説明する。
【0039】
本実施例の移動体動作軌道生成方法では、動作軌道モデルを生成するステップS4において、各質点23に粘性摩擦係数を設定する。ここでいう各質点23の粘性摩擦とは、作業空間上を質点23が移動する際に、質点23の移動に対して抵抗力として働くものである。すなわち、この粘性摩擦係数が高いほど質点23は移動しにくくなる。この粘性摩擦係数を設定することにより、動作軌道モデルに斥力ベクトル11を作用させて動作軌道を生成する際の動作軌道モデルの振動を抑制することが可能である。質点23の粘性摩擦は全方向の移動に対して作用するため、連成バネマスダンパ構造のダンパと異なり、動作軌道モデル全体のあらゆる方向の振動を抑制することが可能である。
【0040】
この粘性摩擦係数は、第2の実施例で説明したダンパの減衰係数と同様に、質点23に働く斥力の増加にともなって増加する設定とすることができ、また、各質点23について個別に設定することが可能である。
【実施例4】
【0041】
本発明の第4の実施例について以下説明する。
【0042】
本実施例においては、動作軌道モデルを生成するステップS4において、生成される動作軌道モデルを構成するバネの自然長を個別に設定し、各質点23間の距離を個別に設定可能とするものである。また、ステップS5で生成された動作軌道について、移動体の動作速度を各質点23間の距離と関連付けることができ、例えば生成された動作軌道について、動作軌道モデルの各質点23間の移動に要する時間を一定とした場合、質点23間の距離が長い場合は移動体の動作速度が速く、質点23間の距離が短い場合は移動体の動作速度を遅くするよう設定することができる。
【0043】
さらに、上述した実施例と組み合わせ、例えばバネ定数の個別設定によって障害物10に対して大きく回避軌道をとる設定とした箇所では移動体の動作速度を速く、障害物10に対して小さく回避軌道を取る設定とした箇所では移動体の動作速度を遅くする、といった設定が可能である。
【0044】
本実施例によれば、動作軌道の生成時に、移動体の動作速度も自動で最適な設定とすることが可能である。
【実施例5】
【0045】
本発明の第5の実施例について、図面を用いて以下説明する。
【0046】
本実施例においては、軌道生成ステップS5にて動作軌道を生成する際に、動作軌道モデルの任意の質点23を微小移動させる質点移動処理を行うことができる。
【0047】
作業空間上に設定された障害物10、移動体の初期位置、目標位置によっては、動作軌道モデルの各質点23に作用する斥力ベクトルが釣り合ってしまい、ステップS5にて動作軌道モデルの各質点23に斥力を作用させても動作軌道モデルが変形せず、障害物10を回避する軌道が生成されない状況が考えられる。
【0048】
このような状況の一例を図6に示す。図6では、動作軌道モデルの各質点23に対して、紙面右方向に作用する斥力11aと紙面左方向に作用する斥力11bが釣り合った状態を示している。図6では2次元的に示しているが、3次元の作業空間上で各質点23に作用する斥力ベクトルが釣り合ってしまうと、図6のように動作軌道モデルが障害物10を貫通する状態で維持されることになる。
【0049】
そこで、本実施例においては、上述したように軌道生成ステップS5において、動作軌道モデルの各質点23に作用する斥力ベクトルが釣り合った場合に、任意の質点23を微小移動させる質点移動処理を行う。この質点移動処理により、質点23に作用する斥力の均衡を崩し、ステップS5において正常に動作軌道を生成することが可能である。
【実施例6】
【0050】
本発明の第6の実施例について、図面を用いて以下説明する。図7は実施例5の別の形態の概念図であり、作業空間中に引力源30が設定されている。なお、破線は変形前の動作軌道モデルの配置を示している。
【0051】
図7に示した形態では、ステップS5において作業空間の任意の位置に引力源30を設定する処理を行う。引力源30は、図7に示すように、各質点23に対して引力源30の方向へ働く引力ベクトル31を与える。各質点23に引力ベクトル31を作用させることにより、生成される動作軌道について、引力源30側の軌道を描くように制御することが可能である。例えば、ロボットマニピュレータ本体の設置位置に引力源を設定することにより、動作軌道をロボットマニピュレータに近い側に生成させることができる。あるいは、実際の作業空間に設置されたカメラに対応する位置に引力源30を設定することにより、ロボットマニピュレータを監視し易い動作軌道とすることができる。
【0052】
また、引力源30を設定することにより、第5の実施例で説明したような斥力ベクトルの均衡によって動作軌道が正常に生成されない状況を解消することが可能である。
【実施例7】
【0053】
本発明の第7の実施例について、図面を用いて以下説明する。なお、第1の実施例と同じ構成には同一の符号を付し、重複する説明は省略する。
【0054】
図8は、本実施例による移動体軌道生成方法の主要なステップを記載したフローチャートである。本実施例による移動体軌道生成方法は障害物が移動する作業環境を想定したもので、動作軌道モデルを生成・配置した後の処理が第1の実施例と異なっている。
【0055】
作業空間の定義(ステップS1)から動作軌道モデルの生成・配置(ステップS4)までは第1の実施例と同様の処理を行う。
【0056】
次に、軌道生成(ステップS15)、曲線補間(ステップS16)を行う。これらの処理も、この段階では第1の実施例の軌道生成(ステップS5)、曲線補間(ステップS6)と同様の処理である。
【0057】
次に、作業空間に配置された障害物10を移動する処理を行う(ステップS17)。
【0058】
次に、障害物10の移動に伴う斥力ベクトル場の更新を行う。また、斥力ベクトル場の更新に合わせて動作軌道モデルに作用する斥力ベクトルを更新し、動作軌道モデルを更新する処理を行う(ステップS18)。
【0059】
次に、ステップS18で更新された動作軌道モデルについて、動作軌道モデルを構成する各バネの張力が所定の閾値を超えているかいないかを判定する処理を行う(ステップS19)。
【0060】
ステップS19の判定で、バネ張力が閾値より低かった場合は、移動体の移動を行う(ステップS20)。そして、移動体が目標位置に到達したかどうか判定を行い(ステップS21)、到達していた場合は処理を終了し、到達していない場合はステップS17に戻り、障害物10の移動以降のステップを繰り返し行う。
【0061】
ステップS19の判定で、バネ張力が閾値よりも高かった場合は、動作軌道モデルを再配置する処理を行う(ステップS22)。この動作軌道モデルの再配置は、更新後の斥力ベクトル場の他、移動体の現在位置を考慮する点でステップS14と異なる。ステップS14では移動体の初期位置と目標位置のみを動作軌道モデルの拘束点として配置しているが、ステップS22では移動体の初期位置、目標位置に加えて移動体の現在位置を拘束点として動作軌道モデルを再配置する。この動作軌道モデルの再配置後は、再度軌道生成(ステップS15)、曲線補間(ステップS16)を行い、障害物10の移動以降のステップを繰り返す。
【0062】
このような処理とすることにより、障害物10の移動にともなって動作軌道を逐次更新することが可能である。また、動作軌道モデルを構成するバネの張力を判定することにより、障害物10の移動によって更新された動作軌道モデルが極端な軌道を描く場合等に、動作軌道モデルの再設定を行うことによって、移動体の現在位置を考慮した最適な動作軌道への変更を自動で行うことが可能である。
【0063】
本実施例による動作軌道の変更処理の例を、図面を用いて説明する。図9、図10、図11はそれぞれ、本実施例によるステップS17以降の処理を説明するための概念図であり、図9は障害物10が移動する前の状態、図10は障害物10が移動した後の状態、図11はステップS22を経て動作軌道を変更した例を示している。
【0064】
図9はステップS15で最初に動作軌道を生成した状態を示している。障害物10が複雑な形状をしており、動作軌道モデルがこの障害物10の凹部を通過するように迂回する軌道をとっている。矢印40はこの障害物10の移動方向を示し、破線は移動体の初期位置と目標位置とを直線的に結んだもので、変形前の動作軌道モデルの位置に相当する。
【0065】
図10はステップS17によって障害物10が移動し、ステップS18で斥力ベクトル場と動作軌道とが更新された状態を示している。図9の状態と比較すると、障害物10が矢印40方向へ移動したことにより、動作軌道モデルが障害物10をより大きく迂回するような軌道をとっていることが分かる。
【0066】
図11はステップS19で動作軌道モデルのバネ張力が閾値より高いと判定され、ステップS22の動作軌道モデルの再配置を経てステップS15で動作軌道が変更された状態を示している。なお、図11ではステップS22の時点で移動体が質点23cの位置まで移動していたものとして図示している。よって、移動体の初期位置、目標位置のほか、質点23cの位置も動作軌道モデルの拘束点となっており、動作軌道が変更された結果、図9や図10とは逆側から障害物10を迂回するような軌道をとっている。なお、図11においては、破線はステップS19で判定された際の動作軌道モデルの形状を示している。
【0067】
なお、本実施例によってはステップS19において動作軌道モデルを構成するバネの張力に基づいて動作軌道モデルを再配置する処理の実行を判定するものとしたが、例えば動作軌道モデルがロボットマニピュレータの可動範囲から逸脱した場合に動作軌道モデルを再配置するような判定とすることも可能である。
【実施例8】
【0068】
本発明の第8の実施例について、図面を用いて以下説明する。なお、第1の実施例と同じ構成には同一の符号を付し、重複する説明は省略する。
【0069】
図12は、本実施例による移動体軌道生成方法の主要なステップを記載したフローチャートである。本実施例による移動体軌道生成方法は、移動体であるロボットマニピュレータの手先の移動中におけるロボットマニピュレータと障害物との干渉を想定したもので、動作軌道モデルを生成した後の処理が第1の実施例と異なっている。
【0070】
作業空間の定義(ステップS1)から動作軌道モデルの生成・配置(ステップS4)までは第1の実施例と同様の処理を行う。
【0071】
次に、軌道生成(ステップS25)、曲線補間(ステップS26)を行う。これらの処理も、この段階では第1の実施例の軌道生成(ステップS5)、曲線補間(ステップS6)と同様の処理である。ただし、ロボットマニピュレータの設置位置が移動体の初期位置と異なる場合は、別途にロボットマニピュレータの設置位置を設定する処理を行う。
【0072】
次に、移動体であるロボットマニピュレータの手先軌道から逆運動学を解き、ロボットマニピュレータの関節角度を算出し、ロボットマニピュレータの姿勢を計算する処理を行う(ステップS27)。この計算には、ロボットマニピュレータの設置位置、手先の位置、ロボットマニピュレータの関節数や大きさ、形状等の情報を用いて行う。この際、手先が動作軌道の移動体初期位置から目標位置にかけて移動する間の任意の位置または全位置についてロボットマニピュレータ姿勢計算を行う。
【0073】
次に、ステップS27で計算したロボットマニピュレータの姿勢が障害物10と干渉するかどうか判定する処理を行う(ステップS28)。干渉すると判定された場合、ロボットマニピュレータが干渉する際の手先位置に近い質点23に作用する斥力ベクトル11をより大きな値に再設定する処理を行う(ステップS29)。斥力ベクトル11の再設定後、ステップS25で動作軌道を再生成し、以降の処理を繰り返す。ステップS28でロボットマニピュレータと障害物10が干渉しないと判定された場合は、動作軌道の生成を終了する。
【0074】
以下、本実施例による移動体軌道生成方法の効果について説明する。
【0075】
各実施例で説明した移動体軌道生成方法によれば、障害物10と干渉することがなく最適な移動体の動作軌道を生成することができる。しかし、移動体がロボットマニピュレータの手先である場合では、手先が障害物10を回避する軌道であったとしても、ロボットマニピュレータの腕が障害物10と干渉することが考えられる。そこで、手先が移動する間のロボットマニピュレータ自身の姿勢を逆運動学によって算出し、障害物10とロボットマニピュレータとの干渉を回避する動作軌道を生成することが可能である。
【実施例9】
【0076】
本発明の第9の実施例について、図面を用いて以下説明する。なお、第1の実施例と同じ構成には同一の符号を付し、重複する説明は省略する。
【0077】
図13は、本実施例による移動体軌道生成方法の主要なステップを記載したフローチャートである。本実施例による移動体軌道生成方法は、移動体であるロボットマニピュレータの手先の移動中におけるロボットマニピュレータと障害物との干渉を想定したもので、動作軌道モデルを生成した後の処理が第1の実施例と異なっている。
【0078】
作業空間の定義(ステップS1)から動作軌道モデルの生成・配置(ステップS4)までは第1の実施例と同様の処理を行う。
【0079】
次に、軌道生成(ステップS35)、曲線補間(ステップS36)を行う。これらの処理も、この段階では第1の実施例の軌道生成(ステップS5)、曲線補間(ステップS6)と同様の処理である。
【0080】
次に、剛体リンク機構モデルを生成・配置する処理を行う(ステップS37)。この剛体リンク機構モデルとはロボットマニピュレータをモデル化したもので、実際に使用するロボットマニピュレータと同数の関節を有し、関節と関節とを剛体のリンクで連絡した仮想的なモデルである。この剛体リンク機構モデルについては、動作軌道モデルの質点23と同様に、関節とリンクの双方に斥力ベクトル場の斥力ベクトル11が作用する。
【0081】
次に、ロボットマニピュレータの姿勢を、剛体リンク機構と剛体リンク機構に作用する斥力ベクトル11とを用いて計算する処理を行う(ステップS38)。ロボットマニピュレータの姿勢計算は、第8の実施例のステップS27と同様に、手先が動作軌道の移動体初期位置から目標位置にかけて移動する間の任意の位置または全位置についてロボットマニピュレータ姿勢計算を行う。
【0082】
次に、ステップS38で計算した剛体リンク機構の形状に基づき、手先が移動後位置に移動した際にロボットマニピュレータと障害物10とが干渉するかを判定する処理を行う(ステップS39)。干渉する場合は第8の実施例のステップS29と同様に、斥力ベクトル11を再設定し(ステップS40)、ステップS35で動作軌道を再生成して以降の処理を繰り返す。
【0083】
ステップS39でロボットマニピュレータと障害物10が干渉しないと判定された場合は、動作軌道の生成を終了する。
【0084】
本実施例によれば、第8の実施例で説明した移動体軌道生成方法と同様に、障害物10とロボットマニピュレータとの干渉を回避する動作軌道を生成することが可能である。また、本実施例によれば、剛体リンク機構を採用したことにより、手先位置と剛体リンク機構に作用する斥力ベクトルからロボットマニピュレータの姿勢を計算することが可能である。したがって、ロボットマニピュレータの自由度が冗長で、逆運動学の解が一意に導き出せないような場合にも適用可能である。
【実施例10】
【0085】
本発明の第10の実施例について、図面を用いて以下説明する。なお、第8の実施例と同じ構成には同一の符号を付し、重複する説明は省略する。
【0086】
図14は、本実施例による移動体軌道生成方法の主要なステップを記載したフローチャートである。本実施例による移動体軌道生成方法は、第8の実施例と同様に、移動体であるロボットマニピュレータの手先の移動中におけるロボットマニピュレータと障害物との干渉を想定したもので、障害物10とロボットマニピュレータの干渉を判定した後の処理が第8の実施例と異なっている。
【0087】
作業空間の定義(ステップS1)から、障害物10とロボットマニピュレータの干渉の判定(ステップS28)までは第8の実施例と同様の処理を行う。
【0088】
次に、ステップS28で干渉すると判定された場合に、斥力ベクトル11を再設定するステップS29の前に、斥力ベクトル11の再設定回数の累積が閾値以上かを判定する処理を行う(ステップS50)。
【0089】
ステップS50で、斥力ベクトル11の再設定回数の累積が閾値未満の場合、ステップS29に進み、斥力ベクトル11の再設定を行う。斥力ベクトル11の再設定回数の累積が閾値以上の場合、ロボットマニピュレータの設置位置を任意の位置に変更して再設定する処理を行う(ステップS51)。この際、斥力ベクトル11の再設定回数はリセットする。ロボットマニピュレータの設置位置を変更した後、ステップS4以降の処理を繰り返す。
【0090】
本実施例の効果について、以下説明する。
【0091】
第8の実施例について、斥力ベクトル11を再設定してもロボットマニピュレータと障害物10との干渉が解消されない場合、斥力ベクトル11の再設定を繰り返し行うことになる。この場合、斥力ベクトル11の再設定を繰り返しても干渉が回避されず処理が無限ループに陥る場合や、干渉が解消されたとしても動作軌道が極端に大きな回避軌道をとってしまう場合等が考えられる。
【0092】
本実施例では、斥力ベクトル11の再設定回数に累積閾値を設定して、閾値に達するまでの再設定で干渉が解消されない場合に、ロボットマニピュレータの初期位置変更を行う。これによって、上述したような無限ループや、極端な動作軌道が生成されることを防止することが可能である。
【0093】
本実施例はロボットマニピュレータの設置位置を変更するものであるため、特に施設の設計段階や、ロボットマニピュレータを新たに設置する場合等に特に有効である。なお、本実施例によるステップS50、ステップS51による処理は、第9の実施例の剛体リンク機構モデルを用いた移動体軌道生成方法に対して適用することも可能である。
【0094】
以上本発明の実施例について図を参照して説明してきたが、上記複数の実施例に説明した特徴を任意に組み合わせたところの構成であってもよい。
【0095】
また、各実施例においては移動体がロボットマニピュレータの手先であるものとして説明したが、本発明はこれに限定されない。例えば、水中遊泳ロボット、歩行型ロボット、車輪型ロボット等の、障害物が存在する3次元空間における各種の移動体の軌道生成に関して、本発明を適用することが可能である。また、実施例中でロボットマニピュレータの手先以外の部分と障害物との干渉等に着目したものもあるが、これらもロボットマニピュレータに限定されず、移動体が常に本体等と連結されているような装置等に対して適用することが可能である。例えば、上述した各種のロボットがケーブルで電源等と連結されている装置等に適用することができる。
【0096】
また、各実施例において説明した移動体軌道生成方法は、各処理を行う機能が実装された入力装置、演算装置、出力装置からなるシステムで実行することが可能であり、例えば各処理を行うためのプログラムを組み込んだ一般的なパーソナルコンピュータを用いることができる。
【図面の簡単な説明】
【0097】
【図1】本発明の第1の実施例による移動体動作軌道生成方法のフローチャート。
【図2】障害物に基づいて設定される斥力ベクトル場の概要を示す概念図。
【図3】動作軌道モデルを構成する連成バネマス構造の概念図。
【図4】(a)動作軌道生成処理前の動作軌道モデルの状態を示す概念図。(b)動作軌道生成処理後の動作軌道モデルの状態を示す概念図。
【図5】第2の実施例による動作軌道モデルを構成する連成バネマスダンパ構造の概念図。
【図6】第5の実施例において動作軌道を生成できない状態を示す概念図。
【図7】第6の実施例による移動体動作軌道生成方法の概念図。
【図8】第7の実施例による移動体動作軌道生成方法のフローチャート。
【図9】第7の実施例において障害物の移動前の状態を示す概念図。
【図10】第7の実施例において障害物が移動した状態を示す概念図。
【図11】第8の実施例において障害物の移動に伴い動作軌道を再生成した状態を示す概念図。
【図12】第8の実施例による移動体動作軌道生成方法のフローチャート。
【図13】第9の実施例による移動体動作軌道生成方法のフローチャート。
【図14】第10の実施例による移動体動作軌道生成方法のフローチャート。
【符号の説明】
【0098】
10 障害物
11、11a、11b 斥力ベクトル
20 引っ張りバネ
21 ヒンジバネ
22 バネマス
23、23a、23b、23c 質点
24 ダンパ
30 引力源
31 引力ベクトル

【特許請求の範囲】
【請求項1】
移動体が移動する空間を設定する空間設定ステップと、
前記空間中に前記移動体が動作を開始する初期位置を設定する初期位置設定ステップと、
前記空間中に前記移動体の目標位置を設定する目標位置設定ステップと、
前記空間中に障害物の位置を設定する障害物設定ステップと、
前記初期位置と前記目標位置とを結び、前記初期位置と前記目標位置の間に質点を有し、前記初期位置と前記目標位置に両端を固定された動作軌道モデルを設定する動作軌道モデル設定ステップと、
前記空間に前記障害物を発生源とする斥力ベクトルからなる斥力ベクトル場を設定する斥力ベクトル場設定ステップと、
前記斥力ベクトル場の前記斥力ベクトルを前記質点に作用させ、変形した前記動作軌道モデルを前記移動体の動作軌道とする動作軌道生成ステップと、
を備えることを特徴とする移動体軌道生成方法。
【請求項2】
前記斥力ベクトル場は、前記障害物との距離が近いほど前記斥力ベクトルが大きくなるよう設定されたことを特徴とする請求項1記載の移動体軌道生成方法。
【請求項3】
前記斥力ベクトル場設定ステップで、前記障害物の形状に基づいて前記斥力ベクトル場に設定される前記斥力ベクトルに重み付けを行うことを特徴とする請求項1乃至請求項2の何れか1項記載の移動体軌道生成方法。
【請求項4】
前記動作軌道モデルは、長さ方向に伸縮する引っ張りバネと、この引っ張りバネに連結され前記引っ張りバネの方向を変化させるヒンジバネと、を備えるバネマス構造と前記質点とを組み合わせた連成バネマス構造であることを特徴とする請求項1乃至請求項3の何れか1項記載の移動体軌道生成方法。
【請求項5】
前記連成バネマス構造は、連結された複数の前記バネマス構造と、前記バネマス構造の各々の連結部に設定された質点と、から構成されることを特徴とする請求項4記載の移動体軌道生成方法。
【請求項6】
前記引っ張りバネ、前記ヒンジバネのうち少なくとも何れかのバネ定数を設定するバネ定数設定ステップを備えることを特徴とする請求項4または請求項5に記載の移動体軌道生成方法。
【請求項7】
前記動作軌道モデルは、前記バネマス構造と前記質点の間に設定されたダンパを備えることを特徴とする請求項4乃至請求項6の何れか1項記載の移動体軌道生成方法。
【請求項8】
前記ダンパに印加される応力の増加に応じて前記ダンパの減衰係数を増加させることを特徴とする請求項7記載の移動体軌道生成方法。
【請求項9】
前記質点に、前記空間上での前記質点の移動に対する抵抗力として作用する粘性摩擦の粘性摩擦係数を設定する粘性摩擦係数設定ステップと、を備えることを特徴とする請求項1乃至請求項8の何れか1項記載の移動体軌道生成方法。
【請求項10】
前記質点に印加される応力の増加に応じて前記粘性摩擦係数を増加させることを特徴とする請求項9記載の移動体軌道生成方法。
【請求項11】
前記動作軌道生成ステップで変形した前記動作軌道モデルの前記質点の各々の間隔に応じて前記移動体の動作速度を設定することを特徴とすることを特徴とする請求項1乃至請求項10の何れか1項記載の移動体軌道生成方法。
【請求項12】
前記障害物設定ステップで設定される前記障害物が、動的に位置が変動する移動障害物であり、
前記動作軌道生成ステップの後に前記移動障害物が移動する処理を行い、前記移動障害物の移動後に前記斥力ベクトル場および前記動作軌道を更新する更新ステップを備えることを特徴とする請求項1乃至請求項11の何れか1項記載の移動体軌道生成方法。
【請求項13】
前記動作軌道モデルの更新後に、前記動作軌道モデルの張力と所定の閾値とを比較する張力判定ステップと、
前記張力判定ステップで前記張力が前記閾値より大きい場合に、前記移動体の前記初期位置、前記目標位置、現在位置を拘束点として動作軌道を再設定する動作軌道変更ステップと、を備えることを特徴とする請求項12記載の移動体軌道生成方法。
【請求項14】
前記動作軌道生成ステップで前記質点への前記斥力ベクトルの作用によって前記動作軌道モデルが前記障害物外に設定されない場合に前記質点を一時的に移動させる質点移動処理を行うことを特徴とする請求項1乃至請求項13の何れか1項記載の移動体軌道生成方法。
【請求項15】
前記移動体がロボットマニピュレータの手先であり、前記動作軌道モデルの各質点について前記ロボットマニピュレータの可動範囲を拘束条件とする拘束条件付与ステップを備えることを特徴とする請求項1乃至請求項14の何れか1項記載の移動体軌道生成方法。
【請求項16】
前記移動体がロボットマニピュレータの手先であり、前記動作軌道生成ステップで生成された前記動作軌道から逆運動学を解いて前記ロボットマニピュレータの姿勢を算出するマニピュレータ姿勢算出ステップを備えることを特徴とする請求項1乃至請求項15の何れか1項記載の移動体軌道生成方法。
【請求項17】
前記移動体がロボットマニピュレータの手先であり、前記ロボットマニピュレータと同数の関節と、前記関節同士を剛体のリンクで連絡した剛体リンク機構により前記ロボットマニピュレータをモデル化した剛体リンク機構モデルを生成する剛体リンク機構モデル生成ステップと、
前記剛体リンク機構モデルに前記斥力ベクトルを作用させて前記ロボットマニピュレータの姿勢を算出するマニピュレータ姿勢算出ステップとを備えることを特徴とする請求項1乃至請求項15の何れか1項記載の移動体軌道生成方法。
【請求項18】
前記マニピュレータ姿勢算出ステップで算出した前記ロボットマニピュレータの姿勢から前記ロボットマニピュレータと前記障害物が干渉するか判定する干渉判定ステップと、
この干渉判定ステップで干渉すると判定された場合に、前記ロボットマニピュレータと前記障害物とが干渉する姿勢の手先位置近傍の前記質点に作用する前記斥力ベクトルを増加させる斥力ベクトル再設定ステップと、
この斥力ベクトル再設定ステップの後に動作軌道を再生成する動作軌道再生成ステップと、を備えることを特徴とする請求項16または請求項17に記載の移動体軌道生成方法。
【請求項19】
前記斥力ベクトル再設定ステップによる斥力ベクトルの再設定回数の累積と所定の閾値とを比較する再設定回数判定ステップと、
この再設定回数判定ステップで前記再設定回数の累積が前記閾値より多い場合に前記移動体の初期位置を変更する移動体初期位置再設定ステップと、を備えることを特徴とする請求項18記載の移動体軌道生成方法。
【請求項20】
前記空間中に前記質点に対して引力ベクトルを作用させる引力源を設定する引力源生成ステップを備えることを特徴とする請求項1乃至請求項19のうち何れか1項記載の移動体軌道生成方法。
【請求項21】
前記動作軌道生成ステップで生成された動作軌道について、前記質点間毎に前記移動体の移動速度を決定する移動体移動速度設定ステップを備え、前記質点間の間隔が長いほど前記移動速度が速く設定されたことを特徴とする請求項1乃至請求項20のうち何れか1項記載の移動体動作軌道生成方法。
【請求項22】
移動体が移動する空間を設定する空間設定手段と、
前記空間中に前記移動体が動作を開始する初期位置を設定する初期位置設定手段と、
前記空間中に前記移動体の目標位置を設定する目標位置設定手段と、
前記空間中に障害物の位置を設定する障害物設定手段と、
前記初期位置と前記目標位置とを結び、前記初期位置と前記目標位置の間に質点を有し、前記初期位置と前記目標位置に両端を固定された動作軌道モデルを設定する動作軌道モデル設定手段と、
前記空間に前記障害物を発生源とする斥力ベクトルからなる斥力ベクトル場を設定する斥力ベクトル場設定手段と、
前記斥力ベクトル場の前記斥力ベクトルを前記質点に作用させ、変形した前記動作軌道モデルを前記移動体の動作軌道とする動作軌道生成手段と、
を備えることを特徴とする移動体軌道生成方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−152684(P2010−152684A)
【公開日】平成22年7月8日(2010.7.8)
【国際特許分類】
【出願番号】特願2008−330660(P2008−330660)
【出願日】平成20年12月25日(2008.12.25)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】