以下、実施形態について図面を参照しつつ説明する。なお、本出願において図面参照符号を付している場合は、それらは、専ら理解を助けるためのものであり、図示の態様に限定することを意図するものではない。また、下記の実施形態は、あくまで例示であり、本発明を限定するものではない。また、以降の説明で参照する図面等のブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。さらに、本願開示に示す回路図、ブロック図、内部構成図、接続図などにおいて、明示は省略するが、入力ポート及び出力ポートが各接続線の入力端及び出力端のそれぞれに存在する。入出力インタフェイスも同様である。プログラムはコンピュータ装置を介して実行され、コンピュータ装置は、例えば、プロセッサ、記憶装置、入力装置、通信インタフェイス、及び必要に応じ表示装置を備え、コンピュータ装置は、通信インタフェイスを介して装置内又は外部の機器(コンピュータを含む)と、有線、無線を問わず、交信可能に構成される。
[実施形態1]
実施形態1に係る移動体制御システムについて図面を用いて説明する。図1は、実施形態1に係る移動体制御システムの構成を模式的に示したブロック図である。図2は、実施形態1に係る移動体制御システムの使用態様の一例を模式的に示したイメージ図である。図3は、実施形態1に係る移動体制御システムにおいて用いられる物品位置情報の一例を模式的に示したテーブルである。図4は、実施形態1に係る移動体制御システムにおいて用いられる物品位置誤差情報の一例を模式的に示したテーブルである。
移動体制御システム1は、予め基準点(図2では壁10、柱11の所定の位置)に付された基準点マーカー12を利用して移動体30を制御するシステムである(図1参照)。移動体制御システム1は、基準点マーカー12に係る情報(識別情報、絶対位置、絶対方向、サイズ)を利用して、移動体30が予め設定されたマップ上の走行経路に沿って自立して移動制御するように構成されている。図1の移動体制御システム1は、図2のように、移動体30を用いて、自動的に、倉庫5内の複数(複数個又は複数種類)の物品20の位置(絶対位置)を管理(棚卸管理)するものに適用したものであるが、これに限られるものではない。移動体制御システム1は、物流業や倉庫業における棚卸管理だけでなく、製造業の工場、トンネル、道路などの公共インフラにおける自動点検(自動で走行して点検するケース)、移動体30の自動運転にも適用することができる。移動体制御システム1は、1又は複数の基準点マーカー12と、1又は複数の物品マーカー21と、1又は複数の移動体30と、サーバ装置50と、を備える。
ここで、図2の倉庫5内の壁10、柱11等の基準点には、当該基準点を識別する基準点マーカー12a、12b(図1の基準点マーカー12に相当)が付されている。基準点マーカー12a、12bは、ランドマークの役割を果たす。基準点マーカー12a、12bは、移動体30によって検出可能であり、移動体30や物品20の位置を計算する際の基礎となる。基準点マーカー12a、12bは、少なくとも1つあればよく、複数ある場合には重複することがないように管理される。基準点(壁10、柱11)と基準点マーカー12a、12bとは、1対1で対応する。基準点マーカー12a、12bは、それぞれ、一意に識別可能な識別情報と、絶対位置(座標)と、絶対方向(姿勢:マーカー面が向いている方向)と、サイズ(マーカー辺長、大きさ、面積等)と、が関連付けて管理されている。基準点マーカー12a、12bが識別されれば、基準点(壁10、柱11)の絶対位置を特定することができる。
また、図2の倉庫5おいて、複数の物品20が任意の位置に配されている。物品20は、例えば、パレットに積まれたコンテナ、ダンボールや箱、機械、装置等である。複数の物品20のそれぞれには、物品マーカー21が付されている。物品マーカー21は、移動体30によって検出可能であり、移動体30と物品20との相対位置を計算する際に用いられる。複数の物品マーカー21は、重複することがないように管理されている。物品20と物品マーカー21とは、1対1で対応する。物品マーカー21は、それぞれ、一意に識別可能な識別情報と、サイズ(マーカー辺長、大きさ、面積等)が関連付けて管理されている。物品マーカー21が一意に識別され、かつ、物品マーカー21の位置が特定されれば、物品20の位置が特定されたことになる。
基準点マーカー12a、12b及び物品マーカー21として、移動体30によって検出可能であり、かつ、移動体30とマーカー12a、12b、21との相対位置が計算可能であれば、任意の形状やサイズのマーカーを使用することができ、例えば、ArUcoマーカー、QR(Quick Response)コード、AR(Augmented Reality)マーカー等を使用することができる。基準点マーカー12a、12b及び物品マーカー21には、マーカーの印刷物を利用することができる。印刷されたマーカーは、物品20や倉庫5の所定位置に貼り付けられる。
移動体30は、自立して移動する物体である(図1、図2参照)。移動体30は、倉庫5内を走行する。移動体30は、1台に限らず、複数台でもよい。移動体30は、サーバ装置50と通信可能(無線通信可能、有線通信可能)に接続されている。移動体30は、ネットワーク(図示せず)を介してサーバ装置50と通信可能に接続されていてもよい。移動体30として、図1では地面13を移動することが可能な移動ロボットを用いているが、倉庫5内で位置の変更が可能なものであればよく、例えば、フォークリフト等の作業ロボット、倉庫5内の空間を移動することが可能なドローン、天井に敷設されたレール上を移動するような移動体、倉庫5内を巡回する歩行型ロボット等を用いてもよい。
移動体30は、移動しながら、基準点マーカー12a又は12b、若しくは、物品マーカー21を撮影する機能を有する。移動体30は、撮影された画像における基準点マーカー12a又は12bを解析して、移動体30と基準点マーカー12a又は12bとの相対位置を計算し、予め設定された基準点マーカー12a又は12bの絶対位置に基づいて移動体30の絶対位置を計算する機能を有する。移動体30は、撮影された画像における物品マーカー21を解析して、移動体30と物品マーカー21との相対位置を計算し、計算された移動体30の絶対位置に基づいて物品マーカー21の絶対位置を計算する機能を有する。移動体30は、物品マーカー21の絶対位置(物品20の絶対位置に相当)を含む物品位置情報をサーバ装置50に送信する機能を有する。移動体30は、基準点マーカー12a又は12b若しくは物品マーカー21を撮影した際に発生する基準点マーカー12a又は12b若しくは物品マーカー21の位置の推定最大誤差値を計算し、計算された推定最大誤差値に基づいて移動体30の移動速度を制御する機能を有する。
移動体30は、移動ロボットである場合、フレーム、移動可能手段(車輪、無限軌道等)、動力源(モータ等)、動力伝達機構(トランスミッション等)、電源(バッテリ等)、操縦手段(舵等)、接触や衝突を防ぐ安全機能、通信機能、カメラ等を備えるものとすることができる。移動体30は、メモリ、プロセッサ等を含むコンピュータを備える。移動体30は、当該メモリを利用しながら、当該プロセッサにおいてプログラムを実行することにより、仮想的に、撮影部31と、位置計算部32と、誤差計算部33と、移動体制御部34と、位置情報送信部35と、記憶部36と、駆動部37と、を備えた構成とすることができる。
撮影部31は、基準点マーカー12(12a、12b)及び物品マーカー21を撮影する機能部である(図1、図2参照)。撮影部31は、撮影された画像(例えば、2次元画像、3次元画像)に係るデータ(画像データ)を生成する。撮影部31は、生成された画像データを位置計算部32及び誤差計算部33に向けて出力する。
位置計算部32は、画像データを解析することによって移動体30及び物品20の絶対位置を計算する機能部である(図1参照)。位置計算部32は、撮影部31から画像データを取得する。位置計算部32は、記憶部36から撮影設定情報(例えば、解像度、画角、シャッタースピード、絞り値、ズーム等)を取得する。位置計算部32は、取得した撮影設定情報を用いて、取得した画像データを解析して、基準点マーカー12及び物品マーカー21に係る各識別情報を検出する。
位置計算部32は、検出された基準点マーカー12に係る認識情報に基づいて、記憶部36から、対応する基準点マーカー12に関する情報(絶対位置、絶対方向、サイズ)を取得する。位置計算部32は、取得した基準点マーカー12に関する情報(絶対方向、サイズ)と、取得した画像データ(基準点マーカー12の画像)とに基づいて、基準点マーカー12と移動体30との相対位置を計算する。位置計算部32は、取得した基準点マーカー12に関する情報(絶対位置)と、計算された基準点マーカー12と移動体30との相対位置とに基づいて、移動体30の絶対位置(座標、姿勢)を計算する。位置計算部32は、計算された移動体30の絶対位置(相対位置でも可)を含む移動体位置情報を移動体制御部34及び誤差計算部33に向けて出力する。
位置計算部32は、検出された物品マーカー21に係る認識情報に基づいて、記憶部36から、対応する物品マーカー21に関する事前設定情報(サイズ)を取得する。位置計算部32は、取得した物品マーカー21に関する事前設定情報(サイズ)と、取得した画像データ(物品マーカー21の画像)とに基づいて、物品マーカー21と移動体30との相対位置を計算する。位置計算部32は、計算された移動体30の絶対位置と、計算された物品マーカー21と移動体30との相対位置とに基づいて、物品マーカー21の絶対位置(座標、姿勢)を計算する。位置計算部32は、計算された物品マーカー21の絶対位置(相対位置でも可)を含む物品位置情報(例えば、図3参照)を誤差計算部33及び位置情報送信部35に向けて出力する。
なお、基準点マーカー12と移動体30との相対位置の計算、及び、物品マーカー21と移動体30との相対位置の計算に関する相対位置の計算方法として、例えば、PNP(Perspective-n-Point)手法などの公知の計算方法を用いることができる。
ここで、物品マーカー21に係る物品位置情報は、図3のように、物品マーカー21の識別情報(ID)、座標情報(X軸座標(X)、Y軸座標(Y)、Z軸座標(Z))、姿勢情報(Z軸の角度(Yaw)、Y軸の角度(Pitch)、及び、X軸の角度(Roll))が関連付けられた情報である。
誤差計算部33は、マーカー(基準点マーカー12又は物品マーカー21)の位置の推定最大誤差値(例えば、図4の推定最大誤差値を参照)を計算する機能部である(図1参照)。誤差計算部33は、記憶部36から撮影設定情報を取得する。誤差計算部33は、記憶部36からマーカーに関する事前設定情報(識別情報、サイズ等)を取得する。誤差計算部33は、位置計算部32から、マーカーと移動体30との間の距離を計算するのに必要な情報を取得する。基準点マーカー12と移動体30との間の距離を計算するのに必要な情報を取得する場合、誤差計算部33は、位置計算部32から、基準点マーカー12と移動体30との相対位置に関する情報を取得してもよく、あるいは、記憶部36から、物品マーカー21に関する事前設定情報を取得し、かつ、位置計算部32から、移動体位置情報を取得してもよい。物品マーカー21と移動体30との間の距離を計算するのに必要な情報を取得する場合、誤差計算部33は、位置計算部32から、物品マーカー21と移動体30との相対位置に関する情報を取得してもよく、あるいは、位置計算部32から、物品位置情報及び移動体位置情報を取得してもよい。誤差計算部33は、取得した情報に基づいて、基準点マーカー12又は物品マーカー21の位置の推定最大誤差値(例えば、図4の推定最大誤差値(座標誤差(例えば、数式4参照)、姿勢誤差(例えば、数式5、6参照))を参照)を計算する。誤差計算部33は、計算された推定最大誤差値を移動体制御部34に向けて出力する。誤差計算部33は、計算した推定最大誤差値が物品マーカー21の位置の推定最大誤差値である場合、取得した物品位置情報と、計算された物品マーカー21の位置の推定最大誤差値とを含む物品位置誤差情報(例えば、図4参照)を移動体制御部34に向けて出力するようにしてもよい。なお、推定最大誤差値の計算方法の詳細は、後述する(図5~図10参照)。
移動体制御部34は、駆動部37を制御することにより移動体30の移動を制御する機能部である(図1参照)。移動体制御部34は、位置計算部32から、移動体位置情報を取得する。移動体制御部34は、取得した移動体位置情報を確認しながら、予め設定されたマップ上の経路情報にしたがって(経路情報から外れないように修正しながら)移動体30を移動させるように制御する。
移動体制御部34は、位置計算部32から、物品位置情報を取得する。移動体制御部34は、取得した移動体位置情報及び物品位置情報に基づいて、移動体30が物品20と抵触しないように移動体30の移動を制御する。
移動体制御部34は、記憶部36から、誤差閾値(予め設定された閾値)を取得する。移動体制御部34は、誤差計算部33から、基準点マーカー12又は物品マーカー21の位置の推定最大誤差値を取得する。移動体制御部34は、推定最大誤差値(座標誤差、姿勢誤差)が誤差閾値(座標誤差用閾値、姿勢誤差用閾値)よりも大きいか否かを判断する。移動体制御部34は、推定最大誤差値が誤差閾値よりも大きい場合に、移動体30の移動速度が基準移動速度(予め設定された基準移動速度)よりも小さくなるように移動体30の移動を制御する。移動体制御部34は、推定最大誤差値が誤差閾値以下である場合に、移動体30の移動速度が基準移動速度以上となるように移動体30の移動を制御する。移動体制御部34は、基準移動速度以上となるように移動体30の移動を制御する際、最大移動速度(予め設定された最大移動速度)以下となるように移動体30の移動を制御するようにしてもよい。推定最大誤差値が誤差閾値よりも大きいか否かの判断では、座標誤差及び姿勢誤差の全てが座標誤差用閾値及び姿勢誤差用閾値より大きいか否かを判断するようにしてもよく、座標誤差及び姿勢誤差のいずれかが座標誤差用閾値及び姿勢誤差用閾値より大きいか否かを判断するようにしてもよい。
なお、移動体制御部34で推定最大誤差値が誤差閾値よりも大きいか否かを判断した結果は、マーカーの写り具合が悪く、正確な位置を得られない状況であることを検出することにも利用することができる。これにより、移動体30上での計算量を削減し、移動体30を早く制御できる。また、マーカーの撮影状況の悪化を検出することにも利用することができる。
位置情報送信部35は、位置計算部32から取得した物品位置情報(例えば、図3参照)をサーバ装置50に向けて送信する機能部である(図1参照)。
記憶部36は、各種データを記憶する機能部である(図1参照)。記憶部36は、例えば、撮影部31に関する撮影設定情報(解像度、画角、シャッタースピード、絞り値、ズーム等)、基準点マーカー12に関する事前設定情報(識別情報、絶対位置、絶対方向、大きさ等)、物品マーカー21に関する事前設定情報(識別情報、大きさ等)、移動体30が走行するマップ(経路情報等)、誤差閾値等を記憶する。
駆動部37は、移動体30を駆動する機能部である(図1参照)。駆動部37は、移動体制御部34の制御によって、移動体30が前進、後退、左折、右折するように移動体30を駆動する。駆動部37は、移動体制御部34の制御によって、移動体30の移動速度を制御する。
サーバ装置50は、移動体30からの物品位置情報に基づいて倉庫5内の各物品20の位置を管理(棚卸管理)する装置である(図1、図2参照)。サーバ装置50は、倉庫5以外の、例えば、事務所に設置してもよい。サーバ装置50は、移動体30と通信可能(無線通信可能、有線通信可能)に接続されている。サーバ装置50は、ネットワーク(図示せず)を介して移動体30と通信可能に接続されていてもよい。サーバ装置50は、メモリ、プロセッサ等を含むコンピュータを備える。サーバ装置50は、当該メモリを利用しながら、当該プロセッサにおいてプログラムを実行することにより、仮想的に、位置情報受信部51と、物品位置管理部52と、を備える。
位置情報受信部51は、移動体30から送信された物品位置情報(例えば、図3参照)を受信する機能部である(図1参照)。位置情報受信部51は、受信した物品位置情報を物品位置管理部52に向けて出力する。
物品位置管理部52は、位置情報受信部51からの物品位置情報に基づいて各物品20の位置を管理(棚卸管理)する機能部である(図1参照)。物品位置管理部52は、物品の個数をカウントする機能も有する。
次に、実施形態1に係る移動体制御システムにおいてマーカーの位置誤差及び姿勢誤差の発生要因について図面を用いて説明する。ここでは、マーカーとして物品マーカー21を例に説明するが、基準点マーカー12を用いてもよい。図5は、マーカーの位置誤差の発生要因を模式的に示したイメージ図である。図6は、マーカーの水平方向又は垂直方向の位置誤差を模式的に示したイメージ図である。図7は、マーカーの前後方向の位置誤差を模式的に示したイメージ図である。図8は、マーカーの姿勢誤差を模式的に示したイメージ図である。図9は、マーカーのX軸の角度誤差を模式的に示したイメージ図である。図10は、マーカーのY軸又はZ軸の角度誤差を模式的に示したイメージ図である。
図5は、物品マーカー21の位置誤差の発生要因を図示している。物品マーカー21と撮影部31(=移動体30)との相対位置の計算方法として用いられるPNP手法では、物品マーカー21及び撮影部31の位置(座標、姿勢)を計算する際に、物品マーカー21の四隅の頂点を検出して位置を計算している。この頂点の検出ズレが誤差の要因となる。物品マーカー21を撮影部31で撮影した際に画像内にある物品マーカー21の四隅は撮影部31の性能(画角、解像度)に従い1Pixelの検出幅が存在する。この1Pixelの検出幅が位置誤差(座標誤差、姿勢誤差)として計算可能となる。なお、この1Pixelの検出幅はピントが合っている時に成り立つものであり、ピントが合っていない時は1Pixelを超える誤差が発生し得る。ここでは、ピントが合っている状況(検出幅が1Pixel以内)を前提に説明する。ピントが合わないケースについては後述する。
撮影部31がX軸のプラス方向を向いている場合、物品マーカー21が撮影部31に正対しているとすると、物品マーカー21の位置に係る座標は、前後方向のX軸、水平方向のY軸、垂直方向のZ軸で表現することができる(図5(A)参照)。物理的に測定した(x,y,z)と、論理的に推定した(x’,y’,z’)との差分がマーカーの座標誤差となる。
物品マーカー21の四隅の頂点の座標に基づいて、物品マーカー21の座標を推定することができる(図5(B)参照)。撮影されるPixelの大きさにより四隅の頂点にズレが発生する。これが座標誤差の要因となる。
物品マーカー21の四隅(頂点)を計算し、物品マーカー21の座標を推定する際に、撮影部31の受光時の物品マーカー21の右上の角の部分は図5(C)のようになる。受光した結果の物品マーカー21の右上の角の部分は、図5(D)のようにボケが発生し、このボケが誤差の要因となる。
図6及び図7は、物品マーカー21の座標誤差の原理を図示している。座標誤差における水平方向の誤差は、物品マーカー21が横方向にずれる場合である(図6参照)。水平方向の誤差は、最大1Pixelの誤差が発生するため、最大1Pixel幅となる。1Pixelの大きさは、撮影部31と物品マーカー21との間の距離による。水平方向(Y軸方向)の誤差「Y」は、数式1のように表すことができる。数式1において、「H」は撮影部31の水平方向の画角を表し、「L」は撮影部31と物品マーカー21との間の距離を表し、「Rh」は撮影部31の水平方向の画素数を表す。
座標誤差における垂直方向の誤差は、物品マーカー21が上下方向にずれる場合である(図6参照)。垂直方向の誤差も、水平方向の誤差と同様に、最大1Pixelの誤差が発生するため、最大1Pixel幅となる。1Pixelの大きさは、撮影部31と物品マーカー21との間の距離による。垂直方向(Z軸方向)の誤差「Z」は、数式2のように表すことができる。数式2において、「V」は撮影部31の垂直方向の画角を表し、「L」は撮影部31と物品マーカー21との間の距離を表し、「Rv」は撮影部31の垂直方向の画素数を表す。
座標誤差における前後方向の誤差は、物品マーカー21が遠近方向にずれる場合である(図7参照)。前後方向の誤差は、物品マーカー21の形状が小さくなり手前方向に見えてしまうケースと、物品マーカー21の形状が大きくなり奥方向に見えてしまうケースと、がある。図7の三角形T1、T2は、どちらも同じ大きさであり、物品マーカー21の前後方向の誤差は手前方向も奥方向も誤差「X」で同じである。前後方向の誤差は、最大1Pixelのずれが発生するため、最大1Pixel幅となる。1Pixelの大きさは、撮影部31と物品マーカー21との間の距離による。前後方向(X軸方向)の誤差「X」は、数式3のように表すことができる。数式3において、「M」は物品マーカー21の辺長を表し、「C」は水平方向又は垂直方向の誤差(マーカー辺長Mと線長A又は線長Bとの差:水平方向の誤差「Y」又は垂直方向又は誤差「Z」に相当)を表し、「L」は撮影部31と物品マーカー21との間の距離を表す。
これら、水平/垂直/前後方向(Y軸/Z軸/X軸方向)の各誤差を合成した結果がマーカーの推定最大誤差値における座標誤差Gであり、座標誤差Gは数式4のように表すことができる。
[数式4]
図8は、物品マーカー21の姿勢誤差(角度誤差)の原理を図示している。角度誤差は、物品マーカー21の向きのズレを示しており、図8では頂点の検出が上下方向にずれた場合を示している。図8の頂点P1、P2の拡大図のように、左上の頂点P1を上方向、かつ、右上の頂点P2を下方向に誤認識した場合に、角度誤差が最大になる。このように頂点の認識にズレが発生した場合、物品マーカー21の姿勢誤差(角度誤差)が発生する。
図9、図10は、マーカーの姿勢誤差(角度誤差)の原理をX軸とY軸/Z軸とに分けて図示している。X軸の角度誤差(姿勢誤差)は、物品マーカー21がX軸を中心軸として回転して見える回転誤差であり、図5のRollに相当する(図9参照)。X軸の角度誤差は、図8のように、最大2Pixcelの誤差が発生する。マーカー辺長Mと2Pixcelの誤差(数式1の水平方向の誤差Yの2倍)により得られる三角形T3の角度「D1」が、X軸の角度誤差となる。X軸の角度誤差「D1」は、数式5のように表すことができる。
Y軸及びZ軸の各角度誤差(姿勢誤差)は、物品マーカー21の頂点が前後方向に誤検出する際に発生する回転誤差であり、図5のYaw及びPitchに相当する(図10参照)。Y軸及びZ軸の各角度誤差は、物品マーカー21が回転した際に誤差C(数式1の誤差Y、又は、数式2の誤差Zに相当:1Pixelの誤差)分小さく撮影されることから、Y軸又はZ軸の角度誤差が発生する。マーカー辺長M/2と誤差C(誤差Y、誤差Z)により得られる三角形T4の角度「D2」が、Y軸又はZ軸の角度誤差となる。Y軸又はZ軸の各角度誤差「D2」は、数式6のように表すことができる。
[数式6]
なお、物品マーカー21の推定最大誤差値における姿勢誤差(角度誤差)は、X軸のRoll、Y軸のPitch、Z軸のYaw、それぞれを角度誤差とし、合成はしない。
以上は、ピントが合っている状態で撮影できていることが前提である。撮影環境(明るさや撮影部31のブレなど)によっては、1Pixelを超える検出間違いが発生し得る。撮影環境は撮影部31の撮影設定情報や移動体30の制御情報から推定可能である。焦点距離と絞り値からピントが合っている範囲を計算することができる。そのため、マーカーの事前設定情報から得られる撮影部31とマーカーとの間の距離が所定範囲内にあるかどうかでピントが合っているかどうかを判定することができる。また、シャッタースピードが短ければ短いほど、マーカーがクリアに撮影されているかどうかを判定することができる。さらに、移動体30の移動速度や振動を取得することで撮影部31のブレが取得できるため、マーカーがクリアに撮影されているかどうかを判定することができる。以上のように、撮影部31の撮影設定情報や移動体30の制御情報から、マーカーの四隅の検出が何Pixel発生しうるかを予め定義しておくことで、ピントの合わない状況では、2Pixelの誤差が生じうるとして誤差計算するなど、ピントが合わない状況に置いても誤差計算が可能である。
次に、実施形態1に係る移動体制御システムの物品位置管理動作について図面を用いて説明する。図11は、実施形態1に係る移動体制御システムの物品位置管理動作を模式的に示したフローチャートである。
まず、移動体30は、撮影部31により、マーカー(基準点マーカー12、物品マーカー21)を撮影する(ステップA1)。
次に、移動体30は、位置計算部32により、撮影された画像に基づいて、自身及び物品20の各位置を計算する(ステップA2)。
次に、移動体30は、移動体制御部34により、計算された自身の位置に基づいて、記憶部36に記憶されている走行経路に沿って自身が走行するように制御する(ステップA3)。
次に、移動体30は、位置情報送信部35により、計算された物品20の位置に係る情報(物品位置情報)をサーバ装置50に送信する(ステップA4)。その後、スタートに戻る。
次に、サーバ装置50は、位置情報受信部51により、移動体30からの物品位置情報を受信する(ステップA5)。
次に、サーバ装置50は、物品位置管理部52により、受信した物品位置情報に基づいて、物品20の位置を棚卸結果として蓄積する(ステップA6)。その後、スタートに戻る。なお、蓄積された棚卸結果は、ユーザによる棚卸操作を受けた際に出力することができる。また、ユーザによる位置確認操作を受けた際には、物品20の位置の表、もしくは、マップ上に物品20を配置した図を出力することができる。
次に、実施形態1に係る移動体制御システムにおける移動体の移動体制御動作(図11のステップA3の詳細)について図面を用いて説明する。図12は、実施形態1に係る移動体制御システムにおける移動体の移動体制御動作を模式的に示したフローチャートである。
ステップA2の後、移動体30は、誤差計算部33により、計算された自身及び物品20の各位置、記憶部36に記憶された撮影設定情報、及び、物品マーカー21に関する事前設定情報(識別情報、サイズ等)に基づいて、推定最大誤差値を計算する(ステップB1)。
次に、移動体30は、移動体制御部34により、計算された推定最大誤差値が、記憶部36に記憶された誤差閾値よりも大きいか否かを判断する(ステップB2)。
推定最大誤差値が誤差閾値よりも大きい場合(ステップB2のYES)、移動体30は、移動体制御部34により、計算された自身の位置に基づいて、記憶部36に記憶されている走行経路に沿って自身が走行するように制御しつつ、自身の移動速度が基準移動速度(予め設定された基準移動速度)よりも小さくなるように自身の走行を制御し(ステップB3)、その後、ステップA4に進む。
推定最大誤差値が誤差閾値以下である場合(ステップB2のNO)、移動体30は、移動体制御部34により、計算された自身の位置に基づいて、記憶部36に記憶されている走行経路に沿って自身が走行するように制御しつつ、自身の移動速度が基準移動速度以上となるように自身の走行を制御し(ステップB4)、その後、ステップA4に進む。
実施形態1によれば、移動体30からマーカー(12又は21)を撮影した際の撮影環境や移動状況を考慮して計算された推定最大誤差値を用いて移動体30の移動速度を制御しているので、撮影した際の撮影環境誤差や移動状況誤差による影響を軽減し、移動体30を正確に移動制御することに貢献することができる。
また、実施形態1によれば、推定最大誤差値が小さく撮影環境誤差や移動状況誤差による影響が小さいときに移動体30の移動速度が大きくなるように制御しているので、移動体30を素早く移動させることができるとともに、物品20の位置を素早く管理することができる。
また、実施形態1によれば、推定最大誤差値が大きく撮影環境誤差や移動状況誤差による影響が大きいときに移動体30の移動速度が小さくなるように制御しているので、移動体30を正確に移動させることができるとともに、移動体30の位置精度を向上させることができるため、移動体30が収集する物品マーカー21の位置精度も向上させることができ、物品20の位置を正確に管理することができる。
また、実施形態1によれば、移動体30からマーカーを撮影した結果得られる移動体30とマーカーとの間の距離だけでなく、撮影した際の撮影環境や移動状況を考慮してマーカーの位置の推定最大誤差値を計算しているので、より正確なマーカーの位置の推定を求めることができる。
[実施形態2]
実施形態2に係る移動体制御システムについて図面を用いて説明する。図13は、実施形態2に係る移動体制御システムの構成を模式的に示したブロック図である。
実施形態2は、実施形態1の変形例であり、実施形態1の移動体30で行っている位置計算及び誤差計算を、サーバ装置50で行うようにしたものである。
移動体制御システム2は、予め基準点に付された基準点マーカー12を利用して移動体40を制御するシステムである(図13参照)。移動体制御システム2は、基準点マーカー12に係る情報(識別情報、絶対位置、絶対方向、サイズ)を利用して、サーバ装置60の制御によって、予め設定されたマップ上の走行経路に沿って移動体40を移動させるように構成されている。移動体制御システム2は、1又は複数の基準点マーカー12と、1又は複数の物品マーカー21と、1又は複数の移動体40と、サーバ装置60と、を備える。基準点マーカー12及び物品マーカー21は、実施形態1の基準点マーカー12及び物品マーカー21と同様である。
移動体40は、サーバ装置60の制御によって移動する物体である(図13参照)。移動体40は、実施形態1(図1参照)の移動体30と同様なものであるが、プログラムを実行することにより、仮想的に、撮影部41と、送信部42と、受信部43と、移動体制御部44と、駆動部45と、を備えた構成とすることができる。撮影部41、及び、駆動部45は、実施形態1(図1参照)の撮影部31、及び、駆動部37と同様である。
送信部42は、所定のデータをサーバ装置60に送信する機能部である(図13参照)。送信部42は、サーバ装置60と通信可能(無線通信可能、有線通信可能)に接続されている。送信部42は、ネットワーク(図示せず)を介してサーバ装置60と通信可能に接続されていてもよい。送信部42は、撮影部41で生成された画像データをサーバ装置60に送信する。
受信部43は、サーバ装置60からの所定のデータを受信する機能部である(図13参照)。受信部43は、サーバ装置60と通信可能(無線通信可能、有線通信可能)に接続されている。受信部43は、ネットワーク(図示せず)を介してサーバ装置60と通信可能に接続されていてもよい。受信部43は、サーバ装置60からの制御情報を受信する。受信部43は、受信した制御情報を移動体制御部44に向けて出力する。
移動体制御部44は、駆動部45を制御することにより移動体40の移動を制御する機能部である(図13参照)。移動体制御部44は、受信部43から、制御情報を取得する。移動体制御部44は、取得した制御情報に基づいて、予め設定されたマップ上の経路情報にしたがって(経路情報から外れないように修正しながら)、移動体40が物品20と抵触しないように、移動体40の移動を制御する。移動体制御部44は、取得した制御情報に基づいて、移動体40の移動速度を制御する。
サーバ装置60は、移動体40からの画像データに基づいて、移動体40の移動を制御するとともに、倉庫内の各物品の位置を管理(棚卸管理)する装置である(図13参照)。サーバ装置60は、実施形態1のサーバ装置50と同様なものであるが、プログラムを実行することにより、仮想的に、受信部61と、位置計算部62と、物品位置管理部63と、誤差計算部64と、制御情報生成部65と、送信部66と、記憶部67と、を備えた構成とすることができる。なお、物品位置管理部63、誤差計算部64、及び記憶部67は、実施形態1(図1参照)の物品位置管理部52、誤差計算部33、記憶部36と同様である。
受信部61は、移動体40からの所定のデータを受信する機能部である(図13参照)。受信部61は、移動体40と通信可能(無線通信可能、有線通信可能)に接続されている。受信部61は、ネットワーク(図示せず)を介して移動体40と通信可能に接続されていてもよい。受信部61は、移動体40からの画像データを受信する。受信部61は、受信した画像データを位置計算部62に向けて出力する。
位置計算部62は、画像データを解析することによって移動体40及び物品(物品マーカー21)の絶対位置を計算する機能部である(図13参照)。位置計算部62は、受信部61から画像データを取得する。位置計算部62は、記憶部67から撮影設定情報(例えば、解像度、画角、シャッタースピード、絞り値、ズーム等)を取得する。位置計算部62は、取得した撮影設定情報を用いて、取得した画像データを解析して、基準点マーカー12及び物品マーカー21に係る各識別情報を検出する。
位置計算部62は、検出された基準点マーカー12に係る認識情報に基づいて、記憶部67から、対応する基準点マーカー12に関する情報(絶対位置、絶対方向、サイズ)を取得する。位置計算部62は、取得した基準点マーカー12に関する情報(絶対方向、サイズ)と、取得した画像データ(基準点マーカー12の画像)とに基づいて、基準点マーカー12と移動体40との相対位置を計算する。位置計算部62は、取得した基準点マーカー12に関する情報(絶対位置)と、計算された基準点マーカー12と移動体40との相対位置とに基づいて、移動体40の絶対位置(座標、姿勢)を計算する。位置計算部62は、計算された移動体40の絶対位置(相対位置でも可)を含む移動体位置情報を誤差計算部64及び制御情報生成部65に向けて出力する。
位置計算部62は、検出された物品マーカー21に係る認識情報に基づいて、記憶部67から、対応する物品マーカー21に関する事前設定情報(サイズ)を取得する。位置計算部62は、取得した物品マーカー21に関する事前設定情報(サイズ)と、取得した画像データ(物品マーカー21の画像)とに基づいて、物品マーカー21と移動体40との相対位置を計算する。位置計算部62は、計算された移動体40の絶対位置と、計算された物品マーカー21と移動体40との相対位置とに基づいて、物品マーカー21の絶対位置(座標、姿勢)を計算する。位置計算部62は、計算された物品マーカー21の絶対位置(相対位置でも可)を含む物品位置情報を物品位置管理部63及び誤差計算部64に向けて出力する。
制御情報生成部65は、移動体40の移動を制御するための制御情報を生成する機能部である(図13参照)。制御情報生成部65は、位置計算部62から、移動体位置情報を取得する。制御情報生成部65は、取得した移動体位置情報を確認しながら、予め設定されたマップ上の経路情報にしたがって(経路情報から外れないように修正しながら)移動体40を移動させる制御情報を生成する。
制御情報生成部65は、位置計算部62から、物品位置情報を取得する。制御情報生成部65は、取得した移動体位置情報及び物品位置情報に基づいて、移動体40が物品20と抵触しないように移動体40の移動を制御させる制御情報を生成する。
制御情報生成部65は、記憶部67から、誤差閾値(予め設定された閾値)を取得する。制御情報生成部65は、誤差計算部64から、推定最大誤差値を取得する。制御情報生成部65は、推定最大誤差値(座標誤差、姿勢誤差)が誤差閾値(座標誤差用閾値、姿勢誤差用閾値)よりも大きいか否かを判断する。制御情報生成部65は、推定最大誤差値が誤差閾値よりも大きい場合に、基準移動速度(予め設定された基準移動速度)よりも小さくなるように移動体40の移動を制御させる制御情報を生成する。制御情報生成部65は、推定最大誤差値が誤差閾値以下である場合に、基準移動速度以上となるように移動体40の移動を制御させる制御情報を生成する。制御情報生成部65は、基準移動速度以上となるように移動体40の移動を制御する際、最大移動速度(予め設定された最大移動速度)以下となるように移動体40の移動を制御させる制御情報を生成するようにしてもよい。推定最大誤差値が誤差閾値よりも大きいか否かの判断では、座標誤差及び姿勢誤差の全てが座標誤差用閾値及び姿勢誤差用閾値より大きいか否かを判断するようにしてもよく、座標誤差及び姿勢誤差のいずれかが座標誤差用閾値及び姿勢誤差用閾値より大きいか否かを判断するようにしてもよい。
送信部66は、所定のデータを移動体40に送信する機能部である(図13参照)。送信部66は、移動体40と通信可能(無線通信可能、有線通信可能)に接続されている。送信部66は、ネットワーク(図示せず)を介して移動体40と通信可能に接続されていてもよい。送信部66は、制御情報生成部65で生成された制御情報を移動体40に送信する。
次に、実施形態2に係る移動体制御システムの物品位置管理動作について図面を用いて説明する。図14は、実施形態2に係る移動体制御システムの物品位置管理動作を模式的に示したフローチャートである。
まず、移動体40は、撮影部41により、マーカー(基準点マーカー12、物品マーカー21)を撮影する(ステップC1)。
次に、移動体40は、送信部42により、撮影されたマーカー(基準点マーカー12、物品マーカー21)を含む画像データをサーバ装置60に送信する(ステップC2)。
次に、サーバ装置60は、受信部61により、移動体40からの画像データを受信する(ステップC3)。
次に、サーバ装置60は、位置計算部62により、受信した画像データに基づいて、移動体40及び物品20の各位置を計算する(ステップC4)。
次に、サーバ装置60は、制御情報生成部65により、計算された移動体40の位置に基づいて、記憶部67に記憶されている走行経路に沿って移動体40を走行させるように制御する制御情報を生成する(ステップC5)。
次に、サーバ装置60は、送信部66により、生成された制御情報を移動体40に送信する(ステップC6)。
次に、サーバ装置60は、物品位置管理部63により、計算された物品20の位置を棚卸結果として蓄積する(ステップC7)。その後、スタートに戻る。なお、蓄積された棚卸結果は、ユーザによる棚卸操作を受けた際に出力することができる。また、ユーザによる位置確認操作を受けた際には、物品20の位置の表、もしくは、マップ上に物品20を配置した図を出力することができる。
次に、移動体40は、受信部43により、サーバ装置60からの制御情報を受信する(ステップC8)。
次に、移動体40は、移動体制御部44により、受信した制御情報に基づいて、自身の移動を制御する(ステップC9)。その後、スタートに戻る。
次に、実施形態2に係る移動体制御システムにおける管理サーバの制御情報生成動作(図14のステップC5の詳細)について図面を用いて説明する。図15は、実施形態2に係る移動体制御システムにおける管理サーバの制御情報生成動作を模式的に示したフローチャートである。
ステップC4の後、サーバ装置60は、誤差計算部64により、計算された移動体40及び物品20の各位置、記憶部67に記憶された撮影設定情報、及び、物品マーカー21に関する事前設定情報(識別情報、サイズ等)に基づいて、推定最大誤差値を計算する(ステップD1)。
次に、サーバ装置60は、制御情報生成部65により、計算された推定最大誤差値が、記憶部67に記憶された誤差閾値よりも大きいか否かを判断する(ステップD2)。
推定最大誤差値が誤差閾値よりも大きい場合(ステップD2のYES)、サーバ装置60は、制御情報生成部65により、計算された移動体40の位置に基づいて、記憶部67に記憶されている走行経路に沿って移動体40を走行させるように制御しつつ、基準移動速度(予め設定された基準移動速度)よりも小さくなるように移動体40の走行を制御する制御情報を生成し(ステップD3)、その後、ステップC6に進む。
推定最大誤差値が誤差閾値以下である場合(ステップD2のNO)、サーバ装置60は、制御情報生成部65により、計算された移動体40の位置に基づいて、記憶部67に記憶されている走行経路に沿って移動体40を走行させるように制御しつつ、基準移動速度以上となるように移動体40の走行を制御する制御情報を生成し(ステップD4)、その後、ステップC6に進む。
実施形態2によれば、実施形態1と同様に、移動体40からマーカー(12又は21)を撮影した際の撮影環境や移動状況を考慮して計算された推定最大誤差値を用いて移動体40の移動速度を制御しているので、撮影した際の撮影環境誤差や移動状況誤差による影響を軽減し、移動体40を正確に移動制御することに貢献することができる。また、実施形態2によれば、移動体40及び物品20の各位置の計算や推定最大誤差値の計算をサーバ装置60で行っているので、移動体40での処理を軽減させることができる。
[実施形態3]
実施形態3に係る移動体制御システムについて図面を用いて説明する。図16は、実施形態3に係る移動体制御システムの構成を模式的に示したブロック図である。図17は、実施形態3に係る移動体制御システムにおいて用いられるマップ情報の一例を模式的に示したイメージ図である。
実施形態3は、実施形態2の変形例であり、サーバ装置60において初回は実施形態2と同様に動作するとともにマップ情報70の区画71(推定最大誤差値又は最大移動速度が未設定の区画)ごとに推定最大誤差値又は最大移動速度を設定し、次回以降は、推定最大誤差値の計算や、推定最大誤差値が誤差閾値よりも大きいか否かの判断を省略し、計算された移動体40の位置に対応するマップ情報70の区画71(推定最大誤差値又は最大移動速度が設定済みの区画)の推定最大誤差値又は最大移動速度に応じて移動体40の移動速度を制御する制御情報を生成するようにしたものである(図16、図17参照)。そのための構成として、サーバ装置60において、マップ情報設定部68を追加している。
ここで、マップ情報70は、移動体40の移動制御に用いるマップに関する情報である(図17参照)。マップ情報70には、例えば、倉庫のレイアウトに関するデータを用いることができる。マップ情報70の基準点となる位置に基準点マーカー12が付されている。マップ情報70は、格子状に区切られた複数の区画71を有する。各区画71には、誤差計算部64で計算された推定最大誤差値、又は、制御情報生成部65で生成された制御情報に含まれる最大移動速度を設定することができる。推定最大誤差値は、移動体40と基準点マーカー12との間の距離を用いて計算されるので、マップ情報70における基準点マーカー12の位置を把握できていれば推定最大誤差値の計算は可能である。図17では黒から白の濃淡で最大移動速度の大小を示している。濃ければ最大移動速度を低くし、淡ければ最大移動速度を高くしている。
マップ情報設定部68は、記憶部67に記憶されたマップ情報70における、推定最大誤差値又は最大移動速度が未設定の区画71ごとに、誤差計算部64で計算された推定最大誤差値、又は、制御情報生成部65で生成された制御情報に含まれる最大移動速度を設定する機能部である(図16参照)。マップ情報設定部68は、位置計算部62で移動体40の位置を計算したときに、記憶部67に記憶されたマップ情報70において、位置計算部62で計算された移動体40の位置に対応する区画71について、推定最大誤差値又は最大移動速度が未設定であるか否かを判断する。推定最大誤差値又は最大移動速度が未設定であるときに、マップ情報設定部68は、位置計算部62で計算された移動体40の位置に対応する区画71に、誤差計算部64で計算された推定最大誤差値、又は、制御情報生成部65で生成された制御情報に含まれる最大移動速度を設定する。推定最大誤差値又は最大移動速度が設定済みであるときに、マップ情報設定部68は、位置計算部62で計算された移動体40の位置に対応する区画71に、誤差計算部64で計算された推定最大誤差値、又は、制御情報生成部65で生成された制御情報に含まれる最大移動速度を設定しない。
制御情報生成部65は、位置計算部62で計算された移動体40の位置に対応する区画71について、推定最大誤差値又は最大移動速度が未設定であるときに、実施形態2の制御情報生成部65と同様な動作を行うが、推定最大誤差値又は最大移動速度が設定済みであるときに、推定最大誤差値の計算や、推定最大誤差値が誤差閾値よりも大きいか否かの判断を省略して、制御情報を生成する。つまり、制御情報生成部65は、推定最大誤差値又は最大移動速度が設定済みであるときに、位置計算部62から移動体位置情報及び物品位置情報を取得し、記憶部67から、位置計算部62で計算された移動体40の位置に対応するマップ情報70の区画71に設定された推定最大誤差値又は最大移動速度を取得する。制御情報生成部65は、取得した移動体位置情報、物品位置情報、推定最大誤差値又は最大移動速度に基づいて、実施形態2の制御情報生成部65と同様に制御情報を生成する。なお、制御情報生成部65は、推定最大誤差値を取得した場合、推定最大誤差値が誤差閾値よりも大きいか否かの判断を行うが、最大移動速度を取得した場合、推定最大誤差値が誤差閾値よりも大きいか否かの判断を省略することができる。
その他の構成及び動作は、実施形態2と同様である。
実施形態3によれば、実施形態2と同様に、移動体40からマーカー(12又は21)を撮影した際の撮影環境や移動状況を考慮して計算された推定最大誤差値を用いて移動体40の移動速度を制御しているので、撮影した際の撮影環境誤差や移動状況誤差による影響を軽減し、移動体40を正確に移動制御することに貢献することができる。また、実施形態3によれば、区画71ごとに推定最大誤差値又は最大移動速度を設定したマップ情報70を用いて、推定最大誤差値の計算や、推定最大誤差値が誤差閾値よりも大きいか否かの判断を省略して、移動体40の移動速度を制御することができ、サーバ装置60の処理負荷を軽減することができる。さらに、マップ情報70において区画71を細かく区画して推定最大誤差値又は最大移動速度を設定することにより、より細かく移動体40の移動速度を制御することができ、移動体40の位置誤差を小さくすることができる。
[実施形態4]
実施形態4に係る移動体制御システムについて図面を用いて説明する。図18は、実施形態4に係る移動体制御システムの構成を模式的に示したブロック図である。
実施形態4は、実施形態1の変形例であり、移動体30において初回は実施形態1と同様に動作するとともにマップ情報70の区画71(推定最大誤差値又は最大移動速度が未設定の区画)ごとに推定最大誤差値又は最大移動速度を設定し、次回以降は、推定最大誤差値の計算や、推定最大誤差値が誤差閾値よりも大きいか否かの判断を省略し、計算された移動体30の位置に対応するマップ情報70の区画71(推定最大誤差値又は最大移動速度が設定済みの区画)の推定最大誤差値又は最大移動速度に応じて移動体30の移動速度を制御するようにしたものである(図17、図18参照)。そのための構成として、移動体30において、マップ情報設定部38を追加している。なお、マップ情報70及び区画71については、実施形態3のマップ情報70及び区画71と同様である(図17参照)。
マップ情報設定部38は、記憶部36に記憶されたマップ情報70における、推定最大誤差値又は最大移動速度が未設定の区画71ごとに、誤差計算部33で計算された推定最大誤差値、又は、移動体制御部34で移動体30の移動を制御する際の最大移動速度を設定する機能部である(図18照)。マップ情報設定部38は、位置計算部32で移動体30の位置を計算したときに、記憶部36に記憶されたマップ情報70において、位置計算部32で計算された移動体30の位置に対応する区画71について、推定最大誤差値又は最大移動速度が未設定であるか否かを判断する。推定最大誤差値又は最大移動速度が未設定であるときに、マップ情報設定部38は、位置計算部32で計算された移動体30の位置に対応する区画71に、誤差計算部33で計算された推定最大誤差値、又は、移動体制御部34で移動体30の移動を制御する際の最大移動速度を設定する。推定最大誤差値又は最大移動速度が設定済みであるときに、マップ情報設定部38は、位置計算部32で計算された移動体30の位置に対応する区画71に、誤差計算部33で計算された推定最大誤差値、又は、移動体制御部34で移動体30の移動を制御する際の最大移動速度を設定しない。
移動体制御部34は、位置計算部32で計算された移動体30の位置に対応する区画71について、推定最大誤差値又は最大移動速度が未設定であるときに、実施形態1の移動体制御部34と同様な動作を行うが、推定最大誤差値又は最大移動速度が設定済みであるときに、推定最大誤差値の計算や、推定最大誤差値が誤差閾値よりも大きいか否かの判断を省略して、推定最大誤差値又は最大移動速度に基づいて移動体30の移動を制御する。つまり、移動体制御部34は、推定最大誤差値又は最大移動速度が設定済みであるときに、位置計算部32から移動体位置情報及び物品位置情報を取得し、記憶部36から、位置計算部32で計算された移動体30の位置に対応するマップ情報70の区画71に設定された推定最大誤差値又は最大移動速度を取得する。移動体制御部34は、取得した移動体位置情報、物品位置情報、推定最大誤差値又は最大移動速度に基づいて、実施形態1の移動体制御部34と同様に移動体30の移動を制御する。なお、移動体制御部34は、推定最大誤差値を取得した場合、推定最大誤差値が誤差閾値よりも大きいか否かの判断を行うが、最大移動速度を取得した場合、推定最大誤差値が誤差閾値よりも大きいか否かの判断を省略することができる。
その他の構成及び動作は、実施形態1と同様である。
実施形態4によれば、実施形態1と同様に、移動体30からマーカー(12又は21)を撮影した際の撮影環境や移動状況を考慮して計算された推定最大誤差値を用いて移動体30の移動速度を制御しているので、撮影した際の撮影環境誤差や移動状況誤差による影響を軽減し、移動体30を正確に移動制御することに貢献することができる。また、実施形態4によれば、区画71ごとに推定最大誤差値又は最大移動速度を設定したマップ情報70を用いて、推定最大誤差値の計算や、推定最大誤差値が誤差閾値よりも大きいか否かの判断を省略して、移動体30の移動速度を制御することができ、サーバ装置60の処理負荷を軽減することができる。さらに、マップ情報70において区画71を細かく区画して推定最大誤差値又は最大移動速度を設定することにより、より細かく移動体30の移動速度を制御することができ、移動体30の位置誤差を小さくすることができる。
[実施形態5]
実施形態5に係る移動体制御システムについて図面を用いて説明する。図19は、実施形態5に係る移動体制御システムの構成を模式的に示したブロック図である。
移動体30は、撮影したマーカー12を含む画像を解析して自身の位置を計算して自身の移動を制御するように構成されている。移動体30は、撮影部31と、位置計算部32と、誤差計算部33と、移動体制御部34と、を備える。撮影部31は、マーカー12を撮影するように構成されている。位置計算部32は、撮影部31に設定されている解像度及び画角を含む撮影設定情報、及び、マーカー12について事前に設定されている種別、識別情報、及び大きさを含む事前設定情報に基づいて、撮影部31で撮影された画像におけるマーカー12を解析して移動体30自身の位置を計算するように構成されている。誤差計算部33は、移動体30自身の位置、事前設定情報、及び、撮影設定情報に基づいて、マーカー12の位置に関する推定最大誤差値を計算するように構成されている。移動体制御部34は、移動体30自身の位置が予め設定されたマップ上の走行経路に沿って移動するように制御する。移動体制御部34は、推定最大誤差値が予め設定された誤差閾値よりも大きいときに移動体30自身の移動速度が予め設定された基準移動速度よりも小さくするように制御する。移動体制御部34は、推定最大誤差値が誤差閾値以下であるときに移動体30自身の移動速度が前記基準移動速度以上となるように制御する。
実施形態5によれば、移動体30からマーカー12を撮影した際の撮影環境や移動状況を考慮して計算された推定最大誤差値を用いて移動体30の移動速度を制御しているので、撮影した際の撮影環境誤差や移動状況誤差による影響を軽減し、移動体30を正確に移動制御することに貢献することができる。
なお、実施形態1~5に係る移動体の一部、サーバ装置は、いわゆるハードウェア資源(情報処理装置、コンピュータ)により構成することができ、図20に例示する構成を備えたものを用いることができる。例えば、ハードウェア資源100は、内部バス104により相互に接続される、プロセッサ101、メモリ102、ネットワークインタフェイス103等を備える。
なお、図20に示す構成は、ハードウェア資源100のハードウェア構成を限定する趣旨ではない。ハードウェア資源100は、図示しないハードウェア(例えば、入出力インタフェイス)を含んでもよい。あるいは、装置に含まれるプロセッサ101等のユニットの数も図20の例示に限定する趣旨ではなく、例えば、複数のプロセッサ101がハードウェア資源100に含まれていてもよい。プロセッサ101には、例えば、CPU(Central Processing Unit)、MPU(Micro Processor Unit)、GPU(Graphics Processing Unit)等を用いることができる。
メモリ102には、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)等を用いることができる。
ネットワークインタフェイス103には、例えば、LAN(Local Area Network)カード、ネットワークアダプタ、ネットワークインタフェイスカード等を用いることができる。
ハードウェア資源100の機能は、上述の処理モジュールにより実現される。当該処理モジュールは、例えば、メモリ102に格納されたプログラムをプロセッサ101が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能は、何らかのハードウェアにおいてソフトウェアが実行されることによって実現できればよい。
上記実施形態の一部または全部は以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
マーカーを撮影するように構成された撮影部と、
前記撮影部に設定されている解像度及び画角を含む撮影設定情報、及び、前記マーカーについて事前に設定されている種別、識別情報、及び大きさを含む事前設定情報に基づいて、前記撮影部で撮影された画像における前記マーカーを解析して移動体自身の位置を計算するように構成された位置計算部と、
前記移動体自身の位置、前記事前設定情報、及び、前記撮影設定情報に基づいて、前記マーカーの位置に関する推定最大誤差値を計算するように構成された誤差計算部と、
前記移動体自身の位置が予め設定されたマップ上の走行経路に沿って移動するように制御するとともに、前記推定最大誤差値が予め設定された誤差閾値よりも大きいときに前記移動体自身の移動速度が予め設定された基準移動速度よりも小さくするように制御し、前記推定最大誤差値が前記誤差閾値以下であるときに前記移動体自身の移動速度が前記基準移動速度以上となるように制御するように構成された移動体制御部と、
を備える移動体。
[付記2]
予め設定されたマップ情報における、推定最大誤差値又は最大移動速度が未設定の区画ごとに、前記誤差計算部で計算された推定最大誤差値、又は、前記移動体制御部で前記移動体自身の移動を制御する際の最大移動速度を設定するように構成されたマップ情報設定部をさらに備え、
前記移動体制御部は、前記位置計算部で計算された前記移動体の位置に対応する前記マップ情報の前記区画に設定された前記推定最大誤差値又は前記最大移動速度を用いて前記移動体自身の移動を制御する、
付記1記載の移動体。
[付記3]
前記移動体制御部は、前記推定最大誤差値が前記誤差閾値以下であるときに、前記移動体自身の移動速度を前記基準移動速度以上かつ予め設定された最大移動速度以下となるように制御するように構成されている、
付記1記載の移動体。
[付記4]
移動体から、前記移動体の撮影部で撮影されたマーカーを含む画像データを受信するように構成された受信部と、
前記撮影部に設定されている解像度及び画角を含む撮影設定情報、及び、前記マーカーについて事前に設定されている種別、識別情報、及び大きさを含む事前設定情報に基づいて、前記画像データにおける前記マーカーを解析して前記移動体の位置を計算するように構成された位置計算部と、
前記移動体の位置、前記事前設定情報、及び、前記撮影設定情報に基づいて、前記マーカーの位置に関する推定最大誤差値を計算するように構成された誤差計算部と、
前記移動体の位置が予め設定されたマップ上の走行経路に沿って移動するように制御情報を生成するとともに、前記推定最大誤差値が予め設定された誤差閾値よりも大きいときに前記移動体の移動速度を予め設定された基準移動速度よりも小さくするように前記制御情報を生成し、前記推定最大誤差値が前記誤差閾値以下であるときに前記移動体の移動速度が前記基準移動速度以上となるように前記制御情報を生成するように構成された制御情報生成部と、
前記制御情報を前記移動体に送信する送信部と、
を備えるサーバ装置。
[付記5]
予め設定されたマップ情報における、推定最大誤差値又は最大移動速度が未設定の区画ごとに、前記誤差計算部で計算された推定最大誤差値、又は、前記移動体の移動を制御する際の最大移動速度を設定するように構成されたマップ情報設定部をさらに備え、
前記制御情報生成部は、前記位置計算部で計算された前記移動体の位置に対応する前記マップ情報の前記区画に設定された前記推定最大誤差値又は前記最大移動速度を用いて前記移動体の移動を制御するように前記制御情報を生成する、
付記4記載のサーバ装置。
[付記6]
前記制御情報生成部は、前記推定最大誤差値が前記誤差閾値以下であるときに、前記移動体の移動速度が前記基準移動速度以上かつ予め設定された最大移動速度以下となるように前記制御情報を生成するように構成されている、
付記4記載のサーバ装置。
[付記7]
マーカーと、
付記1乃至3のいずれか一に記載の移動体と、
を備える移動体制御システム。
[付記8]
マーカーと、
前記マーカーを撮影するように構成された撮影部と、前記撮影部で撮影された前記マーカーを含む画像データを外部に送信する送信部と、を備える移動体と、
付記4乃至6のいずれか一に記載のサーバ装置と、
を備える移動体制御システム。
[付記9]
移動体が自立して自身の移動を制御する移動体制御方法であって、
前記移動体の撮影部でマーカーを撮影するステップと、
前記撮影部に設定されている解像度及び画角を含む撮影設定情報、及び、前記マーカーについて事前に設定されている種別、識別情報、及び大きさを含む事前設定情報に基づいて、前記撮影部で撮影された画像における前記マーカーを解析して移動体自身の位置を計算するステップと、
前記移動体自身の位置、前記事前設定情報、及び、前記撮影設定情報に基づいて、前記マーカーの位置に関する推定最大誤差値を計算するステップと、
前記移動体自身の位置が予め設定されたマップ上の走行経路に沿って移動するように制御するとともに、前記推定最大誤差値が予め設定された誤差閾値よりも大きいときに前記移動体自身の移動速度が予め設定された基準移動速度よりも小さくするように制御し、前記推定最大誤差値が前記誤差閾値以下であるときに前記移動体自身の移動速度が前記基準移動速度以上となるように制御するステップと、
を含む移動体制御方法。
[付記10]
サーバ装置の制御によって移動体の移動を制御する移動体制御方法であって、
移動体から、前記移動体の撮影部で撮影されたマーカーを含む画像データを受信するステップと、
前記撮影部に設定されている解像度及び画角を含む撮影設定情報、及び、前記マーカーについて事前に設定されている種別、識別情報、及び大きさを含む事前設定情報に基づいて、前記画像データにおける前記マーカーを解析して前記移動体の位置を計算するステップと、
前記移動体の位置、前記事前設定情報、及び、前記撮影設定情報に基づいて、前記マーカーの位置に関する推定最大誤差値を計算するステップと、
前記移動体の位置が予め設定されたマップ上の走行経路に沿って移動するように制御情報を生成するとともに、前記推定最大誤差値が予め設定された誤差閾値よりも大きいときに前記移動体の移動速度を予め設定された基準移動速度よりも小さくするように前記制御情報を生成し、前記推定最大誤差値が前記誤差閾値以下であるときに前記移動体の移動速度が前記基準移動速度以上となるように前記制御情報を生成するステップと、
前記制御情報を前記移動体に送信するステップと、
を含む移動体制御方法。
[付記11]
移動体が自立して自身の移動を制御する処理を前記移動体に実行させるプログラムであって、
前記移動体の撮影部でマーカーを撮影する処理と、
前記撮影部に設定されている解像度及び画角を含む撮影設定情報、及び、前記マーカーについて事前に設定されている種別、識別情報、及び大きさを含む事前設定情報に基づいて、前記撮影部で撮影された画像における前記マーカーを解析して移動体自身の位置を計算する処理と、
前記移動体自身の位置、前記事前設定情報、及び、前記撮影設定情報に基づいて、前記マーカーの位置に関する推定最大誤差値を計算する処理と、
前記移動体自身の位置が予め設定されたマップ上の走行経路に沿って移動するように制御するとともに、前記推定最大誤差値が予め設定された誤差閾値よりも大きいときに前記移動体自身の移動速度が予め設定された基準移動速度よりも小さくするように制御し、前記推定最大誤差値が前記誤差閾値以下であるときに前記移動体自身の移動速度が前記基準移動速度以上となるように制御する処理と、
を前記移動体に実行させるプログラム。
[付記12]
サーバ装置の制御によって移動体の移動を制御する処理を前記サーバ装置に実行させるプログラムであって、
移動体から、前記移動体の撮影部で撮影されたマーカーを含む画像データを受信する処理と、
前記撮影部に設定されている解像度及び画角を含む撮影設定情報、及び、前記マーカーについて事前に設定されている種別、識別情報、及び大きさを含む事前設定情報に基づいて、前記画像データにおける前記マーカーを解析して前記移動体の位置を計算する処理と、
前記移動体の位置、前記事前設定情報、及び、前記撮影設定情報に基づいて、前記マーカーの位置に関する推定最大誤差値を計算する処理と、
前記移動体の位置が予め設定されたマップ上の走行経路に沿って移動するように制御情報を生成するとともに、前記推定最大誤差値が予め設定された誤差閾値よりも大きいときに前記移動体の移動速度を予め設定された基準移動速度よりも小さくするように前記制御情報を生成し、前記推定最大誤差値が前記誤差閾値以下であるときに前記移動体の移動速度が前記基準移動速度以上となるように前記制御情報を生成する処理と、
前記制御情報を前記移動体に送信する処理と、
を前記サーバ装置に実行させるプログラム。
なお、上記の特許文献の各開示は、本書に引用をもって繰り込み記載されているものとし、必要に応じて本発明の基礎ないし一部として用いることが出来るものとする。本発明の全開示(特許請求の範囲及び図面を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせないし選択(必要により不選択)が可能である。すなわち、本発明は、請求の範囲及び図面を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、本願に記載の数値及び数値範囲については、明記がなくともその任意の中間値、下位数値、及び、小範囲が記載されているものとみなされる。さらに、上記引用した文献の各開示事項は、必要に応じ、本願発明の趣旨に則り、本願発明の開示の一部として、その一部又は全部を、本書の記載事項と組み合わせて用いることも、本願の開示事項に含まれる(属する)ものと、みなされる。