Glossary#

Action#

Action is a general term, and might refer to different concept depending on the context. In this documentation, it might either refer to a ROS action (ie, a low-level asynchronous communication mechanism between ROS node) or a chatbot action, triggered in response to a verbal command (see chatbot-actions).

Activity#

See Task

ament#

ament is the ROS 2 build system, based on CMake.

Learn more about ament.

Anchor#

An Anchor is an environmental metadata that represents any real or virtual feature of the environment that can be used to link multiple Floors in the same Building (see building anchor) or multiple Maps in the same Floor (see floor anchor).

Application#

An application is what creates and manage the behaviour robot. Only one application can be running at a given time. It includes at least a mission controller, and possibly many additional software components, depending on its needs.

See also: Structure of a robot application

Application Manager#

The application manager is a system node in charge of starting and stopping applications, based on high-level rules or conditions (like the time of the day, the context of useā€¦).

See also: Application manager

Application package#

Applications can be easily deployed on PAL robots and shared with other users once they have been saved as an application package (extension: .rpk, for robot package). Learn more about packaging and robot deployment.

asr#

asr stands for automatic speech recognition (also sometimes called speech-to-text): the process of converting speech (recorded by the robotā€™s microphone) into written text.

See also: asr_howto

Bag#

A bag file is an archive of ROS messages. Bag files are created by recording ROS messages (like images, speech, joint commandsā€¦) published on specific topics. They can then by replayed or analysed. Bag files are commonly used for debugging purpose or post-hoc data analysis. See the ROS Bags documentation for details.

See also: data-management

Behavior Tree#

A Behavior Tree in robotics is a hierarchical control structure used to model complex behaviors of autonomous systems. It organizes actions, conditions and decisions in a tree-like format, allowing robots to perform tasks by evaluating nodes from top to bottom. Each node represents a behavior or condition, facilitating modular, reusable and easily understandable robot behavior design. See Behavior Tree for details.

BT#

See behavior tree

Building#

A Building is an environmental metadata that models an actual physical structure in which the robot can navigate. It works as a container for other Environmental Metadata and, for example, a Building can contain various floors connected by one or more anchors.

Building Anchor#

See anchor

Capability#

See skill

Costmap#

A Costmap is a grid-based representation of the environment that assigns a cost value to each cell, indicating the desirability or risk of traversing that area. These costs are derived from factors such as the presence of obstacles, terrain difficulty and proximity to hazards. Costmaps are used in path planning and navigation to help robots determine the safest and most efficient routes. By evaluating the costs associated with different paths, robots can make informed decisions to avoid obstacles and minimize risks, ensuring smooth and reliable movement through their environment.

Docker#

Docker is a container technology commonly used to distribute self-contained applications or development environment. It is primarily used in PAL OS 24.9 to provide a stable development environment for your robot.

See also: Developing with the SDK Docker image and ROS

Environmental Metadata#

An Environmental Metadata represents any Data Structure that models a real or artificial feature of the environment. For example, a Building is a real environmental metadata that consists in one or multiple Floors. Conversely, a Zone can be considered an artificial environmental metadata, as it can indicate a specific area of the environment where we want to prevent the robotā€™s access.

Fact#

See statement

Floor#

A Floor is an environmental metadata that models an actual physical structure in which the robot can navigate. It works as a container for other Environmental Metadata and, for example, a Floor can contain various maps connected by one or more anchors. Furthermore, a Floor can contain environmental annotations such as zones, lanes and waypoints.

Floor Anchor#

A Floor Anchor is an environmental metadata that represents any real or virtual feature of the environment that can be used to link multiple Maps in the same Floor. For example, a Floor Anchor can be a dock station or a certain wall or a door.

Global Costmap#

A Global Costmap is a map that provides a comprehensive representation of the entire operating environment. It combines static information about the terrain, such as walls and other permanent obstacles, with dynamic updates about moving obstacles and changes in the environment. The global costmap is used for long-term path planning, enabling the robot to navigate from its current position to a distant goal while avoiding obstacles and optimizing its route.

Goal#

A Goal is a combination of a position and an orientation expressed as a geometry_msgs/msg/PoseStamped towards which the robot navigates.

Highway#

An Highway is a region of the environment, typically a lane, where the autonomous navigation of the robot is preferable.

hostname#

The hostname is the network name of a computer. For your robot, it is normally <robot>-<serial_number>c. For instance, ari-40c or tiagopro-23c. See Robot identification if you need to find your robot serial number.

The hostname is used when you want to connect to your robot from a webbrowser (for instance, http://tiagopro-23c/) or via ssh.

Intent#

An abstract description (a ROS message) representing something that someone wants the robot to perform. Intents are usually published by the user-perception nodes (like the dialogue manager, or the touchscreen manager), and are processed by the mission controller.

Not to be confused with the chatbot intents, which are internal to the chatbot, and not visible outside of it. See overview_nlp for more about chatbots.

See also: Intents

Keepout#

A Keepout Area is a region of the environment in which the autonomous navigation of the robot is restricted. These areas can either be highly discouraged or completely forbidden for the Autonomous Navigation.

Knowledge base#

The robotā€™s knowledge base is a semantic database where you can store and query facts (also called statements), and perform first-order logic reasoning.

See also: šŸ’” Knowledge and reasoning

Lane#

A Lane is an environmental metadata used to mark a certain area of the environment with certain properties. A Lane is represented as a segmented line with a defined width that, for example, can indicate a wall or simply a area in which the navigation of the robot is highly desirable (see highway).

Local Costmap#

A Local Costmap is a real-time, dynamically updating map that represents the immediate environment around the robot. It integrates sensor data to reflect current obstacles and terrain, allowing the robot to make informed decisions for safe and efficient navigation. The local costmap is used to avoid obstacles, plan short-term paths, and adapt to changes in the surroundings as the robot moves.

Map#

A Map is a symbolic representation of the environment that the robot can use to navigate and understand its surroundings. Depending on the sensor used for their creation, maps represent different features of the environment. The most common type of maps used in robotics are OccupancyGrids, Octomaps and Topological maps.

Map Mask#

A Map Mask is an Environmental Annotation used to assign specific properties to certain areas. Thus its purpose is NOT to offer a complete representation of the real world (as the Map), but is to create spatial annotations used to change the behavior of the robot in those areas.

See also: šŸŒ Costmap Filters

Mission Controller#

The mission controller is the software that controls the main behaviour of the robot: it is the core software component of your application. It schedules and execute skills based on user intents and other application-specific needs.

See also: Mission controllers

Model#

Depending on the context, a model might refer to different concepts.

  • a knowledge model refers to all the knowledge that the robot holds about another agent. The default model contains the robotā€™s own knowledge. See Knowledge models for details;

  • a chatbot model is a pre-trained machine-learning model used by the robotā€™s chatbot engine to extract intents and entities from the userā€™s speech. See chatbot-pretrained-models;

  • a model can also refer to a language model used by speech recognition or text-to-speech. You need to install specific models for each language you want to support.

Module#

An execution unit that defines how to start a certain application.

See also: application-management

Module Manager#

The high level manager that manages all modules and module sets.

See also: application-management

Module Set#

A set of modules that are started automatically when starting the robot.

See also: application-management

Nav2#

Nav2 is an open-source, production-grade autonomy framework. Nav2 provides perception, planning, control, localization, visualization, behaviors and much more to build highly reliable autonomous systems.

For more information about this framework, check Nav2 and the Nav2 Documentation.

Occupancy Grid#

An Occupancy Grid is a specific type of Map that represents the environment using a 2D grid. The grid divides the environment into discrete cells, and each cell holds a probability value representing the likelihood of being occupied by an obstacle. This information is used to mark each cell either as occupied, free or unknown. Typically, this kind of maps are created using a 2D LiDAR Sensor. In ROS 2 this type of map is represented using the nav_msgs/msg/OccupancyGrid message.

octomap#

The octomap is used to represent the environment using small blocks, or voxels.

See also:* overview-advanced-grasping

Odometry#

Odometry refers to the use of data from motion sensors to estimate changes in a robotā€™s position and orientation over time. This process involves measuring the distance traveled and the angle turned by the robot, typically using wheel encoders, inertial measurement units (IMUs), or other motion sensors.

Ontology#

In computer science, an ontology is a network of semantic concepts related to each others. It is also refered as semantic graph. The knowledge is stored in ontologies using formalisms like RDF/OWL. On our robot, we using ontologies to store the semantic knowledge of the robot.

See šŸ’” Knowledge and reasoning for more about the resoning capabilities of the robot.

OWL#

OWL stands for Web Ontology Language and it the format in which we store symbolic knowledge in our ontologies and knowledge base.

Package#

Applications can be bundled as robot application package with the extension .rpk. A robot package is an archive containing all the required resources for the application, and its manifest. A package can be drag-and-dropped onto the robot webcommander interface to install the application.

See also: Robot package

Plugin#

A Plugin is a piece of software that adds specific features or functionalities to an existing application. Plugins enable customization and extend the capabilities of the main program without altering its core structure.

rasa#

rasa is the open-source chatbot framework (https://rasa.com/docs/rasa/) that PALā€™s robots uses to manage chats and dialogues with the robot.

See also: overview_nlp

Robot package#

See package

ROS#

ROS stands for Robot Operating System. ROS is a large international effort to standardise software development for robots using open-source APIs and libraries. It is the platform that we use to develop all our robot software.

From PAL OS 24.9 onwards, we specifically use ROS 2.

Learn more at https://ros.org.

ROS Bag#

See bag

ROS4HRI#

ROS4HRI is a ROS standard that describes how ROS-based systems should represent and interact with humans. You can learn more about this effort (led by PAL Robotics) on the ROS wiki.

ROS_DOMAIN_ID#

ROS_DOMAIN_ID is a ROS 2 environment variable used to select which ROS ā€˜domainā€™ you are communicating with. In practise, it plays a similar role to the ROS_MASTER_URI in ROS 1.

See also: ros-domain-id

rpk#

See package

rviz#

rviz is the main visualisation tool offered by ROS. You can use it to display cameras, laser scans, detecte4d humansā€¦ Learn more about it here: http://wiki.ros.org/rviz.

serial id#

See serial number

serial number#

Each robot has a unique serial number. It is used to connect to the robot, or open a ticket on the support site. If you do not know it, see Robot identification to find it out.

Skill#

Skills are ā€˜unitā€™ operations executed by the robot: navigating to a location, looking at a specific target, grasping an object, etc. The SDK offers many skills out of the box (the system skills), and you can implement your own as well (user skills).

See also: Skills

SLAM#

SLAM stands for Simultaneous Localization and Mapping and defines the process of creating a map of an unknown environment while simultaneously tracking the robotā€™s location within it. It is considered a chicken-and-egg problem, as accurate localization requires a good map, and a good map requires accurate localization.

See also: šŸ—ŗļø Mapping

ssh#

ssh (Secure SHell) is a standard tool to remotely connect to a computer (or a robot!) and open a command-line there. You might need ssh to perform some maintenance operations on the robot, or during the development of new applications.

Stamped point#

A stamped point is a ROS name for a 3D point with an associated tf frame of reference. The formal message definition is available here.

startup#

See startups

startups#

Startups is the PAL name for the robotā€™s background services (most of them, ROS node) that are automatically started when the robot boots. See here to learn how to start/stop them, and Configure an application to launch at start-up to learn how to add your own startups.

Statement#

A statement refers to a piece of information (formally, a <subject, predicate, object> triple), stored (or retrieved) from the robotā€™s knowledge base.

See also: Statements

stt#

See asr

Target#

A target, for the Navigation, is any object or landmark that can be detected and localized using any of the robotā€™s sensors.

Task#

An task represents a finite set of actions performed by the robot to achieve a specific goal (i.e. ā€œDoing an Inventoryā€, ā€œGetting a glass of waterā€, ā€œGoing to the kitchenā€). In other systems, it is sometimes refered as an activity.

See also: Tasks

task#

See activity

TF#

tf (and more recently, tf2) are libraries commonly used in robotics to represent oriented 3D points in space. These points are referred to as tf frames. You can learn more about tf and tf2 on the ROS wiki.

TF frame#

See tf

Triples#

See statement

tts#

tts stands for text-to-speech (also refered as speech synthesis): the process of converting some written text into spoken words.

See also: tts_howto

Virtual Obstacle#

See keepout

Waypoint#

A waypoint is any notable position in the environment. It has a set of coordinates indicating its position and orientation and eventually a list of Waypoint Actions.

Waypoint Action#

A waypoint action indicates any plugin implementing the nav2_core::WaypointTaskExecutor interface and that can be used to perform a certain action upon the Waypoint arrival. Examples of waypoint actions are:

Zone#

A Zone is an environmental metadata used to mark a certain region of the environment with certain properties. A Zone is represented as a polygon that, for example, can indicate a restricted area for the navigation of the robot (see keepout) or simply an area in which the robot should perform a certain action (ex. reduce the maximum speed).