<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors</journal-id>
<journal-title>Sensors</journal-title>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name></publisher></journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3390/s121114489</article-id>
<article-id pub-id-type="publisher-id">sensors-12-14489</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>Laser-Based Pedestrian Tracking in Outdoor Environments by Multiple Mobile Robots</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Ozaki</surname><given-names>Masataka</given-names></name><xref ref-type="aff" rid="af1-sensors-12-14489"><sup>1</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Kakimuma</surname><given-names>Kei</given-names></name><xref ref-type="aff" rid="af1-sensors-12-14489"><sup>1</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Hashimoto</surname><given-names>Masafumi</given-names></name><xref ref-type="aff" rid="af2-sensors-12-14489"><sup>2</sup></xref><xref ref-type="corresp" rid="c1-sensors-12-14489"><sup>*</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Takahashi</surname><given-names>Kazuhiko</given-names></name><xref ref-type="aff" rid="af2-sensors-12-14489"><sup>2</sup></xref></contrib></contrib-group>
<aff id="af1-sensors-12-14489">
<label>1</label> Graduate School of Doshisha University, Tatara, Kyotanabe, Kyoto 6100321, Japan; E-Mails: <email>mantuuman@gmail.com</email> (M.O.); <email>dtl0726@mail4.doshisha.ac.jp</email> (K.K.)</aff>
<aff id="af2-sensors-12-14489">
<label>2</label> Faculty of Science and Engineering, Doshisha University, Tatara, Kyotanabe, Kyoto 6100321, Japan; E-Mail: <email>katakaha@mail.doshisha.ac.jp</email></aff>
<author-notes>
<corresp id="c1-sensors-12-14489">
<label>*</label> Author to whom correspondence should be addressed; E-Mail: <email>mhashimo@mail.doshisha.ac.jp</email>; Tel./Fax: +81-774-65-6410.</corresp></author-notes>
<pub-date pub-type="collection">
<year>2012</year></pub-date>
<pub-date pub-type="epub">
<day>29</day>
<month>10</month>
<year>2012</year></pub-date>
<volume>12</volume>
<issue>11</issue>
<fpage>14489</fpage>
<lpage>14507</lpage>
<history>
<date date-type="received">
<day>16</day>
<month>08</month>
<year>2012</year></date>
<date date-type="rev-recd">
<day>20</day>
<month>10</month>
<year>2012</year></date>
<date date-type="accepted">
<day>21</day>
<month>10</month>
<year>2012</year></date></history>
<permissions>
<copyright-statement>© 2012 by the authors; licensee MDPI, Basel, Switzerland.</copyright-statement>
<copyright-year>2012</copyright-year>
<license>
<p>This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).</p></license></permissions>
<abstract>
<p>This paper presents an outdoors laser-based pedestrian tracking system using a group of mobile robots located near each other. Each robot detects pedestrians from its own laser scan image using an occupancy-grid-based method, and the robot tracks the detected pedestrians via Kalman filtering and global-nearest-neighbor (GNN)-based data association. The tracking data is broadcast to multiple robots through intercommunication and is combined using the covariance intersection (CI) method. For pedestrian tracking, each robot identifies its own posture using real-time-kinematic GPS (RTK-GPS) and laser scan matching. Using our cooperative tracking method, all the robots share the tracking data with each other; hence, individual robots can always recognize pedestrians that are invisible to any other robot. The simulation and experimental results show that cooperating tracking provides the tracking performance better than conventional individual tracking does. Our tracking system functions in a decentralized manner without any central server, and therefore, this provides a degree of scalability and robustness that cannot be achieved by conventional centralized architectures.</p></abstract>
<kwd-group>
<kwd>pedestrian tracking</kwd>
<kwd>multi-mobile robots</kwd>
<kwd>laser range scanner</kwd>
<kwd>Bayesian filter</kwd>
<kwd>decentralized multi-sensor fusion</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>Tracking (<italic>i.e.</italic>, estimating the motion) of pedestrians is important to ensure safe navigation of mobile robots and vehicles. There has been much interest in the use of stereo vision or a laser range scanner (LRS) in mobile robotics and vehicle automation [<xref ref-type="bibr" rid="b1-sensors-12-14489">1</xref>–<xref ref-type="bibr" rid="b5-sensors-12-14489">5</xref>]. We previously presented a pedestrian tracking method using LRS mounted on mobile robots and automobiles [<xref ref-type="bibr" rid="b6-sensors-12-14489">6</xref>–<xref ref-type="bibr" rid="b8-sensors-12-14489">8</xref>].</p>
<p>Recently, many studies related to multi-robot coordination and cooperation have been conducted [<xref ref-type="bibr" rid="b9-sensors-12-14489">9</xref>,<xref ref-type="bibr" rid="b10-sensors-12-14489">10</xref>]. When these robots and vehicles are located near each other, they can share their sensing data. This implies that the robots and vehicles are considered to be a multi-sensor system. Therefore, even if pedestrians are located outside the sensing area of any individual robot or vehicle, it can detect pedestrians using the tracking data received from other robots and vehicles in the vicinity, and thus, multiple robots can improve the accuracy and reliability of pedestrian tracking.</p>
<p>In an intelligent transport system (ITS), if the tracking data is shared with neighboring vehicles through vehicle-to-vehicle communication, each vehicle can detect pedestrians efficiently. This facilitates the construction of an advanced driver-assistance-system. Even if pedestrians suddenly run into roads, the vehicles can detect them, and hence drivers can stop their vehicles to prevent an accident.</p>
<p>This paper presents a pedestrian tracking method employing multiple mobile robots and vehicles. Most studies of cooperative tracking by multiple mobile robots focus on motion planning and controlling issues [<xref ref-type="bibr" rid="b11-sensors-12-14489">11</xref>–<xref ref-type="bibr" rid="b13-sensors-12-14489">13</xref>]. These studies attempt to keep many moving objects visible to the mobile robots at all times while consuming as little motion energy as possible. In this paper, we address sensor-data fusion, through which pedestrian tracking is achieved by combining the tracking data from multiple mobile robots located in their vicinity.</p>
<p>There has been considerable research in cooperative pedestrian tracking using multiple static sensors located in the environment [<xref ref-type="bibr" rid="b14-sensors-12-14489">14</xref>–<xref ref-type="bibr" rid="b18-sensors-12-14489">18</xref>] and multi-sensors on robots [<xref ref-type="bibr" rid="b19-sensors-12-14489">19</xref>,<xref ref-type="bibr" rid="b20-sensors-12-14489">20</xref>]. Our previous work [<xref ref-type="bibr" rid="b8-sensors-12-14489">8</xref>] presented a pedestrian tracking method using in-vehicle multi-laser range scanners; pedestrians were tracked by each LRS based on a Kalman filter. In order to enhance the tracking performance, the tracking data were blended based on covariance intersection (CI) method [<xref ref-type="bibr" rid="b21-sensors-12-14489">21</xref>].</p>
<p>In this paper, we extend our previous method to pedestrian tracking with multiple mobile robots in the proximity to each other. As illustrated in <xref ref-type="fig" rid="f1-sensors-12-14489">Figure 1</xref>, our method contributes toward building a cooperative pedestrian tracking system using vehicles such as mobile robots, cars, and electric personal assistive mobility devices (EPAMD) in future urban city environments.</p>
<p>Recent studies [<xref ref-type="bibr" rid="b22-sensors-12-14489">22</xref>,<xref ref-type="bibr" rid="b23-sensors-12-14489">23</xref>] in cooperative pedestrian tracking by multiple mobile robots require centralized data fusion with a central server; sensing data captured by each robot are sent to a central server for subsequent data fusion. The centralized data fusion reduces system robustness and scalability. Our cooperative tracking system proposed in this paper functions in a decentralized manner without any central server. This paper is organized as follows: in Section 2, we present an overview of our experimental system. In Sections 3 and 4, we present methods of pedestrian tracking and robot localization. In Section 5, we describe simulation and experiment of pedestrian tracking to validate our method, followed by our conclusions.</p></sec>
<sec>
<label>2.</label>
<title>Experimental Mobile Robots</title>
<p><xref ref-type="fig" rid="f2-sensors-12-14489">Figure 2</xref> shows our mobile robot system used in the experiments. We use a Okatech Mecrobot wheeled mobile robot platform. Three robots each have two independent drive-wheels. A wheel encoder is attached to each of the drive wheels to measure the wheel velocity. A fiber-optic yaw rate gyro (Tamagawa Seiki, TA7319N3) is attached to the robot's chassis to measure the turn velocity. This information is used to estimate the robot's posture based on dead reckoning. Moreover, each robot is equipped with an RTK-GPS (Novatel ProPak-V3 GPS receiver) to identify its own posture in outdoor environments. The RTK-GPS provides three types of solution: fixed, float, and single solutions. Fixed solution offers range accuracy of less than 0.2 m, and float solution achieves range accuracy of about 0.2 to 1 m. In outdoor environments causing GPS multipath problems and bad weather conditions, we get single solutions with range accuracies of several meters.</p>
<p>The robot is equipped with a single-layered LRS (Sick LMS100). The LRS captures laser scan images that are represented by a sequence of distance samples in a horizontal plane of 270 deg. The angular resolution of the LRS is 0.5 deg, and the number of distance samples is 541 in one scan image. The onboard computer is a Lenovo ThinkPad R500 with a 2.4 GHz Intel core 2 duo processor, and the operating system used is Microsoft Windows Vista. The sampling frequency of the sensors is 10 Hz.</p>
<p>Broadcast communication via a wireless LAN is used to exchange information among the robots. It takes approximately 40 ms to exchange information between robots. We employ a ring-type network structure in which the robots transmit information in the sequence: robot #1, #2, and #3.</p></sec>
<sec>
<label>3.</label>
<title>Pedestrian Tracking</title>
<sec>
<label>3.1.</label>
<title>Overview</title>
<p>We define two coordinate frames: the world coordinate frame, <italic>Σ<sub>w</sub></italic>(<italic>O<sub>w</sub></italic> : <italic>X<sub>w</sub>Y<sub>w</sub></italic>) and the <italic>i</italic>-th robot coordinate frame, <italic>Σ<sub>i</sub></italic>(<italic>O<sub>i</sub></italic> : <italic>X<sub>i</sub>Y<sub>i</sub></italic>) attached at the robot body, where <italic>i</italic> = 1, 2, 3. Each robot independently detects pedestrians using its own laser image based on an occupancy-grid-based method. <xref ref-type="table" rid="t1-sensors-12-14489">Table 1</xref> briefly shows our occupancy grid algorithm in the pseudo-code format. Our detection method is detailed in [<xref ref-type="bibr" rid="b6-sensors-12-14489">6</xref>,<xref ref-type="bibr" rid="b7-sensors-12-14489">7</xref>].</p>
<p>The detected pedestrians are tracked using the following two tracking modes (<xref ref-type="fig" rid="f3-sensors-12-14489">Figure 3</xref>):
<list list-type="alpha-lower">
<list-item>
<p><italic>Individual tracking by a single robot</italic>: Each robot individually tracks pedestrians without any tracking data from other robots. The robot can only track pedestrians inside its LRS sensing area.</p></list-item>
<list-item>
<p><italic>Cooperative tracking by multiple robots</italic>: The robots track pedestrians by sharing their own tracking data so that each robot can track pedestrians both inside and outside its LRS sensing area.</p></list-item></list></p></sec>
<sec>
<label>3.2.</label>
<title>Individual Tracking</title>
<p>A pedestrian position in <italic>Σ<sub>w</sub></italic> is denoted by (<italic>x</italic>,<italic>y</italic>). If the pedestrian is assumed to move at almost constant velocity, the rate kinematics is given by:
<disp-formula id="FD1">
<label>(1)</label>
<mml:math id="mm1" display="block">
<mml:semantics id="sm1">
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">Fx</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:mtext mathvariant="bold-italic">G</mml:mtext>
<mml:mo mathvariant="italic">Δ</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mi>τ</mml:mi></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mi>τ</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mi>τ</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>/</mml:mo>
<mml:mn>2</mml:mn></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>τ</mml:mi></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mi>τ</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>/</mml:mo>
<mml:mn>2</mml:mn></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mi>τ</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:mo mathvariant="italic">Δ</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold><italic>x</italic></bold> = (<italic>x</italic>, <italic>ẋ</italic>, <italic>y</italic>, <italic>ẏ</italic>)<italic><sup>T</sup></italic>. <italic>Δ<bold>x</bold></italic> = (<italic>Δẍ</italic>, <italic>Δÿ</italic>)<italic><sup>T</sup></italic> is an unknown acceleration (plant noise). <italic>τ</italic> is a sampling period of sensors; in our experimental system, <italic>τ</italic> is 0.1 s.</p>
<p>The measurement model related to the pedestrian is then:
<disp-formula id="FD2">
<label>(2)</label>
<mml:math id="mm2" display="block">
<mml:semantics id="sm2">
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">H</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:msub>
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">H</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:msub>
<mml:mtext mathvariant="bold-italic">u</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="italic">Δ</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>cos</mml:mo>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mo>sin</mml:mo>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>sin</mml:mo>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>cos</mml:mo>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>cos</mml:mo>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mo>sin</mml:mo>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>sin</mml:mo>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>cos</mml:mo>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">u</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="italic">Δ</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold><italic>z</italic></bold> = (<italic>z<sub>x</sub></italic>,<italic>z<sub>y</sub></italic>)<italic><sup>T</sup></italic> is the measurement represented in <italic>Σ<sub>i</sub></italic>. <italic>Δ</italic><bold><italic>z</italic></bold> is the measurement noise. <bold><italic>u</italic></bold><italic><sub>i</sub></italic> = (<italic>x<sub>i</sub></italic>, <italic>y<sub>i</sub></italic>)<sup><italic>T</italic></sup> is the position of the <italic>i</italic>-th robot in <italic>Σ<sub>w</sub></italic>. <italic>ψ<sub>i</sub></italic> is the orientation of the <italic>i</italic>-th robot in <italic>Σ<sub>w</sub></italic>. The posture (position and orientation) <bold><italic>x</italic></bold><italic><sub>i</sub></italic> = (<italic>x<sub>i</sub></italic>, <italic>y<sub>i</sub></italic>, <italic>ψ<sub>i</sub></italic>)<italic><sup>T</sup></italic> is determined using the localization system described in Section 4.</p>
<p>From <xref rid="FD1" ref-type="disp-formula">Equation (1)</xref>, the pedestrian's posture <bold><italic>x̂</italic></bold> and its associated error covariance <bold><italic>P</italic></bold> are predicted using a Kalman filter [<xref ref-type="bibr" rid="b24-sensors-12-14489">24</xref>]:
<disp-formula id="FD3">
<label>(3)</label>
<mml:math id="mm3" display="block">
<mml:semantics id="sm3">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="bold-italic">F</mml:mtext>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="bold-italic">F</mml:mtext>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:msup>
<mml:mtext mathvariant="bold-italic">F</mml:mtext>
<mml:mi>T</mml:mi></mml:msup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">GQ</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:msup>
<mml:mtext mathvariant="bold-italic">G</mml:mtext>
<mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold><italic>Q</italic></bold> is the covariance of the plant noise <italic>Δ<bold>x</bold></italic>.</p>
<p>To track multiple pedestrians, as shown in <xref ref-type="fig" rid="f4-sensors-12-14489">Figure 4(a)</xref>, a validation region with a constant radius is set around the predicted position (<bold><italic>x</italic></bold><italic>̂</italic>, <italic>ŷ</italic>) of each tracked pedestrian. The measurements inside the validation region are considered to be obtained from the tracked pedestrian, and it is applied to the track updated with the Kalman filter. On the other hand, the measurements outside the validation region are considered to be false alarms, and are therefore, discarded. From <xref rid="FD2" ref-type="disp-formula">Equations (2)</xref> and <xref rid="FD3" ref-type="disp-formula">(3)</xref>, the posture of the tracked pedestrian and its associated error covariance are updated by:
<disp-formula id="FD4">
<label>(4)</label>
<mml:math id="mm4" display="block">
<mml:semantics id="sm4">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">K</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">H</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">H</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:msub>
<mml:mtext mathvariant="bold-italic">u</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">K</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:msub>
<mml:mtext mathvariant="bold-italic">H</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold><italic>K</italic></bold><sub>(</sub><italic><sub>t</sub></italic><sub>)</sub> = <bold><italic>P</italic></bold><sub>(</sub><italic><sub>t</sub></italic><sub>/</sub><italic><sub>t</sub></italic><sub>−1)</sub><bold><italic>H</italic></bold><sub><italic>i</italic><sub>(<italic>t</italic>)</sub></sub><italic><sup>T</sup></italic><bold><italic>S</italic></bold><sub>(</sub><italic><sub>t</sub></italic><sub>/</sub><italic><sub>t</sub></italic><sub>−1)</sub><sup>−1</sup>, and <bold><italic>S</italic></bold><sub>(</sub><italic><sub>t</sub></italic><sub>/</sub><italic><sub>t</sub></italic><sub>−1)</sub> = <bold><italic>H</italic></bold><sub><italic>i</italic><sup>(<italic>t</italic>)</sup></sub><bold><italic>P</italic></bold><sub>(</sub><italic><sub>t</sub></italic><sub>/</sub><italic><sub>t</sub></italic><sub>−1)</sub><bold><italic>H</italic></bold><sub><italic>i</italic><sup>(<italic>t</italic>)</sup></sub><italic><sup>T</sup></italic> + <bold><italic>R</italic></bold><sub>(</sub><italic><sub>t</sub></italic><sub>)</sub>. <bold><italic>R</italic></bold> is the covariance of the measurement noise <italic>Δ<bold>z</bold></italic>.</p>
<p>In our simulation and experiment described in Section 5, the radius of the validation region is set at 1.0 m. The covariances of the plant and measurement noises in <xref rid="FD3" ref-type="disp-formula">Equations (3)</xref> and <xref rid="FD4" ref-type="disp-formula">(4)</xref> are set at <bold><italic>Q</italic></bold> = diag (1.0 m<sup>2</sup>/s<sup>4</sup>, 1.0 m<sup>2</sup>/s<sup>4</sup>) and <bold><italic>R</italic></bold> = diag (0.01 m<sup>2</sup>, 0.01 m<sup>2</sup>), respectively.</p>
<p>In crowded environments, as shown in <xref ref-type="fig" rid="f4-sensors-12-14489">Figures 4(b–d)</xref>, multiple measurements exist inside a validation region; multiple tracked pedestrians also compete for measurements. To achieve a reliable data association (matching of tracked pedestrians and measurements), we apply a global-nearest-neighbor (GNN) algorithm [<xref ref-type="bibr" rid="b25-sensors-12-14489">25</xref>].</p>
<p>We consider that, in a validation region, <italic>J</italic> pedestrians exist and <italic>K</italic> measurements are received, where <italic>J</italic> does not necessarily equal <italic>K</italic>. We then define the distance measure <italic>λ<sub>jk</sub></italic> from the <italic>j</italic>-th tracked pedestrian to the <italic>k</italic>-th measurement, where <italic>j</italic> = 1,2, …, <italic>J</italic> and <italic>k</italic> = 1,2, …, <italic>K</italic> as:
<disp-formula id="FD5">
<label>(5)</label>
<mml:math id="mm5" display="block">
<mml:semantics id="sm5">
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>k</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">u</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>j</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mi>T</mml:mi></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">S</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>j</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mmultiscripts>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">u</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>j</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mprescripts/>
<mml:none/>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:mmultiscripts></mml:mrow></mml:msqrt></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold><italic>S</italic></bold><sub><italic>j</italic><sup>(<italic>t</italic>/<italic>t</italic>−1)</sup></sub> = <bold><italic>H</italic></bold><sub><italic>j</italic><sup>(<italic>t</italic>)</sup></sub><bold><italic>P</italic></bold><sub><italic>j</italic><sup>(<italic>t</italic>/<italic>t</italic>−1)</sup></sub><bold><italic>H</italic></bold><sub><italic>j</italic><sup>(<italic>t</italic>)</sup></sub><italic><sup>T</sup></italic> + <bold><italic>R</italic></bold>(<italic>t</italic>), and <bold><italic>u</italic></bold><sub><italic>j</italic><sup>(<italic>t</italic>/<italic>t</italic>−1)</sup></sub> is the predicted position of the <italic>j</italic>-th tracked pedestrian.</p>
<p>We then define the following cost matrix <italic><bold>Λ</bold></italic>:
<disp-formula id="FD6">
<label>(6)</label>
<mml:math id="mm6" display="block">
<mml:semantics id="sm6">
<mml:mrow>
<mml:mtext mathvariant="bold-italic">Λ</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mn>12</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mo>⋯</mml:mo></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi>K</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mn>21</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mn>22</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mo>⋯</mml:mo></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>K</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>⋮</mml:mo></mml:mtd>
<mml:mtd>
<mml:mo>⋮</mml:mo></mml:mtd>
<mml:mtd>
<mml:mo>⋱</mml:mo></mml:mtd>
<mml:mtd>
<mml:mo>⋮</mml:mo></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mo>⋯</mml:mo></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mi>K</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula></p>
<p>We assume that the <italic>a</italic>(<italic>j</italic>)-th measurement is assigned to the <italic>j</italic>-th pedestrian. The data association is achieved by finding the <italic>a</italic>(<italic>j</italic>) based on the Munkres algorithm [<xref ref-type="bibr" rid="b26-sensors-12-14489">26</xref>] so that 
<inline-formula>
<mml:math id="mm7" display="inline">
<mml:semantics id="sm7">
<mml:mrow>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>J</mml:mi></mml:msubsup>
<mml:mrow>
<mml:msub>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>a</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> can be minimized. It is noted that if the <italic>k</italic>-th measurement does not exist inside the validation of the <italic>j</italic>-th tracked person, we set the distance measure at <italic>λ<sub>jk</sub></italic> = ∞.</p>
<p>Pedestrians always appear in and disappear from the LRS sensing area. They also face interaction and occlusion issues. In order to handle such conditions, we implement a tracking management system based on the following rules:
<list list-type="alpha-lower">
<list-item>
<p><italic>Track initiation</italic>: As shown in <xref ref-type="fig" rid="f4-sensors-12-14489">Figures 4(a–c)</xref>, the measurements that are not matched with any tracked pedestrians are considered to come from new pedestrians or false alarms, which disappear soon. Therefore, we tentatively initiate tracking of the measurements with Kalman filter. If the measurements are always visible in more than <italic>N</italic><sub>1</sub> s, they are considered to come from new pedestrians, and the tracking is continued. If the measurements disappear within <italic>N</italic><sub>1</sub> s, they are considered to be the false alarms, and the tentative tracking is terminated.</p></list-item>
<list-item>
<p><italic>Track termination</italic>: When the tracking pedestrians exit the sensing area of the LRS or they meet occlusion, no measurements exist within their validation regions. If no measurements arise from the temporal occlusion, the measurements appear again. We thus predict the positions of the tracking pedestrians with the Kalman filter. If the measurements appear again within <italic>N</italic><sub>2</sub> s, we proceed with the tracking. Otherwise (see <xref ref-type="fig" rid="f4-sensors-12-14489">Figure 4(e)</xref>), we terminate the tracking. In our simulation and experiment described in Section 5, we set <italic>N</italic><sub>1</sub> = 1.5 and <italic>N</italic><sub>2</sub> = 3.0 by trial and error.</p></list-item></list></p>
<p>For simplicity, in this paper, pedestrians are assumed to move at an almost constant velocity, and they are tracked using the usual Kalman filter. If the pedestrians move randomly, such as walking, running, going or stopping suddenly, and turning suddenly, using multi-model-based tracking can improve the tracking performance [<xref ref-type="bibr" rid="b14-sensors-12-14489">14</xref>,<xref ref-type="bibr" rid="b15-sensors-12-14489">15</xref>].</p></sec>
<sec>
<label>3.3.</label>
<title>Cooperative Tracking</title>
<p>When the robots are located near to each other, the tracking mode is switched to cooperative tracking. They communicate with each other and exchange their own tracking data, which consist of estimated positions and velocities of tracked pedestrians and their associated error covariances. Because tracking data are shared, each individual robot constantly tracks pedestrians both inside and outside its own LRS sensing area.</p>
<p>To elucidate cooperative tracking in detail, we consider two robots #1 and #2, as shown in <xref ref-type="fig" rid="f5-sensors-12-14489">Figure 5</xref>. The tracking data for the <italic>m</italic>-th pedestrian tracked by robot #1 is denoted by 
<inline-formula>
<mml:math id="mm8" display="inline">
<mml:semantics id="sm8">
<mml:mrow>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">I</mml:mtext>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">{</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>, where <italic>m</italic> = 1,2, …. 
<inline-formula>
<mml:math id="mm9" display="inline">
<mml:semantics id="sm9">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> denotes the estimate (position estimate 
<inline-formula>
<mml:math id="mm10" display="inline">
<mml:semantics id="sm10">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">q</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> and velocity estimate 
<inline-formula>
<mml:math id="mm11" display="inline">
<mml:semantics id="sm11">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">q</mml:mtext>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula>); 
<inline-formula>
<mml:math id="mm12" display="inline">
<mml:semantics id="sm12">
<mml:mrow>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> is its associated error covariance. Similarly, the tracking data for the <italic>n</italic>-th pedestrian tracked by robot #2 is denoted by 
<inline-formula>
<mml:math id="mm13" display="inline">
<mml:semantics id="sm13">
<mml:mrow>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">I</mml:mtext>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">{</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>, where <italic>n</italic> = 1,2, …. We consider that robot #1 combines the tracking data sent from robot #2 with its own tracking data. Combining the tracking data of robot #1 with that of robot #2 can be achieved similarly.</p>
<p>First, we set a validation region with a constant radius around the position estimate 
<inline-formula>
<mml:math id="mm14" display="inline">
<mml:semantics id="sm14">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">q</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> of the <italic>m</italic>-th pedestrian tracked by robot #1. We consider the position estimate 
<inline-formula>
<mml:math id="mm15" display="inline">
<mml:semantics id="sm15">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">q</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> of the <italic>n</italic>-th pedestrian tracked by robot #2 as the measurement, and then, we can determine data association (one-to-one matching of pedestrians tracked by robots #1 and #2) using the GNN algorithm. The GNN-based data association in cooperative tracking is similar as one in individual tracking mentioned in Section 3.1. In our simulation and experiment described in Section 5, the radius of the validation region is set at 1.2 m.</p>
<p>As shown in <xref ref-type="fig" rid="f5-sensors-12-14489">Figure 5(a)</xref>, when a pedestrian is detected inside the sensing areas of both robots #1 and #2, the two estimates, <italic><bold>q</bold>̂</italic><sup>(1)</sup> and <italic><bold>q</bold>̂</italic><sup>(2)</sup>, of the pedestrian can be matched. For the matched pedestrian, robot #1 updates its own tracking data by the CI method [<xref ref-type="bibr" rid="b21-sensors-12-14489">21</xref>]:
<disp-formula id="FD7">
<label>(7)</label>
<mml:math id="mm16" display="block">
<mml:semantics id="sm16">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi>ω</mml:mi>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:msubsup>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi>ω</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:msubsup>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow>
<mml:mo>}</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi>ω</mml:mi>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi>ω</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow>
<mml:mo>}</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold><italic>I</italic></bold><sup>(1)</sup> = {<bold><italic>x̂</italic></bold><sup>(1)</sup>, <bold><italic>P</italic></bold><sup>(1)</sup>} and <bold><italic>I</italic></bold><sup>(2)</sup> = {<bold><italic>x̂</italic></bold><sup>(2)</sup>, <bold><italic>P</italic></bold><sup>(2)</sup>} denote the tracking data of the matched pedestrian. <bold><italic>x̂</italic></bold><sup>(1)+</sup> and <bold><italic>P</italic></bold><sup>(1)+</sup> denote the updated tracking data and its associated error covariance, respectively. The weight <italic>ω</italic> is selected using the Golden selection search (GSS) method so that the determinant of <bold><italic>P</italic></bold><sup>(1)+</sup> can be minimized under the constraint 0 ≤ <italic>ω</italic> ≤ 1. In simulation and experiment described in Section 5, the convergence threshold of the weight <italic>ω</italic> is set at 1.0*10<sup>−4</sup>. In this case, we can determine the appropriate weight <italic>ω</italic> by iterative calculation of less than twenty times.</p>
<p>As shown in <xref ref-type="fig" rid="f5-sensors-12-14489">Figure 5(b,c)</xref>, for non-matched pedestrian, robot #1 updates its own tracking data as follows:
<list list-type="alpha-lower">
<list-item>
<p>When a pedestrian appears inside the sensing area of robot #1 but outside that of robot #2, as shown in <xref ref-type="fig" rid="f5-sensors-12-14489">Figure 5(b)</xref>, robot #1 has the tracking data <bold><italic>I</italic></bold><sup>(1)</sup>, but robot #2 does not have <bold><italic>I</italic></bold><sup>(2)</sup>. Then, robot #1 sets <bold><italic>I</italic></bold><sup>(1)+</sup> = <bold><italic>I</italic></bold><sup>(1)</sup>.</p></list-item>
<list-item>
<p>When a pedestrian appears inside the sensing area of robot #2 but outside that of robot #1 as shown in <xref ref-type="fig" rid="f6-sensors-12-14489">Figure 6(c)</xref>, robot #2 has the tracking data <bold><italic>I</italic></bold><sup>(2)</sup>, but robot #1 does not have <bold><italic>I</italic></bold><sup>(1)</sup>. Then, robot #1 sets <bold><italic>I</italic></bold><sup>(1)+</sup> = <bold><italic>I</italic></bold><sup>(2)</sup>.</p></list-item></list></p>
<p>Cooperative tracking with three or more robots can be achieved in a similar manner. Decentralized data fusion provides better system scalability and reliability than centralized data fusion [<xref ref-type="bibr" rid="b21-sensors-12-14489">21</xref>]. Therefore, we combine the tracking data in a decentralized manner. Statistically, the tracking data are highly correlated. The conventional Kalman filter-based fusion hampers the development of a decentralized system because it needs to calculate the degree of their correlation. The CI method allows accurate fusion of the tracking data in a decentralized manner without the knowledge of the degree of their correlation. Therefore, we apply the CI algorithm.</p>
<p>Data association is important in pedestrian tracking. In this paper, we apply GNN-based data association to match the current measurement scan to the existing tracks. An alternative effective data association algorithm is multiple hypothesis tracking (MHT) [<xref ref-type="bibr" rid="b27-sensors-12-14489">27</xref>,<xref ref-type="bibr" rid="b28-sensors-12-14489">28</xref>]. In MHT, the feasible measurement-to-track association hypotheses are enumerated and evaluated up to a certain time depth. The MHT-based data association may outperform the GNN data association in crowded environments; however, in our experience, MHT data association makes real-time tracking difficult in crowded environments because it requires the evaluation of an exponentially increasing number of feasible data association hypotheses. The MHT data association also requires centralized data fusion with a central server [<xref ref-type="bibr" rid="b22-sensors-12-14489">22</xref>]. Therefore, we apply GNN data association.</p></sec></sec>
<sec>
<label>4.</label>
<title>Estimation of Robot Posture</title>
<p>To achieve cooperative tracking, each robot must always identify its own posture (position and orientation) with a high degree of accuracy in a world coordinate frame <italic>Σ<sub>w</sub></italic> and map the tracking data onto <italic>Σ<sub>w</sub></italic>, for which we apply RTK-GPS. The robot also determines its own posture by a scan matching based localization to improve the accuracy of its posture. If the robot cannot retrieve RTK-GPS information, only the scan matching based localization is applied to determine its own posture.</p>
<sec>
<label>4.1.</label>
<title>RTK-GPS Based Localization</title>
<p>The robot estimates its own velocity (linear/turning velocity) based on dead reckoning using the wheel encoders and gyro. The robot is assumed to move at nearly constant velocity. Motion and measurement models of the <italic>i</italic>-th robot are then given by <xref rid="FD8" ref-type="disp-formula">Equations (8)</xref> and <xref rid="FD9" ref-type="disp-formula">(9)</xref>, respectively:
<disp-formula id="FD8">
<label>(8)</label>
<mml:math id="mm17" display="block">
<mml:semantics id="sm17">
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">V</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">V</mml:mtext>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="italic">Δ</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">V</mml:mtext>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD9">
<label>(9)</label>
<mml:math id="mm18" display="block">
<mml:semantics id="sm18">
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>/</mml:mo>
<mml:mn>2</mml:mn></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mo>/</mml:mo>
<mml:mn>2</mml:mn></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">V</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="italic">Δ</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold><italic>V</italic></bold><italic><sub>i</sub></italic> = (<italic>v<sub>i</sub></italic>, <italic>ψ̇<sub>i</sub></italic>)<italic><sup>T</sup></italic>; <italic>v<sub>i</sub></italic> is the linear velocity and <italic>ψ̇<sub>i</sub></italic> is the turning velocity. <bold><italic>z</italic></bold><italic><sub>i</sub></italic> = (<italic>z<sub>l</sub></italic>, <italic>z<sub>r</sub></italic>, <italic>z<sub>ψ</sub></italic>)<italic><sup>T</sup></italic>; <bold><italic>z</italic></bold><italic><sub>l</sub></italic> and <italic>z<sub>r</sub></italic> are the velocities of the left and right wheels, respectively, measured by the wheel encoders , and <italic>z<sub>ψ</sub></italic> is the gyro output. <italic>Δ<bold>V</bold></italic><italic><sub>i</sub></italic> and <italic>Δ<bold>z</bold></italic><italic><sub>i</sub></italic> are unknown acceleration (disturbance) and the sensor noise, respectively. <italic>b</italic> is the tread length of the robot.</p>
<p>From <xref rid="FD8" ref-type="disp-formula">Equations (8)</xref> and <xref rid="FD9" ref-type="disp-formula">(9)</xref>, the robot velocity <bold><italic>V</italic></bold><italic><sub>i</sub></italic> is estimated using Kalman filter. Based on the velocity estimate <bold><italic>V̂</italic></bold><italic><sub>i</sub></italic>, we can determine the posture of the <italic>i</italic>-th robot <bold><italic>x</italic></bold><italic><sub>i</sub></italic> = (<italic>x<sub>i</sub></italic>, <italic>y<sub>i</sub></italic>, <italic>ψ<sub>i</sub></italic>)<italic><sup>T</sup></italic> and its associated covariance by <xref rid="FD10" ref-type="disp-formula">Equations (10)</xref> and <xref rid="FD11" ref-type="disp-formula">(11)</xref>, respectively:
<disp-formula id="FD10">
<label>(10)</label>
<mml:math id="mm19" display="block">
<mml:semantics id="sm19">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>V</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mi>τ</mml:mi>
<mml:mo>cos</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>ψ</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mover accent="true">
<mml:mi>ψ</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow>
<mml:mn>2</mml:mn></mml:mfrac>
<mml:mi>τ</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>V</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mi>τ</mml:mi>
<mml:mo>sin</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>ψ</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mover accent="true">
<mml:mi>ψ</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow>
<mml:mn>2</mml:mn></mml:mfrac>
<mml:mi>τ</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>ψ</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mover accent="true">
<mml:mi>ψ</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mi>τ</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD11">
<label>(11)</label>
<mml:math id="mm20" display="block">
<mml:semantics id="sm20">
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">f</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>∇</mml:mo>
<mml:msup>
<mml:msub>
<mml:mtext mathvariant="bold-italic">f</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mi>T</mml:mi></mml:msup>
<mml:mo>+</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:msup>
<mml:mtext mathvariant="bold-italic">f</mml:mtext>
<mml:mo>′</mml:mo></mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:msub>
<mml:mtext mathvariant="bold-italic">Q</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>∇</mml:mo>
<mml:msup>
<mml:msub>
<mml:msup>
<mml:mtext mathvariant="bold-italic">f</mml:mtext>
<mml:mo>′</mml:mo></mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold><italic>x̂</italic></bold><sub><italic>i</italic><sup>(<italic>t</italic>/<italic>t</italic>−1)</sup></sub> and <bold><italic>P</italic></bold><sub><italic>i</italic><sup>(<italic>t</italic>/<italic>t</italic>−1)</sup></sub> are the posture estimate and its error covariance, respectively. <bold><italic>Q</italic></bold><italic><sub>i</sub></italic> is the error covariance of <bold><italic>V̂</italic></bold><italic><sub>i</sub></italic>. ∇<bold><italic>f</italic></bold> and ∇<bold><italic>f′</italic></bold> are the Jacobian matrices of <xref rid="FD10" ref-type="disp-formula">Equation (10)</xref> at <bold><italic>x̂</italic></bold><sub><italic>i</italic><sup>(<italic>t</italic>/<italic>t</italic>−1)</sup></sub> and <bold><italic>V̂</italic></bold><italic><sub>i</sub></italic>, respectively.<italic>τ</italic> is a sampling period of sensors.</p>
<p>The measurement model related to the RTK-GPS is given by:
<disp-formula id="FD12">
<label>(12)</label>
<mml:math id="mm21" display="block">
<mml:semantics id="sm21">
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mtext mathvariant="italic">GPS</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="bold-italic">H</mml:mtext>
<mml:msub>
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="italic">Δ</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mtext mathvariant="italic">GPS</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="italic">Δ</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mtext mathvariant="italic">GPS</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold><italic>z</italic></bold><italic><sub>GPS</sub></italic> is the measurement; position of the <italic>i</italic>-th robot in <italic>Σ<sub>w</sub></italic>, and <italic>Δ<bold>z</bold></italic><italic><sub>GPS</sub></italic> is the measurement noise.</p>
<p>If the robot obtains posture information from the RTK-GPS, the robot can update its own posture and its associated covariance using Kalman filter as follows:
<disp-formula id="FD13">
<label>(13)</label>
<mml:math id="mm22" display="block">
<mml:semantics id="sm22">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">K</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo stretchy="false">[</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mrow>
<mml:msup>
<mml:mtext mathvariant="italic">GPS</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub>
<mml:mo>−</mml:mo>
<mml:mtext mathvariant="bold-italic">H</mml:mtext>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">K</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mtext mathvariant="bold-italic">H</mml:mtext>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold><italic>K</italic></bold><sub>(</sub><italic><sub>t</sub></italic><sub>)</sub> = <bold><italic>P</italic></bold><sub><italic>i</italic><sup>(<italic>t</italic>/<italic>t</italic>−1)</sup></sub><bold><italic>H</italic></bold><sub>(</sub><italic><sub>t</sub></italic><sub>)</sub><italic><sup>T</sup></italic> (<bold><italic>HP</italic></bold><sub><italic>i</italic><sup>(<italic>t</italic>/<italic>t</italic>−1)</sup></sub><bold><italic>H</italic></bold><italic><sup>T</sup></italic> + <bold><italic>R</italic></bold><sub><italic>GPS</italic><sup>(<italic>t</italic>)</sup>)</sub><sup>−1</sup>, and <bold><italic>R</italic></bold><italic><sub>GPS</sub></italic> is the covariance of the measurement noise <italic>Δ<bold>z</bold></italic><italic><sub>GPS</sub></italic>.</p></sec>
<sec>
<label>4.2.</label>
<title>Scan Matching Based Localization</title>
<p>When multiple robots are located near each other, they have an overlapping sensing area. They improve their own posture accuracy by exchanging their laser-scan images and matching them in their overlapping sensing area.</p>
<p>To elucidate scan matching based localization in detail, we consider two robots #1 and #2, as shown in <xref ref-type="fig" rid="f6-sensors-12-14489">Figure 6</xref>, where the two robots are located near each other and their sensing areas partially overlap. We define the posture of robot #2 relative to robot #1 by <sup>2</sup><bold><italic>z</italic></bold><sub>1</sub> = (<sup>2</sup><italic>x</italic><sub>1</sub>,<sup>2</sup><italic>y</italic><sub>1</sub>,<sup>2</sup><italic>ψ</italic><sub>1</sub>)<italic><sup>T</sup></italic> in <italic>Σ<sub>w</sub></italic>. Robot #1 broadcasts its own posture and a laser scan image obtained by its own LRS to robot #2. Robot #2 determines the relative posture, <sup>2</sup><bold><italic>z</italic></bold><sub>1</sub>, by matching its own laser scan image with that sent from robot #1 (Appendix). Hereafter, we call the laser scan matching for estimating relative posture as <italic>relative-scan matching</italic>.</p>
<p>Measurement model related to the relative-scan matching is given by:
<disp-formula id="FD14">
<label>(14)</label>
<mml:math id="mm23" display="block">
<mml:semantics id="sm23">
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mprescripts/>
<mml:none/>
<mml:mn>2</mml:mn></mml:mmultiscripts></mml:mrow>
<mml:msup>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:msup>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="italic">Δ</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mprescripts/>
<mml:none/>
<mml:mn>2</mml:mn></mml:mmultiscripts></mml:mrow>
<mml:msup>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>cos</mml:mo>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mo>sin</mml:mo>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>sin</mml:mo>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>cos</mml:mo>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:msup>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:msup>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>ψ</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:msup>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="italic">Δ</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mprescripts/>
<mml:none/>
<mml:mn>2</mml:mn></mml:mmultiscripts></mml:mrow>
<mml:msup>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold><italic>x̂</italic></bold><sub>1</sub> is the posture of robot #1 estimated by the RTK-GPS-based localization. <italic>Δ</italic><sup>2</sup><bold><italic>z</italic></bold><sub>1</sub> is the error of the relative posture. From <xref rid="FD13" ref-type="disp-formula">Equations (13)</xref> and <xref rid="FD14" ref-type="disp-formula">(14)</xref>, robot #2 can determine its own posture <bold><italic>x̂</italic></bold><sub>2</sub> and its associated error covariance <bold><italic>P</italic></bold><sub>2</sub> using Kalman filter:
<disp-formula id="FD15">
<label>(15)</label>
<mml:math id="mm24" display="block">
<mml:semantics id="sm24">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">K</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo stretchy="false">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mprescripts/>
<mml:none/>
<mml:mn>2</mml:mn></mml:mmultiscripts></mml:mrow>
<mml:msup>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>−</mml:mo>
<mml:mtext mathvariant="bold-italic">g</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:msup>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">x</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">K</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mtext>∇</mml:mtext>
<mml:msub>
<mml:mtext mathvariant="bold-italic">g</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:msub>
<mml:mtext mathvariant="bold-italic">P</mml:mtext>
<mml:msup>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold><italic>K</italic></bold><sub>(<italic>t</italic>)</sub> = <bold><italic>P</italic></bold><sub>2<sup>(<italic>t</italic>/<italic>t</italic>−1)</sup></sub>∇<bold><italic>g</italic></bold><sub>(<italic>t</italic>)</sub><italic><sup>T</sup></italic> (∇<bold><italic>g</italic></bold><sub>(<italic>t</italic>)</sub><bold><italic>P</italic></bold><sub>2<sup>(<italic>t</italic>/<italic>t</italic>−1)</sup></sub><bold>∇<italic>g</italic></bold><sub>(<italic>t</italic>)</sub><italic><sup>T</sup></italic>+<sup>2</sup><bold><italic>R</italic></bold><sub>1<sup>(<italic>t</italic>)</sup></sub>)<sup>−1</sup>. ∇<bold><italic>g</italic></bold> is the Jacobian matrix of <bold><italic>g</italic></bold> in <xref rid="FD14" ref-type="disp-formula">Equation (14)</xref> at <bold><italic>x̂</italic></bold><sub>2<sup>(<italic>t</italic>/<italic>t</italic>−1)</sup></sub>, and <sup>2</sup><bold><italic>R</italic></bold><sub>1</sub> is covariance of <italic>Δ</italic><sup>2</sup><bold><italic>z</italic></bold><sub>1</sub>.</p></sec></sec>
<sec sec-type="results">
<label>5.</label>
<title>Simulation and Experimental Results</title>
<sec>
<label>5.1.</label>
<title>Simulation Results</title>
<p>In the experiment described in Section 5.2, it is very difficult to recognize the true positions of the tracked pedestrians. Therefore, we evaluate the performance of the proposed method by simulating four-pedestrian tracking by two robots. As shown in <xref ref-type="fig" rid="f7-sensors-12-14489">Figure 7</xref>, two robots stops at the coordinates (<italic>x</italic>,<italic>y</italic>)=(−8.0,3.0)m and (7.0,−1.0)m, and pedestrians move at the velocity of 0.1–1.7 m/s; pedestrians #1 and #2 move side-by-side at the distance of 0.8 m from start point A, and pedestrians #3 and #4 move side-by-side at the distance of 0.8 m from start point B. Four pedestrians meet each other at point C. In the simulation, the pedestrians are assumed to be always detected correctly, and measurement noise of LRS is assumed to be uniform distribution between −0.05 m and 0.05 m. Simulation tool/software is self-produced using C++ language.</p>
<p><xref ref-type="fig" rid="f8-sensors-12-14489">Figure 8(a)</xref> shows the effect of tracking mode and data association methods to the tracking error; GNN and conventional nearest neighbor (NN) [<xref ref-type="bibr" rid="b24-sensors-12-14489">24</xref>] methods are applied for the data association. Tracking error is evaluated by the following root mean squared error (RMS):
<disp-formula id="FD16">
<label>(16)</label>
<mml:math id="mm25" display="block">
<mml:semantics id="sm25">
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="italic">RMS</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>4</mml:mn></mml:mfrac>
<mml:munderover>
<mml:mtext mathvariant="bold">∑</mml:mtext>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mn>4</mml:mn></mml:munderover>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">u</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">u</mml:mtext>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mi>T</mml:mi></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mtext mathvariant="bold-italic">u</mml:mtext>
<mml:mo>^</mml:mo></mml:mover>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">u</mml:mtext>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:msub>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msqrt></mml:mrow></mml:semantics></mml:math></disp-formula>where <bold><italic>û</italic></bold><sub><italic>i</italic><sup>(<italic>t</italic>)</sup></sub>=(<italic>x̂</italic><sub><italic>i</italic><sup>(<italic>t</italic>)</sup></sub>, <italic>ŷ</italic><sub><italic>i</italic><sup>(<italic>t</italic>)</sup></sub>)<italic><sup>T</sup></italic> and <bold><italic>u</italic></bold><sub><italic>i</italic><sup>(<italic>t</italic>)</sup></sub>=(<italic>x</italic><sub><italic>i</italic><sup>(<italic>t</italic>)</sup></sub>, <italic>y</italic><sub><italic>i</italic><sup>(<italic>t</italic>)</sup></sub>)<italic><sup>T</sup></italic> denote the position estimate and the true position, respectively, of the <italic>i</italic>-th pedestrian, where <italic>i</italic> = 1, 2, 3, 4, at the <italic>t</italic>-th laser scan.</p>
<p>First of all, we compare the result of cooperative tracking by GNN data association with that of individual tracking by GNN data association. Both tracking modes have the similar tracking error before 200 scan (20 s); however, individual tracking mode causes large tracking error after 200 scan. Because pedestrian #2 is shadowed by pedestrian #1 around 183 scan, robot #1 loses pedestrian #2 and large tracking error occurs in individual tracking mode after 200scan. However, pedestrian #2 is visible by robot #2 even around 183 scan, and thus cooperative tracking can maintain the accurate tracking after 200scan.</p>
<p>Both tracking modes temporarily cause large tracking error around 160 scan (around (<italic>x</italic>,<italic>y</italic>) = (−3.0,0.7)m in <xref ref-type="fig" rid="f7-sensors-12-14489">Figure 7</xref>). This reason is why pedestrian #3 is temporarily shadowed by pedestrian #4 and track lost then occurs.</p>
<p>NN-based data association very often causes incorrect matching of tracked pedestrians and LRS measurements, and this results in the track being lost. On the other side, GNN data association reduces the track lost. Therefore, the tracking error by GNN data association becomes smaller than that by NN data association. As the result, it is clear from <xref ref-type="fig" rid="f8-sensors-12-14489">Figure 8(a)</xref> that cooperative tracking by GNN data association provides better tracking performance than other methods.</p>
<p>Next, we simulate the effect of the data fusion methods for the cooperative tracking to the tracking error. For comparison purpose, we consider three data fusion methods: CI method, Kalman filter, and averaging method. In the Kalman filter, data fusion is achieved by considering the tracking data sent from other robots to be measurements. Based on the averaging method, each robot tracks pedestrians by simply averaging its own tracking data with the tracking data sent from other robots; the averaging method equals CI method by setting the weight <italic>ω</italic> = 0.5. In this simulation, GNN data association is always applied for the data association.</p>
<p><xref ref-type="fig" rid="f8-sensors-12-14489">Figure 8(b)</xref> shows the results. The Kalman filter and averaging method cause large tracking errors around 120 scans (around point C in <xref ref-type="fig" rid="f7-sensors-12-14489">Figure 7</xref>). The data fusion method is closely related to the data association method; the performance in data fusion affects that in data association, and vice versa. Compared to Kalman filter and average methods, CI method maintains the accurate tracking performance. From these simulations, we confirmed that cooperative tracking based on CI and GNN methods provides tracking performance better.</p></sec>
<sec>
<label>5.2.</label>
<title>Experimental Results</title>
<p>To evaluate the tracking method, we conducted an experiment in an outdoor environment shown in <xref ref-type="fig" rid="f9-sensors-12-14489">Figure 9</xref>. Three robots and three pedestrians move around in the environment as shown in <xref ref-type="fig" rid="f10-sensors-12-14489">Figure 10</xref>. The moving speed of the robots is less than 0.3 m/s. The walking speeds of pedestrians #1, #2, and #3 are less than 1.5 m/s, 1.5 m/s, and 3.7 m/s, respectively: At first, pedestrian #3 walks at the same speed of pedestrians #1 and #2, and he runs at a speed of 3.7 m/s on the way. The experimental time is 188 scans (18.8 s).</p>
<p><xref ref-type="fig" rid="f11-sensors-12-14489">Figure 11</xref> shows the results of pedestrian tracking only by individual tracking; figures (a), (b) and (c) show the tracks of three pedestrians estimated by robot #1, #2, and #3, respectively. Each robot partially tracks pedestrians because the pedestrians exist inside and outside the sensing area of the LRS.</p>
<p><xref ref-type="fig" rid="f12-sensors-12-14489">Figure 12</xref> shows the tracks of three pedestrians estimated by individual and cooperative tracking; because the three robots share the tracking data with each other, all three robots can track the three pedestrians for an extended period.</p>
<p><xref ref-type="fig" rid="f13-sensors-12-14489">Figure 13</xref> shows the duration of pedestrian tracking; figures (a), (b) and (c) show the times during which robots #1, #2 and #3, respectively, track pedestrians using individual tracking. <xref ref-type="fig" rid="f14-sensors-12-14489">Figure 14</xref> shows the duration of pedestrian tracking by the individual and cooperative tracking. From these results, cooperative tracking provides a better tracking performance than individual tracking; for example, cooperative tracking detects pedestrian #3 who runs into the road 34 scan (3.4 s) faster than individual tracking. The faster the pedestrians can be detected, the safer becomes robot's navigation.</p></sec></sec>
<sec sec-type="conclusions">
<label>6.</label>
<title>Conclusions</title>
<p>This paper presents a laser-based pedestrian tracking method using multiple mobile robots. Pedestrians were tracked by each robot using Kalman filter and GNN based data association. The tracking data obtained by each robot was broadcast to others robots and was combined by the CI method. Our method shares the pedestrian tracking data with all robots, and thus, collectively they can always recognize pedestrians that may be invisible to individual robots. The method was validated by simulation and experiment. Our tracking system worked effectively in a decentralized manner without any central server.</p>
<p>In the experiment, three pedestrians were tracked in a sparse environment. We will next conduct pedestrian tracking experiments in crowded environments. To achieve cooperative tracking, the robots must always identify their own postures with a high degree of accuracy in a common coordinate frame, for which, in this paper, we applied two localization methods: RTK-GPS-based and relative-scan matching-based. However, in outdoor environments such as areas surrounded by high buildings and roadside trees, it is difficult for robots to obtain posture information accurately by GPS due to GPS multipath and diffraction problems and so on. To cope with this problem, we will embed a simultaneously localization and mapping (SLAM) method into our tracking system; SLAM-GPS fusion based localization will always maintain a high degree of positioning accuracy, and therefore, it will enhance the robustness of our cooperative pedestrian tracking system in GPS-denied environments such as urban cities.</p></sec></body>
<back>
<ack>
<p>This study was partially supported by Scientific Grant #23560305, Japan Society for the Promotion of Science (JSPS).</p></ack>
<app-group>
<app id="app1">
<title>Appendix</title>
<sec>
<title>Relative-Scan Matching</title>
<p>We determine the posture of robot #2 <sup>2</sup><bold><italic>z</italic></bold><sub>1</sub> = (<sup>2</sup><italic>x</italic><sub>1</sub>,<sup>2</sup><italic>y</italic><sub>1</sub>,<sup>2</sup><italic>ψ</italic><sub>1</sub>)<italic><sup>T</sup></italic> relative to that of robot #1 based on laser-scan matching method. The matching is based on point-to-point scan matching by the iterative closest point (ICP) algorithm [<xref ref-type="bibr" rid="b29-sensors-12-14489">29</xref>].</p>
<p>From the laser scan images taken by robots #1 and #2, we compute the relative posture <sup>2</sup><bold><italic>z</italic></bold><sub>1</sub> using the weighted least-squares method; the cost function is given as:
<disp-formula id="FD17">
<label>(A1)</label>
<mml:math id="mm26" display="block">
<mml:semantics id="sm26">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:munderover>
<mml:mtext mathvariant="bold">∑</mml:mtext>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mrow>
<mml:mn>541</mml:mn></mml:mrow></mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:msub>
<mml:mtext mathvariant="bold-italic">q</mml:mtext>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mtext mathvariant="bold-italic">R</mml:mtext>
<mml:msub>
<mml:mtext mathvariant="bold-italic">p</mml:mtext>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>+</mml:mo>
<mml:mtext mathvariant="bold-italic">T</mml:mtext>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:semantics></mml:math></disp-formula>where 
<inline-formula>
<mml:math id="mm27" display="inline">
<mml:semantics id="sm27">
<mml:mrow>
<mml:mtext mathvariant="bold-italic">R</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo>cos</mml:mo></mml:mrow>
<mml:mn>2</mml:mn></mml:msup>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo>sin</mml:mo></mml:mrow>
<mml:mn>2</mml:mn></mml:msup>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo>sin</mml:mo></mml:mrow>
<mml:mn>2</mml:mn></mml:msup>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo>cos</mml:mo></mml:mrow>
<mml:mn>2</mml:mn></mml:msup>
<mml:msub>
<mml:mi>ψ</mml:mi>
<mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> and 
<inline-formula>
<mml:math id="mm28" display="inline">
<mml:semantics id="sm28">
<mml:mrow>
<mml:mtext mathvariant="bold-italic">T</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mi>x</mml:mi>
<mml:mprescripts/>
<mml:none/>
<mml:mn>2</mml:mn></mml:mmultiscripts></mml:mrow>
<mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mmultiscripts>
<mml:mi>y</mml:mi>
<mml:mprescripts/>
<mml:none/>
<mml:mn>2</mml:mn></mml:mmultiscripts></mml:mrow>
<mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
<p>Here, <bold><italic>p</italic></bold><italic><sub>i</sub></italic> = (<italic>p<sub>xi</sub></italic>, <italic>p<sub>yi</sub></italic>)<italic><sup>T</sup></italic> , where <italic>i</italic> = 1, 2, …, 541, denotes the distance sample (scan image) from robot #1; <bold><italic>q</italic></bold><italic><sub>j</sub></italic> = (<italic>q<sub>xj</sub></italic>, <italic>q<sub>yj</sub></italic>)<italic><sup>T</sup></italic>, where <italic>j</italic> = 1, 2, … 541, denotes the distance sample from robot #2, as shown in <xref ref-type="fig" rid="f15-sensors-12-14489">Figure A1</xref>.</p>
<p>Each sample <bold><italic>p</italic></bold><italic><sub>i</sub></italic> corresponds to the minimum distance sample <bold><italic>q</italic></bold><italic><sub>j</sub></italic> of all samples in the scan by robot #2; <italic>w<sub>i</sub></italic> denotes the weight. <bold><italic>R</italic></bold> and <bold><italic>T</italic></bold> denote the rotational matrix and translational vector, respectively.</p>
<p>To reduce the effects of correspondence errors in the distance samples in the two laser images, we define weight <italic>w<sub>i</sub></italic> according to the errors between correspondence points <italic>w<sub>i</sub></italic> = (1+<italic>d<sub>ij</sub></italic> /<italic>C</italic>)<sup>−1</sup>, where <italic>d<sub>ij</sub></italic> denotes the distance error between the two laser images and <italic>C</italic> is a constant. In our experiment described in Section 5, <italic>C</italic> is set at 0.1.</p>
<p>From <xref rid="FD17" ref-type="disp-formula">Equation (A1)</xref>, the iterative least-squares method is used to update the relative posture 
<inline-formula>
<mml:math id="mm29" display="inline">
<mml:semantics id="sm29">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mmultiscripts>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mprescripts/>
<mml:none/>
<mml:mn>2</mml:mn></mml:mmultiscripts></mml:mrow>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula>as follows:
<disp-formula id="FD18">
<label>(A2)</label>
<mml:math id="mm30" display="block">
<mml:semantics id="sm30">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mmultiscripts>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mprescripts/>
<mml:none/>
<mml:mn>2</mml:mn></mml:mmultiscripts></mml:mrow>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mmultiscripts>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mprescripts/>
<mml:none/>
<mml:mn>2</mml:mn></mml:mmultiscripts></mml:mrow>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msup>
<mml:mtext mathvariant="bold-italic">H</mml:mtext>
<mml:mi>T</mml:mi></mml:msup>
<mml:mtext mathvariant="bold-italic">WH</mml:mtext>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msup>
<mml:msup>
<mml:mtext mathvariant="bold-italic">H</mml:mtext>
<mml:mi>T</mml:mi></mml:msup>
<mml:mtext mathvariant="bold-italic">W</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mtext mathvariant="bold-italic">q</mml:mtext>
<mml:mo>−</mml:mo>
<mml:mtext mathvariant="bold-italic">p</mml:mtext>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>where 
<inline-formula>
<mml:math id="mm31" display="inline">
<mml:semantics id="sm31">
<mml:mrow>
<mml:mtext mathvariant="bold-italic">p</mml:mtext>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">p</mml:mtext>
<mml:mn>1</mml:mn>
<mml:mi>T</mml:mi></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">p</mml:mtext>
<mml:mn>2</mml:mn>
<mml:mi>T</mml:mi></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">p</mml:mtext>
<mml:mrow>
<mml:mn>541</mml:mn></mml:mrow>
<mml:mi>T</mml:mi></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>,
<inline-formula>
<mml:math id="mm32" display="inline">
<mml:semantics id="sm32">
<mml:mrow>
<mml:mtext mathvariant="bold-italic">q</mml:mtext>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">q</mml:mtext>
<mml:mn>1</mml:mn>
<mml:mi>T</mml:mi></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">q</mml:mtext>
<mml:mn>2</mml:mn>
<mml:mi>T</mml:mi></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mtext mathvariant="bold-italic">q</mml:mtext>
<mml:mrow>
<mml:mn>541</mml:mn></mml:mrow>
<mml:mi>T</mml:mi></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>, <bold><italic>W</italic></bold> = diag(<italic>w</italic><sub>1</sub>, <italic>w</italic><sub>2</sub>, …, <italic>w</italic><sub>541</sub>) and <bold><italic>H</italic></bold>=∂<bold><italic>p</italic></bold>/∂<sup>2</sup><bold><italic>z</italic></bold><sub>1</sub>.</p>
<p>The convergent value of 
<inline-formula>
<mml:math id="mm33" display="inline">
<mml:semantics id="sm33">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mmultiscripts>
<mml:mtext mathvariant="bold-italic">z</mml:mtext>
<mml:mprescripts/>
<mml:none/>
<mml:mn>2</mml:mn></mml:mmultiscripts></mml:mrow>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> gives the relative posture <sup>2</sup><bold><italic>z</italic></bold><sub>1</sub>.</p></sec></app></app-group>
<ref-list>
<title>References</title>
<ref id="b1-sensors-12-14489"><label>1.</label><citation citation-type="confproc"><article-title>People Detection and Tracking</article-title><conf-name>Proceedings of the IEEE International Conference on Robotics and Automation Workshop</conf-name><conf-loc>Kobe, Japan</conf-loc><conf-date>12–17 May 2009</conf-date></citation></ref>
<ref id="b2-sensors-12-14489"><label>2.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jia</surname><given-names>Z.</given-names></name><name><surname>Balasuriya</surname><given-names>A.</given-names></name><name><surname>Challa</surname><given-names>S.</given-names></name></person-group><article-title>Autonomous Vehicles Navigation with Visual Target Tracking Technical Approaches</article-title><source>Algorithms</source><year>2008</year><volume>1</volume><fpage>153</fpage><lpage>182</lpage><pub-id pub-id-type="doi">10.3390/a1020153</pub-id></citation></ref>
<ref id="b3-sensors-12-14489"><label>3.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Arras</surname><given-names>K.O.</given-names></name><name><surname>Mozos</surname><given-names>O.M.</given-names></name></person-group><article-title>Special issue on people detection and tracking</article-title><source>Int. J. Soc. Robot.</source><year>2010</year><volume>2</volume><fpage>1</fpage><lpage>107</lpage><pub-id pub-id-type="doi">10.1007/s12369-010-0044-0</pub-id></citation></ref>
<ref id="b4-sensors-12-14489"><label>4.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Ogawa</surname><given-names>T.</given-names></name><name><surname>Sakai</surname><given-names>H.</given-names></name><name><surname>Suzuki</surname><given-names>Y.</given-names></name><name><surname>Takagi</surname><given-names>K.</given-names></name><name><surname>Morikawa</surname><given-names>K.</given-names></name></person-group><article-title>Pedestrian Detection and Tracking using In-Vehicle Lidar for Automotive Application</article-title><conf-name>Proceedings of the IEEE Intelligent Vehicles Symposium</conf-name><conf-loc>Baden-Baden, Germany</conf-loc><conf-date>5–9 June 2011</conf-date><fpage>734</fpage><lpage>739</lpage></citation></ref>
<ref id="b5-sensors-12-14489"><label>5.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Scholer</surname><given-names>F.</given-names></name><name><surname>Behley</surname><given-names>J.</given-names></name><name><surname>Steinhage</surname><given-names>V.</given-names></name><name><surname>Schulz</surname><given-names>D.</given-names></name><name><surname>Cremers</surname><given-names>A.B.</given-names></name></person-group><article-title>Person Tracking in Three-Dimensional Laser Range Data with Explicit Occlusion Adaption</article-title><conf-name>Proceedings of the 2011IEEE International Conference on Robotics and Automation</conf-name><conf-loc>Shanghai, China</conf-loc><conf-date>9–13 May 2011</conf-date><fpage>1297</fpage><lpage>1303</lpage></citation></ref>
<ref id="b6-sensors-12-14489"><label>6.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hashimoto</surname><given-names>M.</given-names></name><name><surname>Ogata</surname><given-names>S.</given-names></name><name><surname>Oba</surname><given-names>F.</given-names></name><name><surname>Murayama</surname><given-names>T.</given-names></name></person-group><article-title>A Laser Based Multi-Target Tracking for Mobile Robot</article-title><source>Intell. Auton. Syst.</source><year>2006</year><volume>9</volume><fpage>135</fpage><lpage>144</lpage></citation></ref>
<ref id="b7-sensors-12-14489"><label>7.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Sato</surname><given-names>S.</given-names></name><name><surname>Hashimoto</surname><given-names>M.</given-names></name><name><surname>Takita</surname><given-names>M.</given-names></name><name><surname>Takagi</surname><given-names>K.</given-names></name><name><surname>Ogawa</surname><given-names>T.</given-names></name></person-group><article-title>Multilayer Lidar-Based Pedestrian Tracking in Urban Environments</article-title><conf-name>Proceedings of the IEEE Intelligent Vehicles Symposium</conf-name><conf-loc>San Diego, CA, USA</conf-loc><conf-date>21–24 June 2010</conf-date><fpage>849</fpage><lpage>854</lpage></citation></ref>
<ref id="b8-sensors-12-14489"><label>8.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hashimoto</surname><given-names>M.</given-names></name><name><surname>Matsui</surname><given-names>Y.</given-names></name><name><surname>Takahashi</surname><given-names>K.</given-names></name></person-group><article-title>Moving-Object Tracking with In-Vehicle Multi-Laser Range Sensors</article-title><source>J. Robot. Mechatron.</source><year>2008</year><volume>20</volume><fpage>367</fpage><lpage>377</lpage></citation></ref>
<ref id="b9-sensors-12-14489"><label>9.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Dias</surname><given-names>M.B.</given-names></name><name><surname>Zlot</surname><given-names>R.</given-names></name><name><surname>Kalra</surname><given-names>N.</given-names></name><name><surname>Stentz</surname><given-names>A.</given-names></name></person-group><article-title>Market-Based Multirobot Coordination: A Survey and Analysis</article-title><source>Proc. IEEE</source><year>2006</year><volume>94</volume><fpage>1257</fpage><lpage>1270</lpage><pub-id pub-id-type="doi">10.1109/JPROC.2006.876939</pub-id></citation></ref>
<ref id="b10-sensors-12-14489"><label>10.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Michael</surname><given-names>N.</given-names></name><name><surname>Fink</surname><given-names>J.</given-names></name><name><surname>Kumar</surname><given-names>V.</given-names></name></person-group><article-title>Experimental Testbed for Large Multirobot Teams</article-title><source>IEEE Robot. Autom. Mag.</source><year>2010</year><volume>15</volume><fpage>53</fpage><lpage>61</lpage></citation></ref>
<ref id="b11-sensors-12-14489"><label>11.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Jung</surname><given-names>B.</given-names></name><name><surname>Sukhatme</surname><given-names>G.S.</given-names></name></person-group><article-title>Cooperative Multi-Robot Target Tracking</article-title><conf-name>Proceedings of the 8th International Symposium on Distributed Autonomous Robotic Systems</conf-name><conf-loc>Minneapolis/St. Paul, MN, USA</conf-loc><conf-date>12–14 July 2006</conf-date><fpage>81</fpage><lpage>90</lpage></citation></ref>
<ref id="b12-sensors-12-14489"><label>12.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Li</surname><given-names>Y.</given-names></name><name><surname>Liu</surname><given-names>Y.</given-names></name><name><surname>Zhang</surname><given-names>H.</given-names></name><name><surname>Wang</surname><given-names>H.</given-names></name><name><surname>Cai</surname><given-names>X.</given-names></name><name><surname>Zhou</surname><given-names>D.</given-names></name></person-group><article-title>Distributed Target Tracking with Energy Consideration Using Mobile Sensor Networks</article-title><conf-name>Proceeding of 2008 IEEE/RSJ International Conference on Intelligent Robots and Systems</conf-name><conf-loc>Nice, France</conf-loc><conf-date>22–26 September 2008</conf-date><fpage>3280</fpage><lpage>3285</lpage></citation></ref>
<ref id="b13-sensors-12-14489"><label>13.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>La</surname><given-names>H.M.</given-names></name><name><surname>Sheng</surname><given-names>W.</given-names></name></person-group><article-title>Adaptive Flocking Control for Dynamic Target Tracking in Mobile Sensor Networks</article-title><conf-name>Proceedings of 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems</conf-name><conf-loc>St. Louis, MO, USA</conf-loc><conf-date>11–15 October 2009</conf-date><fpage>4843</fpage><lpage>4848</lpage></citation></ref>
<ref id="b14-sensors-12-14489"><label>14.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Hashimoto</surname><given-names>M.</given-names></name><name><surname>Konda</surname><given-names>T.</given-names></name><name><surname>Bai</surname><given-names>Z.</given-names></name><name><surname>Takahashi</surname><given-names>K.</given-names></name></person-group><article-title>Laser-Based Tracking of Randomly Moving People in Crowded Environments</article-title><conf-name>Proceedings of the IEEE International Conference on Automation and Logistics</conf-name><conf-loc>Macau, China</conf-loc><conf-date>16–20 August 2010</conf-date><fpage>31</fpage><lpage>36</lpage></citation></ref>
<ref id="b15-sensors-12-14489"><label>15.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Hashimoto</surname><given-names>M.</given-names></name><name><surname>Bai</surname><given-names>Z.</given-names></name><name><surname>Konda</surname><given-names>T.</given-names></name><name><surname>Takahashi</surname><given-names>K.</given-names></name></person-group><article-title>Identification and Tracking Using Laser and Vision of People Maneuvering in Crowded Environments</article-title><conf-name>Proceedings of IEEE International Conference on Systems, Man and Cybernetics</conf-name><conf-loc>Istanbul, Turkey</conf-loc><conf-date>10–13 October 2010</conf-date><fpage>3145</fpage><lpage>3151</lpage></citation></ref>
<ref id="b16-sensors-12-14489"><label>16.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Fod</surname><given-names>A.</given-names></name><name><surname>Howard</surname><given-names>A.</given-names></name><name><surname>Mataric</surname><given-names>M.J.</given-names></name></person-group><article-title>A Laser-Based People Tracker</article-title><conf-name>Proceedings of the 2002 IEEE International Conference on Robotics and Automation</conf-name><conf-loc>Washington, DC, USA</conf-loc><conf-date>11–15 May 2002</conf-date><fpage>3024</fpage><lpage>3029</lpage></citation></ref>
<ref id="b17-sensors-12-14489"><label>17.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Nakamura</surname><given-names>K.</given-names></name><name><surname>Zhao</surname><given-names>H.</given-names></name><name><surname>Shibasaki</surname><given-names>R.</given-names></name><name><surname>Sakamoto</surname><given-names>K.</given-names></name><name><surname>Ooga</surname><given-names>T.</given-names></name><name><surname>Suzukawa</surname><given-names>N.</given-names></name></person-group><article-title>Tracking Pedestrians by Using Multiple Laser Range Scanners</article-title><conf-name>Proceedings of the ISPRS Congress</conf-name><conf-loc>Istanbul, Turkey</conf-loc><conf-date>12–23 July 2004</conf-date><volume>35</volume><fpage>1260</fpage><lpage>1265</lpage></citation></ref>
<ref id="b18-sensors-12-14489"><label>18.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Noguchi</surname><given-names>H.</given-names></name><name><surname>Mori</surname><given-names>T.</given-names></name><name><surname>Matsumoto</surname><given-names>T.</given-names></name><name><surname>Shimosaka</surname><given-names>M.</given-names></name><name><surname>Sato</surname><given-names>T.</given-names></name></person-group><article-title>Multiple-Person Tracking by Multiple Cameras and Laser Range Scanners in Indoor Environments</article-title><source>J. Robot. Mechatron.</source><year>2010</year><volume>22</volume><fpage>221</fpage><lpage>229</lpage></citation></ref>
<ref id="b19-sensors-12-14489"><label>19.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bellotto</surname><given-names>N.</given-names></name><name><surname>Hu</surname><given-names>H.</given-names></name></person-group><article-title>Multisensor-Based Human Detection and Tracking for Mobile Service Robots</article-title><source>IEEE Trans. Syst. Man Cybernetics Part B</source><year>2009</year><volume>39</volume><fpage>167</fpage><lpage>181</lpage><pub-id pub-id-type="doi">10.1109/TSMCB.2008.2004050</pub-id></citation></ref>
<ref id="b20-sensors-12-14489"><label>20.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jung</surname><given-names>B.</given-names></name><name><surname>Sukhatme</surname><given-names>G.S.</given-names></name></person-group><article-title>Real-time Motion Tracking from a Mobile Robot</article-title><source>Int. J. Soc. Robot.</source><year>2010</year><volume>2</volume><fpage>63</fpage><lpage>78</lpage><pub-id pub-id-type="doi">10.1007/s12369-009-0038-y</pub-id></citation></ref>
<ref id="b21-sensors-12-14489"><label>21.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Julier</surname><given-names>S.</given-names></name><name><surname>Uhlmann</surname><given-names>J.K.</given-names></name></person-group><source>General Decentralized Data Fusion with Covariance Intersection (CI). Handbook of Data Fusion</source><person-group person-group-type="editor"><name><surname>Hall</surname><given-names>D.L.</given-names></name><name><surname>Llinas</surname><given-names>J.</given-names></name></person-group><publisher-name>CRC Press</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>2001</year><fpage>12:1</fpage><lpage>12:25</lpage></citation></ref>
<ref id="b22-sensors-12-14489"><label>22.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Tsokas</surname><given-names>N.A.</given-names></name><name><surname>Kyriakopoulos</surname><given-names>K.J.</given-names></name></person-group><article-title>Multi-Robot Multiple Hypothesis Tracking for Pedestrian Tracking</article-title><source>Auton. Robot.</source><year>2012</year><volume>32</volume><fpage>63</fpage><lpage>79</lpage><pub-id pub-id-type="doi">10.1007/s10514-011-9259-7</pub-id></citation></ref>
<ref id="b23-sensors-12-14489"><label>23.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Chou</surname><given-names>C.T.</given-names></name><name><surname>Li</surname><given-names>J.Y.</given-names></name><name><surname>Chang</surname><given-names>M.F.</given-names></name><name><surname>Fu</surname><given-names>L.C.</given-names></name></person-group><article-title>Multi-Robot Cooperation Based Human Tracking System Using Laser Range Finder</article-title><conf-name>Proceedings of the 2011 IEEE International Conference on Robotics and Automation</conf-name><conf-loc>Shanghai, China</conf-loc><conf-date>9–13 May 2011</conf-date><fpage>532</fpage><lpage>537</lpage></citation></ref>
<ref id="b24-sensors-12-14489"><label>24.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Bar-Shalom</surname><given-names>Y.</given-names></name><name><surname>Fortmann</surname><given-names>T.E.</given-names></name></person-group><article-title>State Estimation for Linear Systems</article-title><source>Tracking and Data Association</source><publisher-name>Academic Press, Inc.</publisher-name><publisher-loc>San Diego, CA, USA</publisher-loc><year>1988</year><fpage>52</fpage><lpage>122</lpage></citation></ref>
<ref id="b25-sensors-12-14489"><label>25.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Konstantinova</surname><given-names>P.</given-names></name><name><surname>Udvarev</surname><given-names>A.</given-names></name><name><surname>Semerdjiev</surname><given-names>T.</given-names></name></person-group><article-title>A Study of a Target Tracking Algorithm Using Global Nearest Neighbor Approach</article-title><conf-name>Proceedings of the 4th International Conference on Systems and Technologies</conf-name><conf-loc>Ruse, Bulgaria</conf-loc><conf-date>18–19 June 2003</conf-date><fpage>290</fpage><lpage>295</lpage></citation></ref>
<ref id="b26-sensors-12-14489"><label>26.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kuhn</surname><given-names>H.W.</given-names></name></person-group><article-title>The Hungarian Method for the Assignment Problem</article-title><source>Nav. Res. Logist. Q</source><year>1955</year><volume>2</volume><fpage>83</fpage><lpage>98</lpage><pub-id pub-id-type="doi">10.1002/nav.3800020109</pub-id></citation></ref>
<ref id="b27-sensors-12-14489"><label>27.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Blackman</surname><given-names>S.S.</given-names></name></person-group><article-title>Multiple Hypothesis Tracking for Multiple Target Tracking</article-title><source>IEEE Aerosp. Elect. Syst. Mag.</source><year>2004</year><volume>19</volume><fpage>6</fpage><lpage>18</lpage></citation></ref>
<ref id="b28-sensors-12-14489"><label>28.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Tsokas</surname><given-names>N.A.</given-names></name><name><surname>Kyriakopoulos</surname><given-names>K.J.</given-names></name></person-group><article-title>Multi-Robot Multiple Hypothesis Tracking for Pedestrian Tracking with Detection Uncertainty</article-title><conf-name>Proceedings of the 2011 IEEE International Conference on Mediterranean Conference on Control and Automation</conf-name><conf-loc>Corfu, Greece</conf-loc><conf-date>20–23 June 2011</conf-date><fpage>315</fpage><lpage>320</lpage></citation></ref>
<ref id="b29-sensors-12-14489"><label>29.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lu</surname><given-names>F.</given-names></name><name><surname>Milios</surname><given-names>E.</given-names></name></person-group><article-title>Robot Pose Estimation in Unknown Environments by Matching 2D Range Scans</article-title><source>J. Intell. Robot. Syst.</source><year>1997</year><volume>20</volume><fpage>249</fpage><lpage>275</lpage></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Table</title>
<fig id="f1-sensors-12-14489" position="float">
<label>Figure 1.</label>
<caption>
<p>Pedestrian tracking system using multiple vehicles such as mobile robots, cars, and EPAMD.</p></caption>
<graphic xlink:href="sensors-12-14489f1.gif"/></fig>
<fig id="f2-sensors-12-14489" position="float">
<label>Figure 2.</label>
<caption>
<p>Overview of the mobile robot system.</p></caption>
<graphic xlink:href="sensors-12-14489f2.gif"/></fig>
<fig id="f3-sensors-12-14489" position="float">
<label>Figure 3.</label>
<caption>
<p>Tracking mode; robots #1 and #2 track a pedestrian in cooperative tracking mode, and robot #3 tracks a pedestrian in individual tracking mode. The red arc indicates the LRS sensing area.</p></caption>
<graphic xlink:href="sensors-12-14489f3.gif"/></fig>
<fig id="f4-sensors-12-14489" position="float">
<label>Figure 4.</label>
<caption>
<p>Tracking condition; the red circle and black diamond indicate the tracked pedestrian and the measurement, respectively. The dashed circle indicates the validation region. (<bold>a</bold>) Case 1. (<bold>b</bold>) Case 2. (<bold>c</bold>) Case 3. (<bold>d</bold>) Case 4. (<bold>e</bold>) Case 5.</p></caption>
<graphic xlink:href="sensors-12-14489f4.gif"/></fig>
<fig id="f5-sensors-12-14489" position="float">
<label>Figure 5.</label>
<caption>
<p>Conditions in cooperative tracking. (<bold>a</bold>) Case 1. (<bold>b</bold>) Case 2. (<bold>c</bold>) Case 3.</p></caption>
<graphic xlink:href="sensors-12-14489f5.gif"/></fig>
<fig id="f6-sensors-12-14489" position="float">
<label>Figure 6.</label>
<caption>
<p>Robot localization by relative-scan matching; the solid and open circles indicate images scanned by robots #1 and #2, respectively.</p></caption>
<graphic xlink:href="sensors-12-14489f6.gif"/></fig>
<fig id="f7-sensors-12-14489" position="float">
<label>Figure 7.</label>
<caption>
<p>Simulation condition. Red, blue, green and black lines indicate moving path of pedestrians #1, #2, #3 and #4, respectively.</p></caption>
<graphic xlink:href="sensors-12-14489f7.gif"/></fig>
<fig id="f8-sensors-12-14489" position="float">
<label>Figure 8.</label>
<caption>
<p>Tracking error. (<bold>a</bold>) Effect of data association method and tracking mode. (<bold>b</bold>) Effect of data fusion method. In (a), red, green, blue and black lines indicate the results by cooperative tracking using GNN, individual tracking using GNN, cooperative tracking using NN, and individual tracking using NN, respectively. In (b), red, green and black lines indicate the results by CI, Kalman filter and averaging method, respectively.</p></caption>
<graphic xlink:href="sensors-12-14489f8.gif"/></fig>
<fig id="f9-sensors-12-14489" position="float">
<label>Figure 9.</label>
<caption>
<p>View of experimental environments.</p></caption>
<graphic xlink:href="sensors-12-14489f9.gif"/></fig>
<fig id="f10-sensors-12-14489" position="float">
<label>Figure 10.</label>
<caption>
<p>Movement path of robots and pedestrians. (<bold>a</bold>) Robot path. (<bold>b</bold>) Pedestrian path.</p></caption>
<graphic xlink:href="sensors-12-14489f10.gif"/></fig>
<fig id="f11-sensors-12-14489" position="float">
<label>Figure 11.</label>
<caption>
<p>Pedestrian tracks estimated by individual tracking. (<bold>a</bold>) Robot #1. (<bold>b</bold>) Robot #2. (<bold>c</bold>) Robot #3. Red, blue and green lines indicate paths of pedestrians #1, #2 and #3, respectively.</p></caption>
<graphic xlink:href="sensors-12-14489f11.gif"/></fig>
<fig id="f12-sensors-12-14489" position="float">
<label>Figure 12.</label>
<caption>
<p>Pedestrian tracks estimated by individual and cooperative tracking. Red, blue and green lines indicate paths of pedestrians #1, #2 and #3, respectively.</p></caption>
<graphic xlink:href="sensors-12-14489f12.gif"/></fig>
<fig id="f13-sensors-12-14489" position="float">
<label>Figure 13.</label>
<caption>
<p>Duration of individual tracking. (<bold>a</bold>) Robot #1. (<bold>b</bold>) Robot #2. (<bold>c</bold>) Robot #3. The thin line indicates the time during which the pedestrian exits the sensing area of the robot. The bold line indicates the time during which the robot tracks pedestrians using the individual tracking.</p></caption>
<graphic xlink:href="sensors-12-14489f13.gif"/></fig>
<fig id="f14-sensors-12-14489" position="float">
<label>Figure 14.</label>
<caption>
<p>Duration of individual and cooperative tracking. The thin line indicates the time during which the pedestrian exits the sensing area of each robot. The bold line indicates the time during which the robot tracks pedestrians using the individual and cooperative tracking.</p></caption>
<graphic xlink:href="sensors-12-14489f14.gif"/></fig>
<fig id="f15-sensors-12-14489" position="float">
<label>Figure 15.</label>
<caption>
<p>Relative-scan matching. Solid and open circles indicate scan images taken by robots #1 and #2, respectively.</p></caption>
<graphic xlink:href="sensors-12-14489f15.gif"/></fig>
<table-wrap id="t1-sensors-12-14489" position="float">
<label>Table 1.</label>
<caption>
<p>Occupancy grid algorithm.</p></caption>
<table frame="box" rules="none">
<tbody>
<tr>
<td align="left" valign="top">
<list list-type="order">
<list-item>
<p>Let <italic>C</italic> [<italic>X</italic><sub>max</sub>, <italic>Y</italic><sub>max</sub>] be a two dimensional array of cells counting the number of observations, where <italic>X</italic><sub>max</sub> and <italic>Y</italic><sub>max</sub> are the maximum <italic>X</italic> and <italic>Y</italic> coordinates.</p></list-item>
<list-item>
<p>Intialize all cells in <italic>C</italic> to zero.</p></list-item>
<list-item>
<p>Make an observation with laser range scanner.</p></list-item>
<list-item>
<p>Determine which cells in <italic>C</italic> are occupied in the current laser scan image, and increment the occupied cells <italic>C</italic> [<italic>X</italic>, <italic>Y</italic>].</p></list-item>
<list-item>
<p>If <italic>C</italic> [<italic>X</italic>, <italic>Y</italic>] == 0, then we have no information on the cell—free space.</p></list-item>
<list-item>
<p>If <italic>C</italic> [<italic>X</italic>, <italic>Y</italic>] ≧ 7, then the cell is “static cell”—static object.</p></list-item>
<list-item>
<p>If 0 &lt; <italic>C</italic> [<italic>X</italic>, <italic>Y</italic>] &lt; 7, then the cell is “moving cell”—moving object; pedestrian.</p></list-item>
<list-item>
<p>Repeat from step 3.</p></list-item></list></td></tr></tbody></table></table-wrap></sec></back></article>
