(57)【要約】【課題】移動ロボットの作業開始までの工数を削減すること。【解決手段】移動ロボットは、環境情報を取得するセンサ１６と、オドメトリ情報を取得する駆動部１７と、環境情報と、オドメトリ情報と、に基づき局所地図を生成し、局所地図から全体地図を生成するマップ生成部１４と、環境情報と、オドメトリ情報と、に基づき、マップ生成部１４で生成された局所地図において推定される自己位置を、推定自己位置として算出する自己位置推定部１５と、マップ生成部１４が全体地図を生成する際に、全体地図に局所地図ごとに推定された推定自己位置を配置し、配置した全体地図上の推定自己位置を、各局所地図においてそれぞれ算出されている推定自己位置、及び各時刻における移動量に基づいて調整し、調整後の推定自己位置に基づいて全体地図上における教示経路を生成する制御演算部１３と、を備える。【選択図】図１
2015111336.tif 000002
【特許請求の範囲】
【請求項１】
自律移動する移動ロボットであって、
周囲の環境情報を取得するセンサと、
車輪の回転角と回転角速度に応じたオドメトリ情報を取得する駆動部と、
前記センサにより取得された環境情報と、前記駆動部により取得されたオドメトリ情報と、に基づき局所地図を生成し、生成した局所地図を変形して合成し全体地図を生成するマップ生成部と、
前記センサにより取得された環境情報と、前記駆動部により取得されたオドメトリ情報と、に基づき、前記局所地図において推定される自己位置を、推定自己位置として算出する自己位置推定部と、
前記マップ生成部が全体地図を生成する際に、全体地図に局所地図ごとに推定された推定自己位置を配置し、配置した全体地図上の推定自己位置を、各局所地図においてそれぞれ算出されている推定自己位置、及び各時刻における移動量に基づいて調整し、調整後の推定自己位置に基づいて全体地図上における教示経路を生成する制御演算部と、を備える、
移動ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動ロボットに関する。
【背景技術】
【０００２】
近年、自律移動ロボットの開発が進められている。自律移動ロボットは、環境地図の作成と、地図内における自己位置の推定を行う必要がある。
【０００３】
自律移動ロボットは、自己位置の推定と環境地図の作成を同時に実行するＳＬＡＭ（Simultaneous Localization and Mapping）が知られている。典型的には、自律移動ロボットは、レーザセンサやカメラにより周囲の環境を取得して、走行する環境全体の全体地図を生成する。なお、マップ生成後は目的地をマップ上で指示し、ロボットに経路探索をさせるのが一般的である。なおマップ作成時は、人がロボットを実際に操縦する場合や、移動ロボットを自由に移動させる場合がある。
【０００４】
また経路教示技術として、操縦したコースを記憶して経路とする、ダイレクトティーチングが知られている。
【０００５】
特許文献１では、マップ作成時に取得した複数の自己位置座標を、経路教示に利用する自律移動ロボットについて開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−０８６４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
実用的な自律移動には、マップ生成と経路教示の両方が必要となる。しかしながらＳＬＡＭはマップ生成機能を提供するのみであり、ダイレクトティーチングはあくまで教示経路生成機能のみを提供するものである。一般に、両者を組み合わせることによりマップ生成と教示経路生成が行われるが、地図が陳腐化するたびにマップ生成と経路教示を行うのは非効率である。ここで、自律移動の目的が目標地点への到達である場合、経路の更新がタイムリーかつ正確に行われれば良く、マップの生成はタイムリーに行わなくて良いとも考えられるが、マップを用いた自己位置推定を用いることにより位置精度が飛躍的に向上するため、マップ生成と経路教示の両方を行いたいという要望がある。しかしながら、マップ作成と経路教示の２回の動作が必要とされることから、移動ロボットの導入から作業開始までの工数が多く、工数を削減することが求められていた。
【課題を解決するための手段】
【０００８】
本発明に係る移動ロボットは、自律移動する移動ロボットであって、周囲の環境情報を取得するセンサと、車輪の回転角と回転角速度に応じたオドメトリ情報を取得する駆動部と、前記センサにより取得された環境情報と、前記駆動部により取得されたオドメトリ情報と、に基づき局所地図を生成し、生成した局所地図を変形して合成し全体地図を生成するマップ生成部と、前記センサにより取得された環境情報と、前記駆動部により取得されたオドメトリ情報と、に基づき、前記局所地図において推定される自己位置を、推定自己位置として算出する自己位置推定部と、前記マップ生成部が全体地図を生成する際に、全体地図に局所地図ごとに推定された推定自己位置を配置し、配置した全体地図上の推定自己位置を、各局所地図においてそれぞれ算出されている推定自己位置、及び各時刻における移動量に基づいて調整し、調整後の推定自己位置に基づいて全体地図上における教示経路を生成する制御演算部と、を備える。
これにより、１回の動作でマップ作成と経路教示を行うことができる。
【発明の効果】
【０００９】
移動ロボットの作業開始までの工数を削減することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１にかかる移動ロボットの構成を示す図である。
【図２】実施の形態１にかかる移動ロボットの動作フローチャートである。
【図３】実施の形態１にかかる環境情報と移動量情報が逐次取得される状態を示す図である。
【図４】実施の形態１にかかる全体地図を生成する過程を示した図である。
【図５】実施の形態１にかかる教示経路表現の詳細なフローチャートである。
【図６】実施の形態１にかかる全体地図における教示経路の生成過程を示した図である。（ａ）は局所地図に従って全体地図上に位置を表現した場合の状態を示し、（ｂ）は全ての時刻における自己位置推定が終わった様子を示している。
【発明を実施するための形態】
【００１１】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。図１は、移動ロボット１の構成を示す図である。
【００１２】
移動ロボット１は、操作部１１と、記憶部１２と、制御演算部１３と、マップ生成部１４と、自己位置推定部１５と、センサ１６と、駆動部１７を有する。
【００１３】
操作部１１は、人が移動ロボット１の操縦を行うための入力手段である。操作部１１は、人の操作に応じて運動指令値を生成し、運動指令値を制御演算部１３に出力する。
【００１４】
記憶部１２は、マップ生成部１４で作成されたマップデータを記憶する。また記憶部１２は、制御演算部１３で生成された教示データを記憶する。
【００１５】
制御演算部１３は、移動ロボット１の動作制御を行う。具体的には制御演算部１３は、操作部１１から入力された運動指令値に応じて車輪回転指令値を生成する。制御演算部１３は、生成した車輪回転指令値を、駆動部１７に出力する。また制御演算部１３は、マップ生成部１４から局所地図の情報を入力し、記憶部１２に出力する。典型的には制御演算部１３は、局所地図に対して、自己位置推定部１５で推定された自己位置（推定自己位置）の情報を合成して、記憶部１２に出力する。
【００１６】
また制御演算部１３は、マップ生成部１４により生成された全体地図を入力し、記憶部１２に記憶された、各時刻の局所地図ごとの推定自己位置の情報に基づいて、全体地図における教示経路を生成する。すなわち制御演算部１３は、マップ生成部１４で作成された全体地図に対し、生成した教示経路を合成する。教示経路の生成については、後に詳述する。
【００１７】
マップ生成部１４は、局所地図を生成する。より具体的には、マップ生成部１４は、センサ１６から入力されたセンサ情報と、駆動部１７から入力したオドメトリ情報を入力し、マップデータを生成する。マップ生成部１４は、生成したマップデータを、制御演算部１３の制御を介して記憶部１２に出力する。またマップ生成部１４は、移動ロボット１における教示の終了時には、記憶部１２から生成した複数の局所地図を入力し、局所情報を修正しつつ合成することにより、全体地図を生成する。なお、マップ生成部１４は、生成した全体地図を、制御演算部１３に出力する。
【００１８】
自己位置推定部１５は、移動ロボット１の自己位置を推定する。具体的には自己位置推定部１５は、センサ１６から入力したセンサ情報と、駆動部１７から入力したオドメトリ情報を入力し、局所地図上における現在位置を推定する。自己位置推定部１５は、推定した自己位置の情報を制御演算部１３に出力する。
【００１９】
センサ１６は、移動ロボット１の周囲の環境情報を取得するセンサである。例えばセンサ１６は、レーザセンサやステレオカメラ、３次元センサなどである。センサ１６は、移動ロボット１から離れた位置にある障害物を検知する。センサ１６は、取得した周囲の環境情報をマップ生成部１４と、自己位置推定部１５に出力する。
【００２０】
駆動部１７は、動力源と、車輪と、回転角センサ（図示せず）を備える。典型的には、動力源はモーターである。駆動部１７は、制御演算部１３から入力した車輪回転指令値に基づいてモーターを動作させることにより、車輪を駆動して走行する。車輪回転角センサは、駆動した車輪の回転角と回転角速度の情報を取得する。駆動部１７は、車輪の回転角と回転角速度をオドメトリ情報として、マップ生成部１４と、自己位置推定部１５に出力する。また典型的には、駆動部１７は、前回測定時からの移動量情報を、オドメトリ情報として取得する。
【００２１】
次に、移動ロボット１の動作について説明する。図２は、移動ロボット１の動作フローを示したフローチャートである。
【００２２】
移動ロボット１は、環境情報取得および局所地図を生成するステップＡと、全体地図を生成するステップＢと、教示経路を生成するステップＣを行う。以下、各ステップの詳細を説明する。なお、ステップＡ及びステップＢはＳＬＡＭと同様の手順である。
【００２３】
最初に環境情報取得および局所地図を生成するステップＡを行う。移動ロボット１はその各時刻に得られた情報から局所地図を生成し、局所地図上の自己位置を保持する。以下にその手順を示す。
【００２４】
移動ロボット１は移動を行う（ステップＳ１１）。具体的には、人が操作部１１を操作することにより移動ロボット１を操作する。制御演算部１３は、操作部１１から入力された操作情報に基づいて制御信号を生成して駆動部１７に出力する。これにより、移動ロボット１が走行する。なお移動ロボット１は、操作部１１を用いず、人が手押しすることにより移動させても良い。その後、ステップＳ１２に進む。
【００２５】
移動ロボット１は、センサ１６により環境のセンシングを行う（ステップＳ１２）。センサ１６は、取得した環境情報を、マップ生成部１４と、自己位置推定部１５に出力する。その後、ステップＳ１３に進む。
【００２６】
マップ生成部１４は、センサ１６により取得された環境情報に基づいて、局所地図を生成する（ステップＳ１３）。マップ生成部１４は、生成した局所地図を、制御演算部１３に出力する。その後、ステップＳ１４に進む。
【００２７】
移動ロボット１は、局所地図上での移動軌跡を推定して保持する（ステップＳ１４）。より具体的には、自己位置推定部１５は、マップ生成部１４で生成された局所地図における自己位置を、駆動部１７から入力された車輪回転角とセンサ１６から入力されたセンサ情報に基づいて推定する。自己位置推定部１５は、推定した自己位置に関する情報を、制御演算部１３に出力する。また自己位置推定部１５は、移動量情報を制御演算部１３に出力する。典型的には制御演算部１３は、局所地図に自己位置の情報を合成し、移動量情報と関連付けて、記憶部１２に出力する。
【００２８】
ここで図３は、移動ロボット１が移動した場合の環境情報と、移動量情報の一例である。図３は、一定の時間毎に環境情報が取得され、各時刻間における移動ロボット１の移動量が算出された状態を示している。環境情報には、自己位置推定部１５が推定した局所地図内における自己位置が含まれている。また局所地図には、環境内における壁の角部などの特徴点の情報が含まれる。記憶部１２は、各時刻における、推定された自己位置及び特徴点を含んだ局所地図と、移動ロボット１の移動量情報を、関連付けて記憶する。その後、ステップＳ１５に進む。
【００２９】
次に、局所地図から全体地図を生成するステップＢを行う。
【００３０】
マップ生成部１４は、局所地図を逐次継ぎ足して全体地図を生成する（ステップＳ１５）。より具体的には、マップ生成部１４は、記憶部１２から複数の時刻の局所地図と、移動量情報を読み込む。マップ生成部１４は、複数の局所地図から、特徴点のうち一致させても移動量情報に矛盾が少なくなるもの同士を、特徴点が一致するように順次つなぐ。このとき典型的には、マップ生成部１４は、取得された特徴点に基づき、それぞれの局所地図を拡大、縮小、回転または歪ませることにより、矛盾が少なくなるようにして接続する。これによりマップ生成部１４は、全体地図を生成する。
【００３１】
図４は、マップ生成部１４が、一つ前までの時刻に繋いだ局所地図に、最新の局所地図を次々に繋ぐことにより、全体地図を生成する過程を示した図である。すなわちマップ生成部１４は、時刻ｔ０と時刻ｔ１の局所地図から、時刻ｔ１’の地図を作成し、時刻ｔ１’と時刻ｔ２の局所地図から、時刻ｔ２’の地図を作成するといった動作を繰り返す。これによりマップ生成部１４は、全体地図を生成する。その後、ステップＳ１６に進む。
【００３２】
移動ロボット１は、教示が完了したか否かを判定する（ステップＳ１６）。例えば、制御演算部１３は、操作部１１の操作により、教示終了の操作をしたか否かにより、教示の完了を判定する。教示が終了していれば（ステップＳ１６でＹｅｓ）、ステップＳ１７に進む。教示が終了していなければ（ステップＳ１６でＮｏ）、ステップＳ１１に戻り、処理を繰り返し行う。
【００３３】
次に、教示経路を生成するステップＣを行う。
【００３４】
移動ロボット１は、教示経路を全体地図上で表現する（ステップＳ１７）。
【００３５】
ここで図６（ａ）は、局所地図に従って、全体地図上に位置を表現した状態を示す図である。ここで、時刻ｔ０、ｔ１、ｔ２・・・の局所地図において推定された自己位置の情報から、全体地図上にプロットされた推定自己位置をｐ０、ｐ１、ｐ２・・・とする。このように自己位置を全体地図上に表現した場合、全体地図上における移動ロボット１の推定位置として、実際には局所地図を取得する際に通過していない位置をプロットすることがある。これはマップ生成部１４が、全体地図を作成した際に、複数の局所地図について、特徴点情報を参照して拡大、縮小、回転や歪ませたため、自己位置に誤差が発生するためである。例えば図６（ａ）において、移動ロボット１のｐ３における推定位置は通路の壁際であるが、局所地図の取得時には、実際には、通路の中央寄りを通過している場合がある。
【００３６】
そのため制御演算部１３は、推定位置の調整を、以下の手順で行う。図５は、全体地図上に教示経路を表現させる動作フローである。
【００３７】
制御演算部１３は、全体地図上における移動ロボット１の位置を推定するための初期位置を決定する（ステップＳ１７１）。具体的には、制御演算部１３は、一時刻前の全体地図上で推定された位置から当該時刻に進んだ距離と方向（オドメトリ情報）で表される位置とする。その後ステップＳ１７２に進む。
【００３８】
次に、全体地図と該当時刻における環境情報を利用して、自己位置の推定を行う（ステップＳ１７２）。具体的には、制御演算部１３は、例えば時刻ｔ３において取得した局所地図の環境情報から、同時刻における移動ロボット１と特徴点との位置関係を算出する。その後、制御演算部１３は、全体地図において記録されている同一の特徴点に対して、局所地図から算出した特徴点との位置関係を用いて、全体地図上での対応する位置を推定する。このとき、ステップＳ１７１で算出した初期位置に基づいて、対応する位置の探索を行う。これにより推定された位置を、調整後の推定位置とする。その後、ステップＳ１７３に進む。
【００３９】
制御演算部１３は、調整後の推定位置を結んで、教示経路とする（ステップＳ１７３）。図６（ｂ）は、全ての時刻における自己位置推定が終わった後の状態である。制御演算部１３は、調整後の推定位置を繋ぐことにより、教示経路を生成する。その後、ステップＳ１８に進む。
【００４０】
制御演算部１３は、生成した全体地図上の教示経路を、記憶部１２に記憶させる（ステップＳ１８）。これにより、記憶部１２は保存しておいた局所地図上での移動軌跡を、全体地図上で表現し直したものが、教示された経路として保存する。これにより、経路教示を完了する。
【００４１】
これにより、マップ生成用の環境情報収集のために移動ロボットを移動させる行為が、ロボットの経路を教示するために移動ロボットを動かす行為を兼ねることができる。したがって、マップの生成と経路教示のために、移動ロボットを２回移動させる必要が無くなり、例えば移動ロボットを環境内に初めて投入する場合に、移動ロボット導入から作業開始までの工数を大幅に短縮することができる。
【００４２】
また、経路教示を行っている最中に取得した環境情報を、マップとして利用するため、地図の更新忘れが発生しない。したがって、新しいコースとなった場合に必ずマップの更新が実行される。マップの更新と教示経路を常に同時に行うため、マップを用いた自己位置推定の精度が向上し、その結果、移動ロボットの位置精度を向上が期待できる。
【００４３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００４４】
１            移動ロボット
１１            操作部
１２            記憶部
１３            制御演算部
１４            マップ生成部
１５            自己位置推定部
１６            センサ
１７            駆動部
【図１】
2015111336.tif 000003
【図２】
2015111336.tif 000004
【図３】
2015111336.tif 000005
【図４】
2015111336.tif 000006
【図５】
2015111336.tif 000007
【図６】
2015111336.tif 000008