(57)【要約】【課題】地図データの作り直しの要否をロボットの管理者に通知することを目的とする。【解決手段】レーザ計測により、障害物を検知しながら経路を進行するロボット２と、地図データ３２１を記憶し、ロボット２に進行経路を指示するロボット管理端末３と、を有するロボット管理システム１であって、経路を進行中のロボット２が、レーザ計測結果であるセンサデータ３２４をロボット管理端末３へ送信し、ロボット管理端末３が、ロボット２から送信されたセンサデータ３２４を基に、ロボット２の進行経路に沿って、ロボット２が移動した将来の位置におけるシミュレーションセンサデータ３２５を予測し、予シミュレーションセンサデータ３２５と、地図データ３２１との不一致部分の割合が、予め設定してある閾値より大きい場合、地図データ３２１の再作成をユーザに通知することを特徴とする。【選択図】図１
2010277548.tif 000002
【特許請求の範囲】
【請求項１】
測距センサにより障害物を検知しながら経路を進行するロボットと、
地図データを記憶部に記憶し、前記ロボットに進行経路を指示するロボット管理端末と、
を有するロボット管理システムであって、
経路を進行中の前記ロボットが、
前記測距センサによる計測結果をロボット管理端末へ送信し、
前記ロボット管理端末が、
前記ロボットが移動した将来の位置における計測結果を、前記ロボットから送信された計測結果を基に予測し、
前記予測の結果と、前記地図データとの不一致部分の割合が、予め設定してある閾値より大きい場合、前記地図データの再作成をユーザに通知する
ことを特徴とするロボット管理システム。
【請求項２】
前記ロボットが移動した将来の位置とは、前記ロボットの進行経路上における位置である
ことを特徴とする請求項１に記載のロボット管理システム。
【請求項３】
前記ロボット管理端末は、
前記ロボットから送信された計測結果を基に、地図作り直し判定用地図データを作成し、
当該地図作り直し判定用地図データにおいて、前記ロボットが移動した将来の位置における計測結果を予測する
ことを特徴とする請求項１に記載のロボット管理システム。
【請求項４】
前記ロボット管理端末は、
予測された計測結果において、前記地図作り直し判定用地図データと、前記地図データとの差分部分に係る部分を無効部分とし、それ以外を有効部分とし、前記予測された計測結果に対する有効部分の割合が、前記閾値より大きいか否かを判定することによって、前記予測の結果と、前記地図データとの不一致部分の割合が予め設定してある閾値より大きいか否かを判定する
ことを特徴とする請求項３に記載のロボット管理システム。
【請求項５】
前記地図データおよび前記地図作り直し判定用地図データは、複数のグリッドに区切られており、
前記地図データと、前記地図作り直し判定用地図データとの差分に該当するグリッドの割合が、前記閾値より大きいか否かを判定することによって、前記予測の結果と、地図データとの不一致部分の割合が予め設定してある閾値より大きいか否かを判定する
ことを特徴とする請求項３に記載のロボット管理システム。
【請求項６】
前記ロボット管理端末は、
不一致部分を、表示部に表示する
ことを特徴とする請求項１に記載のロボット管理システム。
【請求項７】
前記ロボット管理端末は、
地図データを所定の区画に分割し、区画毎に閾値を設定する
ことを特徴とする請求項１に記載のロボット管理システム。
【請求項８】
前記ロボットは、実環境における不一致部分に対応する部分に対して、指示表示を行う指示表示部を有している
ことを特徴とする請求項１に記載のロボット管理システム。
【請求項９】
地図データを記憶部に記憶し、前記ロボットに進行経路を指示するロボット管理端末であって、
前記ロボットが移動した将来の位置における計測結果を、前記ロボットから送信された測距センサによる計測結果を基に予測する予測部と、
前記予測の結果と、前記地図データとの不一致部分の割合が、予め設定してある閾値より大きい場合、前記地図データの再作成をユーザに通知する判定部と、
を有することを特徴とするロボット管理端末。
【請求項１０】
前記ロボットが移動した将来の位置とは、前記ロボットの進行経路上における位置である
ことを特徴とする請求項９に記載のロボット管理端末。
【請求項１１】
前記ロボット管理端末は、
前記ロボットから送信された計測結果を基に、地図作り直し判定用地図データを作成する地図作り直し判定用地図作成部をさらに有し、
前記判定部は、
当該地図作り直し判定用地図データにおいて、前記ロボットが移動した将来の位置の計測結果を予測する
ことを特徴とする請求項９に記載のロボット管理端末。
【請求項１２】
測距センサにより障害物を検知しながら経路を進行するロボットと、
地図データを記憶部に記憶し、前記ロボットに進行経路を指示するロボット管理端末と、
を有するロボット管理システムによるロボット管理方法であって、
経路を進行中の前記ロボットが、
前記測距センサによる計測結果をロボット管理端末へ送信し、
前記ロボット管理端末が、
前記ロボットが移動した将来の位置における計測結果を、前記ロボットから送信された計測結果を基に予測し、
前記予測の結果と、前記地図データとの不一致部分の割合が、予め設定してある閾値より大きい場合、前記地図データの再作成をユーザに通知する
ことを特徴とするロボット管理方法。
【請求項１３】
前記ロボットが移動した将来の位置とは、前記ロボットの進行経路上における位置である
ことを特徴とする請求項１２に記載のロボット管理方法。
【請求項１４】
前記ロボット管理端末は、
前記ロボットから送信された計測結果を基に、地図作り直し判定用地図データを作成し、
当該地図作り直し判定用地図データにおいて、前記ロボットが移動した将来の位置における計測結果を予測する
ことを特徴とする請求項１２に記載のロボット管理方法。
【請求項１５】
請求項１２から請求項１４のいずれか一項に記載のロボット管理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット管理システム、ロボット管理端末、ロボット管理方法およびプログラムの技術に関する。
【背景技術】
【０００２】
ロボットが環境内を効率的に移動するためには、ロボットが環境内における自身の位置姿勢を知る必要がある。この位置姿勢の推定は、予め設定されている環境の幾何形状を表す地図データに対して、ロボットのセンサより得られる幾何形状データをマッチングすることで、ロボットの位置姿勢を推定する手法が一般的となっている。この位置姿勢の推定では、予め設定されている地図データが実際の環境（実環境）と一致していることを仮定しているが、ロボットの運用環境によっては、人や他のロボットなどが環境中の物体を動かすことによって、予め設定されている地図データと、実環境との間で不一致が生じ得る。このようにして生じる地図データと実環境との不一致は、ロボットの地図データとセンサデータ間のマッチング誤り、つまりは位置姿勢の推定誤りを招き、ロボットの自律移動の失敗につながる。そのため、地図データと実環境との不一致を無くすように、ロボット用の地図データを作り直すことが必要となる。
【０００３】
この地図データの作り直しの必要性の有無の判定には、地図データと実環境との間で生じた不一致部分を、ロボットやその管理システムが可視化し、地図の作成を担当するロボットの管理者に提示することが有効と考えられる。
【０００４】
この地図データと実環境との不一致部分の可視化に関連する技術としては、例えば、非特許文献１の手法が挙げられる。非特許文献１には、最新のセンサデータと過去のセンサデータを比較して、地図の変化分を検出し、３ＤＣＧ（3-Dimension Computer Graphics）により点群を描画することで、過去に対しての地図の変化をロボットの管理者に提示する手法が提案されている。
【先行技術文献】
【非特許文献】
【０００５】
Henrik Andreasson, Martin Magnusson and Achim Lilienthal, “Has Something Changed Here? Autonomous Difference Detection for Security Patrol Robots”, Proceedings of the 2007 IEEE/RSJ International Conference on Intelligent Robots and Systems, pp.3429-3435, 2007.  
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１に記載の技術では、過去と現在の地図データの間での不一致の範囲がロボット管理者に提示されるが、ロボットの位置推定誤りにつながる大きな不一致か否か、つまりは地図データを作り直す必要があるのか否かをロボットの管理者が判断するに足る表示となっていないことが問題点として挙げられる。
【０００７】
このような背景に鑑みて本発明がなされたのであり、本発明は、地図データの作り直しの要否をロボットの管理者に通知することを目的とする。
【課題を解決するための手段】
【０００８】
課題を解決するため、本発明は、測距センサにより障害物を検知しながら経路を進行するロボットと、地図データを記憶部に記憶し、前記ロボットに進行経路を指示するロボット管理端末と、を有するロボット管理システムであって、経路を進行中の前記ロボットが、前記測距センサによる計測結果をロボット管理端末へ送信し、前記ロボット管理端末が、前記ロボットが移動した将来の位置における計測結果を、前記ロボットから送信された計測結果を基に予測し、前記予測の結果と、前記地図データとの不一致部分の割合が、予め設定してある閾値より大きい場合、前記地図データの再作成をユーザに通知することを特徴とする。
その他の解決手段については、実施形態中において適宜記載する。
【発明の効果】
【０００９】
本発明によれば、地図データの作り直しの要否をロボットの管理者に通知することができる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態に係るロボット管理システムの構成例を示す図である。
【図２】第１実施形態に係るロボットのハードウェア構成例を示す図である。
【図３】第１実施形態に係るロボット管理端末のハードウェア構成を示す図である。
【図４】位置姿勢データおよびグリッドの種類の説明のための図であり、（ａ）は、位置姿勢データの説明を示し、（ｂ）は、グリッドの種類の説明を示している。
【図５】地図データの例を示す図である。
【図６】第１実施形態に係るロボットにおける処理手順を示すフローチャートである。
【図７】第１実施形態に係るロボット管理端末における処理手順を示すフローチャートである。
【図８】地図作り直し判定用地図データの例を示す図である。
【図９】警告画面の例を示す図である。
【図１０】第２実施形態に係る閾値を設定するためのＧＵＩ画面の例を示す図である。
【図１１】第３実施形態に係るロボットのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１１】
次に、本発明を実施するための形態（「実施形態」という）について、適宜図面を参照しながら詳細に説明する。
【００１２】
［第１実施形態］
（システム構成）
図１は、第１実施形態に係るロボット管理システムの構成例を示す図である。
ロボット管理システム１は、互いに無線ＬＡＮ（Local Area Network）などで無線通信を行っているロボット２およびロボット管理端末３を有している。
【００１３】
ロボット２は、距離センサ部２１、位置姿勢推定部２２、経路追従制御部２３、移動機構部２４を有している。
距離センサ部２１は、レーザによって障害物との距離を計測し、レーザ計測結果としてセンサデータ３２４を生成する機能を有する。位置姿勢推定部２２は、距離センサ部２１から取得したセンサデータ３２４（計測結果）と、ロボット管理端末３から送信された地図データ３２１を基に、ロボット２自身の位置および姿勢の推定を行い、推定位置姿勢データ３２６を生成し、センサデータ３２４と、推定位置姿勢データ３２６をロボット管理端末３へ送信する機能を有する。経路追従制御部２３は、位置姿勢推定部２２から取得した推定位置姿勢データ３２６と、ロボット管理端末３から送信された経路データ３２３を基に、ロボット２自身が目的地まで移動するように移動機構部２４を制御して、ロボット２自身の移動を制御する。位置姿勢データについては、図４を参照して後記する。移動機構部２４は、ロボット２の移動を行うための機構である。本実施形態では、移動機構部２４として、２つの駆動輪とキャスターを備え、駆動輪の回転角速度の差の制御によって旋回を実現する移動機構を想定しているが、環境内を移動する効果が得られるのであれば、船舶、航空機、飛行船、無限軌道を備える車両、脚を備えるロボット２などの移動機構であってもよい。
【００１４】
ロボット管理端末３は、地図作り直し判定用地図作成部３１、センサデータシミュレーション部３２（予測部）、地図作り直し判定部３３（判定部）、経路データ記憶部３２３Ａ、地図データ記憶部３２１Ａ、センサデータ記憶部３２４Ａ、ロボット２の推定位置姿勢データ記憶部３２６Ａなどを有している。
経路データ記憶部３２３Ａは、ロボット管理端末３のキーボード３０６（図３）などを介して入力される環境内でロボット２が通過する際の位置と姿勢を予め記録したデータである経路データ３２３を格納している。センサデータ記憶部３２４Ａは、ロボット２の距離センサ部２１から送信されるデータ（センサデータ３２４）を格納している。地図データ記憶部３２１Ａは、予め設定してあるデータであり、ロボット２が自律移動する環境内の障害物の幾何形状を記録した地図のデータである地図データ３２１を格納している。地図データ３２１は、予めロボット２が環境内を巡回し、収集したセンサデータ３２４を基に作成される。推定位置姿勢データ記憶部３２６Ａは、ロボット２の位置姿勢推定部２２が算出し、ロボット管理端末３へ送信されたデータである推定位置姿勢データ３２６を格納している。
【００１５】
地図作り直し判定用地図作成部３１は、センサデータ３２４、地図データ３２１、推定位置姿勢データ３２６を基に、地図作り直しの判定に用いる仮の地図を作成する地図作り直し判定用地図データ３２２を生成する機能を有する。センサデータシミュレーション部３２は、経路データ３２３を基にロボット２の移動時に得られるセンサデータ３２４をシミュレートすることによって、予測し、予測されたレーザ計測結果であるシミュレーションセンサデータ３２５を生成する機能を有する。地図作り直し判定部３３は、地図作り直し用地図データ３２１と、シミュレーションセンサデータ３２５を基に、地図作り直しの有無を判定する機能を有する。
【００１６】
なお、本実施形態では、ロボット２とロボット管理端末３に機能を分けているが、ロボット管理端末３内の機能のすべて、もしくは一部をロボット２上に実装してもよい。
【００１７】
（ロボットのハードウェア構成）
図２は、第１実施形態に係るロボットのハードウェア構成例を示す図である。
ロボット２は、プロセッサ２０２、メモリ２０３、無線ＬＡＮカード２０４、レーザ距離センサ２０５（測距センサ）、移動機構装置２０６、記憶装置２０１、バスを有している。
レーザ距離センサ２０５は、レーザを照射し、障害物からのレーザの反射を検知する機能を有する。このレーザ距離センサ２０５からのデータを利用してセンサデータ取得プログラム２１３は、センサデータ３２４を生成する。なお、レーザ距離センサ２０５は、水平１８０°方向にレーザを走査しながら、照射したレーザ光が障害物から反射して返ってくるまでの時間の計測によってセンサから障害物までの距離を算出することで、２次元水平面における物体の幾何形状を計測する。なお、レーザ距離センサ２０５の代わりに、例えば、水平方向以外も走査することで物体の３次元の幾何形状を計測するレーザ距離センサ、物体をカメラで撮影した際の画像特徴量を複数のカメラで三角測量することで物体の３次元の幾何形状を計測するステレオカメラなどを使用してもよく、幾何形状が計測可能であればそのセンサの方式は問わない。移動機構装置２０６は、図１における移動機構部２４に相当するため、ここでは説明を省略する。
【００１８】
記憶装置２０１は、ＨＤ（Hard Disk）や、フラッシュメモリなどの不揮発性記憶装置であり、ロボット２が自律移動するためのプログラムとデータを格納している。プログラムは、ＯＳ（Operating System）２１１、全体制御プログラム２１２、センサデータ取得プログラム２１３、位置姿勢推定プログラム２１４、移動機構制御プログラム２１５、ロボット管理端末３との間のデータの送受信を担う通信プログラム２１６を有している。ＯＳ２１１および全体制御プログラム２１２は、プログラム全体を制御するためのプログラムである。
【００１９】
センサデータ取得プログラム２１３、位置姿勢推定プログラム２１４、移動機構制御プログラム２１５のそれぞれは、メモリ２０３に展開され、プロセッサ２０２によって実行されることにより図１の距離センサ部２１、位置姿勢推定部２２、経路追従制御部２３を具現化させる。また、ＯＳ２１１、全体制御プログラム２１２および通信プログラム２１６は、記憶装置２０１からメモリ２０３に展開され、プロセッサ２０２で実行されることにより、図６に示す処理を実行する。
さらに、記憶装置２０１には、ロボット管理端末３から配信された地図データ３２１、経路データ３２３、センサデータ３２４などが格納されている。
【００２０】
（ロボット管理端末のハードウェア構成）
図３は、第１実施形態に係るロボット管理端末のハードウェア構成を示す図である。
ロボット管理端末３は、プロセッサ３０２、メモリ３０３、ビデオカード３０４、ビデオカード３０４に接続されているディスプレイ３０５（表示部）、キーボード３０６（入力部）、無線ＬＡＮカード３０７、マウス３０８（入力部）、記憶装置３０１（記憶部）、バスを有している。
記憶装置３０１は、ＨＤや、フラッシュメモリなどの不揮発性記憶装置であり、地図の作り直しを判定して、警告を表示するためのプログラムとデータを格納している。プログラムは、ＯＳ３１１、全体制御プログラム３１２、地図作り直し判定用地図作成プログラム３１３、センサデータシミュレーションプログラム３１４、地図作り直し判定プログラム３１５、表示プログラム３１６、通信プログラム３１７などを有している。ＯＳ３１１および全体制御プログラム３１２は、プログラム全体を制御するためのプログラムである。地図作り直し判定用地図作成プログラム３１３、センサデータシミュレーションプログラム３１４、地図作り直し判定プログラム３１５のそれぞれは、メモリ３０３に展開され、プロセッサ３０２によって実行されることにより図１の地図作り直し判定用地図作成部３１、センサデータシミュレーション部３２、地図作り直し判定部３３を具現化させる。また、ＯＳ３１１、全体制御プログラム３１２、表示プログラム３１６および通信プログラム３１７なども、記憶装置３０１からメモリ３０３に展開され、プロセッサ３０２で実行されることにより、図７に示す処理を実行する。
【００２１】
表示プログラム３１６は、地図作り直しの判定に従って作り直しの場所などの情報をビデオカード３０４を介してディスプレイ３０５に描画する機能を有する。通信プログラム３１７は、ロボット２とのセンサデータ３２４などの送受信を行う機能を有する。
【００２２】
また、記憶装置３０１には、図１を参照して前記した地図データ３２１、地図作り直し判定用地図データ３２２、経路データ３２３、センサデータ３２４、シミュレーションセンサデータ３２５、ロボット２の推定位置姿勢データ３２６などが格納されている。
なお、図２および図３において、地図データ３２１、経路データ３２３、センサデータ３２４は、ロボット２およびロボット管理端末３において、共通のデータであるため、同一の符号を付すものとする。
【００２３】
なお、図２および図３において、プロセッサ２０２，３０２は、ＦＰＧＡ（Field Programmable Grid Array）やＣＰＬＤ（Complex Programmable Logic Device）などのプログラマブルなハードウェアで実現してもよい。また、各プログラムやデータは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）などの記憶媒体から移してもよいし、ネットワーク経由で他の装置からダウンロードしてもよい。また、図２および図３に示すハードウェアやソフトウェアは、実施形態に応じて、取捨選択してもよい。また、ロボット２とロボット管理端末３間の通信には無線ＬＡＮの利用を想定しているが、ＰＨＳ（Personal Handy Phone）など、他の通信方式を利用してもよい。また、有線での通信としてもよい。
さらに、ロボット２やロボット管理端末３は、それぞれの構成要素が、有線の通信線（バス）にて接続されていることを想定しているが、通信が可能であれば無線であってもよい。また、通信が可能であれば、これらの構成要素のうち、特定の要素が物理的に遠隔にあってもよい。
【００２４】
（位置姿勢データ・グリッドの種類）
ここで、図４を参照して、位置姿勢データおよびグリッドの種類について説明する。
図４は、位置姿勢データおよびグリッドの種類の説明のための図であり、（ａ）は、位置姿勢データの説明を示し、（ｂ）は、グリッドの種類の説明を示している。
図４（ａ）に示すように、ロボット２が移動する環境には、例えば世界座標系などの座標系が定義されている。位置とは、この座標系におけるロボット２の座標を示しており、図４（ａ）では、（ｘ１，ｙ１）が位置となる。また、姿勢とは、ロボット２の向きであり、例えば、図４（ａ）のようにｘ軸とロボット２の向きとの角度（θ１）で表される。
位置姿勢データとは、この位置と姿勢の組のデータ（ｘ１，ｙ１，θ１）のことである。
【００２５】
また、図４（ｂ）に示すように、地図データ３２１（図１〜図３）は、所定の大きさの正方形のグリッドが定義されている。ロボット２がレーザ４０１を照射すると、このレーザ４０１は障害物４０２にあたる。このとき、レーザ４０１が障害物４０２に当たった点を含むグリッドが占有グリッド４１２となり、レーザ４０１が障害物４０２にあたることなく直進したグリッドが非占有グリッド４１１となる。また、障害物４０２から先にはレーザ４０１が届かないので、障害物４０２から先は未知グリッド４１３となる。障害物４０２が薄い板状のものであっても、厚みをもった柱状のものであっても、障害部４０２の表面から先は未知グリッド４１３となる。
【００２６】
（処理例）
次に、図２および図３を参照しつつ、図５〜図８を参照して、本実施形態に係るロボット管理方法を説明する。
まず始めに、本実施形態に係る地図の作り直しの通知の概略について記述する。実環境と、予め設定されている地図データ３２１との間に生じた不一致部分が、ロボット２の移動に支障をきたすか否かは、ロボット２が与えられた経路に沿って移動する際に、その不一致部分を含むセンサデータ３２４を用いて、位置姿勢推定を行うか否かによる。本実施形態では、この点に着目し、ロボット管理端末３は、ある不一致部分が生じた際に、ロボット２が通り得る様々な経路において、ロボット２から得られるセンサデータ３２４をシミュレートし、その不一致部分を計測して位置姿勢推定を行い得るか否かを予測する。そして、不一致部分が、１回のシミュレーションセンサデータ３２５において、多く占める場合、ロボット管理端末３は、位置姿勢推定誤りが生じて自律移動に失敗する可能性があると判定して、地図データ３２１の作り直しが必要であることをロボット２の管理者に通知する。ここで、「１回のシミュレーションセンサデータ３２５」とは、ロボット２が経路上において位置姿勢をとったと仮定した場合に、そこで計測を行った際に得られるであろうセンサデータという意味であり、経路上を進んだ際に得られると思われるすべてのセンサデータではない。つまり、図８を例として参照すると、「１回のシミュレーションセンサデータ３２５」とは図８における符号８１０が示すセンサデータを指し、経路５０２を進んだと仮定した際に得られるであろうすべてのセンサデータを累積したものではない。すなわち、図７のステップＳ２０５〜Ｓ２１０の処理は経路上を進んだと仮定した際に、ロボット２が位置姿勢推定を行う各場所毎に行われる。
【００２７】
このように、不一致部分が経路上のロボット２からどのように計測されるかをシミュレーションで予め求めることにより、不一致部分がロボット２の自律移動に影響を与えるか否かを予め判定できるようになる。これにより、自律移動に影響が出る場合にのみ、地図を作り直せばよくなり、地図データ３２１の作り直し回数が削減されることとなる。
このような地図データ３２１の作り直しの通知の考え方に基づき、具体的な処理について記述する。ここでは、実環境内を自律移動する車両型ロボット２により計測された実環境の幾何形状を表すセンサデータ３２４と、ロボット２に予め与えた経路データ３２３と地図データ３２１とを用いて、地図データ３２１と実環境との間の不一致の有無とそのロボット２の位置姿勢推定への影響を判定し、地図を作り直す時期と場所を管理者に提示するロボット管理システム１について記述する。
【００２８】
以上のロボット２とそのロボット管理端末３からなるロボット管理システム１の運用例として、図５の地図データ３２１で表される環境において、レーザ距離センサ２０５（図２）を備えるロボット２に対し、経路５０１と経路５０２が与えられた例を示す。ここで、ロボット２が経路５０１を移動中に、人によって地図データ３２１にない障害物５１１が置かれた場合における地図の作り直しの通知を例として、このときにロボット２とロボット管理端末３のそれぞれで行われる処理（図６と図７）について述べる。ロボット２は、経路５０１を進んだ後、経路５０１の出発地点に戻って経路５０２を進むものとする。
なお、ここでは、地図データ３２１は予め地図データ作成用のプログラム（図示せず）を用いて別途作成され、ロボット２の地図データ３２１とロボット管理端末３の地図データ３２１として保存されているものとする。また、経路データ３２３には、ロボット２が地図上でとるべき位置姿勢データが時刻と対応して記録されているものとする。符合５２１および符号３２４については後記して説明する。
【００２９】
図６は、第１実施形態に係るロボットにおける処理手順を示すフローチャートである。
まず、ロボット２の全体制御プログラム２１２が起動すると、位置姿勢推定プログラム２１４が、ロボット管理端末３から送信された地図データ３２１を読み込む（Ｓ１０１）。
さらに、移動機構制御プログラム２１５が、ロボット管理端末３から送信された経路データ３２３を読み込む（Ｓ１０２）。
続いて、レーザ距離センサ２０５を用いた環境の計測が行われ、センサデータ取得プログラム２１３が計測データを取得し、センサデータ３２４を生成する（Ｓ１０３）。
そして、位置姿勢推定プログラム２１４が、センサデータ３２４と地図データ３２１とのマッチングに基づいたロボット２の位置姿勢の推定を行い（Ｓ１０４）、推定位置姿勢データ３２６を生成する。マッチングの手法としては、ＩＣＰ（Iterative Closest Point）と呼ばれる手法の利用を想定する。これにより、位置姿勢推定プログラム２１４は、センサデータ３２４と地図データ３２１をなす点のうち、点間距離が最短となる点同士を対応付けて、対応づけられた点間距離の総和が小さくなるように、つまりはセンサデータ３２４と地図データ３２１の幾何的特徴が最も重なり合うときのセンサデータ３２４と地図データ３２１から、ロボット２自身の相対位置姿勢を推定する。ここでは、ＩＣＰで推定される地図データ３２１上におけるセンサデータ３２４の位置姿勢をロボット２の位置姿勢とみなすものとする。なお、ここでは、マッチング手法としてＩＣＰの利用を想定しているが、同様の効果が得られるならば手法は問わない。
【００３０】
そして、通信プログラム２１６が、センサデータ３２４と生成された推定位置姿勢データ３２６を、無線ＬＡＮカード２０４を介してロボット管理端末３に送信する（Ｓ１０５）。このとき、センサデータ３２４のみがロボット管理端末３へ送信されてもよい。
次に、移動機構制御プログラム２１５が、推定位置姿勢データ３２６とステップＳ１０２で読み込んだ経路データ３２３を用いて、ロボット２の経路追従のための移動機構制御を行う（Ｓ１０６）。
そして、移動機構制御プログラム２１５は、経路データ３２３に予め記録されているロボット２がとるべき位置姿勢データと推定位置姿勢データ３２６との差をなくすよう、移動機構装置２０６におけるロボット２の車輪の回転制御などを行い経路への追従が実現される。
【００３１】
そして、全体制御プログラム２１２は、経路データ３２３に登録されている目的地の位置と、推定位置姿勢データ３２６の位置とが一致しているか否かを判定することによって、目的地に到着したか否かを判定する（Ｓ１０７）。
ステップＳ１０７の結果、目的地に到着していない場合（Ｓ１０７→Ｎｏ）、ロボット２は、ステップＳ１０３へ処理を戻す。
ステップＳ１０７の結果、目的地に到着している場合（Ｓ１０７→Ｙｅｓ）、ロボット２は処理を終了する。
【００３２】
この経路追従制御によって、ロボット２が図５に示す地点５２１まで移動する最中に、実環境内に、地図データ３２１に、もともと存在しない障害物５１１が置かれ、地点５２１に到着したロボット２によって、センサデータ３２４が得られたとする。位置姿勢推定プログラム２１４は、このセンサデータ３２４を基に、ステップＳ１０４における位置姿勢の推定を行い、推定の結果得られる推定位置姿勢データ３２６とセンサデータ３２４は、ステップＳ１０５において、ロボット管理端末３に送信される。これを受信したロボット管理端末３での処理の流れを図７により説明する。
【００３３】
図７は、第１実施形態に係るロボット管理端末における処理手順を示すフローチャートである。
全体制御プログラム３１２が起動すると、まず、地図作り直し判定用地図作成プログラム３１３が、記憶装置３０１の地図データ３２１を読み込む（Ｓ２０１）。
さらに、センサデータシミュレーションプログラム３１４が、記憶装置３０１の経路データ３２３を読み込む（Ｓ２０２）。
続いて、通信プログラム３１７は、無線ＬＡＮカード３０７を介して、図６のステップＳ１０５でロボット２から送信されたセンサデータ３２４と推定位置姿勢データ３２６を受信する（Ｓ２０３）。受信されたセンサデータ３２４および推定位置姿勢データ３２６はそれぞれ記憶装置３０１に一旦格納される。
【００３４】
次に、地図作り直し判定用地図作成プログラム３１３が、各グリッド毎に占有・非占有・未知の状態を記録した地図作り直し判定用地図データ３２２を作成する（Ｓ２０４）。地図作り直し判定用地図データ３２２は、地図データ３２１より複製された地図データに、推定位置姿勢データ３２６に従って地図データ３２１の座標系に座標変換されたセンサデータ３２４を統合することで作成される。
この地図作り直し判定用地図データ３２２へのセンサデータ３２４の統合の際、センサと障害物との位置姿勢の関係から、各グリッドに新たに状態が割り当てられる。割り当てられる状態は、図４（ｂ）で前記した占有・非占有・未知である。
地図作り直し判定用地図作成プログラム３１３は、図５の地点５２１で得られたセンサデータ３２４と地図データ３２１の統合により、図８に示す地図作り直し判定用地図データ３２２を作成する。図８の地図作り直し判定用地図データ３２２において、障害物の存在が新たに確定した占有状態のグリッドに相当する領域８３０と障害物の有無が不明なグリッドに相当する領域８３１が追加されている。ここでは、地図データ３２１にもとからある障害物は不動であるとしている。
領域８３０，８３１が、地図データ３２１（図５）との不一致部分となるが、これがロボット２の位置推定誤りを招くか否かは、ロボット２の経路とその経路を移動する際の予測されるセンサデータ（シミュレーションセンサデータ３２５）による。符号８０１，８１０，８２０については後記する。
【００３５】
次に、センサデータシミュレーションプログラム３１４は、ロボット２が地図作り直し判定用地図データ３２２で表される環境内で経路データ３２３に沿ってロボット２が移動した際に得られるセンサデータ３２４をシミュレーションする（Ｓ２０５）。ここで、センサデータシミュレーションプログラム３１４は、経路データ３２３上におけるロボット２がとるべき位置姿勢で、このロボット２がレーザによる走査を行った際に、このレーザが障害物と交わる点の座標（シミュレーションセンサデータ３２５）を算出するシミュレーションを行う。なお、このシミュレーションにおいて、センサデータシミュレーション部３２は、未知状態のグリッドは、レーザが透過するものとし、レーザの進路が占有状態のグリッドと交わる点のセンサデータ３２４を取得する。例えば、図８において、今、ロボット２が経路５０２に沿って移動し、符号８０１の位置姿勢をとるときのシミュレーションセンサデータ３２５は符号８１０のようになる。なお、このシミュレーションセンサデータ３２５は、ロボット管理端末３の記憶装置３０１に保存される。
【００３６】
次に、地図作り直し判定プログラム３１５は、シミュレーションセンサデータ３２５における有効部分の判定を行う（Ｓ２０６）。この判定は、地図作り直し判定プログラム３１５がシミュレーションセンサデータ３２５がなす点群（図８の符号８１０）の座標のそれぞれについて、その座標とロボット２上のセンサ位置とを結んだ線分が、不明状態のグリッドを通らない場合を有効、それ以外を無効とみなすことで行われる。図８の例では、地図作り直し判定部３３は、シミュレーションで得られたセンサデータ８１０のうち、符号８２０のシミュレーションセンサデータ（白抜き）が無効部分であり、それ以外を有効部分として判定する。
【００３７】
そして、地図作り直し判定プログラム３１５は、１回のシミュレーションにおけるシミュレーションセンサデータ３２５における有効部分の割合が予め設定してある閾値より大きいか否かを判定する（Ｓ２０７）。なお、このときの閾値の設定については次のように行う。まず、地図データ３２１を作った時点において、地図作り直し判定プログラム３１５は、経路データ３２３に従って、ロボット２が環境内で正常に自律移動できることを確認した上で、自律移動の際に時系列に得られるセンサデータ３２４と推定位置姿勢データ３２６を算出し、保存しておく。次いで、地図作り直し判定プログラム３１５は、推定位置姿勢データ３２６に基づいて、シミュレーションセンサデータ３２５を地図データ３２１の座標系に変換し、地図データ３２１の占有状態のグリッドにシミュレーションセンサデータ３２５が重なる割合を求める。そして、地図作り直し判定プログラム３１５は、自律移動中に得られたセンサデータ３２４毎にこの割合を求め、その平均値を求め、これに不一致を許容する割合を示す係数をかけて、有効部分の判定用の閾値とする。本実施形態では以上のような閾値の設定を想定するが、地図の作り直しの要不要の判定に使えるのであれば他の手法であってもよい。
【００３８】
ステップＳ２０７の結果、センサデータ３２４全体に対する有効部分の割合が予め設定してある閾値以下の場合（Ｓ２０７→Ｎｏ）、無効部分、すなわち未知部分が大きいことになるので、地図作り直し判定プログラム３１５が、ロボット２上にて地図データ３２１とセンサデータ３２４のマッチング誤りが生じ得るとみなして、表示プログラム３１６がディスプレイ３０５に地図（地図データ３２１）を作り直す時期・場所を警告と共に表示し（Ｓ２０８）、全体制御プログラム３１２が、当該シミュレーション位置（図８の符号８０１）が経路の最後であるか否かを判定する（Ｓ２０９）。ここで、時期とは、例えば、ただちに地図データ３２１を作り直すべきか否かなどである。表示される時期については、予め記憶装置３０１に設定されているものとする。なお、時期は表示されなくてもよい。警告の表示は、表示プログラム３１６が、現在の地図データ３２１と経路データ３２３上に、ステップＳ２０４で求められた未知グリッド、ステップＳ２０６で無効と判定された部分を含むシミュレーションセンサデータ３２５、無効なセンサデータ３２４の取得が見込まれる部分的な経路を赤などの警告色で重ねて表示することで行われる。例えば、図９の警告画面９００における符号９０１や、シミュレーション位置９０２が表示プログラム３１６によって強調表示される。
【００３９】
ステップＳ２０９の結果、シミュレーション位置が経路の最後ではない場合（Ｓ２０９→Ｎｏ）、全体制御プログラム３１２は、シミュレーション位置を１つ進めて、ステップＳ２０５へ処理を戻す。ここで、「シミュレーション位置を１つ進める」とは、予め設定してある計測時間後における経路上の位置姿勢計測位置へシミュレーション位置を進めるという意味である。
ステップＳ２０９の結果、シミュレーション位置が経路の最後である場合（Ｓ２０９→Ｙｅｓ）、全体制御プログラム３１２は、ステップＳ２０３へ処理を戻し、次のロボット２の環境内位置におけるセンサデータ３２４と、推定位置姿勢データ３２６を受信する。
【００４０】
また、ステップＳ２０７の結果、センサデータ３２４全体に対する有効部分の割合が予め設定してある閾値より大きい場合（Ｓ２０７→Ｙｅｓ）、全体制御プログラム３１２は、ロボット２の運用の終了に伴うキーボード３０６からの終了命令が入力されたか否かを判定する（Ｓ２１０）。
ステップＳ２１０の結果、終了命令が入力されていない場合（Ｓ２１０→Ｎｏ）、全体制御プログラム３１２は、ステップＳ２０９へ処理を進める。
ステップＳ２１０の結果、終了命令が入力された場合（Ｓ２１０→Ｙｅｓ）、処理を終了する。
【００４１】
なお、本実施形態では、ロボット管理端末３は処理対象となっているロボット２が進む経路においてシミュレーション（Ｓ２０５〜Ｓ２１０）を行っているが、これに限らず、他の経路についてステップＳ２０５〜Ｓ２１０の処理を行ってもよい。ここで、シミュレーションの対象となる経路としては、他のロボット２が通る経路や、現時点ではロボット２が通る経路ではないが、将来ロボット２が通り得る経路などが考えられる。
このようにすることで、他のロボット２が通る経路や、将来ロボット２が通り得る経路などについても地図データ３２１の作り直しが必要であるか否かを判定することができる。
【００４２】
つまり、ロボット管理端末３は、シミュレーションセンサデータ３２５において、地図作り直し判定用地図データ３２２と、地図データ３２１との差分部分に係る部分を無効部分とし、それ以外を有効部分とし、シミュレーションセンサデータ３２５に対する有効部分の割合が、閾値より大きいか否かを判定することによって、シミュレーションセンサデータ３２５と、地図データ３２１との不一致部分の割合が予め設定してある閾値より大きいか否かを判定する。
【００４３】
なお、本実施形態ではセンサデータ３２４を使用して、有効部分の割合を算出しているがグリッドを用いてもよい。すなわち、ステップＳ２０７において、地図作り直し判定プログラム３１５は、１回のシミュレーションにおける占有グリッドに対する未知グリッドの割合が予め設定してある閾値を超えるか否かを判定してもよい。つまり、地図データ３２１と、地図作り直し判定用地図データ３２２との差分に該当するグリッドの割合が、閾値より大きいか否かを判定することによって、シミュレーションセンサデータ３２５と、地図データ３２１との不一致部分の割合が予め設定してある閾値より大きいか否かを判定してもよい。
【００４４】
第１実施形態によれば、ロボット２の自律移動の際に位置姿勢の推定誤りを招きうる、実環境と地図データ３２１との不一致を検出し、ロボット管理システム１の管理者に、予め設定してある地図の作り直し時期が来たことと、作り直すべき場所がどこであるかを通知することが可能となる。
【００４５】
なお、本実施形態においては、ロボット２が自律移動することを想定しているが、ロボット２は人によって遠隔操作されてもよい。また、本実施形態において、地図データ３２１としては２次元データを想定しているが、３次元データであってもよい。
また、本実施形態においては、ステップＳ１０５において、ロボット２が、センサデータ３２４と、推定位置姿勢データ３２６をロボット管理端末３へ送信しているが、これに限らず、ロボット２がセンサデータ３２４のみをロボット管理端末３へ送信してもよい。この場合、ロボット管理端末３側でセンサデータ３２４と、地図データ３２１とのマッチングを行って、推定位置姿勢データ３２６を算出することとなる。
また、本実施形態では、地図データ３２１との不一致の検出に関わらずステップＳ２０３〜Ｓ２０９の処理を行っているが、これに限らず、ロボット管理端末３が地図データ３２１との不一致を検出したときのみ、ステップＳ２０３〜Ｓ２０９の処理を行ってもよい。
【００４６】
［第２実施形態］
第１実施形態において、閾値の求め方として、予めロボット２を移動させ、このとき得られるセンサデータ３２４と地図データ３２１とのマッチング結果を基に閾値を決めていく方法について記述した。第２実施形態では、ロボット管理端末３上のＧＵＩ（Graphical User Interface）を用いて、手動で閾値を設定する方法について記述する。
【００４７】
図１０は、第２実施形態に係る閾値を設定するためのＧＵＩ画面の例を示す図である。
ＧＵＩ画面１０００には、地図データ３２１（図１〜図３）と経路データ３２３（図１〜図３）が表示されており、ロボット２の管理者は、マウス３０８（図３）を用いて、矩形領域１００１，１００２などを指定し、指定した矩形領域１００１，１００２毎に閾値の設定を行う。例えば、ロボット２が荷降ろし時に領域１００２で停止するため、この領域では高い精度で障害物の検出が求められるとすると、矩形領域１００２における閾値は、矩形領域１００１のそれにくらべて高くなるように設定される。また、人通りが多い場所や、台車などの置き場所になっている場合、その領域の閾値を上げてもよい。また、指定する領域の形状は、矩形以外に円など、任意形状であってもよい。
【００４８】
第２実施形態によれば、環境の状況に応じた柔軟な閾値の設定を行うことができる。
【００４９】
図１０の例では、地図作り直しの通知のための閾値を割り当てる例について記述したが、位置姿勢の推定時に許容する誤差を、図１０のようなマウス３０８（図３）による描画にて設定できるようにしてもよい。
例えば、図６のステップＳ１０４にて、ＩＣＰによるマッチングに基づく位置姿勢の推定を行うが、このときのセンサデータ３２４と地図データ３２１間の点間距離、すなわちレーザが物体に当たった点と、地図データ３２１との距離の総和の平均値を閾値としてもよい。そして、ロボット管理端末３は、図１０に示すような領域毎に、この閾値、すなわち、センサデータ３２４と地図データ３２１間の点間距離の総和の平均値を設定してもよい。この場合、シミュレーションセンサデータ３２５と地図データ３２１間の点間距離の総和の平均値が、設定してある閾値より大きくなった場合、ロボット管理端末３は位置姿勢の推定誤りが大きいと判定し、地図データ３２１の作り直しが必要であることをロボット２の管理者に通知するようにしてもよい。
なお、ここでは、ポインティングデバイスとしてマウス３０８を用いているが、ジョイスティック、キーボード３０６、タッチパネル等、同等の役割を担うものであれば何を用いてもよい。また、閾値の指定をする領域としては、例として矩形領域を想定しているが、自由曲線等、領域が定義できるものであれば手法を問わない。また、以上は２次元の例で説明しているが３次元であってもよいことは言うまでもない。
【００５０】
［第３実施形態］
第１実施形態において、検出した不一致部分をロボット管理端末３の表示部に警告表示を行うことよって、ロボット２の管理者に通知していた。ここでは、ロボット２に備えられている表示装置を用いて現場にいる人に通知する例について述べる。
図１１は、第３実施形態に係るロボットのハードウェア構成例を示す図である。
図１１に示すロボット２ａの構成は、図２の構成に、雲台２０７と、現場の作業者などに不一致部分を提示するプロジェクタ２０８（指示表示部）が追加された構成となっている。雲台２０７にはプロジェクタ２０８が取りつけられており、プロジェクタ２０８の姿勢や高さを変えることが可能となっている。第１実施形態では、ロボット２が図６のステップＳ１０４にて位置姿勢の推定を行い、その結果をロボット管理端末３に送ることで、ロボット管理端末３にて図７のステップＳ２０４により図８に示すような地図作り直し判定用地図データ３２２を作成しているが、第３実施形態では、図９に示すような地図作り直し判定用地図データ３２２と、警告画面９００のデータをロボット２ａがロボット管理端末３から受信し、受信したデータを基に、実環境における不一致部分にプロジェクタ２０８が向くように雲台２０７を制御し、プロジェクタ２０８が、実環境の不一致部分に赤などの警告色を投影し、周囲の人（現場の作業者など）に不一致部分が生じていることを通知する。なお、この例では、プロジェクタ２０８の利用を想定しているが、ライトやレーザを用いてもよい。また、不一致が生じた部分でロボット２ａが超信地旋回（前後には進まず、その場で旋回すること）するなどにより、ロボット２ａの動きから、その周辺で地図データ３２１と実環境との不一致が生じていることを示してもよい。
【００５１】
なお、ロボット２ａに図３に示すロボット管理端末３で示す構成が備えられている場合、ロボット２ａ側でステップＳ２０４からステップＳ２０９の処理を行うことで、ロボット２ａ側で地図作り直し判定用地図データ３２２と、警告画面９００のデータを作成し、実環境における不一致部分にプロジェクタ２０８が向くように雲台２０７を制御し、不一致部分に赤などの警告色を投影し、周囲の人に不一致部分が生じていることを通知することが可能である。
【００５２】
第３実施形態によれば、管理者のみならず現場の作業員などにも地図データ３２１との不一致部分を示すことができる。
【００５３】
なお、本実施形態にかかるロボット２は、工場内における搬送ロボットなどが望ましいが、監視ロボットなどの巡回ロボットにも適用可能である。
地図データ３２１の再作成は、経路を進行中のロボット２が一時的に経路進行を停止、障害物付近を巡回することによって地図データ３２１の再作成を行ってもよいし、経路を進行中のロボット２とは、別のロボット２が環境内を巡回することによって地図データ３２１の再作成を行ってもよい。
また、本実施形態では、ステップＳ２０３〜Ｓ２０９の処理を、ロボット２が移動する毎に行っていることを推定しているが、例えば、ロボット２が数回移動したときにステップＳ２０３〜Ｓ２０９の処理を行ってもよいし、数秒毎にステップＳ２０３〜Ｓ２０９の処理を行ってもよい。
【符号の説明】
【００５４】
１      ロボット管理システム
２      ロボット
３      ロボット管理端末
２１    距離センサ部
２２    位置姿勢推定部
２３    経路追従制御部
２４    移動機構部
３１    地図作り直し判定用地図作成部
３２    センサデータシミュレーション部（予測部）
３３    地図作り直し判定部（判定部）
２０１  記憶装置（ロボット）
２０５  レーザ距離センサ（測距センサ）
２０６  移動機構装置
２０８  プロジェクタ（指示表示部）
２１２  全体制御プログラム（ロボット）
２１３  センサデータ取得プログラム
２１４  位置姿勢推定プログラム
２１５  移動機構制御プログラム
２１６  通信プログラム（ロボット）
３０１  記憶装置（ロボット管理端末：記憶部）
３１２  全体制御プログラム（ロボット管理端末）
３１３  地図作り直し判定用地図作成プログラム
３１４  センサデータシミュレーションプログラム
３１５  地図作り直し判定プログラム
３１７  通信プログラム
３２１  地図データ
３２２  地図作り直し判定用地図データ
３２３  経路データ
３２４  センサデータ（計測結果）
３２５  シミュレーションセンサデータ（予測された計測結果）
３２６  推定位置姿勢データ
【図１】
2010277548.tif 000003
【図２】
2010277548.tif 000004
【図３】
2010277548.tif 000005
【図４】
2010277548.tif 000006
【図５】
2010277548.tif 000007
【図６】
2010277548.tif 000008
【図７】
2010277548.tif 000009
【図８】
2010277548.tif 000010
【図９】
2010277548.tif 000011
【図１０】
2010277548.tif 000012
【図１１】
2010277548.tif 000013