Active Virtual Impedance Control for Sound-Following Robots to Avoid Obstacles

A novel active virtual impedance algorithm is here proposed to help sound-following robots avoid obstacles while tracking a sound source. The tracking velocity of a mobile robot to a sound source is determined by virtual repulsive and attraction forces to avoid obstacles and to follow the sound source, respectively. Active virtual impedance is defined as a function of distances and relative velocities to the sound source and obstacles from the mobile robot, which is used to generate the tracking velocity of the mobile robot. Conventional virtual impedance methods have fixed coefficients for relative distances and velocities. However, in this research, the coefficients are dynamically adjusted to extend the obstacle avoidance performance to multiple obstacle environments. The relative distances and velocities are obtained using a microphone array consisting of three microphones in a row. The geometrical relationships of the microphones are utilized to estimate the relative position and orientation of the sound source with respect to the mobile robot, which carries the microphone array. The effectiveness of the proposed algorithm is demonstrated by experiments.


Introduction
Sound source and speech recognition technologies have been developed and used with various techniques utilizing microphone array.The magnitude of the sound signal arriving at the microphone is inversely proportional to the square of the distance from the microphone to the sound source.Normally, sound source detection for long distances is not feasible, because the sound signal is so susceptible to environmental noise.The sound signal experiences reflection, diffraction, and interferences with respect to the environment conditions, such as air temperature, existence of obstacles, size of the space, and surrounding sound signals, which cause signal distortions and degrade the reliability of the signal [1,2].
To obtain a specific value for a sound signal, the method of extracting maximum or threshold value has the advantage of requiring fewer calculations and being faster.However, it has the disadvantage of not being effective in environments with noise.On the other hand, to analyze the similarity between signals, a difference method, cross correlation, and generalized cross correlation are applied, which can demonstrate strong and robust performance even in noisy environments.The sound source location has been estimated by mapping the cross-correlation function onto a geometrical space instead of using the time difference function [3,4].Additionally, head-related transfer function (HRTF), beam forming method (BFM), and artificial ear method (AEM) have been used to detect the sound source localization for robotics areas.However, most of these methods require heavy computations and are expensive for use in robotic applications [5,6].
Due to the fact that sound location recognition technology is very weak and not stable enough to be applied to actual robots, most studies have been conducted with an emphasis on signal processing that analyzes specific signals.Currently, based on these studies, technology and equipment have been developed to recognize sound sources that are fairly stable.Therefore, sound localization recognition technology has been applied and studied with respect to robotic systems.One of these areas is the application of mobile robots, and there is research on such robots moving and following markers to recognized locations, engaging in obstacle avoidance, etc. [7,8].In particular, sound-position recognition mobile robots follow a sound source from any position using abnormal speed changes and rapid rotation of the mobile robot's trajectory.Thus, the interaction between the target point, the moving robot, and the surrounding obstacles is very important in order for the robot to recognize and follow the moving sound source in real time and to avoid the obstacle.
Several studies have examined real-time obstacle avoidance using techniques, such as vector field histogram (VFH) approach, curvature velocity method (CVM), and dynamic window approach (DWA), which have local minima that can be avoided with certain modifications [9][10][11].The potential field method (PFM) has been proposed to generate an attraction force to the target and a repulsive force against an obstacle to determine the direction and velocity of the mobile robot [12][13][14][15][16][17][18].
In this paper, the virtual impedance method has been adopted and elaborated to improve obstacle avoidance performance [15].The relationship between the uncertain environment and the mobile robot has been modeled as an impedance formed by the damper and spring, which generates a potential vector for the mobile robot [16][17][18][19][20].The conventional virtual impedance algorithm may be confronted with a local minimum during navigation by the obstacles with fixed coefficients of the impedance.In this study, the impedance coefficients have been adjusted dynamically to improve the collision avoidance performance, and the scheme is called the active virtual impedance method.The location of the sound source has been estimated based on the TDOA (Time Difference of Arrival), and the virtual impedance algorithm has been applied to allow a mobile robot to follow a sound and avoid obstacles.
This paper is organized in six sections.Section 2 explains how to estimate the location of the sound source.In Section 3, the main idea of this paper, the active virtual impedance algorithm, is proposed.The experimental systems of the mobile robot and sensors are illustrated in Section 4, and the experimental results are discussed in Section 5. Finally, Section 6 presents our conclusions.

Point Sound Source
Generally, sound waves are caused by vibrations of objects.We can use speakers or horns as sound sources to artificially generate sounds that are meant to occur at a time interval with a given rule to warn or to indicate a location.A sound that generates instantaneous sound in a relatively short time is a form of short-term energy release.
This type of sound source has relatively clear boundaries between the parts with and without sound waves.
The frequency of sound, f, traveling with the velocity v can be changed to f ' by the relative velocity at the observer point using the Doppler formula as follows: where v c and v s represent the velocity of the observer and sound source, respectively.c is the propagation velocity of the sound.The Doppler effect can be ignored when c >> v c and c >> v s , i.e., the velocities of the sound source and the mobile robot are considerably smaller than the propagation velocity of sound.Diffusion, diffraction, and reflection of the sound signal in the environment make the signal recognition for the localization difficult.The sound signal velocity, c, is 340 m/s in the air at room temperature.Using this velocity and traveling time, the distance between the sound source and microphone can be calculated.

Arriving Time Difference Method
The distance from the sound source to i th microphone, R i , can be obtained as follows: where t i is the traveling time of the sound source to the i th microphone.
For the two received signals x 1 and x 2 , the n sampling data can be expressed as: The similarity function, S x 1 ,x 2 , can be defined from these two data sets as follows: When the signal x j (k) is shifted j M steps, the similarity function can be represented as: where j M is 0 ∼ n − 1.Using Equation (5), j M , which gives the maximum similarity value, can be obtained.The arrival time difference between the two signals ∆t ij can be calculated using j M and the sampling period, which is represented as: where t sampling represents the sampling period of the data sets.

Recognition of Sound Source
For the simplicity of obtaining the distances, R i , and angles, θ i to the sound source, three microphones, M 1 , M 2 , and M 3 were installed on the same plane at a constant interval (l = 40 cm).

Distance Estimation in Two-Dimensional (2D) Space
In Figure 1, the geometrical relationships of R 1 , R 2 , and R 3 to D can be represented, respectively, as follows: (7) where t i (i = 1, 2, 3) represents the traveling time of the sound source to the i th microphone, and ∆t 12 and ∆t 13 represent the arrival time difference between two microphones, 1-2 and 1-3, respectively.In Figure 1, the geometrical relationships of 1 2 , R R , and 3 R to D can be represented, respectively, as follows: where ( 1,2,3) represents the traveling time of the sound source to the th i microphone, and In Figure 1, the distance to the sound source, D, can be obtained using the triangular area formula.Using Heron's formula, the areas of two triangles,

SM M Δ
, can be obtained as follows: where The two areas are actually the same.By placing this relation into Equation (7), the distance D can be obtained as follows:

Angle Estimation in 2D Space
The distance to the sound source from the microphone is much larger than the interval between the microphones.Therefore, the traveling path of the sound signal can be approximated as parallel lines, as shown in Figure 2. Using the cosine laws, the orientation angle,θ , can be estimated when the arrival time differences, ij t Δ , are available.In Figure 1, the distance to the sound source, D, can be obtained using the triangular area formula.Using Heron's formula, the areas of two triangles, ∆SM 1 M 2 and ∆SM 2 M 3 , can be obtained as follows: where The two areas are actually the same.By placing this relation into Equation (7), the distance D can be obtained as follows: The distance to the sound source from the microphone is much larger than the interval between the microphones.Therefore, the traveling path of the sound signal can be approximated as parallel lines, as shown in Figure 2. Using the cosine laws, the orientation angle, θ, can be estimated when the arrival time differences, ∆t ij , are available.The arrival angle of the sound signal can be calculated as follows: Where 12 d is the difference of 1 d and 2 d , which are distances from microphones 1 and 2 to the sound source, respectively.The angle can be also calculated as follows: The arrival angle of the sound signal can be calculated as follows: where d 12 is the difference of d 1 and d 2 , which are distances from microphones 1 and 2 to the sound source, respectively.The angle can be also calculated as follows: where d 23 is the difference of d 2 and d 3 , which are distances from microphones 2 and 3 to the sound source, respectively.

Performance Evaluation of Sound Source Recognition
To check the performance of the sound source recognition using the microphone array, sound source detecting experiments were performed in a wide, obstacle-free, indoor environment.The distance between the sound source and microphone array, D, was selected as 1, 2, 3, and 4 m, whereas the angle, θ, was selected to be 0, 30, and 60 • .Table 1 lists the mean values of D and θ from 100 measurements.Table 2 summarizes the standard deviations of the measurements for distances and angles.An analysis of Tables 1 and 2 reveal an increase in the errors in measuring the distance and angle with increasing distance.In addition, the error also increased with the increasing angle between the sound source and microphones, θ.With increasing D and θ, the possibility of signal distortion became larger and the intensity of the signal became weaker, which caused measurement difficulties and errors.

Obstacle Avoidance Using Active Virtual Impedance
For the navigation robot to avoid obstacles more efficiently, a new active virtual impedance algorithm is proposed here.

Collision Vector and Rotation
For a mobile robot to avoid obstacles during navigation, the locations of the obstacles need to be identified first.The distance vector from the sensor to an object, L (i: integer), can be defined as: where r i represents the distance to an obstacle from the i th sensor; θ i represents the angle between the robot moving direction Y R and i th sensor, and (x i , y i ) represent the location of the i th sensor.To detect obstacles in front of the mobile robot, three distance sensors were attached in front of the mobile robot.
A collision vector, → C is defined using the sense data.Two different situations occur when defining the collision vector.
[Case I] When the obstacle is small, it can be detected only by a distance sensor.In this case, the collision vector, → C is defined as: [Case II] When the obstacle is detected by two distance sensors, the collision vector, → C can be defined using two pointing vectors, From the two pointing vectors, as shown in Figure 3, two obstacle vectors P i and P i+1 can be obtained as follows: -a) The collision vector is defined with respect to the mobile robot frame, which needs to be transformed to a world frame to drive to the mobile robot into a target position specified with respect to the world frame.The line between the two points, P i and P i+1 can be obtained and represented as P i P i+1 .Then, a collision vector from the mobile robot to an obstacle can be defined as P o P, which is vertical to the line P i P i+1 from the origin of the mobile robot, P o .Thus, the collision vector, → C, is defined as follows: where V = and P 0 is defined as the origin of the sensors with respect to a world frame.The collision vector is defined with respect to the mobile robot frame, which needs to be transformed to a world frame to drive to the mobile robot into a target position specified with respect to the world frame.
As shown in Figure 4, the orientation of the mobile robot can be transformed into the world frame by rotating θ R along the z-axis as follows.The collision vector is defined with respect to the mobile robot frame, which needs to be transformed to a world frame to drive to the mobile robot into a target position specified with respect to the world frame.As shown in Figure 4, the orientation of the mobile robot can be transformed into the world frame by rotating θ R along the z -axis as follows.
cos sin 0 sin cos 0 Therefore, the collision vector can be represented with respect to the world frame as follows: Therefore, the collision vector can be represented with respect to the world frame as follows:

Virtual Impedance Model
The relative distance and velocity between the mobile robot and an obstacle can be modeled as a spring and damper, respectively, which is called the virtual impedance.Using this virtual impedance, the acceleration for the mobile robot to avoid the obstacle, ..
x s , can be defined.From the virtual impedance model illustrated in Figure 5, the motion equation of the mobile robot can be obtained as follows: ..
where F m represents the attraction force to the target point, X r ; M s represents the mass of the mobile robot; .
x S and ..
x S represent the velocity and acceleration of the mobile robot, respectively; F os and F od are the repulsive force against the static and dynamic obstacles, respectively; and n os and n od represent the number of static and dynamic obstacles, respectively.

Virtual Impedance Model
The relative distance and velocity between the mobile robot and an obstacle can be modeled as a spring and damper, respectively, which is called the virtual impedance.Using this virtual impedance, the acceleration for the mobile robot to avoid the obstacle, s x  , can be defined.From the virtual impedance model illustrated in Figure 5, the motion equation of the mobile robot can be obtained as follows: where x represent the position of the th i static and dynamics obstacles, respectively.The variables in Equation ( 18) are summarized in Table 3.The addition of the three forces, F m , F os , and F od , guides the mobile robot to the target while avoiding the obstacles.The forces are described in detail as follows: where x s,i )}, and x d,i )}.Note that x s,i and x d,i represent the position of the i th static and dynamics obstacles, respectively.The variables in Equation ( 18) are summarized in Table 3.The repulsive force F b can be represented using the obtained collision vector W → C with respect to the world frame as follows: Electronics 2019, 8, 522 where K 0 is a spring coefficient, D 0 is a damping coefficient, , and ρ 0 represents the safety margin for avoiding the collision.These repulsive forces are generated regardless of the types of obstacles, and all the repulsive forces are added together.
For the static obstacle, the conventional virtual impedance algorithm is effective.On the other hand, when there are multiple obstacles, the mobile robot is jammed and cannot navigate farther.In addition, the sudden repulsive force against the moving obstacle causes unstable velocity changes in the mobile robot so that the mobile robot vibrates on the path or deviates from the path.

Active Virtual Impedance Algorithm
A new active virtual impedance algorithm is proposed to overcome the disadvantages of the conventional virtual impedance method that generates attractive and repulsive forces proportional to the distance and relative velocities with respect to the target and obstacle.Because the collision possibility increases abruptly when the obstacle approaches the mobile robot with a high relative velocity, a new nonlinear active virtual impedance was defined to incorporate the situations as follows: where C and k re f and d re f are constants for repulsive forces; α and β determine the nonlinearities dynamically; and µ 0 is the maximum relative velocity of the obstacles, i.e., d dt W → C < µ 0 .This new nonlinear virtual impedance can be applicable for both static and dynamic obstacles.
Figure 6 shows the repulsive forces as a function of the distance and velocity against an obstacle as it is represented in Equation ( 19-a).As shown in Figure 6a, the repulsive force by K o against an obstacle is not zero, even for the obstacle farther than ρ 0 .On the other hand, the repulsive force against the velocity is considered effective below, µ 0 , as shown in Figure 6b.Note that when the relative velocity to the obstacle is larger than, µ 0 , the obstacle can mostly pass by the mobile robot safely.Using Equation (19-b), the virtual repulsive force, F 0 can be represented as follows: Electronics  Figure 6 shows the repulsive forces as a function of the distance and velocity against an obstacle as it is represented in Equation ( 19-a).As shown in Figure 6a, the repulsive force by o K against an obstacle is not zero, even for the obstacle farther than 0 ρ .On the other hand, the repulsive force against the velocity is considered effective below, 0 μ , as shown in Figure 6b.Note that when the relative velocity to the obstacle is larger than, 0 μ , the obstacle can mostly pass by the mobile robot In conventional virtual impedance, the repulsive force is increased linearly with decreasing distance to the obstacle within a certain range.On the other hand, in this active virtual impedance algorithm, the repulsive forces are increased nonlinearly without a bound, as shown in Figure 6.The advantage of this method is that a repulsive force is generated against a long-distance object to push away the mobile robot from the obstacle smoothly.This prevents the mobile robot from slipping caused by the abrupt change in direction and velocity.
To compare the distance and velocity factor, conventional virtual impedance holds that the repulsive force varies linearly in the positive or negative direction for the impact vector.Active virtual impedance determines the nonlinear form of the repulsive force in the exponential term.By multiplying the magnitude of the collision vector, the repulsive force cannot generate when the collision vector is zero or µ 0 .Consequently, the constraints of conventional and active virtual impedance differ, as shown in Table 4.
Table 4.The comparison of virtual impedance algorithms.

Virtual Impedance
Active Virtual Impedance In active virtual impedance, α and β values can be selected by comparison with ρ 0 and µ 0 .In the case of α, the magnitude get smaller and the total repulsive force gets smaller with movement to the left.when → C < ρ 0 , to develop sufficient magnitude for the repulsive force, the magnitude of collision vector must be ρ 0 /2, and the magnitude of the repulsive force should be K 0 ρ 0 /2; in the case of β, the same is true.
At this point, α and β can be defined as follows:

The System of Moving Object and Mobile Robot
In this paper, two differential-driving mobile robots were developed.A front robot generates sound signals while it is traveling.A rear robot follows the sound source according to the acceleration generated by the active virtual impedance algorithm.
Figure 7 shows the operations of the sound source tracking mobile robot system.Two major operations occur: sound recognition and the active virtual impedance algorithm.In order to estimate the location of blind sound that occurs at any time, part of the recognition of the position of the sound source is estimated in real time.To help with the sound recognition, the front robot generates a sound signal for 0.5 s every 2 s.To maintain the real-time navigation, the cycle time of the active virtual impedance algorithm is designed at 25 m/s.

Mobile robot (slave robot):
The differential-driving mobile robot in Figure 9 was designed using two DC IG-32PGM motors for each wheel and a ball caster to balance the system.Reduction gears with a 50:1 reduction ratio were used for motors with encoders (2600 pulses/rot).A microphone array was formed using three microphones of ETM-001, which has −23 dB omni-directional sensitivity for signals from 50 Hz to 18 kHz.The distance between the microphones was 40 cm.The received signal was amplified by K2372 (universal stereo pre-amplifier kit, Velleman Corp.) to 40 dB.An ARM series MyCortex-LM 8962 was used as an MCU, and the signal was sampled by 100 kHz pulses and converted into a digital signal using a 10-bit ADC(Analog to Digital Converter).Table 6 summarizes the hardware specifications of the mobile robot.

Mobile robot (slave robot):
The differential-driving mobile robot in Figure 9 was designed using two DC IG-32PGM motors for each wheel and a ball caster to balance the system.Reduction gears with a 50:1 reduction ratio were used for motors with encoders (2600 pulses/rot).A microphone array was formed using three microphones of ETM-001, which has −23 dB omni-directional sensitivity for signals from 50 Hz to 18 kHz.The distance between the microphones was 40 cm.The received signal was amplified by K2372 (universal stereo pre-amplifier kit, Velleman Corp.) to 40 dB.An ARM series MyCortex-LM 8962 was used as an MCU, and the signal was sampled by 100 kHz pulses and converted into a digital signal using a 10-bit ADC(Analog to Digital Converter).Table 6 summarizes the hardware specifications of the mobile robot.Radius of wheel (mm) 60

Sensors and Estimation of Distances to Obstacles
To detect the obstacles, an ultrasonic sensor SRF-05, which is low cost and easy to use, was utilized.Its detection angle, however, is limited by 30 • within the range of 3 ~300 cm.To overcome the narrow detecting angle of the ultrasonic sensor, three ultrasonic sensors were installed on the mobile robot to follow the sound source while avoiding obstacles, as shown in Figure 10.

Sensors and Estimation of Distances to Obstacles
To detect the obstacles, an ultrasonic sensor SRF-05, which is low cost and easy to use, was utilized.Its detection angle, however, is limited by 30° within the range of 3 ~ 300 cm.To overcome the narrow detecting angle of the ultrasonic sensor, three ultrasonic sensors were installed on the mobile robot to follow the sound source while avoiding obstacles, as shown in Figure 10.The obstacle avoidance performance was determined by the sensors to detect obstacles and control algorithms to avoid the obstacles.Therefore, the characteristics of the sensors should be considered carefully for obstacle avoidance.The ultrasonic sensor, SRF-05, radiates a 40 kHz signal, whose propagation velocity depends on the material of the path and the temperature of the material.Notice that the time of flight (TOF) of the ultrasonic signal is dependent on the velocity: where T is the temperature in °C.

Experiments and Discussions
In order to evaluate the performance of the model, the following three situations were tested.The experiment was carried out indoors with no concave or convex irregularities on the floor.In each experiment, spring and damper constants were selected through simulation to determine the attractive force of the sound source.The settings were  = 2 and  = 1.

Experiment 1: Sound Source Tracking in Real Time
First of all, the sound source tracking performance of the mobile robot was checked in a 7.0 m × 7.0 m obstacle-free space.The obstacle avoidance performance was determined by the sensors to detect obstacles and control algorithms to avoid the obstacles.Therefore, the characteristics of the sensors should be considered carefully for obstacle avoidance.The ultrasonic sensor, SRF-05, radiates a 40 kHz signal, whose propagation velocity depends on the material of the path and the temperature of the material.Notice that the time of flight (TOF) of the ultrasonic signal is dependent on the velocity: where T is the temperature in • C.

Experiments and Discussions
In order to evaluate the performance of the model, the following three situations were tested.The experiment was carried out indoors with no concave or convex irregularities on the floor.In each experiment, spring and damper constants were selected through simulation to determine the attractive force of the sound source.The settings were K r = 2 and D r = 1.

Experiment 1: Sound Source Tracking in Real Time
First of all, the sound source tracking performance of the mobile robot was checked in a 7.0 m × 7.0 m obstacle-free space.
Figure 11 shows the sound source tracking operations of the mobile robot, which follows the moving sound source by detecting the distance and angle to the sound source using a microphone array.The tracking performance shows that the distance and angle can be estimated properly using the microphone array for the sound source tracking robot.Figure 11 shows the sound source tracking operations of the mobile robot, which follows the moving sound source by detecting the distance and angle to the sound source using a microphone array.The tracking performance shows that the distance and angle can be estimated properly using the microphone array for the sound source tracking robot.

Experiment 2: Avoidance of Multiple Static Obstacles
The active virtual impedance algorithm was applied to mobile robot navigation under a static obstacle environment, as shown in Figure 12, in which two obstacles were located in the path to the goal position.Figure 13 compares the experimental trajectories using the conventional virtual impedance algorithm and the new active virtual impedance algorithm.For the conventional algorithm, the threshold value, 0 ρ , to detect the obstacle was selected as 800 mm, and for the active virtual impedance algorithm, the maximum approaching velocity of the mobile robot, 0 μ , was selected as 600 mm/s.

Experiment 2: Avoidance of Multiple Static Obstacles
The active virtual impedance algorithm was applied to mobile robot navigation under a static obstacle environment, as shown in Figure 12, in which two obstacles were located in the path to the goal position.Figure 11 shows the sound source tracking operations of the mobile robot, which follows the moving sound source by detecting the distance and angle to the sound source using a microphone array.The tracking performance shows that the distance and angle can be estimated properly using the microphone array for the sound source tracking robot.

Experiment 2: Avoidance of Multiple Static Obstacles
The active virtual impedance algorithm was applied to mobile robot navigation under a static obstacle environment, as shown in Figure 12, in which two obstacles were located in the path to the goal position.Figure 13 compares the experimental trajectories using the conventional virtual impedance algorithm and the new active virtual impedance algorithm.For the conventional algorithm, the threshold value, 0 ρ , to detect the obstacle was selected as 800 mm, and for the active virtual impedance algorithm, the maximum approaching velocity of the mobile robot, 0 μ , was selected as 600 mm/s.Figure 13 compares the experimental trajectories using the conventional virtual impedance algorithm and the new active virtual impedance algorithm.For the conventional algorithm, the threshold value, ρ 0 , to detect the obstacle was selected as 800 mm, and for the active virtual impedance algorithm, the maximum approaching velocity of the mobile robot, µ 0 , was selected as 600 mm/s.As shown in Figure 13, the trajectory of the mobile robot using the active virtual impedance algorithm was smoother than that using the conventional algorithm.This is the effect of the active virtual impedance, which detects long-distance obstacles and gradually changes the trajectory of the mobile robot earlier.Using this smooth trajectory, the mobile robot can reduce slippage on its path, i.e., it can increase the trajectory accurately during multiple obstacles avoidance.

Experiment 3: Avoidance of Dynamic Obstacles
The active virtual impedance algorithm was applied to dynamic obstacle avoidance for single and multiple obstacles.Figure 14 shows the experimental environment of dynamic obstacle avoidance.The space was 6.0 m wide and 8.0 m long.The sound source was moving with a velocity of 300 mm/s, and 0 μ was set as 720 mm/s, which is the same as the maximum velocity of the mobile robot.Notice that the moving sound robot carried the sound source on the top of the robot.As shown in Figure 13, the trajectory of the mobile robot using the active virtual impedance algorithm was smoother than that using the conventional algorithm.This is the effect of the active virtual impedance, which detects long-distance obstacles and gradually changes the trajectory of the mobile robot earlier.Using this smooth trajectory, the mobile robot can reduce slippage on its path, i.e., it can increase the trajectory accurately during multiple obstacles avoidance.

Experiment 3: Avoidance of Dynamic Obstacles
The active virtual impedance algorithm was applied to dynamic obstacle avoidance for single and multiple obstacles.
Figure 14 shows the experimental environment of dynamic obstacle avoidance.The space was 6.0 m wide and 8.0 m long.The sound source was moving with a velocity of 300 mm/s, and µ 0 was set as 720 mm/s, which is the same as the maximum velocity of the mobile robot.Notice that the moving sound robot carried the sound source on the top of the robot.As shown in Figure 13, the trajectory of the mobile robot using the active virtual impedance algorithm was smoother than that using the conventional algorithm.This is the effect of the active virtual impedance, which detects long-distance obstacles and gradually changes the trajectory of the mobile robot earlier.Using this smooth trajectory, the mobile robot can reduce slippage on its path, i.e., it can increase the trajectory accurately during multiple obstacles avoidance.

Experiment 3: Avoidance of Dynamic Obstacles
The active virtual impedance algorithm was applied to dynamic obstacle avoidance for single and multiple obstacles.Figure 15 shows the experimental results of the dynamic obstacle avoidance.As demonstrated in the sequence, the mobile robot successfully followed the sound source while avoiding the moving obstacle.As shown in Figure 15c, the mobile robot collided with the obstacle when the conventional virtual impedance algorithm was utilized to avoid a collision.However, a strong repulsive force was generated by the active virtual impedance to avoid the collision.Figure 15d illustrates the successful tracking of the sound source by the mobile robot while avoiding the two moving obstacles.Figure 15 shows the experimental results of the dynamic obstacle avoidance.As demonstrated in the sequence, the mobile robot successfully followed the sound source while avoiding the moving obstacle.As shown in Figure 15c, the mobile robot collided with the obstacle when the conventional virtual impedance algorithm was utilized to avoid a collision.However, a strong repulsive force was generated by the active virtual impedance to avoid the collision.Figure 15d   Figure 16 shows the experimental results of multiple dynamic obstacle avoidance.As demonstrated in the sequence, the mobile robot successfully followed the sound source while avoiding the two moving obstacles.As shown in Figure 16b, the mobile robot moved downward quickly by using the repulsive force against the obstacle to avoid the collisions effectively.When the conventional virtual impedance algorithm was applied to this experiment, collisions occurred, as shown in Figure 16c, because the impedance could not be adjusted properly for obstacle avoidance.
Figure 15 shows the experimental results of the dynamic obstacle avoidance.As demonstrated in the sequence, the mobile robot successfully followed the sound source while avoiding the moving obstacle.As shown in Figure 15c, the mobile robot collided with the obstacle when the conventional virtual impedance algorithm was utilized to avoid a collision.However, a strong repulsive force was generated by the active virtual impedance to avoid the collision.Figure 15d illustrates the successful tracking of the sound source by the mobile robot while avoiding the two moving obstacles.Figure 16 shows the experimental results of multiple dynamic obstacle avoidance.As demonstrated in the sequence, the mobile robot successfully followed the sound source while avoiding the two moving obstacles.As shown in Figure 16b, the mobile robot moved downward quickly by using the repulsive force against the obstacle to avoid the collisions effectively.When the conventional virtual impedance algorithm was applied to this experiment, collisions occurred, as shown in Figure 16c, because the impedance could not be adjusted properly for obstacle avoidance.Figure 17 shows the experimental environment of multiple dynamic obstacle avoidance.The space was 6.0 m wide and 8.0 m long.The sound source was moving with a velocity of 300 mm/s, and µ 0 was set as 720 mm/s, which was the same as the maximum velocity of the mobile robot.Figure 16 shows the experimental results of multiple dynamic obstacle avoidance.As demonstrated in the sequence, the mobile robot successfully followed the sound source while avoiding the two moving obstacles.As shown in Figure 16b, the mobile robot moved downward quickly by using the repulsive force against the obstacle to avoid the collisions effectively.When the conventional virtual impedance algorithm was applied to this experiment, collisions occurred, as shown in Figure 16c, because the impedance could not be adjusted properly for obstacle avoidance.Figure 17 shows the experimental environment of multiple dynamic obstacle avoidance.The space was 6.0 m wide and 8.0 m long.The sound source was moving with a velocity of 300 mm/s, and 0 μ was set as 720 mm/s, which was the same as the maximum velocity of the mobile robot.

Conclusions
This paper proposed an active virtual impedance algorithm for obstacle avoidance and for following sound sources in real time using a mobile robot.The active virtual impedance algorithm changes the coefficients of the damper and spring dynamically depending on the possibility of collision with the obstacle, which makes the avoidance of the obstacle more efficient than when using the conventional virtual impedance algorithm.Before the mobile robot reaches obstacles, the motion trajectory of the mobile robot needs to be modified to prevent abrupt changes in the path, which may cause slippage of the mobile robot.The accuracy of the robot's trajectory was demonstrated through real experiments.A microphone array was used to detect the location of the sound source, which is also a critical factor for successful sound source tracking.When there are omnidirectional dynamic obstacles in the working environment, three more ultrasonic sensors are necessary for the backside of the mobile robot to avoid collisions using an efficient algorithm, which will be the subject of a future study.

Figure 1 .
Figure 1.Geometric structure of the microphones and sound source in two-dimensional (2D) space.

Figure 1 .
Figure 1.Geometric structure of the microphones and sound source in two-dimensional (2D) space.

Figure 2 .
Figure 2. Principle of the angle measurement to the sound source in 2D space.

Figure 2 .
Figure 2. Principle of the angle measurement to the sound source in 2D space.

Figure 4 .
Figure 4. Rotation of the collision vector.

Figure 3 .
Figure 3. Diagram of the collision vectors.

Figure 3 .
Figure 3. Diagram of the collision vectors.

Figure 4 .
Figure 4. Rotation of the collision vector.

Figure 4 .
Figure 4. Rotation of the collision vector.

Figure 6 .
Figure 6.Repulsive forces as a function of the distance and velocity against an obstacle.

Figure 6 .
Figure 6.Repulsive forces as a function of the distance and velocity against an obstacle.

Figure 10 .
Figure 10.Configuration of the ultrasonic sensors on the mobile robot.

Figure 10 .
Figure 10.Configuration of the ultrasonic sensors on the mobile robot.

Figure 11 .
Figure 11.Experiments for checking the performance of sound tracking.

Figure 11 .
Figure 11.Experiments for checking the performance of sound tracking.

Figure 13 .
Figure 13.Experimental results of collision-free navigation with multiple fixed obstacles.

Figure 13 .
Figure 13.Experimental results of collision-free navigation with multiple fixed obstacles.

Figure 14
Figure14shows the experimental environment of dynamic obstacle avoidance.The space was 6.0 m wide and 8.0 m long.The sound source was moving with a velocity of 300 mm/s, and 0 μ was set as 720 mm/s, which is the same as the maximum velocity of the mobile robot.Notice that the moving sound robot carried the sound source on the top of the robot.

Electronics 2019, 8 ,Figure 15 .
Figure 15.(a),(b),(d) The successful tracking of the sound source by the mobile robot using the active virtual impedance; (c) the collision situation when the conventional virtual impedance algorithm was used for tracking.
Figure15shows the experimental results of the dynamic obstacle avoidance.As demonstrated in the sequence, the mobile robot successfully followed the sound source while avoiding the moving obstacle.As shown in Figure15c, the mobile robot collided with the obstacle when the conventional virtual impedance algorithm was utilized to avoid a collision.However, a strong repulsive force was generated by the active virtual impedance to avoid the collision.Figure15dillustrates the successful tracking of the sound source by the mobile robot while avoiding the two moving obstacles.

Figure 15 .
Figure 15.(a,b,d) The successful tracking of the sound source by the mobile robot using the active virtual impedance; (c) the collision situation when the conventional virtual impedance algorithm was used for tracking.

Figure 16 .
Figure 16.(a), (b), (d) The successful tracking of the sound source by the mobile robot using the active virtual impedance; (c) the collision situation when the conventional virtual impedance algorithm was used for tracking.

Figure 17
Figure17shows the experimental environment of multiple dynamic obstacle avoidance.The space was 6.0 m wide and 8.0 m long.The sound source was moving with a velocity of 300 mm/s,

Figure 16 .
Figure 16.(a,b,d) The successful tracking of the sound source by the mobile robot using the active virtual impedance; (c) the collision situation when the conventional virtual impedance algorithm was used for tracking.

Electronics 2019, 8 ,
x FOR PEER REVIEW 17 of 19 (c) Conventional virtual impedance (d) Completion of tracking

Figure 16 .
Figure 16.(a), (b), (d) The successful tracking of the sound source by the mobile robot using the active virtual impedance; (c) the collision situation when the conventional virtual impedance algorithm was used for tracking.

Table 1 .
Distance and angle measurements.

Table 2 .
Standard deviations of the distance and angle measurements.

Table 3 .
Constants for virtual impedance algorithm.

Table 5 .
Hardware specifications of the moving object.