Skip to content

Multi-Mapping

Related components: Autopilot Inference, Cerebra Studio – Mission Planner.

The Origin One is programmed to only load one localization map of the environment, and once a localization map has been loaded it will not load a new localization map. This is to prevent situations where the robot passes an Aruco marker linked to a map, after which that map is automatically loaded without a user to be able to check whether it is the right map.

However, as the size of a localization map is limited, and operational areas may spawn several acres, being able to only load one map can be too restrictive. Therefore, in this section we explain how multiple localization maps may be loaded by the robot, which is a topic for the experienced user. To trigger an operation that uses multiple maps instead the single, initial one the robot should be switched from its DEFAULT mode into the MULTI_MAP, which could be done with the following service call:

ros2 service call /autopilot/information_manager/set_mode_of_operation knowledge_base_msgs/srv/SetModeOfOperation "mode_of_operation: {"mode_of_operation": 2}"

Herein, the mode_of_operation may have a value of 0, 1 and 2, indicating a mode of operation equal to DEFAULT, MAPPING and MULTI_MAP, respectively.

Warning

Be sure to have removed any of the old maps and their corresponding polygons, as they might interfere with newly created maps.

Multi map approach

Before we introduce how the multi-map approach decides to load a new localization map, it is important to recall that each localization map has a map-boundary, created just after a map was recorded and saved, indicating the area in which the robot is allowed to use the map. The general idea of the MULTI_MAP mode is that the robot is allowed to load a new localization map in the following 2 cases:

  1. When the robot detects a new Aruco marker, and the marker is linked to a map, then this map will be loaded as the new localization map for the robot's navigation.
  2. When the robot left the map-boundary of its currently loaded map and enters the boundary of another localization map, then this other localization map is loaded as the new localization for the robot's navigation.

The illustration below sketches some scenarios in which the robot shall switch maps.

MultimapScenarios

Preparations

The most important aspect of MULTI_MAP mode is that all maps that are stored in the robot's database are well aligned together. This means that the relative positions between these maps as they are in the real world also matches their relative position as stored in the database. To accomplish just that, you as a user must follow the ideas of using multiple markers. It is not essential that every map stored in the robot has a unique Aruco marker linked to it, which means that you may use the same marker for creating multiple maps by placing the Aruco marker at different positions. However, it is important that:

  • You select one coordinate system and use that same coordinate system, i.e., global frame, for all poses of the Aruco markers and maps that are to be stored in the robot's database.
  • The Aruco marker at which the mapping process is triggered has a real-world position that matches the stored pose of this marker in the robot's database. This means to correctly update the Aruco marker's pose every time you re-position it.
  • You take extra care in drawing the map-boundary when saving a localization map, i.e., when should the robot not start using this map anymore but preferably some other map.

Warning

There is a fair chance that if some other map, possible with some other values of the Coordinate System Information, is present in the database of the robot, that this map is loaded by the robot when the robot passes its map-boundary, while the map itself comes from a completely different region.

Therefore be sure to delete any old maps and polygon before continuing with a MULTI_MAP operation.