JP6652079B2 - 記憶装置、移動ロボット、記憶方法及び記憶プログラム - Google Patents

記憶装置、移動ロボット、記憶方法及び記憶プログラム Download PDF

Info

Publication number
JP6652079B2
JP6652079B2 JP2017016761A JP2017016761A JP6652079B2 JP 6652079 B2 JP6652079 B2 JP 6652079B2 JP 2017016761 A JP2017016761 A JP 2017016761A JP 2017016761 A JP2017016761 A JP 2017016761A JP 6652079 B2 JP6652079 B2 JP 6652079B2
Authority
JP
Japan
Prior art keywords
storage
data
storage area
sensors
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017016761A
Other languages
English (en)
Other versions
JP2018124818A (ja
Inventor
貴裕 中山
貴裕 中山
一博 美馬
一博 美馬
浩司 尾藤
浩司 尾藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2017016761A priority Critical patent/JP6652079B2/ja
Priority to US15/841,748 priority patent/US11020855B2/en
Publication of JP2018124818A publication Critical patent/JP2018124818A/ja
Application granted granted Critical
Publication of JP6652079B2 publication Critical patent/JP6652079B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D5/00Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable
    • G01D5/26Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable characterised by optical transfer means, i.e. using infrared, visible, or ultraviolet light
    • G01D5/32Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable characterised by optical transfer means, i.e. using infrared, visible, or ultraviolet light with attenuation or whole or partial obturation of beams of light
    • G01D5/34Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable characterised by optical transfer means, i.e. using infrared, visible, or ultraviolet light with attenuation or whole or partial obturation of beams of light the beams of light being detected by photocells
    • G01D5/347Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable characterised by optical transfer means, i.e. using infrared, visible, or ultraviolet light with attenuation or whole or partial obturation of beams of light the beams of light being detected by photocells using displacement encoding scales
    • G01D5/3473Circular or rotary encoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D9/00Recording measured values
    • G01D9/02Producing one or more recordings of the values of a single variable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Manipulator (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

本発明は、記憶装置、移動ロボット、記憶方法及び記憶プログラムに関する。
例えば自律移動が可能な移動ロボットには多種多様なセンサが搭載されている。移動ロボットの挙動を後の動作に利用したり解析したりするために、これらのセンサの出力をログとして記録しておきたいという要請がある。例えば、特許文献1には、センサの出力そのものを記録するわけではないが、制御回路における複数箇所の動作波形データを所定の周期でリングバッファに記憶させ、事後的に解析できるように構成したロボットが開示されている。
特開平10−309683号公報
種類の異なる複数のセンサの出力を記憶しようとする場合、センサごとにサンプリング周期が異なり、出力されるサンプリングデータの容量も異なるので、すべての出力を漏れなく記憶すると、膨大なメモリが必要となり、それぞれのサンプリングデータ間の対応関係を把握することも困難となる。
本発明は、このような問題を解決するためになされたものであり、小規模なハードウェア構成により種類の異なる複数のセンサの出力を効率的にログとして取得するためのものである。
本発明の第1の態様における記憶装置は、種類の異なる複数のセンサのサンプリングデータを記憶する記憶装置であって、複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域を含む第1記憶領域と、複数のセンサのうちサンプリング周期が最長のセンサの一周期分のサンプリングデータと、一周期分のサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを複数のセンサ領域から読み出して一纏めにしたデータセットを書き込むための第2記憶領域と、複数のセンサのサンプリングデータを複数のセンサ領域のそれぞれにリングバッファ形式によって書き込み、所定のタイミングでデータセットを生成して第2記憶領域にリングバッファ形式によって書き込む制御部とを備える。
このように構成された記憶装置では、それぞれのセンサのサンプリングデータを記憶するリングバッファとは別に、サンプリングデータを一纏めにしたデータセットを記憶するリングバッファを設けるので、センサごとのリングバッファのメモリ容量を抑制することができる。また、データセットを、所望のタイミングで、サンプリング周期が最長のセンサの一周期分に合わせて生成するので、事後解析等のために必要なログを構築するための情報を効率よく残存させることができる。
上記の記憶装置の構成として、第1記憶領域において、複数のセンサのうちサンプリング周期が最長のセンサ以外のセンサのセンサ領域にそれぞれ割り当てられた記憶容量は、最長のセンサの一周期の1倍以上2倍以下の期間のサンプリングデータを記憶するために必要な容量とすることができる。このように各センサ用のリングバッファを構成すれば、第1記憶領域のメモリ容量を大きく抑制することができる。
また、制御部は、データセットにタグ情報を含め、タグ情報は、データセットが生成された時間情報を含めても良い。このように時間情報を含めば、ログ情報として利用する場合に、それぞれのデータセットの時間管理を効率よく行える。
また、制御部は、外部から指示信号を受信したときに、データセットを生成して第2記憶領域に書き込んでも良い。このように指示信号によってデータセットを生成するタイミングを制御すれば、記憶装置を搭載する装置の状況等によってタイミングを変更することもできる。また、制御部は、外部から受信する指示信号に基づいて、データセットを生成して第2記憶領域に書き込む周期を変更しても良い。このように構成すれば、それぞれのデータセットを生成するタイミングはタイマーで周期的に制御しつつ、記憶装置を搭載する装置の状況等に応じてその周期を変更することができる。このように周期の変更時に限って指示信号を与えるようにすれば、記憶装置を搭載する装置側の負担を軽減することができる。
また、第1記憶領域と第2記憶領域は、一つのメモリチップに包含されていても良い。このように構成すれば、メモリの実装が容易となり、実装面積も小さくすることができる。あるいは、第1記憶領域を有する第1メモリチップと、第2記憶領域を有する第2メモリチップとを分けて、第1メモリチップのデータ書込可能速度を、第2メモリチップのデータ書込可能速度よりも早くすることもできる。このように構成すれば、それぞれの記憶領域に要求される性能を最適に満たすことができる。
また、上記の記憶装置は、リセット信号を受信するまでは上書きされない第3記憶領域を備え、制御部は、外部から保存信号を受信したら、第2記憶領域に記憶されている複数のデータセットから予め定められた個数分のデータセットを第3記憶領域へコピーするように構成しても良い。このように構成すれば、それぞれのセンサの出力をログとして残したい場合には第1記憶領域へのアクセスが不要であり、効率よく非消去領域へデータセットを移すことができる。
この場合、制御部は、保存信号を受信するたびに、第2記憶領域として利用していた領域の一部を第3記憶領域へ変更しても良い。このように第2記憶領域の一部を第3記憶領域として利用すれば、さらにメモリの効率的な利用が可能となる。このように第2記憶領域を削って第3記憶領域とする場合は、制御部は、第2記憶領域の記憶容量が定められた個数分のデータセットを記憶する容量を下回ったら警告信号を出力すると良い。このように警告信号を出力すれば、利用者はログを取得できなくなったことを認識することができる。
また、制御部は、外部からの保存信号に基づいて、第3記憶領域へコピーするデータセットの個数および対象とするデータセットの少なくともいずれかを変更しても良い。このように構成すれば、記憶装置を搭載する装置の状況に応じて異なる、ログとして必要な情報の期間に柔軟に対応することができる。
また、上記の複数のセンサと記憶装置を搭載する移動ロボットは、移動に関する予め定められた状況を複数のセンサのいずれかが検知した場合に、保存信号を記憶装置へ送信する送信部を備えていても良い。このように構成すれば、移動時のトラブル等を効率的に事後解析することができる。
本発明の第2の態様における記憶方法は、種類の異なる複数のセンサのサンプリングデータを記憶装置に記憶する記憶方法であって、記憶装置の第1記憶領域を複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域として利用して、複数のセンサのサンプリングデータを複数のセンサ領域のそれぞれにリングバッファ形式によって書き込む第1記憶ステップと、記憶装置の第2記憶領域を複数のセンサのうちサンプリング周期が最長のセンサの一周期分のサンプリングデータと、一周期分のサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを複数のセンサ領域から読み出して一纏めにしたデータセットを書き込むための記憶領域として利用して、所定のタイミングでデータセットを生成して第2記憶領域にリングバッファ形式によって書き込む第2記憶ステップとを含む。
本発明の第3の態様における記憶プログラムは、種類の異なる複数のセンサのサンプリングデータを記憶装置に記憶する記憶プログラムであって、記憶装置の第1記憶領域を複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域として利用して、複数のセンサのサンプリングデータを複数のセンサ領域のそれぞれにリングバッファ形式によって書き込む第1記憶ステップと、記憶装置の第2記憶領域を複数のセンサのうちサンプリング周期が最長のセンサの一周期分のサンプリングデータと、一周期分のサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを複数のセンサ領域から読み出して一纏めにしたデータセットを書き込むための記憶領域として利用して、所定のタイミングでデータセットを生成して第2記憶領域にリングバッファ形式によって書き込む第2記憶ステップとをコンピュータに実行させる。
このような記憶方法、記憶プラグラムの態様であっても、記憶装置と同様の効果を期待できる。
本発明により、小規模なハードウェア構成により種類の異なる複数のセンサの出力を効率的にログとして取得することができる。
本実施形態にかかる移動ロボットの外観斜視図である。 移動ロボットの制御ブロック図である。 第1メモリに設定されるリングバッファについて説明する概念図である。 データセットの生成を説明する概念図である。 第2メモリに設定されるリングバッファについて説明する概念図である。 ログ情報として残存させるデータセットの移動を説明する概念図である。 記憶装置の制御フローを示すフロー図である。 他の実施例における記憶装置のブロック図である。 ログ情報として残存させるデータセットの移動を説明する概念図である。 移動ロボットの制御フローを示すフロー図である。
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
図1は、本実施形態にかかる記憶装置を搭載する移動ロボット10の外観斜視図である。移動ロボット10は、大きく分けて台車部110と把持部120によって構成される。
台車部110は、主に、ベース111と、ベース111に取り付けられた2つの駆動輪112と1つのキャスター113とから構成される。2つの駆動輪112は、ベース111の対向する側方のそれぞれに、回転軸芯が一致するように配設されている。それぞれの駆動輪112は、不図示のモータによって独立して回転駆動される。キャスター113は、従動輪であり、ベース111から鉛直方向に延びる旋回軸が車輪の回転軸から離れて車輪を軸支するように設けられており、台車部110の移動方向に倣うように追従する。移動ロボット10は、例えば、2つの駆動輪112が同じ方向に同じ回転速度で回転されれば直進し、逆方向に同じ回転速度で回転されれば重心を通る鉛直軸周りに旋回する。
台車部110には、障害物検知や周辺環境認識のための各種センサが設けられている。これらのセンサとして、周囲の画像を取得するカメラ240、移動時の加速度を検出する加速度センサ250、障害物までの距離を検出する距離センサ290が設けられている。また、台車部110は、障害物に衝突した場合の衝撃を緩和するためのバンパ116を備え、バンパ116には、障害物との接触を検出する接触センサ230が設けられている。これらのセンサは、それぞれ必要に応じて複数個が配置されている。
台車部110には、コントロールユニット190が設けられている。コントロールユニット190は、後述するシステム制御部と記憶装置を含む。また、上述のそれぞれのセンサから出力されるサンプリングデータは、コントロールユニット190へ送信される。
把持部120は、主に、複数のアーム121、122、123と、ハンド124とから構成される。アーム121は、鉛直軸周りに回転自在に、一端がベース111に軸支されている。アーム122は、水平軸周りに回転自在に、一端がアーム121の他端に軸支されている。アーム123は、アーム122の他端で放射方向に回転自在に、一端がアーム122の他端に軸支されている。ハンド124は、アーム123の伸延方向と平行な中心軸周りに回転自在に、アーム123の他端に軸支されている。
ハンド124は、移動ロボット10の作業対象物としての搬送物を把持できるように、把持機構を備える。移動ロボット10は、搬送物を搬送するに限らず、様々な目的に適用することができる。把持部120は、移動ロボット10の目的に合わせて様々な作業対象物を把持できる。例えば、レバーを把持して回転し、扉を開く作業を行っても良い。
台車部110と同様に、把持部120にも、作業対象物の把握や姿勢検知のための各種センサが設けられている。これらのセンサとして、アーム123の傾きを検出するジャイロセンサ260、ハンド124の把持圧を検出する圧力センサ270、アーム122の回転量を検出するロータリエンコーダ280が設けられている。同様のセンサは、必要に応じて各部位に設けられている。また、台車部110に設けられたセンサと同様に、それぞれのセンサから出力されるサンプリングデータは、コントロールユニット190へ送信される。
図2は、移動ロボット10の制御ブロック図である。コントロールユニット190は、主に、移動ロボット10の全体を統括的に制御するシステム制御部200、記憶装置30、およびバスライン201を備える。バスライン201は、システム制御部200、記憶装置30、各種センサおよび各種ユニットと接続されており、サンプリングデータや指示信号の通信路としての機能を担う。
システム制御部200は、例えばCPUであり、駆動輪ユニット210、アームユニット220、各センサ、警告部202、および記憶装置30との間で指令やサンプリングデータ等の情報を送受信することにより、移動ロボット10の制御に関わる様々な演算を実行する。駆動輪ユニット210は、駆動輪112を駆動するための駆動回路やモータを含み、台車部110に設けられている。システム制御部200は、駆動輪ユニット210へ駆動信号を送ることにより、駆動輪112の回転制御を実行する。アームユニット220は、アーム121、122、123およびハンド124を駆動するための駆動回路やモータを含み、把持部120に設けられている。システム制御部200は、アームユニット220へ駆動信号を送ることにより、把持部120の姿勢制御や把持制御を実行する。
接触センサ230は、例えば押圧接触により導通するスイッチである。カメラ240は、例えばCMOSイメージセンサ、結像レンズおよび画像信号をフレーム画像データに変換する画像処理ユニットを備える。カメラ240は、例えば台車部110の四隅にひとつずつ設けられる。ハンド124に設けて把持対象物を観察できるようにしても良い。加速度センサ250は、移動ロボット10の加速度を検出するセンサである。把持対象物を安全に把持するためにハンド124に設けても良い。
ジャイロセンサ260は、アーム121、122、123に設ける他に、台車部110の姿勢を把握するために、ベース111に設けても良い。圧力センサ270は、例えば歪みゲージによって構成される。ロータリエンコーダ280は、アーム121、122、123の相対回転量を検出する。ロータリエンコーダ280は、把持部120に設けられるだけでなく、駆動輪112の回転量検出用に、台車部110にも設けられる。距離センサ290は、例えばレーザレンジファインダである。
これらのセンサからそれぞれ出力されるサンプリングデータは、それぞれのセンサのサンプリング周期に同期して、バスライン201に出力される。すなわち、各々のセンサは、自身のサンプリング周期に従って、サンプリングデータをバスライン201へ逐次出力する。例えば、カメラ240は、フレームレートが30fpsに設定されていれば、一秒間に30フレームの画像データをバスライン201へ出力する。
警告部202は、例えばスピーカやLEDを含み、システム制御部200が警告信号を出力した場合に、異常が発生したことを音や光によりユーザへ告知する。警告部202は、無線LAN等の通信ユニットを含んで、ユーザの利用端末へ警告を送信する構成であっても良い。
記憶装置30は、主に、メモリ制御部300、第1メモリ310および第2メモリ320を備える。本実施例において第1メモリ310と第2メモリ320は、それぞれ別のメモリチップとして構成され、例えば、第1メモリ310は揮発性メモリであるSRAMであり、第2メモリは不揮発性メモリであるFLASHメモリである。SRAMである第1メモリ310のデータ書込可能速度は、FLASHメモリである第2メモリ320のデータ書込可能速度よりも早い。
メモリ制御部300は、第1メモリ310と第2メモリ320の読み書きを制御する。具体的には後述するが、メモリ制御部300は、バスライン201からそれぞれのセンサのサンプリングデータを逐次受け取り、第1メモリ310へ書き込む。また、システム制御部200からの指令に従って、第1メモリ310から第2メモリ320へデータを移す。なお、第2メモリ320の一部の記憶領域、または不図示の不揮発性の記憶領域には、移動ロボット10や記憶装置30を制御するための制御プログラム、制御に用いられる様々なパラメータ値、関数、ルックアップテーブル等が記憶されている。システム制御部200やメモリ制御部300は、これらのプログラムを読み込んで、それぞれの制御を実行する。
図3は、第1メモリ310に設定されるリングバッファについて説明する概念図である。第1メモリ310は、移動ロボット10に設けられた複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域を含む第1記憶領域としての機能を担う。より具体的には、カメラ240のサンプリングデータを逐次記憶するための領域であるリングバッファ314、加速度センサ250のサンプリングデータを逐次記憶するための領域であるリングバッファ315、ジャイロセンサ260のサンプリングデータを逐次記憶するための領域であるリングバッファ316、圧力センサ270のサンプリングデータを逐次記憶するための領域であるリングバッファ317、ロータリエンコーダ280のサンプリングデータを逐次記憶するための領域であるリングバッファ318、距離センサ290のサンプリングデータを逐次記憶するための領域であるリングバッファ319がそれぞれセンサ領域として設定されている。
メモリ制御部300は、最も古いサンプリングデータに最新のサンプリングデータを上書きして複数周期分のサンプリングデータを保持し続けるリングバッファ形式によって、それぞれのセンサのサンプリングデータをそれぞれのリングバッファに書き込む。なお、図ではひとつの種類のセンサに対してひとつのセンサ領域を示すが、同一種類のセンサが2つ以上設けられている場合は、設けられている数に合わせてセンサ領域が増設されている。
それぞれのリングバッファ314〜319は、上述のように、複数周期分のサンプリングデータを書き込む記憶容量を有する。例えば、カメラ240は、1周期で1フレームの画像データを出力するが、カメラ240のためのリングバッファ314は、全体として4フレーム分の画像データを書き込む記憶容量を有する。図は、1フレームあたりの記憶容量を概念的に一つの矩形の面積で表し、リングバッファ314が4つのメモリ空間A、A、A、Aから成ることを示している。本実施形態にかかるセンサ群においては、1サンプルあたりのデータ容量は、カメラ240が大きく、加速度センサ250やジャイロセンサ260が小さいことがわかる。
また、各サンプリングデータが記憶されるメモリ空間である矩形の横幅は、1サンプルに要する時間としてのサンプリング周期を示している。すなわち、本実施形態にかかるセンサ群においては、距離センサ290のサンプリング周期が最長であり、加速度センサ250やジャイロセンサ260のサンプリング周期は、比較的短いことがわかる。本実施形態においては、サンプリング周期が最長である距離センサ290のサンプリング周期を基準1周期と定める。
接触センサ230は、刻々と変化する観察対象の物理量を数値として取得する類のセンサではないが、メモリ制御部300は、例えば接触状態を1、非接触状態を0として一定周期でいずれかの値をサンプリングデータとして出力させることで、他のセンサと同様に扱うことができる。本実施形態においては、オンオフで出力するセンサに対しても、観察対象の物理量を数値として取得するセンサと同様に、リングバッファを設定する。したがって、第1メモリ310には、接触センサ230のサンプリングデータを逐次記憶するための領域であるリングバッファ313もセンサ領域として設定されている。
本実施形態においては、距離センサ290のリングバッファ319に割り当てる記憶容量を、2周期分のサンプリングデータを記憶するために必要な容量とする。他のセンサのリングバッファ313〜318のそれぞれに割り当てる記憶容量を、基準1周期の1倍以上2倍以下の期間のサンプリングデータを記憶するために必要な容量とする。例えば、カメラ240のリングバッファ314は、基準1周期に対して約1.5倍の期間のサンプリングデータを記憶する容量を有する。このように構成すれば、いずれのリングバッファにおいても、一つのサンプリングデータを読み込む読込作業に並行して、他のサンプリングデータを書き込む書込作業を行うことが可能であり、第1メモリ310のメモリ容量を大きく抑制することができる。
本実施形態においては、距離センサ290の基準1周期分のサンプリングデータと、このサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを、リングバッファ313〜319のそれぞれから読み出して一纏めにしたデータセット500を所定のタイミングで生成する。図4は、データセット500の生成を説明する概念図である。
メモリ制御部300は、サンプリング周期が最長である距離センサ290のサンプリング周期を基準としてデータセット500を生成する。例えば、図示するように、距離センサ290のリングバッファ319は、2周期分のメモリ空間F、Fから構成されているとする。このとき、Fのサンプリングデータの取得中にデータセットの生成指示が発生したとすると(図中の白抜き矢印のタイミング)、Fのサンプリングデータに対応する基準1周期は、黒塗り矢印のSが始期であり、同じく黒塗り矢印のEが周期となる。
このFのサンプリングデータが生成された期間に他のセンサで生成されたサンプリングデータが格納されたメモリ領域は、一例として、各リングバッファに示すSとEで挟まれた斜線の領域となる。例えば、カメラ240のリングバッファ314の場合、対応するメモリ領域は、メモリ空間A、A、Aとなる。ただし、各センサのサンプリング周期は互いに異なる(同じ場合もある)ので、斜線の領域は生成指示が発生するタイミングによって動的に変化する。
メモリ制御部300は、それぞれのリングバッファにおいて斜線の領域のサンプリングデータを一纏めにしてデータセット500を生成する。すなわち、データセット500は、カメラ240のリングバッファ314から取り出したサンプリングデータ514、加速度センサ250のリングバッファ315から取り出したサンプリングデータ515、ジャイロセンサ260のリングバッファ316から取り出したサンプリングデータ516、圧力センサ270のリングバッファ317から取り出したサンプリングデータ517、ロータリエンコーダ280のリングバッファ318から取り出したサンプリングデータ518、距離センサ290のリングバッファ319から取り出したサンプリングデータ519、接触センサ230のリングバッファ313から取り出したサンプリングデータ513を含む。
また、データセット500は、タグデータ501と、ダイアグデータ502を含む。タグデータは、データセット500の属性に関する種々の情報を記述したものである。タグデータは、例えば、データセットが生成された時間情報を含む。時間情報は、生成指示が発せられた時間であったり、サンプリングデータごとの始期Sの時間であったりすることができる。また、タグデータは、包含する各サンプリングデータが、移動ロボット10のどの位置に設置されたセンサのサンプリングデータであるかを示すID情報を含む。
ダイアグデータ502は、制御回路に予め定められた複数箇所の電圧値が正常か異常かを示すフラグを対応する期間に渡って記録したものである。このようなタグデータ501やダイアグデータ502が含まれていれば、データセット500を後の制御に利用したり、事後的に移動ロボット10の動作解析に利用したりする場合に、時間管理や状況把握の点で効果を発揮する。
図5は、第2メモリ320に設定されるリングバッファ321について説明する概念図である。リングバッファ321は、データセット500を書き込むための第2記憶領域である。リングバッファ321は、初期段階でn個のメモリ空間X〜Xから成りn個のデータセット500を記憶することができる。メモリ制御部300は、最も古いデータセットに最新のデータセットを上書きして複数個(初期段階でn個)のデータセットを保持し続けるリングバッファ形式によって、データセット500をリングバッファ321に書き込む。
図6は、ログ情報として残存させるデータセットの移動を説明する概念図である。ログ情報として残存させるデータセットは、リングバッファ321である第2記憶領域から、リセット信号を受信するまでは上書きされない第3記憶領域へ移動される。本実施例においては、第2メモリ320において第2記憶領域として利用していたリングバッファ321の一部を第3記憶領域として利用する不揮発バッファ322へ逐次変更することにより、第3記憶領域を確保する。図6で示すメモリ領域は、10個のメモリ空間X〜X10から構成されており、データセットを10個記憶できる記憶容量を有するものとして説明する。また、ここでは、メモリ制御部300が保存信号としての保存トリガを受信したときに、第3記憶領域へ移動するデータセットの個数を3(N=3)とする。保存トリガを受信したときに、第2記憶領域から第3記憶領域へ移動するデータセットの個数は、予め定められている。
図6(a)は、初期段階として、すべてのメモリ空間がリングバッファ314として利用されている様子を示す。例えば、最新のデータセットがXに記憶されているときに保存トリガを受信したら、メモリ制御部300は、Xと、Xから順に遡ったX、Xの3個のデータセットを第3記憶領域へ移動する対象とする。
図6(b)は、データセット3個分のメモリ空間を不揮発バッファ322として確保する様子を示す。メモリ制御部300は、リングバッファ321として利用していた下位3個のメモリ空間X〜X10を、第3記憶領域としての不揮発バッファ322へ変更する。すなわち、リングバッファ321の記憶領域は、7個のメモリ空間X〜Xに変更される。そして、図6(a)で移動の対象と定めたX〜Xのデータセットを、1回目の保存トリガによって移動したデータセットD1−1、D1−2、D1−3として、X〜X10へコピーする。この操作によりデータセットD1−1、D1−2、D1−3は、リセット信号を受信するまでは上書きされることなく保存される。また、第2メモリ320は不揮発性メモリであるので、記憶装置30に電力が供給されていない状態でも、これらのデータセットは残存する。
図6(c)は、図6(b)の操作後にメモリ空間X〜Xがリングバッファ314として利用されている様子を示す。例えば、最新のデータセットがXに記憶されているときに保存トリガを受信したら、メモリ制御部300は、Xと、Xから順に遡ったX、Xの3個のデータセットを第3記憶領域へ移動する対象とする。
図6(d)は、図6(c)の状態から更にデータセット3個分のメモリ空間を不揮発バッファ322として確保する様子を示す。メモリ制御部300は、リングバッファ321として利用していた下位3個のメモリ空間X〜Xを、第3記憶領域としての不揮発バッファ322へ変更する。すなわち、リングバッファ321の記憶領域は、4個のメモリ空間X〜Xに変更される。そして、図6(c)で移動の対象と定めたX、X、Xのデータセットを、2回目の保存トリガによって移動したデータセットD2−1、D2−2、D2−3として、X〜Xへコピーする。この操作によりデータセットD2−1、D2−2、D2−3は、リセット信号を受信するまでは上書きされることなく保存される。
このように、保存トリガを受信するたびにリングバッファ321として利用していた領域の一部を不揮発バッファ322へ変更する場合に、リングバッファ321の記憶容量がN個分のデータセットを記憶するために必要な容量を下回ったら、メモリ制御部300は、警告信号を出力する。具体的には、メモリ制御部300は、システム制御部200へ警告信号を送信し、システム制御部200は、警告信号を受信したら警告部202に音や光を発生させて、ユーザにこれ以上ログを取得できなくなることを告知する。ユーザは、ログが取得できなくなることを察知して、例えば移動ロボット10を停止させたり、安全モードに移行させたりすることができる。
なお、メモリ制御部300が保存トリガを受信したときに、第3記憶領域へ移動するデータセットの個数Nは3個でなくても良い。ログとして利用する場合に、必要な個数Nを事前に調整して定めれば良い。また、個数Nを移動ロボット10の状況に応じて変更しても良い。この場合、保存トリガとしての保存信号に、個数Nを指定する情報を含めても良い。メモリ制御部300は、その保存トリガにより、指定された個数N個のデータセットを第3記憶領域へ移動する。
また、保存トリガを受信した時の最新のデータセットを移動するデータセットの基準とせず、他のデータセットを基準として移動するデータセットの対象を変更しても良い。保存トリガは、後述するように、移動ロボット10に予め定められたイベントが発生した時に生成されるが、ログとして必要な情報は、必ずしもイベントが発生した時点のものではなく、イベントの性質やセンサ出力の取得タイミングによって異なる。このような場合、保存トリガとしての保存信号に、基準とするデータセットを指定する情報を含めても良い。例えば、遡るデータセットの個数Cを指定すれば、メモリ制御部300は、最新のデータセットから数えてC個分前のデータセットを基準として、N個のデータセットを第3記憶領域へ移動する。このように、個数Cを指定すれば、ログの利用範囲を拡げたり、信頼精度を向上させたりすることができる。
図7は、記憶装置30の制御フローを示すフロー図である。フローは、移動ロボット10の電源がオンにされ、各センサのサンプリングが始まった時点から開始する。
メモリ制御部300は、ステップS101で、サンプリングデータの取得と取得したサンプリングデータの第1メモリ310への書き込みを開始する。メモリ制御部300は、それぞれのセンサからのサンプリングデータを、上述のようにそれぞれのセンサのサンプリング周期に応じてバスライン201を介して逐次取得する。そして、それぞれのサンプリングデータを対応するそれぞれのリングバッファ313〜319に、リングバッファ形式により書き込む。これらの作業は、ステップS109に到達するまで連続的に、センサごとに並列して実行される。
メモリ制御部300は、ステップS102で、データセット500を生成する生成指示を受信したか否かを確認する。受信していなければ、ステップS108へ進む。受信していればステップS103へ進む。なお、本実施例において生成指示は、システム制御部200が発信する。システム制御部200は、例えばクロック信号に同期して生成指示を定期的に発信する。システム制御部200は、生成指示を発信する周期を変更することもできる。例えば、移動ロボット10が所定速度以上の高速で移動している場合には短い周期で生成指示を発信し、所定速度未満の低速で移動している場合には長い周期で生成指示を発信する。
また、メモリ制御部300側で生成指示信号を周期的に発生させ、システム制御部200は、その周期を変更したい場合に指示信号をメモリ制御部300へ送信するように構成しても良い。メモリ制御部300は、指示信号に応じて、生成指示信号を発生させる周期を変更する。このように構成しても、移動ロボット10の状況に応じてデータセット500を生成できるので、メモリ領域を有効に利用することができる。
メモリ制御部300は、ステップS103で、データセット500の生成し、第2メモリ320の第2記憶領域としてのリングバッファ321に、リングバッファ形式によって書き込む。具体的には図4を用いて説明したようにデータセット500を生成する。また、図5、6を用いて説明したようにデータセット500を書き込む。そしてステップS104へ進み、データセット500を不揮発領域である第3記憶領域へ移動させる指示である保存トリガを受信したか否かを確認する。受信していなければ、ステップS108へ進む。受信していればステップS105へ進む。
メモリ制御部300は、ステップS105で、対象となるデータセットを第3記憶領域である不揮発バッファ322へコピーすることにより移動させる。具体的には図6を用いて説明したように第3記憶領域を逐次増設する。そしてステップS106へ進み、メモリ制御部300は、N個分のデータセットを記憶するメモリ容量が第2記憶領域としてのリングバッファ321に残っているか否かを判断する。残っていれば、ステップS108へ進む。残っていなければステップS107へ進む。
メモリ制御部300は、ステップS107で、警告信号をシステム制御部200へ送信する。システム制御部200は、警告部202を介して、ユーザにログ取得の終了を告知する。その後、ステップS109へ進み、メモリ制御部300は、ステップS101から継続して実行していたサンプリングデータの取得および書き込みを終了して、一連の処理を終える。
ステップS102またはステップS106からステップS108へ進んだ場合は、メモリ制御部300は、ステップS108で、システム制御部200を介して移動ロボット10の電源オフの指示があったか否かを確認する。指示がなければ、ステップS102へ戻る。指示があれば、ステップS109へ進む。ステップS109へ進んだ場合は、上述のようにサンプリングデータの取得および書き込みを終了して、一連の処理を終える。
次に、本実施形態における他の実施例について説明する。なお、特に言及しない装置構成や処理手順等は上述の実施例と同様であるので、その説明を省略する。
図8は、他の実施例における記憶装置31のブロック図である。記憶装置31は、上述の記憶装置30と異なり、第3メモリ330を追加的に備える。第3メモリ330は、例えば不揮発性メモリであるFLASHメモリである。第3メモリ330は、第3記憶領域としての不揮発バッファ322を含む。したがって、第2メモリ320には、不揮発バッファ322としての記憶領域を設けず、リングバッファ321の専用領域として利用する。
このように構成する場合は、第2メモリ320も揮発性メモリであって良く、第1メモリ310としての第1記憶領域と第2メモリ320としての第2記憶領域を、一つのメモリチップ内に設けても良い。このように一つのメモリチップで構成すれば、メモリの実装が容易となり、実装面積も小さくすることができる。
図9は、記憶装置31による、ログ情報として残存させるデータセットの移動を説明する概念図である。図9(a)は、第2メモリ320におけるリングバッファ321の様子を示す。リングバッファ321は、第2記憶領域としてn個分のデータセットを記憶するメモリ空間X〜Xが確保されており、保存トリガが発生しても、減少することがない。例えば、Xで保存トリガが発生すると、N=3の場合にX〜Xに記憶された3個のデータセットが移動の対象となるが、Xn−1〜Xのメモリ空間は、リングバッファ321のままである。
図9(b)は、第3メモリ330における不揮発バッファ322の様子を示す。上述の実施例のように、移動したデータセットを順に記憶させても良いが、専用の不揮発バッファ322を確保できる場合は、より柔軟にメモリ空間を利用できる。図の例では、移動ロボット10に発生し得るイベントごとに、不揮発バッファ322にフォルダを設けている。例えば、移動ロボット10の故障時に生成されたデータセットを格納するためのフォルダ331、衝撃発生時に生成されたデータセットを格納するためのフォルダ332、障害物に接近したときに生成されたデータセットを格納するためのフォルダ333などが設けられる。
メモリ制御部300は、イベントに応じて発生する保存トリガを受信すると、対応するフォルダ内に、対象となるデータセットをファイル351としてファイル形式に纏めて格納する。このように纏めて格納されていれば、データセット500を後の制御に利用したり、事後的に移動ロボット10の動作解析に利用したりする場合の利便性が向上する。
次に、移動ロボット10の動作時におけるシステム制御部200の制御フローについて説明する。図10は、移動ロボット10の制御フローを示すフロー図である。システム制御部200は、与えられたタスクに応じて、駆動輪112を駆動して移動したり、把持部120を駆動して搬送物を搬送したりするが、ここでは、記憶装置30に関する処理を抽出して説明する。なお、移動ロボット10が搭載する記憶装置は記憶装置31であってもおよそ同様であるが、ここでは記憶装置30を搭載するものとして説明する。また、図7を用いて説明したメモリ制御部300の処理フローは、図10の処理フローと互いに関連し合いながら並行して実行される。
フローは、移動ロボット10の電源がオンにされ、各センサのサンプリングが始まった時点から開始する。システム制御部200は、ステップS201で移動ロボット10が移動中か否かを確認する。移動中であれば、ステップS202へ進み、一度の保存トリガでリングバッファ321から不揮発バッファ322へコピーするデータセット500の個数Nを、移動時用として予め定められた個数Nに設定する。また、最新のデータセットから数えていくつ遡ったデータセットを基準のデータセットとするかを表す個数Cを、移動時用として予め定められた個数Cに設定する。N、Cは、移動時のログ解析等に最適な個数として事前に実験等により決定される。
システム制御部200は、ステップS203へ進み、イベントが発生したか否かを判断する。イベントは、例えば「故障」「衝撃」「接近」等である。特に移動ロボット10のトラブルとして事後にログの解析が必要と想定される事象が、イベントの対象となり得る。「故障」であれば、例えば、システム制御部200から駆動輪ユニット210へ駆動信号を送信しているにも関わらず、加速度センサ250の出力が0のままである場合に「故障」のイベントが発生したと判断する。すなわち、システム制御部200は、送信している駆動信号と関連するセンサ出力との間に閾値以上の矛盾が発生したり、周辺環境との関係から移動ロボット10が安全でない状態にあると判断されるセンサ出力を取得したりした場合に、イベントが発生したと判断する。特に、移動ロボット10の移動時においては、段差にさしかかったなど、移動に関する予め定められた状況をセンサのいずれかが検知した場合に、イベントが発生したと判断しても良い。段差に差しかかった場合には、ロボットが衝撃を受ける場合や、予定していたルートとは異なるルートを選択するなど、ログを解析する必要性が生じやすいためである。
システム制御部200は、イベントが発生したと判断したら、ステップS204で保存トリガをメモリ制御部300へ送信してステップS205へ進み、イベントが発生していないと判断したら、ステップS204をスキップしてステップS205へ進む。なお、ステップS204で保存トリガを送信する場合には、N、Cの情報を保存トリガに付随させても良い。
システム制御部200は、ステップS205で、移動ロボット10が停止したか否かを確認する。停止していないと判断したら、ステップS203へ戻る。停止したと判断したら、ステップS206へ進み、電源オフの指示があったか否かを確認する。電源オフの指示がなければ、ステップS201へ戻り、電源オフの指示があれば、一連の処理を終了する。
システム制御部200は、ステップS201で移動中でないと確認したら、ステップS207へ進み、アーム121〜123、ハンド124が稼働中か否かを確認する。稼働中であれば、ステップS208へ進み、一度の保存トリガでリングバッファ321から不揮発バッファ322へコピーするデータセット500の個数Nを、アーム等の稼働時用として予め定められた個数Nに設定する。また、最新のデータセットから数えていくつ遡ったデータセットを基準のデータセットとするかを表す個数Cを、アーム等の稼働時用として予め定められた個数Cに設定する。N、Cは、アーム等の稼働時のログ解析等に最適な個数として事前に実験等により決定される。
システム制御部200は、ステップS209へ進み、イベントが発生したか否かを判断する。判断するイベントは、ステップS203のイベントと同様である。特に、アーム等の稼働時においては、アーム等の稼働に関する予め定められた状況をセンサのいずれかが検知した場合に、イベントが発生したと判断しても良い。
システム制御部200は、イベントが発生したと判断したら、ステップS210で保存トリガをメモリ制御部300へ送信してステップS211へ進み、イベントが発生していないと判断したら、ステップS209をスキップしてステップS211へ進む。なお、ステップS210で保存トリガを送信する場合には、N、Cの情報を保存トリガに付随させても良い。
システム制御部200は、ステップS211で、アーム等の稼働を停止したか否かを確認する。停止していないと判断したら、ステップS209へ戻る。停止したと判断したら、ステップS206へ進み、電源オフの指示があったか否かを確認する。電源オフの指示がなければ、ステップS201へ戻り、電源オフの指示があれば、一連の処理を終了する。
システム制御部200は、ステップS207でアーム等が稼働中でないと確認したらステップS212へ進み、一度の保存トリガでリングバッファ321から不揮発バッファ322へコピーするデータセット500の個数Nを、動作停止時用として予め定められた個数Nに設定する。また、最新のデータセットから数えていくつ遡ったデータセットを基準のデータセットとするかを表す個数Cを、動作停止時用として予め定められた個数Cに設定する。N、Cは、動作停止時のログ解析等に最適な個数として事前に実験等により決定される。
システム制御部200は、ステップS213へ進み、イベントが発生したか否かを判断する。判断するイベントは、ステップS203のイベントと同様である。特に、移動ロボットの動作停止時においては、動作停止に関する予め定められた状況をセンサのいずれかが検知した場合に、イベントが発生したと判断しても良い。
システム制御部200は、イベントが発生したと判断したら、ステップS214で保存トリガをメモリ制御部300へ送信してステップS206へ進み、イベントが発生していないと判断したら、ステップS214をスキップしてステップS206へ進む。なお、ステップS214で保存トリガを送信する場合には、N、Cの情報を保存トリガに付随させても良い。
システム制御部200は、ステップS206へ進んだら、電源オフの指示があったか否かを確認する。電源オフの指示がなければ、ステップS201へ戻り、電源オフの指示があれば、一連の処理を終了する。なお、上述のように、システム制御部200は、メモリ制御部300に対して、データセットを生成する生成指示を適宜与えても良い。
以上説明した本実施形態では、記憶装置30、31は、移動ロボット10に搭載して利用する場合を説明したが、上述した構成を有する記憶装置30、31は、移動ロボット以外の装置に搭載して利用することもできる。超音波等の音を用いたセンサ、レーザセンサ等の距離を取得するセンサ、カメラ等の複数のセンサを用いて自律して移動する自動運転車両など、種類の異なる複数のセンサを備える装置であれば、例えば事後のログ解析用の装置として記憶装置30、31を搭載すると良い。
10 移動ロボット、30、31 記憶装置、110 台車部、111 ベース、112 駆動輪、113 キャスター、116 バンパ、120 把持部、121、122、123 アーム、124 ハンド、190 コントロールユニット、200 システム制御部、201 バスライン、202 警告部、210 駆動輪ユニット、220 アームユニット、230 接触センサ、240 カメラ、250 加速度センサ、260 ジャイロセンサ、270 圧力センサ、280 ロータリエンコーダ、290 距離センサ、300 メモリ制御部、310 第1メモリ、313、314、315、316、317、318、319 リングバッファ、320 第2メモリ、321 リングバッファ、322 不揮発バッファ、330 第3メモリ、331、332、333 フォルダ、351 ファイル、500 データセット、501 タグデータ、502 ダイアグデータ、513、514、515、516、517、518、519 サンプリングデータ

Claims (15)

  1. 種類の異なる複数のセンサのサンプリングデータを記憶する記憶装置であって、
    前記複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域を含む第1記憶領域と、
    前記複数のセンサのうちサンプリング周期が最長のセンサの一周期分のサンプリングデータと、前記一周期分のサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを前記複数のセンサ領域から読み出して一纏めにしたデータセットを書き込むための第2記憶領域と、
    前記複数のセンサのサンプリングデータを前記複数のセンサ領域のそれぞれにリングバッファ形式によって書き込み、所定のタイミングで前記データセットを生成して前記第2記憶領域にリングバッファ形式によって書き込む制御部と
    を備える記憶装置。
  2. 前記第1記憶領域において、前記複数のセンサのうちサンプリング周期が最長のセンサ以外のセンサのセンサ領域にそれぞれ割り当てられた記憶容量は、前記最長のセンサの一周期の1倍以上2倍以下の期間のサンプリングデータを記憶するために必要な容量である請求項1に記載の記憶装置。
  3. 前記制御部は、前記データセットにタグ情報を含め、
    前記タグ情報は、前記データセットが生成された時間情報を含む請求項1または2に記載の記憶装置。
  4. 前記制御部は、外部から指示信号を受信したときに、前記データセットを生成して前記第2記憶領域に書き込む請求項1から3のいずれか1項に記載の記憶装置。
  5. 前記制御部は、外部から受信する指示信号に基づいて、前記データセットを生成して前記第2記憶領域に書き込む周期を変更する請求項1から4のいずれか1項に記載の記憶装置。
  6. 前記第1記憶領域と前記第2記憶領域は、一つのメモリチップに包含されている請求項1から5のいずれか1項に記載の記憶装置。
  7. 前記第1記憶領域を有する第1メモリチップと、
    前記第2記憶領域を有する、前記第1メモリチップとは異なる第2メモリチップと
    を備え、
    前記第1メモリチップのデータ書込可能速度は、前記第2メモリチップのデータ書込可能速度よりも早い請求項1から5のいずれか1項に記載の記憶装置。
  8. リセット信号を受信するまでは上書きされない第3記憶領域を備え、
    前記制御部は、外部から保存信号を受信したら、前記第2記憶領域に記憶されている複数の前記データセットから予め定められた個数分のデータセットを前記第3記憶領域へコピーする請求項1から7のいずれか1項に記載の記憶装置。
  9. 前記制御部は、前記保存信号を受信するたびに、前記第2記憶領域として利用していた領域の一部を前記第3記憶領域へ変更する請求項8に記載の記憶装置。
  10. 前記制御部は、前記第2記憶領域の記憶容量が前記個数分のデータセットを記憶する容量を下回ったら警告信号を出力する請求項9に記載の記憶装置。
  11. 前記制御部は、前記保存信号に基づいて、前記第3記憶領域へコピーするデータセットの個数を変更する、又は、前記第3記憶領域へコピーする前記個数分のデータセットを、前記第2記憶領域に記憶されている前記複数の前記データセットの中の他のデータセットに変更する請求項8から10のいずれか1項に記載の記憶装置。
  12. 前記複数のセンサと請求項から11のいずれか1項に記載の記憶装置を搭載する移動ロボットであって、
    移動に関する予め定められた状況を前記複数のセンサのいずれかが検知した場合に、前記保存信号を前記記憶装置へ送信する送信部を備える移動ロボット。
  13. 前記移動に関する予め定められた状況は、進行方向に段差が存在する状況を含む請求項12に記載の移動ロボット。
  14. 種類の異なる複数のセンサのサンプリングデータを記憶装置に記憶する記憶方法であって、
    前記記憶装置の第1記憶領域を前記複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域として利用して、前記複数のセンサのサンプリングデータを前記複数のセンサ領域のそれぞれにリングバッファ形式によって書き込む第1記憶ステップと、
    前記記憶装置の第2記憶領域を前記複数のセンサのうちサンプリング周期が最長のセンサの一周期分のサンプリングデータと、前記一周期分のサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを前記複数のセンサ領域から読み出して一纏めにしたデータセットを書き込むための記憶領域として利用して、所定のタイミングで前記データセットを生成して前記第2記憶領域にリングバッファ形式によって書き込む第2記憶ステップと
    を含む記憶方法。
  15. 種類の異なる複数のセンサのサンプリングデータを記憶装置に記憶する記憶プログラムであって、
    前記記憶装置の第1記憶領域を前記複数のセンサのそれぞれに対して複数周期分のサンプリングデータを書き込む記憶容量が割り当てられた複数のセンサ領域として利用して、前記複数のセンサのサンプリングデータを前記複数のセンサ領域のそれぞれにリングバッファ形式によって書き込む第1記憶ステップと、
    前記記憶装置の第2記憶領域を前記複数のセンサのうちサンプリング周期が最長のセンサの一周期分のサンプリングデータと、前記一周期分のサンプリングデータが生成された期間に対応する他のセンサのサンプリングデータとを前記複数のセンサ領域から読み出して一纏めにしたデータセットを書き込むための記憶領域として利用して、所定のタイミングで前記データセットを生成して前記第2記憶領域にリングバッファ形式によって書き込む第2記憶ステップと
    をコンピュータに実行させる記憶プログラム。
JP2017016761A 2017-02-01 2017-02-01 記憶装置、移動ロボット、記憶方法及び記憶プログラム Active JP6652079B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017016761A JP6652079B2 (ja) 2017-02-01 2017-02-01 記憶装置、移動ロボット、記憶方法及び記憶プログラム
US15/841,748 US11020855B2 (en) 2017-02-01 2017-12-14 Storage device, mobile robot, storage method, and storage program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017016761A JP6652079B2 (ja) 2017-02-01 2017-02-01 記憶装置、移動ロボット、記憶方法及び記憶プログラム

Publications (2)

Publication Number Publication Date
JP2018124818A JP2018124818A (ja) 2018-08-09
JP6652079B2 true JP6652079B2 (ja) 2020-02-19

Family

ID=62977009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017016761A Active JP6652079B2 (ja) 2017-02-01 2017-02-01 記憶装置、移動ロボット、記憶方法及び記憶プログラム

Country Status (2)

Country Link
US (1) US11020855B2 (ja)
JP (1) JP6652079B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11969902B1 (en) * 2017-05-22 2024-04-30 AI Incorporated Method for robotic devices to interact with each other
JP6881268B2 (ja) * 2017-12-05 2021-06-02 トヨタ自動車株式会社 把持装置、把持判定方法および把持判定プログラム
JP6805453B1 (ja) * 2019-11-26 2020-12-23 株式会社安川電機 電力変換装置、制御装置、データ蓄積装置及びデータ蓄積方法
JP7287318B2 (ja) * 2020-03-17 2023-06-06 株式会社デンソー 車両用データ記録装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10309683A (ja) 1997-05-07 1998-11-24 Sankyo Seiki Mfg Co Ltd ロボットのエラー解析方法及びロボット
JP4394780B2 (ja) 1999-10-08 2010-01-06 クラリオン株式会社 移動体情報記録装置
US6898235B1 (en) * 1999-12-10 2005-05-24 Argon St Incorporated Wideband communication intercept and direction finding device using hyperchannelization
DE102004047780A1 (de) * 2004-10-01 2006-04-06 Robert Bosch Gmbh Verfahren zum Auslesen von Sensordaten
CN102203813B (zh) * 2008-11-04 2014-04-09 株式会社日立制作所 信息处理***
US9406336B2 (en) * 2010-08-26 2016-08-02 Blast Motion Inc. Multi-sensor event detection system
DE102010062567A1 (de) * 2010-12-07 2012-06-14 Robert Bosch Gmbh Verfahren, Sensormodul und System zur Datenübertragung
US10198397B2 (en) * 2016-11-18 2019-02-05 Microsoft Technology Licensing, Llc Flow control in remote direct memory access data communications with mirroring of ring buffers

Also Published As

Publication number Publication date
JP2018124818A (ja) 2018-08-09
US20180215042A1 (en) 2018-08-02
US11020855B2 (en) 2021-06-01

Similar Documents

Publication Publication Date Title
JP6652079B2 (ja) 記憶装置、移動ロボット、記憶方法及び記憶プログラム
US20180057265A1 (en) Optimizing movement of robotic drive units
US9604362B2 (en) Method and apparatus for failure handling of a robot
KR20170131603A (ko) 로봇 시스템 컴포넌트 사용의 클라우드-기반 분석
CN109719702A (zh) 机器人***、机器人控制器以及机器人的退避方法
KR20070024415A (ko) 정보 기록 장치, 및 정보 기록 방법, 및 컴퓨터 프로그램
US6819524B2 (en) Storage device apparatus having multiple interfaces
US6693859B1 (en) Gripper assembly apparatus for interfacing with a storage device
JP7041047B2 (ja) 移動体の制御システム、及び、その制御方法
JP7115313B2 (ja) 制御システム、制御方法およびプログラム
KR20220120009A (ko) 로봇의 충돌 감지 장치 및 그 방법
JP4023614B2 (ja) 把持装置、把持制御方法及び把持制御プログラム並びに記録媒体
TW202141254A (zh) 資訊處理裝置、資訊處理方法及資訊處理程式產品
CN111699078A (zh) 机器人的运行
JP2024077211A (ja) カートロボット、および、プログラム
JP2024065404A (ja) 方法、システム、および、プログラム
JP7069592B2 (ja) ロボットアームおよびロボット
JP2024086369A (ja) カートロボット、および、プログラム
JP2024063698A (ja) カートロボット、および、プログラム
JP4399814B2 (ja) 映像記録装置
JP2024068047A (ja) カートロボットを用いたピッキングシステムおよびプログラム
JP4318121B2 (ja) モータ駆動用パルス出力ic
CN115213883A (zh) 机器人控制方法、装置、介质及设备
Bistry et al. Development of a smart laser range finder for an autonomous service robot
JP2024077104A (ja) カートロボットおよびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180913

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191002

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200106

R151 Written notification of patent or utility model registration

Ref document number: 6652079

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151