## 3 Acoustic SLAM Based on Microphone Landmarks
### EKF-SLAM Based on Microphone Landmark Observation  
At the initial time, the system state vector contains only the robot's own pose information. When the robot observes a landmark in the environment, the position of the landmark in the global coordinate system can be calculated according to the method of microphone localization based on sound source as described in Section 2. Then add the landmark coordinates to the system state vector to update the map as shown in Equation (9). The robot moves and the sound signals are generated by the sound sources in sequence when inputting the control instruction. Then the robot continues to observe the microphone landmark in the environment. The current pose of the robot was predicted based on the robot motion information. The Jacobian matrix of the prediction model was updated as  
\[\mathbf{A}=\left[ \begin{array}{ccc}1&0&-\Delta y\\ 0&1&\Delta x\\ 0&0&1\end{array} \right] \tag{13}\]  
Figure 7: Observation model of the mobile robot. The blue dots marked numbers s1–s3 are the sound sources. The red pentagram marked M is the reference microphone and the white triangles marked numbers m1–m3 are the MTPs. where \((\Delta x,\Delta y)\) was the motion information obtained by the odometer measurement, and further the covariance matrix of the robot pose was updated as  
\[\mathbf{P_{rr}}=\mathbf{A}\times\mathbf{P_{rr}}\times\mathbf{A^{T}}+\mathbf{Q} \tag{14}\]  
The covariance matrix between the robot and the landmark wa updated as  
\[\mathbf{P_{ri}}=\mathbf{A}\times\mathbf{P_{ri}} \tag{15}\]  
In this paper, the \"closest distance method\" was applied to perform data association. It means by calculating the Euclidean distance between the feature landmarks observed at the current moment and the existing feature landmarks in the database, according to judging if it is within the allowable range of error, and finally whether the feature landmark observed is an existing landmark or not is determined. The existing landmarks had fixed coordinate values in the global coordinate system, according to which and the robot's predicted pose, the observation model was established by Equation (12). By comparing the measurement data obtained by Equation (7) with the landmark position calculated by Equation (12), the difference between them was calculated. At this point, the observation model Jacobian matrix was given by  
\[\mathbf{H}=\left[ \begin{array}{cc}-dx_{1}&-dy_{1}\\ \hline r_{1}&\dfrac{-dy_{1}}{r_{1}}\\ -dx_{2}&-dy_{2}\\ \hline r_{2}&\dfrac{-dy_{2}}{r_{2}}\\ -\bar{dx_{3}}&\dfrac{-dy_{3}}{r_{3}}\\ \end{array} \right. \left. \begin{array}{cc}dx_{1}\times sin\theta-dy_{1}\times cos \theta\\ \hline r_{1}\\ dx_{2}\times(-0.5 sin\theta+0.866 cos\theta)+dy_{2}\times(0.5 cos\theta+0.866 sin \theta)\\ \hline r_{2}\\ x_{3}\times(-0.5 sin\theta-0.866 cos\theta)+dy_{3}\times(0.5 cos\theta-0.866 sin \theta)\\ \hline r_{3}\\ \end{array} \right] \tag{16}\]  
\[dx_{i}=x_{m}-x_{i_{k}}\ \ \ \ (i=1,2,3) \tag{17}\]  
\[dy_{i}=y_{m}-y_{i_{k}}\ \ \ \ (i=1,2,3) \tag{18}\]  
\[r_{i}=\sqrt{\left(x_{m}-x_{i_{k}}\right)^{2}+\left(y_{m}-y_{i_{k}}\right)^{2} }\ \ \ \ (i=1,2,3) \tag{19}\]  
Here, \(r_{i}(i=1,2,3)\) was the distance between a feature landmark and the three sound sources at time \(k\), \(\left(x_{i_{k}},y_{i_{k}}\right)(i=1,2,3)\) was the coordinates of the three sound sources in the global coordinate system, respectively, \(\left(x_{m},y_{m}\right)\) represented the coordinates of this feature landmark in the global coordinate system. The covariance matrix of the current observation model was also updated. The Kalman gain represents the degree of confidence in the observed and calculated values when estimating the true state of the system. It was used to update the robot's current position and landmark pose, and it was derived as  
\[\mathbf{K}=\mathbf{P}\times\mathbf{H^{T}}\times\left(\mathbf{H}\times\mathbf{ P}\times\mathbf{H^{T}}+\mathbf{R}\right)^{-1} \tag{20}\]  
However, the new landmarks observed were added to the system status as the map of the current environment.