Functional Architecture

G.H.A.R. Software Stack

The functional architecture for the system outlines the modules included in the system and the sub-components of each module. The system comprises six modules: User Interface, Planning, SLAM, Data Management, Sensing and Actuation, and Object Detection.

User Interface

The user interface receives key information regarding the robot parameters (dimensions, type of robot, etc.), navigation goal and object of interest. This information is passed to the Planning and SLAM modules.

Planning

The planning module is used to generate traversable paths specific to the robot type and will pass the path through the data management block. The next block will serve the purpose of a translation module.

SLAM

The simultaneous localization and mapping (SLAM) module performs mapping of the environment and generates a high-definition map of the home environment. This map will be used to localize the robot within the environment and provide key semantic details for efficient path generation. The output of this module is passed the planning module and object detection module.

Data Management

The data management module receives an optimized negotiable path from the planning module. This path is then converted into readable information to the controller of the robot (i.e. the sensing and actuation module). The main purpose of this block is to facilitate communication between the on-board and off-board compute and return the translated sensor data to the SLAM module.

Sensing and Actuaction

This module refers to the controller of the robot which receives the translated path data, generates a trajectory and uses the actuators to follow the trajectory. The sensing sub-component outputs the sensor data to the data management module for backward translation.

Object Detection

The detection module receives robot pose information and the desired object of interest. This module outputs the “results” of the software stack, as it passes the found information to the user interface’s sub-component of notifications.