Lecture Slides
The Mapping Problem
- Last week we talked about localization, which is the movement around known environment.
- What if we don’t know the environment?
- need to first build an internal representation from sensor data.
- we’ll talk about tools for this and algorithm using these tools
Perceiving the environment
All of these give you single point and quantized information → point measurements of structure.
- Active range/depth sensors
- limitations:
- fails outdoors/direct sunglihgt
- limited operating volume
- power hungry
- Multi-view Triangulation (passive sensing)
Point Clouds
Each observation provides many "point" measurements of structure. These are stored in an unordered "point cloud" (sensor_msgs/PointCloud2). This format is similar to sensor_msgs/LaserScan but uses a different representation. Each point can hold a range of values (x, y, z, rgb, curvature, etc.). ROS internally uses the Point Cloud Library.
import sensor_msgs.point_cloud2 as pc2
for p in pc2.read_points(point_cloud, field_names= (“x”, “y”)):
print(p[0], p[1])
Building a model
- Each step, move by odeometry
- measure new point cloud or convert laser scan
- transform from base_link to odom frame
- merge with existing point cloud model.
- Can run into memory constraints as we build up more point clouds
- Occlusion issues that distort the point cloud.
- Drift/noise can accumulate