(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023065311
(43)【公開日】2023-05-12
(54)【発明の名称】自律移動体、走行経路生成方法、及び、プログラム
(51)【国際特許分類】
G05D 1/02 20200101AFI20230502BHJP
【FI】
G05D1/02 H
【審査請求】未請求
【請求項の数】21
【出願形態】OL
(21)【出願番号】P 2022164290
(22)【出願日】2022-10-12
(31)【優先権主張番号】P 2021175622
(32)【優先日】2021-10-27
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000006297
【氏名又は名称】村田機械株式会社
(74)【代理人】
【識別番号】110000202
【氏名又は名称】弁理士法人新樹グローバル・アイピー
(72)【発明者】
【氏名】酒井 司
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301AA03
5H301BB01
5H301BB02
5H301BB13
5H301CC03
5H301CC06
5H301CC10
5H301DD02
5H301GG16
(57)【要約】
【課題】自律移動の開始時における自律移動体の配置位置の許容範囲を大きくする。
【解決手段】自律移動体1は、本体11と、移動部15と、走行経路生成部136と、記憶部131と、を備える。移動部15は、本体11を移動させる。走行経路生成部136は、自律移動体1に移動させる自律移動経路を生成する。記憶部131は、移動領域A内に定められた第1移動経路T1の第1移動経路データTD1を記憶する。走行経路生成部136は、移動領域A内に設定された設定点と第1移動経路T1の移動開始点STとを結ぶ二点間経路を生成し、この二点間経路と第1移動経路T1とを含む自律移動経路を生成する。
【選択図】
図22
【特許請求の範囲】
【請求項1】
自律移動経路を自律移動する自律移動体であって、
車体部と、
前記車体部を移動させる移動部と、
前記自律移動経路を生成する走行経路生成部と、
所定の移動領域内に定められた第1移動経路を記憶する記憶部と、を備え、
前記走行経路生成部は、前記移動領域内に設定された設定点と前記第1移動経路の移動開始点とを結ぶ二点間経路を生成し、前記二点間経路と前記第1移動経路とを含む前記自律移動経路を生成する、
自律移動体。
【請求項2】
前記記憶部は、前記移動領域外の所定の点を移動開始点とし、前記設定点を移動終了点とする第2移動経路を記憶し、
前記走行経路生成部は、前記第2移動経路の移動終了点と前記第1移動経路の移動開始点とを結ぶ前記二点間経路を生成し、前記第2移動経路と前記二点間経路と前記第1移動経路とを含む前記自律移動経路を生成する、請求項1に記載の自律移動体。
【請求項3】
前記設定点は、前記自律移動経路に沿って前記車体部を自律移動させる自律走行モードの開始時における前記車体部の配置位置であり、
前記走行経路生成部は、前記配置位置と前記第1移動経路の移動開始点とを結ぶ前記二点間経路を生成する、請求項1に記載の自律移動体。
【請求項4】
自律移動経路を自律移動する自律移動体であって、
車体部と、
前記車体部を移動させる移動部と、
前記自律移動経路を生成する走行経路生成部と、
所定の移動領域内に定められた第1移動経路と、前記移動領域内に移動開始点を有する第3移動経路と、を記憶する記憶部と、を備え、
前記走行経路生成部は、前記第1移動経路の自律移動が中断されたときの中断点と、前記第3移動経路の移動開始点とを結ぶ第1二点間経路を生成し、前記第1二点間経路と前記第3移動経路とを含む前記自律移動経路を生成する、
自律移動体。
【請求項5】
前記第3移動経路の移動終了点は、前記移動領域内に存在し、
前記走行経路生成部は、前記第3移動経路の移動終了点と前記中断点とを結ぶ第2二点間経路を生成し、前記第1二点間経路と前記第3移動経路と第2二点間経路を含む前記自律移動経路を生成する、
請求項4に記載の自律移動体。
【請求項6】
前記第3移動経路は複数存在し、
前記走行経路生成部は、複数の第3移動経路のそれぞれに対して前記第1二点間経路を生成し、複数の前記第1二点間経路のうち移動距離が最小のものを最終的な前記第1二点間経路として選択する、請求項5に記載の自律移動体。
【請求項7】
前記第3移動経路は複数存在し、
前記走行経路生成部は、複数の第3移動経路のそれぞれに対して前記第1二点間経路を生成し、複数の前記第1二点間経路のうち旋回量が最小のものを最終的な前記第1二点間経路として選択する、請求項5に記載の自律移動体。
【請求項8】
前記走行経路生成部は、二点間経路を生成するときに、
前記二点間経路の始点および終点に前記車体部の移動方向を設定し、
前記始点又は前記終点を接点とし、前記移動方向を旋回方向とする第1旋回円を設定し、
前記第1旋回円と外接し、かつ、前記移動領域内に収まる第2旋回円を設定し、
前記第1旋回円と前記第2旋回円の接点から開始されるか、又は、前記接点で終了するDubins経路を設定し、
前記第1旋回円と前記Dubins経路とを含む経路のうち前記移動領域内に収まる経路を前記二点間経路として選択する、
請求項1~7のいずれかに記載の自律移動体。
【請求項9】
前記第1旋回円及び前記第2旋回円は、前記車体部の最小回転半径からなる円である、請求項8に記載の自律移動体。
【請求項10】
前記車体部は台車をけん引し、
前記第1旋回円及び前記第2旋回円は、前記車体部がけん引する前記台車を含めた最小回転半径からなる円である、請求項8に記載の自律移動体。
【請求項11】
自律移動体が自律移動する自律移動経路を生成する走行経路生成方法であって、
所定の移動領域内に定められた第1移動経路を生成するステップと、
前記移動領域内に設定された設定点と前記第1移動経路の移動開始点とを結ぶ二点間経路を生成するステップと、
前記二点間経路と前記第1移動経路とを含む前記自律移動経路を生成するステップと、
を備える、走行経路生成方法。
【請求項12】
前記移動領域外の所定の点を移動開始点とし、前記設定点を移動終了点とする第2移動経路を生成するステップをさらに備え、
前記二点間経路を生成するステップは、前記第2移動経路の移動終了点と前記第1移動経路の移動開始点とを結ぶ前記二点間経路を生成するステップを含み、
前記自律移動経路を生成するステップは、前記第2移動経路と前記二点間経路と前記第1移動経路とを含む前記自律移動経路を生成するステップを含む、
請求項11に記載の走行経路生成方法。
【請求項13】
前記設定点は、前記自律移動経路に沿って前記自律移動体を自律移動させる自律走行モードの開始時における前記自律移動体の配置位置であり、
前記二点間経路を生成するステップは、前記配置位置と前記第1移動経路の移動開始点とを結ぶ前記二点間経路を生成するステップを含む、
請求項11に記載の走行経路生成方法。
【請求項14】
自律移動体が自律移動する自律移動経路を生成する走行経路生成方法であって、
所定の移動領域内に定められた第1移動経路を生成するステップと、
前記移動領域内に移動開始点を有する第3移動経路を生成するステップと、
前記第1移動経路の自律移動が中断されたときの中断点と、前記第3移動経路の移動開始点とを結ぶ第1二点間経路を生成するステップと、
前記第1二点間経路と前記第3移動経路とを含む前記自律移動経路を生成するステップと、
を備える、走行経路生成方法。
【請求項15】
前記第3移動経路の移動終了点は、前記移動領域内に存在し、
前記第3移動経路の移動終了点と前記中断点とを結ぶ第2二点間経路を生成するステップをさらに備え、
前記自律移動経路を生成するステップは、前記第1二点間経路と前記第3移動経路と第2二点間経路を含む前記自律移動経路を生成するステップを含む、
請求項14に記載の走行経路生成方法。
【請求項16】
前記第3移動経路は複数存在し、
前記第1二点間経路を生成するステップは、複数の第3移動経路のそれぞれに対して前記第1二点間経路を生成し、複数の前記第1二点間経路のうち移動距離が最小のものを最終的な前記第1二点間経路として選択するステップを含む、請求項15に記載の走行経路生成方法。
【請求項17】
前記第3移動経路は複数存在し、
前記第1二点間経路を生成するステップは、複数の第3移動経路のそれぞれに対して前記第1二点間経路を生成し、複数の前記第1二点間経路のうち旋回量が最小のものを最終的な前記第1二点間経路として選択するステップを含む、請求項15に記載の走行経路生成方法。
【請求項18】
二点間経路を生成するステップは、
前記二点間経路の始点および終点に前記自律移動体の移動方向を設定するステップと、
前記始点又は前記終点を接点とし、前記移動方向を旋回方向とする第1旋回円を設定するステップと、
前記第1旋回円と外接し、かつ、前記移動領域内に収まる第2旋回円を設定するステップと、
前記第1旋回円と前記第2旋回円の接点から開始されるか、又は、前記接点で終了するDubins経路を設定するステップと、
前記第1旋回円と前記Dubins経路とを含む経路のうち前記移動領域内に収まる経路を前記二点間経路として選択するステップと、
を含む、請求項11に記載の走行経路生成方法。
【請求項19】
前記第1旋回円及び前記第2旋回円は、前記自律移動体の最小回転半径からなる円である、請求項18に記載の走行経路生成方法。
【請求項20】
前記自律移動体は台車をけん引し、
前記第1旋回円及び前記第2旋回円は、前記自律移動体がけん引する前記台車を含めた最小回転半径からなる円である、請求項18に記載の走行経路生成方法。
【請求項21】
請求項11~20のいずれかに記載の走行経路生成方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定の自律移動経路を自律移動する自律移動体、この自律移動経路を生成する走行経路生成方法、及び、この走行経路生成方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【0002】
特定の領域内に定められた経路を自律移動する自律移動体が知られている。例えば、特定の領域を塗り潰す経路を自律移動する自律移動体が知られている(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特定の領域内に定められた経路を従来の自律移動体に自律移動させるためには、自律移動の開始前に、当該経路の移動開始点、又は、当該移動開始点を中心とした所定の範囲内に自律移動体を配置させる必要があった。自律移動体の移動開始点又は所定の範囲内への配置は、自律移動体を作業者が操作することで行われる。
【0005】
移動開始点は「点」であり、また、上記の所定の範囲は一般的には狭い範囲として設定されている。つまり、自律移動を開始するには、限られた範囲内に自律移動体を適切に配置する必要がある。しかしながら、作業者の操作により自律移動体を限られた範囲内に配置することは難しく、作業者にとっては負担となる。
【0006】
本発明の目的は、自律移動の開始時における自律移動体の配置位置の許容範囲を大きくすることにある。
【課題を解決するための手段】
【0007】
以下に、課題を解決するための手段として複数の態様を説明する。これらの態様は、必要に応じて任意に組み合せることができる。
本発明の一見地に係る自律移動体は、自律移動経路を自律移動する移動体である。自律移動体は、車体部と、移動部と、走行経路生成部と、記憶部と、を備える。移動部は、車体部を移動させる。走行経路生成部は、自律移動体に移動させる自律移動経路を生成する。記憶部は、所定の移動領域内に定められた第1移動経路を記憶する。
【0008】
上記の自律移動体において、走行経路生成部は、移動領域内に設定された設定点と第1移動経路の移動開始点とを結ぶ二点間経路を生成し、この二点間経路と第1移動経路とを含む自律移動経路を生成する。
【0009】
上記の自律移動体においては、移動領域内に設定点が設定されたときに、当該設定点から第1移動経路の移動開始点までの二点間経路が生成され、この二点間経路と第1移動経路とを含む自律移動経路が生成される。すなわち、上記の自律移動体は、移動領域内の任意の点から自律移動を開始できる。第1移動経路が定められる移動領域は広い領域であるので、移動領域内の任意の点から自律移動が開始可能であることにより、自律移動の開始時における自律移動体の配置位置の許容範囲を大きくできる。
【0010】
上記の自律移動体において、記憶部は、第2移動経路を記憶してもよい。第2移動経路は、移動領域外の所定の点を移動開始点とし、上記の設定点を移動終了点とする経路である。つまり、第2移動経路の移動終了点は、移動領域内に存在する。この場合、走行経路生成部は、第2移動経路の移動終了点と第1移動経路の移動開始点とを結ぶ二点間経路を生成し、第2移動経路とこの二点間経路と第1移動経路とを含む自律移動経路を生成してもよい。これにより、自律移動の開始時における自律移動体の配置位置を移動領域外の任意の点まで拡げることができる。
【0011】
上記の自律移動体において、設定点は、自律走行モードの開始時における車体部の配置位置であってもよい。自律走行モードは、自律移動経路に沿って車体部を自律移動させる走行モードである。この場合、走行経路生成部は、車体部の配置位置と第1移動経路の移動開始点とを結ぶ二点間経路を生成してもよい。これにより、自律走行モードの開始時に自律移動体が移動領域内のいずれかの位置に配置されていれば、自律移動を開始できる。
【0012】
本発明の他の見地に係る自律移動体は、自律移動経路を自律移動する移動体である。自律移動体は、車体部と、移動部と、走行経路生成部と、記憶部と、を備える。移動部は、車体部を移動させる。走行経路生成部は、自律移動体に移動させる自律移動経路を生成する。記憶部は、所定の移動領域内に定められた第1移動経路と、移動領域内に移動開始点を有する第3移動経路と、を記憶する。
【0013】
上記の自律移動体において、走行経路生成部は、第1移動経路の自律移動が中断されたときの中断点と、第3移動経路の移動開始点とを結ぶ第1二点間経路を生成し、第1二点間経路と第3移動経路とを含む自律移動経路を生成する。
【0014】
上記の自律移動体においては、第1移動経路を自律移動中に当該自律移動が中断されたときに、走行経路生成部が、自律移動が中断されたときの車体部の位置である中断点と、第3移動経路の移動開始点とを結ぶ二点間経路(第1二点間経路)を生成し、第1二点間経路と第3移動経路とを含む自律移動経路を生成している。
【0015】
これにより、第1移動経路上の任意の中断点で自律移動が中断されても、当該任意の中断点から次の自律移動(第3移動経路の自律移動)を開始できる。この結果、例えば、第1移動経路の自律移動が中断されたときに、中断点から第3移動経路の移動開始点まで、自律移動体を作業者の操作により移動させる必要がなくなる。
【0016】
上記の自律移動体において、第3移動経路の移動終了点は、移動領域内に存在してもよい。この場合、走行経路生成部は、第3移動経路の移動終了点と中断点とを結ぶ二点間経路(第2二点間経路)を生成し、第1二点間経路と第3移動経路と第2二点間経路を含む自律移動経路を生成してもよい。これにより、第1移動経路の自律移動が中断したときに、第1移動経路の任意の中断点から第3移動経路を経て同じ中断点に戻ってくるといった自律移動が可能となる。
【0017】
上記の自律移動体において、第3移動経路は複数存在してもよい。この場合、走行経路生成部は、複数の第3移動経路のそれぞれに対して第1二点間経路を生成し、複数の第1二点間経路のうち移動距離が最小のものを最終的な第1二点間経路として選択してもよい。これにより、自律移動体の移動距離を優先した自律移動を実行できる。
【0018】
上記の自律移動体において、第3移動経路は複数存在してもよい。この場合、走行経路生成部は、複数の第3移動経路のそれぞれに対して第1二点間経路を生成し、複数の第1二点間経路のうち旋回量が最小のものを最終的な第1二点間経路として選択してもよい。これにより、自律移動体の旋回量を優先した自律移動を実行できる。その結果、例えば、旋回による移動領域のダメージを抑制できる。
【0019】
上記の自律移動体において、走行経路生成部は、上記の二点間経路を生成するときに、二点間経路の始点および終点に車体部の移動方向を設定し、始点又は終点を接点とし、それぞれの移動方向を旋回方向とする第1旋回円を設定し、第1旋回円と外接しかつ移動領域内に収まる第2旋回円を設定し、第1旋回円と第2旋回円の接点から開始されるか、又は、当該接点で終了するDubins経路を設定し、第1旋回円とDubins経路とを含む経路のうち移動領域内に収まる経路を二点間経路として選択してもよい。これにより、移動領域内のより多くの始点と終点の組み合わせに対して、移動領域内に収まる二点間経路を生成できる。
【0020】
上記の自律移動体において、第1旋回円及び第2旋回円は、車体部の最小回転半径からなる円であってもよい。これにより、自律移動体の走行性能を考慮しつつ最短の二点間経路を生成できる。
【0021】
上記の自律移動体において、車体部は台車をけん引してもよい。この場合、第1旋回円及び第2旋回円は、車体部がけん引する台車を含めた最小回転半径からなる円であってもよい。これにより、台車をけん引する自律移動体の走行性能を考慮しつつ最短の二点間経路を生成できる。
【0022】
本発明のさらに他の見地に係る走行経路生成方法は、自律移動体が自律移動する自律移動経路を生成する方法である。走行経路生成方法は、以下のステップを備える。
◎所定の移動領域内に定められた第1移動経路を生成するステップ。
◎移動領域内に設定された設定点と第1移動経路の移動開始点とを結ぶ二点間経路を生成するステップ。
◎二点間経路と第1移動経路とを含む自律移動経路を生成するステップ。
【0023】
上記の走行経路生成方法においては、移動領域内に設定点が設定されたときに、当該設定点から第1移動経路の移動開始点までの二点間経路が生成され、この二点間経路と第1移動経路とを含む自律移動経路が生成される。すなわち、上記の走行経路生成方法は、移動領域内の任意の点から自律移動を開始できる自律移動経路を生成できる。第1移動経路が定められる移動領域は広い領域であるので、移動領域内の任意の点から自律移動が開始可能であることにより、自律移動の開始時における自律移動体の配置位置の許容範囲を大きくできる。
【0024】
上記の走行経路生成方法は、第2移動経路を生成するステップをさらに備えてもよい。第2移動経路は、移動領域外の所定の点を移動開始点とし、上記の設定点を移動終了点とする経路である。この場合、二点間経路を生成するステップは、第2移動経路の移動終了点と第1移動経路の移動開始点とを結ぶ二点間経路を生成するステップを含む。また、自律移動経路を生成するステップは、第2移動経路と二点間経路と第1移動経路とを含む自律移動経路を生成する。これにより、自律移動の開始時における自律移動体の配置位置を移動領域外の任意の点まで拡げることができる。
【0025】
上記の走行経路生成方法において、設定点は、自律走行モードの開始時における自律移動体の配置位置であってもよい。自律走行モードは、自律移動経路に沿って自律移動体を自律移動させる走行モードである。この場合、二点間経路を生成するステップは、自律移動体の配置位置と第1移動経路の移動開始点とを結ぶ二点間経路を生成するステップを含んでもよい。これにより、自律走行モードの開始時に自律移動体が移動領域内のいずれかの位置に配置されていれば、自律移動を開始可能な自律移動経路を生成できる。
【0026】
本発明のさらに他の見地に係る走行経路生成方法は、自律移動体が自律移動する自律移動経路を生成する方法である。走行経路生成方法は、以下のステップを備える。
◎所定の移動領域内に定められた第1移動経路を生成するステップ。
◎移動領域内に移動開始点を有する第3移動経路を生成するステップ。
◎第1移動経路の自律移動が中断されたときの中断点と、第3移動経路の移動開始点とを結ぶ第1二点間経路を生成するステップ。
◎第1二点間経路と第3移動経路とを含む自律移動経路を生成するステップ。
【0027】
上記の走行経路生成方法においては、第1移動経路を自律移動中に当該自律移動が中断されたときに、自律移動が中断されたときの自律移動体の位置である中断点と、第3移動経路の移動開始点とを結ぶ二点間経路(第1二点間経路)が生成され、第1二点間経路と第3移動経路とを含む自律移動経路が生成されている。
【0028】
これにより、第1移動経路上の任意の中断点で自律移動が中断されても、当該任意の中断点から次の自律移動(第3移動経路の自律移動)を開始できる自律移動経路を生成できる。この結果、例えば、第1移動経路の自律移動が中断されたときに、中断点から第3移動経路の移動開始点まで、自律移動体を作業者の操作により移動させる必要がなくなる。
【0029】
上記の走行経路生成方法において、第3移動経路の移動終了点は、移動領域内に存在してもよい。この場合、走行経路生成方法は、第3移動経路の移動終了点と中断点とを結ぶ第2二点間経路を生成するステップをさらに備えてもよい。また、自律移動経路を生成するステップは、第1二点間経路と第3移動経路と第2二点間経路を含む自律移動経路を生成するステップを含んでもよい。これにより、第1移動経路の自律移動が中断したときに、第1移動経路の任意の中断点から第3移動経路を経て同じ中断点に戻ってくるといった自律移動が可能となる自律移動経路を生成できる。
【0030】
上記の走行経路生成方法において、第3移動経路は複数存在してもよい。この場合、第1二点間経路を生成するステップは、複数の第3移動経路のそれぞれに対して第1二点間経路を生成し、複数の第1二点間経路のうち移動距離が最小のものを最終的な第1二点間経路として選択するステップを含んでもよい。これにより、自律移動体の移動距離を優先した自律移動を実行できる。
【0031】
上記の走行経路生成方法において、第3移動経路は複数存在してもよい。この場合、第1二点間経路を生成するステップは、複数の第3移動経路のそれぞれに対して第1二点間経路を生成し、複数の第1二点間経路のうち旋回量が最小のものを最終的な第1二点間経路として選択するステップを含んでもよい。これにより、自律移動体の旋回量を優先した自律移動を実行できる。その結果、例えば、旋回による移動領域のダメージを抑制できる。
【0032】
上記の走行経路生成方法において、二点間経路を生成するステップは、以下のステップを含んでもよい。
◎二点間経路の始点および終点に自律移動体の移動方向を設定するステップ。
◎始点又は終点を接点とし、それぞれの移動方向を旋回方向とする第1旋回円を設定するステップ。
◎第1旋回円と外接し、かつ、移動領域内に収まる第2旋回円を設定するステップ。
◎第1旋回円と第2旋回円の接点から開始されるか、又は、当該接点で終了するDubins経路を設定するステップ。
◎第1旋回円とDubins経路とを含む経路のうち移動領域内に収まる経路を二点間経路として選択するステップ。
【0033】
これにより、移動領域内のより多くの始点と終点の組み合わせに対して、移動領域内に収まる二点間経路を生成できる。
【0034】
上記の走行経路生成方法において、第1旋回円及び第2旋回円は、自律移動体の最小回転半径からなる円であってもよい。これにより、自律移動体の走行性能を考慮しつつ最短の二点間経路を生成できる。
【0035】
上記の走行経路生成方法において、自律移動体は台車をけん引してもよい。この場合、第1旋回円及び第2旋回円は、自律移動体がけん引する台車を含めた最小回転半径からなる円であってもよい。これにより、台車をけん引する自律移動体の走行性能を考慮しつつ最短の二点間経路を生成できる。
【0036】
本発明のさらなる他の見地にかかるプログラムは、上記の走行経路生成方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【0037】
自律移動の開始時における自律移動体の配置位置の許容範囲を大きくできる。
【図面の簡単な説明】
【0038】
【
図6】動作例1における自律移動体の動作を示すフローチャート。
【
図7】二点間経路の生成動作を示すフローチャート。
【
図8】第1移動経路の移動開始点と自律走行モードの開始時の自律移動体の配置位置の一例を示す図。
【
図9】位置P1を基準とした第1旋回円の一例を示す図。
【
図10】位置P1を基準とした第1旋回円に外接する第2旋回円の一例を示す図。
【
図11】
図10の第2旋回円に対して生成されるDubins経路の一例を示す図。
【
図12】位置P1と移動開始点とを結ぶ二点間経路の候補の一例を示す図。
【
図13】移動開始点を基準とした第1旋回円の一例を示す図。
【
図14】移動開始点を基準とした第1旋回円に外接する第2旋回円の一例を示す図。
【
図15】
図14の第2旋回円に対して生成されるDubins経路の一例を示す図。
【
図16】第1旋回円とDubins経路とを含む移動経路の候補の他の一例を示す図。
【
図18】動作例2における自律移動体の動作を示すフローチャート。
【
図19】動作例2における第2移動経路の例を示す図。
【
図20】動作例3における自律移動体の動作を示すフローチャート。
【
図22】動作例3における自律移動の一例を示す図。
【
図23】第3移動経路の設定の一例を示す図である。
【発明を実施するための形態】
【0039】
1.第1実施形態
(1)自律走行体の概略
以下、
図1~
図3を用いて、自律移動体1を説明する。
図1は、ゴルフ練習場の模式的平面図である。
図2及び
図3は、自律移動体の模式的斜視図である。本実施形態に係る自律移動体1は、ゴルフ練習場2にて用いられる集球排球機である。
【0040】
ゴルフ練習場2は、ゴルフ球Bが散乱した球散乱エリア3と、集められたゴルフ球Bが排出される排球溝7とを有する。この実施形態では、球散乱エリア3には芝生が植えられている。排球溝7は、球散乱エリア3内に設けられた、ゴルフ球Bを排球するための溝である。排球溝7に排球されたゴルフ球Bは、回収プール(図示せず)まで送られる。
【0041】
自律移動体1は、球散乱エリア3を自律走行しながら当該エリアに散乱したゴルフ球Bを集球する(集球動作)。また、球散乱エリア3から排球溝7の側まで自律走行して、球散乱エリア3にて集球したゴルフ球Bを、排球溝7に排球する(排球動作)。つまり、自律移動体1は、ゴルフ練習場2において、再現走行しながら集球及び排球を行う装置である。
【0042】
上記の「再現走行」とは、作業者により教示された情報に基づいて生成された経路を自律移動して再現することである。「再現走行」には、例えば、予め作業者が教示した経路そのものを自律走行して再現する「コピー走行」と、予め作業者が教示した特定領域内を塗り潰すよう計画された塗り潰し経路を自律移動して再現する「塗り潰し走行」と、所定の二点間を結ぶよう計画された二点間経路を自律移動して再現する「二点間走行」と、が含まれる。自律移動体1は、上記「再現走行」のために個別に教示又は計画された複数の経路を連続的に自律移動する。
【0043】
(2)自律移動体の構成
以下、
図2及び
図3を用いて、自律移動体1の構成を説明する。自律移動体1は、本体11(車体部の一例)と、制御部13とを備えている。本体11は、自律移動体1の本体を構成する。本体11には、移動部15が設けられる。移動部15は、自律移動体1を移動させる装置である。移動部15は、例えば、車輪15aと、本体11に設けられ車輪15aを回転させる走行モータ15b(
図4)と、を有する。
【0044】
本体11は、連結構造21によって、集球排球部23と連結されている。集球排球部23は、自律移動体1によりけん引される台車であり、ゴルフ球Bの集球と排球とを行う。具体的には、集球排球部23は、ゴルフ球Bを集球する集球部24と、ゴルフ球Bを排球する排球部25とを有している。集球部24は、自律移動体1の移動に伴って回転するピックアップロータ24aにより構成される。なお、集球部24を、集球部モータ(図示せず)によりピックアップロータ24aが回転する構成としてもよい。排球部25は、排球部モータ25a(
図4)と、それによって駆動される排球ゲート25bを有している。
【0045】
制御部13は、本体11の内部に設けられ、CPU、記憶装置(RAM、ROM、ハードディスクドライブ、SSDなど)、各種インターフェースなどを備えたコンピュータシステムである。制御部13は、自律移動体1に関する各種制御を行う。なお、制御部13により実行される各種制御の全部又は一部は、制御部13を構成するコンピュータシステムにて実行可能なプログラムにより実現されてもよい。この場合、当該プログラムは、記憶装置に記憶されていてもよい。制御部13の全部又は一部は、SoC(System on Chip)などのカスタムICとして実現されていてもよい。
【0046】
また、制御部13は、1つのコンピュータシステムにより構成されていてもよいし、複数のコンピュータシステムにより構成されていてもよい。複数のコンピュータシステムにより制御部13を構成する場合、例えば、制御部13の複数の機能ブロックにて実現される機能を複数のコンピュータシステムに任意の割合で振り分けて実行させることができる。
【0047】
自律移動体1は、各種センサ等をさらに備える。具体的には、自律移動体1は、GNSS(Global Navigation Satellite System/全球測位衛星システム)受信機17(
図4)と、方角検出センサ19(
図4)と、を備える。GNSS受信機17は、本体11に設けられ、ゴルフ練習場2における自律移動体1の地上の現在位置に関する情報(位置情報)を取得する。これにより、自律移動体1は自己位置を把握しながら屋外を走行することができる。
【0048】
方角検出センサ19は、本体11に設けられ、ゴルフ練習場2における自律移動体1(本体11)の向き(方角)を測定する。方角検出センサ19は、例えば、自律移動体1の位置における地磁気の向きを測定する地磁気センサ、GNSSコンパスなどである。
【0049】
他の実施形態において、本体11にGNSS受信機17を一対設けて方角検出センサ19としてもよい。例えば、一対のGNSS受信機17を本体11の所定の軸(例えば、自律移動体1の直進方向と平行な軸)上に並べて配置して、ゴルフ練習場2における本体11の向き(方角)を、一対のGNSS受信機17から得られる2つの座標値(緯度と経度の組み合わせ)から算出できる(ムービングベースライン(MovingBaseline)法)。GNSS受信機17にて得られる座標を用いて方角を算出することにより、周囲の磁性体の影響なく自律移動体1の方角を容易に測定(算出)できる。
【0050】
さらに、自律移動体1の方角は、例えば、GNSS受信機17にて測定した緯度及び経度の移動前後の変化からも算出できる。
【0051】
また、集球排球部23には、球の貯留量検出器41(
図4)が設けられている。貯留量検出器41は、集球排球部23に貯蔵されたゴルフ球Bの貯蔵量を測定する。集球排球部23では、ゴルフ球Bの貯留量が所定の閾値を超えると、排球可能な状態になる。貯留量検出器41は、例えば、貯まったゴルフ球Bの重量を測定する重量センサ、貯まったゴルフ球Bの上面を検出する光電センサである。
【0052】
(3)制御部の機能ブロック構成
図4を用いて、制御部13の機能ブロック構成を説明する。
図4は、制御部の機能ブロック構成を示す図である。制御部13は、記憶部131と、走行制御部132と、自律移動指令部133と、位置算出部134と、排球制御部135と、走行経路生成部136と、を機能ブロックとして有する。
【0053】
記憶部131は、制御部13を構成するコンピュータシステムの記憶装置の記憶領域の一部又は全部であり、自律移動体1に関する各種情報を記憶する。具体的には、記憶部131は、移動領域データDAと、第1移動経路データTD1と、走行スケジュール101を記憶する。
【0054】
移動領域データDAは、移動領域Aを表すデータである。移動領域Aは、
図5に示すように、ゴルフ練習場2の球散乱エリア3に設定される。後述するように、移動領域データDAは、作業者の操作により自律移動体1を移動領域Aの外周に沿って移動させることで教示される。そのため、移動領域データDAは、位置算出部134より得られた位置情報の点群として表される。
図5は、移動領域と第1移動経路T1の一例を示す図である。
【0055】
第1移動経路データTD1は、第1移動経路T1を表すデータである。第1移動経路T1は、移動領域A内に定められた経路である。本実施形態において、第1移動経路T1は、
図5に示すように、移動領域Aを塗り潰すように自律移動体1を移動させる経路(塗り潰し経路と呼ぶ)である。第1移動経路データTD1は、第1移動経路T1の各通過点を表す位置情報の点群として表される。自律移動体1は、球散乱エリア3に散乱したゴルフ球Bを集球する際に、塗り潰し経路である第1移動経路T1に沿って自律移動する。
【0056】
走行スケジュール101は、自律移動体1に対して自律的に再現走行させたい自律移動経路を表す点群を記憶するデータである。本実施形態においては、走行スケジュール101には、再現走行させたい経路だけでなく、集球排球部23に集球されたゴルフ球Bをどのタイミングで排球するかについてのデータも記憶されている。
【0057】
走行制御部132は、走行モータ15bを制御する。走行制御部132には、走行経路教示部37による操作指令、自律移動指令部133からの移動指令が入力される。走行経路教示部37は、例えば、ハンドル、リモコンなどの自律移動体1の操作手段である。走行制御部132が走行経路教示部37から操作指令を入力することにより、自律移動体1は、走行経路教示部37を用いた作業者の操作に従って移動できる。
【0058】
自律移動指令部133は、自律移動体1を自律移動させるための移動指令を走行制御部132に出力する。具体的には、自律移動指令部133は、走行スケジュール101に含まれる点群のうち移動目標となる点と、位置算出部134から入力した自律移動体1の位置情報と、の差に基づいて、走行モータ15bの駆動量を算出し、当該駆動量を移動指令として走行制御部132に出力する。また、自律移動指令部133は、走行スケジュール101に示された排球タイミングにて、集球排球部23からゴルフ球Bを排球する指令(排球指令)を、排球制御部135に出力する。
【0059】
位置算出部134は、GNSS受信機17にて取得された情報に基づいて、ゴルフ練習場2における自律移動体1の現在位置を算出する。具体的には、位置算出部134は、RTK(Real Time Kinematic)測位により求められた現在地の位置を、緯度と経度との組み合わせとして測定する。その他、センチメータ級測位補強サービス(Centi-meter Level Augumentation Service、CLAS)による現在地の位置を用いることもできる。また、位置算出部134は、方角検出センサ19からの信号に基づいて、自律移動体1の向き(方角)を算出する。
【0060】
以上のように、位置算出部134は、自律移動体1の位置情報として、自律移動体1の存在位置の緯度と経度、及び、その位置における自律移動体1の向きを算出する。なお、位置算出部134は、自律移動体1の向きを、例えば、北を基準(0°)として時計回りに増加する角度として表す。
【0061】
排球制御部135は、排球教示部39に対して操作があったタイミングで排球部モータ25aを駆動することで排球ゲート25bを動作させ、集球排球部23に集球されたゴルフ球Bを排球する。排球教示部39は、例えば、押しボタン等からなる操作盤である。
【0062】
走行経路生成部136は、上記の移動経路及び走行スケジュール101を生成して記憶部131に記憶する。走行経路生成部136は、移動領域A内の任意の位置に設定した設定点と第1移動経路T1の移動開始点STとを結ぶ二点間経路を生成し、当該二点間経路と第1移動経路T1とを含む自律移動経路を表す走行スケジュール101を生成する。すなわち、走行スケジュール101は、移動領域A内の設定点から上記の二点間経路に沿って移動して、第1移動経路T1の移動開始点STまで移動し、さらに、当該移動開始点STから第1移動経路T1に沿って移動して移動終了点に到達する経路を表すデータである。
【0063】
また、走行経路生成部136は、排球教示部39による操作がなされたタイミング、つまり、集球排球部23からゴルフ球Bを排球するタイミングを、走行スケジュール101に反映できる。具体的には、走行経路生成部136は、例えば、走行スケジュール101において、排球教示部39による操作がなされたタイミングにおける自律移動体1の位置、及び/又は、排球教示部39による操作がなされたタイミングにおける時刻(自律移動を開始してからの経過時刻)と、排球教示部39により操作がなされたことを示す情報と、を関連付けて記憶できる。
【0064】
制御部13は、走行モード切替部43により、自律移動体1の走行モードを切り替えることができる。自律移動体1が実行可能な走行モードとしては、教示走行モードと自律走行モードとがある。教示走行モードは、自律移動体1に自律移動させたい経路を、作業者が自律移動体1を操作することで教示する走行モードである。自律走行モードは、走行スケジュール101に示された自律移動経路に沿って自律移動体1を自律移動させる走行モードである。走行モード切替部43は、例えば、スイッチである。
【0065】
(4)自律移動体の動作
(4-1)動作例1
以下、自律移動体1の動作を説明する。上記の自律移動体1では、移動領域A内の任意の二点間を連結する二点間経路を生成できる。このため、自律移動体1では、移動領域A内の任意の位置から自律移動の移動開始点までの経路を生成して、移動領域A内の任意の点から自律移動を開始できる。
図6を用いて、この機能を応用した、自律走行モードの実行のために自律移動体1を自律移動の開始位置まで移動させ、その後、自律走行モードを実行する動作(動作例1)を説明する。
図6は、動作例1における自律移動体の動作を示すフローチャートである。
【0066】
最初に、ステップS1において、移動領域Aが教示される。具体的には、走行モード切替部43の操作により走行モードを教示走行モードとし、その後、作業者が走行経路教示部37を操作して、移動領域Aの外周に沿って自律移動体1を移動させる。教示走行モードを実行して作業者の操作により自律移動体1を移動中に、走行経路生成部136が、所定の時間周期(例えば、制御部13の制御周期)毎に、位置算出部134にて算出された位置情報を取得する。このようにして、移動領域Aの外周を複数の位置情報の点群として表した移動領域データDAが生成される。生成された移動領域データDAは、記憶部131に記憶される。
【0067】
移動領域データDAを取得後、走行経路生成部136は、ステップS2において、移動領域A内に第1移動経路T1を生成する。具体的には、走行経路生成部136が、公知の塗り潰し経路の生成アルゴリズムを実行することにより、移動領域A内を塗り潰す塗り潰し経路を第1移動経路T1として生成する。このとき、走行経路生成部136は、第1移動経路T1を複数の位置情報の点群として表す第1移動経路データTD1を生成する。生成された第1移動経路データTD1は、記憶部131に記憶される。
【0068】
移動領域データDAと第1移動経路データTD1とを生成後、自律移動体1の自律移動が開始される。具体的には、走行モード切替部43の操作により走行モードを自律走行モードとすることで、自律移動が開始される。
【0069】
自律移動が開始されると、ステップS3において、制御部13が、作業者に対して、自律移動体1を移動領域A内に移動させるよう指示する。この指示は、例えば、自律移動体1を移動領域A内に移動させる旨を、自律移動体1に設けられたディスプレイに表示するか、及び/又は、音声として発することで行うことができる。この指示により、作業者が走行経路教示部37を操作して、移動領域A内に自律移動体1を移動させる。
【0070】
作業者の操作による自律移動体1の移動の終了後、走行経路生成部136は、ステップS4において、自律移動体1が移動領域A内に存在しているか否かを判断する。具体的には、走行経路生成部136は、自律移動体1の現在位置の位置情報を位置算出部134から取得し、取得した位置情報が移動領域データDAにより定められる領域内に含まれていれば、自律移動体1が移動領域A内に存在していると判断できる。
【0071】
自律移動体1が移動領域A内に存在していない場合(ステップS4で「No」)、制御部13が、作業者に対して、自律移動体1を移動領域A内に移動させるよう再度指示する。この指示により、作業者が走行経路教示部37を再度操作して、移動領域A内に自律移動体1を移動させる。
【0072】
一方、自律移動体1が移動領域A内に存在している場合(ステップS4で「Yes」)、走行経路生成部136は、ステップS5において、自律移動体1の現在位置を設定点として設定し、当該設定点(自律移動体1の現在位置)と第1移動経路T1の移動開始点STとを結ぶ二点間経路を生成する。上記の二点間経路を自律移動中に自律移動体1が移動領域A外の障害物等と干渉することを回避するため、走行経路生成部136は、Dubins経路を用いて、移動領域Aに収まる二点間経路を生成する。本実施形態における二点間経路の生成方法は、後ほど詳しく説明する。二点間経路の生成にDubins経路を用いることで、自律移動体1の任意の位置と第1移動経路T1の移動開始点STとを結ぶ二点間経路を生成できる。また、「Dubins経路」を用いて二点間経路を生成することで、後退させることが難しく、旋回時の回転半径に制約がある自律移動体1のための経路を生成できる。
【0073】
次に、走行経路生成部136は、ステップS6において、ステップS5にて生成した二点間経路と第1移動経路T1とを含む走行スケジュール101を生成する。具体的には、走行経路生成部136は、例えば、ステップS5にて生成した二点間経路を表す点群の後に第1移動経路データTD1を連結して、走行スケジュール101を生成する。
【0074】
走行スケジュール101を生成後、制御部13が、ステップS7において、生成した走行スケジュール101に従って、自律移動体1を自律移動させる。これにより、自律移動体1は、移動領域A内の自律移動体1の配置位置から上記の二点間経路を通って第1移動経路T1の移動開始点STまで自律移動し、その後、当該移動開始点STから第1移動経路T1に沿って移動終了点まで自律移動する。なお、走行スケジュール101に従って自律移動体1が自律移動する動作については、後ほど詳しく説明する。
【0075】
従来の自律移動体では、自律移動させたい移動経路の移動開始点STかその近傍の領域内に自律移動体を配置しなければ自律移動を開始できなかったが、動作例1においては、自律移動体1が移動領域A内のいずれかの位置に配置されていれば、その位置から自律移動を開始できる。つまり、動作例1では、自律移動モードの開始時における自律移動体1の配置位置が、第1移動経路T1の移動開始点STから離れた位置であっても、その配置位置が移動領域A内にあれば自律移動を開始できる。さらに言い換えると、移動領域Aは広い領域なので、動作例1では、自律移動の開始時における自律移動体1の配置位置の許容範囲を「移動領域A内」まで大きくできる。この結果、動作例1では、自律移動体1を自律移動の開始位置まで移動させるための作業者の負担を軽減できる。
【0076】
(4-2)二点間経路の生成動作
以下、
図7を用いて、上記のステップS5における二点間経路の生成動作を具体的に説明する。
図7は、二点間経路の生成動作を示すフローチャートである。以下では、
図8に示すように、移動領域Aの左上に第1移動経路T1の移動開始点STが存在し、自律走行モードの開始時に自律移動体1が位置P1に配置された場合を例にとって説明する。なお、位置P1に付された矢印は、当該位置P1における自律移動体1の向きを示す。
図8は、第1移動経路の移動開始点と自律走行モードの開始時の自律移動体の配置位置の一例を示す図である。
【0077】
最初に、走行経路生成部136は、ステップS51において、位置P1と移動開始点STにおいて移動方向を設定する。位置P1における移動方向は、位置P1に自律移動体1を配置したとき自律移動体1の向きである。移動開始点STの移動方向は、第1移動経路T1の移動開始点STにおける自律移動体1の向きである。ここで、位置P1における移動方向を移動方向D1とし、移動開始点STにおける移動方向を移動方向D2とする。
【0078】
次に、ステップS52において、走行経路生成部136は、Dubins経路のみで、位置P1から移動開始点STまでの二点間経路の生成を試みる。なお、ステップS52において、Dubins経路の旋回円は、自律移動体1が集球排球部23を連結した状態で旋回できる最小回転半径を有する。
【0079】
その後、走行経路生成部136は、ステップS53において、ステップS52で生成されたDubins経路うち、移動領域A内に収まるものがあるか否かを判定する。ステップS52で生成したDubins経路の中に移動領域A内に収まるものがある場合(ステップS53で「Yes」)、二点間経路の生成動作は、ステップS62に進む。ステップS62において、走行経路生成部136は、移動領域A内に収まるDubins経路のうち最短のものを、位置P1と移動開始点STとを結ぶ二点間経路として選択する。
【0080】
一方、ステップS52で生成したDubins経路の中に移動領域A内に収まるものがない場合(ステップS53で「No」)、走行経路生成部136は、以下の動作により二点間経路を生成する。
【0081】
走行経路生成部136は、ステップS54において、二点間経路の始点である位置P1を接点とし、位置P1に設定された移動方向D1を旋回方向とする第1旋回円C1を設定する。また、第1旋回円C1は、自律移動体1の走行能力(旋回能力)を考慮して、自律移動体1が集球排球部23を連結した状態で旋回できる最小回転半径を有するように設定される。
図8に示す位置P1に対しては、例えば、
図9に示すような左回りの第1旋回円C1が設定される。
図9は、位置P1を基準とした第1旋回円の一例を示す図である。
【0082】
第1旋回円C1を設定後、走行経路生成部136は、ステップS55において、移動領域Aに収まり、かつ、第1旋回円C1と外接する第2旋回円C2を設定する。第2旋回円C2も、第1旋回円C1と同様に、自律移動体1が集球排球部23を連結した状態で旋回できる最小回転半径を有するように設定される。一方、第2旋回円C2は、第1旋回円C1とは逆方向に回転する。
図9に示す第1旋回円C1に対しては、例えば、
図10に示すような第2旋回円C2が設定される。
図9に示す第1旋回円C1は左回りであるので、
図10に示す第2旋回円C2は右回りである。
図10は、位置P1を基準とした第1旋回円に外接する第2旋回円の一例を示す図である。
【0083】
第2旋回円C2を設定後、走行経路生成部136は、ステップS56において、第1旋回円C1と第2旋回円C2との接点P2を始点とし、移動開始点STを終点とするDubins経路を生成する。
図10に示す第2旋回円C2に対しては、
図11の太線にて示すようなDubins経路が生成される。
図11は、
図10の第2旋回円に対して生成されるDubins経路の一例を示す図である。
【0084】
図11に示すように、
図10に示す第2旋回円C2に対して生成されるDubins経路は、接点P2と、接点P2から開始される右回りの第2旋回円C2と、第2旋回円C2に接する接線TL1と、接線TL1と接し移動開始点STにて終了する右回りの第3旋回円C3と、から構成される、いわゆるRSR経路である。第3旋回円C3は、移動開始点STを円周上に含み、移動開始点から移動方向D2に回転する円である。また、第3旋回円C3は、第1旋回円C1及び第2旋回円C2と同様に、自律移動体1が集球排球部23を連結した状態で旋回できる最小回転半径を有する。
【0085】
上記のDubins経路を生成後、走行経路生成部136は、ステップS57において、第1旋回円C1とステップS56で生成したDubins経路とを結合した経路を、位置P1と移動開始点STとを結ぶ二点間経路の候補として生成する。具体的には、
図12に示すように、位置P1から接点P2まで左回りに第1旋回円C1に沿って移動する経路と、ステップS56で生成したDubins経路と、を接点P2で連結して経路が生成される。
図12は、位置P1と移動開始点とを結ぶ二点間経路の候補の一例を示す図である。
【0086】
上記のステップS57を実行することで、二点間経路の候補の1つとして、
図12に示すような、位置P1から接点P2まで左回りに第1旋回円C1に沿って移動し、接点P2から第2旋回円C2と接線TL1の接点P3まで右回りに第2旋回円C2に沿って移動し、接点P3から第3旋回円C3と接線TL1の接点P4まで接線TL1に沿って移動し、接点P4から移動開始点STまで右回りに第3旋回円C3に沿って移動する経路が生成される。
【0087】
位置P1を基準とした二点間経路は、位置P1から始まる第1旋回円C1を左回りの旋回円として設定した場合のみでなく、右回りの旋回円として設定した場合でも生成可能な場合がある。従って、走行経路生成部136は、ステップS54で左回りの第1旋回円C1を設定しステップS55~S57を実行して、左回りの第1旋回円C1による二点間経路を生成後、ステップS54に戻り右回りの第1旋回円C1を設定しステップS55~S57を実行して、右回りの第1旋回円C1による二点間経路を生成する。上記とは逆に、右回りの第1旋回円C1を設定してDubins経路を用いて二点間経路を生成し、その後、左回りの第1旋回円C1を設定してDubins経路を用いて二点間経路を生成してもよい。
【0088】
上記のステップS54~S57を実行して、自律走行モードの開始時における自律移動体1の配置位置P1を基準として第1旋回円C1を設定して二点間経路の候補を生成後、さらに、二点間経路の終点となる移動開始点STを基準として第1旋回円C1を設定して二点間経路の候補を生成する。
【0089】
走行経路生成部136は、ステップS58において、移動開始点STを接点とし、移動開始点STに設定された移動方向D2を旋回方向とする第1旋回円C4を設定する。
図8に示す移動開始点STと移動方向D2に対しては、例えば、
図13に示すような、右回りの第1旋回円C4が設定される。
図13は、移動開始点を基準とした第1旋回円の一例を示す図である。
【0090】
第1旋回円C4を設定後、走行経路生成部136は、ステップS59において、移動領域Aに収まり、かつ、第1旋回円C4と外接する第2旋回円C5を設定する。
図13に示す第1旋回円C4に対しては、例えば、
図14に示すような第2旋回円C5が設定される。
図13に示す第1旋回円C4は右回りであるので、
図14に示す第2旋回円C5は左回りである。
図14は、移動開始点を基準とした第1旋回円に外接する第2旋回円の一例を示す図である。
【0091】
第2旋回円C5を設定後、走行経路生成部136は、ステップS60において、位置P1を始点とし、第1旋回円C4と第2旋回円C5との接点P5を仮終点とするDubins経路を生成する。
図14に示す第2旋回円C5に対しては、
図15の太線にて示すようなDubins経路が生成される。
図15は、
図14の第2旋回円に対して生成されるDubins経路の一例を示す図である。
【0092】
図15に示すように、ステップS60で生成されるDubins経路は、位置P1と、位置P1から開始される左回りの第3旋回円C6と、第3旋回円C6に接する接線TL2と、接線TL2と接し接点P5にて終了する左回りの第2旋回円C5と、から構成される、いわゆるLSL経路である。第3旋回円C6は、位置P1を円周上に含み、位置P1から移動方向D1に回転する円である。
【0093】
上記のDubins経路を生成後、走行経路生成部136は、ステップS61において、第1旋回円C4とステップS60で生成したDubins経路とを結合した経路を、二点間経路の他の候補として生成する。具体的には、
図16に示すように、接点P5から移動開始点STまで右回りに第1旋回円C4に沿って移動する経路と、ステップS60で生成したDubins経路と、を接点P5で連結する。
図16は、第1旋回円とDubins経路とを含む移動経路の候補の他の一例を示す図である。
【0094】
上記のステップS61を実行することで、二点間経路の他の候補として、
図16に示すような、位置P1から第3旋回円C6と接線TL2の接点P6まで左回りに第3旋回円C6に沿って移動し、接点P6から第2旋回円C5と接線TL2の接点P7まで接線TL2に沿って移動し、接点P7から接点P5まで左回りに第2旋回円C5に沿って移動し、接点P5から移動開始点STまで右回りに第1旋回円C4に沿って移動する経路が生成される。
【0095】
移動開始点STを基準とする二点間経路は、第1旋回円C4を右回りの旋回円として設定した場合のみでなく、左回りの旋回円として設定した場合でも生成可能な場合がある。従って、走行経路生成部136は、ステップS58で右回りの第1旋回円C4を設定しステップS59~S61を実行して、右回りの第1旋回円C4による二点間経路を生成後、ステップS58に戻り左回りの第1旋回円C4を設定しステップS59~S61を実行して、左回りの第1旋回円C1による二点間経路を生成する。上記とは逆に、左回りの第1旋回円C4を設定してDubins経路を用いて二点間経路を生成し、その後、右回りの第1旋回円C4を設定してDubins経路を用いて二点間経路を生成してもよい。
【0096】
上記のステップS54~S61を実行することで生成される二点間経路の候補は、
図12及び
図16に示す2つの経路だけでなく、第1旋回円C1、C4及び第2旋回円C2、C5の設定状態、各第2旋回円C2、C5に対して生成されたDubins経路の種類などに依存して多数存在する。
【0097】
従って、走行経路生成部136は、ステップS62において、生成された二点間経路の候補のうち、全ての経路が移動領域Aに収まっており、かつ、移動距離が最短である候補を、位置P1と移動開始点STとを結ぶ二点間経路として選択する。
【0098】
上記の二点間経路を生成する方法においては、Dubins経路を生成する前に、位置P1又は移動開始点STから回転する第1旋回円C1、C4が設定される。その後、第1旋回円C1、C4と外接し、Dubins経路の一部となる第2旋回円C2、C5が設定されている。これにより、従来のDubins経路の生成方法では移動領域Aに収まるDubins経路を生成できない位置P1と移動開始点STの組み合わせであっても、Dubins経路を生成するための大きなスペースを移動領域A内に確保して、移動領域A内に収まる二点間経路を生成できる。つまり、上記に説明した方法によれば、移動領域A内のより多くの位置P1と移動開始点STの組み合わせに対して、移動領域A内に収まる二点間経路を生成できる。
【0099】
(4-3)自律移動動作
以下、
図17を用いて、走行スケジュール101に従って自律移動する際の自律移動体1の動作を説明する。
図17は、自律移動動作を示すフローチャートである。
【0100】
ステップS71において、自律移動指令部133は、走行スケジュール101に含まれる点群から、目標となる点(目標点と呼ぶ)を特定する。例えば、走行スケジュール101において、各点と当該点を通過する時間とが関連付けられている場合には、自律移動の開始からの経過時間に最も近い時間に関連付けられた点を、目標点と特定できる。また、自律移動指令部133は、当該目標点において排球作業を実行するか否かを、走行スケジュール101から決定する。
【0101】
次に、ステップS72において、自律移動指令部133は、位置算出部134から、現在の自律移動体1の位置情報を取得する。
【0102】
位置情報を取得後、ステップS73において、自律移動指令部133は、ステップS71にて特定した目標点と、ステップS72にて取得した位置情報と、に基づいて走行モータ15bの制御量を移動指令として算出する。例えば、目標点と現在の位置情報との差分、又は、目標点と現在の位置情報との比に基づいて、走行モータ15bの制御量を算出できる。
【0103】
その後、ステップS74において、自律移動指令部133は、ステップS73で算出した移動指令を、走行制御部132に出力する。走行制御部132は、受信した移動指令に基づいた電力を、走行モータ15bに供給する。これにより、自律移動体1は、目標点において目標の方角を向くようその姿勢を変化させつつ、目標点に向けて自律的に移動する。
【0104】
目標点に向けて移動を開始してから所定の時間(例えば、制御周期)経過後、自律移動体1が目標点に到達していない場合(ステップS75で「No」)には、自律移動動作はステップS72に戻る。すなわち、自律移動指令部133は、目標点に到達するまで上記ステップS72~S74を実行する。
【0105】
一方、自律移動体1が目標点に到達したが(ステップS75で「Yes」)、走行スケジュール101の自律移動終了点に到達していない場合(ステップS76で「No」)、自律走行動作は上記のステップS101に戻る。すなわち、自律移動指令部133は、ステップS101を実行して次の目標点を特定し、ステップS72~S74を実行して次の目標点に到達するよう走行モータ15bを制御する。
【0106】
自律移動体1が目標点に到達したときに、自律移動指令部133は、到達した目標点において排球作業を行うか否かを判断する。具体的には、走行スケジュール101において、到達した目標点で排球作業を行うことが示されている場合には、自律移動指令部133は、到達した目標点で排球作業を行うと判断し、排球制御部135に排球指令を出力する。排球指令を受信した排球制御部135は、排球部モータ25aを駆動して、当該目標点において排球作業を実行する。
【0107】
一方、自律移動体1が目標点に到達し(ステップS75で「Yes」)、かつ、当該目標点が走行スケジュール101の自律移動終了点である場合、すなわち、自律移動体1が自律移動終了点に到達した場合(ステップS76で「Yes」)、自律移動動作は終了する。
【0108】
(4-4)動作例2
自律移動体1は、移動領域A内の任意の二点間を結ぶ経路を生成できる機能を利用して、移動領域A外の任意の点から移動領域Aの任意の位置までの経路を自律移動し、その後、第1移動経路T1を自律移動する動作(動作例2)も可能である。以下、
図18を用いて、この動作例2を説明する。
図18は、動作例2における自律移動体の動作を示すフローチャートである。
【0109】
最初に、移動領域Aが教示され、教示された移動領域A内に第1移動経路T1が生成される(ステップS1’、S2’)。移動領域Aの教示と第1移動経路T1の生成は、上記のステップS1及びS2を実行することで実現される、よって、ここではその説明を省略する。
【0110】
次に、ステップS3’において、移動領域A外の所定の位置P10(
図19)から移動領域A内の位置P11(
図19)までの移動経路(第2移動経路T2と呼ぶ)が教示される。走行モード切替部43の操作により走行モードを教示走行モードとし、その後、作業者が走行経路教示部37を操作して、移動領域A外の位置P10から移動領域A内の位置P11まで自律移動体1を移動させる。教示走行モードを実行して作業者の操作により自律移動体1を移動中に、走行経路生成部136が、所定の時間周期毎に、位置算出部134にて算出された位置情報を取得する。このようにして、第2移動経路T2を複数の位置情報の点群として表した第2移動経路データTD2が生成される。生成された第2移動経路データTD2は、記憶部131に記憶される。
【0111】
第2移動経路T2の教示後、走行経路生成部136は、ステップS4’において、ステップS3’にて教示された第2移動経路T2の移動終了点(位置P11)が移動領域A内に存在しているか否かを判断する。第2移動経路T2の移動終了点が移動領域A内に存在していない場合(ステップS4’で「No」)、作業者に対して、第2移動経路T2を再度教示するよう指示する。
【0112】
一方、第2移動経路T2の移動終了点が移動領域A内に存在している場合(ステップS4’で「Yes」)、走行経路生成部136は、ステップS5’において、第2移動経路T2の移動終了点(位置P11)を設定点として設定し、当該設定点(位置P11)と第1移動経路T1の移動開始点STとを結ぶ二点間経路を生成する。この二点間経路は、上記にて説明したステップS51~S62を実行することで生成される。よって、ここでは、二点間経路の生成についての説明を省略する。
【0113】
次に、走行経路生成部136は、ステップS6’において、ステップS3’にて教示した第2移動経路T2と、ステップS5’にて生成した二点間経路と、第1移動経路T1とを含む走行スケジュール101を生成する。具体的には、走行経路生成部136は、例えば、第2移動経路データTD2、二点間経路を表す点群、第1移動経路データTD1の順に経路データを連結して、走行スケジュール101を生成する。
【0114】
走行スケジュール101を生成後、自律移動指令部133が、ステップS7’において、生成した走行スケジュール101に従って、自律移動体1を自律移動させる。ステップS7’における自律移動動作は、上記のステップS71~S76を実行することにより実現される。従って、ここでは、自律移動動作についての説明を省略する。これにより、自律移動体1は、移動領域A外の位置P10から第2移動経路T2を通って移動領域A内の位置P11まで自律移動し、当該位置P11から二点間経路を通って第1移動経路T1の移動開始点STまで自律移動し、さらに、当該移動開始点STから第1移動経路T1に沿って移動終了点まで自律移動する。
【0115】
動作例2では、自律移動体1は、
図19に示すような、移動終了点(位置P11)が移動領域A内に存在する任意の第2移動経路T2から自律移動を開始できる。すなわち、自律移動体1は、移動領域A外の任意の位置(位置P10)から自律移動を開始できる。
図19は、動作例2における第2移動経路の例を示す図である。
【0116】
このように、移動領域A外から移動領域A内への任意の第2移動経路T2から自律移動を開始できることは、例えば、自律移動体1が特定の第2移動経路T2を繰り返し移動することで轍が形成されることを回避するために、当該特定の第2移動経路T2とは異なる新たな第2移動経路T2を生成する場合に有利である。具体的には、新たな第2移動経路T2を教示する場合に、作業者は、広い領域である移動領域A内の任意の位置に新たな第2移動経路T2の移動終了点を設定すればよく、第1移動経路T1の移動開始点ST又はその近傍の領域に移動終了点を設定する必要がない。このため、新たな第2移動経路T2を教示することが、作業者にとって大きな負担とはならない。
【0117】
(4-5)動作例3
自律移動体1は、移動領域A内の任意の二点間を結ぶ経路を生成できる機能を利用して、第1移動経路T1を自律移動中にゴルフ球Bの貯蔵量が閾値を超えた場合に当該自律移動を中断し、自律移動を中断した位置(中断点と呼ぶ)から排球溝7の側まで移動してゴルフ球Bを排球し、その後、排球溝7から中断点まで戻り、中断した第1移動経路T1の自律移動を再開する動作(動作例3)を実行可能である。以下、
図20を用いて、この動作例3を説明する。
図20は、動作例3における自律移動体の動作を示すフローチャートである。
【0118】
最初に、移動領域Aが教示され、教示された移動領域A内に第1移動経路T1が生成される(ステップS1’’、S2’’)。移動領域Aの教示と第1移動経路T1の生成は、上記のステップS1及びS2を実行することで実現される、よって、ここではその説明を省略する。
【0119】
次に、ステップS3’’において、移動開始点及び/又は移動終了点が移動領域A内に存在し、排球溝7の側を通過する第3移動経路T3が教示される。第3移動経路T3は、上記の第2移動経路T2の教示と同様に、教示走行モードを実行中に作業者が自律移動体1を操作することにより教示される。すなわち、第3移動経路T3の教示方法は、第2移動経路T2の教示方法と同じである。よって、ここでは詳細な説明を省略する。第3移動経路T3を複数の位置情報の点群として表した第3移動経路データTD3は、記憶部131に記憶される。例えば、
図21に示すような3つの第3移動経路T3が教示され、記憶部131に記憶されているとする。
図21は、第3移動経路の一例を示す図である。
【0120】
上記のステップS3’’において第3移動経路T3を教示するときに、作業者は、自律移動体1が排球溝7の側に到達したときに排球教示部39を操作して、第3移動経路T3を移動中のどのタイミングでゴルフ球Bの排球が行われるかを教示する。走行経路生成部136は、第3移動経路データTD3において、ゴルフ球Bの排球を行うための指令を、排球教示部39に対する操作があったときの自律移動体1の位置情報に関連付けて記憶する。
【0121】
次に、走行経路生成部136が、記憶部131に記憶された第1移動経路データTD1を走行スケジュール101に記憶する。
【0122】
その後、走行モード切替部43により走行モードが自律走行モードに切り替えられると、自律移動指令部133が、ステップS4’’において、第1移動経路T1に沿って自律移動体1を自律移動させる。ステップS4’’における自律移動動作は、上記のステップS71~S76を実行することにより実現される。従って、ここでは、自律移動動作についての説明を省略する。
【0123】
ステップS4’’により第1移動経路T1に沿って自律移動する自律移動体1は、集球部24にゴルフ球Bを集球する。この自律移動中に、自律移動指令部133は、ステップS5’’において、貯留量検出器41からの信号をモニターし、集球排球部23のゴルフ球Bの貯蔵量が閾値以上となったか否かをモニターする。ゴルフ球Bの貯蔵量が閾値以上となっていない場合(ステップS5’’で「No」)、自律移動指令部133は、第1移動経路T1の自律移動を継続させる。
【0124】
一方、ゴルフ球Bの貯蔵量が閾値以上となった場合(ステップS5’’で「Yes」)、自律移動指令部133は、第1移動経路T1の自律移動を中断し、自律移動体1に排球動作をさせる。具体的には、自律移動指令部133は、走行経路生成部136に対し、第1移動経路T1の自律移動を中断した位置(中断点SPと呼ぶ)から、近くの排球溝7の側まで移動し、当該排球溝7にゴルフ球Bを排球後に中断点SPに戻る動作を自律的に実行する自律排球スケジュールを生成させる。自律排球スケジュールの生成を指令された走行経路生成部136は、以下のようにして、自律排球スケジュールを生成する。
【0125】
まず、走行経路生成部136は、ステップS6’’において、3つの第3移動経路T3のうち、移動開始点が中断点SPに最も近い第3移動経路T3を選択する。
【0126】
第3移動経路T3を選択後、走行経路生成部136は、ステップS7’’において、中断点SPと、選択した第3移動経路T3の移動開始点(位置P21、P23、P25のいずれか)とを結ぶ第1二点間経路を生成する。第1二点間経路は、上記にて説明したステップS51~S62を実行することで生成される。よって、ここでは、第1二点間経路の生成についての説明を省略する。
【0127】
第1二点間経路を生成後、走行経路生成部136は、ステップS8’’において、ステップS6’’で選択した第3移動経路T3の移動終了点(位置P22、P24のいずれか)と中断点SPとを結ぶ第2二点間経路を生成する。第2二点間経路は、上記にて説明したステップS51~S62を実行することで生成される。よって、ここでは、第2二点間経路の生成についての説明を省略する。なお、ステップS6’’において、位置P25を移動開始点とする第3移動経路T3が選択された場合には、このステップS8’’は実行されない。
【0128】
次に、走行経路生成部136は、ステップS9’’において、第1二点間経路を表す点群、選択された第3移動経路T3の第3移動経路データTD3、第2二点間経路を表す点群(第2二点間経路が生成された場合)をこの順に連結して、自律排球スケジュールを作成する。生成された自律排球スケジュールは、記憶部131に記憶される。
【0129】
自律排球スケジュールを生成後、自律移動指令部133が、ステップS10’’において、生成した自律排球スケジュールに従って、自律移動体1を自律移動させる。この自律移動動作では、自律移動体1が第3移動経路T3を移動し排球溝7の側に到達すると、集球排球部23に集球されたゴルフ球Bが排球溝7に排球される。なお、ステップS10’’における自律移動動作は、上記のステップS71~S76を実行することにより実現される。従って、ここでは、自律移動動作についての説明を省略する。
【0130】
上記の自律排球スケジュールが実行されて自律移動体1が中断点SPに戻ってくると、動作例3の動作はステップS4’’に戻る。すなわち、自律移動体1が中断点SPに戻ってくると、自律移動指令部133が、中断点SPから第1移動経路T1の移動終了点までの自律移動を再開する。
【0131】
動作例3では、第1移動経路T1上の任意の中断点SPで自律移動が中断されても、当該任意の中断点SPから第3移動経路T3を自律移動し同じ中断点SPに戻ってくるといった自律移動が可能となる。具体的には、
図22に示すように、自律移動体1は、第1移動経路T1の自律移動中にゴルフ球Bの貯蔵量が閾値を超えたため中断点SP1で自律移動を中断し、中断点SP1から位置P21を移動開始点とする第3移動経路T3に向けて自律移動し、この第3移動経路T3を自律移動し(排球溝7で排球を実行し)、位置P22を経て中断点SP1に戻ってくる自律移動が可能となる。
図22は、動作例3における自律移動の一例を示す図である。
【0132】
また、自律移動体1は、中断点SP1から第1移動経路T1の自律移動を再開し、ゴルフ球Bの貯蔵量が再度閾値を超えたため中断点SP2で自律移動を中断し、中断点SP2から位置P23を移動開始点とする第3移動経路T3に向けて自律移動し、この第3移動経路T3を自律移動し(排球溝7で排球を実行し)、位置P24を経て中断点SP2に戻ってくる自律移動が可能となる。
【0133】
さらに、自律移動体1は、中断点SP2から第1移動経路T1の自律移動を再開し、第1移動経路T1の移動終了点Gに到達し、移動終了点Gから位置P25を移動開始点とする第3移動経路T3に向けて自律移動し、この第3移動経路T3を自律移動し(排球溝7で排球を実行し)、移動領域A外の位置P26に到達する自律移動が可能となる。
【0134】
2.第2実施形態
上記の第1実施形態の動作例3では、第3移動経路T3が複数存在し、中断点SPからいずれかの第3移動経路T3の移動開始点への二点間経路(第1二点間経路)を生成する場合に、走行経路生成部136は、複数の第3移動経路T3のうち、移動開始点が中断点SPに最も近い第3移動経路T3を選択していた。
【0135】
しかしながら、移動開始点と中断点SPとが互いに最も近接している場合に、中断点SPから移動開始点への最適な二点間経路が生成されるとは限らない。例えば、移動開始点と中断点SPとが近接していても、Dubins経路による旋回量が多い二点間経路が生成され、当該中断点SPからより離れた位置にある他の移動開始点への二点間経路の方がむしろ最適である場合がある。ここで「最適」とは、自律移動体1の移動距離が少ない、かつ/又は、自律移動体1(本体11)の旋回量が少ないことを言う。また、「旋回量」とは、中断点SPにおける本体11の向き(姿勢)から移動開始点における本体11の向き(姿勢)への角度変化の大きさを言う。
【0136】
移動領域Aへのダメージ(例えば、轍の形成によるダメージ)は、自律移動体1が直進しているときよりも、旋回しているときの方が大きい。そのため、例えば、旋回量が多い経路が生成されそれに沿って自律移動体1が自律移動すると、移動領域Aに大きなダメージを与えてしまうことがある。また、直進しているときに急に旋回を開始するといった不自然な移動が発生することがある。
【0137】
従って、第2実施形態では、走行経路生成部136は、複数の第3移動経路T3の全てに対して第1二点間経路を生成し、生成した複数の第1二点間経路のうち、最適な第1二点間経路を最終的な第1二点間経路として選択する。本実施形態においては、複数の第1二点間経路のうち移動距離が最小のものを最適な第1二点間経路とする場合と、複数の第1二点間経路のうち自律移動体1(本体11)の旋回量が最小のものを最適な第1二点間経路とする場合と、と切り替えることができる。この切り替えは、例えば、ユーザが、自律移動体1の使用環境等に基づいて行うことができる。
【0138】
以下、移動領域において、
図23に示すような2つの第3移動経路T3が設定されており、中断点SP3にて自律移動体1が自律移動を中断したとして、第2実施形態における走行経路生成部136の動作を説明する。1つの第3移動経路T3は、移動開始点を位置P31とし、移動終了点を位置P32とする。他の第3移動経路T3は、移動開始点を位置P33とし、移動終了点を位置P34とする。
図23は、第3移動経路の設定の一例を示す図である。
【0139】
走行経路生成部136は、まず、設定された全ての第3移動経路T3について、中断点SP3から各第3移動経路T3の移動開始点への二点間経路を生成する。この二点間経路の生成は、第1実施形態で説明したのと同様であるので、ここでは説明を省略する。
図23に示すような第3移動経路T3に対しては、中断点SP3から位置P31への二点間経路(
図23で一点鎖線で示す経路)と、中断点SP3から位置P33への二点間経路(
図23で点線で示す経路)と、が生成される。中断点SP3から位置P31への二点間経路は、ほぼ直進経路として生成される。一方、中断点SP3から位置P33への二点間経路は、2つの旋回を有している。
【0140】
次に、走行経路生成部136は、上記2つの二点間経路のうち、最適な二点間経路を最終的な第1二点間経路として選択する。例えば、移動距離が最小のものを最適な第1二点間経路とする場合、走行経路生成部136は、上記2つの二点間経路のうち、経路長が最小のものを最終的な第1二点間経路として選択する。すなわち、走行経路生成部136は、中断点SP3から最短距離で到達できる第3移動経路T3を選択する。これにより、自律移動体1の移動距離を優先した自律移動を実行できる。
【0141】
一方、旋回量が最小のものを最適な第1二点間経路とする場合には、走行経路生成部136は、上記2つの二点間経路のうち、旋回がない(ほぼ直線経路である)中断点SP3から位置P31への二点間経路(一点鎖線で示す経路)を、最終的な第1二点間経路として選択する。すなわち、走行経路生成部136は、中断点SP3から最も少ない旋回量で到達できる第3移動経路T3(すなわち、上記の例では、位置P31を移動開始点とする第3移動経路T3)を選択する。これにより、自律移動体1の旋回量を優先した自律移動を実行できる。その結果、例えば、旋回による移動領域Aのダメージを抑制できる。
【0142】
最適な第1二点間経路を選択する条件として、上記の条件以外に、移動距離が最小である二点間経路と旋回量が最小である二点間経路とが存在する場合に、移動距離が最小である二点間経路の経路長が、旋回量が最小である二点間経路の経路長の所定の割合(例えば、半分(1/2))以下である場合に、移動距離が最小である二点間経路を最終的な第1二点間経路として選択することもできる。これにより、例えば、中断点SP3から比較的近い位置に移動開始点が存在する第3移動経路T3を選択できる。
【0143】
3.他の実施形態
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。
【0144】
(A)上記にて説明した動作例1~3は、組み合わせて実行できる。これにより、より柔軟な自律移動を実現できる。
【0145】
(B)
図6、
図7、
図17、
図18、
図20のフローチャートに含まれるステップの処理順、及び/又は、各ステップの処理内容は、本発明の要旨を超えない範囲で適宜変更できる。例えば、移動領域Aの教示と第2移動経路T2又は第3移動経路T3の教示とは、同じ教示走行モードの実行中に連続して実行されてもよい。
【0146】
(C)動作例2では、第2移動経路T2を自律移動後に、第2移動経路T2の移動終了点と第1移動経路T1の移動開始点とを結ぶ二点間経路が生成され、当該二点間経路と第1移動経路T1の自律移動が実行されてもよい。
【0147】
(D)複数の移動領域Aがゴルフ練習場2に設定されてもよい。すなわち、記憶部131は、複数の移動領域データDAと、各移動領域Aに対応する複数の第1移動経路データTD1と、を記憶してもよい。また、第1移動経路以外の自律移動体1に自律移動させたい移動経路を記憶してもよい。
【0148】
(E)第1移動経路T1は、移動領域A内に定められていれば、塗り潰し経路以外の経路であってもよい。
【0149】
(F)二点間経路は、Dubins経路を用いた方法以外で生成されてもよい。例えば、二点間経路は、A*アルゴリズム(Aスターアルゴリズム)を用いて生成できる。
【0150】
(G)例えば、自律移動体1が集球排球部23をけん引していない場合には、第1旋回円C1、C4、第2旋回円C2、C5、第3旋回円C3、C6は、自律移動体1が旋回できる最小回転半径を有してもよい。これにより、自律移動体1の走行性能のみを考慮した移動経路を生成できる。なお、自律移動体1のみの最小回転半径は、一般的には、自律移動体1が集球排球部23をけん引している場合の最小回転半径よりも小さい。
【0151】
(H)例えば、Dubins経路により二点間経路の始点(位置P1)及び/又は終点(移動開始点ST)が特定領域の外周に極めて近く、第1旋回円C1、C4とDubins経路とを組み合わせても、当該始点と終点に対して特定領域内に収まる二点間経路を生成できない場合には、当該始点及び/又は終点を適切な位置に移動させた後に、上記のステップS51~S62を実行して二点間経路を生成してもよい。
【0152】
例えば、始点及び/又は終点を、それぞれの点に対して設定された自律移動体1の移動方向に延びる直線上の特定領域内の所定の位置に移動させてもよい。これにより、第1旋回円を柔軟に設定できるので、特定領域に収まる二点間経路をDubins経路を用いて生成できる。
【0153】
(I)自律移動体1は、集球排球機に限られず、他の用途の自律移動ロボットであってもよい。すなわち、上記にて説明した自律移動経路の生成は、他の自律移動ロボットにも適用できる。
【0154】
4.実施形態の特徴
上記実施形態は、以下の特徴を有する。
(1)自律移動体(例えば、自律移動体1)は、車体部(例えば、本体11)と、移動部(例えば、移動部15)と、走行経路生成部(例えば、走行経路生成部136)と、記憶部(例えば、記憶部131)と、を備える。移動部は、車体部を移動させる。走行経路生成部は、自律移動体に移動させる自律移動経路を生成する。記憶部は、所定の移動領域(例えば、移動領域A)内に定められた第1移動経路(例えば、第1移動経路T1)を記憶する。
【0155】
上記の自律移動体において、走行経路生成部は、移動領域内に設定された設定点と第1移動経路の移動開始点(例えば、移動開始点ST)とを結ぶ二点間経路を生成し、この二点間経路と第1移動経路とを含む自律移動経路を生成する。
【0156】
上記の自律移動体においては、移動領域内に設定点が設定されたときに、当該設定点から第1移動経路の移動開始点までの二点間経路が生成され、この二点間経路と第1移動経路とを含む自律移動経路が生成される。すなわち、上記の自律移動体は、移動領域内の任意の点から自律移動を開始できる。第1移動経路が定められる移動領域は広い領域であるので、移動領域内の任意の点から自律移動が開始可能であることにより、自律移動の開始時における自律移動体の配置位置の許容範囲を大きくできる。
【0157】
(2)上記(1)の自律移動体において、記憶部は、第2移動経路(例えば、第2移動経路T2)を記憶してもよい。第2移動経路は、移動領域外の所定の点を移動開始点とし、上記の設定点を移動終了点とする経路である。つまり、第2移動経路の移動終了点は、移動領域内に存在する。この場合、走行経路生成部は、第2移動経路の移動終了点と第1移動経路の移動開始点とを結ぶ二点間経路を生成し、第2移動経路とこの二点間経路と第1移動経路とを含む自律移動経路を生成してもよい。これにより、自律移動の開始時における自律移動体の配置位置を移動領域外の任意の点まで拡げることができる。
【0158】
(3)上記(1)~(2)の自律移動体において、設定点は、自律走行モードの開始時における車体部の配置位置であってもよい。自律走行モードは、自律移動経路に沿って車体部を自律移動させる走行モードである。この場合、走行経路生成部は、車体部の配置位置と第1移動経路の移動開始点とを結ぶ二点間経路を生成してもよい。これにより、自律走行モードの開始時に自律移動体が移動領域内のいずれかの位置に配置されていれば、自律移動を開始できる。
【0159】
(4)自律移動体は、自律移動経路を自律移動する移動体である。自律移動体は、車体部と、移動部と、走行経路生成部と、記憶部と、を備える。移動部は、車体部を移動させる。走行経路生成部は、自律移動体に移動させる自律移動経路を生成する。記憶部は、所定の移動領域内に定められた第1移動経路と、移動領域内に移動開始点を有する第3移動経路(例えば、第3移動経路T3)と、を記憶する。
【0160】
上記の自律移動体において、走行経路生成部は、第1移動経路の自律移動が中断されたときの中断点(例えば、中断点SP1、SP2、SP3)と、第3移動経路の移動開始点とを結ぶ第1二点間経路を生成し、第1二点間経路と第3移動経路とを含む自律移動経路を生成する。
【0161】
上記の自律移動体においては、第1移動経路を自律移動中に当該自律移動が中断されたときに、走行経路生成部が、自律移動が中断されたときの車体部の位置である中断点と、第3移動経路の移動開始点とを結ぶ二点間経路(第1二点間経路)を生成し、第1二点間経路と第3移動経路とを含む自律移動経路を生成している。
【0162】
これにより、第1移動経路上の任意の中断点で自律移動が中断されても、当該任意の中断点から次の自律移動(第3移動経路の自律移動)を開始できる。この結果、例えば、第1移動経路の自律移動が中断されたときに、中断点から第3移動経路の移動開始点まで、自律移動体を作業者の操作により移動させる必要がなくなる。
【0163】
(5)上記(4)の自律移動体において、第3移動経路の移動終了点は、移動領域内に存在してもよい。この場合、走行経路生成部は、第3移動経路の移動終了点と中断点とを結ぶ二点間経路(第2二点間経路)を生成し、第1二点間経路と第3移動経路と第2二点間経路を含む自律移動経路を生成してもよい。これにより、第1移動経路の自律移動が中断したときに、第1移動経路の任意の中断点から第3移動経路を経て同じ中断点に戻ってくるといった自律移動が可能となる。
【0164】
(6)上記(4)~(5)の自律移動体において、第3移動経路は複数存在してもよい。この場合、走行経路生成部は、複数の第3移動経路のそれぞれに対して第1二点間経路を生成し、複数の第1二点間経路のうち移動距離が最小のものを最終的な第1二点間経路として選択してもよい。これにより、自律移動体の移動距離を優先した自律移動を実行できる。
【0165】
(7)上記(4)~(6)の自律移動体において、第3移動経路は複数存在してもよい。この場合、走行経路生成部は、複数の第3移動経路のそれぞれに対して第1二点間経路を生成し、複数の第1二点間経路のうち旋回量が最小のものを最終的な第1二点間経路として選択してもよい。これにより、自律移動体の旋回量を優先した自律移動を実行できる。その結果、例えば、旋回による移動領域のダメージを抑制できる。
【0166】
(8)上記(1)~(7)の自律移動体において、走行経路生成部は、上記の二点間経路を生成するときに、二点間経路の始点および終点に車体部の移動方向を設定し、始点又は終点を接点とし、それぞれの移動方向を旋回方向とする第1旋回円を設定し、第1旋回円と外接しかつ移動領域内に収まる第2旋回円を設定し、第1旋回円と第2旋回円の接点から開始されるか、又は、当該接点で終了するDubins経路を設定し、第1旋回円とDubins経路とを含む経路のうち移動領域内に収まる経路を二点間経路として選択してもよい。これにより、移動領域内のより多くの始点と終点の組み合わせに対して、移動領域内に収まる二点間経路を生成できる。
【0167】
(9)上記(8)の自律移動体において、第1旋回円及び第2旋回円は、車体部の最小回転半径からなる円であってもよい。これにより、自律移動体の走行性能を考慮しつつ最短の二点間経路を生成できる。
【0168】
(10)上記(8)~(9)の自律移動体において、車体部は台車(例えば、集球排球部23)をけん引してもよい。この場合、第1旋回円及び第2旋回円は、車体部がけん引する台車を含めた最小回転半径からなる円であってもよい。これにより、台車をけん引する自律移動体の走行性能を考慮しつつ最短の二点間経路を生成できる。
【0169】
(11)走行経路生成方法は、以下のステップを備える。
◎所定の移動領域内に定められた第1移動経路を生成するステップ(例えば、ステップS1~S2、S1’~S2’)。
◎移動領域内に設定された設定点と第1移動経路の移動開始点とを結ぶ二点間経路を生成するステップ(例えば、ステップS3~S5)。
◎二点間経路と第1移動経路とを含む自律移動経路を生成するステップ(例えば、ステップS6、S6’)。
【0170】
上記の走行経路生成方法においては、移動領域内に設定点が設定されたときに、当該設定点から第1移動経路の移動開始点までの二点間経路が生成され、この二点間経路と第1移動経路とを含む自律移動経路が生成される。すなわち、上記の走行経路生成方法は、移動領域内の任意の点から自律移動を開始できる自律移動経路を生成できる。第1移動経路が定められる移動領域は広い領域であるので、移動領域内の任意の点から自律移動が開始可能であることにより、自律移動の開始時における自律移動体の配置位置の許容範囲を大きくできる。
【0171】
(12)上記(11)の走行経路生成方法は、第2移動経路を生成するステップ(例えば、ステップS3’)をさらに備えてもよい。第2移動経路は、移動領域外の所定の点を移動開始点とし、上記の設定点を移動終了点とする経路である。この場合、二点間経路を生成するステップは、第2移動経路の移動終了点と第1移動経路の移動開始点とを結ぶ二点間経路を生成するステップ(例えば、ステップS5’)を含む。また、自律移動経路を生成するステップは、第2移動経路と二点間経路と第1移動経路とを含む自律移動経路を生成する。これにより、自律移動の開始時における自律移動体の配置位置を移動領域外の任意の点まで拡げることができる。
【0172】
(13)上記(11)~(12)の走行経路生成方法において、設定点は、自律走行モードの開始時における自律移動体の配置位置であってもよい。自律走行モードは、自律移動経路に沿って自律移動体を自律移動させる走行モードである。この場合、二点間経路を生成するステップは、自律移動体の配置位置と第1移動経路の移動開始点とを結ぶ二点間経路を生成するステップを含んでもよい。これにより、自律走行モードの開始時に自律移動体が移動領域内のいずれかの位置に配置されていれば、自律移動を開始可能な自律移動経路を生成できる。
【0173】
(14)走行経路生成方法は、以下のステップを備える。
◎所定の移動領域内に定められた第1移動経路を生成するステップ(例えば、ステップS1’’~ S2’’)。
◎移動領域内に移動開始点を有する第3移動経路を生成するステップ(例えば、ステップS3’’)。
◎第1移動経路の自律移動が中断されたときの中断点と、第3移動経路の移動開始点とを結ぶ第1二点間経路を生成するステップ(例えば、ステップS4’’~S7’’)。
◎第1二点間経路と第3移動経路とを含む自律移動経路を生成するステップ(例えば、ステップS8’’~S9’’)。
【0174】
上記の走行経路生成方法においては、第1移動経路を自律移動中に当該自律移動が中断されたときに、自律移動が中断されたときの自律移動体の位置である中断点と、第3移動経路の移動開始点とを結ぶ二点間経路(第1二点間経路)が生成され、第1二点間経路と第3移動経路とを含む自律移動経路が生成されている。
【0175】
これにより、第1移動経路上の任意の中断点で自律移動が中断されても、当該任意の中断点から次の自律移動(第3移動経路の自律移動)を開始できる自律移動経路を生成できる。この結果、例えば、第1移動経路の自律移動が中断されたときに、中断点から第3移動経路の移動開始点まで、自律移動体を作業者の操作により移動させる必要がなくなる。
【0176】
(15)上記(14)の走行経路生成方法において、第3移動経路の移動終了点は、移動領域内に存在してもよい。この場合、走行経路生成方法は、第3移動経路の移動終了点と中断点とを結ぶ第2二点間経路を生成するステップ(例えば、ステップS8’’)をさらに備えてもよい。また、自律移動経路を生成するステップは、第1二点間経路と第3移動経路と第2二点間経路を含む自律移動経路を生成するステップを含んでもよい。これにより、第1移動経路の自律移動が中断したときに、第1移動経路の任意の中断点から第3移動経路を経て同じ中断点に戻ってくるといった自律移動が可能となる自律移動経路を生成できる。
【0177】
(16)上記(14)~(15)の走行経路生成方法において、第3移動経路は複数存在してもよい。この場合、第1二点間経路を生成するステップは、複数の第3移動経路のそれぞれに対して第1二点間経路を生成し、複数の第1二点間経路のうち移動距離が最小のものを最終的な第1二点間経路として選択するステップを含んでもよい。これにより、自律移動体の移動距離を優先した自律移動を実行できる。
【0178】
(17)上記(14)~(16)の走行経路生成方法において、第3移動経路は複数存在してもよい。この場合、第1二点間経路を生成するステップは、複数の第3移動経路のそれぞれに対して第1二点間経路を生成し、複数の第1二点間経路のうち旋回量が最小のものを最終的な第1二点間経路として選択するステップを含んでもよい。これにより、自律移動体の旋回量を優先した自律移動を実行できる。その結果、例えば、旋回による移動領域のダメージを抑制できる。
【0179】
(18)上記(11)~(17)の走行経路生成方法において、二点間経路を生成するステップは、以下のステップを含んでもよい。
◎二点間経路の始点および終点に自律移動体の移動方向を設定するステップ(例えば、ステップS51)。
◎始点又は終点を接点とし、それぞれの移動方向を旋回方向とする第1旋回円を設定するステップ(例えば、ステップS54、S58)。
◎第1旋回円と外接し、かつ、移動領域内に収まる第2旋回円を設定するステップ(例えば、ステップS55、S59)。
◎第1旋回円と第2旋回円の接点から開始されるか、又は、当該接点で終了するDubins経路を設定するステップ(例えば、ステップS56、S60)。
◎第1旋回円とDubins経路とを含む経路のうち移動領域内に収まる経路を二点間経路として選択するステップ(例えば、ステップS61~S62)。
【0180】
これにより、移動領域内のより多くの始点と終点の組み合わせに対して、移動領域内に収まる二点間経路を生成できる。
【0181】
(19)上記(18)の走行経路生成方法において、第1旋回円及び第2旋回円は、自律移動体の最小回転半径からなる円であってもよい。これにより、自律移動体の走行性能を考慮しつつ最短の二点間経路を生成できる。
【0182】
(20)上記(18)~(19)の走行経路生成方法において、自律移動体は台車をけん引してもよい。この場合、第1旋回円及び第2旋回円は、自律移動体がけん引する台車を含めた最小回転半径からなる円であってもよい。これにより、台車をけん引する自律移動体の走行性能を考慮しつつ最短の二点間経路を生成できる。
【産業上の利用可能性】
【0183】
本発明は、所定の自律移動経路を自律移動する自律移動体に広く適用できる。
【符号の説明】
【0184】
1 自律移動体
11 本体
13 制御部
131 記憶部
DA 移動領域データ
T1 第1移動経路
TD1 第1移動経路データ
T2 第2移動経路
TD2 第2移動経路データ
T3 第3移動経路
TD3 第3移動経路データ
101 走行スケジュール
132 走行制御部
133 自律移動指令部
134 位置算出部
135 排球制御部
136 走行経路生成部
15 移動部
15a 車輪
15b 走行モータ
17 GNSS受信機
19 方角検出センサ
21 連結構造
23 集球排球部
24 集球部
24a ピックアップロータ
25 排球部
25a 排球部モータ
25b 排球ゲート
37 走行経路教示部
39 排球教示部
41 貯留量検出器
43 走行モード切替部
2 ゴルフ練習場
3 球散乱エリア
7 排球溝
A 移動領域
B ゴルフ球
C1、C4 第1旋回円
C2、C5 第2旋回円
C3、C6 第3旋回円
D1、D2 移動方向
P1 配置位置
P2~P7 接点
SP、SP1、SP2 中断点