(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023068268
(43)【公開日】2023-05-17
(54)【発明の名称】軌道計画装置、軌道計画方法および軌道計画プログラム
(51)【国際特許分類】
B25J 9/10 20060101AFI20230510BHJP
【FI】
B25J9/10 A
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021179181
(22)【出願日】2021-11-02
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】山内 雄太
(72)【発明者】
【氏名】月舘 統宙
(72)【発明者】
【氏名】中須 信昭
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS01
3C707BS12
3C707LT01
3C707MS14
3C707MS15
(57)【要約】
【課題】ロボットを複数連結した機構に対してもリアルタイムでの軌道計画を実現する。
【解決手段】第1のロボットと、第1のロボットの動作によって移動可能となるように第1のロボットに連結した第2のロボットと、を制御するための軌道を計画する軌道計画装置であって、第2のロボットのアームの構成を示す情報と、第2のロボットの手先が順次経由する複数の経由点における手先の位置及び姿勢を示す情報と、を保持し、第2のロボットのアームの構成と、各経由点における手先の位置及び姿勢と、に基づいて、各経由点における特異点曲面を計算し、各経由点について計算された第2のロボットの特異点曲面と、第2のロボットの可動範囲と、に基づいて、第1のロボットの目標位置を決定し、第1のロボットの目標位置までの軌道を計画し、第1のロボットの目標位置における第2のロボットの手先が複数の経由点を経由する軌道を計画する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
第1のロボットと、前記第1のロボットの動作によって移動可能となるように前記第1のロボットに連結した第2のロボットと、を制御するための軌道を計画する軌道計画装置であって、
処理装置と、記憶装置と、を有し、
前記記憶装置は、前記第2のロボットのアームの構成を示す情報と、前記第2のロボットの手先が順次経由する複数の経由点における前記手先の位置及び姿勢を示す情報と、を保持し、
前記処理装置は、
前記第2のロボットのアームの構成と、前記各経由点における前記手先の位置及び姿勢と、に基づいて、前記各経由点における前記第2のロボットの特異点の集合である特異点曲面を計算し、
前記各経由点について計算された前記第2のロボットの前記特異点曲面と、前記第2のロボットの可動範囲と、に基づいて、前記第1のロボットの目標位置を決定し、
前記第1のロボットの目標位置までの軌道を計画し、
前記第1のロボットの目標位置における前記第2のロボットの手先が前記複数の経由点を経由する軌道を計画することを特徴とする軌道計画装置。
【請求項2】
請求項1に記載の軌道計画装置であって、
前記処理装置は、
前記複数の経由点を、各々が1以上の前記経由点を含む複数の部分集合に分割し、
前記部分集合ごとに、前記各経由点について計算された前記第2のロボットの前記特異点曲面と、前記第2のロボットの可動範囲と、に基づいて、前記部分集合に含まれる1以上の前記経由点の全てが、前記第2のロボットの可動範囲内かつ前記各経由点の前記特異点曲面外の範囲の積集合に含まれるように、前記第1のロボットの目標位置を決定し、
前記部分集合ごとに決定した前記第1のロボットの目標位置ごとに、前記第1のロボットの軌道を計画し、
前記部分集合ごとに、前記第1のロボットの目標位置における前記第2のロボットの手先が前記部分集合に含まれる1以上の前記経由点を経由する軌道を計画することを特徴とする軌道計画装置。
【請求項3】
請求項2に記載の軌道計画装置であって、
前記処理装置は、
前記第2のロボットの手先が前記複数の経由点を経由する軌道の計画に失敗した場合、前記第1のロボットの目標位置を変更し、
変更された前記第1のロボットの目標位置における前記第2のロボットの手先が前記複数の経由点を経由する軌道を計画することを特徴とする軌道計画装置。
【請求項4】
請求項3に記載の軌道計画装置であって、
前記処理装置は、前記第2のロボットの可動範囲内で、前記第2のロボットの特異点曲面を通過せず、かつ、他の物体と干渉しない軌道を計画できなかった場合に、前記第2のロボットの手先が前記複数の経由点を経由する軌道の計画に失敗したと判定することを特徴とする軌道計画装置。
【請求項5】
請求項3に記載の軌道計画装置であって、
前記処理装置は、前記変更された第1のロボットの目標位置における前記第2のロボットの手先が前記複数の経由点を経由する軌道の計画に失敗した場合に、前記複数の経由点を、各々が1以上の前記経由点を含む複数の部分集合に分割することを特徴とする軌道計画装置。
【請求項6】
請求項5に記載の軌道計画装置であって、
前記処理装置は、いずれかの前記部分集合において、前記第1のロボットの目標位置における前記第2のロボットの手先が前記部分集合に含まれる1以上の前記経由点を経由する軌道の計画に失敗した場合に、前記部分集合の分割数を増加させることを特徴とする軌道計画装置。
【請求項7】
請求項1に記載の軌道計画装置であって、
前記第2のロボットは、6軸の自由度を持つロボットであることを特徴とする軌道計画装置。
【請求項8】
請求項1に記載の軌道計画装置であって、
前記第2のロボットは、6軸の垂直多関節ロボットであることを特徴とする軌道計画装置。
【請求項9】
軌道計画装置が第1のロボットと、前記第1のロボットの動作によって移動可能となるように前記第1のロボットに連結した第2のロボットと、を制御するための軌道を計画する軌道計画方法であって、
前記軌道計画装置は、処理装置と、記憶装置と、を有し、
前記記憶装置は、前記第2のロボットのアームの構成を示す情報と、前記第2のロボットの手先が順次経由する複数の経由点における前記手先の位置及び姿勢を示す情報と、を保持し、
前記軌道計画方法は、
前記処理装置が、前記第2のロボットのアームの構成と、前記各経由点における前記手先の位置及び姿勢と、に基づいて、前記各経由点における前記第2のロボットの特異点の集合である特異点曲面を計算する手順と、
前記処理装置が、前記各経由点について計算された前記第2のロボットの前記特異点曲面と、前記第2のロボットの可動範囲と、に基づいて、前記第1のロボットの目標位置を決定する手順と、
前記処理装置が、前記第1のロボットの目標位置までの軌道を計画する手順と、
前記処理装置が、前記第1のロボットの目標位置における前記第2のロボットの手先が前記複数の経由点を経由する軌道を計画する手順と、を含むことを特徴とする軌道計画方法。
【請求項10】
第1のロボットと、前記第1のロボットの動作によって移動可能となるように前記第1のロボットに連結した第2のロボットと、を制御するための軌道を計画する軌道計画装置を制御するための軌道計画プログラムであって、
前記軌道計画装置は、処理装置と、記憶装置と、を有し、
前記記憶装置は、前記第2のロボットのアームの構成を示す情報と、前記第2のロボットの手先が順次経由する複数の経由点における前記手先の位置及び姿勢を示す情報と、を保持し、
前記軌道計画プログラムは、
前記第2のロボットのアームの構成と、前記各経由点における前記手先の位置及び姿勢と、に基づいて、前記各経由点における前記第2のロボットの特異点の集合である特異点曲面を計算する手順と、
前記各経由点について計算された前記第2のロボットの前記特異点曲面と、前記第2のロボットの可動範囲と、に基づいて、前記第1のロボットの目標位置を決定する手順と、
前記第1のロボットの目標位置までの軌道を計画する手順と、
前記第1のロボットの目標位置における前記第2のロボットの手先が前記複数の経由点を経由する軌道を計画する手順と、を前記処理装置に実行させることを特徴とする軌道計画プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、軌道を生成する軌道計画装置、軌道計画方法および軌道計画プログラムに関する。
【背景技術】
【0002】
本技術分野の背景技術として、特開平11-198071号公報(特許文献1)がある。特許文献1には、「しかしながら、冗長ロボット1の冗長軸2が固定された場合に、冗長軸2以外の残りの軸において、2関節ロボットに特有の問題が生じることがある。即ち2関節ロボット11ではアームが重なる位置に特異点5と呼ばれる地点があり、アーム上の一点を直線運動させるような場合に、その直線軌跡と特異点5とがずれているとその特異点5を経過することができずに動作不能となってしまうことがあるという問題がある。<中略>そこで、本発明は、アームの動作に際し、冗長軸の適正位置を決定して直線動作を補間することができる冗長ロボットの冗長軸位置決定方法を提供することを目的とする。<中略>かかる目的を達成するため、請求項1記載の発明の冗長ロボットの冗長軸位置決定方法では、冗長軸を構成する移動部材に関節部を介して順次連結された2つの回動可能なアームを有し、該アーム上の所定位置を直線動作させようとするとアームがある平面において冗長な自由度を有することになる冗長ロボットの冗長軸位置決定方法法において、互いに連結された2つのアームが重なったときのロボットアームの所定の位置である特異点に関して、冗長軸を動かすことによってこの特異点の軌跡を求める一方、与えられた目標位置に対する所定位置の移動方向をアクセス方向として定め、特異点軌跡と目標位置を通るアクセス方向に平行な直線とにより形成される交点を基準として冗長軸の位置を求めるようにしている。」と記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1には、スカラロボットの特異点を回避するための冗長軸の位置を、アクセス方向を用いて決定する方法が記載されている。しかし、特許文献1の手法では、冗長軸の位置決定方法がスカラロボットに限定されており、またアクセス方向を各経由点に定める必要があるため、単軸ロボット又は複数軸のロボットの上に6軸ロボットを乗せた構造に対して適切に単軸ロボット又は複数軸ロボットの位置を計画することができない。
【0005】
そこで本発明は、6軸ロボットの可動範囲と各経由点の姿勢からなる特異点曲面を基に、もう一方のロボットの目標位置を算出し、ロボットの軌道計画を行う。その後、経由点内の各点を通過するようにもう一方のロボットの軌道計画を行うことで、実行可能な複数のロボットに跨る軌道を短時間で算出する軌道計画装置を提供する。
【課題を解決するための手段】
【0006】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、第1のロボットと、前記第1のロボットの動作によって移動可能となるように前記第1のロボットに連結した第2のロボットと、を制御するための軌道を計画する軌道計画装置であって、処理装置と、記憶装置と、を有し、前記記憶装置は、前記第2のロボットのアームの構成を示す情報と、前記第2のロボットの手先が順次経由する複数の経由点における前記手先の位置及び姿勢を示す情報と、を保持し、前記処理装置は、前記第2のロボットのアームの構成と、前記各経由点における前記手先の位置及び姿勢と、に基づいて、前記各経由点における前記第2のロボットの特異点の集合である特異点曲面を計算し、前記各経由点について計算された前記第2のロボットの前記特異点曲面と、前記第2のロボットの可動範囲と、に基づいて、前記第1のロボットの目標位置を決定し、前記第1のロボットの目標位置までの軌道を計画し、前記第1のロボットの目標位置における前記第2のロボットの手先が前記複数の経由点を経由する軌道を計画することを特徴とする。
【発明の効果】
【0007】
本発明の一態様によれば、第2のロボットの可動範囲と特異点曲面を基に、第1のロボットの目標位置を算出することで、ロボットを複数連結した機構に対してもリアルタイムでの軌道計画を実現することができる。
【0008】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施例における軌道計画装置および周辺機器を含むシステムの構成の一例を示すブロック図である。
【
図2】本発明の実施例における軌道計画装置の統合軌道計画部が行う軌道計画処理の一例を示すフローチャートである。
【
図3】本発明の実施例におけるロボットアーム構成記憶部に格納されるロボットアーム構成データのテーブル構成の一例を示す説明図である。
【
図4】本発明の実施例における干渉物構成記憶部に格納される干渉物構成データのテーブル構成の一例を示す説明図である。
【
図5】本発明の実施例における経由点記憶部に格納される経由点データのテーブル構成の一例を示す説明図である。
【
図6】本発明の実施例における軌道記憶部に格納される軌道データのテーブル構成の一例を示す説明図である。
【
図7】本発明の実施例におけるロボットの特異点曲面の一例を示す説明図である。
【
図8】本発明の実施例におけるロボットの特異点曲面の一例を示す説明図である。
【
図9】本発明の実施例におけるロボットの経由点の一例を示す説明図である。
【
図10】本発明の実施例におけるロボットの経由点の分割方法の一例を示す説明図である。
【
図11】本発明の実施例におけるロボットの各経由点における特異点曲面の一例を示す説明図である。
【
図12】本発明の実施例におけるロボットの特異点曲面の積集合の一例を示す説明図である。
【
図13】本発明の実施例におけるロボットの軌道の一例を示す説明図である。
【
図14】本発明の実施例におけるロボットの軌道の一例を示す説明図である。
【
図15】本発明の実施例における軌道計画装置が出力する出力画面の一例を示す説明図である。
【発明を実施するための形態】
【0010】
以下、図面を用いて実施例を説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【0011】
本実施例では、本発明の基本の形態となる軌道計画装置の例を説明する。
【0012】
[システム構成]
図1は、本発明の実施例における軌道計画装置100および周辺機器を含むシステムの構成の一例を示すブロック図である。
【0013】
システム全体は、軌道計画装置100、入出力装置140、統合制御装置150、単軸ロボット160(以下、本実施例において「ロボット1」とも記載する)、6軸ロボット170(以下、本実施例において「ロボット2」とも記載する)を有する。ユーザは、入出力装置140の操作を通じて軌道計画装置100の機能を利用する。軌道計画装置100は、一般的な計算機(PC、サーバ等)で構成可能であり、例えばソフトウェアプログラム処理によって特徴的な処理機能(処理装置110の各処理部)を実現する。
【0014】
軌道計画装置100は、処理装置110、記憶装置120および入出力I/F(インターフェース)装置130などを有する。
【0015】
入出力装置140は、ユーザの操作によって、計測データなどの入力を行う入力装置や基準形状引当結果などの出力を行う出力装置であり、例えばキーボード、マウス、ディスプレイ、プリンタ、スマートフォン、タブレット型PCなどであってもよい。
【0016】
入出力I/F装置130は、入出力装置140とデータ交換などのインターフェース制御(周辺デバイス制御)の処理を行う部分である。本システムでは、処理装置110の処理および入出力I/F装置130の処理に基づいて、入出力装置140の画面で、グラフィカルユーザインタフェース(GUI)を構成し、各種の情報を表示する。
【0017】
統合制御装置150は、ロボット1およびロボット2を、軌道計画装置100が出力する軌道に従って制御する装置である。
【0018】
単軸ロボット160は、6軸ロボット170を動かすロボットである。本実施例では単軸のロボットとして説明するが、例えば2軸以上の併進自由度を持つロボットなどでも代替可能である。
【0019】
6軸ロボット170は、単軸ロボット160と直列に連結した(すなわち、単軸ロボット160の動作によって移動可能となるように当該単軸ロボット160に連結した)6軸のロボットである。本実施例では垂直多関節型の6軸ロボットとして説明するが、ほかにも協働ロボットにあるような垂直多関節型でない機構の6軸ロボットでも代替可能である。
【0020】
処理装置110は、例えばCPU(Central Processing Unit)、RAM(Random Access Memory)およびROM(Read Only Memory)等の公知の要素によって構成される。処理装置110は、本実施例の特徴的な機能を実現する処理を行う部分であり、統合軌道計画部201、ロボット2特異点曲面算出部202、経由点部分集合分割部203、ロボット1目標位置算出部204、ロボット1軌道計画部205およびロボット2軌道計画部206を有する。これらの機能は、処理装置110を構成するCPUがRAM等に格納されたプログラムを実行することによって実現される。
【0021】
なお、軌道計画装置100は、図示しないが、OS(Operating System)、ミドルウェア、アプリケーションなどの公知の要素を有し、特にディスプレイなどの入出力装置140にGUI画面を表示するための既存の処理機能を備える。処理装置110は、上記の既存の処理機能を用いて、所定の画面を描画し表示する処理や、画面でユーザ入力されるデータ情報の処理などを行う。
【0022】
記憶装置120は、例えばHDD(Hard Disk Drive)またはSSD(Solid State Drive)等の公知の要素によって構成され、ロボットアーム構成記憶部301、干渉物構成記憶部302、経由点記憶部303、軌道記憶部304を含む、記憶部ないし対応するデータ情報(例えばデータベースやテーブル)を有する。
【0023】
ロボットアーム構成記憶部301は、軌道計画、逆運学計算および動力学計算などで用いるロボットアーム構成データ410を記憶する部分である。
【0024】
干渉物構成記憶部302は、軌道計画において行う干渉判定に用いる、干渉物構成データ402を記憶する部分である。
【0025】
経由点記憶部303は、軌道計画において手先が通過する経由点である経由点データ403を記憶する部分である。
【0026】
軌道記憶部304は、統合軌道計画部201が出力する軌道データ404を記憶する部分である。
【0027】
[フローチャート]
図2は、本発明の実施例における軌道計画装置100の統合軌道計画部201が行う軌道計画処理の一例を示すフローチャートである。
【0028】
ステップS101において、ロボット2特異点曲面算出部202は、ロボットアーム構成記憶部301に格納されているロボットアーム構成データ401と、経由点記憶部303に格納されている経由点データ403とに基づいて、各経由点における手先姿勢から、ロボット2の特異点曲面を計算する。ここで、特異点曲面とは、ロボット2の特異点の集合である。この計算方法に関して、ロボット2として垂直多関節ロボットを用いた場合を例として、
図7、
図8を参照して説明する。
【0029】
図7および
図8は、本発明の実施例におけるロボットの特異点曲面の一例を示す説明図である。
【0030】
具体的には、
図7および
図8には、垂直多関節ロボットF101、垂直多関節ロボットF101の可動範囲F102、及び、垂直多関節ロボットF101の特異点曲面F103をそれぞれ示す。垂直多関節ロボットF101の可動範囲F102は、P点が取りうる位置の集合であり、J2軸の位置を中心とした半径(l
1+l
2)の球面内として定義される。特異点曲面F103は、手先のピッチ角度θから計算される曲面であり、以下の円筒座標系(ρ,φ,z)上の数式で定義される。
【0031】
【0032】
例えば、手先が真下、つまりピッチ角度θ=πの時の特異点曲面F103は、
図7に示すように垂直多関節ロボットの軸中心上に中心がある円を、J1軸を中心に回転させた球面となる。一方、
図8に示すように手先を45度傾けた姿勢、つまりピッチ角度θ=π+π/4の場合の特異点曲面F103は、中心位置がずれた円を、J1軸を中心に回転させた曲面になる。つまり手先姿勢とロボットの機構を元に、特異点曲面を計算することができる。本実施例では垂直多関節ロボットの機構を元に特異点曲面の計算方法を示したが、6自由度を持つロボットであれば、同様の考え方に基づいて、手先姿勢から特異点曲面は計算可能である。
【0033】
ステップS102において、経由点部分集合分割部203は、経由点記憶部303にある経由点データ403に基づいて、経由点を指定された分割数Nに分割する。これを
図9、
図10を用いて説明する。
【0034】
図9は、本発明の実施例におけるロボットの経由点の一例を示す説明図である。
【0035】
図10は、本発明の実施例におけるロボットの経由点の分割方法の一例を示す説明図である。
【0036】
具体的には、
図9は、単軸ロボット1の上に垂直多関節ロボット2が乗ったロボットを用いて、経由点P1からP5を通過させるときの経由点の一例を示す。このような経由点P1からP5の順列を区切ることで、それぞれが1以上の経由点を含む複数の経由点の部分集合に分割する処理が、分割処理である。分割によって生成される経由点の部分集合の数(すなわち分割数)をNとすると、経由点部分集合分割部203は、区切り位置を(N-1)個挿入する。例えば分割数Nが2の場合は、1つの区切り位置が挿入される。この区切り位置は、分割したときに部分集合の重心Vと、経由点との位置差分が最小となる個所に挿入される。つまり、経由点部分集合分割部203は、以下の数式が最小となるように区切り位置を挿入する。
【0037】
【0038】
なお、nは各経由点の個数を示し、V
kは、各部分集合kの重心位置(すなわち、各部分集合kに属する1以上の経由点の位置の重心)を示す。例えば、
図9の事例で2分割にする場合は、P3とP4の間に分割点が設定される。
【0039】
ステップS103において、統合軌道計画部201は、S104からS109の処理を、S102で計算した部分集合ごとに繰り返し実行する。
【0040】
ステップS104において、ロボット1目標位置算出部204は、ステップS101で計算した経由点における姿勢から計算した特異点曲面と可動範囲とを基に、ロボットの2の可動範囲内かつ特異点曲面外の範囲の積集合を計算する。この計算について、
図11および
図12を参照して説明する。
【0041】
図11は、本発明の実施例におけるロボットの各経由点における特異点曲面の一例を示す説明図である。
【0042】
図12は、本発明の実施例におけるロボットの特異点曲面の積集合の一例を示す説明図である。
【0043】
ここでは、例として、
図10に示すように経由点P1、P2およびP3を含む第1の部分集合および経由点P4およびP5を含む第2の部分集合が得られた場合の、第1の部分集合に関する特異点曲面の積集合を説明する。例えば、
図11のように経由点P1、P2、P3での手先姿勢から可動範囲F102および特異点曲面F103が得られた場合、
図12のように特異点曲面と可動範囲の間の範囲の積集合を計算する。具体的には、
図11においてハッチングによって示される範囲が、経由点P1、P2、P3における可動範囲F102の内側かつ特異点曲面F103の外側の範囲である。これらの範囲の積集合が、
図12においてハッチングで示されている。
【0044】
ステップS105において、ロボット1目標位置算出部204は、ステップS104で計算した特異点曲面の積集合を基に、例えば
図13に示す通り、積集合内にすべての経由点が含まれるようにロボット1の目標位置を計算する。この計算方法としてはいろいろな手段が考えられるが、例えばロボット1を可動範囲内で様々に動かし、経由点すべてが積集合内に含まれているか判定することで計算可能である。
【0045】
図13は、本発明の実施例におけるロボット1の軌道の一例を示す説明図である。
【0046】
図13の例では、ロボット2の手先の現在位置、経由点P1、P2およびP3のいずれもがステップS104において第1の部分集合に関して計算された積集合に含まれるように、ロボット1の目標位置が計算される。
【0047】
ステップS106において、ロボット1軌道計画部205は、干渉物構成記憶部302に含まれる干渉物構成データ402と干渉しないよう、ロボット1、つまり単軸ロボット160を動かす軌道を計画し、計画した軌道を軌道記憶部304に記憶する。この軌道の計算方法は様々な計算が考えられるが、例えば、RRT(Rapidly-Exploring Random Trees)法、または、単純に現在位置と目標位置までを等間隔に区切り干渉がないか判定する単純な手法など、任意の方法(公知の方法であってもよい)を採用することができる。例えば、RRT法については、Steven M. LaValle, “Rapidly-Exploring Random Trees: A New Tool for Path Planning”, http://msl.cs.illinois.edu/~lavalle/papers/Lav98c.pdf に記載されている。
【0048】
ステップS107において、ロボット2軌道計画部206は、干渉物構成記憶部302に含まれる干渉物構成データ402と干渉しないよう、ロボット2、つまり6軸ロボット170を動かす軌道を計画し、計画した軌道を軌道記憶部304に記憶する。この軌道の計算方法は様々な計算が考えられるが、例えば前述のRRT法、または、単純に現在位置と目標位置までを等間隔に区切り干渉がないか判定する単純な手法など、公知の方法を含む任意の方法のいずれかを採用することができる。これによって、
図14に示す通り、現在位置からP1、P2、P3を通過する軌道を計画することが可能となる。
【0049】
図14は、本発明の実施例におけるロボット2の軌道の一例を示す説明図である。
【0050】
図14には、ステップS105において計算されたロボット1の目標位置において、ロボット2の手先の現在位置、経由点P1、P2およびP3のいずれもがステップS104において第1の部分集合に関して計算された積集合に含まれるように計画された軌道の例を示している。
【0051】
ステップS108において、統合軌道計画部201は、ステップS107で軌道が計画できたかを判定し、計画の成否に応じて処理を分岐する。例えば、干渉しない軌道が見つからなかった場合、および、軌道の途中で特異点を通過してしまい手先姿勢の変化に対して関節角度が大きく動いてしまった場合などが失敗理由に当たり、それらの失敗理由に該当しない場合には軌道が計画できた、該当する場合には軌道計画に失敗したと判定される。
【0052】
ステップS108においてロボット2の軌道計画に失敗したと判定された場合(ステップS108:F)、ステップS109において、ロボット1目標位置算出部204は、ロボット1の目標位置を指定回数以上変更したかを判定する。指定回数以上すでに目標位置を変更していた場合(ステップS109:T)、ステップS103のループ処理から抜けて、ステップS111に進む。
【0053】
ステップS109においてロボット1の目標位置を指定回数以上変更していないと判定された場合(ステップS109:F)、ステップS110において、ロボット1目標位置算出部204は、ロボット1の目標位置を変更する。この目標位置の変更に関しても、ステップS105に記載した方法と同様に、ロボット1を可動範囲内で様々に動かし、経由点すべてが積集合内に含まれているか判定することで計算可能である。
【0054】
ステップS111において、統合軌道計画部201は、経由点の分割数Nがすでに経由点の個数と同じになっているかどうか判定する。分割数Nが経由点の個数と同じである場合(ステップS111:T)、統合軌道計画部201は、これ以上分割できないため、ステップS114に移り、計画失敗と判断する。
【0055】
ステップS112において、統合軌道計画部201は、経由点の分割数NをN+1に増加させ、ステップS102からの処理を再度行う。
【0056】
ステップS108においてロボット2の軌道計画に成功したと判定された場合(ステップS108:T)、ステップS113において、統合軌道計画部201は、計画した軌道に従ってロボット1およびロボット2を制御する。
【0057】
ステップS114において、統合軌道計画部201は、軌道計画に失敗したと判断し、ユーザに軌道計画に失敗した旨を通知し、処理を終了する。
【0058】
なお、経由点の分割数Nの初期値は1であってもよい。その場合、ステップS102が最初に実行されるときには、経由点部分集合分割部203は経由点集合の分割を行わず、ステップS112を経て2回目のステップS102が実行されるときに、分割数Nが2となり、その後、処理が繰り返されるたびに分割数Nが増加する。
【0059】
また、分割数Nが増加するときに、経由点部分集合分割部203は、既に生成された部分集合をさらに分割することで分割数を増やしてもよいし、それ以外の方法で分割数を増やしてもよい。
【0060】
[ロボットアーム構成データ]
図3は、本発明の実施例におけるロボットアーム構成記憶部301に格納されるロボットアーム構成データ401のテーブル構成の一例を示す説明図である。
【0061】
ロボットアーム構成データ401のテーブルは、関節情報およびリンク情報の分類から構成される。
【0062】
関節情報とは、ロボットアームを構成する各関節の情報であり、例えば、関節名、関節の種類、関節の位置、関節の向き、関節の動作下限、関節の動作上限、最大加速度および最大速度などの情報である。
【0063】
リンク情報とは、ロボットアームを構成するリンクの構成を表す情報であり、例えば、リンク名、親関節名、子関節名およびリンク形状からなる。リンク形状とは、リンクの実際の形状であり、例えば、STEP(Standard for the Exchange of Product model data)などのフォーマットで保存されるソリッドデータ、または、STL(STereoLithography)などのフォーマットで保存されるポリゴンデータなどである。
【0064】
[干渉物構成データ]
図4は、本発明の実施例における干渉物構成記憶部302に格納される干渉物構成データ402のテーブル構成の一例を示す説明図である。
【0065】
干渉物構成データ402のテーブルは、干渉物ID421、干渉物形状422および干渉物位置姿勢423を有する。干渉物形状422は、干渉物の形状を示すものであり、例えばSTEPなどのフォーマットで保存されるソリッドデータ、または、STLなどのフォーマットで保存されるポリゴンデータなどである。干渉物位置姿勢423は、干渉物が空間上のどの位置にどのような姿勢で置かれるかを示す情報であり、例えばAFFINE変換行列、または、3次元空間上での位置とそのときのRoll―Pitch-Yawなどであらわされる姿勢を示す情報である。
【0066】
[経由点データ]
図5は、本発明の実施例における経由点記憶部303に格納される経由点データ403のテーブル構成の一例を示す説明図である。
【0067】
経由点データ403のテーブルは、姿勢ID431、対象リンク名432および位置姿勢情報433からなる。対象リンク名432は、ロボットアーム構成データ401に含まれるリンク情報内のリンク名と対応するものである。また、位置姿勢情報433は、各経由点におけるロボット2の手先の位置および姿勢を示す情報であり、例えばAFFINE変換行列、または、3次元空間上での位置とそのときのRoll―Pitch-Yawなどであらわされる姿勢を示す情報である。
【0068】
[軌道データ]
図6は、本発明の実施例における軌道記憶部304に格納される軌道データ404のテーブル構成の一例を示す説明図である。
【0069】
軌道データ404は、本実施例の軌道計画装置100の出力に相当する。軌道データ404のテーブルは、軌道点ID441、コントローラ442、関節角度情報443および制御時刻444からなる。軌道点ID441は、各ロボットの軌道上の点(すなわち軌道点)を識別する。例えば本実施例の経由点P1からP5は、軌道点に含まれる。コントローラ442は、制御対象のロボット(本実施例ではロボット1またはロボット2)を示す。関節角度情報443は、制御対象のロボットがあるタイミングでとる関節角度の集合であり、関節名とその関節値の集合である。制御時刻444は、各軌道点への到達時刻を示す。例えば、ある軌道点(例えばT102)の制御時刻444は、そのひとつ前の軌道点(例えばT101)への到達時刻(例えば1.2)に、当該一つ前の軌道点(例えばT101)から当該軌道点(例えばT102)まで移動するための時間(例えば0.01)を加算した時刻(例えば1.21)である。
【0070】
[出力画面]
図15は、本発明の実施例における軌道計画装置100が出力する出力画面の一例を示す説明図である。
【0071】
ユーザがボタンO101を操作することで、入出力インターフェース装置130を介して入力された入力データが読み込まれる。ユーザがボタンO102を操作することで、軌道計画装置100は軌道計画計算を実行し、シミュレート画面、表O103およびロボット1位置グラフO104などを作成する。表O103には、例えば経由点の分割数および動作時間などが表示され、表O103内の行を選択することでロボット1位置を表したグラフO104も変化する。また、ユーザが表O103内の動作再生ボタンを押すことで、作成された動作計画に従うロボット1およびロボット2の動作の表示(例えばロボットの動作のアニメーション表示又は各経由点のロボットの位置の順次表示等)がシミュレート画面上で行われる。これによって、シミュレータ上で動作計画に基づく動作を確認することができる。
【0072】
[効果等]
以上に説明したように、本実施例の軌道計画装置100によれば、ロボットを複数連結した機構に対してもリアルタイムでの軌道計画を実現することが可能となる。
【0073】
また、本発明の実施形態のシステムは次のように構成されてもよい。
【0074】
(1)第1のロボット(例えばロボット160)と、第1のロボットの動作によって移動可能となるように第1のロボットに連結した第2のロボット(例えばロボット170)と、を制御するための軌道を計画する軌道計画装置(例えば軌道計画装置100)であって、処理装置(例えば処理装置110)と、記憶装置(例えば記憶装置120)と、を有し、記憶装置は、第2のロボットのアームの構成を示す情報(例えばロボットアーム構成記憶部301内の情報)と、第2のロボットの手先が順次経由する複数の経由点における手先の位置及び姿勢を示す情報(例えば経由点記憶部303内の情報)と、を保持し、処理装置は、第2のロボットのアームの構成と、各経由点における手先の位置及び姿勢と、に基づいて、各経由点における第2のロボットの特異点の集合である特異点曲面を計算し(例えばステップS104)、各経由点について計算された第2のロボットの特異点曲面と、第2のロボットの可動範囲と、に基づいて、第1のロボットの目標位置を決定し(例えばステップS105)、第1のロボットの目標位置までの軌道を計画し(例えばステップS106)、第1のロボットの目標位置における第2のロボットの手先が複数の経由点を経由する軌道を計画する(例えばステップS107)。
【0075】
(2)上記(1)において、処理装置は、複数の経由点を、各々が1以上の経由点を含む複数の部分集合に分割し、部分集合ごとに、各経由点について計算された第2のロボットの特異点曲面と、第2のロボットの可動範囲と、に基づいて、部分集合に含まれる1以上の経由点の全てが、第2のロボットの可動範囲内かつ各経由点の特異点曲面外の範囲の積集合に含まれるように、第1のロボットの目標位置を決定し、部分集合ごとに決定した第1のロボットの目標位置ごとに、第1のロボットの軌道を計画し、部分集合ごとに、第1のロボットの目標位置における第2のロボットの手先が部分集合に含まれる1以上の経由点を経由する軌道を計画する。
【0076】
(3)上記(2)において、処理装置は、第2のロボットの手先が複数の経由点を経由する軌道の計画に失敗した場合、第1のロボットの目標位置を変更し(例えばステップS110)、変更された第1のロボットの目標位置における第2のロボットの手先が複数の経由点を経由する軌道を計画する。
【0077】
(4)上記(3)において、処理装置は、第2のロボットの可動範囲内で、第2のロボットの特異点曲面を通過せず、かつ、他の物体と干渉しない軌道を計画できなかった場合に、第2のロボットの手先が複数の経由点を経由する軌道の計画に失敗したと判定する(例えばステップS108)。
【0078】
(5)上記(3)において、処理装置は、変更された第1のロボットの目標位置における第2のロボットの手先が複数の経由点を経由する軌道の計画に失敗した場合に、複数の経由点を、各々が1以上の前記経由点を含む複数の部分集合に分割する(例えばステップS112)。
【0079】
(6)上記(5)において、処理装置は、いずれかの部分集合において、第1のロボットの目標位置における第2のロボットの手先が部分集合に含まれる1以上の経由点を経由する軌道の計画に失敗した場合に、部分集合の分割数を増加させる(例えばステップS112)。
【0080】
(7)上記(1)において、第2のロボットは、6軸の自由度を持つロボットである。
【0081】
(8)上記(1)において、第2のロボットは、6軸の垂直多関節ロボットである。
【0082】
以上の構成によって、第2のロボットの可動範囲と特異点曲面を基に、第1のロボットの目標位置を算出することで、ロボットを複数連結した機構に対してもリアルタイムでの軌道計画を実現することができる。
【0083】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明のより良い理解のために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0084】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【0085】
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0086】
100・・・軌道計画装置
110・・・処理装置
120・・・記憶装置
130・・・入出力インターフェース装置
140・・・入出力装置
150・・・統合制御装置
160・・・ロボット1
170・・・ロボット2
201・・・統合軌道計画部
202・・・ロボット2特異点曲面算出部
203・・・経由点部分集合分割部
204・・・ロボット1目標位置算出部
205・・・ロボット1軌道計画部
206・・・ロボット2軌道計画部
301・・・ロボットアーム構成記憶部
302・・・干渉物構成記憶部
303・・・経由点記憶部
304・・・軌道記憶部