-
Notifications
You must be signed in to change notification settings - Fork 69
Maps
A map is a physical description of the workspace in which a robot will operate to complete its task. It is used both in synthesis (to determine topological constraints for the robot) and in execution (to locate the robot, and to drive it between regions).
- Corresponds to a
.regions
file - Currently supports only 2.5D regions (2D polygon + constant polygon height)
- Stores list of regions as polygons, along with metadata (region name, color, whether it is an obstacle, etc.).
- A
.regions
file can be either "processed" (formerly, "decomposed") or "unprocessed". If a map is processed, that means that it has been modified in preparation for synthesis and execution (see Map Processing). In this case, the file will contain extra data, such as region adjacency information and a mapping from post-processing region names to pre-processing region names.
In order to map the robot's location as returned by a localization system (via a PoseHandler) onto the map as provided by the user, a transformation must be applied. This transformation can be either pre-chosen and fixed (in the case of many simulators), input manually (using ConfigEditor), or experimentally determined (using the Calibration Tool).
- WARNING: Maps are currently saved and loaded using integer coordinates. This can create problems with precision.
- JSON
- TODO: more
In some cases, it does not make sense for LTLMoP to have detailed knowledge of the map. The minimal requirement is simply a list of regions and a description of the workspace topology (i.e. an adjacency matrix giving the connectivity between those regions). This is stored in a .topo
file.
- NOTE: In order to execute with a Topology Description instead of a full Map, a PoseHandler that returns region names instead of physical pose, and a MotionControlHandler that does not require a DriveHandler or LocomotionControlHandler is necessary.
- JSON
- TODO: more