(57)【要約】【課題】種類の異なる複数のセンサの出力を記憶しようとする場合、膨大なメモリが必要となり、それぞれのサンプリングデータ間の対応関係を把握することも困難となる。【解決手段】複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域を含む第１記憶領域と、複数のセンサのうちサンプリング周期が最長のセンサの一周期分のサンプリングデータと、一周期分のサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを複数のセンサ領域から読み出して一纏めにしたデータセットを書き込むための第２記憶領域と、複数のセンサのサンプリングデータを複数のセンサ領域のそれぞれにリングバッファ形式によって書き込み、所定のタイミングでデータセットを生成して第２記憶領域にリングバッファ形式によって書き込む制御部とを備える記憶装置を提供する。【選択図】図２
2018124818.tif 000002
【特許請求の範囲】
【請求項１】
種類の異なる複数のセンサのサンプリングデータを記憶する記憶装置であって、
前記複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域を含む第１記憶領域と、
前記複数のセンサのうちサンプリング周期が最長のセンサの一周期分のサンプリングデータと、前記一周期分のサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを前記複数のセンサ領域から読み出して一纏めにしたデータセットを書き込むための第２記憶領域と、
前記複数のセンサのサンプリングデータを前記複数のセンサ領域のそれぞれにリングバッファ形式によって書き込み、所定のタイミングで前記データセットを生成して前記第２記憶領域にリングバッファ形式によって書き込む制御部と
を備える記憶装置。
【請求項２】
前記第１記憶領域において、前記複数のセンサのうちサンプリング周期が最長のセンサ以外のセンサのセンサ領域にそれぞれ割り当てられた記憶容量は、前記最長のセンサの一周期の１倍以上２倍以下の期間のサンプリングデータを記憶するために必要な容量である請求項１に記載の記憶装置。
【請求項３】
前記制御部は、前記データセットにタグ情報を含め、
前記タグ情報は、前記データセットが生成された時間情報を含む請求項１または２に記載の記憶装置。
【請求項４】
前記制御部は、外部から指示信号を受信したときに、前記データセットを生成して前記第２記憶領域に書き込む請求項１から３のいずれか１項に記載の記憶装置。
【請求項５】
前記制御部は、外部から受信する指示信号に基づいて、前記データセットを生成して前記第２記憶領域に書き込む周期を変更する請求項１から４のいずれか１項に記載の記憶装置。
【請求項６】
前記第１記憶領域と前記第２記憶領域は、一つのメモリチップに包含されている請求項１から５のいずれか１項に記載の記憶装置。
【請求項７】
前記第１記憶領域を有する第１メモリチップと、
前記第２記憶領域を有する、前記第１メモリチップとは異なる第２メモリチップと
を備え、
前記第１メモリチップのデータ書込可能速度は、前記第２メモリチップのデータ書込可能速度よりも早い請求項１から５のいずれか１項に記載の記憶装置。
【請求項８】
リセット信号を受信するまでは上書きされない第３記憶領域を備え、
前記制御部は、外部から保存信号を受信したら、前記第２記憶領域に記憶されている複数の前記データセットから予め定められた個数分のデータセットを前記第３記憶領域へコピーする請求項１から７のいずれか１項に記載の記憶装置。
【請求項９】
前記制御部は、前記保存信号を受信するたびに、前記第２記憶領域として利用していた領域の一部を前記第３記憶領域へ変更する請求項８に記載の記憶装置。
【請求項１０】
前記制御部は、前記第２記憶領域の記憶容量が前記個数分のデータセットを記憶する容量を下回ったら警告信号を出力する請求項９に記載の記憶装置。
【請求項１１】
前記制御部は、前記保存信号に基づいて、前記第３記憶領域へコピーするデータセットの個数および対象とするデータセットの少なくともいずれかを変更する請求項８から１０のいずれか１項に記載の記憶装置。
【請求項１２】
前記複数のセンサと請求項１から１１のいずれか１項に記載の記憶装置を搭載する移動ロボットであって、
移動に関する予め定められた状況を前記複数のセンサのいずれかが検知した場合に、前記保存信号を前記記憶装置へ送信する送信部を備える移動ロボット。
【請求項１３】
前記移動に関する予め定められた状況は、進行方向に段差が存在する状況を含む請求項１２に記載の移動ロボット。
【請求項１４】
種類の異なる複数のセンサのサンプリングデータを記憶装置に記憶する記憶方法であって、
前記記憶装置の第１記憶領域を前記複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域として利用して、前記複数のセンサのサンプリングデータを前記複数のセンサ領域のそれぞれにリングバッファ形式によって書き込む第１記憶ステップと、
前記記憶装置の第２記憶領域を前記複数のセンサのうちサンプリング周期が最長のセンサの一周期分のサンプリングデータと、前記一周期分のサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを前記複数のセンサ領域から読み出して一纏めにしたデータセットを書き込むための記憶領域として利用して、所定のタイミングで前記データセットを生成して前記第２記憶領域にリングバッファ形式によって書き込む第２記憶ステップと
を含む記憶方法。
【請求項１５】
種類の異なる複数のセンサのサンプリングデータを記憶装置に記憶する記憶プログラムであって、
前記記憶装置の第１記憶領域を前記複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域として利用して、前記複数のセンサのサンプリングデータを前記複数のセンサ領域のそれぞれにリングバッファ形式によって書き込む第１記憶ステップと、
前記記憶装置の第２記憶領域を前記複数のセンサのうちサンプリング周期が最長のセンサの一周期分のサンプリングデータと、前記一周期分のサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを前記複数のセンサ領域から読み出して一纏めにしたデータセットを書き込むための記憶領域として利用して、所定のタイミングで前記データセットを生成して前記第２記憶領域にリングバッファ形式によって書き込む第２記憶ステップと
をコンピュータに実行させる記憶プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置、移動ロボット、記憶方法及び記憶プログラムに関する。
【背景技術】
【０００２】
例えば自律移動が可能な移動ロボットには多種多様なセンサが搭載されている。移動ロボットの挙動を後の動作に利用したり解析したりするために、これらのセンサの出力をログとして記録しておきたいという要請がある。例えば、特許文献１には、センサの出力そのものを記録するわけではないが、制御回路における複数箇所の動作波形データを所定の周期でリングバッファに記憶させ、事後的に解析できるように構成したロボットが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−３０９６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
種類の異なる複数のセンサの出力を記憶しようとする場合、センサごとにサンプリング周期が異なり、出力されるサンプリングデータの容量も異なるので、すべての出力を漏れなく記憶すると、膨大なメモリが必要となり、それぞれのサンプリングデータ間の対応関係を把握することも困難となる。
【０００５】
本発明は、このような問題を解決するためになされたものであり、小規模なハードウェア構成により種類の異なる複数のセンサの出力を効率的にログとして取得するためのものである。
【課題を解決するための手段】
【０００６】
本発明の第１の態様における記憶装置は、種類の異なる複数のセンサのサンプリングデータを記憶する記憶装置であって、複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域を含む第１記憶領域と、複数のセンサのうちサンプリング周期が最長のセンサの一周期分のサンプリングデータと、一周期分のサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを複数のセンサ領域から読み出して一纏めにしたデータセットを書き込むための第２記憶領域と、複数のセンサのサンプリングデータを複数のセンサ領域のそれぞれにリングバッファ形式によって書き込み、所定のタイミングでデータセットを生成して第２記憶領域にリングバッファ形式によって書き込む制御部とを備える。
【０００７】
このように構成された記憶装置では、それぞれのセンサのサンプリングデータを記憶するリングバッファとは別に、サンプリングデータを一纏めにしたデータセットを記憶するリングバッファを設けるので、センサごとのリングバッファのメモリ容量を抑制することができる。また、データセットを、所望のタイミングで、サンプリング周期が最長のセンサの一周期分に合わせて生成するので、事後解析等のために必要なログを構築するための情報を効率よく残存させることができる。
【０００８】
上記の記憶装置の構成として、第１記憶領域において、複数のセンサのうちサンプリング周期が最長のセンサ以外のセンサのセンサ領域にそれぞれ割り当てられた記憶容量は、最長のセンサの一周期の１倍以上２倍以下の期間のサンプリングデータを記憶するために必要な容量とすることができる。このように各センサ用のリングバッファを構成すれば、第１記憶領域のメモリ容量を大きく抑制することができる。
【０００９】
また、制御部は、データセットにタグ情報を含め、タグ情報は、データセットが生成された時間情報を含めても良い。このように時間情報を含めば、ログ情報として利用する場合に、それぞれのデータセットの時間管理を効率よく行える。
【００１０】
また、制御部は、外部から指示信号を受信したときに、データセットを生成して第２記憶領域に書き込んでも良い。このように指示信号によってデータセットを生成するタイミングを制御すれば、記憶装置を搭載する装置の状況等によってタイミングを変更することもできる。また、制御部は、外部から受信する指示信号に基づいて、データセットを生成して第２記憶領域に書き込む周期を変更しても良い。このように構成すれば、それぞれのデータセットを生成するタイミングはタイマーで周期的に制御しつつ、記憶装置を搭載する装置の状況等に応じてその周期を変更することができる。このように周期の変更時に限って指示信号を与えるようにすれば、記憶装置を搭載する装置側の負担を軽減することができる。
【００１１】
また、第１記憶領域と第２記憶領域は、一つのメモリチップに包含されていても良い。このように構成すれば、メモリの実装が容易となり、実装面積も小さくすることができる。あるいは、第１記憶領域を有する第１メモリチップと、第２記憶領域を有する第２メモリチップとを分けて、第１メモリチップのデータ書込可能速度を、第２メモリチップのデータ書込可能速度よりも早くすることもできる。このように構成すれば、それぞれの記憶領域に要求される性能を最適に満たすことができる。
【００１２】
また、上記の記憶装置は、リセット信号を受信するまでは上書きされない第３記憶領域を備え、制御部は、外部から保存信号を受信したら、第２記憶領域に記憶されている複数のデータセットから予め定められた個数分のデータセットを第３記憶領域へコピーするように構成しても良い。このように構成すれば、それぞれのセンサの出力をログとして残したい場合には第１記憶領域へのアクセスが不要であり、効率よく非消去領域へデータセットを移すことができる。
【００１３】
この場合、制御部は、保存信号を受信するたびに、第２記憶領域として利用していた領域の一部を第３記憶領域へ変更しても良い。このように第２記憶領域の一部を第３記憶領域として利用すれば、さらにメモリの効率的な利用が可能となる。このように第２記憶領域を削って第３記憶領域とする場合は、制御部は、第２記憶領域の記憶容量が定められた個数分のデータセットを記憶する容量を下回ったら警告信号を出力すると良い。このように警告信号を出力すれば、利用者はログを取得できなくなったことを認識することができる。
【００１４】
また、制御部は、外部からの保存信号に基づいて、第３記憶領域へコピーするデータセットの個数および対象とするデータセットの少なくともいずれかを変更しても良い。このように構成すれば、記憶装置を搭載する装置の状況に応じて異なる、ログとして必要な情報の期間に柔軟に対応することができる。
【００１５】
また、上記の複数のセンサと記憶装置を搭載する移動ロボットは、移動に関する予め定められた状況を複数のセンサのいずれかが検知した場合に、保存信号を記憶装置へ送信する送信部を備えていても良い。このように構成すれば、移動時のトラブル等を効率的に事後解析することができる。
【００１６】
本発明の第２の態様における記憶方法は、種類の異なる複数のセンサのサンプリングデータを記憶装置に記憶する記憶方法であって、記憶装置の第１記憶領域を複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域として利用して、複数のセンサのサンプリングデータを複数のセンサ領域のそれぞれにリングバッファ形式によって書き込む第１記憶ステップと、記憶装置の第２記憶領域を複数のセンサのうちサンプリング周期が最長のセンサの一周期分のサンプリングデータと、一周期分のサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを複数のセンサ領域から読み出して一纏めにしたデータセットを書き込むための記憶領域として利用して、所定のタイミングでデータセットを生成して第２記憶領域にリングバッファ形式によって書き込む第２記憶ステップとを含む。
【００１７】
本発明の第３の態様における記憶プログラムは、種類の異なる複数のセンサのサンプリングデータを記憶装置に記憶する記憶プログラムであって、記憶装置の第１記憶領域を複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域として利用して、複数のセンサのサンプリングデータを複数のセンサ領域のそれぞれにリングバッファ形式によって書き込む第１記憶ステップと、記憶装置の第２記憶領域を複数のセンサのうちサンプリング周期が最長のセンサの一周期分のサンプリングデータと、一周期分のサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを複数のセンサ領域から読み出して一纏めにしたデータセットを書き込むための記憶領域として利用して、所定のタイミングでデータセットを生成して第２記憶領域にリングバッファ形式によって書き込む第２記憶ステップとをコンピュータに実行させる。
【００１８】
このような記憶方法、記憶プラグラムの態様であっても、記憶装置と同様の効果を期待できる。
【発明の効果】
【００１９】
本発明により、小規模なハードウェア構成により種類の異なる複数のセンサの出力を効率的にログとして取得することができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態にかかる移動ロボットの外観斜視図である。
【図２】移動ロボットの制御ブロック図である。
【図３】第１メモリに設定されるリングバッファについて説明する概念図である。
【図４】データセットの生成を説明する概念図である。
【図５】第２メモリに設定されるリングバッファについて説明する概念図である。
【図６】ログ情報として残存させるデータセットの移動を説明する概念図である。
【図７】記憶装置の制御フローを示すフロー図である。
【図８】他の実施例における記憶装置のブロック図である。
【図９】ログ情報として残存させるデータセットの移動を説明する概念図である。
【図１０】移動ロボットの制御フローを示すフロー図である。
【発明を実施するための形態】
【００２１】
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【００２２】
図１は、本実施形態にかかる記憶装置を搭載する移動ロボット１０の外観斜視図である。移動ロボット１０は、大きく分けて台車部１１０と把持部１２０によって構成される。
【００２３】
台車部１１０は、主に、ベース１１１と、ベース１１１に取り付けられた２つの駆動輪１１２と１つのキャスター１１３とから構成される。２つの駆動輪１１２は、ベース１１１の対向する側方のそれぞれに、回転軸芯が一致するように配設されている。それぞれの駆動輪１１２は、不図示のモータによって独立して回転駆動される。キャスター１１３は、従動輪であり、ベース１１１から鉛直方向に延びる旋回軸が車輪の回転軸から離れて車輪を軸支するように設けられており、台車部１１０の移動方向に倣うように追従する。移動ロボット１０は、例えば、２つの駆動輪１１２が同じ方向に同じ回転速度で回転されれば直進し、逆方向に同じ回転速度で回転されれば重心を通る鉛直軸周りに旋回する。
【００２４】
台車部１１０には、障害物検知や周辺環境認識のための各種センサが設けられている。これらのセンサとして、周囲の画像を取得するカメラ２４０、移動時の加速度を検出する加速度センサ２５０、障害物までの距離を検出する距離センサ２９０が設けられている。また、台車部１１０は、障害物に衝突した場合の衝撃を緩和するためのバンパ１１６を備え、バンパ１１６には、障害物との接触を検出する接触センサ２３０が設けられている。これらのセンサは、それぞれ必要に応じて複数個が配置されている。
【００２５】
台車部１１０には、コントロールユニット１９０が設けられている。コントロールユニット１９０は、後述するシステム制御部と記憶装置を含む。また、上述のそれぞれのセンサから出力されるサンプリングデータは、コントロールユニット１９０へ送信される。
【００２６】
把持部１２０は、主に、複数のアーム１２１、１２２、１２３と、ハンド１２４とから構成される。アーム１２１は、鉛直軸周りに回転自在に、一端がベース１１１に軸支されている。アーム１２２は、水平軸周りに回転自在に、一端がアーム１２１の他端に軸支されている。アーム１２３は、アーム１２２の他端で放射方向に回転自在に、一端がアーム１２２の他端に軸支されている。ハンド１２４は、アーム１２３の伸延方向と平行な中心軸周りに回転自在に、アーム１２３の他端に軸支されている。
【００２７】
ハンド１２４は、移動ロボット１０の作業対象物としての搬送物を把持できるように、把持機構を備える。移動ロボット１０は、搬送物を搬送するに限らず、様々な目的に適用することができる。把持部１２０は、移動ロボット１０の目的に合わせて様々な作業対象物を把持できる。例えば、レバーを把持して回転し、扉を開く作業を行っても良い。
【００２８】
台車部１１０と同様に、把持部１２０にも、作業対象物の把握や姿勢検知のための各種センサが設けられている。これらのセンサとして、アーム１２３の傾きを検出するジャイロセンサ２６０、ハンド１２４の把持圧を検出する圧力センサ２７０、アーム１２２の回転量を検出するロータリエンコーダ２８０が設けられている。同様のセンサは、必要に応じて各部位に設けられている。また、台車部１１０に設けられたセンサと同様に、それぞれのセンサから出力されるサンプリングデータは、コントロールユニット１９０へ送信される。
【００２９】
図２は、移動ロボット１０の制御ブロック図である。コントロールユニット１９０は、主に、移動ロボット１０の全体を統括的に制御するシステム制御部２００、記憶装置３０、およびバスライン２０１を備える。バスライン２０１は、システム制御部２００、記憶装置３０、各種センサおよび各種ユニットと接続されており、サンプリングデータや指示信号の通信路としての機能を担う。
【００３０】
システム制御部２００は、例えばＣＰＵであり、駆動輪ユニット２１０、アームユニット２２０、各センサ、警告部２０２、および記憶装置３０との間で指令やサンプリングデータ等の情報を送受信することにより、移動ロボット１０の制御に関わる様々な演算を実行する。駆動輪ユニット２１０は、駆動輪１１２を駆動するための駆動回路やモータを含み、台車部１１０に設けられている。システム制御部２００は、駆動輪ユニット２１０へ駆動信号を送ることにより、駆動輪１１２の回転制御を実行する。アームユニット２２０は、アーム１２１、１２２、１２３およびハンド１２４を駆動するための駆動回路やモータを含み、把持部１２０に設けられている。システム制御部２００は、アームユニット２２０へ駆動信号を送ることにより、把持部１２０の姿勢制御や把持制御を実行する。
【００３１】
接触センサ２３０は、例えば押圧接触により導通するスイッチである。カメラ２４０は、例えばＣＭＯＳイメージセンサ、結像レンズおよび画像信号をフレーム画像データに変換する画像処理ユニットを備える。カメラ２４０は、例えば台車部１１０の四隅にひとつずつ設けられる。ハンド１２４に設けて把持対象物を観察できるようにしても良い。加速度センサ２５０は、移動ロボット１０の加速度を検出するセンサである。把持対象物を安全に把持するためにハンド１２４に設けても良い。
【００３２】
ジャイロセンサ２６０は、アーム１２１、１２２、１２３に設ける他に、台車部１１０の姿勢を把握するために、ベース１１１に設けても良い。圧力センサ２７０は、例えば歪みゲージによって構成される。ロータリエンコーダ２８０は、アーム１２１、１２２、１２３の相対回転量を検出する。ロータリエンコーダ２８０は、把持部１２０に設けられるだけでなく、駆動輪１１２の回転量検出用に、台車部１１０にも設けられる。距離センサ２９０は、例えばレーザレンジファインダである。
【００３３】
これらのセンサからそれぞれ出力されるサンプリングデータは、それぞれのセンサのサンプリング周期に同期して、バスライン２０１に出力される。すなわち、各々のセンサは、自身のサンプリング周期に従って、サンプリングデータをバスライン２０１へ逐次出力する。例えば、カメラ２４０は、フレームレートが３０ｆｐｓに設定されていれば、一秒間に３０フレームの画像データをバスライン２０１へ出力する。
【００３４】
警告部２０２は、例えばスピーカやＬＥＤを含み、システム制御部２００が警告信号を出力した場合に、異常が発生したことを音や光によりユーザへ告知する。警告部２０２は、無線ＬＡＮ等の通信ユニットを含んで、ユーザの利用端末へ警告を送信する構成であっても良い。
【００３５】
記憶装置３０は、主に、メモリ制御部３００、第１メモリ３１０および第２メモリ３２０を備える。本実施例において第１メモリ３１０と第２メモリ３２０は、それぞれ別のメモリチップとして構成され、例えば、第１メモリ３１０は揮発性メモリであるＳＲＡＭであり、第２メモリは不揮発性メモリであるＦＬＡＳＨメモリである。ＳＲＡＭである第１メモリ３１０のデータ書込可能速度は、ＦＬＡＳＨメモリである第２メモリ３２０のデータ書込可能速度よりも早い。
【００３６】
メモリ制御部３００は、第１メモリ３１０と第２メモリ３２０の読み書きを制御する。具体的には後述するが、メモリ制御部３００は、バスライン２０１からそれぞれのセンサのサンプリングデータを逐次受け取り、第１メモリ３１０へ書き込む。また、システム制御部２００からの指令に従って、第１メモリ３１０から第２メモリ３２０へデータを移す。なお、第２メモリ３２０の一部の記憶領域、または不図示の不揮発性の記憶領域には、移動ロボット１０や記憶装置３０を制御するための制御プログラム、制御に用いられる様々なパラメータ値、関数、ルックアップテーブル等が記憶されている。システム制御部２００やメモリ制御部３００は、これらのプログラムを読み込んで、それぞれの制御を実行する。
【００３７】
図３は、第１メモリ３１０に設定されるリングバッファについて説明する概念図である。第１メモリ３１０は、移動ロボット１０に設けられた複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域を含む第１記憶領域としての機能を担う。より具体的には、カメラ２４０のサンプリングデータを逐次記憶するための領域であるリングバッファ３１４、加速度センサ２５０のサンプリングデータを逐次記憶するための領域であるリングバッファ３１５、ジャイロセンサ２６０のサンプリングデータを逐次記憶するための領域であるリングバッファ３１６、圧力センサ２７０のサンプリングデータを逐次記憶するための領域であるリングバッファ３１７、ロータリエンコーダ２８０のサンプリングデータを逐次記憶するための領域であるリングバッファ３１８、距離センサ２９０のサンプリングデータを逐次記憶するための領域であるリングバッファ３１９がそれぞれセンサ領域として設定されている。
【００３８】
メモリ制御部３００は、最も古いサンプリングデータに最新のサンプリングデータを上書きして複数周期分のサンプリングデータを保持し続けるリングバッファ形式によって、それぞれのセンサのサンプリングデータをそれぞれのリングバッファに書き込む。なお、図ではひとつの種類のセンサに対してひとつのセンサ領域を示すが、同一種類のセンサが２つ以上設けられている場合は、設けられている数に合わせてセンサ領域が増設されている。
【００３９】
それぞれのリングバッファ３１４〜３１９は、上述のように、複数周期分のサンプリングデータを書き込む記憶容量を有する。例えば、カメラ２４０は、１周期で１フレームの画像データを出力するが、カメラ２４０のためのリングバッファ３１４は、全体として４フレーム分の画像データを書き込む記憶容量を有する。図は、１フレームあたりの記憶容量を概念的に一つの矩形の面積で表し、リングバッファ３１４が４つのメモリ空間Ａ１、Ａ２、Ａ３、Ａ４から成ることを示している。本実施形態にかかるセンサ群においては、１サンプルあたりのデータ容量は、カメラ２４０が大きく、加速度センサ２５０やジャイロセンサ２６０が小さいことがわかる。
【００４０】
また、各サンプリングデータが記憶されるメモリ空間である矩形の横幅は、１サンプルに要する時間としてのサンプリング周期を示している。すなわち、本実施形態にかかるセンサ群においては、距離センサ２９０のサンプリング周期が最長であり、加速度センサ２５０やジャイロセンサ２６０のサンプリング周期は、比較的短いことがわかる。本実施形態においては、サンプリング周期が最長である距離センサ２９０のサンプリング周期を基準１周期と定める。
【００４１】
接触センサ２３０は、刻々と変化する観察対象の物理量を数値として取得する類のセンサではないが、メモリ制御部３００は、例えば接触状態を１、非接触状態を０として一定周期でいずれかの値をサンプリングデータとして出力させることで、他のセンサと同様に扱うことができる。本実施形態においては、オンオフで出力するセンサに対しても、観察対象の物理量を数値として取得するセンサと同様に、リングバッファを設定する。したがって、第１メモリ３１０には、接触センサ２３０のサンプリングデータを逐次記憶するための領域であるリングバッファ３１３もセンサ領域として設定されている。
【００４２】
本実施形態においては、距離センサ２９０のリングバッファ３１９に割り当てる記憶容量を、２周期分のサンプリングデータを記憶するために必要な容量とする。他のセンサのリングバッファ３１３〜３１８のそれぞれに割り当てる記憶容量を、基準１周期の１倍以上２倍以下の期間のサンプリングデータを記憶するために必要な容量とする。例えば、カメラ２４０のリングバッファ３１４は、基準１周期に対して約１．５倍の期間のサンプリングデータを記憶する容量を有する。このように構成すれば、いずれのリングバッファにおいても、一つのサンプリングデータを読み込む読込作業に並行して、他のサンプリングデータを書き込む書込作業を行うことが可能であり、第１メモリ３１０のメモリ容量を大きく抑制することができる。
【００４３】
本実施形態においては、距離センサ２９０の基準１周期分のサンプリングデータと、このサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを、リングバッファ３１３〜３１９のそれぞれから読み出して一纏めにしたデータセット５００を所定のタイミングで生成する。図４は、データセット５００の生成を説明する概念図である。
【００４４】
メモリ制御部３００は、サンプリング周期が最長である距離センサ２９０のサンプリング周期を基準としてデータセット５００を生成する。例えば、図示するように、距離センサ２９０のリングバッファ３１９は、２周期分のメモリ空間Ｆ１、Ｆ２から構成されているとする。このとき、Ｆ２のサンプリングデータの取得中にデータセットの生成指示が発生したとすると（図中の白抜き矢印のタイミング）、Ｆ２のサンプリングデータに対応する基準１周期は、黒塗り矢印のＳが始期であり、同じく黒塗り矢印のＥが周期となる。
【００４５】
このＦ２のサンプリングデータが生成された期間に他のセンサで生成されたサンプリングデータが格納されたメモリ領域は、一例として、各リングバッファに示すＳとＥで挟まれた斜線の領域となる。例えば、カメラ２４０のリングバッファ３１４の場合、対応するメモリ領域は、メモリ空間Ａ２、Ａ３、Ａ４となる。ただし、各センサのサンプリング周期は互いに異なる（同じ場合もある）ので、斜線の領域は生成指示が発生するタイミングによって動的に変化する。
【００４６】
メモリ制御部３００は、それぞれのリングバッファにおいて斜線の領域のサンプリングデータを一纏めにしてデータセット５００を生成する。すなわち、データセット５００は、カメラ２４０のリングバッファ３１４から取り出したサンプリングデータ５１４、加速度センサ２５０のリングバッファ３１５から取り出したサンプリングデータ５１５、ジャイロセンサ２６０のリングバッファ３１６から取り出したサンプリングデータ５１６、圧力センサ２７０のリングバッファ３１７から取り出したサンプリングデータ５１７、ロータリエンコーダ２８０のリングバッファ３１８から取り出したサンプリングデータ５１８、距離センサ２９０のリングバッファ３１９から取り出したサンプリングデータ５１９、接触センサ２３０のリングバッファ３１３から取り出したサンプリングデータ５１３を含む。
【００４７】
また、データセット５００は、タグデータ５０１と、ダイアグデータ５０２を含む。タグデータは、データセット５００の属性に関する種々の情報を記述したものである。タグデータは、例えば、データセットが生成された時間情報を含む。時間情報は、生成指示が発せられた時間であったり、サンプリングデータごとの始期Ｓの時間であったりすることができる。また、タグデータは、包含する各サンプリングデータが、移動ロボット１０のどの位置に設置されたセンサのサンプリングデータであるかを示すＩＤ情報を含む。
【００４８】
ダイアグデータ５０２は、制御回路に予め定められた複数箇所の電圧値が正常か異常かを示すフラグを対応する期間に渡って記録したものである。このようなタグデータ５０１やダイアグデータ５０２が含まれていれば、データセット５００を後の制御に利用したり、事後的に移動ロボット１０の動作解析に利用したりする場合に、時間管理や状況把握の点で効果を発揮する。
【００４９】
図５は、第２メモリ３２０に設定されるリングバッファ３２１について説明する概念図である。リングバッファ３２１は、データセット５００を書き込むための第２記憶領域である。リングバッファ３２１は、初期段階でｎ個のメモリ空間Ｘ１〜Ｘｎから成りｎ個のデータセット５００を記憶することができる。メモリ制御部３００は、最も古いデータセットに最新のデータセットを上書きして複数個（初期段階でｎ個）のデータセットを保持し続けるリングバッファ形式によって、データセット５００をリングバッファ３２１に書き込む。
【００５０】
図６は、ログ情報として残存させるデータセットの移動を説明する概念図である。ログ情報として残存させるデータセットは、リングバッファ３２１である第２記憶領域から、リセット信号を受信するまでは上書きされない第３記憶領域へ移動される。本実施例においては、第２メモリ３２０において第２記憶領域として利用していたリングバッファ３２１の一部を第３記憶領域として利用する不揮発バッファ３２２へ逐次変更することにより、第３記憶領域を確保する。図６で示すメモリ領域は、１０個のメモリ空間Ｘ１〜Ｘ１０から構成されており、データセットを１０個記憶できる記憶容量を有するものとして説明する。また、ここでは、メモリ制御部３００が保存信号としての保存トリガを受信したときに、第３記憶領域へ移動するデータセットの個数を３（Ｎ＝３）とする。保存トリガを受信したときに、第２記憶領域から第３記憶領域へ移動するデータセットの個数は、予め定められている。
【００５１】
図６（ａ）は、初期段階として、すべてのメモリ空間がリングバッファ３１４として利用されている様子を示す。例えば、最新のデータセットがＸ５に記憶されているときに保存トリガを受信したら、メモリ制御部３００は、Ｘ５と、Ｘ５から順に遡ったＸ４、Ｘ３の３個のデータセットを第３記憶領域へ移動する対象とする。
【００５２】
図６（ｂ）は、データセット３個分のメモリ空間を不揮発バッファ３２２として確保する様子を示す。メモリ制御部３００は、リングバッファ３２１として利用していた下位３個のメモリ空間Ｘ８〜Ｘ１０を、第３記憶領域としての不揮発バッファ３２２へ変更する。すなわち、リングバッファ３２１の記憶領域は、７個のメモリ空間Ｘ１〜Ｘ７に変更される。そして、図６（ａ）で移動の対象と定めたＸ３〜Ｘ５のデータセットを、１回目の保存トリガによって移動したデータセットＤ１−１、Ｄ１−２、Ｄ１−３として、Ｘ８〜Ｘ１０へコピーする。この操作によりデータセットＤ１−１、Ｄ１−２、Ｄ１−３は、リセット信号を受信するまでは上書きされることなく保存される。また、第２メモリ３２０は不揮発性メモリであるので、記憶装置３０に電力が供給されていない状態でも、これらのデータセットは残存する。
【００５３】
図６（ｃ）は、図６（ｂ）の操作後にメモリ空間Ｘ１〜Ｘ７がリングバッファ３１４として利用されている様子を示す。例えば、最新のデータセットがＸ２に記憶されているときに保存トリガを受信したら、メモリ制御部３００は、Ｘ２と、Ｘ２から順に遡ったＸ１、Ｘ７の３個のデータセットを第３記憶領域へ移動する対象とする。
【００５４】
図６（ｄ）は、図６（ｃ）の状態から更にデータセット３個分のメモリ空間を不揮発バッファ３２２として確保する様子を示す。メモリ制御部３００は、リングバッファ３２１として利用していた下位３個のメモリ空間Ｘ５〜Ｘ７を、第３記憶領域としての不揮発バッファ３２２へ変更する。すなわち、リングバッファ３２１の記憶領域は、４個のメモリ空間Ｘ１〜Ｘ４に変更される。そして、図６（ｃ）で移動の対象と定めたＸ２、Ｘ１、Ｘ７のデータセットを、２回目の保存トリガによって移動したデータセットＤ２−１、Ｄ２−２、Ｄ２−３として、Ｘ５〜Ｘ７へコピーする。この操作によりデータセットＤ２−１、Ｄ２−２、Ｄ２−３は、リセット信号を受信するまでは上書きされることなく保存される。
【００５５】
このように、保存トリガを受信するたびにリングバッファ３２１として利用していた領域の一部を不揮発バッファ３２２へ変更する場合に、リングバッファ３２１の記憶容量がＮ個分のデータセットを記憶するために必要な容量を下回ったら、メモリ制御部３００は、警告信号を出力する。具体的には、メモリ制御部３００は、システム制御部２００へ警告信号を送信し、システム制御部２００は、警告信号を受信したら警告部２０２に音や光を発生させて、ユーザにこれ以上ログを取得できなくなることを告知する。ユーザは、ログが取得できなくなることを察知して、例えば移動ロボット１０を停止させたり、安全モードに移行させたりすることができる。
【００５６】
なお、メモリ制御部３００が保存トリガを受信したときに、第３記憶領域へ移動するデータセットの個数Ｎは３個でなくても良い。ログとして利用する場合に、必要な個数Ｎを事前に調整して定めれば良い。また、個数Ｎを移動ロボット１０の状況に応じて変更しても良い。この場合、保存トリガとしての保存信号に、個数Ｎを指定する情報を含めても良い。メモリ制御部３００は、その保存トリガにより、指定された個数Ｎ個のデータセットを第３記憶領域へ移動する。
【００５７】
また、保存トリガを受信した時の最新のデータセットを移動するデータセットの基準とせず、他のデータセットを基準として移動するデータセットの対象を変更しても良い。保存トリガは、後述するように、移動ロボット１０に予め定められたイベントが発生した時に生成されるが、ログとして必要な情報は、必ずしもイベントが発生した時点のものではなく、イベントの性質やセンサ出力の取得タイミングによって異なる。このような場合、保存トリガとしての保存信号に、基準とするデータセットを指定する情報を含めても良い。例えば、遡るデータセットの個数Ｃを指定すれば、メモリ制御部３００は、最新のデータセットから数えてＣ個分前のデータセットを基準として、Ｎ個のデータセットを第３記憶領域へ移動する。このように、個数Ｃを指定すれば、ログの利用範囲を拡げたり、信頼精度を向上させたりすることができる。
【００５８】
図７は、記憶装置３０の制御フローを示すフロー図である。フローは、移動ロボット１０の電源がオンにされ、各センサのサンプリングが始まった時点から開始する。
【００５９】
メモリ制御部３００は、ステップＳ１０１で、サンプリングデータの取得と取得したサンプリングデータの第１メモリ３１０への書き込みを開始する。メモリ制御部３００は、それぞれのセンサからのサンプリングデータを、上述のようにそれぞれのセンサのサンプリング周期に応じてバスライン２０１を介して逐次取得する。そして、それぞれのサンプリングデータを対応するそれぞれのリングバッファ３１３〜３１９に、リングバッファ形式により書き込む。これらの作業は、ステップＳ１０９に到達するまで連続的に、センサごとに並列して実行される。
【００６０】
メモリ制御部３００は、ステップＳ１０２で、データセット５００を生成する生成指示を受信したか否かを確認する。受信していなければ、ステップＳ１０８へ進む。受信していればステップＳ１０３へ進む。なお、本実施例において生成指示は、システム制御部２００が発信する。システム制御部２００は、例えばクロック信号に同期して生成指示を定期的に発信する。システム制御部２００は、生成指示を発信する周期を変更することもできる。例えば、移動ロボット１０が所定速度以上の高速で移動している場合には短い周期で生成指示を発信し、所定速度未満の低速で移動している場合には長い周期で生成指示を発信する。
【００６１】
また、メモリ制御部３００側で生成指示信号を周期的に発生させ、システム制御部２００は、その周期を変更したい場合に指示信号をメモリ制御部３００へ送信するように構成しても良い。メモリ制御部３００は、指示信号に応じて、生成指示信号を発生させる周期を変更する。このように構成しても、移動ロボット１０の状況に応じてデータセット５００を生成できるので、メモリ領域を有効に利用することができる。
【００６２】
メモリ制御部３００は、ステップＳ１０３で、データセット５００の生成し、第２メモリ３２０の第２記憶領域としてのリングバッファ３２１に、リングバッファ形式によって書き込む。具体的には図４を用いて説明したようにデータセット５００を生成する。また、図５、６を用いて説明したようにデータセット５００を書き込む。そしてステップＳ１０４へ進み、データセット５００を不揮発領域である第３記憶領域へ移動させる指示である保存トリガを受信したか否かを確認する。受信していなければ、ステップＳ１０８へ進む。受信していればステップＳ１０５へ進む。
【００６３】
メモリ制御部３００は、ステップＳ１０５で、対象となるデータセットを第３記憶領域である不揮発バッファ３２２へコピーすることにより移動させる。具体的には図６を用いて説明したように第３記憶領域を逐次増設する。そしてステップＳ１０６へ進み、メモリ制御部３００は、Ｎ個分のデータセットを記憶するメモリ容量が第２記憶領域としてのリングバッファ３２１に残っているか否かを判断する。残っていれば、ステップＳ１０８へ進む。残っていなければステップＳ１０７へ進む。
【００６４】
メモリ制御部３００は、ステップＳ１０７で、警告信号をシステム制御部２００へ送信する。システム制御部２００は、警告部２０２を介して、ユーザにログ取得の終了を告知する。その後、ステップＳ１０９へ進み、メモリ制御部３００は、ステップＳ１０１から継続して実行していたサンプリングデータの取得および書き込みを終了して、一連の処理を終える。
【００６５】
ステップＳ１０２またはステップＳ１０６からステップＳ１０８へ進んだ場合は、メモリ制御部３００は、ステップＳ１０８で、システム制御部２００を介して移動ロボット１０の電源オフの指示があったか否かを確認する。指示がなければ、ステップＳ１０２へ戻る。指示があれば、ステップＳ１０９へ進む。ステップＳ１０９へ進んだ場合は、上述のようにサンプリングデータの取得および書き込みを終了して、一連の処理を終える。
【００６６】
次に、本実施形態における他の実施例について説明する。なお、特に言及しない装置構成や処理手順等は上述の実施例と同様であるので、その説明を省略する。
【００６７】
図８は、他の実施例における記憶装置３１のブロック図である。記憶装置３１は、上述の記憶装置３０と異なり、第３メモリ３３０を追加的に備える。第３メモリ３３０は、例えば不揮発性メモリであるＦＬＡＳＨメモリである。第３メモリ３３０は、第３記憶領域としての不揮発バッファ３２２を含む。したがって、第２メモリ３２０には、不揮発バッファ３２２としての記憶領域を設けず、リングバッファ３２１の専用領域として利用する。
【００６８】
このように構成する場合は、第２メモリ３２０も揮発性メモリであって良く、第１メモリ３１０としての第１記憶領域と第２メモリ３２０としての第２記憶領域を、一つのメモリチップ内に設けても良い。このように一つのメモリチップで構成すれば、メモリの実装が容易となり、実装面積も小さくすることができる。
【００６９】
図９は、記憶装置３１による、ログ情報として残存させるデータセットの移動を説明する概念図である。図９（ａ）は、第２メモリ３２０におけるリングバッファ３２１の様子を示す。リングバッファ３２１は、第２記憶領域としてｎ個分のデータセットを記憶するメモリ空間Ｘ１〜Ｘｎが確保されており、保存トリガが発生しても、減少することがない。例えば、Ｘ４で保存トリガが発生すると、Ｎ＝３の場合にＸ２〜Ｘ４に記憶された３個のデータセットが移動の対象となるが、Ｘｎ−１〜Ｘｎのメモリ空間は、リングバッファ３２１のままである。
【００７０】
図９（ｂ）は、第３メモリ３３０における不揮発バッファ３２２の様子を示す。上述の実施例のように、移動したデータセットを順に記憶させても良いが、専用の不揮発バッファ３２２を確保できる場合は、より柔軟にメモリ空間を利用できる。図の例では、移動ロボット１０に発生し得るイベントごとに、不揮発バッファ３２２にフォルダを設けている。例えば、移動ロボット１０の故障時に生成されたデータセットを格納するためのフォルダ３３１、衝撃発生時に生成されたデータセットを格納するためのフォルダ３３２、障害物に接近したときに生成されたデータセットを格納するためのフォルダ３３３などが設けられる。
【００７１】
メモリ制御部３００は、イベントに応じて発生する保存トリガを受信すると、対応するフォルダ内に、対象となるデータセットをファイル３５１としてファイル形式に纏めて格納する。このように纏めて格納されていれば、データセット５００を後の制御に利用したり、事後的に移動ロボット１０の動作解析に利用したりする場合の利便性が向上する。
【００７２】
次に、移動ロボット１０の動作時におけるシステム制御部２００の制御フローについて説明する。図１０は、移動ロボット１０の制御フローを示すフロー図である。システム制御部２００は、与えられたタスクに応じて、駆動輪１１２を駆動して移動したり、把持部１２０を駆動して搬送物を搬送したりするが、ここでは、記憶装置３０に関する処理を抽出して説明する。なお、移動ロボット１０が搭載する記憶装置は記憶装置３１であってもおよそ同様であるが、ここでは記憶装置３０を搭載するものとして説明する。また、図７を用いて説明したメモリ制御部３００の処理フローは、図１０の処理フローと互いに関連し合いながら並行して実行される。
【００７３】
フローは、移動ロボット１０の電源がオンにされ、各センサのサンプリングが始まった時点から開始する。システム制御部２００は、ステップＳ２０１で移動ロボット１０が移動中か否かを確認する。移動中であれば、ステップＳ２０２へ進み、一度の保存トリガでリングバッファ３２１から不揮発バッファ３２２へコピーするデータセット５００の個数Ｎを、移動時用として予め定められた個数Ｎｍに設定する。また、最新のデータセットから数えていくつ遡ったデータセットを基準のデータセットとするかを表す個数Ｃを、移動時用として予め定められた個数Ｃｍに設定する。Ｎｍ、Ｃｍは、移動時のログ解析等に最適な個数として事前に実験等により決定される。
【００７４】
システム制御部２００は、ステップＳ２０３へ進み、イベントが発生したか否かを判断する。イベントは、例えば「故障」「衝撃」「接近」等である。特に移動ロボット１０のトラブルとして事後にログの解析が必要と想定される事象が、イベントの対象となり得る。「故障」であれば、例えば、システム制御部２００から駆動輪ユニット２１０へ駆動信号を送信しているにも関わらず、加速度センサ２５０の出力が０のままである場合に「故障」のイベントが発生したと判断する。すなわち、システム制御部２００は、送信している駆動信号と関連するセンサ出力との間に閾値以上の矛盾が発生したり、周辺環境との関係から移動ロボット１０が安全でない状態にあると判断されるセンサ出力を取得したりした場合に、イベントが発生したと判断する。特に、移動ロボット１０の移動時においては、段差にさしかかったなど、移動に関する予め定められた状況をセンサのいずれかが検知した場合に、イベントが発生したと判断しても良い。段差に差しかかった場合には、ロボットが衝撃を受ける場合や、予定していたルートとは異なるルートを選択するなど、ログを解析する必要性が生じやすいためである。
【００７５】
システム制御部２００は、イベントが発生したと判断したら、ステップＳ２０４で保存トリガをメモリ制御部３００へ送信してステップＳ２０５へ進み、イベントが発生していないと判断したら、ステップＳ２０４をスキップしてステップＳ２０５へ進む。なお、ステップＳ２０４で保存トリガを送信する場合には、Ｎｍ、Ｃｍの情報を保存トリガに付随させても良い。
【００７６】
システム制御部２００は、ステップＳ２０５で、移動ロボット１０が停止したか否かを確認する。停止していないと判断したら、ステップＳ２０３へ戻る。停止したと判断したら、ステップＳ２０６へ進み、電源オフの指示があったか否かを確認する。電源オフの指示がなければ、ステップＳ２０１へ戻り、電源オフの指示があれば、一連の処理を終了する。
【００７７】
システム制御部２００は、ステップＳ２０１で移動中でないと確認したら、ステップＳ２０７へ進み、アーム１２１〜１２３、ハンド１２４が稼働中か否かを確認する。稼働中であれば、ステップＳ２０８へ進み、一度の保存トリガでリングバッファ３２１から不揮発バッファ３２２へコピーするデータセット５００の個数Ｎを、アーム等の稼働時用として予め定められた個数Ｎａに設定する。また、最新のデータセットから数えていくつ遡ったデータセットを基準のデータセットとするかを表す個数Ｃを、アーム等の稼働時用として予め定められた個数Ｃａに設定する。Ｎａ、Ｃａは、アーム等の稼働時のログ解析等に最適な個数として事前に実験等により決定される。
【００７８】
システム制御部２００は、ステップＳ２０９へ進み、イベントが発生したか否かを判断する。判断するイベントは、ステップＳ２０３のイベントと同様である。特に、アーム等の稼働時においては、アーム等の稼働に関する予め定められた状況をセンサのいずれかが検知した場合に、イベントが発生したと判断しても良い。
【００７９】
システム制御部２００は、イベントが発生したと判断したら、ステップＳ２１０で保存トリガをメモリ制御部３００へ送信してステップＳ２１１へ進み、イベントが発生していないと判断したら、ステップＳ２０９をスキップしてステップＳ２１１へ進む。なお、ステップＳ２１０で保存トリガを送信する場合には、Ｎａ、Ｃａの情報を保存トリガに付随させても良い。
【００８０】
システム制御部２００は、ステップＳ２１１で、アーム等の稼働を停止したか否かを確認する。停止していないと判断したら、ステップＳ２０９へ戻る。停止したと判断したら、ステップＳ２０６へ進み、電源オフの指示があったか否かを確認する。電源オフの指示がなければ、ステップＳ２０１へ戻り、電源オフの指示があれば、一連の処理を終了する。
【００８１】
システム制御部２００は、ステップＳ２０７でアーム等が稼働中でないと確認したらステップＳ２１２へ進み、一度の保存トリガでリングバッファ３２１から不揮発バッファ３２２へコピーするデータセット５００の個数Ｎを、動作停止時用として予め定められた個数Ｎｓに設定する。また、最新のデータセットから数えていくつ遡ったデータセットを基準のデータセットとするかを表す個数Ｃを、動作停止時用として予め定められた個数Ｃｓに設定する。Ｎｓ、Ｃｓは、動作停止時のログ解析等に最適な個数として事前に実験等により決定される。
【００８２】
システム制御部２００は、ステップＳ２１３へ進み、イベントが発生したか否かを判断する。判断するイベントは、ステップＳ２０３のイベントと同様である。特に、移動ロボットの動作停止時においては、動作停止に関する予め定められた状況をセンサのいずれかが検知した場合に、イベントが発生したと判断しても良い。
【００８３】
システム制御部２００は、イベントが発生したと判断したら、ステップＳ２１４で保存トリガをメモリ制御部３００へ送信してステップＳ２０６へ進み、イベントが発生していないと判断したら、ステップＳ２１４をスキップしてステップＳ２０６へ進む。なお、ステップＳ２１４で保存トリガを送信する場合には、Ｎｓ、Ｃｓの情報を保存トリガに付随させても良い。
【００８４】
システム制御部２００は、ステップＳ２０６へ進んだら、電源オフの指示があったか否かを確認する。電源オフの指示がなければ、ステップＳ２０１へ戻り、電源オフの指示があれば、一連の処理を終了する。なお、上述のように、システム制御部２００は、メモリ制御部３００に対して、データセットを生成する生成指示を適宜与えても良い。
【００８５】
以上説明した本実施形態では、記憶装置３０、３１は、移動ロボット１０に搭載して利用する場合を説明したが、上述した構成を有する記憶装置３０、３１は、移動ロボット以外の装置に搭載して利用することもできる。超音波等の音を用いたセンサ、レーザセンサ等の距離を取得するセンサ、カメラ等の複数のセンサを用いて自律して移動する自動運転車両など、種類の異なる複数のセンサを備える装置であれば、例えば事後のログ解析用の装置として記憶装置３０、３１を搭載すると良い。
【符号の説明】
【００８６】
１０  移動ロボット、３０、３１  記憶装置、１１０  台車部、１１１  ベース、１１２  駆動輪、１１３  キャスター、１１６  バンパ、１２０  把持部、１２１、１２２、１２３  アーム、１２４  ハンド、１９０  コントロールユニット、２００  システム制御部、２０１  バスライン、２０２  警告部、２１０  駆動輪ユニット、２２０  アームユニット、２３０  接触センサ、２４０  カメラ、２５０  加速度センサ、２６０  ジャイロセンサ、２７０  圧力センサ、２８０  ロータリエンコーダ、２９０  距離センサ、３００  メモリ制御部、３１０  第１メモリ、３１３、３１４、３１５、３１６、３１７、３１８、３１９  リングバッファ、３２０  第２メモリ、３２１  リングバッファ、３２２  不揮発バッファ、３３０  第３メモリ、３３１、３３２、３３３  フォルダ、３５１  ファイル、５００  データセット、５０１  タグデータ、５０２  ダイアグデータ、５１３、５１４、５１５、５１６、５１７、５１８、５１９  サンプリングデータ
【図１】
2018124818.tif 000003
【図２】
2018124818.tif 000004
【図３】
2018124818.tif 000005
【図４】
2018124818.tif 000006
【図５】
2018124818.tif 000007
【図６】
2018124818.tif 000008
【図７】
2018124818.tif 000009
【図８】
2018124818.tif 000010
【図９】
2018124818.tif 000011
【図１０】
2018124818.tif 000012