JP2021026302A - Information processing apparatus, information processing method, and program - Google Patents
Information processing apparatus, information processing method, and program Download PDFInfo
- Publication number
- JP2021026302A JP2021026302A JP2019141358A JP2019141358A JP2021026302A JP 2021026302 A JP2021026302 A JP 2021026302A JP 2019141358 A JP2019141358 A JP 2019141358A JP 2019141358 A JP2019141358 A JP 2019141358A JP 2021026302 A JP2021026302 A JP 2021026302A
- Authority
- JP
- Japan
- Prior art keywords
- moving body
- information
- freedom
- posture
- degrees
- 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.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 73
- 238000003672 processing method Methods 0.000 title claims 3
- 238000003384 imaging method Methods 0.000 claims abstract description 10
- 230000005484 gravity Effects 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 8
- 230000036544 posture Effects 0.000 description 116
- 238000000034 method Methods 0.000 description 62
- 239000013598 vector Substances 0.000 description 25
- 230000003287 optical effect Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 18
- 238000005259 measurement Methods 0.000 description 17
- 238000006243 chemical reaction Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 239000003550 marker Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 239000002245 particle Substances 0.000 description 4
- 230000009194 climbing Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
Images
Landscapes
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
Description
本発明は、移動体の自己位置姿勢推定に関する。 The present invention relates to self-positioning and posture estimation of a moving body.
工場や物流倉庫で利用される無人搬送車(移動体(Automated Guided Vehicle))などの車輪ロボットは、床や道路などの平面上を走行することが一般的である。このような移動体や車輪ロボット(これらを総称して移動体と呼ぶ)の制御に必要な位置姿勢の計測には2Dのレーザスキャナ(2D LiDAR(Light Detection and Ranging))が利用されることが多い。2D LiDARは走行時に床面に平行となるように移動体上に設置され、移動体が走行する平面(床面)上の位置(2自由度)と姿勢(1自由度)の計3自由度の位置姿勢が計測される。また、3自由度の地図情報に移動体の目標位置を設定することによって、移動体を目標位置に向かって移動させることができる。 Wheel robots such as automatic guided vehicles (automated guided vehicles) used in factories and distribution warehouses generally travel on a flat surface such as a floor or a road. A 2D laser scanner (2D LiDAR (Light Detection and Ranking)) may be used to measure the position and orientation required to control such moving objects and wheel robots (collectively referred to as moving objects). There are many. The 2D LiDAR is installed on the moving body so as to be parallel to the floor surface during traveling, and the position (2 degrees of freedom) and the posture (1 degree of freedom) on the plane (floor surface) on which the moving body travels, a total of 3 degrees of freedom. Position and posture are measured. Further, by setting the target position of the moving body in the map information of three degrees of freedom, the moving body can be moved toward the target position.
特許文献1では、所定の面における移動体と環境に存在する物体との距離計測を行う距離センサによる計測結果を使って移動体の位置推定を行う。更に、環境内に設置されたランドマークを撮影可能なエリアに移動体がいる場合は、ステレオカメラで撮像した画像からランドマークを認識して移動体の位置推定も行う。しかしながら、特許文献1では、坂道等で移動体が傾く場合に、距離センサによる位置推定に移動体の傾きが考慮されないため、移動体の位置及び姿勢を間違って推定する可能性がある。本発明は上記課題に鑑みてなされたものであり、移動体の位置及び姿勢を安定的に得ることを目的とする。
In
上記課題を解決する本発明にかかる情報処理装置は、撮像装置を搭載した移動体の位置及び姿勢を推定する情報処理装置であって、前記撮像装置の6自由度の位置及び姿勢を示す第1情報を推定する6自由度推定手段と、前記移動体と基準となる面との成す傾きが所定の値より大きい場合は、前記第1情報に基づいて前記移動体の3自由度の位置及び姿勢を決定し、前記移動体と基準となる面との成す傾きが所定の値より小さい場合は、前記移動体の3自由度の位置及び姿勢を示す第2情報に基づいて前記移動体の3自由度の位置及び姿勢を決定する決定手段と、有することを特徴とする。 The information processing device according to the present invention that solves the above problems is an information processing device that estimates the position and posture of a moving body equipped with an image pickup device, and is the first that indicates the position and posture of the image pickup device with six degrees of freedom. When the inclination formed by the 6-DOF estimation means for estimating information and the moving body and the reference surface is larger than a predetermined value, the position and posture of the moving body with 3 degrees of freedom based on the first information. If the inclination formed by the moving body and the reference surface is smaller than a predetermined value, the moving body has three freedoms based on the second information indicating the position and posture of the moving body with three degrees of freedom. It is characterized by having a determination means for determining the position and posture of the degree.
本発明により、移動体の位置及び姿勢を安定的に取得できる。 According to the present invention, the position and posture of the moving body can be stably acquired.
以下、図面を参照しながら実施形態を説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。 Hereinafter, embodiments will be described with reference to the drawings. The configuration shown in the following embodiments is only an example, and the present invention is not limited to the illustrated configuration.
<実施形態1>
本実施形態では、移動体の移動制御に本発明を適用した場合について説明する。工場や倉庫で荷物を運搬するロボット等の一般的な移動体は、画像センサや距離センサを用いて自己位置姿勢推定をしながら自動運転する。一般的な移動体は水平な面を走行することを想定されているが、走行環境に存在する坂道や段差、また自身に搭載された荷物によって、予め地図情報等で設定された基準となる水平面に対して移動体自身が傾いてしまうことがある。このような場合、平面を走査する2次元の距離センサの計測値から推定された自己位置姿勢推定の結果は、地図情報における絶対位置とズレて推定される可能性がある。
<
In the present embodiment, a case where the present invention is applied to the movement control of a moving body will be described. A general moving object such as a robot that transports luggage in a factory or a warehouse automatically operates while estimating its own position and orientation using an image sensor or a distance sensor. A general moving object is supposed to run on a horizontal surface, but it is a horizontal plane that is set in advance by map information etc. depending on the slopes and steps existing in the driving environment and the luggage loaded on itself. The moving body itself may tilt. In such a case, the result of self-position / orientation estimation estimated from the measured value of the two-dimensional distance sensor that scans the plane may be estimated to be different from the absolute position in the map information.
本実施形態では、移動体は、部分的に坂道が存在する平面(床面)を走行するものとし、移動体に搭載された画像センサ(カメラ)が撮影する画像情報をもとに推定される6自由度の位置姿勢をもとに移動体の走行距離の算出を行う。図1は、移動体1が基準となる面S1に対して角度Θだけ傾いている面S2を走行する状況を模した図である。このとき、移動体が点P1から特定の時間tに進んだ正しい走行距離を点P1と点P2を結んだD1であるとする。点P1と水平面上の点P2’を結んだ距離D2は3自由度の(2次元を走査する距離センサによる)位置姿勢計測結果に基づいて算出される走行距離である。3自由度の位置及び姿勢の推定においては、移動体1は基準となる面S1を走行するという前提で位置姿勢が推定されるためD1とD2は一致しない。D1とD2が一致しないと、例えば、AGVのバッテリー充電やメンテナンス、部品交換のタイミングを走行距離に基づいて管理する際に、最適なタイミングでメンテナンスを行えない。
In the present embodiment, the moving body is assumed to travel on a plane (floor surface) on which a slope partially exists, and is estimated based on image information taken by an image sensor (camera) mounted on the moving body. The mileage of the moving body is calculated based on the position and orientation of 6 degrees of freedom. FIG. 1 is a diagram simulating a situation in which the
本実施形態では、D1とD2の差が大きくならないように、移動体が斜面を走行する場合は、6自由度の位置(X、Y、Z)及び姿勢(Roll、Pitch、Yaw)の計測結果を変換することによって移動体の移動制御に必要な3自由度の移動体の位置及び姿勢を推定する。これによって、移動体の位置及び姿勢を取得できる。 In the present embodiment, when the moving body travels on a slope so that the difference between D1 and D2 does not become large, the measurement results of the positions (X, Y, Z) and the postures (Roll, Pitch, Yaw) with 6 degrees of freedom. The position and orientation of the moving body with three degrees of freedom required for the movement control of the moving body are estimated by converting. As a result, the position and posture of the moving body can be acquired.
(構成説明)図2は、本実施形態における移動体の移動制御の様子を説明する図である。本実施形態においては、工場や倉庫内の物流を担うAGV(Automated Guided Vihecle)の移動制御を具体例として説明する。移動体は基本的に人間の操作を介することなく一定の指示を与えることで自己位置を自律的に移動可能な可動式のロボットであればよい。 (Explanation of Configuration) FIG. 2 is a diagram illustrating a state of movement control of a moving body in the present embodiment. In the present embodiment, the movement control of the AGV (Automated Guided Vehicle), which is responsible for the physical distribution in the factory or the warehouse, will be described as a specific example. Basically, the moving body may be a movable robot that can autonomously move its own position by giving a certain instruction without human operation.
移動体1に搭載された情報処理装置11は、例えばステレオカメラで移動体の周囲を撮像した画像に基づいて移動体の位置及び姿勢を推定し、その推定結果に基づいて移動体を移動制御する。情報処理装置11は、画像センサ12、距離センサ13、接触センサ14、アクチュエータ15、オドメーター17、記憶部18に接続されている。また移動体1は上位管理システム16との無線通信を行う。
The
図3は、情報処理装置のハードウェア構成例を示す図である。中央処理ユニット(CPU)101は、RAM103をワークメモリとして、ROM102や記憶装置104に格納されたOSやその他プログラムを読みだして実行し、システムバス109に接続された各構成を制御して、各種処理の演算や論理判断などを行う。CPU101が実行する処理には、実施形態の情報処理が含まれる。記憶装置104は、ハードディスクドライブや外部記憶装置などであり、実施形態の情報処理にかかるプログラムや各種データを記憶する。入力部105は、カメラなどの撮像装置、ユーザ指示を入力するためのボタン、キーボード、タッチパネルなどの入力デバイスである。なお、記憶装置104は例えばSATAなどのインタフェイスを介して、入力部105は例えばUSBなどのシリアルバスを介して、それぞれシステムバス109に接続されるが、それらの詳細は省略する。通信I/F106は無線通信で外部の機器と通信を行う。表示部107はディスプレイである。センサ108は画像センサや距離センサである。
FIG. 3 is a diagram showing a hardware configuration example of the information processing device. The central processing unit (CPU) 101 uses the
画像センサ12は具体的にはカメラである。画像センサ12は、移動体の周囲を撮像する撮像装置である。画像センサによって移動体の周囲の環境を撮像し、撮像された計測結果を画像情報として画像情報入力部111に出力する。本実施形態における画像センサは、水平・垂直方向の画角を有するモノクロカメラ2個から構成されるステレオカメラであるとする。ステレオカメラは、光軸が水平面よりやや上方を向くように移動体に取り付ける。ステレオカメラを構成する2台のカメラの内部パラメータ(焦点距離、画像中心、歪みパラメータ)及びカメラ間の外部パラメータ(相対的な位置姿勢)は公知の方法により予め校正されているものとする。本実施形態では、カメラの光学中心を原点、光軸方向をZ軸、画像の水平方向をX軸、画像の垂直方向をY軸とする三次元の座標系をカメラ座標系と規定する。ステレオカメラのカメラ座標系は、左側カメラ(または右側カメラ)のカメラ座標系であるとする。画像センサ12の移動体における取付け位置は設計値により既知であるとする。なお、画像センサの代わりに6自由度の距離計測が可能な距離センサを用いてもよい。具体的には、3D−LiDAR等でもよい。
The
距離センサ13はセンサからのシーンの距離情報を計測する装置である。本実施形態における距離センサは2D LiDARである。2D LiDARは、レーザ光を平面上で走査させることによって距離情報を取得する距離センサである。距離センサ13は、レーザ光を走査させる平面が略水平面となるように移動体に取り付ける。距離センサ13の移動体における取付け位置は設計値により既知であるとする。計測された距離情報は情報処理装置11の距離情報入力部118に出力される。なお、距離センサの代わりに、画像センサで撮像された画像から、2次元の絶対位置を示すマーカを認識する構成でもよい。
The
接触センサ14は安全センサである。接触センサが移動体と他の物体との接触を検知すると移動体は緊急停止するよう制御部115に情報を出力する。
The
アクチュエータ15は、情報処理装置11からの指示や障害物センサ、安全センサの出力をもとにモータを制御して移動体を移動または静止させる。
The
上位管理システム16は、複数の移動体の運行管理を行うシステムである。上位管理システム16は、各移動体の情報処理装置11に目標位置姿勢を送信する。本実施形態では、移動体の目標位置姿勢は平面上における3自由度の位置姿勢であるとする。上位管理システム16と情報処理装置11の間の通信は、WifiやBlueTootth、5Gなどの無線通信により行う。
The upper management system 16 is a system that manages the operation of a plurality of mobile objects. The host management system 16 transmits the target position / orientation to the
オドメーター17は、例えば、移動体の車輪の回転量から走行距離を計測する。
The
記憶部18は、移動体が走行する環境についての地図情報を記憶する。他、移動体の走行距離や移動制御に必要な情報を保持する。なお、図4のように記憶部18は移動体上に搭載されている形以外でもよく、上位管理システム16の内部にあってもよい。
The
(情報処理装置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)である。
(Details of Information Processing Device 11)
FIG. 4 shows a diagram showing a functional configuration example of the information processing device according to the present embodiment. The
画像情報入力部111は、画像センサ12から画像情報を入力し、入力された画像情報を6自由度推定部112に送る。本実施形態における画像センサ12はステレオカメラであるため、画像情報はステレオ画像(左右のカメラが撮影する2枚の画像)である。画像センサ12は、移動体が走行する工場や物流倉庫などの画像情報を撮像する。よって、本実施形態における画像情報とは、移動体に搭載された撮像装置によって移動体の走行する環境を撮像したステレオ画像を指す。
The image
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自由度の位置及び姿勢を推定してもよい。
The 6-
変換部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に保存されているものとする。
The
制御部115は、決定部120が決定した移動体の位置及び姿勢に基づいて移動体を制御する。第2情報または変換部113が変換した3自由度の位置及び姿勢を示す第3情報をもとに移動体の制御を行う。具体的には、制御部115は、あらかじめ設定した移動体の目標位置姿勢(3自由度)と、変換部112が出力する3自由度の位置姿勢の差をもとに経路計算を行い、計算された経路に従うようにアクチュエータ15にモータの回転速度などの指示を送る。移動体の位置姿勢が目標位置姿勢と略一致した場合には移動体を停止し、上位管理システム16から次の目標位置姿勢が送られてくるのを待つ。なお、経路計算はA*アルゴリズムやRRT(Rapidly exploring random tree)といったアルゴリズムを用いてもよいし、Q学習やDQNなどの機械学習による方法を用いてもよい。
The
地図情報取得部116は、記憶部18より移動体が走行する環境の3自由度の地図情報を取得する。また、予め設定された移動体の3自由度の目標位置姿勢を取得する。
The map
平面情報取得部117は、移動体を運用時と同じ基準となる平面上を走行させることにより平面推定用のデータの取得を行う。平面推定用のデータは、移動体が走行した時の複数(N点)の位置における位置姿勢データである。位置姿勢データは、6自由度位置姿勢推定によって推定される画像センサ112の6自由度位置姿勢である。基準面よりΘだけ傾いた傾斜面を走行する場合でも、3自由度の位置及び姿勢を正しく推定できるように、6自由度の位置及び姿勢を撮像装置によって撮像された画像を基に推定する。
The plane
計測部122は、オドメーター17によって計測された移動体の車輪の回転量に基づいて、移動体の走行距離を計測する。計測部122の計測結果に基づいて、決定部120におけて移動体の位置姿勢を決定する。
The measuring
距離情報入力部118は、距離センサ13から移動体とその周囲にある物体との距離を計測した距離情報を入力し、入力された距離情報を3自由度推定部219に送る。前述したように、本実施形態における距離センサは2D LiDARである。2D LiDARは、レーザ光を走査させる平面が略水平面となるように移動体に取り付けられる。これにより距離センサ13は、距離センサ13が取り付けられた高さの水平面における距離情報を取得する。
The distance
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次元座標を示すマーカを環境内に設置し、マーカを画像認識することで移動体の位置を特定する方法でも良い。
The three-degree-of-
決定部120は、移動体の傾きに応じて、第2情報および第3情報の少なくとも1つを選択的に用いることにより、移動体の位置及び姿勢を決定する。つまり、移動体と基準となる面との成す傾きが所定の値より大きい場合は、第1情報に基づいた第3の情報を移動体の3自由度の位置及び姿勢として決定する。決定部120は、移動体と基準となる面との成す傾きが所定の値より小さい、すなわちほぼ水平な面を走行する場合は、第2情報に基づいて移動体の3自由度の位置及び姿勢を決定する。移動体が傾いている場合、例えば斜面を走行する場合は、3自由度の距離の計測結果では重力方向の変位を計測できない。一方で、6自由度で位置姿勢計測が可能な第1情報を用いることで重力方向の変位を含んだ走行距離を推定できる。このように移動体の重力方向の傾きによって計測結果を使い分けることで、安定的に3自由度の位置姿勢推定結果を得ることが出来る。なお、移動体と基準となる面との成す傾きが所定の値より小さい場合は、第2情報に加えて第1情報に基づいて位置姿勢を決定してもよい。その場合は例えば第1情報と第2情報の結果から平均値や中央値を移動体の位置姿勢として決定する。
The
図6に本発明を移動体の移動制御に適用した場合の処理手順のフローチャートを示す。以下の説明では、各工程(ステップ)について先頭にSを付けて表記することで、工程(ステップ)の表記を省略する。ただし、情報処理装置11はこのフローチャートで説明するすべてのステップを必ずしも行わなくても良い。
FIG. 6 shows a flowchart of a processing procedure when the present invention is applied to the movement control of a moving body. In the following description, the notation of the process (step) is omitted by adding S at the beginning of each process (step). However, the
S1010では、平面情報取得部117が、事前準備として移動体が走行する平面の推定を行う。推定される平面を用いることで、6自由度推定部112によって推定される6自由度位置姿勢を平面上の3自由度位置姿勢に変換することが可能になる。移動体が走行する平面の推定は、移動体を平面上に走行させたときに推定される位置に平面当てはめを行うことにより推定する。移動体が走行する平面の推定方法の詳細については後述する。
In S1010, the plane
S1020では、地図情報取得部116は、上位管理システム16から移動体の目標位置姿勢を取得する。本実施形態では、移動体の目標位置姿勢は平面上における3自由度の位置姿勢であるとする。
In S1020, the map
S1030では、6自由度推定部112は、撮像装置が少なくとも移動体の周囲を撮像した画像に基づいて、移動体の6自由度の位置及び姿勢を示す第1情報を推定する。具体的には、6自由度推定部112は、ステレオカメラによって撮影された画像情報をもとにカメラの6自由度の位置姿勢推定を行う。位置姿勢推定の際には地図情報取得部116によって予め取得された地図情報を利用する。カメラの6自由度の位置姿勢推定には、前述のMur−Artalらの手法を用いる。地図は生成済みであるため、地図情報は更新せずカメラの位置姿勢のみを画像情報から推定する。なお、SLAM技術を用いて地図情報を更新しながら位置姿勢を行っても良い。
In S1030, the 6-
S1035では、3自由度推定部119が、移動体が走行する環境における物体と該移動体との距離を計測した距離情報に基づいて移動体の3自由度の位置及び姿勢を示す第2情報を推定する。すなわち、AGVの3自由度の位置姿勢推定を行う。3自由度推定部119は、距離情報入力部117から入力された距離情報を第2地図情報取得部121に保存されているシーンの地図情報と照合することにより距離センサ13の位置姿勢を推定する。推定される距離センサの位置姿勢を(xL,yL,θL)とする。
In S1035, the three-degree-of-
S1040では、決定部120は、第1情報に基づいて、移動体と基準となる面とのなす傾きが所定の値より大きいか否かを判断する。この傾きは、例えば、移動体の位置のZ方向の大きさで判断する。他の値を基準にしてもよい。移動体と基準となる面とが成す傾きが所定の閾値以下である場合、S1045に進み、6自由度推定部112が推定した6自由度のカメラの位置姿勢を、該傾きに基づいて、移動体の制御が可能なように6自由度の位置姿勢を3自由度の位置姿勢に変換する。決定部120が、移動体と基準となる面とが成す傾きが所定の閾値以上であると判断した場合は、3自由度の位置姿勢S1050に進む。変換部113は、撮像装置の位置姿勢推定結果である第1情報に基づいて移動体の6自由度の位置及び姿勢を決定する。
In S1040, the
S1050では、決定部120が、移動体の傾きに応じて第2情報および第3情報の少なくとも1つを選択的に用いることにより、移動体の位置及び姿勢を決定する。S1030で推定した位置姿勢と、S1035で推定した位置姿勢から、最終的に制御部15に出力する位置姿勢を決定する。または、変換部130が、S1030で推定された6自由度の位置姿勢を、S1010で推定された移動体が走行する平面パラメータの推定結果に基づいて変換することで、移動体の3自由度の位置姿勢を決定する。また前述の画像センサ12の移動体における取付け位置に基づいて、カメラの位置姿勢を移動体の位置姿勢に変換する。最終的に制御部115に出力する3自由度の位置姿勢を決定する。
In S1050, the
S1060では、制御部115が、S1050で取得した移動体の位置姿勢と、S1020で取得した移動体の目標位置姿勢を比較し、移動体が目標位置姿勢に到達したか判定する。本実施形態では、現在の位置と目標位置との差、現在の姿勢と目標姿勢との差のそれぞれに閾値(例えば1m)を設け、位置の差及び姿勢の差の双方が該当する閾値を下回った場合に目標位置に到達したと判定する。本実施形態では、現在の位置と目標位置との差、現在の姿勢と目標姿勢との差のそれぞれに閾値を設け、位置の差及び姿勢の差の双方が該当する閾値を下回った場合に目標位置に到達したと判定する。目標位置に到達した場合は、S1020に戻り、新たな目標位置姿勢を上位管理システムから受け取る。
In S1060, the
S1070では、制御部115は、決定部120によって決定された移動体の3自由度の位置及び姿勢と、移動体が走行する環境を3自由度で表した地図情報とに基づいて、前移動体を地図情報において示される目標位置に移動させる。つまり、S1050で決定された移動体の3自由度の位置姿勢推定結果と、上位管理システム16から送信された移動体の目標位置姿勢との差をもとに経路計算を行う。計算された経路に従うように移動体のアクチュエータ15を制御する。
In S1070, the
S1080では、制御部115は、移動制御の終了判定を行う。上位管理システム16から終了命令が送られた場合には移動制御を終了する。さもなければS1030に戻り、移動制御を継続する。
In S1080, the
図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と表す。平面推定用データを取得する際は、移動体の移動軌跡から平面パラメータを推定できるように、直線的な軌跡ではなく、例えば移動体の軌跡が閉曲線を描くように移動体を移動させる。なお、部分的な坂道や移動体の振動や床面の凹凸などによる平面からのずれは平面当てはめにより吸収できるものとする。
FIG. 7 is a flowchart showing a processing procedure of the method of estimating the plane on which the moving body travels in S1010. In S1100, the plane
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に保存しておく。
In S1110, plane fitting is performed on N position data (Xvi, Yvi, Zvi) t having three degrees of freedom. The parameters (normal vector nv = (nvx, nvy, nvz) t, passing position cv = (cvx, cvy, cvz) t) of the plane on which the moving body traveled when acquiring the plane estimation data are estimated. It is assumed that the normal vector nv is a unit vector. The passing position cv is obtained by calculating the center of gravity of (Xvi, Yvi, Zvi) t. The normal vector nv is obtained by eigenvalue-decomposing a covariance matrix of N three-dimensional vectors (Xvi-cvx, Yvi-cvy, Zvi-cvz) t and obtaining it as an eigenvector corresponding to the minimum eigenvalue. The estimated plane parameters are stored in the plane
次にS1045における6自由度の位置姿勢を3自由度の位置姿勢への変換方法の処理手順について説明する。 Next, the processing procedure of the method of converting the position / posture of 6 degrees of freedom into the position / posture of 3 degrees of freedom in S1045 will be described.
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)に変換される。 The 6-DOF position / orientation (Xv, Yv, Zv, Wxv, Wyv, Wzv) is projected on the plane estimated in S1000 and converted into the 3-DOF position / orientation (xv, yv, θv) t (Note that). Rv is a 3 × 3 rotation matrix with postures represented by Wxv, Wyv, and Wzv). Specifically, a new three-dimensional coordinate system (hereinafter referred to as a plane coordinate system) with the plane passing position cv as the origin and the plane normal vector nv as the Z axis is defined, and six degrees of freedom in the three-dimensional world coordinate system. Convert the position / orientation to the plane coordinate system. From the definition, in the three-dimensional world coordinate system, the origin (0,0,0) t of the plane coordinate system is cvt, and the Z axis (0,0,1) t is nv. From this, the three-dimensional coordinate Xp (= (Xp, Yp, Zp) in the plane coordinate system is converted into the three-dimensional coordinate Xv (= (Xv, Yv, Zv) in the three-dimensional world coordinate system as shown in the following equation. ..
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に変換される。
Xv = RpvXp + cv
Here, Rpv is a 3 × 3 rotation matrix that transforms the Z-axis (0,0,1) t into a plane normal vector nv. Rpv is calculated with the rotation axis as the outer product of (0,0,1) t and nv, and the rotation angle as the inverse cosine (arccos) of the inner product of (0,0,1) t and nv. Therefore, the three-dimensional coordinate Xv in the three-dimensional world coordinate system is converted into the three-dimensional coordinate Xp in the plane coordinate system as shown in the following equation.
Xp=Rpv−1(Xv−cv)
Xvとしてtvを入力したときのXpを算出する。3自由度の位置姿勢のうちxv,yvは、3次元座標XpのXp成分、Yp成分に該当する。θvは画像センサの光軸を平面に射影したベクトルの方向である。本実施形態ではステレオカメラの左側のカメラの光軸を画像センサの光軸とする。画像センサに規定されるカメラ座標系における画像センサの光軸を表わす3次元ベクトルをvcとすると、平面座標系における画像センサの光軸voは次式のように表わされる。
Xp = Rpv-1 (Xv-cv)
Calculate Xp when tv is input as Xv. Of the positions and orientations with three degrees of freedom, xv and yv correspond to the Xp component and the Yp component of the three-dimensional coordinates Xp. θv is the direction of the vector that projects the optical axis of the image sensor onto a plane. In the present embodiment, the optical axis of the camera on the left side of the stereo camera is the optical axis of the image sensor. Assuming that the three-dimensional vector representing the optical axis of the image sensor in the camera coordinate system defined by the image sensor is vc, the optical axis vo of the image sensor in the plane coordinate system is expressed by the following equation.
vo=Rpv−1Rvvc
前述したように、本実施形態ではステレオカメラの光軸が水平面よりやや上方を向くように無人搬送車に取り付けるため、光軸voを平面座標系のXY平面に射影してθvを算出する。平面座標系のXY平面上に射影された光軸vo’は、次式のように算出される。
vo = Rpv-1Rvvc
As described above, in the present embodiment, in order to attach the stereo camera to the automatic guided vehicle so that the optical axis of the stereo camera faces slightly upward from the horizontal plane, the optical axis vo is projected onto the XY plane of the plane coordinate system to calculate θv. The optical axis vo'projected on the XY plane of the plane coordinate system is calculated by the following equation.
vo’=vo−(vo・(0,0,1)t)vo
本実施形態では、平面座標系のX軸に対するvo’の角度をθvとする。
vo'= vo- (vo · (0,0,1) t) vo
In the present embodiment, the angle of vo'with respect to the X axis of the plane coordinate system is θv.
情報処理装置11の構成は図4で述べた例に限定しない。例えば、図5に示すような情報処理装置の機能構成例をでもよい。情報処理装置11は、画像情報入力部111、6自由度推定部112、変換部113、地図情報取得部116、平面情報取得部117、計測部122、決定部120を有する。移動体1は、距離情報入力部118、3自由度推定部119、制御部115、第2地図情報取得部221を有する。
The configuration of the
S1040において、決定部120が、移動体に傾きが発生しているか否かを判断するが、毎回必ずしも判断しなくてもよい。例えば、移動体の傾きが頻繁に変わるような凸凹道を走行する際、水平になる度に6自由度から3自由度の推定に変更すると、かえって移動体の位置姿勢推定が不安定になる場合がある。頻繁に推定方法を変更することがないように、移動体に所定の値より大きい傾きが検出された場合は、決定部120は、移動体の傾きが解消されても所定時間(例えば、1分間)が経過するまでは6自由度の計測結果に基づいて、位置姿勢を決定する。つまり、決定部120は、移動体の傾きが所定の値より大きい状態から所定の値より小さくなった場合に、移動体の傾きが所定の値より小さくなった時点から一定時間後に3自由度の位置姿勢計測結果に基づいて移動体の位置姿勢を決定する。または、小さな段差を通過する際は移動体の傾きは一瞬で解消される。そのような場合は6自由度で位置姿勢計測をしなくてもそれほど誤差は発生しないため、6自由度の位置姿勢推定のみに切り替えることをせず、3自由度による位置姿勢推定を継続する。つまり、所定時間より長い時間だけ移動体の傾きが所定の値より大きい状態を保持した場合に、決定部120が6自由度の位置姿勢計測結果に基づいて、移動体の3自由度の位置姿勢を決定する。このように、位置姿勢推定の方法を切り替えた時間または移動体の傾きが保持された時間に応じて決定部120の処理を変更することで、より安定して移動体の位置姿勢を決定できる。
In S1040, the
以上述べたように、本実施形態では、移動体の傾きが所定の値より大きい場合、画像情報によって推定される6自由度の位置姿勢を3自由度の位置姿勢に変換した情報を用いて移動体の位置姿勢を決定する。これによって、移動体が走行する床面上に坂道があっても安定的に位置姿勢を決定できる。 As described above, in the present embodiment, when the inclination of the moving body is larger than a predetermined value, the movement is performed using the information obtained by converting the position / posture of 6 degrees of freedom estimated from the image information into the position / posture of 3 degrees of freedom. Determine the position and posture of the body. As a result, the position and posture can be stably determined even if there is a slope on the floor on which the moving body travels.
<実施形態2>
前述の実施形態では、移動体の傾きが所定の値より大きい場合、画像情報によって推定される6自由度の位置姿勢を3自由度の位置姿勢に変換した情報を用いて移動体の位置姿勢を決定することを可能にした。実施形態2では、移動体は略平面(基準となる面)を走行するものとして、走行時に本来傾くはずのない移動体の傾きを検出する。移動体の傾きは、例えば移動体上の荷物が荷台にバランスよく搭載されていない場合に生じる。この場合、荷崩れが起こる可能性があるため、傾きを検出したらユーザに警告を通知する必要がある。
<
In the above-described embodiment, when the inclination of the moving body is larger than a predetermined value, the position / posture of the moving body is determined by using the information obtained by converting the position / posture of 6 degrees of freedom estimated from the image information into the position / posture of 3 degrees of freedom. Made it possible to decide. In the second embodiment, it is assumed that the moving body travels on a substantially flat surface (reference surface), and the inclination of the moving body that should not originally tilt during traveling is detected. Tilt of the moving body occurs, for example, when the luggage on the moving body is not loaded on the loading platform in a well-balanced manner. In this case, since the load may collapse, it is necessary to notify the user of a warning when the inclination is detected.
図8に、本実施形態における情報処理装置21の機能構成例のブロック図を示す。移動体2に搭載された情報処理装置21は、情報処理装置11と同様に画像センサ12、距離センサ13、接触センサ14、アクチュエータ15、オドメーター17、記憶部18を備え、さらに重力センサ29に接続されている。重力センサ29は、移動体の重力方向の傾きを検知し、3自由度の姿勢を計測する。
FIG. 8 shows a block diagram of a functional configuration example of the
情報処理装置21は、実施形態1の構成に加え、傾き検出部214、出力部221を有する。情報処理装置11と同様に情報処理装置21は、例えばPC、組み込みシステム、PLC(Programmable Logic Controller)である。
The
傾き検出部214は、6自由度推定部212によって推定されるカメラの姿勢に基づいて走行する平面に対する移動体の傾きを検出する。あるいは、加速度センサやジャイロセンサ等の重力センサ29を用いて、移動体の重力方向の傾きを検出してもよい。
The
出力部221は、傾き検出部214が所定の値より大きい移動体の傾きを検出した場合にユーザに警告を発して通知する。出力部221は例えばスピーカーである。または、警告表示を行うディスプレイでもよい。移動体が傾いていることをユーザに知らせることで、移動体の移動制御が失敗する前に安全に対処することができる。
The
図9に本実施形態における移動体の移動制御に適用した場合の処理手順のフローチャートを示す。同一のステップ番号の処理は実施形態1または2の処理と同一であるので説明を省略する。 FIG. 9 shows a flowchart of the processing procedure when applied to the movement control of the moving body in the present embodiment. Since the processing of the same step number is the same as the processing of the first or second embodiment, the description thereof will be omitted.
S2040では、傾き検出部314において、走行する平面に対する移動体の傾きθを検出する。まず移動体の傾き角度を算出する。傾きのリファレンスを、S3010における平面推定用のデータ取得時のカメラ座標系における走行平面の法線ベクトルnrefとする。nref=(Rvi)−1nvである。nrefはN個のRviのうち1個のRviを決定して算出してもよいし、それぞれのRviからnrefを算出し、平均をとってもよい。6自由度推定部312によって推定される姿勢を表わす3×3回転行列がRvのとき、カメラ座標系における走行平面の法線ベクトルは、ncur=(Rv)−1nvでのように算出される。走行する平面に対する移動体の傾きθは、nrefとncurのなす角である。
In S2040, the
S2045では、出力部321が、走行する平面に対する移動体の傾きθが所定の閾値以上であれば移動体が傾いていると判定し、ユーザに警告を通知する。ユーザへの警告は、例えば出力部321のスピーカーから警告音を発するなどして行う。 In S2045, the output unit 321 determines that the moving body is tilted if the inclination θ of the moving body with respect to the traveling plane is equal to or greater than a predetermined threshold value, and notifies the user of a warning. The warning to the user is given, for example, by emitting a warning sound from the speaker of the output unit 321.
<実施形態3>
本実施形態では、移動体の移動制御に本発明を適用した場合について説明する。本実施形態では、移動体は、部分的に坂道が存在する平面(床面)を走行するものとし、移動体に搭載された画像センサ(カメラ)が撮影する画像情報をもとに推定される6自由度の位置姿勢をもとに移動体の走行距離の算出を行う。6自由度の位置及び姿勢の計測結果を用いて移動体の位置及び姿勢を推定する。これによって、移動体の位置及び姿勢を安定的に取得できる。
<
In the present embodiment, a case where the present invention is applied to the movement control of a moving body will be described. In the present embodiment, the moving body is assumed to travel on a plane (floor surface) on which a slope partially exists, and is estimated based on image information taken by an image sensor (camera) mounted on the moving body. The mileage of the moving body is calculated based on the position and orientation of 6 degrees of freedom. The position and posture of the moving body are estimated using the measurement results of the position and posture of 6 degrees of freedom. As a result, the position and posture of the moving body can be stably acquired.
図10に示す移動体3に搭載された情報処理装置31は、移動体の周囲を撮像した画像に基づいて移動体の位置及び姿勢を推定し、その推定結果に基づいて移動体を移動制御する。情報処理装置31は、画像センサ32、距離センサ33、接触センサ34、アクチュエータ35、オドメーター37、記憶部38に接続されている。また移動体3は図1の上位管理システム16との無線通信を行う。
The
画像センサ32はカメラである。画像センサ32は、移動体の周囲を撮像する撮像装置である。本実施形態における画像センサは、水平・垂直方向の画角を有するモノクロカメラ2個から構成されるステレオカメラであるとする。ステレオカメラは、光軸が水平面よりやや上方を向くように移動体に取り付ける。ステレオカメラを構成する2台のカメラの内部パラメータ(焦点距離、画像中心、歪みパラメータ)及びカメラ間の外部パラメータ(相対的な位置姿勢)は公知の方法により予め校正されているものとする。本実施形態では、カメラの光学中心を原点、光軸方向をZ軸、画像の水平方向をX軸、画像の垂直方向をY軸とする三次元の座標系をカメラ座標系と規定する。ステレオカメラのカメラ座標系は、左側カメラ(または右側カメラ)のカメラ座標系であるとする。画像センサ32の移動体における取付け位置は設計値により既知であるとする。
The
距離センサ33はセンサからのシーンの距離情報を計測する装置である。本実施形態における距離センサは2D LiDARである。2D LiDARは、レーザ光を平面上で走査させることによって距離情報を取得する距離センサである。距離センサ33は、レーザ光を走査させる平面が略水平面となるように移動体に取り付ける。距離センサ33の移動体における取付け位置は設計値により既知であるとする。実施形態3では、距離センサ33を障害物センサとして利用する。
The
接触センサ34は安全センサである。接触センサが移動体と他の物体との接触を検知すると移動体は緊急停止する。
The
アクチュエータ35は、情報処理装置31からの指示や障害物センサ、安全センサの出力をもとにモータを制御して移動体を移動または静止させる。
The
上位管理システム16は、複数の移動体の運行管理を行うシステムである。上位管理システム16は、各移動体の情報処理装置31に目標位置姿勢を送信する。本実施形態では、移動体の目標位置姿勢は平面上における3自由度の位置姿勢であるとする。上位管理システム16と情報処理装置31の間の通信は、WifiやBlueTootth、5Gなどの無線通信により行う。
The upper management system 16 is a system that manages the operation of a plurality of mobile objects. The host management system 16 transmits the target position / orientation to the
オドメーター37は、移動体の車輪の回転量から走行距離を計測する。
The
記憶部38は、移動体が走行する環境についての地図情報を記憶する。他、移動体の走行距離や移動制御に必要な情報を保持する。なお、図10のように記憶部38は移動体上に搭載されている形以外でもよく、上位管理システム16の内部にあってもよい。
The
(情報処理装置31の詳細)
図10に、本実施形態における情報処理装置の機能構成例を示す図を示す。情報処理装置31は、画像情報入力部311、6自由度推定部312、変換部313、走行距離算出部314、制御部315、地図情報取得部316、平面情報取得部317、から構成される。情報処理装置31は、例えばPC、組み込みシステム、PLC(Programmable Logic Controller)である。
(Details of Information Processing Device 31)
FIG. 10 shows a diagram showing a functional configuration example of the information processing apparatus according to the present embodiment. The
画像情報入力部311は、画像センサ32から画像情報を入力し、入力された画像情報を6自由度推定部312に送る。本実施形態における画像センサ32はステレオカメラであるため、画像情報はステレオ画像(左右のカメラが撮影する2枚の画像)である。画像センサ32は、移動体が走行する工場や物流倉庫などの画像情報を撮像する。よって、本実施形態における画像情報とは、移動体に搭載された撮像装置によって移動体の走行する環境を撮像したステレオ画像を指す。
The image
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らの手法は、画像上の特徴点の位置と、推定する位置姿勢を用いて地図上の特徴点を画像上に投影した時の位置の差(再投影誤差)を最小化することによりカメラの位置姿勢を推定する。
The 6-
変換部313は、6自由度推定部312が推定した6自由度のカメラの位置姿勢を、移動体の制御が可能なように移動体の3自由度の位置姿勢に変換する。なお、3自由度の位置姿勢も推定あるいは計測可能な移動体である場合は、移動体の傾きに応じて3自由度の位置姿勢推定結果と6自由度の位置姿勢変換結果を選択的に用いてもよい。移動体の傾きは、例えば、6自由度の位置及び姿勢の推定結果の高さ方向の値(Z)で判断してもよい。例えば、Z=0の場合は、移動体は基準となる面を走行していると考え、3自由度に次元を減らした位置及び姿勢に変換する。一方で、Z>0(またはZ<0)の場合は、斜面を登っている(或いは下っている)と考えられるため、6自由度の位置及び姿勢を用いて制御を行うようにする。前述の通り、3自由度の位置姿勢は移動体が走行する平面における位置姿勢である。3自由度のうち2自由度は平面上の2次元位置、残りの1自由度は平面の法線まわりの姿勢(平面上の向き)を表わす。移動体が走行する平面の推定方法については後述する。移動体が走行する平面の情報は平面情報取得部317に保存されているものとする。
The
走行距離算出部314は、6自由度推定部312が推定するカメラの位置と前回計測された位置との差を使って移動体の走行距離を算出する。
The
制御部315は、変換部313が変換した位置姿勢をもとに移動体の制御を行う。具体的には、制御部315は、あらかじめ設定した移動体の目標位置姿勢(3自由度)と、変換部312が出力する3自由度の位置姿勢の差をもとに経路計算を行い、計算された経路に従うようにアクチュエータ35にモータの回転速度などの指示を送る。移動体の位置姿勢が目標位置姿勢と略一致した場合には移動体を停止し、上位管理システム16から次の目標位置姿勢が送られてくるのを待つ。なお、経路計算はA*アルゴリズムやRRT(Rapidly exploring random tree)といったアルゴリズムを用いてもよいし、Q学習やDQNなどの機械学習による方法を用いてもよい。
The
地図情報取得部316は、記憶部38より移動体が走行する環境の3自由度の地図情報を取得する。また、予め設定された移動体の3自由度の目標位置姿勢を取得する。
The map
平面情報取得部317は、移動体を運用時と同じ基準となる平面上を走行させることにより平面推定用のデータの取得を行う。平面推定用のデータは、移動体が走行した時の複数(N点)の位置における位置姿勢データである。位置姿勢データは、6自由度位置姿勢推定によって推定される画像センサ312の6自由度位置姿勢である。基準面よりΘだけ傾いた傾斜面を走行する場合でも、3自由度の位置及び姿勢を正しく推定できるように、6自由度の位置及び姿勢を撮像装置によって撮像された画像を基に推定する。
The plane
図11に本発明を移動体の移動制御に適用した場合の処理手順のフローチャートを示す。以下の説明では、各工程(ステップ)について先頭にSを付けて表記することで、工程(ステップ)の表記を省略する。ただし、情報処理装置31はこのフローチャートで説明するすべてのステップを必ずしも行わなくても良い。
FIG. 11 shows a flowchart of a processing procedure when the present invention is applied to the movement control of a moving body. In the following description, the notation of the process (step) is omitted by adding S at the beginning of each process (step). However, the
S3010では、平面情報取得部317が、事前準備として移動体が走行する平面の推定を行う。推定される平面を用いることで、6自由度推定部312によって推定される6自由度位置姿勢を平面上の3自由度位置姿勢に変換することが可能になる。移動体が走行する平面の推定は、移動体を平面上に走行させたときに推定される位置に平面当てはめを行うことにより推定する。移動体が走行する平面の推定方法の詳細については後述する。
In S3010, the plane
S3020では、地図情報取得部316は、上位管理システム16から移動体の目標位置姿勢を取得する。本実施形態では、移動体の目標位置姿勢は平面上における3自由度の位置姿勢であるとする。
In S3020, the map
S3030では、6自由度推定部312は、少なくとも移動体の周囲を撮像した画像に基づいて、撮像装置の6自由度の位置及び姿勢を示す第1情報を推定する。具体的には、6自由度推定部312は、ステレオカメラによって撮影された画像情報をもとにカメラの6自由度の位置姿勢推定を行う。位置姿勢推定の際には地図情報取得部316によって予め取得された地図情報を利用する。カメラの6自由度の位置姿勢推定には、前述のMur−Artalらの手法を用いる。地図は生成済みであるため、地図情報は更新せずカメラの位置姿勢のみを画像情報から推定する。
In S3030, the 6-
S3045では、変換部313が、S3030で推定された6自由度の位置姿勢を、S3010で推定された移動体が走行する平面パラメータの推定結果に基づいて変換することで、移動体の3自由度の位置姿勢を決定する。また前述の画像センサ32の移動体における取付け位置に基づいて、カメラの位置姿勢を移動体の位置姿勢に変換する。
In S3045, the
S3060では、S3045で変換した移動体の位置姿勢と、S3020で取得した移動体の目標位置姿勢を比較し、移動体が目標位置姿勢に到達したか判定する。本実施形態では、現在の位置と目標位置との差、現在の姿勢と目標姿勢との差のそれぞれに閾値を設け、位置の差及び姿勢の差の双方が該当する閾値を下回った場合に目標位置に到達したと判定する。本実施形態では、現在の位置と目標位置との差、現在の姿勢と目標姿勢との差のそれぞれに閾値を設け、位置の差及び姿勢の差の双方が該当する閾値を下回った場合に目標位置に到達したと判定する。目標位置に到達した場合は、S3020に戻り、新たな目標位置姿勢を上位管理システムから受け取る。 In S3060, the position / posture of the moving body converted in S3045 is compared with the target position / posture of the moving body acquired in S3020, and it is determined whether the moving body has reached the target position / posture. In the present embodiment, threshold values are set for each of the difference between the current position and the target position and the difference between the current posture and the target posture, and when both the difference in position and the difference in posture are below the corresponding threshold values, the target is set. It is determined that the position has been reached. In the present embodiment, threshold values are set for each of the difference between the current position and the target position and the difference between the current posture and the target posture, and when both the difference in position and the difference in posture are below the corresponding threshold values, the target is set. It is determined that the position has been reached. When the target position is reached, the process returns to S3020 and a new target position / attitude is received from the upper management system.
S3070では、制御部315は、S3045で変換された移動体の位置姿勢と上位管理システム16から送信された移動体の目標位置姿勢の差をもとに経路計算を行い、計算された経路に従うように移動体のアクチュエータ35を制御する。また、走行距離算出部314は、6自由度推定部313が推定するカメラの位置をもとに移動体の走行距離Dを算出する。具体的には、移動体の運行を始める際に走行距離Dをゼロに設定しておき、本ステップにおいて前回推定時の位置との今回推定された位置の差dをもとに、走行距離DをD←D+dのように更新する。
In S3070, the
S3080では、制御部315は、移動制御の終了判定を行う。上位管理システム16から終了命令が送られた場合には移動制御を終了する。さもなければS3030に戻り、移動制御を継続する。
In S3080, the
図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と表す。平面推定用データを取得する際は、移動体の移動軌跡から平面パラメータを推定できるように、直線的な軌跡ではなく、例えば移動体の軌跡が閉曲線を描くように移動体を移動させる。なお、部分的な坂道や移動体の振動や床面の凹凸などによる平面からのずれは平面当てはめにより吸収できるものとする。
FIG. 5 is a flowchart showing a processing procedure of the method of estimating the plane on which the moving body travels in S3010. In S1100, the plane
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に保存しておく。
In S1110, plane fitting is performed on N position data (Xvi, Yvi, Zvi) t having three degrees of freedom. The parameters (normal vector nv = (nvx, nvy, nvz) t, passing position cv = (cvx, cvy, cvz) t) of the plane on which the moving body traveled when acquiring the plane estimation data are estimated. It is assumed that the normal vector nv is a unit vector. The passing position cv is obtained by calculating the center of gravity of (Xvi, Yvi, Zvi) t. The normal vector nv is obtained by eigenvalue-decomposing a covariance matrix of N three-dimensional vectors (Xvi-cvx, Yvi-cvy, Zvi-cvz) t and obtaining it as an eigenvector corresponding to the minimum eigenvalue. The estimated plane parameters are stored in the plane
次にS3045における6自由度の位置姿勢を3自由度の位置姿勢への変換方法の処理手順について説明する。 Next, the processing procedure of the method of converting the position / posture of 6 degrees of freedom into the position / posture of 3 degrees of freedom in S3045 will be described.
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)に変換される。 The 6-DOF position / orientation (Xv, Yv, Zv, Wxv, Wyv, Wzv) is projected on the plane estimated in S3010, and the position / orientation (xv, yv, θv) t with 3 degrees of freedom is converted (note that). Rv is a 3 × 3 rotation matrix with postures represented by Wxv, Wyv, and Wzv). Specifically, a new three-dimensional coordinate system (hereinafter referred to as a plane coordinate system) with the plane passing position cv as the origin and the plane normal vector nv as the Z axis is defined, and six degrees of freedom in the three-dimensional world coordinate system. Convert the position / orientation to the plane coordinate system. From the definition, in the three-dimensional world coordinate system, the origin (0,0,0) t of the plane coordinate system is cvt, and the Z axis (0,0,1) t is nv. From this, the three-dimensional coordinate Xp (= (Xp, Yp, Zp) in the plane coordinate system is converted into the three-dimensional coordinate Xv (= (Xv, Yv, Zv) in the three-dimensional world coordinate system as shown in the following equation. ..
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に変換される。
Xv = RpvXp + cv
Here, Rpv is a 3 × 3 rotation matrix that transforms the Z-axis (0,0,1) t into a plane normal vector nv. Rpv is calculated with the rotation axis as the outer product of (0,0,1) t and nv, and the rotation angle as the inverse cosine (arccos) of the inner product of (0,0,1) t and nv. Therefore, the three-dimensional coordinate Xv in the three-dimensional world coordinate system is converted into the three-dimensional coordinate Xp in the plane coordinate system as shown in the following equation.
Xp=Rpv−1(Xv−cv)
Xvとしてtvを入力したときのXpを算出する。3自由度の位置姿勢のうちxv,yvは、3次元座標XpのXp成分、Yp成分に該当する。θvは画像センサの光軸を平面に射影したベクトルの方向である。本実施形態ではステレオカメラの左側のカメラの光軸を画像センサの光軸とする。画像センサに規定されるカメラ座標系における画像センサの光軸を表わす3次元ベクトルをvcとすると、平面座標系における画像センサの光軸voは次式のように表わされる。
Xp = Rpv-1 (Xv-cv)
Calculate Xp when tv is input as Xv. Of the positions and orientations with three degrees of freedom, xv and yv correspond to the Xp component and the Yp component of the three-dimensional coordinates Xp. θv is the direction of the vector that projects the optical axis of the image sensor onto a plane. In the present embodiment, the optical axis of the camera on the left side of the stereo camera is the optical axis of the image sensor. Assuming that the three-dimensional vector representing the optical axis of the image sensor in the camera coordinate system defined by the image sensor is vc, the optical axis vo of the image sensor in the plane coordinate system is expressed by the following equation.
vo=Rpv−1Rvvc
前述したように、本実施形態ではステレオカメラの光軸が水平面よりやや上方を向くように無人搬送車に取り付けるため、光軸voを平面座標系のXY平面に射影してθvを算出する。平面座標系のXY平面上に射影された光軸vo’は、次式のように算出される。
vo = Rpv-1Rvvc
As described above, in this embodiment, since the stereo camera is attached to the automatic guided vehicle so that the optical axis of the stereo camera faces slightly upward from the horizontal plane, the optical axis vo is projected onto the XY plane of the plane coordinate system to calculate θv. The optical axis vo'projected on the XY plane of the plane coordinate system is calculated by the following equation.
vo’=vo−(vo・(0,0,1)t)vo
本実施形態では、平面座標系のX軸に対するvo’の角度をθvとする。
vo'= vo- (vo · (0,0,1) t) vo
In the present embodiment, the angle of vo'with respect to the X axis of the plane coordinate system is θv.
以上述べたように、本実施形態では、画像情報によって推定される6自由度の位置姿勢をもとに移動体の走行距離を算出する。これによって、移動体が走行する床面上に坂道があっても安定的に走行距離の算出ができる。 As described above, in the present embodiment, the mileage of the moving body is calculated based on the position / posture with 6 degrees of freedom estimated from the image information. As a result, the mileage can be calculated stably even if there is a slope on the floor on which the moving body travels.
(変形例)
前述の実施形態では、画像センサとしてステレオカメラを利用していた。しかしながら画像センサはこれに限るものではなく、位置姿勢を推定するための画像情報が得られるカメラであればいかなるカメラであってもよい。例えば、単眼カメラであってもよいし、RGB画像と距離画像が取得できるRGBDカメラであってもよい。また、画像はモノクロである必要はなく、RGB画像などのカラー画像であってもよい。
(Modification example)
In the above-described embodiment, a stereo camera is used as an image sensor. However, the image sensor is not limited to this, and any camera may be used as long as it can obtain image information for estimating the position and orientation. For example, it may be a monocular camera or an RGBD camera capable of acquiring an RGB image and a distance image. Further, the image does not have to be monochrome, and may be a color image such as an RGB image.
本実施形態では、移動体として工場や倉庫の物流を行うAGVを想定したいたが、それ以外のロボットでもよい。例えば、部屋を清掃する掃除機ロボットにも適用可能である。 In the present embodiment, an AGV that distributes goods in factories and warehouses is assumed as a moving body, but other robots may be used. For example, it can be applied to a vacuum cleaner robot that cleans a room.
前述の実施形態では、入力部はカメラからの画像情報を入力していた。しかしながら、入力部を介して入力するのは画像情報に限るものではない。例えばカメラに据え付けられた慣性センサ(加速度センサ、角速度センサ)や姿勢センサからのセンサ計測値を入力してもよい。 In the above-described embodiment, the input unit inputs image information from the camera. However, inputting via the input unit is not limited to image information. For example, sensor measurement values from an inertial sensor (accelerometer, angular velocity sensor) or attitude sensor installed in the camera may be input.
前述の実施形態では、画像上で検出される特徴点の再投影誤差を最小化する方法を用いてカメラの位置姿勢を推定していた。しかしながらカメラの位置姿勢推定方法はこれに限るものではない。例えば、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.)。 In the above-described embodiment, the position and orientation of the camera are estimated by using a method of minimizing the reprojection error of the feature points detected on the image. However, the method for estimating the position and orientation of the camera is not limited to this. For example, a method for minimizing the difference in luminance values may be used, as in the method disclosed by Angel et al. (J. Angel, et al., "LSD-SLAM: Large-Scale Direct Monocular SLAM," 2014.). Further, not only the image but also a hybrid method with an inertial sensor such as an acceleration sensor or an angular velocity sensor may be used. Further, it may be a position / orientation estimation method using a neural network (trained model). A learned model that outputs the position and posture of the moving body with three degrees of freedom from the image of the surroundings of the moving body captured by the imaging device may be prepared in advance. The trained model trains the image with the measured value of the correct distance as the correct answer. Alternatively, for example, as in the method disclosed by Tateno et al., The position / attitude may be estimated based on the distance information estimated by CNN (Convolutional Neural Network). (K. Tateno et al., "CNN-SLAM: Real-time sense monocular SLAM with learned depth prediction,", 2017.).
前述の実施形態では、移動体が走行する平面を走行軌跡に対する平面当てはめにより求めていた。しかしながら、移動体が走行する平面を求める方法はこれに限るものではない。例えば、シーン中に配置した2次元マーカを利用してもよい。(例えば、加藤、M.Billinghurst、浅野、橘、“マーカ追跡に基づく拡張現実感システムとそのキャリブレーション”,1999.に開示されている2次元マーカ)。具体的には、2次元マーカを移動体の走行する平面上に配置してマーカの座標系を平面と一致させ、同一地点におけるマーカに対するカメラの位置姿勢と6自由度推定部によるカメラの位置姿勢の関係からマーカの座標系を基準とした位置姿勢に変換してもよい。また2次元マーカを移動体の走行する平面に対して垂直に配置してもよい。さらには、平面が水平面である場合には、移動体に加速度センサを設置し、加速度センサによって計測される重力軸方向を平面の法線ベクトルとしてもよい。 In the above-described embodiment, the plane on which the moving body travels is obtained by fitting the plane to the traveling locus. However, the method for determining the plane on which the moving body travels is not limited to this. For example, a two-dimensional marker placed in the scene may be used. (For example, two-dimensional markers disclosed in Kato, M. Billinghurst, Asano, Tachibana, "Augmented Reality System Based on Marker Tracking and Its Calibration", 1999.). Specifically, a two-dimensional marker is placed on a plane on which the moving body travels to match the coordinate system of the marker with the plane, and the position and orientation of the camera with respect to the marker at the same point and the position and orientation of the camera by the 6-degree-of-freedom estimation unit The position and orientation may be converted based on the coordinate system of the marker from the relationship of. Further, the two-dimensional marker may be arranged perpendicular to the traveling plane of the moving body. Further, when the plane is a horizontal plane, an acceleration sensor may be installed on the moving body, and the direction of the gravity axis measured by the acceleration sensor may be used as the normal vector of the plane.
実施形態では、距離情報に基づく位置姿勢推定方法としてパーティクルフィルタを利用するGrisettiらの手法を利用していた。しかしながら距離情報に基づく位置姿勢推定方法はこれに限るものではなく、例えばカルマンフィルタを利用する手法であってもよい。またパーティクルフィルタやカルマンフィルタなどの時系列フィルタを使う必要は必ずしもなく、ICPアルゴリズムによってフレームごとに位置姿勢を推定してもよい。(Y.Chen,G.Medioni,“Object modelling by registration of multiple range images,”Image and Vision Computing,1992.)。 In the embodiment, the method of Grisette et al., Which uses a particle filter, is used as a method of estimating the position and orientation based on the distance information. However, the position / orientation estimation method based on the distance information is not limited to this, and may be, for example, a method using a Kalman filter. Further, it is not always necessary to use a time series filter such as a particle filter or a Kalman filter, and the position / orientation may be estimated for each frame by the ICP algorithm. (Y. Chen, G. Mediani, "Object modeling by reregistration of multiple range images," Image and Vision Computing, 1992.).
実施形態では、画像情報を使って推定した位置姿勢と距離情報を使って推定した位置姿勢から制御部15に出力する位置姿勢を決定する際、画像情報を使った位置姿勢推定の失敗したときに距離情報を使って推定した位置姿勢を決定していた。しかしながら、位置姿勢の決定方法はこれに限るものではない。例えば、距離情報を使った位置姿勢推定が失敗したら画像情報を使って推定した位置姿勢を決定してもよい。また、画像情報/距離情報を使って推定される位置姿勢を共通の尺度で評価し、その尺度に基づいて位置姿勢を決定してもよい。例えば、立野らの方法に開示されるように、誤差の確率分布がわかれば推定される位置姿勢の尤度を計算することができる。(立野,小竹,内山、“ビンピッキングのための距離・濃淡画像を最ゆうに統合する高精度高安定なモデルフィッティング手法”,電子情報通信学会論文誌,vol.J94−D,no.8,pp.1410−1422,2011.)。そこで、画像上の特徴点の検出誤差の分布や距離の計測誤差の分布を予め求めておき、画像情報/距離情報を使って推定されるそれぞれの位置姿勢の尤度を算出・比較することで位置姿勢を決定することも可能である。
In the embodiment, when the position / posture estimated by using the image information and the position / posture to be output to the
前述の実施形態では、6自由度の位置姿勢を用いて走行距離の算出や移動体の傾き検出を行っていた。しかしながら、6自由度の位置姿勢の利用方法はこれに限るものではない。例えば、移動体が略平面上を走行するという事前知識を用いて、カメラの位置姿勢推定の失敗を判定してもよい。例えば、推定されるカメラ位置が平面上になければカメラ位置姿勢推定に失敗していると判定してもよい。また、失敗判定の対象はカメラの位置姿勢推定に限るものではない。例えば、前述のMur−Artalらの手法は、カメラの位置姿勢推定とシーンの地図情報の生成を同時に行う手法である。そのため、推定されるカメラの位置姿勢を移動体が略平面上を走行するという事前知識を利用して、地図情報の生成の失敗判定を行ってもよい。 In the above-described embodiment, the mileage is calculated and the inclination of the moving body is detected by using the position / posture with 6 degrees of freedom. However, the method of using the position / posture with 6 degrees of freedom is not limited to this. For example, the failure of the camera position / orientation estimation may be determined by using the prior knowledge that the moving body travels on a substantially flat surface. For example, if the estimated camera position is not on a plane, it may be determined that the camera position / orientation estimation has failed. Further, the target of failure determination is not limited to the position and orientation estimation of the camera. For example, the above-mentioned method of Mur-Artal et al. Is a method of simultaneously estimating the position and orientation of a camera and generating map information of a scene. Therefore, the failure determination of the generation of map information may be performed by utilizing the prior knowledge that the moving body travels on a substantially plane based on the estimated position and orientation of the camera.
前述の実施形態では、画像情報を用いて6自由度の位置姿勢の推定を行っていた。しかしながら、6自由度の位置姿勢推定の際に利用するのは画像情報に限るものではなく、6自由度の位置姿勢を推定できる情報であれば他の情報であってもよい。例えば、デプスカメラや3D LiDARといった距離センサから得られる距離情報を用いて6自由度の位置姿勢の推定を行ってもよい。また、画像情報と距離情報を併用して6自由度の位置姿勢の推定を行ってもよい。さらには、加速度センサや角速度センサなどの慣性センサからの情報を併用してもよい。 In the above-described embodiment, the position / orientation with 6 degrees of freedom is estimated using the image information. However, the information used when estimating the position / orientation with 6 degrees of freedom is not limited to the image information, and other information may be used as long as the information can estimate the position / orientation with 6 degrees of freedom. For example, the position and orientation of 6 degrees of freedom may be estimated using the distance information obtained from a distance sensor such as a depth camera or 3D LiDAR. Further, the position and orientation with 6 degrees of freedom may be estimated by using the image information and the distance information together. Further, information from an inertial sensor such as an acceleration sensor or an angular velocity sensor may be used together.
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、データ通信用のネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。また、そのプログラムをコンピュータが読み取り可能な記録媒体に記録して提供してもよい。 The present invention is also realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiment is supplied to the system or device via a network for data communication or various storage media. Then, the computer (or CPU, MPU, etc.) of the system or device reads and executes the program. Further, the program may be recorded and provided on a computer-readable recording medium.
1 移動体
11 情報処理装置
12 画像センサ
13 距離センサ
14 接触センサ
15 アクチュエータ
17 オドメーター
111 入力部
112 6自由度推定部
113 変換部
115 制御部
116 地図情報取得部
117 平面情報取得部
1 Moving
Claims (18)
前記移動体の6自由度の位置及び姿勢を示す第1情報を取得する第1取得手段と、
前記移動体の3自由度の位置及び姿勢を示す第2情報を取得する第2取得手段と、
前記第1情報を用いて、3自由度の位置及び姿勢を示す第3情報を出力する出力手段と、 前記移動体の傾きに応じて前記第2情報および第3情報の少なくとも1つを選択的に用いることにより、前記移動体の位置及び姿勢を決定する決定手段と
を有することを特徴とする情報処理装置。 An information processing device that determines the position and orientation of a moving body equipped with a function to measure multiple positions and orientations.
The first acquisition means for acquiring the first information indicating the position and posture of the moving body with six degrees of freedom, and
A second acquisition means for acquiring the second information indicating the position and posture of the moving body having three degrees of freedom, and
Using the first information, an output means for outputting the third information indicating the position and posture of three degrees of freedom, and at least one of the second information and the third information are selectively selected according to the inclination of the moving body. An information processing apparatus characterized by having a determination means for determining a position and a posture of the moving body by using the information processing apparatus.
前記決定手段は、前記検出手段によって検出された傾きが前記所定の値より小さい場合は、前記第2情報に基づいて前記移動体の3自由度の位置及び姿勢を決定し、前記検出手段によって検出された傾きが前記所定の値より大きい場合、前記第3情報に基づいて前記移動体の3自由度の位置及び姿勢を決定することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。 Further, it has a detecting means for detecting the inclination formed by the moving body and the reference surface.
When the inclination detected by the detecting means is smaller than the predetermined value, the determining means determines the position and posture of the moving body with three degrees of freedom based on the second information, and detects the position and the posture of the moving body by the detecting means. The invention according to any one of claims 1 to 5, wherein when the inclination is larger than the predetermined value, the position and the posture of the moving body having three degrees of freedom are determined based on the third information. Information processing equipment.
少なくとも前記移動体の周囲を撮像した画像に基づいて、前記撮像装置の6自由度の位置及び姿勢を示す第1情報を推定する6自由度推定手段と、
前記移動体と基準となる面との成す傾きが所定の値より大きい場合は、前記第1情報に基づいて前記移動体の3自由度の位置及び姿勢を決定し、前記移動体と基準となる面との成す傾きが所定の値より小さい場合は、前記移動体が走行する環境における物体と該移動体との距離を計測した距離情報に基づいて前記移動体の3自由度の位置及び姿勢を示す第2情報に基づいて前記移動体の3自由度の位置及び姿勢を決定する決定手段と、を有することを特徴とする情報処理装置。 An information processing device that estimates the position and orientation of a moving object equipped with an imaging device.
A six-DOF estimation means that estimates first information indicating the position and orientation of the six-DOF of the imaging device based on at least an image of the surroundings of the moving body.
When the inclination formed by the moving body and the reference surface is larger than a predetermined value, the position and posture of the moving body having three degrees of freedom are determined based on the first information, and the moving body and the reference surface are used as a reference. When the inclination formed by the surface is smaller than a predetermined value, the position and posture of the moving body with three degrees of freedom are determined based on the distance information obtained by measuring the distance between the object and the moving body in the environment in which the moving body travels. An information processing apparatus comprising: a determination means for determining a position and a posture of the moving body having three degrees of freedom based on the second information shown.
前記撮像装置の6自由度の位置及び姿勢を示す第1情報を推定する6自由度推定ステップと、
前記移動体と基準となる面との成す傾きが所定の値より大きい場合は、前記第1情報に基づいて前記移動体の3自由度の位置及び姿勢を決定し、前記移動体と基準となる面との成す傾きが所定の値より小さい場合は、前記移動体の3自由度の位置及び姿勢を示す第2情報に基づいて前記移動体の3自由度の位置及び姿勢を決定する決定ステップと、有することを特徴とする情報処理方法。 It is an information processing method that estimates the position and orientation of a moving object equipped with an image pickup device.
A 6-DOF estimation step for estimating the first information indicating the position and orientation of the 6-DOF of the imaging device, and
When the inclination formed by the moving body and the reference surface is larger than a predetermined value, the position and posture of the moving body having three degrees of freedom are determined based on the first information, and the moving body and the reference surface are used as a reference. When the inclination formed by the surface is smaller than a predetermined value, the determination step of determining the position and orientation of the three degrees of freedom of the moving body based on the second information indicating the position and orientation of the three degrees of freedom of the moving body. , An information processing method characterized by having.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019141358A JP7358108B2 (en) | 2019-07-31 | 2019-07-31 | Information processing device, information processing method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019141358A JP7358108B2 (en) | 2019-07-31 | 2019-07-31 | Information processing device, information processing method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021026302A true JP2021026302A (en) | 2021-02-22 |
JP7358108B2 JP7358108B2 (en) | 2023-10-10 |
Family
ID=74664690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019141358A Active JP7358108B2 (en) | 2019-07-31 | 2019-07-31 | Information processing device, information processing method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7358108B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102542550B1 (en) * | 2021-12-07 | 2023-06-13 | 주식회사 케이스랩 | Apparatus and method for estimating pose of vehicle |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05173628A (en) * | 1991-12-25 | 1993-07-13 | Ishikawajima Shibaura Mach Co Ltd | Visual sense device for unmanned traveling vehicle |
JP2017215199A (en) * | 2016-05-31 | 2017-12-07 | 株式会社デンソー | Position estimation device |
JP2019125116A (en) * | 2018-01-15 | 2019-07-25 | キヤノン株式会社 | Information processing device, information processing method, and program |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5173628B2 (en) | 2008-06-30 | 2013-04-03 | 電気化学工業株式会社 | Laminated sheet |
BR112019001441B1 (en) | 2016-07-26 | 2023-02-07 | Nissan Motor Co., Ltd | SELF-POSITION ESTIMATE METHOD AND SELF-POSITION ESTIMATE DEVICE |
JP6614124B2 (en) | 2016-12-21 | 2019-12-04 | 株式会社デンソー | Emergency call device |
-
2019
- 2019-07-31 JP JP2019141358A patent/JP7358108B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05173628A (en) * | 1991-12-25 | 1993-07-13 | Ishikawajima Shibaura Mach Co Ltd | Visual sense device for unmanned traveling vehicle |
JP2017215199A (en) * | 2016-05-31 | 2017-12-07 | 株式会社デンソー | Position estimation device |
JP2019125116A (en) * | 2018-01-15 | 2019-07-25 | キヤノン株式会社 | Information processing device, information processing method, and program |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102542550B1 (en) * | 2021-12-07 | 2023-06-13 | 주식회사 케이스랩 | Apparatus and method for estimating pose of vehicle |
Also Published As
Publication number | Publication date |
---|---|
JP7358108B2 (en) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101776622B1 (en) | Apparatus for recognizing location mobile robot using edge based refinement and method thereof | |
TWI827649B (en) | Apparatuses, systems and methods for vslam scale estimation | |
US20180066934A1 (en) | Three-dimensional measurement apparatus, processing method, and non-transitory computer-readable storage medium | |
Campbell et al. | A robust visual odometry and precipice detection system using consumer-grade monocular vision | |
US7769491B2 (en) | Obstacle avoiding apparatus, obstacle avoiding method, obstacle avoiding program, and mobile robot apparatus | |
JP3994950B2 (en) | Environment recognition apparatus and method, path planning apparatus and method, and robot apparatus | |
WO2019138678A1 (en) | Information processing device, control method for same, program, and vehicle driving assistance system | |
JP4929506B2 (en) | Legged mobile robot | |
KR101784183B1 (en) | APPARATUS FOR RECOGNIZING LOCATION MOBILE ROBOT USING KEY POINT BASED ON ADoG AND METHOD THEREOF | |
JP5736622B1 (en) | Detection device and operation control of manipulator equipped with the device | |
WO2004106856A1 (en) | Device and method of supporting stereo camera, device and method of detecting calibration, and stereo camera system | |
JP2003269937A (en) | Obstruction recognition device, obstruction recognition method, obstruction recognition program and mobile robot device | |
JP2006221610A (en) | Person tracking device and method, recording medium recording program for performing the method, and mobile electronic equipment equipped with the device | |
US11915523B2 (en) | Engagement detection and attention estimation for human-robot interaction | |
JP2003271975A (en) | Method of extracting plane, extractor therefor, program therefor, recording medium therefor, and robot system mounted with plane extractor | |
Yuwen et al. | Gaze control for active visual SLAM via panoramic cost map | |
JP7358108B2 (en) | Information processing device, information processing method and program | |
JP7273696B2 (en) | Position estimation device and system | |
Poomarin et al. | Automatic docking with obstacle avoidance of a differential wheel mobile robot | |
Yuan et al. | Visual steering of UAV in unknown environments | |
US11865724B2 (en) | Movement control method, mobile machine and non-transitory computer readable storage medium | |
KR20200063363A (en) | System and method for autonomously traveling mobile robot | |
CN114911223A (en) | Robot navigation method and device, robot and storage medium | |
Barajas et al. | Visual servoing of uav using cuboid model with simultaneous tracking of multiple planar faces | |
Hu et al. | Adaptive Visual Servo Control. |
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 |