Mapping:

The mapping system is responsible for building a map by combining the obstacles seen by the SICK laser and the camera. The path planner can then use the map to plan where to go based on what obstacles that are in the environment. The first mapping system Calculon had was actually more of a graphical image representing where obstacles were. In this approach a two dimensional array was created, with each pixel in this array representing an item in the map. A scale was used (pixels/meter), and obstacles were added by drawing them into the map. This approach is very easy to understand and implement. The problem with this approach was the speed of drawing in pixels where the obstacles were. For every point or large obstacle you may want to add, a shape had to be drawn in. Another disadvantage of this method is that once obstacles are added to the map, the path planning or obstacle avoidance system then needs to search the area of the map for obstacles. This process of searching can be extremely slow depending on the size and scale of the map. For example, if you wanted to check a point in the map, and a radius around that point, you would need to analyize every single pixel within the radius underquestion just to see if an obstacle was there. Maybe the best way to describe the main problem of this method is, your sensor searches and detects where an obstacle is and places it in a map, then the path planner has to search for obstacles again within the map. This is totally counter-productive.

Cartographer:
This year, a brand new approach is being taken. The first goal of this mapping approach is to build better interfaces to the map. In the past, sensors would "draw" obstacles into the map a pixel at a time. With the new cartographer system, obstacle detection sensors create a list of all the obstacles and lines they detect. All obstacles are defined as terrain features made up of basic shape (base shape, length, width, height) and its location in an XYZ cartesian coordinate system. So instead of drawing into a two-dimension pictures, the sensor just says, "Hey cartographer, I have an obstacle at location (x,y,z) with a circle base, radius of 1 meter, and a height of 2 meters." The cartographer/mapping system then takes these lists of items from all the sensors and organizes them for quick collision tests. Since the map has a list of all the obstacles, and what regions of the map they are in, when obstacle avoidance needs to occur, collision checks only need to occur against specific obstacles in sub-regions of the map using geometery. Going back to the previous example for a collision check in the old system, we no longer need to search an entire area of the map. We first just see if there is even an obstacle in a sub-region, and if there is do some quick geometry to see if it collides with the area we are checking. The end result is a drastic reduction in search time within a map. In addion to this, combining data from multiple sensors using lists of obstacles is much faster then trying to combine image type maps.

Mapping




lincolnelectric.png, 6 kB

frog_legs.jpg, 36 kB