(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023140976
(43)【公開日】2023-10-05
(54)【発明の名称】演算装置、演算方法及びプログラム
(51)【国際特許分類】
G01B 11/00 20060101AFI20230928BHJP
G05D 1/02 20200101ALI20230928BHJP
【FI】
G01B11/00 H
G01B11/00 Z
G05D1/02 J
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022047072
(22)【出願日】2022-03-23
(71)【出願人】
【識別番号】000006208
【氏名又は名称】三菱重工業株式会社
(71)【出願人】
【識別番号】504171134
【氏名又は名称】国立大学法人 筑波大学
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】木内 裕介
(72)【発明者】
【氏名】北島 克将
(72)【発明者】
【氏名】坪内 孝司
【テーマコード(参考)】
2F065
5H301
【Fターム(参考)】
2F065AA03
2F065AA04
2F065AA09
2F065AA31
2F065AA37
2F065CC11
2F065DD03
2F065FF04
2F065FF09
2F065FF11
2F065FF64
2F065FF65
2F065FF67
2F065GG04
2F065MM16
2F065QQ13
2F065QQ29
2F065QQ31
2F065QQ38
5H301AA01
5H301AA10
5H301BB05
5H301BB07
5H301CC03
5H301CC06
5H301CC10
5H301DD01
5H301DD06
5H301DD15
5H301GG08
5H301GG09
5H301GG12
5H301GG14
5H301GG16
5H301HH01
5H301HH03
(57)【要約】
【課題】移動体の移動量を推定するためのパラメータを高精度に算出する。
【解決手段】演算装置は、移動体に搭載されて移動体の周囲を検出する外界センサの検出結果に基づいて、移動体の第1推定位置を算出する第1位置算出部と、移動体に搭載されて移動体の制御出力を示す出力パラメータを検出する内界センサの検出結果に基づいて、移動体の第2推定位置を算出する第2位置算出部と、第1推定位置及び第2推定位置に基づいて、移動体の移動量を算出するための移動パラメータの推定値を算出するパラメータ算出部と、移動体の停止時における外界センサの検出結果に基づいて、推定値の妥当性を判定する判定部と、妥当であると判断された推定値を移動体の移動パラメータとして設定するパラメータ設定部と、を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
移動体に搭載されて前記移動体の周囲を検出する外界センサの検出結果に基づいて、前記移動体の第1推定位置を算出する第1位置算出部と、
前記移動体に搭載されて前記移動体の制御出力を示す出力パラメータを検出する内界センサの検出結果に基づいて、前記移動体の第2推定位置を算出する第2位置算出部と、
第1推定位置及び前記第2推定位置に基づいて、前記移動体の移動量を算出するための移動パラメータの推定値を算出するパラメータ算出部と、
前記移動体の停止時における前記外界センサの検出結果に基づいて、前記推定値の妥当性を判定する判定部と、
妥当であると判断された前記推定値を前記移動体の移動パラメータとして設定するパラメータ設定部と、
を含む、
演算装置。
【請求項2】
前記第1位置算出部は、所定時間毎に検出された前記外界センサの検出結果から、所定時間毎の前記第1推定位置を算出し、
前記第2位置算出部は、所定時間毎に検出された前記内界センサの検出結果から、所定時間毎の前記第2推定位置を算出し、
前記パラメータ算出部は、所定時間毎の前記第1推定位置と前記第2推定位置との差分に基づいて、前記移動パラメータの推定値を算出する、請求項1に記載の演算装置。
【請求項3】
前記パラメータ算出部は、所定時間毎の前記第1推定位置と前記第2推定位置との差分の合計値が、最小となるように、前記移動パラメータの推定値を算出する、請求項2に記載の演算装置。
【請求項4】
前記判定部は、
前記移動体の停止時において第1外界センサにより検出された、前記移動体の周囲の検出体の検出結果と、前記移動パラメータの推定値とに基づいて、前記移動体の基準座標系における前記検出体の位置を算出し、
前記移動体の停止時において第2外界センサにより検出された、前記検出体の検出結果と、前記移動パラメータの推定値とに基づいて、前記移動体の基準座標系における前記検出体の位置を算出し、
前記第1外界センサの検出結果に基づいて算出された前記検出体の位置と、前記第2外界センサの検出結果に基づいて算出された前記検出体の位置とのずれ量が、所定値以下である場合に、前記移動パラメータの推定値が妥当であると判断する、請求項1から請求項3のいずれか1項に記載の演算装置。
【請求項5】
前記判定部は、
前記移動体の停止時において第1外界センサにより検出された、前記移動体の周囲の複数の検出体の検出結果から、前記第1外界センサの位置を算出し、
前記移動体の停止時において第2外界センサにより検出された、前記複数の検出体の検出結果から、前記第2外界センサの位置を算出し、
前記第1外界センサの位置と前記第2外界センサの位置とから算出された、前記第1外界センサに対する前記第2外界センサの相対位置と、前記移動パラメータの推定値から算出された、前記第1外界センサに対する前記第2外界センサの相対位置とのずれ量が、所定値以下である場合に、前記移動パラメータの推定値が妥当であると判断する、請求項1から請求項3のいずれか1項に記載の演算装置。
【請求項6】
前記パラメータ算出部は、前記移動体の停止時における前記内界センサの検出結果に基づいて、前記内界センサの検出結果の正常値からのずれ量を示すバイアス値を算出し、前記バイアス値にも基づき、前記移動パラメータの推定値を算出する、請求項1から請求項5のいずれか1項に記載の演算装置。
【請求項7】
前記パラメータ算出部は、
第1時間帯での前記外界センサ及び前記内界センサの検出結果に基づいて算出された前記第1推定位置と前記第2推定位置とに基づいて、前記第1時間帯における前記移動パラメータの推定値を算出し、
第1時間帯より後の第2時間帯での前記外界センサ及び前記内界センサの検出結果に基づいて算出された前記第1推定位置と前記第2推定位置とに基づいて、前記第2時間帯における前記移動パラメータの推定値を算出し、
前記判定部は、前記第2時間帯における前記移動パラメータの推定値が、前記第1時間帯における前記移動パラメータの推定値に対して所定条件を満たす場合に、前記第2時間帯における前記移動パラメータの推定値が妥当であると判断する、請求項1から請求項6のいずれか1項に記載の演算装置。
【請求項8】
前記移動パラメータは、前記移動体の基準座標系における前記外界センサの位置と、前記移動体の車輪径と、前記内界センサの検出結果の正常値からのずれ量を示すバイアス値との、少なくとも1つである、請求項1から請求項7のいずれか1項に記載の演算装置。
【請求項9】
移動体に搭載されて前記移動体の周囲を検出する外界センサの検出結果に基づいて、前記移動体の第1推定位置を算出するステップと、
前記移動体に搭載されて前記移動体の制御出力を示す出力パラメータを検出する内界センサの検出結果に基づいて、前記移動体の第2推定位置を算出するステップと、
第1推定位置及び前記第2推定位置に基づいて、前記移動体の移動量を算出するための移動パラメータの推定値を算出するステップと、
前記移動体の停止時における複数の前記外界センサの検出結果に基づいて、前記推定値の妥当性を判定するステップと、
妥当であると判断された前記推定値を前記移動体の移動パラメータとして設定するステップと、
を含む、
演算方法。
【請求項10】
移動体に搭載されて前記移動体の周囲を検出する外界センサの検出結果に基づいて、前記移動体の第1推定位置を算出するステップと、
前記移動体に搭載されて前記移動体の制御出力を示す出力パラメータを検出する内界センサの検出結果に基づいて、前記移動体の第2推定位置を算出するステップと、
第1推定位置及び前記第2推定位置に基づいて、前記移動体の移動量を算出するための移動パラメータの推定値を算出するステップと、
前記移動体の停止時における複数の前記外界センサの検出結果に基づいて、前記推定値の妥当性を判定するステップと、
妥当であると判断された前記推定値を前記移動体の移動パラメータとして設定するステップと、
を、コンピュータに実行させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、演算装置、演算方法及びプログラムに関する。
【背景技術】
【0002】
移動体には、周囲を検出するセンサが備えられる場合がある。特許文献1には、車両に設けられた複数のセンサ同士の位置ずれ量を検出するキャリブレーション装置が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
このような移動体においては、例えば移動体の基準座標系におけるセンサの位置などの、移動体の移動量を推定するためのパラメータを高精度に算出することで、移動体のキャリブレーションを適切に実行することが求められている。
【0005】
本開示は、上述した課題を解決するものであり、移動体の移動量を推定するためのパラメータを高精度に算出可能な演算装置、演算方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本開示に係る演算装置は、移動体に搭載されて前記移動体の周囲を検出する外界センサの検出結果に基づいて、前記移動体の第1推定位置を算出する第1位置算出部と、前記移動体に搭載されて前記移動体の制御出力を示す出力パラメータを検出する内界センサの検出結果に基づいて、前記移動体の第2推定位置を算出する第2位置算出部と、第1推定位置及び前記第2推定位置に基づいて、前記移動体の移動量を算出するための移動パラメータの推定値を算出するパラメータ算出部と、前記移動体の停止時における前記外界センサの検出結果に基づいて、前記推定値の妥当性を判定する判定部と、妥当であると判断された前記推定値を前記移動体の移動パラメータとして設定するパラメータ設定部と、を含む。
【0007】
上述した課題を解決し、目的を達成するために、本開示に係る演算方法は、移動体に搭載されて前記移動体の周囲を検出する外界センサの検出結果に基づいて、前記移動体の第1推定位置を算出するステップと、前記移動体に搭載されて前記移動体の制御出力を示す出力パラメータを検出する内界センサの検出結果に基づいて、前記移動体の第2推定位置を算出するステップと、第1推定位置及び前記第2推定位置に基づいて、前記移動体の移動量を算出するための移動パラメータの推定値を算出するステップと、前記移動体の停止時における複数の前記外界センサの検出結果に基づいて、前記推定値の妥当性を判定するステップと、妥当であると判断された前記推定値を前記移動体の移動パラメータとして設定するステップと、を含む。
【0008】
上述した課題を解決し、目的を達成するために、本開示に係るプログラムは、移動体に搭載されて前記移動体の周囲を検出する外界センサの検出結果に基づいて、前記移動体の第1推定位置を算出するステップと、前記移動体に搭載されて前記移動体の制御出力を示す出力パラメータを検出する内界センサの検出結果に基づいて、前記移動体の第2推定位置を算出するステップと、第1推定位置及び前記第2推定位置に基づいて、前記移動体の移動量を算出するための移動パラメータの推定値を算出するステップと、前記移動体の停止時における複数の前記外界センサの検出結果に基づいて、前記推定値の妥当性を判定するステップと、妥当であると判断された前記推定値を前記移動体の移動パラメータとして設定するステップと、を、コンピュータに実行させる。
【発明の効果】
【0009】
本開示によれば、移動体の移動量を推定するためのパラメータを高精度に算出することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、本実施形態に係る移動体の模式図である。
【
図2】
図2は、制御装置の模式的なブロック図である。
【
図3】
図3は、推定位置の算出の一例を説明する模式図である。
【
図4】
図4は、移動パラメータの推定値の妥当性の判定方法の例を説明する模式図である。
【
図5】
図5は、移動パラメータの推定値の妥当性の判定方法の例を説明する模式図である。
【
図6】
図6は、本実施形態に係る移動パラメータの設定の処理フローを説明するフローチャートである。
【
図7】
図7は、第1実施形態の他の例に係る演算装置の模式的なブロック図である。
【
図8】
図8は、バイアス値の一例を示すグラフである。
【
図9】
図9は、第3実施形態における移動パラメータの設定の処理フローを説明するフローチャートである。
【発明を実施するための形態】
【0011】
以下に添付図面を参照して、本開示の好適な実施形態を詳細に説明する。なお、この実施形態により本開示が限定されるものではなく、また、実施形態が複数ある場合には、各実施形態を組み合わせて構成するものも含むものである。
【0012】
(第1実施形態)
(移動体)
図1は、本実施形態に係る移動体の模式図である。本実施形態においては、移動体10は、自動で移動可能な装置である。より詳しくは、移動体10は、フォークリフトであり、より詳しくはいわゆるAGV(Automated Guided Vehicle)やAGF(Automated Guided Forklift)である。ただし、移動体10は、移動可能な任意の装置であってよく、フォークリフトであることに限られない。また、移動体10は、自動で移動する装置に限られず、ユーザの運転によって移動する装置であってもよい。
【0013】
(移動体の構成)
図1に示すように、移動体10は、車体20と、車輪20Aと、ストラドルレッグ21と、マスト22と、フォーク24と、外界センサ26Aと、内界センサ26Bと、制御装置28とを備えている。ストラドルレッグ21は、車体20の前後方向における一方の端部に設けられて、車体20から突出する一対の軸状の部材である。車輪20Aは、それぞれのストラドルレッグ21の先端と、車体20とに設けられている。すなわち、車輪20Aは、合計3個設けられているが、車輪20Aの設けられる位置や個数は任意であってよい。マスト22は、ストラドルレッグ21に移動可能に取り付けられ、車体20の前後方向に移動する。マスト22は、前後方向に直交する上下方向に沿って延在する。フォーク24は、マスト22に方向Zに移動可能に取付けられている。フォーク24は、マスト22に対して、車体20の横方向(上下方向及び前後方向に交差する方向)にも移動可能であってよい。フォーク24は、一対のツメ24A、24Bを有している。ツメ24A、24Bは、マスト22から車体20の前方向に向けて延在している。ツメ24Aとツメ24Bとは、マスト22の横方向に、互いに離れて配置されている。以下、前後方向のうち、移動体10においてフォーク24が設けられている側の方向を、前方向とし、フォーク24が設けられていない側の方向を、後方向とする。
【0014】
(外界センサ)
外界センサ26Aは、移動体10に搭載されて、移動体10の周囲を検出するセンサである。外界センサ26Aは、移動体10の周辺に存在する対象物の位置を検出する。本実施形態では、外界センサ26Aは、移動体10に対する対象物の位置及び姿勢を検出することが好ましい。外界センサ26Aは、例えばレーザ光を照射するセンサである。外界センサ26Aは、一方向(ここでは横方向)に走査しつつレーザ光を照射し、照射したレーザ光の反射光から、対象物の位置及び向きを検出する。すなわち、外界センサ26Aは、いわゆる2次元(2D)-LiDAR(Light Detection And Ranging)であるともいえる。ただし、外界センサ26Aは、以上のものに限られず任意の方法で対象物を検出するセンサであってよく、例えば、複数の方向に走査されるいわゆる3次元(3D)-LiDARであってもよいし、走査されない、いわゆる1次元(1D)-LiDARであってもよいし、周囲を撮像するカメラであってもよい。
【0015】
図1の例では、外界センサ26Aは、車体20の後方向側(フォーク24と反対側)において、横方向に並んで2つ設けられている。ただし、外界センサ26Aの設けられる位置はこれに限られず、任意の位置に設けられてもよいし、設けられる数も任意であってよい。ただし、外界センサ26Aは、複数設けられることが好ましい。
【0016】
(内界センサ)
内界センサ26Bは、移動体10に搭載されて、移動体10の出力パラメータを検出するセンサである。出力パラメータとは、移動体の制御出力を示すパラメータである。さらに言えば、出力パラメータとは、移動体10が制御によって動作した度合いを指しており、移動体10に制御入力がなされた際の、移動体10からの出力値であるといえる。すなわち、移動体10の駆動機構(アクチュエータなど)には、制御装置28により、所望の進行方向及び移動速度となるように、制御入力がなされる。移動体10の駆動機構は、制御入力に応じて作動して、制御入力に応じた出力パラメータが、内界センサ26Bにより検出される。出力パラメータは、移動体の制御出力を示す任意のパラメータであってよいが、本実施形態では、移動体10の車輪20Aの回転数と移動体10の操舵角である。この場合、内界センサ26Bは、車輪20Aの回転数(単位時間当たりの回転数)と、移動体10の操舵角(車輪20Aの向きの変化量)とを、検出する。内界センサ26として、回転数を検出するセンサと操舵角を検出するセンサとが設けられていてもよいし、1つのセンサで回転数と操舵角とを検出してもよい。内界センサ26Bは、例えば、IMU(Inertial Measurement Unit)であってもよい。
【0017】
(制御装置)
図2は、制御装置の模式的なブロック図である。本実施形態では、演算装置としての制御装置28は、移動体10の移動パラメータを設定するキャリブレーション処理を実行し、移動体10の移動を制御する装置である。すなわち、本実施形態では、制御装置28が、移動パラメータを設定する演算装置と、移動体10の移動を制御する制御装置との両方の機能を兼ね備えている。ただし、後述のように、移動パラメータを設定する演算装置と、移動体10の移動を制御する制御装置とが別体であってよい。この場合、移動パラメータを設定する演算装置は、移動体10に搭載されず、移動体10とは別の場所に配置されていてよい。なお、移動パラメータについては後述する。
【0018】
制御装置28は、コンピュータであり、
図2に示すように、通信部30と記憶部32と制御部34とを含む。通信部30は、制御部34に用いられて、外部の装置と通信するモジュールであり、例えばWiFi(登録商標)モジュールやアンテナなどを含んでよい。通信部30による通信方式は、本実施形態では無線通信であるが、通信方式は任意であってよい。記憶部32は、制御部34の演算内容やプログラムなどの各種情報を記憶するメモリであり、例えば、RAM(Random Access Memory)と、ROM(Read Only Memory)のような主記憶装置と、HDD(Hard Disk Drive)などの外部記憶装置とのうち、少なくとも1つ含む。
【0019】
制御部34は、演算装置であり、例えばCPU(Central Processing Unit)などの演算回路を含む。制御部34は、移動制御部40と、第1位置算出部42と、第2位置算出部44と、パラメータ算出部46と、判定部48と、パラメータ設定部50とを含む。制御部34は、記憶部32からプログラム(ソフトウェア)を読み出して実行することで、移動制御部40と第1位置算出部42と第2位置算出部44とパラメータ算出部46と判定部48とパラメータ設定部50とを実現して、それらの処理を実行する。なお、制御部34は、1つのCPUによってこれらの処理を実行してもよいし、複数のCPUを備えて、それらの複数のCPUで、処理を実行してもよい。また、移動制御部40と第1位置算出部42と第2位置算出部44とパラメータ算出部46と判定部48とパラメータ設定部50との少なくとも一部を、ハードウェア回路で実現してもよい。また、記憶部32が保存する制御部34用のプログラムは、制御装置28(演算装置)が読み取り可能な記録媒体に記憶されていてもよい。
【0020】
(移動制御部)
移動制御部40は、移動体10の移動を制御する。移動制御部40は、移動体10が移動する経路を設定する。移動制御部40は、移動体10の移動経路を任意の方法で設定してよく、例えば、移動体10の移動先などを設定するシステム(装置)から、移動経路の情報を取得してもよいし、そのシステムから取得した移動先の情報に基づき、自身で移動経路を設定してもよい。移動制御部40は、移動体10の駆動機構に対して制御入力を行うことで駆動機構を駆動させ、設定した移動経路に沿って移動体10を移動させる。また、移動制御部40は、外界センサ26A及び内界センサ26Bを制御して、外界センサ26Aに周囲を検出させつつ、内界センサ26Bに出力パラメータを検出させる。移動制御部40は、外界センサ26Aに所定時間毎に周囲を検出させて、内界センサ26Bに所定時間毎に出力パラメータを検出させる。
【0021】
(第1位置算出部)
図3は、推定位置の算出の一例を説明する模式図である。第1位置算出部42は、外界センサ26Aの検出結果に基づいて、移動体10の第1推定位置を算出する。さらに言えば、第1位置算出部42は、外界センサ26Aの検出結果と、後述の移動パラメータΦの設定値(本例では移動体10の基準座標系における外界センサ26Aの位置)とに基づいて、移動体10の第1推定位置を算出する。第1推定位置とは、外界センサ26Aの検出結果により推定された、移動体10の位置を指す。第1位置算出部42は、移動体10の移動中における外界センサ26Aの所定時間毎の検出結果を取得して、所定時間毎の検出結果から、所定時間毎の第1推定位置を算出する。以下、
図3に基づいてより具体的に説明する。
【0022】
ここで、ある時刻(
図3の例では時刻i-1)からその後の時刻(
図3の例では時刻i)までの外界センサ26Aの移動方向及び移動量(
図3の例では、移動ベクトルf(z
i))は、時刻iにおいて外界センサ26Aに検出された対象物の位置と、時刻i-1において外界センサ26Aに検出された同じ対象物の位置との差分に相当する。従って、第1位置算出部42は、時刻iにおいて外界センサ26Aに検出された対象物の位置と、時刻i-1において外界センサ26Aに検出された同じ対象物の位置とに基づいて、時刻i-1から時刻iまでの外界センサ26Aの移動方向及び移動量を算出できる。例えば、第1位置算出部42は、時刻i-1での対象物の位置から、時刻iでの同じ対象物の位置までの変位量及び変位方向を、時刻i-1から時刻iまでの外界センサ26Aの移動方向及び移動量として算出する。なお、同じ対象物であるかは任意の方法で判定できるが、例えば外界センサ26AがLiDARの場合、第1位置算出部42は、スキャンマッチングを行うことで、時刻i-1における点群と時刻iにおける点群のうちから、同一対象物を検出した点群(検出点)を抽出する。そして、第1位置算出部42は、抽出した時刻i-1における点群の位置と、抽出した時刻iにおける点群の位置とに基づいて、時刻i-1から時刻iまでの外界センサ26Aの移動方向及び移動量を算出する。また例えば、外界センサ26Aがカメラの場合、第1位置算出部42は、画像認識によって、時刻i-1に撮像された画像と時刻iに撮像された画像のうちから、同じ対象物が写っている領域(画素群)を特定する。そして、第1位置算出部42は、時刻i-1において特定した領域の位置と、時刻iにおいて特定した領域の位置とに基づいて、時刻i-1から時刻iまでの外界センサ26Aの移動方向及び移動量を算出する。
【0023】
第1位置算出部42は、このようにして算出した時刻i-1から時刻iまでの外界センサ26Aの移動方向及び移動量(移動ベクトルf(z
i))と、移動体10の基準座標系における外界センサ26Aの位置(
図3の例では外界センサ26Aから基準点PまでのベクトルΦ’)に基づいて、時刻i-1から時刻iまでの移動体10の基準点Pの移動方向及び移動量(
図3の例では、移動ベクトルf
Φ’(z
i))を算出する。言い換えれば、第1位置算出部42は、移動ベクトルf(z
i)から、ベクトルΦ’だけずらしたベクトルを、時刻i-1から時刻iまでの基準点Pの移動方向及び移動量(移動ベクトルf
Φ’(z
i))として算出する。なお、移動体10の基準座標系とは、移動体10の基準点Pを基準とした座標系であり、基準点Pは任意の位置に設定されてよい。移動体10の基準座標系における外界センサ26Aの位置は、移動体10の基準点Pに対する外界センサ26Aの位置ともいえ、例えば設計情報などから、予め設定されてよい。
【0024】
第1位置算出部42は、このようにして算出した、時刻i-1から時刻iまでの基準点Pの移動方向及び移動量(移動ベクトルf
Φ’(z
i))を、時刻iにおける移動体10の第1推定位置とする。ただしそれに限られず、第1位置算出部42は、所定位置(
図3の例では位置P
i-1)から移動ベクトルf
Φ’(z
i)だけ離れた座標(
図3の例では位置PAi)そのものを、第1推定位置としてもよい。
【0025】
第1位置算出部42は、所定時間毎に検出された外界センサ26Aの検出結果(対象物の位置)に基づき、所定時間毎の、第1推定位置を算出する。すなわち例えば、第1位置算出部42は、時刻iにおける外界センサ26Aの検出結果と、時刻i+1における外界センサ26Aの検出結果とから、上記と同様の方法で、時刻i+1における第1推定位置を算出する。このように、本実施形態では、移動体10を移動させつつ、移動中の時刻を一定の規則に従い離散的にサンプリングして、各サンプル時刻における、外界センサ26Aの検出により求めた移動体10の位置及び姿勢(第1推定位置)をノードとし、ノード間をエッジで結んだグラフ(ポーズグラフ)を構築するといえる。
【0026】
(第2位置算出部)
第2位置算出部44は、内界センサ26Bの検出結果に基づいて、移動体10の第2推定位置を算出する。第2推定位置とは、内界センサ26Bの検出結果により推定された、移動体10の位置を指す。第2位置算出部44は、移動体10の移動中における内界センサ26Bの所定時間毎の検出結果を取得する。第2位置算出部44は、移動体10の移動中における内界センサ26Bの所定時間毎の検出結果から、所定時間毎の第2推定位置を算出する。以下、
図3に基づいてより具体的に説明する。
【0027】
第2位置算出部44は、内界センサ26Bが検出した出力パラメータに基づいて、移動体10の移動量及び移動方向を算出する。例えば、第2位置算出部44は、時刻i-1において内界センサ26Bに検出された出力パラメータに基づき、時刻i-1から時刻iまでの移動体10の基準点Pの移動方向及び移動量(
図3の例では、移動ベクトルαu
i)を算出する。第2位置算出部44は、出力パラメータを積分することにより、オドメトリの手法で、基準点Pの移動方向及び移動量を算出する。すなわち例えば、第2位置算出部44は、時刻i-1で検出された車輪20Aの回転数を積分して、時刻i-1から時刻iまでの基準点Pの移動量を算出し、時刻i-1で検出された操舵角(車輪20Aの向きの変化量)から、基準点Pの移動方向を算出して、時刻i-1から時刻iまでの移動体10の基準点Pの移動方向及び移動量とする。第2位置算出部44は、このようにして算出した、時刻i-1から時刻iまでの基準点Pの移動方向及び移動量(移動ベクトルαu
i)を、時刻iにおける移動体10の第2推定位置とする。ただしそれに限られず、第2位置算出部44は、所定位置(
図3の例では位置P
i-1)から移動ベクトルαu
iだけ離れた座標(
図3の例では位置PBi)そのものを、第2推定位置としてもよい。
【0028】
なお、第2位置算出部44は、後述の移動パラメータΦの設定値にも基づいて、第2推定位置を算出してよい。例えば、第2位置算出部44は、移動体10の車輪20Aの径の設定値と、内界センサ26Bのバイアス値(正常値からのずれ量)の設定値との少なくとも1つ(好ましくは両方)も用いて、第2推定位置を算出してよい。
【0029】
第2位置算出部44は、所定時間毎に検出された内界センサ26Bの検出結果(出力パラメータ)に基づき、所定時間毎の、第2推定位置を算出する。すなわち例えば、第2位置算出部44は、時刻iにおける内界センサ26Bの検出結果から、上記と同様の方法で、時刻i+1における第2推定位置を算出する。このように、本実施形態では、移動体10を移動させつつ、移動中の時刻を一定の規則に従い離散的にサンプリングして、各サンプル時刻における、内界センサ26Bの検出により求めた移動体10の位置及び姿勢(第1推定位置)をノードとし、ノード間をエッジで結んだグラフ(ポーズグラフ)を構築するといえる。
【0030】
(パラメータ算出部)
パラメータ算出部46は、第1推定位置及び第2推定位置に基づいて、移動体10の移動量を算出するための移動パラメータΦの、推定値を算出する。移動パラメータΦとは、移動体10の移動量に影響を及ぼすパラメータであるが、上述の出力パラメータとは異なり制御出力を示すものではなく、制御入力によって変動させることができないパラメータといえる。また、移動パラメータΦは、経時により変化する可能性があるパラメータともいえる。本実施形態の例では、移動パラメータΦとは、移動体10の基準座標系における外界センサ26Aの位置(基準点Pに対する外界センサ26Aの位置)と、移動体10の車輪径(車輪20Aの径)と、内界センサ26Bの検出結果の正常値からのずれ量を示すバイアス値との、少なくとも1つであってよく、これら全てであってもよい。ただしそれに限られず、移動パラメータΦは、経時により変動する可能性があり、移動体10の移動量に影響を及ぼすが制御入力によっては変動されない、任意のパラメータであってよい。
【0031】
ここで、同じ時刻における第1推定位置と第2推定位置との差分(誤差)は、理想的な条件ではゼロである。しかしながら、第1推定位置や第2推定位置の算出時に用いたパラメータの誤差などにより、第1推定位置と第2推定位置との差分がゼロにならない場合がある。それに対して、本実施形態では、その差分が移動パラメータΦの誤差により生じていると仮定し、パラメータ算出部46が、第1推定位置と第2推定位置との差分に基づいて、例えばその差分ができるだけ小さくなるような移動パラメータΦの値を、移動パラメータΦの推定値として算出する。すなわち、第1推定位置と第2推定位置とは、移動パラメータΦに基づいて算出されるため、言い換えれば移動パラメータΦの関数であるため、第1推定位置と第2推定位置との差分が小さくなるような移動パラメータΦの値を、移動パラメータΦの推定値として算出するといえる。
【0032】
具体的には、パラメータ算出部46は、所定時間毎の第1推定位置と第2推定位置との差分に基づいて、移動パラメータΦの推定値を算出する。さらに言えば、パラメータ算出部46は、所定時間毎の第1推定位置と第2推定位置との差分の合計値が最小となるように、言い換えれば、所定時間毎の第1推定位置と第2推定位置との差分の合計値が最小となるような最適化問題を解くことで、移動パラメータΦの推定値を算出する。具体的には、時刻iにおける第1推定位置と第2推定位置との差分をei、時刻iにおける定数をΩiとすると、パラメータ算出部46は、次の式(1)に示す移動パラメータΦの評価関数をJO(Φ)が最小となるような移動パラメータΦを、移動パラメータΦの推定値として算出する。
【0033】
【0034】
なお、Tは転置を指す。また、Ωiは、任意に設定される重み係数であり、例えば、差分eiの分散共分散行列の逆行列である。
【0035】
(判定部)
判定部48は、パラメータ算出部46によって算出された移動パラメータΦの推定値が妥当であるかを判定する。移動パラメータΦの値は、例えば自己位置検出などの移動体10の移動制御において用いられるため、高精度に推定されることが好ましい。それに対して、本実施形態においては、判定部48により、移動パラメータΦの推定値が妥当であるかを判定することで、移動パラメータΦを高精度に推定することを可能としている。
【0036】
判定部48は、移動体10の停止時における外界センサ26Aの検出結果に基づいて、移動パラメータΦの推定値が妥当であるかを判定する。すなわち、判定部48は、移動体10の停止時において検出された外界センサ26Aの検出結果を取得して、その検出結果に基づき、移動パラメータΦの推定値が妥当であるかを判定する。判定部48は、停止時における外界センサ26Aの検出結果に基づいた任意の方法で、移動パラメータΦの推定値の妥当性を判定してよいが、以下に判定方法の具体例を説明する。
【0037】
判定部48は、移動体10の停止時における複数の外界センサ26Aの検出結果から、移動パラメータΦの推定値の妥当性を判定することが好ましい。すなわち、判定部48は、移動体10の停止時において、複数の外界センサ26Aに、移動体10の周囲の検出体Aを検出させて、それらの検出体Aの検出結果に基づいて、推定値の妥当性を判断する。以降では、複数の外界センサ26Aとして、第1外界センサ26A1及び第2外界センサ26A2を用いる場合を例として説明するが、用いる外界センサ26Aの数は2つに限られず3つ以上であってもよい。検出体Aは、外界センサ26Aが検出可能な任意の物体であってよく、例えばレーザ光を反射可能な反射体であってもよいし、停止している移動体10の周囲に位置している構造物であってもよい。外界センサ26Aは、推定値の妥当性を判断するために設けられた検出体Aを検出してもよいし、停止している移動体10の周囲に位置している任意の物体を検出体Aとして利用してもよい。
【0038】
図4は、移動パラメータの推定値の妥当性の判定方法の例を説明する模式図である。
図4に示すように、判定部48は、移動体10の停止時において第1外界センサ26A1により検出された検出体Aの検出結果を取得して、検出体Aの検出結果と、移動パラメータΦの推定値とに基づいて、移動体10の基準座標系における検出体Aの位置を算出する。すなわち、判定部48は、検出体Aの検出結果が示す、第1外界センサ26A1の座標系における検出体Aの位置(第1外界センサ26A1に対する検出体Aの位置)と、移動パラメータΦの推定値が示す、移動体10の基準座標系における第1外界センサ26A1の位置(移動体10の基準点Pに対する第1外界センサ26A1の位置)とから、移動体10の基準座標系における検出体Aの位置(移動体10の基準点Pに対する検出体Aの位置)を算出する。このようにして第1外界センサ26A1の検出結果から算出された移動体10の基準座標系における検出体Aの位置を、以下適宜、第1検出位置とする。同様に、判定部48は、移動体10の停止時において第2外界センサ26A2により検出された同じ検出体Aの検出結果と、移動パラメータΦの推定値とに基づいて、移動体10の基準座標系における検出体Aの位置を算出する。すなわち、判定部48は、検出体Aの検出結果が示す、第2外界センサ26A2の座標系における検出体Aの位置(第2外界センサ26A2に対する検出体Aの位置)と、移動パラメータΦの推定値が示す、移動体10の基準座標系における第2外界センサ26A2の位置(移動体10の基準点Pに対する第2外界センサ26A2の位置)とから、移動体10の基準座標系における検出体Aの位置を算出する。このようにして第2外界センサ26A2の検出結果から算出された移動体10の基準座標系における検出体Aの位置を、以下適宜、第2検出位置とする。
【0039】
このように、第1検出位置と第2検出位置とは、異なる外界センサ26Aにより検出された同じ検出体Aの位置を指す。同じ検出体Aであるかは任意の方法で判定できるが、例えば外界センサ26AがLiDARの場合、判定部48は、スキャンマッチングを行うことで、第1外界センサ26A1が検出した点群と第2外界センサ26A2が検出した点群のうちから、同一の対象を検出した点群(検出点)を抽出する。そして、判定部48は、抽出した第1外界センサ26A1の点群の位置を、第1外界センサ26A1の座標系における検出体Aの位置とし、抽出した第2外界センサ26A2の点群の位置を、第2外界センサ26A2の座標系における検出体Aの位置とする。また例えば、外界センサ26Aがカメラの場合、判定部48は、画像認識によって、第1外界センサ26A1が撮像した画像と第2外界センサ26A2が撮像した画像のうちから、同じ対象物が写っている領域(画素群)を特定する。そして、判定部48は、第1外界センサ26A1の撮像画像から特定した領域の位置を、第1外界センサ26A1の座標系における検出体Aの位置とし、第2外界センサ26A2の撮像画像から特定した領域の位置を、第2外界センサ26A2の座標系における検出体Aの位置とする。
【0040】
判定部48は、第1検出位置と第2検出位置とに基づいて、移動パラメータΦの推定値の妥当性を判断する。すなわち、理想的には、第1検出位置と第2検出位置との差分(誤差)はゼロであるが、移動パラメータΦの推定値の精度が低い場合には、第1検出位置と第2検出位置との差分が大きくなる。従って、判定部48は、第1検出位置と第2検出位置とのずれ量が所定値以下である場合には、言い換えれば、第1検出位置と第2検出位置との間の距離が所定距離以下である場合には、移動パラメータΦの推定値が妥当であると判断する。一方、判定部48は、第1検出位置と第2検出位置とのずれ量が所定値より大きい場合には、移動パラメータΦの推定値が妥当でないと判断する。
【0041】
次に、妥当性の判定方法の他の例を説明する
図5は、移動パラメータの推定値の妥当性の判定方法の例を説明する模式図である。本例の場合、
図5に示すように、判定部48は、移動体10の停止時において、第1外界センサ26A1に、異なる位置にある複数の検出体Aを検出させる。なお、検出体Aの数は複数であれば任意であってよい。判定部48は、第1外界センサ26A1による、複数の検出体Aの検出結果を取得して、複数の検出体Aの検出結果に基づいて、第1外界センサ26A1の位置を算出する。複数の検出体Aの検出結果からの第1外界センサ26A1の位置の算出方法は任意であるが、例えば、判定部48は、複数の検出体Aの位置から、三角測量の手法を用いて、第1外界センサ26A1の位置を算出してよい。同様に、判定部48は、移動体10の停止時において、第2外界センサ26A2に、異なる位置にある複数の検出体Aを検出させる。判定部48は、第2外界センサ26A2による、複数の検出体Aの検出結果を取得して、複数の検出体Aの検出結果に基づいて、第2外界センサ26A2の位置を算出する。なお、本例では、第1外界センサ26A1と第2外界センサ26A2とは、同じ検出体Aを検出することが好ましいが、それに限られず、異なる検出体Aを検出してもよい。
【0042】
判定部48は、複数の検出体Aの検出結果から算出した第1外界センサ26A1の位置と、複数の検出体Aの検出結果から算出した第2外界センサ26A2の位置とに基づき、第1外界センサ26A1に対する第2外界センサ26A2の位置を算出する。以下、このようにして算出した第1外界センサ26A1に対する第2外界センサ26A2の位置を、適宜、第1センサ位置と記載する。また、判定部48は、移動パラメータΦの推定値から、第1外界センサ26A1に対する第2外界センサ26A2の位置を算出する。具体的には、判定部48は、移動パラメータΦの推定値で示される移動体10の基準座標系における第1外界センサ26A1の位置と、移動パラメータΦの推定値で示される移動体10の基準座標系における第2外界センサ26A2の位置とから、第1外界センサ26A1に対する第2外界センサ26A2の位置を算出する。以下、このようにして算出した第1外界センサ26A1に対する第2外界センサ26A2の位置を、適宜、第2センサ位置と記載する。
【0043】
判定部48は、第1センサ位置と第2センサ位置とに基づいて、移動パラメータΦの推定値の妥当性を判断する。すなわち、理想的には、第1センサ位置と第2センサ位置の差分(誤差)はゼロであるが、移動パラメータΦの推定値の精度が低い場合には、第1センサ位置と第2センサ位置との差分が大きくなる。従って、判定部48は、第1センサ位置と第2センサ位置とのずれ量が所定値以下である場合には、言い換えれば、第1センサ位置と第2センサ位置との間の距離が所定距離以下である場合には、移動パラメータΦの推定値が妥当であると判断する。一方、判定部48は、第1センサ位置と第2センサ位置とのずれ量が所定値より大きい場合には、移動パラメータΦの推定値が妥当でないと判断する。
【0044】
(パラメータ設定部)
パラメータ設定部50は、判定部48によって妥当であると判断された移動パラメータΦの推定値を、移動パラメータΦの値として設定する。すなわち、パラメータ設定部50は、判定部48によって妥当であると判断された移動パラメータΦの推定値を、今後の移動体10の制御に用いる正式な移動パラメータΦとして設定する。言い換えれば、パラメータ設定部50は、移動パラメータΦを更新するキャリブレーション処理を行うといえる。移動制御部40は、パラメータ設定部50によって設定された移動パラメータΦ(妥当とされた移動パラメータΦの推定値)に基づいて、移動体10の移動を制御する。すなわち、移動制御部40は、パラメータ設定部50によって設定された移動パラメータΦを入力値として演算を実行することで、移動体10の移動を制御する。
【0045】
(処理フロー)
次に、以上説明した移動パラメータΦの設定の処理フローを説明する。
図6は、本実施形態に係る移動パラメータの設定の処理フローを説明するフローチャートである。
図6に示すように、制御装置28は、第1位置算出部42により、所定時間毎の外界センサ26Aの検出結果に基づき、所定時間毎の移動体10の第1推定位置を算出し(ステップS10)、第2位置算出部44により、所定時間毎の内界センサ26Bの検出結果に基づき、所定時間毎の移動体10の第2推定位置を算出する(ステップS12)。制御装置28は、パラメータ算出部46により、第1推定位置及び第2推定位置に基づいて、移動パラメータΦの推定値を算出する(ステップS14)。本実施形態では、パラメータ算出部46は、所定時間毎の第1推定位置と第2推定位置との差分が最小になるように、移動パラメータΦの推定値を算出する。制御装置28は、判定部48により、移動体10の停止時における外界センサ26Aの検出結果に基づいて、移動パラメータΦの推定値が妥当であるかを判断し(ステップS16)、妥当である場合(ステップS16;Yes)、パラメータ設定部50により、その移動パラメータΦの推定値を、正式な移動パラメータΦとして設定する(ステップS18)。一方、移動パラメータΦの推定値が妥当でない場合(ステップS16;No)、その移動パラメータΦの推定値を正式な移動パラメータΦとして設定しない(ステップS20)。なお、移動パラメータΦの推定値を採用しない場合には、以降の移動においては、これまでに設定されていた移動パラメータΦの値を用いてよい。その後、外界センサ26Aや内界センサ26Bから、以降の移動における検出結果を取得したら、同様の処理を実行して、移動パラメータΦの推定値の算出と妥当性判断とを行ってよい。
【0046】
(効果)
ここで、移動体10を適切に制御するために、移動体10の移動量を推定するための移動パラメータΦを高精度に算出することが求められている。移動パラメータΦは、定期メンテナンス時に計測されて更新される場合もあるが、経時的に値が変化する場合もあるため、定期メンテナンスまでの間に値が変わってしまう場合がある。それに対して、本実施形態においては、移動体10が移動中の外界センサ26Aと内界センサ26Bとの検出結果から、移動パラメータΦの推定値を算出するため、定期メンテナンスを待たずに移動パラメータΦを更新することができ、移動パラメータΦを高精度に算出できるといえる。さらに言えば、このようにして算出した移動パラメータΦは、局所最適解に陥ったり、検出タイミング(タイムスタンプ)の誤差が生じたりすることなどにより、精度が低下することも懸念される。それに対して、本実施形態においては、停止時における外界センサ26Aの検出結果から、移動パラメータΦの妥当性を判断して、妥当であるものを採用する。従って、局所最適解への収束を検知し、かつ、タイムスタンプの誤差を抑制できるので、移動パラメータΦをより高精度に算出でき、キャリブレーションを適切に実行することが可能となる。
【0047】
(他の例)
図7は、第1実施形態の他の例に係る演算装置の模式的なブロック図である。以上の説明では、制御装置28が、移動パラメータを設定する演算装置と、移動体10の移動を制御する制御装置との両方の機能を兼ね備えていた。ただし、移動パラメータを設定する演算装置と、移動体10の移動を制御する制御装置とが別体であってよい。この場合、
図7に示すように、移動体10に搭載されない演算装置28Aが、第1位置算出部42と第2位置算出部44とパラメータ算出部46と判定部48とパラメータ設定部50とを含み、それらの処理を実行する。この場合、演算装置28Aは、通信部30を介して、移動体10から、外界センサ26A及び内界センサ26Bの検出結果を取得して、それらの検出結果から、移動パラメータΦの推定値の設定と妥当性の判断を行う。そして、演算装置28Aは、妥当であると判断された移動パラメータΦの推定値を、正式な移動パラメータΦとして移動体10に送信する。
【0048】
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態においては、内界センサ26Bのバイアス値を算出して、それに基づいて移動パラメータΦを算出する点で、第1実施形態と異なる。第2実施形態において、第1実施形態と構成が共通する箇所は、説明を省略する。
【0049】
図8は、バイアス値の一例を示すグラフである。第2実施形態においては、パラメータ算出部46は、移動体10の停止時に、内界センサ26Bに出力パラメータを検出させる。そして、パラメータ算出部46は、移動体10の停止時における内界センサ26Bの検出結果(出力パラメータ)に基づいて、内界センサ26Bの検出結果のバイアス値を算出する。バイアス値とは、内界センサ26Bの検出結果の、正常値からのずれ量を示す。パラメータ算出部46は、移動体10の停止時における内界センサ26Bの検出結果に基づいた任意の方法でバイアス値を算出してよいが、例えば、移動体10の停止時における正常値を予め設定しておき、停止時における内界センサ26Bの検出結果(出力パラメータ)と正常値との差分から、バイアス値を算出してよい。この場合例えば、
図8の例では、時間帯Δtが、移動体10が停止している時間帯を示している。この場合、パラメータ算出部46は、時間帯Δtにおける内界センサ26Bによる出力パラメータの検出値と、時間帯Δtにおける出力パラメータの正常値(例えばゼロ)との差分ΔBを算出し、その差分ΔBを、バイアス値としてよい。
【0050】
パラメータ算出部46は、第1推定位置及び第2推定位置に加えて、このようにして算出したバイアス値にも基づいて、移動パラメータΦの推定値を算出する。例えば第1実施形態においては、パラメータ算出部46は、内界センサ26Bのバイアス値を、算出対象となる移動パラメータΦに含めて、第1推定位置及び第2推定位置により、内界センサ26Bのバイアス値も、移動パラメータΦとして算出することが可能である。それに対して、第2実施形態においては、移動パラメータΦの推定値の算出の前に、予め内界センサ26Bのバイアス値を固定値として設定しておき、第1推定位置及び第2推定位置と、固定値として設定した内界センサ26Bのバイアス値とに基づいて、第1実施形態と同様の方法で、内界センサ26Bのバイアス値以外の移動パラメータΦについての、推定値を算出する。これにより、算出対象となる変数を減らすことができるので、移動パラメータΦの推定値の演算負荷を低減できる。
【0051】
なお、内界センサ26Bのバイアス値は、例えば、IMUの測定結果のバイアス値を指してよい。
【0052】
(第3実施形態)
次に、第3実施形態について説明する。第3実施形態においては、停止時における外界センサ26Aの検出結果から妥当であると判断され、かつ、過去における移動パラメータΦの推定値に対して所定条件を満たす場合に、移動パラメータΦの推定値が妥当であるかを判断する点で、第1実施形態とは異なる。第2実施形態において、第1実施形態と構成が共通する箇所は、説明を省略する。なお、第3実施形態は、第2実施形態にも適用可能である。
【0053】
第3実施形態においては、第1実施形態などで説明した移動パラメータΦの推定値の算出処理と、推定値の妥当性の判断とを、繰り返す。以降においては、第1時間帯におけるセンサの検出結果から、第1時間帯における移動パラメータΦの推定値を算出し、第1時間帯よりも後の第2時間帯におけるセンサの検出結果から、第2時間帯における移動パラメータΦの推定値を算出する場合を例に説明する。
【0054】
第3実施形態においては、第1位置算出部42は、移動体10が移動している第1時間帯において検出された、外界センサ26Aの検出結果を取得して、第1時間帯での外界センサ26Aの検出結果に基づいて、第1時間帯での第1推定位置を算出する。また、第2位置算出部44は、第1時間帯において検出された内界センサ26Bの検出結果を取得して、第1時間帯での内界センサ26Bの検出結果に基づいて、第1時間帯での第2推定位置を算出する。そして、パラメータ算出部46は、第1時間帯での第1推定位置と、第1時間帯での第2推定位置とに基づき、第1時間帯での移動パラメータΦの推定値を算出する。判定部48は、停止時の外界センサ26Aの検出結果に基づき、第1時間帯での移動パラメータΦの推定値の仮の妥当性を判断する。仮の妥当性の判定方法は、第1実施形態の妥当性の判断方法と同様である。
【0055】
その後、第3実施形態においては、第1位置算出部42は、第2時間帯において検出された外界センサ26Aの検出結果を取得して、第2時間帯での外界センサ26Aの検出結果に基づいて、第2時間帯での第1推定位置を算出する。なお、第2時間帯は、第1時間帯より後であって移動体10が移動した時間帯である。第2位置算出部44は、第2時間帯において検出された内界センサ26Bの検出結果を取得して、第2時間帯での内界センサ26Bの検出結果に基づいて、第2時間帯での第2推定位置を算出する。そして、パラメータ算出部46は、第2時間帯での第1推定位置と、第2時間帯での第2推定位置とに基づき、第2時間帯での移動パラメータΦの推定値を算出する。判定部48は、停止時の外界センサ26Aの検出結果に基づき、第2時間帯での移動パラメータΦの推定値の仮の妥当性を判断する。
【0056】
さらに、判定部48は、複数の外界センサ26Aの検出結果に基づき、第2時間帯での移動パラメータΦの推定値が仮の妥当ありと判断された場合には、その第2時間帯での移動パラメータΦの推定値と、仮の妥当ありと判断された第1時間帯での移動パラメータΦの推定値とを比較する。具体的には、判定部48は、第2時間帯での移動パラメータΦの推定値が、第1時間帯での移動パラメータΦの推定値に対して所定条件を満たすかを判断する。例えば、移動パラメータΦは経時により変化するため、判定部48は、移動パラメータΦの単位時間当たりの許容される変化量の範囲を予め設定しておく。そして、判定部48は、単位時間当たりの許容される変化量の範囲から、第1時間帯から第2時間帯における許容変化量の範囲を算出して、第1時間帯での移動パラメータΦの推定値に対する、第2時間帯での移動パラメータΦの推定値の変化量が、許容変化量の範囲内にあるかを判断する。判定部48は、第2時間帯での移動パラメータΦの推定値の変化量が、許容変化量の範囲内にある場合に、所定条件を満たすと判断し、第2時間帯での移動パラメータΦの推定値の変化量が、許容変化量の範囲内にない場合に、所定条件を満たさないと判断する。
【0057】
判定部48は、第2時間帯での移動パラメータΦの推定値が、第1時間帯での移動パラメータΦの推定値に対して所定条件を満たすと判断した場合に、第2時間帯での移動パラメータΦの推定値が妥当であると最終判定する。パラメータ設定部50は、妥当であると判断された第2時間帯での移動パラメータΦの推定値を、移動パラメータΦとして正式に設定する。一方、判定部48は、第2時間帯での移動パラメータΦの推定値が、第1時間帯での移動パラメータΦの推定値に対して所定条件を満たさないと判断した場合には、第2時間帯での移動パラメータΦの推定値が妥当ではないと判定する。この場合、パラメータ設定部50は、第2時間帯での移動パラメータΦを採用しない。
【0058】
以上説明した第3実施形態における移動パラメータΦの設定の処理フローを説明する。
図9は、第3実施形態における移動パラメータの設定の処理フローを説明するフローチャートである。なお、
図9では、第1時間帯での移動パラメータΦの推定値の算出及び仮の妥当性の処理については省略している。
図9に示すように、第3実施形態においては、第1位置算出部42及び第2位置算出部44により、第2時間帯における第1推定位置及び第2推定位置が算出され、パラメータ算出部46は、第2時間帯における第1推定位置及び第2推定位置に基づき、第2時間帯での移動パラメータΦの推定値を算出する(ステップS14A)。そして、判定部48は、移動体10の停止時における外界センサ26Aの検出結果に基づいて、第2時間帯での移動パラメータΦの推定値の仮の妥当性を判断し(ステップS16A)、仮に妥当である場合(ステップS16A;Yes)、第2時間帯での移動パラメータΦの推定値が、第1時間帯での移動パラメータΦの推定値に対して所定条件を満たすかを判定する(ステップS17A)。所定条件を満たす場合(ステップS17A;Yes)、判定部48は、第2時間帯での移動パラメータΦの推定値が妥当と判断して、パラメータ設定部50により、第2時間帯での移動パラメータΦの推定値を、正式な移動パラメータΦとして設定する(ステップS18A)。一方、第2時間帯での移動パラメータΦの推定値に仮妥当性がない場合(ステップS16A;No)、及び第2時間帯での移動パラメータΦの推定値が所定条件を満たさない場合(ステップS17A;No)、第2時間帯での移動パラメータΦの推定値を正式な移動パラメータΦとして設定しない(ステップS20A)。
【0059】
このように、第3実施形態においては、過去の移動パラメータΦの推定値と比較して妥当でないとされた場合には、移動パラメータΦの推定値を正式な値として採用しない。そのため、移動パラメータΦの算出精度をより好適に向上させることができる。
【0060】
なお、以上の説明では、第3実施形態においては、停止時の外界センサ26Aの検出結果による仮の妥当性の判定と、過去の移動パラメータΦの推定値との比較による判定との、2段階の判定を行っていた。ただしそれに限られず、第3実施形態においては、停止時の外界センサ26Aの検出結果による仮の妥当性の判定を行わなくてよい。すなわちこの場合、判定部48は、停止時の外界センサ26Aの検出結果による仮の妥当性を行わずに、第2時間帯での移動パラメータΦの推定値と第1時間帯での移動パラメータΦの推定値とを比較して、第2時間帯での移動パラメータΦの妥当性を判定してよい。
【0061】
(効果)
以上説明したように、本開示に係る演算装置は、第1位置算出部42と、第2位置算出部44と、パラメータ算出部46と、判定部48と、パラメータ設定部50とを含む。第1位置算出部42は、移動体10に搭載されて移動体10の周囲を検出する外界センサ26Aの検出結果に基づいて、移動体の第1推定位置を算出する。第2位置算出部44は、移動体10に搭載されて移動体10の制御出力を示す出力パラメータを検出する内界センサ26Bの検出結果に基づいて、移動体10の第2推定位置を算出する。パラメータ算出部46は、第1推定位置及び第2推定位置に基づいて、移動体10の移動量を算出するための移動パラメータΦの推定値を算出する。判定部48は、移動体10の停止時における外界センサ26Aの検出結果に基づいて、移動パラメータΦの推定値の妥当性を判定する。パラメータ設定部50は、妥当であると判断された移動パラメータΦの推定値を、移動体10の移動パラメータとして設定する。
【0062】
本開示に係る演算装置は、外界センサ26Aと内界センサ26Bとの検出結果から、移動パラメータΦの推定値を算出するため、移動パラメータΦを高精度に算出できるといえる。また、停止時における外界センサ26Aの検出結果から、移動パラメータΦの妥当性を判断するため、局所最適解への収束を検知し、かつ、タイムスタンプの誤差を抑制できるので、移動パラメータΦをより高精度に算出できる。
【0063】
第1位置算出部42は、所定時間毎に検出された外界センサ26Aの検出結果から、所定時間毎の第1推定位置を算出し、第2位置算出部44は、所定時間毎に検出された内界センサ26Bの検出結果から、所定時間毎の第2推定位置を算出する。パラメータ算出部46は、所定時間毎の第1推定位置と第2推定位置との差分に基づいて、移動パラメータΦの推定値を算出する。本開示に係る演算装置は、このようにして移動パラメータΦの推定値を算出することで、移動パラメータΦをより高精度に算出できる。
【0064】
パラメータ算出部46は、所定時間毎の第1推定位置と第2推定位置との差分の合計値が、最小となるように、移動パラメータΦの推定値を算出する。本開示に係る演算装置は、このようにして移動パラメータΦの推定値を算出することで、移動パラメータΦをより高精度に算出できる。
【0065】
判定部48は、移動体10の停止時において第1外界センサ26A1により検出された、移動体10の周囲の検出体Aの検出結果と、移動パラメータΦの推定値とに基づいて、移動体10の基準座標系における検出体Aの位置を算出する。判定部48は、移動体10の停止時において第2外界センサ26A2により検出された、移動体10の周囲の検出体Aの検出結果と、移動パラメータΦの推定値とに基づいて、移動体10の基準座標系における検出体Aの位置を算出する。そして、判定部48は、第1外界センサ26A1の検出結果に基づいて算出された検出体Aの位置と、第2外界センサ26A2の検出結果に基づいて算出された検出体Aの位置とのずれ量が、所定値以下である場合に、移動パラメータΦの推定値が妥当であると判断する。本開示に係る演算装置は、このようにして移動パラメータΦの妥当性を判断することで、移動パラメータΦをより高精度に算出できる。
【0066】
判定部48は、移動体10の停止時において第1外界センサ26A1により検出された、移動体10の周囲の複数の検出体Aの検出結果から、第1外界センサ26A1の位置を算出する。判定部48は、移動体10の停止時において第2外界センサ26A2により検出された、移動体10の周囲の複数の検出体Aの検出結果から、第2外界センサ26A2の位置を算出する。そして、判定部48は、第1外界センサ26A1の位置と第2外界センサ26A2の位置とから算出された、第1外界センサ26A1に対する第2外界センサ26A2の相対位置と、移動パラメータΦの推定値から算出された、第1外界センサ26A1に対する第2外界センサ26A2の相対位置とのずれ量が、所定値以下である場合に、移動パラメータΦの推定値が妥当であると判断する。本開示に係る演算装置は、このようにして移動パラメータΦの妥当性を判断することで、移動パラメータΦをより高精度に算出できる。
【0067】
パラメータ算出部46は、移動体10の停止時における内界センサ26Bの検出結果に基づいて、内界センサ26Bの検出結果の正常値からのずれ量を示すバイアス値を算出し、バイアス値にも基づき、移動パラメータΦの推定値を算出する。これにより、算出対象となる変数を減らすことができるので、移動パラメータΦの推定値の演算負荷を低減できる。
【0068】
パラメータ算出部46は、第1時間帯での外界センサ26A及び内界センサ26Bの検出結果に基づいて算出された第1推定位置と第2推定位置とに基づいて、第1時間帯における移動パラメータΦの推定値を算出し、第1時間帯より後の第2時間帯での外界センサ26A及び内界センサ26Bの検出結果に基づいて算出された第1推定位置と第2推定位置とに基づいて、第2時間帯における移動パラメータΦの推定値を算出する。判定部48は、第2時間帯における移動パラメータΦの推定値が、第1時間帯における移動パラメータΦの推定値に対して所定条件を満たす場合に、第2時間帯における移動パラメータΦの推定値が妥当であると判断する。これにより、移動パラメータΦをより高精度に算出できる。
【0069】
移動パラメータΦは、移動体10の基準座標系における外界センサ26Aの位置と、移動体10の車輪径と、内界センサ26Bの検出結果の正常値からのずれ量を示すバイアス値との、少なくとも1つである。本開示によれば、このような移動パラメータΦを高精度に算出できる。
【0070】
以上、本開示の実施形態を説明したが、この実施形態の内容により実施形態が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
【符号の説明】
【0071】
10 移動体
26A 外界センサ
26B 内界センサ
40 移動制御部
42 第1位置算出部
44 第2位置算出部
46 パラメータ算出部
48 判定部
50 パラメータ設定部