(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】自律移動体制御システム、自律移動体制御方法、及び自律移動体制御プログラム
(51)【国際特許分類】
G05D 1/00 20240101AFI20240806BHJP
G05D 1/43 20240101ALI20240806BHJP
【FI】
G05D1/00
G05D1/43
(21)【出願番号】P 2022170802
(22)【出願日】2022-10-25
【審査請求日】2023-12-18
(73)【特許権者】
【識別番号】000003609
【氏名又は名称】株式会社豊田中央研究所
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】出口 秀輝
(72)【発明者】
【氏名】田口 峻
(72)【発明者】
【氏名】柴田 一騎
(72)【発明者】
【氏名】小出 智士
【審査官】田中 友章
(56)【参考文献】
【文献】特開2021-089588(JP,A)
【文献】特開2006-051550(JP,A)
【文献】特表2020-532018(JP,A)
【文献】特表2018-515838(JP,A)
【文献】特開2008-021178(JP,A)
【文献】特開2022-132902(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00
G05D 1/43
G06F 3/01
(57)【特許請求の範囲】
【請求項1】
ユーザが装着する操作機器と、前記操作機器と通信可能な自律移動体とを含む自律移動体制御システムであって、
前記ユーザの動作に対応して、前記自律移動体が移動可能な経路を表す経路情報を取得する経路取得部と、
前記経路情報から、前記ユーザの指示位置を始点とするベクトルの集合を生成するベクトル生成部と、
前記ベクトルの集合を用いて、前記自律移動体に対して前記ユーザが指示する3次元空間上の経路である指示経路を推定する経路推定部と、
前記自律移動体の現在位置及び前記指示経路に基づいて、前記自律移動体の次の移動先の位置を導出する位置導出部と、
を備えた自律移動体制御システム。
【請求項2】
前記指示経路は、前記自律移動体に関する、前記3次元空間の3次元位置に対応するポテンシャル場として表される
請求項1に記載の自律移動体制御システム。
【請求項3】
前記位置導出部は、前記ポテンシャル場が最小となる移動先の位置を、前記次の移動先の位置として決定する
請求項2に記載の自律移動体制御システム。
【請求項4】
前記指示経路と、前記自律移動体の移動先の位置とから、前記自律移動体が取り得る行動の確率分布を導出する確率分布導出部を更に備えた
請求項1に記載の自律移動体制御システム。
【請求項5】
前記確率分布導出部は、前記自律移動体の次の行動を、前記導出した前記自律移動体が取り得る行動の確率分布、及び、前記自律移動体に予め実装されたナビゲーションプログラムにより選択可能な前記自律移動体の行動の確率分布から決定する
請求項4に記載の自律移動体制御システム。
【請求項6】
前記ユーザの動作は、前記ユーザの指差し運動の動作又は視線運動の動作である
請求項1に記載の自律移動体制御システム。
【請求項7】
前記ユーザの動作は、前記ユーザの指差し運動の動作又は視線運動の動作により、前記自律移動体の移動経路又は目的地点を指示する動作である
請求項6に記載の自律移動体制御システム。
【請求項8】
ユーザが装着する操作機器と、前記操作機器と通信可能な自律移動体とを含む自律移動体制御システムによる自律移動体制御方法であって、
前記ユーザの動作に対応して、前記自律移動体が移動可能な経路を表す経路情報を取得し、
前記経路情報から、前記ユーザの指示位置を始点とするベクトルの集合を生成し、
前記ベクトルの集合を用いて、前記自律移動体に対して前記ユーザが指示する3次元空間上の経路である指示経路を推定し、
前記自律移動体の現在位置及び前記指示経路に基づいて、前記自律移動体の次の移動先の位置を導出する、
自律移動体制御方法。
【請求項9】
ユーザが装着する操作機器と、前記操作機器と通信可能な自律移動体とを含む自律移動体制御システムの自律移動体制御プログラムであって、
前記ユーザの動作に対応して、前記自律移動体が移動可能な経路を表す経路情報を取得し、
前記経路情報から、前記ユーザの指示位置を始点とするベクトルの集合を生成し、
前記ベクトルの集合を用いて、前記自律移動体に対して前記ユーザが指示する3次元空間上の経路である指示経路を推定し、
前記自律移動体の現在位置及び前記指示経路に基づいて、前記自律移動体の次の移動先の位置を導出することを、
コンピュータに実行させるための自律移動体制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、自律移動体制御システム、自律移動体制御方法、及び自律移動体制御プログラムに関する。
【背景技術】
【0002】
従来、AR(Augmented Reality:拡張現実)を、ロボットの操作、自律移動、行動計画に用いる技術がある(例えば、非特許文献1を参照)。
【0003】
非特許文献1には、HoloLens2(登録商標)と呼ばれる眼鏡型のAR機器を用いて、ユーザが空間を移動しながらロボットの移動経路を指で指示する技術が記載されている。この技術では、ユーザの指示位置から死角になる位置の経路上にロボットの通過点を設定する際には、実際にユーザが死角部分を視認可能な位置まで移動し、通過点の設定を行い、その上で、ロボットが各通過点を目標としたナビゲーションを行う。
【先行技術文献】
【非特許文献】
【0004】
【文献】Jeffrey Delmerico, Roi Poranne, Federica Bogo, Helen Oleynikova, Eric Vollenweider, Stelian Coros, Juan Nieto, Marc Pollefeys, "Spatial Computing and Intuitive Interaction:Bringing Mixed Reality and Robotics Together", IEEE ROBOTICS AND AUTOMATION MAGAZINE, Volume: 29, Issue: 1, March 2022.
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記非特許文献1に記載の技術のように、AR機器の発達に伴い、指差し運動又は視線運動の検出が可能になり、それらを用いた自律移動体への指示が可能とされる。しかしながら、AR機器を用いて検出される指差し運動で指示が可能な位置は、ユーザが視認できている範囲にとどまり、構造物又は障害物(以下、代表して「構造物」という。)などの後ろ側への指示を行うことができない。このため、屋内などでのナビゲーションに対して経路の指示を与える際は、従来手法のように、ユーザが実際の経路を移動して指示する必要がある。
【0006】
本開示は、上記の事情に鑑みてなされたものであり、ユーザの動作によって自律移動体の移動経路を指示する場合に、ユーザから見て死角となる移動経路であっても指示することができる自律移動体制御システム、自律移動体制御方法、及び自律移動体制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成させるために、第1態様に係る自律移動体制御システムは、ユーザが装着する操作機器と、前記操作機器と通信可能な自律移動体とを含む自律移動体制御システムであって、前記ユーザの動作に対応して、前記自律移動体が移動可能な経路を表す経路情報を取得する経路取得部と、前記経路情報から、前記ユーザの指示位置を始点とするベクトルの集合を生成するベクトル生成部と、前記ベクトルの集合を用いて、前記自律移動体に対して前記ユーザが指示する3次元空間上の経路である指示経路を推定する経路推定部と、前記自律移動体の現在位置及び前記指示経路に基づいて、前記自律移動体の次の移動先の位置を導出する位置導出部と、を備える。
【0008】
また、第2態様に係る自律移動体制御システムは、第1態様に係る自律移動体制御システムにおいて、前記指示経路が、前記自律移動体に関する、前記3次元空間の3次元位置に対応するポテンシャル場として表される。
【0009】
また、第3態様に係る自律移動体制御システムは、第2態様に係る自律移動体制御システムにおいて、前記位置導出部が、前記ポテンシャル場が最小となる移動先の位置を、前記次の移動先の位置として決定する。
【0010】
また、第4態様に係る自律移動体制御システムは、第1態様に係る自律移動体制御システムにおいて、前記指示経路と、前記自律移動体の移動先の位置とから、前記自律移動体が取り得る行動の確率分布を導出する確率分布導出部を更に備える。
【0011】
また、第5態様に係る自律移動体制御システムは、第4態様に係る自律移動体制御システムにおいて、前記確率分布導出部が、前記自律移動体の次の行動を、前記導出した前記自律移動体が取り得る行動の確率分布、及び、前記自律移動体に予め実装されたナビゲーションプログラムにより選択可能な前記自律移動体の行動の確率分布から決定する。
【0012】
また、第6態様に係る自律移動体制御システムは、第1態様に係る自律移動体制御システムにおいて、前記ユーザの動作が、前記ユーザの指差し運動の動作又は視線運動の動作である。
【0013】
また、第7態様に係る自律移動体制御システムは、第6態様に係る自律移動体制御システムにおいて、前記ユーザの動作が、前記ユーザの指差し運動の動作又は視線運動の動作により、前記自律移動体の移動経路又は目的地点を指示する動作である。
【0014】
更に、上記目的を達成するために、第8態様に係る自律移動体制御方法は、ユーザが装着する操作機器と、前記操作機器と通信可能な自律移動体とを含む自律移動体制御システムによる自律移動体制御方法であって、前記ユーザの動作に対応して、前記自律移動体が移動可能な経路を表す経路情報を取得し、前記経路情報から、前記ユーザの指示位置を始点とするベクトルの集合を生成し、前記ベクトルの集合を用いて、前記自律移動体に対して前記ユーザが指示する3次元空間上の経路である指示経路を推定し、前記自律移動体の現在位置及び前記指示経路に基づいて、前記自律移動体の次の移動先の位置を導出する。
【0015】
更に、上記目的を達成するために、第9態様に係る自律移動体制御プログラムは、ユーザが装着する操作機器と、前記操作機器と通信可能な自律移動体とを含む自律移動体制御システムの自律移動体制御プログラムであって、前記ユーザの動作に対応して、前記自律移動体が移動可能な経路を表す経路情報を取得し、前記経路情報から、前記ユーザの指示位置を始点とするベクトルの集合を生成し、前記ベクトルの集合を用いて、前記自律移動体に対して前記ユーザが指示する3次元空間上の経路である指示経路を推定し、前記自律移動体の現在位置及び前記指示経路に基づいて、前記自律移動体の次の移動先の位置を導出することを、コンピュータに実行させる。
【発明の効果】
【0016】
本開示の技術によれば、ユーザの動作によって自律移動体の移動経路を指示する場合に、ユーザから見て死角となる移動経路であっても指示することができる、という効果を有する。
【図面の簡単な説明】
【0017】
【
図1】第1の実施形態に係る自律移動体制御システムの構成の一例を示す図である。
【
図2】第1の実施形態に係る自律移動体制御システムの電気的な構成の一例を示すブロック図である。
【
図3】比較例に係る構造物が存在する場合の自律移動体の移動経路を示す図である。
【
図4】比較例に係る構造物が存在する場合の自律移動体の移動経路を示す図である。
【
図5】第1の実施形態に係る自律移動体制御システムの機能的な構成の一例を示すブロック図である。
【
図6】第1の実施形態に係る構造物が存在する場合の自律移動体の移動経路の一例を模式的に示す図である。
【
図7】ポテンシャルp
StoGを導出する際に用いる比率αの求め方の説明に供する図である。
【
図8】第1の実施形態に係るポテンシャル場p(x,X)の一例を模式的に示す図である。
【
図9】第1の実施形態に係る制御プログラム及び制御プログラムによる処理の流れの一例を示すフローチャートである。
【
図10】第2の実施形態に係る自律移動体制御システムの機能的な構成の一例を示すブロック図である。
【発明を実施するための形態】
【0018】
以下、図面を参照して、本開示の技術を実施するための形態の一例について詳細に説明する。なお、動作、作用、機能が同じ働きを担う構成要素及び処理には、全図面を通して同じ符号を付与し、重複する説明を適宜省略する場合がある。各図面は、本開示の技術を十分に理解できる程度に、概略的に示してあるに過ぎない。よって、本開示の技術は、図示例のみに限定されるものではない。また、本実施形態では、本開示の技術と直接的に関連しない構成や周知な構成については、説明を省略する場合がある。
【0019】
[第1の実施形態]
図1は、第1の実施形態に係る自律移動体制御システム100の構成の一例を示す図である。なお、
図1の例では構造物が存在しない場合について示す。
【0020】
図1に示すように、本実施形態に係る自律移動体制御システム100は、ユーザが装着する操作機器10と、操作機器10と通信可能な自律移動体30と、を含んでいる。操作機器10には、一例として、AR機器、VR(Virtual Reality:仮想現実)機器、MR(Mixed Reality:複合現実)機器等が適用される。操作機器10には、例えば、Microsoft社製の眼鏡型AR機器であるHoloLens2(登録商標)が用いられる。自律移動体30は、例えば、家の中の清掃又は監視、又は家の中での物の輸送などの1つ以上のタスクを自動的に実行する自律型ロボットであり、各ステップについて前進又は左右回転を行動として選択可能な地上走行型ロボットとされる。なお、本実施形態では、一例として、自律移動体30として清掃ロボットを適用した場合について示しているが、この清掃ロボットに限定されるものではない。
【0021】
操作機器10は、ユーザの動作を検出し、検出したユーザの動作で示される位置から、自律移動体30が移動可能な経路を表す経路情報を生成する。この経路情報で表される移動経路50は、開始地点51から目的地点52に至る経路とされる。ユーザの動作は、例えば、ユーザの指差し運動の動作又は視線運動の動作である。より具体的に、ユーザの動作は、ユーザの指差し運動の動作又は視線運動の動作により、自律移動体30の移動経路50又は目的地点52を指示する動作である。自律移動体30は、操作機器10から受信される、移動経路50を表す経路情報に従って、開始地点51から目的地点52まで移動する。
【0022】
図2は、第1の実施形態に係る自律移動体制御システム100の電気的な構成の一例を示すブロック図である。
【0023】
図2に示すように、本実施形態に係る自律移動体制御システム100が備える操作機器10は、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、入出力インタフェース(I/O)14と、記憶部15と、センサ16と、カメラ17と、表示部18と、調整機構19と、通信部20と、を備えている。
【0024】
CPU11、ROM12、RAM13、及びI/O14は、バスを介して各々接続されている。I/O14には、記憶部15と、センサ16と、カメラ17と、表示部18と、調整機構19と、通信部20と、を含む各機能部が接続されている。これらの各機能部は、I/O14を介して、CPU11と相互に通信可能とされる。
【0025】
CPU11、ROM12、RAM13、及びI/O14によって制御部が構成される。制御部は、操作機器10の一部の動作を制御するサブ制御部として構成されてもよいし、操作機器10の全体の動作を制御するメイン制御部の一部として構成されてもよい。制御部の各ブロックの一部又は全部には、例えば、LSI(Large Scale Integration)等の集積回路又はICチップセットが用いられる。上記各ブロックに個別の回路を用いてもよいし、一部又は全部を集積した回路を用いてもよい。上記各ブロック同士が一体として設けられてもよいし、一部のブロックが別に設けられてもよい。また、上記各ブロックのそれぞれにおいて、その一部が別に設けられてもよい。制御部の集積化には、LSIに限らず、専用回路又は汎用プロセッサを用いてもよい。
【0026】
記憶部15としては、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等が用いられる。記憶部15には、本実施形態に係る自律移動体制御処理を実行するための制御プログラム15Aが記憶される。なお、この制御プログラム15Aは、ROM12に記憶されていてもよい。制御プログラム15Aは、自律移動体制御プログラムの一部を含む。
【0027】
制御プログラム15Aは、例えば、操作機器10に予めインストールされていてもよい。制御プログラム15Aは、不揮発性の記憶媒体に記憶して、又はネットワークを介して配布して、操作機器10に適宜インストールすることで実現してもよい。なお、不揮発性の記憶媒体の例としては、CD-ROM(Compact Disc Read Only Memory)、光磁気ディスク、HDD、DVD-ROM(Digital Versatile Disc Read Only Memory)、フラッシュメモリ、メモリカード等が想定される。
【0028】
センサ16は、ユーザの視線の動きを検知する視線センサであり、各種のセンサ方式が採用される。
【0029】
カメラ17は、ユーザの動きとして、ユーザの手振り、身振り等のジェスチャの様子を撮影するカメラである。カメラ17は、例えば、ユーザの指差し動作を撮影する。
【0030】
表示部18には、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(Electro Luminescence)ディスプレイ等が用いられる。表示部18には、ディスプレイとレンズが一体的に設けられており、ユーザに対して各種AR映像を提示可能とする。
【0031】
調整機構19は、センサ16、カメラ17、及び表示部18を保持すると共に、これらセンサ16、カメラ17、及び表示部18が適切な位置になるように調整を可能とする。
【0032】
通信部20は、一例として、無線LAN(Local Area Network)等を用いた無線通信を行うための無線インタフェースであり、自律移動体30との間で無線通信が可能とされる。
【0033】
一方、自律移動体制御システム100が備える自律移動体30は、CPU31と、ROM32と、RAM33と、I/O34と、記憶部35と、駆動部36と、センサ37と、カメラ38と、通信部39と、を備えている。
【0034】
CPU31、ROM32、RAM33、及びI/O34は、バスを介して各々接続されている。I/O34には、記憶部35と、駆動部36と、センサ37と、カメラ38と、通信部39と、を含む各機能部が接続されている。これらの各機能部は、I/O34を介して、CPU31と相互に通信可能とされる。
【0035】
CPU31、ROM32、RAM33、及びI/O34によって制御部が構成される。制御部は、自律移動体30の一部の動作を制御するサブ制御部として構成されてもよいし、自律移動体30の全体の動作を制御するメイン制御部の一部として構成されてもよい。
【0036】
記憶部35としては、例えば、HDD、SSD、フラッシュメモリ等が用いられる。記憶部35には、本実施形態に係る自律移動体制御処理を実行するための制御プログラム35Aが記憶される。なお、この制御プログラム35Aは、ROM32に記憶されていてもよい。制御プログラム35Aは、自律移動体制御プログラムの一部を含む。本実施形態では、操作機器10の制御プログラム15Aと自律移動体30の制御プログラム35Aとにより自律移動体制御プログラムが構成される。また、制御プログラム35Aは、予め実装されたナビゲーションプログラム35Bと連携して動作するようにしてもよい。
【0037】
記憶部35には、ナビゲーションプログラム35B、地
図35Cが記憶される。自律移動体30は、一般的に、予め実装されたナビゲーションプログラム35Bと適切なセンサ37とを有し、これにより、使用環境全体の中で方向付けし、環境全体内でナビゲートすることができる。ナビゲーションプログラム35Bは、例えば、障害物回避機能を実装した、SLAM(Simultaneous Localization and Mapping)アルゴリズム等を用いることができる。この場合、使用領域の1つ以上の地
図35Cを格納することができる。自律移動体30は、使用中に新たに使用領域の地図を作成してもよいし、使用開始時に既に存在している既存の地図を使用してもよい。既存の地図は、以前の使用中に、例えば、探索走行の間に、自身によって作成されても良いし、外部から提供されたものであってもよい。
【0038】
制御プログラム35Aは、例えば、自律移動体30に予めインストールされていてもよい。制御プログラム35Aは、不揮発性の記憶媒体に記憶して、又はネットワークを介して配布して、自律移動体30に適宜インストールすることで実現してもよい。なお、不揮発性の記憶媒体の例としては、上述したように、CD-ROM、光磁気ディスク、HDD、DVD-ROM、フラッシュメモリ、メモリカード等が想定される。
【0039】
駆動部36は、自律移動体30の駆動に必要な駆動系部材を含み、例えば、電動機、歯車、及び車輪等を含む。
【0040】
センサ37は、自律移動体30の向きを決めてナビゲートするのに適したセンサであり、例えば、使用環境内にある物体への距離を測定するように構成されたセンサが含まれる。センサ37には、例えば、光学センサ、音響センサ、超音波センサ、触覚センサ、加速度センサ等の各種センサが用いられる。
【0041】
カメラ38は、自律移動体30の周囲を撮影して画像データとして取り込むためのカメラである。
【0042】
通信部39は、一例として、無線LAN等を用いた無線通信を行うための無線インタフェースであり、操作機器10との間で無線通信が可能とされる。
【0043】
ここで、
図3及び
図4を参照して、構造物60が存在する場合の自律移動体30の移動経路の比較例について説明する。
【0044】
図3に示すように、ユーザは自律移動体30を開始地点51から目的地点52まで移動させることを意図して指差し動作を行い、操作機器10から自律移動体30の移動経路を指示する。しかしながら、指示した移動経路の一部は、構造物60の裏側となるため、ユーザから見ると死角となる。この場合、ユーザが指示した移動経路の一部は、構造物60の手前側と判定される。この結果、自律移動体30の移動経路は、
図4に示す経路となり、ユーザの意図に反し、構造物60の手前側に移動してしまう。
【0045】
これに対して、本実施形態に係る自律移動体制御システム100は、ユーザの指差し動作又は視線動作に対応する経路情報に基づいて、構造物60の影響を受けない3次元空間上の指示経路を推定し、自律移動体30の現在位置及び推定した指示経路に基づいて、自律移動体30の次の移動先の位置を導出する。これにより、ユーザから見て死角となる移動経路でも指示を可能とする。
【0046】
具体的に、本実施形態に係る操作機器10のCPU11は、ROM12又は記憶部15に記憶されている制御プログラム15AをRAM13に書き込んで実行することにより、
図5に示す各部として機能し、本実施形態に係る自律移動体30のCPU31は、ROM32又は記憶部35に記憶されている制御プログラム35AをRAM53に書き込んで実行することにより、
図5に示す各部として機能する。
【0047】
図5は、第1の実施形態に係る自律移動体制御システム100の機能的な構成の一例を示すブロック図である。
【0048】
図5に示すように、本実施形態に係る自律移動体制御システム100は、操作機器10及び自律移動体30を備える。本実施形態に係る操作機器10のCPU11は、動作検出部11A、経路取得部11B、ベクトル生成部11C、及び経路推定部11Dとして機能し、本実施形態に係る自律移動体30のCPU31は、位置導出部31Aとして機能する。
【0049】
動作検出部11Aは、カメラ17から、ユーザの指差し動作の様子を撮影した画像データを取得し、取得した画像データを解析することにより、ユーザの動作(指差し動作)を検出する。また、動作検出部11Aは、センサ16により検知されたユーザの視線の動きから、ユーザの動作(視線動作)を検出する。
【0050】
経路取得部11Bは、動作検出部11Aによって検出されたユーザの動作(指差し動作又は視線動作)に対応して、自律移動体30が移動可能な経路を表す経路情報を取得する。
【0051】
図6は、第1の実施形態に係る構造物60が存在する場合の自律移動体30の移動経路の一例を模式的に示す図である。なお、開始地点51から目的地点52に至る点線で示す経路は、ユーザが意図した移動経路を示している。
【0052】
ベクトル生成部11Cは、経路取得部11Bにより取得された経路情報から、ユーザの指示位置を始点とするベクトルの集合を生成する。具体的に、経路情報が与えられると、
図6に示すように、経路情報で表される移動経路を(N-1)個の区間に分割し、N個の区分点h
1~h
Nを作成する。そして、ユーザの指示位置、例えば、ユーザが装着する操作機器10の3次元位置を始点S1として、各区分点h
1~h
Nに向かうベクトルの集合V={v
1,・・・,v
N}を生成する。
【0053】
経路推定部11Dは、ベクトル生成部11Cにより生成されたベクトル集合V={v1,・・・,vN}を用いて、自律移動体30に対してユーザが指示する3次元空間上の経路である指示経路を推定する。この指示経路は、例えば、自律移動体30に関する、3次元空間の3次元位置に対応するポテンシャル場として表される。具体的に、i={1,・・・,N-1}について、viとvi+1で張られる面と、自律移動体30の3次元位置x∈R3との距離をdsi(x)とする。このとき、経路推定部11Dでは3つのポテンシャルを計算することで、ポテンシャル場を生成する。1つ目のポテンシャルは、経路情報で表される移動経路の開始地点51から目的地点52に向けて減少するポテンシャルpStoGである。このポテンシャルpStoGは、以下の式(1)を用いて導出される。
【0054】
【0055】
図7は、ポテンシャルp
StoGを導出する際に用いる比率αの求め方の説明に供する図である。
【0056】
ここで、
図7に示すように、比率αは、自律移動体30の3次元位置xと、ベクトルv
imin及びv
imin+1の各々との最近傍点c
imin,c
imin+1を導出し、3次元位置xと、c
iminとc
imin+1を結ぶ線分との最近傍点eを求めたとき、最近傍点eがc
iminとc
imin+1を結ぶ線分を内分する比率を表す。
【0057】
次に、2つ目のポテンシャルは、経路情報で表される移動経路から自律移動体30が逸脱した距離に従って増加するポテンシャルpcである。このポテンシャルpcは、以下の式(2)を用いて導出される。
【0058】
【0059】
次に、3つ目のポテンシャルは、自律移動体30の過去の移動位置列X={x1,・・・,xM}のそれぞれの位置に生じるポテンシャルpgである。このポテンシャルpgは、標準正規分布を用いて以下の式(3)で導出される。但し、Tは転置行列を示す。
【0060】
【0061】
ポテンシャルpgの導入により、自律移動体30は自身が移動してきた経路に対して正のポテンシャル場を持つことになり、既に探索した空間を再度探索する可能性を減少させることができる。また、M個以上の過去の位置についてはポテンシャルpgが0となるので、自律移動体30が袋小路に入った場合でも、Mステップ以上経過させることで、元の位置に戻ることも可能である。
【0062】
図8は、第1の実施形態に係るポテンシャル場p(x,X)の一例を模式的に示す図である。
【0063】
図8に示すように、上記3つのポテンシャルp
StoG、p
c、p
gを用いて、ユーザが意図した移動経路を含むようにポテンシャル場p(x,X)が生成される。このポテンシャル場p(x,X)は、以下の式(4)で表される。
【0064】
【0065】
図5に戻り、位置導出部31Aは、自律移動体30の現在位置、及び、経路推定部11Dにより推定された指示経路(例えば、上記で求めたポテンシャル場p(x,X))に基づいて、自律移動体30の次の移動先の位置を導出する。具体的に、現在位置x
cが与えられたとき、現在位置x
cから直進した際の移動先の位置x
fを導出し、左右どちらかにk={1,・・・,n}回回転してから直進した際の移動先の位置x
lk,x
rkを導出する。但し、nは自律移動体30の1ステップあたりの回転角度θ[deg]に対し,nθ<180degを満たす最大のnである。次に、それぞれの位置でのポテンシャルを導出し、ポテンシャルが最小になる移動先x
bを求める。移動先x
bは、以下の式(5)を用いて求められる。
【0066】
【0067】
つまり、位置導出部31Aは、ポテンシャル場p(x,X)が最小となる移動先xbの位置を、次の移動先の位置として決定する。但し、構造物60でのスタックを防止するため、移動位置列Xを使用したスタック防止機構を設定する。スタック防止機構では、x1=x2のとき、1ステップ前の行動から禁止行動を設定する。この禁止行動は、例えば、1ステップ前の行動が直進のときは次ステップの直進を禁止し、1ステップ前の行動が右回転のときは次ステップの左回転を禁止し、そして、1ステップ前の行動が左回転のときは次ステップの右回転を禁止する行動とする。禁止行動として選択された行動の各ポテンシャルを計算する場合は、次ステップの位置を現在位置と同じものとして計算を行う。これにより、禁止行動として選択された行動によるポテンシャルは、ポテンシャルpgにより大きくなるため、スタックから抜け出すことが期待できる。
【0068】
また、直進→右回転→直進→左回転のような行動選択により構造物60に当たり続けてスタックする事態を回避するため、1ステップ前の行動が直進の場合は、2ステップ前の左右回転行動の逆行動も禁止行動として設定してもよい。
【0069】
最後に導かれた移動先xbから、xb=xfのときは直進を選択し、xb=xlkのときは左回転を選択し、xb=xrkのときは右回転を選択する。そして、x1’を次ステップでの移動位置、x2’=x1,・・・,xM’=xM-1としたX’={x1’,・・・,xM’}を新たなXとする。上記の処理を目的地点52に到達するまで繰り返す。
【0070】
つまり、上述の
図3に示すように、ユーザが指差し動作又は視線動作で自律移動体30の移動経路を指示する際に、意図した移動経路の一部が構造物60の死角に存在する場合は、ユーザが示す位置が構造物60の手前と判定される。このため、上述の
図4に示すように、自律移動体30に対して意図した移動経路を指示することができない。これに対して、本実施形態に係る手法では、上述の
図6に示すように、ユーザが示した移動経路を、指示位置を始点としたベクトルの集合で表現する。そして、上述の
図8に示すように、これらのベクトルを用いて3次元空間上にポテンシャル場を生成する。ポテンシャル場は、ユーザが意図した移動経路を含む平面上に適切に生成される。本実施形態に係る手法によって3次元空間上に生成されるポテンシャル場は、構造物や障害物の影響を受けない情報とされる。
【0071】
次に、
図9を参照して、第1の実施形態に係る自律移動体制御システム100の作用について説明する。
【0072】
図9は、第1の実施形態に係る制御プログラム15A及び制御プログラム35Aによる処理の流れの一例を示すフローチャートである。
【0073】
まず、自律移動体制御システム100が自律移動体制御処理の開始の指示を受け付けると、操作機器10のCPU11により制御プログラム15Aが起動されると共に、自律移動体30のCPU31により制御プログラム35Aが起動され、以下の各ステップを実行する。
【0074】
図9のステップS101では、操作機器10のCPU11が、ユーザの指差し動作又は視線動作に対応して、自律移動体30が移動可能な経路を表す経路情報を取得する。
【0075】
ステップS102では、操作機器10のCPU11が、一例として、上述の
図6に示すように、ステップS101で取得した経路情報で表される移動経路を(N-1)個の区間に分割し、N個の区分点h
1~h
Nを作成する。
【0076】
ステップS103では、操作機器10のCPU11が、一例として、上述の
図6に示すように、ユーザの指示位置、例えば、ユーザが装着する操作機器10の3次元位置を始点S1として、各区分点h
1~h
Nに向かうベクトルの集合V={v
1,・・・,v
N}を生成する。
【0077】
ステップS104では、操作機器10のCPU11が、一例として、上述の
図8に示すように、ステップS103で生成されたベクトル集合V={v
1,・・・,v
N}を用いて、自律移動体30に対してユーザが指示する3次元空間上の経路である指示経路を表すポテンシャル場p(x,X)を生成する。このポテンシャル場p(x,X)は、例えば、上述の式(4)を用いて求められる。
【0078】
ステップS105では、操作機器10のCPU11が、ステップS104で生成されたポテンシャル場p(x,X)を自律移動体30に送信する。
【0079】
ステップS106では、自律移動体30のCPU31が、操作機器10からポテンシャル場p(x,X)を受信する。
【0080】
ステップS107では、自律移動体30のCPU31が、自律移動体30の現在位置xcから直進した際の移動先の位置xfを導出し、左右どちらかにk={1,・・・,n}回回転してから直進した際の移動先の位置xlk,xrkを導出する。
【0081】
ステップS108では、自律移動体30のCPU31が、ステップS107で導出した移動先の位置xf、xlk、xrkとベクトルの集合Vから、移動先の位置xf、xlk、xrkの各々におけるポテンシャルを計算し、一例として、上述の式(5)を用いて、ポテンシャルが最小になる移動先xbを導出する。
【0082】
ステップS109では、自律移動体30のCPU31が、ステップS108で導出した移動先xbとして選択された移動先の位置に従い次の行動を選択する。
【0083】
ステップS110では、自律移動体30のCPU31が、ステップS109で選択された行動による移動先の3次元位置を用いて移動位置列Xを更新する。
【0084】
ステップS111では、自律移動体30のCPU31が、一例として、上述の
図6に示す目的地点52に到着したか否かを判定する。目的地点52に到着していないと判定した場合(否定判定の場合)、ステップS107に移行して処理を繰り返し、目的地点52に到着したと判定した場合(肯定判定の場合)、自律移動体制御システム100の制御プログラム15A及び制御プログラム35Aによる一連の処理を終了する。
【0085】
なお、上記では、操作機器10が経路情報からポテンシャル場を生成するポテンシャル場生成モジュールを備え、自律移動体30が自身の現在位置とポテンシャル場から次の行動を決定する行動決定モジュールを備える形態について説明した。つまり、ポテンシャル場生成モジュールは、経路取得部11B、ベクトル生成部11C、及び経路推定部11Dを含み、行動決定モジュールは、位置導出部31Aを含む。これに対して、自律移動体30がポテンシャル場生成モジュール及び行動決定モジュールを備える形態としてもよい。この場合、自律移動体30が操作機器10から経路情報を取得するように構成される。
【0086】
このように本実施形態によれば、ユーザが指差し動作又は視線動作で指示する移動経路に、ユーザから見て構造物や障害物で死角となる区間を含んでいても、自律移動体への指示を行うことができる。
【0087】
[第2の実施形態]
第2の実施形態では、未知空間の探索手法である既知のDDPPO(Decentralized Distributed Proximal Policy Optimization)に対し、経路情報から得られる指示経路を組み込み、未知空間を探索して目的地点まで移動させる形態について説明する。
【0088】
図10は、第2の実施形態に係る自律移動体制御システム100Aの機能的な構成の一例を示すブロック図である。
【0089】
図10に示すように、本実施形態に係る自律移動体制御システム100Aは、操作機器10及び自律移動体30Aを備える。本実施形態に係る操作機器10のCPU11は、動作検出部11A、経路取得部11B、ベクトル生成部11C、及び経路推定部11Dとして機能し、本実施形態に係る自律移動体30AのCPU31は、位置導出部31A及び確率分布導出部31Bとして機能する。以下では、第1の実施形態で説明した自律移動体制御システム100との相違点について説明する。
【0090】
確率分布導出部31Bは、経路推定部11Dにより推定された指示経路(例えば、上記で求めたポテンシャル場p(x,X))と、自律移動体30の移動先の位置とから、自律移動体30が取り得る行動の確率分布を導出する。そして、確率分布導出部31Bは、自律移動体30の次の行動を、導出した自律移動体30が取り得る行動の確率分布、及び、自律移動体30に予め実装されたナビゲーションプログラム35Bにより選択可能な自律移動体30の行動の確率分布から決定する。
【0091】
具体的には、ナビゲーションプログラム35Bは、DDPPOを実装する。DDPPOは、自律移動体30が取得した画像と自己位置の情報に基づいて、未知領域で指定された物体を探索する強化学習の手法である。DDPPOの出力は次ステップでの各行動aの確率分布PDDPPO(a)であり、この行動の確率分布PDDPPO(a)からランダムに行動を選択することで空間を探索することが可能である。
【0092】
一方、位置導出部31Aにより導出した次ステップの位置候補x(a)に基づいて、経路推定部11Dで生成したポテンシャル場p(x,X)を計算した後、それぞれのポテンシャル場に対して現在位置xcでのポテンシャル場との差を計算し、sofmax関数を用いて確率分布P(x(a))に変換する。この確率分布P(x(a))は、以下の式(6)を用いて求められる。
【0093】
【0094】
但し、左右回転を行った後の移動先であるxlk、xrkについては、以下の式(7)を用いる。
【0095】
【0096】
そして、PDDPPOとP(x(a))を以下の式(8)に示す通り、ある重みβを用いて加算し、次ステップの行動anextを決定する。
【0097】
【0098】
ここで、βは、dsi(xc)の関数であり、以下の式(9)を用いて求められる。
【0099】
【0100】
これにより、経路情報にノイズが生じて自律移動体30の移動可能位置と経路情報に誤差が生じた場合、βの値が0に近くなり、確率分布PDDPPOの確率値から行動を選択しやすくなる。従って、ユーザの指示のミスによる負の影響を最小限にとどめることができる。
【0101】
つまり、本実施形態に係る手法によれば、自律移動体30の移動先の位置に対応したポテンシャルを用いて、次ステップで自律移動体30が取り得る各行動の確率分布を計算することが可能である。同様に、自律移動体30に予め実装されているナビゲーションプログラム35B(既存のアルゴリズム)から各行動の確率分布を導出し、導出した確率分布と、本実施形態に係る手法により導出した確率分布とをある重みで加算することが可能になる。これにより、既存のアルゴリズムに対して、ユーザの指示の経路情報を組み込むことができる。
【0102】
さらに、本実施形態では、自律移動体30の位置と指示された経路までの距離に従って、上記の加算時の重みを自動的に変動させる機能を有する。これにより、ユーザが指示した経路にノイズが生じ、自律移動体30の移動可能経路から逸脱した際にユーザの指示で生成された情報の影響を減らし、既存のアルゴリズムの行動確率を積極的に採用することができる。この機能の導入により、ユーザの指示が的確でない場合の指示経路による負の影響を減らすことが可能となる。
【0103】
このように本実施形態によれば、自律移動体に既にナビゲーションプログラムが実装されている場合であっても、ユーザの指示を適切に組み込み、ナビゲーションの成功率を向上させることができる。また、ユーザの指示にノイズが含まれていても、ユーザの指示の影響を減らし、ナビゲーションの成功率を向上させることができる。
【0104】
[第2の実施形態の変形例]
この変形例では、上述のポテンシャルpcを、以下の式(10)を用いて表すものとする。
【0105】
【0106】
上式において十分大きなγをとることで、経路情報で表される移動経路からεだけ離れる行動の選択確率をほぼ0にすることが可能となり、これは移動経路に対して行動可能範囲を設定することと同じ意味を持つ。DDPPOに組み込む際には、P(x(a))の中で行動確率がほぼ0の行動の選択を禁止し、その他の行動の中からPDDPPOの行動確率に従って行動を選択する。
【0107】
なお、上記各実施形態において、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えば、CPU:Central Processing Unit、等)や、専用のプロセッサ(例えば、GPU:Graphics Processing Unit、ASIC: Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array、プログラマブル論理デバイス、等)を含むものである。
【0108】
また、上記各実施形態におけるプロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。また、プロセッサの各動作の順序は、上記各実施形態において記載した順序のみに限定されるものではなく、適宜変更してもよい。
【0109】
以上、実施形態に係る操作機器及び自律移動体を例示して説明した。実施形態は、操作機器及び自律移動体の各々が備える各部の機能をコンピュータに実行させるためのプログラムの形態としてもよい。実施形態は、これらのプログラムを記憶したコンピュータが読み取り可能な非一時的記憶媒体の形態としてもよい。
【0110】
その他、上記実施形態で説明した操作機器及び自律移動体の構成は、一例であり、主旨を逸脱しない範囲内において状況に応じて変更してもよい。
【0111】
また、上記実施形態で説明したプログラムの処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【0112】
また、上記実施形態では、プログラムを実行することにより、実施形態に係る処理がコンピュータを利用してソフトウェア構成により実現される場合について説明したが、これに限らない。実施形態は、例えば、ハードウェア構成や、ハードウェア構成とソフトウェア構成との組み合わせによって実現してもよい。
【0113】
以上の実施形態に関し、更に以下を開示する。
【0114】
第1態様に係る自律移動体制御システムは、ユーザが装着する操作機器と、前記操作機器と通信可能な自律移動体とを含む自律移動体制御システムであって、前記ユーザの動作に対応して、前記自律移動体が移動可能な経路を表す経路情報を取得する経路取得部と、前記経路情報から、前記ユーザの指示位置を始点とするベクトルの集合を生成するベクトル生成部と、前記ベクトルの集合を用いて、前記自律移動体に対して前記ユーザが指示する3次元空間上の経路である指示経路を推定する経路推定部と、前記自律移動体の現在位置及び前記指示経路に基づいて、前記自律移動体の次の移動先の位置を導出する位置導出部と、を備える。
【0115】
第2態様に係る自律移動体制御システムは、第1態様に係る自律移動体制御システムにおいて、前記指示経路が、前記自律移動体に関する、前記3次元空間の3次元位置に対応するポテンシャル場として表される。
【0116】
第3態様に係る自律移動体制御システムは、第2態様に係る自律移動体制御システムにおいて、前記位置導出部が、前記ポテンシャル場が最小となる移動先の位置を、前記次の移動先の位置として決定する。
【0117】
第4態様に係る自律移動体制御システムは、第1態様~第3態様の何れか1態様に係る自律移動体制御システムにおいて、前記指示経路と、前記自律移動体の移動先の位置とから、前記自律移動体が取り得る行動の確率分布を導出する確率分布導出部を更に備える。
【0118】
第5態様に係る自律移動体制御システムは、第4態様に係る自律移動体制御システムにおいて、前記確率分布導出部が、前記自律移動体の次の行動を、前記導出した前記自律移動体が取り得る行動の確率分布、及び、前記自律移動体に予め実装されたナビゲーションプログラムにより選択可能な前記自律移動体の行動の確率分布から決定する。
【0119】
第6態様に係る自律移動体制御システムは、第1態様~第5態様の何れか1態様に係る自律移動体制御システムにおいて、前記ユーザの動作が、前記ユーザの指差し運動の動作又は視線運動の動作である。
【0120】
第7態様に係る自律移動体制御システムは、第6態様に係る自律移動体制御システムにおいて、前記ユーザの動作が、前記ユーザの指差し運動の動作又は視線運動の動作により、前記自律移動体の移動経路又は目的地点を指示する動作である。
【0121】
第8態様に係る自律移動体制御方法は、ユーザが装着する操作機器と、前記操作機器と通信可能な自律移動体とを含む自律移動体制御システムによる自律移動体制御方法であって、前記ユーザの動作に対応して、前記自律移動体が移動可能な経路を表す経路情報を取得し、前記経路情報から、前記ユーザの指示位置を始点とするベクトルの集合を生成し、前記ベクトルの集合を用いて、前記自律移動体に対して前記ユーザが指示する3次元空間上の経路である指示経路を推定し、前記自律移動体の現在位置及び前記指示経路に基づいて、前記自律移動体の次の移動先の位置を導出する。
【0122】
第9態様に係る自律移動体制御プログラムは、ユーザが装着する操作機器と、前記操作機器と通信可能な自律移動体とを含む自律移動体制御システムの自律移動体制御プログラムであって、前記ユーザの動作に対応して、前記自律移動体が移動可能な経路を表す経路情報を取得し、前記経路情報から、前記ユーザの指示位置を始点とするベクトルの集合を生成し、前記ベクトルの集合を用いて、前記自律移動体に対して前記ユーザが指示する3次元空間上の経路である指示経路を推定し、前記自律移動体の現在位置及び前記指示経路に基づいて、前記自律移動体の次の移動先の位置を導出することを、コンピュータに実行させる。
【符号の説明】
【0123】
10 操作機器
11、31 CPU
11A 動作検出部
11B 経路取得部
11C ベクトル生成部
11D 経路推定部
12、32 ROM
13、33 RAM
14、34 I/O
15、35 記憶部
15A、35A制御プログラム
16、37 センサ
17、38 カメラ
18 表示部
19 調整機構
20、39 通信部
30、30A 自律移動体
31A 位置導出部
31B 確率分布導出部
35B ナビゲーションプログラム
35C 地図
36 駆動部
100、100A 自律移動体制御システム