[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5776332B2 - Map processing method and program, and robot system - Google Patents

Map processing method and program, and robot system Download PDF

Info

Publication number
JP5776332B2
JP5776332B2 JP2011119676A JP2011119676A JP5776332B2 JP 5776332 B2 JP5776332 B2 JP 5776332B2 JP 2011119676 A JP2011119676 A JP 2011119676A JP 2011119676 A JP2011119676 A JP 2011119676A JP 5776332 B2 JP5776332 B2 JP 5776332B2
Authority
JP
Japan
Prior art keywords
reliability
node
integration
tree
input
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
JP2011119676A
Other languages
Japanese (ja)
Other versions
JP2012248032A (en
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011119676A priority Critical patent/JP5776332B2/en
Publication of JP2012248032A publication Critical patent/JP2012248032A/en
Application granted granted Critical
Publication of JP5776332B2 publication Critical patent/JP5776332B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

本発明は、地図処理方法及びプログラム、並びにロボットシステムに関する。本発明は、地図処理プログラムを格納したコンピュータ読み取り可能な記憶媒体にも関する。   The present invention relates to a map processing method and program, and a robot system. The present invention also relates to a computer-readable storage medium storing a map processing program.

自律移動型ロボットは、実環境内で障害物、壁などと衝突すること無く自由に移動できるように、例えばロボットに搭載されたセンサの計測情報と環境地図との照合に基づいて自己位置の推定を行う。ロボットが実環境下で自己位置を確実、且つ、正確に推定するために、複数の異なる地図を併用する方式がある。また、環境地図を自動的に作成する技術としては、例えばSLAM(Simultaneous Localization And Mapping)が知られている。   Autonomous mobile robots are able to move freely without colliding with obstacles, walls, etc. in the real environment. I do. There is a method in which a plurality of different maps are used together in order for a robot to reliably and accurately estimate its own position in an actual environment. As a technique for automatically creating an environmental map, for example, SLAM (Simultaneous Localization And Mapping) is known.

複数の地図を自動的に作成する方式は、一般的には以下の2つの方式に分類できる。第1の方式では、ある種類のセンサの計測情報に基づいて最初の地図を作成する。その後、他の種類のセンサの計測情報を最初の地図に足し加えて2番目の地図を作成し、以下同様にして3番目以降の地図を作成する。一方、第2の方式では、複数の異なる種類のセンサの計測情報を推定器に同時観測情報として入力して、複数の地図を同時に、且つ、自動的に作成する。   The method of automatically creating a plurality of maps can be generally classified into the following two methods. In the first method, an initial map is created based on measurement information of a certain type of sensor. Thereafter, the measurement information of other types of sensors is added to the first map to create a second map, and the third and subsequent maps are created in the same manner. On the other hand, in the second method, measurement information of a plurality of different types of sensors is input to the estimator as simultaneous observation information, and a plurality of maps are created simultaneously and automatically.

第1の方式の場合、2番目以降に作成される地図が最初に作成された地図に依存する。このため、2番目以降に作成された地図の精度は、最初に作成された地図の精度に依存してしまう。一方、第2の方式の場合、センサの種類が多くなると、推定器の観測空間が大きくなるため、推定器の計算量が多くなると共に計算時間がかかる。また、異なる種類のセンサは異なる計測レートを用いるため、使用するセンサの計測レートを最も遅い計測レートに合わせる必要がある。   In the case of the first method, the second and subsequent maps depend on the map created first. For this reason, the accuracy of the map created after the second depends on the accuracy of the map created first. On the other hand, in the case of the second method, as the number of types of sensors increases, the observation space of the estimator increases, so that the calculation amount of the estimator increases and calculation time is required. Also, since different types of sensors use different measurement rates, it is necessary to match the measurement rate of the sensor used with the slowest measurement rate.

しかし、複数の地図を同時に生成する場合、異なる種類のセンサの異なる誤差モデルを反映しながら各センサ独自の計測レートを用いることが望ましい。このように、独立して作成された複数の地図では、各地図の座標系が異なると共に、推定誤差によって夫々の地図が異なる歪みを含んでいる。このため、ロボットが自己位置の推定を行う段階では、各センサの計測情報と対応する地図とのマッチングにより推定された自己位置が、異なる座標系で表現されたものであるため、例えばロボットの移動経路を計画あるいは決定する経路計画(または、経路計画)などを行うためには推定した自己位置の座標系を統合(または、統一)する必要がある。   However, when a plurality of maps are generated simultaneously, it is desirable to use a measurement rate unique to each sensor while reflecting different error models of different types of sensors. As described above, in a plurality of maps created independently, the coordinate system of each map is different, and each map includes a different distortion due to an estimation error. For this reason, at the stage where the robot estimates its own position, the self-position estimated by matching the measurement information of each sensor with the corresponding map is expressed in a different coordinate system. In order to perform route planning (or route planning) for planning or determining a route, it is necessary to integrate (or unify) the estimated coordinate system of the self-location.

自律移動型ロボットのナビゲーションシステムにおいて、複数の自己位置推定器が推定した位置姿勢を統合する従来の統合方式では、例えば各自己位置推定器の推定結果を1つのベクトルにまとめ、統合処理の観測データとして入力することで確率的フィルタにより統合する。しかし、従来の統合方式では、以下のようなデメリットが生じてしまう。   In a conventional integration method that integrates the positions and orientations estimated by a plurality of self-position estimators in a navigation system for autonomous mobile robots, for example, the estimation results of each self-position estimator are combined into one vector, and the observation data of the integration process Are integrated by a stochastic filter. However, the conventional integration method has the following disadvantages.

第1に、確率的フィルタによる統合を行うために、各自己位置推定器の推定精度を表す推定結果の共分散行列をある同一の基準に合わせる必要がある。しかし、各自己位置推定器が独立に開発されているため、自己位置推定器間では共分散行列の計算方法や設定パラメータなどに違いがある。従って、このような共分散行列に基づく統合処理では、複数の自己位置推定器が独立して推定した自己位置の座標系を高精度に統合することは難しい。   First, in order to perform integration by a probabilistic filter, it is necessary to match the covariance matrix of the estimation result representing the estimation accuracy of each self-position estimator to a certain same reference. However, since each self-position estimator has been independently developed, there are differences in the calculation method and setting parameters of the covariance matrix among the self-position estimators. Therefore, in such integration processing based on the covariance matrix, it is difficult to integrate the coordinate system of the self-position estimated independently by a plurality of self-position estimators with high accuracy.

第2に、例えばある自己位置推定器の推定精度が低下すると(例えば、推定処理が破綻した場合も含む)、統合結果が推定精度の低下した自己位置推定器の推定結果の影響を受けて統合性能が低下してしまう。   Second, for example, when the estimation accuracy of a certain self-position estimator decreases (for example, even when the estimation process fails), the integration result is affected by the estimation result of the self-position estimator whose estimation accuracy has decreased. Performance will be degraded.

特開2007−72592号公報JP 2007-72592 A

従来の統合方式では、複数の推定器が推定した位置姿勢を高精度に統合することは難しいという問題があった。   The conventional integration method has a problem that it is difficult to integrate the positions and orientations estimated by a plurality of estimators with high accuracy.

そこで、本発明は、複数の推定器が推定した位置姿勢を高精度に統合することのできる地図処理方法及びプログラム、並びにロボットシステムを提供することを目的とする。   In view of the above, an object of the present invention is to provide a map processing method and program, and a robot system capable of highly accurately integrating the positions and orientations estimated by a plurality of estimators.

本発明の一観点によれば、互いに異なるセンサからの入力に基づいて自己位置を推定する複数の推定器の信頼度を前記複数の推定器に対応する信頼性評価モデルを用いて評価する評価処理と、前記複数の推定器からの推定結果に対して前記信頼度を複数の段階に分けた異なる信頼性のレベルに応じた異なる統合処理を行う結合処理をコンピュータに実行させ、前記信頼性評価モデルは、評価された前記信頼度と前記異なる統合処理による統合履歴とが関連付けられた、時間的に更新される統合ツリーを含む地図処理方法が提供される。 According to one aspect of the present invention, evaluation evaluated using the reliability evaluation model the reliability of a plurality of estimators for estimating its own position, corresponding to said plurality of estimators based on the input from different sensors from each other and processing, for the estimated result from the plurality of estimators, the reliability was performed multiple stages divided different reliability binding processing for different integration processing according to the level of the computer, the reliability An evaluation model is provided with a map processing method including an integration tree that is temporally updated, in which the evaluated reliability and the integration history by the different integration processing are associated with each other.

本発明の一観点によれば、互いに異なるセンサからの入力に基づいて自己位置を推定する複数の推定器の信頼度を前記複数の推定器に対応する信頼性評価モデルを用いて評価する評価手順と、前記複数の推定器からの推定結果に対して前記信頼度を複数の段階に分けた異なる信頼性のレベルに応じた異なる統合処理を行う結合手順をコンピュータに実行させ、前記信頼性評価モデルは、評価された前記信頼度と前記異なる統合処理による統合履歴とが関連付けられた、時間的に更新される統合ツリーを含むプログラムが提供される。 According to one aspect of the present invention, evaluation evaluated using the reliability evaluation model the reliability of a plurality of estimators for estimating its own position, corresponding to said plurality of estimators based on the input from different sensors from each other procedures and, for the estimated result from the plurality of estimators, the reliability was performed multiple steps to divide the different reliability binding procedure for different integration processing according to the level of the computer, the reliability The evaluation model is provided with a program including an integration tree that is updated in time, in which the evaluated reliability and the integration history of the different integration processes are associated with each other.

本発明の一観点によれば、自律移動型ロボットに設けられた互いに異なるセンサと、前記異なるセンサからの入力に基づいて自己位置を推定する複数の推定器と、前記複数の推定器の信頼度を前記複数の推定器に対応する信頼性評価モデルを用いて評価する評価部と、前記複数の推定器からの推定結果に対して前記信頼度を複数の段階に分けた異なる信頼性のレベルに応じた異なる統合処理を行う結合部を備え、前記信頼性評価モデルは、評価された前記信頼度と前記異なる統合処理による統合履歴とが関連付けられた、時間的に更新される統合ツリーを含むロボットシステムが提供される。 According to one aspect of the present invention, different sensors provided in an autonomous mobile robot, a plurality of estimators that estimate self-positions based on inputs from the different sensors, and the reliability of the plurality of estimators the corresponding to said plurality of estimators and evaluation unit which evaluates using the reliability evaluation model for the estimated result from the plurality of estimators, the reliability of the plurality of stages divided into different reliability levels The reliability evaluation model includes a temporally updated integration tree in which the evaluated reliability and the integration history by the different integration processing are associated with each other. A robot system is provided.

開示の地図処理方法及びプログラム、並びにロボットシステムによれば、複数の推定器が推定した位置姿勢を高精度に統合することが可能になる。   According to the disclosed map processing method and program, and the robot system, the positions and orientations estimated by a plurality of estimators can be integrated with high accuracy.

ロボットの一例を示す斜視図である。It is a perspective view which shows an example of a robot. ロボットを含むロボットシステムの一例を示すブロック図である。It is a block diagram which shows an example of the robot system containing a robot. 推定器側からの逐次的入力により統合ツリーが生長していく様子を説明する図である。It is a figure explaining a mode that an integrated tree grows by the sequential input from the estimator side. 推定器側からの逐次的入力により統合ツリーが生長していく様子を説明する図である。It is a figure explaining a mode that an integrated tree grows by the sequential input from the estimator side. 統合ツリーの規模を一定以下に抑えるための枝刈を説明する図である。It is a figure explaining the pruning for suppressing the scale of an integrated tree below fixed. 統合器の動作の概要を説明するフローチャートである。It is a flowchart explaining the outline | summary of operation | movement of an integrated device. 統合ツリーの規模の増大を説明する図である。It is a figure explaining the increase in the scale of an integrated tree. 統合ツリーの最新レイヤーから不良ノードを削除する処理を説明する図である。It is a figure explaining the process which deletes a defective node from the newest layer of an integrated tree. 統合ツリーのメンテナンスを説明する図である。It is a figure explaining the maintenance of an integrated tree. 統合器の動作をより詳細に説明するフローチャートである。It is a flowchart explaining the operation | movement of an integration device in detail. 経路評価を説明する図である。It is a figure explaining route evaluation. オドメトリからロボットの移動により生じた位置姿勢の不確実さを算出するフィルタ処理を説明する図である。It is a figure explaining the filter process which calculates the uncertainty of the position and orientation produced | generated by the movement of the robot from odometry. 隠れマルコフモデルを説明する図である。It is a figure explaining a hidden Markov model. 統合ツリーの一例を示す図である。It is a figure which shows an example of an integrated tree. 各ノードに対する経路評価で得られる評価スコアの一例を示す図である。It is a figure which shows an example of the evaluation score obtained by path | route evaluation with respect to each node. 比較例における統合結果の一例を説明する図である。It is a figure explaining an example of the integration result in a comparative example. 実施例における統合結果の一例を説明する図である。It is a figure explaining an example of the integration result in an Example.

開示の地図処理方法及びプログラム、並びにロボットシステムでは、統合器が各推定器からの入力情報の信頼性を評価して、異なる信頼性のレベルに応じた異なる方式で統合履歴と関連付ける。この関連付けにより、統合履歴を表した統合ツリーが時間的に更新され、規模が増大していく。信頼性のレベルとは、信頼性を数量化した信頼度をさらに例えば「高」、「中」、「低」の3段階に分けたものを言う。   In the disclosed map processing method and program, and the robot system, the integrator evaluates the reliability of the input information from each estimator and associates it with the integration history in different manners according to different levels of reliability. With this association, the integration tree representing the integration history is updated in time, and the scale increases. The level of reliability is a level obtained by further dividing the reliability obtained by quantifying the reliability into, for example, three levels of “high”, “medium”, and “low”.

また、統合ツリーの最新ノードから過去に辿って得られた推定経路を評価して下位のノードを削除することで、ツリー全体のメンテナンスを行いツリー規模を一定以下に維持するようにしても良い。   Alternatively, the estimated path obtained in the past from the latest node of the integrated tree may be evaluated and the lower nodes may be deleted to maintain the entire tree and keep the tree scale below a certain level.

以下に、開示の地図処理方法及びプログラム、並びにロボットシステムの各実施例を図面と共に説明する。   Hereinafter, embodiments of the disclosed map processing method and program, and robot system will be described with reference to the drawings.

図1は、ロボットの一例を示す斜視図である。図1に示すロボット100は、例えばモータなどにより駆動される台車101、車輪102、各種内的センサ及び外的センサ、及び例えばCPU(Central Processing Unit)などのプロセッサにより形成された制御部を有する周知の基本構成を有する自律移動型ロボットで形成可能である。内的センサには、レーザレンジファインダ(LRF:Laser Range Finder)2,3、及びカメラ3が含まれる。LRF2とLRF3は、例えば異なる種類のLRFであっても良い。異なる種類のLRFには、計測範囲の異なるLRFも含まれる。   FIG. 1 is a perspective view showing an example of a robot. A robot 100 shown in FIG. 1 has a control unit formed by, for example, a carriage 101 driven by a motor, wheels 102, various internal and external sensors, and a processor such as a CPU (Central Processing Unit). It can be formed by an autonomous mobile robot having the basic configuration. The internal sensors include laser range finders (LRF) 2 and 3 and a camera 3. LRF2 and LRF3 may be different types of LRFs, for example. Different types of LRFs include LRFs having different measurement ranges.

図2は、ロボットを含むロボットシステムの一例を示すブロック図である。この例では、ロボットシステム200は、自律移動型ロボット100のナビゲーションシステムとしても機能する。ここでは説明の便宜上、推定器が3つの場合を説明するが、推定器は少なくとも2つあれば良い。   FIG. 2 is a block diagram illustrating an example of a robot system including a robot. In this example, the robot system 200 also functions as a navigation system for the autonomous mobile robot 100. Here, for convenience of explanation, a case where there are three estimators will be described, but at least two estimators are sufficient.

推定器4は、上記CPUで形成可能であり、LRF1と記憶部5に格納された地図1Aに基づいてロボット100の自己位置を推定するソフトウェアモジュール(推定モジュール)を形成する。推定器6は、上記CPUで形成可能であり、LRF2と記憶部7に格納された地図1Bに基づいてロボット100の自己位置を推定するソフトウェアモジュールを形成する。推定器8は、上記CPUで形成可能であり、カメラ3と記憶部9に格納された地図1Cに基づいてロボット100の自己位置を推定するソフトウェアモジュールを形成する。   The estimator 4 can be formed by the CPU, and forms a software module (estimation module) that estimates the self-position of the robot 100 based on the LRF 1 and the map 1A stored in the storage unit 5. The estimator 6 can be formed by the CPU, and forms a software module that estimates the self-position of the robot 100 based on the LRF 2 and the map 1B stored in the storage unit 7. The estimator 8 can be formed by the CPU, and forms a software module that estimates the self-position of the robot 100 based on the camera 3 and the map 1C stored in the storage unit 9.

統合器10は、上記CPUで形成可能であり、推定器4,6,8の自己位置推定結果を統合するソフトウェアモジュール(統合モジュール)を形成する。統合器10において、推定器信頼性評価部11は、推定器4,6,8からの入力の信頼性を評価して、例えば「高」>「中」>「低」の3段階の信頼性のレベルに分ける。信頼性のレベルとは、信頼性を数量化した信頼度をさらに例えば「高」、「中」、「低」の3段階に分けたものを言う。各信頼性のレベルによって、後述する統合ツリーへの結合が異なる。結合部12は、信頼性のレベルが「高」(以下、説明の便宜上、信頼度が「高」とも言う)の場合、推定器からの入力を統合するためのフィルタの観測値としてフィルタ状態の更新処理を行い、新しいノードを作成して統合ツリーに追加する、推定器データの統合ツリーへの結合処理を行う。信頼性のレベルが「低」の場合、オドメトリのみでフィルタ状態の更新処理を行い、新しいノードを作成して統合ツリーに追加する。信頼性のレベルが「中」の場合、「高」と「低」の場合で行った処理を全て行う。これにより、統合ツリーの規模が増大していく。   The integrator 10 can be formed by the CPU, and forms a software module (integrated module) that integrates the self-position estimation results of the estimators 4, 6, and 8. In the integrator 10, the estimator reliability evaluation unit 11 evaluates the reliability of the inputs from the estimators 4, 6, and 8, for example, three levels of reliability “high”> “medium”> “low” Divide into levels. The level of reliability is a level obtained by further dividing the reliability obtained by quantifying the reliability into, for example, three levels of “high”, “medium”, and “low”. Depending on the level of reliability, the connection to the integration tree described later differs. When the level of reliability is “high” (hereinafter, also referred to as “high” for convenience of explanation), the combining unit 12 displays the filter state as an observation value of the filter for integrating the inputs from the estimator. An update process is performed, a new node is created and added to the integration tree, and the estimator data is joined to the integration tree. When the reliability level is “low”, the filter state is updated only by odometry, and a new node is created and added to the integration tree. When the reliability level is “medium”, all the processes performed in the case of “high” and “low” are performed. This increases the scale of the integrated tree.

統合器10において、結合良さの評価部13は、統合ツリーの規模を一定以下にするための枝刈を必要に応じて行うために、統合ツリーへの結合の良さを評価する。この評価は、統合器10において推定器からの入力を統合するフィルタが推定した位置姿勢からロボット100の動きを算出して、算出した動きとオドメトリ(Odometry)部20で計測した動きと比較して動きの尤度を算出することで行うことができる。オドメトリ部20は、ロボット100の移動量を、モータ18または台車101の車輪102の回転を検出するエンコーダ、または、ロボット100に設けられたジャイロセンサ(または、ジャイロスコープ)などの内的センサからの検出信号に基づいて計算する周知の構成を有する。図2では、エンコーダ及びジャイロセンサがエンコーダ・ジャイロ部19に含まれる。   In the integrator 10, the connection goodness evaluation unit 13 evaluates the goodness of connection to the integrated tree in order to perform pruning for reducing the scale of the integrated tree below a certain level as necessary. In this evaluation, the motion of the robot 100 is calculated from the position and orientation estimated by the filter that integrates the input from the estimator in the integrator 10, and compared with the calculated motion and the motion measured by the odometry unit 20. This can be done by calculating the likelihood of motion. The odometry unit 20 determines the amount of movement of the robot 100 from an internal sensor such as an encoder that detects rotation of the motor 102 or the wheel 102 of the carriage 101 or a gyro sensor (or gyroscope) provided in the robot 100. It has a known configuration for calculating based on the detection signal. In FIG. 2, an encoder and a gyro sensor are included in the encoder / gyro unit 19.

統合ツリーのメンテナンス部14は、推定経路中の評価対象で下位のノードを統合ツリーから削除し、次に統合ツリー全体をスキャンして、子を持っていないノードを削除する。さらに1つの子だけを持っている親ノードを子ノードと併合する。統合ツリーは、記憶部15に格納される。   The maintenance unit 14 of the integrated tree deletes the lower-level node that is the evaluation target in the estimated route from the integrated tree, and then scans the entire integrated tree to delete nodes that do not have children. Furthermore, a parent node having only one child is merged with the child node. The integrated tree is stored in the storage unit 15.

統合器10は、例えば、推定器4で推定された地図Aの座標系の自己位置(または、推定器8で推定された地図Cの座標系の自己位置)と、推定器6で推定された地図Bの座標系の自己位置を統合する統合処理を行い、統合結果を例えばロボット100の移動経路を計画あるいは決定する移動経路計画部16に供給する。この例では、移動経路計画部16が決定した移動経路は、上記CPUで形成可能な台車移動コントローラ17に供給される。台車移動コントローラ17は、移動経路に応じてモータ18を駆動して車輪102を回線することで台車101を例えば図1の矢印方向へ移動させる。オドメトリ部20で計算されたロボット100の移動量は、各推定器4,6,8に供給される。   The integrator 10 is estimated by the estimator 6 by the self-position of the coordinate system of the map A estimated by the estimator 4 (or the self-position of the coordinate system of the map C estimated by the estimator 8), for example. An integration process for integrating the self-position of the coordinate system of the map B is performed, and the integration result is supplied to, for example, the movement route planning unit 16 that plans or determines the movement route of the robot 100. In this example, the movement route determined by the movement route planning unit 16 is supplied to the cart movement controller 17 that can be formed by the CPU. The trolley movement controller 17 drives the motor 18 according to the movement route and moves the trolley 101 in the direction of the arrow in FIG. The movement amount of the robot 100 calculated by the odometry unit 20 is supplied to each of the estimators 4, 6, and 8.

統合器10は、例えば、推定器4で推定された地図Aの座標系の自己位置と、推定器6で推定された地図Bの座標系の自己位置と、推定器8で推定された地図Cの座標系の自己位置を統合する統合処理を行っても良いことは言うまでもない。   The integrator 10, for example, the self-position of the coordinate system of the map A estimated by the estimator 4, the self-position of the coordinate system of the map B estimated by the estimator 6, and the map C estimated by the estimator 8. It goes without saying that an integration process for integrating the self-positions of the coordinate system may be performed.

ロボットシステム200がロボット100で形成されている場合、図2に示す各部はロボット100に設けられる。一方、ロボットシステム200がロボット100及び当該ロボット100を制御する当該ロボット100とは別体の情報処理装置(すなわち、サーバなどのコンピュータ)で形成されている場合、LRF1,2及びカメラ3以外の部分を情報処理装置に設けても、統合器10を情報処理装置に設けても、統合器10及び移動経路計画部16を情報処理装置に設けても良い。情報処理装置は、ロボット100と通信可能な通信部(または、インタフェース)、CPUなどのプロセッサ、及びプロセッサが実行するプログラム及び各種データを記憶する記憶部を有する周知の構成を有する汎用のコンピュータで形成可能である。   When the robot system 200 is formed by the robot 100, each unit illustrated in FIG. 2 is provided in the robot 100. On the other hand, when the robot system 200 is formed by the robot 100 and an information processing apparatus separate from the robot 100 that controls the robot 100 (that is, a computer such as a server), the parts other than the LRFs 1 and 2 and the camera 3 May be provided in the information processing apparatus, the integrator 10 may be provided in the information processing apparatus, or the integrator 10 and the movement path planning unit 16 may be provided in the information processing apparatus. The information processing apparatus is formed by a general-purpose computer having a known configuration including a communication unit (or interface) that can communicate with the robot 100, a processor such as a CPU, and a storage unit that stores programs executed by the processor and various data. Is possible.

少なくとも統合器10が行う統合処理を実行するプログラムを記憶する記憶部には、半導体記憶装置、磁気、光、光磁気記録媒体などを含む各種周知のコンピュータ読み取り可能な記憶媒体を使用可能である。   Various known computer-readable storage media including a semiconductor storage device, a magnetic, optical, and magneto-optical recording medium can be used as a storage unit that stores at least a program for executing an integration process performed by the integrator 10.

図3及び図4は、推定器側からの逐次的入力により統合ツリーが生長していく様子を説明する図である。図3は任意の時刻t1,t2での処理、図4は任意の時刻t3,t4での処理を夫々示し、t1<t2<t3<t4である。つまり、時刻t1が最も早く、時刻t4が最も遅い時刻である。図3及び図4において、左側が推定器側の処理を示し、右側が統合器側の処理を示す。図3及び図4では説明の便宜上、推定器4で推定された地図Aの座標系の自己位置と、推定器6で推定された地図Bの座標系の自己位置を統合する統合処理を行うものとする。また、推定器4,6を夫々推定器A,Bと図示し、推定器4のIDはA、推定器6のIDはBで示す。   3 and 4 are diagrams for explaining how the integrated tree grows by sequential input from the estimator side. 3 shows processing at arbitrary times t1 and t2, and FIG. 4 shows processing at arbitrary times t3 and t4, respectively, where t1 <t2 <t3 <t4. That is, time t1 is the earliest time and time t4 is the latest time. 3 and 4, the left side shows processing on the estimator side, and the right side shows processing on the integrator side. 3 and 4, for convenience of explanation, an integration process for integrating the self-position of the coordinate system of the map A estimated by the estimator 4 and the self-position of the coordinate system of the map B estimated by the estimator 6 is performed. And Also, the estimators 4 and 6 are illustrated as estimators A and B, respectively, and the ID of the estimator 4 is indicated by A and the ID of the estimator 6 is indicated by B.

図3に示す時刻t1では、統合器10は、ステップST1で推定器A,Bから入力した推定値をツリーの持つ情報のうち観測値へコピーし、ノードの持つの情報のうち状態ベクトルへコピーする。また、ステップST1は、推定器A,Bから入力したオドメトリをツリーの持つ情報のうちオドメトリへコピーし、図3にハッチング付きの○印で表すルートノード(Root Node)を生成する。さらに、ステップST1は、ノードの持つ情報のうち推定器A,Bの隠れマルコフモデル(HMM:Hidden Markov Model)を初期化する。以下の説明では、ルートノードはハッチング付きの○印で表し、子ノードはハッチング無しの○印で表す。   At time t1 shown in FIG. 3, the integrator 10 copies the estimated values input from the estimators A and B in step ST1 to the observed values in the information held in the tree, and copies them to the state vector in the information held in the nodes. To do. In step ST1, the odometry input from the estimators A and B is copied to the odometry out of the information held in the tree, and a root node (Root Node) indicated by a circle with hatching in FIG. 3 is generated. Furthermore, step ST1 initializes a hidden Markov model (HMM: Hidden Markov Model) of the estimators A and B among the information of the nodes. In the following description, the root node is represented by a circle with hatching, and the child node is represented by a circle with no hatching.

時刻t2では、統合器10は、ステップST2で推定器A,Bから入力した推定値及びオドメトリをツリーの持つ情報の観測値及びオドメトリへコピーする。これにより、統合器10は、ステップST3でオドメトリ及び状態ベクトルに基づきHMMを用いて推定器Bへの信頼度を計算する。統合部10は、ステップST4で計算された推定器Bへの信頼度が「高」、「中」、「低」であるか(この例では「中」)に応じて子ノードを追加し、各子ノードの状態ベクトルを更新すると共に、親ノード(この場合、ルートノード)のHMMを各子ノードへコピーする。   At time t2, the integrator 10 copies the estimated value and odometry input from the estimators A and B in step ST2 to the observation value and odometry of the information held in the tree. Thereby, the integrator 10 calculates the reliability of the estimator B using the HMM based on the odometry and the state vector in step ST3. The integration unit 10 adds child nodes depending on whether the reliability of the estimator B calculated in step ST4 is “high”, “medium”, or “low” (in this example, “medium”), The state vector of each child node is updated, and the HMM of the parent node (in this case, the root node) is copied to each child node.

図4に示す時刻t3では、統合器10は、ステップST5で推定器A,Bから入力した推定値及びオドメトリをツリーの持つ情報の観測値及びオドメトリへコピーする。これにより、統合器10は、ステップST6で各ノードについて、上記ステップST3と同様にHMMを用いて推定器Aへの信頼度を計算し、上記ステップST4と同様に信頼度によって各ノードに子ノードを追加し、子ノードの状態ベクトルを更新すると共に、親ノードのHMMを各子ノードへコピーする。   At time t3 shown in FIG. 4, the integrator 10 copies the estimated value and odometry input from the estimators A and B in step ST5 to the observation value and odometry of the information held in the tree. As a result, the integrator 10 calculates the reliability of the estimator A using the HMM for each node in step ST6 in the same manner as in step ST3, and assigns each node a child node according to the reliability as in step ST4. Is added, the state vector of the child node is updated, and the HMM of the parent node is copied to each child node.

時刻t4では、統合器10は、ステップST7で上記ステップST5と同様の処理を行い、ステップST8で上記ステップST6と同様の処理を行う。   At time t4, the integrator 10 performs the same process as step ST5 in step ST7, and performs the same process as step ST6 in step ST8.

このようにして、種類の異なる複数の内的センサからの入力(計測情報)に基づいて自己位置を推定する複数の推定器の信頼度をHMMを用いて計算する。各推定器に対応するHMMの計算に用いるパラメータは、当該推定器からの入力(推定値及びオドメトリ)に含まれる。また、信頼度に応じてルートノードに子ノードを追加することで、統合ツリーを作成する。従って、記憶部15に格納される統合ツリーの規模が成長して増大していく。この統合ツリーに含まれる最新のノード(最新レイヤーのノード)から過去のノードを辿ってルートノードまでの経路を評価して、削除対象するべきノードを検出して削除することで、統合ツリーの規模を一定以下に抑えることもできる。   In this way, the reliability of a plurality of estimators that estimate self-positions based on inputs (measurement information) from a plurality of different types of internal sensors is calculated using the HMM. Parameters used for calculation of the HMM corresponding to each estimator are included in inputs (estimated values and odometry) from the estimators. Also, an integrated tree is created by adding child nodes to the root node according to the reliability. Accordingly, the scale of the integrated tree stored in the storage unit 15 grows and increases. The scale of the integration tree is determined by evaluating the route from the latest node (node of the latest layer) to the root node in this integration tree to the root node, and detecting and deleting the node to be deleted. Can be kept below a certain level.

図5は、統合ツリーの規模を一定以下に抑えるための枝刈を説明する図である。図5中、ノードは図3及び図4と同様に図示されており、さらに、削除対象のノードを●印で表す。図5中、破線で囲まれたノードは、最新レイヤーのノードを示す。図5(a)に示す統合ツリーの推定経路の評価の結果、例えば図5(b)に●印で表す不良ノードが検出されると、図5(c)に示すようにこれらの不良ノードを削除する。次に、子ノードを持っていない図5(d)に●印で表すノードを抽出する。この場合、子ノードを持っていないノードのうち、最新レイヤーに存在するノードは抽出の対象外とする。次に、図5(e)に示すように、抽出された、子ノードを持っていないノードを削除する。さらに、図5(f)に破線で囲んで示すように、1つの子だけを持つノードを抽出する。この場合も、1つの子だけを持つノードのうち、最新レイヤーに存在するノードは抽出の対象外とする。そして、図5(g)に示すように、図5(f)に破線で囲んで示す子ノードと親ノードを1つのノードにマージする。このようにして、この例では図5(a)に示す統合ツリーの規模を一定以下に抑えるための枝刈を行った結果、統合ツリーの規模は図5(g)に示す如き規模となる。なお、統合ツリーの規模を一定以下に抑えるための枝刈の詳細については後述する。   FIG. 5 is a diagram for explaining pruning to keep the scale of the integrated tree below a certain level. In FIG. 5, the nodes are illustrated in the same manner as in FIGS. 3 and 4, and the nodes to be deleted are indicated by ● marks. In FIG. 5, nodes surrounded by broken lines indicate nodes of the latest layer. As a result of the evaluation of the estimated path of the integrated tree shown in FIG. 5A, for example, when defective nodes represented by ● are detected in FIG. 5B, these defective nodes are displayed as shown in FIG. delete. Next, a node represented by a mark ● in FIG. 5D that does not have a child node is extracted. In this case, among the nodes that do not have child nodes, nodes existing in the latest layer are excluded from extraction. Next, as shown in FIG. 5E, the extracted nodes that do not have child nodes are deleted. Further, a node having only one child is extracted as shown by being surrounded by a broken line in FIG. Also in this case, among the nodes having only one child, the nodes existing in the latest layer are excluded from extraction. Then, as shown in FIG. 5G, the child node and the parent node surrounded by a broken line in FIG. 5F are merged into one node. In this way, in this example, as a result of performing pruning to keep the scale of the integrated tree shown in FIG. 5 (a) below a certain level, the scale of the integrated tree becomes the scale shown in FIG. 5 (g). Details of pruning to keep the scale of the integrated tree below a certain level will be described later.

図6は、統合器の動作の概要を説明するフローチャートである。図6において、統合器10は一点鎖線で囲まれた処理を実行し、(1)〜(28)は図6の各処理でやり取りされる情報の流れの一例を示す。ステップS104〜S120は、統合部10を形成するCPUの各機能が実行する処理(または、手順)に相当する。推定器4,6,8の計測値と地図A,B,Cとに基づいて推定されたロボット100の位置姿勢は、(1),(2),(3)で示すように統合器10に入力される。   FIG. 6 is a flowchart for explaining an outline of the operation of the integrator. In FIG. 6, the integrator 10 executes a process surrounded by a one-dot chain line, and (1) to (28) show an example of a flow of information exchanged in each process of FIG. Steps S <b> 104 to S <b> 120 correspond to processing (or procedures) executed by each function of the CPU forming the integration unit 10. The position and orientation of the robot 100 estimated based on the measured values of the estimators 4, 6, and 8 and the maps A, B, and C are stored in the integrator 10 as shown in (1), (2), and (3). Entered.

統合器10は、初めて推定器4からの入力を受け取った時、t=0として統合ツリーを初期化する。具体的には、図5に示したようなルートノードを1つ生成して、推定器4からの表1に示す如き入力をルートノードにコピーすると共に、表2に如きデータセットを持たせる。表2中、Nはロボットシステム200が有する推定器に任意に割り当てられた「1」から開始する連番を示し、この例では推定器のID番号とは異なる。この例では、3つの推定器4,6,8を用いているので、表2において「推定器[1]」は推定器4、「推定器[2]」は推定器6、「推定器[N]」は推定器8を表す。   When the integrator 10 receives the input from the estimator 4 for the first time, the integrator 10 initializes the integration tree with t = 0. Specifically, one root node as shown in FIG. 5 is generated, and an input as shown in Table 1 from the estimator 4 is copied to the root node, and a data set as shown in Table 2 is provided. In Table 2, N indicates a serial number starting from “1” arbitrarily assigned to the estimator included in the robot system 200, and is different from the ID number of the estimator in this example. In this example, since three estimators 4, 6, and 8 are used, in Table 2, “estimator [1]” is estimator 4, “estimator [2]” is estimator 6, and “estimator [ N] ”represents the estimator 8.

Figure 0005776332
Figure 0005776332

Figure 0005776332
Figure 0005776332

(1) 推定器4は、表1の如きデータを統合器10に入力する。   (1) The estimator 4 inputs data as shown in Table 1 to the integrator 10.

(2) 推定器6は、表1の如きデータを統合器10に入力する。   (2) The estimator 6 inputs data as shown in Table 1 to the integrator 10.

(3) 推定器8は、表1の如きデータを統合器10に入力する。   (3) The estimator 8 inputs data as shown in Table 1 to the integrator 10.

(4) ステップS104では、統合器10が推定器4,6,8からの最新入力を待ち合わせる入力待ち状態となり、新しい入力があるか否かを示すフラグf1を管理する。上記の如く、統合器10への入力は表1に示す如き内容のデータである。ステップS105は、フラグf1が推定器からの新しい入力があることを示すと、新たな入力値を共有メモリに書き込む。共有メモリは、統合器10内の記憶部で形成可能である。   (4) In step S104, the integrator 10 enters an input waiting state in which it waits for the latest input from the estimators 4, 6, and 8, and manages a flag f1 indicating whether or not there is a new input. As described above, the input to the integrator 10 is data having contents as shown in Table 1. Step S105 writes a new input value to the shared memory when the flag f1 indicates that there is a new input from the estimator. The shared memory can be formed by a storage unit in the integrator 10.

(5) ステップS106では、統合器10が共有メモリから入力値を読み出し、統合ツリーを初期化するか否かを判定する。統合器10が初めて推定器4,6,8からの入力を受け取った場合、判定結果はYESであり上記の如く統合ツリーの初期化を行う。   (5) In step S106, the integrator 10 reads an input value from the shared memory and determines whether or not to initialize the integration tree. When the integrator 10 receives the input from the estimators 4, 6 and 8 for the first time, the determination result is YES, and the integration tree is initialized as described above.

(6) 統合器10は、初期化を行うか否かを示すフラグf2と共有メモリから読み出した推定器からの入力値を後述するステップS107に入力する。   (6) The integrator 10 inputs a flag f2 indicating whether or not to perform initialization and an input value from the estimator read from the shared memory to step S107 described later.

(8) 統合器10は、推定器からの入力に含まれているオドメトリ成分を後述するステップS110に入力する。   (8) The integrator 10 inputs the odometry component included in the input from the estimator to step S110 described later.

(9) 統合器10は、推定器からの入力に含まれているロボット100の位置姿勢の推定結果成分を後述するステップS111に入力する。   (9) The integrator 10 inputs the position / orientation estimation result component of the robot 100 included in the input from the estimator to step S111 described later.

(10) 統合器10は、推定器からの入力に含まれている推定器のID、及びロボット100の位置姿勢の推定結果成分を後述するステップS112に入力する。   (10) The integrator 10 inputs the ID of the estimator included in the input from the estimator and the estimation result component of the position and orientation of the robot 100 to step S112 described later.

ステップS107では、統合器10が上記の如く統合ツリーを初期化する。   In step S107, the integrator 10 initializes the integration tree as described above.

(7) ステップS108では、統合器10が統合ツリーを統合器10内の記憶部で形成可能な共有メモリに保持する。   (7) In step S <b> 108, the integrator 10 holds the integration tree in a shared memory that can be formed by the storage unit in the integrator 10.

(11) 統合器10は、共有メモリに保持された統合ツリーをステップS109に入力する。   (11) The integrator 10 inputs the integration tree held in the shared memory to step S109.

(19) 統合器10は、共有メモリに保持された統合ツリーを後述するステップS115に入力する。   (19) The integrator 10 inputs the integration tree held in the shared memory to step S115 described later.

(12) ステップS109では、統合器10が統合ツリーの最新レイヤーの全ノードを取得する。統合ツリーが既に初期化されていれば、最新レイヤーにある全てのノードをリストとして取得する。統合器10は、最新レイヤーから抽出したノードのリストをステップS110に入力する。ステップS110では、統合器10がレイヤー上の全ノードの状態をオドメトリによる予測に基づいて更新する。具体的には、ステップS109で取得したノードのリスト(ノードリスト)の全てのノード(メンバー)に対して、図10と共に後述する式(11)、式(12)に基づいて予測更新を行う。   (12) In step S109, the integrator 10 acquires all the nodes of the latest layer of the integration tree. If the integration tree has already been initialized, all nodes in the latest layer are acquired as a list. The integrator 10 inputs the list of nodes extracted from the latest layer to Step S110. In step S110, the integrator 10 updates the state of all nodes on the layer based on prediction by odometry. Specifically, prediction update is performed on all nodes (members) in the node list (node list) acquired in step S109 based on formulas (11) and (12) described later with reference to FIG.

(13) 統合器10は、図10と共に後述する式(20)を計算するための予測更新したフィルタ状態、及び予測した観測値の共分散行列をステップS111に入力する。ステップS111は、各ノードの持つHMMによる入力値の信頼性評価を図10と共に後述する式(21)〜(24)に基づいて行い、推定器から入力したロボット100の位置姿勢の推定結果の信頼性のレベルを計算する。   (13) The integrator 10 inputs the predicted and updated filter state for calculating the equation (20) described later with reference to FIG. 10 and the covariance matrix of the predicted observation value to the step S111. In step S111, the reliability of the input value by the HMM of each node is evaluated based on equations (21) to (24) described later with reference to FIG. 10, and the reliability of the estimation result of the position and orientation of the robot 100 input from the estimator is determined. Calculate gender level.

(14) 位置姿勢の推定結果の信頼性のレベルが「高」であると、統合器10は、信頼性のレベル、図10と共に後述する式(18),(19)を計算するための予測更新したフィルタ状態、予測した観測値、及び予測した観測値の共分散行列をステップS112に入力する。信頼性のレベルが「高」であると、ステップS112では、統合器10が信頼性のレベルが「高」と評価されたノードについてノードの状態を図10と共に後述する式(18),(19)に基づいて更新する。   (14) When the reliability level of the position / orientation estimation result is “high”, the integrator 10 predicts for calculating the reliability level, equations (18) and (19) to be described later with reference to FIG. The updated filter state, the predicted observation value, and the covariance matrix of the predicted observation value are input to step S112. If the reliability level is “high”, in step S112, the node states of the nodes for which the integrator 10 has evaluated the reliability level as “high” are expressed by equations (18) and (19) described later with reference to FIG. ) To update.

(15) 位置姿勢の推定結果の信頼性のレベルが「低」であると、統合器10は、信頼性のレベル、及び予測更新したフィルタ状態を後述するステップS113に入力する。   (15) If the reliability level of the position / orientation estimation result is “low”, the integrator 10 inputs the reliability level and the predicted and updated filter state to step S113 described later.

(15−1) 位置姿勢の推定結果の信頼性のレベルが「中」であると、統合器10は、信頼性のレベル、図10と共に後述する式(18),(19)を計算するための予測更新したフィルタ状態、予測した観測値、及び予測した観測値の共分散行列をステップS112に入力する。信頼性のレベルが「中」であると、ステップS112では、統合器10が信頼性のレベルが「中」と評価されたノードについてノードの状態を図10と共に後述する式(18),(19)に基づいて更新する。   (15-1) When the reliability level of the position / orientation estimation result is “medium”, the integrator 10 calculates the reliability level, equations (18) and (19) described later together with FIG. The predicted updated filter state, the predicted observation value, and the covariance matrix of the predicted observation value are input to step S112. If the reliability level is “medium”, in step S112, the state of the node of the node for which the integrator 10 has evaluated the reliability level as “medium” is expressed by equations (18) and (19) described later with reference to FIG. ) To update.

(15−2) 位置姿勢の推定結果の信頼性のレベルが「中」であると、統合器10はさらに、信頼性のレベル、及び予測更新したフィルタ状態を後述するステップS113に入力する。   (15-2) If the reliability level of the position / orientation estimation result is “medium”, the integrator 10 further inputs the reliability level and the predicted and updated filter state to step S113 described later.

(16) 統合器10は、観測更新したフィルタ状態をステップS113に入力する。ステップS113は、親ノードに追加する子ノードを生成する。   (16) The integrator 10 inputs the observed and updated filter state to Step S113. A step S113 generates a child node to be added to the parent node.

(17) 統合器10は、新しいフィルタ状態を持った子ノードのリストをステップS114に入力する。これにより、ステップS114では、統合器10が生成した子ノードを各親ノードに追加する。信頼性のレベルが「高」と評価されたノードには1つだけの子ノードを追加する。信頼性のレベルが「低」と評価されたノードにも1つだけの子ノードを追加する。信頼性のレベルが「中」と評価されたノードには2つの子ノードを追加する。   (17) The integrator 10 inputs a list of child nodes having a new filter state in step S114. Thereby, in step S114, the child node generated by the integrator 10 is added to each parent node. Only one child node is added to a node whose reliability level is evaluated as “high”. Only one child node is added to a node whose reliability level is evaluated as “low”. Two child nodes are added to the node whose reliability level is evaluated as “medium”.

図7は、統合ツリーの規模の増大を説明する図である。図7中、HL,ML,LLは、夫々信頼性のレベルが「高」、「中」、「低」のノードを示す。例えば時刻t+1に推定器からの最新の入力があった時に、統合ツリーから時刻tに作成したノードを全て抽出する。ただし、t+1=1の場合、抽出されるノードはルートノードのみとなる。次に、各ノードに対して以下の処理を行う。ここで、新しいノードΦを1つ作成しておき、現在処理しているノードをΨで表すものとする。ノードΨからオドメトリを抽出して、入力された最新のオドメトリと合わせて、図10と共に後述する式(1)〜(6)のようにノードΨに保持している推定状態を更新する。更新した推定情報は、ノードΦに保存し、これと同時に、最新のオドメトリもノードΦに保存する。信頼性のレベルは、図10と共に供述する式(21)〜(24)に基づいて計算することができる。   FIG. 7 is a diagram for explaining an increase in the scale of the integrated tree. In FIG. 7, HL, ML, and LL indicate nodes whose reliability levels are “high”, “medium”, and “low”, respectively. For example, when there is the latest input from the estimator at time t + 1, all the nodes created at time t are extracted from the integration tree. However, when t + 1 = 1, only the root node is extracted. Next, the following processing is performed for each node. Here, one new node Φ is created, and the currently processed node is represented by Ψ. The odometry is extracted from the node Ψ, and the estimated state held in the node Ψ is updated together with the latest input odometry as shown in equations (1) to (6) described later with reference to FIG. The updated estimation information is stored in the node Φ, and at the same time, the latest odometry is stored in the node Φ. The level of reliability can be calculated based on the equations (21) to (24) described together with FIG.

信頼性のレベルが「高(HL)」の場合、図10と共に後述する式(16)〜(19)に基づいて新しいノードΦのフィルタ状態の観測更新を行って、ノードΨに図7中時刻t+1の左側に示すように子ノードとして追加する。信頼性のレベルが「低(LL)」の場合、新しいノードΦのフィルタ状態の観測更新は行わず、ノードΨに図7中時刻t+1の中央に示すように子ノードとして直接追加する。信頼性のレベルが「中(ML)」の場合、図7中時刻t+1の右側に示すように新しいノードΦをコピーして、もう1つのノードΦ’を作成する。ノードΦ’のフィルタ状態の観測更新を行い、ノードΨに子ノードとして追加する。また、ノードΦのフィルタ状態の観測更新は行わず、ノードΨに2番目の子ノードとして直接追加する。   When the reliability level is “high (HL)”, the observation state of the filter state of the new node Φ is updated based on the equations (16) to (19) described later with reference to FIG. It is added as a child node as shown on the left side of t + 1. When the level of reliability is “low (LL)”, the observation update of the filter state of the new node Φ is not performed, and the node Ψ is directly added as a child node as shown in the center at time t + 1 in FIG. When the reliability level is “medium (ML)”, the new node Φ is copied to create another node Φ ′ as shown on the right side of the time t + 1 in FIG. Update the observation of the filter state of the node Φ ′ and add it as a child node to the node Ψ. In addition, the observation update of the filter state of the node Φ is not performed, and the node Ψ is directly added as a second child node.

(18) 統合器10は、子ノードを追加した統合ツリーをステップS108に入力する。ステップS108では、統合器10が統合ツリーを保持するメモリを更新する。統合ツリーは、統合器10内の記憶部で形成可能である。   (18) The integrator 10 inputs the integration tree to which the child node has been added to step S108. In step S108, the integrator 10 updates the memory holding the integration tree. The integrated tree can be formed by a storage unit in the integrator 10.

(19) 統合器10は、メモリから統合ツリーを読み出してステップS115に入力する。ステップS115は、統合ツリーに含まれている最新レイヤー上にある全てのノードをリストとして取得する。ステップS115で取得されるノードは、ステップS114で統合ツリーに新たに追加した子ノードである。   (19) The integrator 10 reads the integration tree from the memory and inputs it to step S115. In step S115, all nodes on the latest layer included in the integration tree are acquired as a list. The node acquired in step S115 is a child node newly added to the integration tree in step S114.

(20) 統合器10は、最新ノード、すなわち、ステップS114で新たに追加した子ノードを、ステップS116に入力する。ステップS116では、統合器10がリスト内の各ノードに対して、ルートノードまで辿って得られた全経路を抽出する。   (20) The integrator 10 inputs the latest node, that is, the child node newly added in step S114, to step S116. In step S116, the integrator 10 extracts all routes obtained by tracing to the root node for each node in the list.

(21) 統合器10は、抽出した全経路のリストをステップS117に入力する。ステップS117では、統合器10が抽出した各経路に対して、オドメトリで測定した運動パターンとフィルタで推定した運動パターンを比較して、図10と共に後述する式(25)に基づいてリスト中の経路を評価する経路評価を行う。   (21) The integrator 10 inputs the extracted list of all routes to step S117. In step S117, for each path extracted by the integrator 10, the movement pattern measured by odometry and the movement pattern estimated by the filter are compared, and the path in the list based on the equation (25) described later with reference to FIG. Perform path evaluation to evaluate

(22) 統合器10は、経路評価により得られた経路の良さを表す評価スコアのうち、評価スコアが閾値より低い下位のノードのリストをステップS118入力する。ステップS118では、統合器10が下位のノードを統合ツリーから削除する。   (22) The integrator 10 inputs, in step S118, a list of lower nodes whose evaluation score is lower than the threshold among the evaluation scores representing the goodness of the route obtained by the route evaluation. In step S118, the integrator 10 deletes a lower node from the integration tree.

図8は、統合ツリーの最新レイヤーから不良ノードを削除する処理を説明する図である。最新レイヤーにK個のノードが含まれているとすると、Kが事前に設定した閾値Kthreshより大きくなるとノードの削除処理を行う。この場合、K−Kthresh個のノードを削除することになる。各ノードの対応する経路の評価スコアは、例えばΩ(P(Φ)),k=0,1,...,k,...Kで表される。そこで、ノードを評価スコアΩ(P(Φ))の昇順でソートし、下位のK−Kthresh個のノードを最新レイヤーから削除することで、統合ツリーは図8(a)に示す状態から図8(b)に示す状態に変化する。図8(a)では、削除対象の不良ノードを●印で表す。 FIG. 8 is a diagram illustrating processing for deleting a defective node from the latest layer of the integration tree. Assuming that K nodes are included in the latest layer, node deletion processing is performed when K is greater than a preset threshold value K thresh . In this case, K−K thresh nodes are deleted. The evaluation score of the path corresponding to each node is, for example, Ω (P (Φ k )), k = 0, 1,. . . , K,. . . Represented by K. Therefore, by sorting the nodes in the ascending order of the evaluation score Ω (P (Φ k )) and deleting the lower K−K thresh nodes from the latest layer, the integrated tree is in the state shown in FIG. The state changes to the state shown in FIG. In FIG. 8A, a defective node to be deleted is represented by a mark ●.

(23) 統合器10は、ステップS117の経路評価により得られた経路の良さを表す評価スコアをステップS120に入力する。ステップS120では、統合器10が統合結果と信頼性の評価結果を出力する。具体的には、経路の評価スコアのトップノードが持っているフィルタ推定値を統合ツリーの処理結果とし、後述するアプリケーションに出力する。また、これと同時に、この処理結果と推定した信頼性のレベルを推定モジュールを形成する推定器にフィードバックする。   (23) The integrator 10 inputs an evaluation score representing the goodness of the route obtained by the route evaluation in step S117 to step S120. In step S120, the integrator 10 outputs an integration result and a reliability evaluation result. Specifically, the filter estimation value possessed by the top node of the route evaluation score is set as the processing result of the integrated tree, and is output to the application described later. At the same time, the processing result and the estimated reliability level are fed back to the estimator forming the estimation module.

(24) 統合器10は、ステップS118により下位ノードが削除された統合ツリーをステップS108に入力して、統合ツリーを保持するメモリを更新する。   (24) The integrator 10 inputs the integrated tree from which the lower nodes have been deleted in step S118 to step S108, and updates the memory holding the integrated tree.

なお、ステップS119では、統合器10が統合ツリーのメンテナンスを行う。図9は、統合ツリーのメンテナンスを説明する図である。統合ツリーのメンテナンスでは、図9(a)に示すように、最新レイヤーを除き、子ノードを持っていないノードを統合ツリーから抽出し、図9(b)に示すように抽出した子ノードを統合ツリーから削除する。また、図9(c)に破線で囲んで示すように、最新レイヤーを除き、1つの子だけを持つノードを統合ツリーから抽出する。そして、図9(d)に示すように、図9(c)に破線で囲んで示す子ノードと親ノードを1つの新しいノードにマージすることで、子ノードの保持しているデータを新しいノードのデータとする。このような統合ツリーのメンテナンスは、図5(d)〜図5(f)と共に説明した統合ツリーの規模を一定以下に抑えるための枝刈と同様である。   In step S119, the integrator 10 performs maintenance of the integration tree. FIG. 9 is a diagram for explaining the maintenance of the integrated tree. In the maintenance of the integration tree, as shown in FIG. 9A, nodes that do not have child nodes are extracted from the integration tree except the latest layer, and the extracted child nodes are integrated as shown in FIG. 9B. Remove from the tree. Further, as shown in FIG. 9C surrounded by a broken line, a node having only one child is extracted from the integrated tree except for the latest layer. Then, as shown in FIG. 9D, by merging the child node and the parent node surrounded by a broken line in FIG. 9C into one new node, the data held by the child node is replaced with the new node. Data. Such integration tree maintenance is the same as the pruning for keeping the scale of the integration tree below a certain level described with reference to FIGS.

(25) 統合器10は、メンテナンスを行った統合ツリーをステップS108に入力してメモリに保持する。   (25) The integrator 10 inputs the maintenance integrated tree into step S108 and holds it in the memory.

(26) 統合器10は、経路の評価スコアのトップノードが持っているフィルタ推定値を統合ツリーの処理結果として、例えばアプリケーションを実行するステップS121に入力する。これにより、アプリケーションには、統合ツリー方式で推定したロボット100の位置姿勢の情報を入力できる。アプリケーションは、例えば統合ツリーから推定したロボット100の位置姿勢を用いてロボット100の移動経路を計画あるいは決定する移動経路計画部16が実行するものである。   (26) The integrator 10 inputs the filter estimation value possessed by the top node of the route evaluation score as the processing result of the integration tree, for example, in step S121 for executing the application. Thereby, the position and orientation information of the robot 100 estimated by the integrated tree method can be input to the application. The application is executed by, for example, the movement path planning unit 16 that plans or determines the movement path of the robot 100 using the position and orientation of the robot 100 estimated from the integrated tree.

(27) 統合器10は、上記の一連の統合処理が終了したことを示すフラグf3をステップS104に入力する。   (27) The integrator 10 inputs to the step S104 a flag f3 indicating that the series of integration processes has been completed.

(28) 統合器10は、統合ツリー方式で推定したロボット100の位置姿勢、推定した信頼性のレベルを、推定モジュールへの診断結果として、推定モジュールを形成する推定器にフィードバックする。   (28) The integrator 10 feeds back the position and orientation of the robot 100 estimated by the integrated tree method and the estimated reliability level to the estimator forming the estimation module as a diagnosis result to the estimation module.

図10は、統合器の動作をより詳細に説明するフローチャートである。図10において、 (1)〜(48)は図10の各ステップでやり取りされる情報の流れの一例を示す。ステップS201〜S234は、統合部10を形成するCPUの各機能が実行する処理(または、手順)に相当する。ステップS201は、ロボット100またはロボット100とは別体の情報処理装置から入力される統合処理開始コマンドに応答して統合処理を開始する。   FIG. 10 is a flowchart for explaining the operation of the integrator in more detail. 10, (1) to (48) show an example of the flow of information exchanged at each step of FIG. Steps S201 to S234 correspond to processes (or procedures) executed by each function of the CPU forming the integration unit 10. In step S201, the integration processing is started in response to the integration processing start command input from the robot 100 or an information processing apparatus separate from the robot 100.

(1) 統合処理の開始を示す開始コマンドは、ステップS202に入力され、ステップS202は、推定器4,6,8からの入力待ち状態となり、推定器4,6,8から新しい入力があるか否かをチェックする。   (1) A start command indicating the start of the integration process is input to step S202, and step S202 enters a state of waiting for input from the estimators 4, 6, and 8, and whether there is a new input from the estimators 4, 6, and 8. Check whether or not.

(2) 新しい入力があると、新しい入力があることを示すフラグf1をステップS203に入力する。ステップS203は、入力されたフラグが終了フラグであるか否かを判定する。ステップS203の判定結果がNOであると、フラグをステップS205に入力する。他方、ステップS203の判定結果がYESであると、ステップS204で統合処理は終了する。   (2) When there is a new input, a flag f1 indicating that there is a new input is input to step S203. In step S203, it is determined whether or not the input flag is an end flag. If the decision result in the step S203 is NO, a flag is inputted to the step S205. On the other hand, if the decision result in the step S203 is YES, the integration process ends in a step S204.

ステップS205は、入力されたフラグが新しい入力を示すフラグf1であるか否かを判定する。ステップS205の判定結果がYESであると処理はステップS206へ進み、判定結果がNOであると処理はステップS202へ戻る。   In step S205, it is determined whether or not the input flag is a flag f1 indicating a new input. If the determination result in step S205 is YES, the process proceeds to step S206, and if the determination result is NO, the process returns to step S202.

(5) ステップS205の判定結果がNOであると、新しい入力の待ちコマンドをステップS202に入力する。   (5) If the decision result in the step S205 is NO, a new input wait command is inputted to the step S202.

(6) ステップS205の判定結果がYESであると、推定器からの入力データを例えば上記の表1の如き形式でステップS206に入力する。ステップS206は、このような推定器からの入力データから推定器の推定情報(すなわち、推定結果)だけを抽出する。   (6) If the decision result in the step S205 is YES, the input data from the estimator is inputted to the step S206 in the format as shown in Table 1 above, for example. In step S206, only the estimation information (that is, the estimation result) of the estimator is extracted from the input data from such an estimator.

(7) ステップS206の後、データの抽出完了フラグf4、及び推定器の入力データをステップS207に入力する。ステップS207は、例えば上記の表1の如き形式の推定器の入力データからオドメトリを抽出する。   (7) After step S206, the data extraction completion flag f4 and the input data of the estimator are input to step S207. In step S207, for example, odometry is extracted from the input data of the estimator having the format shown in Table 1 above.

(8) ステップS206の後、推定器が推定したロボット100の位置姿勢、及び推定器の推定精度を表す推定結果の共分散行列を後述するステップS223に入力する。   (8) After step S206, the position and orientation of the robot 100 estimated by the estimator and the covariance matrix of the estimation result representing the estimation accuracy of the estimator are input to step S223 described later.

(10) ステップS206の後、上記(8)と同様に、推定器が推定したロボット100の位置姿勢、及び推定器の推定精度を表す推定結果の共分散行列を後述するステップS218に入力する。   (10) After step S206, as in (8) above, the position and orientation of the robot 100 estimated by the estimator and the covariance matrix of the estimation result representing the estimation accuracy of the estimator are input to step S218 described later.

(9) ステップS207の後、オドメトリの抽出が完了したことを示すフラグf5、及び推定器の入力データをステップS208に入力する。ステップS208は、入力元の推定器のID番号を識別して抽出する。   (9) After step S207, a flag f5 indicating that extraction of odometry is completed and input data of the estimator are input to step S208. In step S208, the ID number of the input estimator is identified and extracted.

(21) ステップS207の後、オドメトリを後述するステップS216に入力する。   (21) After step S207, odometry is input to step S216 described later.

(11) ステップS208の後、推定器のID番号の抽出が完了したことを示すフラグf6をステップS209に入力する。ステップS209は、統合ツリーの最新レイヤーにあるノードを全て抽出して、抽出したノードのノードリストを作成する。ここで、最新レイヤーとは、前回の処理で統合ツリーに追加した新しいノードを含むレイヤーを言う。   (11) After step S208, a flag f6 indicating that the extraction of the ID number of the estimator is completed is input to step S209. In step S209, all the nodes in the latest layer of the integration tree are extracted, and a node list of the extracted nodes is created. Here, the latest layer is a layer including a new node added to the integration tree in the previous process.

(12) ステップS208の後、抽出した推定器のID番号を後述するステップS214に入力する。   (12) After step S208, the extracted ID number of the estimator is input to step S214 described later.

(13) 抽出された、最新レイヤーにあるノードの数(ノード数)をステップS210に入力する。ステップS210は、ノード数がゼロ(0)であるか否かを判定し、判定結果がYESであれば統合ツリーが構築されていないことが分かるので処理はステップS211へ進み、判定結果がNOであれば処理はステップS212へ進む。   (13) The number of extracted nodes in the latest layer (number of nodes) is input to step S210. In step S210, it is determined whether or not the number of nodes is zero (0). If the determination result is YES, it is understood that an integrated tree has not been constructed, and thus the process proceeds to step S211. The determination result is NO. If so, the process proceeds to step S212.

(14) ステップS210の判定結果がYESであると、統合ツリーの初期化コマンドをステップS211に入力する。ステップS211は、初期化コマンドに応答して統合ツリーを上記の如く初期化する。   (14) If the decision result in the step S210 is YES, an integration tree initialization command is inputted to the step S211. Step S211 initializes the integration tree as described above in response to the initialization command.

(15) ステップS211の後、入力待ちコマンドをステップS202に入力する。   (15) After step S211, an input waiting command is input to step S202.

(16) ステップS210の判定結果がNOであると、作成したノードリストをステップS212に入力する。ステップS212は、ノードリストからノードを1つ抽出して以下に説明するステップS213,S214,S215の処理を開始し、抽出したノードをNDとする処理を、ノードリスト中の未処理の各ノードに対して行う。   (16) If the decision result in the step S210 is NO, the created node list is inputted to the step S212. In step S212, one node is extracted from the node list and the processing of steps S213, S214, and S215 described below is started, and the processing of setting the extracted node as ND is performed on each unprocessed node in the node list. Against.

(17) ステップS212の後、上記の表2の如きデータセットを持つノードNDをステップS213に入力する。   (17) After step S212, the node ND having the data set shown in Table 2 is input to step S213.

(18) ステップS212の後、上記(17)と同様にして、上記の表2の如きデータセットを持つノードNDをステップS214に入力する。   (18) After step S212, the node ND having the data set shown in Table 2 is input to step S214 in the same manner as in (17) above.

(19) ステップS212の後、上記(17)と同様にして、上記の表2の如きデータセットを持つノードNDをステップS215に入力する。   (19) After step S212, the node ND having the data set shown in Table 2 is input to step S215 in the same manner as in (17) above.

ステップS213は、ノードNDの持つフィルタデータからこれまでにフィルタが推定したロボット100の位置姿勢、共分散行列、及びオドメトリを抽出する。   In step S213, the position and orientation of the robot 100 estimated by the filter so far, the covariance matrix, and the odometry are extracted from the filter data of the node ND.

(20) ステップS213の後、フィルタがこれまでに推定したロボット100の位置姿勢、及びオドメトリをステップS216に入力する。   (20) After step S213, the position and orientation of the robot 100 estimated by the filter and the odometry are input to step S216.

ステップS214は、ステップS208の後(12)で入力した推定器のID番号を使ってノードNDから推定器IDに対応したHMMを抽出する。ノードNDは、推定器数分のHMMを持っているが、この処理では、統合器10にデータを出力した推定器の対応するHMMだけを抽出する。   In step S214, the HMM corresponding to the estimator ID is extracted from the node ND using the ID number of the estimator input in (12) after step S208. The node ND has HMMs corresponding to the number of estimators. In this process, only the HMMs corresponding to the estimators that output data to the integrator 10 are extracted.

(25) ステップS214の後、HMMデータ、すなわち、これまで計算した状態「1」にある確率、状態「2」にある確率をステップS218に入力する。HMMデータについては、図13と共に供述する。   (25) After step S214, the HMM data, that is, the probability in state “1” and the probability in state “2” calculated so far are input to step S218. The HMM data will be described together with FIG.

ステップS215は、ノードからこれまでの経路の評価スコアを抽出する。具体的には、以下の経路評価処理を行うために、ノードNDに保存されているルートノードからの経路に対する評価スコアを抽出する。   In step S215, the evaluation score of the route so far is extracted from the node. Specifically, in order to perform the following route evaluation process, the evaluation score for the route from the route node stored in the node ND is extracted.

Figure 0005776332
Figure 0005776332

(48) ステップS215の後、ノードNDまでの経路評価スコアを後述するステップS229に入力する。   (48) After step S215, the route evaluation score to the node ND is input to step S229 described later.

ステップS216は、オドメトリで位置姿勢を予測更新する。具体的には、(21)で入力した新しいオドメトリと、(20)でノードNDに保存されているオドメトリを使って、以下に説明する式(15)までの処理を行う。   In step S216, the position and orientation are predicted and updated by odometry. Specifically, using the new odometry input in (21) and the odometry stored in the node ND in (20), processing up to equation (15) described below is performed.

Figure 0005776332
Figure 0005776332

Figure 0005776332
Figure 0005776332

Figure 0005776332
Figure 0005776332

Figure 0005776332
Figure 0005776332

Figure 0005776332
Figure 0005776332

図13は、隠れマルコフモデル(HMM)を説明する図である。HMMは、各推定器の性能に合わせて構築される。図13に示すようなHMMでは、状態「1」は推定器の入力が信頼できる状態、状態「2」推定器の入力が信頼できない状態を表す。観測シンボル「0」は、推定器の入力がフィルタの予測ゲート外にあることを示し、観測シンボル「1」は推定器の入力がフィルタの予測ゲート内にあることを示す。   FIG. 13 is a diagram for explaining a hidden Markov model (HMM). The HMM is constructed according to the performance of each estimator. In the HMM as shown in FIG. 13, the state “1” represents a state where the input of the estimator is reliable, and the state “2” represents a state where the input of the estimator is not reliable. Observation symbol “0” indicates that the input of the estimator is outside the prediction gate of the filter, and observation symbol “1” indicates that the input of the estimator is within the prediction gate of the filter.

Figure 0005776332
Figure 0005776332

次に、HMMのパラメータの設定について説明する。HMMの状態遷移確率というパラメータは、HMMを使って評価する対象の推定器の性能によって決める。例えば、LRFによる自己位置推定と、カメラによる(例えば、画像ランドマークを用いた)自己位置推定を行う2つの推定器(図1の推定器4または6と、推定器8に相当)があるものとする。この場合、2つの推定器は以下のような性質c1,c2を有する。   Next, setting of HMM parameters will be described. The HMM state transition probability parameter is determined by the performance of the estimator to be evaluated using the HMM. For example, there are two estimators (equivalent to the estimator 4 or 6 in FIG. 1 and the estimator 8) that perform self-position estimation by LRF and self-position estimation by a camera (for example, using an image landmark). And In this case, the two estimators have the following properties c1 and c2.

c1:LRFの計測情報を使って自己位置推定を行う際、前回のロボット100の推定位置の近傍で今回の新しい位置を探す。この場合、前回の推定位置が間違っていたら、今回探した結果も間違いである可能性が高い。   c1: When self-position estimation is performed using LRF measurement information, the current new position is searched in the vicinity of the previous estimated position of the robot 100. In this case, if the previous estimated position is wrong, the result searched this time is likely to be wrong.

c2:逆に、画像ランドマークを使う場合、前回のロボット100の推定位置が間違っていたとしても、今回推定した結果は真の位置に近づいていく。   c2: On the contrary, when using the image landmark, even if the previous estimated position of the robot 100 is incorrect, the result estimated this time approaches the true position.

このため、状態遷移マトリクスでは、例えば
LRFの場合: a00=0.90, a01=0.10, a10=0.01,a11=0.99;
カメラの場合: a00=0.95, a01=0.05, a10=0.10,a11=0.90;
に設定される。ここで、
a00: 前回は信頼でき、今回も信頼できる確率を示し、LRFとカメラの特性からカメラの方はより高く設定されている。
a01: 前回は信頼でき、今回は信頼できない確率を示し、a00+a01=1となるように設定している。
a10: 前回は信頼できず、今回は信頼できる確率(リカバリー性能)を示し、LRFの場合はリカバリー機能が弱いため、カメラに比べで低く設定されている。
a11: 前回は信頼できず、今回も信頼できない確率を示し、a10+a11=1となるように設定される。
図10のステップS216以降の処理の説明に戻る。
Therefore, in the state transition matrix, for example, in the case of LRF: a00 = 0.90, a01 = 0.10, a10 = 0.01, a11 = 0.99;
For the camera: a00 = 0.95, a01 = 0.05, a10 = 0.10, a11 = 0.90;
Set to here,
a00: The previous time is reliable and this time also indicates the probability of being reliable, and the camera is set higher from the characteristics of the LRF and the camera.
a01: The last time is reliable, and this time is an unreliable probability, and a00 + a01 = 1 is set.
a10: Unreliable last time, this time shows a reliable probability (recovery performance), and in the case of LRF, the recovery function is weak, so it is set lower than the camera.
a11: The probability that the previous time is unreliable and this time is also unreliable is set so that a10 + a11 = 1.
Returning to the description of the processing after step S216 in FIG.

(22) ステップS216の後、推定器の推定値に対しての予測値、及び予測ゲート(上記の式(14)と式(15)の計算結果)のデータをステップS218に入力する。   (22) After step S216, the predicted value for the estimated value of the estimator and the data of the prediction gate (the calculation results of the above equations (14) and (15)) are input to step S218.

(23) ステップS216の後、上記の式(11)と式(12)の計算結果のデータをステップS217に入力する。ステップS217は、新しいノードを1つ作成し、そのノードに(23)で入力されるデータを保存する。   (23) After step S216, the calculation result data of the above equations (11) and (12) is input to step S217. In step S217, one new node is created, and the data input in (23) is stored in that node.

(24) ステップS217の後、新しいノードのデータをステップS222に入力する。   (24) After step S217, the new node data is input to step S222.

ステップS218は、上記の式(20)に基づいて入力した推定器の推定値の尤度を計算し、尤度を上記の式(22)のように2値化することで、観測シンボルを生成する。   Step S218 calculates the likelihood of the estimated value of the estimator input based on the above equation (20), and generates an observation symbol by binarizing the likelihood as in the above equation (22). To do.

(26) ステップS218の後、2値化の結果である観測シンボルをステップS219に入力する。ステップS219は、上記の式(21)に基づいてHMMの各状態を更新する。   (26) After step S218, the observation symbol that is the result of binarization is input to step S219. In step S219, each state of the HMM is updated based on the above equation (21).

(27) ステップS219の後、上記の式(21)の計算結果から得られたHMMの各状態にある尤度をステップS220に入力する。ステップS220は、以下の式(23)に基づいて信頼性を算出し、以下の式(24)に基づいて信頼性のレベルを算出する。   (27) After step S219, the likelihood in each state of the HMM obtained from the calculation result of the above equation (21) is input to step S220. In step S220, the reliability is calculated based on the following equation (23), and the level of reliability is calculated based on the following equation (24).

Figure 0005776332
Figure 0005776332

(28) ステップS220の後、式(24)に基づいて算出された信頼性のレベルεをステップS221に入力する。ステップS221は、信頼性のレベルεがHL(高)、ML(中)、LL(低)のいずれかであるかを判定する。ステップS221の判定結果がHLであると、処理はステップS222へ進む。ステップS221の判定結果がLLであると、処理はステップS224へ進む。また、ステップS221の判定結果がMLであると、処理はステップS222及びステップS224へ進む。 (28) After step S220, the reliability level ε t calculated based on the equation (24) is input to step S221. In step S221, it is determined whether the reliability level ε t is HL (high), ML (medium), or LL (low). If the determination result of step S221 is HL, the process proceeds to step S222. If the determination result of step S221 is LL, the process proceeds to step S224. If the determination result of step S221 is ML, the process proceeds to step S222 and step S224.

(29) ステップS221の判定結果がHLであると、HLを示す処理フラグをステップS222に入力する。   (29) If the determination result in step S221 is HL, a processing flag indicating HL is input to step S222.

(30) ステップS221の判定結果がLLであると、LLを示す処理フラグをステップS224に入力する。   (30) If the determination result in step S221 is LL, a processing flag indicating LL is input to step S224.

(31) ステップS221の判定結果がMLであると、MLを示す処理フラグをステップS222及びステップS224に入力する。   (31) If the determination result in step S221 is ML, a processing flag indicating ML is input to steps S222 and S224.

ステップS222は、新しいノードを1つ作成して(24)で入力されたデータをそのノードに保存することで、新しいノードを複製する。   In step S222, one new node is created, and the data input in (24) is stored in the node, thereby duplicating the new node.

(32) ステップS222の後、複製したノードのデータをステップS223に入力する。ステップS223は、上記の式(16)〜式(19)に基づいて複製したノードの状態を更新すると共に、式(18)及び式(19)の計算結果のデータを複製したノードに保存する。   (32) After step S222, the copied node data is input to step S223. In step S223, the state of the duplicated node is updated based on the above equations (16) to (19), and the calculation result data of equations (18) and (19) is stored in the duplicated node.

(33) ステップS223の後、状態を更新した複製ノードのデータをステップS225に入力する。   (33) After step S223, the data of the replication node whose state has been updated is input to step S225.

一方、ステップS224は、新しいノードを1つ作成して(24)で入力されたデータをそのノードに保存することで、新しいノードを複製する。   On the other hand, in step S224, one new node is created, and the data input in (24) is stored in the node, thereby duplicating the new node.

(34) ステップS224の後、新しいノードに保存したデータをステップS225に入力する。ステップS225は、図7と共に説明したように、HLの場合はステップS223で処理したノード1つ、LLの場合はステップS224で複製したノード1つを親ノードNDに子ノードとして追加し、MLの場合がステップS223及びステップS223で処理した2つのノードを親ノードNDの子ノードとして追加する、ノードを子ノードとして親ノードに追加する処理を行う。   (34) After step S224, the data stored in the new node is input to step S225. In step S225, as described with reference to FIG. 7, in the case of HL, one node processed in step S223 is added, and in the case of LL, one node copied in step S224 is added as a child node to the parent node ND. In some cases, the two nodes processed in step S223 and step S223 are added as child nodes of the parent node ND, and the node is added as a child node to the parent node.

(35) ステップS225の後、処理したノードNDのデータをステップS226に入力する。ステップS226は、全てのノードの処理が完了したか否かを判定し、判定結果がNOであると(36)で処理はステップS212へ戻り、判定結果がYESであると処理はステップS227へ進む。具体的には、ステップS226は、(16)で入力されたノードリストからノードNDを削除し、ノードリスト中の残りのノード数がゼロ(0)であるか否かを判定する。残りのノード数がゼロであれば判定結果がYESであり、残りのノード数がゼロでなければ判定結果がNOである。   (35) After step S225, the processed node ND data is input to step S226. In step S226, it is determined whether or not all nodes have been processed. If the determination result is NO (36), the process returns to step S212, and if the determination result is YES, the process proceeds to step S227. . Specifically, in step S226, the node ND is deleted from the node list input in (16), and it is determined whether the number of remaining nodes in the node list is zero (0). If the number of remaining nodes is zero, the determination result is YES. If the number of remaining nodes is not zero, the determination result is NO.

(37) ステップS226の判定結果がYESであると、全てのノードの処理が完了したことを示す処理完了フラグをステップS227に入力する。ステップS227は、統合ツリーから最新レイヤーの全てのノードを抽出してノードリストを作成する。この場合、最新ノードは、ステップS225で追加したばかりの子ノードである。   (37) If the decision result in the step S226 is YES, a process completion flag indicating that the processes of all the nodes are completed is inputted to the step S227. In step S227, all nodes in the latest layer are extracted from the integration tree to create a node list. In this case, the latest node is the child node just added in step S225.

(38) ステップS227の後、ノードリストをステップS228に入力する。ステップS228は、ノードリストから未処理のノードを1つを抽出する。   (38) After step S227, the node list is input to step S228. In step S228, one unprocessed node is extracted from the node list.

(39) ステップS228の後、抽出されたノードをステップS229に入力する。ステップS229は、上記の式(12)に基づいて、抽出されたノードからルートノードまで辿った経路の良さを表す評価スコアを更新し、式(12)の計算結果をそのノードに保存する。   (39) After step S228, the extracted node is input to step S229. In step S229, the evaluation score representing the goodness of the route traced from the extracted node to the root node is updated based on the equation (12), and the calculation result of the equation (12) is stored in the node.

(40) ステップS229の後、処理されたノードのデータをステップS230に入力する。ステップS230は、全てのノードの処理が完了したか否かを判定し、判定結果がNOであると処理はステップS228へ戻り、判定結果がYESであると処理はステップS231へ進む。具体的には、ステップS230は、(38)で入力されたノードリストから、(40)で入力された処理されたノードを削除し、ノードリスト中の残りのノード数がゼロ(0)であるか否かを判定する。残りのノード数がゼロであれば判定結果がYESであり、残りのノード数がゼロでなければ判定結果がNOである。   (40) After step S229, the processed node data is input to step S230. In step S230, it is determined whether or not all nodes have been processed. If the determination result is NO, the process returns to step S228, and if the determination result is YES, the process proceeds to step S231. Specifically, in step S230, the processed node input in (40) is deleted from the node list input in (38), and the number of remaining nodes in the node list is zero (0). It is determined whether or not. If the number of remaining nodes is zero, the determination result is YES. If the number of remaining nodes is not zero, the determination result is NO.

(41) ステップS230の判定結果がYESであると、処理完了フラグ、各経路とその経路への評価スコアをステップS231に入力する。   (41) If the decision result in the step S230 is YES, a process completion flag, each route and an evaluation score for the route are inputted in a step S231.

(42) ステップS230の判定結果がNOであると、ノードリスト中の残りのノードのデータをステップS228に入力する。   (42) If the decision result in the step S230 is NO, the data of the remaining nodes in the node list are inputted to the step S228.

ステップS231は、各経路への評価スコアを昇順でソートすると共に、評価スコアが低い下位の経路に含まれている子ノードを抽出してリストを作成する。   In step S231, the evaluation scores for each route are sorted in ascending order, and a child node included in a lower route having a low evaluation score is extracted to create a list.

(43) ステップS231の後、削除対象となる、評価スコアが低い下位の経路に含まれている子ノードのリストをステップS232に入力する。ステップS232は、図8と共に説明した処理を行うことで、統合ツリーから(43)で入力されたリストに含まれている子ノードを削除する、子ノード削除処理を行う。   (43) After step S231, a list of child nodes included in the lower path with a low evaluation score to be deleted is input to step S232. In step S232, a child node deletion process is performed in which the child node included in the list input in (43) is deleted from the integration tree by performing the processing described with reference to FIG.

(44) ステップS232の後、子ノードを削除した統合ツリーのデータをステップS233に入力する。ステップS233は、図9と共に説明したように、統合ツリーのメンテナンス処理を行う。具体的には、統合ツリーの最新レイヤーからルートノードまでを辿って(スキャンして)、子ノードを持っていないノードを削除する。また、子が1つだけの親ノードを子ノードとマージする。   (44) After step S232, the integrated tree data from which the child nodes have been deleted is input to step S233. In step S233, the integrated tree maintenance process is performed as described with reference to FIG. Specifically, the node that does not have a child node is deleted by tracing (scanning) from the latest layer of the integration tree to the root node. In addition, a parent node having only one child is merged with the child node.

(45) ステップS233の後、メンテナンスを行った統合ツリーのデータをステップS234に入力する。ステップS234は、信頼性評価結果及び統合結果出力処理を行う。具体的には、ステップS220で計算して(28)で入力されたデータ、及び経路の評価スコアが最大値のノードにあるロボット100の位置姿勢の状態を共有メモリに書き込み、アプリケーションと共有する。アプリケーションは、例えば統合ツリーから推定したロボット100の位置姿勢を用いてロボット100の移動経路を計画あるいは決定する移動経路計画部16が実行するものである。   (45) After step S233, the maintenance-integrated tree data is input to step S234. In step S234, reliability evaluation result and integration result output processing is performed. Specifically, the data calculated in step S220 and input in (28) and the position / posture state of the robot 100 at the node having the maximum path evaluation score are written in the shared memory and shared with the application. The application is executed by, for example, the movement path planning unit 16 that plans or determines the movement path of the robot 100 using the position and orientation of the robot 100 estimated from the integrated tree.

(46) ステップS234の後、入力待ちコマンドをステップS202に入力する。   (46) After step S234, an input waiting command is input to step S202.

(47) ステップS234の後、推定器への信頼性のレベル、及び統合ツリーから推定したロボットの位置姿勢の結果をステップS235に入力する。ステップS235は、統合器10の外部、例えば、図2に示す移動経路計画部16により実行される。ステップS235は、推定器への信頼性のレベル、及び統合ツリーから推定したロボットの位置姿勢の結果に基づいて、例えば移動経路計画などを実行する。   (47) After step S234, the level of reliability to the estimator and the result of the position and orientation of the robot estimated from the integration tree are input to step S235. Step S235 is executed outside the integrator 10, for example, by the movement route planning unit 16 shown in FIG. In step S235, based on the reliability level to the estimator and the result of the position and orientation of the robot estimated from the integration tree, for example, a movement path plan is executed.

図14は、統合ツリーの一例を示す図である。図14中、ノードは○印で表し、最新ノードは◎印で表すと共に、◎印の中央部分が濃い程経路の評価スコアが高いことを示す。また、隣り合う2本の水平線で囲まれた帯状の領域は1つのレイヤーを示し、ノードの横に示されている数字は経路番号を示す。   FIG. 14 is a diagram illustrating an example of an integrated tree. In FIG. 14, a node is represented by a circle, a latest node is represented by a circle, and the darker the central portion of the circle, the higher the evaluation score of the route. A band-like region surrounded by two adjacent horizontal lines indicates one layer, and a number shown beside the node indicates a path number.

図15は、図14に示す統合ツリーの各ノードに対する経路評価で得られる評価スコアの一例を示す図である。図15では、1行に10個の異なるノード番号の評価スコアが示されている。ノードのノード番号は、例えば統合ツリーの最上位レイヤーから最下位レイヤーまで、各レイヤーにおいて図14中左から右の順番で各ノードに割り当てられる。   FIG. 15 is a diagram showing an example of an evaluation score obtained by route evaluation for each node of the integrated tree shown in FIG. In FIG. 15, evaluation scores of 10 different node numbers are shown in one line. The node numbers of the nodes are assigned to the nodes in the order from the left to the right in FIG. 14, for example, from the highest layer to the lowest layer of the integrated tree.

図16は、比較例における統合結果の一例を説明する図である。図16及び後述する図17は、ロボット100が部屋の中を自律移動した場合に自己位置の推定結果から得られる移動経路の平面図を示す。図16及び図17において、部屋の中にある5個の四辺形は、例えば机である。   FIG. 16 is a diagram illustrating an example of the integration result in the comparative example. FIG. 16 and FIG. 17 to be described later show a plan view of a movement path obtained from the estimation result of the self position when the robot 100 autonomously moves in the room. 16 and 17, the five quadrilaterals in the room are desks, for example.

図16中、(a)はカメラ3を用いる推定器8によるロボット100の自己位置の推定結果に基づく経路を一点鎖線L1で示し、(b)は5.0mの計測範囲を有するLRF2を用いる推定器6によるロボット100の自己位置の推定結果に基づく経路を二点鎖線L2で示し、(c)は従来のカルマンフィルタを用いた(すなわち、統合ツリーを用いない)統合結果に基づく経路を実線L3で示す。また、破線で囲まれた箇所は、図16(a)では経路が精度良く推定されているものの、図16(b)では経路の精度が著しく低下しているため、図16(a),(b)が統合された図16(c)に示す経路では統合結果が図16(b)の精度が著しく低下した経路の悪影響を受けて精度が著しく低下している。このように、比較例では、統合結果の特に破線で囲まれた箇所での経路の精度が低いことが確認された。   16A shows a path based on the estimation result of the self-position of the robot 100 by the estimator 8 using the camera 3 by a one-dot chain line L1, and FIG. 16B shows an estimation using the LRF 2 having a measurement range of 5.0 m. A path based on the estimation result of the self-position of the robot 100 by the device 6 is indicated by a two-dot chain line L2, and FIG. Show. Further, in the portion surrounded by the broken line, although the route is accurately estimated in FIG. 16A, the accuracy of the route is remarkably lowered in FIG. 16B. In the path shown in FIG. 16C in which b) is integrated, the integration result is significantly degraded due to the adverse effect of the path in which the accuracy in FIG. As described above, in the comparative example, it was confirmed that the accuracy of the route at the portion surrounded by the broken line in the integration result was low.

図17は、実施例における統合結果の一例を説明する図である。図17中、(a)はカメラ3を用いる推定器8によるロボット100の自己位置の推定結果に基づく経路を一点鎖線L1で示し、(b)は5.0mの計測範囲を有するLRF2を用いる推定器6によるロボット100の自己位置の推定結果に基づく経路を二点鎖線L2で示し、(c)は上記実施例の統合ツリーを用いた統合結果に基づく経路を実線L30で示す。また、破線で囲まれた箇所は、図17(a)では経路が精度良く推定されているものの、図17(b)では経路の精度が著しく低下している箇所を示す。しかし、本実施例によれば、図17(c)に示すように、統合ツリーを用いるため、統合結果の破線で囲まれた箇所においても、経路の良い精度が維持されることが確認された。つまり、複数の推定器が推定した位置姿勢を高精度に統合することが可能であることが確認された。   FIG. 17 is a diagram illustrating an example of the integration result in the embodiment. 17A shows a path based on the estimation result of the self-position of the robot 100 by the estimator 8 using the camera 3 by a one-dot chain line L1, and FIG. 17B shows an estimation using the LRF 2 having a measurement range of 5.0 m. A path based on the estimation result of the self-position of the robot 100 by the device 6 is indicated by a two-dot chain line L2, and (c) indicates a path based on the integration result using the integration tree of the above embodiment by a solid line L30. Further, a portion surrounded by a broken line indicates a portion where the route is accurately estimated in FIG. 17A, but the route accuracy is significantly lowered in FIG. 17B. However, according to the present embodiment, as shown in FIG. 17C, since the integration tree is used, it was confirmed that good accuracy of the route is maintained even in the portion surrounded by the broken line of the integration result. . That is, it was confirmed that the position and orientation estimated by a plurality of estimators can be integrated with high accuracy.

上記の比較例の場合、統合結果が例えば破綻した推定器の推定結果の影響を受けて、最悪の場合は統合結果が使えない程推定経路の精度が低下してしまう。一方、上記実施例のように統合ツリーを用いることで、統合ツリーから例えば破綻した推定器を特定して隔離することができる。このため、統合結果が例えば破綻した推定器の推定結果の影響を受けないように処理を行うことができ、ロボットシステムまたはナビゲーションシステムの安定性を大きく向上することができる。   In the case of the above comparative example, the integration result is affected by, for example, the estimation result of the broken estimator, and in the worst case, the accuracy of the estimation path is lowered so that the integration result cannot be used. On the other hand, by using the integrated tree as in the above embodiment, for example, a failed estimator can be identified and isolated from the integrated tree. For this reason, it is possible to perform processing so that the integration result is not affected by the estimation result of the broken estimator, for example, and the stability of the robot system or the navigation system can be greatly improved.

次に、上記実施例における入力情報の信頼性評価、信頼性に基づき異なる統合処理、統合ツリーの枝刈、及び診断機能のフィードバックについて説明する。   Next, the reliability evaluation of input information, the different integration processing based on the reliability, the pruning of the integration tree, and the feedback of the diagnosis function in the above embodiment will be described.

入力情報の信頼性評価:
入力情報の信頼性評価にHMMを用いることで、推定器からの入力情報に対する信頼性を評価する。統合器が各推定器からの位置、姿勢、位置姿勢共分散行列といった入力情報に対して、信頼性という状態量を追加して、入力情報を位置、姿勢、位置姿勢共分散行列、信頼性に拡張する。信頼性については、統合器が過去の推定履歴に基づいて推定する。また、各推定器が上記の推定情報と共に、推定を行った地点でのオドメトリ位置も入力する。
Reliability evaluation of input information:
The reliability of the input information from the estimator is evaluated by using the HMM for the reliability evaluation of the input information. The integrator adds a state quantity called reliability to the input information such as position, posture, and position / posture covariance matrix from each estimator, and converts the input information into position, posture, position / posture covariance matrix, and reliability. Expand. The reliability is estimated by the integrator based on the past estimation history. Each estimator also inputs the odometry position at the point where the estimation is performed together with the above estimation information.

統合器は、推定器数分の信頼性評価モデルを用意する。信頼性評価モデルは、HMMに基づいて構築する。HMMは2つの状態を持ち、各状態において2つのシンボルが観測できる。このシンボルは実際の入力値が統合器の統合履歴から予測した新しい入力値の近傍に入るかどうかを表す「0」と「1」の2値である。このシンボルが観測されると、HMM内部の状態を更新する。この2つの状態の確率の比から信頼性を算出する。   The integrator prepares as many reliability evaluation models as the number of estimators. The reliability evaluation model is constructed based on the HMM. The HMM has two states, and two symbols can be observed in each state. This symbol is a binary value of “0” and “1” indicating whether or not the actual input value is in the vicinity of the new input value predicted from the integration history of the integrator. When this symbol is observed, the state inside the HMM is updated. Reliability is calculated from the ratio of the probabilities of these two states.

HMMのパラメータは、各推定器の性能に合わせて設定される。例えばカメラを用いる推定器のエラーリカバリー機能がLRFを用いる推定器より高く、信頼できない状態から信頼できる状態への遷移確率が高く設定されている。   HMM parameters are set according to the performance of each estimator. For example, the error recovery function of an estimator using a camera is higher than that of an estimator using LRF, and the transition probability from an unreliable state to a reliable state is set high.

信頼性に基づき異なる統合処理:
信頼性に基づき異なる統合処理は、異なる信頼性の入力情報に対して、統合ツリーを利用して異なる統合処理を行う。統合器が推定した信頼性を、例えば「高」、「中」、「低」の3つのレベルに離散化し、各レベルによって異なる統合処理を行う。信頼性の各レベルに対して異なる処理を行うために統合ツリーを導入する。統合ツリーの深さ方向は時間方向に対応する。統合ツリーの最も低いレイヤーが最新時間に対応する。統合ツリーの各ノードがそのノードの対応する時刻での統合結果であり、統合して得られたロボットの現在位置が含まれている。また、ノードは推定器から新しい入力がくる度に作成され、その時入力されたオドメトリの情報も含まれている。推定器から新しい入力がきた時、現在のノードに新しい子ノードを追加して、親ノードの統合結果を更新して子ノードに保存する。
Different integration processes based on reliability:
Different integration processes based on reliability perform different integration processes on input information with different reliability by using an integration tree. The reliability estimated by the integrator is discretized into, for example, three levels of “high”, “medium”, and “low”, and different integration processing is performed for each level. Introduce an integration tree to do different processing for each level of reliability. The depth direction of the integration tree corresponds to the time direction. The lowest layer in the integration tree corresponds to the latest time. Each node of the integration tree is an integration result at the time corresponding to the node, and the current position of the robot obtained by the integration is included. A node is created each time a new input is received from the estimator, and includes information on the odometry input at that time. When a new input is received from the estimator, a new child node is added to the current node, and the integration result of the parent node is updated and stored in the child node.

子ノードの追加は、例えば以下のように行う。先ず、現在最新のレイヤーにある全てのノードに対して、推定器からの新しい入力の信頼性のレベルが「高」であると判断した場合、親ノードに1つのみの子ノードを追加する。入力情報を観測情報として、親ノードの状態を更新して子ノードに保存する。さらに、新しい入力に含まれているオドメトリの情報も子ノードに保存する。   For example, child nodes are added as follows. First, when it is determined that the reliability level of the new input from the estimator is “high” for all nodes currently in the latest layer, only one child node is added to the parent node. Using the input information as observation information, the state of the parent node is updated and stored in the child node. Further, the odometry information included in the new input is also stored in the child node.

信頼性のレベルが「低」であると判断した場合、親ノードに1つのみの子ノードを追加する。入力情報を観測情報とせず、親ノードの状態をオドメトリの情報のみを利用して更新して子ノードに保存する。   When it is determined that the reliability level is “low”, only one child node is added to the parent node. The input information is not used as observation information, and the state of the parent node is updated using only odometry information and stored in the child node.

信頼性のレベルが「中」であると判断した場合、信頼性のレベルが「高」と「低」と判断した場合の処理を夫々行い、その結果親ノードが2つの子を持つようになる。   When it is determined that the reliability level is “medium”, the processing when the reliability level is determined to be “high” and “low” is performed, and as a result, the parent node has two children. .

このようにして、新しい入力が逐時に入ることによって統合ツリーのノード数と深さが増大していき、ツリーの規模が大きくなる。   In this way, the number of nodes and the depth of the integrated tree increase as new inputs enter each time, and the scale of the tree increases.

統合ツリーの枝刈:
統合ツリーの枝刈は、推定した経路の速度パターンによる評価に基づき、統合ツリーの規模を一定以下に抑えるために行う。この統合ツリーの枝刈を行うため、ツリーの最新ノードからルートノードまでの経路の良さを評価する。評価スコアが低い経路の最新ノードは削除する。なお、経路とは最新レイヤーにあるノードからツリーのルートノードまで辿って抽出した時間順に並べた複数のノードのシーケンスである。経路上の各ノードに保存されているオドメトリから速度パターンを求め、これと各ノードで統合処理によって得られたロボットの位置姿勢から求めた速度パターンとの類似度を計算して評価スコアとする。各経路に対して評価を行って得られた評価スコアで各経路を昇順にソートして、下位の経路に対して最新ノードを統合ツリーから削除する。その後、統合ツリーの全体をスキャンして、子を持っていないノードを削除する。1つの子だけを持っている親ノードを子ノードと併合して、新しいノードを生成する。新しいノードでは親ノードの情報がなくなり、子ノードの情報のみを保存する。
Integrated tree pruning:
The pruning of the integrated tree is performed in order to keep the scale of the integrated tree below a certain level based on the evaluation based on the estimated path speed pattern. In order to prun the integrated tree, the goodness of the path from the latest node of the tree to the root node is evaluated. The latest node of the route with a low evaluation score is deleted. The route is a sequence of a plurality of nodes arranged in the order of time extracted from the node in the latest layer to the root node of the tree. A speed pattern is obtained from the odometry stored in each node on the route, and the similarity between this and the speed pattern obtained from the position and orientation of the robot obtained by the integration processing at each node is calculated as an evaluation score. Each route is sorted in ascending order by the evaluation score obtained by evaluating each route, and the latest node is deleted from the integrated tree for the lower route. After that, the entire integration tree is scanned to remove nodes that do not have children. Merge a parent node with only one child with a child node to create a new node. The new node loses the parent node information and stores only the child node information.

診断機能のフィードバック:
診断機能のフィードバックでは、統合器が各推定器に対して行う信頼性の評価結果を推定器への診断結果として統合結果と共に出力する。これにより、推定器が診断結果をチェックして推定器のリセットなどを行うこともできる。
Diagnostic feature feedback:
In the feedback of the diagnostic function, the reliability evaluation result that the integrator performs for each estimator is output together with the integration result as a diagnosis result to the estimator. Thus, the estimator can check the diagnosis result and reset the estimator.

上記の如く、開示の地図処理方法及びプログラム、並びにロボットシステムでは、統合器が各推定器からの入力情報の信頼性を評価して、異なる信頼性のレベルに応じた異なる方式で統合履歴と関連付ける。この関連付けにより、統合履歴を表した統合ツリーが時間的に更新され、規模が増大していく。また、統合ツリーの最新ノードから過去に辿って得られた推定経路を評価して下位のノードを削除することで、ツリー全体のメンテナンスを行いツリー規模を一定以下に維持することもできる。さらに、例えば推定精度の低下した推定器の推定結果を統合処理から隔離できるため、統合結果が推定精度の低下した推定器の推定結果に影響されることなく、例えばナビゲーションの安定性を向上することができる。   As described above, in the disclosed map processing method and program, and in the robot system, the integrator evaluates the reliability of the input information from each estimator and associates it with the integration history in different ways according to different levels of reliability. . With this association, the integration tree representing the integration history is updated in time, and the scale increases. In addition, by evaluating an estimated route obtained by tracing the latest node of the integrated tree in the past and deleting lower nodes, the entire tree can be maintained and the tree scale can be maintained below a certain level. Furthermore, for example, the estimation result of an estimator with reduced estimation accuracy can be isolated from the integration process, so that the integration result is not affected by the estimation result of the estimator with reduced estimation accuracy, for example, improving navigation stability. Can do.

以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
互いに異なるセンサからの入力に基づいて自己位置を推定する複数の推定器の信頼度を前記複数の推定器に対応する信頼性評価モデルを用いて評価する評価処理と、
前記複数の推定器からの推定結果に対して前記信頼性に応じた異なる統合処理を行う結合処理
をコンピュータに実行させることを特徴とする、地図処理方法。
(付記2)
前記信頼性評価モデルは、パラメータが各推定器の性能に合わせて設定される隠れマルコフモデルで構築され、前記パラメータは各推定器から入力されることを特徴とする、付記1記載の地図処理方法。
(付記3)
前記評価処理は、前記信頼性を3つのレベルに離散化し、各レベルによって異なる統合処理を行うために複数のノードを含む統合ツリーを作成し、
前記統合ツリーの深さ方向は時間方向に対応し、最も低いレイヤーが最新時間に対応し、各ノードが当該ノードの対応する時刻での統合結果であり統合処理の結果得られる位置を含むことを特徴とする、付記1または2記載の地図処理方法。
(付記4)
前記結合処理は、
前記統合ツリーの最新のレイヤーにある全てのノードに対して、1つの推定器からの新しい入力の信頼性のレベルが「高」であると判断した場合、親ノードに1つのみの子ノードを追加すると共に、当該推定器からの入力を観測情報として前記親ノードの状態を更新して子ノードに保存し、前記新しい入力に含まれているオドメトリの情報を子ノードに保存し、
前記信頼性のレベルが「低」であると判断した場合、前記親ノードに1つのみの子ノードを追加すると共に、当該推定器からの入力を観測情報とせず、前記親ノードの状態をオドメトリの情報のみを利用して更新して子ノードに保存し、
前記信頼性のレベルが「中」であると判断した場合、前記信頼性のレベルが「高」と「低」と判断した場合の処理を夫々行い、その結果前記親ノードに2つの子を持たせることを特徴とする、付記3記載の地図処理方法。
(付記5)
前記統合ツリーの最新ノードからルートノードまで辿って抽出した時間順に並べた複数のノードのシーケンスで形成された経路の良さを評価する評価スコアを、前記経路上の各ノードに保存されているオドメトリから求めた速度パターンと、前記経路上の各ノードで統合処理によって求めた速度パターンとの類似度から計算する処理と、
前記評価スコアが閾値より低い前記経路上の最新ノードを削除するメンテナンス処理
をさらに前記コンピュータに実行させることを特徴とする、付記3または4記載の地図処理方法。
(付記6)
前記メンテナンス処理は、前記経路上の最新ノードを削除した後、前記統合ツリー全体をスキャンして子を持っていないノードを削除し、さらに1つの子だけを持っている親ノードを子ノードと併合することを特徴とする、付記5記載の地図処理方法。
(付記7)
互いに異なるセンサからの入力に基づいて自己位置を推定する複数の推定器の信頼度を前記複数の推定器に対応する信頼性評価モデルを用いて評価する評価手順と、
前記複数の推定器からの推定結果に対して前記信頼性に応じた異なる統合処理を行う結合手順
をコンピュータに実行させることを特徴とする、プログラム。
(付記8)
前記信頼性評価モデルは、パラメータが各推定器の性能に合わせて設定される隠れマルコフモデルで構築され、前記パラメータは各推定器から入力されることを特徴とする、付記7記載のプログラム。
(付記9)
前記評価手順は、前記信頼性を3つのレベルに離散化し、各レベルによって異なる統合処理を行うために複数のノードを含む統合ツリーを作成し、
前記統合ツリーの深さ方向は時間方向に対応し、最も低いレイヤーが最新時間に対応し、各ノードが当該ノードの対応する時刻での統合結果であり統合処理の結果得られる位置を含むことを特徴とする、付記7または8記載のプログラム。
(付記10)
前記結合手順は、
前記統合ツリーの最新のレイヤーにある全てのノードに対して、1つの推定器からの新しい入力の信頼性のレベルが「高」であると判断した場合、親ノードに1つのみの子ノードを追加すると共に、当該推定器からの入力を観測情報として前記親ノードの状態を更新して子ノードに保存し、前記新しい入力に含まれているオドメトリの情報を子ノードに保存し、
前記信頼性のレベルが「低」であると判断した場合、前記親ノードに1つのみの子ノードを追加すると共に、当該推定器からの入力を観測情報とせず、前記親ノードの状態をオドメトリの情報のみを利用して更新して子ノードに保存し、
前記信頼性のレベルが「中」であると判断した場合、前記信頼性のレベルが「高」と「低」と判断した場合の処理を夫々行い、その結果前記親ノードに2つの子を持たせることを特徴とする、付記9記載のプログラム。
(付記11)
前記統合ツリーの最新ノードからルートノードまで辿って抽出した時間順に並べた複数のノードのシーケンスで形成された経路の良さを評価する評価スコアを、前記経路上の各ノードに保存されているオドメトリから求めた速度パターンと、前記経路上の各ノードで統合処理によって求めた速度パターンとの類似度から計算する手順と、
前記評価スコアが閾値より低い前記経路上の最新ノードを削除するメンテナンス手順
をさらに前記コンピュータに実行させることを特徴とする、付記9または10記載のプログラム。
(付記12)
前記メンテナンス手順は、前記経路上の最新ノードを削除した後、前記統合ツリー全体をスキャンして子を持っていないノードを削除し、さらに1つの子だけを持っている親ノードを子ノードと併合することを特徴とする、付記11記載のプログラム。
(付記13)
自律移動型ロボットに設けられた互いに異なるセンサと、
前記異なるセンサからの入力に基づいて自己位置を推定する複数の推定器と、
前記複数の推定器の信頼度を前記複数の推定器に対応する信頼性評価モデルを用いて評価する評価部と、
前記複数の推定器からの推定結果に対して前記信頼性に応じた異なる統合処理を行う結合部
を備えたことを特徴とする、ロボットシステム。
(付記14)
前記信頼性評価モデルは、パラメータが各推定器の性能に合わせて設定される隠れマルコフモデルで構築され、前記パラメータは各推定器から入力されることを特徴とする、付記13記載のロボットシステム。
(付記15)
前記評価部は、前記信頼性を3つのレベルに離散化し、各レベルによって異なる統合処理を行うために複数のノードを含む統合ツリーを作成し、
前記統合ツリーの深さ方向は時間方向に対応し、最も低いレイヤーが最新時間に対応し、各ノードが当該ノードの対応する時刻での統合結果であり統合処理の結果得られる位置を含むことを特徴とする、付記13または14記載のロボットシステム。
(付記16)
前記結合部は、
前記統合ツリーの最新のレイヤーにある全てのノードに対して、1つの推定器からの新しい入力の信頼性のレベルが「高」であると判断した場合、親ノードに1つのみの子ノードを追加すると共に、当該推定器からの入力を観測情報として前記親ノードの状態を更新して子ノードに保存し、前記新しい入力に含まれているオドメトリの情報を子ノードに保存し、
前記信頼性のレベルが「低」であると判断した場合、前記親ノードに1つのみの子ノードを追加すると共に、当該推定器からの入力を観測情報とせず、前記親ノードの状態をオドメトリの情報のみを利用して更新して子ノードに保存し、
前記信頼性のレベルが「中」であると判断した場合、前記信頼性のレベルが「高」と「低」と判断した場合の処理を夫々行い、その結果前記親ノードに2つの子を持たせることを特徴とする、付記15記載のロボットシステム。
(付記17)
前記統合ツリーの最新ノードからルートノードまで辿って抽出した時間順に並べた複数のノードのシーケンスで形成された経路の良さを評価する評価スコアを、前記経路上の各ノードに保存されているオドメトリから求めた速度パターンと、前記経路上の各ノードで統合処理によって求めた速度パターンとの類似度から計算する評価部と、
前記評価スコアが閾値より低い前記経路上の最新ノードを削除するメンテナンス部
をさらに備えたことを特徴とする、付記15または16記載のロボットシステム。
(付記18)
前記メンテナンス部は、前記経路上の最新ノードを削除した後、前記統合ツリー全体をスキャンして子を持っていないノードを削除し、さらに1つの子だけを持っている親ノードを子ノードと併合することを特徴とする、付記17記載のロボットシステム。
The following supplementary notes are further disclosed with respect to the embodiments including the above examples.
(Appendix 1)
An evaluation process for evaluating the reliability of a plurality of estimators that estimate self-positions based on inputs from different sensors using a reliability evaluation model corresponding to the plurality of estimators;
A map processing method, comprising: causing a computer to perform a combining process for performing different integration processes according to the reliability on estimation results from the plurality of estimators.
(Appendix 2)
The map processing method according to claim 1, wherein the reliability evaluation model is constructed by a hidden Markov model in which parameters are set in accordance with the performance of each estimator, and the parameters are input from each estimator. .
(Appendix 3)
In the evaluation process, the reliability is discretized into three levels, and an integration tree including a plurality of nodes is created to perform different integration processes depending on each level.
The depth direction of the integration tree corresponds to the time direction, the lowest layer corresponds to the latest time, and each node is the integration result at the corresponding time of the node and includes the position obtained as a result of the integration process. The map processing method according to appendix 1 or 2, which is characterized.
(Appendix 4)
The combining process includes
If all nodes in the latest layer of the integration tree have determined that the new input from one estimator has a high level of reliability, the parent node will have only one child node. And adding the input from the estimator as observation information to update the state of the parent node and storing it in the child node, storing the odometry information included in the new input in the child node,
When it is determined that the reliability level is “low”, only one child node is added to the parent node, and the input from the estimator is not used as observation information, and the state of the parent node is changed to odometry. Update using only the information of and save to the child node,
When it is determined that the reliability level is “medium”, the processing when the reliability level is determined as “high” and “low” is performed, respectively. As a result, the parent node has two children. The map processing method according to supplementary note 3, characterized by:
(Appendix 5)
From the odometry stored in each node on the route, an evaluation score for evaluating the goodness of the route formed by a sequence of a plurality of nodes arranged in order of time extracted from the latest node to the root node of the integration tree is extracted. A process of calculating from the similarity between the obtained speed pattern and the speed pattern obtained by the integration process at each node on the route;
The map processing method according to appendix 3 or 4, wherein the computer is further caused to perform a maintenance process for deleting the latest node on the route whose evaluation score is lower than a threshold value.
(Appendix 6)
The maintenance process deletes the latest node on the route, scans the entire integration tree to delete nodes that do not have children, and merges a parent node that has only one child with a child node. The map processing method according to appendix 5, wherein:
(Appendix 7)
An evaluation procedure for evaluating the reliability of a plurality of estimators that estimate self-positions based on inputs from different sensors using a reliability evaluation model corresponding to the plurality of estimators,
A program for causing a computer to execute a combination procedure for performing different integration processes according to the reliability on estimation results from the plurality of estimators.
(Appendix 8)
The program according to claim 7, wherein the reliability evaluation model is constructed by a hidden Markov model in which parameters are set in accordance with the performance of each estimator, and the parameters are input from each estimator.
(Appendix 9)
The evaluation procedure discretizes the reliability into three levels, and creates an integration tree including a plurality of nodes to perform different integration processing for each level,
The depth direction of the integration tree corresponds to the time direction, the lowest layer corresponds to the latest time, and each node is the integration result at the corresponding time of the node and includes the position obtained as a result of the integration process. The program according to appendix 7 or 8, which is characterized.
(Appendix 10)
The coupling procedure includes:
If all nodes in the latest layer of the integration tree have determined that the new input from one estimator has a high level of reliability, the parent node will have only one child node. And adding the input from the estimator as observation information to update the state of the parent node and storing it in the child node, storing the odometry information included in the new input in the child node,
When it is determined that the reliability level is “low”, only one child node is added to the parent node, and the input from the estimator is not used as observation information, and the state of the parent node is changed to odometry. Update using only the information of and save to the child node,
When it is determined that the reliability level is “medium”, the processing when the reliability level is determined as “high” and “low” is performed, respectively. As a result, the parent node has two children. The program according to appendix 9, characterized in that:
(Appendix 11)
From the odometry stored in each node on the route, an evaluation score for evaluating the goodness of the route formed by a sequence of a plurality of nodes arranged in order of time extracted from the latest node to the root node of the integration tree is extracted. A procedure for calculating from the similarity between the obtained speed pattern and the speed pattern obtained by the integration process at each node on the route;
The program according to appendix 9 or 10, further causing the computer to execute a maintenance procedure for deleting the latest node on the route whose evaluation score is lower than a threshold.
(Appendix 12)
The maintenance procedure deletes the latest node on the path, scans the entire integration tree to delete nodes that do not have children, and merges a parent node that has only one child with a child node. The program according to appendix 11, wherein:
(Appendix 13)
Different sensors provided on the autonomous mobile robot,
A plurality of estimators for estimating a self-position based on inputs from the different sensors;
An evaluation unit that evaluates reliability of the plurality of estimators using a reliability evaluation model corresponding to the plurality of estimators;
A robot system, comprising: a combining unit that performs different integration processing according to the reliability on estimation results from the plurality of estimators.
(Appendix 14)
14. The robot system according to appendix 13, wherein the reliability evaluation model is constructed by a hidden Markov model in which parameters are set in accordance with the performance of each estimator, and the parameters are input from each estimator.
(Appendix 15)
The evaluation unit discretizes the reliability into three levels, and creates an integration tree including a plurality of nodes in order to perform different integration processing depending on each level,
The depth direction of the integration tree corresponds to the time direction, the lowest layer corresponds to the latest time, and each node is the integration result at the corresponding time of the node and includes the position obtained as a result of the integration process. 15. The robot system according to appendix 13 or 14, which is characterized.
(Appendix 16)
The coupling portion is
If all nodes in the latest layer of the integration tree have determined that the new input from one estimator has a high level of reliability, the parent node will have only one child node. And adding the input from the estimator as observation information to update the state of the parent node and storing it in the child node, storing the odometry information included in the new input in the child node,
When it is determined that the reliability level is “low”, only one child node is added to the parent node, and the input from the estimator is not used as observation information, and the state of the parent node is changed to odometry. Update using only the information of and save to the child node,
When it is determined that the reliability level is “medium”, the processing when the reliability level is determined as “high” and “low” is performed, respectively. As a result, the parent node has two children. The robot system according to supplementary note 15, wherein
(Appendix 17)
From the odometry stored in each node on the route, an evaluation score for evaluating the goodness of the route formed by a sequence of a plurality of nodes arranged in order of time extracted from the latest node to the root node of the integration tree is extracted. An evaluation unit that calculates from the similarity between the obtained speed pattern and the speed pattern obtained by the integration process at each node on the route;
The robot system according to appendix 15 or 16, further comprising a maintenance unit that deletes the latest node on the route whose evaluation score is lower than a threshold.
(Appendix 18)
The maintenance unit deletes the latest node on the route, then scans the entire integration tree to delete nodes that do not have children, and merges a parent node that has only one child with a child node. 18. The robot system according to appendix 17, wherein:

以上、開示の地図処理方法及びプログラム、並びにロボットシステムを実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。   The disclosed map processing method and program, and robot system have been described above by way of examples. However, the present invention is not limited to the above examples, and various modifications and improvements can be made within the scope of the present invention. Needless to say.

4,6,8 推定器
5,7,9 記憶部
10 統合器
11 推定器信頼性評価部
12 結合部
13 結合の良さの評価部
14 統合ツリーのメンテナンス部
15 記憶部(統合ツリー)
20 オドメトリ部
4, 6, 8 Estimators 5, 7, 9 Storage unit 10 Integration unit 11 Estimator reliability evaluation unit 12 Coupling unit 13 Coupling evaluation unit 14 Integrated tree maintenance unit 15 Storage unit (integrated tree)
20 Odometry section

Claims (5)

互いに異なるセンサからの入力に基づいて自己位置を推定する複数の推定器の信頼度を前記複数の推定器に対応する信頼性評価モデルを用いて評価する評価手順と、
前記複数の推定器からの推定結果に対して前記信頼度を複数の段階に分けた異なる信頼性のレベルに応じた異なる統合処理を行う結合手順
をコンピュータに実行させ
前記信頼性評価モデルは、評価された前記信頼度と前記異なる統合処理による統合履歴とが関連付けられた、時間的に更新される統合ツリーを含むことを特徴とする、プログラム。
And evaluation procedure for evaluating the reliability of a plurality of estimators for estimating its own position, using the reliability evaluation model corresponding to said plurality of estimators based on the input from different sensors,
The relative estimation results from multiple estimators, the reliability was performed multiple steps to divide the different reliability of the coupling procedure for different integration processing according to the level on the computer,
The reliability evaluation model includes a temporally updated integration tree in which the evaluated reliability and the integration history of the different integration processes are associated with each other.
前記信頼性評価モデルは、パラメータが各推定器の性能に合わせて設定される隠れマルコフモデルで構築され、前記パラメータは各推定器から入力されることを特徴とする、請求項1記載のプログラム。   The program according to claim 1, wherein the reliability evaluation model is constructed by a hidden Markov model in which parameters are set in accordance with performance of each estimator, and the parameters are input from each estimator. 前記評価手順は、前記信頼度を3段階の信頼性のレベルに離散化し、各レベルによって前記異なる統合処理を行うために複数のノードを含む前記統合ツリーを作成し、
前記統合ツリーの深さ方向は時間方向に対応し、最も低いレイヤーが最新時間に対応し、各ノードが当該ノードの対応する時刻での統合結果であり統合処理の結果得られる位置を含むことを特徴とする、請求項1または2記載のプログラム。
The evaluation procedure is the reliability discretized to the level of reliability of the three steps, create the integrated tree including a plurality of nodes in order to perform the different integrating process by each level,
The depth direction of the integration tree corresponds to the time direction, the lowest layer corresponds to the latest time, and each node is the integration result at the corresponding time of the node and includes the position obtained as a result of the integration process. The program according to claim 1 or 2, wherein the program is characterized.
自律移動型ロボットに設けられた互いに異なるセンサと、
前記異なるセンサからの入力に基づいて自己位置を推定する複数の推定器と、
前記複数の推定器の信頼度を前記複数の推定器に対応する信頼性評価モデルを用いて評価する評価部と、
前記複数の推定器からの推定結果に対して前記信頼度を複数の段階に分けた異なる信頼性のレベルに応じた異なる統合処理を行う結合部
を備え
前記信頼性評価モデルは、評価された前記信頼度と前記異なる統合処理による統合履歴とが関連付けられた、時間的に更新される統合ツリーを含むことを特徴とする、ロボットシステム。
Different sensors provided on the autonomous mobile robot,
A plurality of estimators for estimating a self-position based on inputs from the different sensors;
An evaluation unit that evaluates reliability of the plurality of estimators using a reliability evaluation model corresponding to the plurality of estimators;
The relative estimation results from multiple estimators, provided with a coupling portion for performing the reliability of the corresponding to the level of reliability that is different divided into a plurality of stages different integration process,
The robot system according to claim 1, wherein the reliability evaluation model includes a temporally updated integration tree in which the evaluated reliability and the integration history of the different integration processes are associated with each other.
互いに異なるセンサからの入力に基づいて自己位置を推定する複数の推定器の信頼度を前記複数の推定器に対応する信頼性評価モデルを用いて評価する評価処理と、
前記複数の推定器からの推定結果に対して前記信頼度を複数の段階に分けた異なる信頼性のレベルに応じた異なる統合処理を行う結合処理
をコンピュータに実行させ
前記信頼性評価モデルは、評価された前記信頼度と前記異なる統合処理による統合履歴とが関連付けられた、時間的に更新される統合ツリーを含むことを特徴とする、地図処理方法。
And evaluation process for evaluating with the reliability of a plurality of estimators for estimating its own position, the reliability evaluation model corresponding to said plurality of estimators based on the input from different sensors,
The relative estimation results from multiple estimators, the reliability was performed multiple stages divided different reliability binding processing for different integration processing according to the level of the computer,
The map processing method, wherein the reliability evaluation model includes a temporally updated integration tree in which the evaluated reliability and the integration history by the different integration processing are associated with each other.
JP2011119676A 2011-05-27 2011-05-27 Map processing method and program, and robot system Active JP5776332B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011119676A JP5776332B2 (en) 2011-05-27 2011-05-27 Map processing method and program, and robot system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011119676A JP5776332B2 (en) 2011-05-27 2011-05-27 Map processing method and program, and robot system

Publications (2)

Publication Number Publication Date
JP2012248032A JP2012248032A (en) 2012-12-13
JP5776332B2 true JP5776332B2 (en) 2015-09-09

Family

ID=47468413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011119676A Active JP5776332B2 (en) 2011-05-27 2011-05-27 Map processing method and program, and robot system

Country Status (1)

Country Link
JP (1) JP5776332B2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101454824B1 (en) * 2013-04-03 2014-11-03 국방과학연구소 System and Method for estimating positions of an autonomous mobile vehicle
JP2015215651A (en) * 2014-05-08 2015-12-03 株式会社日立製作所 Robot and own position estimation method
JP2016045874A (en) 2014-08-26 2016-04-04 ソニー株式会社 Information processor, method for information processing, and program
JP6849330B2 (en) 2015-08-28 2021-03-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America Map generation method, self-position estimation method, robot system, and robot
JP6711138B2 (en) * 2016-05-25 2020-06-17 村田機械株式会社 Self-position estimating device and self-position estimating method
CN108174059B (en) 2016-12-08 2021-04-13 松下知识产权经营株式会社 Image pickup apparatus
JP7063760B2 (en) * 2018-07-27 2022-05-09 株式会社ダイヘン Mobile
JP7220591B2 (en) 2019-03-07 2023-02-10 三菱重工業株式会社 Self-position estimation device, self-position estimation method and program
JP7285517B2 (en) * 2019-12-26 2023-06-02 株式会社豊田自動織機 Self-position estimation device, mobile object, self-position estimation method, and self-position estimation program
WO2023189721A1 (en) * 2022-03-30 2023-10-05 ソニーグループ株式会社 Information processing device, information processing method, and information processing program

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2501010B2 (en) * 1993-10-25 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション Mobile robot guidance device
KR100707168B1 (en) * 2003-09-30 2007-04-13 삼성전자주식회사 Method and Apparatus for unmanned vehicle navigation using sensors fusion
JP4984650B2 (en) * 2006-05-30 2012-07-25 トヨタ自動車株式会社 Mobile device and self-position estimation method of mobile device
JP5589324B2 (en) * 2009-08-28 2014-09-17 富士通株式会社 Apparatus, method, and program for estimating state of moving object using novel sensor fusion method
JP5599064B2 (en) * 2010-12-22 2014-10-01 綜合警備保障株式会社 Sound recognition apparatus and sound recognition method

Also Published As

Publication number Publication date
JP2012248032A (en) 2012-12-13

Similar Documents

Publication Publication Date Title
JP5776332B2 (en) Map processing method and program, and robot system
KR101503903B1 (en) Apparatus and method for building map used in mobile robot
JP6760114B2 (en) Information processing equipment, data management equipment, data management systems, methods, and programs
US10133278B2 (en) Apparatus of controlling movement of mobile robot mounted with wide angle camera and method thereof
CN109682368B (en) Robot, map construction method, positioning method, electronic device and storage medium
KR102628778B1 (en) Method and apparatus for positioning, computing device, computer-readable storage medium and computer program stored in medium
US11092444B2 (en) Method and system for recording landmarks in a traffic environment of a mobile unit
US8649557B2 (en) Method of mobile platform detecting and tracking dynamic objects and computer-readable medium thereof
JP6773471B2 (en) Autonomous mobile and environmental map updater
AU2016213835A1 (en) Adaptive mapping with spatial summaries of sensor data
US12025462B2 (en) Method for determining the position of a vehicle
TW202036030A (en) Information processing device and mobile robot
JP2021175972A (en) Method, apparatus, computing device, storage medium, and computer program for detecting environmental change
CN114114367A (en) AGV outdoor positioning switching method, computer device and program product
JP7047576B2 (en) Cartography device
CN114879660B (en) Robot environment sensing method based on target drive
JP2022034861A (en) Forklift, location estimation method, and program
CN114186112B (en) Robot navigation method based on Bayesian optimization multiple information gain exploration strategy
US7613673B2 (en) Iterative particle reduction methods and systems for localization and pattern recognition
US11898869B2 (en) Multi-agent map generation
WO2024053145A1 (en) Information processing device, information processing method, and program
KR20240151970A (en) Method and apparatus for planning reference local path on local semantic navigation map for low-cost sensor-based autonomous driving
US20240160960A1 (en) Method for thinning a slam graph, method for operating a mobile device, and mobile device
CN117419733A (en) Method for identifying a map of the surroundings with errors
CN116563319A (en) Lane boundary generation method and equipment in vehicle truth value system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150114

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: 20150609

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150622

R150 Certificate of patent or registration of utility model

Ref document number: 5776332

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150