../_images/tiagopro-icon.png ../_images/kangaroo-icon.png ../_images/tiago-icon.png ../_images/ari-icon.png ../_images/talos-icon.png ../_images/mobile-bases-icon.png

πŸ›οΈ Environmental Annotations#

Environmental Annotation is a new concept introduced in the PAL Robotics Navigation Stack for ROS 2 to group all those functionalities related to the creation and management of Environmental Metadata. It is used to model a real or artificial feature of the environment that can be relevant to the robot’s navigation.

Environmental Annotations that can be created and managed are:

../_images/environmental_annotations.svg

To provide an accurate representation of the world, Environmental Annotations are organized in a tree structure where each element can Belong To another element or can Use another element. The root of the tree is the Building which works as a Container for all the other Environmental Metadata.

../_images/environmental_annotations_tree.svg

The purpose of this tool is NOT to use these Environmental Annotations to implement any robot’s behaviors but to provide a structured way to represent the environment that other applications can use to independently implement new logics and behaviors for the robot. (e.g. Zones and Lanes are used in 🌐 Costmap Filters, Waypoints are used in 🚩 Waypoint Navigation, etc.). For this reason, this tool offers several, different interfaces that other applications can use to interact with the Environmental Metadata to create new annotations, modify existing ones, or retrieve information about them. Also, it is in charge of persisting these annotations and their relationships in a database.

One of the interfaces provided is through the ROS 2 TF2 Library.

../_images/environmental_annotations_tf.svg

This interface reproduces the same hierarchical tree structure of Environmental Metadata assigning a Static Reference Frame to each Environmental Metadata element. This way, any application can use the /tf_static topic to retrieve the transformation between any two elements of the tree and to retrieve the position of the robot relative to any element of the tree. (e.g. on which Floor is the robot, where are the Waypoints on this Floor, etc.).

Note

Environmental Annotations that are composed of multiple vertexes (e.g. Lanes, Zones) have a Static Reference Frame associated with each vertex.

../_images/tf_tree.svg

Another interface is through ROS 2 Services that allow other applications to Create, Read, Update, Delete, List, Activate, Deactivate, Enable and Disable any Environmental Metadata element.

../_images/ros2_services.svg

Finally, the last interface is through RViz Interactive Markers that provides a nice and intuitive GUI to create and modify the Environmental Metadata.

Attention

When using RViz Interactive Markers to modify Environmental Annotations, remember to always set the Fixed Frame to the name of the current Building you are working on (The parent TF frame of all the others).

../_images/fixed_frame.svg

Applications#

With such a tool for creating and managing Environmental Metadata, different applications can be developed to implement advanced functionalities for the robot. Some examples are:

  • 🌐 Costmap Filters: Uses Zones and Lanes to mark certain areas of the environment as Restricted or Preferred or with a Limited Velocity, and so on.

../_images/application_costmap_filters.svg
  • 🚩 Waypoint Navigation: Uses the Waypoints to define a list of points in the environment that the robot has to visit in a specific order.

../_images/application_waypoint_navigation.svg
  • Multi-Floor Navigation: Uses the Floors and the Anchors to navigate the robot through different floors.

  • Multi-Map Navigation: Uses different Maps connected by different Anchors to navigate the robot through different maps.

See also#

To continue learning about the available Environmental Annotations, how to use and configure them, check the following sections: