移動体の向きの推定のためにLiDAR等のセンサが移動体に搭載されることがあるが、移動体の向きとセンサの向きとが一致しないことがある。そのため、移動体の向きとセンサの向きとの差分を校正するためのキャリブレーション値が設定される。例えば、移動体は、センサのセンサデータに基づいてセンサの正面方向と認識された方向からキャリブレーション値を差し引いた方向を移動体の正面方向として移動するが、キャリブレーション値が正確でない場合、移動体の正面方向からずれた方向に移動してしまう。自動運転では、フィードバック制御が行われるため、移動体の正面方向からずれた方向に移動し続けることはないが、蛇行等が発生してしまう。
これに対し、上述した従来技術では、移動体の向き及びセンサの向き又はこれらの差分を算出するが、物理的な目印が必要となる。
そこで、本開示の一態様に係る情報処理装置は、移動体が移動する経路の向きを取得する経路向き取得部と、前記移動体に搭載されるセンサの向きを当該センサによって取得されるセンサデータに基づいて算出するセンサ向き算出部と、前記センサの向きと前記移動体の向きとの差分として設定される第1差分を取得する第1差分取得部と、算出された前記センサの向きと前記第1差分とに基づいて前記移動体の向きを推定する移動体向き推定部と、取得された前記経路の向きと推定された前記移動体の向きとの第2差分を算出する第2差分算出部と、算出された前記第2差分に基づいて前記第1差分を補正する第1差分補正部と、を備え、前記センサは、前記移動体の向きの推定のためのセンサであり、前記移動体は、設定される経路に沿って移動する移動体である。
例えば、センサの向きと移動体の向きとの差分として設定される第1差分(例えばメモリに記憶されたキャリブレーション値)が正確でない場合、センサデータと第1差分とに基づいて推定される移動体の向きは、実際の移動体の向きからずれた向きとなり、移動体は設定された経路からずれるような制御が行われることになる。これに対して、自動運転車両等の移動体は、設定される経路に沿って移動するように設定されている場合、設定された経路からずれるような制御がされても、フィードバック制御が行われて、蛇行するおそれはあるが設定された経路に沿って移動することができる。このとき、推定された移動体の向きには、経路の向きに対して、第1差分の実際の差分からのズレ量に応じた一定の偏りが生じることになる。そこで、その偏り(第2差分)から第1差分を補正することで第1差分を正確な値に補正することができ、移動体の向きとセンサの向きとの差分の正確な校正を行うことができる。このように、物理的な目印なしで移動体の向きとセンサの向きとの差分を算出することができる。例えば、工場等の目印が設置できる特殊な環境だけでなく、目印が設置できない環境も含めて様々な環境で移動体の向きとセンサの向きとの校正を行うことができる。
また、前記第1差分補正部は、前記第2差分が小さくなるように前記第1差分を補正してもよい。
このように、第2差分が小さくなるように第1差分が補正されることで、すなわち、推定される移動体の向きが経路の向きからずれないように第1差分が補正されることで、第1差分を正確な値に補正することができ、移動体の向きとセンサの向きとの差分の正確な校正を行うことができる。
また、前記第1差分補正部は、前記第2差分が閾値以上か否かを判定し、前記第2差分が閾値以上の場合、前記第1差分を補正してもよい。
これによれば、第2差分が閾値以上の場合、すなわち、推定される移動体の向きが経路の向きから大きくずれている場合に、第1差分を補正できる。言い換えると、第2差分が閾値未満になるまで第1差分を補正することで、第1差分を正確な値に補正することができる。
また、さらに、前記第1差分の補正量が閾値以上か否かを判定し、前記第1差分の補正量が閾値以上の場合、前記移動体の移動を制限する移動制限部を備えていてもよい。例えば、前記移動体の移動の制限は、速度の制限、又は停止を含んでいてもよい。
第1差分の補正量が閾値以上である場合に移動体の移動制御がされると、移動体の移動方向が大きく変わり、安全性に問題が生じるおそれがある。そこで、第1差分の補正量が閾値以上の場合には、移動体の移動が制限される(例えば移動体の速度が制限される、又は移動体が停止される)ことで、安全性を維持できる。
また、さらに、前記経路から直線区間を特定する直線区間特定部を備え、前記経路向き取得部は、前記移動体が前記直線区間を移動するときに、前記経路の向きを取得し、前記センサ向き算出部は、前記移動体が前記直線区間を移動するときに、前記センサの向きを算出してもよい。
直線区間では、移動体は経路に沿って移動しやすくなるため、移動体が直線区間を移動するときに経路の向きを取得することで正確な経路の向きを取得でき、また、移動体が直線区間を移動するときにセンサの向きを算出することで正確なセンサの向きを算出でき、ひいては、第1差分をより正確な値に補正することができる。
また、さらに、前記第1差分又は前記第1差分の補正量が閾値以上の場合、エラーを通知するエラー通知部を備えていてもよい。
これによれば、第1差分又は第1差分の補正量が閾値以上となっていることを、移動体の乗員、管理者又は監視者等に通知することができる。
本開示の一態様に係る情報処理方法は、コンピュータにより実行される情報処理方法であって、移動体が移動する経路の向きを取得し、前記移動体に搭載されるセンサの向きを当該センサによって取得されるセンサデータに基づいて算出し、前記センサの向きと前記移動体の向きとの差分として設定される第1差分を取得し、算出された前記センサの向きと前記第1差分とに基づいて前記移動体の向きを推定し、取得された前記経路の向きと推定された前記移動体の向きとの第2差分を算出し、算出された前記第2差分に基づいて前記第1差分を補正する処理を含み、前記センサは、前記移動体の向きの推定のためのセンサであり、前記移動体は、設定される経路に沿って移動する移動体である。
これによれば、物理的な目印なしで移動体の向きとセンサの向きとの差分を算出することができる情報処理方法を提供できる。
本開示の一態様に係る情報処理装置は、経路の向きに移動する移動体の正面方向に対する操舵の向きを取得する操舵向き取得部と、取得された前記操舵の向きに基づいて、前記移動体に搭載されるセンサの向きと移動体の向きとの差分として設定される第1差分を補正する第1差分補正部と、を備え、前記センサは、前記移動体の向きの推定のためのセンサであり、前記移動体は、設定される経路に沿って移動する移動体である。
例えば、センサの向きと移動体の向きとの差分として設定される第1差分(例えばメモリに記憶されたキャリブレーション値)が正確でない場合、移動体は設定された経路からずれるような制御が行われることになる。これに対して、自動運転車両等の移動体は、設定される経路に沿って移動するように設定されている場合、設定された経路からずれるような制御がされても、フィードバック制御が行われて操舵の向きが制御され、蛇行するおそれはあるが設定された経路に沿って移動することができる。このとき、移動体の操舵の向きには、移動体の正面方向に対して、第1差分の実際の差分からのズレ量に応じた一定の偏りが生じることになる。そこで、操舵の向きの偏りから第1差分を補正することで第1差分を正確な値に補正することができ、移動体の向きとセンサの向きとの差分の正確な校正を行うことができる。このように、物理的な目印なしで移動体の向きとセンサの向きとの差分を算出することができる。例えば、工場等の目印が設置できる特殊な環境だけでなく、目印が設置できない環境も含めて様々な環境で移動体の向きとセンサの向きとの校正を行うことができる。
また、前記第1差分補正部は、前記操舵の向きが小さくなるように前記第1差分を補正してもよい。
このように、移動体の正面方向に対する操舵の向きが小さくなるように第1差分が補正されることで、移動体の向きとセンサの向きとの差分の正確な校正を行うことができる。
また、前記第1差分補正部は、前記操舵の向きが閾値以上か否かを判定し、前記操舵の向きが閾値以上の場合、前記第1差分を補正してもよい。
これによれば、移動体の正面方向に対する操舵の向きが閾値以上の場合、すなわち、移動体の操舵の向きが移動体の正面方向から大きくずれている場合に、第1差分を補正できる。言い換えると、移動体の正面方向に対する操舵の向きが閾値未満になるまで第1差分を補正することで、第1差分を正確な値に補正することができる。
また、さらに、前記第1差分の補正量が閾値以上か否かを判定し、前記第1差分の補正量が閾値以上の場合、前記移動体の移動を制限する移動制限部を備えていてもよい。例えば、前記移動体の移動の制限は、速度の制限、又は停止を含んでいてもよい。
第1差分の補正量が閾値以上である場合に移動体の移動制御がされると、移動体の移動方向が大きく変わり、安全性に問題が生じるおそれがある。そこで、第1差分の補正量が閾値以上の場合には、移動体の移動が制限される(例えば移動体の速度が制限される、又は移動体が停止される)ことで、安全性を維持できる。
また、さらに、前記経路から直線区間を特定する直線区間特定部を備え、前記操舵向き取得部は、前記移動体が前記直線区間を移動するときに、前記操舵の向きを取得してもよい。
直線区間では、移動体は経路に沿って移動しやすくなるため、移動体が直線区間を移動するときに移動体の操舵の向きを算出することで正確な操舵の向きを算出でき、ひいては、第1差分をより正確な値に補正することができる。
また、さらに、前記第1差分又は前記第1差分の補正量が閾値以上の場合、エラーを通知するエラー通知部を備えていてもよい。
これによれば、第1差分又は第1差分の補正量が閾値以上となっていることを、移動体の乗員、管理者又は監視者等に通知することができる。
本開示の一態様に係る情報処理方法は、コンピュータにより実行される情報処理方法であって、経路の向きに移動する移動体の正面方向に対する操舵の向きを取得し、取得された前記操舵の向きに基づいて、前記移動体に搭載されるセンサの向きと移動体の向きとの差分として設定される第1差分を補正する処理を含み、前記センサは、前記移動体の向きの推定のためのセンサであり、前記移動体は、設定される経路に沿って移動する移動体である。
これによれば、物理的な目印なしで移動体の向きとセンサの向きとの差分を算出することができる情報処理方法を提供できる。
本開示の一態様に係るプログラムは、上記の情報処理方法をコンピュータに実行させるためのプログラムである。
これによれば、物理的な目印なしで移動体の向きとセンサの向きとの差分を算出することができるプログラムを提供できる。
以下、実施の形態について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。
(実施の形態1)
以下、実施の形態1に係る情報処理装置について説明する。
図1は、実施の形態1に係る情報処理装置10の一例を示すブロック図である。なお、図1には、情報処理装置10の他にセンサ50、メモリ60及びCAN(Controller Area Network)70が示されている。
センサ50は、移動体に搭載されるセンサであって、移動体の向きの推定のためのセンサである。センサ50は、例えばLiDAR等のレーダである。移動体は、例えば自動車等の車両である。ここでは、移動体は例えば自動運転車両であり、設定される経路に沿って移動することができる。なお、移動体は、経路に沿って移動する際に、経路の向きと移動体の向きとが常に一致するように移動しなくてもよい。例えば、移動体の向きが経路の向きからずれることがあっても、移動体が経路から外れなければ、移動体は経路に沿って移動しているとする。なお、移動体は、無人航空機等であってもよい。
メモリ60は、センサ50の向きと移動体の向きとの差分として設定される第1差分を記憶する。第1差分は、例えば、キャリブレーション値である。
CAN70は、移動体(例えば自動車)に搭載されたネットワークであり、移動体に搭載された各種ECU(Electronic Control Unit)及びメモリ等が接続される。
ここで、移動体の向きとセンサ50の向きとの差分について、図2を用いて説明する。
図2は、移動体の向きとセンサ50の向きとの差分を説明するための図である。
図2に示されるように、センサ50は、例えば移動体の前側に搭載される。移動体の向き(例えば正面方向)とセンサ50の向き(例えば正面方向)とを一致させるようにセンサ50を移動体に搭載することは難しく、図2に示されるように、移動体の向きとセンサ50の向きとがずれることがある(なお、図2では説明のために、移動体の向きとセンサ50の向きとのずれを誇張して示している)。そのため、センサ50が移動体に搭載されるとき等に、移動体の向きとセンサ50の向きとの差分を校正するためのキャリブレーション値である第1差分が求められ、メモリ60に記憶される。
移動体は、センサ50のセンサデータに基づいてセンサ50の正面方向と認識された方向から第1差分を差し引いた方向を、移動体の正面方向として移動する。しかし、第1差分が正確でない場合があり、この場合、移動体は、移動体の正面方向からずれた方向に移動してしまう。自動運転では、フィードバック制御が行われるため、移動体は、移動体の正面方向からずれた方向に移動し続けることはないが、蛇行等が発生してしまう。このため、第1差分を補正して正確な値にする、つまり、移動体の向きとセンサ50の向きとの差分の正確な校正を行うことが望まれる。特に、従来文献に開示されるような物理的な目印なしで移動体の向きとセンサの向きとの差分を算出することが望まれる。
情報処理装置10は、物理的な目印なしで移動体の向きとセンサ50の向きとの差分を算出することができる装置である。
図1での説明に戻り、情報処理装置10は、経路向き取得部11、センサ向き算出部12、直線区間特定部13、第1差分取得部14、移動体向き推定部15、第2差分算出部16、第1差分補正部17、移動制限部18及びエラー通知部19を備える。
情報処理装置10は、プロセッサ及びメモリ等を含むコンピュータである。メモリは、ROM(Read Only Memory)及びRAM(Random Access Memory)等であり、プロセッサにより実行されるプログラムを記憶することができる。経路向き取得部11、センサ向き算出部12、直線区間特定部13、第1差分取得部14、移動体向き推定部15、第2差分算出部16、第1差分補正部17、移動制限部18及びエラー通知部19は、メモリに格納されたプログラムを実行するプロセッサ等によって実現される。
例えば、情報処理装置10は、サーバであってもよい。また、情報処理装置10を構成する構成要素は、複数のサーバに分散して配置されてもよい。
また、例えば、情報処理装置10は、移動体に搭載される装置であってもよい。その場合、情報処理装置10は、センサ50を備えていてもよい。
また、例えば、情報処理装置10は、メモリ60を備えていてもよい。その場合、メモリ60は、プログラムを記憶するメモリと同じメモリであってもよい。また、その場合、メモリ60は、情報処理装置10内のバスに接続されていてもよい。
経路向き取得部11は、移動体が移動する経路の向きを取得する。
センサ向き算出部12は、移動体に搭載されるセンサ50の向きをセンサ50によって取得されるセンサデータに基づいて算出する。
直線区間特定部13は、設定される経路から直線区間を特定する。
第1差分取得部14は、センサ50の向きと移動体の向きとの差分として設定される第1差分を取得する。
移動体向き推定部15は、算出されたセンサ50の向きと第1差分とに基づいて移動体の向きを推定する。
第2差分算出部16は、取得された経路の向きと推定された移動体の向きとの第2差分を算出する。
第1差分補正部17は、算出された第2差分に基づいて第1差分を補正する。
移動制限部18は、第1差分の補正量が閾値以上か否かを判定し、第1差分の補正量が閾値以上の場合、移動体の移動を制限する。
エラー通知部19は、第1差分又は第1差分の補正量が閾値以上の場合、エラーを通知する。
情報処理装置10の各機能構成要素の詳細について、図3を用いて説明する。
図3は、実施の形態1に係る情報処理装置10の動作の一例を示すフローチャートである。例えば、自動運転システム等において、移動体が移動する経路がソフトウェア上で設定され、移動体はその経路に沿って移動するように設定されているとする。
まず、経路向き取得部11は、移動体が移動する経路の向きを取得する(ステップS11)。経路向き取得部11は、例えば、CAN70等を介してサーバ等から取得した地図情報等に基づいて移動体が移動する経路の向きを取得する。例えば、直線区間特定部13が特定した直線区間を移動体が移動するときに、経路向き取得部11は経路の向きを取得する。直線区間特定部13は、例えば、CAN70等を介して各種ECU等から取得した移動中の経路の曲率又は回避動作の有無等から直線区間を特定してもよい。また、直線区間特定部13は、CAN70等を介してサーバ等から取得した地図情報等から直線区間を特定してもよい。直線区間では、移動体は経路に沿って移動しやすくなるため、移動体が直線区間を移動するときに経路の向きを取得することで正確な経路の向きを取得できる。
次に、センサ向き算出部12は、移動体に搭載されるセンサ50の向きをセンサ50によって取得されるセンサデータに基づいて算出する(ステップS12)。センサ向き算出部12は、例えば、CAN70等を介してセンサ50及びサーバ等からセンサデータ(例えばLiDARによって得られる点群データ)及び地図情報を取得し、センサデータが示す移動体の周辺の情報と、地図情報が示す移動体の周辺の情報とを比較することで、センサ50の向きを算出することができる。例えば、直線区間特定部13が特定した直線区間を移動体が移動するときに、センサ向き算出部12はセンサ50の向きを算出する。移動体が直線区間を移動するときにセンサ50の向きを算出することで正確なセンサ50の向きを算出できる。
次に、第1差分取得部14は、センサ50の向きと移動体の向きとの差分として設定される第1差分を例えばメモリ60から取得する(ステップS13)。例えば、第1差分は、センサ50が移動体に搭載される際に設定されてメモリ60に記憶される。また、第1差分は、後述するように補正されて更新される。
次に、移動体向き推定部15は、算出されたセンサ50の向きと第1差分とに基づいて移動体の向きを推定する(ステップS14)。移動体向き推定部15は、算出されたセンサ50の向きから第1差分を差し引くことで、移動体の向きを推定する。なお、第1差分が、センサ50の向きと移動体の向きとの正確な差分となっていない可能性があるため、推定される移動体の向き、言い換えると、ソフトウェア上の移動体の向きは、現実の移動体の向きからずれている可能性がある。
なお、ステップS11は、ステップS12、ステップS13又はステップS14の後に行われてもよい。
次に、第2差分算出部16は、取得された経路の向きと推定された移動体の向きとの第2差分を算出する(ステップS15)。第2差分について図4を用いて説明する。
図4は、第1差分が正確な場合及び正確でない場合の第2差分の時間変化の一例を示す図である。
上述したように、移動体は、センサ50のセンサデータに基づいてセンサ50の正面方向と認識された方向から第1差分を差し引いた方向を移動体の正面方向として移動する。第1差分が正確な場合、推定される移動体の向きは、現実の移動体の向き、言い換えると、現実の移動体が移動する経路の向きに近づく。このため、経路の向きと推定された移動体の向きとの第2差分は、図4に示される実線のように0付近となる。
一方で、第1差分が正確でない場合、推定される移動体の向きには、現実の移動体が移動する経路の向きに対して、第1差分の、実際の差分からのズレ量に応じた一定の偏りが生じる。フィードバック制御が行われるため、経路の向きと推定された移動体の向きとの第2差分は、大きくなり続けることはないが、図4に示される破線のように偏ることになる。
図3での説明に戻り、次に、第1差分補正部17は、算出された第2差分に基づいて第1差分を補正する(ステップS16)。
例えば、第1差分補正部17は、第2差分(例えば第2差分の絶対値)が小さくなるように第1差分を補正してもよい。第2差分(又は第2差分の統計値)が小さくなるように、すなわち、推定される移動体の向きが経路の向きからずれないように第1差分が補正されることで、第1差分を正確な値に補正することができる。
例えば、第1差分補正部17は、第2差分が閾値以上か否かを判定し、第2差分が閾値以上の場合、第1差分を補正してもよい。第2差分が閾値以上の場合、すなわち、推定される移動体の向きが経路の向きから大きくずれている場合に、第1差分を補正できる。言い換えると、第2差分が閾値未満になるまで第1差分を補正することで、第1差分を正確な値に補正することができる。
ここで、第1差分補正部17の動作の具体例について説明する。
図5は、実施の形態1に係る第1差分補正部17の動作の一例を示すフローチャートである。
まず、第1差分補正部17は、N個のフレームの第2差分の平均を算出する(ステップS21)。N個のフレームは、例えば、20個から30個のフレームである。図4に示されるように、第1差分が正確な場合には、N個のフレームの第2差分の平均は0に近くなるが、第1差分が正確でない場合には、0付近とならず正又は負の値になる。
次に、第1差分補正部17は、N個のフレームの第2差分の平均(例えば平均の絶対値)が閾値以上か否かを判定する(ステップS22)。つまり、第1差分補正部17は、N個のフレームにおける移動体の平均的な向きが経路の向きから大きくずれているか否かを判定する。
第1差分補正部17は、N個のフレームの第2差分の平均が閾値以上である場合(ステップS22でYes)、第1差分を補正する(ステップS23)。具体的には、第1差分補正部17は、推定される移動体の向きと経路の向きとの差を打ち消すように第1差分を補正する。
なお、N個のフレームの第2差分を全て得た後に平均の算出が行われなくてもよく、第2差分を得るごとに平均の算出が行われてもよい。また、N番目のフレームの経過前であっても、平均が閾値以上であれば、ステップS23の処理が行われてもよい。
ステップS21からステップS23までの処理が繰り返されることで、第1差分が正確な値に補正されていき、第1差分補正部17は、第2差分の平均が閾値未満となった場合(ステップS22でNo)、第1差分の補正処理を終了する。
なお、移動制限部18は、第1差分の補正量が閾値以上の場合、移動体の移動を制限する。例えば、移動体の移動の制限は、速度の制限、又は停止を含む。第1差分の補正量が閾値以上である場合に移動体の移動制御がされると、移動体の移動方向が大きく変わり、安全性に問題が生じるおそれがあるが、第1差分の補正量が閾値以上の場合には、移動体の移動が制限されることで、安全性を維持できる。
また、エラー通知部19は、第1差分又は第1差分の補正量が閾値以上の場合、エラーを通知する。例えば、エラー通知部19は、アラートを出力して、移動体の乗員、管理者又は監視者等にエラーを通知する。これにより、第1差分又は第1差分の補正量が閾値以上となっていることを、移動体の乗員、管理者又は監視者等に通知することができる。
以上説明したように、第2差分から第1差分を補正することで第1差分を正確な値に補正することができ、移動体の向きとセンサ50の向きとの差分の正確な校正を行うことができる。本開示では、物理的な目印なしで移動体の向きとセンサ50の向きとの差分を算出することができる。例えば、工場等の目印が設置できる特殊な環境だけでなく、目印が設置できない環境も含めて様々な環境で移動体の向きとセンサ50の向きとの校正を行うことができる。
(実施の形態2)
以下、実施の形態2に係る情報処理装置について説明する。
図6は、実施の形態2に係る情報処理装置20の一例を示すブロック図である。なお、図6には、情報処理装置20の他にセンサ50、メモリ60及びCAN70が示されている。センサ50、メモリ60及びCAN70は、実施の形態1におけるものと同じであるため説明は省略する。
情報処理装置20は、操舵向き取得部21、第1差分補正部22、直線区間特定部13、移動制限部18及びエラー通知部19を備える。
情報処理装置20は、プロセッサ及びメモリ等を含むコンピュータである。メモリは、ROM及びRAM等であり、プロセッサにより実行されるプログラムを記憶することができる。操舵向き取得部21、第1差分補正部22、直線区間特定部13、移動制限部18及びエラー通知部19は、メモリに格納されたプログラムを実行するプロセッサ等によって実現される。なお、直線区間特定部13、移動制限部18及びエラー通知部19は、実施の形態1におけるものと同じであるため説明は省略する。
例えば、情報処理装置20は、サーバであってもよい。また、情報処理装置20を構成する構成要素は、複数のサーバに分散して配置されてもよい。
また、例えば、情報処理装置20は、移動体に搭載される装置であってもよい。その場合、情報処理装置20は、センサ50を備えていてもよい。
また、例えば、情報処理装置20は、メモリ60を備えていてもよい。その場合、メモリ60は、プログラムを記憶するメモリと同じメモリであってもよい。
また、実施の形態1と同じように、移動体は、設定される経路に沿って移動する移動体である。
操舵向き取得部21は、経路の向きに移動する移動体の正面方向に対する操舵の向きを取得する。
第1差分補正部22は、取得された操舵の向きに基づいて、移動体に搭載されるセンサ50の向きと移動体の向きとの差分として設定される第1差分を補正する。
情報処理装置20の各機能構成要素の詳細について、図7を用いて説明する。
図7は、実施の形態2に係る情報処理装置20の動作の一例を示すフローチャートである。例えば、自動運転システム等において、移動体が移動する経路がソフトウェア上で設定され、移動体はその経路に沿って移動するように設定されているとする。
まず、操舵向き取得部21は、経路の向きに移動する移動体の正面方向に対する操舵の向きを取得する(ステップS31)。操舵向き取得部21は、例えば、CAN70等を介して各種ECU等から操舵の向きを取得する。移動体が経路の向きに移動するとは、経路の向きと移動体の正面方向とが平行になるように移動体が経路をまっすぐ移動することを意味する。例えば、操舵の向きは、タイヤ角であってもよく、タイヤ角をセンシングするセンサ等からタイヤ角を取得することができる。また、例えば、操舵の向きは、ステアリング角であってもよく、ステアリング関連のECU等からステアリング角を取得することができる。
例えば、直線区間特定部13が特定した直線区間を移動体が移動するときに、操舵向き取得部21は、操舵の向きを取得する。移動体は経路に沿って移動しやすくなるため、移動体が直線区間を移動するときに移動体の操舵の向きを算出することで正確な操舵の向きを算出できる。
第1差分がセンサ50の向きと移動体の向きとの正確な差分となっていない場合、移動体は、経路の向きからずれて移動することになる。具体的には、移動体は、センサ50のセンサデータに基づいてセンサ50の正面方向と認識された方向から第1差分を差し引いた方向を移動体の正面方向(すなわち経路の向き)として移動するが、第1差分が正確でない場合、経路の向きからずれた方向に移動してしまう。これに対して、自動運転では、経路の向きからずれた方向に移動した移動体を経路から外れないように移動させるために、操舵の向きが移動体の正面方向から経路の向きへ制御されることになる。つまり、第1差分が正確でない場合、操舵の向きには、第1差分の、実際の差分からのズレ量に応じた移動方向のズレを解消するための一定の偏りが移動体の正面方向に対して生じる。
次に、第1差分補正部22は、取得された操舵の向きに基づいて、移動体に搭載されるセンサ50の向きと移動体の向きとの差分として設定される第1差分を補正する(ステップS32)。
例えば、第1差分補正部22は、移動体の正面方向に対する操舵の向きが小さくなるように第1差分を補正してもよい。操舵の向き(又は操舵の向きの統計値)が小さくなるように第1差分が補正されることで、言い換えると、移動体が経路の向きからずれた方向に移動しなくなるように第1差分が補正されることで、第1差分を正確な値に補正することができる。
例えば、第1差分補正部22は、移動体の正面方向に対する操舵の向きが閾値以上か否かを判定し、操舵の向きが閾値以上の場合、第1差分を補正してもよい。移動体の正面方向に対する操舵の向きが閾値以上、すなわち、移動体の操舵の向きが移動体の正面方向から大きくずれている場合に、第1差分を補正できる。言い換えると、移動体の正面方向に対する操舵の向きが閾値未満になるまで第1差分を補正することで、第1差分を正確な値に補正することができる。
なお、第1差分補正部22は、実施の形態1における第1差分補正部17と同じように、N個のフレームに対応する操舵の向きの平均に基づいて、第1差分を補正してもよい。
以上説明したように、操舵の向きの偏りから第1差分を補正することで第1差分を正確な値に補正することができ、移動体の向きとセンサ50の向きとの差分の正確な校正を行うことができる。本開示では、物理的な目印なしで移動体の向きとセンサ50の向きとの差分を算出することができる。例えば、工場等の目印が設置できる特殊な環境だけでなく、目印が設置できない環境も含めて様々な環境で移動体の向きとセンサ50の向きとの校正を行うことができる。また、操舵の向きはCAN70等を介して容易に取得することができるため、移動体の向きとセンサ50の向きとの差分の算出をより簡易に行うことができる。
(その他の実施の形態)
以上、本開示の一つ又は複数の態様に係る情報処理装置について、実施の形態に基づいて説明したが、本開示は、これらの実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を各実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の一つ又は複数の態様の範囲内に含まれてもよい。
例えば、上記実施の形態では、情報処理装置は、直線区間特定部13、移動制限部18及びエラー通知部19を備える例について説明したが、情報処理装置は、直線区間特定部13、移動制限部18及びエラー通知部19のうちの少なくとも1つの構成要素を備えていなくてもよい。
例えば、移動体に複数のセンサが搭載されていてもよい。移動体に複数のセンサが搭載される場合の校正について図8及び図9を用いて説明する。
図8は、複数のセンサが搭載された移動体を示す図である。
図9は、複数のセンサのそれぞれの点群データ及び地図情報が示す点群データを説明するための図である。
図8に示されるように、例えば、移動体の天井にセンサ50aが搭載され、移動体の右側にセンサ50bが搭載され、移動体の左側にセンサ50cが搭載され、移動体の後側にセンサ50dが搭載されているとする。センサ50a、50b、50c及び50dは、例えばLiDAR等のレーダである。センサ50aは移動体の周囲をセンシングし、センサ50bは移動体の右方をセンシングし、センサ50cは移動体の左方をセンシングし、センサ50dは移動体の後方をセンシングする。
図9には、センサ50a、50b、50c及び50dのそれぞれが取得する点群データ及び地図情報が示す点群データを模式的に示している。白丸で示される点群データ51aは、センサ50aが取得する点群データである。右上から左下への斜線が付された丸で示される点群データ51bは、センサ50bが取得する点群データである。左上から右下への斜線が付された丸で示される点群データ51cは、センサ50cが取得する点群データである。ドットが付された丸で示される点群データ51dは、センサ50dが取得する点群データである。黒丸で示される点群データ51eは、地図情報が示す点群データである。
例えば、実施の形態1又は2で説明した移動体の向きとセンサの向きとの差分の校正は、センサ50a、50b、50c及び50dのうちのいずれか1つのセンサについて行われればよく、他のセンサについては行われなくてもよい。地図情報が示す点群データ51eと、センサ50a、50b、50c及び50dが取得する点群データ51a、51b、51c及び51dとを比較することでセンサ50a、50b、50c及び50dの向きを算出することができ、各センサ間の向きの差分の校正を行うことができるためである。具体的には、センサ50aについて、移動体の向きとセンサ50aの向きとの正確な第1差分が0.2°と求まり、センサ50aの向きとセンサ50bの向きとの差分が0.5°と求まれば、移動体の向きとセンサ50bの向きとの正確な第1差分は、実施の形態1又は2に示すようにして求めなくても、センサ50aについての第1差分を用いて0.7°と容易に求めることができる。
例えば、上記実施の形態では、CAN70を介して、センサデータ、各種ECUのデータ又はメモリ60に記憶された第1差分のデータ等の送受信が行われる例について説明したが、これらのデータの送受信に用いられるネットワークは、CAN70に限らない。例えば、他の有線又は無線のネットワークであってもよい。
例えば、本開示において、移動体の向き、センサの向きとしているところを、移動体の姿勢、センサの姿勢と置き換えてもよい。
なお、本開示は、情報処理装置として実現できるだけでなく、情報処理装置を構成する各構成要素が行うステップ(処理)を含む情報処理方法として実現できる。
例えば、情報処理方法は、コンピュータにより実行される情報処理方法であって、図3に示されるように、移動体が移動する経路の向きを取得し(ステップS11)、移動体に搭載されるセンサの向きを当該センサによって取得されるセンサデータに基づいて算出し(ステップS12)、センサの向きと移動体の向きとの差分として設定される第1差分を取得し(ステップS13)、算出されたセンサの向きと第1差分とに基づいて移動体の向きを推定し(ステップS14)、取得された経路の向きと推定された移動体の向きとの第2差分を算出し(ステップS15)、算出された第2差分に基づいて第1差分を補正する(ステップS16)処理を含み、センサは、移動体の向きの推定のためのセンサであり、移動体は、設定される経路に沿って移動する移動体である。
また、例えば、情報処理方法は、コンピュータにより実行される情報処理方法であって、図7に示されるように、経路の向きに移動する移動体の正面方向に対する操舵の向きを取得し(ステップS31)、取得された操舵の向きに基づいて、移動体に搭載されるセンサの向きと移動体の向きとの差分として設定される第1差分を補正する(ステップS32)処理を含み、センサは、移動体の向きの推定のためのセンサであり、移動体は、設定される経路に沿って移動する移動体である。
例えば、本開示は、情報処理方法に含まれるステップを、プロセッサに実行させるためのプログラムとして実現できる。さらに、本開示は、そのプログラムを記録したCD-ROM等である非一時的なコンピュータ読み取り可能な記録媒体として実現できる。
例えば、本開示が、プログラム(ソフトウェア)で実現される場合には、コンピュータのCPU、メモリ及び入出力回路等のハードウェア資源を利用してプログラムが実行されることによって、各ステップが実行される。つまり、CPUがデータをメモリ又は入出力回路等から取得して演算したり、演算結果をメモリ又は入出力回路等に出力したりすることによって、各ステップが実行される。
なお、上記実施の形態において、情報処理装置に含まれる各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサなどのプログラム実行部が、ハードディスク又は半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
上記実施の形態に係る情報処理装置の機能の一部又は全ては典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらに、本開示の主旨を逸脱しない限り、本開示の各実施の形態に対して当業者が思いつく範囲内の変更を施した各種変形例も本開示に含まれる。