Introduction – Mapping Application

SLAM (Simultaneous Localization And Mapping) algorithms enable autonomous vehicles to map out unknown environments. SLAM enables systems to build a map and localize a vehicle in that map at the same time. This map is then used to carry out tasks, such as path planning and obstacle avoidance.

The following lesson demonstrates the provided MOV.AI Flow™ Mapping flow and how it can be used for any robot that requires global localization functionality. This lesson shows you how a MOV.AI Flow flow enables a robot to map the environment in which it will be operating by traveling around the entire area in order to localize itself in its environment.

MOV.AI Flow relies on a robot’s odometer information in order to map out the environment in which it will be operating. The example map shown in this lesson is created from a Husky’s 2D 360° LiDAR (Laser Imaging, Detection, and Ranging) sensor, which captures a flat 2D layer at the height of the LiDAR sensor. This layer indicates the distance from the robot to obstacles.

This demo is comprised of a provided MOV.AI Flow flow (named husky_mapping) and an accompanying Ignition Gazebo simulator. During this lesson, you’ll open that flow and guide the robot in the simulator through this map-building process. In Ignition Gazebo, you can use the keyboard (or joystick) to move the robot around the entire environment in order to create the map, which is created as two files – an image of the map and the initial position of the robot when it started the mapping process. These files will be loaded into the MOV.AI Flow database.

This lesson also shows the usage of RViz, which is a 3D visualization tool for ROS applications that provides a view of your robot model and the sensor information that is captured by the robot’s sensors. This lesson also shows how to visualize the map that was saved after mapping the scene using RViz.

Note – You can also follow along and perform everything described in this chapter for a Tugbot robot by opening the flow named tugbot_mapping, instead of husky_mapping.