Obstacle Avoidance of Two-Wheel Differential Robots Considering the Uncertainty of Robot Motion on the Basis of Encoder Odometry Information

It is important to overcome different types of uncertainties for the safe and reliable navigation of mobile robots. Uncertainty sources can be categorized into recognition, motion, and environmental sources. Although several challenges of recognition uncertainty have been addressed, little attention has been paid to motion uncertainty. This study shows how the uncertainties of robot motions can be quantitatively modeled through experiments. Although the practical motion uncertainties are affected by various factors, this research focuses on the velocity control performance of wheels obtained by encoder sensors. Experimental results show that the velocity control errors of practical robots are not negligible. This paper proposes a new motion control scheme toward reliable obstacle avoidance by reflecting the experimental motion uncertainties. The presented experimental results clearly show that the consideration of the motion uncertainty is essential for successful collision avoidance. The presented simulation results show that a robot cannot move through narrow passages owing to a risk of collision when the uncertainty of motion is high. This research shows that the proposed method accurately reflects the motion uncertainty and balances the collision safety with the navigation efficiency of the robot.


Introduction
It is important to overcome different types of uncertainties for the safe and reliable navigation of mobile robots. Three main categories of uncertainties can be identified: uncertainties in recognition, motion, and the environment [1][2][3][4]. Recognition uncertainties are caused by the practical limitations of sensors or algorithms; for instance, the position uncertainty of obstacles caused by the sensor error. Environmental uncertainties arise from the inaccurate representation or dynamic change of the environment. Changes in the environment, such as large parking spaces or exhibition halls with dynamic obstacles, can cause the localization to become uncertain [5]. Sources of motion uncertainties include controller errors, latency, disturbances, and modeling errors [6]. Uncertainties may arise when robotically-steering flexible medical needles to clinical targets in soft tissues [7] and motion control of service robots passing between narrow and long obstacles. Thus far, several challenges in recognition and environmental uncertainties have been addressed. Little attention has been paid to motion uncertainties.
Several studies have focused on collision avoidance problems. Fox proposed a dynamic window approach (DWA); the DWA is widely used owing to its simplicity and smooth motions in a dynamic environment [8]. Brock extended the conventional DWA to a global dynamic window approach (GDWA) in order to guide robots in complex environments [9]. Minguez proposed a nearness diagram (ND) method, where robots exhibited great collision avoidance performances in cluttered environments [10]. Borenstein proposed a vector field histogram (VFH) method that enabled robust performances with respect to sensor errors [11]. Zi proposed a collision avoidance method for an omni-directional mobile robot in Ref. [12] and a collision avoidance method for multiple parallel mobile cranes (CPRMCs) in Ref. [13]. Various conventional collision avoidance algorithms are still widely used in applications.
Control strategies toward safe navigation have been extensively studied. In the authors' prior work [14], collisions with dynamic obstacles from occluded regions were considered. It was shown that the limitations of visibility can be overcome by appropriate path planning and speed control strategies. Roy proposed an intelligent navigation scheme that can improve performance by learning the collision probability [15]. A sampling-based planner has been developed that achieves safety by maximizing the margin to obstacles in the input space [16]. A speed control strategy under the consideration of map and motion uncertainties has also been proposed [17].
Some obstacle avoidance schemes quantitatively consider the risk of collision. So far, various indices have been developed for quantitative collision risk evaluation. Kuffner proposed a region of inevitable collision (RIC) scheme [18]. The RIC extends the obstacle region with respect to robot motion. Frichard proposed an inevitable collision area for a mobile robot [19]. Zucker introduced a relative collision risk [20]. Chung proposed the collision risk index (CRI) that represents the margin of velocity control in the input space [14]. Horst proposed a method to define an appropriate time-to-collision (TTC) [21]. ISO 17387 specifies the TTC level for a collision warning function in a vehicle-mounted crash avoidance system (CAS) [22].
The defining point of this study is that it is important to model motion uncertainties of practical robots quantitatively. Motion uncertainties may vary with the type of robot used. Although the accurate control of the actuator velocity is not a difficult problem in recent days, many commercially-available robots show unsatisfactory velocity control performances. Many research studies recommend the intentional inflation of uncertainty in order to consider various unknown uncertainties [1,16,17,23]. Previous research included the extension of the obstacle area to reduce the risk of collision. However, it is useless for the performance and usability of the robot if the robot is moved by excessively expanding obstacles.
It is clear that the inflation should start from the estimated uncertainty of the given robots. After accurately modeling the uncertainty, the controller finally perceives the degree by which the obstacle has enlarged. Therefore, it is better to model the uncertainty of the robot accurately and to expand the obstacle area to the size of the model. The key ideas of this paper are that the modeling and exploitation of the motion uncertainties are extremely significant for practical applications. The aim of this paper is to achieve the safe and efficient navigation of mobile robots under the consideration of the motion uncertainties.
This study shows how the uncertainty of robot motions is experimentally modeled. The motion uncertainty is assumed to be represented by the velocity control error of a wheel. In other words, the velocity control error is assumed to be a dominant source of motion uncertainty. Then, the modeled uncertainty is reflected in the design of a motion control scheme. The proposed scheme is verified through simulations and experiments. The presented results clearly indicate that the resulting movements of a robot exhibit significant differences under different uncertainty conditions that are considered. It can be concluded that it is essential to model and exploit motion uncertainties.

Experimental Modeling of the Motion Uncertainty Using Encoder Odometry Information
This section describes how to model the uncertainty of robot motions. It is difficult to obtain conventional collision avoidance algorithms that explicitly consider the motion uncertainty of a robot. The uncertainty of the robot position increases with increasing velocity [17]. The motion uncertainty should be modeled with the consideration of the type of robot and motion control performance. Sources of motion uncertainty include unmodeled latency, inaccurate parameters, and disturbances. In this study, the velocity control error obtained by an encoder sensor is assumed to be a dominant source of motion uncertainty. Figure 1 illustrates the effect of motion uncertainties when a robot moves around an obstacle. If the motion uncertainty is low, as shown in Figure 1a, the vehicle travels close to the obstacle. As shown in Figure 1b, if the uncertainty is high, the robot travels away from the obstacles. It may be safe to navigate at distances sufficiently far from the obstacles. However, maintaining an excessive distance from an obstacle reduces the robot's traveling efficiency. Therefore, accurate modeling of the motion uncertainty is needed to maintain both the navigation efficiency and safety.  The translational and rotational velocities of a two-wheeled mobile robot can be given as follows: The translational velocity is denoted by v, and the rotational velocity is denoted by ω. The tread b is assumed to be constant. v l and v r represent the velocity of the left and right wheels, respectively. The velocity control error of both wheels represents the motion uncertainty of a two-wheeled differential robot. The velocity error can be obtained from the difference between the reference and experimental velocities. Thus, the motion uncertainty of a robot can be obtained through practical experiments.

Motion Controller Considering the Uncertainty of Robot Motion
It was assumed that the velocity error follows a Gaussian distribution. For a reference velocity x = [v l_re f ; v r_re f ], experimental velocity mean error M = [v l_exp ; v r_exp ], and velocity error covariance matrix Σ = [ σ l 0 ; σ r 0 ], the multivariate Gaussian probability can be given by Equation (3) [24]. σ l and σ r denote the standard deviations in velocity errors of the left and right wheels obtained through encoders, respectively.
In Equation (3), v l_err v l_re f − v l_exp and v r_err v r_re f − v r_exp are defined. Since the velocities of both wheels of a two-wheeled mobile robot are independent, the covariance matrix is diagonal.
The inverse of s can be simply calculated by taking the reciprocal of each diagonal element. Equation (3) is expanded as follows: Here, the last equation is the product of two independent Gaussian distributions. If the input space consists of v l and v r and the velocity error distribution is represented by a covariance ellipse, the semi-major and semi-minor axes are parallel to the v l and v r axes, respectively. The velocity uncertainties of v l_re f and v r_re f in the input space can be expressed by an elliptic inequality. This elliptic inequality can be obtained by the confidence coefficient, covariance matrix, and velocity control error.
where s is the critical value of the chi-squared distribution. Figure 2 shows the uncertainty ellipse, which is the expansion of the input velocity under the consideration of velocity control errors. If a robot with a large motion uncertainty chooses a velocity near the obstacle area, the robot is more likely to collide with obstacles. Therefore, knowledge of the magnitude of the uncertainty associated with the current traveling condition of the robot is required. If the size is known through experiment, a safe speed can be selected by expanding the obstacle by the amount of motion uncertainty. The shape of the motion uncertainty ellipse depends on the magnitude of the velocity uncertainty of the left and right wheels. If the motion of the robot is accurate, the uncertainty ellipse is small. However, the risk of collision increases according to increases in the motion uncertainty. Therefore, the clearance considering the uncertainty of the robot motion (CURM) is proposed as shown in Figure 3. Using the CURM, experimental resultant velocities of a wheel remain inside the collision-free input region, regardless of the uncertainty. The CURM means the expected value of the clearance considering the motion uncertainty. The CURM is the smallest value in the uncertainty ellipse of the reference velocity. The extent of the obstacle expansion depends on the type of robot and navigation conditions. For defining the CURM, the range of the input space was set as Equation (6).
In Equation (6), a l and a r are the maximum acceleration values of the left and right wheels, respectively. In order to obtain the value of CURM, Equations (5) and (7) can be used. Algorithm 1 explains how to obtain CURM from Equations (6) and (7). The getUncertainty function of Line 6 returns [σ l , σ r ].
Algorithm 1: CURM() 1: for v l_re f = (v l − ∆t) to (v l + ∆t) do 2: for v r_re f = (v r − ∆t) to (v r + ∆t) do 3: min = infinite 4: for v l_re f = (v l − ∆t) to (v l + ∆t) do 5: for end if 10: end for 11: end for 12: CURM [v l_re f ,v r_re f ] = min 13: end for 14: end for Algorithm 2 shows the A*-based path planner considering the motion uncertainty of mobile robots. The algorithm follows the structure of A*. The OPEN queue is a priority queue, in which the distance traveled is generated. The distances from the start node to the current node are arranged in ascending order. The OPEN queue contains candidate nodes for the trajectory. Certain steps are undertaken before placing the node in the OPEN queue. First, the trajectory is obtained through the motion controller for a candidate node (Line 9). Then, a sampling-based forward simulation is carried out (Line 11). OPEN.Push(node) places the node in the OPEN queue if the collision probability is lower than the threshold K. The CLOSED queue stores nodes, where the child node has been searched for backtracking after arrival at the goal. The rest of the process proceeds as per the basic A* algorithm to obtain an appropriate trajectory. nodes = Expand(n) 10: for all the node∈nodes do 11: node.trajectory = GenTrajectory(n, node) 12: node.f = n.f + GetLength(node.trajecory) + h(node) 13: collisionProb = SimulationWithMotionUncertainty (node.trajectory) 14: if (collisionProb ≥ K) then 15: continue 16: end if 17: if (isGoal(node) = true) then 18: return MakeTrajectory(node) 19: end if 20: if (node ∩ CLOSED = ∅) then 21: OPEN.Push(node) with node.f as priority 22: end if 23: end for 24: CLOSED.Push(n) 25: end while Algorithm 3 corresponds to Line 13 in Algorithm 2. Forward simulations are carried out by considering the uncertainty of robot motion, under the application of the motion controller from the parent node to the candidate child node. for j = 1 to Trajectory.Size do 5: [v l , v r ] =Trajectory[j].velocity 10: x = x −vω sin θ +vω sin (θ +ω∆t) 11: y = y −vω cos θ +vω cos (θ +ω∆t) 12: if (CollisionCheck(x, y, θ) = true) then 14: collision = collision + 1 15: break 16: end if 17: end for 18: end for A velocity motion model [1] is used as the kinematic condition of the two-wheeled mobile robot, as shown in the 6th-12th lines. The trajectory generated in Line 11 of Algorithm 2 is generated by forward simulation using a number of samples. The probability of collision with the obstacle is calculated and returned. The returned value is used to determine whether the node will be placed in the OPEN queue at Line 14 of Algorithm 2.
As the motion uncertainty increases in magnitude, the sample distribution widens. Therefore, the number of colliding samples near the obstacle thus increases. With Algorithms 2 and 3, the paths with a short travel distance are created while safely avoiding obstacles. As a result, a safe and efficient path can be generated by reflecting the uncertainty of the robot motion.

Measuring the Motion Uncertainty
The measurement range of the motion uncertainty of the mobile robot was based on indoor service robots used in previous studies. Based on the service robots listed in Table 1, the maximum velocity and acceleration were 0.5 m/s and 0.5 m/s 2 , respectively. The standard deviation of the velocity control error with respect to the velocity and acceleration was obtained. Figure 4 shows the robot used in this experiment. The experiment was repeated with the DWA to measure the velocity and acceleration of approximately 5000 samples.  The method of finding parameters of the motion uncertainty of a two-wheeled mobile robot without actual navigation is as follows. The maximum linear velocity and acceleration of a wheel are determined. A triangular wave that satisfies the maximum linear velocity and acceleration is generated. One of the robot wheels is stationary while the other rotates the robot by the input of a triangular wave. The opposite wheel is also used to obtain the parameters of motion uncertainty in the same way. The motion uncertainty parameter of the robot with the input velocity for each time step and actual measured velocity through the wheel encoder sensor are obtained. When the operating conditions of the robot, such as the motor and controller, are changed, the motion uncertainty parameters are measured again. Table 2 shows the results of motion control error collection for velocity and acceleration. Figure 5 shows the experimental results of the velocity control error measured by encoder sensors. The x-axis represents v l_re f − v l_exp , and the y-axis represents v r_re f − v r_exp . The reference velocity is the wheel velocity as input, and the experimental velocity is the wheel velocity read from the encoder after a control cycle. Figure 5a shows the velocity control error of a low-uncertainty (LU) robot, and Figure 5b shows the velocity control error of a high-uncertainty (HU) robot.   From Table 2, it is clear that the control error showed a strong correlation with the desired acceleration. On the other hand, the desired velocities were independent of the experimental control errors. The measured velocity control error was used in Line 7 of Algorithm 1 and Lines 6-7 of Algorithm refalgorithm:makeTrajectory.

CURM and One-Step Simulation
This section provides a comparison of the conventional and proposed approaches through simulations. The simulations were performed by applying Algorithm 1. Figure 6a shows a simulation environment. The robot was located at A. Figure 6b-d shows local paths that were generated by the conventional (blue) and proposed (red) schemes. It can be seen that the conventional path was closer to the obstacle than the proposed path. The clearance object of the conventional path was higher than that of the proposed path. However, if the motion uncertainty is taken into account, the conventional path became risky because there was minimal clearance to the lateral direction of the robot.
The CURM from Equation (7) provides the way of obtaining the motion uncertainty during the clearance object computation. The proposed path was generated by the computation of the CURM. The proposed path was safer compared with the conventional path when motion uncertainty existed. However, if the CURM was obtained with the method presented in Figure 7, the expected value of the velocity near the obstacle decreased when the motion uncertainty was considered. Thus, the probability of obstacle collision decreased. Figure 7 shows the computed clearance object using the conventional scheme and Equation (7). The CURMs at three different locations, A, B, and C of Figure 6, are shown in Figure 7b,d,f, respectively. The red lines in Figure 6b-d are the paths selected by the proposed scheme. Figure 7a,c,e shows the clearance objects without considering the motion uncertainty.
Sharp peaks signify that the robot can be safely driven at the selected input velocities. However, the collision risk dramatically increased if motion uncertainty existed. Dramatic decreases in the clearance objects of Figure 7b,d,f are clearly observed. A decrease in a clearance object implies an increase in the collision risk. Therefore, the computation of CURM was essential in order to guarantee collision-free navigation in practical applications.

Reactive Motion Controller
Algorithm 1 was experimentally tested. In the cluttered environment of Figure 8, the collision risk of the conventional and proposed methods was investigated. The navigation system was implemented on a Core-Duo 2.53-GHz laptop using the ROS [30] platform and written in C++. The ground truth for the robot pose was obtained by Adaptive Monte-Carlo Localization(AMCL) [31]. For comparison, four indices were used to evaluate the risk of collision: the minimum distance, TTC, minimum distance in the input space, and CRI [14]. The maximum translational velocity of the robot was 0.5 m/s.  Figure 9 shows three paths of a robot in a static cluttered environment. Figure 10 compares their navigation safety indices. The conventional path was assumed to be the ideal case, where there was no motion uncertainty. For the LU robot, the safety indices of the proposed method were similar to the conventional method. For the HU robot, the proposed control method was more cautious than the conventional method. This can be concluded from the comparison of the collision risk indices, which indicated the collision risk in the admissible velocity and that the proposed method navigated more safely.  Figure 11 shows the simulation results with the proposed path planner in an environment with narrow passages from 0.35-0.85 m. The simulator was developed using the MFClibrary by the authors. The width of the passage increased when the y-coordinate of the passage increased in Figure 11. The purple lines indicate the resultant paths of the simulation using the conventional method. The red and blue lines indicate the paths of the LU and HU robots, respectively. A total of 100 simulations were carried out for each method. A trajectory can be updated online using the modeled information of the motion uncertainty. In an environment with fixed obstacles, a Core-Duo2 2.53-MHz laptop can generate about one trajectory per second online. Table 3 shows the quality of paths [32] presented in Figure 11. Using the quality of paths, quantitative comparisons between the conventional and proposed schemes are presented. The collision probability was calculated through the trajectory. The middle and right columns of Table 3 present the approximations that can be computed given the probability distributions along the trajectories. Since the simulation was based on practical motion uncertainty, the conventional method that assumed perfect motion in the collision was excluded.

Path Planner
When the motion uncertainty of the path planner was applied excessively, the quality of paths was 98.7%. When the motion uncertainty of the robot was exactly applied to the path generation, the quality of paths of the LU and HU robots were 97.0% and 89.3%, respectively. When the motion uncertainty of the robot was insufficiently applied, the quality of paths was under 80%. It can be seen that the proposed scheme showed superior performances from the viewpoint of collision safety.  Figure 12 shows the distance traveled, time taken, and width of the passage for the 100 simulations. The conventional method tended to generate shorter paths through narrow passages and took up shorter times. The HU robots traveled longer distances and took a longer time. This result signifies that the HU robot moved through wider passages in order to avoid collision under highly uncertain conditions.  Figure 13 shows the simulation results of the safety indices. The results indicate the minimum distance to the obstacles, TTC, the minimum distance from the obstacle in the input space, and CRI when the robot is in a dangerous situation. In all the indices' results, the conventional approach exhibited the highest collision risk, while the HU robots took the safest paths. This result implies that the consideration of motion uncertainty is extremely significant in real-world applications, where uncertainty is not negligible. From the simulation results, the motion uncertainty must be explicitly applied to the controller or path planner. It was shown that the safety of the robot improved by considering the motion uncertainty. The application of excessively-extended uncertainty has also demonstrated that the collision risk was reduced. However, the navigation efficiency was reduced. Therefore, it is possible to balance the collision safety and navigation efficiency by accurately applying the motion uncertainty of practical robots.

Conclusions
In this study, a new motion control scheme toward reliable obstacle avoidance by reflecting the experimental motion uncertainties was proposed. It was shown how the uncertainty of robot motions can be quantitatively modeled based on the performance of the velocity control of a wheel. A controller was proposed where obstacles are extended as much as the motion uncertainty modeled in the input space. The usefulness of the proposed approach was experimentally verified.
The experimental results clearly show that the consideration of the motion uncertainty is essential to successful collision avoidance. A path planner was proposed where the uncertainty of motion is quantitatively reflected. In the environment with multiple narrow passages, the proposed method was compared to the conventional method through generated paths. The conventional method generated shorter paths. However, based on actual motion uncertainty, the conventional method had a high risk of collision in simulation. The path generated by the proposed method may not be the fastest. However, it was generated with both safety and efficiency in consideration. The presented simulation results demonstrated that the proposed method can accurately reflect the motion uncertainty and balance the collision safety with the navigation efficiency of the robot.