JP5493097B2 - Robot self-localization system - Google Patents

Robot self-localization system Download PDF

Info

Publication number
JP5493097B2
JP5493097B2 JP2010087682A JP2010087682A JP5493097B2 JP 5493097 B2 JP5493097 B2 JP 5493097B2 JP 2010087682 A JP2010087682 A JP 2010087682A JP 2010087682 A JP2010087682 A JP 2010087682A JP 5493097 B2 JP5493097 B2 JP 5493097B2
Authority
JP
Japan
Prior art keywords
robot
entity
angle
data
association
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
JP2010087682A
Other languages
Japanese (ja)
Other versions
JP2011221631A (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 JP2010087682A priority Critical patent/JP5493097B2/en
Publication of JP2011221631A publication Critical patent/JP2011221631A/en
Application granted granted Critical
Publication of JP5493097B2 publication Critical patent/JP5493097B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、ロボット自己位置同定システムに関し、特にたとえば、ロボットが存在する空間においてそのロボットを自己位置同定する、ロボット自己位置同定システムに関する。   The present invention relates to a robot self-position identification system, and more particularly to a robot self-position identification system that self-identifies a robot in a space where the robot exists.

非特許文献1には、個別のIDが割り振られたRFIDタグが発する電波を受信し、電波強度を検出することで、RFIDタグを付けた人物の位置を推定し、人物を識別する技術が開示されている。   Non-Patent Document 1 discloses a technique for identifying a person by receiving a radio wave emitted by an RFID tag to which an individual ID is assigned and detecting the radio wave intensity to estimate the position of the person with the RFID tag. Has been.

また、特許文献1には、位置検出装置が検出する位置情報を、適正に補正する位置補正装置が開示されている。位置検出装置は、GPSを利用しており、たとえば車両に取り付けられる。そして、位置補正装置は、GPSの測位に基づいて推定される推定車両速度と車両速度とから、車両の位置情報を補正する。
神田崇行,塩見昌裕,野村竜也,石黒浩,荻田紀博, "RFIDタグを用いた科学館来館者の移動軌跡の分析"(情報処理学会論文誌 Vol.49 No.5 P.1727-1742) 特開2002−350157号公報[G01C 21/00, G01S 5/14, G08G, 1/0969, G09B 29/00, G09B 29/10]
Patent Document 1 discloses a position correction device that appropriately corrects position information detected by the position detection device. The position detection device uses GPS and is attached to a vehicle, for example. Then, the position correction device corrects the vehicle position information from the estimated vehicle speed and the vehicle speed estimated based on the GPS positioning.
Takayuki Kanda, Masahiro Shiomi, Tatsuya Nomura, Hiroshi Ishiguro, Norihiro Kajita, "Analysis of the movement trajectory of Science Museum visitors using RFID tags" (Information Processing Society Journal Vol.49 No.5 P.1727-1742) JP 2002-350157 A [G01C 21/00, G01S 5/14, G08G, 1/0969, G09B 29/00, G09B 29/10]

近年、様々なロボット自己位置同定システムが開発されている。そして、その一例として、非特許文献1の技術を応用し、RFIDタグをロボットに取り付けることでロボットを自己位置同定するシステムが開発されている。   In recent years, various robot self-position identification systems have been developed. As an example, a system for self-locating a robot by applying the technology of Non-Patent Document 1 and attaching an RFID tag to the robot has been developed.

ところが、上記したシステムではロボットにRFIDタグを取り付け、さらには環境にRFIDタグを受信するアンテナを設けなければならず、容易にロボットを自己位置同定することができない。また、広く一般的に利用されているGPSを利用すれば位置を検出することができるが、GPSの位置検出精度は低く、特許文献1で開示された技術を利用して位置補正を行ったとしても、ロボット自己位置同定システムには利用できない。   However, in the above-described system, an RFID tag must be attached to the robot, and an antenna for receiving the RFID tag must be provided in the environment. In addition, the position can be detected by using a GPS that is widely used in general, but the position detection accuracy of the GPS is low, and the position correction is performed using the technique disclosed in Patent Document 1. However, it cannot be used for the robot self-localization system.

それゆえに、この発明の主たる目的は、新規な、ロボット自己位置同定システムを提供することである。   Therefore, the main object of the present invention is to provide a novel robot self-localization system.

この発明の他の目的は、容易にロボットを自己位置同定することができる、ロボット自己位置同定システムを提供することである。   Another object of the present invention is to provide a robot self-position identification system capable of easily self-locating a robot.

この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、この発明の理解を助けるために記述する実施形態との対応関係を示したものであって、この発明を何ら限定するものではない。   The present invention employs the following configuration in order to solve the above problems. The reference numerals in parentheses, supplementary explanations, and the like indicate the corresponding relationship with the embodiments described in order to help understanding of the present invention, and do not limit the present invention.

第1の発明は、自身の移動に関して自身の位置データを少なくとも含む状態データを出力できるロボットを、それが存在する空間内において自己位置同定する、ロボット自己位置同定システムであって、ロボットから順次取得した複数の状態データを記憶する状態データ記憶手段、空間内に存在する実体をセンシングする環境センサ、環境センサの出力に基づいて実体の位置を検出する位置検出手段、位置検出手段によって検出された実体の複数の位置データを記憶する位置データ記憶手段、状態データ記憶手段によって記憶されたロボットの位置データおよび位置データ記憶手段によって記憶された実体の位置データに基づいて、ロボットと実体とを関連付ける関連付手段、およびロボットと関連付けられた実体の位置データに基づいて、状態データに含まれる位置データを補正する補正データを、ロボットに送信する送信手段を備え、ロボットは、補正データに従って、自身の位置データを補正する、ロボット自己位置同定システムである。   A first invention is a robot self-position identification system that self-identifies a robot capable of outputting state data including at least its own position data regarding its own movement in a space in which the robot exists, and sequentially acquires from the robot State data storage means for storing a plurality of state data, an environmental sensor for sensing an entity existing in space, a position detection means for detecting the position of the entity based on the output of the environmental sensor, and an entity detected by the position detection means And associating the robot with the entity based on the position data storage means for storing the plurality of position data, the position data of the robot stored by the state data storage means, and the position data of the entity stored by the position data storage means. Based on the means and position data of the entity associated with the robot, The correction data for correcting the position data included in the status data, a transmitting means for transmitting to the robot, the robot, in accordance with correction data, for correcting its position data, a robot self-localization system.

第1の発明では、ロボット自己位置同定システム(100)は、空間(検出領域F)に存在するロボット(18a,18b,18c)を、その空間内で自己位置同定する。また、ロボットは、自身の移動に関して自身の位置データを少なくとも含む状態データを出力できる。   In the first invention, the robot self-position identification system (100) identifies the robot (18a, 18b, 18c) existing in the space (detection region F) within the space. Further, the robot can output state data including at least its own position data regarding its movement.

状態データ記憶手段(20,S9)は、たとえばメモリ(22)のバッファにロボットから順次取得した状態データを記憶する。環境センサ(12)は、たとえばLRF(Laser Range Finder)などであり、空間内に存在する人間やロボットなどの実体(Ea,Eb,Ec,Ed)をセンシングする。位置検出手段(20,S89)は、環境センサの出力に対して、たとえばパーティクルフィルタを利用することで実体の位置を検出する。位置データ記憶手段(20,S91)は、たとえば状態データ記憶手段と同様、メモリのバッファに、検出された実体の位置データを記憶する。関連付手段(20,S49)は、バッファに記憶されたロボットの複数の位置データおよび実体の複数の位置データから、たとえば速度を求めることで、ロボットと実体とを関連付ける。そして、ロボットの位置データおよび実体の位置データは、空間における同じ平面座標系の値で示される。   The state data storage means (20, S9) stores the state data sequentially obtained from the robot, for example, in a buffer of the memory (22). The environmental sensor (12) is, for example, an LRF (Laser Range Finder) or the like, and senses an entity (Ea, Eb, Ec, Ed) such as a human being or a robot existing in the space. The position detection means (20, S89) detects the actual position of the output from the environmental sensor by using, for example, a particle filter. The position data storage means (20, S91) stores the detected entity position data in a memory buffer, for example, in the same manner as the state data storage means. The associating means (20, S49) associates the robot and the entity by, for example, obtaining a speed from the plurality of position data of the robot and the plurality of position data of the entity stored in the buffer. Then, the position data of the robot and the position data of the substance are indicated by values in the same plane coordinate system in the space.

送信手段(20,S15,S19)は、ロボットと関連付けられた実体の位置データに基づいて、たとえば空間の位置を示す座標データを、補正データとしてロボットに送信する。そして、ロボットは、たとえば補正データを受け取ると、自身の位置データを補正する。   The transmission means (20, S15, S19) transmits, for example, coordinate data indicating the position of the space to the robot as correction data based on the position data of the entity associated with the robot. When the robot receives correction data, for example, it corrects its own position data.

第1の発明によれば、容易に設置可能な環境センサと、ロボットが一般的に出力可能な状態データとを利用することで、ロボットの現在位置を容易に検出できるようになる。そのため、検出された実体の位置をロボットに送信することで、容易にロボットを自己位置同定することができるようになる。   According to the first aspect of the present invention, it is possible to easily detect the current position of the robot by using the environmental sensor that can be easily installed and the state data that the robot can generally output. Therefore, by transmitting the detected position of the entity to the robot, it becomes possible to easily identify the position of the robot.

第2の発明は、第1の発明に従属し、状態データは、自身の角度データをさらに含み、状態データ記憶手段は、角度データを含む状態データを記憶し、状態データ記憶手段によって記憶されたロボットの複数の状態データおよび位置データ記憶手段によって記憶された実体の複数の位置データに基づいて、次の位置における角度を推定する角度推定手段、および角度推定手段によって推定された角度および状態データ記憶手段によって記憶された状態データに含まれる角度データに基づいて、状態データに含まれる角度データを補正する角度補正データを算出する角度補正算出手段をさらに備え、送信手段は、補正データおよび角度補正データを、ロボットに送信する第1送信手段を含み、ロボットは、補正データおよび角度補正データに従って、自身の位置データおよび角度データを補正する。 The second invention is dependent on the first invention, the state data further includes its own angle data, and the state data storage means stores the state data including the angle data, and is stored by the state data storage means. Based on a plurality of state data of the robot and a plurality of position data of the entity stored by the position data storage means, an angle estimation means for estimating an angle at the next position, and an angle and state data storage estimated by the angle estimation means Angle correction calculation means for calculating angle correction data for correcting the angle data included in the state data based on the angle data included in the state data stored by the means, and the transmission means includes the correction data and the angle correction data. and it includes a first transmission means for transmitting to the robot, the robot follow the correction data and the angle correction data Te, it corrects the position data and angular data itself.

第2の発明では、状態データ記憶手段は、ロボット自身の角度データをさらに含む、状態データを記憶する。角度推定手段(20,S261−S277)は、たとえば実体の複数の位置データおよびロボットの複数の状態データからロボットの位置を予測することで、次の位置のロボットの角度を推定する。角度補正算出手段(20,S279)は、たとえば現在の状態データに含まれる角度データと推定された角度(θ^k)との角度差を、角度補正データとして算出する。第1送信手段(20,S19)は、補正データおよび角度補正データを、ロボットに送信する。 In the second invention, the state data storage means stores state data further including angle data of the robot itself. The angle estimation means (20, S261-S277) estimates the angle of the robot at the next position, for example, by predicting the position of the robot from a plurality of position data of the entity and a plurality of state data of the robot. The angle correction calculation means (20, S279) calculates, for example, an angle difference between the angle data included in the current state data and the estimated angle (θ ^ k) as angle correction data. First transmission means (20, S19) the corrected data and the angle correction data, and transmits to the robot.

第2の発明によれば、ロボットの角度も補正することで、自己位置同定の精度を高めることができる。   According to the second invention, the accuracy of self-position identification can be improved by correcting the angle of the robot.

第3の発明は、第2の発明に従属し、角度推定手段は、角度を推定するときに、推定角度誤差をあわせて算出し、推定角度誤差を補正精度として記憶する記憶手段をさらに備え、送信手段は、記憶手段によって記憶された補正精度が低いとき、補正データのみをロボットに送信する第2送信手段を含む。   A third invention is dependent on the second invention, and the angle estimation means further includes a storage means for calculating the estimated angle error when the angle is estimated, and storing the estimated angle error as a correction accuracy, The transmission unit includes a second transmission unit that transmits only the correction data to the robot when the correction accuracy stored by the storage unit is low.

第3の発明では、角度推定手段は、角度を推定すると共に、推定角度誤差(σ θ^k)を算出する。記憶手段(20,S281)は、推定角度誤差を補正精度として、バッファに記憶する。推定された角度の誤差が大きければ、第2送信手段(20,S15)は補正データのみをロボットに送信する。 In the third invention, the angle estimation means estimates the angle and calculates an estimated angle error (σ 2 θ ^ k ). The storage means (20, S281) stores the estimated angle error in the buffer as the correction accuracy. If the estimated angle error is large, the second transmission means (20, S15) transmits only the correction data to the robot.

第3の発明によれば、推定された角度の誤差を、補正精度として利用することで、ロボットの角度の補正が可能であるかを、判断できるようになる。   According to the third aspect, it is possible to determine whether the angle of the robot can be corrected by using the estimated angle error as the correction accuracy.

第4の発明は、第3の発明に従属し、角度推定手段は、状態データ記憶手段によって記憶されたロボットの複数の状態データおよび位置データ記憶手段によって記憶された実体の位置データに基づいて、ロボットの角度を観測する角度観測手段、および角度観測手段によって観測された角度の観測角度誤差を算出する観測角度誤差算出手段を含み、角度推定手段は、観測された角度、観測角度誤差、前回推定された角度および前回算出された推定角度誤差に基づいて、次の位置の角度を推定し、推定角度誤差を算出する。   The fourth invention is dependent on the third invention, and the angle estimation means is based on the plurality of state data of the robot stored by the state data storage means and the position data of the entity stored by the position data storage means, An angle observation means for observing the angle of the robot, and an observation angle error calculation means for calculating an observation angle error of the angle observed by the angle observation means. The angle estimation means includes an observed angle, an observation angle error, and a previous estimation. Based on the calculated angle and the previously calculated estimated angle error, the angle of the next position is estimated, and the estimated angle error is calculated.

第4の発明では、たとえば、角度観測手段(20,S261−S265)は、複数の状態データから次の位置を予測して予測角度を算出し、実体の位置データから検知角度を算出する。そして、角度観測手段は、検知角度から予測角度を減算することで、ロボットの角度を観測(算出)する。観測角度誤差算出手段(20,S267)は、たとえば、観測における位置の誤差(σ po)に対する実体の位置データの商に近似することで、観測角度誤差を算出する。 In the fourth invention, for example, the angle observation means (20, S261-S265) calculates a predicted angle by predicting the next position from a plurality of state data, and calculates a detection angle from the actual position data. The angle observation means observes (calculates) the angle of the robot by subtracting the predicted angle from the detected angle. The observation angle error calculation means (20, S267) calculates the observation angle error by approximating the quotient of the actual position data with respect to the position error (σ 2 po ) in the observation, for example.

たとえば、角度推定手段は、観測された角度、観測角度誤差、前回推定された角度および前回算出された推定角度誤差に基づいて、カルマンゲイン(K)を求めることで、次の位置の角度を推定し、推定角度誤差を算出する。 For example, the angle estimation means obtains the angle of the next position by obtaining the Kalman gain (K k ) based on the observed angle, the observed angle error, the previously estimated angle, and the previously calculated estimated angle error. Estimate and calculate the estimated angle error.

第4の発明によれば、カルマンフィルタを用いて、次の位置の角度を推定することができる。   According to the fourth invention, the angle of the next position can be estimated using the Kalman filter.

第5の発明は、第1の発明ないし第4の発明のいずれかに従属し、ロボットと実体との関連付けを維持するかを判断する判断手段、および判断手段によって維持しないと判断されたとき、ロボットと実体との関連付けを解除する解除手段をさらに備える。   The fifth invention is dependent on any one of the first to fourth inventions, and when it is judged by the judging means for judging whether to maintain the association between the robot and the entity, and when not judged to be maintained by the judging means, Release means for releasing the association between the robot and the entity is further provided.

第5の発明では、判断手段(20,S117,S119,S121)は、たとえばロボットと実体との速度差や距離などに基づいて、関連付けを維持するかを判断する。解除手段(20,S125)は、たとえばロボットと実体との速度差が大きかったり、ロボットと実体との距離が離れていたりすると、ロボットと実体との関連付けを解除する。   In the fifth invention, the determination means (20, S117, S119, S121) determines whether to maintain the association based on, for example, the speed difference or distance between the robot and the entity. The canceling means (20, S125) cancels the association between the robot and the entity when, for example, the speed difference between the robot and the entity is large or the distance between the robot and the entity is long.

第5の発明によれば、エラーの要因となるロボットと実体との関連付けを、解除できるようになる。   According to the fifth aspect, the association between the robot and the entity that causes the error can be canceled.

第6の発明は、第5の発明に従属し、空間には、少なくとも2つ以上の実体が存在し、関連付手段は、ロボットと実体との関連付けが解除されてから所定時間以内のとき、ロボットと各実体との第1速度差を算出する第1速度差算出手段、第1速度差算出手段によって算出された第1速度差が第1所定速度より大きいかを判断する第1速度判定手段、ロボットと各実体との距離が所定距離より離れているかを判定する距離判定手段、および第1速度判定手段によってロボットとの第1速度差が第1所定速度以下と判定され、かつ距離判断手段によってロボットとの距離が所定距離以内と判定された実体のうち、ロボットに最も近い実体とロボットとを関連付ける第1関連付手段を含む。   The sixth invention is dependent on the fifth invention, and there are at least two or more entities in the space, and the associating means is within a predetermined time after the association between the robot and the entities is released, First speed difference calculating means for calculating a first speed difference between the robot and each entity, and first speed determining means for determining whether the first speed difference calculated by the first speed difference calculating means is greater than a first predetermined speed. Distance determining means for determining whether the distance between the robot and each entity is greater than a predetermined distance; and the first speed determining means determines that the first speed difference with the robot is equal to or less than the first predetermined speed; and distance determining means The first associating means for associating the robot with the entity closest to the robot among the entities determined to be within the predetermined distance by the robot.

第6の発明では、空間には、たとえば4つの実体が存在することがある。第1速度差算出手段(20,S193)は、関連付けが解除されてから所定時間(5秒)以内のとき、たとえば5秒分のロボットの位置データおよび5秒分の実体の位置データから、第1速度差(RMS(Root Mean Square)速度差)を算出する。第1速度判定手段(20,S195)は、第1速度差が第1所定速度より大きいかを判断する。また、距離判定手段(20,S199)は、ロボットの位置データおよび実体の位置データから距離を求め、ロボットと各実体とが所定距離より離れているかを判定する。たとえば、第1関連付手段(20,S209)は、ロボットとの第1速度差が第1所定速度以下であり、かつロボットとの距離が所定距離以下の実体が複数ある場合、ロボットに最も近い実体とロボットとを関連付ける。   In the sixth invention, there may be, for example, four entities in the space. The first speed difference calculation means (20, S193) calculates the first time difference from the position data of the robot for 5 seconds and the position data of the entity for 5 seconds, for example, within a predetermined time (5 seconds) after the association is released. One speed difference (RMS (Root Mean Square) speed difference) is calculated. The first speed determining means (20, S195) determines whether the first speed difference is greater than the first predetermined speed. The distance determining means (20, S199) obtains a distance from the position data of the robot and the position data of the entity, and determines whether the robot and each entity are separated from the predetermined distance. For example, the first association means (20, S209) is closest to the robot when the first speed difference from the robot is equal to or less than the first predetermined speed and there are a plurality of entities whose distance from the robot is equal to or less than the predetermined distance. Associate an entity with a robot.

第6の発明によれば、関連付けが解除されて間もなければ、ロボットと実体とを容易に関連付け直すことができる。   According to the sixth aspect of the present invention, it is possible to easily reassociate the robot and the entity as soon as the association is released.

第7の発明は、第5の発明または第6の発明に従属し、空間には、少なくとも2つ以上の実体が存在し、関連付手段は、ロボットと実体との関連付けが解除されてから所定時間が経過したとき、ロボットと各実体との第2速度差を算出する第2速度差算出手段、第2速度差算出手段によって算出された第2速度差が第2所定速度より大きいかを判定する第2速度判定手段、および第2速度判定手段によってロボットの第2速度差が第2所定速度以下と判定された実体が1つだけであるとき、その実体とロボットとを関連付ける第2関連付手段を含む。   The seventh invention is dependent on the fifth invention or the sixth invention, and there are at least two or more entities in the space, and the associating means is predetermined after the association between the robot and the entities is released. When the time has elapsed, a second speed difference calculating means for calculating a second speed difference between the robot and each entity, and determining whether the second speed difference calculated by the second speed difference calculating means is greater than a second predetermined speed The second speed determining means, and when there is only one entity for which the second speed difference of the robot is determined to be equal to or less than the second predetermined speed by the second speed determining means, a second association for associating the entity with the robot Including means.

第7の発明では、第6の発明と同様、空間には4つの実体が存在することがある。たとえば、第2速度差算出手段(20,S233)は、関連付けが解除されてから所定時間が経過していれば、300秒分のロボットの位置データおよび300秒分の実体の位置データから、第2速度差(RMS速度差)を算出する。第2速度判定手段(20,S235)は、第2速度差が第2所定速度より大きいかを判定する。たとえば、第2関連付手段(20,S247)は、ロボットとの第2速度差が第2所定速度以下の実体が1つだけであれば、その実体とロボットとを関連付ける。   In the seventh invention, as in the sixth invention, there may be four entities in the space. For example, the second speed difference calculation means (20, S233) determines that the first time from the position data of the robot for 300 seconds and the position data of the entity for 300 seconds if the predetermined time has passed since the association was released. Two speed difference (RMS speed difference) is calculated. The second speed determining means (20, S235) determines whether the second speed difference is greater than the second predetermined speed. For example, if there is only one entity whose second speed difference with the robot is equal to or less than the second predetermined speed, the second association means (20, S247) associates the entity with the robot.

第7の発明によれば、関連付けが解除されて所定時間が経過したとしても、ロボットと実体とを関連付け直すことができる。   According to the seventh invention, even if the association is canceled and a predetermined time has elapsed, the robot and the entity can be associated again.

この発明によれば、容易に設置可能な環境センサおよびロボットが一般的に出力可能な状態データを利用して、ロボットの位置を検出することができるため、容易にロボットを自己位置同定することができる。   According to the present invention, since the position of the robot can be detected by using the environmental sensor that can be easily installed and the state data that the robot can generally output, it is possible to easily identify the position of the robot. 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 an outline of a robot self-position identification system according to an embodiment of the present invention. 図2は図1に示す追跡サーバの電気的な構成の一例を示す図解図である。FIG. 2 is an illustrative view showing one example of an electrical configuration of the tracking server shown in FIG. 図3は図1に示すロボットの外観を正面から見た図解図である。FIG. 3 is an illustrative view showing the appearance of the robot shown in FIG. 1 from the front. 図4は図1に示すロボットの電気的な構成の一例を示すブロック図である。FIG. 4 is a block diagram showing an example of the electrical configuration of the robot shown in FIG. 図5は図1および図2に示すLRFの計測領域を示す図解図である。FIG. 5 is an illustrative view showing a measurement region of the LRF shown in FIGS. 1 and 2. 図6は図1および図2に示すLRFを利用して取得された実体の移動軌跡の一例を示す図解図である。FIG. 6 is an illustrative view showing one example of a moving locus of an entity acquired using the LRF shown in FIGS. 1 and 2. 図7は図2に示すメモリに記憶された実体の位置履歴データの構成の一例を示す図解図である。FIG. 7 is an illustrative view showing one example of a configuration of entity position history data stored in the memory shown in FIG. 図8は図2に示すメモリに記憶されたロボットの状態履歴データの構成の一例を示す図解図である。FIG. 8 is an illustrative view showing one example of a configuration of status history data of the robot stored in the memory shown in FIG. 図9は図1に示す追跡サーバのメモリに記憶される、RTM(Robot Tracking Model)データの一例を示す図解図である。FIG. 9 is an illustrative view showing one example of RTM (Robot Tracking Model) data stored in the memory of the tracking server shown in FIG. 図10は図6に示す実体の運動履歴および図1に示すロボットの運動履歴の変化を示すグラフである。FIG. 10 is a graph showing changes in the movement history of the entity shown in FIG. 6 and the movement history of the robot shown in FIG. 図11は図10に示す実体の運動履歴およびロボットの運動履歴のRMS誤差のグラフである。FIG. 11 is a graph of the RMS error of the movement history of the entity and the movement history of the robot shown in FIG. 図12は図2に示すメモリに一時記憶される追跡実体リストの構成の一例を示す図解図である。FIG. 12 is an illustrative view showing one example of a configuration of a tracking entity list temporarily stored in the memory shown in FIG. 図13は図2に示すメモリに記憶される関連付テーブルの構成の一例を示す図解図である。FIG. 13 is an illustrative view showing one example of a configuration of an association table stored in the memory shown in FIG. 図14は図1に示すプロセッサによって実行される角度修正処理で利用される各数値の関係を示す図解図である。FIG. 14 is an illustrative view showing a relationship between numerical values used in an angle correction process executed by the processor shown in FIG. 図15は図1に示す人間とロボットとの関連付けおよび関連付け解除の一例を示す図解図である。FIG. 15 is an illustrative view showing one example of association and cancellation of association between the human and the robot shown in FIG. 図16は図2に示すメモリのメモリマップの一例を示す図解図である。FIG. 16 is an illustrative view showing one example of a memory map of the memory shown in FIG. 図17は図16に示すデータ記憶領域の一例を示す図解図である。FIG. 17 is an illustrative view showing one example of a data storage area shown in FIG. 図18は図1に示す追跡サーバのプロセッサの通信処理の一部を示すフロー図である。FIG. 18 is a flowchart showing a part of communication processing of the processor of the tracking server shown in FIG. 図19は図1に示す追跡サーバのプロセッサの通信処理の一部であって、図18に後続するフロー図である。FIG. 19 is a part of communication processing of the processor of the tracking server shown in FIG. 1, and is a flowchart subsequent to FIG. 図20は図1に示す追跡サーバのプロセッサの補正処理を示すフロー図である。FIG. 20 is a flowchart showing correction processing of the processor of the tracking server shown in FIG. 図21は図1に示す追跡サーバのプロセッサの追跡処理の一部を示すフロー図である。FIG. 21 is a flowchart showing a part of the tracking process of the processor of the tracking server shown in FIG. 図22は図1に示す追跡サーバのプロセッサの追跡処理の一部であって、図21に後続するフロー図である。FIG. 22 is a part of the tracking process of the processor of the tracking server shown in FIG. 1, and is a flowchart subsequent to FIG. 図23は図1に示す追跡サーバのプロセッサの関連付解除処理を示すフロー図である。FIG. 23 is a flowchart showing the association release processing of the processor of the tracking server shown in FIG. 図24は図1に示す追跡サーバのプロセッサの関連付処理を示すフロー図である。FIG. 24 is a flowchart showing the association process of the processor of the tracking server shown in FIG. 図25は図1に示す追跡サーバのプロセッサのローカル関連付処理を示すフロー図である。FIG. 25 is a flowchart showing local association processing of the processor of the tracking server shown in FIG. 図26は図1に示す追跡サーバのプロセッサのグローバル関連付処理を示すフロー図である。FIG. 26 is a flowchart showing the global association processing of the processor of the tracking server shown in FIG. 図27は図1に示す追跡サーバのプロセッサの角度補正処理を示すフロー図である。FIG. 27 is a flowchart showing an angle correction process of the processor of the tracking server shown in FIG.

図1を参照して、この実施例のロボット自己位置同定システム100は、たとえば自律移動型のロボット(以下、単に「ロボット」と言う。)18a,18b,18cを、それらのロボットが存在する空間内で自己位置同定(Localization(ローカライゼーション)と言うこともある。)するためのシステムである。なお、本実施例で言う「自己位置同定」とは、ロボット18a,18b,18c(以下、区別しない場合には「ロボット18」と言う。)が、その空間内における自身の位置、角度および速度などのデータを、自身のセンサおよび環境センサなどを利用して取得することを意味する。   Referring to FIG. 1, a robot self-position identification system 100 according to this embodiment includes, for example, autonomously moving robots (hereinafter simply referred to as “robots”) 18a, 18b, and 18c in a space where these robots exist. It is a system for self-localization (also called Localization). In the present embodiment, “self-position identification” refers to the robots 18a, 18b, and 18c (hereinafter referred to as “robot 18” if they are not distinguished from each other) their own position, angle, and speed in the space. Is acquired using its own sensors and environmental sensors.

ロボット自己位置同定システム100は、追跡サーバ10、遠隔操作装置14、計画サーバ16およびロボット18から構成されている。そして、ロボット18は、ネットワーク400を介して、追跡サーバ10、遠隔操作装置14および計画サーバ16に接続される。   The robot self-position identification system 100 includes a tracking server 10, a remote operation device 14, a planning server 16, and a robot 18. The robot 18 is connected to the tracking server 10, the remote operation device 14, and the planning server 16 via the network 400.

追跡サーバ10は、環境センサである、LRF12a,12bを含む複数のLRFを備える。LRF12a,12bは人間およびロボット18が行動できる場所(環境)に設置される。そして、追跡サーバ10はLRF12a,12bを利用して、ロボット18および人間を含む実体をセンシングすることで、各実体の位置を検出する。たとえば、人間およびロボット18が行動できる場所とは、会社のフロア、博物館、ショッピングモールまたはアトラクション会場などである。なお、システムの管理者は、様々な場所において、LRF12a,12bを、容易に設置することができる。また、追跡サーバ10によって得られた位置データは、遠隔操作サーバ14および計画サーバ16に出力される。   The tracking server 10 includes a plurality of LRFs including LRFs 12a and 12b, which are environment sensors. The LRFs 12a and 12b are installed in a place (environment) where the human and the robot 18 can act. Then, the tracking server 10 detects the position of each entity by sensing the entities including the robot 18 and the human using the LRFs 12a and 12b. For example, the place where the human and the robot 18 can act is a company floor, a museum, a shopping mall, or an attraction venue. Note that the system administrator can easily install the LRFs 12a and 12b in various places. Further, the position data obtained by the tracking server 10 is output to the remote operation server 14 and the planning server 16.

さらに、追跡サーバ10は、ローカライゼーション機能(ローカライゼーションモジュールと言うこともある。)を備えている。そのため、追跡サーバ10は、ロボット18との通信を確立し、ロボット18が出力する状態データを受信(取得)するとともに、ロボット18に対して位置および角度(向き)を補正するための補正データを送信する。状態データは、ロボット18自身の位置データ、角度データおよび速度データを含み、ロボット18が備えるセンサの出力に基づいて作成される。   In addition, the tracking server 10 has a localization function (sometimes referred to as a localization module). Therefore, the tracking server 10 establishes communication with the robot 18, receives (acquires) state data output from the robot 18, and receives correction data for correcting the position and angle (orientation) with respect to the robot 18. Send. The state data includes position data, angle data, and velocity data of the robot 18 itself, and is created based on the output of the sensor provided in the robot 18.

遠隔操作装置14は、追跡サーバ10から得た位置データを表示する操作端末を含み、オペレータによって操作される。また、オペレータは、操作端末に表示されるロボット18や人間の位置に基づいて、同時に複数のロボット18a,18b,18cを監視することができる。そして、オペレータは、必要に応じてロボット18を遠隔操作したり、動作命令を発行したりする。また、計画サーバ16は、追跡サーバ10から得た位置データを利用して、ロボット18が空間内に存在する人間とのコミュニケーション行動を行うように、経路を計算する。   The remote operation device 14 includes an operation terminal that displays position data obtained from the tracking server 10 and is operated by an operator. The operator can simultaneously monitor a plurality of robots 18a, 18b, and 18c based on the robot 18 displayed on the operation terminal and the position of the person. Then, the operator remotely operates the robot 18 or issues an operation command as necessary. Further, the plan server 16 uses the position data obtained from the tracking server 10 to calculate a route so that the robot 18 performs a communication action with a person existing in the space.

ロボット18は、相互作用指向のロボットでもあり、人間のようなコミュニケーションの対象との間で、身振り手振りのような身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する機能を備えている。そのため、ロボット18は、遠隔操作装置14または計画サーバ16の命令に基づいて、人間に接近したり、コミュニケーション行動を行ったりする。   The robot 18 is also an interaction-oriented robot, and has a function of executing a communication action including at least one of body movements such as gestures and voices with a communication target such as a human. Therefore, the robot 18 approaches a human or performs a communication action based on a command from the remote control device 14 or the plan server 16.

また、ロボット18は、先述した状態データを0.1秒〜0.3秒毎に出力する。さらに、各ロボット18は、文字列で構成されるロボットIDでそれぞれが識別(区別)される。   The robot 18 outputs the above-described state data every 0.1 to 0.3 seconds. Furthermore, each robot 18 is identified (differentiated) by a robot ID configured by a character string.

なお、ここでは簡単のため人間を1人、ロボット18を3台しか示していないが、追跡サーバ10は2人以上の人間および3台以上のロボット18を同時に検出することができる。また、追跡サーバ10、遠隔操作装置14および計画サーバ16と、ネットワーク400との接続は無線接続であってもよいし、有線接続であってもよい。さらに、各サーバおよび装置間の接続も、有線接続であってもよいし、無線接続であってもよい。   Here, for simplicity, only one human and three robots 18 are shown, but the tracking server 10 can simultaneously detect two or more humans and three or more robots 18. Further, the connection between the tracking server 10, the remote control device 14, and the planning server 16 and the network 400 may be a wireless connection or a wired connection. Further, the connection between each server and the device may be a wired connection or a wireless connection.

図2は、追跡サーバ10の電気的な構成を示すブロック図である。図2を参照して、追跡サーバ10は、LRF12a−12fおよびプロセッサ20を含む。プロセッサ20は、RTC(Real Time Clock)20aを含んでおり、検出した位置データに対して、RTC20aから得られた時刻データを対応付けて、メモリ22のバッファに記憶する。   FIG. 2 is a block diagram showing an electrical configuration of the tracking server 10. Referring to FIG. 2, the tracking server 10 includes LRFs 12a-12f and a processor 20. The processor 20 includes an RTC (Real Time Clock) 20a. The detected position data is associated with the time data obtained from the RTC 20a and stored in the buffer of the memory 22.

プロセッサ20は、マイクロコンピュータ或いはCPUとも呼ばれ、先述したLRF12aおよびLRF12bに加えて、LRF12c,LRF12d,LRF12eおよびLRF12fともそれぞれ接続される。さらに、プロセッサ20は、メモリ22、通信LANボード24、無線通信装置26および外部出力28とも接続される。なお、LRF12a−12fを区別する必要がない場合には、まとめて「LRF12」と言う。   The processor 20 is also called a microcomputer or CPU, and is connected to the LRF 12c, LRF 12d, LRF 12e, and LRF 12f in addition to the LRF 12a and LRF 12b described above. Further, the processor 20 is also connected to a memory 22, a communication LAN board 24, a wireless communication device 26, and an external output 28. In addition, when it is not necessary to distinguish LRF12a-12f, it is collectively called "LRF12."

LRF12は、レーザーを照射し、物体(実体も含む)に反射して戻ってくるまでの時間から当該物体との距離を計測するものである。たとえば、トランスミッタ(図示せず)から照射したレーザーを回転ミラー(図示せず)で反射させて、前方を扇状に一定角度(たとえば、0.5度)ずつスキャンする。ここで、LRF12としては、SICK社製のレーザーレンジファインダ(型式 LMS200)を用いることができる。このレーザーレンジファインダを用いた場合には、距離8mを±15mm程度の誤差で計測可能である。   The LRF 12 measures the distance to the object from the time it takes to irradiate the laser, reflect on the object (including the entity) and return. For example, a laser beam emitted from a transmitter (not shown) is reflected by a rotating mirror (not shown), and the front is scanned in a fan shape by a certain angle (for example, 0.5 degrees). Here, as the LRF 12, a laser range finder (model LMS200) manufactured by SICK can be used. When this laser range finder is used, a distance of 8 m can be measured with an error of about ± 15 mm.

メモリ22は、図示は省略をするが、ROM,HDDおよびRAMを含み、ROMおよびHDDには、追跡サーバ10の動作を制御するための制御プログラムが予め記憶される。たとえば、LRF12による人間の検出に必要なプログラムなどが記録される。また、RAMは、ワークメモリやバッファメモリとして用いられる。   Although not shown, the memory 22 includes a ROM, an HDD, and a RAM, and a control program for controlling the operation of the tracking server 10 is stored in advance in the ROM and the HDD. For example, a program necessary for human detection by the LRF 12 is recorded. The RAM is used as a work memory or a buffer memory.

通信LANボード24は、たとえばDSPで構成され、プロセッサ20から与えられた送信データを無線通信装置26に与え、無線通信装置26は送信データを、ネットワーク400を介してロボット18に送信する。また、送信データは補正データなどである。一方、通信LANボード24は、無線通信装置26を介してデータを受信し、受信したデータをプロセッサ20に与える。また、受信データはロボット18が出力する状態データなどである。なお、受信した状態データは、メモリ22のバッファに記憶される。   The communication LAN board 24 is composed of, for example, a DSP, and sends transmission data given from the processor 20 to the wireless communication device 26, and the wireless communication device 26 sends the transmission data to the robot 18 via the network 400. The transmission data is correction data or the like. On the other hand, the communication LAN board 24 receives data via the wireless communication device 26 and gives the received data to the processor 20. The received data is status data output by the robot 18. The received status data is stored in the buffer of the memory 22.

外部接続28は、遠隔操作装置14および計画サーバ16と接続するためのポートであり、たとえばLANケーブル、SCSIケーブルまたはUSBケーブルなどの有線ケーブルが接続される。そして、プロセッサ20は、実体の位置データを外部出力28に与え、外部出力28は位置データを遠隔操作装置14および計画サーバ16に出力する。   The external connection 28 is a port for connecting to the remote control device 14 and the planning server 16, and is connected to a wired cable such as a LAN cable, a SCSI cable, or a USB cable. Then, the processor 20 gives the actual position data to the external output 28, and the external output 28 outputs the position data to the remote control device 14 and the plan server 16.

図3はこの実施例のロボット18の外観を示す正面図である。図3を参照して、ロボット18は台車30を含み、台車30の下面にはロボット18を自律移動させる右車輪32a、左車輪32b(特に区別しない場合には、「車輪32」と言う)および1つの従輪34が設けられる。右車輪32aおよび左車輪32bは、右車輪モータ36aおよび左車輪モータ36b(図4参照)によってそれぞれ独立に駆動され、台車30すなわちロボット18を前後左右の任意方向に動かすことができる。また、従輪34は車輪32を補助する補助輪である。したがって、ロボット18は、配置された空間内を自律制御によって移動可能である。   FIG. 3 is a front view showing the appearance of the robot 18 of this embodiment. Referring to FIG. 3, the robot 18 includes a carriage 30, and the lower surface of the carriage 30 has a right wheel 32 a and a left wheel 32 b (referred to as “wheel 32” unless otherwise specified) for autonomously moving the robot 18, and One follower wheel 34 is provided. The right wheel 32a and the left wheel 32b are independently driven by the right wheel motor 36a and the left wheel motor 36b (see FIG. 4), respectively, and can move the carriage 30, that is, the robot 18 in any direction of front, rear, left and right. The slave wheel 34 is an auxiliary wheel that assists the wheel 32. Therefore, the robot 18 can move in the arranged space by autonomous control.

台車30の上には、円柱形のセンサ取り付けパネル38が設けられ、このセンサ取り付けパネル38には、多数の赤外線距離センサ40が取り付けられる。これらの赤外線距離センサ40は、センサ取り付けパネル38すなわちロボット18の周囲の物体(人間や障害物など)との距離を測定するものである。   A cylindrical sensor attachment panel 38 is provided on the carriage 30, and a large number of infrared distance sensors 40 are attached to the sensor attachment panel 38. These infrared distance sensors 40 measure the distance from the sensor mounting panel 38, that is, the object (human being, obstacle, etc.) around the robot 18.

なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、小型のLRFや、超音波距離センサおよびミリ波レーダなどを用いることもできる。   In this embodiment, an infrared distance sensor is used as the distance sensor, but a small LRF, an ultrasonic distance sensor, a millimeter wave radar, or the like can be used instead of the infrared distance sensor.

センサ取り付けパネル38の上には、胴体42が直立するように設けられる。また、胴体42の前方中央上部(人の胸に相当する位置)には、上述した赤外線距離センサ40がさらに設けられ、ロボット18の前方の主として人間との距離を計測する。また、胴体42には、その側面側上端部のほぼ中央から伸びる支柱44が設けられ、支柱44の上には、全方位カメラ46が設けられる。全方位カメラ46は、ロボット18の周囲を撮影するものであり、後述する眼カメラ70とは区別される。この全方位カメラ46としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ40および全方位カメラ46の設置位置は、当該部位に限定されず適宜変更されてもよい。   A body 42 is provided on the sensor mounting panel 38 so as to stand upright. Further, the above-described infrared distance sensor 40 is further provided in the upper front upper part of the body 42 (a position corresponding to a person's chest), and measures the distance mainly to a person in front of the robot 18. Further, the body 42 is provided with a support column 44 extending from substantially the center of the upper end of the side surface, and an omnidirectional camera 46 is provided on the support column 44. The omnidirectional camera 46 photographs the surroundings of the robot 18 and is distinguished from an eye camera 70 described later. As this omnidirectional camera 46, for example, a camera using a solid-state imaging device such as a CCD or a CMOS can be adopted. In addition, the installation positions of the infrared distance sensor 40 and the omnidirectional camera 46 are not limited to the portions, and may be changed as appropriate.

胴体42の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節48Rおよび肩関節48Lによって、上腕50Rおよび上腕50Lが設けられる。図示は省略するが、肩関節48Rおよび肩関節48Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節48Rは、直交する3軸のそれぞれの軸廻りにおいて上腕50Rの角度を制御できる。肩関節48Rの或る軸(ヨー軸)は、上腕50Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節48Lは、直交する3軸のそれぞれの軸廻りにおいて上腕50Lの角度を制御できる。肩関節48Lの或る軸(ヨー軸)は、上腕50Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。   An upper arm 50R and an upper arm 50L are provided at upper end portions on both sides of the torso 42 (position corresponding to a human shoulder) by a shoulder joint 48R and a shoulder joint 48L, respectively. Although illustration is omitted, each of the shoulder joint 48R and the shoulder joint 48L has three orthogonal degrees of freedom. That is, the shoulder joint 48R can control the angle of the upper arm 50R around each of three orthogonal axes. A certain axis (yaw axis) of the shoulder joint 48R is an axis parallel to the longitudinal direction (or axis) of the upper arm 50R, and the other two axes (pitch axis and roll axis) are orthogonal to the axes from different directions. It is an axis to do. Similarly, the shoulder joint 48L can control the angle of the upper arm 50L around each of three orthogonal axes. A certain axis (yaw axis) of the shoulder joint 48L is an axis parallel to the longitudinal direction (or axis) of the upper arm 50L, and the other two axes (pitch axis and roll axis) are orthogonal to the axes from different directions. It is an axis to do.

また、上腕50Rおよび上腕50Lのそれぞれの先端には、肘関節52Rおよび肘関節52Lが設けられる。図示は省略するが、肘関節52Rおよび肘関節52Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕54Rおよび前腕54Lの角度を制御できる。   In addition, an elbow joint 52R and an elbow joint 52L are provided at the respective distal ends of the upper arm 50R and the upper arm 50L. Although illustration is omitted, each of the elbow joint 52R and the elbow joint 52L has one degree of freedom, and the angle of the forearm 54R and the forearm 54L can be controlled around the axis (pitch axis).

前腕54Rおよび前腕54Lのそれぞれの先端には、人の手に相当する球体56Rおよび球体56Lがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人間の手の形をした「手」を用いることも可能である。また、図示は省略するが、台車30の前面、肩関節48Rと肩関節48Lとを含む肩に相当する部位、上腕50R、上腕50L、前腕54R、前腕54L、球体56Rおよび球体56Lには、それぞれ、接触センサ58(図4で包括的に示す)が設けられる。台車30の前面の接触センサ58は、台車30への人間や他の障害物の接触を検知する。したがって、ロボット18は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪32の駆動を停止してロボット18の移動を急停止させることができる。また、その他の接触センサ58は、当該各部位に触れたかどうかを検知する。なお、接触センサ58の設置位置は、当該部位に限定されず、適宜な位置(人の胸、腹、脇、背中および腰に相当する位置)に設けられてもよい。   A sphere 56R and a sphere 56L corresponding to a human hand are fixedly provided at the tips of the forearm 54R and the forearm 54L, respectively. However, when a finger or palm function is required, a “hand” in the shape of a human hand can be used. Although not shown, the front surface of the carriage 30, the portion corresponding to the shoulder including the shoulder joint 48R and the shoulder joint 48L, the upper arm 50R, the upper arm 50L, the forearm 54R, the forearm 54L, the sphere 56R, and the sphere 56L, , A contact sensor 58 (shown generically in FIG. 4) is provided. A contact sensor 58 on the front surface of the carriage 30 detects contact of a person or another obstacle with the carriage 30. Therefore, when the robot 18 is in contact with an obstacle during its movement, the robot 18 can detect the contact and immediately stop driving the wheels 32 to suddenly stop the movement of the robot 18. Further, the other contact sensors 58 detect whether or not the respective parts are touched. In addition, the installation position of the contact sensor 58 is not limited to the said site | part, and may be provided in an appropriate position (position corresponding to a person's chest, abdomen, side, back, and waist).

胴体42の中央上部(人の首に相当する位置)には首関節60が設けられ、さらにその上には頭部62が設けられる。図示は省略するが、首関節60は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)はロボット18の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。   A neck joint 60 is provided at the upper center of the body 42 (a position corresponding to a person's neck), and a head 62 is further provided thereon. Although illustration is omitted, the neck joint 60 has a degree of freedom of three axes, and the angle can be controlled around each of the three axes. A certain axis (yaw axis) is an axis directed directly above the robot 18 (vertically upward), and the other two axes (pitch axis and roll axis) are axes orthogonal to each other in different directions.

頭部62には、人の口に相当する位置に、スピーカ64が設けられる。スピーカ64は、ロボット18が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク66Rおよびマイク66Lが設けられる。以下、右のマイク66Rと左のマイク66Lとをまとめてマイク66と言うことがある。マイク66は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。さらに、人の目に相当する位置には、眼球部68Rおよび眼球部68Lが設けられる。眼球部68Rおよび眼球部68Lは、それぞれ眼カメラ70Rおよび眼カメラ70Lを含む。以下、右の眼球部68Rと左の眼球部68Lとをまとめて眼球部68と言うことがある。また、右の眼カメラ70Rと左の眼カメラ70Lとをまとめて眼カメラ70と言うことがある。   The head 62 is provided with a speaker 64 at a position corresponding to a human mouth. The speaker 64 is used for the robot 18 to communicate with a person around it by voice or sound. A microphone 66R and a microphone 66L are provided at a position corresponding to a human ear. Hereinafter, the right microphone 66R and the left microphone 66L may be collectively referred to as a microphone 66. The microphone 66 captures ambient sounds, in particular, the voices of humans who are subjects of communication. Furthermore, an eyeball part 68R and an eyeball part 68L are provided at positions corresponding to human eyes. The eyeball portion 68R and the eyeball portion 68L include an eye camera 70R and an eye camera 70L, respectively. Hereinafter, the right eyeball portion 68R and the left eyeball portion 68L may be collectively referred to as the eyeball portion 68. Further, the right eye camera 70R and the left eye camera 70L may be collectively referred to as an eye camera 70.

眼カメラ70は、ロボット18に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ70は、上述した全方位カメラ46と同様のカメラを用いることができる。たとえば、眼カメラ70は、眼球部68内に固定され、眼球部68は、眼球支持部(図示せず)を介して頭部62内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部62の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部62の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部68ないし眼カメラ70の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ64、マイク66および眼カメラ70の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。   The eye camera 70 captures a human face approaching the robot 18 and other parts or objects, and captures a corresponding video signal. The eye camera 70 can be the same camera as the omnidirectional camera 46 described above. For example, the eye camera 70 is fixed in the eyeball unit 68, and the eyeball unit 68 is attached to a predetermined position in the head 62 via an eyeball support unit (not shown). Although illustration is omitted, the eyeball support portion has two degrees of freedom, and the angle can be controlled around each of these axes. For example, one of the two axes is an axis (yaw axis) in a direction toward the top of the head 62, and the other is orthogonal to the one axis and goes straight in a direction in which the front side (face) of the head 62 faces. It is an axis (pitch axis) in the direction to be performed. By rotating the eyeball support portion around each of these two axes, the tip (front) side of the eyeball portion 68 or the eye camera 70 is displaced, and the camera axis, that is, the line-of-sight direction is moved. Note that the installation positions of the speaker 64, the microphone 66, and the eye camera 70 described above are not limited to those portions, and may be provided at appropriate positions.

このように、この実施例のロボット18は、車輪32の独立2軸駆動、肩関節48の3自由度(左右で6自由度)、肘関節52の1自由度(左右で2自由度)、首関節60の3自由度および眼球支持部の2自由度(左右で4自由度)の合計17自由度を有する。   As described above, the robot 18 of this embodiment has independent two-axis driving of the wheels 32, three degrees of freedom of the shoulder joint 48 (6 degrees of freedom on the left and right), one degree of freedom of the elbow joint 52 (2 degrees of freedom on the left and right), It has a total of 17 degrees of freedom, 3 degrees of freedom for the neck joint 60 and 2 degrees of freedom for the eyeball support (4 degrees of freedom on the left and right).

図4はロボット18の電気的な構成を示すブロック図である。この図4を参照して、ロボット18は、プロセッサ80を含む。プロセッサ80は、マイクロコンピュータ或いはCPUとも呼ばれ、バス82を介して、メモリ84、モータ制御ボード86、センサ入力/出力ボード88および音声入力/出力ボード90に接続される。プロセッサ80は、RTC80aを含んでおり、作成した状態データに対して時刻データを対応付ける。   FIG. 4 is a block diagram showing an electrical configuration of the robot 18. Referring to FIG. 4, robot 18 includes a processor 80. The processor 80, also called a microcomputer or CPU, is connected to the memory 84, the motor control board 86, the sensor input / output board 88, and the audio input / output board 90 via the bus 82. The processor 80 includes an RTC 80a and associates time data with the created state data.

メモリ84は、図示は省略をするが、SSD(Solid State Drive),ROMおよびRAMを含む。SSD,ROMには、ロボット18の動作を制御するための制御プログラムが予め記憶される。たとえば、各センサの出力(センサ情報)を検知するための検知プログラムや、外部コンピュータ(追跡サーバ10、遠隔操作装置14および計画サーバ16)との間で必要なデータやコマンドを送受信するための通信プログラムなどが記録される。また、RAMは、ワークメモリやバッファメモリとして用いられる。   Although not shown, the memory 84 includes an SSD (Solid State Drive), a ROM, and a RAM. In the SSD and ROM, a control program for controlling the operation of the robot 18 is stored in advance. For example, a detection program for detecting the output (sensor information) of each sensor and communication for transmitting / receiving necessary data and commands to / from external computers (the tracking server 10, the remote control device 14, and the planning server 16) Programs etc. are recorded. The RAM is used as a work memory or a buffer memory.

モータ制御ボード86は、たとえばDSPで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード86は、プロセッサ80からの制御データを受け、右眼球部68Rの2軸のそれぞれの角度を制御する2つのモータ(図4では、まとめて「右眼球モータ92」と示す。)の回転角度を制御する。同様に、モータ制御ボード86は、プロセッサ80からの制御データを受け、左眼球部68Lの2軸のそれぞれの角度を制御する2つのモータ(図4では、まとめて「左眼球モータ94」と示す。)の回転角度を制御する。   The motor control board 86 is composed of, for example, a DSP, and controls driving of each axis motor such as each arm, neck joint, and eyeball. That is, the motor control board 86 receives the control data from the processor 80, and shows two motors that control the respective angles of the two axes of the right eyeball portion 68R (in FIG. 4, collectively referred to as “right eyeball motor 92”). ) To control the rotation angle. Similarly, the motor control board 86 receives two control data from the processor 80 and controls two angles of the two axes of the left eyeball portion 68L (in FIG. 4, collectively referred to as “left eyeball motor 94”). .) Control the rotation angle.

また、モータ制御ボード86は、プロセッサ80からの制御データを受け、肩関節48Rの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Rの角度を制御する1つのモータとの計4つのモータ(図4では、まとめて「右腕モータ96」と示す。)の回転角度を制御する。同様に、モータ制御ボード86は、プロセッサ80からの制御データを受け、肩関節48Lの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Lの角度を制御する1つのモータとの計4つのモータ(図4では、まとめて「左腕モータ98」と示す。)の回転角度を制御する。   The motor control board 86 receives the control data from the processor 80, and includes a total of three motors that control the angles of the three orthogonal axes of the shoulder joint 48R and one motor that controls the angle of the elbow joint 52R. The rotation angle of four motors (collectively indicated as “right arm motor 96” in FIG. 4) is controlled. Similarly, the motor control board 86 receives control data from the processor 80, and includes three motors for controlling the angles of the three orthogonal axes of the shoulder joint 48L and one motor for controlling the angle of the elbow joint 52L. The rotation angles of a total of four motors (collectively indicated as “left arm motor 98” in FIG. 4) are controlled.

さらに、モータ制御ボード86は、プロセッサ80からの制御データを受け、首関節60の直交する3軸のそれぞれの角度を制御する3つのモータ(図4では、まとめて「頭部モータ110」と示す。)の回転角度を制御する。そして、モータ制御ボード86は、プロセッサ80からの制御データを受け、右車輪32aを駆動する右車輪モータ36a、左車輪32bを駆動する左車輪モータ36bの回転角度を、それぞれ個別に制御する。なお、この実施例では、車輪モータ36を除くモータは、制御を簡素化するためにステッピングモータ(すなわち、パルスモータ)を用いる。ただし、車輪モータ36と同様に直流モータを用いるようにしてもよい。また、ロボット18の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更されてもよい。たとえば、他の実施例では、エアアクチュエータなどが適用されてもよい。   Further, the motor control board 86 receives the control data from the processor 80 and controls three motors for controlling the respective angles of the three orthogonal axes of the neck joint 60 (in FIG. 4, collectively referred to as “head motor 110”). .) Control the rotation angle. The motor control board 86 receives the control data from the processor 80 and individually controls the rotation angles of the right wheel motor 36a for driving the right wheel 32a and the left wheel motor 36b for driving the left wheel 32b. In this embodiment, a motor other than the wheel motor 36 uses a stepping motor (that is, a pulse motor) in order to simplify the control. However, a DC motor may be used similarly to the wheel motor 36. The actuator that drives the body part of the robot 18 is not limited to a motor that uses a current as a power source, and may be changed as appropriate. For example, in another embodiment, an air actuator or the like may be applied.

センサ入力/出力ボード88は、モータ制御ボード86と同様に、DSPで構成され、各センサからの信号を取り込んでプロセッサ80に与える。すなわち、赤外線距離センサ40のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード88を通じてプロセッサ80に入力される。また、全方位カメラ46からの映像信号が、必要に応じてセンサ入力/出力ボード88で所定の処理を施してからプロセッサ80に入力される。眼カメラ70からの映像信号も、同様に、プロセッサ80に入力される。また、上述した複数の接触センサ58(図4では、まとめて「接触センサ58」と示す。)からの信号がセンサ入力/出力ボード88を介してプロセッサ80に与えられる。   Similar to the motor control board 86, the sensor input / output board 88 is constituted by a DSP, and takes in signals from each sensor and gives them to the processor 80. That is, data relating to the reflection time from each of the infrared distance sensors 40 is input to the processor 80 through the sensor input / output board 88. Further, the video signal from the omnidirectional camera 46 is input to the processor 80 after being subjected to predetermined processing by the sensor input / output board 88 as required. Similarly, the video signal from the eye camera 70 is also input to the processor 80. Further, signals from the plurality of contact sensors 58 described above (collectively indicated as “contact sensors 58” in FIG. 4) are provided to the processor 80 via the sensor input / output board 88.

また、センサ入力/出力ボード88には、右車輪32aの回転速度(車輪速)を検出する右車輪速センサ112a、左車輪32bの回転速度を検出する左車輪速センサ112bがさらに接続される。そして、右車輪速センサ112aおよび左車輪速センサ112bからのそれぞれから、一定時間における右車輪32aおよび左車輪32bの回転数(車輪速)に関するデータが、センサ入力/出力ボート88を通じて、プロセッサ80に入力される。   The sensor input / output board 88 is further connected to a right wheel speed sensor 112a for detecting the rotational speed (wheel speed) of the right wheel 32a and a left wheel speed sensor 112b for detecting the rotational speed of the left wheel 32b. Then, data relating to the rotation speeds (wheel speeds) of the right wheel 32a and the left wheel 32b at a predetermined time from the right wheel speed sensor 112a and the left wheel speed sensor 112b are sent to the processor 80 through the sensor input / output boat 88, respectively. Entered.

音声入力/出力ボード90も、他の入力/出力ボードと同様にDSPで構成され、プロセッサ80から与えられる音声合成データに従った音声または声がスピーカ64から出力される。また、マイク66からの音声入力が、音声入力/出力ボード90を介してプロセッサ80に与えられる。   The voice input / output board 90 is also composed of a DSP like the other input / output boards, and voice or voice according to voice synthesis data given from the processor 80 is outputted from the speaker 64. Also, audio input from the microphone 66 is given to the processor 80 via the audio input / output board 90.

また、プロセッサ80は、バス82を介して通信LANボード114に接続される。通信LANボード114は、たとえばDSPで構成され、プロセッサ80から与えられた送信データを無線通信装置116に与え、無線通信装置116は送信データを、ネットワーク400を介して外部コンピュータ(追跡サーバ10、遠隔操作装置14、計画サーバ16)に送信する。また、通信LANボード114は、無線通信装置116を介してデータを受信し、受信したデータをプロセッサ80に与える。たとえば、送信データとしては、全方位カメラ46および目カメラ70によって撮影された周囲の映像データや、状態データであったりする。   The processor 80 is connected to the communication LAN board 114 via the bus 82. The communication LAN board 114 is composed of, for example, a DSP, and provides transmission data given from the processor 80 to the wireless communication device 116. The wireless communication device 116 sends the transmission data to an external computer (the tracking server 10, remote control) via the network 400. It transmits to the operating device 14 and the plan server 16). The communication LAN board 114 receives data via the wireless communication device 116 and gives the received data to the processor 80. For example, the transmission data may be surrounding video data taken by the omnidirectional camera 46 and the eye camera 70, or status data.

ここで、状態データに含まれる位置データは、右車輪速センサ112aおよび左車輪速センサ112bが出力する車輪32の回転数に基づいて求められる。また、状態データに含まれる角度データは、右車輪速センサ112aおよび左車輪速度センサ112bの回転比率に基づいて求められる。さらに、状態データに含まれる速度データは、右車輪速センサ112aが出力する車輪速データおよび左車輪速センサ112bが出力する車輪速データから構成される。つまり、ロボット18は、状態データに含まれる速度データとして、右車輪32aの車輪速データおよび左車輪32bの車輪速データを追跡サーバ10に送信する。そして、追跡サーバ10では、受信した左右の車輪速データに基づいて、ロボット18の速度を算出する。   Here, the position data included in the state data is obtained based on the rotation speed of the wheel 32 output from the right wheel speed sensor 112a and the left wheel speed sensor 112b. The angle data included in the state data is obtained based on the rotation ratio of the right wheel speed sensor 112a and the left wheel speed sensor 112b. Further, the speed data included in the state data includes wheel speed data output from the right wheel speed sensor 112a and wheel speed data output from the left wheel speed sensor 112b. That is, the robot 18 transmits the wheel speed data of the right wheel 32a and the wheel speed data of the left wheel 32b to the tracking server 10 as speed data included in the state data. The tracking server 10 calculates the speed of the robot 18 based on the received left and right wheel speed data.

次にLRF12について詳細に説明する。図5を参照して、LRF12の計測範囲は、半径R(R≒8m)の半円形状(扇形)で示される。つまり、LRF12は、その正面方向を中心とした場合に、左右90°の方向を所定の距離(R)以内で計測可能である。   Next, the LRF 12 will be described in detail. Referring to FIG. 5, the measurement range of LRF 12 is indicated by a semicircular shape (fan shape) having a radius R (R≈8 m). That is, the LRF 12 can measure the direction of 90 ° left and right within a predetermined distance (R) when the front direction is the center.

また、使用しているレーザーは、日本工業規格 JIS C 6802「レーザー製品の安全基準」におけるクラス1レーザーであり、人の眼に対して影響を及ぼさない安全なレベルである。また、この実施例では、LRF12のサンプリングレートを37Hzとした。これは、移動したり、停止したりする実体の位置を連続して検出するためである。   The laser used is a class 1 laser in Japanese Industrial Standard JIS C 6802 “Safety Standard for Laser Products”, which is a safe level that does not affect human eyes. In this embodiment, the sampling rate of the LRF 12 is 37 Hz. This is to continuously detect the position of the entity that moves or stops.

さらに、先述したように、LRF12は、様々な場所に配置される。具体的には、LRF12a−12fの各々は、計測領域が重なるように配置され、図示は省略するが、床面から約90cmの高さに固定される。この高さは、人間の胴体と腕(両腕)とを検出可能とするためであり、たとえば、日本人の成人の平均身長から算出される。したがって、遠隔操作装置14を設ける場所(地域ないし国)や人間の年齢ないし年代(たとえば、子供,大人)に応じて、LRF12を固定する高さを適宜変更するようにしてよい。なお、本実施例では、設定されるLRF12は6台としたが、2台以上であれば、任意の台数のLRF12を設置してもよい。   Further, as described above, the LRF 12 is arranged in various places. Specifically, each of LRF12a-12f is arrange | positioned so that a measurement area | region may overlap, Although illustration is abbreviate | omitted, it is fixed to the height of about 90 cm from a floor surface. This height is for detecting the human torso and arms (both arms), and is calculated from the average height of a Japanese adult, for example. Therefore, the height at which the LRF 12 is fixed may be appropriately changed according to the location (region or country) where the remote control device 14 is provided and the age or age of the person (for example, children or adults). In this embodiment, six LRFs 12 are set, but any number of LRFs 12 may be installed as long as the number is two or more.

このような構成の追跡サーバ10では、プロセッサ20がLRF12からの出力(距離データ)に基づいて、パーティクルフィルタを用いて、人間およびロボット18の現在位置の変化を推定する。なお、本実施例では、人間とロボット18とでは速度や形状が異なるため、人形状のモデル(人形状モデル)またはロボット形状のモデル(ロボット形状モデル)を採用して、パーティクルフィルタの尤度の計算量を軽減している。   In the tracking server 10 having such a configuration, the processor 20 estimates changes in the current positions of the human and the robot 18 using the particle filter based on the output (distance data) from the LRF 12. In this embodiment, since the human and the robot 18 have different speeds and shapes, a human shape model (human shape model) or a robot shape model (robot shape model) is adopted, and the likelihood of the particle filter is determined. The amount of calculation is reduced.

たとえば、LRF12によってスキャンされると、人間などの実体が存在しない可視領域(open)、実体が存在する陰領域(shadow)および実体のエッジ(edge)が検出される。   For example, when scanned by the LRF 12, a visible region (open) where an entity such as a human does not exist, a shadow region (shadow) where the entity exists, and an edge of the entity are detected.

ここで、空間に均等にばら撒くパーティクルを識別する変数をmとし、パーティクルの状態(位置と速度)をXとし、或る時刻tの状態Xtのときに観測される観測値ベクトルをZとしたとき、各RLF12の尤度p(Z|X[m])は数1に従って算出される。ただし、[m]はパーティクルを個別に識別するための添え字である。また、表現の都合上、数式以外では[m]を上付きにしないで記載する。以下、同様である。 Here, a variable that identifies a uniformly rose sprinkle particles in space and m, particle state (position and velocity) and X, the observed value vector that is observed in the state Xt certain time t and Z t Then, the likelihood p i (Z t | X t [m]) of each RLF 12 is calculated according to Equation 1. However, [m] is a subscript for individually identifying particles. In addition, for the convenience of expression, [m] is described without superscript except for mathematical expressions. The same applies hereinafter.

[数1]

Figure 0005493097
[Equation 1]

Figure 0005493097

つまり、尤度p(Z|X[m])は、可視領域では一定値(popen)とし、陰領域では一定値(pshadow)とエッジの尤度pedge(Z|X[m])との和となる。 That is, the likelihood p i (Z t | X t [m]) is a constant value (p open ) in the visible region, and the constant value (p shadow ) and the edge likelihood p edge (Z t | X) in the shadow region. t [m]).

さらに、LRF12の数をnsensorsとしたとき、数1で求めた各LRF12の尤度を統合した統合尤度p(Z|X[m])は、数2に従って算出される。なお、陰領域に2人の人間が存在することがあるので、2つのパーティクルが同じ実体を追跡しないようにするために、各RLF12の尤度p(Z|X[m])から補正値Pcollocationが減算される。 Further, when the number of LRFs 12 is n sensors , the integrated likelihood p (Z t | X t [m]) obtained by integrating the likelihoods of the respective LRFs 12 obtained by Equation 1 is calculated according to Equation 2. Since there may be two people in the shadow region, in order to prevent two particles from tracking the same entity, from the likelihood p i (Z t | X t [m]) of each RLF 12 The correction value P collocation is subtracted.

[数2]

Figure 0005493097
[Equation 2]

Figure 0005493097

このようにして求められた統合尤度p(Z|X[m])に基づいて、各パーティクルが更新され、人間またはロボット18の現在位置の変化が推定される。そして、推定された現在位置の変化に基づいて、ロボット18または人間の位置データを求め、その位置データがバッファに記憶される。また、本実施例では、バッファに記憶された全ての位置データをまとめて「位置履歴データ」と言う。 Based on the integrated likelihood p (Z t | X t [m]) obtained in this way, each particle is updated, and a change in the current position of the human or the robot 18 is estimated. Then, based on the estimated change in the current position, position data of the robot 18 or human is obtained, and the position data is stored in the buffer. In this embodiment, all the position data stored in the buffer are collectively referred to as “position history data”.

なお、パーティクルフィルタを利用した人物追跡については、特開2008−6105号公報に詳細が開示されている。   Details of person tracking using a particle filter are disclosed in Japanese Patent Laid-Open No. 2008-6105.

図6は、LRF12a−12fが設置された或る環境の地図を示す図解図である。図6を参照して、地図が表す場所は或るショッピングモールである。LRF12a,12c,12dの3台は地図の上側の位置に対応して設置されており、LRF12b,12e,12fの3台は地図の下側の位置に対応して設定されている。そして、2台以上のLRF12の計測領域が重なる領域は、検出領域Fとして示され、図6では斜線の領域である。なお、検出領域Fにおける位置は、図6における左下を原点とする平面座標系で示される。   FIG. 6 is an illustrative view showing a map of a certain environment where the LRFs 12a to 12f are installed. Referring to FIG. 6, the place represented by the map is a shopping mall. The three LRFs 12a, 12c, and 12d are installed corresponding to the upper position of the map, and the three LRFs 12b, 12e, and 12f are set corresponding to the lower position of the map. And the area | region where the measurement area | region of two or more LRF12 overlaps is shown as the detection area | region F, and is a hatched area | region in FIG. The position in the detection area F is indicated by a plane coordinate system with the lower left in FIG. 6 as the origin.

検出領域F(空間)内では、ロボット18a、ロボット18b、ロボット18cおよび人間は、実体Ea、実体Eb、実体Ecおよび実体Ed(区別しない場合は「実体E」と言う。)として検出される。また、図6では、各実体Eに対応する位置履歴データに基づいて、移動軌跡Mを示す。つまり、実体Eaの位置履歴データは移動軌跡Maで示され、実体Ebの位置履歴データは移動軌跡Mbで示され、実体Ecの位置履歴データは移動軌跡Mcで示され、実体Edの位置履歴データは移動軌跡Mdで示される。   In the detection area F (space), the robot 18a, the robot 18b, the robot 18c, and the human are detected as an entity Ea, an entity Eb, an entity Ec, and an entity Ed (referred to as “entity E” if not distinguished). Further, in FIG. 6, the movement locus M is shown based on the position history data corresponding to each entity E. That is, the position history data of the entity Ea is indicated by the movement locus Ma, the position history data of the entity Eb is indicated by the movement locus Mb, the position history data of the entity Ec is indicated by the movement locus Mc, and the position history data of the entity Ed. Is indicated by a movement trajectory Md.

図7は追跡サーバ10によって検出された複数の位置データ、つまり位置履歴データを示す図解図である。図7を参照して、各位置データは、位置を検出した時刻(T)および検出領域Fの平面座標を示す数値(X,Y)から構成される。そして、各位置履歴データは、実体E毎に分けて記憶される。たとえば、追跡サーバ10のメモリ22のバッファには、実体Eaの位置履歴データ、実体Ebの位置履歴データ、実体Ecの位置履歴データおよび実体Edの位置履歴データが記憶される。   FIG. 7 is an illustrative view showing a plurality of position data detected by the tracking server 10, that is, position history data. Referring to FIG. 7, each position data includes a time (T) when the position is detected and a numerical value (X, Y) indicating the plane coordinates of detection area F. Each position history data is stored separately for each entity E. For example, the location history data of the entity Ea, the location history data of the entity Eb, the location history data of the entity Ec, and the location history data of the entity Ed are stored in the buffer of the memory 22 of the tracking server 10.

図8は追跡サーバ10が受信した複数の状態データ、つまり状態履歴データを示す図解図である。図8を参照して、各状態データは、受信した時刻(t)、検出領域Fにおける平面座標を示す数値(x,y)、ロボット18の向きを示す角度(d)、ロボット18の右車輪32aの速度(rv)およびロボット18の左車輪32bの速度(lv)から構成される。そして、位置履歴データと同様に、各状態履歴データは、ロボット18毎に分けて記憶される。たとえば、メモリ22のバッファには、ロボット18aの状態履歴データ、ロボット18bの状態履歴データおよびロボット18cの状態履歴データが記憶される。   FIG. 8 is an illustrative view showing a plurality of state data received by the tracking server 10, that is, state history data. Referring to FIG. 8, each state data includes received time (t), numerical values (x, y) indicating plane coordinates in detection area F, angle (d) indicating the direction of robot 18, and the right wheel of robot 18. It is comprised from the speed (rv) of 32a and the speed (lv) of the left wheel 32b of the robot 18. As with the position history data, each state history data is stored separately for each robot 18. For example, the state history data of the robot 18a, the state history data of the robot 18b, and the state history data of the robot 18c are stored in the buffer of the memory 22.

なお、位置データおよび状態データは、一定時間(たとえば、360秒)が経つと、古いデータから削除(上書き)される。つまり、位置履歴データおよび状態履歴データがメモリ22のメモリ容量を圧迫することは無い。   Note that the position data and the state data are deleted (overwritten) from the old data after a certain period of time (for example, 360 seconds). That is, the position history data and the state history data do not press the memory capacity of the memory 22.

また、上記した平面座標を示す数値(X,Y)および(x,y)において、1座標の変化は1cmの距離変化に対応する。たとえば、実体Eの位置データが(X,Y)である場合に、実体Eが右に1cm移動すると、実体Eの座標が(X+1,Y)に変化する。   In the numerical values (X, Y) and (x, y) indicating the plane coordinates described above, a change in one coordinate corresponds to a distance change of 1 cm. For example, if the position data of the entity E is (X, Y) and the entity E moves 1 cm to the right, the coordinates of the entity E change to (X + 1, Y).

図9は、各ロボット18のRTMから構成されたRTMデータの図解図である。この実施例では、追跡サーバ10が状態データを受信するために各ロボット18との通信を確立すると、ロボット18毎にRTMを作成する。そして、各ロボット18に対して送信される補正データがこのRTMに基づいて決められる。そのため、各RTMは現在のロボット18の位置、角度および速度の値を含む。   FIG. 9 is an illustrative view of RTM data composed of the RTM of each robot 18. In this embodiment, when the tracking server 10 establishes communication with each robot 18 in order to receive state data, an RTM is created for each robot 18. Then, correction data transmitted to each robot 18 is determined based on this RTM. Thus, each RTM includes the current robot 18 position, angle and velocity values.

図9を参照して、RMTデータは、各ロボット18に割り振られたロボットIDに対応づけて記憶される。たとえば、ロボットIDが「001」であるロボット18aのRTMは、(RX,RY)が位置を示し、RDが角度を示し、RVが速度を示す。 Referring to FIG. 9, RMT data is stored in association with the robot ID assigned to each robot 18. For example, in the RTM of the robot 18a whose robot ID is “001”, (RX 1 , RY 1 ) indicates a position, RD 1 indicates an angle, and RV 1 indicates a speed.

ここで、追跡サーバ10がロボット18から状態データを受信すると、そのロボット18に対応するRTMの位置、角度および速度が更新される。たとえば、ロボット18aから受信した状態データにおいて、位置が(x,y)、角度がd、速度がrv,lvであれば、ロボットID「001」のRTMにおいて、(RX,RY),RD,RVが、受信した状態データの数値に更新される。なお、速度RVは、rvおよびrvに基づいて算出された速度に更新される。 Here, when the tracking server 10 receives the state data from the robot 18, the position, angle and speed of the RTM corresponding to the robot 18 are updated. For example, in the state data received from the robot 18a, if the position is (x 1 , y 1 ), the angle is d 1 , and the velocities are rv 1 and lv 1 , then in the RTM with the robot ID “001”, (RX 1 , RY 1 ), RD 1 , RV 1 are updated to the values of the received status data. The speed RV 1 is updated to a speed calculated based on rv 1 and rv 1 .

ところが、ロボット18の車輪32は、ロボット18が停止したり、曲がったりする度に、地面に対して僅かに滑るため、車輪32の回転から求める位置および角度と、実際の位置および角度とに誤差が生じる。そして、ロボット18が移動するにつれて、その誤差は増大するため、ロボット18が移動するにつれて、状態データに含まれる位置データおよび角度データの信頼性は低くなる。そのため、ロボット18が出力する状態データだけに基づいて、そのロボット18に対するRTMを更新すると、RTMが正しいロボット18の状態(位置、角度および速度)を示せなくなってしまう。   However, the wheel 32 of the robot 18 slips slightly with respect to the ground each time the robot 18 stops or bends, so there is an error between the position and angle determined from the rotation of the wheel 32 and the actual position and angle. Occurs. Since the error increases as the robot 18 moves, the reliability of the position data and angle data included in the state data decreases as the robot 18 moves. Therefore, if the RTM for the robot 18 is updated based only on the state data output by the robot 18, the RTM cannot indicate the correct state (position, angle, and speed) of the robot 18.

そこで、本実施例では、検出領域F内で検出された実体Eと検出領域F内を移動するロボット18とを関連付け、LRF12を利用して検出された実体Eの位置データおよび関連付けられたロボット18の状態データに基づいてRTMを更新する。これにより、各RTMは、ロボット18の正しい状態を示すことができるようになる。   Therefore, in this embodiment, the entity E detected in the detection region F is associated with the robot 18 moving in the detection region F, and the position data of the entity E detected using the LRF 12 and the associated robot 18 are detected. The RTM is updated based on the state data. As a result, each RTM can indicate the correct state of the robot 18.

まず、ロボット18と実体Eとの関連付けについて説明する。本願発明では、実体Eおよびロボット18の1秒毎の移動距離、つまり速度に着目する。なお、各実体Eおよびロボット18aの速度は、三平方の定理に基づいて、或る時刻の座標と1秒後の座標とから距離(mm)を求めることで、速度(mm/s)を求めることができる。   First, the association between the robot 18 and the entity E will be described. In the present invention, attention is paid to the moving distance per second of the entity E and the robot 18, that is, the speed. Note that the speed of each entity E and the robot 18a is obtained by obtaining a distance (mm) from a coordinate at a certain time and a coordinate after one second based on the three-square theorem. be able to.

図10の運動履歴グラフは、縦軸に距離(mm)をとり、横軸に時間(秒:s)をとるグラフである。そして、運動履歴グラフは、実体Ea−実体Edの15秒間の速度の変化と、ロボット18aの速度の変化とを示す。この運動履歴グラフにおいて、実体Ea、実体Eb、実体Ecおよび実体Edの速度に対応するグラフは、実線La、実線Lb、実線Lcおよび実線Ldで示される。また、ロボット18aの速度に対応するグラフは点線DLで示される。   The exercise history graph of FIG. 10 is a graph in which distance (mm) is taken on the vertical axis and time (seconds: s) is taken on the horizontal axis. The exercise history graph shows a change in the speed of the entity Ea-entity Ed for 15 seconds and a change in the speed of the robot 18a. In this movement history graph, graphs corresponding to the speed of the entity Ea, the entity Eb, the entity Ec, and the entity Ed are indicated by a solid line La, a solid line Lb, a solid line Lc, and a solid line Ld. A graph corresponding to the speed of the robot 18a is indicated by a dotted line DL.

たとえば、運動履歴グラフからは、点線DL(ロボット18aの速度)の変化は、実線La(実体Eaの速度)、実線Lc(実体Eaの速度)および実線Ld(実体Eaの速度)の変化とは異なっているが、実線Lb(実体Ebの速度)の変化とは類似していることが分かる。   For example, from the motion history graph, changes in dotted line DL (speed of robot 18a) are changes in solid line La (speed of entity Ea), solid line Lc (speed of entity Ea), and solid line Ld (speed of entity Ea). Although different, it can be seen that the change in the solid line Lb (the speed of the entity Eb) is similar.

そこで、ロボット18aの速度と各実体Eの速度とのRMS(Root Mean Square:二乗平均)誤差を、以下の数3に示す式に基づいて求めると、図11に示すRMS誤差グラフを求めることができる。なお、本実施例におけるRMS誤差は、RMS速度差と言う場合もある。   Therefore, when an RMS (Root Mean Square) error between the speed of the robot 18a and the speed of each entity E is obtained based on the following equation (3), an RMS error graph shown in FIG. 11 can be obtained. it can. Note that the RMS error in this embodiment may be referred to as an RMS speed difference.

[数3]

Figure 0005493097
[Equation 3]

Figure 0005493097

図11を参照して、RMS誤差グラフは、縦軸がRMS誤差、横軸が実体IDのグラフであり、各RMS誤差は数3のRTを15(秒)として算出されている。まず、RMS誤差グラフにおいて、実体Ea、実体Ecおよび実体EdのRMS誤差に着目すると、実体IDが「001」の実体Eaとロボット18aとのRMS誤差は330mmである。また、実体IDが「003」の実体Ecとロボット18aとのRMS誤差は500mmであり、実体IDが「004」の実体Edとロボット18aとのRMS誤差は600mmである。これに対して、実体IDが「002」の実体Ebとロボット18aとのRMS誤差は30mmである。つまり、速度の変化が類似するロボット18aと実体EbとのRMS誤差は、他の実体Ea,Ec,EdとのRMS誤差に比べて小さいことが分かる。   Referring to FIG. 11, the RMS error graph is a graph in which the vertical axis represents the RMS error and the horizontal axis represents the entity ID, and each RMS error is calculated with RT of Equation 3 as 15 (seconds). First, in the RMS error graph, focusing on the RMS errors of the entity Ea, the entity Ec, and the entity Ed, the RMS error between the entity Ea having the entity ID “001” and the robot 18a is 330 mm. The RMS error between the entity Ec with the entity ID “003” and the robot 18a is 500 mm, and the RMS error between the entity Ed with the entity ID “004” and the robot 18a is 600 mm. On the other hand, the RMS error between the entity Eb having the entity ID “002” and the robot 18a is 30 mm. That is, it can be seen that the RMS error between the robot 18a and the entity Eb having similar speed changes is smaller than the RMS error between the other entities Ea, Ec, and Ed.

そのため、本実施例では、或るロボット18に対して、RMS誤差、つまりRMS速度差(第1速度差)が350mm/s(第1所定速度)以下であり、かつ現在の速度差が350mm/s以下の実体Eが1つだけであれば、或るロボット18とその実体Eとを関連付ける。   Therefore, in this embodiment, an RMS error, that is, an RMS speed difference (first speed difference) is 350 mm / s (first predetermined speed) or less and a current speed difference is 350 mm / If there is only one entity E below s, a certain robot 18 is associated with that entity E.

たとえば、図11を参照して、ロボット18aにおいて、RMS速度差が350mm/s以下の実体Eは、実体Eaおよび実体Ebである。さらに、図10を参照して、15秒の時点を現在の速度として考えると、現在の速度差が350mm/s以下の実体Eは、実体Ebだけである。そのため、このような場合にはロボット18aと実体Ebとが関連付けられる。そして、プロセッサ20は、各ロボット18に対して上述した判断を行うことで、他のロボット18と他の実体Eとを関連付ける。   For example, referring to FIG. 11, in robot 18a, entity E having an RMS speed difference of 350 mm / s or less is entity Ea and entity Eb. Furthermore, with reference to FIG. 10, when the time of 15 seconds is considered as the current speed, the entity E whose current speed difference is 350 mm / s or less is only the entity Eb. Therefore, in such a case, the robot 18a and the entity Eb are associated with each other. Then, the processor 20 associates the other robot 18 with the other entity E by making the above-described determination with respect to each robot 18.

また、プロセッサ20が上述した判断を実行する際には、図12に示す追跡実体リストを用いる。図12を参照して、追跡実体リストは、実体IDおよびフラグの列から構成されている。そして、フラグの列には、先述した条件を満たしていれば「1」が設定され、満たしていなければ「0」が設定される。   When the processor 20 performs the above-described determination, the tracking entity list shown in FIG. 12 is used. Referring to FIG. 12, the tracking entity list includes an entity ID and a flag column. In the flag column, “1” is set if the above-described conditions are satisfied, and “0” is set if the conditions are not satisfied.

たとえば、プロセッサ20は、ロボット18aに対して、実体E毎に条件を満たすか否かを判断し、その判断結果をフラグの列に記録する。そして、全ての実体Eに対して判断が終了すれば、プロセッサ20は、追跡実体リストのフラグの列において「1」が設定された実体IDが1つだけであるか否かを判断する。このとき、フラグが「1」に設定された実体IDが「002」、つまり実体Ebだけであれば、プロセッサ20はロボット18aと実体Ebとを関連付ける。   For example, the processor 20 determines whether or not the condition is satisfied for each entity E with respect to the robot 18a, and records the determination result in a flag column. When the determination is completed for all entities E, the processor 20 determines whether or not there is only one entity ID for which “1” is set in the flag column of the tracking entity list. At this time, if the entity ID with the flag set to “1” is “002”, that is, only the entity Eb, the processor 20 associates the robot 18a with the entity Eb.

また、プロセッサ20は、関連付けた結果を図13に示す関連付テーブルに記録する。関連付けテーブルは、ロボットIDを示す列と実体IDを示す列とから構成される。たとえば、プロセッサ20は、関連付テーブルにおいて、ロボット18aのロボットID「001」に対して、実体Ebの実体ID「002」を設定する。   Further, the processor 20 records the association result in the association table shown in FIG. The association table includes a column indicating the robot ID and a column indicating the entity ID. For example, the processor 20 sets the entity ID “002” of the entity Eb for the robot ID “001” of the robot 18a in the association table.

本実施例では、このような処理を経てロボット18と実体Eとを関連付ける処理を、「グローバル関連付処理」と言う。なお、上記説明では、簡単のためにRTを15としてRSM速度差を算出していたが、実際のグローバル関連付処理では、RTが300に設定される。   In the present embodiment, the process of associating the robot 18 with the entity E through such a process is referred to as a “global association process”. In the above description, for the sake of simplicity, the RSM speed difference is calculated by setting RT to 15, but in the actual global association processing, RT is set to 300.

次に、RTMの更新について説明する。RTMの位置は、関連付けられた実体の位置データに基づいて更新される。たとえば、ロボット18aに関連付けられた実体Ebの最新の位置データが、(30,40)であれば、ロボット18aに対応するRTMの位置は(30,40)に更新される。   Next, RTM update will be described. The location of the RTM is updated based on the location data of the associated entity. For example, if the latest position data of the entity Eb associated with the robot 18a is (30, 40), the position of the RTM corresponding to the robot 18a is updated to (30, 40).

また、RTMの角度は、実体Eの位置データおよびロボット18の状態データから、カルマンフィルタを利用して次の位置で推定される角度(推定角度)および推定角度誤差量を求めることで、更新できる。具体的には、図14を参照して、受信したロボット18の状態データから次の位置を予測し、予測された位置(予測位置)と前回位置とから予測角度を計算する。また、追跡サーバ10から現在の位置を取得し、前回位置と現在位置とから検出角度を計算する。そして、検出角度および予測角度から、観測角度Zを算出(観測)する。ただし、「Z」が下付き添え字である場合については、表現の都合上、数式以外では「k」を「Z」の添え字とせず、まとめて下付きの添え字にして記載する。以下、同様である。 The angle of the RTM can be updated by obtaining an angle (estimated angle) and an estimated angle error amount estimated at the next position using the Kalman filter from the position data of the entity E and the state data of the robot 18. Specifically, referring to FIG. 14, the next position is predicted from the received state data of robot 18, and the predicted angle is calculated from the predicted position (predicted position) and the previous position. Further, the current position is acquired from the tracking server 10, and the detection angle is calculated from the previous position and the current position. Then, the observation angle Z k is calculated (observed) from the detected angle and the predicted angle. However, when “Z k ” is a subscript, for the sake of expression, “k” is not a subscript of “Z” except for mathematical expressions, and is described as a subscript. The same applies hereinafter.

さらに、追跡サーバ10の観測には常に位置誤差量σ poが含まれている。そのため、観測角度誤差量σ Zkは、数4に従って近似することができる。 Furthermore, the position error amount σ 2 po is always included in the observation of the tracking server 10. Therefore, the observation angle error amount σ 2 Zk can be approximated according to Equation 4.

[数4]

Figure 0005493097
[Equation 4]

Figure 0005493097

ここで、数4において、変位量dsは位置履歴データにおける前回位置から現在位置までの距離であり、角度誤差量σ Zkはその変位量dsが大きい場合に小さくなる。つまり、実体Eの移動距離が大きいほど、角度誤差量σ Zkが小さくなる。 Here, in Equation 4, the displacement amount ds is the distance from the previous position to the current position in the position history data, and the angle error amount σ 2 Zk decreases when the displacement amount ds is large. That is, as the moving distance of the entity E increases, the angle error amount σ 2 Zk decreases.

また、前回の推定角度誤差量σ θ-kおよび角度誤差量σ Zkから、カルマンゲインKを数5に従って算出する。そして、そのカルマンゲインK、観測角度Zおよび前回の推定角度θ を、数6に従う式に代入することで、推定角度θ を算出できる。 Further, the Kalman gain K k is calculated from the previous estimated angle error amount σ 2 θ-k and angle error amount σ 2 Zk according to Equation 5. Then, the Kalman gain K k, the observation angle Z k and the previous estimated angle theta - the k, by substituting the equation according to Equation 6, it calculates the estimated angle theta ^ k.

ただし、「θk」が下付きの添え字である場合については、表現の都合上、数式以外では「−」を「θ」の添え字とせず、まとめて下付きの添え字にして記載する。さらに、添え字「^」は、数式では「θ」の上に付されるが、表現の都合上、数式以外では「θ」の上付き添え字として記載する。以下、同様である。 However, when “θ k” is a subscript, for reasons of expression, “−” is not a subscript of “θ” except for mathematical expressions, and is described as a subscript. To do. Further, the subscript “^” is added above “θ” in mathematical expressions, but for convenience of expression, it is described as a superscript “θ” except for mathematical expressions. The same applies hereinafter.

[数5]

Figure 0005493097
[Equation 5]

Figure 0005493097

[数6]

Figure 0005493097
[Equation 6]

Figure 0005493097

さらに、カルマンゲインK、前回の推定角度θ および時間毎のプロセスノイズσ prを数7に従う式に代入することで、推定角度誤差量σ θ^kを算出することができる。なお、本実施例ではノイズσ prを0.0001ラジアンとして計算する。 Furthermore, the Kalman gain K k, the previous estimated angle theta - By substituting the equation according to k and the number 7 the process noise sigma 2 pr hourly can calculate the estimated angle error amount σ 2 θ ^ k. In this embodiment, the noise σ 2 pr is calculated as 0.0001 radians.

[数7]

Figure 0005493097
[Equation 7]

Figure 0005493097

このようにして、推定角度θ が算出されると、現在のRTMの角度との角度差を算出して、RTMの角度を推定角度に補正し、算出した角度差を補正角度データとして記憶する。 When the estimated angle θ ^ k is calculated in this way, the angle difference from the current RTM angle is calculated, the RTM angle is corrected to the estimated angle, and the calculated angle difference is stored as corrected angle data. To do.

なお、前回値が存在しない場合、たとえば1回目の角度補正処理では、前回の推定角度θ および推定角度誤差量σ θ^kの代わりに所定値を、数5−7の数式に代入して推定角度θ および推定角度誤差量σ θ^kを算出する。また、所定値は、「0」であってもよいし、ロボット18の初期状態に応じた値であってもよい。 Incidentally, if the previous value does not exist, for example, by the first angle correction process, the previous estimated angle theta - the predetermined value in place of k and the estimated angular error amount sigma 2 theta ^ k, the formula of several 5-7 substituting Then, the estimated angle θ ^ k and the estimated angle error amount σ 2 θ ^ k are calculated. Further, the predetermined value may be “0” or a value corresponding to the initial state of the robot 18.

そして、本実施例では、ロボット18から状態データを受信(取得)したときに、追跡サーバ10はロボット18に対して記憶した補正角度データとRTMが示す位置データを、補正データとしてロボット18に送信する。そして、ロボット18は、受信した位置データおよび補正角度データに従って、自身の位置および角度を補正する。これにより、追跡サーバ10は、ロボット18を、検出領域F内において自己位置同定することができる。   In this embodiment, when the status data is received (acquired) from the robot 18, the tracking server 10 transmits the correction angle data stored in the robot 18 and the position data indicated by the RTM to the robot 18 as correction data. To do. Then, the robot 18 corrects its own position and angle according to the received position data and correction angle data. Accordingly, the tracking server 10 can identify the position of the robot 18 within the detection region F.

このように、ロボット自己位置同定システム100は、位置だけでなく、ロボット18の角度も補正することで、自己位置同定の精度を高めることができる。また、本実施例では、カルマンフィルタを用いて、推定角度θ を求めることができる。 Thus, the robot self-position identification system 100 can improve the accuracy of self-position identification by correcting not only the position but also the angle of the robot 18. In this embodiment, the estimated angle θ ^ k can be obtained using a Kalman filter.

なお、追跡サーバ10は、算出した推定角度誤差量σ θ^kを補正精度として記憶して置き、この補正精度が低い場合、つまり推定角度誤差量σ θ^kが大きい場合には、角度の補正データをロボット18に送信しない。つまり、ロボット18には、位置を補正するための補正データのみが送信される。このように、推定角度誤差量σ θ^kを補正精度として利用することで、角度の補正が可能であるかを判断できるようになる。 The tracking server 10 stores the calculated estimated angle error amount σ 2 θ ^ k as correction accuracy, and when this correction accuracy is low, that is, when the estimated angle error amount σ 2 θ ^ k is large, The angle correction data is not transmitted to the robot 18. That is, only correction data for correcting the position is transmitted to the robot 18. Thus, by using the estimated angle error amount σ 2 θ ^ k as the correction accuracy, it becomes possible to determine whether the angle can be corrected.

また、本実施例では、ロボット18と実体Eとを関連付けた後に、ローカル追跡エラーまたはグローバル追跡エラーが生じることが有る。ローカル追跡エラーは、追跡サーバ10に問題が起きたり、実体Eを追跡するパーティクルフィルタが少しの間、消えてしまったりしたときに生じる。また、グローバル追跡エラーは、特定の環境下で、ロボット18と実体Eとが誤って関連付けられたときに生じる。   In this embodiment, a local tracking error or a global tracking error may occur after associating the robot 18 with the entity E. The local tracking error occurs when a problem occurs in the tracking server 10 or the particle filter that tracks the entity E disappears for a while. Further, a global tracking error occurs when the robot 18 and the entity E are erroneously associated with each other under a specific environment.

そこで、本実施例では、ローカル追跡エラーおよびグローバル追跡エラーを除去するために、次の3つの条件のうち1つでも満たされる場合に、1組のロボット18と実体Eとの関連付けを解除する。すなわち、3つの条件は、(1)関連付けられた実体Eがすでに追跡されていない、(2)ロボット18と関連付けられた実体Eとが離れている(たとえば、2m)、(3)ロボット18の速度と関連付けられた実体Eの速度が異なる(たとえば、0.35mm/s)である。   Therefore, in this embodiment, in order to eliminate the local tracking error and the global tracking error, the association between the set of robots 18 and the entity E is canceled when at least one of the following three conditions is satisfied. That is, the three conditions are: (1) the associated entity E has not been tracked, (2) the entity E associated with the robot 18 is separated (for example, 2 m), (3) the robot 18 The speed of the entity E associated with the speed is different (for example, 0.35 mm / s).

つまり、ロボット自己位置同定システム100は、エラーの要因となるロボット18と実体Eとの関連付けを解除できる。   That is, the robot self-position identification system 100 can cancel the association between the robot 18 and the entity E that cause an error.

そして、ロボット18と実体との関連付けが解除されて、所定時間(たとえば、5秒)以内であれば、追跡サーバ10は「ローカル関連付処理」を実行して、関連付けが解除されたロボット18を、他の実体Eと関連付ける。   Then, if the association between the robot 18 and the entity is released and within a predetermined time (for example, 5 seconds), the tracking server 10 executes the “local association process” to determine the robot 18 that has been released from the association. Associate with other entity E.

ローカル関連付処理は、RMS速度差(第2速度差)が350mm/s(第2所定速度)以下であり、かつ現在の速度差が350mm/s以下であり、かつロボット18と実体Eとの距離が1m(所定距離)以下の実体Eが複数存在していれば、ロボット18と最も近い実体Eが、ロボット18と関連付けられる。   In the local association process, the RMS speed difference (second speed difference) is 350 mm / s (second predetermined speed) or less, the current speed difference is 350 mm / s or less, and the robot 18 and the entity E If there are a plurality of entities E having a distance of 1 m (predetermined distance) or less, the entity E closest to the robot 18 is associated with the robot 18.

また、ローカル関連付処理は、数3に示すRTを5(秒)として計算するため、先述したグローバル関連付け処理に比べて処理の速度が速い。以下、関連付けの解除およびローカル関連付け処理について、具体例を示して説明する。   Further, since the local association processing calculates RT shown in Equation 3 as 5 (seconds), the processing speed is faster than the global association processing described above. Hereinafter, the cancellation of the association and the local association processing will be described with a specific example.

図15(A)は、人間とロボット18との位置関係を示す図解図である。また、図15(A)に示す状態では、グローバル関連付処理が実行されていない。検出領域F内において、ロボット18は人間に対してコミュニケーション行動を行っている。このとき、追跡サーバ10は、(200,300)の位置でロボット18を検出し、(250,300)の位置で人間を検出する。そして、ロボット18は、位置データ(240,300)および速度データ(0mm/s)を含む、状態データを出力する。   FIG. 15A is an illustrative view showing a positional relationship between a human and the robot 18. Further, in the state shown in FIG. 15A, the global association process is not executed. In the detection area F, the robot 18 performs a communication action on a human. At this time, the tracking server 10 detects the robot 18 at the position (200, 300) and detects a human at the position (250, 300). Then, the robot 18 outputs state data including position data (240, 300) and speed data (0 mm / s).

この状態でグローバル関連付処理が実行されると、図15(B)に示すように、人間に対応する実体Eとロボット18とが誤って関連付けられる。つまり、コミュニケーション行動が行われていれば、ロボット18と人間とは動かないため、停止している人間またはロボット18が他に存在しなければ、図15(B)に示すように、人間に対応する実体Eとロボット18とが誤って関連付けられる。そして、ロボット18におけるRTMの位置は、人間の位置(250,300)に補正される。   When the global association process is executed in this state, as shown in FIG. 15B, the entity E corresponding to the human and the robot 18 are erroneously associated. In other words, if the communication action is performed, the robot 18 and the human do not move. Therefore, if there is no other human or the robot 18 that is stopped, as shown in FIG. The entity E and the robot 18 are associated with each other by mistake. The position of the RTM in the robot 18 is corrected to the human position (250, 300).

ところが、コミュニケーション行動が終了して、人間がロボット18の前から立ち去ると、図15(C)に示すような状態になる。つまり、ロボット18が出力する状態データは位置データが(250,300)となるが、人間に対応する実体Eの位置データが(500,300)となり、RTMの位置と人間の位置とで、距離が250cm(=500−250)離れていることなる。このとき、上記した関連付け解除の条件(2)を満たすことになるため、人間に対応する実体Eとロボット18との関連付けは解除される。   However, when the communication action is finished and the person leaves from the front of the robot 18, the state shown in FIG. In other words, the position data of the state data output by the robot 18 is (250, 300), but the position data of the entity E corresponding to the human is (500, 300), and the distance between the RTM position and the human position is Is 250 cm (= 500-250) away. At this time, since the condition (2) for releasing the association is satisfied, the association between the entity E corresponding to the human and the robot 18 is released.

そして、関連付けが解除され、所定時間以内であれば、ローカル関連付処理が実行される。たとえば、図15(C)に示す状態では、ロボット18に対応する実体Eがローカル関連付けの条件(1)−(3)を満たすため、その実体Eとロボット18とが正しく関連付けられる。このように、関連付けが解除されて間もなければ、ロボット18と実体Eとを容易に関連付け直すことができる。   Then, if the association is released and within a predetermined time, the local association process is executed. For example, in the state shown in FIG. 15C, the entity E corresponding to the robot 18 satisfies the local association conditions (1) to (3), so that the entity E and the robot 18 are correctly associated. In this way, the robot 18 and the entity E can be easily re-associated as soon as the association is released.

また、ローカル関連付処理を実行しても、5秒以内にロボット18と実体Eとを関連付けられなければ、グローバル関連付処理が実行される。つまり、関連付けが解除されて所定時間が経過したとしても、ロボット18と実体Eとを関連付け直すことができる。   Further, even if the local association process is executed, if the robot 18 and the entity E cannot be associated within 5 seconds, the global association process is executed. That is, even if the association is canceled and a predetermined time has elapsed, the robot 18 and the entity E can be associated again.

図16は、図2に示すメモリ22のメモリマップ300の一例を示す図解図である。図16に示すように、メモリ22はプログラム記憶領域302およびデータ記憶領域304を含む。プログラム記憶領域302には、追跡サーバ10を動作させるためのプログラムとして、通信プログラム312および補正プログラム314などが記憶される。なお、通信プログラム312および補正プログラム314などの処理によって、ローカライゼーション機能が有効になる。   FIG. 16 is an illustrative view showing one example of a memory map 300 of the memory 22 shown in FIG. As shown in FIG. 16, the memory 22 includes a program storage area 302 and a data storage area 304. The program storage area 302 stores a communication program 312 and a correction program 314 as programs for operating the tracking server 10. Note that the localization function is enabled by processing such as the communication program 312 and the correction program 314.

通信プログラム312は、ロボット18から状態データを受信し、補正データをロボット18に送信するためのプログラムである。補正プログラム314は、RTMデータを補正するためのプログラムであり、追跡プログラム314a、関連付解除プログラム314b、関連付プログラム314cおよび角度補正プログラム314dのサブルーチンを含む。   The communication program 312 is a program for receiving status data from the robot 18 and transmitting correction data to the robot 18. The correction program 314 is a program for correcting RTM data, and includes subroutines of a tracking program 314a, an association release program 314b, an association program 314c, and an angle correction program 314d.

追跡プログラム314aは、パーティクルフィルタの尤度を更新し、実体Eの位置を検出するためのプログラムである。関連付解除プログラム314bは、ロボット18と実体Eとの関連付けを解除するためのプログラムである。関連付プログラム314cは、ロボット18と実体Eとを関連付けるためのプログラムであり、さらにローカル関連付プログラム316およびグローバル関連付プログラム318のサブルーチンを含む。そして、角度補正プログラム314dは、上述したカルマンフィルタによって角度を推定し、角度の補正データを求めるためのプログラムである。   The tracking program 314a is a program for updating the likelihood of the particle filter and detecting the position of the entity E. The association release program 314b is a program for releasing the association between the robot 18 and the entity E. The association program 314c is a program for associating the robot 18 with the entity E, and further includes subroutines of a local association program 316 and a global association program 318. The angle correction program 314d is a program for estimating the angle using the above-described Kalman filter and obtaining angle correction data.

なお、図示は省略するが、追跡サーバ10を動作させるためのプログラムとしては、関連付けなどが解除されたときに時間をカウントするプログラム、追跡サーバ10とロボット18との時刻を同期するためのプログラムなどを含む。   Although not shown in the drawings, the program for operating the tracking server 10 includes a program for counting time when the association is released, a program for synchronizing the time between the tracking server 10 and the robot 18, and the like. including.

また、図17を参照して、データ記憶領域304には、LRFバッファ330、位置履歴バッファ332、状態履歴バッファ334、追跡実体リストバッファ336、補正角度バッファ338、補正精度バッファ340および前回値バッファ342が設けられる。また、データ記憶領域340には、関連付テーブルデータ344およびRTMデータ346が記憶されるとともに、初回フラグ348、初期起動カウンタ350および解除カウンタ352も設けられる。   Referring to FIG. 17, the data storage area 304 includes an LRF buffer 330, a position history buffer 332, a state history buffer 334, a tracking entity list buffer 336, a correction angle buffer 338, a correction accuracy buffer 340, and a previous value buffer 342. Is provided. The data storage area 340 stores association table data 344 and RTM data 346, and an initial flag 348, an initial activation counter 350, and a release counter 352 are also provided.

LRFバッファ330は、各LRF12によって計測された距離データが一時記憶されるバッファである。位置履歴バッファ332は、図7に示す位置履歴データが一時的に記憶されるバッファである。状態履歴バッファ334は、図8に示す状態履歴データが一時的に記憶されるバッファである。追跡実体リストバッファ336は、図12に示す追跡実体リストのデータが一時的に記憶されるバッファである。補正角度バッファ338は、推定角度θ とRTMの角度との角度差が、補正角度データとして一時的に記憶されるバッファである。補正精度バッファ340は、推定角度誤差量σ θ^kを補正精度データとして一時的に記憶するためのバッファである。前回値バッファ342は、角度補正処理で算出された推定角度θ および推定角度誤差量σ θ^kを、前回の推定角度θ および推定角度誤差量σ θ^kとして一時的に記憶するためのバッファである。 The LRF buffer 330 is a buffer in which distance data measured by each LRF 12 is temporarily stored. The position history buffer 332 is a buffer in which the position history data shown in FIG. 7 is temporarily stored. The state history buffer 334 is a buffer in which the state history data shown in FIG. 8 is temporarily stored. The tracking entity list buffer 336 is a buffer in which data of the tracking entity list shown in FIG. 12 is temporarily stored. The correction angle buffer 338 is a buffer in which the angle difference between the estimated angle θ ^ k and the RTM angle is temporarily stored as correction angle data. The correction accuracy buffer 340 is a buffer for temporarily storing the estimated angle error amount σ 2 θ ^ k as correction accuracy data. Previous value buffer 342, the estimated angle theta ^ k and the estimated angular error amount sigma 2 theta ^ k calculated by the angle correction processing, the previous estimated angle theta - temporarily as k and the estimated angular error amount sigma 2 theta ^ k This is a buffer for storing data.

関連付けテーブルデータ344は、図13に示す関連付テーブルのデータである。RTMデータ346は、図9に示すように、各ロボット18に対応する複数のRTMから構成されるデータである。   The association table data 344 is data of the association table shown in FIG. As shown in FIG. 9, the RTM data 346 is data composed of a plurality of RTMs corresponding to each robot 18.

初回フラグ348は、追跡サーバ10が実行されてから一定時間が経過したか否かを判断するためのフラグである。たとえば初回フラグ348は1ビットのレジスタで構成される。初回フラグ348がオン(成立)されると、レジスタにはデータ値「1」が設定される。一方、初回フラグ348がオフ(不成立)されると、レジスタにはデータ値「0」が設定される。また、初回フラグ348は、追跡サーバ10が起動されるとオンになり、追跡サーバ10が起動してから一定時間が経過するとオフになる。   The initial flag 348 is a flag for determining whether or not a certain time has elapsed since the tracking server 10 was executed. For example, the initial flag 348 is composed of a 1-bit register. When the initial flag 348 is turned on (established), a data value “1” is set in the register. On the other hand, when the initial flag 348 is turned off (not established), a data value “0” is set in the register. The initial flag 348 is turned on when the tracking server 10 is activated, and turned off when a predetermined time has elapsed since the activation of the tracking server 10.

初期起動カウンタ350は、追跡サーバ10が起動してから一定時間が経過するまで時間をカウントするためのカウンタである。解除カウンタ352は、ロボット18と実体とEとの関連付けが解除されてからの時間をカウントするためのカウンタである。   The initial activation counter 350 is a counter for counting time until a predetermined time elapses after the tracking server 10 is activated. The release counter 352 is a counter for counting the time since the association between the robot 18, the entity, and E is released.

なお、図示は省略するが、データ記憶領域304には、遠隔操作装置14および計画サーバ16とのデータ通信の結果を一時的に記憶するバッファや、カルマンフィルタの計算結果が一時的に記憶されるバッファなどが設けられると共に、追跡サーバ10の動作に必要な他のカウンタやフラグなども設けられる。   Although not shown, the data storage area 304 temporarily stores data communication results between the remote control device 14 and the plan server 16 and a buffer that temporarily stores Kalman filter calculation results. And other counters and flags necessary for the operation of the tracking server 10 are also provided.

以下、追跡サーバ10によって実行される本願発明のフロー図について説明する。また、図18および図19のフロー図は、通信プログラム312による処理を示し、図20のフロー図は補正プログラム314による処理を示す。また、図21および図22のフロー図は追跡プログラム314aによる処理を示し、図23のフロー図は関連付解除プログラム314bによる処理を示す。さらに、図24のフロー図は関連付プログラム314cによる処理を示し、図25のフロー図はローカル関連付プログラム316による処理を示し、図26のフロー図はグローバル関連付プログラム318による処理を示し、図27のフロー図は角度補正プログラム314dによる処理を示す。   Hereinafter, a flowchart of the present invention executed by the tracking server 10 will be described. 18 and 19 show processing by the communication program 312, and the flowchart in FIG. 20 shows processing by the correction program 314. 21 and 22 show processing by the tracking program 314a, and the flowchart of FIG. 23 shows processing by the association release program 314b. Further, the flowchart of FIG. 24 shows processing by the association program 314c, the flowchart of FIG. 25 shows processing by the local association program 316, the flowchart of FIG. 26 shows processing by the global association program 318, The flowchart of 27 shows the processing by the angle correction program 314d.

図18を参照して、たとえば、追跡サーバ10の電源がオンにされると、通信処理が実行される。そして、プロセッサ20は、ステップS1では各ロボット18との通信を確立する。たとえば、検出領域F内にロボット18a−18cが存在していれば、それらのロボット18との通信を確立する。続いて、ステップS3では、通信を確立しているロボット18の数を変数Rnに設定する。たとえば、3台のロボット18(18a,18b,18c)との通信が確立されていれば、変数Rnには「3」が設定される。なお、変数Rnは、通信が確立されているロボット18の総数を示す変数として定義されている。続いて、ステップS5では、Rn個のRTMを作成する。たとえば、変数Rnに「3」が設定されていれば、3つのRTMを作成する。つまり、RTMデータ346には、作成された3つのRTMが含まれる。   Referring to FIG. 18, for example, when the tracking server 10 is powered on, a communication process is executed. Then, the processor 20 establishes communication with each robot 18 in step S1. For example, if the robots 18a to 18c exist in the detection area F, communication with those robots 18 is established. Subsequently, in step S3, the number of robots 18 that have established communication is set in the variable Rn. For example, if communication with three robots 18 (18a, 18b, 18c) is established, “3” is set in the variable Rn. The variable Rn is defined as a variable indicating the total number of robots 18 with which communication has been established. Subsequently, in step S5, Rn RTMs are created. For example, if “3” is set in the variable Rn, three RTMs are created. That is, the RTM data 346 includes three created RTMs.

続いて、図19を参照して、ステップS7では、ロボット18が出力した状態データを取得する。たとえば、ロボット18aが状態データを発信していれば、その状態データを受信する。続いて、ステップS9では、ロボットIDに基づいて状態データをバッファに記憶する。たとえば、ロボットIDが「001」である、ロボット18aの状態データを取得した場合、その状態データを状態履歴バッファ334に記憶する。また、ロボット18aの状態データは、ロボット18aの状態履歴データ(図8参照)に追加される。なお、ステップS9の処理を実行するプロセッサ20は、状態データ記憶手段として機能する。   Subsequently, referring to FIG. 19, in step S7, the state data output by the robot 18 is acquired. For example, if the robot 18a transmits state data, the state data is received. Subsequently, in step S9, the state data is stored in the buffer based on the robot ID. For example, when the status data of the robot 18 a whose robot ID is “001” is acquired, the status data is stored in the status history buffer 334. Further, the state data of the robot 18a is added to the state history data of the robot 18a (see FIG. 8). The processor 20 that executes the process of step S9 functions as a state data storage unit.

続いて、ステップS11では、補正できるか否かを判断する。つまり、ロボット18と実体Eとが関連付けられているか否かを判断する。また、本実施例では、追跡サーバ10は起動してから一定時間が経過しなければ、ロボット18と実体Eとをまだ関連付けることができない。そのため、ステップS11では、起動してから一定時間が経過したことを示す初回フラグ348がオフであるか否かを判断する。ステップS11で“NO”であれば、つまり追跡サーバ10が起動してから一定時間が経過していなければ、ステップS17に進む。   Subsequently, in step S11, it is determined whether or not correction is possible. That is, it is determined whether the robot 18 and the entity E are associated with each other. Further, in this embodiment, the robot 18 and the entity E cannot be associated with each other unless a certain period of time has elapsed since the tracking server 10 was activated. Therefore, in step S11, it is determined whether or not the initial flag 348 indicating that a certain time has elapsed since the start is off. If “NO” in the step S11, that is, if a predetermined time has not elapsed since the tracking server 10 is started, the process proceeds to a step S17.

また、ステップS11で“YES”であれば、つまり追跡サーバ10が起動してから一定時間が経過し、ロボット18と実体Eとが関連付けられていれば、ステップS13で補正精度が高いか否かを判断する。つまり、補正精度バッファ340に記憶された推定角度誤差量σ θ^kが閾値(たとえば、2度)以下であるか否かを判断する。ここで、ステップS13で“NO”であれば、つまり補正精度バッファ340に一時記憶された推定角度誤差量σ θ^kが閾値以下でなければ、ステップS15でRTMの位置データをロボットIDに基づいて送信する。たとえば、ロボットID「001」のロボット18aから状態データを取得していれば、同じロボットIDのロボット18aに対して、RTMの位置データを送信する。続いて、ステップS17では、ロボットIDに基づいてRTMを更新する。つまり、取得された状態データに含まれる角度データに基づいて、RTMの角度および速度を更新する。たとえば、ロボット18aの状態データにおいて、角度データが30度であれば、ロボット18aのRTMの角度が30度に更新される。 If “YES” in the step S11, that is, if a predetermined time has elapsed since the tracking server 10 is started and the robot 18 and the entity E are associated with each other, whether or not the correction accuracy is high in a step S13. Judging. That is, it is determined whether or not the estimated angle error amount σ 2 θ ^ k stored in the correction accuracy buffer 340 is equal to or less than a threshold value (for example, 2 degrees). If “NO” in the step S13, that is, if the estimated angle error amount σ 2 θ ^ k temporarily stored in the correction accuracy buffer 340 is not less than or equal to the threshold value, the RTM position data is converted into the robot ID in a step S15. Send based on. For example, if the state data is acquired from the robot 18a with the robot ID “001”, the RTM position data is transmitted to the robot 18a with the same robot ID. Subsequently, in step S17, the RTM is updated based on the robot ID. That is, the angle and speed of the RTM are updated based on the angle data included in the acquired state data. For example, in the state data of the robot 18a, if the angle data is 30 degrees, the RTM angle of the robot 18a is updated to 30 degrees.

また、ステップS13で“YES”であれば、つまり補正精度バッファ340に一時記憶された推定角度誤差量σ θ^kが閾値以下であれば、ステップS19でRTMの位置データおよび補正角度データをロボットIDに基づいて送信する。たとえば、状態データを受信したロボット18のロボットIDに基づいて、RTMの位置データおよび補正角度データが送信される。なお、ロボット18に送信される補正角度データは、補正角度バッファ338から読み出される。 If “YES” in the step S13, that is, if the estimated angle error amount σ 2 θ ^ k temporarily stored in the correction accuracy buffer 340 is equal to or less than the threshold value, the RTM position data and the correction angle data are obtained in a step S19. Transmit based on the robot ID. For example, RTM position data and correction angle data are transmitted based on the robot ID of the robot 18 that has received the status data. The correction angle data transmitted to the robot 18 is read from the correction angle buffer 338.

続いて、ステップS21では、取得した角度および補正角度データから現在の角度を計算する。たとえば、状態データの角度データが25度であり、補正角度データが−2度であれば、現在の角度が23度(=25−2)になる。そして、ステップS17では、RTMの角度はステップS21で計算された角度に更新される。たとえば、RTMの角度が30度であれば、ステップS21で算出された23度に更新される。   Subsequently, in step S21, the current angle is calculated from the acquired angle and correction angle data. For example, if the angle data of the state data is 25 degrees and the correction angle data is −2 degrees, the current angle is 23 degrees (= 25−2). In step S17, the RTM angle is updated to the angle calculated in step S21. For example, if the RTM angle is 30 degrees, the angle is updated to 23 degrees calculated in step S21.

なお、ステップS15またはステップS19の処理を実行するプロセッサ20は、送信手段として機能する。また、特にステップS15の処理を実行するプロセッサ20は第2送信手段として機能し、ステップS19の処理を実行するプロセッサ20は第1送信手段として機能する。   The processor 20 that executes the process of step S15 or step S19 functions as a transmission unit. In particular, the processor 20 that executes the process of step S15 functions as a second transmission unit, and the processor 20 that executes the process of step S19 functions as a first transmission unit.

ここで、ステップS11で“NO”と判断された場合には、ステップS17では、状態データに含まれる位置データ、角度データおよび速度データに基づいて、RTMの位置、角度および速度が更新される。つまり、ロボット18と実体Eとが関連付けられていない状態では、ロボット18が出力する状態データに基づいてRTMが更新される。   If “NO” is determined in step S11, the position, angle, and speed of the RTM are updated in step S17 based on the position data, angle data, and speed data included in the state data. That is, in a state where the robot 18 and the entity E are not associated with each other, the RTM is updated based on the state data output from the robot 18.

ステップS23では、各ロボット18との通信が継続しているか否かを判断する。たとえば、ロボット18a−18dとの通信が継続しているか否かを判断する。ステップS23で“NO”であれば、つまりロボット18との通信が途切れていれば、ステップS25で通信が途切れたロボットIDに基づいてRTMを削除する。たとえば、ロボットIDが「004」のロボット18dとの通信が途切れていれば、RTMデータ346を構成する、ロボットID「004」のRTMが削除される。そして、ステップS25の処理が終了すれば、ステップS3に戻る。つまり、変数Rnをディクリメントして、RTMデータ346に含まれるRTMの数と変数Rnの数値とを一致させる。   In step S23, it is determined whether or not communication with each robot 18 is continued. For example, it is determined whether or not communication with the robots 18a to 18d is continued. If “NO” in the step S23, that is, if the communication with the robot 18 is interrupted, the RTM is deleted based on the robot ID in which the communication is interrupted in a step S25. For example, if communication with the robot 18d with the robot ID “004” is interrupted, the RTM with the robot ID “004” constituting the RTM data 346 is deleted. And if the process of step S25 is complete | finished, it will return to step S3. That is, the variable Rn is decremented so that the number of RTMs included in the RTM data 346 matches the numerical value of the variable Rn.

また、ステップS23で“YES”であれば、つまり各ロボット18との通信が継続していれば、ステップS27で新しいロボット18との通信が確立されたか否かを判断する。たとえば、5台目のロボット18が検出領域Fに入ったか否かを判断する。ステップS27で“NO”であれば、つまり新たなロボット18との通信が確立されなければ、ステップS7に戻る。一方、ステップS27で“YES”であれば、たとえば5台目のロボット18との通信が確立されれば、ステップS3に戻る。つまり、変数Rnを更新して、RTMデータ346に新しいRTMを追加する。   If “YES” in the step S23, that is, if communication with each robot 18 is continued, it is determined whether or not communication with the new robot 18 is established in a step S27. For example, it is determined whether or not the fifth robot 18 has entered the detection area F. If “NO” in the step S27, that is, if communication with the new robot 18 is not established, the process returns to the step S7. On the other hand, if “YES” in the step S27, for example, if communication with the fifth robot 18 is established, the process returns to the step S3. That is, the variable Rn is updated and a new RTM is added to the RTM data 346.

図20には補正プログラム314の処理を示すフロー図が示される。たとえば、追跡サーバ10の電源がオンにされると、プロセッサ20は、ステップS41で追跡処理を実行する。この追跡処理については、図21および図22に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。   FIG. 20 is a flowchart showing the processing of the correction program 314. For example, when the power of the tracking server 10 is turned on, the processor 20 executes a tracking process in step S41. Since this tracking process will be described later with reference to the flowcharts shown in FIGS. 21 and 22, a detailed description thereof will be omitted here.

続いて、ステップS43では、1度目の処理か否かを判断する。つまり追跡サーバ10が起動してから、補正処理が実行されるのが1度目であるか否かを判断する。また、具体的には、初回フラグ348がオンであるか否かを判断する。ステップS43で“NO”であれば、つまり初回フラグ348がオフであれば、ステップS47に進む。一方、ステップS43で“YES”であれば、つまり初回フラグ348がオンであれば、ステップS45で一定時間が経過したか否かを判断する。たとえば、一定時間は300秒であり、ステップS45では追跡サーバ10が起動してから300秒経過したか否かを判断する。また、具体的には、追跡サーバ10が起動してからの時間をカウントする初期起動カウンタ350の値が300秒を示す値を超えているか否かを判断する。   Subsequently, in step S43, it is determined whether or not the process is the first time. That is, it is determined whether or not correction processing is executed for the first time after the tracking server 10 is activated. Specifically, it is determined whether or not the initial flag 348 is on. If “NO” in the step S43, that is, if the initial flag 348 is turned off, the process proceeds to a step S47. On the other hand, if “YES” in the step S43, that is, if the initial flag 348 is turned on, it is determined whether or not a predetermined time has passed in a step S45. For example, the predetermined time is 300 seconds, and in step S45, it is determined whether or not 300 seconds have elapsed since the tracking server 10 was activated. Specifically, it is determined whether or not the value of the initial activation counter 350 that counts the time since the activation of the tracking server 10 exceeds a value indicating 300 seconds.

ステップS45で“NO”であれば、つまり追跡サーバ10が起動してから一定時間が経過していなければ、ステップS41に戻る。つまり、位置データおよび状態データが記憶されるまでは、ロボット18と実体Eとを関連付けることができないため、ステップS41−S45の処理が繰り返し実行される。   If “NO” in the step S45, that is, if a predetermined time has not elapsed since the tracking server 10 is started, the process returns to the step S41. That is, since the robot 18 cannot be associated with the entity E until the position data and the state data are stored, the processes of steps S41 to S45 are repeatedly executed.

また、ステップS45で“YES”であれば、つまり追跡サーバ10が起動してから一定時間が経過すれば、初回フラグ348をオフにしてステップS47で関連付解除処理を実行する。なお、ステップS47の関連付解除処理については、図23に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。また、1度目の処理では、関連付解除処理が実行されたとしても、ロボット18と実体Eとの関連付けが解除されることはない。   If “YES” in the step S45, that is, if a certain time has elapsed since the tracking server 10 is started, the initial flag 348 is turned off and the association releasing process is executed in a step S47. Note that the association release processing in step S47 will be described later with reference to the flowchart shown in FIG. 23, and thus detailed description thereof is omitted here. In the first process, even if the association release process is executed, the association between the robot 18 and the entity E is not released.

続いて、ステップS49では関連付処理が実行される。この関連付処理については、図24に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。また、ステップS49の処理を実行するプロセッサ20は、関連付手段として機能する。   Subsequently, an association process is executed in step S49. Since this association processing will be described later with reference to the flowchart shown in FIG. 24, detailed description thereof is omitted here. The processor 20 that executes the process of step S49 functions as an association unit.

続いて、ステップS51では、変数ixを初期化する。この変数ixは、ロボットIDを指定するための変数である。そのため、変数ixが初期化されると「1」が設定される。なお、以下の説明では、ロボットIDが「ix」のロボット18は「ロボットix」と記述する。たとえば、ロボットIDが「001」のロボット18は「ロボット」と記述される。これは、図面でも同じである。 Subsequently, in step S51, the variable ix is initialized. This variable ix is a variable for designating the robot ID. Therefore, when the variable ix is initialized, “1” is set. In the following description, the robot 18 with the robot ID “ ix ” is described as “robot ix ”. For example, the robot 18 with the robot ID “001” is described as “Robot 1 ”. The same applies to the drawings.

続いて、ステップS53では、ロボットixに対応するRTMの位置を更新する。たとえば、変数ixが「1」であれば、ロボットIDが「001」のロボット18aのRTMの位置が更新される。また、更新するための位置データは、位置履歴バッファ332に記憶される、ロボットの位置履歴データから読み出される。従って、ロボットの位置履歴データにおいて最新の位置が(300,400)であれば、ロボットのRTMの位置が(300,400)に更新される。続いて、ステップS55では、角度補正処理を実行する。なお、この角度補正処理については、図27に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。 Subsequently, in step S53, the position of the RTM corresponding to the robot ix is updated. For example, if the variable ix is “1”, the RTM position of the robot 18a with the robot ID “001” is updated. Also, the position data for updating is read from the position history data of the robot 1 stored in the position history buffer 332. Therefore, if the latest position in the position history data of the robot 1 is (300, 400), the RTM position of the robot 1 is updated to (300, 400). Subsequently, in step S55, an angle correction process is executed. Since this angle correction processing will be described later with reference to the flowchart shown in FIG. 27, detailed description thereof is omitted here.

続いて、ステップS57では、変数ixをインクリメントする。つまり、次のロボットIDを指定するために、変数ixはインクリメントされる。続いて、ステップS59では、変数ixが変数Rnより大きいか否かを判断する。つまり、ロボット18の総数を示す変数Rnよりも、ロボットIDを指定する変数ixが大きいか否かを判断する。これにより、全てのロボット18に対して、RTMの位置および角度が更新されたか否かを判断することができる。ステップS59で“NO”であれば、つまり変数ixが変数Rn以下であれば、ステップS53に戻る。つまり、他のロボット18のRTMの位置および角度を更新するためにステップS53に戻る。一方、ステップS59で“YES”であれば、つまり変数ixが変数Rnより大きければ、ステップS41に戻る。つまり、全てのロボット18のRTMの位置および角度が更新されると、補正処理が再び実行される。   Subsequently, in step S57, the variable ix is incremented. That is, the variable ix is incremented to specify the next robot ID. Subsequently, in step S59, it is determined whether or not the variable ix is larger than the variable Rn. That is, it is determined whether or not the variable ix for specifying the robot ID is larger than the variable Rn indicating the total number of the robots 18. Thereby, it is possible to determine whether or not the RTM positions and angles have been updated for all the robots 18. If “NO” in the step S59, that is, if the variable ix is equal to or less than the variable Rn, the process returns to the step S53. That is, the process returns to step S53 in order to update the RTM position and angle of the other robot 18. On the other hand, if “YES” in the step S59, that is, if the variable ix is larger than the variable Rn, the process returns to the step S41. That is, when the RTM positions and angles of all the robots 18 are updated, the correction process is executed again.

図21には追跡プログラム314aの処理を示すフロー図が示される。プロセッサ20は、ステップS41で追跡処理が実行されると、ステップS71でLRFデータを取得する。つまり、LRFバッファ330に一時記憶される、各LRF12によって計測された距離のデータを取得する。続いて、ステップS73では、新しい実体Eを検出したか否かを判断する。たとえば、検出領域F内で、実体Ea−Edとは別の実体Eが検出されたか否かを判断する。ステップS73で“NO”であれば、つまり新たな実体Eが検出されていなければ、ステップS79に進む。一方、ステップS73で“YES”であれば、つまり検出領域F内で新たな実体Eが検出されれば、ステップS75で実体Eの数を変数Enに設定する。たとえば、検出領域F内で、4つの実体Ea,Eb,Ec,Edが検出されていれば、変数Enには「4」が設定される。なお、変数Enは、検出されている実体Eの総数を示す変数として定義されている。   FIG. 21 is a flowchart showing the processing of the tracking program 314a. When the tracking process is executed in step S41, the processor 20 acquires LRF data in step S71. That is, the distance data measured by each LRF 12 that is temporarily stored in the LRF buffer 330 is acquired. In step S73, it is determined whether a new entity E is detected. For example, it is determined whether or not an entity E different from the entities Ea-Ed is detected in the detection area F. If “NO” in the step S73, that is, if a new entity E is not detected, the process proceeds to a step S79. On the other hand, if “YES” in the step S73, that is, if a new entity E is detected in the detection region F, the number of the entities E is set to the variable En in a step S75. For example, if four entities Ea, Eb, Ec, Ed are detected in the detection area F, “4” is set to the variable En. The variable En is defined as a variable indicating the total number of detected entities E.

続いて、ステップS77では、En個の位置履歴データを作成する。たとえば、変数Enに「4」が設定されていれば、図7に示すように、位置履歴バッファ332に4つの位置履歴データが作成される。続いて、ステップS79では、変数IXを初期化する。この変数IXは、実体IDを指定するための変数である。そのため、変数IXが初期化されると「1」が設定される。なお、以下の説明では、実体IDが「IX」の実体Eは「実体IX」と記述する。たとえば、実体IDが「001」の実体Eは、「実体」と記述される。これは、図面でも同じである。 Subsequently, in step S77, En position history data are created. For example, if “4” is set in the variable En, four position history data are created in the position history buffer 332 as shown in FIG. Subsequently, in step S79, the variable IX is initialized. This variable IX is a variable for designating the entity ID. Therefore, “1” is set when the variable IX is initialized. In the following description, the entity E whose entity ID is “ IX ” is described as “entity IX ”. For example, the entity E having the entity ID “001” is described as “entity 1 ”. The same applies to the drawings.

続いて、図22を参照して、ステップS81では、実体IXにロボット18が関連付けられているか否かを判断する。たとえば、変数IXに「1」が設定されていれば、関連付けテーブルを参照し、実体IDが「001」の実体Eaにロボット18が関連付けられているか否かを判断する。ステップS81で“YES”であれば、つまり実体IXにロボッ18が関連付けられていれば、ロボット形状モデルを利用して、パーティクルフィルタの尤度を更新する。つまり、ステップS83では、ロボット18に適したモデルを使用して、数1および数2に示す式に従って、パーティクルフィルタの尤度を更新する。一方、ステップS81で“NO”であれば、つまり実体IXにロボット18が関連付けられていなければ、ステップS85で人形状モデルを利用して、パーティクルフィルタの尤度を更新する。つまり、ステップS85では、人間に適したモデルを利用して、数1および数2に示す式に従って、パーティクルフィルタの尤度を更新する。 Subsequently, referring to FIG. 22, in step S81, it is determined whether or not the robot 18 is associated with the entity IX . For example, if “1” is set in the variable IX , the association table is referenced to determine whether or not the robot 18 is associated with the entity Ea whose entity ID is “001”. If “YES” in the step S81, that is, if the robot 18 is associated with the entity IX , the likelihood of the particle filter is updated using the robot shape model. That is, in step S83, the likelihood of the particle filter is updated using a model suitable for the robot 18 according to the equations shown in Equation 1 and Equation 2. On the other hand, if “NO” in the step S81, that is, if the robot 18 is not associated with the entity IX , the likelihood of the particle filter is updated using the human shape model in a step S85. That is, in step S85, the likelihood of the particle filter is updated according to the equations shown in Equations 1 and 2 using a model suitable for humans.

続いて、ステップS87では、パーティクルの位置を更新する。つまり、ステップS83およびステップS85の処理で、算出されたパーティクルフィルタの尤度に基づいてパーティクルの位置が更新される。続いて、ステップS89では、実体IXの位置を検出する。つまり、移動したパーティクルの位置に基づいて、実体IXの位置、つまり検出領域F内の平面座標を検出する。なお、ステップS89の処理を実行するプロセッサ20は、位置検出手段として機能する。 Subsequently, in step S87, the position of the particle is updated. That is, the position of the particle is updated based on the calculated likelihood of the particle filter in the processing of step S83 and step S85. Subsequently, in step S89, the position of the entity IX is detected. That is, the position of the entity IX , that is, the plane coordinates in the detection area F is detected based on the position of the moved particle. The processor 20 that executes the process of step S89 functions as a position detection unit.

続いてステップS91では、検出された実体IXの位置をバッファに記憶する。つまり、位置データは、位置履歴バッファ332に記憶される位置履歴データにおいて、実体ID「IX」に基づいて追加される。たとえば、変数IXに「1」が設定されていれば、実体IDが「001」の位置履歴データに、実体の位置データが追加される。なお、ステップS91の処理を実行するプロセッサ20は、位置データ記憶手段として機能する。 Subsequently, in step S91, the position of the detected entity IX is stored in the buffer. That is, the position data is added based on the entity ID “IX” in the position history data stored in the position history buffer 332. For example, if “1” is set in the variable IX, the position data of the entity 1 is added to the position history data with the entity ID “001”. The processor 20 that executes the process of step S91 functions as a position data storage unit.

続いて、ステップS93では、変数IXをインクリメントする。つまり、次の実体IDを指定するために、変数IXはインクリメントされる。続いて、ステップS95では、変数IXが変数Enよりも大きいか否かを判断する。つまり、実体Eの総数を示す変数Enよりも、実体IDを指定する変数IXが大きいか否かを判断する。これにより、全ての実体Eに対して位置が検出されたか否かを判断することができる。ステップS95で“NO”であれば、つまり全ての実体Eに対して位置が検出されていなければ、ステップS81に戻る。一方、ステップS95で“YES”であれば、つまり全ての実体Eに対して位置が検出されれば、追跡処理を終了して、補正処理に戻る。   Subsequently, in step S93, the variable IX is incremented. That is, the variable IX is incremented to specify the next entity ID. Subsequently, in step S95, it is determined whether or not the variable IX is larger than the variable En. That is, it is determined whether or not the variable IX specifying the entity ID is larger than the variable En indicating the total number of entities E. Thereby, it is possible to determine whether or not positions have been detected for all entities E. If “NO” in the step S95, that is, if positions have not been detected for all the entities E, the process returns to the step S81. On the other hand, if “YES” in the step S95, that is, if positions are detected for all the entities E, the tracking process is ended and the process returns to the correction process.

図23には、関連付解除プログラム314bの処理を示すフロー図が示される。ステップS47で関連付処理が実行されると、プロセッサ20は、ステップS111でロボット18が関連付けられているか否かを判断する。つまり、関連付テーブルデータ344が読み出され、少なくとも1台のロボット18が実体Eと関連付けられているか否かを判断する。ステップS111で“NO”であれば、つまり全てのロボット18が実体Eと関連付けられていなければ、関連付解除処理を終了して、補正処理に戻る。たとえば、追跡サーバ10が起動し、ステップS49の関連付処理が一度も実行されていない状態では、ステップS111で“NO”と判断される。   FIG. 23 is a flowchart showing the processing of the association cancellation program 314b. When the association process is executed in step S47, the processor 20 determines whether or not the robot 18 is associated in step S111. That is, the association table data 344 is read, and it is determined whether or not at least one robot 18 is associated with the entity E. If “NO” in the step S111, that is, if all the robots 18 are not associated with the entity E, the association releasing process is ended, and the process returns to the correction process. For example, when the tracking server 10 is activated and the association process in step S49 has never been executed, “NO” is determined in step S111.

一方、ステップS111で“YES”であれば、つまり少なくとも1台のロボット18が実体Eと関連付けられていれば、ステップS113で関連付けられたロボット18の数を変数ARnに設定する。たとえば、実体Eと関連付けられているロボット18が3台であれば、変数ARnには「3」が設定される。また、変数ARnは、実体Eと関連付けられているロボット18の総数を示す変数として定義されている。   On the other hand, if “YES” in the step S111, that is, if at least one robot 18 is associated with the entity E, the number of the robots 18 associated in the step S113 is set to the variable ARn. For example, if there are three robots 18 associated with the entity E, “3” is set in the variable ARn. The variable ARn is defined as a variable indicating the total number of robots 18 associated with the entity E.

続いて、ステップS115では、変数Dxを初期化する。たとえば、関連付け解除処理では、関連付けられているロボット18には、第1ローカルIDが付与される。そして、変数Dxは、その第1ローカルIDを指定するための変数である。そのため、変数Dxが初期化されると、第1ローカルIDの最初のIDを示す「1」が設定されている。   Subsequently, in step S115, the variable Dx is initialized. For example, in the association cancellation process, the first local ID is assigned to the associated robot 18. The variable Dx is a variable for designating the first local ID. Therefore, when the variable Dx is initialized, “1” indicating the first ID of the first local ID is set.

なお、第1ローカルIDは、関連付解除処理が実行される毎に付与される。つまり、同じロボット18であっても、必ずしも同じ第1ローカルIDが付与されるとは限らない。また、ロボットIDと第1ローカルIDとも必ずしも一致するとは限らない。そして、変数ixと同様に、以下の説明では、第1ローカルIDが「Dx」のロボット18は、「ロボットDx」と記述する。そして、この記述は図23でも同じである。 The first local ID is given every time the association release process is executed. That is, the same first local ID is not necessarily given even for the same robot 18. Also, the robot ID and the first local ID do not necessarily match. Then, similarly to the variable ix, in the following description, the robot 18 having the first local ID “ Dx ” is described as “robot Dx ”. This description is the same in FIG.

次のステップS117では、ロボットDxと関連付けられた実体Eがまだ追跡されている否かを判断する。つまり、関連付テーブルデータ344に基づいて、ロボットDxに対応する実体Eの実体IDを読み出す。そして、位置履歴バッファ332を参照して、読み出した実体IDに対応する位置履歴データが存在するか否かを判断する。ステップS117で“NO”であれば、つまりロボットDxと関連付けられた実体Eが検出領域F内に存在していなければ、ステップS125に進む。 In the next step S117, it is determined whether or not the entity E associated with the robot Dx is still being tracked. That is, the entity ID of the entity E corresponding to the robot Dx is read based on the association table data 344. Then, with reference to the position history buffer 332, it is determined whether or not position history data corresponding to the read entity ID exists. If “NO” in the step S117, that is, if the entity E associated with the robot Dx does not exist in the detection region F, the process proceeds to a step S125.

また、ステップS117で“YES”であれば、つまりロボットDxと関連付けられた実体Eが検出領域F内に存在していれば、ステップS119で、ロボットDxと関連付けられた実体Eが離れているか否かを判断する。たとえば、ステップS117と同様、ロボットDxに対応する実体IDを読み出し、読み出した実体IDに対応する位置履歴データの最新の位置データを、位置履歴バッファ332から取得する。さらに、ロボットIDが「Dx」の状態データから最新の状態データに含まれる位置データを、状態履歴バッファ334から取得する。そして、読み出された状態データの位置データと、位置履歴データの位置データとを比較して、たとえば2m以上離れているか否かを判断する。ステップS119で“YES”であれば、つまりロボットDxと関連付けられた実体Eが離れていれば、ステップS125に進む。 If “YES” in the step S117, that is, if the entity E associated with the robot Dx exists in the detection region F, whether or not the entity E associated with the robot Dx is separated in the step S119. Determine whether. For example, as in step S117, the entity ID corresponding to the robot Dx is read, and the latest position data of the position history data corresponding to the read entity ID is acquired from the position history buffer 332. Further, the position data included in the latest state data is acquired from the state data with the robot ID “Dx” from the state history buffer 334. Then, the position data of the read state data is compared with the position data of the position history data, and it is determined whether or not, for example, it is 2 m or more away. If “YES” in the step S119, that is, if the entity E associated with the robot Dx is separated, the process proceeds to a step S125.

また、ステップS119で“NO”であれば、たとえばロボットDxと関連付けられた実体Eが2m以内に存在していれば、ステップS121でロボットDxと関連付けられた実体Eとの速度が異なるか否かを判断する。ステップS119と同様に、位置履歴データから現在の位置および1秒前の位置を取得して、実体Eの速度を算出する。また、ステップS119と同様に、状態履歴データから現在の位置および1秒前の位置を取得して、ロボットDxの速度を算出する。そして、ロボットDxの速度と、関連付けられた実体Eの速度との差が、たとえば0.35mm/s以上であるか否かを判断する。ステップS121で“YES”であれば、たとえば0.35mm/s以上の速度差があれば、ステップS125に進む。また、ステップS121で“NO”であれば、たとえば0.35mm/s以上の速度差がなければ、ステップS123でロボットDxの関連付けを維持する。たとえば、ステップS123では、ロボットDxの関連付けを解除する必要がないことを示すフラグをオンにする。そして、ステップS123の処理が終了すると、ステップS127に進む。 If “NO” in the step S119, for example, if the entity E associated with the robot Dx exists within 2 m, whether or not the speed of the entity E associated with the robot Dx in the step S121 is different. Judging. As in step S119, the current position and the position one second before are acquired from the position history data, and the speed of the entity E is calculated. Similarly to step S119, the current position and the position one second before are acquired from the state history data, and the speed of the robot Dx is calculated. Then, it is determined whether or not the difference between the speed of the robot Dx and the speed of the associated entity E is 0.35 mm / s or more, for example. If “YES” in the step S121, for example, if there is a speed difference of 0.35 mm / s or more, the process proceeds to a step S125. If “NO” in the step S121, for example, if there is no speed difference of 0.35 mm / s or more, the association of the robot Dx is maintained in a step S123. For example, in step S123, a flag indicating that it is not necessary to cancel the association of the robot Dx is turned on. Then, when the process of step S123 ends, the process proceeds to step S127.

ここで、ステップS117で“NO”、ステップS119で“YES”またはステップS121で“YES”と判断され、ステップS125の処理が実行されると、ロボットDxの関連付けを解除する。つまり、ステップS125では、関連付テーブルデータ344において、ロボットDxと関連付けられている実体IDを削除する。また、ステップS125で関連付けが解除されると、解除カウンタ352によって、関連付けが解除されてからの時間が計測される。 If “NO” is determined in step S117, “YES” is determined in step S119, or “YES” is determined in step S121, and the process of step S125 is executed, the association of the robot Dx is released. That is, in step S125, the entity ID associated with the robot Dx is deleted from the association table data 344. When the association is released in step S125, the release counter 352 measures the time after the association is released.

なお、ステップS117,S119,S121の処理を実行するプロセッサ20は判断手段として機能する。また、ステップS125の処理を実行するプロセッサ20は、解除手段として機能する。   The processor 20 that executes the processes of steps S117, S119, and S121 functions as a determination unit. Further, the processor 20 that executes the process of step S125 functions as a canceling unit.

続いて、ステップS127では、変数Dxをインクリメントする。つまり次の第1ローカルIDを指定するために、変数Dxはインクリメントされる。続いて、ステップS129では、変数Dxが変数ARnより大きいか否かを判断する。つまり、実体Eと関連付けられたロボット18の総数を示す変数ARnよりも、第1ローカルIDを指定する変数Dxが大きいか否かを判断する。これにより、実体Eと関連付けられた全てのロボット18に対して、関連付けの解除が必要であるか否かを判断することができる。   Subsequently, in step S127, the variable Dx is incremented. That is, the variable Dx is incremented to specify the next first local ID. Subsequently, in step S129, it is determined whether or not the variable Dx is larger than the variable ARn. That is, it is determined whether or not the variable Dx specifying the first local ID is larger than the variable ARn indicating the total number of robots 18 associated with the entity E. Thereby, it is possible to determine whether or not it is necessary to cancel the association with respect to all the robots 18 associated with the entity E.

ステップS129で“NO”であれば、つまり変数Dxが変数ARn以下であれば、ステップS117に戻る。つまり、他のロボット18において、関連付けの解除が必要であるか否かを判断するためにステップS117に戻る。一方、ステップS129で“YES”であれば、つまり変数Dxが変数ARnより大きければ、関連付解除処理を終了して、補正処理に戻る。   If “NO” in the step S129, that is, if the variable Dx is equal to or less than the variable ARn, the process returns to the step S117. That is, the process returns to step S117 in order to determine whether or not the other robot 18 needs to cancel the association. On the other hand, if “YES” in the step S129, that is, if the variable Dx is larger than the variable ARn, the association releasing process is ended, and the process returns to the correction process.

なお、解除カウンタ352は、関連付けが解除される度にリセットされて、時間が計測される。たとえば、関連付解除処理において、2つのロボット18の関連付けが解除された場合には、後に関連付けが解除されたロボット18に対してのみ、関連付けが解除されてからの時間が計測される。   The release counter 352 is reset every time the association is released, and the time is measured. For example, when the association between the two robots 18 is released in the association release process, the time after the association is released is measured only for the robot 18 that has been released later.

図24には関連付プログラム314cの処理を示すフロー図が示される。ステップS49で関連付処理が実行されると、プロセッサ20は、ステップS151で関連付けられていないロボット18があるか否かを判断する。つまり、関連付テーブルデータ344が読み出され、実体Eが関連付けられていないロボット18があるか否かを判断する。ステップS151で“NO”であれば、つまり全てのロボット18が実体Eと関連付けられていれば、関連付処理を終了して、補正処理に戻る。   FIG. 24 is a flowchart showing the processing of the association program 314c. When the association process is executed in step S49, the processor 20 determines whether there is a robot 18 that is not associated in step S151. That is, the association table data 344 is read, and it is determined whether there is a robot 18 that is not associated with the entity E. If “NO” in the step S151, that is, if all the robots 18 are associated with the entity E, the associating process is ended and the process returns to the correcting process.

一方、ステップS151で“YES”であれば、つまり実体Eと関連付けられていないロボット18があれば、ステップS153で関連付けられていないロボット18の数を変数DRnに設定する。たとえば、実体Eと関連付けが解除されたロボット18が1台であれば、変数DRnには「1」が設定される。なお、変数DRnは、実体Eと関連付けが解除されたロボット18の総数を示す変数として定義されている。   On the other hand, if “YES” in the step S151, that is, if there is the robot 18 not associated with the entity E, the number of the robots 18 not associated in the step S153 is set to the variable DRn. For example, if there is one robot 18 that has been disassociated from the entity E, “1” is set in the variable DRn. Note that the variable DRn is defined as a variable indicating the total number of robots 18 that have been disassociated from the entity E.

続いて、ステップS155では、変数axを初期化する。たとえば、関連付処理では、関連付けられていないロボット18には、第2ローカルIDが付与される。そして、変数axは、第2ローカルIDを指定するための変数である。そのため、変数axが初期化されると、第2ローカルIDの最初のIDを示す「1」が設定される。   Subsequently, in step S155, the variable ax is initialized. For example, in the association process, the second local ID is assigned to the robot 18 that is not associated. The variable ax is a variable for designating the second local ID. Therefore, when the variable ax is initialized, “1” indicating the first ID of the second local ID is set.

なお、第2ローカルIDは、第1ローカルIDと同様に、関連付処理が実行される毎に付与される。つまり、同じ第2ローカルIDが、同じロボット18に付与されるとは限らない。また、変数Dxと同様に、以下の説明では、第2ローカルIDが「ax」のロボット18を「ロボットax」と記述する。そして、この記述は図面でも同じである。 Note that the second local ID is assigned every time the association process is executed, similarly to the first local ID. That is, the same second local ID is not always given to the same robot 18. Similarly to the variable Dx, in the following description, the robot 18 whose second local ID is “ ax ” is described as “robot ax ”. This description is the same in the drawings.

続いて、ステップS157では、追跡実体リストを作成する。たとえば、図12に示す追跡実体リストを、実体Eの総数を示す変数Enに基づいて作成する。そして、作成した追跡実体リストを追跡実体リストバッファ336に格納する。続いて、ステップS159では、5秒(所定時間)以内に関連付けが解除されたか否かを判断する。つまり、5秒以内に実体Eとロボット18との関連付けが解除されたか否かを判断する。また、具体的には、解除カウンタ352の値が5秒を示す値以下であるか否かを判断する。ステップS159で“NO”であれば、つまり実体Eとロボット18との関連付けが解除されて5秒を超えていれば、ステップS171に進む。   Subsequently, in step S157, a tracking entity list is created. For example, the tracking entity list shown in FIG. 12 is created based on the variable En indicating the total number of entities E. The created tracking entity list is stored in the tracking entity list buffer 336. Subsequently, in step S159, it is determined whether or not the association is released within 5 seconds (predetermined time). That is, it is determined whether or not the association between the entity E and the robot 18 is released within 5 seconds. Specifically, it is determined whether or not the value of the release counter 352 is equal to or less than a value indicating 5 seconds. If “NO” in the step S159, that is, if the association between the entity E and the robot 18 is released and it has exceeded 5 seconds, the process proceeds to a step S171.

一方、ステップS159で“YES”であれば、つまり実体Eとロボット18との関連付けが解除されてから5秒以内であれば、ステップS161で変数IXを初期化する。つまり、後述するローカル関連付処理で、全ての実体Eを識別する必要があるため、変数IXを初期化する。なお、初期化された変数IXには「1」が設定される。続いて、ステップS163では、追跡実体リストを初期化する。つまり、追跡実体リストのフラグの列の全てを「1(オン)」に設定する。   On the other hand, if “YES” in the step S159, that is, if it is within 5 seconds after the association between the entity E and the robot 18, the variable IX is initialized in a step S161. That is, since it is necessary to identify all entities E in the local association process described later, the variable IX is initialized. Note that “1” is set in the initialized variable IX. In step S163, the tracking entity list is initialized. That is, all of the flag columns of the tracking entity list are set to “1 (on)”.

続いて、ステップS165では、ローカル関連付処理を実行する。なお、ステップS165のローカル関連付処理については、図25に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。続いて、ステップS167では、変数axをインクリメントする。つまり、次の第2ローカルIDを指定するために、変数axはインクリメントされる。続いて、ステップS169では、変数axが変数DRnより大きいか否かを判断する。つまり、関連付けられていないロボット18の総数を示す変数DRnよりも、第2ローカルIDを指定する変数axの方が大きいか否かを判断する。これにより、関連付けられていない全てのロボット18に対して、ローカル関連付処理が実行されたか否かを判断することができる。   Subsequently, in step S165, local association processing is executed. Note that the local association processing in step S165 will be described later with reference to the flowchart shown in FIG. 25, and thus detailed description thereof is omitted here. Subsequently, in step S167, the variable ax is incremented. That is, the variable ax is incremented to specify the next second local ID. Subsequently, in step S169, it is determined whether or not the variable ax is larger than the variable DRn. That is, it is determined whether or not the variable ax specifying the second local ID is larger than the variable DRn indicating the total number of robots 18 that are not associated. Thereby, it is possible to determine whether or not the local association process has been executed for all the robots 18 that are not associated with each other.

ステップS169で“NO”であれば、つまり変数axが変数DRn以下であれば、ステップS161に戻る。つまり、関連付けられていない他のロボット18に対してローカル関連付け処理を実行するために、ステップS161に戻る。一方、ステップS169で“YES”であれば、つまり変数axが変数DRnより大きければ、関連付け処理を終了して、補正処理に戻る。   If “NO” in the step S169, that is, if the variable ax is equal to or less than the variable DRn, the process returns to the step S161. That is, the process returns to step S161 in order to execute the local association process for the other robot 18 that is not associated. On the other hand, if “YES” in the step S169, that is, if the variable ax is larger than the variable DRn, the associating process is ended and the process returns to the correcting process.

ここで、ロボット18と実体Eとの関連付けが5秒以内に解除されていなければ、ステップS171−S179の処理を実行する。なお、ステップS171−S179で、ステップS161−S169と同じ処理については、詳細な説明を省略する。   Here, if the association between the robot 18 and the entity E is not released within 5 seconds, the processing of steps S171 to S179 is executed. Note that, in steps S171 to S179, detailed description of the same processing as steps S161 to S169 is omitted.

ステップS171では、変数IXを初期化し、ステップS173では追跡実体リストを初期化する。続いて、ステップS175では、グローバル関連付処理を実行する。このグローバル関連付け処理については、図26に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。   In step S171, the variable IX is initialized, and in step S173, the tracking entity list is initialized. Subsequently, in step S175, a global association process is executed. Since this global association process will be described later with reference to the flowchart shown in FIG. 26, a detailed description thereof is omitted here.

続いて、ステップS177では、変数axをインクリメントし、ステップS179では、変数axが変数DRnより大きいか否かを判断する。つまり、ステップS179では、関連付けられていない全てのロボット18に対して、グローバル関連付処理が実行されたか否かを判断する。ステップS179で“NO”であれば、つまり実体Eと関連付けられていない全てのロボット18に対してグローバル関連付処理が実行されていなければ、ステップS171に戻る。一方、ステップS179で“YES”であれば、つまり実体Eと関連付けられていない全てのロボット18に対してグローバル関連付処理が実行されていれば、関連付処理を終了する。   Subsequently, in step S177, the variable ax is incremented, and in step S179, it is determined whether or not the variable ax is larger than the variable DRn. That is, in step S179, it is determined whether global association processing has been executed for all the robots 18 that are not associated with each other. If “NO” in the step S179, that is, if the global associating process is not executed for all the robots 18 not associated with the entity E, the process returns to the step S171. On the other hand, if “YES” in the step S179, that is, if the global association process is executed for all the robots 18 not associated with the entity E, the association process is ended.

図25にはローカル関連付プログラム316の処理を示すフロー図が示される。ステップS165でローカル関連付処理が実行されると、プロセッサ20は、ステップS191で実体IXが他のロボット18に関連付けられているか否かを判断する。つまり、関連付テーブル344が読み出され、実体IXと他のロボット18とが関連付けられているか否かを判断する。ステップS191で“YES”であれば、つまり実体IXが他のロボット18と関連付けられていれば、ステップS201に進む。一方、ステップS191で“NO”であれば、つまり実体IXが他のロボット18と関連付けられていなければ、ステップS193で実体IXとロボットaxとの5秒間(第1時間)のRMS速度差(第1速度差)を算出する。つまり、ステップS193では、位置履歴バッファ332から、5秒分の実体IXの位置履歴データを読み出し、状態履歴バッファ334から、5秒分のロボットaxの状態履歴データを読み出す。そして、数3においてRTを5として、RMS速度差を算出する。なお、ステップS193の処理を実行するプロセッサ20は、第1速度差算出手段として機能する。 FIG. 25 is a flowchart showing the processing of the local association program 316. When the local association process is executed in step S165, the processor 20 determines whether or not the entity IX is associated with another robot 18 in step S191. That is, the association table 344 is read, and it is determined whether or not the entity IX is associated with another robot 18. If “YES” in the step S191, that is, if the entity IX is associated with another robot 18, the process proceeds to a step S201. On the other hand, if “NO” in the step S191, that is, if the entity IX is not associated with the other robot 18, the RMS speed difference (the first time) between the entity IX and the robot ax in 5 seconds (first time) in the step S193. 1 speed difference) is calculated. That is, in step S193, the position history data of the entity IX for 5 seconds is read from the position history buffer 332, and the state history data of the robot ax for 5 seconds is read from the state history buffer 334. Then, the RT speed difference is calculated by setting RT to 5 in Equation 3. The processor 20 that executes the process of step S193 functions as a first speed difference calculation unit.

続いて、ステップS195では、実体IXとロボットaxとのRMS速度差が大きいか否かを判断する。たとえば、ステップS193で算出されたRMS速度差が第1所定速度(350mm/s)より大きいか否かを判断する。ステップS195で“YES”であれば、つまりRMS速度差が第1所定速度より大きければ、ステップS201に進む。なお、ステップS195の処理を実行するプロセッサ20は第1速度判定手段として機能する。 Subsequently, in step S195, it is determined whether the RMS speed difference between the entity IX and the robot ax is large. For example, it is determined whether or not the RMS speed difference calculated in step S193 is greater than a first predetermined speed (350 mm / s). If “YES” in the step S195, that is, if the RMS speed difference is larger than the first predetermined speed, the process proceeds to a step S201. The processor 20 that executes the process of step S195 functions as a first speed determination unit.

一方、ステップS195で“NO”であれば、つまりRMS速度差が第1所定速度以下であれば、ステップS197で実体IXとロボットaxとの現在の速度差が大きいか否かを判断する。つまり、ステップS193で読み出された実体IXの位置履歴データおよびロボットaxの状態履歴データから、実体IXの速度およびロボットaxの速度を算出して、現在の速度差を求める。そして、現在の速度差が、たとえば350mm/sより大きいか否かを判断する。ステップS197で“YES”であれば、つまり現在の速度差が350mm/sより大きければ、ステップS201に進む。 On the other hand, if “NO” in the step S195, that is, if the RMS speed difference is equal to or less than the first predetermined speed, it is determined whether or not the current speed difference between the entity IX and the robot ax is large in a step S197. That is, the current speed difference is obtained by calculating the speed of the entity IX and the speed of the robot ax from the position history data of the entity IX and the state history data of the robot ax read in step S193. Then, it is determined whether or not the current speed difference is larger than 350 mm / s, for example. If “YES” in the step S197, that is, if the current speed difference is larger than 350 mm / s, the process proceeds to a step S201.

また、ステップS197で“NO”であれば、つまり現在の速度差が350mm/s以下であれば、ステップS199で実体IXとロボットaxとが離れているか否かを判断する。つまり、ステップS199では、ステップS193で読み出された実体IXの位置履歴データおよびロボットaxの状態履歴データから、実体IXの位置データおよびロボットaxの位置を取得する。そして、実体IXとロボットaxとの距離が、たとえば1mより大きいか否かをステップS199で判断する。ステップS199で“NO”であれば、つまり実体IXとロボットaxとが離れていなければ、ステップS203に進む。なお、ステップS199の処理を実行するプロセッサ20は、距離判定手段として機能する。 If “NO” in the step S197, that is, if the current speed difference is 350 mm / s or less, it is determined whether or not the entity IX is separated from the robot ax in a step S199. That is, in step S199, the position data of the entity IX and the position of the robot ax are acquired from the position history data of the entity IX and the state history data of the robot ax read in step S193. Then, in step S199, it is determined whether or not the distance between the entity IX and the robot ax is greater than 1 m, for example. If “NO” in the step S199, that is, if the entity IX is not separated from the robot ax , the process proceeds to a step S203. Note that the processor 20 that executes the process of step S199 functions as a distance determination unit.

一方、ステップS199で“YES”であれば、つまり実体IXとロボットaxとが離れていれば、ステップS201で追跡実体リストにおける、実体IXのフラグをオフにする。たとえば、変数IXが「1」であれば、実体Eaに対応するフラグの欄において、「0(オフ)」が設定される。 On the other hand, if “YES” in the step S199, that is, if the entity IX is separated from the robot ax , the flag of the entity IX in the tracking entity list is turned off in a step S201. For example, if the variable IX is “1”, “0 (off)” is set in the flag field corresponding to the entity Ea.

続いて、ステップS203では、変数IXをインクリメントする。つまり、次の実体IDを指定するために、変数IXはインクリメントされる。続いて、ステップS205では、変数IXが変数Enより大きいか否かを判断する。つまり、全ての実体Eに対して、ステップS191からステップS201の処理が実行されたか否かを判断する。ステップS205で“NO”であれば、つまり全ての実体Eに対して、ステップS191からステップS201の処理が実行されていなければステップS191に戻る。一方、ステップS205で“YES”であれば、つまり全ての実体Eに対して、ステップS191からステップS201の処理が実行されていれば、ステップS207でフラグがオンの実体Eがあるか否かを判断する。つまり、追跡実体リストにおいて、フラグの列に「1」が設定された実体Eがあるか否かを判断する。   Subsequently, in step S203, the variable IX is incremented. That is, the variable IX is incremented to specify the next entity ID. Subsequently, in step S205, it is determined whether or not the variable IX is larger than the variable En. That is, it is determined whether or not the processing from step S191 to step S201 has been executed for all entities E. If “NO” in the step S205, that is, if the processing from the step S191 to the step S201 is not executed for all the entities E, the process returns to the step S191. On the other hand, if “YES” in the step S205, that is, if the processing from the step S191 to the step S201 is executed for all the entities E, it is determined whether or not there is an entity E whose flag is turned on in the step S207. to decide. That is, it is determined whether or not there is an entity E for which “1” is set in the flag column in the tracking entity list.

ステップS207で“YES”であれば、つまり追跡実体リストにおいて、フラグの列に「1」が設定された実体Eがあれば、ステップS209で最も近い実体Eをロボットaxに関連付ける。つまり、位置履歴バッファ332から、追跡実体リストにおいてフラグがオンの実体Eの現在の位置データを読み出す。また、状態履歴バッファ334から、ロボットaxの最新の位置データを読み出す。そして、フラグがオンの実体Eのそれぞれと、ロボットaxの距離を算出し、最も距離が短い実体Eとロボットaxとを関連付ける。また、ステップS209で関連付けられた結果が関連付テーブルに記録される。 If “YES” in the step S207, that is, if there is an entity E for which “1” is set in the flag column in the tracking entity list, the closest entity E is associated with the robot ax in a step S209. That is, the current position data of the entity E whose flag is on in the tracking entity list is read from the position history buffer 332. Further, the latest position data of the robot ax is read from the state history buffer 334. Then, the distance between each of the entities E with the flag turned on and the robot ax is calculated, and the entity E with the shortest distance is associated with the robot ax . In addition, the result associated in step S209 is recorded in the association table.

たとえば、実体Eaおよび実体Ebのフラグがオンであり、ロボットaxがロボット18aであれば、実体Eaおよび実体Ebのそれぞれと、ロボット18aとの距離が算出される。そして、ロボット18aと実体Ebとの距離の方が短ければ、ロボット18aと実体Ebとが関連付けられる。これにより、図13に示す関連付テーブルのように、ロボット18aのロボットIDに対して、実体Ebの実体IDが記録される。なお、ステップS209の処理を実行するプロセッサ20は第1関連付手段として機能する。 For example, if the flags of the entity Ea and the entity Eb are on and the robot ax is the robot 18a, the distances between the entity Ea and the entity Eb and the robot 18a are calculated. If the distance between the robot 18a and the entity Eb is shorter, the robot 18a and the entity Eb are associated with each other. Thereby, the entity ID of the entity Eb is recorded with respect to the robot ID of the robot 18a as in the association table shown in FIG. The processor 20 that executes the process of step S209 functions as a first association unit.

一方、ステップS207で“NO”であれば、つまりフラグがオンの実体Eが追跡実体リストになければ、ステップS211でロボットaxに実体Eを関連付けない。つまりステップS211が実行されると、関連付テーブルに対して実体IDが記録されない。 On the other hand, if “NO” in the step S207, that is, if the entity E whose flag is on is not in the tracking entity list, the entity E is not associated with the robot ax in the step S211. That is, when step S211 is executed, the entity ID is not recorded in the association table.

そして、ステップS209またはステップS211の処理が終了すれば、ローカル関連付処理を終了して、関連付処理に戻る。   And if the process of step S209 or step S211 is complete | finished, a local correlation process will be complete | finished and it will return to a correlation process.

図26にはグローバル関連付プログラム318の処理を示すフロー図が示される。ここで、グローバル関連付処理において、ローカル関連付処理と同じ処理については、詳細な説明を省略する。   FIG. 26 is a flowchart showing the processing of the global association program 318. Here, in the global association processing, detailed description of the same processing as the local association processing is omitted.

ステップS175でグローバル関連付け処理が実行されると、ステップS231では、実体IXが他のロボット18と関連付けられているか否かを判断する。ステップS231で“YES”であれば、つまり実体IXが他のロボット18と関連付けられていれば、ステップS239に進む。一方、ステップS231で“NO”であれば、つまり実体IXが他のロボット18と関連付けられていなければ、ステップS233で実体IXとロボットaxとの300秒間(第2時間)のRMS速度差(第2速度差)を算出する。なお、ステップS233の処理を実行するプロセッサ20は第2速度差算出手段として機能する。 When the global association process is executed in step S175, it is determined in step S231 whether the entity IX is associated with another robot 18 or not. If “YES” in the step S231, that is, if the entity IX is associated with another robot 18, the process proceeds to a step S239. On the other hand, if “NO” in the step S231, that is, if the entity IX is not associated with the other robot 18, the RMS speed difference (the second time) between the entity IX and the robot ax in 300 seconds (second time) in the step S233. 2 speed difference) is calculated. The processor 20 that executes the process of step S233 functions as a second speed difference calculating unit.

続いて、ステップS235では実体IXとロボットaxとのRMS速度差が大きいか否かを判断する。たとえば、実体IXとロボットaxとのRMS速度差が第2所定速度(350mm/s)より大きいか否かを判断する。ステップS235で“YES”であれば、つまり実体IXとロボットaxとのRMS速度差が第2所定速度より大きければ、ステップS239に進む。なお、ステップS235の処理を実行するプロセッサ20は、第2速度判定手段として機能する。 In step S235, it is determined whether the RMS speed difference between the entity IX and the robot ax is large. For example, it is determined whether or not the RMS speed difference between the entity IX and the robot ax is greater than the second predetermined speed (350 mm / s). If “YES” in the step S235, that is, if the RMS speed difference between the entity IX and the robot ax is larger than the second predetermined speed, the process proceeds to a step S239. The processor 20 that executes the process of step S235 functions as a second speed determination unit.

一方、ステップS235で“NO”であれば、つまり実体IXとロボットaxとのRMS速度差が第2所定速度以下であれば、ステップS237で実体IXとロボットaxとの現在の速度差が大きいか否かを判断する。たとえば、現在の速度差が350mm/sより大きいか否かを判断する。 On the other hand, if “NO” in the step S235, that is, if the RMS speed difference between the entity IX and the robot ax is equal to or smaller than the second predetermined speed, whether the current speed difference between the entity IX and the robot ax is large in a step S237. Judge whether or not. For example, it is determined whether or not the current speed difference is greater than 350 mm / s.

ステップS237で“YES”であれば、つまり現在の速度差が350mm/sより大きければ、ステップS239で追跡実体リストにおける実体IXのフラグをオンにして、ステップS241に進む。一方、ステップS237で“NO”であれば、つまり現在の速度差が350mm/s以下であれば、ステップS241で変数IXをインクリメントし、ステップS243で変数IXが変数Enより大きいか否かを判断する。ステップS243で“NO”であれば、つまり変数IXが変数En以下であれば、ステップS231に戻る。一方、ステップS243で“YES”であれば、つまり変数IXが変数Enよりも大きければ、ステップS245でフラグがオンの実体Eが1つだけか否かを判断する。つまり、ステップS245では、追跡実体リストのフラグの列において、「1」が設定された実体Eが1つだけであるか否かを判断する。 If “YES” in the step S237, that is, if the current speed difference is larger than 350 mm / s, the flag of the entity IX in the tracking entity list is turned on in a step S239, and the process proceeds to the step S241. On the other hand, if “NO” in the step S237, that is, if the current speed difference is 350 mm / s or less, the variable IX is incremented in a step S241, and it is determined whether or not the variable IX is larger than the variable En in a step S243. To do. If “NO” in the step S243, that is, if the variable IX is equal to or less than the variable En, the process returns to the step S231. On the other hand, if “YES” in the step S243, that is, if the variable IX is larger than the variable En, it is determined whether or not there is only one entity E whose flag is turned on in a step S245. That is, in step S245, it is determined whether or not there is only one entity E for which “1” is set in the flag column of the tracking entity list.

ステップS245で“NO”であれば、ステップS247でフラグがオンの実体Eにロボットaxを関連付ける。たとえば、ロボットaxがロボット18bを示し、追跡実体リストで実体Ecのフラグのみがオンであれば、図13に示す関連付テーブルのように、ロボットID「002」に対して、実体ID003が記録される。なお、ステップS247の処理を実行するプロセッサ20は第2関連付手段として機能する。 If “NO” in the step S245, the robot ax is associated with the entity E whose flag is turned on in a step S247. For example, if the robot ax indicates the robot 18b and only the flag of the entity Ec is on in the tracking entity list, the entity ID 003 is recorded for the robot ID “002” as in the association table shown in FIG. The The processor 20 that executes the process of step S247 functions as a second association unit.

一方、ステップS245で“NO”であれば、つまり、フラグがオンの実体Eが1つだけでなければ、ステップS211と同様に、ステップS249でロボットaxに実体Eを関連付けない。 On the other hand, if “NO” in the step S245, that is, if there is not only one entity E whose flag is on, the entity E is not associated with the robot ax in the step S249 similarly to the step S211.

そして、ステップS247またはステップS249の処理が終了すれば、グローバル関連付け処理を終了して、関連付け処理に戻る。   And if the process of step S247 or step S249 is complete | finished, a global correlation process will be complete | finished and it will return to a correlation process.

図27には角度補正プログラム314dの処理を示すフロー図が示される。ステップS55の角度補正処理が実行されると、プロセッサ20は、ステップS261で次の位置を予測する。具体的には、ロボットixの状態履歴データから、最新の位置および1秒前の位置を読み出し、縦(Y)軸および横(X)軸方向の位置変位量を算出する。そして、ロボットixのRTMにおいて、前回の位置(前回位置)に対して、算出した位置変位量を加えることで、図14に示すような予測位置を求める。 FIG. 27 is a flowchart showing the processing of the angle correction program 314d. When the angle correction process in step S55 is executed, the processor 20 predicts the next position in step S261. Specifically, the latest position and the position one second before are read from the state history data of the robot ix , and the amount of position displacement in the vertical (Y) axis and horizontal (X) axis directions is calculated. Then, in the RTM of the robot ix, the predicted position as shown in FIG. 14 is obtained by adding the calculated position displacement amount to the previous position (previous position).

続いて、ステップS263では、予測角度および検出角度を算出する。具体的には、予測角度は、ステップS261で求めた予測位置と前回位置との角度を、横軸を基準(0度)にして算出する。また、検出角度については、まず位置履歴バッファ332から、ロボットixに関連付けられた実体Eにおける、現在の位置(データ)を読み出す。次に、ロボットixに関連付けられた実体Eにおける、現在の位置と前回位置との角度を検出角度とし、横軸を基準にして算出する。続いて、ステップS265では、検出角度および予測角度から観測角度Zを算出する。たとえば、図14に示すように、検出角度から予測角度を減算することで、観測角度Zを算出(観測)する。なお、ステップS261−S265の処理を実行するプロセッサ20は角度観測手段として機能する。 Subsequently, in step S263, a predicted angle and a detected angle are calculated. Specifically, the predicted angle is calculated from the angle between the predicted position obtained in step S261 and the previous position with reference to the horizontal axis (0 degree). As for the detected angle, first, the current position (data) in the entity E associated with the robot ix is read from the position history buffer 332. Next, in the entity E associated with the robot ix , the angle between the current position and the previous position is set as a detection angle, and calculation is performed with reference to the horizontal axis. Subsequently, in step S265, an observation angle Zk is calculated from the detected angle and the predicted angle. For example, as shown in FIG. 14, the observation angle Zk is calculated (observed) by subtracting the predicted angle from the detected angle. Note that the processor 20 that executes the processes in steps S261 to S265 functions as an angle observation unit.

続いて、ステップS267では、観測における位置誤差量σ poおよび変位量dsに基づいて、観測角度誤差量σ Zkを近似する。つまり、数4に従って、角度誤差量σ Zkを、位置誤差量σ poおよび変位量dsの商から近似する。なお、ステップS267の処理を実行するプロセッサ20は観測角度誤差算出手段として機能する。 Subsequently, in step S267, the observation angle error amount σ 2 Zk is approximated based on the position error amount σ 2 po and the displacement amount ds in the observation. That is, according to Equation 4, the angular error amount σ 2 Zk is approximated from the quotient of the position error amount σ 2 po and the displacement amount ds. The processor 20 that executes the process of step S267 functions as an observation angle error calculation unit.

続いて、ステップS269では、前回値があるか否かを判断する。つまり、前回値バッファ342に前回の推定角度θ および前回の推定角度誤差量σ θ-kが格納されているか否かを判断する。ステップS269で“NO”であれば、たとえば追跡サーバ10が起動してから角度補正処理が実行されるのが1度目であれば、ステップS271で観測角度誤差量σ Zkと所定値とに基づいてカルマンフィルタを更新する。つまり、数5において、前回の推定角度誤差量σ θ-kにかえて所定値(たとえば、0)を代入して、カルマンゲインKを算出する。 Subsequently, in step S269, it is determined whether or not there is a previous value. In other words, the previous estimated angle theta to the previous value buffer 342 - determines whether k and the previous estimated angular error amount sigma 2 theta-k is stored. If “NO” in the step S269, for example, if the angle correction process is executed for the first time after the tracking server 10 is started, the observation angle error amount σ 2 Zk and a predetermined value are determined in a step S271. Update the Kalman filter. That is, in Equation 5, a Kalman gain K k is calculated by substituting a predetermined value (for example, 0) in place of the previous estimated angle error amount σ 2 θ-k .

続いて、ステップS273では、所定値を利用して、推定角度誤差量σ θ^kおよび推定角度θ を算出し、ステップS279に進む。つまり、ステップS273では、数6に示す式において、前回の推定角度θ に代えて所定値を代入して、推定角度θ を算出する。また、数7に示す式において、前回の推定角度誤差量σ θ-kに代えて所定値を代入して、推定角度誤差量σ θ^kを算出する。 Subsequently, in step S273, an estimated angle error amount σ 2 θ ^ k and an estimated angle θ ^ k are calculated using predetermined values, and the process proceeds to step S279. That is, in step S273, an estimated angle θ ^ k is calculated by substituting a predetermined value in the equation shown in Equation 6 instead of the previous estimated angle θ - k . Further, in the equation shown in Equation 7, by substituting a predetermined value in place of the estimated angle error amount σ 2 θ-k of the previous, it calculates the estimated angular error amount σ 2 θ ^ k.

また、ステップS269で“YES”であれば、つまり前回値バッファ342に前回の推定角度θ および前回の推定角度誤差量σ θ-kが格納されていれば、ステップS275で観測角度誤差量σ Zkと前回値とに基づいてカルマンフィルタを更新する。つまり、数5において、前回値バッファ342から読み出された前回の推定角度誤差量σ θ-kを代入して、カルマンゲインKを算出する。続いて、ステップS277では、前回値を利用して推定角度誤差量σ θ^kおよび推定角度θ を算出する。つまり、ステップS277では、数6に示す式において、前回値バッファ342から読み出された前回の推定角度θ を代入して推定角度θ を算出する。また、数7に示す式において、前回値バッファ342から読み出された前回の推定角度誤差量σ θ-kを代入して推定角度誤差量σ θ^kを算出する。 Furthermore, if "YES" in the step S269, that is the previous estimated angle theta to the previous value buffer 342 - k and if it is stored estimated angle error amount σ 2 θ-k of the previous, the observation angle error at step S275 The Kalman filter is updated based on the quantity σ 2 Zk and the previous value. That is, in Equation 5, the previous estimated angle error amount σ 2 θ-k read from the previous value buffer 342 is substituted to calculate the Kalman gain K k . Subsequently, in step S277, the estimated angle error amount σ 2 θ ^ k and the estimated angle θ ^ k are calculated using the previous values. That is, in the step S277, the equations shown in Equation 6, the last estimated angle theta read from the previous value buffer 342 - calculates an estimated angle theta ^ k by substituting k. Further, in the equation shown in Equation 7, the estimated angle error amount σ 2 θ ^ k is calculated by substituting the previous estimated angle error amount σ 2 θ-k read from the previous value buffer 342.

なお、ステップS261−S277の処理を実行するプロセッサ20は、角度推定手段として機能する。   In addition, the processor 20 which performs the process of step S261-S277 functions as an angle estimation means.

続いて、ステップS279では、推定角度θ と、ロボットixのRTMの角度との角度差を算出する。たとえば、ロボットixのRTMの角度が32度であり、推定角度θ が30度であれば、角度差として−2度(=30−32)が算出される。なお、ステップS279の処理を実行するプロセッサ20は、角度補正算出手段として機能する。 Subsequently, in step S279, an angle difference between the estimated angle θ ^ k and the RTM angle of the robot ix is calculated. For example, if the RTM angle of the robot ix is 32 degrees and the estimated angle θ ^ k is 30 degrees, −2 degrees (= 30−32) is calculated as the angle difference. Note that the processor 20 that executes the process of step S279 functions as an angle correction calculation unit.

続いて、ステップS281では、推定角度誤差量σ θ^kを補正精度とし、算出された角度差を補正角度データとして一時記憶する。つまり、推定角度誤差量σ θ^kは補正精度バッファ340に格納され、算出された角度差は補正角度バッファ338に格納される。なお、ステップS281の処理を実行するプロセッサ20は記憶手段として機能する。 Subsequently, in step S281, the estimated angle error amount σ 2 θ ^ k is set as the correction accuracy, and the calculated angle difference is temporarily stored as correction angle data. That is, the estimated angle error amount σ 2 θ ^ k is stored in the correction accuracy buffer 340, and the calculated angle difference is stored in the correction angle buffer 338. The processor 20 that executes the process of step S281 functions as a storage unit.

続いて、ステップS283では、推定角度θ に基づいて、ロボットixのRTMの角度を更新する。たとえば、推定角度θ が30度であれば、ロボットixのRTMの角度が30度にされる。そして、ステップS283の処理が終了すれば、角度補正処理を終了する。 Subsequently, in step S283, the RTM angle of the robot ix is updated based on the estimated angle θ ^ k . For example, if the estimated angle θ ^ k is 30 degrees, the RTM angle of the robot ix is set to 30 degrees. And if the process of step S283 is complete | finished, an angle correction process will be complete | finished.

なお、角度差および推定角度誤差量σ θ^kには、ロボットixのロボットIDが対応付けられる。つまり、補正角度バッファ338および補正精度バッファ340には複数の角度補正データおよび補正精度が格納されるため、それぞれを識別可能にするため、ロボットIDが対応付けられる。 Note that the robot ID of the robot ix is associated with the angle difference and the estimated angle error amount σ 2 θ ^ k . That is, a plurality of angle correction data and correction accuracy are stored in the correction angle buffer 338 and the correction accuracy buffer 340, and therefore a robot ID is associated with each other so that each can be identified.

また、角度補正処理では、前回の補正角度データが今回の状態データに含まれる角度データに反映される。たとえば、前回の角度補正処理で補正角度データが−2度と算出され、かつロボット18に送信されていなければ、今回の処理では、状態データに含まれる角度データから−2度が反映されたうえで実行される。ただし、補正角度データがロボット18に送信された場合には、補正角度バッファ338はリセットされる。つまり、補正角度データがロボット18に送信された場合に限り、前回の補正角度データが今回の状態データに含まれる角度データに反映される。   In the angle correction process, the previous correction angle data is reflected in the angle data included in the current state data. For example, if the correction angle data is calculated as -2 degrees in the previous angle correction process and is not transmitted to the robot 18, -2 degrees is reflected from the angle data included in the state data in this process. Is executed. However, when the correction angle data is transmitted to the robot 18, the correction angle buffer 338 is reset. That is, only when the correction angle data is transmitted to the robot 18, the previous correction angle data is reflected in the angle data included in the current state data.

この実施例によれば、ロボット自己位置同定システム100は、ネットワーク400を介して接続された追跡サーバ10およびロボット18を含む。追跡サーバ10はLRF12によって検出領域F内の実体Eをセンシングすることで実体Eを追跡し、ロボット18は状態データを出力する。   According to this embodiment, the robot self-localization system 100 includes a tracking server 10 and a robot 18 connected via a network 400. The tracking server 10 tracks the entity E by sensing the entity E in the detection area F by the LRF 12, and the robot 18 outputs state data.

追跡サーバ10は、ロボット18が出力する状態データおよび検出された実体Eの位置データをメモリ22のバッファに記憶する。また、追跡サーバ10は関連付処理を実行し、記憶した位置履歴データおよび状態履歴データに基づいて、各ロボット18と各実体Eとを関連付ける。さらに、追跡サーバ10は、各ロボット18に対応するRTMを、位置履歴データおよび状態履歴データに基づいて更新し、そのRTMに基づく補正データをロボット18に送信する。そして、ロボット18は、追跡サーバ10が送信した補正データに基づいて、自身の位置および角度を補正する。   The tracking server 10 stores the state data output from the robot 18 and the detected position data of the entity E in the buffer of the memory 22. Further, the tracking server 10 executes an association process, and associates each robot 18 with each entity E based on the stored position history data and state history data. Further, the tracking server 10 updates the RTM corresponding to each robot 18 based on the position history data and the state history data, and transmits correction data based on the RTM to the robot 18. Then, the robot 18 corrects its own position and angle based on the correction data transmitted by the tracking server 10.

このように、本実施例では、容易に設置可能なLRF12およびロボット18が一般的に出力可能な状態データを利用して、ロボット18と実体Eとを関連付けることができるため、容易にロボット18を自己位置同定することができる。   As described above, in this embodiment, the robot 18 and the entity E can be associated with each other using the LRF 12 that can be easily installed and the state data that the robot 18 can generally output. Self-localization can be performed.

なお、ロボット自己位置同定システム100では、各サーバおよびロボット18に設定される時刻が一定時間(たとえば、20秒)毎に同期される。つまり、ロボット18が出力する状態データおよび追跡サーバ10が記憶する位置データに対応付けられる時刻データは、同時刻を示す。   In the robot self-position identification system 100, the time set for each server and the robot 18 is synchronized every predetermined time (for example, 20 seconds). That is, the time data associated with the state data output by the robot 18 and the position data stored by the tracking server 10 indicate the same time.

また、遠隔操作装置14のオペレータが、ロボット18の位置データを修正してもよい。この場合、ロボット18は、追跡サーバ10に対してリセット信号を送信する。そして、ロボット18は、リセット信号を送信したときには、追跡サーバ10が送信した補正データに基づいて位置および角度を補正しない。さらに、追跡サーバ10は、リセット信号を受信した場合には、リセット信号が途絶した直後に取得した状態データに基づいてRTMを補正する。つまり、オペレータによってロボット18の位置が修正された場合には、追跡サーバ10が送信する補正データが、一時的に無効にされる。   Further, the operator of the remote operation device 14 may correct the position data of the robot 18. In this case, the robot 18 transmits a reset signal to the tracking server 10. When the robot 18 transmits a reset signal, the robot 18 does not correct the position and angle based on the correction data transmitted by the tracking server 10. Further, when receiving the reset signal, the tracking server 10 corrects the RTM based on the state data acquired immediately after the reset signal is interrupted. That is, when the position of the robot 18 is corrected by the operator, the correction data transmitted by the tracking server 10 is temporarily invalidated.

また、ロボット自己位置同定システム100には、ローカライゼーション機能専用のサーバが含まれていてもよい。さらに、ロボット自己位置同定システム100は、遠隔操作装置14および計画サーバ16を含んでいなくてもよい。   The robot self-position identification system 100 may include a server dedicated to the localization function. Further, the robot self-position identification system 100 may not include the remote control device 14 and the plan server 16.

また、本実施例のロボット自己位置同定システム100は、本実施例のロボット18だけに限らず、様々な種類のロボットを同時に自己位置同定することができる。そのため、ロボット18が出力する状態データの位置および角度などは、車輪速センサ112だけでなく、様々なセンサを利用して検出されてもよい。   Further, the robot self-position identification system 100 according to the present embodiment is not limited to the robot 18 according to the present embodiment, and can simultaneously perform self-position identification of various types of robots. Therefore, the position and angle of the state data output by the robot 18 may be detected using not only the wheel speed sensor 112 but also various sensors.

また、本実施例の数値(所定時間、第1所定速度、第2所定速度、第1速度差、第2速度差、第1時間、第2時間、所定距離など)は、ロボット自己位置同定システム100が設置される環境に応じて、任意に変更されてもよい。   The numerical values (predetermined time, first predetermined speed, second predetermined speed, first speed difference, second speed difference, first time, second time, predetermined distance, etc.) of the present embodiment are the robot self-position identification system. It may be arbitrarily changed according to the environment in which 100 is installed.

また、カルマンフィルタ以外にも、パーティクルフィルタおよび拡張カルマンフィルタなど、ロボット18の状態を推定することができるフィルタ(状態推定フィルタ)を利用して角度を補正することができる。   In addition to the Kalman filter, the angle can be corrected using a filter (state estimation filter) that can estimate the state of the robot 18 such as a particle filter and an extended Kalman filter.

また、他の実施例では、RMSの代わりに相関係数を利用して、ロボット18と実体Eとを関連付けてもよい。   In another embodiment, the robot 18 and the entity E may be associated by using a correlation coefficient instead of RMS.

10 …追跡サーバ
12a−12f …LRF
18 …ロボット
20 …プロセッサ
22 …メモリ
24 …通信LANボード
26 …無線通信装置
32a,32b …車輪
36a,36b …車輪モータ
100 …ロボット自己位置同定システム
112 …車輪速センサ
114 …通信LANボード
116 …無線通信装置
400 …ネットワーク
10 ... Tracking server 12a-12f ... LRF
DESCRIPTION OF SYMBOLS 18 ... Robot 20 ... Processor 22 ... Memory 24 ... Communication LAN board 26 ... Wireless communication apparatus 32a, 32b ... Wheel 36a, 36b ... Wheel motor 100 ... Robot self-position identification system 112 ... Wheel speed sensor 114 ... Communication LAN board 116 ... Wireless Communication device 400 ... network

Claims (7)

自身の移動に関して自身の位置データを少なくとも含む状態データを出力できるロボットを、それが存在する空間内において自己位置同定する、ロボット自己位置同定システムであって、
前記ロボットから順次取得した複数の状態データを記憶する状態データ記憶手段、
前記空間内に存在する実体をセンシングする環境センサ、
前記環境センサの出力に基づいて前記実体の位置を検出する位置検出手段、
前記位置検出手段によって検出された実体の複数の位置データを記憶する位置データ記憶手段、
前記状態データ記憶手段によって記憶された前記ロボットの複数の位置データおよび前記位置データ記憶手段によって記憶された前記実体の複数の位置データに基づいて、前記ロボットと前記実体とを関連付ける関連付手段、および
前記ロボットと関連付けられた前記実体の位置データに基づいて、前記状態データに含まれる位置データを補正する補正データを、前記ロボットに送信する送信手段を備え、
前記ロボットは、前記補正データに従って、自身の位置データを補正する、ロボット自己位置同定システム。
A robot self-position identification system for self-locating a robot capable of outputting state data including at least its own position data with respect to its movement in a space in which the robot exists.
State data storage means for storing a plurality of state data sequentially obtained from the robot;
An environmental sensor for sensing an entity existing in the space;
Position detecting means for detecting the position of the entity based on the output of the environmental sensor;
Position data storage means for storing a plurality of position data of an entity detected by the position detection means;
Association means for associating the robot with the entity based on the plurality of position data of the robot stored by the state data storage unit and the plurality of position data of the entity stored by the position data storage unit; Transmission means for transmitting correction data for correcting position data included in the state data to the robot based on position data of the entity associated with the robot;
The robot self-position identification system in which the robot corrects its own position data according to the correction data.
前記状態データは、自身の角度データをさらに含み、
前記状態データ記憶手段は、前記角度データを含む状態データを記憶し、
前記状態データ記憶手段によって記憶された前記ロボットの複数の状態データおよび前記位置データ記憶手段によって記憶された前記実体の複数の位置データに基づいて、次の位置における角度を推定する角度推定手段、および
前記角度推定手段によって推定された角度および状態データ記憶手段によって記憶された状態データに含まれる角度データに基づいて、前記状態データに含まれる角度データを補正する角度補正データを算出する角度補正算出手段をさらに備え、
前記送信手段は、前記補正データおよび前記角度補正データを、前記ロボットに送信する第1送信手段を含み、
前記ロボットは、前記補正データおよび前記角度補正データに従って、自身の位置データおよび角度データを補正する、請求項1記載のロボット自己位置同定システム。
The state data further includes its own angle data,
The state data storage means stores state data including the angle data,
An angle estimation means for estimating an angle at the next position based on a plurality of state data of the robot stored by the state data storage means and a plurality of position data of the entity stored by the position data storage means; and Angle correction calculation means for calculating angle correction data for correcting the angle data included in the state data based on the angle estimated by the angle estimation means and the angle data included in the state data stored in the state data storage means. Further comprising
The transmission means includes first transmission means for transmitting the correction data and the angle correction data to the robot,
The robot self-position identification system according to claim 1, wherein the robot corrects its own position data and angle data according to the correction data and the angle correction data.
前記角度推定手段は、角度を推定するときに、推定角度誤差をあわせて算出し、
前記推定角度誤差を補正精度として記憶する記憶手段をさらに備え、
前記送信手段は、前記記憶手段によって記憶された補正精度が低いとき、前記補正データのみを前記ロボットに送信する第2送信手段を含む、請求項2記載のロボット自己位置同定システム。
The angle estimating means calculates an estimated angle error when estimating the angle,
Storage means for storing the estimated angle error as correction accuracy;
3. The robot self-position identification system according to claim 2, wherein the transmission unit includes a second transmission unit that transmits only the correction data to the robot when the correction accuracy stored by the storage unit is low.
前記角度推定手段は、前記状態データ記憶手段によって記憶された前記ロボットの複数の状態データおよび前記位置データ記憶手段によって記憶された前記実体の位置データに基づいて、前記ロボットの角度を観測する角度観測手段、および前記角度観測手段によって観測された角度の観測角度誤差を算出する観測角度誤差算出手段を含み、
前記角度推定手段は、前記観測された角度、前記観測角度誤差、前回推定された角度および前回算出された推定角度誤差に基づいて、次の位置の角度を推定し、推定角度誤差を算出する、請求項3記載のロボット自己位置同定システム。
The angle estimation means observes the angle of the robot based on the plurality of state data of the robot stored by the state data storage means and the position data of the entity stored by the position data storage means. And an observation angle error calculation means for calculating an observation angle error of an angle observed by the angle observation means,
The angle estimation means estimates the angle of the next position based on the observed angle, the observed angle error, the previously estimated angle, and the previously calculated estimated angle error, and calculates an estimated angle error. The robot self-position identification system according to claim 3.
前記ロボットと前記実体との関連付けを維持するかを判断する判断手段、および
前記判断手段によって維持しないと判断されたとき、前記ロボットと前記実体との関連付けを解除する解除手段をさらに備える、請求項1ないし4のいずれかに記載のロボット自己位置同定システム。
A determination unit that determines whether to maintain the association between the robot and the entity, and a release unit that cancels the association between the robot and the entity when the determination unit determines not to maintain the association. The robot self-position identification system according to any one of 1 to 4.
前記空間には、少なくとも2つ以上の実体が存在し、
前記関連付手段は、前記ロボットと前記実体との関連付けが解除されてから所定時間以内のとき、前記ロボットと各実体との第1速度差を算出する第1速度差算出手段、前記第1速度差算出手段によって算出された第1速度差が第1所定速度より大きいかを判断する第1速度判定手段、前記ロボットと各実体との距離が所定距離より離れているかを判定する距離判定手段、および前記第1速度判定手段によって前記ロボットとの第1速度差が前記第1所定速度以下と判定され、かつ前記距離判断手段によって前記ロボットとの距離が所定距離以内と判定された実体のうち、前記ロボットに最も近い実体と前記ロボットとを関連付ける第1関連付手段を含む、請求項5記載のロボット自己位置同定システム。
There are at least two entities in the space,
The association means includes a first speed difference calculation means for calculating a first speed difference between the robot and each entity within a predetermined time after the association between the robot and the entity is canceled, and the first speed First speed determining means for determining whether the first speed difference calculated by the difference calculating means is greater than a first predetermined speed; distance determining means for determining whether the distance between the robot and each entity is greater than a predetermined distance; And an entity in which a first speed difference with the robot is determined to be less than or equal to the first predetermined speed by the first speed determining means, and a distance from the robot is determined to be within a predetermined distance by the distance determining means, 6. The robot self-position identification system according to claim 5, further comprising first association means for associating an entity closest to the robot with the robot.
前記空間には、少なくとも2つ以上の実体が存在し、
前記関連付手段は、前記ロボットと前記実体との関連付けが解除されてから所定時間が経過したとき、前記ロボットと各実体との第2速度差を算出する第2速度差算出手段、前記第2速度差算出手段によって算出された第2速度差が第2所定速度より大きいかを判定する第2速度判定手段、および前記第2速度判定手段によって前記ロボットの第2速度差が前記第2所定速度以下と判定された実体が1つだけであるとき、その実体と前記ロボットとを関連付ける第2関連付手段を含む、請求項5または6記載のロボット自己位置同定システム。
There are at least two entities in the space,
The association means includes second speed difference calculation means for calculating a second speed difference between the robot and each entity when a predetermined time has elapsed since the association between the robot and the entity is canceled, Second speed determination means for determining whether the second speed difference calculated by the speed difference calculation means is greater than a second predetermined speed, and the second speed difference of the robot is determined by the second speed determination means to be the second predetermined speed. The robot self-position identification system according to claim 5 or 6, further comprising: a second associating unit that associates the entity with the robot when only one entity is determined as follows.
JP2010087682A 2010-04-06 2010-04-06 Robot self-localization system Active JP5493097B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010087682A JP5493097B2 (en) 2010-04-06 2010-04-06 Robot self-localization system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010087682A JP5493097B2 (en) 2010-04-06 2010-04-06 Robot self-localization system

Publications (2)

Publication Number Publication Date
JP2011221631A JP2011221631A (en) 2011-11-04
JP5493097B2 true JP5493097B2 (en) 2014-05-14

Family

ID=45038577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010087682A Active JP5493097B2 (en) 2010-04-06 2010-04-06 Robot self-localization system

Country Status (1)

Country Link
JP (1) JP5493097B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6432825B2 (en) * 2014-08-22 2018-12-05 株式会社Ihi Method and apparatus for aligning three-dimensional point cloud data and moving body system thereof
KR20230091335A (en) * 2021-12-16 2023-06-23 엘지전자 주식회사 Autonomous robot, cloud device and method of correcting position

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3686379T2 (en) * 1985-08-30 1993-03-11 Texas Instruments Inc CONTROLLER FOR A REMOTE CONTROLLED VEHICLE USING THE DELAYED ABSOLUTE POSITION DATA FOR STEERING AND NAVIGATION.
US4940925A (en) * 1985-08-30 1990-07-10 Texas Instruments Incorporated Closed-loop navigation system for mobile robots
JP2000275321A (en) * 1999-03-25 2000-10-06 Ushio U-Tech Inc Method and system for measuring position coordinate of traveling object
JPWO2002023297A1 (en) * 2000-09-11 2004-01-22 高瀬 國克 Mobile object movement control system
JP4056777B2 (en) * 2002-03-29 2008-03-05 綜合警備保障株式会社 Autonomous mobile object traveling system and autonomous mobile object position correction method
JP2008260107A (en) * 2007-04-13 2008-10-30 Yaskawa Electric Corp Mobile robot system
JP2010224755A (en) * 2009-03-23 2010-10-07 Toyota Motor Corp Moving object and position estimating method of the same

Also Published As

Publication number Publication date
JP2011221631A (en) 2011-11-04

Similar Documents

Publication Publication Date Title
US11092975B2 (en) Control method, control device, and carrier system
JP5324286B2 (en) Network robot system, robot control apparatus, robot control method, and robot control program
JP5747191B2 (en) Mobile remote control system and control program therefor
JP5768273B2 (en) A robot that predicts a pedestrian's trajectory and determines its avoidance behavior
WO2012027845A2 (en) System and method for tracking
US20190184569A1 (en) Robot based on artificial intelligence, and control method thereof
US20180329409A1 (en) Portable mobile robot and operation thereof
KR20180080498A (en) Robot for airport and method thereof
WO2016031105A1 (en) Information-processing device, information processing method, and program
WO2004052597A1 (en) Robot control device, robot control method, and robot control program
JP2010231470A (en) Information providing system
KR20180063719A (en) Unmanned Aerial Vehicle and the Method for controlling thereof
JP2012111011A (en) Mobile robot
CN112236733A (en) Computerized system for guiding mobile robot to docking station and using method thereof
JP6640779B2 (en) Autonomous mobile device and mobile control system
JP2012208782A (en) Move prediction apparatus, robot control device, move prediction program and move prediction method
JP2015066621A (en) Robot control system, robot, output control program and output control method
JP2009151419A (en) Method and apparatus for specifying target
US20180329424A1 (en) Portable mobile robot and operation thereof
JP5493097B2 (en) Robot self-localization system
KR20180074403A (en) Robot for airport and method thereof
JP5552710B2 (en) Robot movement control system, robot movement control program, and robot movement control method
TW201831920A (en) Auto moving device
WO2021078203A1 (en) Obstacle avoidance method for aircraft, and aircraft, flight system, and storage medium
US20210316452A1 (en) Information processing device, action decision method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140108

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140203

R150 Certificate of patent or registration of utility model

Ref document number: 5493097

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250