説明

ロボットの軌道計画システム及び軌道計画方法

【課題】少ないノードで軌道計画の成功率を向上させることができる、ロボットの軌道計画システムを提供する。
【解決手段】本発明の一形態に係るロボットの軌道計画システム10は、グラフ構造データ格納手段に格納されているグラフ構造に対して、スタートノード及びゴールノードを追加し、さらに最終姿勢のハンドの周辺空間にノードを追加して、追加したノードと、隣接するノードとをエッジで接続し、スタートノードからゴールノードまでを結ぶ経路を探索するグラフ構造探索処理手段と、グラフ構造探索処理手段により探索された経路に含まれるノードが示す姿勢が、環境情報と干渉するか否かを判定し、干渉していると判定した場合には、ノードをグラフ構造から除外するノード有効性判定手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの軌道計画システム及び軌道計画方法に関する。
【背景技術】
【0002】
ロボットは、環境情報を反映したロボットアームの軌道計画を、様々に変化する環境下においても自律的に行うことが求められる。ここで、ロボットアームの軌道計画とは、ロボット自身と環境とが干渉しないように、ロボットアームのエンドエフェクタの位置姿勢が、初期姿勢から最終姿勢へと到達するような関節軸情報の系列を求める問題である。
【0003】
この問題の解法の一つとして、ロボットの関節軸情報であるノードを複数有したグラフ構造を使用する手法が知られている。当該グラフ構造では、ノード間がエッジにより接続され、初期姿勢であるスタートノードから最終姿勢であるゴールノードへと至るノードの系列である経路が探索される。このようなグラフ構造を使用して軌道計画を行う技術が、例えば、特許文献1に開示されている。
【0004】
特許文献1には、最終位置を複数設定することで、取り得る経路を多くして適切な軌道を設定し易くしている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−48372号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述のようなグラフ構造を使用した手法において、軌道計画を確実に行うためにノードの数を多くすると、軌道の探索に時間が掛る。このことは、特許文献1に開示されている技術のように、最終位置を複数設定した場合も同様のことが言える。
一方、軌道の探索に掛る時間を短縮するためにノードの数を少なくすると、軌道の探索を失敗する可能性がある。
【0007】
本発明は、このような問題を解決するためになされたものであり、少ないノードで軌道計画の成功率を向上させることができる、ロボットの軌道計画システム及び軌道計画方法を提供することを目的とするものである。
【課題を解決するための手段】
【0008】
本発明の一形態に係るロボットの軌道計画システムは、
グラフ構造を用いたロボットの軌道設計システムであって、
前記ロボットの周辺の環境の環境情報を取得する環境認識手段と、
前記ロボットのハンド及びアームの関節軸情報を示すノードと、前記ノード間を接続するエッジと、を有するグラフ構造を格納するグラフ構造データ格納手段と、
前記グラフ構造データ格納手段に格納されている前記グラフ構造に対して、前記ハンド及び前記アームの初期姿勢を示すスタートノード、及び前記ハンド及び前記アームの最終姿勢を示すゴールノードを追加し、さらに前記ゴールノードで示される、最終姿勢の前記ハンドの周辺空間にノードを追加して、追加した前記ノードと、当該ノードに隣接するノードとをエッジで接続し、前記スタートノードから前記ゴールノードまでを結ぶ経路を探索するグラフ構造探索処理手段と、
前記グラフ構造探索処理手段により探索された経路に含まれるノードについて、当該ノードが示す姿勢が、前記環境認識手段により取得された前記環境情報と干渉するか否かを判定し、干渉していると判定した場合には、当該ノードを前記グラフ構造から除外するノード有効性判定手段と、
を備える。
【0009】
前記グラフ構造探索処理手段は、最終姿勢の前記ハンドの後方空間にノードを追加すること、が好ましい。
前記グラフ構造探索処理手段は、前記ノードを半円弧上に略等間隔で追加すること、が好ましい。
前記グラフ構造探索処理手段は、前記ノードを仮想半円球内に追加すること、が好ましい。
【0010】
本発明の一形態に係るロボットの軌道設計方法は、
グラフ構造を用いたロボットの軌道設計方法であって、
前記ロボットの周辺の環境の環境情報を取得するステップと、
前記ロボットのハンド及びアームの関節軸情報を示すノードと、前記ノード間を接続するエッジと、を有するグラフ構造に対して、前記ハンド及び前記アームの初期姿勢を示すスタートノード、及び前記ハンド及び前記アームの最終姿勢を示すゴールノードを追加し、さらに前記ゴールノードで示される、最終姿勢の前記ハンドの周辺空間にノードを追加して、追加した前記ノードと、当該ノードに隣接するノードとをエッジで接続し、前記スタートノードから前記ゴールノードまでを結ぶ経路を探索するステップと、
探索された経路に含まれるノードについて、前記ノードが示す姿勢が、取得された前記環境情報と干渉するか否かを判定し、干渉していると判定した場合には、前記ノードを前記グラフ構造から除外するステップと、
を備える。
【発明の効果】
【0011】
以上、説明したように、本発明によると、少ないノードで軌道計画の成功率を向上させることができる、ロボットの軌道計画システム及び軌道計画方法を提供することができる。
【図面の簡単な説明】
【0012】
【図1】実施の形態に係るロボットの概略構成を示す全体図である。
【図2】実施の形態に係るロボットの軌道計画システムの構成図である。
【図3】実施の形態に係るロボットの全身軌道計画部の構成図である。
【図4】実施の形態に係るグラフ構造の概念図である。
【図5】追加するノードとハンドとの配置関係を示す概略図である。
【図6】実施の形態に係る軌道計画処理のフローチャート図である。
【図7】(a)は、追加したノードとハンドとの配置関係を概略的に示す平面図である。(b)は、追加したノードとハンドとの配置関係を概略的に示す側面図である。
【図8】追加したノードとハンドとの異なる配置関係を示す概略図である。
【図9】軌道探索の様子を示す概念図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施の形態について説明する。なお、以下では、本文中の説明においては、必要に応じそれ以前に述べた符号を用いるものとする。
【0014】
図1は、本実施の形態に係るロボットの概略構成を示す全体図である。
図1では、ロボット100の外観構成を例示しており、ロボット100は、胴体1と、胴体1に連結されたアーム2と、アーム2に連結されたハンド3と、を備えている。アーム2は、複数の関節と、関節を介して接続される複数のリンクと、を備えている。また、ハンド3は、手首関節を介してアーム2の端部に連結されている。なお、詳細についての図示は省略するが、ハンド3は、掌部と、関節を介して掌部に接続される複数本の指と、を備えていてもよい。各指は、複数の指関節と、指関節を介して接続される複数のリンクと、を備えていてもよい。
【0015】
各関節に備えられたモーターなどのアクチュエータ(不図示)が駆動されることで、各関節は、所望の角度及び角速度で動作する。その結果、各座標系において、ロボット100の全身の位置及び姿勢と、手先の位置及び姿勢と、を所望の位置及び姿勢に制御することができる。このように、アクチュエータは、ロボット100が動作する際の、動力発生手段に相当する。
【0016】
ロボット100は、ユーザから指定される様々なタスク(環境内に存在する物体に対する作業)を実行する。例えば、ロボット100は、環境内に存在する物体を、ハンド3により把持する。ロボット100は、このようなタスクを実行するためにアーム2及びハンド3の軌道計画を実行し、計画した軌道に追従するように、各関節を駆動制御する。なお、軌道とは、初期姿勢を示す関節角度ベクトルから最終姿勢を示す関節角度ベクトルへと至る関節角度ベクトルの系列であり、後述するグラフ構造を用いて求められる。
【0017】
図2は、本実施の形態に係るロボットの軌道計画システムの構成図である。軌道計画システム10は、環境認識部11と、タスク管理部12と、最終全身位置・姿勢決定部13と、初期全身位置・姿勢取得部14と、全身軌道計画部15と、補間部16と、モーター駆動部17と、を備えている。
【0018】
環境認識部11は、ロボット100の周辺の環境の環境情報を取得する。環境認識部11は、各種のセンサを用いて構成され、ロボット100の周辺の環境内に存在する物体の位置や形状などの環境情報を取得する。センサには、例えば、ステレオカメラやレーザーレンジファインダを用いることができ、環境認識部11は、環境内の物体について3次元の点群情報を取得し、ロボット100から物体までの距離情報を取得することができる。環境認識部11は、取得した物体の距離情報に基づいて、環境内の物体を、例えば、直方体形状のボクセル情報や、3次元の物体モデルとして生成し、環境情報としてタスク管理部12と、最終全身位置・姿勢決定部13と、全身軌道計画部15と、に出力する。
【0019】
タスク管理部12は、ロボット100に実行させるタスクを管理する。タスク管理部12は、タスクの内容に応じて、環境認識部11で取得した環境情報から必要な情報を取得する。なお、タスクの内容は、軌道計画システム10に備えられたインタフェース(不図示)を介してユーザにより入力されるものとしてもよい。
【0020】
例えば、物体を把持するタスクでは、ロボット100に把持させる物体、その把持方法などを示す情報がタスクに含まれており、タスク管理部12は、環境認識部11で取得した環境情報から、把持対象となる物体を示す情報と、その形状や位置・姿勢などを示す情報などを取得する。
【0021】
最終全身位置・姿勢決定部13は、環境情報と、タスク管理部12から出力されたタスク情報から、タスク実行時のロボット100の最終全身位置・姿勢を決定する。
【0022】
初期全身位置・姿勢取得部14は、タスク管理部12から出力されたタスク情報から、タスク実行時のロボット100の初期全身位置・姿勢を取得する。なお、初期全身位置・姿勢は、ロボット100の現在の位置・姿勢をそのまま与えるものとしてもよい。
【0023】
全身軌道計画部15は、環境情報と、最終全身位置・姿勢と、初期全身位置・姿勢と、に基づいて、ロボット100の全身の軌道計画を行う。軌道計画は各部位についての軌道を探索することで行われ、初期全身位置・姿勢から最終全身位置・姿勢へと至る軌道であって、かつ、環境と干渉しない軌道が計画される。なお、全身軌道計画部15の詳細については後述する。
【0024】
補間部16は、全身軌道計画部15で求められた全身関節軌道を、モーターを駆動する制御周期に合わせて適切となるように補間する。補間部16により、全身軌道計画部15で求めた軌道と比較してより滑らかな軌道が求められる。補間部16は、その軌道に含まれる関節角度ベクトルに基づいてロボット100のアクチュエータ(モーター)へのモーター指令値を生成する。
【0025】
モーター駆動部17は、補間部16で求められたモーター指令値に基づいて、フィードバック制御を行う。
【0026】
次に、図3乃至図9を参照して、全身軌道計画部15の詳細について説明する。
図3は、全身軌道計画部15の構成図である。全身軌道計画部15は、グラフ構造データ格納部151と、探索用グラフ構造データ保持部152と、グラフ構造生成処理部153と、グラフ構造探索処理部154と、ノード有効性判定処理部155と、を備えている。
【0027】
グラフ構造データ格納部151は、複数のグラフ構造を格納しており、本実施の形態では、部位ごとのグラフ構造を格納している。本実施の形態では、ロボット100の全身の全ての関節軸を表現したグラフ構造を利用して軌道計画を行うことに代えて、部位ごとに用意したグラフ構造を利用して、部位ごとに軌道を計画する。例えば、グラフ構造データ格納部151に格納されるグラフ構造には、アーム2及びハンド3のグラフ構造が含まれる。
【0028】
図4は、グラフ構造の概念図である。図5は、最終姿勢のハンド3と追加したノードa1〜a6との位置関係を示す図である。但し、図4では、経路を簡潔に示すために、図5において追加されたノードとして図示されている一部のノードa3〜a6を省略している。
【0029】
グラフ構造20は、複数のノードq1〜q9と、ノード間を接続する線分(以下、エッジと称する場合がある。)と、を有している。グラフ構造20を用いて、スタートノードSとゴールノードGとを結ぶ経路が探索される。グラフ構造のノード構成は、タスクの内容を考慮してユーザにより設定されており、各ノードは、ユーザにより予め注意深く選ばれている。
【0030】
なお、ノードは、ハンドの関節軸θ1及びアームの関節軸θ2(但し、ハンドが複数の関節軸を有する場合には、θ1はベクトルを示し、同様にアームが複数の関節軸を有する場合には、θ2はベクトルを示す。)の情報等を持つ。また、エッジは、ノード間の距離情報を持つ。
【0031】
探索用グラフ構造データ保持部152は、軌道探索に用いるグラフ構造を一時的に保持する。例えば、軌道探索に使用中のグラフ構造を探索用グラフ構造データ保持部152に一時的に保持する。また、探索した軌道を探索用グラフ構造データ保持部152に保持しておき、ロボット100が移動した場合に、保持しているグラフ構造を更新する、などのために探索用グラフ構造データ保持部152を利用してもよい。
【0032】
グラフ構造生成処理部153は、グラフ構造データ格納部151に格納されているグラフ構造から軌道探索対象となる部位のグラフ構造を選択し、選択したグラフ構造を探索用グラフ構造データ保持部152に保持する。そして、グラフ構造生成処理部153は、入力されるスタートノードSとゴールノードGとを探索用グラフ構造データ保持部152に保持されているグラフ構造に追加する。
【0033】
さらにグラフ構造生成処理部153は、図4及び図5に示すように、ゴールノードGに示される、最終姿勢のハンド3の周辺空間にノードa1〜a6を追加する。つまり、ゴールノードGに示される、アーム2の手先位置の周辺空間にノードa1〜a6を追加する。
【0034】
そして、グラフ構造生成処理部153は、追加したそれぞれのノードについて近傍ノードとの間をエッジにより接続する。ここで、スタートノードSは、ロボット100の初期全身位置・姿勢における軌道探索部位の位置・姿勢を示すノードであり、ゴールノードGは、ロボット100の最終全身姿勢における軌道探索部位の位置・姿勢を示すノードである。なお、スタートノードSは、軌道探索部位の姿勢のみを示すノードであってもよい。
【0035】
グラフ構造探索処理部154は、探索用グラフ構造データ保持部152に保持されている、ノード及びエッジが追加されたグラフ構造を用いて、スタートノードSからゴールノードGまでを結ぶ経路(スタートノードSからゴールノードGへと至るノードの経路であり、軌道と称する場合がある。)を探索する。なお、グラフ構造探索処理部154による探索方法については限定されず、ダイクストラ法などの公知の手法を用いればよい。
【0036】
ノード有効性判定処理部155は、グラフ構造探索処理部154により探索された経路に含まれるノードについて、ノードが示す姿勢が、環境内の物体やロボット100自身と干渉していないか否かをチェックし、干渉している場合には、探索用グラフ構造データ保持部155のグラフ構造から当該ノードを除外する。
【0037】
図6は、全身軌道計画部15の動作フローチャート図である。
先ず、グラフ構造生成処理部153は、グラフ構造データ格納部151に格納されているグラフ構造から軌道探索対象となる部位のグラフ構造(本実施の形態では、ハンド及びアームのグラフ構造)を選択し(S101)、選択したグラフ構造を探索用グラフ構造データ保持部152に保持する。
【0038】
次に、グラフ構造生成処理部153は、スタートノードSとゴールノードGとを、探索用グラフ構造データ保持部152に格納されている当該グラフ構造に追加する(S102)。さらに、グラフ構造生成処理部153は、ゴールノードGに示される、最終姿勢のハンド3の周辺空間にノードa1〜a6を追加する(S103)。なお、追加するノードの数は適宜設定させる。
【0039】
本実施の形態のグラフ構造生成処理部153は、最終姿勢のハンド3の後方空間にノードa1〜a6を追加している。このとき、グラフ構造生成処理部153は、図7(a)及び(b)に示すように、最終姿勢のハンド3の後方空間に形成された仮想半円球空間内にノードa1〜a6を追加すると良い。このようにノードを追加する空間を特定することにより、最終姿勢のハンド3の後方空間にノードをランダムに追加する場合に比べて、追加するノードの数を削減することができる。これらのノードa1〜a6は、隣接するノードの間隔がグラフ構造20における隣接するノードの間隔より狭くなるように、ランダムに追加すると良い。なお、仮想半円球空間の大きさは、ユーザにより適宜設定される。
【0040】
または、グラフ構造生成処理部153は、図8に示すように、最終姿勢のハンド3の後方空間において、ノードa1〜a6を円弧上に追加すると良い。例えば、最終姿勢のハンド3に対して上下方向に直径を有し、且つ手先位置の座標Oから仮想的に後方に向かって描かれた同心円弧R1、R2上にそれぞれノードa1、a3、a5及びノードa2、a4、a6が追加される。このとき、円弧R1上に配置されるノードa1、a3、a5の間隔は略等しく、円弧R2上に配置されるノードa2、a4、a6の間隔は略等しく配置される。また、ノードa1とノードa2とは座標Oから延びる線L1上に配置され、ノードa3とノードa4とは座標Oから延びる線L2上に配置され、ノードa5とノードa6とは座標Oから延びるL3上に配置される。このとき、L1とL2とで形成する角度θ3と、L1とL3とで形成する角度θ4とは、略等しく設定される。この場合もノードを追加する空間を特定するので、最終姿勢のハンド3の後方空間にノードをランダムに追加する場合に比べて、追加するノードの数を削減することができる。また、上下方向にノードを追加するので、障害物が存在しても、当該障害物を避けるように上方又は下方から把持対象である物体にアプローチすることができ、軌道設計の成功率を向上させることができる。なお、円弧の直径や当該円弧上に配置されるノード間の間隔は適宜設定される。また、本実施の形態では、上下方向にノードを追加したが、追加する方向は特に限定されない。要するに、障害物を避けるように把持対象である物体に良好にアプローチできれば良い。
【0041】
次に、グラフ構造生成処理部153は、追加したそれぞれのノードについて近傍ノードとの間をエッジにより接続する(S104)。そして、グラフ構造探索処理部154は、ノード及びエッジが追加されたグラフ構造を用いて、スタートノードSからゴールノードGまでを結ぶ軌道を探索する(S105)。また、グラフ構造探索処理部154は、軌道探索の結果、軌道が存在するか否かを判定する(S106)。軌道が存在しない場合(S106で「無」の場合)には、軌道を探索することができなかったとして、処理を終了する。
【0042】
次に、ノード有効性判定処理部155は、軌道が存在した場合(S106で「有」の場合)には、探索された経路に含まれるノードについて、ノードが示す姿勢が、環境内の物体(障害物)やロボット100自身と干渉していないか否かをチェックし(S107)、干渉の有無を検出する(S108)。そして、ノード有効性判定処理部155は、干渉検出の結果、経路に含まれるいずれか1つのノードが干渉している場合(S108の「NG」の場合)には、グラフ構造から当該ノードを除外する(S109)。その後、ノード有効性判定処理部155は、ノード除外後のグラフ構造を用いて再び軌道探索を行う。例えば、ノード有効性判定処理部155は、図9に示すように、ゴールノードG近傍のノードq3やノードq8が干渉している場合、当該ノードq3やノードq8を除外して、再び軌道検索を実行する。
一方、ノード有効性判定処理部155は、干渉検出の結果、経路に含まれるいずれかのノードも干渉していない場合(S108の「OK」の場合)には、軌道を出力する。本実施の形態では、スタートノードS→ノードq1→ノードa1→ノードa2→ゴールノードGを軌道として出力する。
【0043】
通例、ハンドやアームに干渉する障害物は、把持対象である物体の周辺、特にハンドやアームの軌道である、当該物体の後方空間に存在することが多い。そこで、本実施の形態では、最終姿勢のハンド3の周辺空間にノードを追加している。このように障害物の存在が予想される把持対象である物体の周辺空間、特に当該物体の後方空間にノードa1〜a6を追加しているため、障害物が存在することが予想される位置近傍の経路の候補を局所的に増やすことができる。そのため、例えば図9に示すように、ゴールノードG近傍のノードq3やノードq8が干渉している場合でも、軌道計画の成功率を向上させることができる。また、障害物が存在することが予想される位置近傍の経路の候補を局所的に増やすことができるので、他の空間にノードを追加する必要がなく、比較的ノードの数の少ないグラフ構造を用いることができる。よって、演算量を削減することができ、演算時間の削減及び演算装置の小型化に寄与できる。
【0044】
その他の実施の形態.
上述した実施の形態では、ハンドで把持対象である物体を把持するタスクを実行するために軌道計画を行ったが、既にハンドで把持した物体を他の位置に移動するタスクを実行する場合も、略同様に軌道計画を実行することができる。この場合、当該タスクに応じたグラフ構造を用いればよい。
【0045】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記実施の形態では、胴体を有するロボット100を用いたが、アームとハンドのみを備えるロボットを用いても同様に実施できる。
【符号の説明】
【0046】
100 ロボット
1 胴体
2 アーム
3 ハンド
10 軌道計画システム
11 環境認識部
12 タスク管理部
13 最終全身姿勢決定部
14 初期全身位置・姿勢取得部
15 全身軌道計画部
16 補間部
17 モーター駆動部
20 グラフ構造
151 グラフ構造データ格納部
152 探索用グラフ構造データ保持部
153 グラフ構造生成処理部
154 グラフ構造探索処理部
155 ノード有効性判定処理部
a1〜a6 ノード
q1〜q9 ノード
G ゴールノード
S スタートノード

【特許請求の範囲】
【請求項1】
グラフ構造を用いたロボットの軌道設計システムであって、
前記ロボットの周辺の環境の環境情報を取得する環境認識手段と、
前記ロボットのハンド及びアームの関節軸情報を示すノードと、前記ノード間を接続するエッジと、を有するグラフ構造を格納するグラフ構造データ格納手段と、
前記グラフ構造データ格納手段に格納されている前記グラフ構造に対して、前記ハンド及び前記アームの初期姿勢を示すスタートノード、及び前記ハンド及び前記アームの最終姿勢を示すゴールノードを追加し、さらに前記ゴールノードで示される、最終姿勢の前記ハンドの周辺空間にノードを追加して、追加した前記ノードと、当該ノードに隣接するノードとをエッジで接続し、前記スタートノードから前記ゴールノードまでを結ぶ経路を探索するグラフ構造探索処理手段と、
前記グラフ構造探索処理手段により探索された経路に含まれるノードについて、当該ノードが示す姿勢が、前記環境認識手段により取得された前記環境情報と干渉するか否かを判定し、干渉していると判定した場合には、当該ノードを前記グラフ構造から除外するノード有効性判定手段と、
を備えるロボットの軌道設計システム。
【請求項2】
前記グラフ構造探索処理手段は、最終姿勢の前記ハンドの後方空間にノードを追加する請求項1に記載のロボットの軌道設計システム。
【請求項3】
前記グラフ構造探索処理手段は、前記ノードを半円弧上に略等間隔で追加する請求項2に記載のロボットの軌道設計システム。
【請求項4】
前記グラフ構造探索処理手段は、前記ノードを仮想半円球内に追加する請求項2に記載のロボットの軌道設計システム。
【請求項5】
グラフ構造を用いたロボットの軌道設計方法であって、
前記ロボットの周辺の環境の環境情報を取得するステップと、
前記ロボットのハンド及びアームの関節軸情報を示すノードと、前記ノード間を接続するエッジと、を有するグラフ構造に対して、前記ハンド及び前記アームの初期姿勢を示すスタートノード、及び前記ハンド及び前記アームの最終姿勢を示すゴールノードを追加し、さらに前記ゴールノードで示される、最終姿勢の前記ハンドの周辺空間にノードを追加して、追加した前記ノードと、当該ノードに隣接するノードとをエッジで接続し、前記スタートノードから前記ゴールノードまでを結ぶ経路を探索するステップと、
探索された経路に含まれるノードについて、前記ノードが示す姿勢が、取得された前記環境情報と干渉するか否かを判定し、干渉していると判定した場合には、前記ノードを前記グラフ構造から除外するステップと、
を備えるロボットの軌道設計方法。

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