• No results found

Data Sources

In document Contextualized Robot Navigation (Page 120-123)

9.1 General Requirements

9.1.2 Data Sources

There are three primary sources of data that are used for constructing costmaps: live sensor data, prior data and the robot’s footprint. In this subsection we discuss each and how they influence the costmap.

Sensor Data

There are two pieces of information that can be derived from high accuracy sensors such as laser range finders. First, the robot can determine where there is an obstacle by determining the location of the end point of the sensor reading, i.e., where the obstacle caused the laser beam to be reflected back. Second, given the location of the sensor, the robot can also determine that there is no obstacle between the sensor and the end point of the sensor reading. To integrate this information into the map, the typical implementation is to mark the grid cell corresponding with the end point as a lethal obstacle, and then use a ray tracing algorithm to mark all of the cells between the sensor and the sensor reading as free space. These two processes are called marking and clearing respectively.

As new sensor readings arrive, the information is buffered and integrated into the costmap in two passes, first for the clearing step, then for the marking step. If it was performed in a single pass of each sensor reading, the clearing might erase obstacles it should not, as shown in Figure 9.1. As a result, the approach is cautious, prioritizing marking information over clearing information.

Observation 4. Sensor data provides two types of information, cells that should be marked as lethal, and those that should be cleared of lethal values.

Observation 5. Due to the limited resolution of costmaps, and the fallibility of sensors, the two types of information can disagree with each other for a given sensor reading.

Conclusion 3. To minimize collisions with obstacles, marking data should be prioritized over clearing data.

Prior Data

The planning algorithms also need to be able to reason about areas of the world that are outside of the robot’s current sensor view. This is most frequently provided as a static map (i.e., not live data) created with a mapping algorithm. Semantically, the static map can be interpreted in two different ways. First, it could be used as the initial values of the costmap, any of which could change with updated sensor data. Alternatively, the static map could represent the ground truth, to be maintained even when it disagrees with sensor data. The choice of representation is made by the costmap designer and is discussed in section 7.1.

The Robot’s Footprint and Inflation Data

The inflation process adds costs around each obstacle as a computational optimization that allows the robot’s path planning algorithm to represent the robot as a point, and not a two- dimensional object that spans multiple costmap cells. This approach performs the planning in the configuration space of the robot[54].

The basic geometrical reasoning of the inflation process is shown in Figure 9.2. The two key parameters that affect the spatial extent of the inflation data are robot’s radius, and what is known as the inflation radius. Cells whose distance to the nearest obstacle is less than the robot radius are marked as having a lethal cost. It is also possible to add costs outside of that radius, but within the radius defined by the inflation radius parameter. The standard ROS behavior inserts non-lethal costs to have the robot prefer to not be too close to the obstacle.

Given a newly updated obstacle, it is clear that the algorithm will need to update the values of all of the adjacent cells within the inflation radius. However, the value of these adjacent cells depends on more than just the newly updated obstacle. In Figure 9.2, if the algorithm

Figure 9.2: Inflation Geometry - Pictured in this figure are a circular robot (shown in yellow with a dotted outline) and two obstacles A and B. The robot will be in collision if the center of the robot is less than the robot’s radius from an obstacle. In this figure, this is represented by the first circle around each obstacle (medium shading). The slightly larger circle (with the lightest shading) represents a buffer zone where the cost is increased slightly to bias the robot toward not driving too close to the obstacles.

adds obstacle A to the costmap, then all of the cells within the robot’s radius will need to be updated (marked by the largest circle surrounding A). However, that requires checking for lethal obstacles like B within a radius twice the inflation radius.

Observation 6. The inflation process changes the values of cells based on the distance to the nearest obstacle.

Observation 7. If the value of a cell changes whether it is lethal or not, the surrounding cells need to be recalculated.

Conclusion 4. Updating the lethality of any particular cell can require looking at all of the cells in the surrounding area at distances as large as twice the inflation radius.

It should be noted that in ROS, the lethal value of inflated obstacles is different than that of the actual obstacle. The actual obstacle has value 254, whereas inflated obstacles are 253. Both are greater than or equal to the lethal threshold 253, so both are considered lethal, but since they have different values, the update process can differentiate them and update them accordingly.

In document Contextualized Robot Navigation (Page 120-123)