(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-19
(45)【発行日】2024-12-27
(54)【発明の名称】バイアス推定装置、フォークリフト、バイアス推定方法及びプログラム
(51)【国際特許分類】
B66F 9/24 20060101AFI20241220BHJP
G01C 21/28 20060101ALI20241220BHJP
【FI】
B66F9/24 Z
B66F9/24 C
B66F9/24 G
G01C21/28
(21)【出願番号】P 2022125288
(22)【出願日】2022-08-05
【審査請求日】2023-08-25
(73)【特許権者】
【識別番号】000232807
【氏名又は名称】三菱ロジスネクスト株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】北島 克将
(72)【発明者】
【氏名】木内 裕介
(72)【発明者】
【氏名】山田 昌弘
(72)【発明者】
【氏名】藤田 匠
(72)【発明者】
【氏名】明石 拓也
【審査官】須山 直紀
(56)【参考文献】
【文献】特開平04-286600(JP,A)
【文献】国際公開第2021/157116(WO,A1)
【文献】特開2015-000778(JP,A)
【文献】特開平06-265367(JP,A)
【文献】特開2019-167213(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B66F 9/24
G01C 21/28
(57)【特許請求の範囲】
【請求項1】
フォークリフトの移動に関する情報を検知する第1センサによる計測値と、前記フォークリフトが備える荷役装置に関する情報を検知する第2センサによる計測値と、に基づいて前記フォークリフトが静止しているか否かを判定する判定部と、
前記判定部が静止していると判定すると、前記フォークリフトが備える慣性計測装置による計測値であるIMU計測値を蓄積し、前記判定部が静止していないと判定すると、前記IMU計測値の蓄積を停止する蓄積部と、
前記蓄積部に蓄積された前記IMU計測値の数が閾値以上となると、前記IMU計測値のバイアスを算出するための充分なサンプル数が得られと判定するサンプル数監視部と、
前記サンプル数監視部が充分なサンプル数が得られたと判定すると、前記蓄積部に蓄積された前記IMU計測値に基づいて、前記IMU計測値のバイアスを算出する算出部と、
前記算出部によるバイアスの算出が終了するか、前記判定部が静止していないと判定すると、前記蓄積部に蓄積された前記IMU計測値を削除する終了判定部と、
を備えるバイアス推定装置。
【請求項2】
前記判定部は、前記第1センサによる計測値が、前記フォークリフトが移動中であることを示さず、前記第2センサによる計測値が、前記フォークリフトが荷役動作中であることを示さないという第1条件を満たせば、前記フォークリフトが静止していると判定し、前記第1条件を満たさなければ、前記フォークリフトが静止していないと判定する、
請求項1に記載のバイアス推定装置。
【請求項3】
前記判定部は、前記慣性計測装置が起動中か否かの情報を取得し、前記慣性計測装置が起動中であって、さらに前記第1条件を満たせば、前記フォークリフトが静止していると判定し、そうでなければ前記フォークリフトが静止していないと判定する、
請求項2に記載のバイアス推定装置。
【請求項4】
前記判定部は、前記フォークリフトが充電中か否かの情報を取得し、充電中の場合、前記フォークリフトが静止していると判定し、充電中でない場合、前記フォークリフトが静止していないと判定する、
請求項1又は請求項2に記載のバイアス推定装置。
【請求項5】
前記蓄積部に蓄積された前記IMU計測値の急変箇所を検知する急変箇所検知部、をさらに備え、
前記蓄積部は、前記急変箇所検知部によって検知された
前記急変箇所およびその前後の前記IMU計測値を削除し、
前記算出部は、削除後に残った前記IMU計測値に基づいて前記バイアスを算出
し、
前記急変箇所検知部は、蓄積されたデータ内の時間的に連続する区間において、その区間のIMU計測値の平均から一定幅以上の乖離があるデータが含まれる区間を前記急変箇所として特定する、
請求項1又は請求項2に記載のバイアス推定装置。
【請求項6】
前記蓄積部に蓄積されたにRANSAC(Random Sample Consensus)アルゴリズムを適用して外れ値と正常値を判別する急変箇所検知部、をさらに備え、
前記蓄積部は、前記急変箇所検知部によって外れ値と判別された前記IMU計測値およびその前後の前記IMU計測値を削除し、
前記算出部は、削除後に残った前記IMU計測値に基づいて前記バイアスを算出する、
請求項1又は請求項2に記載のバイアス推定装置。
【請求項7】
前記急変箇所検知部は、前記急変箇所を含まない前記IMU計測値と、削除された前記IMU計測値を学習してそれらを区別するモデルを構築して、前記蓄積部に蓄積された前記IMU計測値を、前記モデルに基づいて、前記削除された前記IMU計測値に属する前記IMU計測値か否かを判定し、
前記蓄積部は、前記削除された前記IMU計測値に属すると判定された前記IMU計測値とその前後のデータを削除する、
請求項5に記載のバイアス推定装置。
【請求項8】
前記フォークリフトの周辺温度についての時系列の温度データを蓄積する温度値蓄積部と、
前記温度値蓄積部に蓄積された時系列の前記温度データに基づいて、前記周辺温度が基準以上変化したかどうかを検知する温度変化検知部と、
をさらに備え、
前記蓄積部は、前記温度変化検知部が、前記周辺温度が基準以上変化したと判定し、かつ、前記判定部が静止していると判定すると、前記IMU計測値を蓄積する、
請求項1又は請求項2に記載のバイアス推定装置。
【請求項9】
前記第1センサは、前記フォークリフトが備えるタイヤの回転数および/又は総舵角を検知するセンサであり、前記第2センサは、前記フォークリフトが備えるフォークの揚高位置および/又は前記フォークに積載された荷物の重量を検知するセンサである、
請求項1又は請求項2に記載のバイアス推定装置。
【請求項10】
フォークリフトが充電中か否かの情報を取得し、充電中の場合、前記フォークリフトが静止していると判定し、充電中でない場合、前記フォークリフトが静止していないと判定する判定部と、
前記判定部が静止していると判定すると、前記フォークリフトが備える慣性計測装置による計測値であるIMU計測値を蓄積し、前記判定部が静止していないと判定すると、前記IMU計測値の蓄積を停止する蓄積部と、
前記蓄積部に蓄積された前記IMU計測値の数が閾値以上となると、前記IMU計測値のバイアスを算出するための充分なサンプル数が得られと判定するサンプル数監視部と、
前記サンプル数監視部が充分なサンプル数が得られたと判定すると、前記蓄積部に蓄積された前記IMU計測値に基づいて、前記IMU計測値のバイアスを算出する算出部と、
前記算出部によるバイアスの算出が終了するか、前記判定部が静止していないと判定すると、前記蓄積部に蓄積された前記IMU計測値を削除する終了判定部と、
を備えるバイアス推定装置。
【請求項11】
走行体と、荷役装置と、
請求項1又は請求項
10に記載のバイアス推定装置と、
前記バイアス推定装置によって前記IMU計測値を補償して、補償後の前記IMU計測値に基づいて前記フォークリフトの位置を測位する測位装置と、
を備えるフォークリフト。
【請求項12】
フォークリフトの移動に関する情報を検知する第1センサによる計測値と、前記フォークリフトが備える荷役装置に関する情報を検知する第2センサによる計測値と、に基づいて前記フォークリフトが静止しているか否かを繰り返し判定するステップと、
前記判定するステップにて、静止していると判定されると、前記フォークリフトが備える慣性計測装置による計測値であるIMU計測値を蓄積するステップと、
前記判定するステップにて、静止していないと判定されると、前記IMU計測値の蓄積を停止
し、蓄積された前記IMU計測値を削除するステップと、
蓄積された前記IMU計測値の数が閾値以上となると、前記IMU計測値のバイアスを算出するための充分なサンプル数が得られと判定するステップと、
前記充分なサンプル数が得られたと判定するステップにて、充分なサンプル数が得られと判定されると、蓄積された前記IMU計測値に基づいて、前記IMU計測値のバイアスを算出するステップと、
バイアスの算出が終了すると、蓄積された前記IMU計測値を削除するステップと、
を有するバイアス推定方法。
【請求項13】
コンピュータに、
フォークリフトの移動に関する情報を検知する第1センサによる計測値と、前記フォークリフトが備える荷役装置に関する情報を検知する第2センサによる計測値と、に基づいて前記フォークリフトが静止しているか否かを繰り返し判定するステップと、
前記判定するステップにて、静止していると判定されると、前記フォークリフトが備える慣性計測装置による計測値であるIMU計測値を蓄積するステップと、
前記判定するステップにて、静止していないと判定されると、前記IMU計測値の蓄積を停止
し、蓄積された前記IMU計測値を削除するステップと、
蓄積された前記IMU計測値の数が閾値以上となると、前記IMU計測値のバイアスを算出するための充分なサンプル数が得られと判定するステップと、
前記充分なサンプル数が得られたと判定するステップにて、充分なサンプル数が得られと判定されると、蓄積された前記IMU計測値に基づいて、前記IMU計測値のバイアスを算出するステップと、
バイアスの算出が終了すると、蓄積された前記IMU計測値を削除するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、バイアス推定装置、フォークリフト、バイアス推定方法及びプログラムに関する。
【背景技術】
【0002】
フォークリフト等の移動体の測位を行う場合に、GPS(global positioning system)と慣性計測装置(IMU:Inertial Measurement Unit)の計測結果を利用し、それらの測位結果を組み合わせることで測位の高精度化を図ることがある(例えば、特許文献2)。しかしながら、IMU計測値(加速度、速度、角速度等)には、バイアスが含まれるため、バイアスを補償しなければ測位結果がかえって悪化する可能性がある。測位結果が悪化する例としては、例えば、停止中にもかかわらず、バイアスによってヨー角速度の計測値が0とならず、車体が回転しているという測位結果になることがある。
【0003】
この問題に対し、特許文献1では、移動体の静止状態中であれば、計測値に含まれるバイアス要素の分離が容易であることを利用し、移動体が静止中である可能性が高い、IMU起動直後の計測値を利用してバイアスを推定する方法や、カメラ画像から車両が静止していると判断した場合にIMUの計測値を利用して、バイアスを推定する方法が提案されている。しかし、実際に移動体を運用する環境では、IMU起動直後にユーザが移動体を操作する可能性があるため、IMU起動直後であることのみを条件として移動体が静止状態にあると判定することは不十分である。また、カメラを用いた静止判定においても、カメラが比較的遠方の物体を捉えている場合には、車体の動きに対して、画像の変化(例えば、特徴点の移動量)が小さくなるため、IMU計測値が、作業者の動作やフォークの昇降に伴う車体の振動等による影響を受ける可能性がある。
【0004】
また、特許文献2では、IMUを用いた測位結果と過去のGPSによる測位結果との比較、あるいはGPSによる測位結果が更新されるまでのシステムの測位結果(GPSによる測位結果とIMUによる測位結果を、カルマンフィルタを用いて統合した値)と比較することで、測位結果の誤差を小さくするようなバイアスを推定する方法が提案されている。移動体の移動中は、移動によるIMU計測値の変化が支配的であってバイアスの影響は相対的に低下する。そのため、IMU計測値からバイアスを分離することが難しく、静止状態でのバイアス推定に比べて、推定精度が十分ではない可能性が高い。しかし、特許文献2に開示された技術では、移動体が停止しているか移動中かに関係なく、バイアスの推定を行っている。
【先行技術文献】
【特許文献】
【0005】
【文献】国際公開第2021/157116
【文献】特開2010-019703号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
フォークリフトの測位に関し、精度よくIMU計測値のバイアスを推定する技術が必要とされている。
【0007】
本開示は、上記課題を解決することができるバイアス推定装置、フォークリフト、バイアス推定方法及びプログラムを提供する。
【課題を解決するための手段】
【0008】
本開示のバイアス推定装置は、フォークリフトの移動に関する情報を検知する第1センサによる計測値と、前記フォークリフトが備える荷役装置に関する情報を検知する第2センサによる計測値と、に基づいて前記フォークリフトが静止しているか否かを判定する判定部と、前記判定部が静止していると判定すると、前記フォークリフトが備える慣性計測装置による計測値であるIMU計測値を蓄積し、前記判定部が静止していないと判定すると、前記IMU計測値の蓄積を停止する蓄積部と、前記蓄積部に蓄積された前記IMU計測値の数が閾値以上となると、前記IMU計測値のバイアスを算出するための充分なサンプル数が得られと判定するサンプル数監視部と、前記サンプル数監視部が充分なサンプル数が得られたと判定すると、前記蓄積部に蓄積された前記IMU計測値に基づいて、前記IMU計測値のバイアスを算出する算出部と、前記算出部によるバイアスの算出が終了するか、前記判定部が静止していないと判定すると、前記蓄積部に蓄積された前記IMU計測値を削除する終了判定部と、を備える。
【0009】
本開示のフォークリフトは、走行体と、荷役装置と、上記のバイアス推定装置と、前記バイアス推定装置によって前記IMU計測値を補償して、補償後の前記IMU計測値に基づいて前記フォークリフトの位置を測位する測位装置と、を備える。
【0010】
本開示のバイアス推定方法は、フォークリフトの移動に関する情報を検知する第1センサによる計測値と、前記フォークリフトが備える荷役装置に関する情報を検知する第2センサによる計測値と、に基づいて前記フォークリフトが静止しているか否かを繰り返し判定するステップと、前記判定するステップにて、静止していると判定されると、前記フォークリフトが備える慣性計測装置による計測値であるIMU計測値を蓄積するステップと、前記判定するステップにて、静止していないと判定されると、前記IMU計測値の蓄積を停止し、蓄積された前記IMU計測値を削除するステップと、蓄積された前記IMU計測値の数が閾値以上となると、前記IMU計測値のバイアスを算出するための充分なサンプル数が得られと判定するステップと、前記充分なサンプル数が得られたと判定するステップにて、充分なサンプル数が得られと判定されると、蓄積された前記IMU計測値に基づいて、前記IMU計測値のバイアスを算出するステップと、バイアスの算出が終了すると、蓄積された前記IMU計測値を削除するステップと、を有する。
【0011】
また、本開示のプログラムは、フォークリフトの移動に関する情報を検知する第1センサによる計測値と、前記フォークリフトが備える荷役装置に関する情報を検知する第2センサによる計測値と、に基づいて前記フォークリフトが静止しているか否かを繰り返し判定するステップと、前記判定するステップにて、静止していると判定されると、前記フォークリフトが備える慣性計測装置による計測値であるIMU計測値を蓄積するステップと、前記判定するステップにて、静止していないと判定されると、前記IMU計測値の蓄積を停止し、蓄積された前記IMU計測値を削除するステップと、蓄積された前記IMU計測値の数が閾値以上となると、前記IMU計測値のバイアスを算出するための充分なサンプル数が得られと判定するステップと、前記充分なサンプル数が得られたと判定するステップにて、充分なサンプル数が得られと判定されると、蓄積された前記IMU計測値に基づいて、前記IMU計測値のバイアスを算出するステップと、バイアスの算出が終了すると、蓄積された前記IMU計測値を削除するステップと、を実行させる。
【発明の効果】
【0012】
上述のバイアス推定装置、測位装置、フォークリフト、バイアス推定方法及びプログラムによれば、フォークリフトの測位に関し、フォークリフトの運用環境を考慮して、精度よくIMU計測値のバイアスを推定することができる。
【図面の簡単な説明】
【0013】
【
図1】第1実施形態に係るフォークリフトの一例を示す概略図である。
【
図2】第1実施形態に係る測位システムの一例を示す図である。
【
図3】第1実施形態に係るバイアス推定処理の一例を示すフローチャートである。
【
図4】第2実施形態に係るフォークリフトの一例を示す概略図である。
【
図5】第2実施形態に係る測位システムの一例を示す図である。
【
図6】第2実施形態に係るバイアス推定処理の一例を示すフローチャートである。
【
図7】第3実施形態に係る測位システムの一例を示す図である。
【
図8】第3実施形態に係るバイアス推定処理の一例を示すフローチャートである。
【
図9】第4実施形態に係る測位システムの一例を示す図である。
【
図10】第4実施形態に係るバイアス推定処理の一例を示すフローチャートである。
【
図11】第5実施形態に係るフォークリフトの一例を示す概略図である。
【
図12】第5実施形態に係る測位システムの一例を示す図である。
【
図13】第5実施形態に係るバイアス推定処理の一例を示すフローチャートである。
【
図14】各実施形態に係る測位システムのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0014】
<第1実施形態>
以下、本開示のバイアス推定方法について図面を参照して説明する。
(フォークリフトの体構成)
図1は、第1実施形態に係るフォークリフトの一例を示す概略図である。
有人のフォークリフト1は、走行体2と、荷役装置3と、演算装置20と、を備えている。走行体2は、タイヤおよび不図示の駆動装置とステアリング装置を備え、フォークリフト1を走行させる。荷役装置3は、フォーク4と、フォーク4を昇降させる昇降装置5を備え、フォーク4に積載した荷物を昇降させる等して荷役動作を行う。走行体2には、IMU10と、第1エンコーダ11と、第2エンコーダ12と、が設けられている。IMU10は、加速度センサ、ジャイロセンサを備えており、フォークリフト1の移動速度、加速度および移動方向や旋回方向を検知することができる。第1エンコーダ11は、フォークリフト1のタイヤ(例えば、後輪)の回転数を検知するロータリエンコーダである。第1エンコーダ11の計測値によりフォークリフト1の移動を検知することができる、第2エンコーダ12は、フォークリフト1のタイヤ(例えば、前輪)の操舵角を検知するロータリエンコーダである。第2エンコーダ12の計測値によりフォークリフト1に対する作業者のステアリング操作を検出することができる。荷役装置3には、揚高センサ13と、荷重センサ14とが設けられている。揚高センサ13は、フォーク4の揚高位置を検出する。荷重センサ14は、フォーク4に積載された荷物の重量を検出する。揚高センサ13と荷重センサ14により、荷役装置3の荷役動作やフォーク4に積載される荷物の変化などを検知することができる。
【0015】
第1エンコーダ11および/又は第2エンコーダ12の計測値が0(0とみなせる所定の範囲を含む)でなければ、走行体2がなんらかの動作(移動・回転など)をしており、その動作がIMU10の計測値(IMU計測値のように記載する場合がある。)に影響する。揚高センサ13の計測値に変化がある場合にはフォーク4が昇降している。荷重センサ14の計測値に変化がある場合には、フォーク4への積荷・積み下ろしが行われている可能性がある。これらの場合、フォークリフト1が走行していなくても、車体に振動が生じ、IMU計測値に影響を及ぼす可能性がある。
【0016】
IMU10、第1エンコーダ11、第2エンコーダ12、揚高センサ13、荷重センサ14の各センサは演算装置20と接続されており、各センサが計測した計測値は、演算装置20へ送出される。演算装置20は、プロセッサを備えるコンピュータにより構成されている。演算装置20は、上記の各センサによる計測値を用いてフォークリフト1の位置(自己位置)を測位する。
【0017】
(測位システムの構成)
図2は、第1実施形態に係る測位システムの一例を示す図である。
図2に示すように測位システム100は、測位システム本体201と、計測開始判定部202と、IMU計測値蓄積部203と、蓄積サンプル数監視部204と、バイアス算出部205と、バイアス更新部206と、終了判定部207と、IMU10と、第1エンコーダ11、第2エンコーダ12と、揚高センサ13と、荷重センサ14と、を備える。これらのうち、測位システム本体201、計測開始判定部202、IMU計測値蓄積部203、蓄積サンプル数監視部204、バイアス算出部205、バイアス更新部206、終了判定部207は、演算装置20に実装される機能である。
【0018】
測位システム本体201は、IMU10の計測値に基づいてデッドレコニング等により、フォークリフト1の位置情報を算出する(測位する)。この際、測位システム本体201は、IMU10の計測値からバイアス更新部206が更新するバイアス値を減算して、IMU計測値を補償する。バイアスが含まれたIMU計測値を累積して位置情報を計算すると、位置情報の精度が低下してしまう。その為、測位システム本体201は、バイアス補償を行った正確なIMU計測値に基づいて位置情報を算出する。
【0019】
計測開始判定部202は、測位システム100の起動シーケンス中に想定外の車両動作が生じていないことを確認し、IMU計測値の蓄積を開始することを判定する。起動シーケンス中は、各種センサ値の取得確認や、他システムとの通信確立といった動作が行われる。原則、起動シーケンス中は、フォークリフト1を動かさないことが想定されている。起動シーケンスの完了までには、多少の時間を要するため、純粋に車両が静止している状態でのIMU計測値を、推定に十分なサンプル数だけ取得することが可能となる。さらに確実に車両が動いていない時間のIMU計測値をバイアス推定に使用するため、フォークリフト1に想定外の車両動作が生じていないことの確認も行う。想定外の車両動作が生じていない状態とは、例えば、第1エンコーダ11、第2エンコーダ12の値が0ではない、揚高センサ13や荷重センサ14の計測値が変化するといった状態である。フォークリフト1が静止していればIMU計測値は0となる。従って、フォークリフト1が静止しているにもかかわらず、IMU計測値が変動すれば、その変動をバイアスであると認識することが可能であるが、フォークリフト1の動作中に計測されるIMU計測値は、その動作が反映されるためバイアスの検出が難しい。そのため、本実施形態では、IMU10以外のセンサ11~14の計測値を観察して、フォークリフト1が静止していることを確認し、静止中であることが確認できたら、静止中のIMU計測値を蓄積して、バイアスの推定を行う。測位システム100の起動シーケンス中は、フォークリフト1が静止していることが多いと考えられることから、計測開始判定部202は、測位システム100の起動シーケンス中にフォークリフト1が静止していることを確認し、IMU計測値の蓄積開始判定を行う。
【0020】
IMU計測値蓄積部203は、メモリ、HDD(hard disk drive)等の記憶媒体を含んで構成される。IMU計測値蓄積部203は、計測開始判定部202がIMU計測値の蓄積を開始すると判定すると、IMU10が計測した計測値の蓄積を開始する。IMU計測値蓄積部203は、蓄積したIMU計測値の数が閾値以上となると(又は、IMU計測値を蓄積するための記憶領域が一杯となると)、古い計測値から順次削除して記憶領域を解放し、新しく計測されたIMU計測値を優先して蓄積する。
【0021】
蓄積サンプル数監視部204は、IMU計測値蓄積部203に蓄積されたIMU計測値の数を監視する。蓄積サンプル数監視部204は、蓄積されたIMU計測値の数が閾値以上となると、IMU計測値のバイアスを推定するための充分なサンプル数が得られたことをバイアス算出部205へ通知する。
【0022】
バイアス算出部205は、蓄積サンプル数監視部204から十分なサンプル数が蓄積されたことを通知されると、IMU計測値蓄積部203に蓄積されたIMU計測値に基づいて、IMU計測値のバイアスの推定値を算出する。例えば、バイアス算出部205は、IMU計測値蓄積部203に蓄積されたIMU計測値の平均値を算出して、この平均値をバイアスとする。あるいは、バイアス算出部205は、IMU計測値蓄積部203に蓄積されたIMU計測値の最頻値又は中央値を算出して、算出した値をバイアスとしてもよい。
【0023】
バイアス更新部206は、測位システム本体201が参照しているバイアス値を、バイアス算出部205によって算出された新たなバイアス値によって更新する。バイアス更新部206は、メモリ等の記憶媒体を含んで構成され、バイアス算出部205によって算出された最新のバイアスを記憶するように構成されていてもよい。
【0024】
終了判定部207は、IMU計測値のバイアスを推定する処理の終了を制御する。例えば、測位システム100の起動シーケンスが終了したこと、想定外のフォークリフト1の動作が生じたこと、あるいは、バイアスの更新が完了したことを確認し、これらが確認できた場合、IMU計測値の蓄積を終了し、これまで蓄積したIMU計測値を削除する。
【0025】
(動作)
次に
図3を参照して、測位システム100によるバイアス推定処理について説明する。
図3は、第1実施形態に係るバイアス推定処理の一例を示すフローチャートである。
計測開始判定部202が、測位システム100の起動シーケンス中かどうかを判定する(ステップS1)。例えば、作業者が、フォークリフト1の電源をONにする操作を行うと、測位システム100が起動し、起動シーケンスが実行される。計測開始判定部202は、例えば、起動シーケンスの実行ログ等を監視し、起動シーケンスが実行中かどうかを確認する。起動シーケンス中でない場合(ステップS1;False)、バイアス推定処理を終了する。起動シーケンス中の場合(ステップS1;True)、計測開始判定部202は、第1エンコーダ11および/又は第2エンコーダ12による計測値が0かつ揚高センサ13の計測値および荷重センサ14の計測値に変化が無いかどうかを判定する(ステップS2)。第1エンコーダ11、第2エンコーダ12の計測値が0ではない、又は、揚高センサ13の計測値又は荷重センサ14の計測値が変化した場合(ステップS2;False)、バイアス推定処理を終了する。
【0026】
各センサの計測値が上記の条件を満たす場合(ステップS2;True)、計測開始判定部202はIMU計測値の蓄積を開始すると判定し、IMU計測値の蓄積開始をIMU計測値蓄積部203へ指令する。すると、IMU計測値蓄積部203は、IMU10から計測値を取得し、取得したIMU計測値を蓄積する(ステップS3)。IMU計測値蓄積部203は、IMU計測値を記憶媒体に書き込んで記憶する。IMU計測値蓄積部203がIMU計測値の蓄積を行う間、終了判定部207は、測位システム100が起動シーケンス中かどうかを判定する(ステップS4)。例えば、終了判定部207は、起動シーケンスの実行ログ等を監視し、起動シーケンスが実行中かどうかを確認する。起動シーケンス中でない場合(ステップS4;False)、終了判定部207は、IMU計測値蓄積部203に蓄積されたIMU計測値を削除して(ステップS9)、バイアス推定処理を終了する。起動シーケンス中の場合(ステップS4;True)、終了判定部207は、第1エンコーダ11および/又は第2エンコーダ12による計測値が0かつ揚高センサ13の計測値および荷重センサ14の計測値に変化が無いかどうかを判定する(ステップS5)。この条件を満たさない場合(ステップS5;False)、終了判定部207は、IMU計測値蓄積部203に蓄積されたIMU計測値を削除して(ステップS9)、バイアス推定処理を終了する。
【0027】
各センサの計測値が上記の条件を満たす場合(ステップS5;True)、蓄積サンプル数監視部204は、IMU計測値蓄積部203に十分な数のIMU計測値が蓄積されたかどうかを判定する(ステップS6)。例えば、蓄積サンプル数監視部204は、IMU計測値蓄積部203が記憶するIMU計測値の数と閾値とを比較して、十分な数のIMU計測値が蓄積されたかどうかを判定する。IMU計測値が十分に蓄積されていない場合(ステップS6;False)、ステップS3以降の処理を繰り返し実行する。IMU計測値が十分に蓄積された場合(ステップS6;True)、バイアス算出部205が、バイアスを算出する(ステップS7)。例えば、バイアス算出部205は、IMU計測値蓄積部203が記憶するIMU計測値の平均値、中央値、最頻値の何れかを算出する。バイアス算出部205は、算出した値をバイアス更新部206へ出力する。バイアス更新部206は、測位システム100のバイアス(測位システム本体201が参照するバイアス値)を更新する(ステップS8)。例えば、バイアス更新部206は、バイアス算出部205から取得したバイアスを測位システム本体201へ出力する。測位システム本体201は、バイアス更新部206から取得したバイアスを用いてIMU計測値を補償して、補償後のIMU計測値に基づいて、フォークリフト1の測位を行う。次に終了判定部207は、IMU計測値蓄積部203に蓄積されたIMU計測値を削除して(ステップS9)、バイアス推定処理を終了する。
【0028】
(効果)
以上説明したように、本実施形態によれば、フォークリフト1がIMU計測値のバイアス算出に適した静止状態にあることを(1)フォークリフト1の自己位置を推定する測位システム100が起動シーケンス中であること、(2)フォークリフト1の移動に係る動作を検出する第1エンコーダ11および/又は第2エンコーダ12の計測値が、フォークリフト1が動作中でないことを示すこと(これらの計測値が0となること)、(3)揚高センサ13および/又は荷重センサ14の計測値が、フォークリフト1を用いた荷役作業中ではないことを示すこと(これらの計測値に変動が無いこと)によって判定し、測位システム100が起動中であり、フォークリフト1が静止している(移動中でなく、荷役作業中でない)ことが確認された場合に、バイアスの推定を行う。起動シーケンス中という、原則車両が静止している状況で、さらにフォークリフト1が静止していることを確認したうえでIMU計測値を蓄積し、そのデータを利用することで、より高精度にバイアスを推定することができる。高精度にバイアスを推定することにより、フォークリフト1の位置を精度よく測位することができる。
【0029】
<第2実施形態>
以下、本開示の第2実施形態に係る測位システム100Aについて
図4~
図6を参照して説明する。第1実施形態では、測位システム100の起動シーケンス中に、フォークリフト1が動作していないことを確認してバイアスの推定を行った。これに対し、第2実施形態では、充電中のフォークリフト1Aには動作が生じない可能性が高いことを利用して、フォークリフト1Aの充電中にバイアスの推定を行う。
【0030】
(フォークリフトの構成)
図4は、第2実施形態に係るフォークリフトの一例を示す概略図である。
フォークリフト1Aは、電動式(充電式)のフォークリフトである。フォークリフト1Aは、走行体2Aと、荷役装置3と、演算装置20Aと、を備えている。走行体2Aには、IMU10等に加え、車両充電システム15が設けられている。車両充電システム15は、二次電池と充放電回路を備えている。車両充電システム15は、商用電源から電力の供給を受け、二次電池に充電する。また、車両充電システム15は、二次電池から放電させ、放電された電力を各部に供給することによりフォークリフト1Aを駆動する。車両充電システム15は、演算装置20Aと接続している。車両充電システム15は、演算装置20Aへ二次電池の充放電状態(例えば、充電開始の通知や充電終了の通知など)を通知する。演算装置20Aについては、次に
図5を用いて説明する。フォークリフト1Aの他の構成については、第1実施形態のフォークリフト1と同様である。
【0031】
(測位システムの構成)
図5は、第2実施形態に係る測位システムの一例を示す図である。
図5に示すように測位システム100Aは、測位システム本体201と、計測開始判定部202Aと、IMU計測値蓄積部203と、蓄積サンプル数監視部204と、バイアス算出部205と、バイアス更新部206と、終了判定部207Aと、IMU10と、を備える。これらのうち、測位システム本体201、計測開始判定部202A、IMU計測値蓄積部203、蓄積サンプル数監視部204、バイアス算出部205、バイアス更新部206、終了判定部207Aは、演算装置20Aに実装される。第2実施形態に係る構成のうち、第1実施形態に係る測位システム100と同様のものには同じ符号を付し、それぞれの説明を省略する。本実施形態では、フォークリフト1Aが充電中であれば、その間は、フォークリフト1Aには動作が無く、バイアス値の算出に適したIMU計測値が採取できると考える。
【0032】
計測開始判定部202Aは、車両充電システム15からの充放電状態の通知に基づいて、IMU計測値の蓄積開始判定を行う。例えば、計測開始判定部202Aは、車両充電システム15から充電開始の通知を受信するとIMU計測値の蓄積を開始すると判定する。
【0033】
終了判定部207Aは、車両充電システム15からの充放電状態の通知に基づいて、IMU計測値の蓄積終了判定を行う。例えば、計測開始判定部202Aは、車両充電システム15から充電完了の通知を受信すると、IMU計測値の蓄積を終了すると判定する。あるいは、計測開始判定部202Aは、バイアス更新部206によってバイアスが更新されると、IMU計測値の蓄積を終了すると判定する。
【0034】
(動作)
次に
図6を参照して、測位システム100Aによるバイアス推定処理について説明する。
図6は、第2実施形態に係るバイアス推定処理の一例を示すフローチャートである。
計測開始判定部202Aが、フォークリフト1Aが充電中かどうかを判定する(ステップS11)。計測開始判定部202Aは、車両充電システム15から充電開始の通知を受信すると、フォークリフト1Aが充電中であると判定する。充電中ではない場合(ステップS11;False)、バイアス推定処理を終了する。充電中の場合(ステップS11;True)、計測開始判定部202Aは、IMU計測値の蓄積を開始すると判定する。
計測開始判定部202Aは、IMU計測値蓄積部203へIMU計測値の蓄積開始を指令する。すると、IMU計測値蓄積部203は、IMU10から計測値を取得し、取得したIMU計測値を蓄積する(ステップS12)。IMU計測値蓄積部203がIMU計測値の蓄積を行っている間、終了判定部207Aは、フォークリフト1Aが充電中かどうかを監視する(ステップS13)。計測開始判定部202Aは、車両充電システム15から充電完了の通知を受信するまでは充電中であると判定し、充電完了通知の受信後は充電中ではないと判定する。充電中ではない場合(ステップS13;False)、終了判定部207Aは、IMU計測値蓄積部203に蓄積されたIMU計測値を削除して(ステップS17)、バイアス推定処理を終了する。
【0035】
充電中の場合(ステップS13;True)、蓄積サンプル数監視部204は、IMU計測値蓄積部203に十分な数のIMU計測値が蓄積されたかどうかを判定する(ステップS14)。IMU計測値が十分に蓄積されていない場合(ステップS14;False)、ステップS12以降の処理を繰り返し実行する。IMU計測値が十分に蓄積された場合(ステップS14;True)、バイアス算出部205がバイアスを算出する(ステップS15)。例えば、バイアス算出部205は、IMU計測値蓄積部203に蓄積されたIMU計測値の平均値、中央値、最頻値の何れかを算出する。バイアス算出部205は、算出した値をバイアス更新部206へ出力する。バイアス更新部206は、測位システム100Aのバイアスを更新する(ステップS16)。例えば、バイアス更新部206は、バイアス算出部205が算出した最新のバイアスを測位システム本体201へ出力する。測位システム本体201は、バイアス更新部206から取得したバイアス値を用いてIMU計測値を補償して、フォークリフト1Aの測位を行う。次に終了判定部207Aは、IMU計測値蓄積部203に蓄積されたIMU計測値を削除して(ステップS17)、バイアス推定処理を終了する。
【0036】
(効果)
以上説明したように、本実施形態によれば、電動式のフォークリフト1Aについて、充電時に車両が静止していることを利用してIMU計測値を蓄積し、バイアス値の算出を行う。フォークリフト1Aの充電時には、測位システム100Aの起動シーケンス中に比べて、フォークリフト1Aが静止状態である可能性が高い(想定外の事態が生じにくい)ため、より安定して、高精度なバイアス推定が可能となり、測位を高精度化することができる。
【0037】
なお、第2実施形態においても、第1実施形態と同様、第1エンコーダ11、第2エンコーダ12、揚高センサ13、荷重センサ14の計測値に基づいて、フォークリフト1Aが動作中でないことを確認し(例えば、
図3のステップS2、S6)、充電中かつフォークリフト1Aが動作中でない場合のみ、IMU計測値のバイアスを算出するようにしてもよい。
【0038】
<第3実施形態>
以下、本開示の第3実施形態に係る測位システム100Bについて
図7~
図8を参照して説明する。第1実施形態では、測位システム100の起動シーケンス中に、フォークリフト1が動作していないことを確認してバイアスの推定を行った。これに対し、第3実施形態では、測位システム100の起動シーケンス中であるか否かにかかわらず、フォークリフト1が動作していなければIMU計測値のバイアス推定を行う。第3実施形態に係るフォークリフトの構成は、第1実施形態のフォークリフト1と同様である。
【0039】
(測位システムの構成)
図7は、第3実施形態に係る測位システムの一例を示す図である。
図7に示すように測位システム100Bは、測位システム本体201と、計測開始判定部202Bと、IMU計測値蓄積部203と、蓄積サンプル数監視部204と、バイアス算出部205と、バイアス更新部206と、終了判定部207Bと、IMU10と、第1エンコーダ11と、第2エンコーダ12と、揚高センサ13と、荷重センサ14と、を備える。これらのうち、測位システム本体201、計測開始判定部202B、IMU計測値蓄積部203、蓄積サンプル数監視部204、バイアス算出部205、バイアス更新部206、終了判定部207Bは、演算装置20B(図示せず)に実装される。第3実施形態に係る構成のうち、第1実施形態に係る測位システム100と同様のものには同じ符号を付し、それぞれの説明を省略する。
【0040】
計測開始判定部202Bは、フォークリフト1が静止していることを確認し、IMU計測値の蓄積開始判定を行う。
終了判定部207Bは、フォークリフト1がなんらかの動作を開始するとIMU計測値の蓄積を終了すると判定する。他の機能については第1実施形態の終了判定部207と同様である。
【0041】
(動作)
次に
図8を参照して、測位システム100Bによるバイアス推定処理について説明する。
図8は、第3実施形態に係るバイアス推定処理の一例を示すフローチャートである。
計測開始判定部202Bが、第1エンコーダ11および/又は第2エンコーダ12による計測値が0かつ揚高センサ13の計測値および荷重センサ14の計測値に変化が無いかどうかを判定する(ステップS21)。第1エンコーダ11、第2エンコーダ12の計測値が0ではない、又は、揚高センサ13の計測値又は荷重センサ14の計測値が変化した場合(ステップS21;False)、バイアス推定処理を終了する。
【0042】
各センサの計測値が上記の条件を満たす場合(ステップS21;True)、計測開始判定部202BはIMU計測値の蓄積を開始すると判定し、IMU計測値の蓄積開始をIMU計測値蓄積部203へ指令する。すると、IMU計測値蓄積部203は、IMU10から計測値を取得し、取得したIMU計測値を蓄積する(ステップS22)。IMU計測値蓄積部203がIMU計測値の蓄積を行う間、終了判定部207Bは、第1エンコーダ11および/又は第2エンコーダ12による計測値が0かつ揚高センサ13の計測値および荷重センサ14の計測値に変化が無いかどうかを判定する(ステップS23)。この条件を満たさない場合(ステップS23;False)、終了判定部207Bは、IMU計測値蓄積部203に蓄積されたIMU計測値を削除して(ステップS27)、バイアス推定処理を終了する。
【0043】
各センサの計測値が上記の条件を満たす場合(ステップS23;True)、蓄積サンプル数監視部204は、IMU計測値蓄積部203に十分な数のIMU計測値が蓄積されたかどうかを判定する(ステップS24)。IMU計測値が十分に蓄積されていない場合(ステップS24;False)、ステップS22以降の処理を繰り返し実行する。IMU計測値が十分に蓄積された場合(ステップS24;True)、バイアス算出部205がバイアスを算出する(ステップS25)。次にバイアス更新部206が、測位システム100Bのバイアスを更新する(ステップS26)。測位システム本体201は、バイアス更新部206が更新したバイアスを用いてIMU計測値を補償して、フォークリフト1の測位を行う。次に終了判定部207Bは、IMU計測値蓄積部203に蓄積されたIMU計測値を削除して(ステップS27)、バイアス推定処理を終了する。ステップS21~S27の一連の処理は、フォークリフト1の稼働中繰り返し実行されてもよい。
【0044】
(効果)
以上説明したように、本実施形態によれば、測位システム100Bの起動シーケンス中でなくても、フォークリフト1が静止していればバイアスの推定を行うことができる。これにより、例えば、起動シーケンス中に作業者がフォークリフト1に対して何らかの操作を行い、バイアス推定の機会を逃したとしても、他の場面で条件が整えば、バイアス推定を行うことができる。また、IMU計測値のバイアスは経時変化する可能性があるため、フォークリフト1の運用中であっても、車両が静止している可能性の高い区間を見つけ出してその区間に計測されたIMU計測値に基づいてバイアス推定を実施することにより、常に経時変化後の(最新の)バイアスを用いて測位を行うことができる。
【0045】
なお、第1エンコーダ11、第2エンコーダ12、揚高センサ13、荷重センサ14の計測値に基づいて、フォークリフト1が静止しているか否かを判定することに代えて、又は加えて、フォークリフト1にブレーキがかかっている状態か否かを計測開始判定部202Bと終了判定部207Bにて検出できるようにし、ブレーキがかかっている状態のときにIMU計測値を蓄積してバイアスの推定を行うようにしてもよい。なお、第3実施形態は、第1実施形態および第2実施形態の何れとも組み合わせることができる。
【0046】
<第4実施形態>
以下、本開示の第4実施形態に係る測位システム100Cについて
図9~
図10を参照して説明する。有人のフォークリフト1では、停車中に作業者が作業を行う場合があり、この場合、走行体2は停止していても、作業者の動きがIMU計測値に影響する可能性がある。このような作業者の動きとしては、荷のバーコードの読み取り、倉庫管理システムの車載端末操作、パレット上に複数積まれた荷をばらす/積む、フォークリフト1に乗る/降りる、といったものがあり、それぞれの動作に伴って、車体が振動、あるいは姿勢が変化する可能性がある。そこで、第4実施形態では、IMU計測値から、作業者の動作に起因すると思われる計測値の急変を検知し、検知タイミングの前後におけるIMU計測値をバイアス推定の演算対象から除外することで、バイアス推定の精度悪化を防ぐ。第4実施形態に係るフォークリフトの構成は、第1実施形態のフォークリフト1と同様である。
【0047】
(測位システムの構成)
図9は、第4実施形態に係る測位システムの一例を示す図である。第4実施形態は、第1実施形態~第3実施形態の何れの構成と組み合わせることも可能であるが、
図9では、第3実施形態と組み合わせた場合の構成例を示す。
図9に示すように測位システム100Cは、測位システム本体201と、計測開始判定部202Bと、IMU計測値蓄積部203Cと、蓄積サンプル数監視部204と、バイアス算出部205と、バイアス更新部206と、終了判定部207Bと、計測値急変検知部208と、IMU10と、第1エンコーダ11と、第2エンコーダ12と、揚高センサ13と、荷重センサ14と、を備える。これらのうち、測位システム本体201、計測開始判定部202B、IMU計測値蓄積部203C、蓄積サンプル数監視部204、バイアス算出部205、バイアス更新部206、終了判定部207Bと、計測値急変検知部208は、演算装置20C(図示せず)に実装される。第4実施形態に係る構成のうち、第1実施形態に係る測位システム100と同様のものには同じ符号を付し、それぞれの説明を省略する。計測開始判定部202B、終了判定部207Bについては、第3実施形態で説明したとおりである。
【0048】
IMU計測値蓄積部203Cは、第1実勢形態で説明した機能に加え、作業者の動作によるIMU計測値の急変箇所を含む前後のデータを削除する機能を有している。
計測値急変検知部208は、IMU計測値蓄積部203Cに蓄積されたIMU計測値を参照し、蓄積されたIMU計測値のデータから急変箇所を検知し、その結果をIMU計測値蓄積部203Cへ通知する。なお、計測値急変検知部208によって検知されるIMU計測値の急変箇所は、作業者の動作のみならず、車両の急停止に伴う振動の検知にも適用可能である。有人のフォークリフト1は、運用時の車速が速く、車両が停止した直後に多少の車体振動が生じる場合がある。このような状況では、第1エンコーダ11、第2エンコーダ12、揚高センサ13、荷重センサ14の計測値に変化が生じずに、例えば、第3実施形態で説明したバイアス推定処理によりIMU計測値の蓄積が開始されることがあるが、実際には車体は振動しておりIMU計測値にその影響が現れる場合がある。第4実施形態を適用することにより、このような状況で蓄積されたIMU計測値からバイアス推定に適さないデータを除去することができる。
【0049】
(動作)
次に
図10を参照して測位システム100Cによるバイアス推定処理について説明する。
図10は、第4実施形態に係るバイアス推定処理の一例を示すフローチャートである。
計測開始判定部202Bが、第1エンコーダ11および/又は第2エンコーダ12による計測値が0かつ揚高センサ13の計測値および荷重センサ14の計測値に変化が無いかどうかを判定する(ステップS31)。第1エンコーダ11、第2エンコーダ12の計測値が0ではない、又は、揚高センサ13の計測値又は荷重センサ14の計測値が変化した場合(ステップS31;False)、バイアス推定処理を終了する。
【0050】
各センサの計測値が上記の条件を満たす場合(ステップS31;True)、計測開始判定部202BはIMU計測値の蓄積を開始すると判定し、IMU計測値の蓄積開始をIMU計測値蓄積部203Cへ指令する。すると、IMU計測値蓄積部203Cは、IMU10から計測値を取得し、取得したIMU計測値を蓄積する(ステップS32)。IMU計測値蓄積部203がIMU計測値の蓄積を行う間、終了判定部207Bは、第1エンコーダ11および/又は第2エンコーダ12による計測値が0かつ揚高センサ13の計測値および荷重センサ14の計測値に変化が無いかどうかを判定する(ステップS33)。この条件を満たさない場合(ステップS33;False)、終了判定部207Bは、IMU計測値蓄積部203Cに蓄積されたIMU計測値を削除して(ステップS3B)、バイアス推定処理を終了する。
【0051】
各センサの計測値が上記の条件を満たす場合(ステップS33;True)、計測値急変検知部208は、IMU計測値蓄積部203Cに蓄積されたIMU計測値を参照する(ステップS34)。計測値急変検知部208は、蓄積されたデータから急変箇所を検知する急変検知処理を実行する(ステップS35)。計測値急変検知部208は、急変箇所が検知できたかどうかを判定する(ステップS36)。急変箇所が検知できなかった場合(ステップS36;False)、ステップS38の処理に進む。急変箇所が検知できた場合(ステップS36;True)、計測値急変検知部208は、急変箇所の情報(例えば、急変箇所の開始時刻と終了時刻)をIMU計測値蓄積部203Cに通知する。IMU計測値蓄積部203Cは、蓄積されたIMU計測値の時系列データから急変箇所およびその前後(時系列的に前後の所定範囲)のIMU計測値を削除する(ステップS37)。
【0052】
ステップS35、S37の処理に関し、例えば、計測値急変検知部208は、蓄積されたデータ内の時間的に連続する区間において、その区間のIMU計測値の平均から一定幅以上の乖離があるデータが含まれる区間を急変箇所として特定する。IMU計測値蓄積部203Cは、特定された区間およびその前後(例えば、前後0.5秒)のIMU計測値を削除する。あるいは、計測値急変検知部208は、蓄積されたIMU計測値データにRANSAC(Random Sample Consensus)アルゴリズムを適用して外れ値と正常値を判別する。IMU計測値蓄積部203Cは、外れ値と判別されたIMU計測値およびその前後を削除する。又は、計測値急変検知部208は、ステップS37の後に残った急変箇所を含まないデータと、ステップS37で削除されたデータを学習してそれらを区別するモデルを構築して、IMU計測値の急変箇所を検知してもよい。例えば、計測値急変検知部208は、k近傍法等によってモデルを構築し、IMU計測値蓄積部203Cに蓄積された各データをこの学習済みモデルに基づいて、急変箇所に属するデータか否かを判定する。IMU計測値蓄積部203Cは、急変箇所に属すると判定されたデータとその前後のデータを削除する。
【0053】
次に蓄積サンプル数監視部204は、IMU計測値蓄積部203Cに十分な数のIMU計測値が蓄積されたかどうかを判定する(ステップS38)。IMU計測値が十分に蓄積されていない場合(ステップS38;False)、ステップS32以降の処理を繰り返し実行する。IMU計測値が十分に蓄積された場合(ステップS38;True)、バイアス算出部205がバイアスを算出する(ステップS39)。次にバイアス更新部206が、測位システムDのバイアスを更新する(ステップS3A)。測位システム本体201は、バイアス更新部206が更新したバイアスを用いてIMU計測値を補償して、フォークリフト1の測位を行う。次に終了判定部207Bは、IMU計測値蓄積部203Cに蓄積されたIMU計測値を削除して(ステップS3B)、バイアス推定処理を終了する。ステップS31~S3Bの一連の処理は、フォークリフト1の稼働中繰り返し実行されてもよい。
【0054】
(効果)
以上説明したように、本実施形態によれば、作業者の動作やフォークリフト1の急停止によるバイアス推定への影響を回避し、より妥当なバイアスの推定が可能となる。
【0055】
<第5実施形態>
以下、本開示の第5実施形態に係るバイアス推定について
図11~
図13を参照して説明する。IMU計測値のバイアスを変化させる主な要因として、温度変化が挙げられる。有人のフォークリフトでは、常温領域と冷凍・冷蔵倉庫を行き来する場合があり、温度変化が大きいため、フォークリフトの位置によりバイアスが変化する可能性が高い。そこで、第5実施形態では、車体に取り付けた気温計によって、周囲の温度変化を検知し、温度変化後、かつ、車両が静止している場合にバイアスを推定する。
【0056】
また、第1実施形態~第4実施形態では、フォークリフト1~1Aが静止していると判定された場合に計測されたIMU計測値のサンプル数が十分であればバイアスを推定するが、演算装置20~20C(車載器)の限られた計算リソースを考慮すると、バイアス推定処理の実行回数を削減するほうが良い場合も想定される。そこで、第5実施形態では、温度変化が基準以上となった場合にのみ一連のバイアス推定処理を行うこととし、計算負荷を低減する。
【0057】
(フォークリフトの構成)
図11は、第5実施形態に係るフォークリフトの一例を示す概略図である。
フォークリフト1Dは、走行体2Dと、荷役装置3と、演算装置20Dと、を備えている。走行体2Dには、温度センサ16が設けられている。温度センサ16は、フォークリフト1D周辺の空気温度(気温値)を計測する。温度センサ16は、演算装置20Dと接続されており、温度センサ16が計測した気温値は、演算装置20Dへ送出される。フォークリフト1Dの他の構成については、第1実施形態のフォークリフト1と同様である。
【0058】
(測位システムの構成)
図12は、第5実施形態に係る測位システムの一例を示す図である。第5実施形態は、第1実施形態~第4実施形態の何れの構成と組み合わせることも可能であるが、
図12では、第4実施形態と組み合わせた場合の構成例を示す。
図12に示すように測位システム100Dは、測位システム本体201と、計測開始判定部202Dと、IMU計測値蓄積部203Cと、蓄積サンプル数監視部204と、バイアス算出部205と、バイアス更新部206と、終了判定部207Bと、計測値急変検知部208と、温度値蓄積部209と、温度変化検知部210と、IMU10と、第1エンコーダ11と、第2エンコーダ12と、揚高センサ13と、荷重センサ14と、温度センサ16と、を備える。これらのうち、測位システム本体201、計測開始判定部202D、IMU計測値蓄積部203C、蓄積サンプル数監視部204、バイアス算出部205、バイアス更新部206、終了判定部207Dと、計測値急変検知部208と、温度値蓄積部209と、温度変化検知部210は、演算装置20Dに実装される。第5実施形態に係る構成のうち、第1実施形態に係る測位システム100と同様のものには同じ符号を付し、それぞれの説明を省略する。
【0059】
温度値蓄積部209は、温度値蓄積部209は、メモリ等の記憶媒体を含んで構成される。温度値蓄積部209は、温度センサ16から気温値を取得して蓄積する。温度値蓄積部209は、蓄積された気温値のうち、計測されてから経過した時間が一定時間を超えるデータを削除する。
【0060】
温度変化検知部210は、温度値蓄積部209に蓄積された時系列の気温値のデータを参照し、温度変化が基準以上かどうか判定する。例えば、温度変化検知部210は、温度値蓄積部209に蓄積されたデータのうち、最近取得されたデータ(例えば、最新の気温値から遡って数点の気温値、あるいは直近の例えば1~2秒間に取得された気温値)の平均と、それ以前に取得されたデータの平均との差が所定の基準以上であれば温度変化が生じたと判定する。
【0061】
計測開始判定部202Dは、温度変化検知部210によって温度変化が検知され、かつ、検知後にバイアス更新が行われておらず、かつ、第1エンコーダ11および/又は第2エンコーダ12の計測値が0、かつ、揚高センサ13および荷重センサ14の計測値の変化量が0であることを確認すると、IMU計測値の蓄積を開始すると判定する。
終了判定部207Dは、第3実施形態の終了判定部207Bと同様である。
【0062】
(動作)
次に
図13を参照して測位システム100Dによるバイアス推定処理について説明する。
図13は、第5実施形態に係るバイアス推定処理の一例を示すフローチャートである。
温度値蓄積部209が、温度センサ16から気温値を取得し、気温値を蓄積する(ステップS41)。次に温度変化検知部210が、蓄積された気温値を参照する(ステップS42)。温度変化検知部210は、温度変化を算出する(ステップS43)。次に温度変化検知部210は、温度変化が基準以上かどうかを判定する(ステップS44)。温度変化が基準未満の場合(ステップS44;False)、バイアス推定処理を終了する。算出した温度変化が基準以上の場合(ステップS44;True)、温度変化検知部210は、温度変化を検知したことを計測開始判定部202Dへ通知する。これにより、バイアス推定処理が開始される。以降の処理は第4実施形態と同様であるため簡単に説明する。計測開始判定部202Dは、温度変化検知の通知を温度変化検知部210から取得すると、第1エンコーダ11および/又は第2エンコーダ12による計測値が0かつ揚高センサ13の計測値および荷重センサ14の計測値に変化が無いかどうかを判定する(ステップS45)。第1エンコーダ11、第2エンコーダ12の計測値が0ではない、又は、揚高センサ13の計測値又は荷重センサ14の計測値が変化した場合(ステップS45;False)、バイアス推定処理を終了する。
【0063】
各センサの計測値が上記の条件を満たす場合(ステップS45;True)、計測開始判定部202DはIMU計測値の蓄積を開始すると判定し、IMU計測値の蓄積開始をIMU計測値蓄積部203Cへ指令する。IMU計測値蓄積部203Cは、IMU10から計測値を取得し、取得したIMU計測値を蓄積する(ステップS46)。終了判定部207Dは、第1エンコーダ11および/又は第2エンコーダ12による計測値が0かつ揚高センサ13の計測値および荷重センサ14の計測値に変化が無いかどうかを判定する(ステップS47)。この条件を満たさない場合(ステップS47;False)、終了判定部207Dは、IMU計測値蓄積部203Cに蓄積されたIMU計測値を削除して(ステップS4F)、バイアス推定処理を終了する。
【0064】
各センサの計測値が上記の条件を満たす場合(ステップS47;True)、計測値急変検知部208は、IMU計測値蓄積部203Cに蓄積されたIMU計測値を参照する(ステップS48)。計測値急変検知部208は、急変検知処理を実行する(ステップS49)。計測値急変検知部208は、急変箇所が検知できたかどうかを判定する(ステップS4A)。急変箇所が検知できなかった場合(ステップS4A;False)、ステップS4Cの処理に進む。急変箇所が検知できた場合(ステップS4A;True)、IMU計測値蓄積部203Cは、蓄積されたIMU計測値の時系列データから急変箇所とその前後のデータを削除する(ステップS4B)。
【0065】
次に蓄積サンプル数監視部204は、IMU計測値蓄積部203Cに十分な数のIMU計測値が蓄積されたかどうかを判定する(ステップS4C)。IMU計測値が十分に蓄積されていない場合(ステップS4C;False)、ステップS46以降の処理を繰り返し実行する。IMU計測値が十分に蓄積された場合(ステップS4C;True)、バイアス算出部205がバイアスを算出する(ステップS4D)。次にバイアス更新部206が測位システム100Dのバイアスを更新する(ステップS4E)。次に終了判定部207Dは、IMU計測値蓄積部203Cに蓄積されたIMU計測値を削除して(ステップS4F)、バイアス推定処理を終了する。ステップS41~S4Fの一連の処理は、フォークリフト1Dの稼働中、繰り返し実行されてもよい。
【0066】
(効果)
以上説明したように、本実施形態によれば、バイアス変化の主要因となる温度変化時にのみバイアス推定および更新を行うことで、計算負荷を下げつつ、測位精度を担保することができる。
【0067】
図14は、各実施形態に係る測位システムのハードウェア構成の一例を示す図である。 コンピュータ900は、CPU901、主記憶装置902、補助記憶装置903、入出力インタフェース904、通信インタフェース905を備える。
上述の演算装置20~20Dは、コンピュータ900に実装される。そして、上述した各機能は、プログラムの形式で補助記憶装置903に記憶されている。CPU901は、プログラムを補助記憶装置903から読み出して主記憶装置902に展開し、当該プログラムに従って上記処理を実行する。また、CPU901は、プログラムに従って、記憶領域を主記憶装置902に確保する。また、CPU901は、プログラムに従って、処理中のデータを記憶する記憶領域を補助記憶装置903に確保する。
【0068】
なお、演算装置20~20Dの全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各機能部による処理を行ってもよい。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、CD、DVD、USB等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、このプログラムが通信回線によってコンピュータ900に配信される場合、配信を受けたコンピュータ900が当該プログラムを主記憶装置902に展開し、上記処理を実行しても良い。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0069】
以上のとおり、本開示に係るいくつかの実施形態を説明したが、これら全ての実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0070】
<付記>
各実施形態に記載のバイアス推定装置、フォークリフト、バイアス推定方法及びプログラムは、例えば以下のように把握される。
【0071】
(1)第1の態様に係るバイアス推定装置(演算装置20~20D)は、フォークリフト1~1Dの移動に関する情報を検知する第1センサ(第1エンコーダ11、第2エンコーダ12)による計測値と、前記フォークリフトの荷役装置に関する情報を検知する第2センサ(揚高センサ13、荷重センサ14)による計測値と、に基づいて前記フォークリフトが静止しているか否かを判定する判定部(計測開始判定部202~202D、終了判定部207~207D)と、前記判定部が静止していると判定すると、前記フォークリフトが備える慣性計測装置(IMU10)による計測値であるIMU計測値を蓄積し、前記判定部が静止していないと判定すると、前記IMU計測値の蓄積を停止する蓄積部(IMU計測値蓄積部203、203C)と、前記蓄積部に蓄積された前記IMU計測値に基づいて、前記IMU計測値のバイアスを算出する算出部(バイアス算出部205)と、を備える。
これにより、精度よくバイアスを推定することができる。
【0072】
(2)第2の態様に係るバイアス推定装置は、(1)のバイアス推定装置であって、前記判定部は、前記第1センサによる計測値が、前記フォークリフトが移動中であることを示さず、前記第2センサによる計測値が、前記フォークリフトが荷役動作中であることを示さない第1条件を満たせば、前記フォークリフトが静止していると判定し、前記第1条件を満たさなければ、前記フォークリフトが静止していないと判定する。
これにより、フォークリフトが静止しているかどうかを高精度に判定することができる(第3実施形態)。
【0073】
(3)第3の態様に係るバイアス推定装置は、(2)のバイアス推定装置であって、前記判定部は、前記慣性計測装置が起動中か否かの情報を取得し、前記慣性計測装置が起動中であって、さらに前記第1条件を満たせば、前記フォークリフトが静止していると判定し、そうでなければ、前記フォークリフトが静止していないと判定する。
これにより、フォークリフトが静止しているかどうかを高精度に判定することができる(第1実施形態)。
【0074】
(4)第4の態様に係るバイアス推定装置は、(1)~(3)のバイアス推定装置であって、前記判定部は、前記フォークリフトが充電中か否かの情報を取得し、充電中の場合、前記フォークリフトが静止していると判定し、充電中でない場合、前記フォークリフトが静止していないと判定する。
これにより、フォークリフトが静止しているかどうかを判定することができる(第2実施形態)。
【0075】
(5)第5の態様に係るバイアス推定装置は、(1)~(4)のバイアス推定装置であって、前記蓄積部に蓄積された前記IMU計測値の急変箇所を検知する急変箇所検知部、をさらに備え、前記蓄積部は、前記急変箇所検知部によって検知された蓄積箇所の前記IMU計測値を、蓄積された前記IMU計測値から削除し、前記算出部は、削除後の前記IMU計測値に基づいて前記バイアスを算出する。
これにより、蓄積部に蓄積された前記IMU計測値に混在する、バイアス推定に適さないデータを除いてバイアス推定を行うことができる。
【0076】
(6)第6の態様に係るバイアス推定装置は、(1)~(5)のバイアス推定装置であって、前記フォークリフトの周辺温度についての時系列の温度データを蓄積する温度値蓄積部と、前記温度値蓄積部に蓄積された時系列の温度データに基づいて、前記周辺温度が基準以上変化したかどうかを検知する温度変化検知部と、をさらに備え、前記蓄積部は、前記温度変化検知部が、前記周辺温度が基準以上変化したと判定し、かつ、前記判定部が静止していると判定すると、前記IMU計測値を蓄積する。
温度変化の影響を受けやすいバイアスを、温度変化があったときのみ推定することにより、計算負荷を低減しつつ、バイアスの精度を担保することができる。
【0077】
(7)第7の態様に係るバイアス推定装置は、(1)~(7)のバイアス推定装置であって、前記第1センサは、前記フォークリフトが備えるタイヤの回転数および/又は総舵角を検知するセンサであり、前記第2センサは、前記フォークリフトが備えるフォークの揚高位置および/又は前記フォークに積載された荷物の重量を検知するセンサである。
これにより、フォークリフトが移動や回転の動作を行っているか、フォークリフトを用いた荷役作業中かどうかを検知し、両方の観点から、フォークリフトが静止しているかどうかを判定することができる。
【0078】
(8)第8の態様に係るバイアス推定装置(演算装置20B)は、フォークリフトが充電中か否かの情報を取得し、充電中の場合、前記フォークリフトが静止していると判定し、充電中でない場合、前記フォークリフトが静止していないと判定する判定部(計測開始判定部202A、終了判定部207A)と、前記判定部が静止していると判定すると、前記フォークリフトが備える慣性計測装置(IMU10)による計測値であるIMU計測値を蓄積し、前記判定部が静止していないと判定すると、前記IMU計測値の蓄積を停止する蓄積部(IMU計測値蓄積部203、203C)と、前記蓄積部に蓄積された前記IMU計測値に基づいて、前記IMU計測値のバイアスを算出する算出部(バイアス算出部205)と、を備える。
充電中のフォークリフトが静止していることを利用して、バイアス推定を行うことにより、高精度にバイアスを推定することができる(第2実施形態)。
【0079】
(9)第9の態様に係るフォークリフトは、(1)~(7)のバイアス推定装置と、前記バイアス推定装置によって前記IMU計測値を補償して、前記フォークリフトの位置を推定する測位装置(測位システム本体201)と、走行体と、荷役装置と、を備える。
【0080】
(10)第10の態様に係るバイアス推定方法は、フォークリフトの移動に関する情報を検知する第1センサによる計測値と、前記フォークリフトが備える荷役装置に関する情報を検知する第2センサによる計測値と、に基づいて前記フォークリフトが静止しているか否かを繰り返し判定するステップと、前記判定するステップにて、静止していると判定されると、前記フォークリフトが備える慣性計測装置による計測値であるIMU計測値を蓄積するステップと、前記判定するステップにて、静止していないと判定されると、前記IMU計測値の蓄積を停止するステップと、蓄積された前記IMU計測値に基づいて、前記IMU計測値のバイアスを算出するステップと、を有する。
【0081】
(11)第11の態様に係るプログラムは、コンピュータ900に、フォークリフトの移動に関する情報を検知する第1センサによる計測値と、前記フォークリフトが備える荷役装置に関する情報を検知する第2センサによる計測値と、に基づいて前記フォークリフトが静止しているか否かを繰り返し判定するステップと、前記判定するステップにて、静止していると判定されると、前記フォークリフトが備える慣性計測装置による計測値であるIMU計測値を蓄積するステップと、前記判定するステップにて、静止していないと判定されると、前記IMU計測値の蓄積を停止するステップと、蓄積された前記IMU計測値に基づいて、前記IMU計測値のバイアスを算出するステップと、を実行させる。
【符号の説明】
【0082】
100、100A、100B、100C、100D・・・測位システム
1、1A、1D・・・フォークリフト
2・・・走行体
3・・・荷役装置
4・・・フォーク
5・・・昇降装置
10・・・IMU
11・・・第1エンコーダ
12・・・第2エンコーダ
13・・・揚高センサ
14・・・荷重センサ
15・・・車両充電システム
16・・・温度センサ
20、20A、20B、20C、20D・・・演算装置
201・・・測位システム本体
202、202B、202D・・・計測開始判定部
203C・・・IMU計測値蓄積部
204・・・蓄積サンプル数監視部
205・・・バイアス算出部
206・・・バイアス更新部
207、207B、207D・・・終了判定部
208・・・計測値急変検知部
209・・・温度値蓄積部
210・・・温度変化検知部
900・・・コンピュータ
901・・・CPU
902・・・主記憶装置
903・・・補助記憶装置
904・・・入出力インタフェース
905・・・通信インタフェース