説明

移動体姿勢生成方法および移動体姿勢生成装置

【課題】移動体の一部分がある動作軌道に従って動作する際、従来は移動体全体の姿勢を逆運動学によって生成していたが、計算が複雑であり、また解が多数存在する場合に解を自動的に選択することができない、という問題があった。
【解決手段】作業空間に、空間中の障害物に基づいて設定される斥力ベクトル場を定義し、移動体全体を3次元形状モデル化して表面に代表点を設定し、代表点に斥力ベクトルを作用させることで移動体全体の姿勢を自動生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、障害物の存在する環境で移動する物体の最適な軌道を生成する移動体軌道生成方法および移動体軌道生成装置に係る。
【背景技術】
【0002】
従来のロボットの動作設計手法には作業現場にて実際にロボットを動作させて教示するオンラインティーチング若しくはロボットを動作させる前にコンピュータ等により教示データを作成するオフラインティーチングがある。オンラインティーチングは組立作業や溶接作業などあらかじめ決められた動作を行う産業用ロボットに広く用いられており、実際の作業環境に合わせた動作の設計が可能であるという利点がある。その一方で、ティーチングに多くの時間がかかると共に、動作の設計に熟練を要するといった欠点がある。オフラインティーチングは干渉を回避するための軌道の生成を、シミュレーション等を利用して確認しながら試行錯誤で行う必要があり、設計と検証に多大な労力が必要となる。
【0003】
これに対して、ロボットの手先経路の動作設計を自動化する試みとしてはポテンシャル場を用いた経路探索手法(例えば、特許文献1参照。)がある。この手法では作業空間内に目標位置が最小、現在位置が最大となるような仮想的なポテンシャルを設定する。さらに、障害物にも大きなポテンシャルを持たせることで、ポテンシャルが低くなる方向へ軌道を生成することで、障害物を回避しながら目標位置までの経路を生成できる。
【0004】
さらに、生成した手先経路に沿うようにロボットを動作させるためには、ロボットのリンクと関節から構成される全体姿勢を経路上の手先位置・姿勢情報から決定する必要がある。一般的には、手先の位置・姿勢を入力条件とし、それを実現するための各関節角度を逆算的に算出する逆運動学と呼ばれる計算によって全体姿勢を決定している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−280710号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述したポテンシャル場を用いた経路探索手法では、ポテンシャル場にローカルミニマムが生じて、経路探索時にローカルミニマムに陥ると軌道を生成できないという問題があった。ローカルミニマムとは、ポテンシャルが局所的に極小となる領域を指す。経路探索時にローカルミニマムの領域に入ると、周囲のポテンシャルがローカルミニマムの領域より高く、経路探索を続行できずに軌道生成不能となるのである。
【0007】
複雑形状の障害物がある環境では、ローカルミニマムの存在しないポテンシャル場を設定することは非常に困難である。また、ローカルミニマムを回避するために迂回した経路を生成するとなると、軌道が長大になり、不要な変曲点を含む軌道となるなど、最適な軌道とならず、軌道の最適化を図る必要等があった。
【0008】
また、生成した経路を実現するロボットの全体姿勢を逆運動学により求める手法では、経路上の手先の位置・姿勢を満足する全体姿勢が障害物との干渉等により物理的に存在しない場合に解を求めることができない。さらに、関節数が非常に多い構造のロボットでは、逆運動学から求まる関節角度の組合せが大量に存在するため、解を一意に決めることが困難である。
【0009】
上述した課題に鑑み、本発明の目的は、ロボットの手先の目標軌道を人が試行錯誤して設計することなく自動生成でき、かつ、目標軌道に沿って移動する場合のロボット全体の姿勢も同様に自動生成できる移動体姿勢生成方法および移動体姿勢生成装置を提供することにある。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明による移動体姿勢生成方法は、移動体の一部分の動作軌道に基づいて移動体全体の姿勢を生成する移動体姿勢生成方法であって、移動体が移動する空間に存在する障害物を発生源とする斥力ベクトルからなる斥力ベクトル場を設定する斥力ベクトル場設定ステップと、移動体の3次元形状モデルに斥力および引力が作用する代表点を設定する移動体形状モデル設定ステップと、代表点に作用する斥力から移動体の各関節軸に働く力とモーメントを算出する力・モーメント算出ステップと、前記動作軌道上に参照点を設定し、参照点に向けた引力を前記移動体に作用させる引力ベクトル設定ステップと、移動体の3次元形状モデルに作用する力とモーメントから移動体の各関節軸に作用するトルクを算出し、トルクに基づいて各関節軸の角度を変化させる姿勢生成ステップと、を備えることを特徴とする。
【0011】
また、本発明による移動体姿勢生成方法は、移動体の一部分の動作軌道に基づいて移動体全体の姿勢を生成する移動体姿勢生成方法であって、移動体が移動する空間を設定する空間設定ステップと、前記空間中に前記移動体の一部分が動作を開始する初期位置を設定する初期位置設定ステップと、前記空間中に前記移動体の一部分の目標位置を設定する目標位置設定ステップと、前記空間に存在する障害物を発生源とする斥力ベクトルからなる斥力ベクトル場を設定する斥力ベクトル場設定ステップと、前記初期位置と前記目標位置とを結び、前記初期位置と前記目標位置の間に前記斥力ベクトルが作用する作用点を有し、前記初期位置と前記目標位置に両端を固定された動作軌道モデルを設定する動作軌道モデル設定ステップと、前記斥力ベクトル場の前記斥力ベクトルを前記作用点に作用させ、変形した前記動作軌道モデルを前記移動体の動作軌道とする動作軌道生成ステップと、移動体の3次元形状モデルに斥力および引力が作用する代表点を設定する移動体形状モデル設定ステップと、代表点に作用する斥力から移動体の各関節軸に働く力とモーメントを算出する力・モーメント算出ステップと、生成した動作軌道上に参照点を設定し、参照点に向けた引力を移動体に作用させる引力ベクトル設定ステップと、移動体の3次元形状モデルに作用する力とモーメントから移動体の各関節軸に作用するトルクを算出し、トルクに基づいて各関節軸の角度を変化させる姿勢生成ステップと、を備えることを特徴とする。
【0012】
また、本発明による移動体姿勢生成装置は移動体の一部分の動作軌道に基づいて移動体全体の姿勢を生成する移動体姿勢生成装置であって、移動体が移動する空間に存在する障害物を発生源とする斥力ベクトルからなる斥力ベクトル場を設定する斥力ベクトル場設定手段と、移動体の3次元形状モデルに斥力および引力が作用する代表点を設定する移動体形状モデル設定手段と、代表点に作用する斥力から移動体の各関節軸に働く力とモーメントを算出する力・モーメント算出手段と、前記動作軌道上に参照点を設定し、参照点に向けた引力を前記移動体に作用させる引力ベクトル設定手段と、移動体の3次元形状モデルに作用する力とモーメントから移動体の各関節軸に作用するトルクを算出し、トルクに基づいて各関節軸の角度を変化させる姿勢生成手段と、を備えることを特徴とする。
【0013】
また、本発明による移動体姿勢生成装置は、移動体の一部分の動作軌道に基づいて移動体全体の姿勢を生成する移動体姿勢生成装置であって、移動体が移動する空間を設定する空間設定手段と、前記空間中に前記移動体の一部分が動作を開始する初期位置を設定する初期位置設定手段と、前記空間中に前記移動体の一部分の目標位置を設定する目標位置設定手段と、前記空間に存在する障害物を発生源とする斥力ベクトルからなる斥力ベクトル場を設定する斥力ベクトル場設定手段と、前記初期位置と前記目標位置とを結び、前記初期位置と前記目標位置の間に前記斥力ベクトルが作用する作用点を有し、前記初期位置と前記目標位置に両端を固定された動作軌道モデルを設定する動作軌道モデル設定手段と前記斥力ベクトル場の前記斥力ベクトルを前記作用点に作用させ、変形した前記動作軌道モデルを前記移動体の動作軌道とする動作軌道生成手段と、移動体の3次元形状モデルに斥力および引力が作用する点を設定する移動体形状モデル設定手段と、移動体に作用する斥力から移動体の各関節軸に働く力とモーメントを算出する力・モーメント算出手段と、生成した動作軌道上に参照点を設定し、参照点に向けた引力を移動体に作用させる引力ベクトル設定手段と、移動体の3次元形状モデルに作用する力とモーメントから移動体の各関節軸に作用するトルクを算出し、トルクに基づいて各関節軸の角度を変化させる姿勢生成手段と、を備えることを特徴とする。
【発明の効果】
【0014】
本発明の移動体姿勢生成方法および移動体姿勢生成装置によれば、従来の逆運動学による姿勢生成では物理的に姿勢が求まらないような場合においても、近傍での解を自動的に求めることができ、姿勢を生成することが可能である。また、移動体の自由度が多く移動体の姿勢が大量に存在する場合においても、姿勢を一意に生成することができる。
【図面の簡単な説明】
【0015】
【図1】第1の実施例による移動体姿勢生成のフローチャート。
【図2】障害物に基づいて設定される斥力ベクトル場の概要を示す概念図。
【図3】動作軌道モデルを構成する連成バネマス構造の概念図。
【図4】(a)動作軌道生成処理前の動作軌道モデルの状態を示す概念図。(b)動作軌道生成処理後の動作軌道モデルの状態を示す概念図。
【図5】ロボットマニピュレータを3次元形状モデル化し、斥力ベクトルが作用する代表点を設定した状態を示す概念図。
【図6】3次元形状モデル化されたロボットマニピュレータの手先に、動作軌道上に設定された参照点からの引力ベクトルを作用させる概念を示す図。
【図7】動作軌道に対して鉛直で参照点を含む平面を設定し、移動体の一部分の動作軌道を参照点近傍に収束させる処理の概念を示す図。
【図8】第2の実施例による移動体姿勢生成のフローチャート。
【図9】第2の実施例において障害物の移動前の状態を示す概念図。
【図10】第2の実施例において障害物が移動した状態を示す概念図。
【図11】第2の実施例において障害物の移動に伴い動作軌道を再生成した状態を示す概念図。
【発明を実施するための形態】
【0016】
以下本発明の実施例について図面を参照しながら説明する。
【実施例1】
【0017】
本発明の第1の実施例について、図面を用いて以下説明する。図1は、本実施例による移動体姿勢生成方法の主要なステップを記載したフローチャートである。本実施例の移動体姿勢生成方法において行われる処理について、図1を用いて説明する。なお、各実施例においては、移動体はロボットマニピュレータ、移動体の一部分はロボットマニピュレータの手先であるものとして以下説明する。
【0018】
一般的にロボットマニピュレータは関節とリンク機構で構成される。関節には回転関節や直動関節の他、球体関節などさまざまな種類がある。関節の動作はモータ等で能動的に動作する場合と、動力源を持たずに受動的に動作する場合がある。各関節間はリンク機構により結びつけられ、関節とリンク機構が交互に直列されたシリアルリンク型と関節とリンクの組合せが並列となったパラレルリンク型などがある。
【0019】
以降では、回転関節を有するシリアルリンク型のロボットマニピュレータを例に説明する。
【0020】
まず、ロボットマニピュレータが作業を行う作業空間を定義する処理を行う(ステップS1)。作業空間とは、ロボットマニピュレータの初期位置や作業位置、および初期位置と作業位置の中間を含む実際の空間の情報に基づいて構築される空間である。この作業空間は、作業を行う施設等の設計情報、例えば3次元CADのデータを用いて設定する、またはカメラの映像や各種センサによる計測等で収集したデータを用いて設定する、あるいは手動で設定する、といったことが考えられる。
【0021】
具体的には、例えばロボットマニュピレータの操作装置が関連付けられ、各種3次元形状モデルを作成、記憶、修正可能な3次元CADシステムを構成する演算装置及び入力装置によって行われる。すなわち、上述の入力装置に施設等の設計情報や収集したデータを入力する、あるいは任意に施設情報等を入力して、上述した作業空間に対応する3次元形状モデルを設定することによって行われる。
【0022】
次に、作業空間上に斥力ベクトル場を生成する処理を行う(ステップS2)。斥力ベクトル場の生成は、作業空間上に3次元の格子を設定し、各格子点に斥力ベクトルを定義することで行う。この斥力ベクトルはステップS1で定義された作業空間内の障害物を発生源として設定する。各格子点に設定される斥力ベクトルの方向は障害物表面の法線方向、すなわち障害物表面に垂直な方向とし、斥力ベクトルの大きさは障害物に近いほど大きくなるように設定する。作業空間上に複数の障害物が存在する場合、例えば各格子点に最も近い障害物から発生する斥力ベクトルを、最終的にその格子点の斥力ベクトルとして設定する。
【0023】
ステップS1で定義された作業空間と、ステップS2で生成された斥力ベクトル場の例を図2に示す。図2は作業空間に設定された障害物と斥力ベクトル場の概要を示す概念図である。なお、斥力ベクトル場については、斥力ベクトルのおおよその方向のみ示しており、作業空間上に設定される3次元格子は省略している。作業空間中に円筒形状の障害物10が設定されており、この障害物10から遠ざかる方向の斥力ベクトル11が設定されている。
【0024】
斥力ベクトル場を設定する際、障害物10が複雑な形状で、突起や極端な狭隘部を有する等のロボットマニピュレータの手先が通過しにくい形状や配置を取る場合は、該当箇所付近の斥力ベクトル11を大きくする等の重み付けを行ってもよい。
【0025】
次に、ロボットマニピュレータの手先の初期位置と目標位置を結ぶように、動作軌道モデルを作業空間上に生成・配置する処理を行う(ステップS3)。この動作軌道モデルの構造の一例を、図3を用いて説明する。動作軌道モデルは、引っ張りバネ20とヒンジバネ21を組み合わせた連結バネ22を複数結合し、連結バネ22同士の結合部には質点23が設定された連成バネマス構造を有する。また、動作軌道モデルの両端に設定される質点23a、質点23bは、動作軌道モデルの配置の際、質点23aは手先の初期位置に、質点23bは手先の目標位置に固定される。なお、図3では連結バネ22を2つ結合したものとして図示しているが、連結バネ22の数は任意に設定することができる。
【0026】
なお、図3においては、手先の初期位置と目標位置とを直線的に結ぶように動作軌道モデルを配置しているが、直線的に結ぶ必要はなく、空間中で初期位置と目標位置とを任意に結ぶように配置されていればよい。
【0027】
次に、ステップS3で生成した動作軌道モデルにステップS2で設定した斥力ベクトル11を作用させ、動作軌道を生成する処理を行う(ステップS4)。動作軌道モデルに設定された各質点23について、各質点23周辺に設定された複数の斥力ベクトル11の大きさ及び方向を空間補間した斥力ベクトルを作用させる。すると、動作軌道モデルを構成する引っ張りバネ20、ヒンジバネ21が変形する。この際、ヒンジバネ21は隣接する質点23間を直線形状に保つ方向に力を作用させ、ロボットマニピュレータの動作軌道31が必要以上に湾曲することを防ぐ。
【0028】
最終的には、各質点23に作用する斥力ベクトル11と引っ張りバネ20、ヒンジバネ21の張力がつりあう形状に動作軌道モデルが変形する。この変形した動作軌道モデルの描く軌道がロボットマニピュレータの動作軌道となる。
【0029】
ステップS4における動作軌道の生成の例を、図4を用いて説明する。図4(a)は動作軌道モデルに斥力ベクトル11を作用させていない状態、図4(b)は動作軌道モデルに斥力ベクトル11を作用させて動作軌道を生成した状態を示している。なお、図4においては簡略的に2次元図で表し、各質点23を結ぶ連結バネ22も簡略化して図示している。
【0030】
ステップS3において動作軌道モデルを配置するが、初期状態は図4(a)で示すように障害物10を貫通してもよい。なお、上述したように、質点23aは手先の初期位置に、質点23bは手先の目標位置に固定されている。この動作軌道モデルに斥力ベクトル11を作用させると、図4(b)で示す形状に変形し、障害物10を紙面右側から迂回する動作軌道が生成される。質点23a、質点23bは位置が固定されているため移動しない。
【0031】
次に、ステップS4で生成した動作軌道について、動作軌道モデルの各質点23間を曲線補間し、動作軌道を滑らかにする処理を行う(ステップS5)。
【0032】
ステップS6における移動体形状モデル設定の例を、図5を用いて説明する。図5ではロボットマニピュレータの3次元形状モデル25を上述した作業空間に設定し、設定した3次元形状モデル25上に斥力ベクトル場から受ける斥力を作用させる代表点26を複数点定義している。この代表点は、構造物との干渉を避けるために、ロボットマニピュレータの外形や内部に設定する。代表点26の設定箇所は任意だが、例えば図5のような形状のロボットマニピュレータの場合、モデルの構成要素である直方体や円柱部分の外形表面上に均等に設定する(煩雑になるため、図5では代表点26を一部省略して図示している。)。また、移動体の一部分である手先が作業ツールを持っている場合等、障害物との干渉が懸念される程度の大きさがある場合には手先にも代表点26を設定する。
【0033】
次に、ステップS6にて定義した代表点26にステップS2で設定した斥力ベクトル11の大きさと方向の斥力を作用させ、マニピュレータの各リンクごとに斥力の合計と各リンクに付随した関節軸に作用するモーメントの合計を算出する(ステップS7)。
【0034】
次に、図6で示すように、ステップS4にて生成した初期位置27aから目標位置27bまでの動作軌道上に複数の参照点27を設定し、ある一つの参照点27に対してロボットマニピュレータの手先の現在位置と参照点27の位置偏差に基づく参照点27方向の引力ベクトル31をロボットマニピュレータの手先に作用させる(ステップS8)。このとき、引力ベクトル31の大きさは、例えば位置偏差量に比例する成分、位置偏差を積分した成分、位置偏差の時間変動を微分した成分の何れか、またはこれらの組合せから算出して設定する。
【0035】
次に、ステップS7とステップS8にて算出したロボットマニピュレータに作用する斥力とモーメントおよび引力を、各リンクに設定された代表点26の数で除算して、関節軸を基準位置としてそれぞれの平均を各リンクごとに算出する。
【0036】
さらに現在のロボットマニピュレータの関節角速度をデカルト座標での手先の速度へと変換するヤコビ行列 を用いることで、手先と各リンクごとに算出した斥力(または斥力と引力の和)の平均(Fx,Fy,Fz)とモーメントの平均(Mx,My,Mz)から各関節軸に働くトルク を式(1)により求める。
【数1】

【0037】
nは関節軸のベース側から数えた番号
例えば、ある関節軸に働く から求まるトルクτはその関節軸よりもロボットマニピュレータのベース側(手先から遠い側)にある関節軸のトルクτであり、手先に働くFの場合はすべての関節軸に働くトルクτとなる。最終的に算出したトルクτを各関節軸ごとに合算する。
【0038】
最後に、算出したトルクの大きさに基づいて関節軸角度を変化させることでロボットマニピュレータの全体に作用する斥力と手先の引力がつりあうまでロボットマニピュレータの全体姿勢を変化させる(ステップS9)。
【0039】
ヤコビ行列を用いて各関節軸に作用するトルクを算出する利点は、順運動学から算出することができるため計算が容易であることにある。一般的にロボットマニピュレータの手先の位置・姿勢からロボットマニピュレータの姿勢つまり各関節角度を算出するには逆運動学を解く必要があるが、逆運動学による解法は順運動学に比べて計算負荷が大きい。
【0040】
以上のステップS6からステップS9までの一連の処理により、ステップS5までで得られた動作軌道と現在のロボットマニピュレータの姿勢から、動作軌道上に定義した参照点27へロボットマニピュレータの手先を移動させた時のロボットマニピュレータの全体姿勢が自動で生成される。
【0041】
次に、動作軌道上の参照点を別の参照点へと更新し(ステップS10)、ステップS7からステップS9を繰り返すことで初期位置27aから目標位置27bまでの動作軌道上に設定したすべての参照点27におけるロボットマニピュレータの全体姿勢が生成される(ステップS11)。さらに、参照点間の姿勢を補間などにより算出することで初期位置27aから目標位置27bまでの滑らかな動作姿勢を生成することができる(ステップS12)。
【0042】
以上の一連の処理により、構造物との干渉を回避したロボットマニピュレータの手先の動作軌道およびロボットマニピュレータの動作姿勢が生成される。このような動作生成によれば、ポテンシャル法におけるローカルミニマムの問題が生じることなく、移動体の最適な動作軌道および動作姿勢を生成することが可能である。
【0043】
また、ステップS1について説明したとおり移動する障害物を設定する場合は、リアルタイムに斥力ベクトル場と動作軌道モデルの形状を更新する処理を行うことも可能である。また、障害物の移動範囲が決まっている場合は、障害物の移動範囲全体を一つの障害物として設定することも可能である。
【0044】
また、構造物の設計情報や、実際の作業環境の情報を収集して設定することができるため、設計・計画段階の施設、建設済みの施設の何れについても適用することが可能である。
【0045】
また、動作軌道モデルを構成する引っ張りバネ20、ヒンジバネ21のバネ定数は任意に設定することができる。斥力ベクトル場が同一の場合、バネ定数が大きいほど動作軌道モデルは変形し難く、逆にバネ定数が小さいほど動作軌道モデルは変形し易くなる。したがって、例えば、手先形状が大きいマニピュレータの場合はバネ定数を小さくすることにより、バネ定数が固定の場合の動作軌道よりも障害物10から離れた動作軌道が生成される。逆に、手先が小さい場合はバネ定数を大きくすることでバネ定数が固定の場合の動作軌道よりも障害物10に近い動作軌道が生成される。換言すれば、バネ定数を任意に設定することにより、障害物10に対する移動体の一部分の回避軌道の大きさを任意に変更することが可能である。
【0046】
つまり、上述の方法により手先の大きさに合わせてロボットマニピュレータの手先と障害物10の干渉回避距離を確保した動作軌道を生成することができる。また、動作軌道モデルを構成する各バネのバネ定数は同一でなくともよい。例えば、障害物10が少ない箇所におけるバネ定数を大きくし、障害物10が多く狭隘な箇所におけるバネ定数を小さくするなど、作業空間内1の障害物10の形状に合わせて部分的にバネ定数を変えることで、バネ定数が大きい箇所では障害物10の形状に依存することなく、より直線的な軌道を得ることができ、バネ定数が小さい箇所では障害物10の形状に沿った干渉回避軌道を得ることができる。
【0047】
また、動作軌道を生成する際に、質点23の各々についてロボットマニピュレータの可動範囲を拘束条件としてもよい。すなわち、質点23の各々は斥力ベクトル11を作用させることで作業空間中を移動するが、この際にロボットマニピュレータの可動範囲外には移動できないよう設定することで、確実にロボットマニピュレータの可動範囲内に動作軌道を生成することが可能である。
【0048】
また、本実施例においては動作軌道モデルに関して、間隔を空けて質点23を離散的に配置したものとして説明したが、連続的に質点23を配置したものとして、つまり動作軌道モデルが全体として質量を有するものとすることも可能である。
【0049】
また、図7で示すように、動作軌道上の参照点27cを含みかつ動作軌道に鉛直な平面29を定義し、ロボットマニピュレータの手先の現在位置28と鉛直平面29との位置偏差(例えば、現在位置28と鉛直平面29の最短距離を用いる)に応じた引力ベクトル31を設定し、手先にこの引力を作用させることで、最終的なロボットマニピュレータの手先位置を、参照点27cを含む鉛直平面内に収束させることもできる。この手法を用いることによりロボットマニピュレータの手先の位置を参照点27cに収束させることができるロボットマニピュレータの全体姿勢が物理的に存在しない場合に、参照点27cの近傍におけるロボットマニピュレータの姿勢を生成することができる。
【0050】
また、各関節軸に働くトルクに基づいて関節軸角度の変化量を算出する際に、関節ごとに重み係数を設定することで、各関節ごとの動き易さを設定することができる。
【0051】
さらに、この重み係数が可変であることにより、ロボットマニピュレータの姿勢が特異姿勢に近づいた場合は、特異姿勢に関係する関節軸の角度の変化のし易さを変動させることで特異姿勢を回避することができる。
【0052】
また、ステップS8の引力ベクトル設定ステップにおいて、ロボットマニピュレータの設置点に参照点27や参照点27を含む鉛直平面内に向けた引力を作用させることでロボットマニピュレータ全体を移動させることもできる。
【0053】
これはロボットマニピュレータに限らず適用でき、歩行型ロボットなどの複数の関節を持つ移動体について、干渉を回避する姿勢を自動で生成しつつ、目標の位置まで移動させることができる。
【実施例2】
【0054】
本発明の第2の実施例について、図面を用いて以下説明する。なお、第1の実施例と同じ構成には同一の符号を付し、重複する説明は省略する。
【0055】
図8は、第1の実施例のステップS1からステップS12までの移動体姿勢生成のステップを記載したフローチャートである。本実施例による移動体姿勢生成方法は障害物が移動する作業環境を想定したもので、移動体姿勢を生成した後の処理が第1の実施例と異なっている。
【0056】
まず、作業空間の定義(ステップS1)から動作軌道モデルの生成・配置(ステップS12)まで第1の実施例と同様の処理を行う。
【0057】
次に、作業空間に配置された障害物10を移動する処理を行う(ステップS21)。
【0058】
次に、障害物10の移動に伴う斥力ベクトル場の更新を行う。また、斥力ベクトル場の更新に合わせて動作軌道モデルに作用する斥力ベクトルを更新し、動作軌道モデルを更新する処理を行う。また、更新された斥力ベクトル場および動作軌道モデルを用い、ロボットマニピュレータの姿勢を更新する処理を行う(ステップS22)。
【0059】
次に、ステップS22で更新された動作軌道モデルについて、動作軌道モデルを構成する各バネの張力が所定の閾値を超えているかいないかを判定する処理を行う(ステップS23)。
【0060】
ステップS23の判定で、バネ張力が閾値より低かった場合は、移動体の移動を行う(ステップS24)。そして、移動体の一部分(手先)が目標位置に到達したかどうか判定を行い(ステップS25)、到達していた場合は処理を終了し、到達していない場合はステップS21に戻り、障害物10の移動以降のステップを繰り返し行う。
【0061】
ステップS23の判定で、バネ張力が閾値よりも高かった場合は、動作軌道モデルを再配置する処理を行う(ステップS26)。この動作軌道モデルの再配置は、更新後の斥力ベクトル場の他、移動体の一部分の現在位置を考慮する点でステップS4と異なる。ステップS4では手先の初期位置と目標位置のみを動作軌道モデルの拘束点として配置しているが、ステップS22では手先の初期位置、目標位置に加えて手先の現在位置を拘束点として動作軌道モデルを再配置する。この動作軌道モデルの再配置後、再度ステップS4以降のステップを繰り返す。
【0062】
このような処理とすることにより、障害物10の移動にともなって動作軌道およびロボットマニピュレータの姿勢を逐次更新することが可能である。また、動作軌道モデルを構成するバネの張力を判定することにより、障害物10の移動によって更新された動作軌道モデルが極端な軌道を描く場合等に、動作軌道モデルの再設定を行うことによって、移動体の現在位置を考慮した最適な動作軌道およびロボットマニピュレータの姿勢への変更を自動で行うことが可能である。
【0063】
本実施例による動作軌道の変更処理の例を、図面を用いて説明する。なお、ロボットマニピュレータの姿勢については図示を省略する。図9、図10、図11はそれぞれ、本実施例によるステップS17以降の処理を説明するための概念図であり、図9は障害物10が移動する前の状態、図10は障害物10が移動した後の状態、図11はステップS26を経て動作軌道を変更した例を示している。
【0064】
図9はステップS5で最初に動作軌道を生成した状態を示している。障害物10が複雑な形状をしており、動作軌道モデルがこの障害物10の凹部を通過するように迂回する軌道をとっている。矢印40はこの障害物10の移動方向を示し、破線は移動体の一部分(手先)の初期位置と目標位置とを直線的に結んだもので、変形前の動作軌道モデルの位置に相当する。
【0065】
図10はステップS21によって障害物10が移動し、ステップS22で斥力ベクトル場と動作軌道とが更新された状態を示している。障害物10が矢印40方向へ移動したことにより、動作軌道モデルが障害物10をより大きく迂回するような軌道をとっていることが分かる。
【0066】
図11はステップS23で動作軌道モデルのバネ張力が閾値より高いと判定され、ステップS26の動作軌道モデルの再配置を経てステップS5で動作軌道が変更された状態を示している。なお、図11ではステップS26の時点で手先が質点23cの位置まで移動していたものとして図示している。よって、手先の初期位置、目標位置のほか、質点23cの位置も動作軌道モデルの拘束点となっており、動作軌道が変更された結果、図19や図10とは逆側から障害物10を迂回するような軌道をとっている。なお、図11においては、破線はステップS23で判定された際の動作軌道モデルの形状を示している。
【0067】
このように、障害物10の移動に応じて動作軌道およびロボットマニピュレータの姿勢を再計算して最適な軌道・姿勢を更新することが可能である。
【0068】
なお、本実施例によってはステップS23において動作軌道モデルを構成するバネの張力に基づいて動作軌道モデルを再配置する処理の実行を判定するものとしたが、例えば動作軌道モデルがロボットマニピュレータの可動範囲から逸脱した場合に動作軌道モデルを再配置するような判定とすることも可能である。
【0069】
また、本実施例においては、全ての参照点で姿勢を生成してから(ステップS11)障害物の移動による更新処理(ステップS21等)を行なうこととしているが、例えばステップS11で移動体の現在位置から1つ先の参照点までの姿勢生成まででステップS12に進み、更新処理(ステップS21等)を行い、ステップS24からステップS25に進んだ場合に次の参照点での姿勢生成(ステップS7)以降の処理を行なう構成としても良い。このような処理とすると、ステップS24からステップS26に進んだ場合に、動作を再度生成する量が減るため、計算処理をより合理的にすることができる。
【0070】
以上、本発明による移動体姿勢生成について複数の実施例を用いて説明してきたが、上述した各実施例においては、ロボットマニピュレータの手先の動作軌道の生成とロボットマニピュレータ全体姿勢の生成を一連の処理として説明したが、手先の動作軌道の生成方法が上述したものと異なる方法であっても、斥力ベクトル場の生成と、移動体形状モデル設定以降の処理を行うことにより、ロボットマニピュレータ全体姿勢を生成することが可能である。
【0071】
また、各実施例においては移動体がロボットマニピュレータであるものとして説明したが、本発明はこれに限定されない。例えば、水中遊泳ロボット、歩行型ロボット、車輪型ロボット等の、障害物が存在する3次元空間における各種の移動体の軌道生成に関して、本発明を適用することが可能である。
【0072】
また、各実施例において説明した移動体姿勢生成方法は、各処理を行う機能が実装された入力装置、演算装置、出力装置からなるシステムで実行することが可能であり、例えば各処理を行うためのプログラムを組み込んだ一般的なパーソナルコンピュータを用いることができる。
【符号の説明】
【0073】
10 障害物
11、11a、11b 斥力ベクトル
20 引っ張りバネ
21 ヒンジバネ
22 連結バネ
23、23a、23b 質点
25 3次元形状モデル
26 代表点
27、27c 参照点
27a 初期位置
27b 目標位置
28 現在位置
29 鉛直平面
31 引力ベクトル

【特許請求の範囲】
【請求項1】
移動体の一部分の動作軌道に基づいて移動体全体の姿勢を生成する移動体姿勢生成方法であって、
移動体が移動する空間に存在する障害物を発生源とする斥力ベクトルからなる斥力ベクトル場を設定する斥力ベクトル場設定ステップと、
移動体の3次元形状モデルに斥力および引力が作用する代表点を設定する移動体形状モデル設定ステップと、
代表点に作用する斥力から移動体の各関節軸に働く力とモーメントを算出する力・モーメント算出ステップと、
前記動作軌道上に参照点を設定し、参照点に向けた引力を前記移動体に作用させる引力ベクトル設定ステップと、
移動体の3次元形状モデルに作用する力とモーメントから移動体の各関節軸に作用するトルクを算出し、トルクに基づいて各関節軸の角度を変化させる姿勢生成ステップと、を備えることを特徴とする移動体姿勢生成方法。
【請求項2】
移動体の一部分の動作軌道に基づいて移動体全体の姿勢を生成する移動体姿勢生成方法であって、
移動体が移動する空間を設定する空間設定ステップと、
前記空間中に前記移動体の一部分が動作を開始する初期位置を設定する初期位置設定ステップと、
前記空間中に前記移動体の一部分の目標位置を設定する目標位置設定ステップと、
前記空間に存在する障害物を発生源とする斥力ベクトルからなる斥力ベクトル場を設定する斥力ベクトル場設定ステップと、
前記初期位置と前記目標位置とを結び、前記初期位置と前記目標位置の間に前記斥力ベクトルが作用する作用点を有し、前記初期位置と前記目標位置に両端を固定された動作軌道モデルを設定する動作軌道モデル設定ステップと、
前記斥力ベクトル場の前記斥力ベクトルを前記作用点に作用させ、変形した前記動作軌道モデルを前記移動体の動作軌道とする動作軌道生成ステップと、
移動体の3次元形状モデルに斥力および引力が作用する代表点を設定する移動体形状モデル設定ステップと、
代表点に作用する斥力から移動体の各関節軸に働く力とモーメントを算出する力・モーメント算出ステップと、
生成した動作軌道上に参照点を設定し、参照点に向けた引力を移動体に作用させる引力ベクトル設定ステップと、
移動体の3次元形状モデルに作用する力とモーメントから移動体の各関節軸に作用するトルクを算出し、トルクに基づいて各関節軸の角度を変化させる姿勢生成ステップと、を備えることを特徴とする移動体姿勢生成方法。
【請求項3】
前記姿勢生成ステップの後に、前記参照点を更新する参照点更新ステップと、前記参照点が前記動作軌道上の目標位置に到達するまで前記力・モーメント算出ステップ、前記引力ベクトル設定ステップ、前記姿勢生成ステップ、前記参照点更新ステップを繰り返す動作生成ステップを備えることを特徴とする請求項1または請求項2記載の移動体姿勢生成方法。
【請求項4】
前記引力ベクトル設定ステップで、引力を作用させる移動体の当該箇所の現在位置と生成した動作軌道上の参照点との位置偏差に応じた引力を設定することを特徴とする請求項1または請求項2記載の移動体姿勢生成方法。
【請求項5】
前記引力ベクトル設定ステップで、動作軌道上の参照点を含み、かつ動作軌道に鉛直な平面を定義し、引力を作用させる移動体の当該箇所の現在位置と前記鉛直平面との位置偏差に応じた引力を設定することを特徴とする請求項1または請求項2記載の移動体姿勢生成方法。
【請求項6】
前記引力ベクトル設定ステップで、位置偏差量に比例する成分、位置偏差を積分した成分、位置偏差の時間変動を微分した成分の組合せからなる引力を設定することを特徴とする請求項4または請求項5記載の移動体姿勢生成方法。
【請求項7】
前記姿勢生成ステップで、トルクに基づく各関節軸角度の変化量を算出する過程において関節軸ごとに関節の動き易さを表す係数を設定することを特徴とする請求項1または請求項2記載の移動体姿勢生成方法。
【請求項8】
前記姿勢生成ステップで、移動体が特異姿勢に近づいた場合に、関節の動き易さを表す係数を変化させることを特徴とする請求項7記載の移動体姿勢生成方法。
【請求項9】
前記姿勢生成ステップで、移動体の現在の姿勢から求まるヤコビ行列を用いることで、3次元形状モデルに作用する力とモーメントから各関節軸に作用するトルクを算出することを特徴とする請求項1または請求項2記載の移動体姿勢生成方法。
【請求項10】
移動体の一部分の動作軌道に基づいて移動体全体の姿勢を生成する移動体姿勢生成装置であって、
移動体が移動する空間に存在する障害物を発生源とする斥力ベクトルからなる斥力ベクトル場を設定する斥力ベクトル場設定手段と、
移動体の3次元形状モデルに斥力および引力が作用する代表点を設定する移動体形状モデル設定手段と、
代表点に作用する斥力から移動体の各関節軸に働く力とモーメントを算出する力・モーメント算出手段と、
前記動作軌道上に参照点を設定し、参照点に向けた引力を前記移動体に作用させる引力ベクトル設定手段と、
移動体の3次元形状モデルに作用する力とモーメントから移動体の各関節軸に作用するトルクを算出し、トルクに基づいて各関節軸の角度を変化させる姿勢生成手段と、を備えることを特徴とする移動体姿勢生成装置。
【請求項11】
移動体の一部分の動作軌道に基づいて移動体全体の姿勢を生成する移動体姿勢生成装置であって、
移動体が移動する空間を設定する空間設定手段と、
前記空間中に前記移動体の一部分が動作を開始する初期位置を設定する初期位置設定手段と、
前記空間中に前記移動体の一部分の目標位置を設定する目標位置設定手段と、
前記空間に存在する障害物を発生源とする斥力ベクトルからなる斥力ベクトル場を設定する斥力ベクトル場設定手段と、
前記初期位置と前記目標位置とを結び、前記初期位置と前記目標位置の間に前記斥力ベクトルが作用する作用点を有し、前記初期位置と前記目標位置に両端を固定された動作軌道モデルを設定する動作軌道モデル設定手段と前記斥力ベクトル場の前記斥力ベクトルを前記作用点に作用させ、変形した前記動作軌道モデルを前記移動体の動作軌道とする動作軌道生成手段と、
移動体の3次元形状モデルに斥力および引力が作用する点を設定する移動体形状モデル設定手段と、移動体に作用する斥力から移動体の各関節軸に働く力とモーメントを算出する力・モーメント算出手段と、生成した動作軌道上に参照点を設定し、参照点に向けた引力を移動体に作用させる引力ベクトル設定手段と、
移動体の3次元形状モデルに作用する力とモーメントから移動体の各関節軸に作用するトルクを算出し、トルクに基づいて各関節軸の角度を変化させる姿勢生成手段と、を備えることを特徴とする移動体姿勢生成装置。

【図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


【公開番号】特開2011−31309(P2011−31309A)
【公開日】平成23年2月17日(2011.2.17)
【国際特許分類】
【出願番号】特願2009−176730(P2009−176730)
【出願日】平成21年7月29日(2009.7.29)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】