Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6156793B2 - POSITION ESTIMATION DEVICE, POSITION ESTIMATION PROGRAM, AND POSITION ESTIMATION METHOD - Google Patents
[go: Go Back, main page]

JP6156793B2 - POSITION ESTIMATION DEVICE, POSITION ESTIMATION PROGRAM, AND POSITION ESTIMATION METHOD - Google Patents

POSITION ESTIMATION DEVICE, POSITION ESTIMATION PROGRAM, AND POSITION ESTIMATION METHOD Download PDF

Info

Publication number
JP6156793B2
JP6156793B2 JP2013045674A JP2013045674A JP6156793B2 JP 6156793 B2 JP6156793 B2 JP 6156793B2 JP 2013045674 A JP2013045674 A JP 2013045674A JP 2013045674 A JP2013045674 A JP 2013045674A JP 6156793 B2 JP6156793 B2 JP 6156793B2
Authority
JP
Japan
Prior art keywords
distance
data
position data
cluster
predetermined
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
JP2013045674A
Other languages
Japanese (ja)
Other versions
JP2014174683A (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.)
ATR Advanced Telecommunications Research Institute International
Original Assignee
ATR Advanced Telecommunications Research Institute International
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 ATR Advanced Telecommunications Research Institute International filed Critical ATR Advanced Telecommunications Research Institute International
Priority to JP2013045674A priority Critical patent/JP6156793B2/en
Publication of JP2014174683A publication Critical patent/JP2014174683A/en
Application granted granted Critical
Publication of JP6156793B2 publication Critical patent/JP6156793B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Position Fixing By Use Of Radio Waves (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

この発明は位置推定装置、位置推定プログラムおよび位置推定方法に関し、特にたとえば、距離センサを備える移動体の位置を推定する、位置推定装置、位置推定プログラムおよび位置推定方法に関する。   The present invention relates to a position estimation apparatus, a position estimation program, and a position estimation method, and more particularly, to a position estimation apparatus, a position estimation program, and a position estimation method that estimate the position of a moving object including a distance sensor, for example.

この発明の背景技術の一例が特許文献1に開示される。この特許文献1では、移動マップに壁や障害物などの存在情報のみならず物体の光反射率属性を示す情報を含めることにより、移動領域内にガラスなどの光学的に特殊な素材が存在する場合においても、レーザ光の反射を仮想的に描写しながら自己位置推定を実施する。   An example of background art of the present invention is disclosed in Patent Document 1. In Patent Document 1, an optically special material such as glass is present in a moving area by including not only information on the presence of walls and obstacles but also information indicating the light reflectance attribute of an object in the moving map. Even in this case, self-position estimation is performed while virtually depicting the reflection of the laser beam.

特開2009−223757JP2009-223757

しかし、この背景技術では、環境内を移動する人間等の動的物体について考慮していないため、動的物体が存在する環境下においては、移動体の位置を正しく推定するのが困難である。   However, since this background art does not consider a dynamic object such as a human moving within the environment, it is difficult to correctly estimate the position of the moving object in an environment where the dynamic object exists.

それゆえに、この発明の主たる目的は、新規な、位置推定装置、位置推定プログラムおよび位置推定方法を提供することである。   Therefore, a main object of the present invention is to provide a novel position estimation device, position estimation program, and position estimation method.

この発明の他の目的は、動的物体が存在していても出来る限り正確に位置を推定できる、位置推定装置、位置推定プログラムおよび位置推定方法を提供することである。   Another object of the present invention is to provide a position estimation device, a position estimation program, and a position estimation method capable of estimating a position as accurately as possible even when a dynamic object is present.

第1の発明は、或る環境についての地図に対応する地図データと、当該環境内を移動する移動体に設置した距離センサの検出結果に基づいて当該移動体の位置を推定する位置推定装置であって、距離センサで検出された距離データから、距離を計測された点の位置データを算出する位置データ算出手段、位置データ算出手段によって算出された位置データを所定のルールに従って複数のクラスタにクラスタリングするクラスタリング手段、クラスタリング手段によってクラスタリングされた複数のクラスタの各々に含まれる位置データが示す複数の点の分散についての特徴量を抽出する抽出手段、抽出手段によって抽出された特徴量が所定の条件を満たすかどうかを判断する条件判断手段、および条件判断手段によって所定の条件を満たさないことが判断されたクラスタに含まれる位置データに対応する距離データを消去する消去手段を備える、位置推定装置である。 1st invention is the position estimation apparatus which estimates the position of the said mobile body based on the map data corresponding to the map about a certain environment, and the detection result of the distance sensor installed in the mobile body which moves the said environment The position data calculation means for calculating the position data of the point where the distance is measured from the distance data detected by the distance sensor, and the position data calculated by the position data calculation means is clustered into a plurality of clusters according to a predetermined rule. Clustering means, extraction means for extracting feature quantities for the dispersion of a plurality of points indicated by position data included in each of a plurality of clusters clustered by the clustering means, and feature quantities extracted by the extracting means satisfy a predetermined condition The condition determining means for determining whether or not the condition is satisfied, and the predetermined condition is not satisfied by the condition determining means. It comprises erasing means for erasing the distance data corresponding to the position data included in the cluster is determined is the position estimation device.

第1の発明では、位置推定装置は、或る環境についての地図に対応する地図データと、当該環境内を移動する移動体に設置した距離センサの検出結果に基づいて当該移動体の位置を推定する。位置データ算出手段は、距離センサで検出された距離データから、距離を計測された点の位置データを算出する。たとえば、位置データは、距離を計測したときの移動体の位置を基準しても算出してもよいし、移動体の移動開始位置を基準として算出してもよい。クラスタリング手段は、位置データ算出手段によって算出された位置データを所定のルールに従って複数のクラスタにクラスタリングする。抽出手段は、クラスタリング手段によってクラスタリングされた複数のクラスタの各々に含まれる位置データが示す複数の点の分散についての特徴量を抽出する。たとえば、特徴量は、クラスタの形状に関する特徴である。条件判断手段は、抽出手段によって抽出された特徴量が所定の条件を満たすかどうかを判断する。たとえば、所定の条件は、クラスタの特徴についての条件であり、より具体的には、人間のような動的物体であるか、壁や柱のような静的物体であるかを判別するための条件である。消去手段は、条件判断手段によって所定の条件を満たさないことが判断されたクラスタに含まれる位置データに対応する距離データを消去する。 In the first invention, the position estimation device estimates the position of the mobile body based on map data corresponding to a map of a certain environment and a detection result of a distance sensor installed in the mobile body moving in the environment. To do. The position data calculation means calculates the position data of the point where the distance is measured from the distance data detected by the distance sensor. For example, the position data may be calculated based on the position of the moving body when the distance is measured, or may be calculated based on the movement start position of the moving body. The clustering means clusters the position data calculated by the position data calculating means into a plurality of clusters according to a predetermined rule. The extraction unit extracts feature amounts for the dispersion of a plurality of points indicated by position data included in each of the plurality of clusters clustered by the clustering unit. For example, the feature amount is a feature related to the shape of the cluster. The condition determining unit determines whether or not the feature amount extracted by the extracting unit satisfies a predetermined condition. For example, the predetermined condition is a condition regarding the feature of the cluster, and more specifically, for determining whether the object is a dynamic object such as a human or a static object such as a wall or a column. It is a condition. The erasing unit erases the distance data corresponding to the position data included in the cluster that is determined not to satisfy the predetermined condition by the condition determining unit.

第1の発明によれば、不要な距離データを消去するので、必要なデータのみに基づいて位置を推定することができる。したがって、出来る限り正しく位置を推定することができる。
また、第1の発明によれば、クラスタに含まれる点の個数以外の特徴によって所定の条件を満たすかどうかを判断することができる。
さらに、第1の発明によれば、クラスタの形状に関する特徴が所定の条件を満たすかどうかで、動的物体であるか、静的物体であるかを判別することができる。
According to the first aspect, since unnecessary distance data is deleted, the position can be estimated based only on necessary data. Therefore, the position can be estimated as accurately as possible.
Further, according to the first invention, it is possible to determine whether or not a predetermined condition is satisfied by a feature other than the number of points included in the cluster.
Furthermore, according to the first invention, it is possible to determine whether the object is a dynamic object or a static object depending on whether the feature related to the shape of the cluster satisfies a predetermined condition.

第2の発明は、第1の発明に従属し、所定のルールは、位置データが示す点同士の距離が所定距離以下または所定距離未満であることである。   A second invention is dependent on the first invention, and the predetermined rule is that a distance between points indicated by position data is equal to or less than a predetermined distance or less than a predetermined distance.

第2の発明では、所定のルールは、位置データが示す点同士の距離が所定距離以下または所定距離未満であることであり、近くに有る点が同じクラスタに分類される。   In the second invention, the predetermined rule is that the distance between the points indicated by the position data is equal to or less than the predetermined distance or less than the predetermined distance, and the nearby points are classified into the same cluster.

第2の発明によれば、点同士の距離を検出するだけなので、簡単にクラスタリングすることができる。   According to the second invention, since only the distance between points is detected, clustering can be easily performed.

の発明は、第1または2の発明に従属し、特徴量は、クラスタに含まれる位置データが示す複数の点の分散行列についての固有値であり、所定の条件は、固有値の最大値が第1所定値よりも大きいこと、または、2番目に大きい固有値が当該第1所定値よりも小さい第2所定値未満であることをさらに含む。 A third invention is according to the inventions of the first or second feature quantity is the eigenvalues of the covariance matrix of a plurality of points indicated by the position data included in the cluster, a predetermined condition, the maximum value of the eigenvalue Is larger than the first predetermined value, or the second largest eigenvalue is less than the second predetermined value smaller than the first predetermined value.

の発明では、特徴量は、クラスタに含まれる位置データが示す複数の点の分散行列についての固有値である。たとえば、特徴量は、クラスタに含まれる複数の点の分散についての主成分であり、分散行列の固有値で表される。たとえば、所定の条件は、固有値の最大値が第1所定値よりも大きいこと、または、2番目に大きい固有値が当該第1所定値よりも小さい第2所定値未満であることをさらに含む。したがって、固有値の最大値が第1所定値以下である場合、または、2番目に大きい固有値が第2所定値以上である場合に、所定の条件を満たさないことが判断され、当該固有値を有するクラスタが消去される。 In the third invention, the feature amount is an eigenvalue for a variance matrix of a plurality of points indicated by position data included in the cluster. For example, the feature amount is a principal component for the variance of a plurality of points included in the cluster, and is represented by an eigenvalue of the variance matrix. For example, the predetermined condition further includes that the maximum eigenvalue is larger than the first predetermined value, or that the second largest eigenvalue is less than the second predetermined value smaller than the first predetermined value. Therefore, when the maximum eigenvalue is less than or equal to the first predetermined value, or when the second largest eigenvalue is greater than or equal to the second predetermined value, it is determined that the predetermined condition is not satisfied, and the cluster having the eigenvalue Is erased.

の発明によれば、クラスタに含まれる位置データが示す複数の点の分散行列についての固有値に基づいて不要なデータを消去することができる。 According to the third aspect of the invention, unnecessary data can be erased based on the eigenvalues of the dispersion matrix of a plurality of points indicated by the position data included in the cluster.

の発明は、或る環境についての地図に対応する地図データと、当該環境内を移動する移動体に設置した距離センサの検出結果に基づいて当該移動体の位置を推定するコンピュータの位置推定プログラムであって、コンピュータに、距離センサで検出された距離データから、距離を計測された点の位置データを算出する位置データ算出ステップ、位置データ算出ステップにおいて算出した位置データを所定のルールに従って複数のクラスタにクラスタリングするクラスタリングステップ、クラスタリングステップにおいてクラスタリングした複数のクラスタの各々に含まれる位置データが示す複数の点の分散についての特徴量を抽出する抽出ステップ、抽出ステップにおいて抽出した特徴量が所定の条件を満たすかどうかを判断する条件判断ステップ、および条件判断ステップにおいて所定の条件を満たさないことが判断されたクラスタに含まれる位置データに対応する距離データを消去する消去ステップを実行させる、位置推定プログラムである。 According to a fourth aspect of the present invention, there is provided a computer position estimation method for estimating a position of a moving body based on map data corresponding to a map of an environment and a detection result of a distance sensor installed on the moving body moving in the environment. A position data calculation step for calculating position data of a point at which a distance is measured from distance data detected by a distance sensor, and a plurality of position data calculated in the position data calculation step according to a predetermined rule. A clustering step for clustering into clusters, an extraction step for extracting variances of a plurality of points indicated by position data included in each of the plurality of clusters clustered in the clustering step, and the feature amounts extracted in the extraction step are predetermined. Condition judgment to judge whether the condition is met Steps, and in the condition determination step to perform the erasing step of erasing the distance data corresponding to the position data included in the cluster it is determined that not satisfy the predetermined condition, the position estimation program.

の発明は、或る環境についての地図に対応する地図データと、当該環境内を移動する移動体に設置した距離センサの検出結果に基づいて当該移動体の位置を推定するコンピュータの位置推定方法であって、コンピュータは、距離センサで検出された距離データから、距離を計測された点の位置データを算出するステップ、(b)ステップ(a)において算出した位置データを所定のルールに従って複数のクラスタにクラスタリングするステップ、(c)ステップ(b)においてクラスタリングした複数のクラスタの各々に含まれる位置データが示す複数の点の分散についての特徴量を抽出するステップ、(d)ステップ(c)において抽出した特徴量が所定の条件を満たすかどうかを判断するステップ、および(e)ステップ(d)において所定の条件を満たさないことが判断されたクラスタに含まれる位置データに対応する距離データを消去するステップを含む、位置推定方法である。 According to a fifth aspect of the present invention, there is provided a computer position estimation method for estimating a position of a moving object based on map data corresponding to a map of an environment and a detection result of a distance sensor installed on the moving object moving in the environment. In the method, the computer calculates position data of the point where the distance is measured from the distance data detected by the distance sensor, and (b) a plurality of the position data calculated in step (a) according to a predetermined rule. (C) a step of extracting feature quantities for the dispersion of a plurality of points indicated by position data included in each of the plurality of clusters clustered in step (b), (d) a step (c) And (e) determining whether or not the feature quantity extracted in step (d) satisfies a predetermined condition. Te including the step of erasing the distance data corresponding to the position data included in the cluster is determined to not satisfy the predetermined condition, a position estimating method.

および第の発明においても、第1の発明と同様に、出来る限り正しく位置を推定することができる。 In the fourth and fifth inventions, as in the first invention, the position can be estimated as accurately as possible.

この発明によれば、移動体に設置した距離センサで距離を計測された点に対応する位置データを所定のルールに従って複数のクラスタにクラスタリングし、各クラスタが所定の条件を満たすかどうかを判別するだけで、静的物体についてのクラスタ以外のクラスタに含まれる位置データに対応する距離データを消去するので、人間のような動的物体が存在する環境においても、出来る限り正しく位置を推定することができる。   According to the present invention, position data corresponding to a point whose distance is measured by a distance sensor installed on a moving body is clustered into a plurality of clusters according to a predetermined rule, and it is determined whether each cluster satisfies a predetermined condition. The distance data corresponding to the position data included in the cluster other than the cluster for the static object is deleted, so that the position can be estimated as accurately as possible even in an environment where a dynamic object such as a human exists. it can.

この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。   The above object, other objects, features and advantages of the present invention will become more apparent from the following detailed description of embodiments with reference to the drawings.

図1はこの発明の位置推定システムの外観構成の一例を示す図解図である。FIG. 1 is an illustrative view showing one example of an external configuration of a position estimation system of the present invention. 図2は図1に示す位置推定システムの電気的な構成の一例を示すブロック図である。FIG. 2 is a block diagram showing an example of an electrical configuration of the position estimation system shown in FIG. 図3は図1および図2に示す距離センサの検出範囲を説明するための図解図である。FIG. 3 is an illustrative view for explaining a detection range of the distance sensor shown in FIGS. 1 and 2. 図4は移動体の位置および向きを算出するためのパラメータを説明するための図解図である。FIG. 4 is an illustrative view for explaining parameters for calculating the position and orientation of the moving body. 図5はグリッドマップの一例を示す図解図である。FIG. 5 is an illustrative view showing an example of a grid map. 図6は動的物体と静的物体を判別する方法を説明するための図解図である。FIG. 6 is an illustrative view for explaining a method of discriminating between a dynamic object and a static object. 図7は動的物体と静的物体を判別する方法を説明するための他の図解図である。FIG. 7 is another illustrative view for explaining a method of discriminating between a dynamic object and a static object. 図8は動的物体と静的物体を判別する方法を説明するためのその他の図解図である。FIG. 8 is another illustrative view for explaining a method of discriminating between a dynamic object and a static object. 図9は動的物体と静的物体を判別する方法を説明するためのさらに他の図解図である。FIG. 9 is still another illustrative view for explaining a method of discriminating between a dynamic object and a static object. 図10は静的物体を判定する具体的な場合を説明するための図解図である。FIG. 10 is an illustrative view for explaining a specific case of determining a static object. 図11は動的物体と静的物体を判別した結果、静的物体以外の点を削除した場合の一例を示す図解図である。FIG. 11 is an illustrative view showing an example in which points other than the static object are deleted as a result of discriminating the dynamic object and the static object. 図12は図2に示すRAMのメモリマップの一例を示す図解図である。FIG. 12 is an illustrative view showing one example of a memory map of the RAM shown in FIG. 図13は図2に示すCPUの全体処理の一部を示すフロー図である。FIG. 13 is a flowchart showing a part of the entire processing of the CPU shown in FIG. 図14は図2に示すCPUの全体処理の他の一部であって、図13に後続するフロー図である。FIG. 14 is another part of the overall processing of the CPU shown in FIG. 2, and is a flowchart subsequent to FIG. 図15は図2に示すCPUの不要データの消去処理の一部を示すフロー図である。FIG. 15 is a flowchart showing a part of the unnecessary data erasing process of the CPU shown in FIG. 図16は図2に示すCPUの不要データの消去処理の他の一部であって、図15に後続するフロー図である。16 is another part of the unnecessary data erasing process of the CPU shown in FIG. 2, and is a flowchart subsequent to FIG.

図1(A)を参照して、この実施例の位置推定システム10は、電気車椅子のような移動体12を含み、移動体12は、その下部に、左右の前輪(キャスター)14a、14bおよび左右の後輪16a、16bを備えている。また、移動体12の左側の枠の上部には操作レバー18が設けられる。さらに、移動体12の左側の枠であり、左足を置くステップ20aの左側に、距離センサ22aが取り付けられる。ただし、距離センサ22aは、移動体12の右側の枠であり、右足を置くステップ20bの右側に取り付けてもよい。また、移動体12を上方から見た模式図である図1(B)に示すように、移動体12の後方に、距離センサ22bが設けられる。   Referring to FIG. 1A, a position estimation system 10 of this embodiment includes a moving body 12 such as an electric wheelchair, and the moving body 12 has left and right front wheels (casters) 14a, 14b and Left and right rear wheels 16a and 16b are provided. An operation lever 18 is provided on the upper part of the left frame of the moving body 12. Further, a distance sensor 22a is attached to the left frame of the moving body 12 on the left side of the step 20a where the left foot is placed. However, the distance sensor 22a is a right frame of the moving body 12, and may be attached to the right side of the step 20b where the right foot is placed. Further, as shown in FIG. 1B, which is a schematic view of the moving body 12 as viewed from above, a distance sensor 22 b is provided behind the moving body 12.

なお、この実施例では、距離センサ22aおよび22bを移動体12の前後に取り付けるようにしてあるが、移動体12の左右に取り付けるようにしてもよい。このように2つの距離センサ22a、22bを移動体12の前後または左右に設けるのは、移動体12の周りを全周(360°)に渡って、距離を検出(計測)するためである。ただし、これは単なる一例であり、距離センサは1つでもよく、または、3つ以上設けてもよい。   In this embodiment, the distance sensors 22a and 22b are attached to the front and rear of the moving body 12, but may be attached to the left and right of the moving body 12. The reason why the two distance sensors 22a and 22b are provided on the front and rear or the left and right sides of the moving body 12 is to detect (measure) the distance around the moving body 12 over the entire circumference (360 °). However, this is merely an example, and there may be one distance sensor or three or more distance sensors.

また、この実施例では、距離センサ22aおよび22bは、或る環境内の壁、柱のような固定物(静的物体)のみならず、人間のような移動物(動的物体)を検出(判別)する。このため、後述するように、距離センサ22a、22bを、その検出位置が地面ないし床面から所定の高さになるように設置してある。この実施例では、所定の高さは11cmである。これは、人間の脚(足首辺り)を検出するためである。   In this embodiment, the distance sensors 22a and 22b detect not only fixed objects (static objects) such as walls and pillars in a certain environment but also moving objects (dynamic objects) such as humans ( Discriminate). For this reason, as will be described later, the distance sensors 22a and 22b are installed such that their detection positions are at a predetermined height from the ground or floor. In this embodiment, the predetermined height is 11 cm. This is to detect a human leg (around the ankle).

図1(A)に戻って、移動体12の座席シートの下側であり、左の後輪16aと右の後輪16bの間には、ボックス24が設けられる。この中に、後述するコンピュータ30、入出力インターフェイス(以下、単に「インターフェイス」という。)32、モータドライバ34a、34b、モータ36a、36bおよびエンコーダ38a、38bが設けられる(図2参照)。ただし、コンピュータ30およびインターフェイス32は、ボックス24の外に設けるようにしてもよい。   Referring back to FIG. 1A, a box 24 is provided below the seat of the moving body 12 and between the left rear wheel 16a and the right rear wheel 16b. A computer 30, an input / output interface (hereinafter simply referred to as “interface”) 32, motor drivers 34a and 34b, motors 36a and 36b, and encoders 38a and 38b, which will be described later, are provided (see FIG. 2). However, the computer 30 and the interface 32 may be provided outside the box 24.

図2は図1(A)および(B)に示した位置推定システム10の電気的な構成を示すブロック図である。図2に示すように、位置推定システム10は、移動体12の位置推定装置として機能するコンピュータ30を含む。コンピュータ30は、汎用のパーソナルコンピュータやワークステーションなどのコンピュータであり、CPU30a、RAM30bおよびHDD30cなどのコンポーネントを備える。   FIG. 2 is a block diagram showing an electrical configuration of the position estimation system 10 shown in FIGS. 1 (A) and 1 (B). As shown in FIG. 2, the position estimation system 10 includes a computer 30 that functions as a position estimation device for the moving body 12. The computer 30 is a computer such as a general-purpose personal computer or workstation, and includes components such as a CPU 30a, a RAM 30b, and an HDD 30c.

また、コンピュータ30には、上述した操作レバー18および距離センサ22a、22bが接続されるとともに、インターフェイス32が接続される。インターフェイス32には、モータドライバ34aを介してモータ36aが接続されるとともに、モータドライバ34bを介してモータ36bが接続される。また、インターフェイス32には、エンコーダ38aおよび38bが接続される。   Further, the operation lever 18 and the distance sensors 22a and 22b described above are connected to the computer 30 and an interface 32 is connected thereto. A motor 36a is connected to the interface 32 via a motor driver 34a, and a motor 36b is connected via a motor driver 34b. The interface 32 is connected to encoders 38a and 38b.

図示は省略するが、モータ36aの回転軸と左の後輪16aの回転軸がギアを用いて連結され、モータ36bの回転軸と右の後輪16bの回転軸がギアを用いて連結される。   Although not shown, the rotation shaft of the motor 36a and the rotation shaft of the left rear wheel 16a are connected using a gear, and the rotation shaft of the motor 36b and the rotation shaft of the right rear wheel 16b are connected using a gear. .

コンピュータ30は、この実施例の位置推定システム10の全体的な制御を司る。この実施例では、CPU30aは、操作レバー18からの操作入力に応じてモータ36a、36bの駆動を制御したり、つまり移動体12の移動を制御したり、距離センサ22a、22bおよびエンコーダ38a、38bで検出された距離データや回転数データを取得および記憶したりする。また、コンピュータ30は、移動体12が移動する(サービスを提供する)環境についての地図(地図データ)と、検出したデータに基づいて、移動体12の位置を推定(決定)する。   The computer 30 controls the entire position estimation system 10 of this embodiment. In this embodiment, the CPU 30a controls the driving of the motors 36a and 36b in accordance with the operation input from the operation lever 18, that is, controls the movement of the moving body 12, and the distance sensors 22a and 22b and the encoders 38a and 38b. The distance data and the rotation speed data detected in step 1 are acquired and stored. Further, the computer 30 estimates (determines) the position of the moving body 12 based on the map (map data) about the environment in which the moving body 12 moves (provides services) and the detected data.

操作レバー18は、ユーザによって操作され、操作に応じた信号(操作入力)をコンピュータ30に与える。たとえば、前進、後退、停止、左折、右折および旋回などの操作を行うことができる。   The operation lever 18 is operated by a user and gives a signal (operation input) corresponding to the operation to the computer 30. For example, operations such as forward, backward, stop, left turn, right turn, and turn can be performed.

ただし、リモートコントローラ(図示せず)を用いて、遠隔操作により、操作入力をコンピュータ30に与えることもできる。   However, an operation input can also be given to the computer 30 by remote operation using a remote controller (not shown).

距離センサ22a、22bは、たとえば、汎用のレーザレンジファインダ(LRF)であり、レーザーを照射し、物体に反射して戻ってくるまでの時間から当該物体との距離を計測するものである。たとえば、トランスミッタ(図示せず)から照射したレーザーを回転ミラー(図示せず)で反射させて、扇状に一定角度(たとえば、0.25度)ずつスキャンする。また、この実施例では、検出範囲(図3参照)の全体をスキャンする周期は、25msecである。   The distance sensors 22a and 22b are, for example, general-purpose laser range finders (LRF), and measure the distance to the object from the time it takes to irradiate the laser and reflect it back to the object. For example, a laser beam emitted from a transmitter (not shown) is reflected by a rotating mirror (not shown), and scanned in a fan shape at a certain angle (for example, 0.25 degrees). In this embodiment, the period for scanning the entire detection range (see FIG. 3) is 25 msec.

図3は、距離センサ22a、22bの検出範囲(計測範囲)を説明するための図解図である。この実施例の距離センサ22a、22bの計測範囲は、半径R(R≒10〜15m)の扇形状で示される。扇の角度は、正面方向を中心として左側および右側のそれぞれに135°である。つまり、正面を中心とする270°の範囲について距離を検出することができる。   FIG. 3 is an illustrative view for explaining detection ranges (measurement ranges) of the distance sensors 22a and 22b. The measurement ranges of the distance sensors 22a and 22b in this embodiment are indicated by a fan shape having a radius R (R≈10 to 15 m). The angle of the fan is 135 ° on each of the left side and the right side with respect to the front direction. That is, the distance can be detected for a range of 270 ° centered on the front.

図2に戻って、モータドライバ34a、34bは、コンピュータ30からの指示に基づいて、モータ36a、36bを駆動する。エンコーダ38aは、モータ36aの回転数(rps)を検出し、回転数についてのデータ(回転数データ)を、インターフェイス32を介してコンピュータ30に入力する。同様に、エンコーダ38bは、モータ36bの回転数を検出し、回転数についての回転数データを、インターフェイスを介してコンピュータ30に入力する。   Returning to FIG. 2, the motor drivers 34 a and 34 b drive the motors 36 a and 36 b based on an instruction from the computer 30. The encoder 38 a detects the rotational speed (rps) of the motor 36 a and inputs data about the rotational speed (rotational speed data) to the computer 30 via the interface 32. Similarly, the encoder 38b detects the rotational speed of the motor 36b, and inputs rotational speed data regarding the rotational speed to the computer 30 via the interface.

コンピュータ30は、距離センサ22a、22bで検出される距離データと、エンコーダ38a、38bで検出される回転数データを取得して、RAM30b(HDD30cでもよい。)に記憶する。ただし、距離センサ22aで検出される距離データと距離センサ22bで検出される距離データは区別されるとともに、同じ時点において検出された距離データと回転数データは互いに関連付けられる。   The computer 30 acquires distance data detected by the distance sensors 22a and 22b and rotation speed data detected by the encoders 38a and 38b, and stores them in the RAM 30b (or the HDD 30c). However, the distance data detected by the distance sensor 22a and the distance data detected by the distance sensor 22b are distinguished, and the distance data detected at the same time point and the rotation speed data are associated with each other.

たとえば、移動体12は、身振り手振りのような身体動作および発話の少なくとも一方を用いたコミュニケーションを実行可能なロボットなどに適用され、当該ロボットは、自身が適用される環境(ショッピングモールやイベント会場など)において、道案内、接客、商品や展示品の説明(案内)などのサービスを提供する。たとえば、本件の出願人等が開発するとともに、製造販売するコミュニケーションロボット「Robovie(ロボビー)(登録商標)」を用いることができる。ロボットは、自身が適用される環境内を移動し、移動した位置(場所)に応じたガイドを実行する。したがって、ロボット(移動体12)は、自身の位置を知る必要がある。   For example, the mobile body 12 is applied to a robot or the like that can perform communication using at least one of body movements and speech such as gestures, and the robot is an environment to which the robot is applied (such as a shopping mall or an event venue). ) Provide services such as route guidance, customer service, explanation of products and exhibits (guidance). For example, a communication robot “Robovie (registered trademark)” developed by the applicant of the present application and manufactured and sold can be used. The robot moves within the environment to which the robot is applied, and executes a guide according to the moved position (location). Therefore, the robot (moving body 12) needs to know its own position.

ただし、ロボット(移動体12)のスタート位置および向き(初期位置および初期の向き)、通過点および終点は外部から与えられ、初期位置から移動を開始する。たとえば、スタート位置、1または複数の通過点および終点は、時系列に従う順番で指示される。   However, the start position and orientation (initial position and initial orientation), passing point, and end point of the robot (moving body 12) are given from the outside, and movement starts from the initial position. For example, the start position, the one or more passing points, and the end point are indicated in the order according to the time series.

したがって、位置推定システム10では、移動体12の位置を推定する。この実施例では、パーティクルフィルタを用いて移動体12の位置が推定される。つまり、移動体12が追跡される。パーティクルフィルタとは、多数の粒子を用いて、前時刻の状態からの予測と現在の観測情報から現在の状態を推定する手法である。パーティクルフィルタでは、予測、観測、リサンプリングを繰り返すことによって移動体12を追跡する。
<予測>
時刻t−1のパーティクルiから時刻tにおけるパーティクルiの位置(方向を含む“状態”)を予測する。この実施例では、移動体12の状態ベクトルはx=[x,y,θ]であり、位置(x,y)および向き(θ)で表される。また、パーティクルフィルタはn個(この実施例では、400個)のパーティクルを含み、i番目のパーティクルの状態ベクトルはx=[x,y,θで表される。この実施例では、時刻tにおけるパーティクルiの状態ベクトルxi tは、数1に従って算出される。
Therefore, the position estimation system 10 estimates the position of the moving body 12. In this embodiment, the position of the moving body 12 is estimated using a particle filter. That is, the moving body 12 is tracked. The particle filter is a technique for estimating the current state from the prediction at the previous time and the current observation information using a large number of particles. The particle filter tracks the moving body 12 by repeating prediction, observation, and resampling.
<Forecast>
The position (“state” including direction) of the particle i at the time t is predicted from the particle i at the time t−1. In this embodiment, the state vector of the moving body 12 is x = [x, y, θ] T , and is represented by a position (x, y) and a direction (θ). The particle filter includes n particles (400 particles in this embodiment), and the state vector of the i -th particle is represented by x i = [x i , y i , θ i ] T. In this embodiment, the state vector x i t of the particle i at time t is calculated according to Equation 1.

[数1]
i t=f(xi t-1,ut-1,Δt)
ただし、数1に示すuは移動体12の動作情報u=[v,ω]Tであり、数2に従って算出される。ここで、vは移動体12の速度であり、ωは車輪16aおよび16bの車軸の中心(図4参照)であり、車軸と垂直な軸周りの角度速である。また、VL、VRは移動体12の左右の車輪(16a、16b)の移動速度であり、Dは移動体12の車輪(16a、16b)間距離である。
[Equation 1]
x i t = f (x i t−1 , u t−1 , Δt)
However, u shown in Equation 1 is the motion information u = [v, ω] T of the moving body 12 and is calculated according to Equation 2. Here, v is the speed of the moving body 12, and ω is the center of the axle of the wheels 16a and 16b (see FIG. 4), and is the angular speed around the axis perpendicular to the axle. V L and V R are the moving speeds of the left and right wheels (16a, 16b) of the moving body 12, and D is the distance between the wheels (16a, 16b) of the moving body 12.

[数2]

Figure 0006156793
[Equation 2]
Figure 0006156793

左右の車輪(16a、16b)の移動速度VL、VRは、左右の車輪(16a、16b)の回転数から算出することができ、また、車輪間隔Dは予め知ることができる。ただし、回転数に応じた移動速度VL、VRのテーブルを用意しておき、計算せずに、テーブルを参照することにより移動速度VL、VRを取得してもよい。 The moving speeds V L and V R of the left and right wheels (16a, 16b) can be calculated from the rotation speeds of the left and right wheels (16a, 16b), and the wheel interval D can be known in advance. However, the moving velocity V L corresponding to the rotational speed, is prepared a table of V R, without computing, it may acquire the moving speed V L, V R by referring to the table.

そして、算出された動作u=[v,ω]Tを積分することにより、前回算出した移動体12の位置(xt-1,yt-1)および向きθt-1からの移動距離dと回転角度αを求めることができる。ただし、初期位置(x0,y0)および初期の向きθ0は外部から与えられる。したがって、上記の数1は数3のように表すことができる。 Then, by integrating the calculated motion u = [v, ω] T , the previously calculated position (x t−1 , y t−1 ) of the moving body 12 and the moving distance d from the direction θ t−1. And the rotation angle α can be obtained. However, the initial position (x 0 , y 0 ) and the initial orientation θ 0 are given from the outside. Therefore, the above Equation 1 can be expressed as Equation 3.

[数3]
i t=xi t-1+v・cos(θt-1)・Δt
i t=yi t-1+v・sin(θt-1)・Δt
θi t=θi t-1+ω・Δt
このように、前時刻t−1における各パーティクルiの状態xi t-1から時間tにおける各パーティクルiの状態xi tが予測される。
<観測>
予測された位置における各パーティクルiの尤度および重要度(重み)wi tを算出する。この実施例では、尤度は図5に示すようなグリッドマップについての地図データを用いて算出する。ただし、図5では、移動体12が移動する環境の一部についてのグリッドマップを示す。図5を参照して分かるように、グリッドマップは、複数のグリッド線が縦横に等間隔で描画されることにより生成される。詳細な説明は省略するが、グリッドマップは、移動体12が移動する環境(現実空間)を真上方向から俯瞰的に見た場合の2次元のマップである。つまり、グリッドマップは、世界座標系で作成されている。
[Equation 3]
x i t = x i t−1 + v · cos (θ t−1 ) · Δt
y i t = y i t−1 + v · sin (θ t−1 ) · Δt
θ i t = θ i t-1 + ω · Δt
Thus, the state x i t of each particle i at state x i t-1 from the time t of each particle i at the previous time t-1 is predicted.
<Observation>
The likelihood and importance (weight) w i t of each particle i at the predicted position are calculated. In this embodiment, the likelihood is calculated using map data for a grid map as shown in FIG. However, FIG. 5 shows a grid map for a part of the environment in which the moving body 12 moves. As can be seen with reference to FIG. 5, the grid map is generated by drawing a plurality of grid lines at equal intervals in the vertical and horizontal directions. Although detailed description is omitted, the grid map is a two-dimensional map when the environment (real space) in which the moving body 12 moves is viewed from above. That is, the grid map is created in the world coordinate system.

たとえば、グリッドマップでは、グリッド線の間隔は現実空間における所定の長さ(5〜10cm)に相当する。また、壁や柱などの静的物体に相当する部分(距離センサ22a、22bで距離を計測可能な表面部分)が描画されたグリッドに対応して、静的物体であることの情報が記憶されている。図5では、静的物体であることの情報が記憶されているグリッドに黒色を付してある。   For example, in the grid map, the interval between the grid lines corresponds to a predetermined length (5 to 10 cm) in the real space. In addition, information indicating that the object is a static object is stored in correspondence with a grid on which a portion corresponding to a static object such as a wall or a column (a surface portion on which a distance can be measured by the distance sensors 22a and 22b) is drawn. ing. In FIG. 5, black is added to the grid in which information indicating that the object is a static object is stored.

上述したように推定された時刻tにおける各パーティクルiの状態xi tにおけるグリッドマップ上の計測結果(シュミレーション結果)が、実際の距離センサ22a、22bの計測結果(計測値zt)と等しくなる確率(尤度)が数4に従って求められる。 On the grid map in the state x i t of each particle i at time t, which is estimated as described above measurement results (simulation results) is equal to the actual distance sensors 22a, 22b of the measurement result (measurement value z t) The probability (likelihood) is obtained according to Equation 4.

[数4]
i t=(zi t|xi t
i t=hc/Total
ただし、この実施例では、計測値ztは、1周期にスキャンするレーザーの総数Total(この実施例では、1080)のうち、実際に距離を計測したレーザーの数hcについての割合である。ただし、距離センサ22a、22bのそれぞれについて、計測値ztが求められ、尤度もそれぞれの距離センサ22a、22bについて求められる。
[Equation 4]
w i t = (z i t | x i t )
z i t = hc / Total
However, in this embodiment, the measured value z t is the ratio of the number of lasers hc that actually measured the distance out of the total number of lasers scanned in one cycle Total (1080 in this embodiment). However, the measured value z t is obtained for each of the distance sensors 22a and 22b, and the likelihood is also obtained for each of the distance sensors 22a and 22b.

そして、数5に示すように、各パーティクルiの重みwi tは、すべてのパーティクルiの尤度合計で各パーティクルiの尤度を正規化することにより、算出(決定)される。ただし、数5において、nはパーティクルiの総数(この実施例では、400)である。また、数5では、“=”は代入を意味する。 Then, as shown in Equation 5, the weight w i t of each particle i is calculated (determined) by normalizing the likelihood of each particle i with the total likelihood of all the particles i. However, in Equation 5, n is the total number of particles i (400 in this embodiment). In Equation 5, “=” means substitution.

[数5]

Figure 0006156793
[Equation 5]

Figure 0006156793

この実施例では、尤度が重みwi tとして決定されるが、これに限定される必要はない。尤度の大きさに比例して重みwi tを決定してもよいし、尤度の最も高いパーティクルiから順に重みwi tを線形的に変化させるように決定してもよいし、一定の閾値毎に重みwi tを段階的に変化するように決定してもよい。 In this embodiment, the likelihood is determined as the weight w i t , but need not be limited to this. May be determined the weight w i t in proportion to the magnitude of likelihood, to the weight w i t from the highest particle i in the order of likelihood may be determined so as to linearly change, a constant The weight w i t may be determined to change stepwise for each threshold value.

ただし、各パーティクルiについては、グリッドマップ上の状態xi tが示す位置(xt,yt)において、距離センサ22a、22bと同様に、状態xi tが示す向きθtを中心に左右135度の範囲で0.25度ずつスキャンした場合に、レーザーが静的物体であることの情報が記憶されたグリッドに当った数が検出され、スキャンした総数(1080)における当った数の割合が算出される。ただし、レーザー光が届くのは距離Rである。
<リサンプリング>
観測により求めた各パーティクルiの重みwi tに比例した確率で復元抽出によりパーティクルiを選択し、時刻tでのパーティクルiの集合を求める。したがって、重みwi t(尤度)の小さい(低い)パーティクルiは選択されずに消滅し、重みwi t(尤度)の大きい(高い)パーティクルiは何度も選択され仲間を増やす(分裂する)。リサンプリングされたパーティクルiが次の推定に用いられる。ただし、この実施例では、各パーティクルiの平均座標が移動体12の位置(xt,yt)として推定され、各パーティクルiの平均の向きが移動体12の向き(θt)として推定される。
However, for each particle i, the position indicated by the state x i t on the grid map (x t, y t) at a distance sensor 22a, similarly to 22b, left and right about the direction theta t showing the state x i t The number of hits on the grid in which information indicating that the laser is a static object is detected when scanned at 0.25 degrees in the range of 135 degrees, and the ratio of the number of hits in the total number of scans (1080) Is calculated. However, the laser beam reaches the distance R.
<Resampling>
Particle i is selected by restoration extraction with a probability proportional to the weight w i t of each particle i obtained by observation, and a set of particles i at time t is obtained. Accordingly, the particles i having a small weight w i t (likelihood) (low) disappear without being selected, and the particles i having a large weight w i t (likelihood) are selected many times to increase the number of friends ( Split). The resampled particle i is used for the next estimation. However, in this embodiment, the average coordinate of each particle i is estimated as the position (x t , y t ) of the moving body 12, and the average direction of each particle i is estimated as the direction (θ t ) of the moving body 12. The

このように移動体12の位置を推定(修正)するのは、回転数データに基づいてジオメトリ計算(数2、数3)により、初期位置(x0,y0)および初期の向き(θ0)から累積的に時間毎の移動体12の位置および向きを求める場合には、車輪16a、16bの滑りの発生等の要因により、誤差が発生するからである。実験した環境下においては、移動体12が30cm進む毎に約5%のずれ(誤差)が発生した。 The position of the moving body 12 is estimated (corrected) in this way by the geometry calculation (Equation 2 and Equation 3) based on the rotational speed data and the initial position (x 0 , y 0 ) and the initial orientation (θ 0). This is because an error occurs due to factors such as the occurrence of slipping of the wheels 16a and 16b when the position and orientation of the moving body 12 are obtained cumulatively from the above. Under the experimental environment, a displacement (error) of about 5% occurred every time the moving body 12 moved 30 cm.

また、このような位置推定システム10は、ショッピングモールやイベント会場など、人間、ショッピングカートや台車のような動的物体が存在する環境において移動する(或るサービスを提供する)移動体12の位置を推定するため、距離センサ22a、22bで検出された距離データのうち、人間などの動的物体を計測した場合の距離データを消去する必要がある。このような動的物体の情報については、地図データ(グリッドマップ)に記憶されていないからである。   In addition, such a position estimation system 10 is a position of a mobile body 12 that moves (provides a certain service) in an environment where dynamic objects such as humans, shopping carts, and carts exist, such as shopping malls and event venues. Therefore, it is necessary to delete the distance data when a dynamic object such as a human is measured among the distance data detected by the distance sensors 22a and 22b. This is because such dynamic object information is not stored in the map data (grid map).

そこで、この実施例では、距離データに基づいて、壁、柱などの静的物体(環境)以外の動的物体などを計測した距離データを判別して、位置推定のために不要な距離データを消去するようにしてある。以下、人間または人間と思われる動的物体についての距離データを消去する場合について説明する。   Therefore, in this embodiment, based on the distance data, distance data obtained by measuring a dynamic object other than a static object (environment) such as a wall or a column is discriminated, and distance data unnecessary for position estimation is determined. It is supposed to be erased. Hereinafter, a case where distance data for a human or a dynamic object that seems to be a human is deleted will be described.

たとえば、図6には、壁の前に2人の人間が存在し、そのような状況において、移動体12が壁や人間に対面し、移動体12に設けられた距離センサ22aで距離を検出する様子が示される。ただし、図6では、壁、人間および移動体12を上方から見た図である。また、ここでは、簡単のため、距離センサ22aの計測範囲は、正面を中心とする約90°の範囲であり、その計測範囲を約3°ずつスキャンした場合について示してある。さらに、図6では、検出(計測)される距離は点線で示してある。また、上述したように、距離センサ22aは、床ないし地面から所定の高さに設置され、したがって、人間については、その脚(足首辺り)との距離を計測する。   For example, in FIG. 6, there are two people in front of a wall. In such a situation, the moving body 12 faces the wall or the person, and the distance is detected by the distance sensor 22a provided on the moving body 12. It shows how to do. However, in FIG. 6, it is the figure which looked at the wall, the person, and the moving body 12 from upper direction. Further, here, for the sake of simplicity, the measurement range of the distance sensor 22a is a range of about 90 ° centered on the front surface, and the measurement range is shown as being scanned by about 3 °. Further, in FIG. 6, the detected (measured) distance is indicated by a dotted line. Further, as described above, the distance sensor 22a is installed at a predetermined height from the floor or the ground. Therefore, for humans, the distance from the leg (around the ankle) is measured.

図6に示すような場合について、不要な距離データを消去する方法について説明する。この実施例では、まず、移動体12に搭載された距離センサ22a、22bのそれぞれで計測された距離データから、当該距離データを検出したときの移動体12の位置および向きを基準とする2次元の座標系(移動体座標系)の位置(点)データが算出される。このとき、2つの距離センサ22a、22bの取り付け位置が考慮される。つまり、移動体12の位置と、距離センサ22a、22bの取り付け位置のずれが調整される。当然のことではあるが、距離データを検出したときの距離センサ22a、22bの計測範囲における角度も考慮される。ただし、この実施例では、世界座標系における移動体12の位置(xt,yt)および向きθtは所定時間(たとえば、30秒)毎に推定(更新)されるため、距離データは、推定された現実空間上の位置(xt,yt)および向きθtに基づいて、2次元の世界座標系の位置データに変換される。 A method for erasing unnecessary distance data in the case shown in FIG. 6 will be described. In this embodiment, first, the two-dimensional data is based on the position and orientation of the moving body 12 when the distance data is detected from the distance data measured by the distance sensors 22a and 22b mounted on the moving body 12. The position (point) data of the coordinate system (moving body coordinate system) is calculated. At this time, the attachment positions of the two distance sensors 22a and 22b are considered. That is, the displacement between the position of the moving body 12 and the attachment positions of the distance sensors 22a and 22b is adjusted. Of course, the angle in the measurement range of the distance sensors 22a and 22b when the distance data is detected is also taken into consideration. However, in this embodiment, since the position (x t , y t ) and the direction θ t of the moving body 12 in the world coordinate system are estimated (updated) every predetermined time (for example, 30 seconds), the distance data is Based on the estimated position (x t , y t ) in the real space and the direction θ t , it is converted into position data in a two-dimensional world coordinate system.

この変換された位置データに対応する位置(点)を所定のルールに従ってクラスタリングし、クラスタリングされた点群(クラスタ)の特徴から人間を判別し、人間であることが判別されたクラスタに含まれる位置(点)データに対応する距離データを消去する。ただし、クラスタに含まれる点の数が所定数NP(この実施例では、5)よりも少ない場合には、動的物体であるか静的物体であるかを判別するのが困難であるため、このようなクラスタに含まれる位置データに対応する距離データについても消去するようにしてある。このクラスタに含まれる位置データ(点)の数もクラスタの特徴の1つである。   The positions (points) corresponding to the converted position data are clustered according to a predetermined rule, humans are discriminated from the characteristics of the clustered points (clusters), and the positions included in the clusters that are discriminated to be humans (Point) The distance data corresponding to the data is deleted. However, when the number of points included in the cluster is less than a predetermined number NP (5 in this embodiment), it is difficult to determine whether the object is a dynamic object or a static object. The distance data corresponding to the position data included in such a cluster is also deleted. The number of position data (points) included in this cluster is also one of the features of the cluster.

クラスタリングでは、距離が所定値TH(この実施例では、10cm)未満である位置(点)同士が同じクラスタに分類される。具体的には、着目する点との距離が最も近い(短い)点を検出し、その距離が所定値TH未満であるかどうかを判断する。そして、距離が所定値TH未満である場合には、検出した点を着目する点と同じクラスタに分類する。一方、距離が所定値TH以上である場合には、検出した点を着目する点とは異なる新しいクラスタに分類する。そして、新しいクラスタに分類した点を着目する点として、上記のようなクラスタリングを行う。このようにして、クラスタリングはすべての点について行われる。   In clustering, positions (points) whose distance is less than a predetermined value TH (10 cm in this embodiment) are classified into the same cluster. Specifically, a point having the shortest (short) distance to the point of interest is detected, and it is determined whether the distance is less than a predetermined value TH. If the distance is less than the predetermined value TH, the detected point is classified into the same cluster as the point of interest. On the other hand, when the distance is equal to or greater than the predetermined value TH, the detected point is classified into a new cluster different from the point of interest. Then, the clustering as described above is performed with the point classified as a new cluster as a point of interest. In this way, clustering is performed for all points.

図7は、図6において移動体12の距離センサ22aによって距離を計測された点(位置)を白丸印で示す。ただし、図7では、距離を計測された点(位置)を分かり易く示すために、壁と人間を省略してある。このような点が上述した方法により、クラスタリングされる。ただし、上述したように、実際には、世界座標系に座標変換された位置データについてクラスタリングが行われる。   FIG. 7 shows the points (positions) whose distances are measured by the distance sensor 22a of the moving body 12 in FIG. However, in FIG. 7, in order to show the point (position) where the distance is measured in an easy-to-understand manner, a wall and a person are omitted. Such points are clustered by the method described above. However, as described above, actually, clustering is performed on the position data coordinate-converted to the world coordinate system.

図8は、図7に示す各点(位置)について、上述した方法により、クラスタリングを行った場合に生成されたクラスタを示す。図8から分かるように、たとえば、7つのクラスタが生成される。図8(図9および図10も同じ。)では、同じクラスタに分類されていることを示すために点を囲んである。   FIG. 8 shows clusters generated when clustering is performed for each point (position) shown in FIG. 7 by the method described above. As can be seen from FIG. 8, for example, seven clusters are generated. In FIG. 8 (FIGS. 9 and 10 are the same), dots are enclosed to indicate that they are classified into the same cluster.

クラスタリングを終えると、各クラスタについての特徴を抽出(算出)する。この実施例では、クラスタの特徴は、当該クラスタに含まれる複数の点の分散についての主成分であり、分散行列についての固有値λ,λである。ただし、λは分散行列についての固有値の中で最も大きい固有値であり、λは固有値λの次に(2番目に)大きい固有値である。図9では、分かり易く示すために、クラスタの特徴(分散の主成分)を実線で示し、クラスタに含まれる点を省略してある。 When clustering is completed, the features for each cluster are extracted (calculated). In this embodiment, the feature of the cluster is a principal component for the dispersion of a plurality of points included in the cluster, and the eigenvalues λ 1 and λ 2 for the dispersion matrix. However, λ 1 is the largest eigenvalue among eigenvalues for the dispersion matrix, and λ 2 is the second (second) largest eigenvalue after eigenvalue λ 1 . In FIG. 9, for the sake of easy understanding, the features of clusters (principal components of dispersion) are indicated by solid lines, and points included in the clusters are omitted.

上述したように、クラスタに含まれる点の数が所定数NP未満であるクラスタについては、動的物体か静的物体かを判別することが困難であるため、固有値を算出するまでも無く、消去される。したがって、図8および図9に示すように、点の数が4つであるクラスタ4は消去される。図9(図11も同じ。)では、クラスタ4が消去されたことを、当該クラスタ4に含まれる点を囲む線を点線で記載することにより表現している。ただし、実際には、クラスタに含まれる点(位置データ)に対応する距離データが消去される。   As described above, since it is difficult to discriminate whether a cluster is a dynamic object or a static object with respect to a cluster in which the number of points included in the cluster is less than a predetermined number NP, it is not necessary to calculate an eigenvalue. Is done. Therefore, as shown in FIGS. 8 and 9, the cluster 4 having four points is erased. In FIG. 9 (the same applies to FIG. 11), the fact that the cluster 4 has been erased is expressed by describing a line surrounding a point included in the cluster 4 with a dotted line. However, actually, distance data corresponding to points (position data) included in the cluster is deleted.

固有値λ,λを算出する場合には、まず、各クラスタでは、クラスタに含まれる複数の点についての重心(または平均)(μx,μy)が数6に従って算出される。ただし、クラスタにn個の点が含まれているものとする。 When calculating the eigenvalues λ 1 and λ 2 , first, in each cluster, the centroid (or average) (μ x , μ y ) for a plurality of points included in the cluster is calculated according to Equation 6. It is assumed that n points are included in the cluster.

[数6]

Figure 0006156793
[Equation 6]
Figure 0006156793

算出された重心(μx,μy)を基準とした場合についてのクラスタの分散行列Σは数7で示され、その固有値が数8に従って算出される。 The cluster dispersion matrix Σ for the case where the calculated centroid (μ x , μ y ) is used as a reference is expressed by Equation 7, and its eigenvalue is calculated according to Equation 8.

[数7]
Σij = E[(Xi −μi)(Xj −μj)]=E(XiXj)−E(Xi)E(Xj)
ただし、μi=E(Xi)であり、この実施例では、2つの固有値λ,λを算出するため、i=j=1,2である。
[Equation 7]
Σ ij = E [(X i −μ i ) (X j −μ j )] = E (X i X j ) −E (X i ) E (X j )
However, μ i = E (X i ), and in this embodiment, i = j = 1, 2 in order to calculate two eigenvalues λ 1 and λ 2 .

[数8]
Σx−λIx=(Σ−λI)x=0
det(Σ−λI)=0
ただし、この実施例では、2つの固有値λ,λを算出するため、Iは2行2列の単位行列である。
[Equation 8]
Σx−λIx = (Σ−λI) x = 0
det (Σ-λI) = 0
However, in this embodiment, since two eigenvalues λ 1 and λ 2 are calculated, I is a 2 × 2 unit matrix.

このようにして、固有値λ,λが算出されると、この固有値λ,λを用いて、動的物体であるか、静的物体であるかが判別される。具体的には、固有値λが第1閾値(たとえば、65cm)よりも大きい場合、または、固有値λが第2閾値(たとえば、3cm)よりも小さい場合には、このような固有値λ,λを有するクラスタを静的物体と判別する。ただし、第1閾値および第2閾値は、人間のような動的物体と壁や柱のような静的物体を判別するために実験等により経験的に得られた数値である。 When the eigenvalues λ 1 and λ 2 are calculated in this way, the eigenvalues λ 1 and λ 2 are used to determine whether the object is a dynamic object or a static object. Specifically, when the eigenvalue λ 1 is larger than a first threshold value (for example, 65 cm), or when the eigenvalue λ 2 is smaller than a second threshold value (for example, 3 cm), such eigenvalue λ 1 , A cluster having λ 2 is determined as a static object. However, the first threshold value and the second threshold value are numerical values obtained empirically in order to discriminate between a dynamic object such as a human and a static object such as a wall or a column.

このように、固有値λが第2閾値よりも小さい場合には、クラスタの形状が細長く、壁に対応するクラスタと考えられるからである。また、固有値λが第1閾値よりも大きい場合には、図10に示すように、通路の角に相当する部分の壁や柱に対応するクラスタと考えられるからである。したがって、固有値λが第1閾値以下である場合、または、固有値λが第2閾値以上である場合には、人間の脚(足首辺り)に相当する物体すなわち人間または人間のような物体に対応するクラスタであると考え、このような固有値λ,λを有するクラスタを動的物体と判別し、当該クラスタに含まれる位置データに対応する距離データを消去する。 Thus, when the eigenvalue λ 2 is smaller than the second threshold value, the shape of the cluster is long and is considered to be a cluster corresponding to the wall. Furthermore, the eigenvalues lambda 1 is is larger than the first threshold value, as shown in FIG. 10, it is considered that the cluster corresponding to the portion of the wall and pillars corresponding to the corners of the passageway. Therefore, when the eigenvalue λ 1 is equal to or smaller than the first threshold value or when the eigenvalue λ 2 is equal to or larger than the second threshold value, an object corresponding to a human leg (around the ankle), that is, a human or an object such as a human being is used. A cluster having such eigenvalues λ 1 and λ 2 is determined as a dynamic object, and distance data corresponding to position data included in the cluster is deleted.

ただし、この実施例では、固有値λ,λの両方が第2閾値(たとえば、3cm)よりも小さい場合には、物体が小さ過ぎると判断し、当該固有値λ,λを有するクラスタに含まれる位置データに対応する距離データを消去する。 However, in this embodiment, when both the eigenvalues λ 1 and λ 2 are smaller than the second threshold (for example, 3 cm), it is determined that the object is too small, and the cluster having the eigenvalues λ 1 and λ 2 is determined. The distance data corresponding to the included position data is deleted.

図11は、図9に示したクラスタ1−3、5−7について、それぞれの特徴に基づいて静的物体であるか動的物体であるかを判別し、動的物体であることが判別されたクラスタ(図11では、クラスタ2、3、5、6)を消去した図である。したがって、図6−図9および図11に示すように、壁や柱のような静的物体についてのクラスタに含まれる位置データに対応する距離データのみが残され、人間のような動的物体についてのクラスタおよび動的物体または静的物体を判別できないクラスタのような不要なクラスタに含まれる位置データに対応する距離データは消去される。   FIG. 11 determines whether the cluster 1-3, 5-7 shown in FIG. 9 is a static object or a dynamic object based on the respective characteristics, and is determined to be a dynamic object. FIG. 12 is a diagram in which the clusters (clusters 2, 3, 5, and 6 in FIG. 11) are deleted. Accordingly, as shown in FIGS. 6 to 9 and 11, only the distance data corresponding to the position data included in the cluster for the static object such as a wall or a column is left, and the dynamic object such as a human is left. The distance data corresponding to the position data included in the unnecessary cluster such as the cluster and the cluster that cannot discriminate the dynamic object or the static object is deleted.

図12は、図2に示したコンピュータ30に内蔵されるRAM30bのメモリマップ300の一例を示す。図12に示すように、RAM30bは、プログラム記憶領域302およびデータ記憶領域304を含む。   FIG. 12 shows an example of the memory map 300 of the RAM 30b built in the computer 30 shown in FIG. As illustrated in FIG. 12, the RAM 30 b includes a program storage area 302 and a data storage area 304.

プログラム記憶領域302には、メイン処理プログラム302a、データ記憶プログラム302b、位置データ算出プログラム302c、不要データ消去プログラム302d、位置推定プログラム302eおよび自律航行プログラム302fなどが記憶される。   The program storage area 302 stores a main processing program 302a, a data storage program 302b, a position data calculation program 302c, an unnecessary data deletion program 302d, a position estimation program 302e, an autonomous navigation program 302f, and the like.

メイン処理プログラム302aは、位置推定システム10のメインルーチンを処理するためのプログラムである。データ記憶プログラム302bは、距離データおよび回転数データを取得して、RAM30bのデータ記憶領域304に記憶するためのプログラムである。   The main processing program 302 a is a program for processing the main routine of the position estimation system 10. The data storage program 302b is a program for acquiring distance data and rotation speed data and storing it in the data storage area 304 of the RAM 30b.

位置データ算出プログラム302cは、検出した距離データから、移動体12の位置および向きを基準として移動体座標系の位置データを算出し、算出した位置データを世界座標系の位置データに座標変換するためのプログラムである。不要データ消去プログラム302dは、移動体12の位置推定に先立って、動的物体と判別されたクラスタと、動的物体または静的物体を判別できないクラスタに含まれる位置データに対応する距離データを消去するためのプログラムである。位置推定プログラム302eは、不要データ消去プログラム302dに従って削除された距離データを除く距離データと地図データ304eに基づき、パーティクルフィルタを用いて、移動体12の位置(状態)を推定するためのプログラムである。自動航行プログラム302fは、地図データ304eを参照して、当該移動体12を目的地(1または複数の通過点と終点)に向けて自動的に移動させるためのプログラムである。   The position data calculation program 302c calculates position data of the moving object coordinate system from the detected distance data with reference to the position and orientation of the moving object 12, and converts the calculated position data into position data of the world coordinate system. It is a program. The unnecessary data erasing program 302d erases the distance data corresponding to the position data included in the cluster determined to be a dynamic object and the cluster where the dynamic object or the static object cannot be determined prior to the position estimation of the moving body 12. It is a program to do. The position estimation program 302e is a program for estimating the position (state) of the moving body 12 using the particle filter based on the distance data excluding the distance data deleted according to the unnecessary data erasing program 302d and the map data 304e. . The automatic navigation program 302f is a program for automatically moving the moving body 12 toward a destination (one or a plurality of passing points and end points) with reference to the map data 304e.

図示は省略するが、位置推定に必要な他のプログラムもプログラム記憶領域302に記憶される。   Although illustration is omitted, other programs necessary for position estimation are also stored in the program storage area 302.

また、データ記憶領域304には、距離データバッファ304aおよび回転数データバッファ304bが設けられる。距離データバッファ304aは、データ記憶プログラム302bに従って距離データを記憶する。同様に、回転数データバッファ304bは、データ記憶プログラム302bに従って回転数データを記憶する。   The data storage area 304 is provided with a distance data buffer 304a and a rotation speed data buffer 304b. The distance data buffer 304a stores distance data according to the data storage program 302b. Similarly, the rotation speed data buffer 304b stores the rotation speed data in accordance with the data storage program 302b.

また、データ記憶領域304には、位置データ304c、クラスタデータ304d、地図データ304eおよび状態データ304fが記憶される。位置データ304cは、位置データ算出プログラム302cに従って距離データバッファ304aに記憶された距離データから算出され、世界座標系に座標変換された位置(点)データである。詳細な説明は省略するが、距離データと対応する位置データとは互いに関連付けされている。クラスタデータ304dは、距離データから算出され、座標変換された位置データをクラスタリングしたクラスタ毎のデータである。地図データ304eは、移動体12が移動する環境についてのグリッドマップのデータである。この地図データ304eでは、グリッドマップのみならず、上述したように、静的物体(の表面)に相当するグリッドに対応して静的物体であることを示す情報が記憶されている。状態データ304fは、位置推定プログラム302eに従って推定された移動体12の状態(位置および向き)についてのデータである。   The data storage area 304 stores position data 304c, cluster data 304d, map data 304e, and status data 304f. The position data 304c is position (point) data calculated from distance data stored in the distance data buffer 304a according to the position data calculation program 302c and coordinate-converted into the world coordinate system. Although detailed description is omitted, the distance data and the corresponding position data are associated with each other. The cluster data 304d is data for each cluster obtained by clustering the position data calculated from the distance data and subjected to coordinate conversion. The map data 304e is grid map data regarding the environment in which the moving body 12 moves. In the map data 304e, not only the grid map but also information indicating that the object is a static object corresponding to the grid corresponding to (the surface of) the static object is stored as described above. The state data 304f is data regarding the state (position and orientation) of the moving body 12 estimated according to the position estimation program 302e.

図示は省略するが、データ記憶領域304には、位置推定のために必要な他のデータが記憶されたり、位置推定のために必要なフラグやタイマ(カウンタ)などが設けられたりする。   Although illustration is omitted, the data storage area 304 stores other data necessary for position estimation, and is provided with a flag, a timer (counter), and the like necessary for position estimation.

図13および図14は図2に示したCPU30aの全体処理を示すフロー図である。CPU30aは、外部からスタート位置、1または複数の通過点、および終点を与えられると、図13に示すように全体処理を開始し、ステップS1で、距離センサ22a、22bを駆動する。このとき、CPU30aは、距離センサ22a、22bからの距離データの取得および記憶を開始する。   13 and 14 are flowcharts showing the overall processing of the CPU 30a shown in FIG. When given a start position, one or a plurality of passing points, and an end point from the outside, the CPU 30a starts the entire process as shown in FIG. 13, and drives the distance sensors 22a and 22b in step S1. At this time, the CPU 30a starts acquiring and storing distance data from the distance sensors 22a and 22b.

次のステップS3では、最初の通過点を設定する。ここでは、指示された通過点のうち、最初の通過点の座標が設定される。そして、ステップS5で、移動体12の自律航行を開始する。つまり、CPU30aは、全体処理とは並行して、移動体12の移動制御の処理を実行する。詳細な説明および図示は省略するが、移動制御の処理では、CPU30aは、地図データ304eを参照して、指示された通過点ないし終点に向かうように、モータドライバ34a、34bを制御し、モータ36a、36bを駆動する。   In the next step S3, the first passing point is set. Here, the coordinates of the first passing point among the specified passing points are set. And in step S5, the autonomous navigation of the mobile body 12 is started. That is, the CPU 30a executes the movement control process for the moving body 12 in parallel with the overall process. Although detailed description and illustration are omitted, in the movement control process, the CPU 30a refers to the map data 304e to control the motor drivers 34a and 34b so as to go to the instructed passing point or end point, and the motor 36a. , 36b are driven.

続くステップS7では、距離データおよび回転数データを取得するとともに記憶する。つまり、CPU30aは、距離センサ22a、22bからの距離データを取得するとともに、エンコーダ38a、38bからの回転数データを取得し、互いに関連付けて、それぞれ時系列に従ってRAM30bに記憶する。   In subsequent step S7, the distance data and the rotational speed data are acquired and stored. That is, the CPU 30a acquires distance data from the distance sensors 22a and 22b, acquires rotation speed data from the encoders 38a and 38b, and associates them with each other and stores them in the RAM 30b according to time series.

続いて、ステップS9で、移動体12の位置および向きに応じて距離データから位置データを算出する。ここでは、上述したように、距離センサ22a、22bのそれぞれで検出された距離のデータから、移動体12の位置および向きを基準として移動体座標系の位置データが算出される。このとき、上述したように、2つの距離センサ22a、22bの取り付け位置が考慮される。そして、ステップS11で、ステップS9で算出された位置データを世界座標系の位置データに変換する。   Subsequently, in step S9, position data is calculated from the distance data according to the position and orientation of the moving body 12. Here, as described above, the position data of the moving object coordinate system is calculated based on the position and orientation of the moving object 12 from the distance data detected by the distance sensors 22a and 22b. At this time, as described above, the attachment positions of the two distance sensors 22a and 22b are considered. In step S11, the position data calculated in step S9 is converted into position data in the world coordinate system.

図14に示すように、続くステップS13では、後述する不要データの消去処理(図15および図16参照)を実行し、ステップS15で、前回位置推定(S17)を行ってから所定時間を経過したかどうかを判断する。このとき、CPU30aは、図示しないタイマを用いて時間をカウントする。また、この実施例では、所定時間が経過したかどうかを判断するようにしてあるが、所定距離移動したかどうかを判断するようにしてもよい。ただし、ステップS15の処理は省略してもよい。   As shown in FIG. 14, in the following step S13, an unnecessary data erasing process (see FIGS. 15 and 16) described later is executed, and in step S15, a predetermined time has elapsed since the previous position estimation (S17) was performed. Determine whether or not. At this time, the CPU 30a counts time using a timer (not shown). In this embodiment, it is determined whether or not a predetermined time has elapsed. However, it may be determined whether or not a predetermined distance has been moved. However, the process of step S15 may be omitted.

なお、全体処理を開始し、最初にステップS15の判断処理が実行される場合には、位置推定を一度も行っていないため、“YES”と判断するようにしてある。   When the entire process is started and the determination process of step S15 is first executed, “YES” is determined because position estimation has never been performed.

ステップS15で“NO”であれば、つまり前回位置推定を行ってから所定時間を経過していなければ、そのまま図13に示したステップS7に戻る。一方、ステップS15で“YES”であれば、つまり前回位置推定を行ってから所定時間を経過すれば、ステップS17で、地図を参照して位置および角度を推定する。ここでは、CPU30aは、上述したように、不要データを消去した後の距離データを用いて、パーティクルフィルタにより移動体12の位置および向きを推定(修正)する。したがって、ステップS17の処理によって、状態データ304fが更新される。   If “NO” in the step S15, that is, if a predetermined time has not elapsed since the previous position estimation is performed, the process returns to the step S7 shown in FIG. On the other hand, if “YES” in the step S15, that is, if a predetermined time elapses after the previous position estimation, the position and the angle are estimated with reference to the map in a step S17. Here, as described above, the CPU 30a estimates (corrects) the position and orientation of the moving body 12 by the particle filter using the distance data after erasing unnecessary data. Therefore, the state data 304f is updated by the process of step S17.

続くステップS19では、通過点に到達したかどうかを判断する。ここでは、CPU30aは、ステップS17で推定した位置が設定された通過点と一致するかどうかを判断する。ステップS19で“YES”であれば、つまり通過点に到達すれば、ステップS21で、次の通過点または終点を設定して、ステップS7に戻る。したがって、移動体12が次の通過点または終点に向けて移動するように移動制御される。一方、ステップS19で“NO”であれば、つまり通過点に到達していなければ、ステップS23で、終点に到達したかどうかを判断する。ここでは、CPU30aは、ステップS17で推定した位置が終点と一致するかどうかを判断する。   In a succeeding step S19, it is determined whether or not the passing point has been reached. Here, the CPU 30a determines whether or not the position estimated in step S17 matches the set passing point. If “YES” in the step S19, that is, if the passing point is reached, the next passing point or end point is set in a step S21, and the process returns to the step S7. Therefore, movement control is performed so that the moving body 12 moves toward the next passing point or end point. On the other hand, if “NO” in the step S19, that is, if the passing point has not been reached, it is determined whether or not the end point has been reached in a step S23. Here, the CPU 30a determines whether or not the position estimated in step S17 matches the end point.

ステップS23で“NO”であれば、つまり終点に到達していなければ、ステップS7に戻る。一方、ステップS23で“YES”であれば、つまり終点に到達すれば、全体処理を終了する。   If “NO” in the step S23, that is, if the end point has not been reached, the process returns to the step S7. On the other hand, if “YES” in the step S23, that is, if the end point is reached, the entire processing is ended.

なお、詳細な説明は省略するが、位置を推定する(ステップS17の処理を実行する)ために用いられた距離データおよび回転数データは、バッファ304a、304bから消去される。   Although detailed description is omitted, the distance data and the rotation speed data used for estimating the position (execution of the process of step S17) are deleted from the buffers 304a and 304b.

図15および図16は、図14に示したステップS13の不要データの消去処理を示すフロー図である。図15に示すように、CPU30aは、不要データの消去処理を開始すると、ステップS33で、着目する点(位置データに対応する位置)についての新しいクラスタを生成する。たとえば、ステップS33では、まだクラスタに分類されていない位置データが任意に選択され、新しいクラスタが生成される。このとき、着目する点についての位置データを含む新しいクラスタのデータが追加される。つまり、新しいクラスタのデータを追加することにより、クラスタデータ304dが更新される。   FIG. 15 and FIG. 16 are flowcharts showing the unnecessary data erasing process in step S13 shown in FIG. As shown in FIG. 15, when starting the unnecessary data erasing process, the CPU 30a generates a new cluster for the point of interest (position corresponding to the position data) in step S33. For example, in step S33, position data not yet classified into clusters is arbitrarily selected, and a new cluster is generated. At this time, new cluster data including position data for the point of interest is added. That is, the cluster data 304d is updated by adding new cluster data.

続くステップS35では、次の点への距離が所定値TH(この実施例では、10cm)未満であるかどうかを判断する。ここでは、CPU30aは、着目する点に最も近い点との距離が所定値TH未満であるかどうかを判断するのである。ステップS35で“NO”であれば、つまり次の点への距離が所定値TH以上であれば、新しいクラスタを生成するために、ステップS33に戻る。一方、ステップS35で“YES”であれば、つまり次の点への距離が所定値TH未満であれば、ステップS37で、当該次の点を既存のクラスタに追加する。つまり、当該次の点が着目する点と同じクラスタに分類される。   In a succeeding step S35, it is determined whether or not the distance to the next point is less than a predetermined value TH (10 cm in this embodiment). Here, the CPU 30a determines whether or not the distance from the point closest to the point of interest is less than the predetermined value TH. If “NO” in the step S35, that is, if the distance to the next point is equal to or greater than the predetermined value TH, the process returns to the step S33 in order to generate a new cluster. On the other hand, if “YES” in the step S35, that is, if the distance to the next point is less than the predetermined value TH, the next point is added to the existing cluster in a step S37. That is, the next point is classified into the same cluster as the point of interest.

続いて、ステップS39では、すべての点についてクラスタリングを行ったかどうかを判断する。ここでは、CPU30aは、クラスタに分類されていない位置データが残っていないかどうかを判断するのである。ステップS39で“NO”であれば、つまりクラスタリングを行っていない点が残っていれば、ステップS35に戻る。図示は省略するが、このとき、直前にクラスタに分類された点が着目する点に設定される。   In step S39, it is determined whether clustering has been performed for all points. Here, the CPU 30a determines whether or not position data that is not classified into clusters remains. If “NO” in the step S39, that is, if a point where clustering is not performed remains, the process returns to the step S35. Although illustration is omitted, at this time, the point that has been classified into the cluster immediately before is set as the point of interest.

一方、ステップS39で“YES”であれば、つまりすべての点についてクラスタリングを行えば、クラスタリングを終了したと判断し、ステップS41で、1番目のクラスタを読み出し、図16に示すステップS43で、当該クラスタに含まれる点の数が所定数NP(この実施例では、5)未満かどうかどうかを判断する。   On the other hand, if “YES” in the step S39, that is, if clustering is performed for all points, it is determined that the clustering is finished, the first cluster is read in a step S41, and in the step S43 illustrated in FIG. It is determined whether or not the number of points included in the cluster is less than a predetermined number NP (5 in this embodiment).

なお、ステップS41では、説明の便宜上、1番目のクラスタを読み出すように説明したが、ここでは、任意のクラスタが読み出される。後述するステップS57においても同様であるが、このステップS57では、静的物体であることが判別されていない任意のクラスタが読み出される。ただし、クラスタを生成した順番に従ってクラスタを読み出すようにしてもよい。   In step S41, the first cluster is described as being read for convenience of explanation, but an arbitrary cluster is read here. The same applies to step S57 described later, but in this step S57, an arbitrary cluster that has not been determined to be a static object is read. However, the clusters may be read in the order in which the clusters are generated.

ステップS43で“YES”であれば、つまり当該クラスタに含まれる点の数が所定数NP未満であれば、静的物体か動的物体かの判別が出来ないと判断して、ステップS53に進む。一方、ステップS43で“NO”であれば、つまり当該クラスタに含まれる点の数が所定数NP以上であれば、ステップS45で、数4−数6に従って、当該クラスタの固有値λ1、λ2を算出する。 If “YES” in the step S43, that is, if the number of points included in the cluster is less than the predetermined number NP, it is determined that it cannot be determined whether the object is a static object or a dynamic object, and the process proceeds to the step S53. . On the other hand, if “NO” in the step S43, that is, if the number of points included in the cluster is equal to or greater than the predetermined number NP, the eigenvalues λ 1 and λ 2 of the cluster are calculated in accordance with the equations 4 to 6 in a step S45. Is calculated.

次のステップS47では、固有値λ1およびλ2の両方が第2閾値Hmin(この実施例では、3cm)未満であるかどうかを判断する。上述したように、ここでは、静的物体または動的物体を判別することができるかどうかが判断されるのである。ステップS47で“YES”であれば、つまり固有値λ1およびλ2の両方が第2閾値Hmin未満であれば、そのままステップS53に進む。一方、ステップS47で“NO”であれば、つまり固有値λ1およびλ2の少なくとも一方が第2閾値Hmin以上であれば、ステップS49で、固有値λ1が第1閾値Hmaxよりも大きい、または、固有値λ2が第2閾値Hmin未満であるかどうかを判断する。上述したように、ここでは、人間のような動的物体であるか、壁や柱のような静的物体であるかが判断(判別)される。 In the next step S47, it is determined whether both eigenvalues λ 1 and λ 2 are less than the second threshold value H min (3 cm in this embodiment). As described above, it is determined here whether a static object or a dynamic object can be determined. If “YES” in the step S47, that is, if both the eigenvalues λ 1 and λ 2 are less than the second threshold H min , the process proceeds to a step S53 as it is. On the other hand, if "NO" in step S47, the that is, if at least one of the eigenvalues lambda 1 and lambda 2 is the second threshold value H min or more, in step S49, the eigenvalues lambda 1 is greater than the first threshold value H max, Alternatively, it is determined whether the eigenvalue λ 2 is less than the second threshold value H min . As described above, it is determined (discriminated) whether the object is a dynamic object such as a human or a static object such as a wall or a pillar.

ステップS49で“YES”であれば、つまり固有値λ1が第1閾値Hmaxよりも大きい、または、固有値λ2が第2閾値Hmin未満であれば、壁や柱のような静的物体であると判断し、ステップS51で、当該クラスタを静的物体に対応するクラスタに決定して、ステップS55に進む。 If “YES” in the step S49, that is, if the eigenvalue λ 1 is larger than the first threshold value H max , or if the eigenvalue λ 2 is less than the second threshold value H min , a static object such as a wall or a column is used. In step S51, the cluster is determined as a cluster corresponding to the static object, and the process proceeds to step S55.

一方、ステップS49で“NO”であれば、つまり固有値λ1が第1閾値Hmax以下である、または、固有値λ2が第2閾値Hmin以上である場合には、人間のような動的物体であると判断して、ステップS53で、当該クラスタに含まれる位置データに対応する距離データを距離データバッファ304aから消去して、ステップS55に進む。つまり、ステップS53の処理を実行することにより、位置推定に不要な距離データが消去される。 On the other hand, if “NO” in the step S49, that is, the eigenvalue λ 1 is equal to or smaller than the first threshold value H max , or the eigenvalue λ 2 is equal to or larger than the second threshold value H min , a human-like dynamic In step S53, the distance data corresponding to the position data included in the cluster is deleted from the distance data buffer 304a, and the process proceeds to step S55. That is, distance data unnecessary for position estimation is deleted by executing the process of step S53.

ステップS55では、すべてのクラスタを判別したかどうかを判断する。ステップS55で“NO”であれば、つまりまだ判別していないクラスタが存在する場合には、ステップS57で、次のクラスタを読み出し、ステップS43に戻る。一方、ステップS55で“YES”であれば、つまりすべてのクラスタを判別すれば、図14に示した全体処理にリターンする。   In step S55, it is determined whether all clusters have been determined. If “NO” in the step S55, that is, if there is a cluster that has not yet been determined, the next cluster is read in a step S57, and the process returns to the step S43. On the other hand, if “YES” in the step S55, that is, if all the clusters are discriminated, the process returns to the entire processing shown in FIG.

この実施例によれば、距離センサの計測結果から静的物体および動的物体を判別し、静的物体以外の物体についての計測結果を消去し、静的物体についての計測結果のみを用いて移動体の位置を推定するので、動的物体の計測結果による影響を可及的少なくすることができる。つまり、人間などの動的物体が存在する環境においても、出来る限り正しく位置を推定することができる。   According to this embodiment, the static object and the dynamic object are discriminated from the measurement result of the distance sensor, the measurement result for the object other than the static object is deleted, and the movement is performed using only the measurement result for the static object. Since the position of the body is estimated, the influence of the measurement result of the dynamic object can be reduced as much as possible. That is, the position can be estimated as accurately as possible even in an environment where a dynamic object such as a human is present.

また、この実施例では、距離センサで検出された距離データを位置データに変換するだけで不要なデータを消去することができるので、カメラ等の他のセンサを設ける必要が無い。つまり、コストが高くなったり、画像処理などの負荷が大きくなったりすることもない。   Further, in this embodiment, unnecessary data can be erased only by converting the distance data detected by the distance sensor into position data, so there is no need to provide another sensor such as a camera. That is, the cost does not increase and the load such as image processing does not increase.

なお、この実施例では、動的物体の例として人間ないし人間のような物体を判別する場合について詳細に説明したが、上述したように、ショッピングカートや台車などの他の動的物体を判別することもできる。ただし、ショッピングカートや台車などの他の動的物体を判別する場合には、クラスタに含まれる位置データ(点)の数やその分散についての主成分(分散行列の固有値)が満たす条件をそれぞれの場合について決定する必要がある。   In this embodiment, a case where a human or a human-like object is discriminated as an example of a dynamic object has been described in detail. However, as described above, other dynamic objects such as a shopping cart and a carriage are discriminated. You can also. However, when discriminating other dynamic objects such as shopping carts and carts, the number of position data (points) included in the cluster and the conditions that the principal components (eigenvalues of the variance matrix) for the variance satisfy are satisfied. It is necessary to decide about the case.

また、この実施例では、距離データを世界座標系の位置データに変換してクラスタリングするようにしたが、距離データを移動体を基準とした座標系(移動体座標系)の位置データに変換してクラスタリングするようにしてもよい。   In this embodiment, the distance data is converted into the position data of the world coordinate system and clustered. However, the distance data is converted into the position data of the coordinate system (moving object coordinate system) based on the moving object. Clustering.

さらに、この実施例で示した具体的な数値は単なる一例であり、限定されるべきではなく、実施される製品等に応じて適宜変更可能である。また、この実施例では、所定値や閾値を用いて大小を判断するステップにおいて、当該所定値や当該閾値を含まないようにしたが、当該所定値や当該閾値を含んで大小を判断するようにしてもよい。   Furthermore, the specific numerical values shown in this embodiment are merely examples, and should not be limited, and can be appropriately changed according to the product to be implemented. Further, in this embodiment, in the step of determining the magnitude using the predetermined value or threshold, the predetermined value or the threshold is not included, but the size is determined including the predetermined value or the threshold. May be.

10 …位置推定システム
12 …移動体
16a、16b …車輪
18 …操作レバー
22a、22b …距離センサ
30 …コンピュータ
34a、34b …モータドライバ
36a、36b …モータ
38a、38b …エンコーダ
DESCRIPTION OF SYMBOLS 10 ... Position estimation system 12 ... Moving body 16a, 16b ... Wheel 18 ... Operation lever 22a, 22b ... Distance sensor 30 ... Computer 34a, 34b ... Motor driver 36a, 36b ... Motor 38a, 38b ... Encoder

Claims (5)

或る環境についての地図に対応する地図データと、当該環境内を移動する移動体に設置した距離センサの検出結果に基づいて当該移動体の位置を推定する位置推定装置であって、
前記距離センサで検出された距離データから、距離を計測された点の位置データを算出する位置データ算出手段、
前記位置データ算出手段によって算出された位置データを所定のルールに従って複数のクラスタにクラスタリングするクラスタリング手段、
前記クラスタリング手段によってクラスタリングされた複数のクラスタの各々に含まれる位置データが示す複数の点の分散についての特徴量を抽出する抽出手段、
前記抽出手段によって抽出された特徴量が所定の条件を満たすかどうかを判断する条件判断手段、および
前記条件判断手段によって所定の条件を満たさないことが判断されたクラスタに含まれる位置データに対応する距離データを消去する消去手段を備える、位置推定装置。
A position estimation device that estimates the position of a moving body based on map data corresponding to a map of a certain environment and a detection result of a distance sensor installed in the moving body moving in the environment,
Position data calculating means for calculating position data of a point at which a distance is measured from distance data detected by the distance sensor;
Clustering means for clustering the position data calculated by the position data calculating means into a plurality of clusters according to a predetermined rule;
Extraction means for extracting feature quantities for the dispersion of a plurality of points indicated by position data included in each of a plurality of clusters clustered by the clustering means;
A condition determining unit that determines whether or not the feature amount extracted by the extracting unit satisfies a predetermined condition; and corresponding to position data included in a cluster that is determined not to satisfy the predetermined condition by the condition determining unit A position estimation device comprising erasing means for erasing distance data.
前記所定のルールは、位置データが示す点同士の距離が所定距離以下または所定距離未満であることである、請求項1記載の位置推定装置。   The position estimation apparatus according to claim 1, wherein the predetermined rule is that a distance between points indicated by position data is equal to or less than a predetermined distance or less than a predetermined distance. 前記特徴量は、前記クラスタに含まれる位置データが示す複数の点の分散行列についての固有値であり、
前記所定の条件は、前記固有値の最大値が第1所定値よりも大きいこと、または、2番目に大きい前記固有値が当該第1所定値よりも小さい第2所定値未満であることをさらに含む、請求項1または2記載の位置推定装置。
The feature amount is an eigenvalue with respect to a variance matrix of a plurality of points indicated by position data included in the cluster,
The predetermined condition further includes that a maximum value of the eigenvalue is larger than a first predetermined value, or that the second largest eigenvalue is less than a second predetermined value smaller than the first predetermined value. The position estimation apparatus according to claim 1 or 2 .
或る環境についての地図に対応する地図データと、当該環境内を移動する移動体に設置した距離センサの検出結果に基づいて当該移動体の位置を推定するコンピュータの位置推定プログラムであって、
前記コンピュータに、
前記距離センサで検出された距離データから、距離を計測された点の位置データを算出する位置データ算出ステップ、
前記位置データ算出ステップにおいて算出した位置データを所定のルールに従って複数のクラスタにクラスタリングするクラスタリングステップ、
前記クラスタリングステップにおいてクラスタリングした複数のクラスタの各々に含まれる位置データが示す複数の点の分散についての特徴量を抽出する抽出ステップ、
前記抽出ステップにおいて抽出した特徴量が所定の条件を満たすかどうかを判断する条件判断ステップ、および
前記条件判断ステップにおいて所定の条件を満たさないことが判断されたクラスタに含まれる位置データに対応する距離データを消去する消去ステップを実行させる、位置推定プログラム。
A computer position estimation program for estimating the position of a moving object based on map data corresponding to a map of a certain environment and a detection result of a distance sensor installed in the moving object moving in the environment,
In the computer,
A position data calculating step for calculating position data of a point at which the distance is measured from the distance data detected by the distance sensor;
A clustering step of clustering the position data calculated in the position data calculation step into a plurality of clusters according to a predetermined rule;
An extraction step of extracting feature amounts for the dispersion of a plurality of points indicated by position data included in each of a plurality of clusters clustered in the clustering step;
A condition determination step for determining whether or not the feature amount extracted in the extraction step satisfies a predetermined condition; and a distance corresponding to the position data included in the cluster determined not to satisfy the predetermined condition in the condition determination step A position estimation program for executing an erasing step for erasing data.
或る環境についての地図に対応する地図データと、当該環境内を移動する移動体に設置した距離センサの検出結果に基づいて当該移動体の位置を推定するコンピュータの位置推定方法であって、
前記コンピュータは、
(a)前記距離センサで検出された距離データから、距離を計測された点の位置データを算出するステップ、
(b)前記ステップ(a)において算出した位置データを所定のルールに従って複数のクラスタにクラスタリングするステップ、
(c)前記ステップ(b)においてクラスタリングした複数のクラスタの各々に含まれる位置データが示す複数の点の分散についての特徴量を抽出するステップ、
(d)前記ステップ(c)において抽出した特徴量が所定の条件を満たすかどうかを判断するステップ、および
(e)前記ステップ(d)において所定の条件を満たさないことが判断されたクラスタに含まれる位置データに対応する距離データを消去するステップを含む、位置推定方法。
A computer position estimation method for estimating the position of a moving object based on map data corresponding to a map of a certain environment and a detection result of a distance sensor installed in the moving object moving in the environment,
The computer
(A) calculating position data of a point at which a distance is measured from distance data detected by the distance sensor;
(B) clustering the position data calculated in step (a) into a plurality of clusters according to a predetermined rule;
(C) a step of extracting feature quantities for the dispersion of a plurality of points indicated by the position data included in each of the plurality of clusters clustered in step (b);
(D) determining whether or not the feature quantity extracted in step (c) satisfies a predetermined condition; and (e) included in the cluster determined not to satisfy the predetermined condition in step (d). A position estimation method comprising: deleting distance data corresponding to the position data to be recorded.
JP2013045674A 2013-03-07 2013-03-07 POSITION ESTIMATION DEVICE, POSITION ESTIMATION PROGRAM, AND POSITION ESTIMATION METHOD Active JP6156793B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013045674A JP6156793B2 (en) 2013-03-07 2013-03-07 POSITION ESTIMATION DEVICE, POSITION ESTIMATION PROGRAM, AND POSITION ESTIMATION METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013045674A JP6156793B2 (en) 2013-03-07 2013-03-07 POSITION ESTIMATION DEVICE, POSITION ESTIMATION PROGRAM, AND POSITION ESTIMATION METHOD

Publications (2)

Publication Number Publication Date
JP2014174683A JP2014174683A (en) 2014-09-22
JP6156793B2 true JP6156793B2 (en) 2017-07-05

Family

ID=51695868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013045674A Active JP6156793B2 (en) 2013-03-07 2013-03-07 POSITION ESTIMATION DEVICE, POSITION ESTIMATION PROGRAM, AND POSITION ESTIMATION METHOD

Country Status (1)

Country Link
JP (1) JP6156793B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6744789B2 (en) * 2016-09-06 2020-08-19 新明和工業株式会社 Passenger boarding bridge
JP7092741B2 (en) * 2019-12-25 2022-06-28 財団法人車輌研究測試中心 Self-position estimation method
JP7535746B2 (en) * 2020-07-31 2024-08-19 パナソニックIpマネジメント株式会社 Mobile

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5141644B2 (en) * 2009-06-23 2013-02-13 トヨタ自動車株式会社 Autonomous mobile body, self-position estimation apparatus, and program
JP5604117B2 (en) * 2010-01-20 2014-10-08 株式会社Ihiエアロスペース Autonomous mobile

Also Published As

Publication number Publication date
JP2014174683A (en) 2014-09-22

Similar Documents

Publication Publication Date Title
JP6202517B2 (en) Map creation device, map creation program, and map creation method
JP6094279B2 (en) TRACKING DEVICE, TRACKING PROGRAM, AND TRACKING METHOD
KR102804434B1 (en) Cleaning robot and Method of performing task thereof
CN109947109B (en) Robot working area map construction method and device, robot and medium
KR102577785B1 (en) Cleaning robot and Method of performing task thereof
KR102614323B1 (en) Create a 3D map of a scene using passive and active measurements
CN109116867A (en) A kind of unmanned plane during flying barrier-avoiding method, device, electronic equipment and storage medium
CN111990930B (en) Distance measuring method, distance measuring device, robot and storage medium
JP2009223757A (en) Autonomous mobile body, control system, and self-position estimation method
CN112308033B (en) Obstacle collision warning method based on depth data and visual chip
JP2012208782A (en) Move prediction apparatus, robot control device, move prediction program and move prediction method
JP6156793B2 (en) POSITION ESTIMATION DEVICE, POSITION ESTIMATION PROGRAM, AND POSITION ESTIMATION METHOD
KR102780703B1 (en) Cleaning robot and Method of performing task thereof
JP4774401B2 (en) Autonomous mobile route setting device
JP6299957B2 (en) MOBILE BODY CONTROL DEVICE, MOBILE BODY CONTROL PROGRAM, AND MOBILE BODY CONTROL METHOD
JP2010061483A (en) Self-traveling moving object and method for setting target position of the same
CN113465592B (en) Navigation method and self-propelled device
CN120802953A (en) Robot moving path planning method, apparatus, electronic device and storage medium
JP7519579B2 (en) Vacuum cleaner system and method for posting dangerous positions
KR102253621B1 (en) Method and autonomous mobile robot for generating indoor map
CN114415659B (en) Robot safety obstacle avoidance method and device, robot and storage medium
JP2022111524A (en) Self-position estimation device and method
US12498732B2 (en) Systems and methods for characterizing a vehicle motion of an autonomous mobile robot
JP7661499B2 (en) Collision avoidance method, mobile device, and storage medium
CN120296099A (en) Map generation method and cleaning robot

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170502

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170529

R150 Certificate of patent or registration of utility model

Ref document number: 6156793

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250