JP7358108B2 - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP7358108B2
JP7358108B2 JP2019141358A JP2019141358A JP7358108B2 JP 7358108 B2 JP7358108 B2 JP 7358108B2 JP 2019141358 A JP2019141358 A JP 2019141358A JP 2019141358 A JP2019141358 A JP 2019141358A JP 7358108 B2 JP7358108 B2 JP 7358108B2
Authority
JP
Japan
Prior art keywords
orientation
freedom
information
degrees
moving body
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019141358A
Other languages
English (en)
Other versions
JP2021026302A (ja
Inventor
大輔 小竹
誠 冨岡
真和 藤木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2019141358A priority Critical patent/JP7358108B2/ja
Publication of JP2021026302A publication Critical patent/JP2021026302A/ja
Application granted granted Critical
Publication of JP7358108B2 publication Critical patent/JP7358108B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、移動体の自己位置姿勢推定に関する。
工場や物流倉庫で利用される無人搬送車(移動体(Automated Guided Vehicle))などの車輪ロボットは、床や道路などの平面上を走行することが一般的である。このような移動体や車輪ロボット(これらを総称して移動体と呼ぶ)の制御に必要な位置姿勢の計測には2Dのレーザスキャナ(2D LiDAR(Light Detection and Ranging))が利用されることが多い。2D LiDARは走行時に床面に平行となるように移動体上に設置され、移動体が走行する平面(床面)上の位置(2自由度)と姿勢(1自由度)の計3自由度の位置姿勢が計測される。また、3自由度の地図情報に移動体の目標位置を設定することによって、移動体を目標位置に向かって移動させることができる。
特開2015-141580号公報
特許文献1では、所定の面における移動体と環境に存在する物体との距離計測を行う距離センサによる計測結果を使って移動体の位置推定を行う。更に、環境内に設置されたランドマークを撮影可能なエリアに移動体がいる場合は、ステレオカメラで撮像した画像からランドマークを認識して移動体の位置推定も行う。しかしながら、特許文献1では、坂道等で移動体が傾く場合に、距離センサによる位置推定に移動体の傾きが考慮されないため、移動体の位置及び姿勢を間違って推定する可能性がある。本発明は上記課題に鑑みてなされたものであり、移動体の位置及び姿勢を安定的に得ることを目的とする。
上記課題を解決する本発明にかかる情報処理装置は、撮像装置を搭載した移動体の位置及び姿勢を推定する情報処理装置であって、前記撮像装置の6自由度の位置及び姿勢を示す第1情報を推定する6自由度推定手段と、前記移動体が走行する位置での高さ方向の値から得られる、前記移動体と基準となる面との成す傾きが所定の値より大きい場合は、前記第1情報に基づいて前記移動体の3自由度の位置及び姿勢を決定し、前記移動体と基準となる面との成す傾きが所定の値より小さい場合は、前記移動体の3自由度の位置及び姿勢を示す第2情報に基づいて前記移動体の3自由度の位置及び姿勢を決定する決定手段と、有することを特徴とする。
本発明により、移動体の位置及び姿勢を安定的に取得できる。
移動体の傾きを説明する概念図 移動体の移動制御の様子を説明する図 情報処理装置のハードウェア構成例を示す図 情報処理装置の機能構成例を示すブロック図 情報処理装置の機能構成例を示すブロック図 情報処理装置が実行する処理を説明するフローチャート 情報処理装置が実行する処理を説明するフローチャート 情報処理装置の機能構成例を示すブロック図 情報処理装置が実行する処理を説明するフローチャート 情報処理装置の機能構成例を示すブロック図 情報処理装置が実行する処理を説明するフローチャート
以下、図面を参照しながら実施形態を説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<実施形態1>
本実施形態では、移動体の移動制御に本発明を適用した場合について説明する。工場や倉庫で荷物を運搬するロボット等の一般的な移動体は、画像センサや距離センサを用いて自己位置姿勢推定をしながら自動運転する。一般的な移動体は水平な面を走行することを想定されているが、走行環境に存在する坂道や段差、また自身に搭載された荷物によって、予め地図情報等で設定された基準となる水平面に対して移動体自身が傾いてしまうことがある。このような場合、平面を走査する2次元の距離センサの計測値から推定された自己位置姿勢推定の結果は、地図情報における絶対位置とズレて推定される可能性がある。
本実施形態では、移動体は、部分的に坂道が存在する平面(床面)を走行するものとし、移動体に搭載された画像センサ(カメラ)が撮影する画像情報をもとに推定される6自由度の位置姿勢をもとに移動体の走行距離の算出を行う。図1は、移動体1が基準となる面S1に対して角度Θだけ傾いている面S2を走行する状況を模した図である。このとき、移動体が点P1から特定の時間tに進んだ正しい走行距離を点P1と点P2を結んだD1であるとする。点P1と水平面上の点P2’を結んだ距離D2は3自由度の(2次元を走査する距離センサによる)位置姿勢計測結果に基づいて算出される走行距離である。3自由度の位置及び姿勢の推定においては、移動体1は基準となる面S1を走行するという前提で位置姿勢が推定されるためD1とD2は一致しない。D1とD2が一致しないと、例えば、AGVのバッテリー充電やメンテナンス、部品交換のタイミングを走行距離に基づいて管理する際に、最適なタイミングでメンテナンスを行えない。
本実施形態では、D1とD2の差が大きくならないように、移動体が斜面を走行する場合は、6自由度の位置(X、Y、Z)及び姿勢(Roll、Pitch、Yaw)の計測結果を変換することによって移動体の移動制御に必要な3自由度の移動体の位置及び姿勢を推定する。これによって、移動体の位置及び姿勢を取得できる。
(構成説明)図2は、本実施形態における移動体の移動制御の様子を説明する図である。本実施形態においては、工場や倉庫内の物流を担うAGV(Automated Guided Vihecle)の移動制御を具体例として説明する。移動体は基本的に人間の操作を介することなく一定の指示を与えることで自己位置を自律的に移動可能な可動式のロボットであればよい。
移動体1に搭載された情報処理装置11は、例えばステレオカメラで移動体の周囲を撮像した画像に基づいて移動体の位置及び姿勢を推定し、その推定結果に基づいて移動体を移動制御する。情報処理装置11は、画像センサ12、距離センサ13、接触センサ14、アクチュエータ15、オドメーター17、記憶部18に接続されている。また移動体1は上位管理システム16との無線通信を行う。
図3は、情報処理装置のハードウェア構成例を示す図である。中央処理ユニット(CPU)101は、RAM103をワークメモリとして、ROM102や記憶装置104に格納されたOSやその他プログラムを読みだして実行し、システムバス109に接続された各構成を制御して、各種処理の演算や論理判断などを行う。CPU101が実行する処理には、実施形態の情報処理が含まれる。記憶装置104は、ハードディスクドライブや外部記憶装置などであり、実施形態の情報処理にかかるプログラムや各種データを記憶する。入力部105は、カメラなどの撮像装置、ユーザ指示を入力するためのボタン、キーボード、タッチパネルなどの入力デバイスである。なお、記憶装置104は例えばSATAなどのインタフェイスを介して、入力部105は例えばUSBなどのシリアルバスを介して、それぞれシステムバス109に接続されるが、それらの詳細は省略する。通信I/F106は無線通信で外部の機器と通信を行う。表示部107はディスプレイである。センサ108は画像センサや距離センサである。
画像センサ12は具体的にはカメラである。画像センサ12は、移動体の周囲を撮像する撮像装置である。画像センサによって移動体の周囲の環境を撮像し、撮像された計測結果を画像情報として画像情報入力部111に出力する。本実施形態における画像センサは、水平・垂直方向の画角を有するモノクロカメラ2個から構成されるステレオカメラであるとする。ステレオカメラは、光軸が水平面よりやや上方を向くように移動体に取り付ける。ステレオカメラを構成する2台のカメラの内部パラメータ(焦点距離、画像中心、歪みパラメータ)及びカメラ間の外部パラメータ(相対的な位置姿勢)は公知の方法により予め校正されているものとする。本実施形態では、カメラの光学中心を原点、光軸方向をZ軸、画像の水平方向をX軸、画像の垂直方向をY軸とする三次元の座標系をカメラ座標系と規定する。ステレオカメラのカメラ座標系は、左側カメラ(または右側カメラ)のカメラ座標系であるとする。画像センサ12の移動体における取付け位置は設計値により既知であるとする。なお、画像センサの代わりに6自由度の距離計測が可能な距離センサを用いてもよい。具体的には、3D-LiDAR等でもよい。
距離センサ13はセンサからのシーンの距離情報を計測する装置である。本実施形態における距離センサは2D LiDARである。2D LiDARは、レーザ光を平面上で走査させることによって距離情報を取得する距離センサである。距離センサ13は、レーザ光を走査させる平面が略水平面となるように移動体に取り付ける。距離センサ13の移動体における取付け位置は設計値により既知であるとする。計測された距離情報は情報処理装置11の距離情報入力部118に出力される。なお、距離センサの代わりに、画像センサで撮像された画像から、2次元の絶対位置を示すマーカを認識する構成でもよい。
接触センサ14は安全センサである。接触センサが移動体と他の物体との接触を検知すると移動体は緊急停止するよう制御部115に情報を出力する。
アクチュエータ15は、情報処理装置11からの指示や障害物センサ、安全センサの出力をもとにモータを制御して移動体を移動または静止させる。
上位管理システム16は、複数の移動体の運行管理を行うシステムである。上位管理システム16は、各移動体の情報処理装置11に目標位置姿勢を送信する。本実施形態では、移動体の目標位置姿勢は平面上における3自由度の位置姿勢であるとする。上位管理システム16と情報処理装置11の間の通信は、WifiやBlueTootth、5Gなどの無線通信により行う。
オドメーター17は、例えば、移動体の車輪の回転量から走行距離を計測する。
記憶部18は、移動体が走行する環境についての地図情報を記憶する。他、移動体の走行距離や移動制御に必要な情報を保持する。なお、図4のように記憶部18は移動体上に搭載されている形以外でもよく、上位管理システム16の内部にあってもよい。
(情報処理装置11の詳細)
図4に、本実施形態における情報処理装置の機能構成例を示す図を示す。情報処理装置11は、画像情報入力部111、6自由度推定部112、変換部113、制御部115、地図情報取得部116、平面情報取得部117、から構成される。情報処理装置11は、さらに距離情報入力部118、3自由度推定部119、決定部120、第2地図情報取得部121、計測部122から構成される。また、移動体1には、計測部122、制御部115、距離情報入力部118、3自由度推定部119、決定部120、第2地図情報取得部121を有する。情報処理装置11は、例えばPC、組み込みシステム、PLC(Programmable Logic Controller)である。
画像情報入力部111は、画像センサ12から画像情報を入力し、入力された画像情報を6自由度推定部112に送る。本実施形態における画像センサ12はステレオカメラであるため、画像情報はステレオ画像(左右のカメラが撮影する2枚の画像)である。画像センサ12は、移動体が走行する工場や物流倉庫などの画像情報を撮像する。よって、本実施形態における画像情報とは、移動体に搭載された撮像装置によって移動体の走行する環境を撮像したステレオ画像を指す。
6自由度推定部112は、画像情報入力部111から入力された画像情報(ステレオ画像)をシーンの地図情報と照合することにより3次元空間中におけるカメラの6自由度の位置姿勢(位置3自由度、姿勢3自由度)を推定する。6自由度の位置姿勢は、前述の移動体が走行する環境を示す地図情報において規定される3次元の座標系(以下、世界座標系)を基準とした位置姿勢(第1情報)である。本実施形態では、Mur-Artalらの手法によりシーンの地図情報の生成及びカメラの6自由度の位置姿勢推定を行う。(R.Mur-Artal 他,“ORB-SLAM2:An Open-Source SLAM System for Monocular,Stereo,and RGB-D Cameras,2017.)。Mur-Artalらの手法は画像上で検出される特徴点を利用する手法である。シーンの地図情報として、移動体が走行する工場や物流倉庫といった移動体が走行するシーンにおける3次元点群の情報を保持する。具体的には、シーンにおける3次元点群の情報は特徴点の世界座標系における3次元座標のことである。本実施形態では、移動体を走行させながら撮影した映像をもとに、前述のMur-Artalらの手法によりあらかじめシーンの地図情報を生成しておく。シーンの地図情報は、記憶部18に保存されているものとする。Mur-Artalらの手法は、画像上の特徴点の位置と、推定する位置姿勢を用いて地図上の特徴点を画像上に投影した時の位置の差(再投影誤差)を最小化することによりカメラの位置姿勢を推定する。6自由度推定部は、撮像装置によって撮像された移動体の周囲を写した画像を入力し、移動体の3自由度の位置及び姿勢を出力する学習済みモデルに基づいて移動体の3自由度の位置及び姿勢を推定してもよい。
変換部113は、6自由度推定部112が推定した6自由度のカメラの位置姿勢を、移動体の制御が可能なように3自由度の位置姿勢に変換する。すなわち、変換部113は、地図情報において規定される3次元の座標系(以下、世界座標系)を基準とした位置姿勢である第1情報を用いて、3自由度の位置及び姿勢を示す第3情報を出力する。移動体の傾きは、例えば、6自由度の位置及び姿勢の推定結果の高さ方向の値(Z)で判断してもよい。例えば、Z=0の場合は、移動体は基準となる面を走行していると考え、3自由度で計測する距離センサの計測結果を用いて移動体を制御する。一方で、Z>0(またはZ<0)の場合は、斜面を登っている(或いは下っている)と考えられるため、6自由度の位置及び姿勢を3自由度に変換した結果を用いて制御を行うようにする。前述の通り、3自由度の位置姿勢は移動体が走行する平面における位置姿勢である。3自由度のうち2自由度は平面上の2次元位置、残りの1自由度は平面の法線まわりの姿勢(平面上の向き)を表わす。移動体が走行する平面の推定方法については後述する。移動体が走行する平面の情報は平面情報取得部117に保存されているものとする。
制御部115は、決定部120が決定した移動体の位置及び姿勢に基づいて移動体を制御する。第2情報または変換部113が変換した3自由度の位置及び姿勢を示す第3情報をもとに移動体の制御を行う。具体的には、制御部115は、あらかじめ設定した移動体の目標位置姿勢(3自由度)と、変換部112が出力する3自由度の位置姿勢の差をもとに経路計算を行い、計算された経路に従うようにアクチュエータ15にモータの回転速度などの指示を送る。移動体の位置姿勢が目標位置姿勢と略一致した場合には移動体を停止し、上位管理システム16から次の目標位置姿勢が送られてくるのを待つ。なお、経路計算はA*アルゴリズムやRRT(Rapidly exploring random tree)といったアルゴリズムを用いてもよいし、Q学習やDQNなどの機械学習による方法を用いてもよい。
地図情報取得部116は、記憶部18より移動体が走行する環境の3自由度の地図情報を取得する。また、予め設定された移動体の3自由度の目標位置姿勢を取得する。
平面情報取得部117は、移動体を運用時と同じ基準となる平面上を走行させることにより平面推定用のデータの取得を行う。平面推定用のデータは、移動体が走行した時の複数(N点)の位置における位置姿勢データである。位置姿勢データは、6自由度位置姿勢推定によって推定される画像センサ112の6自由度位置姿勢である。基準面よりΘだけ傾いた傾斜面を走行する場合でも、3自由度の位置及び姿勢を正しく推定できるように、6自由度の位置及び姿勢を撮像装置によって撮像された画像を基に推定する。
計測部122は、オドメーター17によって計測された移動体の車輪の回転量に基づいて、移動体の走行距離を計測する。計測部122の計測結果に基づいて、決定部120におけて移動体の位置姿勢を決定する。
距離情報入力部118は、距離センサ13から移動体とその周囲にある物体との距離を計測した距離情報を入力し、入力された距離情報を3自由度推定部219に送る。前述したように、本実施形態における距離センサは2D LiDARである。2D LiDARは、レーザ光を走査させる平面が略水平面となるように移動体に取り付けられる。これにより距離センサ13は、距離センサ13が取り付けられた高さの水平面における距離情報を取得する。
3自由度推定部119は、移動体が走行する環境を示す2次元の地図情報と、移動体が走行する環境における物体と該移動体との距離を計測した距離情報とに基づいて移動体に搭載された距離センサの3自由度の位置及び姿勢を示す第2情報を推定する。すなわち、距離情報入力部118から入力された距離情報をシーンの地図情報と照合することにより距離センサ13の位置姿勢を推定する。本実施形態では、3自由度推定部119は、距離センサ13の平面上における3自由度の位置姿勢(位置2自由度、姿勢1自由度)を推定する。移動体の移動制御に必要な2次元の地図情報は事前に生成され第2地図情報取得部121によって予め取得されているものとする。3自由度の位置姿勢は、前述の地図情報において規定される平面(2次元)の世界座標系(以下、2次元世界座標系)を基準とした位置姿勢である。距離情報に基づく地図情報の生成や位置姿勢の推定は、パーティクルフィルタを利用するGrisettiらの手法により行う。(G.Grisetti,他,“Improved Techniques for Grid Mapping with Rao-Blackwellized Particle Filters,”2007.)。距離センサの位置姿勢は、移動体に対する距離センサの既知の取付け位置をもとに3自由度推定部または決定部において移動体の位置姿勢に変換する。3自由度の位置姿勢の推定は、6自由度から3自由度に変換する処理が不要なため、6自由度の位置姿勢推定よりも処理負荷が小さいといったメリットがある。そのため、移動体が平面を走行する際は3自由度の位置姿勢を行い、なるべく省電力で移動体を制御できる。なお、ここでは距離情報から位置及び姿勢を推定する方法を述べるが3自由度の位置及び姿勢を推定できればどのような情報を用いても良い。例えば、地図における2次元座標を示すマーカを環境内に設置し、マーカを画像認識することで移動体の位置を特定する方法でも良い。
決定部120は、移動体の傾きに応じて、第2情報および第3情報の少なくとも1つを選択的に用いることにより、移動体の位置及び姿勢を決定する。つまり、移動体と基準となる面との成す傾きが所定の値より大きい場合は、第1情報に基づいた第3の情報を移動体の3自由度の位置及び姿勢として決定する。決定部120は、移動体と基準となる面との成す傾きが所定の値より小さい、すなわちほぼ水平な面を走行する場合は、第2情報に基づいて移動体の3自由度の位置及び姿勢を決定する。移動体が傾いている場合、例えば斜面を走行する場合は、3自由度の距離の計測結果では重力方向の変位を計測できない。一方で、6自由度で位置姿勢計測が可能な第1情報を用いることで重力方向の変位を含んだ走行距離を推定できる。このように移動体の重力方向の傾きによって計測結果を使い分けることで、安定的に3自由度の位置姿勢推定結果を得ることが出来る。なお、移動体と基準となる面との成す傾きが所定の値より小さい場合は、第2情報に加えて第1情報に基づいて位置姿勢を決定してもよい。その場合は例えば第1情報と第2情報の結果から平均値や中央値を移動体の位置姿勢として決定する。
図6に本発明を移動体の移動制御に適用した場合の処理手順のフローチャートを示す。以下の説明では、各工程(ステップ)について先頭にSを付けて表記することで、工程(ステップ)の表記を省略する。ただし、情報処理装置11はこのフローチャートで説明するすべてのステップを必ずしも行わなくても良い。
S1010では、平面情報取得部117が、事前準備として移動体が走行する平面の推定を行う。推定される平面を用いることで、6自由度推定部112によって推定される6自由度位置姿勢を平面上の3自由度位置姿勢に変換することが可能になる。移動体が走行する平面の推定は、移動体を平面上に走行させたときに推定される位置に平面当てはめを行うことにより推定する。移動体が走行する平面の推定方法の詳細については後述する。
S1020では、地図情報取得部116は、上位管理システム16から移動体の目標位置姿勢を取得する。本実施形態では、移動体の目標位置姿勢は平面上における3自由度の位置姿勢であるとする。
S1030では、6自由度推定部112は、撮像装置が少なくとも移動体の周囲を撮像した画像に基づいて、移動体の6自由度の位置及び姿勢を示す第1情報を推定する。具体的には、6自由度推定部112は、ステレオカメラによって撮影された画像情報をもとにカメラの6自由度の位置姿勢推定を行う。位置姿勢推定の際には地図情報取得部116によって予め取得された地図情報を利用する。カメラの6自由度の位置姿勢推定には、前述のMur-Artalらの手法を用いる。地図は生成済みであるため、地図情報は更新せずカメラの位置姿勢のみを画像情報から推定する。なお、SLAM技術を用いて地図情報を更新しながら位置姿勢を行っても良い。
S1035では、3自由度推定部119が、移動体が走行する環境における物体と該移動体との距離を計測した距離情報に基づいて移動体の3自由度の位置及び姿勢を示す第2情報を推定する。すなわち、AGVの3自由度の位置姿勢推定を行う。3自由度推定部119は、距離情報入力部117から入力された距離情報を第2地図情報取得部121に保存されているシーンの地図情報と照合することにより距離センサ13の位置姿勢を推定する。推定される距離センサの位置姿勢を(xL,yL,θL)とする。
S1040では、決定部120は、第1情報に基づいて、移動体と基準となる面とのなす傾きが所定の値より大きいか否かを判断する。この傾きは、例えば、移動体の位置のZ方向の大きさで判断する。他の値を基準にしてもよい。移動体と基準となる面とが成す傾きが所定の閾値以下である場合、S1045に進み、6自由度推定部112が推定した6自由度のカメラの位置姿勢を、該傾きに基づいて、移動体の制御が可能なように6自由度の位置姿勢を3自由度の位置姿勢に変換する。決定部120が、移動体と基準となる面とが成す傾きが所定の閾値以上であると判断した場合は、3自由度の位置姿勢S1050に進む。変換部113は、撮像装置の位置姿勢推定結果である第1情報に基づいて移動体の6自由度の位置及び姿勢を決定する。
S1050では、決定部120が、移動体の傾きに応じて第2情報および第3情報の少なくとも1つを選択的に用いることにより、移動体の位置及び姿勢を決定する。S1030で推定した位置姿勢と、S1035で推定した位置姿勢から、最終的に制御部15に出力する位置姿勢を決定する。または、変換部130が、S1030で推定された6自由度の位置姿勢を、S1010で推定された移動体が走行する平面パラメータの推定結果に基づいて変換することで、移動体の3自由度の位置姿勢を決定する。また前述の画像センサ12の移動体における取付け位置に基づいて、カメラの位置姿勢を移動体の位置姿勢に変換する。最終的に制御部115に出力する3自由度の位置姿勢を決定する。
S1060では、制御部115が、S1050で取得した移動体の位置姿勢と、S1020で取得した移動体の目標位置姿勢を比較し、移動体が目標位置姿勢に到達したか判定する。本実施形態では、現在の位置と目標位置との差、現在の姿勢と目標姿勢との差のそれぞれに閾値(例えば1m)を設け、位置の差及び姿勢の差の双方が該当する閾値を下回った場合に目標位置に到達したと判定する。本実施形態では、現在の位置と目標位置との差、現在の姿勢と目標姿勢との差のそれぞれに閾値を設け、位置の差及び姿勢の差の双方が該当する閾値を下回った場合に目標位置に到達したと判定する。目標位置に到達した場合は、S1020に戻り、新たな目標位置姿勢を上位管理システムから受け取る。
S1070では、制御部115は、決定部120によって決定された移動体の3自由度の位置及び姿勢と、移動体が走行する環境を3自由度で表した地図情報とに基づいて、前移動体を地図情報において示される目標位置に移動させる。つまり、S1050で決定された移動体の3自由度の位置姿勢推定結果と、上位管理システム16から送信された移動体の目標位置姿勢との差をもとに経路計算を行う。計算された経路に従うように移動体のアクチュエータ15を制御する。
S1080では、制御部115は、移動制御の終了判定を行う。上位管理システム16から終了命令が送られた場合には移動制御を終了する。さもなければS1030に戻り、移動制御を継続する。
図7はS1010における移動体が走行する平面の推定方法の処理手順を示すフローチャートである。S1100では、平面情報取得部117が、移動体を運用時と同じ平面上を走行させることにより平面推定用のデータの取得を行う。平面推定用のデータは、移動体が走行した時の複数(N点)の位置における位置姿勢データである。位置姿勢データは、6自由度位置姿勢推定によって推定される画像センサ112の6自由度位置姿勢である。ここでi番目(1≦i≦N)の位置姿勢データにおけるカメラの6自由度位置姿勢を(Xvi,Yvi,Zvi,Wxvi,Wyvi,Wzvi)と表す。Xvi,Yvi,Zviは3次元空間におけるカメラの3次元位置、Wxvi,Wyvi,Wzviは3次元の姿勢を表わす。本実施形態では、3次元ベクトル(Wxvi,Wyvi,Wzvi)のノルムを回転角、方向を回転軸とする姿勢表現を用いる。また、Wxvi,Wyvi,Wzviで表される姿勢の3×3回転行列をRvi、3次元ベクトル(Xvi,Yvi,Zvi)tをtviと表す。平面推定用データを取得する際は、移動体の移動軌跡から平面パラメータを推定できるように、直線的な軌跡ではなく、例えば移動体の軌跡が閉曲線を描くように移動体を移動させる。なお、部分的な坂道や移動体の振動や床面の凹凸などによる平面からのずれは平面当てはめにより吸収できるものとする。
S1110では、N個の3自由度の位置データ(Xvi,Yvi,Zvi)tに対して平面当てはめを行う。平面推定用データ取得の際に移動体が走行した平面のパラメータ(法線ベクトルnv=(nvx,nvy,nvz)t、通過位置cv=(cvx,cvy,cvz)t)を推定する。法線ベクトルnvは単位ベクトルであるとする。通過位置cvは(Xvi,Yvi,Zvi)tの重心を算出することにより求める。法線ベクトルnvは、N個の3次元ベクトル(Xvi-cvx,Yvi-cvy,Zvi-cvz)tの共分散行列を固有値分解し、最小固有値に対応する固有ベクトルとして求める。推定した平面パラメータは、平面情報取得部117に保存しておく。
次にS1045における6自由度の位置姿勢を3自由度の位置姿勢への変換方法の処理手順について説明する。
S1000で推定された平面上に6自由度位置姿勢(Xv,Yv,Zv,Wxv,Wyv,Wzv)を射影し、3自由度の位置姿勢(xv,yv,θv)tに変換する(なお、Wxv,Wyv,Wzvで表される姿勢の3×3回転行列をRvとする)。具体的には、平面の通過位置cvを原点、平面の法線ベクトルnvをZ軸とする新しい3次元の座標系(以下、平面座標系)を定義し、3次元世界座標系における6自由度位置姿勢を平面座標系に変換する。定義から、3次元世界座標系において、平面座標系の原点(0,0,0)tがcvt、Z軸(0,0,1)tがnvとなる。このことから、平面座標系における3次元座標Xp(=(Xp,Yp,Zp)は次式のように3次元世界座標系における3次元座標Xv(=(Xv,Yv,Zv)に変換される。
Xv=RpvXp+cv
ここで、RpvはZ軸(0,0,1)tを平面の法線ベクトルnvに変換する3×3回転行列である。Rpvは、回転軸を(0,0,1)tとnvの外積、回転角を(0,0,1)tとnvの内積の逆余弦(arccos)として計算する。よって、3次元世界座標系における3次元座標Xvは次式のように平面座標系における3次元座標Xpに変換される。
Xp=Rpv-1(Xv-cv)
Xvとしてtvを入力したときのXpを算出する。3自由度の位置姿勢のうちxv,yvは、3次元座標XpのXp成分、Yp成分に該当する。θvは画像センサの光軸を平面に射影したベクトルの方向である。本実施形態ではステレオカメラの左側のカメラの光軸を画像センサの光軸とする。画像センサに規定されるカメラ座標系における画像センサの光軸を表わす3次元ベクトルをvcとすると、平面座標系における画像センサの光軸voは次式のように表わされる。
vo=Rpv-1Rvvc
前述したように、本実施形態ではステレオカメラの光軸が水平面よりやや上方を向くように無人搬送車に取り付けるため、光軸voを平面座標系のXY平面に射影してθvを算出する。平面座標系のXY平面上に射影された光軸vo’は、次式のように算出される。
vo’=vo-(vo・(0,0,1)t)vo
本実施形態では、平面座標系のX軸に対するvo’の角度をθvとする。
情報処理装置11の構成は図4で述べた例に限定しない。例えば、図5に示すような情報処理装置の機能構成例をでもよい。情報処理装置11は、画像情報入力部111、6自由度推定部112、変換部113、地図情報取得部116、平面情報取得部117、計測部122、決定部120を有する。移動体1は、距離情報入力部118、3自由度推定部119、制御部115、第2地図情報取得部221を有する。
S1040において、決定部120が、移動体に傾きが発生しているか否かを判断するが、毎回必ずしも判断しなくてもよい。例えば、移動体の傾きが頻繁に変わるような凸凹道を走行する際、水平になる度に6自由度から3自由度の推定に変更すると、かえって移動体の位置姿勢推定が不安定になる場合がある。頻繁に推定方法を変更することがないように、移動体に所定の値より大きい傾きが検出された場合は、決定部120は、移動体の傾きが解消されても所定時間(例えば、1分間)が経過するまでは6自由度の計測結果に基づいて、位置姿勢を決定する。つまり、決定部120は、移動体の傾きが所定の値より大きい状態から所定の値より小さくなった場合に、移動体の傾きが所定の値より小さくなった時点から一定時間後に3自由度の位置姿勢計測結果に基づいて移動体の位置姿勢を決定する。または、小さな段差を通過する際は移動体の傾きは一瞬で解消される。そのような場合は6自由度で位置姿勢計測をしなくてもそれほど誤差は発生しないため、6自由度の位置姿勢推定のみに切り替えることをせず、3自由度による位置姿勢推定を継続する。つまり、所定時間より長い時間だけ移動体の傾きが所定の値より大きい状態を保持した場合に、決定部120が6自由度の位置姿勢計測結果に基づいて、移動体の3自由度の位置姿勢を決定する。このように、位置姿勢推定の方法を切り替えた時間または移動体の傾きが保持された時間に応じて決定部120の処理を変更することで、より安定して移動体の位置姿勢を決定できる。
以上述べたように、本実施形態では、移動体の傾きが所定の値より大きい場合、画像情報によって推定される6自由度の位置姿勢を3自由度の位置姿勢に変換した情報を用いて移動体の位置姿勢を決定する。これによって、移動体が走行する床面上に坂道があっても安定的に位置姿勢を決定できる。
<実施形態2>
前述の実施形態では、移動体の傾きが所定の値より大きい場合、画像情報によって推定される6自由度の位置姿勢を3自由度の位置姿勢に変換した情報を用いて移動体の位置姿勢を決定することを可能にした。実施形態2では、移動体は略平面(基準となる面)を走行するものとして、走行時に本来傾くはずのない移動体の傾きを検出する。移動体の傾きは、例えば移動体上の荷物が荷台にバランスよく搭載されていない場合に生じる。この場合、荷崩れが起こる可能性があるため、傾きを検出したらユーザに警告を通知する必要がある。
図8に、本実施形態における情報処理装置21の機能構成例のブロック図を示す。移動体2に搭載された情報処理装置21は、情報処理装置11と同様に画像センサ12、距離センサ13、接触センサ14、アクチュエータ15、オドメーター17、記憶部18を備え、さらに重力センサ29に接続されている。重力センサ29は、移動体の重力方向の傾きを検知し、3自由度の姿勢を計測する。
情報処理装置21は、実施形態1の構成に加え、傾き検出部214、出力部221を有する。情報処理装置11と同様に情報処理装置21は、例えばPC、組み込みシステム、PLC(Programmable Logic Controller)である。
傾き検出部214は、6自由度推定部212によって推定されるカメラの姿勢に基づいて走行する平面に対する移動体の傾きを検出する。あるいは、加速度センサやジャイロセンサ等の重力センサ29を用いて、移動体の重力方向の傾きを検出してもよい。
出力部221は、傾き検出部214が所定の値より大きい移動体の傾きを検出した場合にユーザに警告を発して通知する。出力部221は例えばスピーカーである。または、警告表示を行うディスプレイでもよい。移動体が傾いていることをユーザに知らせることで、移動体の移動制御が失敗する前に安全に対処することができる。
図9に本実施形態における移動体の移動制御に適用した場合の処理手順のフローチャートを示す。同一のステップ番号の処理は実施形態1または2の処理と同一であるので説明を省略する。
S2040では、傾き検出部314において、走行する平面に対する移動体の傾きθを検出する。まず移動体の傾き角度を算出する。傾きのリファレンスを、S3010における平面推定用のデータ取得時のカメラ座標系における走行平面の法線ベクトルnrefとする。nref=(Rvi)-1nvである。nrefはN個のRviのうち1個のRviを決定して算出してもよいし、それぞれのRviからnrefを算出し、平均をとってもよい。6自由度推定部312によって推定される姿勢を表わす3×3回転行列がRvのとき、カメラ座標系における走行平面の法線ベクトルは、ncur=(Rv)-1nvでのように算出される。走行する平面に対する移動体の傾きθは、nrefとncurのなす角である。
S2045では、出力部321が、走行する平面に対する移動体の傾きθが所定の閾値以上であれば移動体が傾いていると判定し、ユーザに警告を通知する。ユーザへの警告は、例えば出力部321のスピーカーから警告音を発するなどして行う。
<実施形態3>
本実施形態では、移動体の移動制御に本発明を適用した場合について説明する。本実施形態では、移動体は、部分的に坂道が存在する平面(床面)を走行するものとし、移動体に搭載された画像センサ(カメラ)が撮影する画像情報をもとに推定される6自由度の位置姿勢をもとに移動体の走行距離の算出を行う。6自由度の位置及び姿勢の計測結果を用いて移動体の位置及び姿勢を推定する。これによって、移動体の位置及び姿勢を安定的に取得できる。
図10に示す移動体3に搭載された情報処理装置31は、移動体の周囲を撮像した画像に基づいて移動体の位置及び姿勢を推定し、その推定結果に基づいて移動体を移動制御する。情報処理装置31は、画像センサ32、距離センサ33、接触センサ34、アクチュエータ35、オドメーター37、記憶部38に接続されている。また移動体3は図1の上位管理システム16との無線通信を行う。
画像センサ32はカメラである。画像センサ32は、移動体の周囲を撮像する撮像装置である。本実施形態における画像センサは、水平・垂直方向の画角を有するモノクロカメラ2個から構成されるステレオカメラであるとする。ステレオカメラは、光軸が水平面よりやや上方を向くように移動体に取り付ける。ステレオカメラを構成する2台のカメラの内部パラメータ(焦点距離、画像中心、歪みパラメータ)及びカメラ間の外部パラメータ(相対的な位置姿勢)は公知の方法により予め校正されているものとする。本実施形態では、カメラの光学中心を原点、光軸方向をZ軸、画像の水平方向をX軸、画像の垂直方向をY軸とする三次元の座標系をカメラ座標系と規定する。ステレオカメラのカメラ座標系は、左側カメラ(または右側カメラ)のカメラ座標系であるとする。画像センサ32の移動体における取付け位置は設計値により既知であるとする。
距離センサ33はセンサからのシーンの距離情報を計測する装置である。本実施形態における距離センサは2D LiDARである。2D LiDARは、レーザ光を平面上で走査させることによって距離情報を取得する距離センサである。距離センサ33は、レーザ光を走査させる平面が略水平面となるように移動体に取り付ける。距離センサ33の移動体における取付け位置は設計値により既知であるとする。実施形態3では、距離センサ33を障害物センサとして利用する。
接触センサ34は安全センサである。接触センサが移動体と他の物体との接触を検知すると移動体は緊急停止する。
アクチュエータ35は、情報処理装置31からの指示や障害物センサ、安全センサの出力をもとにモータを制御して移動体を移動または静止させる。
上位管理システム16は、複数の移動体の運行管理を行うシステムである。上位管理システム16は、各移動体の情報処理装置31に目標位置姿勢を送信する。本実施形態では、移動体の目標位置姿勢は平面上における3自由度の位置姿勢であるとする。上位管理システム16と情報処理装置31の間の通信は、WifiやBlueTootth、5Gなどの無線通信により行う。
オドメーター37は、移動体の車輪の回転量から走行距離を計測する。
記憶部38は、移動体が走行する環境についての地図情報を記憶する。他、移動体の走行距離や移動制御に必要な情報を保持する。なお、図10のように記憶部38は移動体上に搭載されている形以外でもよく、上位管理システム16の内部にあってもよい。
(情報処理装置31の詳細)
図10に、本実施形態における情報処理装置の機能構成例を示す図を示す。情報処理装置31は、画像情報入力部311、6自由度推定部312、変換部313、走行距離算出部314、制御部315、地図情報取得部316、平面情報取得部317、から構成される。情報処理装置31は、例えばPC、組み込みシステム、PLC(Programmable Logic Controller)である。
画像情報入力部311は、画像センサ32から画像情報を入力し、入力された画像情報を6自由度推定部312に送る。本実施形態における画像センサ32はステレオカメラであるため、画像情報はステレオ画像(左右のカメラが撮影する2枚の画像)である。画像センサ32は、移動体が走行する工場や物流倉庫などの画像情報を撮像する。よって、本実施形態における画像情報とは、移動体に搭載された撮像装置によって移動体の走行する環境を撮像したステレオ画像を指す。
6自由度推定部312は、画像情報入力部311から入力された画像情報(ステレオ画像)をシーンの地図情報と照合することにより3次元空間中におけるカメラの6自由度の位置姿勢(位置3自由度、姿勢3自由度)を推定する。6自由度の位置姿勢は、前述のシーンの地図情報において規定される3次元の座標系(以下、世界座標系)を基準とした位置姿勢である。本実施形態では、Mur-Artalらの手法によりシーンの地図情報の生成及びカメラの6自由度の位置姿勢推定を行う。(R.Mur-Artal 他,“ORB-SLAM2:An Open-Source SLAM System for Monocular,Stereo,and RGB-D Cameras,”,2017.)。Mur-Artalらの手法は画像上で検出される特徴点を利用する手法である。シーンの地図情報は、移動体が走行する工場や物流倉庫といった移動体が走行するシーンにおける3次元点群の情報を保持する。具体的には、シーンにおける3次元点群の情報は特徴点の世界座標系における3次元座標のことである。本実施形態では、移動体を走行させながら撮影した映像をもとに、前述のMur-Artalらの手法によりあらかじめシーンの地図情報を生成しておく。シーンの地図情報は、記憶部38に保存されているものとする。Mur-Artalらの手法は、画像上の特徴点の位置と、推定する位置姿勢を用いて地図上の特徴点を画像上に投影した時の位置の差(再投影誤差)を最小化することによりカメラの位置姿勢を推定する。
変換部313は、6自由度推定部312が推定した6自由度のカメラの位置姿勢を、移動体の制御が可能なように移動体の3自由度の位置姿勢に変換する。なお、3自由度の位置姿勢も推定あるいは計測可能な移動体である場合は、移動体の傾きに応じて3自由度の位置姿勢推定結果と6自由度の位置姿勢変換結果を選択的に用いてもよい。移動体の傾きは、例えば、6自由度の位置及び姿勢の推定結果の高さ方向の値(Z)で判断してもよい。例えば、Z=0の場合は、移動体は基準となる面を走行していると考え、3自由度に次元を減らした位置及び姿勢に変換する。一方で、Z>0(またはZ<0)の場合は、斜面を登っている(或いは下っている)と考えられるため、6自由度の位置及び姿勢を用いて制御を行うようにする。前述の通り、3自由度の位置姿勢は移動体が走行する平面における位置姿勢である。3自由度のうち2自由度は平面上の2次元位置、残りの1自由度は平面の法線まわりの姿勢(平面上の向き)を表わす。移動体が走行する平面の推定方法については後述する。移動体が走行する平面の情報は平面情報取得部317に保存されているものとする。
走行距離算出部314は、6自由度推定部312が推定するカメラの位置と前回計測された位置との差を使って移動体の走行距離を算出する。
制御部315は、変換部313が変換した位置姿勢をもとに移動体の制御を行う。具体的には、制御部315は、あらかじめ設定した移動体の目標位置姿勢(3自由度)と、変換部312が出力する3自由度の位置姿勢の差をもとに経路計算を行い、計算された経路に従うようにアクチュエータ35にモータの回転速度などの指示を送る。移動体の位置姿勢が目標位置姿勢と略一致した場合には移動体を停止し、上位管理システム16から次の目標位置姿勢が送られてくるのを待つ。なお、経路計算はA*アルゴリズムやRRT(Rapidly exploring random tree)といったアルゴリズムを用いてもよいし、Q学習やDQNなどの機械学習による方法を用いてもよい。
地図情報取得部316は、記憶部38より移動体が走行する環境の3自由度の地図情報を取得する。また、予め設定された移動体の3自由度の目標位置姿勢を取得する。
平面情報取得部317は、移動体を運用時と同じ基準となる平面上を走行させることにより平面推定用のデータの取得を行う。平面推定用のデータは、移動体が走行した時の複数(N点)の位置における位置姿勢データである。位置姿勢データは、6自由度位置姿勢推定によって推定される画像センサ312の6自由度位置姿勢である。基準面よりΘだけ傾いた傾斜面を走行する場合でも、3自由度の位置及び姿勢を正しく推定できるように、6自由度の位置及び姿勢を撮像装置によって撮像された画像を基に推定する。
図11に本発明を移動体の移動制御に適用した場合の処理手順のフローチャートを示す。以下の説明では、各工程(ステップ)について先頭にSを付けて表記することで、工程(ステップ)の表記を省略する。ただし、情報処理装置31はこのフローチャートで説明するすべてのステップを必ずしも行わなくても良い。
S3010では、平面情報取得部317が、事前準備として移動体が走行する平面の推定を行う。推定される平面を用いることで、6自由度推定部312によって推定される6自由度位置姿勢を平面上の3自由度位置姿勢に変換することが可能になる。移動体が走行する平面の推定は、移動体を平面上に走行させたときに推定される位置に平面当てはめを行うことにより推定する。移動体が走行する平面の推定方法の詳細については後述する。
S3020では、地図情報取得部316は、上位管理システム16から移動体の目標位置姿勢を取得する。本実施形態では、移動体の目標位置姿勢は平面上における3自由度の位置姿勢であるとする。
S3030では、6自由度推定部312は、少なくとも移動体の周囲を撮像した画像に基づいて、撮像装置の6自由度の位置及び姿勢を示す第1情報を推定する。具体的には、6自由度推定部312は、ステレオカメラによって撮影された画像情報をもとにカメラの6自由度の位置姿勢推定を行う。位置姿勢推定の際には地図情報取得部316によって予め取得された地図情報を利用する。カメラの6自由度の位置姿勢推定には、前述のMur-Artalらの手法を用いる。地図は生成済みであるため、地図情報は更新せずカメラの位置姿勢のみを画像情報から推定する。
S3045では、変換部313が、S3030で推定された6自由度の位置姿勢を、S3010で推定された移動体が走行する平面パラメータの推定結果に基づいて変換することで、移動体の3自由度の位置姿勢を決定する。また前述の画像センサ32の移動体における取付け位置に基づいて、カメラの位置姿勢を移動体の位置姿勢に変換する。
S3060では、S3045で変換した移動体の位置姿勢と、S3020で取得した移動体の目標位置姿勢を比較し、移動体が目標位置姿勢に到達したか判定する。本実施形態では、現在の位置と目標位置との差、現在の姿勢と目標姿勢との差のそれぞれに閾値を設け、位置の差及び姿勢の差の双方が該当する閾値を下回った場合に目標位置に到達したと判定する。本実施形態では、現在の位置と目標位置との差、現在の姿勢と目標姿勢との差のそれぞれに閾値を設け、位置の差及び姿勢の差の双方が該当する閾値を下回った場合に目標位置に到達したと判定する。目標位置に到達した場合は、S3020に戻り、新たな目標位置姿勢を上位管理システムから受け取る。
S3070では、制御部315は、S3045で変換された移動体の位置姿勢と上位管理システム16から送信された移動体の目標位置姿勢の差をもとに経路計算を行い、計算された経路に従うように移動体のアクチュエータ35を制御する。また、走行距離算出部314は、6自由度推定部313が推定するカメラの位置をもとに移動体の走行距離Dを算出する。具体的には、移動体の運行を始める際に走行距離Dをゼロに設定しておき、本ステップにおいて前回推定時の位置との今回推定された位置の差dをもとに、走行距離DをD←D+dのように更新する。
S3080では、制御部315は、移動制御の終了判定を行う。上位管理システム16から終了命令が送られた場合には移動制御を終了する。さもなければS3030に戻り、移動制御を継続する。
図5はS3010における移動体が走行する平面の推定方法の処理手順を示すフローチャートである。S1100では、平面情報取得部317が、移動体を運用時と同じ平面上を走行させることにより平面推定用のデータの取得を行う。平面推定用のデータは、移動体が走行した時の複数(N点)の位置における位置姿勢データである。位置姿勢データは、6自由度位置姿勢推定によって推定される画像センサ32の6自由度位置姿勢である。ここでi番目(1≦i≦N)の位置姿勢データにおけるカメラの6自由度位置姿勢を(Xvi,Yvi,Zvi,Wxvi,Wyvi,Wzvi)と表す。Xvi,Yvi,Zviは3次元空間におけるカメラの3次元位置、Wxvi,Wyvi,Wzviは3次元の姿勢を表わす。本実施形態では、3次元ベクトル(Wxvi,Wyvi,Wzvi)のノルムを回転角、方向を回転軸とする姿勢表現を用いる。また、Wxvi,Wyvi,Wzviで表される姿勢の3×3回転行列をRvi、3次元ベクトル(Xvi,Yvi,Zvi)tをtviと表す。平面推定用データを取得する際は、移動体の移動軌跡から平面パラメータを推定できるように、直線的な軌跡ではなく、例えば移動体の軌跡が閉曲線を描くように移動体を移動させる。なお、部分的な坂道や移動体の振動や床面の凹凸などによる平面からのずれは平面当てはめにより吸収できるものとする。
S1110では、N個の3自由度の位置データ(Xvi,Yvi,Zvi)tに対して平面当てはめを行う。平面推定用データ取得の際に移動体が走行した平面のパラメータ(法線ベクトルnv=(nvx,nvy,nvz)t、通過位置cv=(cvx,cvy,cvz)t)を推定する。法線ベクトルnvは単位ベクトルであるとする。通過位置cvは(Xvi,Yvi,Zvi)tの重心を算出することにより求める。法線ベクトルnvは、N個の3次元ベクトル(Xvi-cvx,Yvi-cvy,Zvi-cvz)tの共分散行列を固有値分解し、最小固有値に対応する固有ベクトルとして求める。推定した平面パラメータは、平面情報取得部317に保存しておく。
次にS3045における6自由度の位置姿勢を3自由度の位置姿勢への変換方法の処理手順について説明する。
S3010で推定された平面上に6自由度位置姿勢(Xv,Yv,Zv,Wxv,Wyv,Wzv)を射影し、3自由度の位置姿勢(xv,yv,θv)tに変換する(なお、Wxv,Wyv,Wzvで表される姿勢の3×3回転行列をRvとする)。具体的には、平面の通過位置cvを原点、平面の法線ベクトルnvをZ軸とする新しい3次元の座標系(以下、平面座標系)を定義し、3次元世界座標系における6自由度位置姿勢を平面座標系に変換する。定義から、3次元世界座標系において、平面座標系の原点(0,0,0)tがcvt、Z軸(0,0,1)tがnvとなる。このことから、平面座標系における3次元座標Xp(=(Xp,Yp,Zp)は次式のように3次元世界座標系における3次元座標Xv(=(Xv,Yv,Zv)に変換される。
Xv=RpvXp+cv
ここで、RpvはZ軸(0,0,1)tを平面の法線ベクトルnvに変換する3×3回転行列である。Rpvは、回転軸を(0,0,1)tとnvの外積、回転角を(0,0,1)tとnvの内積の逆余弦(arccos)として計算する。よって、3次元世界座標系における3次元座標Xvは次式のように平面座標系における3次元座標Xpに変換される。
Xp=Rpv-1(Xv-cv)
Xvとしてtvを入力したときのXpを算出する。3自由度の位置姿勢のうちxv,yvは、3次元座標XpのXp成分、Yp成分に該当する。θvは画像センサの光軸を平面に射影したベクトルの方向である。本実施形態ではステレオカメラの左側のカメラの光軸を画像センサの光軸とする。画像センサに規定されるカメラ座標系における画像センサの光軸を表わす3次元ベクトルをvcとすると、平面座標系における画像センサの光軸voは次式のように表わされる。
vo=Rpv-1Rvvc
前述したように、本実施形態ではステレオカメラの光軸が水平面よりやや上方を向くように無人搬送車に取り付けるため、光軸voを平面座標系のXY平面に射影してθvを算出する。平面座標系のXY平面上に射影された光軸vo’は、次式のように算出される。
vo’=vo-(vo・(0,0,1)t)vo
本実施形態では、平面座標系のX軸に対するvo’の角度をθvとする。
以上述べたように、本実施形態では、画像情報によって推定される6自由度の位置姿勢をもとに移動体の走行距離を算出する。これによって、移動体が走行する床面上に坂道があっても安定的に走行距離の算出ができる。
(変形例)
前述の実施形態では、画像センサとしてステレオカメラを利用していた。しかしながら画像センサはこれに限るものではなく、位置姿勢を推定するための画像情報が得られるカメラであればいかなるカメラであってもよい。例えば、単眼カメラであってもよいし、RGB画像と距離画像が取得できるRGBDカメラであってもよい。また、画像はモノクロである必要はなく、RGB画像などのカラー画像であってもよい。
本実施形態では、移動体として工場や倉庫の物流を行うAGVを想定したいたが、それ以外のロボットでもよい。例えば、部屋を清掃する掃除機ロボットにも適用可能である。
前述の実施形態では、入力部はカメラからの画像情報を入力していた。しかしながら、入力部を介して入力するのは画像情報に限るものではない。例えばカメラに据え付けられた慣性センサ(加速度センサ、角速度センサ)や姿勢センサからのセンサ計測値を入力してもよい。
前述の実施形態では、画像上で検出される特徴点の再投影誤差を最小化する方法を用いてカメラの位置姿勢を推定していた。しかしながらカメラの位置姿勢推定方法はこれに限るものではない。例えば、Engelらが開示している方法のように、輝度値の差を最小化する方法であってもよい。(J.Engel,他,“LSD-SLAM:Large-Scale Direct Monocular SLAM,”2014.)。また、画像だけでなく、加速度センサや角速度センサといった慣性センサとのハイブリッド手法であってもよい。さらには、ニューラルネットワーク(学習済みモデル)を使った位置姿勢推定方法であってもよい。撮像装置によって撮像された前記移動体の周囲を写した画像から移動体の3自由度の位置及び姿勢を出力する学習済みモデルを予め準備してもよい。学習済みモデルは画像に対して正しい距離の計測値を正解として学習させる。他には例えば、Tatenoらが開示している方法のように、CNN(Convolutional Neural Network)により推定した距離情報をもとに位置姿勢推定を行ってもよい。(K.Tateno,他,“CNN-SLAM:Real-time dense monocular SLAM with learned depth prediction,”,2017.)。
前述の実施形態では、移動体が走行する平面を走行軌跡に対する平面当てはめにより求めていた。しかしながら、移動体が走行する平面を求める方法はこれに限るものではない。例えば、シーン中に配置した2次元マーカを利用してもよい。(例えば、加藤、M.Billinghurst、浅野、橘、“マーカ追跡に基づく拡張現実感システムとそのキャリブレーション”,1999.に開示されている2次元マーカ)。具体的には、2次元マーカを移動体の走行する平面上に配置してマーカの座標系を平面と一致させ、同一地点におけるマーカに対するカメラの位置姿勢と6自由度推定部によるカメラの位置姿勢の関係からマーカの座標系を基準とした位置姿勢に変換してもよい。また2次元マーカを移動体の走行する平面に対して垂直に配置してもよい。さらには、平面が水平面である場合には、移動体に加速度センサを設置し、加速度センサによって計測される重力軸方向を平面の法線ベクトルとしてもよい。
実施形態では、距離情報に基づく位置姿勢推定方法としてパーティクルフィルタを利用するGrisettiらの手法を利用していた。しかしながら距離情報に基づく位置姿勢推定方法はこれに限るものではなく、例えばカルマンフィルタを利用する手法であってもよい。またパーティクルフィルタやカルマンフィルタなどの時系列フィルタを使う必要は必ずしもなく、ICPアルゴリズムによってフレームごとに位置姿勢を推定してもよい。(Y.Chen,G.Medioni,“Object modelling by registration of multiple range images,”Image and Vision Computing,1992.)。
実施形態では、画像情報を使って推定した位置姿勢と距離情報を使って推定した位置姿勢から制御部15に出力する位置姿勢を決定する際、画像情報を使った位置姿勢推定の失敗したときに距離情報を使って推定した位置姿勢を決定していた。しかしながら、位置姿勢の決定方法はこれに限るものではない。例えば、距離情報を使った位置姿勢推定が失敗したら画像情報を使って推定した位置姿勢を決定してもよい。また、画像情報/距離情報を使って推定される位置姿勢を共通の尺度で評価し、その尺度に基づいて位置姿勢を決定してもよい。例えば、立野らの方法に開示されるように、誤差の確率分布がわかれば推定される位置姿勢の尤度を計算することができる。(立野,小竹,内山、“ビンピッキングのための距離・濃淡画像を最ゆうに統合する高精度高安定なモデルフィッティング手法”,電子情報通信学会論文誌,vol.J94-D,no.8,pp.1410-1422,2011.)。そこで、画像上の特徴点の検出誤差の分布や距離の計測誤差の分布を予め求めておき、画像情報/距離情報を使って推定されるそれぞれの位置姿勢の尤度を算出・比較することで位置姿勢を決定することも可能である。
前述の実施形態では、6自由度の位置姿勢を用いて走行距離の算出や移動体の傾き検出を行っていた。しかしながら、6自由度の位置姿勢の利用方法はこれに限るものではない。例えば、移動体が略平面上を走行するという事前知識を用いて、カメラの位置姿勢推定の失敗を判定してもよい。例えば、推定されるカメラ位置が平面上になければカメラ位置姿勢推定に失敗していると判定してもよい。また、失敗判定の対象はカメラの位置姿勢推定に限るものではない。例えば、前述のMur-Artalらの手法は、カメラの位置姿勢推定とシーンの地図情報の生成を同時に行う手法である。そのため、推定されるカメラの位置姿勢を移動体が略平面上を走行するという事前知識を利用して、地図情報の生成の失敗判定を行ってもよい。
前述の実施形態では、画像情報を用いて6自由度の位置姿勢の推定を行っていた。しかしながら、6自由度の位置姿勢推定の際に利用するのは画像情報に限るものではなく、6自由度の位置姿勢を推定できる情報であれば他の情報であってもよい。例えば、デプスカメラや3D LiDARといった距離センサから得られる距離情報を用いて6自由度の位置姿勢の推定を行ってもよい。また、画像情報と距離情報を併用して6自由度の位置姿勢の推定を行ってもよい。さらには、加速度センサや角速度センサなどの慣性センサからの情報を併用してもよい。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、データ通信用のネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。また、そのプログラムをコンピュータが読み取り可能な記録媒体に記録して提供してもよい。
1 移動体
11 情報処理装置
12 画像センサ
13 距離センサ
14 接触センサ
15 アクチュエータ
17 オドメーター
111 入力部
112 6自由度推定部
113 変換部
115 制御部
116 地図情報取得部
117 平面情報取得部

Claims (18)

  1. 複数の位置及び姿勢を計測する機能を搭載した移動体の位置及び姿勢を決定する情報処理装置であって、
    前記移動体の6自由度の位置及び姿勢を示す第1情報を取得する第1取得手段と、
    前記移動体の3自由度の位置及び姿勢を示す第2情報を取得する第2取得手段と、
    前記第1情報を用いて、3自由度の位置及び姿勢を示す第3情報を出力する出力手段と、
    前記移動体が走行する位置での高さ方向値から得られる、前記移動体の傾きが所定の値より小さい場合は前記第2情報を、前記移動体の傾きが所定の値より大きい場合は前記第3情報を、それぞれ用いて前記移動体の位置及び姿勢を決定する決定手段とを有することを特徴とする情報処理装置。
  2. 前記第1取得手段は、少なくとも前記移動体の周辺撮像装置が撮像した画像に基づいて、前記第1情報を取得することを特徴とする請求項1に記載の情報処理装置。
  3. 前記第2取得手段は、前記移動体が走行する環境を示す2次元の地図情報と、前記移動体が走行する環境における物体と該移動体との距離を計測した距離情報とに基づいて、前記第2情報を取得することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記決定手段によって決定された前記移動体の3自由度の位置及び姿勢と、前記移動体が走行する環境を表した地図情報とに基づいて、前記地図情報において示される目標位置に前記移動体を移動させる制御手段と、を更に有することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  5. 前記決定手段は、前記移動体の傾きが前記所定の値より小さい場合は、前記第2情報に基づいて前記移動体の3自由度の位置及び姿勢を決定し、前記移動体の傾きが前記所定の値より大きい場合、前記第3情報に基づいて前記移動体の3自由度の位置及び姿勢を決定することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  6. 前記移動体の傾きは前記第1情報に基づいて得られることを特徴とする請求項に記載の情報処理装置。
  7. 前記移動体に搭載された重力センサに基づいて、前記移動体の傾きが得られることを特徴とする請求項に記載の情報処理装置。
  8. 前記第1取得手段は、前記移動体に搭載された撮像装置によって撮像された前記移動体の周辺を写した画像を入力し、前記移動体の3自由度の位置及び姿勢を出力する学習済みモデルに基づいて前記移動体の3自由度の位置及び姿勢を取得することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  9. 前記第1情報に基づいて、前記移動体の傾きが検出された場合にユーザに通知を出力する出力手段を更に有することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  10. 前記決定手段は、前記移動体傾きが所定の値より小さい場合は、前記第2情報と第3情報とに基づいて前記移動体の3自由度の位置及び姿勢を決定することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  11. 前記移動体の3自由度の位置及び姿勢は、2自由度の位置と1自由度の姿勢であることを特徴とする請求項1乃至10のいずれか1項に記載の情報処理装置。
  12. 前記移動体の6自由度の位置及び姿勢は、3自由度の位置と3自由度の姿勢であることを特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。
  13. 前記決定手段は、前記移動体の傾きが所定の値より大きい状態が所定の時間より長く継続した場合は、前記第3情報を用いて前記移動体の3自由度の位置及び姿勢を決定することを特徴とする請求項1乃至12のいずれか1項に記載の情報処理装置。
  14. 前記決定手段は、前記移動体の傾きが所定の値より大きい状態から小さくなり、かつ該移動体の傾きが小さい状態が所定の時間より長く継続した場合は、前記第3情報から前記第2情報を用いた前記移動体の位置及び姿勢を決定するように変更することを特徴とする請求項1乃至13のいずれか1項に記載の情報処理装置。
  15. 撮像装置を搭載した移動体の位置及び姿勢を推定する情報処理装置であって、
    少なくとも前記移動体の周辺を撮像した画像に基づいて、前記撮像装置の6自由度の位置及び姿勢を示す第1情報を推定する6自由度推定手段と、
    前記移動体が走行する位置での高さ方向の値から得られる、前記移動体と基準となる面との成す傾きが所定の値より大きい場合は、前記第1情報に基づいて前記移動体の3自由度の位置及び姿勢を決定し、前記移動体と基準となる面との成す傾きが所定の値より小さい場合は、前記移動体が走行する環境における物体と該移動体との距離を計測した距離情報に基づいて前記移動体の3自由度の位置及び姿勢を示す第2情報に基づいて前記移動体の3自由度の位置及び姿勢を決定する決定手段と、を有することを特徴とする情報処理装置。
  16. コンピュータを、請求項1乃至15のいずれか1項に記載の情報処理装置が有する各手段として機能させるためのプログラム。
  17. 撮像装置を搭載した移動体の位置及び姿勢を推定する情報処理方法であって、
    前記撮像装置の6自由度の位置及び姿勢を示す第1情報を推定する6自由度推定ステップと、
    前記移動体が走行する位置での高さ方向の値から得られる、前記移動体と基準となる面との成す傾きが所定の値より大きい場合は、前記第1情報に基づいて前記移動体の3自由度の位置及び姿勢を決定し、前記移動体と基準となる面との成す傾きが所定の値より小さい場合は、前記移動体の3自由度の位置及び姿勢を示す第2情報に基づいて前記移動体の3自由度の位置及び姿勢を決定する決定ステップと、有することを特徴とする情報処理方法。
  18. 複数の位置及び姿勢を計測する機能を搭載した移動体の位置及び姿勢を決定する情報処理方法であって、
    前記移動体の6自由度の位置及び姿勢を示す第1情報を取得する第1取得ステップと、
    前記移動体の3自由度の位置及び姿勢を示す第2情報を取得する第2取得ステップと、
    前記第1情報を用いて、3自由度の位置及び姿勢を示す第3情報を出力する出力ステップと、
    前記移動体が走行する位置での高さ方向の値から得られる、前記移動体の傾きが所定の値より小さい場合は前記第2情報を、前記移動体の傾きが所定の値より大きい場合は前記第3情報を、それぞれ用いて前記移動体の位置及び姿勢を決定する決定ステップと、を有することを特徴とする情報処理方法。
JP2019141358A 2019-07-31 2019-07-31 情報処理装置、情報処理方法及びプログラム Active JP7358108B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019141358A JP7358108B2 (ja) 2019-07-31 2019-07-31 情報処理装置、情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019141358A JP7358108B2 (ja) 2019-07-31 2019-07-31 情報処理装置、情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2021026302A JP2021026302A (ja) 2021-02-22
JP7358108B2 true JP7358108B2 (ja) 2023-10-10

Family

ID=74664690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019141358A Active JP7358108B2 (ja) 2019-07-31 2019-07-31 情報処理装置、情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP7358108B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102542550B1 (ko) * 2021-12-07 2023-06-13 주식회사 케이스랩 차량 자세 추정 시스템 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5173628B2 (ja) 2008-06-30 2013-04-03 電気化学工業株式会社 積層シート
JP2017215199A (ja) 2016-05-31 2017-12-07 株式会社デンソー 位置推定装置
WO2018020589A1 (ja) 2016-07-26 2018-02-01 日産自動車株式会社 自己位置推定方法及び自己位置推定装置
JP2018101346A (ja) 2016-12-21 2018-06-28 株式会社デンソー 緊急通報装置
JP2019125116A (ja) 2018-01-15 2019-07-25 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6049914B2 (ja) * 1981-03-27 1985-11-05 日産自動車株式会社 車両用走行誘導装置
JPH05173628A (ja) * 1991-12-25 1993-07-13 Ishikawajima Shibaura Mach Co Ltd 無人走行車の視覚装置
JP2004034272A (ja) * 2002-07-08 2004-02-05 Mitsubishi Heavy Ind Ltd 移動体の自己位置同定装置
JP5235114B2 (ja) * 2008-08-07 2013-07-10 矢崎エナジーシステム株式会社 坂道検出方法及び坂道検出装置
JP6561616B2 (ja) * 2015-06-19 2019-08-21 日本精機株式会社 車載ヘッドアップディスプレイ装置及び車載表示システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5173628B2 (ja) 2008-06-30 2013-04-03 電気化学工業株式会社 積層シート
JP2017215199A (ja) 2016-05-31 2017-12-07 株式会社デンソー 位置推定装置
WO2018020589A1 (ja) 2016-07-26 2018-02-01 日産自動車株式会社 自己位置推定方法及び自己位置推定装置
JP2018101346A (ja) 2016-12-21 2018-06-28 株式会社デンソー 緊急通報装置
JP2019125116A (ja) 2018-01-15 2019-07-25 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム

Also Published As

Publication number Publication date
JP2021026302A (ja) 2021-02-22

Similar Documents

Publication Publication Date Title
JP3994950B2 (ja) 環境認識装置及び方法、経路計画装置及び方法、並びにロボット装置
US11836974B2 (en) Detecting boxes
US7769491B2 (en) Obstacle avoiding apparatus, obstacle avoiding method, obstacle avoiding program, and mobile robot apparatus
JP4929506B2 (ja) 脚式移動ロボット
US20230247015A1 (en) Pixelwise Filterable Depth Maps for Robots
Kuramachi et al. G-ICP SLAM: An odometry-free 3D mapping system with robust 6DoF pose estimation
US11331799B1 (en) Determining final grasp pose of robot end effector after traversing to pre-grasp pose
CN113012219A (zh) 信息处理装置、信息处理方法及计算机可读介质
US11769269B2 (en) Fusing multiple depth sensing modalities
Sun et al. Autonomous state estimation and mapping in unknown environments with onboard stereo camera for micro aerial vehicles
Jun et al. Autonomous driving system design for formula student driverless racecar
WO2022115215A1 (en) Systems and methods for monocular based object detection
WO2022238189A1 (en) Method of acquiring sensor data on a construction site, construction robot system, computer program product, and training method
JP7358108B2 (ja) 情報処理装置、情報処理方法及びプログラム
US11467592B2 (en) Route determination method
US11440196B1 (en) Object association using machine learning models
Kang et al. Adaptive trajectory tracking of wheeled mobile robots based on a fish-eye camera
US11915523B2 (en) Engagement detection and attention estimation for human-robot interaction
Yuan et al. Visual steering of UAV in unknown environments
Sasaki et al. Construction of an Environmental Map including Road Surface Classification Based on a Coaxial Two-Wheeled Robot
US11865724B2 (en) Movement control method, mobile machine and non-transitory computer readable storage medium
Poomarin et al. Automatic docking with obstacle avoidance of a differential wheel mobile robot
US11618167B2 (en) Pixelwise filterable depth maps for robots
US11372475B2 (en) Information processing apparatus, information processing method, and floor modeling system
JP7223587B2 (ja) 物体運動推定方法及び物体運動推定装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230516

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230713

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230927

R151 Written notification of patent or utility model registration

Ref document number: 7358108

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151