(57)【要約】【課題】移動ロボットの円滑な自律移動を実現するための実用的なニューラルネットワークの機械学習方法を提供する。【解決手段】機械学習方法は、ニューラルネットワークが移動ロボットに実装される前の段階において、シミュレーションを利用して、設定された空間に静止した第１障害物を配置し、出発地から第１障害物を回避して目的地まで到達する経路を、第１障害物の配置を異ならせて繰り返し学習する第１学習ステップと、当該ニューラルネットワークが移動ロボットに実装された後の段階において、移動ロボットが移動する空間内で移動ロボットが周囲で動作する第２障害物を認識した場合に、第２障害物を回避して目的地まで到達する経路を、第２障害物を認識するごとに繰り返し学習する第２学習ステップとを有する。【選択図】図１
2020194432.tif 000002
【特許請求の範囲】
【請求項１】
与えられた地図情報と検出された移動体情報に基づいて、目的地までの移動ロボットの経路を出力するようコンピュータを機能させるためのニューラルネットワークの機械学習方法であって、
前記ニューラルネットワークが前記移動ロボットに実装される前の段階において、シミュレーションを利用して、設定された空間に静止した第１障害物を配置し、出発地から前記第１障害物を回避して目的地まで到達する経路を、前記第１障害物の配置を異ならせて繰り返し学習する第１学習ステップと、
前記ニューラルネットワークが前記移動ロボットに実装された後の段階において、前記移動ロボットが移動する空間内で前記移動ロボットが周囲で動作する第２障害物を認識した場合に、前記第２障害物を回避して前記目的地まで到達する経路を、前記第２障害物を認識するごとに繰り返し学習する第２学習ステップと
を有する機械学習方法。
【請求項２】
前記第２学習ステップは、使用者によって示される経路を前記目的地まで到達する経路の少なくとも一部として学習する請求項１に記載の機械学習方法。
【請求項３】
前記第２学習ステップは、前記使用者によって示される前記経路を前記使用者が発する音声に基づいて取得する請求項２に記載の機械学習方法。
【請求項４】
前記第２学習ステップは、前記使用者によって示される前記経路を前記使用者が示す動作に基づいて取得する請求項２または３に記載の機械学習方法。
【請求項５】
前記第２学習ステップは、前記使用者によって示される前記経路を前記使用者が前記移動ロボットに加える力に基づいて取得する請求項２から４のいずれか１項に記載の機械学習方法。
【請求項６】
前記第２学習ステップは、仮想的な前記第２障害物を発生させて前記移動ロボットに認識させる場合を含む請求項１から５のいずれか１項に記載の機械学習方法。
【請求項７】
前記設定された空間における前記移動ロボットの移動平面は、ｍ×ｎ（ｎ、ｍは２以上の自然数）のセルで表わされ、前記第１障害物および前記第２障害物は、前記セルを占有する障害物として前記移動ロボットに認識される請求項１から６のいずれか１項に記載の機械学習方法。
【請求項８】
請求項１から７のいずれか１項に記載の機械学習方法によって学習した学習済みニューラルネットワークが実装された移動ロボットであって、
前記第１障害物が記述された地図情報および目的地を取得する取得部と、
周囲で動作する前記第２障害物を検知する検知部と、
前記取得部が取得した前記地図情報および前記目的地と、前記検知部が検知した前記第２障害物の検知情報とを前記学習済みニューラルネットワークに入力して前記目的地まで到達する経路を演算する演算部と、
前記演算部が演算した前記経路に沿って移動するように制御する移動制御部と
を備える移動ロボット。
【請求項９】
前記演算部は、前記検知部が前記第２障害物を検知するごとに前記経路を更新する請求項８に記載の移動ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習方法および移動ロボットに関する。
【背景技術】
【０００２】
目標地点まで自律的に移動する移動ロボットが知られている。移動ロボットは、環境地図を用いて目標地点までの経路を決定し、その経路に沿って移動する。例えば、特許文献１は、移動経路において障害物と衝突する可能性を評価する技術を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２９１５４０号公報
【特許文献２】特開２０１７−２０４１４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
移動ロボットが目的地まで自律的に移動する場合には、地図情報を解析して移動経路を生成する場合が多い。しかし、地図情報は、例えば人や他の移動ロボットなど環境内で動作する障害物の情報を含んでおらず、静止した障害物の情報が記述されているに過ぎない。したがって、生成された移動経路に沿って移動する場合であっても、動作する障害物を検知するたびにその障害物を回避する回避経路を解析的に生成する必要があった。
【０００５】
すなわち、移動経路の生成も回避経路の生成も解析的に行うので演算に時間がかかり、移動ロボットの移動性能を制限するものであった。そこで、解析的な演算を回避するために、学習済みニューラルネットワークを利用することが考えられる。しかし、静止した障害物と動作する障害物のあらゆる配置や状態およびその組み合わせに対する経路生成をニューラルネットワークに機械学習させることは、現実的には困難である。
【０００６】
本発明は、このような問題を解決するためになされたものであり、移動ロボットの円滑な自律移動を実現するための実用的なニューラルネットワークの機械学習方法と、その機械学習方法によって学習した学習済みニューラルネットワークを利用して自律移動する移動ロボットとを提供するものである。
【課題を解決するための手段】
【０００７】
本発明の第１の態様における機械学習方法は、与えられた地図情報と検出された移動体情報に基づいて、目的地までの移動ロボットの経路を出力するようコンピュータを機能させるためのニューラルネットワークの機械学習方法であって、当該ニューラルネットワークが移動ロボットに実装される前の段階において、シミュレーションを利用して、設定された空間に静止した第１障害物を配置し、出発地から第１障害物を回避して目的地まで到達する経路を、第１障害物の配置を異ならせて繰り返し学習する第１学習ステップと、当該ニューラルネットワークが移動ロボットに実装された後の段階において、移動ロボットが移動する空間内で移動ロボットが周囲で動作する第２障害物を認識した場合に、第２障害物を回避して目的地まで到達する経路を、第２障害物を認識するごとに繰り返し学習する第２学習ステップとを有する。
【０００８】
このように機械学習を二段階に分けることにより、実装対象となる移動ロボットが自律移動する作業空間に適応した学習済みニューラルネットワークを迅速に作成することができる。すなわち、様々な作業空間で利用されるそれぞれの移動ロボットに実装される各ニューラルネットワークは、静止した障害物を回避して目的地まで到達する経路の学習を共通に学習し、一方で、作業空間の性質に大きく依存する動作障害物の回避については、それぞれの移動ロボットに実装されてから個別に学習することにより、学習の効率化と、各移動ロボットに対する適応性の向上を図っている。
【０００９】
上記の機械学習方法において第２学習ステップは、使用者によって示される経路を目的地まで到達する経路の少なくとも一部として学習することができる。動作する障害物に対してどのように回避する経路を生成するかを使用者に示してもらえば、より簡便に教師データを得ることができる。
【００１０】
この場合、使用者によって示される経路を使用者が発する音声に基づいて取得しても良い。例えば、使用者の「右へ避けろ」との音声をマイクで取得した場合には、障害物の位置と動作速度を把握した上で、当該障害物を右へ避ける経路を生成する。同様に、使用者によって示される経路を使用者が示す動作に基づいて取得しても良い。例えば、使用者が右へ指さすジェスチャーをカメラで取得した場合には、障害物の位置と動作速度を把握した上で、当該障害物を右へ避ける経路を生成する。さらに、使用者によって示される経路を使用者が移動ロボットに加える力に基づいて取得しても良い。例えば、使用者が移動ロボットを右側へ押す力を検知した場合には、障害物の位置と動作速度を把握した上で、当該障害物を右へ避ける経路を生成する。いずれにしても、使用者は、複雑な作業を行うことなく簡単に、障害物を回避する経路を移動ロボットへ示すことができる。
【００１１】
また、第２学習ステップは、仮想的な第２障害物を発生させて移動ロボットに認識させる場合を含んでも良い。移動する障害物の典型的な具体例をある程度取得した後は、同様の障害物を仮想的に様々な場所に発生させ、その仮想的な障害物を回避する経路を学習すれば、多くの教師データを得ることができる。
【００１２】
上記の機械学習方法において設定された空間における移動ロボットの移動平面は、ｍ×ｎ（ｎ、ｍは２以上の自然数）のセルで表わされ、第１障害物および第２障害物は、セルを占有する障害物として移動ロボットに認識されると良い。このようなデータ構造を採用することにより、移動ロボットが自律移動する様々な空間に対応することができ、また、単純なデータ構造から演算量の軽減にも寄与する。
【００１３】
本発明の第２の態様における移動ロボットは、上記の機械学習方法によって学習した学習済みニューラルネットワークが実装された移動ロボットであって、第１障害物が記述された地図情報および目的地を取得する取得部と、周囲で動作する第２障害物を検知する検知部と取得部が取得した地図情報および目的地と検知部が検知した第２障害物の検知情報とを学習済みニューラルネットワークに入力して目的地まで到達する経路を演算する演算部と、演算部が演算した経路に沿って移動するように制御する移動制御部とを備える。
【００１４】
このように制御される移動ロボットは、移動すべき経路を迅速に決定できるので、滑らかな自律移動を行うことができる。この場合、演算部は、検知部が第２障害物を検知するごとに経路を更新しても良い。このように更新すれば、状況に応じた最適経路を選択することができる。
【発明の効果】
【００１５】
本発明により、移動ロボットの円滑な自律移動を実現するための実用的なニューラルネットワークの機械学習方法と、その機械学習方法によって学習した学習済みニューラルネットワークを利用して自律移動する移動ロボットとを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係る機械学習方法が行われるシステムの全体を説明するための概念図である。
【図２】移動ロボットの外観を示す斜視図である。
【図３】移動ロボットの制御ブロック図である。
【図４】シミュレーションＰＣの制御ブロック図である。
【図５】対象空間を記述するデータ構造について説明する概念図である。
【図６】第１学習ステップにおける教師データの生成について説明する説明図である。
【図７】第１学習ステップの学習の概念を説明する概念図である。
【図８】第２学習ステップにおける学習の様子を示す概念図である。
【図９】第２学習ステップにおける教師データの生成について説明する説明図である。
【図１０】第２学習ステップの学習の概念を説明する概念図である。
【図１１】本実施形態に係る機械学習方法のうち、主に第１学習ステップの処理について説明するフロー図である。
【図１２】本実施形態に係る機械学習方法のうち、主に第２学習ステップの処理について説明するフロー図である。
【図１３】本実施形態に係る学習済みニューラルネットワークが実装された移動ロボットの自律移動処理について説明するフロー図である。
【発明を実施するための形態】
【００１７】
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【００１８】
図１は、本実施形態に係る機械学習方法が行われるシステムの全体を説明するための概念図である。システムは、全体として、ニューラルネットワークの機械学習を行う機械学習装置として機能する。本実施形態において機械学習を行うニューラルネットワークは、与えられた地図情報と検出された移動体情報等を入力すると、移動ロボットが移動すべき目的地までの経路を出力するようコンピュータを機能させる経路生成ニューラルネットワーク（以下、経路生成ＮＮと呼ぶ）である。
【００１９】
システムは、経路生成ＮＮの第１学習ステップまでを行うシミュレーションＰＣ３００と、その後の第２学習ステップを行う移動ロボット１００を含む。移動ロボット１００は、無線ユニット７００を介してインターネット６００と接続されている。また、シミュレーションＰＣ３００およびシステムサーバ５００も、インターネット６００と接続されている。
【００２０】
ここでは、第１学習ステップを行う環境と第２学習ステップを行う環境とが離れた場所であって、インターネット６００を介して互いに接続され得る環境を想定している。具体的には、シミュレーションＰＣで第１学習ステップまで学習した経路生成ＮＮは、システムサーバ５００を経由して移動ロボット１００へ実装される。なお、インターネット６００を介さず、着脱可能なメモリを利用して、経路生成ＮＮをシミュレーションＰＣ３００から移動ロボット１００へ移す構成であっても構わない。また、第１学習ステップを行う環境と第２学習ステップを行う環境とが近ければ、近接無線通信を利用することもできる。
【００２１】
第２学習ステップが行われる環境は、移動ロボット１００が実際に運用される環境、あるいはそれに近い環境であることが望ましい。例えば、複数の移動ロボット１００のそれぞれを別々の環境で運用することを予定している場合は、まず、シミュレーションＰＣ３００で一括して経路生成ＮＮに第１学習ステップの学習を行わせる。そして、各移動ロボット１００へ当該経路生成ＮＮを実装し、それぞれが運用される環境で第２学習ステップの学習を行わせると良い。
【００２２】
図２は、経路生成ＮＮが実装される移動ロボットの一例である移動ロボット１００の外観を示す斜視図である。移動ロボット１００は、大きく分けて台車部１１０と本体部１２０によって構成される。台車部１１０は、円筒形状の筐体内に、それぞれが走行面に接地する２つの駆動輪１１１と１つのキャスター１１２とを支持している。２つの駆動輪１１１は、互いに回転軸芯が一致するように配設されている。それぞれの駆動輪１１１は、不図示のモータによって独立して回転駆動される。キャスター１１２は、従動輪であり、台車部１１０から鉛直方向に延びる旋回軸が車輪の回転軸から離れて車輪を軸支するように設けられており、台車部１１０の移動方向に倣うように追従する。
【００２３】
台車部１１０は、上面の周縁部にレーザスキャナ１３３を備える。レーザスキャナ１３３は、水平面内の一定の範囲をステップ角ごとにスキャンして、それぞれの方向に障害物が存在するか否かを出力する。さらに、障害物が存在する場合には、その障害物までの距離を出力する。移動ロボット１００は、レーザスキャナ１３３の連続する出力を解析することにより、障害物が動作しているか否か、動作している場合にはその動作方向およびその速度を把握することができる。
【００２４】
本体部１２０は、主に、台車部１１０の上面に搭載された胴部１２１、胴部１２１の上面に載置された頭部１２２、胴部１２１の側面に支持されたアーム１２３、およびアーム１２３の先端部に設置されたハンド１２４を備える。アーム１２３とハンド１２４は、不図示のモータを介して駆動され、様々な物体を制御された姿勢で把持する。胴部１２１は、不図示のモータの駆動力により、台車部１１０に対して鉛直軸周りに回転することができる。胴部１２１の上部には、円周方向に押圧ユニット１４３が設けられている。押圧ユニット１４３は、円周方向に沿って複数の押圧スイッチが整列された円環状の押圧スイッチ群である。押圧ユニット１４３は、胴部１２１に対して放射方向のどの方向から押されたかを検出する。
【００２５】
頭部１２２は、主に、ステレオカメラ１３１、マイク１３２および表示パネル１４１を備える。ステレオカメラ１３１は、同じ画角を有する２つのカメラユニットが互いに離間して配置された構成を有し、それぞれのカメラユニットで撮像された撮像信号を出力する。マイク１３２は、周辺環境で発生する音や使用者の声を音声信号に変換する。表示パネル１４１は、例えば液晶パネルであり、設定されたキャラクターの顔をアニメーションで表示したり、移動ロボット１００に関する情報をテキストやアイコンで表示したりする。
【００２６】
頭部１２２は、不図示のモータの駆動力により、胴部１２１に対して鉛直軸周りに回転することができる。したがって、ステレオカメラ１３１は、任意の方向の対象物を撮像することができ、また、表示パネル１４１は、任意の方向へ向けて表示内容を呈示することができる。移動ロボット１００は、ステレオカメラ１３１で撮像された撮像信号を解析することによっても、周囲の障害物までの距離や方向、障害物が動作する場合にはその動作方向およびその速度を把握することができる。
【００２７】
図３は、移動ロボット１００の制御ブロック図である。制御部１５０は、例えばＣＰＵであり、例えば胴部１２１に備えられたコントロールユニットに格納されている。台車駆動ユニット１４５は、駆動輪１１１と駆動輪１１１を駆動するための駆動回路やモータを含む。制御部１５０は、台車駆動ユニット１４５へ駆動信号を送ることにより、駆動輪の回転制御を実行する。また、制御部１５０は、台車駆動ユニット１４５からエンコーダ等のフィードバック信号を受け取って、台車部１１０の移動方向や移動速度を把握する。
【００２８】
上体駆動ユニット１４６は、アーム１２３およびハンド１２４を含む把持部、胴部１２１および頭部１２２と、これらを駆動するための駆動回路やモータを含む。制御部１５０は、上体駆動ユニット１４６へ駆動信号を送ることにより、把持動作や姿勢変更を実現する。また、制御部１５０は、上体駆動ユニット１４６からエンコーダ等のフィードバック信号を受け取って、アーム１２３およびハンド１２４の位置や移動速度、胴部１２１および頭部１２２の向きや回転速度を把握する。
【００２９】
表示パネル１４１は、制御部１５０が生成した画像信号を受信して表示する。制御部１５０は、上述のように、キャラクター等の画像信号を生成して、表示パネル１４１へ表示させる。表示パネル１４１がタッチパネルを備える場合には、表示パネル１４１は、タッチ信号を制御部１５０へ送信する。
【００３０】
ステレオカメラ１３１は、制御部１５０からの要求に従って周辺環境を撮像し、撮像信号を制御部１５０へ引き渡す。制御部１５０は、撮像信号を用いて画像処理を実行する。マイク１３２は、周辺環境で発生する音や使用者の声を音声信号に変換して制御部１５０へ引き渡す。レーザスキャナ１３３は、制御部１５０からの要求に従って移動方向に障害物が存在するか否かを検出し、その結果である検出信号を制御部１５０へ引き渡す。ステレオカメラ１３１およびレーザスキャナ１３３は、移動ロボット１００の周囲で動作する障害物を検知する検知部としての機能も担う。
【００３１】
メモリ１８０は、不揮発性の記憶媒体であり、例えばソリッドステートドライブが用いられる。メモリ１８０は、移動ロボット１００を制御するための制御プログラムや第２学習ステップを実行するための機械学習プログラムの他にも、制御や演算に用いられる様々なパラメータ値、関数、ルックアップテーブル等を記憶している。メモリ１８０は、特に、自律移動することが予定されている空間を記述した地図情報のデータベースである地図ＤＢ１８１と、学習中のあるいは学習済みの経路生成ＮＮ２００の記憶領域を含む。
【００３２】
地図ＤＢ１８１は、例えばシステムサーバ５００から送られてくる地図情報を蓄積する。制御部１５０は、移動ロボット１００が存在する地図情報を地図ＤＢ１８１から読み出して参照する。経路生成ＮＮ２００は、第２学習ステップの機械学習を開始するに当たり、上述のようにシステムサーバ５００から送られてきたものである。あるいは、移動ロボット１００の運用段階においては、他の移動ロボット１００により同一環境で第２学習ステップの機械学習が行われた、学習済みの経路生成ＮＮのコピーであっても良い。制御部１５０は、学習段階において第２学習ステップの機械学習を行う場合、および運用段階において目的地までの経路を決定する場合に、経路生成ＮＮ２００をメモリ３８０から読み出して後述する演算を行う。
【００３３】
押圧ユニット１４３は、円環状に配置された複数の押圧スイッチのうち、どのスイッチが押圧されたかを示す押圧信号を出力する。制御部１５０は、受け取った押圧信号から、押圧ユニット１４３が放射方向のどの方向から押されたかを認識する。通信ユニット１９０は、例えば無線ＬＡＮユニットであり、無線ユニット７００との間で無線通信を行う。通信ユニット１９０は、システムサーバ５００から送られてくる地図情報や経路生成ＮＮ２００を制御部１５０へ引き渡す。
【００３４】
制御部１５０は、メモリ１８０から読み出した制御プログラムや機械学習プログラムを実行することにより移動ロボット１００全体の制御と処理とを実行する。制御部１５０は、制御と処理に関わる様々な演算を実行する機能演算部としての役割も担う。学習部１５１および演算部１５２は、機能演算部の例である。学習部１５１は、メモリ３８０から学習中の経路生成ＮＮ２００を読み出して、第２学習ステップの機械学習を実行する。演算部１５２は、メモリ３８０から学習済みの経路生成ＮＮ２００を読み出して、目的地まで到達する経路を演算する。
【００３５】
図４は、シミュレーションＰＣ３００の制御ブロック図である。演算部３５０は、例えばＣＰＵであり、シミュレーションＰＣ３００の全体を制御する。ディスプレイ３４１は、例えば液晶パネルであり、演算部３５０が生成した画像信号を表示する。入力ユニット３４２は、例えばディスプレイ３４１に重畳されたタッチパネルや、キーボードやマウスであり、使用者の操作入力を電気信号に変換して演算部３５０へ引き渡す。
【００３６】
メモリ３８０は、不揮発性の記憶媒体であり、例えばソリッドステートドライブが用いられる。メモリ３８０は、移動ロボット１００を制御するための制御プログラムや第１学習ステップを実行するための機械学習プログラムの他にも、制御や演算に用いられる様々なパラメータ値、関数、ルックアップテーブル等を記憶している。メモリ３８０は、特に、学習中あるいは学習前の経路生成ＮＮ２００の記憶領域を含む。演算部３５０は、メモリ３８０から学習中または学習前の経路生成ＮＮ２００を読み出して、第１学習ステップの機械学習を実行する。
【００３７】
通信ユニット３９０は、例えば有線ＬＡＮユニットであり、インターネット６００への接続を実現する。通信ユニット３９０は、第１学習ステップの学習を終えた経路生成ＮＮ２００をシステムサーバ５００へ引き渡す。
【００３８】
次に、地図情報について説明する。地図情報は、対象空間の様子を記述するデータ構造を含む。図５は、対象空間を記述するデータ構造について説明する概念図である。
【００３９】
移動ロボット１００が移動する対象空間は、移動ロボットが移動する移動平面として、複数のセルに区分されて二次元的に表現される。図の例では、移動平面は、横ｍ個（ｍは２以上の自然数）、縦ｎ個（ｎは２以上の自然数）の正方セルで区分されている。各セルは、移動平面の全体に対する位置を表わすアドレスが個別に割り当てられている。
【００４０】
図の例において、斜線で示されたセルは、対象空間において静止した障害物（以下、第１障害物と呼ぶ場合がある）が存在することを表わしている。すなわち、移動ロボット１００は、斜線で示されたセルを通過できない。また、移動中に移動ロボット１００の一部が斜線で示されたセルと干渉することも許されない。例えば、部屋の中央付近に置かれたテーブルや、壁際に設置されている棚や、部屋の四方の柱などは、第１障害物として、その位置と大きさに合わせて対応するセルが斜線にされている。
【００４１】
このようなデータ構造で表現された対象空間の移動平面に対して、移動ロボットの出発地（菱形のマーク）と目的地（星形のマーク）が与えられる。出発地を表わす菱形のマークは、移動ロボット（本実施形態では移動ロボット１００）が占有する移動平面上での面積を考慮して、その大きさが定められる。すなわち、出発地にある菱形のマークを、その外形が斜線のセルに掛かることなく星形のマークの位置まで掃引できる経路のすべてが、移動経路の候補となる。そのような移動経路の候補のうち、どの経路が最適であるかを、使用者が決めて入力する。
【００４２】
使用者がこの作業を繰り返すごとに、経路生成ＮＮ２００の第１学習ステップのための教師データが生成される。すなわち、第１学習ステップのための教師データは、ｍ×ｎ個のセルに区分された移動平面に配置された第１障害物のレイアウトと、設定された出発地および目的地とを入力値とし、使用者によって決定された移動経路を正解の出力値とするものである。
【００４３】
図６は、第１学習ステップにおける教師データの生成について具体的に説明する説明図であり、シミュレーションＰＣ３００のディスプレイ３４１の様子を表わしている。
【００４４】
演算部３５０は、ｍ×ｎ個のセルに区分された移動平面に対して第１障害物をランダムに配置する。このとき、配置する第１障害物は、現実的に存在し得る障害物を想定して、その大きさや個数を予め制限しても良い。例えば、対象空間がオフィスであるときには、机やキャビネットなどの障害物が想定でき、工場内であるときには、工作機械や搬送装置などの障害物が想定できる。演算部３５０は、移動平面の枠内に第１障害物を斜線で描いて表示する。
【００４５】
演算部３５０は、更に、出発地と目的地の位置をランダムに決定して菱形のマーク（出発地）と星形のマーク（目的地）を表示する。出発地は、第１障害物が配置されていないセルから選択されて決定され、目的地は、第１障害物が配置されていないセルおよび第１障害物の周縁部のセルから選択されて決定される。上述のように、菱形のマーク大きさは、経路生成ＮＮ２００が実装される移動ロボットの面積に対応して定められる。なお、移動平面の大きさ、第１障害物の制限、移動ロボットの大きさ等の基礎条件は、予め使用者によって指定される。
【００４６】
入力ユニット３４２としてディスプレイ３４１にタッチパネルが重畳されている。使用者は、図示するように「出発地から目的地までの経路を入力して下さい」などと促されると、菱形のマークをディスプレイ３４１上でドラッグして星形のマークまで移動させる。ドラッグにより生成された軌跡は、ラインとして表示される。演算部３５０は、決定ボタンがタッチされたら、この軌跡を使用者によって決定された移動経路の正解として記録する。なお、演算部３５０は、ドラッグ中に菱形のマークが斜線で表わされた第１障害物と接触した場合には、再試行を使用者に要求する。
【００４７】
演算部３５０は、このように生成された第１障害物のレイアウト、出発地、目的地および正解の移動経路のセットを一つの教師データとしてメモリ３８０に記録する。演算部３５０は、予め定められた数の教師データが揃うまで、あるいは使用者が打ち切りを指示するまでこの作業を繰り返し使用者に行わせる。
【００４８】
図７は、第１学習ステップのうち経路生成ＮＮ２００が教師データを用いて学習する学習の概念を説明する図である。図６で示す作業を繰り返して教師データが準備されたら、経路生成ＮＮ２００を教師あり学習により学習させる。ここで経路生成ＮＮ２００に与える入力値は、上述のように、ｍ×ｎ個のセルに区分された移動平面に配置された第１障害物のレイアウトと、設定された出発地および目的地であり、動作する障害物は存在しないものとする。演算部３５０は、学習中の経路生成ＮＮ２００が出力する移動経路と、正解の移動経路との誤差を評価し、当該誤差が減るように誤差逆伝播法を用いて各エッジの重みを更新する。誤差の評価は、例えば、出発地と目的地の間に等間隔で設けられる基準点同士の距離の総和で行い、当該総和が小さいほど正解に近い移動経路と評価する。
【００４９】
上述の例では、教師データが一定数揃ってから纏めて経路生成ＮＮ２００の学習を行ったが、演算部３５０は、教師データが生成されるたびに経路生成ＮＮ２００の学習を行っても良い。第１学習ステップを終えた経路生成ＮＮ２００は、上述のようにインターネット６００を経由して、移動ロボット１００に実装される。
【００５０】
図８は、第２学習ステップにおける学習の様子を示す概念図である。第２学習ステップが行われる環境は、上述のように、移動ロボット１００が実際に運用される環境、あるいはそれに近い環境であることが望ましい。すなわち、第２学習ステップは、移動ロボット１００の将来の運用に合わせて、実際の環境あるいは類似する環境において、現実に発生し得る動作する障害物（以下、第２障害物と呼ぶ場合がある）への対処を学習するステップである。なお、第２学習ステップを行う使用者は、第１学習ステップを行った使用者と異なっていても構わない。
【００５１】
移動ロボット１００は、第２学習ステップを行う空間の地図情報を取得している。すなわち、ｍ×ｎ個のセルに区分された移動平面に、実際に配置されているテーブルや柱などの第１障害物が記述された地図情報を、地図ＤＢ１８１に有している。例えば、図示されているテーブル９００は、第１障害物として地図情報に記述されている。
【００５２】
学習部１５１は、現在地を出発地とし、第１障害物が配置されていないセルおよび第１障害物の周縁部のセルからランダムに選択したセルを目的地として設定する。そして、経路生成ＮＮ２００を用いて目的地までの移動経路を生成する。移動経路を生成したら、台車駆動ユニット１４５へ駆動信号を送信し、当該移動経路に沿って移動ロボット１００を移動させる。
【００５３】
例えば、目的地が図中の容器９１０の近傍に対応するセルである場合に、地図情報に記述されていない第２障害物が環境中に存在しなければ、移動ロボット１００は、経路生成ＮＮ２００が決定した移動経路に沿った点線の白抜き矢印方向へ進む。しかし、ステレオカメラ１３１またはレーザスキャナ１３３によって移動方向に動作する並存者を検出した場合には、学習部１５１は、その旨を指示者である使用者に知らせて、進むべき方向の指示を仰ぐ。なお、並存者は、移動ロボット１００が移動する環境中に並存し得る人物であり、移動ロボット１００にとっては第２障害物の一つである。
【００５４】
使用者は、状況を認識した上で、移動ロボット１００が第２障害物と接触しないように、回避すべき方向を移動ロボット１００へ示す。ここでは、使用者は、回避すべき方向へ向かって押圧ユニット１４３を押すことにより、移動ロボット１００へ当該方向を示す。学習部１５１は、押圧ユニット１４３が押された方向を取得して、例えば実線の白抜き矢印で示すように、回避すべき方向を認識する。学習部１５１は、認識した回避方向に基づいて、第２障害物を回避して目的地に到達する移動経路を計算する。
【００５５】
使用者は、このように押圧ユニット１４３を回避方向へ押すことにより、直接的あるいは間接的に目的地に到達するまでの移動経路の少なくとも一部を示していると言える。使用者による移動経路の少なくとも一部の示し方は、押圧ユニット１４３の押圧に限らず、様々な方法を採用し得る。例えば、学習部１５１は、ステレオカメラ１３１の出力画像から使用者が示す動作を解析してその方向を認識することもできる。一例としては、学習部１５１は、使用者が指を差した方向や、ジェスチャーで示した方向を回避方向と認識する。あるいは、学習部１５１は、マイク１３２が出力する音声信号から使用者が発する音声を解析してその方向を認識することもできる。一例としては、学習部１５１は、「４５度右へ旋回しろ」などの音声から回避方向と認識する。
【００５６】
また、移動ロボット１００が押圧力とその方向を検出できるグリップを備えるような場合には、学習部１５１は、使用者が当該グリップを把持して移動ロボット１００に加える力とその方向を解析して回避方向と認識することもできる。このようなグリップを備えて使用者の押圧方向を継続して検出する場合や、音声やジェスチャーを継続して解析する場合には、学習部１５１は、単に回避方向を認識するだけでなく、使用者によって示される回避経路として認識することもできる。
【００５７】
第２障害物は、環境中に並存し得る人物に限らず、他の移動ロボットや屋内モビリティ、ロボットアーム、環境によっては動物なども対象になり得る。すなわち、移動ロボット１００は、将来運用される環境において認識すべき第２障害物に合わせて第２学習ステップを実行することができる。
【００５８】
図９は、第２学習ステップにおける教師データの生成について説明する説明図である。図９（ａ）は、第１学習ステップを終えた経路生成ＮＮ２００によって生成された出発地から目的地までの移動経路を太線で表わす。上述のように、出発地は菱形のマークで示され、目的地は星形のマークで示されている。この段階においては、第２障害物は考慮されていない。
【００５９】
図９（ｂ）は、移動ロボット１００が二重丸のマークで示す第２障害物を認識した時点の様子を表わす。点線の経路は既に移動を終えた経路である。二重丸のマークは、第２障害物が存在する位置に対応するセルに重ねて描かれている。黒い矢印は第２障害物の動作ベクトルを示し、移動ロボット１００が認識した時点における第２障害物の動作方向とその速度を表現している。すなわち、学習部１５１は、第２障害物を検出した場合には、自機との相対的な位置、動作方向および動作速度を認識する。
【００６０】
白抜き矢印は、使用者によって示された回避方向を示す。学習部１５１は、使用者によって示された回避方向に合致する回避経路を、既存のアルゴリズムを用いて生成する。回避経路は、第２障害物を発見した発見地点から、当該第２障害物を回避して、迅速かつ円滑に図９（ａ）の移動経路に復帰する経路である。図９（ｃ）は、そのようにして生成した回避経路と、復帰後の元の移動経路とを接続した移動経路である。
【００６１】
学習部１５１は、図９（ｃ）の太線で示す第２障害物を認識した認識地点から目的地までの移動経路を、図９（ｂ）の太線で示す元の移動経路、第２障害物の相対的な位置、動作方向およびその動作速度を入力値とした場合の正解としてメモリ１８０に記録する。すなわち、このような入力値に対する正解のセットを一つの教師データとして記録する。なお、図９（ｂ）の太線で示す元の移動経路は、第２障害物を発見した地点から目的地までの移動経路である。学習部１５１は、予め定められた数の教師データが揃うまで、あるいは使用者が打ち切りを指示するまでこの作業を繰り返し使用者に行わせる。
【００６２】
図１０は、第２学習ステップのうち経路生成ＮＮ２００が教師データを用いて学習する学習の概念を説明する概念図である。図９で示す作業を繰り返して教師データが準備されたら、経路生成ＮＮ２００を教師あり学習により学習させる。
【００６３】
正解ラベルは、上述のように、第２障害物を回避する回避経路と復帰後の元の移動経路とを接続した移動経路であるが、第２障害物の状況によっては、元の移動経路に復帰することなく目的地に到達する移動経路であっても良い。学習部１５１は、学習中の経路生成ＮＮ２００が出力する移動経路と、正解の移動経路との誤差を評価し、当該誤差が減るように誤差逆伝播法を用いて各エッジの重みを更新する。誤差の評価は、例えば、認識地点と目的地の間に等間隔で設けられる基準点同士の距離の総和で行い、当該総和が小さいほど正解に近い移動経路と評価する。
【００６４】
上述の例では、教師データが一定数揃ってから纏めて経路生成ＮＮ２００の学習を行ったが、学習部１５１は、教師データが生成されるたびに経路生成ＮＮ２００の学習を行っても良い。第２学習ステップを終えた経路生成ＮＮ２００は、現に第２学習ステップを実行した移動ロボット１００において運用に供される。あるいは、同様の環境で自律移動する移動ロボットに移されて運用に供される。
【００６５】
次に、本実施形態に係る機械学習方法の処理についてフローを用いて説明する。図１１は、本実施形態に係る機械学習方法のうち、主に第１学習ステップの処理について説明するフロー図である。第１学習ステップは、上述のように、シミュレーションＰＣ３００で行われる。ここでは、教師データを得るたびに経路生成ＮＮ２００の学習を行う手法について説明する。
【００６６】
シミュレーションＰＣ３００の演算部３５０は、ステップＳ１０１で、これから学習を行う経路生成ＮＮ２００が学習後に実装される予定の移動ロボットの移動空間を想定して、当該空間に関する設定を行う。具体的には、移動平面の広さを定義するために一つのセルの大きさやｍ×ｎのセルの区分数を、使用者の指定に従って設定する。そして、未学習の経路生成ＮＮ２００を生成する。また、この段階において、演算部３５０は、第１障害物の大きさや個数の制限、移動ロボットの大きさ等の基礎条件を受け付けても良い。基礎条件を受け付けた場合には、後の処理における処理条件として用いられる。
【００６７】
演算部３５０は、ステップＳ１０２で、設定された移動平面に対して静止障害物、出発地、目的地をランダムに生成する。そして、図６に示すような映像信号に変換して、ディスプレイ３４１に表示する。ステップＳ１０３へ進み、演算部３５０は、使用者に指定された正解の移動経路を受け付ける。例えば、使用者が入力ユニット３４２を操作して出発地に表示された菱形のマークを目的地の星形のマークまでドラッグした軌跡を正解の移動経路として取得する。このとき、演算部３５０は、例えばスプライン補間などの処理によって滑らかな曲線に修正しても良い。また、基礎条件として入力された移動ロボットの条件に対して移動不可能な軌跡であれば、再度の入力を促しても良い。
【００６８】
ステップＳ１０４へ進み、演算部３５０は、ステップＳ１０２とステップＳ１０４によって生成された教師データを学習中の経路生成ＮＮ２００に与えて、上述の学習演算を実行する。そして、ステップＳ１０５へ進み、当該教師データによる学習演算によって、これまでに実行された学習演算の回数が予定された繰り返し回数を達成したか否かを確認する。すなわち、予め定められた教師データ数の学習を終えたか否かを確認する。終えていなければ、ステップＳ１０２へ戻って一連の処理を繰り返す。終えていればステップＳ１０６へ進む。
【００６９】
演算部３５０は、ステップＳ１０６で、第１学習ステップを終えた経路生成ＮＮ２００を、通信ユニット１９０を介して移動ロボット１００へ引き渡す。第１学習ステップを終えた経路生成ＮＮ２００は、移動平面に配置された第１障害物のレイアウトと、設定された出発地および目的地とを入力すれば、第１障害物を回避した移動経路を出力する能力を有する。移動ロボット１００の制御部１５０は、当該経路生成ＮＮ２００をメモリ１８０へ取り込んで、第２学習ステップを実行するための機械学習プログラムが利用可能なように実装する。
【００７０】
第１学習ステップを終えた経路生成ＮＮ２００の実装が完了したら、移動ロボット１００で第２学習ステップを行う。図１２は、本実施形態に係る機械学習方法のうち、主に第２学習ステップの処理について説明するフロー図である。ここでは、教師データを得るたびに経路生成ＮＮ２００の学習を行う手法について説明する。
【００７１】
学習部は、ステップＳ１０７で、移動ロボット１００がこれから第２学習ステップを行う空間の地図情報を取得する。ここで取得する地図情報は、ステップＳ１０１で設定された空間に対応する。すなわち、第２学習ステップを行う空間の移動平面は、第１学習ステップで学習を行った移動平面と同等の広さであり、取得する地図情報は、図５を用いて説明したデータ構造を有する。なお、他の表現形式を採用する地図情報を取得した場合には、制御部１５０がデータ変換を行ってデータ構造を一致させる。また、対象とする移動平面の広さが互いに異なる複数の経路生成ＮＮ２００がメモリ１８０に存在する場合には、これから第２学習ステップを行う空間の移動平面に対応する経路生成ＮＮ２００を選択する。
【００７２】
学習部１５１は、ステップＳ１０８で、移動ロボット１００の現在地を取得する。すなわち、学習部１５１は、ステップＳ１０７で取得した地図情報に対して移動ロボット１００がどこに存在するかを同定する。例えば、ステレオカメラ１３１で取得した画像から解析した周囲の環境と地図情報とを比較して、移動ロボット１００の現在地を同定する。
【００７３】
続いて学習部１５１は、ステップＳ１０９で、取得した地図情報に対して第１障害物が配置されていないセルおよび第１障害物の周縁部のセルからランダムに選択したセルを目的地として設定する。そして、ステップＳ１１０へ進み、学習部１５１は、経路生成ＮＮ２００を用いて目的地までの移動経路を生成する。なお、この段階における経路生成ＮＮ２００への入力値は、取得した地図情報に示された第１障害物のレイアウトと、出発地（現在地）および目的地であり、第２障害物に関する情報は与えない。移動経路を生成したら、台車駆動ユニット１４５へ駆動信号を送信し、当該移動経路に沿って移動ロボット１００を移動させる。
【００７４】
学習部１５１は、移動中に、動作する障害物である第２障害物が周囲に存在するかを監視する。具体的には、ステレオカメラ１３１の画像や、レーザスキャナ１３３の出力信号を周期的に解析して、周囲に存在する第２障害物を検知する。ステップＳ１１１で、第２障害物を検知していないと判断したらステップＳ１１５へ進み、検知したと判断したらステップＳ１１２へ進む。
【００７５】
学習部１５１は、ステップＳ１１２へ進むと、図８を用いて説明したように、検知した第２障害物に対する正解としての回避経路あるいは回避方向を使用者から受け付ける。そして、ステップＳ１１３で、図９を用いて説明したように、目的地までの移動経路を修正する。学習部１５１は、このように修正した移動経路を、元の移動経路、第２障害物の相対的な位置、動作方向およびその動作速度を入力値とした場合の正解として、教師データを整える。教師データを整えたらステップＳ１１４へ進み、経路生成ＮＮ２００を教師あり学習により学習させる。当該教師データによる学習を終えたら、ステップＳ１１５へ進む。
【００７６】
ステップＳ１１５へ進むと、学習部１５１は、ステップＳ１０９で設定された目的地に移動ロボット１００が到達したか否かを判断する。到達していないと判断したら、ステップＳ１１１へ戻り、目的地までの移動を継続する。到達したと判断したら、ステップＳ１１６へ進む。ステップＳ１１６へ進むと、学習部１５１は、これまでに実行されたステップＳ１１４の学習演算の回数が予定された繰り返し回数を達成したか否かを確認する。すなわち、予め定められた教師データ数の学習を終えたか否かを確認する。終えていなければ、ステップＳ１０８へ戻って一連の処理を繰り返す。終えていれば第２学習ステップを終了する。
【００７７】
次に、このように学習された学習済みの経路生成ＮＮ２００が、移動ロボット１００においてどのように利用されるかについて説明する。図１３は、学習済みの経路生成ＮＮ２００が実装された移動ロボット１００の自律移動処理について説明するフロー図である。
【００７８】
移動ロボット１００の制御部１５０は、ステップＳ２０１で、これから自律移動を行う空間の地図情報を取得する。取得する地図情報は、第２学習ステップのステップＳ１０７で取得した地図情報と同様に第１障害物が記述された地図情報であり、ステップＳ１０７で取得した地図情報がそのまま利用できるのであれば、ステップＳ２０１をスキップしても良い。ステップＳ２０２へ進み、制御部１５０は、第２学習ステップのステップＳ１０８と同様に、現在地を取得する。ステップＳ２０３へ進み、制御部１５０は、目的地を取得する。具体的には、使用者から目的地の入力を受け付けたり、与えられたタスクを実行するために移動すべき地点を当該タスクから抽出して目的地と定めたりする。なお、地図情報をサーバ５００から地図ＤＢ１８１へ取り込むときの通信ユニット１９０は、制御部１５０と協働して、地図情報を取得する取得部として機能する。また、使用者が目的地を入力する場合やタスクを入力する場合の入力ユニットは、制御部１５０と協働して、目的地を取得する取得部として機能する。
【００７９】
ステップＳ２０４へ進むと、制御部１５０は、メモリ１８０から学習済みの経路生成ＮＮ２００を読み出す。そして、演算部１５２は、読み出された経路生成ＮＮ２００を用いて目的地までの移動経路を生成する。なお、この段階における経路生成ＮＮ２００への入力値は、取得した地図情報に示された第１障害物のレイアウトと、出発地（現在地）および目的地であり、第２障害物に関する情報は与えない。ただし、移動開始前に既に第２障害物を検知している場合には、当該第２障害物の相対的な位置、動作方向およびその動作速度を入力値に加えても良い。演算部１５２が移動経路を生成したら、制御部１５０は、台車駆動ユニット１４５へ駆動信号を送信し、当該移動経路に沿って移動ロボット１００を移動させる。
【００８０】
制御部１５０は、移動中に、動作する障害物である第２障害物が周囲に存在するかを監視する。具体的には、ステレオカメラ１３１の画像や、レーザスキャナ１３３の出力信号を周期的に解析して、周囲に存在する第２障害物を検知する。ステップＳ２０５で、第２障害物を検知していないと判断したらステップＳ２０７へ進み、検知したと判断したらステップＳ２０６へ進む。
【００８１】
ステップＳ２０６へ進むと、演算部１５２は、再び経路生成ＮＮ２００を用いて目的地までの移動経路を更新する。このときの入力値は、元の移動経路、検知した第２障害物の相対的な位置、動作方向およびその動作速度である。移動経路が更新されたら、制御部１５０は、台車駆動ユニット１４５へ駆動信号を送信し、更新された移動経路に沿って移動ロボット１００を移動させる。
【００８２】
ステップＳ２０７へ進むと、制御部１５０は、ステップＳ２０３で取得した目的地に移動ロボット１００が到達したか否かを判断する。到達していないと判断したら、ステップＳ２０５へ戻り、目的地までの移動を継続する。到達したと判断したら、一連の移動処理を終了する。
【００８３】
なお、上述のフローにおいては、ステップＳ２０５で第２障害物を検知するごとにステップＳ２０６で経路の更新を行っているが、検知した第２障害物が元の移動経路に沿った移動に対して影響を与えないと判断する場合には、経路の更新を行わなくても良い。例えば、第２障害物が移動ロボット１００の移動経路から遠ざかる方向へ動作している場合には、経路の更新を行わない。
【００８４】
以上説明した本実施形態においては、第２学習ステップにおいて、現実の環境下で動作する障害物（第２障害物）を検知することにより、第２障害物に対する教師データを生成したが、仮想的な第２障害物に対する教師データを含ませても良い。例えば、学習部１５１は、現実の第２障害物を検知したときに取得した当該第２障害物の動作速度と同じ速度で動作する仮想的な第２障害物を、様々な相対位置に様々な動作方向に発生させる。学習部１５１は、このような仮想的な第２障害物を、現実の第２障害物と同様に認識したものとして扱う。そして、学習部１５１は、その仮想的な第２障害物を、例えば表示パネル１４１にＣＧで表示する。使用者は、表示パネル１４１に表示されたＣＧによる第２障害物を確認し、それを回避する回避経路あるいは回避方向を移動ロボット１００へ与える。このようにして、仮想的な第２障害物に対しても教師データを生成すれば、経路生成ＮＮ２００の学習効果を高めることができる。
【００８５】
また、以上説明した本実施形態においては、使用者が正解の移動経路を与える教師あり学習により学習をおこなったが、例えば予め定められた評価基準に対してコストが最小となる移動経路を見出す強化学習により学習を行っても良い。強化学習によれば、使用者による作業が省けるので、迅速に学習を行うことができる。
【符号の説明】
【００８６】
１００  移動ロボット、１１０  台車部、１１１  駆動輪、１１２  キャスター、１２０  本体部、１２１  胴部、１２２  頭部、１２３  アーム、１２４  ハンド、１３１  ステレオカメラ、１３２  マイク、１３３  レーザスキャナ、１４１  表示パネル、１４３  押圧ユニット、１４５  台車駆動ユニット、１４６  上体駆動ユニット、１５０  制御部、１５１  学習部、１５２  演算部、１８０  メモリ、１８１  地図ＤＢ、１９０  通信ユニット、２００  経路生成ＮＮ、３００  シミュレーションＰＣ、３４１  ディスプレイ、３４２  入力ユニット、３５０  演算部、３８０  メモリ、３９０  通信ユニット、５００  システムサーバ、６００  インターネット、７００  無線ユニット、９００  テーブル、９１０  容器
【図１】
2020194432.tif 000003
【図２】
2020194432.tif 000004
【図３】
2020194432.tif 000005
【図４】
2020194432.tif 000006
【図５】
2020194432.tif 000007
【図６】
2020194432.tif 000008
【図７】
2020194432.tif 000009
【図８】
2020194432.tif 000010
【図９】
2020194432.tif 000011
【図１０】
2020194432.tif 000012
【図１１】
2020194432.tif 000013
【図１２】
2020194432.tif 000014
【図１３】
2020194432.tif 000015