1. Introduction
The goal of path planning is to provide a path that is safe from obstacle collisions and to guide any object through the most appropriate path that has the shortest distance [
1,
2,
3,
4,
5]. To accomplish this goal, a robot must collect surrounding data to generate an environment map.
An environment map refers to a map that features data on the surroundings in which a mobile robot stands. Although a robot uses sensors to generate an environment map, the data acquired through these sensors are always affected by elements of the surrounding environment. For this reason, such data always contain inaccuracies. Therefore, these inaccuracies in the data must be considered when creating environment maps.
Sensors that are often used to detect distances from obstacles include ultrasound sensors [
6], laser sensors [
7,
8], etc. Among these, ultrasound sensors use the elapsed time it takes for a sound wave to come back to the sensor after hitting the obstacle to detect distance. However, because ultrasound sensors use sound as a medium, the measurable distance is short, and detecting distance is difficult if the direction of the obstacle and the sound wave do not align vertically. Laser sensors measure an object’s distance away from obstacles using lasers [
9,
10]. The properties of laser sensors include their ability to direct straight beams, they are capable of measuring long distances, and they are more accurate compared to other sensors [
11]. However, due to these properties, a drawback of laser sensors is that they cannot accurately detect transparent obstacles. Therefore, a mobile robot misoperates in an environment that includes transparent obstacles [
6,
12].
When a laser beam meets a transparent obstacle, as shown in
Figure 1, reflection, refraction, and penetration occur, and they cause the inaccurate detection of transparent obstacles.
The reflection noise that occurs at the opposite side of the transparent obstacle could be found from the results of measuring an object’s distance away from the transparent obstacle using an actual laser range finder (LRF). Accordingly, in this paper, a state-of-the-art algorithm that can detect the boundaries of transparent obstacles from reflection data obtained solely by the LRF has been proposed.
4. Environment Map Generation Algorithm in a Transparent Obstacle Environment
The environment map generation algorithm using LRF requires the three following assumptions.
[Assumptions]
Transparent obstacles are in the form of a straight line.
No opaque obstacle exists adjacent to the transparent obstacle that is on the opposite side of the LRF.
All obstacles are fixed in their positions, and they are not known.
The proposed environment map generation for a transparent obstacle environment processes the reflection noises that occur by using LRF. This method is used to extract reflection noise that is different from common noise, and the boundaries of the transparent obstacles are found based on the form and characteristics of the extracted reflection noises [
27].
In this paper, the occupancy grid map is chosen in the creation of an environment map. Although feature-based maps better represent actual environments, they have the drawback of being weak to noises; however, occupancy grid maps are highly resistant to noise, and their measured data can be applied quickly to environment maps without additional operations [
15]. Occupancy grid maps still require a lot of computing time [
36]; however, this can be overcome through recent improvements in computing power [
5,
9,
10].
The following table explains the terminology required for the algorithm.
Based on the terminology in
Table 1, the algorithm used to generate an environment map within an environment that includes transparent obstacles is shown below.
Algorithm 1. Pseudo code of the algorithm used to create environment maps for environments with transparent obstacles. |
Input: |
(t) ← Distance towards the direction (t) measured at time t |
(t) ← Angle value of nth sensor beam measured at time t |
(t) ← Position (x, y) of the robot at time t |
(t) ← Direction that robot is heading towards at time t |
Output: |
SDCMap ← Global map representing the accumulated number of detected sensor beams in a certain cell to decide obstacle cell |
Begin Algorithm Creating Environment maps with Transparent Obstacle |
1 For (t) in all sensor beams n: {1 ~ 1081} do |
2 If ≤ (t) ≤ then |
3 (t) ← f((t),(t),(t),(t)) |
4 Else |
5 (t) ← −1 |
6 If (t) == (t) then |
7 WDCMap((t)) += 1 |
8 Else If (t−1) ≠ (t) then |
9 If WDCMap((t)) ≥ then |
10 SDCMap((t)) += g(WDCMap((t))) |
11 Else If WDCMap((t)) ≥ Or (t) ∈ ((t−1)) then |
12 L ← Rasterization((t),(t)) |
// L: The list of cells included in the virtual line segment |
// connecting L[0]: (t) and L[NUM_CELLS]: (t) |
13 ← Find_NearCell((t), L) // Function finding the closest but not the |
// same cell from (t) in the list L |
14 loop: |
15 SDCMap ← DetectObstacleCandidate(, L, NUM_CELLS) |
16 Goto loop |
17 If there is no in L s.t. SDCMap () > 0 then |
18 SDCMap((t)) += 1 |
19 Else |
20 If (t) ∈ (t) then |
21 SDCMap((t)) += 1 |
22 Else |
23 Append (t) to (t) |
24 WDCMap((t)) ← 0 |
End Algorithm Creating Environment maps with Transparent Obstacle |
In Algorithm 1, whether dn(t) belongs to the range of Dmin ≤dn(t) ≤ Dmax is checked first to delete all inaccurate distance information about dn(t) according to its θn(t) measured from LRF at time t. The distance is calculated using Equation (1) if it belongs to the range.
In this paper, LRF’s angular resolution is 0.25 degrees, and the size of the cell is 15 cm in the grid map; therefore, two beams detect the same
celln(
t) for a cell that has an opaque obstacle [
28]. The angle between the
n-1th beam and the
nth beam is 0.25 degrees, more than 35 m distance is needed if two beams point to different cells (
Figure 8). The value of
Dmax is 20 m. Therefore, a cell that has an opaque obstacle is always detected by more than two beams.
Based on the above information, if celln(t) and celln − 1(t) point to the same cell, the probability of celln − 1(t) being an obstacle is increased by adding 1 to WDCMap(celln − 1(t)). If (cellnt) and celln − 1(t) are different, the SDCMap(celln − 1(t)) is updated according to the value of WDCMap(celln − 1(t)). The algorithm proposed in this paper uses the common feature of reflection noises generated from transparent obstacles while the robot is moving; if the SDCMap is updated while the robot is not moving, redundant detections are accumulated. Therefore, the SDCMap may not be updated while the robot is not moving.
Updates to the
SDCMap are provided through different methods according to measurements of
WDCMap(
celln − 1(
t)). If the
WDCMap(
celln − 1(
t)) >
THnon − glass, this denotes that many beams are indicating the same cell simultaneously. This denotes that the probability of (
celln − 1t) being an opaque cell is high; therefore, the value of the
SDCMap(
celln − 1(
t)) should be increased significantly.
Algorithm 2. Pseudo code of the algorithm used to DetectObstacleCandidate(). |
Input: |
← Result of function finding the closest but not the same cell from (t) in the list L |
L ← List of cells included in the virtual line segment |
NUM_CELLS ← Last index number of list L |
Output: |
SDCMap ← The global map representing the accumulated number of detected sensor beams in a certain cell to decide obstacle cell |
Begin Algorithm Detect Obstacle Candidate |
1 If SDCMap() > 0 then |
2 If WDCMap(L[NUM_CELLS]) ≥ then // L[NUM_CELLS]: (t) |
3 SDCMap() += g(WDCMap(L[NUM_CELLS])) |
4 Else |
5 SDCMap() += 1 |
6 INIT_CELL ← 1 |
7 ← Find_NearCell(, L[INIT_CELL:NUM_CELLS]) |
// Function finding the closest but not the same cell from L[0] == in the list L |
8 loop: |
9 If WDCMap((t)) ≥ then |
10 SDCMap() -= g(WDCMap((t))) |
11 Else |
12 SDCMap() −= 1 |
13 INIT_CELL += 1 // INIT_CELL: 1, 2, … , NUM_CELLS |
14 ← Find_NearCell(, L[INIT_CELL:NUM_CELLS]) |
15 Goto loop |
16 L ← L–{} // Update L With the reduced size |
17 ← Find_NearCell(, L[INIT_CELL:NUM_CELLS-1]) |
End Algorithm Detect Obstacle Candidate |
If the value of the WDCMap((t)) is not high, whether (t) is detected by reflection noise or common noise should be distinguished. For this purpose, the following three conditions are provided.
[Conditions]
The cell containing transparent obstacles have higher WDCMap compared to a cell detected by irregular noise due to the regularity of the reflection noise generated by transparent obstacles. Although the value of the WDCMap((t)) is not higher than , if it is higher than the value of , it is marked as a candidate of transparent obstacle.
While the robot is moving, the reflection noise occurs continuously, but common noises occur intermittently by opaque obstacles and the surrounding environment. Using this property, it is considered as a candidate for a transparent obstacle if the (t) at time t correspond to any of ((t−1)) at time t.
The reflection noise generated by transparent obstacles may contain a cell that has low WDCMap because it is not detected continuously; however, if it is detected regularly, it is considered to be a candidate for a transparent obstacle.
The following steps progress when conditions 1 and 2 from the above are met. At time
t, a list
L of cells is generated (
Figure 9), consisting of the cells included in the virtual line segment connecting
(
t) and
(
t).
The SDCMap is checked from , which is closest to the mobile robot, to all other elements in the list L if a cell identified as an obstacle candidate is found; (Algorithm 2) (t) is checked whether it is detected by reflection noise by the boundaries of the transparent obstacles (WDCMap((t)) ≥ ). If (t) is detected by reflection noise, the SDCMap of is increased instead of (t) with a large amount.
If (t) is not detected by reflection noise, the SDCMap is increased with a small amount for later updates. Once the SDCMap of is increased by a large amount, the SDCMap of those elements that belong to the list L but are decreased by a large amount, and if SDCMap of is increased by a small amount, the SDCMap of those elements that belong to the list L but is decreased by a small amount.
If all the elements of the list L are not detected as candidates for obstacles, (t) has a low probability of being an obstacle but would be considered for its probability of being a candidate for an obstacle; SDCMap((t)) is then increased by a small amount.
If condition 3 is met, if (t) belongs to (t), then it is a case of not being detected continuously but regularly; therefore, considering the probability of being a later candidate of an obstacle, (t) is increased by a small amount, and if it does not belong to (t), then (t) is added to (t).
5. Path Planning in an Environment with Transparent Obstacles
The following conditions are required when making an environment map in an environment with transparent obstacles.
[Conditions]
A path planning method that can be applied to the occupancy grid map must be used.
A new path must be generated quickly within the environment map being updated by the sensor data being collected in real time.
The generated path should be close to the optimized one.
Other than the above conditions, an environment map uses the
SDCMap, and by using it, three types of cells are generated as not obstacle cell, obstacle cell, and obstacle candidate cell. Therefore, path planning is run according to the Wavefront-propagation algorithm (
Table 2, Algorithm 3) with all these conditions considered [
24].
Once the grid map is completed using the Wavefront-propagation algorithm, the cost of all the cells to the destination is calculated as in
Figure 10a. The spot with a cost of 0 is the destination, and path planning is run based on this. The next cell is chosen by looking at the eight adjacent cells from which the robot stands. The current position of the robot is colored blue in
Figure 10b, and the eight adjacent cells are colored red. The box with slashes represents the path the robot travels.
As the robot travels towards the destination, the robot selects the box with the minimum cost. However, following all the boxes with minimum cost results in awkward movement. Therefore, boxes that are not needed to control the robot’s movement are removed. Not only does this contribute to more natural movement, but computing time can also be significantly reduced. The optimized map is shown in
Figure 10c.
However, in this paper, both the map in
Figure 10b,c are used; they represent the original and optimized paths, respectively, for path planning in environments with transparent obstacles. The original path is used to detect the newly found obstacles while the robot is travelling in a dynamic environment. The optimized path is used to direct the robot’s motion control.
Algorithm 3. Pseudo code for the Wavefront-propagation algorithm [24]. (Citation mark) |
BeginAlgorithm Wavefront-propagation |
1 Initialize ← , i ← 0 |
2 Initialize ← |
3 For every x ∈ , assign (x) = i and insert All unexplored neighbors of x do |
4 If == then |
5 Terminate |
6 Else |
7 i ← i + 1 |
8 Goto step 2 |
EndAlgorithm Wavefront-propagation |
The time complexity of Wavefront-propagation is O(n).