# A Mirror Detection Method in the Indoor Environment Using a Laser Sensor

Authors: Zhengping Li; Ming Huang; Yang Yang; Zhuoran Li; Lijun Wang
Journal: Mathematical Problems in Engineering
 (2022)

---

## Abstract

When laser scanning is performed in some indoor environment, because of the mirror reflection problem, the exact information of the scene cannot be restored. In this paper, a method to detect the mirror based on mirror symmetry principle is proposed. By finding the corresponding relationship between the actual object and its image in the mirror, the position of the mirror could be determined without integrating any other sensor information.


---

## Body

## 1. Introduction

SLAM (simultaneous localization and mapping) is a method used by robots for mapping and location [1]. It will provide basic information for robot navigation, obstacle avoidance, path planning, and execution of other tasks. So it is the key technique for a robot to explore independently in an unknown environment. SLAM will construct or update a map of an unknown environment based on sensor information obtained using an odometer, sonar, laser, and vision [2, 3]. Laser sensor has the advantage of high precision, and the measured data can be provided directly to the robot. It is widely used for SLAM algorithms. 2D reconstruction based on laser can reliably restore the real scene, but the mirror in the real scene cannot be restored. Domestic and foreign scholars have relatively few studies on this problem, so how to find the true position of the mirror in the environment is still a challenging issue.When the robot explores an indoor environment, mirrors may be set in the room or on the wall. Because mirrors reflect nearly all incident light, the laser sensor cannot measure the correct distance, which will lead to a failure of reconstruction. The location of the mirror in the map constructed by SLAM will not display correctly. Therefore, the detection of the mirror is still a challenging problem. As shown in Figure1(a), when a robot equipped with a laser sensor (Velodyne VLP-16) scans a scene with a mirror, it will construct a two-dimensional map of the environment, as shown in Figure 1(b). The result shows that the location of the mirror in the real world will not be detected and it creates a gap in the map. SLAM algorithm will identify the gap as the blank area, and obviously it may cause robot damage on perceiving the environment.Figure 1
(a) Real environment and (b) scanning scene by LIDAR.
(a)(b)In the past few years, some researchers have put forward some solutions to solve the problem for finding the location of the mirror in the environment. Yang and Wang used a sensor fusion method integrated with sonar sensor and laser sensor [4]. A laser sensor can provide detailed and accurate environment information. Sonar sensors can measure the distance of the mirrors. Through sensor fusion, mirrors and glasses could be detected. However, this method relies on additional hardware facilities and fusion algorithms, which makes the operation more complicated. Yang and Wang proposed a solution to detect and track mirror using only laser information [5]. The mirror is detected by utilizing the property of mirror symmetry. But its limitation lies in the use of the mirror step for the detection of mirror location; otherwise, it will not be detected. Tatoglu and Pochiraju only use laser sensors and the characteristics of specular objects to build an illumination model for detecting and identifying the object [6]. However, he did not make a detailed analysis of the mirror inspection. In recent years, Kim and Chung [7] and Wei et al. [8] have put forward some related algorithms to solve the problem on glass, not mirror.In this paper, we propose a new method to detect the location of mirrors. This method is different from the previous research. It does not need additional sensors and only uses the property of mirror symmetry. If there is any restriction on the boundary or the position of the mirror, we estimate and update the probability of the mirror’s existence by studying the symmetry between the robot and its images in the mirror to verify the location of mirror and find the boundary of the mirror through continuous motion of the robot. The experiment result shows that our method can detect the location of the mirror successfully and effectively.


## 2. Method

Because of reflection, the mirror cannot be detected with a laser sensor, but it will form a virtual image and the image can be detected with the laser sensor. Therefore, it is a simple and feasible method to detect the mirror based on the symmetries of real objects and their images in the mirror. However, because of the complexity of the environment, it is difficult to find symmetrical relationships from the data obtained with the laser sensor. Therefore, it is essential to find an object as the reference for mirror symmetry detection. Considering the robot will also form an image in the mirror, and we can estimate the position of the robot by the Rao-Blackwellised particle filter (RBPF) SLAM algorithm, so estimating the position of the mirror image of the robot will be a feasible method to detect the mirror.


### 2.1. Preparation Knowledge

Geometrical symmetry will be used to find the location of the potential mirror and determine the existence probability of a mirror with a probability model. Our method is based on the symmetry of the robot and its image, so the robot’s position and the mirror image position are the key information to determine the mirror [9, 10]. This algorithm uses the RBPF SLAM to estimate the position of the robot [11−13], which can represent the nonlinear motion model of the robot, and uses observation model to determine the coordinates of the obstacles. Our algorithm is integrated into RBPF SLAM and completes mirror detection task while constructing real-time map.The SLAM problem can be expressed as the problem of solving the estimation of the probabilitypx1:t,m/z1:t,u1:t−1, where x1:t=x1,x2,…,xt is the robot’s pose information, m is the map, z1:t=z1,z2,…,zt is the observation information, and u1:t−1=u1,u2,…,ut−1 is the control information. By RBPF separation, the localization and mapping are calculated separately to solve SLAM in a lower dimension, as follows:(1)px1:t,m|z1:t,u1:t−1=pm|x1:t,z1:t⋅px1:t|z1:t,u1:t−1,where px1:t,m|z1:t,u1:t−1 is the joint probability of pose and map, px1:t|z1:t,u1:t−1 is the separated pose state estimation, and pm|x1:t,z1:t is the separated map estimation. The formula above is applied to separate pose state estimation and map estimation. The prior probabilities of robot pose px1:t|z1:t,u1:t−1 can be estimated by RBPF particle filter. Each particle represents a trajectory and an environmental map. According to the independence of all maps, Kalman filter can be used to estimate maps recursively. The main steps of RBPF SLAM are listed as follows:(1)
Initialization: according to the prior probability of the robot’s motion modelpx0, N particles are selected and denoted as x0ii=1,2,…,N. The weight corresponding to each particle is ω˜0i=1/N.(2)
Sampling the particle set from the proposal distribution: according to the proposal distributionπ sampling, the next generation of the particle set xtii=1,2,…,N is generated from the particle set xt−1ii=1,2,…,N. Usually, the odometer motion model pxt|xt−1i,ut−1 is used as the proposal distribution π.(3)
Computing the important weights: using observation model to assign each particle a weight.(2)ωti=px1:ti|z1:t,u1:t−1πx1:ti|z1:t,u1:t−1,∝ωt−1i·pzt|mt−1i,xtipxti|xt−1i,ut−1πxt|x1:t−1i,z1:t,u1:t−1,∝ωt−1ipzt|mt−1i,xti.(4)
Resampling: taking the effective number of particlesNeff as a criterion for resampling. When the number of effective particles is less than Neff, resampling is carried out. According to the weights of particles, larger weights particles replace the smaller ones. After resampling, all particles have equal weights.(5)
Map updating: according to the known posex1:ti and observation z1:t, the map information of each particle is updated.Up to now, the estimated robot position is denoted asxr,yrt and its moving path is xr,yr1:t. Except for the posture of the robot in the world coordinate system, we also need to locate obstacles in the environment. This part needs to use the laser sensor scanning information, the current robot, and laser sensor posture information. The obstacle’s position is calculated as follows:(3)xtkytk=xtrytr+cosθ−sinθsinθcosθxk,sensyk,sens+ztkcosθ+θk,senssinθ+θk,sens,where xtk,ytk are the coordinates of the obstacle in the world coordinate system. xtr,ytr are the coordinates of the mobile platform in the world coordinate system. θ is the orientation of the mobile platform. xk,sens,yk,sens are the coordinate of the laser sensor in the moving platform coordinate system. ztk is the distance of the obstacle relative to the origin in the laser sensor coordinate system. θk,sens is the angle of the laser beam.


### 2.2. Proposed Mirror Detection Algorithm

As we can see from Figure1, the goal of mirror detection is to distinguish between the blank area and the mirror reflection area. We can make a comparison of the actual location of the robot with all the obstacles of laser scanning. If the robot’s image could be found and confirmed, we can determine whether the blank area is a real mirror.


#### 2.2.1. Symmetry Axis Detection

We can simplify the map of a scene as in Figure2, the red line represents a mirror, N3 represents an object in the environment, N2 is the mirror image of N3, R is estimated location of robot, and N1 is the robot’s image. The robot will build the map in real-time during the moving process. Moreover, the moving speed, direction, and size of its image in the mirror are completely consistent with the actual robot. So we can use this feature to find the location of the mirror.Figure 2
Simplified scene model.In the process of map building, we analyzed the laser scanning data at each time to find all the symmetry axis of the robot and its mirror image. If the obstacle scanned by the laser sensor is the robot’s mirror image, a mirror will locate at their symmetry axis. Because the mirror located in the environment will not move, the image of the robot will also move with the movement of the robot. Therefore, the symmetry axis, which is the location of the mirror, should always be at the same location at each moment. If the robot has the symmetric points about the same axis in successive moment, there will be a probability that a mirror exists. The basic process is shown in Figure3. We assume that the coordinate of the robot at the t time is xr,yrt. The obstacles scanned using the laser sensor are as follows: Ot=o1,o2,o3,…t. The coordinates of all obstacles are xo1,yo1,xo2,yo2,xo3,yo3,…t, respectively. We can work on simple geometric relationships. In the case of two points, which are located at x1,y1 and x2,y2, their symmetry axis is expressed as y=−1/kx−xc+yc. Here, k is the slope of two points’ connection and k=y2−y1/x2−x1, x1≠x2, and xc,yc are the center of the two points, where xc=x1+x2/2 and yc=y1+y2/2. Then, we can get all the symmetry axes set Lt=l1,l2,l3,…t at the time of t, and lm is the symmetry axis between the position of robot xr,yrt and object mxom,yom. As shown in Figure 3, l1,l2,andl3 are symmetry axes of points R,N1, R,N2, and R,N3, where the mirror is located at l1.Figure 3
The basic process of symmetry axis detection.During the subsequent scanning process, the robot needs to analyze all the symmetry axes obtained in the previous moment to determine whether the current position of the robot has a symmetrical point about all the symmetry axes.


#### 2.2.2. Probability Updating

During the process of robot movement, if there is a mirror, the mirror image will exist at the symmetry position of the robot and the symmetry point will not disappear when the robot moves. Therefore, we can analyze the symmetry of scanning points at each moment. This is a decisive factor in whether the robot can always find a symmetry point based on the same symmetry axis in a few successive moments. If this condition is met, the probability that the symmetry axis is the location of a mirror will increase. In contrast, the symmetry relation of the image and the robot about the same symmetry axis will disappear with the movement of the robot. Then, such a line is not the location of a mirror.The symmetry axes calculated in each moment are likely to be the position where the mirror is located. The algorithm calculates and updates the probability that the symmetry axis is the position of the mirror during the movement of the robot:(1)
At the momentt, we assume that every point of the laser scanning is likely to be a mirror image of the robot, which can obtain a symmetry axes set Lt.We assume that the probability is pm=p1,p2,p3,…, in which pm represents the probability of Mth symmetric axis is a mirror.(2)
With the movement of the robot, the laser sensor will obtain the environment data of successive time,t+1, t+2, t+3, etc. We will calculate whether the symmetrical position of the robot at each moment exists symmetry point about all symmetry axes and update pm according to following conditions.Condition 1.
Symmetry point release: when the robot moves to a new position, the previous symmetry point at previous moments disappears, as shown in Figure4. The robot moves from the location Rt to Rt+1, the original symmetry point Rt′ disappears, and symmetry point Rt+1′ is generated in the new position. Under this circumstance, it is possible that the original mirror image disappears and a new image is created in the new location while the robot is moving.Figure 4
Symmetry point release.Condition 2.
Symmetry point hold: when the robot moves to a new location, the symmetry point does not disappear at previous location, but a new symmetry point exists in the new location. As shown in Figure5, in this case, some obstacles, such as walls, exist in the symmetrical position of the symmetry axis, which coincides with the moving direction of the robot.
Assuming that the robot is moving within the range of the mirror, there is always a symmetrical point in the symmetrical position of the mirror. It is feasible to update the symmetry axis as the probability of the mirror according to whether symmetry point disappears in the previous moments. At the momentt+k, the probability of symmetry axis being a mirror could be written as(4)pt+k,m=pexist,t+k⋅1k∑kpstatus,k,where pexist,t+k represents the probability of whether a symmetry point exists in the symmetrical position of robot at the moment t+k. If symmetry point exists, pexist,t+k is assigned a larger value, or pexist,t+k is a smaller value. pstatus,k is the status probability whether symmetry point exists in the symmetrical position of the robot at previous k moment. If the mirror image at k moment disappears in the current position, pstatus,k is a larger value; however, if previous mirror image does not disappear, pstatus,k is a smaller value.
As the length of the mirror is constant, we need to detect the mirror in limited time with the movement of the robot; otherwise, if the robot moves outside of the mirror, the above conditions cannot be satisfied. In the process of updating probability, the parameterspexist,t+k and pstatus,k are selected based on several experiments. The experiments show that the result can meet the requirements when pexist,t+k is between 0.8 and 0.97 and pstatus,k is between 0.75 and 0.92. Thus, we choose α=0.9 as pexist,t+k, and β=0.8 as pstatus,k. The probability that the symmetry axis lm is a mirror could be written as(5)pm=1i∑k=1ipexist,t+k⋅1k∑kpstatus,k.
That is, the probability will be updated at each moment with the movement of robot and obtain an averaged value.μ=0.5 is selected to determine whether there is a mirror. When pm≥0.5, we regard that there is a mirror; otherwise, there is no mirror. The mirror detection algorithm flow is shown in Algorithm 1.
Algorithm 1: Mirror detection algorithm.
Input: xr,yrt， xo1,yo1,xo2,yo2,xo3,yo3,…(1)
Calculate the symmetry axisLt=l1,l2,l3,…t of xr,yrt and xo1,yo1,xo2,yo2,xo3,yo3,…(2)
for alllm∈Ltdo(3)
fori=t+1 to t+kdo(4
Updatexr,yri(5)
Calculate whether there is symmetry point ofxr,yri about lm(6)
if exist thenpexist,i=α(7)
elsepexist,i=1−α(8
forj=t to i−1 do(9)
Calculate whether there is symmetry point ofxr,yrj about lm(10)
if exist thenpstatus,j=β(11)
elsepstatus,j=1−β(12)
Calculate the probabilitypi,m of mirror lm at time i(13)
Calculate the average probabilitypi of mirror lm during k moment(14)
ifpi≥μ, mirror is detected(15)
else No mirrorFigure 5
Symmetry point hold.


### 2.3. Mirror Boundary Detection

Through the above steps, we can detect the symmetric axis where the mirror is located. However, the mirror boundary is still unknown. We need to find the starting and end point of the mirror. Our algorithm will traverse the path of the robot moving and find all the symmetry points of the symmetric axis. If we find successive symmetry points of the robot about the symmetric axis, the location where first symmetry point occurred is the starting point and the last one is the ending point. If the symmetry axis is found, it is perpendicular to the direction of the robot’s movement. It is impossible to find the boundary of the mirror. Then, the robot needs to move parallel to the mirror to ensure the boundary of the mirror can be found.If the first robot symmetry point is at theii moment, then the last robot symmetry point will be at the jj moment. The starting point of robot is xr,yrii, the symmetry point is xomi,yomiii, the ending point is xr,yrjj, and the symmetry point is xomj,yomjjj, then the boundary of mirror, respectively, is(6)xc,ycii=xrii+xomiii2,yrii+yomiii2,(7)xc,ycjj=xrjj+xomjjj2,yrjj+yomjjj2.


## 2.1. Preparation Knowledge

Geometrical symmetry will be used to find the location of the potential mirror and determine the existence probability of a mirror with a probability model. Our method is based on the symmetry of the robot and its image, so the robot’s position and the mirror image position are the key information to determine the mirror [9, 10]. This algorithm uses the RBPF SLAM to estimate the position of the robot [11−13], which can represent the nonlinear motion model of the robot, and uses observation model to determine the coordinates of the obstacles. Our algorithm is integrated into RBPF SLAM and completes mirror detection task while constructing real-time map.The SLAM problem can be expressed as the problem of solving the estimation of the probabilitypx1:t,m/z1:t,u1:t−1, where x1:t=x1,x2,…,xt is the robot’s pose information, m is the map, z1:t=z1,z2,…,zt is the observation information, and u1:t−1=u1,u2,…,ut−1 is the control information. By RBPF separation, the localization and mapping are calculated separately to solve SLAM in a lower dimension, as follows:(1)px1:t,m|z1:t,u1:t−1=pm|x1:t,z1:t⋅px1:t|z1:t,u1:t−1,where px1:t,m|z1:t,u1:t−1 is the joint probability of pose and map, px1:t|z1:t,u1:t−1 is the separated pose state estimation, and pm|x1:t,z1:t is the separated map estimation. The formula above is applied to separate pose state estimation and map estimation. The prior probabilities of robot pose px1:t|z1:t,u1:t−1 can be estimated by RBPF particle filter. Each particle represents a trajectory and an environmental map. According to the independence of all maps, Kalman filter can be used to estimate maps recursively. The main steps of RBPF SLAM are listed as follows:(1)
Initialization: according to the prior probability of the robot’s motion modelpx0, N particles are selected and denoted as x0ii=1,2,…,N. The weight corresponding to each particle is ω˜0i=1/N.(2)
Sampling the particle set from the proposal distribution: according to the proposal distributionπ sampling, the next generation of the particle set xtii=1,2,…,N is generated from the particle set xt−1ii=1,2,…,N. Usually, the odometer motion model pxt|xt−1i,ut−1 is used as the proposal distribution π.(3)
Computing the important weights: using observation model to assign each particle a weight.(2)ωti=px1:ti|z1:t,u1:t−1πx1:ti|z1:t,u1:t−1,∝ωt−1i·pzt|mt−1i,xtipxti|xt−1i,ut−1πxt|x1:t−1i,z1:t,u1:t−1,∝ωt−1ipzt|mt−1i,xti.(4)
Resampling: taking the effective number of particlesNeff as a criterion for resampling. When the number of effective particles is less than Neff, resampling is carried out. According to the weights of particles, larger weights particles replace the smaller ones. After resampling, all particles have equal weights.(5)
Map updating: according to the known posex1:ti and observation z1:t, the map information of each particle is updated.Up to now, the estimated robot position is denoted asxr,yrt and its moving path is xr,yr1:t. Except for the posture of the robot in the world coordinate system, we also need to locate obstacles in the environment. This part needs to use the laser sensor scanning information, the current robot, and laser sensor posture information. The obstacle’s position is calculated as follows:(3)xtkytk=xtrytr+cosθ−sinθsinθcosθxk,sensyk,sens+ztkcosθ+θk,senssinθ+θk,sens,where xtk,ytk are the coordinates of the obstacle in the world coordinate system. xtr,ytr are the coordinates of the mobile platform in the world coordinate system. θ is the orientation of the mobile platform. xk,sens,yk,sens are the coordinate of the laser sensor in the moving platform coordinate system. ztk is the distance of the obstacle relative to the origin in the laser sensor coordinate system. θk,sens is the angle of the laser beam.


## 2.2. Proposed Mirror Detection Algorithm

As we can see from Figure1, the goal of mirror detection is to distinguish between the blank area and the mirror reflection area. We can make a comparison of the actual location of the robot with all the obstacles of laser scanning. If the robot’s image could be found and confirmed, we can determine whether the blank area is a real mirror.


### 2.2.1. Symmetry Axis Detection

We can simplify the map of a scene as in Figure2, the red line represents a mirror, N3 represents an object in the environment, N2 is the mirror image of N3, R is estimated location of robot, and N1 is the robot’s image. The robot will build the map in real-time during the moving process. Moreover, the moving speed, direction, and size of its image in the mirror are completely consistent with the actual robot. So we can use this feature to find the location of the mirror.Figure 2
Simplified scene model.In the process of map building, we analyzed the laser scanning data at each time to find all the symmetry axis of the robot and its mirror image. If the obstacle scanned by the laser sensor is the robot’s mirror image, a mirror will locate at their symmetry axis. Because the mirror located in the environment will not move, the image of the robot will also move with the movement of the robot. Therefore, the symmetry axis, which is the location of the mirror, should always be at the same location at each moment. If the robot has the symmetric points about the same axis in successive moment, there will be a probability that a mirror exists. The basic process is shown in Figure3. We assume that the coordinate of the robot at the t time is xr,yrt. The obstacles scanned using the laser sensor are as follows: Ot=o1,o2,o3,…t. The coordinates of all obstacles are xo1,yo1,xo2,yo2,xo3,yo3,…t, respectively. We can work on simple geometric relationships. In the case of two points, which are located at x1,y1 and x2,y2, their symmetry axis is expressed as y=−1/kx−xc+yc. Here, k is the slope of two points’ connection and k=y2−y1/x2−x1, x1≠x2, and xc,yc are the center of the two points, where xc=x1+x2/2 and yc=y1+y2/2. Then, we can get all the symmetry axes set Lt=l1,l2,l3,…t at the time of t, and lm is the symmetry axis between the position of robot xr,yrt and object mxom,yom. As shown in Figure 3, l1,l2,andl3 are symmetry axes of points R,N1, R,N2, and R,N3, where the mirror is located at l1.Figure 3
The basic process of symmetry axis detection.During the subsequent scanning process, the robot needs to analyze all the symmetry axes obtained in the previous moment to determine whether the current position of the robot has a symmetrical point about all the symmetry axes.


### 2.2.2. Probability Updating

During the process of robot movement, if there is a mirror, the mirror image will exist at the symmetry position of the robot and the symmetry point will not disappear when the robot moves. Therefore, we can analyze the symmetry of scanning points at each moment. This is a decisive factor in whether the robot can always find a symmetry point based on the same symmetry axis in a few successive moments. If this condition is met, the probability that the symmetry axis is the location of a mirror will increase. In contrast, the symmetry relation of the image and the robot about the same symmetry axis will disappear with the movement of the robot. Then, such a line is not the location of a mirror.The symmetry axes calculated in each moment are likely to be the position where the mirror is located. The algorithm calculates and updates the probability that the symmetry axis is the position of the mirror during the movement of the robot:(1)
At the momentt, we assume that every point of the laser scanning is likely to be a mirror image of the robot, which can obtain a symmetry axes set Lt.We assume that the probability is pm=p1,p2,p3,…, in which pm represents the probability of Mth symmetric axis is a mirror.(2)
With the movement of the robot, the laser sensor will obtain the environment data of successive time,t+1, t+2, t+3, etc. We will calculate whether the symmetrical position of the robot at each moment exists symmetry point about all symmetry axes and update pm according to following conditions.Condition 1.
Symmetry point release: when the robot moves to a new position, the previous symmetry point at previous moments disappears, as shown in Figure4. The robot moves from the location Rt to Rt+1, the original symmetry point Rt′ disappears, and symmetry point Rt+1′ is generated in the new position. Under this circumstance, it is possible that the original mirror image disappears and a new image is created in the new location while the robot is moving.Figure 4
Symmetry point release.Condition 2.
Symmetry point hold: when the robot moves to a new location, the symmetry point does not disappear at previous location, but a new symmetry point exists in the new location. As shown in Figure5, in this case, some obstacles, such as walls, exist in the symmetrical position of the symmetry axis, which coincides with the moving direction of the robot.
Assuming that the robot is moving within the range of the mirror, there is always a symmetrical point in the symmetrical position of the mirror. It is feasible to update the symmetry axis as the probability of the mirror according to whether symmetry point disappears in the previous moments. At the momentt+k, the probability of symmetry axis being a mirror could be written as(4)pt+k,m=pexist,t+k⋅1k∑kpstatus,k,where pexist,t+k represents the probability of whether a symmetry point exists in the symmetrical position of robot at the moment t+k. If symmetry point exists, pexist,t+k is assigned a larger value, or pexist,t+k is a smaller value. pstatus,k is the status probability whether symmetry point exists in the symmetrical position of the robot at previous k moment. If the mirror image at k moment disappears in the current position, pstatus,k is a larger value; however, if previous mirror image does not disappear, pstatus,k is a smaller value.
As the length of the mirror is constant, we need to detect the mirror in limited time with the movement of the robot; otherwise, if the robot moves outside of the mirror, the above conditions cannot be satisfied. In the process of updating probability, the parameterspexist,t+k and pstatus,k are selected based on several experiments. The experiments show that the result can meet the requirements when pexist,t+k is between 0.8 and 0.97 and pstatus,k is between 0.75 and 0.92. Thus, we choose α=0.9 as pexist,t+k, and β=0.8 as pstatus,k. The probability that the symmetry axis lm is a mirror could be written as(5)pm=1i∑k=1ipexist,t+k⋅1k∑kpstatus,k.
That is, the probability will be updated at each moment with the movement of robot and obtain an averaged value.μ=0.5 is selected to determine whether there is a mirror. When pm≥0.5, we regard that there is a mirror; otherwise, there is no mirror. The mirror detection algorithm flow is shown in Algorithm 1.
Algorithm 1: Mirror detection algorithm.
Input: xr,yrt， xo1,yo1,xo2,yo2,xo3,yo3,…(1)
Calculate the symmetry axisLt=l1,l2,l3,…t of xr,yrt and xo1,yo1,xo2,yo2,xo3,yo3,…(2)
for alllm∈Ltdo(3)
fori=t+1 to t+kdo(4
Updatexr,yri(5)
Calculate whether there is symmetry point ofxr,yri about lm(6)
if exist thenpexist,i=α(7)
elsepexist,i=1−α(8
forj=t to i−1 do(9)
Calculate whether there is symmetry point ofxr,yrj about lm(10)
if exist thenpstatus,j=β(11)
elsepstatus,j=1−β(12)
Calculate the probabilitypi,m of mirror lm at time i(13)
Calculate the average probabilitypi of mirror lm during k moment(14)
ifpi≥μ, mirror is detected(15)
else No mirrorFigure 5
Symmetry point hold.


## 2.2.1. Symmetry Axis Detection

We can simplify the map of a scene as in Figure2, the red line represents a mirror, N3 represents an object in the environment, N2 is the mirror image of N3, R is estimated location of robot, and N1 is the robot’s image. The robot will build the map in real-time during the moving process. Moreover, the moving speed, direction, and size of its image in the mirror are completely consistent with the actual robot. So we can use this feature to find the location of the mirror.Figure 2
Simplified scene model.In the process of map building, we analyzed the laser scanning data at each time to find all the symmetry axis of the robot and its mirror image. If the obstacle scanned by the laser sensor is the robot’s mirror image, a mirror will locate at their symmetry axis. Because the mirror located in the environment will not move, the image of the robot will also move with the movement of the robot. Therefore, the symmetry axis, which is the location of the mirror, should always be at the same location at each moment. If the robot has the symmetric points about the same axis in successive moment, there will be a probability that a mirror exists. The basic process is shown in Figure3. We assume that the coordinate of the robot at the t time is xr,yrt. The obstacles scanned using the laser sensor are as follows: Ot=o1,o2,o3,…t. The coordinates of all obstacles are xo1,yo1,xo2,yo2,xo3,yo3,…t, respectively. We can work on simple geometric relationships. In the case of two points, which are located at x1,y1 and x2,y2, their symmetry axis is expressed as y=−1/kx−xc+yc. Here, k is the slope of two points’ connection and k=y2−y1/x2−x1, x1≠x2, and xc,yc are the center of the two points, where xc=x1+x2/2 and yc=y1+y2/2. Then, we can get all the symmetry axes set Lt=l1,l2,l3,…t at the time of t, and lm is the symmetry axis between the position of robot xr,yrt and object mxom,yom. As shown in Figure 3, l1,l2,andl3 are symmetry axes of points R,N1, R,N2, and R,N3, where the mirror is located at l1.Figure 3
The basic process of symmetry axis detection.During the subsequent scanning process, the robot needs to analyze all the symmetry axes obtained in the previous moment to determine whether the current position of the robot has a symmetrical point about all the symmetry axes.


## 2.2.2. Probability Updating

During the process of robot movement, if there is a mirror, the mirror image will exist at the symmetry position of the robot and the symmetry point will not disappear when the robot moves. Therefore, we can analyze the symmetry of scanning points at each moment. This is a decisive factor in whether the robot can always find a symmetry point based on the same symmetry axis in a few successive moments. If this condition is met, the probability that the symmetry axis is the location of a mirror will increase. In contrast, the symmetry relation of the image and the robot about the same symmetry axis will disappear with the movement of the robot. Then, such a line is not the location of a mirror.The symmetry axes calculated in each moment are likely to be the position where the mirror is located. The algorithm calculates and updates the probability that the symmetry axis is the position of the mirror during the movement of the robot:(1)
At the momentt, we assume that every point of the laser scanning is likely to be a mirror image of the robot, which can obtain a symmetry axes set Lt.We assume that the probability is pm=p1,p2,p3,…, in which pm represents the probability of Mth symmetric axis is a mirror.(2)
With the movement of the robot, the laser sensor will obtain the environment data of successive time,t+1, t+2, t+3, etc. We will calculate whether the symmetrical position of the robot at each moment exists symmetry point about all symmetry axes and update pm according to following conditions.Condition 1.
Symmetry point release: when the robot moves to a new position, the previous symmetry point at previous moments disappears, as shown in Figure4. The robot moves from the location Rt to Rt+1, the original symmetry point Rt′ disappears, and symmetry point Rt+1′ is generated in the new position. Under this circumstance, it is possible that the original mirror image disappears and a new image is created in the new location while the robot is moving.Figure 4
Symmetry point release.Condition 2.
Symmetry point hold: when the robot moves to a new location, the symmetry point does not disappear at previous location, but a new symmetry point exists in the new location. As shown in Figure5, in this case, some obstacles, such as walls, exist in the symmetrical position of the symmetry axis, which coincides with the moving direction of the robot.
Assuming that the robot is moving within the range of the mirror, there is always a symmetrical point in the symmetrical position of the mirror. It is feasible to update the symmetry axis as the probability of the mirror according to whether symmetry point disappears in the previous moments. At the momentt+k, the probability of symmetry axis being a mirror could be written as(4)pt+k,m=pexist,t+k⋅1k∑kpstatus,k,where pexist,t+k represents the probability of whether a symmetry point exists in the symmetrical position of robot at the moment t+k. If symmetry point exists, pexist,t+k is assigned a larger value, or pexist,t+k is a smaller value. pstatus,k is the status probability whether symmetry point exists in the symmetrical position of the robot at previous k moment. If the mirror image at k moment disappears in the current position, pstatus,k is a larger value; however, if previous mirror image does not disappear, pstatus,k is a smaller value.
As the length of the mirror is constant, we need to detect the mirror in limited time with the movement of the robot; otherwise, if the robot moves outside of the mirror, the above conditions cannot be satisfied. In the process of updating probability, the parameterspexist,t+k and pstatus,k are selected based on several experiments. The experiments show that the result can meet the requirements when pexist,t+k is between 0.8 and 0.97 and pstatus,k is between 0.75 and 0.92. Thus, we choose α=0.9 as pexist,t+k, and β=0.8 as pstatus,k. The probability that the symmetry axis lm is a mirror could be written as(5)pm=1i∑k=1ipexist,t+k⋅1k∑kpstatus,k.
That is, the probability will be updated at each moment with the movement of robot and obtain an averaged value.μ=0.5 is selected to determine whether there is a mirror. When pm≥0.5, we regard that there is a mirror; otherwise, there is no mirror. The mirror detection algorithm flow is shown in Algorithm 1.
Algorithm 1: Mirror detection algorithm.
Input: xr,yrt， xo1,yo1,xo2,yo2,xo3,yo3,…(1)
Calculate the symmetry axisLt=l1,l2,l3,…t of xr,yrt and xo1,yo1,xo2,yo2,xo3,yo3,…(2)
for alllm∈Ltdo(3)
fori=t+1 to t+kdo(4
Updatexr,yri(5)
Calculate whether there is symmetry point ofxr,yri about lm(6)
if exist thenpexist,i=α(7)
elsepexist,i=1−α(8
forj=t to i−1 do(9)
Calculate whether there is symmetry point ofxr,yrj about lm(10)
if exist thenpstatus,j=β(11)
elsepstatus,j=1−β(12)
Calculate the probabilitypi,m of mirror lm at time i(13)
Calculate the average probabilitypi of mirror lm during k moment(14)
ifpi≥μ, mirror is detected(15)
else No mirrorFigure 5
Symmetry point hold.


## 2.3. Mirror Boundary Detection

Through the above steps, we can detect the symmetric axis where the mirror is located. However, the mirror boundary is still unknown. We need to find the starting and end point of the mirror. Our algorithm will traverse the path of the robot moving and find all the symmetry points of the symmetric axis. If we find successive symmetry points of the robot about the symmetric axis, the location where first symmetry point occurred is the starting point and the last one is the ending point. If the symmetry axis is found, it is perpendicular to the direction of the robot’s movement. It is impossible to find the boundary of the mirror. Then, the robot needs to move parallel to the mirror to ensure the boundary of the mirror can be found.If the first robot symmetry point is at theii moment, then the last robot symmetry point will be at the jj moment. The starting point of robot is xr,yrii, the symmetry point is xomi,yomiii, the ending point is xr,yrjj, and the symmetry point is xomj,yomjjj, then the boundary of mirror, respectively, is(6)xc,ycii=xrii+xomiii2,yrii+yomiii2,(7)xc,ycjj=xrjj+xomjjj2,yrjj+yomjjj2.


## 3. Experiment

### 3.1. Experiment Environment

In our experiment, a Velodyne VLP-16 laser sensor is equipped on the top of the robot. The robot is moving constantly in an indoor environment, running FastSLAM and mirror detection algorithm. In order to prove the effectiveness of the algorithm, we choose three different scenarios, which basically reflect the different situations of indoor mirror distribution. They are single-sided mirror hanging on the wall, the single mirror is placed in the center of the hall alone, and the two mirrors are placed face-to-face, relatively. As shown in Figure6(a), a single mirror is hanging on the wall, which is a common situation in the indoor scene. The mirror and the wall are in the same plane; the algorithm needs to distinguish the mirror with the gap between the walls. Figure 6(b) shows a single mirror placed in a wider space, this scenario simulates certain indoor environment (such as some large shopping malls will mirror hung on the pillar, and the mirror will completely block the wall); the difficulty is that there is no reference for the mirror detection, and in order to increase the difficulty of detection and proof the effectiveness of the algorithm, we place two mirrors in a corridor, as shown in Figure 6(c). In this scene, two mirrors will image each other, which will greatly increase the complexity of the detection.Figure 6
Experiment environment. (a) The single mirror hanging on the wall (simulate framed mirror detection). (b) The single mirror is placed in the center of the hall (simulate the mirror detection without frame). (c) Two mirrors are placed face to face (simulate multisided mirror detection).
(a)(b)(c)The laser sensor used in our experiment is Velodyne VLP-16. It is a 3D laser sensor with 16 channels, and the vertical FOV of the laser sensor is±15 degrees. We extracted the scanning data of each channel and obtained its scanning data. The purpose of our algorithm is to detect mirrors in a 2D indoor environment. The channel with -1 degree FOV is selected, because this is the most effective channel to scan the mirror image of the robot. We realize mirror detection algorithm with the MATLAB and integrate it in the FastSLAM algorithm. The real data acquired by the laser are shown in Figure 7, and the map of the room reconstructed by the FastSLAM algorithm is shown in Figure 8.Figure 7
The real data by the laser sensor.Figure 8
The map reconstruction by SLAM algorithm.


### 3.2. Experiment Result

Mirror detection algorithm used the location of the robot estimated by SLAM and calculated all the symmetry axes of robot and the other obstacles scanned at each time. As shown in Figure9, the diamond indicates the location of robot and the map updates along with the movement of the robot by RBPF SLAM.Figure 9
The process of updating the map by RBPF SLAM.With the movement of the robot, the laser sensor will scan real-time information of the surrounding environment. SLAM algorithm will generate and update the map information constantly. The process of updating a map is shown in Figure10. When the robot moves to a new position, the laser sensor will obtain a set of new points representing the environment. Mirror detection algorithm will update probability of all the symmetry axes according to the information.Figure 10
The all-possible symmetry axes.In order to prove the effectiveness of the algorithm in a variety of situations, we made our robot move in different directions towards the mirror. In any case, our algorithm can find the location of the mirror accurately and efficiently.In the proposed algorithm, we gradually remove the symmetry axes with small probability to be a mirror. Usually, if a mirror image of the robot cannot be found in the new time or the mirror image of the previous time does not disappear, the probability of the symmetry axis is a mirror will decrease. These symmetry axes will be eliminated gradually. Finally, if a mirror exists in the room, asymmetry axis will stay at the position of the mirror located.When the location of mirror is determined, the algorithm will review the moving process of the robot. If successive symmetry points of the robot are found, the location where the first symmetry point occurred is the starting point and the last one is the ending point. Then, the edge of the mirror is confirmed.


#### 3.2.1. Case One

As shown in Figure6(a), this is the most common situation and the mirror is hung on the wall. The mirror and the wall are on one plane. The robot needs to distinguish the mirror from the gap between the walls. We put the mirror in a room with a relatively complex environment. In Figure 6(a), the artificial wall and some obstacles are placed in the room, which will create lots of gaps, and the robot is asked to move toward the mirror from different directions. When the robot moves parallel to the mirror, the result is as shown in Figure 11. When the robot moves towards the mirror with a certain angle, the result is as shown in Figure 12. As we can see from the result, no matter where the robot is or the moving direction is, only one symmetry axis could be detected finally. This is where the mirror is located.Figure 11
The result when the robot moves parallel to the mirror in the scenario in Figure6(a). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)Figure 12
The result when the robot moves towards the mirror with a certain angle in the scenario in Figure6(a). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)After the symmetry axis of the mirror is located, the starting and ending point of the mirror could be found about the symmetric axis. As shown in Figure13, the starting point could be found when the mirror image first appears about the symmetric axis and the ending point is the position where the mirror image last appears about the symmetric axis.Figure 13
The boundary of the mirror. (a, c) The starting point is found. (b, d) The ending point is found. The purple line is the location of the mirror. The orange line is the location of the mirror.
(a)(b)(c)(d)In this experiment, we completed the detection of a mirror with a frame in a more complicated environment. A different detection method is proposed in [5]. Although we both used the idea of mirror symmetry in the experiment, the specific methods are different. The algorithm in [5] first finds the edge of mirror, that is, it finds the two endpoints first and then calculates the coordinates of the object symmetry point between the two endpoints in the environment. Next, it determines whether the coordinates of the obtained symmetric points exist in the real environment. If the points that satisfy the condition is more than 50%, the algorithm regards the position as mirror. The limitation is when it comes to mirrors without the frame, the first step in the algorithm is to find the edge of the mirror that will be not held and also the mirror that cannot be detected.


#### 3.2.2. Case Two

As shown in Figure6(b), if a mirror is placed in the hall with nothing connected, the algorithm needs to detect the mirror when the robot goes through. Because there is no reference object beside the mirror, the key point is whether the robot can find the mirror quickly. As is shown in Figure 14, the robot is asked to move parallel to the mirror. When the robot moves toward the mirror at some angle and perpendicular to the mirror, the results are shown in Figures 15 and 116, respectively. As we can see, the symmetric axis will finally be detected in any circumstances. When the symmetry axis of the mirror is located, we can traverse the path of the robot moving to find the boundary of the mirror.Figure 14
Robot is moving parallel to the mirror in the scenario in Figure6(b). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)Figure 15
The robot is moving towards the mirror with a certain angle in the scenario in Figure6(b). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)Figure 16
The robot moves perpendicular to the mirror in the scenario figure. (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)


#### 3.2.3. Case Three

In order to further prove the validity of our algorithm, we make the environment more complex and place two mirrors facing each other in the corridor as shown in Figure6(c). Two mirrors may have a problem of imaging with each other, this may cause detection failure. The results are shown in Figure 17, because the nature of mirror image’s appearance and disappearance will not change, two mirrors could be detected successfully.Figure 17
The process of detecting two mirrors in the scenario in Figure6(c). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)


### 3.3. Comparative Results

Compared with existing methods, the contribution of this paper is that the mirror inspection task can be finished by using laser radar without adding any hardware. Moreover, there is no limitation on the location of the mirror. At the same time, this method can realize multimirror detection. As we can see in Table1, only our method and Yang’s methods [4, 5] can detect mirror. Our method and reference [5] do not need additional hardware, which will make the structure of the equipment simpler, more convenient to use, and much cheaper. Compared with reference [5], our method has no limitation on the mirror position. Meanwhile, our method can accomplish multimirror detection, which means our method has fewer limitation on use and wider application range.Table 1
Contradistinction.
Yang and Wang [4]Tatoglu and Pochiraju [6]Yang and Wang [5]Kim and Chung [7]Wei et al. [8]Our MethodMirror detectionYesNoYesNoNoYesAdditional hardwareYesNoNoNoYesNoLimitation of mirror positionNo—Yes——NoMultimirror detectionNo—No——Yes


## 3.1. Experiment Environment

In our experiment, a Velodyne VLP-16 laser sensor is equipped on the top of the robot. The robot is moving constantly in an indoor environment, running FastSLAM and mirror detection algorithm. In order to prove the effectiveness of the algorithm, we choose three different scenarios, which basically reflect the different situations of indoor mirror distribution. They are single-sided mirror hanging on the wall, the single mirror is placed in the center of the hall alone, and the two mirrors are placed face-to-face, relatively. As shown in Figure6(a), a single mirror is hanging on the wall, which is a common situation in the indoor scene. The mirror and the wall are in the same plane; the algorithm needs to distinguish the mirror with the gap between the walls. Figure 6(b) shows a single mirror placed in a wider space, this scenario simulates certain indoor environment (such as some large shopping malls will mirror hung on the pillar, and the mirror will completely block the wall); the difficulty is that there is no reference for the mirror detection, and in order to increase the difficulty of detection and proof the effectiveness of the algorithm, we place two mirrors in a corridor, as shown in Figure 6(c). In this scene, two mirrors will image each other, which will greatly increase the complexity of the detection.Figure 6
Experiment environment. (a) The single mirror hanging on the wall (simulate framed mirror detection). (b) The single mirror is placed in the center of the hall (simulate the mirror detection without frame). (c) Two mirrors are placed face to face (simulate multisided mirror detection).
(a)(b)(c)The laser sensor used in our experiment is Velodyne VLP-16. It is a 3D laser sensor with 16 channels, and the vertical FOV of the laser sensor is±15 degrees. We extracted the scanning data of each channel and obtained its scanning data. The purpose of our algorithm is to detect mirrors in a 2D indoor environment. The channel with -1 degree FOV is selected, because this is the most effective channel to scan the mirror image of the robot. We realize mirror detection algorithm with the MATLAB and integrate it in the FastSLAM algorithm. The real data acquired by the laser are shown in Figure 7, and the map of the room reconstructed by the FastSLAM algorithm is shown in Figure 8.Figure 7
The real data by the laser sensor.Figure 8
The map reconstruction by SLAM algorithm.


## 3.2. Experiment Result

Mirror detection algorithm used the location of the robot estimated by SLAM and calculated all the symmetry axes of robot and the other obstacles scanned at each time. As shown in Figure9, the diamond indicates the location of robot and the map updates along with the movement of the robot by RBPF SLAM.Figure 9
The process of updating the map by RBPF SLAM.With the movement of the robot, the laser sensor will scan real-time information of the surrounding environment. SLAM algorithm will generate and update the map information constantly. The process of updating a map is shown in Figure10. When the robot moves to a new position, the laser sensor will obtain a set of new points representing the environment. Mirror detection algorithm will update probability of all the symmetry axes according to the information.Figure 10
The all-possible symmetry axes.In order to prove the effectiveness of the algorithm in a variety of situations, we made our robot move in different directions towards the mirror. In any case, our algorithm can find the location of the mirror accurately and efficiently.In the proposed algorithm, we gradually remove the symmetry axes with small probability to be a mirror. Usually, if a mirror image of the robot cannot be found in the new time or the mirror image of the previous time does not disappear, the probability of the symmetry axis is a mirror will decrease. These symmetry axes will be eliminated gradually. Finally, if a mirror exists in the room, asymmetry axis will stay at the position of the mirror located.When the location of mirror is determined, the algorithm will review the moving process of the robot. If successive symmetry points of the robot are found, the location where the first symmetry point occurred is the starting point and the last one is the ending point. Then, the edge of the mirror is confirmed.


### 3.2.1. Case One

As shown in Figure6(a), this is the most common situation and the mirror is hung on the wall. The mirror and the wall are on one plane. The robot needs to distinguish the mirror from the gap between the walls. We put the mirror in a room with a relatively complex environment. In Figure 6(a), the artificial wall and some obstacles are placed in the room, which will create lots of gaps, and the robot is asked to move toward the mirror from different directions. When the robot moves parallel to the mirror, the result is as shown in Figure 11. When the robot moves towards the mirror with a certain angle, the result is as shown in Figure 12. As we can see from the result, no matter where the robot is or the moving direction is, only one symmetry axis could be detected finally. This is where the mirror is located.Figure 11
The result when the robot moves parallel to the mirror in the scenario in Figure6(a). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)Figure 12
The result when the robot moves towards the mirror with a certain angle in the scenario in Figure6(a). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)After the symmetry axis of the mirror is located, the starting and ending point of the mirror could be found about the symmetric axis. As shown in Figure13, the starting point could be found when the mirror image first appears about the symmetric axis and the ending point is the position where the mirror image last appears about the symmetric axis.Figure 13
The boundary of the mirror. (a, c) The starting point is found. (b, d) The ending point is found. The purple line is the location of the mirror. The orange line is the location of the mirror.
(a)(b)(c)(d)In this experiment, we completed the detection of a mirror with a frame in a more complicated environment. A different detection method is proposed in [5]. Although we both used the idea of mirror symmetry in the experiment, the specific methods are different. The algorithm in [5] first finds the edge of mirror, that is, it finds the two endpoints first and then calculates the coordinates of the object symmetry point between the two endpoints in the environment. Next, it determines whether the coordinates of the obtained symmetric points exist in the real environment. If the points that satisfy the condition is more than 50%, the algorithm regards the position as mirror. The limitation is when it comes to mirrors without the frame, the first step in the algorithm is to find the edge of the mirror that will be not held and also the mirror that cannot be detected.


### 3.2.2. Case Two

As shown in Figure6(b), if a mirror is placed in the hall with nothing connected, the algorithm needs to detect the mirror when the robot goes through. Because there is no reference object beside the mirror, the key point is whether the robot can find the mirror quickly. As is shown in Figure 14, the robot is asked to move parallel to the mirror. When the robot moves toward the mirror at some angle and perpendicular to the mirror, the results are shown in Figures 15 and 116, respectively. As we can see, the symmetric axis will finally be detected in any circumstances. When the symmetry axis of the mirror is located, we can traverse the path of the robot moving to find the boundary of the mirror.Figure 14
Robot is moving parallel to the mirror in the scenario in Figure6(b). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)Figure 15
The robot is moving towards the mirror with a certain angle in the scenario in Figure6(b). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)Figure 16
The robot moves perpendicular to the mirror in the scenario figure. (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)


### 3.2.3. Case Three

In order to further prove the validity of our algorithm, we make the environment more complex and place two mirrors facing each other in the corridor as shown in Figure6(c). Two mirrors may have a problem of imaging with each other, this may cause detection failure. The results are shown in Figure 17, because the nature of mirror image’s appearance and disappearance will not change, two mirrors could be detected successfully.Figure 17
The process of detecting two mirrors in the scenario in Figure6(c). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)


## 3.2.1. Case One

As shown in Figure6(a), this is the most common situation and the mirror is hung on the wall. The mirror and the wall are on one plane. The robot needs to distinguish the mirror from the gap between the walls. We put the mirror in a room with a relatively complex environment. In Figure 6(a), the artificial wall and some obstacles are placed in the room, which will create lots of gaps, and the robot is asked to move toward the mirror from different directions. When the robot moves parallel to the mirror, the result is as shown in Figure 11. When the robot moves towards the mirror with a certain angle, the result is as shown in Figure 12. As we can see from the result, no matter where the robot is or the moving direction is, only one symmetry axis could be detected finally. This is where the mirror is located.Figure 11
The result when the robot moves parallel to the mirror in the scenario in Figure6(a). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)Figure 12
The result when the robot moves towards the mirror with a certain angle in the scenario in Figure6(a). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)After the symmetry axis of the mirror is located, the starting and ending point of the mirror could be found about the symmetric axis. As shown in Figure13, the starting point could be found when the mirror image first appears about the symmetric axis and the ending point is the position where the mirror image last appears about the symmetric axis.Figure 13
The boundary of the mirror. (a, c) The starting point is found. (b, d) The ending point is found. The purple line is the location of the mirror. The orange line is the location of the mirror.
(a)(b)(c)(d)In this experiment, we completed the detection of a mirror with a frame in a more complicated environment. A different detection method is proposed in [5]. Although we both used the idea of mirror symmetry in the experiment, the specific methods are different. The algorithm in [5] first finds the edge of mirror, that is, it finds the two endpoints first and then calculates the coordinates of the object symmetry point between the two endpoints in the environment. Next, it determines whether the coordinates of the obtained symmetric points exist in the real environment. If the points that satisfy the condition is more than 50%, the algorithm regards the position as mirror. The limitation is when it comes to mirrors without the frame, the first step in the algorithm is to find the edge of the mirror that will be not held and also the mirror that cannot be detected.


## 3.2.2. Case Two

As shown in Figure6(b), if a mirror is placed in the hall with nothing connected, the algorithm needs to detect the mirror when the robot goes through. Because there is no reference object beside the mirror, the key point is whether the robot can find the mirror quickly. As is shown in Figure 14, the robot is asked to move parallel to the mirror. When the robot moves toward the mirror at some angle and perpendicular to the mirror, the results are shown in Figures 15 and 116, respectively. As we can see, the symmetric axis will finally be detected in any circumstances. When the symmetry axis of the mirror is located, we can traverse the path of the robot moving to find the boundary of the mirror.Figure 14
Robot is moving parallel to the mirror in the scenario in Figure6(b). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)Figure 15
The robot is moving towards the mirror with a certain angle in the scenario in Figure6(b). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)Figure 16
The robot moves perpendicular to the mirror in the scenario figure. (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)


## 3.2.3. Case Three

In order to further prove the validity of our algorithm, we make the environment more complex and place two mirrors facing each other in the corridor as shown in Figure6(c). Two mirrors may have a problem of imaging with each other, this may cause detection failure. The results are shown in Figure 17, because the nature of mirror image’s appearance and disappearance will not change, two mirrors could be detected successfully.Figure 17
The process of detecting two mirrors in the scenario in Figure6(c). (a) The all-possible symmetry axes. (b) The symmetry axes gradually decrease with the moving of the robot. (c) Finally, there is only one axis left.
(a)(b)(c)


## 3.3. Comparative Results

Compared with existing methods, the contribution of this paper is that the mirror inspection task can be finished by using laser radar without adding any hardware. Moreover, there is no limitation on the location of the mirror. At the same time, this method can realize multimirror detection. As we can see in Table1, only our method and Yang’s methods [4, 5] can detect mirror. Our method and reference [5] do not need additional hardware, which will make the structure of the equipment simpler, more convenient to use, and much cheaper. Compared with reference [5], our method has no limitation on the mirror position. Meanwhile, our method can accomplish multimirror detection, which means our method has fewer limitation on use and wider application range.Table 1
Contradistinction.
Yang and Wang [4]Tatoglu and Pochiraju [6]Yang and Wang [5]Kim and Chung [7]Wei et al. [8]Our MethodMirror detectionYesNoYesNoNoYesAdditional hardwareYesNoNoNoYesNoLimitation of mirror positionNo—Yes——NoMultimirror detectionNo—No——Yes


## 4. Conclusion

In this paper, we proposed a mirror detection algorithm by using symmetry between the robot and its mirror image. At first, our algorithm will find all the symmetry axes of the robot and other obstacles at any moment and update the probability that the symmetry axis is a mirror according to the status of the robot’s mirror image with the movement of robot. Whether there is a mirror, it is determined by the existence of the symmetry image in adjacent moment. The mirror’s boundary is confirmed by traversing the path of the robot moving, and the starting and ending points of the mirror are also determined. The experiment result shows that our algorithm can detect the mirror effectively, regardless of the indoor environment and the position of the mirror.This method we proposed can detect the mirror with a frame, and it also successfully detects the mirror without frame. In addition, two mirrors can be detected by the proposed method. We integrate out algorithm in FastSLAM, which can complete the mirror detection while the map is constructed.



---

*Source: 9621694-2022-06-27.xml*