Jump to content

Layered costmaps: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
No edit summary
Line 3: Line 3:


{{Short description|Delay-based audio effects system}}
{{Short description|Delay-based audio effects system}}
[[File:Layered Costmap2.jpg|thumb|A schematic of Layered costmaps|350x350px]]
[[File:Layered Costmap.png|thumb|A schematic of Layered costmaps|350x350px]]


The '''layered costmaps''' is a method to create and update maps for [[robot navigation]] and [[path planning]] proposed by David V. Lu in 2014. <ref>{{cite journal |last1=Lu |first1=David V. |last2=Hershberger |first2=Dave |last3=Smart |first3=William D. |title=Layered costmaps for context-sensitive navigation |journal=2014 IEEE/RSJ International Conference on Intelligent Robots and Systems |date=September 2014 |pages=709–715 |doi=10.1109/IROS.2014.6942636}}</ref> The method consists of more than one layer of costmaps, each of which describes obstacles with different properties. Each layered costmap consists of grids and is represented as a [[matrix (mathematics)|matrix]], the values of the matrix elements are related to the risks of grids. In the layered costmap, the colour of a grid indicates the risk of moving through that grid. There is a high probability of robot collision when the robot moves through a grid with deep colour. When updating a layered costmap, only the area covered by the sensors (such as [[Lidar]]) in the map is updated, rather than the entire map.
The '''layered costmaps''' is a method to create and update maps for [[robot navigation]] and [[path planning]] proposed by David V. Lu in 2014. <ref>{{cite journal |last1=Lu |first1=David V. |last2=Hershberger |first2=Dave |last3=Smart |first3=William D. |title=Layered costmaps for context-sensitive navigation |journal=2014 IEEE/RSJ International Conference on Intelligent Robots and Systems |date=September 2014 |pages=709–715 |doi=10.1109/IROS.2014.6942636}}</ref> The method consists of more than one layer of costmaps, each of which describes obstacles with different properties. Each layered costmap consists of grids and is represented as a [[matrix (mathematics)|matrix]], the values of the matrix elements are related to the risks of grids. In the layered costmap, the colour of a grid indicates the risk of moving through that grid. There is a high probability of robot collision when the robot moves through a grid with deep colour. When updating a layered costmap, only the area covered by the sensors (such as [[Lidar]]) in the map is updated, rather than the entire map.
Line 14: Line 14:


If in the static map matrix <math> M^{sta} </math>, the real location <math> (x^w,y^w) </math> corresponds to the element index <math> (x,y) </math>, then an example of the static map layer defining rules is as follows:
If in the static map matrix <math> M^{sta} </math>, the real location <math> (x^w,y^w) </math> corresponds to the element index <math> (x,y) </math>, then an example of the static map layer defining rules is as follows:
<blockquote><math> M^{sta}_{x,y} = \begin{cases} 255 & (x^w,y^w) \text{ is occupied} \\ 0 & \text{otherwise} \end{cases} \;</math></blockquote>
<blockquote><math> M^{sta}_{x,y} = \begin{cases} 254 & (x^w,y^w) \text{ is occupied} \\ 0 & \text{otherwise} \end{cases} \;</math></blockquote>
=== Obstacles Map Layer ===
=== Obstacles Map Layer ===
The obstacles map layer describes the situation of obstacles detected by sensors during robot navigation. Since the observation distance of the sensor is limited, the obstacles map layer can only be updated in the observation area of the sensor.
The obstacles map layer describes the situation of obstacles detected by sensors during robot navigation. Since the observation distance of the sensor is limited, the obstacles map layer can only be updated in the observation area of the sensor.


Assume that there is only one sensor in the scene and it is equipped on the robot, its observation area is a square with side length <math> 2L </math>, and the location of the robot is <math> (x^r,y^r) </math>. If in the obstacles map matrix <math> M^{obs} </math>, the real location <math> (x^w,y^w) </math> corresponds to the element index <math> (x,y) </math>, then an example of the obstacles map layer defining rules is as follows:
Assume that there is only one sensor in the scene and it is equipped on the robot, its observation area is a square with side length <math> 2L </math>, and the location of the robot is <math> (x^r,y^r) </math>. If in the obstacles map matrix <math> M^{obs} </math>, the real location <math> (x^w,y^w) </math> corresponds to the element index <math> (x,y) </math>, then an example of the obstacles map layer defining rules is as follows:
<blockquote><math> M^{obs}_{x,y} = \begin{cases} 255 & (x^w,y^w) \text{ is occupied} \\ 0 & \text{otherwise} \end{cases} \; </math></blockquote>
<blockquote><math> M^{obs}_{x,y} = \begin{cases} 254 & (x^w,y^w) \text{ is occupied} \\ 0 & \text{otherwise} \end{cases} \; </math></blockquote>


where <math> (x^w,y^w) </math> meets that <math> x^r-L < x^w < x^r+L </math> and <math> y^r-L < y^w < y^r+L </math>.
where <math> (x^w,y^w) </math> meets that <math> x^r-L < x^w < x^r+L </math> and <math> y^r-L < y^w < y^r+L </math>.
Line 27: Line 27:


The inflation rule used in the inflation layer is flexible and can be freely designed according to the features of the environment and the robot. For example, a simple inflation rule can be designed with two thresholds and a function. Assume that the maximum radius of the robot is <math> R </math>. If in the inflation matrix <math> M^{inf} </math>, the real location <math> (x^w,y^w) </math> corresponds to the element index <math> (x,y) </math>, then an example of the inflation rules is as follows:
The inflation rule used in the inflation layer is flexible and can be freely designed according to the features of the environment and the robot. For example, a simple inflation rule can be designed with two thresholds and a function. Assume that the maximum radius of the robot is <math> R </math>. If in the inflation matrix <math> M^{inf} </math>, the real location <math> (x^w,y^w) </math> corresponds to the element index <math> (x,y) </math>, then an example of the inflation rules is as follows:
<blockquote><math> M^{inf}_{x,y} = \begin{cases} 255 & (x^w,y^w) \text{ is occupied} \\ 0 & \text{otherwise} \\ 0 & \text{otherwise} \end{cases} \; </math></blockquote>
<blockquote><math> M^{inf}_{x,y} = \begin{cases} 254 & dis(x^w,y^w) < R \\ 0 & dis(x^w,y^w) > 3*R \\ 127*(3-dis(x^w,y^w)/R) & \text{otherwise} \end{cases} \; </math></blockquote>

Where the function <math> dis(x^w,y^w) </math> represents the distance between point <math> (x^w,y^w) </math> and the nearest obstacle

Revision as of 09:09, 11 July 2024

This sandbox is in the article namespace. Either move this page into your userspace, or remove the {{User sandbox}} template.

A schematic of Layered costmaps

The layered costmaps is a method to create and update maps for robot navigation and path planning proposed by David V. Lu in 2014. [1] The method consists of more than one layer of costmaps, each of which describes obstacles with different properties. Each layered costmap consists of grids and is represented as a matrix, the values of the matrix elements are related to the risks of grids. In the layered costmap, the colour of a grid indicates the risk of moving through that grid. There is a high probability of robot collision when the robot moves through a grid with deep colour. When updating a layered costmap, only the area covered by the sensors (such as Lidar) in the map is updated, rather than the entire map.

Layered costmap categories

Layered costmaps is a flexible method, and spcial categories of layered costmaps can be designed and added to the method depending on the navigation environment of the mobile robot. In Robot Operating System (ROS), some categories of layered costmaps are provided for mobile robot navigation[2], and they are also the typical categories of layered costmaps that are added in most cases.

Static Map Layer

The static map layer is at the bottom among all layered costmaps, and it includes the situation of all known static obstacles in the environment before navigation starts. The static map layer can be generated with a SLAM algorithm or can be created from an architectural diagram.

If in the static map matrix , the real location corresponds to the element index , then an example of the static map layer defining rules is as follows:

Obstacles Map Layer

The obstacles map layer describes the situation of obstacles detected by sensors during robot navigation. Since the observation distance of the sensor is limited, the obstacles map layer can only be updated in the observation area of the sensor.

Assume that there is only one sensor in the scene and it is equipped on the robot, its observation area is a square with side length , and the location of the robot is . If in the obstacles map matrix , the real location corresponds to the element index , then an example of the obstacles map layer defining rules is as follows:

where meets that and .

Inflation Layer

File:Inflation of ROS costmap.png
A schematic of an inflation rule.[3]

The inflation layer inserts a buffer zone around each obstacle in order to keep the robot from getting too close to obstacles. Note that these obstacles include obstacles described in the static map layer and the obstacles map layer. In the inflation layer, the grids that are further away from the obstacles have the lower cost.

The inflation rule used in the inflation layer is flexible and can be freely designed according to the features of the environment and the robot. For example, a simple inflation rule can be designed with two thresholds and a function. Assume that the maximum radius of the robot is . If in the inflation matrix , the real location corresponds to the element index , then an example of the inflation rules is as follows:

Where the function represents the distance between point and the nearest obstacle

  1. ^ Lu, David V.; Hershberger, Dave; Smart, William D. (September 2014). "Layered costmaps for context-sensitive navigation". 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems: 709–715. doi:10.1109/IROS.2014.6942636.
  2. ^ "costmap_2d/layered - ROS Wiki". wiki.ros.org.
  3. ^ "costmap_2d/hydro/inflation - ROS Wiki". wiki.ros.org.