Short Paper —D-Star Algorithm Modification D-Star Algorithm Modification

—One of the most effective methods for solving a navigation problem is the method of constructing a navigation system based on the simultaneous localization and mapping algorithm and obstacle avoidance algorithms. One of the most effective obstacles avoidance algorithms is the D-star algorithm, which, despite its effectiveness, has some drawbacks. This modification allows to elim-inate some problems arising during the implementation of the navigation system.


Introduction
Nowadays, automation of processes in which a robot is able to replace a human being is widespread. To solve this problem, it is necessary that robots can move independently from one position to another. Known methods on this subject have a number of disadvantages.

D-Star Algorithm Modification Principles
The most effective of these is the method of constructing a navigation system based on SLAM and D * algorithms [1][2][3]. This paper presents an algorithm based on the principles of this system and correcting a number of its shortcomings [2][3][4][5][6].

Basic principles
To implement the modification of the algorithm D *, it is necessary to present the map of the environment in the form of a grid map. All cells are divided into free cells and cells with obstacles. In addition, the initial position of the robot and the cell corresponding to the target point are marked on it.
This method allows you to simplify the navigation system to one algorithm. When using it, there is no need to use localization algorithms.

D-star algorithm modification
• Set the cell on the map, corresponding to the initial position of the robot and the target point. In the case when we need to move not from any particular point to a specific one, but travel in a certain direction a certain distance (i.e. when we know only the location of the target point relative to the robot) the map is built relative to the current position of the robot so it does not matter which point we take as the starting point. • Scan the environment. It is advisable to scan for all 360 ∘ This is done with the help of rangefinders. The optimal set of them is one infrared range finder fixed at the front, one at the back, and another at the servo that can turn 360 ∘ . Other types of sensors can be used, but the infrared rangefinder is optimal because it gives the most accurate results. When trying to use ultrasonic range finders, the algorithm may not work effectively, and it may also collide with an obstacle. Improving the operation of the scanning system contributes to the use of filters obtained scans. The best option is the Kalman filter. • When an obstacle is detected, we calculate which cell it belongs to and add it to the array of obstacles. • Using the algorithm A *, we construct the initial trajectory of the robot. This trajectory is searched for from the target point to the initial position, which allows you to know the exact distance from each point considered to the target. Add all considered points to the history list, which stores the following information about each point considered: ─ Is the weight of m equal to the sum of the weight of the previous point and the distance from it to the current one. The weight of the target point is zero, and the weight of each cell containing an obstacle tends to infinity. ─ Previous (k − 1) cell, i.e. the one that will be the next point in the trajectory obtained using the A* algorithm. ─ Path length from target cell p(k) = m(k) + p(k − 1). ─ Coordinates x and y.
• We consider the movement along the resulting trajectory from the starting point to the target. Let's take the direction of the robot at the point where the coordinate of the point where we are going to move forward is taken. Let us take as the initial -the direction in which the robot is at the starting point when the algorithm is run ( " , " ), where x, y = {−1, 0, 1}. • To find a direction from one point to the next along the path, the following information is necessary: ─ Coordinates of the current point. ─ The direction of the robot at the current point. ─ Coordinates of the next point on the path.
To move the robot you need to know the following values: the direction dir (dir = −1 − backward, dir = 0 -there is no forward movement, dir = 1 -forward), the direction of rotation turn (turn = −1 -to the right, turn = 1 to the left, turn = 0 -without a turn), the angle of rotation φ (from 0 to 90 degrees).
We make two vectors: ─ Vector a >⃗ with the beginning at the current point, the end -in the coordinate corresponding to the direction of the robot at this point.
otherwise, = 0. At each step, we do a check: if the next cell of this trajectory does not contain an obstacle, then move on, if it contains -stop moving and go to step 7, if it is the targetfinish the algorithm.
If at least one of the neighboring cells ./0 is available in the history list, then it is necessary to study them. The basic algorithm D * works according to the following principle: If at least one of the neighboring cells ./0 is available in the history list and the updated weight of this cell is ( ./0 ) ≤ ( ) + α , where α is a coefficient that determines which of the criteria is more important: the length of the path or the running time of the algorithm (the optimal path length is α = 3), then go to step 8, otherwise, make the current cell the initial position of the robot and go to paragraph 2. With this approach, a problem may arise when a robot, approaching some obstacles like walls, can make It is unnecessary and inefficient movement.
To solve this problem, it was decided to use the method of estimating points using a method similar to the method of potential fields [13][14][15][16][17][18].
For each point that satisfies the rule of the basic algorithm D * described above, a set of forces is generated, which are formed when the target point is represented as an attractor, and certain obstacles as a repeller. To determine the obstacles necessary for taking into account in this method, it is necessary to construct a circle whose radius is 3 cell lengths of a given grid, with the center at the intersection of the diagonals of the square forming the considered cell. Through this center we draw a line perpendicular to the vector directed to the target points. From the two semicircles formed by this line and a circle, choose one that partially or completely contains a vector directed to the target point. All cells with obstructions, completely or partially lying in this semicircle, are designated as repellers for the cell currently being considered. The force vector formed by the attractor is constant modulo -W ,112 >>>>>>>>>⃗ W = (the optimal choice for a constant is the length of the side of the square forming the cell), and the module of vectors formed by repellers is calculated using the formula W 3 >>⃗ W = 1/ 4 5 , where is the number of the corresponding repeller, and 4 is the distance from the center of the investigated cell from the list to the center of the point of the th repeller.
Find the resultant force vector Build a vector equal to the resultant (1), with the beginning at the intersection of the diagonals of the current cell. If the distance from the center of the target cell to the end of this vector is less than the distance to its beginning, then moving to this point is permissible if the conditions of the basic algorithm D * specified at the beginning of the step are met.
If there are suitable points to move, go to step 8, otherwise, make the current cell the starting position of the robot and go to step 2.
• From the neighboring cells that satisfy the condition from clause 7, select the distance from the target point to which is the smallest, and proceed to step 9. • With the help of information about the previous cell known for each cell, we move from each new point considered to the previous one until we reach the target point.

Algorithm Comparison
Robots controlled by a navigation system based on the D* algorithm do not need to use sensors such as gyroscope, accelerometer, gps, etc. This significantly reduces the cost of the robot and the time required to configure it [19][20][21][22][23][24].
The modified algorithm will make decisions faster by eliminating the need for additional calculations associated with receiving and using data from positioning sensors. However, the error of calculating the current location increases slightly, which can cause small deviations from the trajectory.
The results obtained by path length will be similar to the results of the original D* algorithm.

Conclusion
The method presented in the paper allows to solve some problems arising in the practical implementation of the navigation network construction method. It is a more efficient method for certain types of tasks. In addition, it is easier to learn, because it is presented not as a composite system, but as an algorithm that solves all the tasks assigned to it.