In this page we will define the concepts used in FMS and how the objects in FMS are organised.
FMS objects are organized in projects. A project can be thought of as a workspace in which users can operate and control multiple robots. It can contain multiple connected maps and multiple robots with various types. In practice, a project can cover a whole building, for example a whole warehouse with multiple floors and/or rooms.
A project is owned by a single user or an organisation. However, multiple users can be a member of the same project. A project is in many ways analogous to a repository in Git-based VCS platform such as Github or Gitlab, while the FMS can be analogised as "the Github".
A project contains all the things necessary to operate robots in an environment and it is independent from any other project. The following are entities under a project:
Robots
Maps
Tasks
This organisation means that the three objects above are unique to a project and they only exist within the scope of a project.
A user who is a member of a project can control and operate robots in the project. A robot is owned by a project and it cannot exist in more than one projects simultaneously.
A user can do the following actions on a robot:
Teleoperate
Create map
Localise
Send a command (task, cancel, pause, resume)
Modify its parameters
A robot has a few properties. Three important properties of a robot are Robot Type, Plugin Type, and Robot Token.
A robot connected to FMS has a robot type. A user can create a robot type within a project and categorise robots into a type to differentiate robots with different functions or characteristics.
When the robot connects to FMS, FMS automatically detects the plugin type. This plugin type is used to determine certain payloads and messages which will be relevant if a user wants to use special tasks such as custom tasks and aux tasks.
Robot token is used as the identifier of a robot. This token is unique for every robot and is generated when the user creates a new robot.
Map represents the physical environment in which the robots operate. Other objects such as robots and (most) tasks are located somewhere on a map. In a project, map is stored in Library.
A user can do the following actions on a map:
Import a map
Create a map with a robot
Edit a map (add zones, navigation graph)
Connect two maps
A task is an action that can be done by a robot. In general, a task involves a robot to navigate to a certain point on a map. Similar to RNS, there are two basic tasks in FMS: waypoint and trail. There are also custom task and auxiliary task in FMS, though these concepts are slightly different than those of RNS.