(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】動作経路生成装置、動作経路生成方法および動作経路生成プログラム
(51)【国際特許分類】
B25J 9/22 20060101AFI20231212BHJP
G05B 19/42 20060101ALI20231212BHJP
【FI】
B25J9/22 A
G05B19/42 J
(21)【出願番号】P 2020115042
(22)【出願日】2020-07-02
【審査請求日】2022-10-12
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】100106149
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【氏名又は名称】久保 貴則
(72)【発明者】
【氏名】石川 将太
【審査官】臼井 卓巳
(56)【参考文献】
【文献】国際公開第2020/017092(WO,A1)
【文献】特開2002-073130(JP,A)
【文献】特開2000-020117(JP,A)
【文献】特開2008-204161(JP,A)
【文献】米国特許出願公開第2011/0035051(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/02-19/06
G05B 13/02-19/42
(57)【特許請求の範囲】
【請求項1】
複数の関節(21、22)と前記関節により連結される複数の軸(11、12)とを持つロボット(10)の動作経路を生成する動作経路生成装置であって、
前記ロボットの姿勢を前記関節の角度で示す関節空間において、次の経由点(P)を探索する起点である親経由点(PP)を、決定済みの前記経由点から選択する親経由点選択部(142、342)と、
前記経由点を探索する領域である探索領域を設定する探索領域設定部(143)と、
前記探索領域内に、前記親経由点と連結する新たな前記経由点の候補となる経由点候補をランダムに生成する経由点候補生成部(144、444)と、
前記経由点候補が障害物と干渉しているかを判定する干渉判定部(145)と、
前記干渉判定部が、前記経由点候補が干渉しないと判定した場合に、前記経由点候補を前記経由点として追加する経由点追加部(146)と、を備え、
前記探索領域設定部は、
前記ロボットの作業空間における、全部の前記関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量である最大可能移動量よりも少ない全軸の移動量を探索時の最大移動量とし、
前記ロボットの作業空間において、前記ロボットの各軸の移動量が前記最大移動量を超えないでかつ全軸の移動量が前記最大移動量を越えない前記関節の変化角度領域を前記探索領域に設定する、動作経路生成装置。
【請求項2】
複数の関節(21、22)と前記関節により連結される複数の軸(11、12)とを持つロボット(10)の動作経路を生成する動作経路生成装置であって、
前記ロボットの姿勢を前記関節の角度で示す関節空間において、次の経由点(P)を探索する起点である親経由点(PP)を、決定済みの前記経由点から選択する親経由点選択部(142、342)と、
前記経由点を探索する領域である探索領域を設定する探索領域設定部(143)と、
前記探索領域内に、前記親経由点と連結する新たな前記経由点の候補となる経由点候補をランダムに生成する経由点候補生成部(144、444)と、
前記経由点候補が障害物と干渉しているかを判定する干渉判定部(145)と、
前記干渉判定部が、前記経由点候補が干渉しないと判定した場合に、前記経由点候補を前記経由点として追加する経由点追加部(146)と、を備え、
前記探索領域設定部は、全部の前記関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量である最大可能移動量よりも少ない全軸の移動量を探索時の最大移動量とし、全軸の移動量が前記最大移動量を越えない前記関節の変化角度領域を前記探索領域に設定し、
前記探索領域設定部が設定した前記探索領域に、前記規定最大角度を越える角度変化が可能な部分がある場合、前記規定最大角度を越える部分が小さくなるように前記探索領域を調整する探索領域調整部(243)を備え、
前記経由点候補生成部は、調整後の前記探索領域内に前記経由点候補を生成する、動作経路生成装置。
【請求項3】
複数の関節(21、22)と前記関節により連結される複数の軸(11、12)とを持つロボット(10)の動作経路を生成する動作経路生成装置であって、
前記ロボットの姿勢を前記関節の角度で示す関節空間において、次の経由点(P)を探索する起点である親経由点(PP)を、決定済みの前記経由点から選択する親経由点選択部(142、342)と、
前記経由点を探索する領域である探索領域を設定する探索領域設定部(143)と、
前記探索領域内に、前記親経由点と連結する新たな前記経由点の候補となる経由点候補をランダムに生成する経由点候補生成部(144、444)と、
前記経由点候補が障害物と干渉しているかを判定する干渉判定部(145)と、
前記干渉判定部が、前記経由点候補が干渉しないと判定した場合に、前記経由点候補を前記経由点として追加する経由点追加部(146)と、を備え、
前記探索領域設定部は、全部の前記関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量である最大可能移動量よりも少ない全軸の移動量を探索時の最大移動量とし、全軸の移動量が前記最大移動量を越えない前記関節の変化角度領域を前記探索領域に設定し、
前記親経由点選択部(342)は、前記経由点が前記親経由点として選択された回数が多いほど、前記経由点を前記親経由点として選択する確率を低くして、複数の前記経由点から前記親経由点を選択する、動作経路生成装置。
【請求項4】
複数の関節(21、22)と前記関節により連結される複数の軸(11、12)とを持つロボット(10)の動作経路を生成する動作経路生成装置であって、
前記ロボットの姿勢を前記関節の角度で示す関節空間において、次の経由点(P)を探索する起点である親経由点(PP)を、決定済みの前記経由点から選択する親経由点選択部(142、342)と、
前記経由点を探索する領域である探索領域を設定する探索領域設定部(143)と、
前記探索領域内に、前記親経由点と連結する新たな前記経由点の候補となる経由点候補をランダムに生成する経由点候補生成部(144、444)と、
前記経由点候補が障害物と干渉しているかを判定する干渉判定部(145)と、
前記干渉判定部が、前記経由点候補が干渉しないと判定した場合に、前記経由点候補を前記経由点として追加する経由点追加部(146)と、を備え、
前記探索領域設定部は、全部の前記関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量である最大可能移動量よりも少ない全軸の移動量を探索時の最大移動量とし、全軸の移動量が前記最大移動量を越えない前記関節の変化角度領域を前記探索領域に設定し、
前記経由点候補生成部(444)は、
前記経由点候補の座標値が決まっていない座標から、次に座標値を決定する座標を選択する座標選択部(445)と、
前記座標選択部が選択した座標の座標値を、前記探索領域内になるように決定する座標値決定部(446)とを備え、
前記座標選択部は、前記経由点候補の位置が定まるための全部の座標値が決まるまで、次に決定する座標値を決定する座標を選択し、
前記座標値決定部は、一部の座標値が決定済みである場合、決定済みの座標値と前記探索領域とにより制限される範囲内で、前記座標選択部が選択した座標の座標値を決定する、動作経路生成装置。
【請求項5】
請求項1または4に記載の動作経路生成装置であって、
前記探索領域設定部が設定した前記探索領域に、前記規定最大角度を越える角度変化が可能な部分がある場合、前記規定最大角度を越える部分が小さくなるように前記探索領域を調整する探索領域調整部(243)を備え、
前記経由点候補生成部は、調整後の前記探索領域内に前記経由点候補を生成する、動作経路生成
装置。
【請求項6】
請求項1、2、4、5のいずれかに記載の動作経路生成装置であって、
前記親経由点選択部(342)は、前記経由点が前記親経由点として選択された回数が多いほど、前記経由点を前記親経由点として選択する確率を低くして、複数の前記経由点から前記親経由点を選択する、動作経路生成
装置。
【請求項7】
プロセッサによって実施され、複数の関節(21、22)と前記関節により連結される複数の軸(11、12)とを持つロボット(10)の動作経路を生成する動作経路生成方法であって、
前記ロボットの姿勢を前記関節の角度で示す関節空間において、次の経由点(P)を探索する起点である親経由点(PP)を、決定済みの前記経由点から選択し(S20、S21)、
前記ロボットの作業空間における、全部の前記関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量である最大可能移動量よりも少ない全軸の移動量を探索時の最大移動量とし、前記ロボットの作業空間において、前記ロボットの各軸の移動量が前記最大移動量を超えないでかつ全軸の移動量が前記最大移動量を越えない前記関節の変化角度領域を、前記経由点を探索する領域である探索領域に設定し(S30)、
前記探索領域内に、前記親経由点と連結する新たな前記経由点の候補となる経由点候補をランダムに生成し(S40、S41、S42、S43)、
前記経由点候補が障害物と干渉しているかを判定し(S50)、
前記経由点候補が干渉しないと判定した場合に、前記経由点候補を前記経由点として追加する(S60)、動作経路生成方法。
【請求項8】
プロセッサによって実施され、複数の関節(21、22)と前記関節により連結される複数の軸(11、12)とを持つロボット(10)の動作経路を生成する動作経路生成装置として動作させる動作経路生成プログラムであって、
前記プロセッサが、
前記ロボットの姿勢を前記関節の角度で示す関節空間において、次の経由点(P)を探索する起点である親経由点(PP)を、決定済みの前記経由点から選択し(S20、S21)、
前記ロボットの作業空間における、全部の前記関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量である最大可能移動量よりも少ない全軸の移動量を探索時の最大移動量とし、前記ロボットの作業空間において、前記ロボットの各軸の移動量が前記最大移動量を超えないでかつ全軸の移動量が前記最大移動量を越えない前記関節の変化角度領域を、前記経由点を探索する領域である探索領域に設定し(S30)、
前記探索領域内に、前記親経由点と連結する新たな前記経由点の候補となる経由点候補をランダムに生成し(S40、S41、S42、S43)、
前記経由点候補が障害物と干渉しているかを判定し(S50)、
前記経由点候補が干渉しないと判定した場合に、前記経由点候補を前記経由点として追加する(S60)ように構成された動作経路生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
複数の関節を備えたロボットの動作経路を生成する技術に関する。
【背景技術】
【0002】
ロボットの動作経路を生成する装置が知られている。特許文献1には、確率的に動作経路を生成する処理中に、干渉判定の結果から、新しく経由点を生成する探索方向を調整する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示されている技術では、干渉判定の結果から徐々に動作経路の生成を効率化していく。そのため、多数の干渉判定結果が得られるまで、効率的に経路を生成できない。
【0005】
本開示は、この事情に基づいて成されたものであり、その目的とするところは、ロボットの動作経路を効率的に生成することができる動作経路生成装置、動作経路生成方法および動作経路生成プログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記目的は独立請求項に記載の特徴の組み合わせにより達成され、また、下位請求項は更なる有利な具体例を規定する。特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、開示した技術的範囲を限定するものではない。
【0007】
上記目的を達成するための動作経路生成装置に係る1つの開示は、
複数の関節(21、22)と関節により連結される複数の軸(11、12)とを持つロボット(10)の動作経路を生成する動作経路生成装置であって、
ロボットの姿勢を関節の角度で示す関節空間において、次の経由点(P)を探索する起点である親経由点(PP)を、決定済みの経由点から選択する親経由点選択部(142、342)と、
経由点を探索する領域である探索領域を設定する探索領域設定部(143)と、
探索領域内に、親経由点と連結する新たな経由点の候補となる経由点候補をランダムに生成する経由点候補生成部(144、444)と、
経由点候補が障害物と干渉しているかを判定する干渉判定部(145)と、
干渉判定部が、経由点候補が干渉しないと判定した場合に、経由点候補を経由点として追加する経由点追加部(146)と、を備え、
探索領域設定部は、ロボットの作業空間における、全部の関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量である最大可能移動量よりも少ない全軸の移動量を探索時の最大移動量とし、ロボットの作業空間において、ロボットの各軸の移動量が最大移動量を超えないでかつ全軸の移動量が最大移動量を越えない関節の変化角度領域を探索領域に設定する。
【0008】
この動作経路生成装置は、探索領域内で経由点候補をランダムに設定するので、探索領域が大きいほど、経由点候補が障害物に干渉する可能性が高くなる。つまり、干渉領域が大きいほど、経由点候補を生成しても、その経由点候補が障害物と干渉して経由点に追加できず、無駄な計算になる可能性が高くなる。
【0009】
そこで、この動作経路生成装置は、関節が角度変化したときの全軸の移動量に上限である最大移動量を設定する。この最大移動量を決定するために、全部の関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量である最大可能移動量よりも少ない全軸の移動量を探索時の最大移動量とする。そして、関節の変化角度を探索する探索領域は、全軸の移動量がその最大移動量を越えない関節の変化角度領域とする。
【0010】
このようにすることで、全部の関節が、それぞれ規定最大角度だけ変化する領域を探索領域とする場合に比較して、探索領域を狭くすることができる。探索領域の広さは干渉確率と比例すると考えられる。したがって、探索領域が狭くなることで、経由点候補が障害物と干渉してしまうことが低減されて、計算が無駄になる可能性が低減する。無駄な計算が低減することで、効率的に動作経路を探索できるようになる。
上記目的を達成するための動作経路生成装置に係る1つの開示は、複数の関節(21、22)と関節により連結される複数の軸(11、12)とを持つロボット(10)の動作経路を生成する動作経路生成装置であって、
ロボットの姿勢を関節の角度で示す関節空間において、次の経由点(P)を探索する起点である親経由点(PP)を、決定済みの経由点から選択する親経由点選択部(142、342)と、
経由点を探索する領域である探索領域を設定する探索領域設定部(143)と、
探索領域内に、親経由点と連結する新たな経由点の候補となる経由点候補をランダムに生成する経由点候補生成部(144、444)と、
経由点候補が障害物と干渉しているかを判定する干渉判定部(145)と、
干渉判定部が、経由点候補が干渉しないと判定した場合に、経由点候補を経由点として追加する経由点追加部(146)と、を備え、
探索領域設定部は、全部の関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量である最大可能移動量よりも少ない全軸の移動量を探索時の最大移動量とし、全軸の移動量が最大移動量を越えない関節の変化角度領域を探索領域に設定し、
探索領域設定部が設定した探索領域に、規定最大角度を越える角度変化が可能な部分がある場合、規定最大角度を越える部分が小さくなるように探索領域を調整する探索領域調整部(243)を備え、
経由点候補生成部は、調整後の探索領域内に経由点候補を生成する。
上記目的を達成するための動作経路生成装置に係る1つの開示は、複数の関節(21、22)と関節により連結される複数の軸(11、12)とを持つロボット(10)の動作経路を生成する動作経路生成装置であって、
ロボットの姿勢を関節の角度で示す関節空間において、次の経由点(P)を探索する起点である親経由点(PP)を、決定済みの経由点から選択する親経由点選択部(142、342)と、
経由点を探索する領域である探索領域を設定する探索領域設定部(143)と、
探索領域内に、親経由点と連結する新たな経由点の候補となる経由点候補をランダムに生成する経由点候補生成部(144、444)と、
経由点候補が障害物と干渉しているかを判定する干渉判定部(145)と、
干渉判定部が、経由点候補が干渉しないと判定した場合に、経由点候補を経由点として追加する経由点追加部(146)と、を備え、
探索領域設定部は、全部の関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量である最大可能移動量よりも少ない全軸の移動量を探索時の最大移動量とし、全軸の移動量が最大移動量を越えない関節の変化角度領域を探索領域に設定し、
親経由点選択部(342)は、経由点が親経由点として選択された回数が多いほど、経由点を親経由点として選択する確率を低くして、複数の経由点から親経由点を選択する。
上記目的を達成するための動作経路生成装置に係る1つの開示は、複数の関節(21、22)と関節により連結される複数の軸(11、12)とを持つロボット(10)の動作経路を生成する動作経路生成装置であって、
ロボットの姿勢を関節の角度で示す関節空間において、次の経由点(P)を探索する起点である親経由点(PP)を、決定済みの経由点から選択する親経由点選択部(142、342)と、
経由点を探索する領域である探索領域を設定する探索領域設定部(143)と、
探索領域内に、親経由点と連結する新たな経由点の候補となる経由点候補をランダムに生成する経由点候補生成部(144、444)と、
経由点候補が障害物と干渉しているかを判定する干渉判定部(145)と、
干渉判定部が、経由点候補が干渉しないと判定した場合に、経由点候補を経由点として追加する経由点追加部(146)と、を備え、
探索領域設定部は、全部の関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量である最大可能移動量よりも少ない全軸の移動量を探索時の最大移動量とし、全軸の移動量が最大移動量を越えない関節の変化角度領域を探索領域に設定し、
経由点候補生成部(444)は、
経由点候補の座標値が決まっていない座標から、次に座標値を決定する座標を選択する座標選択部(445)と、
座標選択部が選択した座標の座標値を、探索領域内になるように決定する座標値決定部(446)とを備え、
座標選択部は、経由点候補の位置が定まるための全部の座標値が決まるまで、次に決定する座標値を決定する座標を選択し、
座標値決定部は、一部の座標値が決定済みである場合、決定済みの座標値と探索領域とにより制限される範囲内で、座標選択部が選択した座標の座標値を決定する。
【0011】
上記目的を達成するための動作経路生成方法に係る1つの開示は、
プロセッサによって実施され、複数の関節(21、22)と関節により連結される複数の軸(11、12)とを持つロボット(10)の動作経路を生成する動作経路生成方法であって、
ロボットの姿勢を関節の角度で示す関節空間において、次の経由点(P)を探索する起点である親経由点(PP)を、決定済みの経由点から選択し(S20、S21)、
ロボットの作業空間における、全部の関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量である最大可能移動量よりも少ない全軸の移動量を探索時の最大移動量とし、ロボットの作業空間において、ロボットの各軸の移動量が最大移動量を超えないでかつ全軸の移動量が最大移動量を越えない関節の変化角度領域を、経由点を探索する領域である探索領域に設定し(S30)、
探索領域内に、親経由点と連結する新たな経由点の候補となる経由点候補をランダムに生成し(S40、S41、S42、S43)、
経由点候補が障害物と干渉しているかを判定し(S50)、
経由点候補が干渉しないと判定した場合に、経由点候補を経由点として追加する(S60)、動作経路生成方法である。
【0012】
上記目的を達成するための動作経路生成プログラムに係る1つの開示は、
プロセッサによって実施され、複数の関節(21、22)と関節により連結される複数の軸(11、12)とを持つロボット(10)の動作経路を生成する動作経路生成装置として動作させる動作経路生成プログラムであって、
プロセッサが、
ロボットの姿勢を関節の角度で示す関節空間において、次の経由点(P)を探索する起点である親経由点(PP)を、決定済みの経由点から選択し(S20、S21)、
ロボットの作業空間における、全部の関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量である最大可能移動量よりも少ない全軸の移動量を探索時の最大移動量とし、ロボットの作業空間において、ロボットの各軸の移動量が最大移動量を超えないでかつ全軸の移動量が最大移動量を越えない関節の変化角度領域を、経由点を探索する領域である探索領域に設定し(S30)、
探索領域内に、親経由点と連結する新たな経由点の候補となる経由点候補をランダムに生成し(S40、S41、S42、S43)、
経由点候補が障害物と干渉しているかを判定し(S50)、
経由点候補が干渉しないと判定した場合に、経由点候補を経由点として追加する(S60)ように構成された動作経路生成プログラムである。
【図面の簡単な説明】
【0013】
【
図1】第1実施形態の動作経路生成装置100の構成を示す図。
【
図2】動作経路を生成する対象となるロボット10を説明する図。
【
図3】
図1のプロセッサ140が実行する機能を示すブロック図。
【
図4】
図1のプロセッサ140が実行する処理を示すフローチャート。
【
図6】第2関節22を規定最大角度だけ角度変化させたときの移動領域Aを示す図。
【
図7】第1関節21を規定最大角度だけ角度変化させたときの移動領域Aを示す図。
【
図8】最大移動量となるように第1関節21を角度変化させた図。
【
図10】第2実施形態のプロセッサ240が実行する機能を示すブロック図。
【
図11】
図10のプロセッサ240が実行する処理を示すフローチャート。
【
図12】S30で設定した探索領域50と規定最大領域51を比較する図。
【
図13】第3実施形態のプロセッサ340が実行する機能を示すブロック図。
【
図14】
図13のプロセッサ340が実行する処理を示すフローチャート。
【
図15】プロセッサ340が親経由点PPを選択する処理を説明する図。
【
図16】第4実施形態のプロセッサ440が実行する機能を示す図。
【
図17】プロセッサ440が実行する処理を示すフローチャート。
【
図18】プロセッサ440が経由点候補Qを生成する処理を説明する図。
【発明を実施するための形態】
【0014】
<第1実施形態>
以下、実施形態を図面に基づいて説明する。
図1は、第1実施形態の動作経路生成装置100の構成を示す図である。動作経路生成装置100は、たとえば
図2に示すロボット10の動作経路を生成する装置である。動作経路とは、ロボット10の姿勢の時間変化を意味する。
【0015】
図2に示すロボット10は、2つの軸、すなわち、第1軸11および第2軸12と、2つの関節、すなわち、第1関節21および第2関節22を備えている。ロボット10は、実施形態を説明するための簡略化した構成である。軸の数および関節の数が、3つ以上でもよい。
【0016】
第1関節21は第1軸11の端にあり、第1軸11と直交する回転軸周りに第1軸11を回転可能にしている。第1軸11は、第1関節21により基台31に対して相対回転可能に、その基台31に連結されている。基台31は、床あるいは設置台に設置される。
【0017】
第2関節22は、第1軸11の第1関節21がない側の端にある。第2関節22は、第1軸11の端と第2軸12の端を連結しており、第1軸11および第2軸12と直交する回転軸周りに、第1軸11に対して第2軸12を相対回転可能にしている。
図2では、第1軸11および第2軸12の形状は棒状である。しかし、第1軸11、第2軸12の形状は棒状でなくてもよく、ロボット10の用途に応じて種々に変更することができる。
【0018】
第1軸11が基台31に対して相対回転可能な角度範囲、および、第2軸12が第1軸11に対して相対回転可能な範囲は、機械的機構あるいは電気的機構により、種々に設定できる。
【0019】
図2には、障害物40も示されている。障害物40は、第1軸11あるいは第2軸12が移動する際に障害となる物体であり、形状や位置は、ロボット10が設置される位置により異なる。
【0020】
説明を
図1に戻す。動作経路生成装置100は、入力装置110と、表示装置120と、制御装置130とを備えている。制御装置130は、プロセッサ140と、ROM150と、RAM160とを備えている。このような構成を備える動作経路生成装置100は、汎用的なコンピュータにより実現することもできる。
【0021】
入力装置110は、キーボードなどであり、ロボット10の構造および障害物40の位置を入力するために用いることができる。ロボット10の構造には、第1軸11、第2軸12の長さおよび幅、第1関節21の位置、第1軸11および第2軸12に対する第2関節22の相対位置などがある。障害物40の位置は、障害物40が存在する空間を座標により特定する。表示装置120には、制御装置130が生成した動作経路を表示することができる。
【0022】
不揮発性記憶媒体であるROM150には、プロセッサ140が実行する動作経路生成プログラムが記憶されている。プロセッサ140が、RAM160の一時記憶機能を利用しつつ、ROM150に記憶された動作経路生成プログラムを実行することで、プロセッサ140は、
図3に示す各部を実行する。プロセッサ140が
図3に示す各部を実行することは、動作経路生成プログラムに対応する動作経路生成方法が実行されることを意味する。
【0023】
図3に示すように、プロセッサ140は、生成条件登録部141、親経由点選択部142、探索領域設定部143、経由点候補生成部144、干渉判定部145、経由点追加部146、終了判定部147を備えている。これら各部が実行する処理は、
図4に示すフローチャートを用いて説明する。
【0024】
図4に示すフローチャートは、動作経路生成装置100を使用する者の開始操作により開始する。
図4に示すフローチャートを実行することで、関節空間において動作経路を生成することができる。
【0025】
関節空間は、ロボット10が持つ関節の数の次元により規定される座標空間である。本実施形態のロボット10は、2つの関節21、22を持つので、関節空間は、
図5に示すように2次元座標系になる。
図5において、横軸は第1関節21の角度RA1であり、縦軸は第2関節22の角度RA2である。
【0026】
第1関節21の角度RA1は、基台31に対する第1軸11の角度と考えることもできる。第2関節22の角度RA2は、第1関節21に対する第2関節22の角度と考えることもできる。ロボット10の姿勢は関節の角度RAにより表現できるので、関節空間において座標が決まることで、ロボット10の姿勢が決まる。
【0027】
ステップ(以下、ステップを省略する)S10は生成条件登録部141が実行する処理である。S10では、経路生成条件を登録する。経路生成条件の登録は、ユーザが入力装置110を用いて行う。経路生成条件には、ロボット10の構造、障害物40の位置、経路生成開始点、経路生成終了点が含まれる。なお、
図4に示す処理では、経由点追加も行う。しかし、経由点P(
図5参照)のみを予め追加しておいてもよい。すなわち、経路とは独立して、どこが障害物40に干渉しない点かを事前に設定しておいてもよい。
【0028】
親経由点選択部142が実行する処理であるS20では、親経由点PPを選択する。親経由点PPは、すでに決定済みの経由点Pからランダムに選択する。
図5には、親経由点PPと、4つの経由点Pが示されている。親経由点PPも、経由点Pの1つである。親経由点PPを含めると、
図5の例では5つの経由点Pが存在する。これら5つの経由点Pからランダムに親経由点PPを選択する。なお、経由点Pが1つもない場合には、経路生成開始点など、所定の開始点を親経由点PPとする。
【0029】
探索領域設定部143が実行する処理であるS30では、探索領域50を設定する。探索領域50は、関節空間において、親経由点PPに連結する新たな経由点Pを探索する領域である。
図5に示す探索領域50は、親経由点PPを中心とする楕円領域である。
【0030】
図6、
図7、
図8を用いて探索領域50を設定する際の演算を説明する。
図6は、第1関節21は固定し、第2関節22のみを規定最大角度だけ回転させたときの全軸の移動領域Aを示している。移動領域Aの大きさは2次元座標系における、全軸すなわち第1軸11と第2軸12の移動量を意味する。なお、以下では、移動領域Aの大きさを、移動量SAと記載することもある。
【0031】
規定最大角度は、機構的な制約から可能な最大の変化角度とすることができる。あるいは、規定最大角度を次の観点から決定してもよい。すなわち、規定最大角度を、動作経路を設定するに際し、関節空間において隣接する2つの経由点Pの距離を制限する観点から決定してもよい。
【0032】
規定最大角度が大きすぎると、動作経路が粗くなり過ぎて、障害物40と干渉する経路であるにも関わらず、障害物40と干渉しない経路と判断してしまう恐れが高くなる。そこで、規定最大角度を動作経路が粗くなり過ぎないように設定する。規定最大角度を具体的にどの程度の角度にするかは実験等に基づいて決定する。たとえば、規定最大角度は60°である。
【0033】
図7は、第2関節22は固定し、第1関節21のみを規定最大角度だけ回転させた場合である。
図6と比較すると、同じ規定最大角度だけ回転させても、第1関節21を回転させると、移動領域Aが大きくなることが分かる。換言すれば、第1関節21と第2関節22とを比較すると、第1関節21は、第2関節22よりも単位変化角度当たりの全軸(すなわち第1軸11と第2軸12)の移動量SAが大きい。
【0034】
移動領域Aが大きいほど、移動領域Aの中に障害物40が入る確率が高くなる。移動領域Aの中に障害物40が入ることは、第1軸11または第2軸12が障害物40と干渉することを意味する。第1軸11または第2軸12が障害物40と干渉する経由点Pを動作経路に含ませることはできない。したがって、第1軸11または第2軸12が障害物40と干渉する経由点Pを演算することは、演算が無駄になることを意味する。
【0035】
このような無駄な演算を少なくするために、第2関節22を基準関節とする。基準関節は、複数の関節21、22のうち単位変化角度当たりの全軸の移動量SAが最大ではない関節である。本実施形態では、関節は2つのみであるので、第2関節22が基準関節となる。
【0036】
S30では、基準関節である第2関節22を規定最大角度だけ変化させ、他の関節、すなわち第1関節21は固定したときの移動領域Aの大きさを経由点探索時の最大移動量とする。そして、第1関節21のみ、あるいは第1関節21と第2関節22の両方の角度を変化させた場合の移動領域Aの大きさが最大移動量を越えない、第1関節21の変化角度領域、第2関節22の変化角度領域を決定する。
【0037】
図8には、第1関節21のみを角度変化させ、第2関節22は固定して、移動領域Aの大きさが
図6の面積と同じになるようにした場合の角度変化前後を示す。
図8における第1軸11の角度変化量は、
図6に示す第2軸12の角度変化量よりも少ない。
【0038】
移動領域Aの大きさ、すなわち移動量SAは、たとえば、
図9に示す式1を用いて算出する。式1において、Nは関節数、L
jは関節jからj+1までの長さ、δθ
kは第k関節の移動量である。
【0039】
図6、
図8の比較から分かるように、同じ変化角度であっても、第1関節21のほうが、単位変化角度あたりの移動領域Aが大きい。したがって、第1関節21のほうが、角度変化範囲が狭くなる。そのため、
図5に示すように、探索領域50は、第1関節21の角度RA1が変化できる範囲が、第2関節22の角度RA2が変化できる範囲よりも狭い縦長の楕円になる。
【0040】
経由点候補生成部144が実行する処理であるS40では経由点候補Qを生成する。経由点候補Qは、S30で設定した探索領域50の中にランダムに生成する。
【0041】
干渉判定部145が実行する処理であるS50では、ロボット10の姿勢を、S40で生成した経由点候補Qとした場合に、ロボット10と障害物40とが非干渉であるか否かを判断する。ロボット10と障害物40とが非干渉である場合はS50の判断結果がYESとなりS60に進む。経由点追加部146が実行する処理であるS60では、S40で生成した経由点候補Qを経由点Pに追加する。その後、S70に進む。
【0042】
終了判定部147が実行する処理であるS70では、経路生成が完了したか否かを判断する。たとえば、S60で追加した経由点Pを中心とする探索領域50を設定した場合に、その探索領域50に経路生成終了点が含まれていれば、経由点Pと経路生成終了点を連結して経路生成完了とする。
【0043】
なお、経路生成開始点と経路生成終了点の間を複数の経由点Pで連結した後は、特許文献1に記載されている手法など、種々の手法を用いて、経路生成開始点と経路生成終了点の間の経路から、余剰な経由点Pを削除したり、複数の経由点Pを統合したりしてもよい。経路生成開始点と経路生成終了点の間を複数の経由点Pで連結した後、動作経路を単純化する処理は、本開示の主題ではないので、これ以上の説明はしない。
【0044】
[第1実施形態のまとめ]
以上、説明した第1実施形態の動作経路生成装置100は、第1関節21、第2関節22が角度変化したときの全軸の移動量SAに上限である最大移動量を設定する。この最大移動量を決定するために、単位変化角度当たりの全軸の移動量SAが相対的に少ない第2関節22を基準関節とする。この基準関節を規定最大角度だけ変化させ、第1関節21は固定したときの全軸の移動量SAを最大移動量とする。そして、全軸の移動量SAがその最大移動量を越えない第1関節21および第2関節22の変化角度領域を探索領域50とする。
【0045】
このようにすることで、第1関節21および第2関節22が、それぞれ規定最大角度だけ変化する領域を探索領域50とする場合に比較して、探索領域50を狭くすることができる。探索領域50の広さは干渉確率と比例すると考えられる。したがって、探索領域50が狭くなることで、経由点候補Qが障害物40と干渉してしまうことが低減されるので、計算が無駄になる可能性が低減する。無駄な計算が低減することで、効率的に動作経路が探索できるようになる。
【0046】
<第2実施形態>
次に、第2実施形態を説明する。この第2実施形態以下の説明において、それまでに使用した符号と同一番号の符号を有する要素は、特に言及する場合を除き、それ以前の実施形態における同一符号の要素と同一である。また、構成の一部のみを説明している場合、構成の他の部分については先に説明した実施形態を適用できる。
【0047】
図10に、第2実施形態のプロセッサ240が実行する機能を示す。プロセッサ240は、第1実施形態のプロセッサ140に代えて動作経路生成装置が備えるものである。プロセッサ240は、探索領域調整部243を備えている点が第1実施形態のプロセッサ140と相違する。探索領域調整部243が実行する処理は
図11を用いて説明する。
【0048】
図11は、プロセッサ240が実行する処理を示すフローチャートである。
図11のフローチャートは、S30を実行後にS31を実行する。S31は探索領域調整部243が実行する処理である。
【0049】
S31では、S30で設定した探索領域50が、前述した規定最大角度を越える角度変化が可能になっている場合に、探索領域50を調整する。
図12には、親経由点PPを中心として規定最大角度を半径とする円形の規定最大領域51を示している。
【0050】
図12に示す探索領域50は、上下に規定最大領域51の外に位置する部分がある。探索領域50の外縁は、移動量SAが最大移動量になるという観点で決定している。第1関節21の変化角度が少ない場合、移動量SAを最大移動量にしようとすると、第2関節22の変化角度が多くなる。したがって、探索領域50には、規定最大領域51の外になる部分が生じる可能性がある。
【0051】
しかし、規定最大角度よりも大きい変化角度となる部分を探索領域50に含ませる必要性は低い。そこで、S31では、S30で設定した探索領域50のうち、規定最大領域51の外側にある部分を減少させる。具体的には、S30で設定した探索領域50のうち規定最大領域51の外側にある部分を全部除外することが好ましい。ただし、S30で設定した探索領域50のうち規定最大領域51の外側にある部分の一部のみ除外してもよい。たとえば、
図12に示す探索領域50には、上下に規定最大領域51よりも外側に位置する部分がある。このうち、上側のみ、あるいは、下側のみを除外する調整をしてもよい。
【0052】
続くS40では、S31で調整した後の探索領域50の中に経由点候補Qを生成する。
【0053】
この第2実施形態によれば、最大移動量を越えないようにするという観点で設定した探索領域50に対して、規定最大領域51を越える部分を除外する調整をする。これにより、経由点Pを設定する必要性が低い部分に経由点候補Qを設定しまうことが少なくなる。よって、より効率的に動作経路を探索できる。
【0054】
<第3実施形態>
図13に、第3実施形態のプロセッサ340が実行する機能を示す。プロセッサ340は、第1実施形態のプロセッサ140に代えて動作経路生成装置が備えるものである。プロセッサ340は、親経由点選択部342が実行する処理が、第1実施形態の親経由点選択部142とは相違する。また、プロセッサ340は選択数加算部343を備えている。これら、親経由点選択部342および選択数加算部343が実行する処理は
図14を用いて説明する。
【0055】
図14は、プロセッサ340が実行する処理を示すフローチャートである。
図14のフローチャートでは、
図4で説明したS20に代えてS21を実行する。S21は親経由点選択部342が実行する処理である。
【0056】
S21では、重み付き親経由点選択処理を実行する。第1実施形態で説明したS20では、経由点Pから親経由点PPを選択する際に、いずれかの経由点Pを選択しやすくする処理はせずに、ランダムに親経由点PPを選択していた。それに対して、S21では、親経由点PPとして選択された回数が多い経由点Pほど、親経由点PPとして選択する確率を低くする。
【0057】
具体的には、各経由点Pに対して、それまでに親経由点PPとして選択された回数に1を加えた数の逆数を重みとして設定する。そして、重み付きのランダムサンプリングにより、全部の経由点Pから親経由点PPを選択する。
【0058】
図15には、P1、P2、P3、P4、P5の5つの経由点Pを示している。これらの経由点Pのうち、経由点P3は親経由点PPとして選択された回数が3回、経由点P5は親経由点PPとして選択された回数が0回であるとする。この場合、経由点P3は1/4が重みとなり、経由点P5は1/1が重みとなる。この重みがあるので、経由点P5は経由点P3よりも親経由点PPとして選択されやすい。
【0059】
S21を実行後はS22へ進む。S22は選択数加算部343が実行する処理である。S22では、S21で親経由点PPとして選択された経由点Pに対して、親経由点PPとして選択された回数に1を加算する。
【0060】
この第3実施形態では、親経由点PPとして選択された回数が多い経由点Pほど、親経由点PPとして選択する確率を低くしている。これにより、広い範囲に経由点Pを広げることができる。
【0061】
<第4実施形態>
図16に、第4実施形態のプロセッサ440が実行する機能を示す。プロセッサ440は、第1実施形態のプロセッサ140に代えて動作経路生成装置が備えるものである。プロセッサ440は、これまでの経由点候補生成部144に代えて経由点候補生成部444を備える。この経由点候補生成部444は、座標選択部445と座標値決定部446を備えた構成である。経由点候補生成部444、座標選択部445、座標値決定部446が実行する処理は
図17を用いて説明する。
【0062】
図17は、プロセッサ440が実行する処理を示すフローチャートである。
図17のフローチャートは、
図4で説明したS40に代えてS41、S42、S43を実行する。S41は座標選択部445が実行する処理であり、S42は座標値決定部446が実行する処理であり、S43は経由点候補生成部444が実行する処理である。
【0063】
S41では、経由点候補Qの座標値を生成する座標を選択する。経由点候補Qの座標は、角度RA1座標の座標値と、角度RA2の座標値により定まる。S41では、これらのうち、経由点候補Qの座標値が決まっていない座標から、次のS42で座標値を生成する座標を選択する。どちらの座標も選択されていない場合、ランダムに、座標値を選択する座標を選択することができる。あるいは、先に選択する座標を事前に決めておいてもよい。
【0064】
S42では、S41で選択した座標の座標値を、探索領域50の中になるように生成する。
図18を例にして具体的に説明する。たとえば、S41で角度RA1座標を選択したとする。この場合、探索領域50の中に経由点候補Qが入るようにするために、線分52上に座標値を生成する。線分52上のどの座標値とするかはランダムに決定する。
【0065】
S43では、経由点候補Qの位置が確定したか否かを判断する。すなわち、経由点候補Qの座標値として、角度RA1座標の座標値と、角度RA2の座標値とがともに生成されたか否かを判断する。S43の判断結果がNOであればS41に戻り、YESであればS50に進む。
【0066】
S41に戻った場合を説明する。1回目のS41において角度RA1座標を選択したとすると、2回目のS41では角度RA2座標を選択する。続いてS42を実行する。1回目のS42において経由点候補Qの角度RA1座標の座標値がQ1であったとする。この場合、2回目のS42では、Q1上において探索領域50内となる線分53上に、角度RA2の座標値を生成する。つまり、角度RA2の座標値は、Q2からQ3の範囲に生成する。Q2からQ3の範囲のどの値とするかはランダムに決定する。
【0067】
この第4実施形態とは異なり、比較例として、第1関節21の変化角度と第2関節22の変化角度を独立して決定して経由点候補Qを決定する場合を考える。この場合、
図18に示す矩形54内にランダムに経由点候補Qが生成されることになる。矩形54には、探索領域50の外となる部分がある。したがって、比較例の場合、第1関節21の変化角度と第2関節22の変化角度を独立して決定した座標が探索領域50の外になる可能性がある。この場合、その座標を補正するか、その座標を取り消して再決定する必要がある。
【0068】
しかし、この第4実施形態のようにすれば、探索領域50の外に経由点候補Qが生成されることがない。したがって、経由点候補Qの位置を補正したり、再決定したりする必要がないので、効率的に動作経路を生成できる。
【0069】
以上、実施形態を説明したが、開示した技術は上述の実施形態に限定されるものではなく、次の変形例も開示した範囲に含まれ、さらに、下記以外にも要旨を逸脱しない範囲内で種々変更して実施できる。
【0070】
<変形例1>
たとえば、実施形態では、2つの関節21、22を持つロボット10に対して動作経路を生成する場合を説明した。しかし、動作経路を生成するロボット10が、3つ以上の関節を持っていてもよい。3つ以上の関節を持つロボット10の場合、必ずしも、複数の関節のうち単位変化角度当たりの全軸の移動量SAが最小の関節を基準関節とする必要はない。たとえば、3つの関節を持つロボット10において、単位変化角度当たりの全軸の移動量SAが2番目に小さい関節を基準関節としてもよい。
【0071】
<変形例2>
実施形態および変形例1では、複数の関節のうち単位変化角度当たりの全軸の移動量SAが最大ではない所定の基準関節を規定最大角度だけ変化させ、他の関節は固定したときの全軸の移動量SAを、経由点探索時の最大移動量としていた。しかし、経由点探索時の最大移動量の決定方法は、実施形態および変形例1で開示した決定方法に限られない。
【0072】
(変形例2-1)
たとえば、全軸それぞれの変化角度を規定最大角度よりも小さい変化角度としたときの全軸の移動量SAを経由点探索時の最大移動量としてもよい。実施形態のロボット10を例にして、かつ、上記変化角度を30度としてより具体的に説明する。全軸の移動量SAは、第1軸11を30度変化させ、かつ、第1軸11の変化角度ごとに第2軸12を30度変化させた場合に生じる移動領域Aの大きさである。
【0073】
(変形例2-2)
また、第1軸11の基端すなわち第1関節21から第2軸12の先端までの直線距離が最も長くなる状態において、第1軸11を規定最大角度よりも小さい角度だけ角度変化させたときの移動領域Aの大きさを経由点探索時の最大移動量としてもよい。第1関節21から第2軸12の先端までの直線距離が最も長くなる状態は、第1軸11を回転させたときに移動領域Aが最も大きくなる状態である。
【0074】
ここで、全部の関節がそれぞれ規定最大角度だけ変化したときの全軸の移動量SAを最大可能移動量とする。上記変形例2-1、2-2における全軸の移動量SAは、いずれも、最大可能移動量よりも少ない。探索時の最大移動量を最大可能移動量よりも少なくすれば、探索時の最大移動量を最大可能移動量とする場合に比較して、探索領域50を狭くすることができる。
【0075】
<変形例3>
第2実施形態と第3実施形態を組み合わせてもよい。また、第2実施形態と第4実施形態を組み合わせてもよい。また、第3実施形態と第4実施形態を組み合わせてもよい。
【0076】
<変形例4>
本開示に記載の制御装置及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサを構成する専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御装置及びその手法は、専用ハードウェア論理回路により、実現されてもよい。もしくは、本開示に記載の制御装置及びその手法は、コンピュータプログラムを実行するプロセッサと一つ以上のハードウェア論理回路との組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
【符号の説明】
【0077】
10:ロボット 11:第1軸 12:第2軸 21:第1関節 22:第2関節 31:基台 40:障害物 50:探索領域 51:規定最大領域 52:線分 53:線分 54:矩形 100:動作経路生成装置 110:入力装置 120:表示装置 130:制御装置 140:プロセッサ 141:生成条件登録部 142:親経由点選択部 143:探索領域設定部 144:経由点候補生成部 145:干渉判定部 146:経由点追加部 147:終了判定部 150:ROM 160:RAM 240:プロセッサ 243:探索領域調整部 340:プロセッサ 342:親経由点選択部 343:選択数加算部 440:プロセッサ 444:経由点候補生成部 445:座標選択部 446:座標値決定部 A:移動領域 P:経由点 PP:親経由点 Q:経由点候補