Request Demo

Docs

 

InOrbit is a cloud platform for robot management. It's easy to get started receiving real-time data from your robots. Almost everything is customizable and extensible.

Read on to learn how to get the most out of InOrbit. Need some extra help? Contact us at support@inorbit.ai

Getting started

InOrbit Control is a tool for managing robots and viewing robot data. InOrbit Control is based on dashboards that make it easy to personalize the user experience with rich visualization and interactive robot controls.

You have full control over creating dashboards and setting visibility and permissions in order to personalize the experience to different user roles.

Control and Dashboard Overview

Your InOrbit Control account can have multiple dashboards, which provide targeted experiences for every role on your team.

The following dashboards are the default set for your account, which can be modified. These are just a starting point. As an Owner or Administrator, you can customize any dashboard and create your own dashboards from scratch.

  • Executive
  • Fleet
  • Robot
  • Navigation

The following default roles have been created for your account.

  • Owner
  • Administrator
  • Manager
  • Engineer
  • Operator
  • User
Who sees which dashboards?

Depending on a user’s role, they will have access to different dashboards. For example,  

someone with the Operator role will see:

 

Executive dashboards

The Executive dashboard gives you a birds-eye view of your fleet on a geographical map. Key Performance Indicators (KPI) tracks the most important metrics across your fleet to help you drive your business.

 

The KPI visualization widget shows the summation of details, showing real-time, aggregate data about the fleet.

KPI

Description

Active Robots

The number of active robots over the number of robots in your fleet

Robots per user

Number of robots assigned to your operators

Odometry

Physical distance travelled by all robots

Incidents Resolved

Number of resolved problems (also called “incidents”)

Open Incidents

Number of problems still needing attention

 

The Location widget is an interactive, zoomable map to go from a world view all the way down to an individual robot map at a given site. 

Fleet dashboard

The Fleet dashboard is one of InOrbit’s default dashboards. It shows an overview of your real-time fleet health. You can change the view of your fleet to group, filter, and sort by certain criteria so you can focus on specific Collections of robots (see Collections, Locations, Modes section).

The Robot Fleet View widget is a table of the status of characteristics of your robots, described below.

Section

Description

Fleet

If robot collections have been defined, use the collections pulldown menu to select the collection you want to see. (A collection of robots is a group that you define for easier management. By default there are no collections, so Fleet View shows all robots.) You can group the fleet view by the following fields: Ungrouped (default), Location, Hardware, Customer, and Mode. Without customizing the fields, the groupings have no effect. Mode has some defaults: idle, charging, on mission, and more.

Status

On the left of the table are the characteristics of the robots for each row of the table. The default characteristics are Battery, Disk Usage, RAM usage, Diagnostics, Localization, ROS Status, and payload weight.

Robot list

The columns of the table list the color-coded status of the characteristics of individual robots. Red is error, yellow is warning, and blue is OK.

Robot names

Names of robots are below the table. Use the scroll bar at the bottom to see the status of other robots in the fleet. Beneath each robot name, the mode of the robot is displayed.

 
Robot dashboard

The Robot dashboard is a view of the most specific details about a selected robot using visualization widgets, such as Vitals, Modes, Tags, Maps, etc. You can also perform certain actions on a robot (see Configure actions for more information).

In the ROBOT / field, enter the name of the robot whose details you want to see. Across that row are actions that can be taken or shortcuts to other elements of the Control user interface: SETTINGS, RESTART AGENT, TELEOP, UPDATE AGENT, and the number of collections to which the robot belongs.

Some of the default widgets in individual robot details include the following:

  • Vitals
  • Hardware
  • Operating Metrics
  • Mission Parameters

The list and order of the widgets can be customized to your liking.

Navigation dashboard

The Navigation dashboard lets you monitor a robot via Map and Camera views, as well as other key data that is relevant during navigation. It’s easy to switch between robots by using the robot selector in the upper left

In addition to executing one-click actions, you can relocalize the robot if it gets lost, or use teleoperation to assist the robot with navigation.

Expand to full-screen navigation

Clicking on the button expands the robot navigation widgets (Map, Camera, Teleop) to maximize the view, giving you extra details to precisely help the robot navigate.

Exit maximized navigation

Clicking on the button takes you back to the Navigation dashboard.

 

With only these simple steps, InOrbit gives you near near instant results for managing your robot fleet:

  1. Set up your InOrbit account.
  2. Add a robot.
  3. View the robot's vital signs.

Follow these steps to get your robots InOrbit.

What you need
Steps
  1. In your browser, go to InOrbit Control.
  2. Click Sign in with Google.
  3. In the displayed dialog, click the desired Google account name to use to sign in.
  4. On the "Preparing for launch..." page, enter the name of your company or keep the default.
  5. Click Launch InOrbit.
Results

One or more InOrbit Control Dashboards are ready for you to add robots to your InOrbit fleet, configure settings, view metrics and KPIs, and more.

Here’s how you add a new robot to your InOrbit fleet. The process involves copying and running a command on your robot's command line to install the InOrbit agent.

What you need
  • Internet access from your robot
  • Shell access on your robot
  • The Owner or Administrator role in InOrbit Control
Steps
  1. Log in to InOrbit Control.
  2. Select the Fleet dashboard to find and click.
  3. Select and copy the displayed curl command.
  4. Log in to your robot's Linux shell.
  5. At the command line, paste the copied curl command.
  6. Hit enter to continue through the InOrbit agent installation process. See notes below.
  7. After the installation is complete, you are returned to the shell command line.
Notes
  • You are prompted to enter your username and other other information needed by the installer.
  • You are kept informed of the installation progress, including installation of software required by the InOrbit robot agent.
  • You might be instructed to enter various commands, such as sudo, as required by the installer.
Results
  • The InOrbit agent is now installed on this robot.
  • The robot's host name is displayed in the Fleet widget in InOrbit Control.
  • InOrbit begins collecting data about your robot for you to examine on InOrbit Control.

After you've added a robot, you can see its operational status and vital signs directly on InOrbit Control.

What you need
Steps
  1. In your browser, go to InOrbit Control at https://control.inorbit.ai.
  2. If prompted, login with your Google account.
  3. Select the Robot Dashboard.
  4. Select the robot you want to check out using the Robot Control widget.
  5. Look for the Vitals widget, which is one of the default widgets in this dashboard.
Results

InOrbit Control shows you at-a-glance details about your robot's operational status:

Explore other valuable operational details about your robot, including selected data on a timeline, current mode, incident list, and more.

Here’s how you invite a new user to your InOrbit account. This provides the authentication to enable colleagues to have individual access to a shared InOrbit account.

What you need
  • An active InOrbit account
  • Owner privileges on the account
  • Email addresses for any users you want to invite
Steps
invite-users
  1. Log in to InOrbit Control.
  2. Go to Settings->Admin->Company Details->People.
  3. Click the circled + sign.
  4. Enter 1 or more email addresses separated by commas or spaces.
  5. Select the role (e.g., Owner, Administrator, User) that the new user(s) will be granted.
  6. Click SEND INVITES.
  7. User(s) should receive an email to confirm and will be added after confirming.
  8. After confirming, users can log in to InOrbit Control with the privileges for that role.
Notes
  • Roles can be configurable, but Owner is the only default role authorized to invite users.
  • Invited users will appear in a Pending state in the People list until they have confirmed.
  • While a user is Pending, a login link is available on their entry that can be copied and directly shared with them as a backup.
Results
  • The invited users have individual logins to the shared account.
  • The invited users start with their assigned role, which can be modified by account Owners.

Advanced topics

You can augment InOrbit’s default robot data with your own custom settings to view specific information/robot attributes you want to see on InOrbit Control.

As described in A look at InOrbit Control, when you add a new robot, InOrbit Control displays default data/information for a robot, such as CPU Usage, HDD Usage, and RAM. These are called “Built-in” attributes.

You can configure InOrbit to capture other desired attributes of particular interest to you, such as system or robot metrics, sensor readings, software component details, and application-specific values. You customize your robot data via the Settings menus in InOrbit Control. A custom attribute applies to all robots in your entire fleet. Custom attributes can then be used for real-time monitoring, to visualize values over time directly in InOrbit Control, to track overall fleet status or to trigger notifications on events or when something is not within expected tolerances.

Background: Data Sources

InOrbit supports the following data sources. These data sources are obtained from the Robot Operating System (ROS) installed by the InOrbit agent on each robot. (For more information about ROS itself, see the ROS Wiki.) InOrbit also supports additional non-ROS data sources. For assistance in configuring non-ROS data sources, contact InOrbit via email at support@inorbit.ai.

Type of Data

Description

System metrics

CPU usage, RAM usage, specific HDD partitions, or network interfaces.

ROS Diagnostics 

If you use ROS and have nodes that publish values in the /diagnostics or /diagnostics_agg topics, InOrbit can be configured to work with this data.

Custom key/value pairs

If you use ROS and want to view a specific data value from your robot, you can publish a std_msgs/String message with the form key=value to the /inorbit/custom_data/0 topic on the agent; for example, apples=10.

 
What You Need
Steps for Custom Robot Data

Viewing custom data involves two steps:

  • defining a customer robot attribute
  • displaying that attribute in InOrbit Control

We illustrate this on a specific robot attribute for viewing: usage of the eth0 network interface on your robot.

Part 1: Define the eth0 (example) custom robot attribute
  1. As Owner or Administrator, login to InOrbit Control.
  2. From the menu in the upper right, select Settings.
    Result: You are positioned on the Robot Data tab, which is divided into sections: Data Sources, Status, and Dashboards.
  3. To add the new data source, under the Data Sources heading, click the sign.
    Result: A new empty slot for the custom attribute is displayed.
  4. Define the attribute you want to add in either of two ways:
    1. Select the pulldown menu at the right of the new slot to view predefined system attributes.
    2. In the empty slot, begin typing the name of the attribute you want to add. InOrbit displays matching data source names that it discovers from your robots such as the different network interfaces, HDD partitions, ROS Diagnostics tools or custom key/value pairs.
  5. As an example, we want to see the eth0 data source. From the pulldown menu, find and select eth0. The custom attribute is added to the list of Data Sources.

To add a more user-friendly name for the attribute, scroll to New Data source entry in the Data Sources list and enter the user-friendly name in the first field, e.g., “Network interface - eth0”. The user-friendly name is updated for any configured visualization widget.

Result: You have defined the new custom eth0 attribute, renamed “Network interface - eth0”, and InOrbit automatically saves the new configuration.

Part 2: View the eth0 custom robot attribute on InOrbit Control and change its position
Add a new robot status to Fleet Status widget

You can add a new data source  to the Fleet Status widget based on the new custom attribute defined in Data Sources. For this, go to Settings > Robot Data > Status and click on the icon for the new data source, “Network interface - eth0” in our example.. 

To see the new status, go to InOrbit Control and select the ‘Fleet’ dashboard.

Add a new data source to Vitals or Timeline widgets

 To configure the visualization of the new attribute in a Vitals or Timeline widget:

  1. Go to Settings > Robot Data > Dashboards.
  2. Select the Dashboard you’d like to add this attribute to.
  3. Expand the Section where you’d like to add this attribute. You can also create a new section if needed.
  4. To add the data to an existing widget, expand the Vitals or Timeline configuration and add the new attribute. Note that Vitals widget can only have four data sources. When adding a Timeline widget, the min number of lines must be set to at least 1.

To change the position of the attribute within a widget or Timeline on InOrbit Control:

  1. Go to Settings > Robot Data > Dashboards
  2. Select the tab for the Dashboard you’d like to update. Find the attribute in the Widget within the corresponding Section..
  3. Grab the = handle to the left of the attribute.
  4. Drag the attribute up or down in the Visualization list to the desired display position.

Result: Return to InOrbit Control to see the attribute in the new position.

InOrbit helps you keep track of the overall state of your robot fleet, notifies you through different channels based on your preferences, and makes it easier to intervene when necessary.

As discussed in View custom robot data, in addition to the default robot data sources, you might have created other sources of data from your robots that you want to see on InOrbit Control.

You can set thresholds on the data sources to trigger warning or error events when a threshold is exceeded and incidents of different severity based on  those events. Alerts through different notification channels can be triggered in case of an incident and actions to take in order to resolve a problem can be automatically or manually executed.

  • Threshold values can be set for each robot data source, such as disk space usage or camera state. Each threshold is defined by a function, which also depends on the data source. Some functions are as follows:
    • max-time is the length of time a condition must last before the threshold is exceeded.
    • always means that the condition is binary: either always on or always off.
    • not equal to a value you specify
  • Alert channels are any of the following:
    • In App notification, i.e. within InOrbit Control itself.
    • Slack, optional
    • Premium channels including Opsgenie and custom integrations via API and webhooks
  • Actions can be easily configured and invoked from within a notification or accessed directly from InOrbit Control widgets. See Configure actions for more details. 

Example. For a robot’s CPU usage, you might want to set these values:

Event

Threshold

Alert channel

Action

Warning

85% CPU usage for 60 seconds or more

In app

Run script on robot

Error

95% CPU usage for 30 seconds or more

Slack

Restart InOrbit agent

 

Setting up thresholds and incidents

These are the steps to define thresholds, incidents, alert channels and actions.

What you need
  • Data sources for which you want to define incident management.
  • On-robot scripts you want to run (if any).
  • Slack channel(s) to receive alerts if using Slack integration. If you want to send alerts to it, you must have Slack installed and running.
Steps

Automated incident responses have two general parts:

  • On the Settings > Robot Data tab
    • Warning and error thresholds for each data source
  • On the Settings > Insights tab
    • Incidents definitions
Define thresholds
  1. As administrator, login to InOrbit Control.
  2. In the upper right, click Settings in the 3 vertical dots menu
  3. Click the Robot Data tab.
  4. Select the Status section on the left menu.
  5. Click the (+) icon to add a new status
  6. Select a data source.
  7. From the function dropdown menu, select the desired function. The function depends on the data source. For example, CPU and disk usage use the max-time function.
  8. For the function field, select the function desired for this alert
  9. For the error at field, enter the error threshold.
    For example, for CPU, enter a percentage.
  10. For the warning at field, enter the warning threshold.
    For example, for CPU usage, enter a percentage.
  11. For the for sec. field, enter the length of time that the warning or error condition must last before the threshold is exceeded.
  12. For status label, keep the default label or enter a custom label for this data source.
Define incidents
  1. As administrator, login to InOrbit Control.
  2. In the upper right, click Settings.
  3. Click the Insights tab.
  4. Select the Incidents section on the left menu.
  5. Click on the (+) icon to create a new incident definition or expand an existing incident.
  6. Enter incident name and select an existing status as described in the Define threshold step above.
  7. For the ERROR block:
    • In App
    • Slack
    • Premium channels
    • Select a severity level between SEV0 (most serious) and SEV3  (least serious)
    • Select one or more alert channels
    • In the When triggered, run field, select actions that you want to trigger automatically
    • In the When notified, user can run field, select actions that you want to recommend to the end user. Note that access to recommended actions depends on the alert notification channel selected.
  8. For the WARNING block, repeat the preceding step.

When you create your account (see Quick start), InOrbit will start with a default configuration, which tracks only a few attributes from your robots, such as CPU Usage, HDD Usage and Network Rate.

You can configure InOrbit to capture more relevant attributes for your particular operation, such as additional system or robot metrics, sensor readings, software component vitals or application-specific values.

Any attributes you configure can then be used for real-time monitoring, to visualize their values over time, to track overall fleet status and to trigger alerts based on events or when something is not within expected values.

These configurations are managed in the Data Sources section of the settings screen, accessible through Settings:

InOrbit currently supports the following data sources:

  1. System metrics
    You can monitor CPU usage, RAM usage, specific HDD partitions and network interfaces.
  2. ROS Diagnostics values
    If you use ROS and have nodes that publish values in the /diagnostics or /diagnostics_agg topics, InOrbit can be configured to pick up any of these values.
  3. Custom key/value pairs
    If you are using ROS and want to publish an arbitrary value from your robot, you can publish a std_msgs/String message with the form key=value (e.g; apples=10) to the /inorbit/custom_data/0 topic on the agent.
  4. Other types / non-ROS
    InOrbit also supports additional and non-ROS data sources, which can be enabled per customer request. Please let us know about your needs by writing to us at support@inorbit.ai.

In order to make it easier to configure, InOrbit lets you search over the data sources that it can discover from your robots. Simply start typing in the box to filter between the different network interfaces, HDD partitions, ROS Diagnostics tools or custom key/value pairs:

NOTE: In order for InOrbit to be able to discover the available data sources on your robot, it is important that the agent be running before you attempt data source configuration.

 

InOrbit allows configuring custom Actions you can use to send commands to any robot. These actions can be used to quickly and efficiently resolve issues or incidents that occur as part of operating your robot fleet, as well as allowing users to nudge a robot towards the desired behavior.

Overview

InOrbit currently supports five distinct methods of triggering specific robot behaviors and other interactions. These methods can easily be configured with minimal technical knowledge, quickly enabling users to send commands with the click of a button. See also the Robot Lock premium feature. 

These actions can be made available for execution in the ROBOTS section of InOrbit Control through the Robot Actions widget,

embedded in a widget

or tied to specific incidents for execution through InOrbit Control in-app notifications or Slack.

Integration with other incident management systems such as Opsgenie and custom systems is also available as a premium offering.

Setting up Actions

There are many ways to define an action on InOrbit:

  • Publish on a ROS topic
    Publish a configurable string value through the/inorbit/custom_commands topic on the robot.
  • Run script on agent
    Run a shell script on the robot. Scripts must be placed in the ${HOME}/.inorbit/local/user_scripts directory.
  • Jump to InOrbit page
    Bring the operator to a specified page in InOrbit Control, such as the localization and navigation screen for a robot. Useful to allow you to dive deeper into a problem and perform the most effective resolution action.
  • Open URL
    Take the operator to the configured URL on a Web browser window. Useful to direct your operator to an internal system to continue the resolution protocol for a given incident.
  • Execute a ROS service (coming soon)
    Execute a ROS service on the robot.

To configure actions:

  1. Go to Settings > Insights > Actions
  2. Click the (+) icon to add a new action or select an existing action
  3. For the name field, enter the name for the new action, e.g., NEW ACTION
  4. For the type field,  select the desired action, e.g., Run script on agent
  5. Each action is listed in a section, which is a grouping of similar actions
  6. Navigate to the newly created action and select an existing section or create a new section
  7.  Select the Confirm execution checkbox if you want the action to require user confirmation before executing the command. If the premium Robot Lock feature is enabled, you may optionally select Requires Lock to ensure there are no conflicting commands from multiple users. 
  8. Use the embedded dropdown to select which widgets should include this action - note that the selection of the action will cause the section to be included in the action dropdown in the selected widget
  9. Select whether the action is Always available, if it should be available Only in collections that are specified by you, or if it should be available only when it's Not in collections that you select
  10. Each action can be configured with a specific parameter that can be changed or set as needed, including parameters that can be provided by the end user when executing the action

 

About on-robot shell scripts

On-robot shell scripts you can run after an incident are Linux scripts that you yourself write and are completely under your control.

As an example, you might write a script that lists the top 10 running processes on the robot and saves the list to a file. This could potentially be useful for debugging a robot with high CPU utilization. Such a script could look like the following:
# !/usr/bin/bash
# where to save the script output
export SAVEFILE="/tmp/top10cpu.txt"
# list top 10 processes' percentage of CPU, PID, username,
# and running program with arguments, sorted by percentage of CPU,
# and saved to a file
ps -eo pcpu,pid,user,args | sort -k1 -r -n | head -10 \
> $SAVEFILE

  • Store the script in ${HOME}/.inorbit/local/user_scripts.
  • Make note of the name of the script on the robot because you need to specify the name when you define the action.

Collections

As your fleet grows, InOrbit allows you to organize your robots according to different criteria, such as hardware iteration, customer deployment or location.

This allows you to filter or group robots in InOrbit Mission Control based on these different criteria.Each grouping of robots is called a collection; each robot may be part of one or more collections. All robots are members of the default collection called Fleet.

You can customize the collections and robot membership in each collection by going to Settings > Organization in InOrbit Control.

Manage Collections

Locations

Locations enable robots to be associated with a geographic location (a city or address that can be displayed on a map).

Locations have tags associated with them, like any other collection, but that tag has an underlying physical location. Adding that tag to any robot will enable grouping by location and easily associating robots with individual or common sites. Once robots are associated with a physical location, they may be displayed on an interactive, zoomable map to go from a world view all the way down to an individual robot map at a given site.

Configure locations for your account
  1. Use the Locations tab in Settings > Organization to define all the locations or sites you want to track. To add a new location, click the circled + sign. All locations are part of a collection type called Locations.

  2. Select a unique name (tag) for the location; this can be whatever you need it to be, from a city to something that makes sense within your system, such as Store #1234. For example:


    Add an address to enable displaying the location on a world map. Note that these locations are assumed to be fixed. Optionally add notes to help you with location management. You can also choose to have robots added to a given location by default.

  3. Now use the Robots tab in Settings > Organization and assign robots to this location. 

    Note: InOrbit also supports automatically assigning robots to locations if the location can be distilled from a data source, which is recommended as fleets scale.

  4. To see the locations on a world map, go to Mission Control and maximize the KPI section.

Modes

Modes is a special collection type that can be used to indicate the state or mode in which a robot is operating (e.g. Charging, Idle, or Mission). This value can change dynamically and is assumed to be MECE (Mutually Exclusive and Collectively Exhaustive), i.e. each robot can be in one and only one mode at any given time.

Modes map to a color in the block below the robot name in the Fleet view. The value of the mode is always displayed as text in this block on the currently selected robot.

Modes are reported in a custom data source. It is up to your application code to report these modes; any modes reported in the data source that do not match the modes defined here will be reported as Other.

Configure modes for your account
  1. Go to Settings > Organization > Modes.
  2. Select the data source that will determine the mode a robot is in (e.g., Mission Status):

  3. Now start adding the different values a mode might take. Click the ‘+’ button and add these one by one.


    Note: The tag field is the visible name the mode will have, which doesn’t need to match the actual data source’s values for the mode. Tags are unique.

    If values are not specified, it is assumed that the tag matches the value that the data source will take. So if, Mission Status can be any of Mission, Idle, Charging, Inventory or Error, the configuration should look like this:



    You can also change the order of modes to match the robot behavior; for example, if your robots usually change from Charging to Idle to Mission and back to Charging, you may organize them in that order. Colors are automatically assigned to each mode.

    If, for example, the Mission mode is triggered when Mission Status matches any of a set of values (e.g., mission, in_mission, running) or a value different from the tag, you can specify these using the values field:

  4. Done! Now you’ll just need the robot to publish Mission Status=<status> and if the mission status is any of the values defined above, the robot will enter in that mode. If the status is not on that list, the mode will be “Other”. For example:

Regular collections

All other collections can be defined in the Collections tab in Settings > Organization. You can add your own collection by clicking the circled + sign. Choose a type such as Customer or Hardware.

Enter a unique name, and optionally add notes and check the box to automatically add new robots to that collection.

Depending on the nature of the data source, collections can be either static or dynamic.

Static

Static collections have fixed tags, manually generated, as the members are solely based on tags rather than data sources. Robots need to be explicitly assigned to a static collection by applying a particular tag to it. By default, several collections, including Deployment, Hardware, Customer and Other, are static.

Configure static collections for your account
  1. Go to Settings > Organization > Collections

  2. Click on the circled + sign, and a new row will be displayed for you to add a new collection.

Now you’ll need to create Tags for this collection.
  1. Go to Settings > Organization > Tags

  2. Select the tab for the Collection for which you would like to add a tag, and click on the circled + sign. This will present a new row where you can configure the new tag.

  3. Enter the tag name, which should be unique.

  4. Now use the Robots tab in Settings > Organization and assign robots to this tag. For example, If you want to update tags for a robot named ‘Kepler’, you’ll need to click on the dropdown next to the robot name and select the tags it belongs to.

  5. Then for the rest of the tags you can simply select the existing collection tab and add a new tag for it. Note that if the data source takes a value which doesn’t have a tag defined, a robot going into that state will have the tag “Unassigned”.

Dynamic

Dynamic collections are collections that are based on known data sources and thus membership can change as values change in the selected underlying data source. These are useful for enabling robots to be filtered or grouped by attributes that reflect the current state of that robot, such as the software version. Modes are an example of a dynamic collection that is built into the InOrbit platform.

Configure dynamic collections for your account
  1. Go to Settings > Organization > Collections
  2. Click on the circled + sign, and a new row will be displayed for you to add a new collection.
  3. Give this new collection a name (e.g., Software Version).
  4. You will see a new field on the right, which is the data source selector. The value of this data source on a robot will determine its associated tag.

Now you’ll need to create Tags for this collection. You can either do it:

  • Manually as described above for Static Collections.
  • Automatically

    Click the Auto create tags checkbox on the Collections config. This will automatically create new tags based on the values that the associated data source takes, which will be reflected in the Tags section.

    Note: clicking on the robot count for a tag will redirect you to Mission Control, with the fleet status filter set to the specific tag, so only those robots will appear.

You can edit an already created collection (change its name, switch between static and dynamic, update a data source for dynamic collections) by clicking on a row within the Collections tab in Settings > Organization. This will enable edit mode.

You can also delete collections or tags with the trash button. To delete a collection, you must first delete all its tags. To delete a tag, first make sure there are no robots on it. 

Once you have a collection, you can group or filter by collections in the FLEET section. For example:

Group by ‘Mode’:

Filter by a particular customer:

As an Owner or Administrator, login to InOrbit Control. Click on the icon at the upper right and select Settings, where you can set up your robots, data, incidents, actions, dashboards and more.


Create a new dashboard

Navigate to the Dashboards section under the Robot Data tab. This area lets you  edit and create dashboards.

Click the button to create a new dashboard.

Any dashboard can be renamed by typing the new name into the “dashboard title” field.

Change visibility of each dashboard

Visibility of dashboards lets a company limit access to specific capabilities of InOrbit Control. Creating specific dashboards intended for different roles or tasks can avoid screen clutter, letting the user focus on their responsibilities. By default, dashboards are hidden from all roles. Make sure to select roles that should have visibility of the new dashboard.

In the example below, the Executive dashboard is set to be visible to Owner, Administrator, Manager, Engineer and Operator roles, but not visible to people with the User role.

In our example New Dashboard, we are going to set visibility to Operator only. 

Add a section in a dashboard

Dashboards consist of sections and widgets. Sections are like named folders that can contain a set of widgets.

Click on the button to create a new section in this dashboard.

You've just created a new section. Select thearrow on the right to expand the new section for editing. You can rename this section by typing in the “section title” field.

Set section scope

Sections can contain different widgets based on their scope, Fleet or Robot. We have created two new sections in the image below to demonstrate each scope type.

Click the section scope dropdown menu and select Fleet or Robot, depending on what you want to monitor or control in a dashboard section. 

Add widgets in each section

With the section scope set, you can add widgets.

Each section scope type has different widgets available for visualizations. Click on the button at the bottom of each new section to select widgets for that section (you can add multiple widgets per section).

These are the widgets available for fleet scope sections:

These are the widgets available for robot scope sections:

What are the control widgets?

There are 2 control widgets available: Fleet Control and Robot Control. These should definitely be added to any new dashboards where you want to be able to select within the fleet or focus on a particular robot.

Fleet Control lets you filter your robot fleet by a collection (tag) and/or an attribute status. It also allows grouping information by a collection, or sorting by priority or alphabetical order.

Robot Control lets you search for a robot that you have access to and set it as your selected robot to monitor. The widget also has handy shortcuts, such as a button to restart the InOrbit agent, or another that opens the Navigation screen.

When autonomy fails and other means of resolution fall short, InOrbit Control offers powerful Intervention capabilities that allow you to temporarily take manual control of your robots and teleoperate them back to safety and autonomy.

This ability gives the human operator using InOrbit a greater power over the physical presence of the robot so it must be used with caution.

Overview

Relocalization and Teleoperation are available when opening the Navigation screen for a particular robot:

  1. Log in to InOrbit Control.
  2. On the Robot dashboard, in the robot control widget, enter the name of the robot you want to Teleoperate, or select it from the pulldown menu.
  3. Click on the NAVIGATION button in that same widget.

The controls for both relocalization and teleoperation can be found on the right side of the map view in the standard layout. 

InOrbit Control offers selectable layouts for adapting the focus between maps and specific cameras. The layout button brings up a pulldown menu of available layouts based on the visible cameras.

Other layouts (besides Standard) may have the teleoperation control hidden by default and available by clicking the button with the joystick icon.

Relocalization

To ensure that the robot is properly localized to accurately track and control the robot navigation, the map displays lidar dots reflecting how the robot is currently recognizing obstacles. If the lidar dots are not properly oriented with features on the map, navigation becomes more unreliable.

Relocalization may be all that is required to restore proper navigation by the robot, or it may be the first step before taking over navigation via teleoperation.

First activate relocalization by clicking the Relocalize button.

It is easy to relocalize a robot with two controls:

  • Clicking and dragging the rotation control above the robot enables rotating the map features
  • Clicking and dragging on the robot enables translating the map in xy space to align the lidar dots with the features

Click on the check mark in the lower right to confirm relocalization. If you decide to cancel or start over, click the Relocalize button again to turn off Relocalize.

Teleoperation

To provide flexible options for different needs/preferences, there are currently 3 modes available for Teleoperation:

  • Open - send a very simple velocity or movement command to the robot to move in a certain way without invoking the robot’s navigation stack
  • Waypoint - send a command to the robot to move to a specific target location, using its internal navigation stack
  • Precision - send a command to the robot to move a precise distance forward or backward at a precise angle, using its internal navigation stack

Hovering over the visible Teleop button (beneath Relocalize) opens the Teleop drawer to reveal the available buttons to activate the preferred mode.

See the Security measures section below for important information about how InOrbit restricts teleoperation to ensure the safest possible operating conditions.

Open Teleop

Selecting Open Teleop activates the arrow buttons in the lower right corner. Clicking on the up or down arrows send commands to the robot to move a single step forward or backward, relative to the current robot position and orientation, respectively. Clicking on the right and left arrows send commands to the robot to rotate clockwise or counterclockwise by a fixed angle, respectively, again relative to the robot.

Above the arrows are meters to show the linear velocity and angular velocity when the robot is moving, and a network gauge to ensure that the roundtrip latency is sufficiently low to safely carry out the command.

Since this can be a risky mode to be in (since it bypasses the navigation stack that avoids obstacles), there is a bright bar along the top to make it very clear when the robot is in Open Teleop mode. You can deactivate Open Teleop by toggling off the Open Teleop button.

To set a new distance or angle of the increment for each step:

  1. From the menu of three vertical dots at upper right, select Settings.
  2. Select Navigation from the top menu.
  3. Select Teleop from the left-side menu.
  4. Optional - Select whether this change should apply to the Fleet or an individual robot with the selector in the upper left.
  5. Adjust the default Distance or angle using the sliders.
  6. Exit Settings and select Navigation to resume Teleop.

Waypoint Teleop

Selecting Waypoint Teleop enables selecting a target position and pose that will send a command to the robot to which it should move. Select the target position by clicking on an arbitrary point on the map or by dragging the pin icon that appears on the current robot to the new target position. Change the target pose by clicking within the circle indicating the target and dragging to orient the robot avatar to the desired final orientation.

Click the check mark at the bottom to send the command for the robot to move to the waypoint using its navigation stack. Once the robot’s navigation stack computes the path, it will be displayed and the robot will navigate to the target. The gauges on the right display the velocity, network rate and angular velocity. 

You can abandon setting a waypoint by toggling off the Open Teleop button.

Precision Teleop

Precision Teleop enables very precise movement to a nearby waypoint, including whether the robot should move forward or backward, within a relatively small range (default is 2 meters). Selecting Precision Teleop zooms to a region immediately around the robot and displays a gauge for the selected distance and angle in the lower right corner of the map.

Click on the robot and drag along the diameter line appears to define the angle and distance that the robot should move. The arrow on the target shows the direction that the robot will be facing at the end of the motion. To have the robot go backward, drag the arrow through the robot along the line such that the arrow is still facing the same direction as the robot is currently facing. You can also go to Settings > Navigation > Teleop as in Open Teleop to specify the increments for the distance and the angle if you want to use the arrows to specify these at fixed distances/angles.

Click the check mark at the bottom to send the command for the robot to move to the waypoint using its navigation stack. Once the robot’s navigation stack computes the path, it will be displayed and the robot will navigate to the target. The gauges on the right display the velocity,  network rate and angular velocity. 

You can abandon setting a waypoint by toggling off the Precision Teleop button.

Step-by-step mode

Open and Precision Teleop both have options for step-by-step or continuous mode, which respectively only issue a single command at a time or allow holding down a control to send a series of commands.

The default and recommended mode of operation gives you the ability to “nudge” the robot one step forward, one step backwards or rotating a fraction of a spin to the left or right.

This ability is intended to allow you to use discrete, safe movements to move the robot past an obstacle that its autonomous navigation algorithm can’t resolve on its own.

This enables a basic level of human intervention to apply in adverse network conditions to support re-establishing autonomous operations without the need for physical assistance.

Continuous mode (Experimental)

InOrbit includes an experimental feature to allow continuous teleoperation, similar to that found on remote control tools.

In order to enable continuous teleoperation mode:

  1. As Administrator, login to InOrbit Control.
  2. From the menu of three vertical dots at upper right, select Settings.
  3. Select Navigation from the top menu.
  4. Select Teleop from the left-side menu.
  5. Disable the Step-by-Step mode switch.

After this is done, the following functions become available:

  • You can click on a direction arrow repeatedly to achieve a seemingly smooth movement. NOTE: the robot will move an entire foot in the given direction after the last click is pressed.
  • You can switch to use a virtual joystick by clicking on an icon that appears in the bottom right of the teleop control.

For Open Teleop, we highly recommend step-by-step mode for safety reasons since the navigation stack is not involved to prevent collisions with obstacles.

For Precision Teleop, the continuous mode only affects the process of specifying the action by, for example, holding down the arrow to change the distance in fixed increments before sending the final command, so it is a convenience rather than a risk.

Security measures

As teleoperation is a dangerous operation, InOrbit includes several safety measures to avoid unintended robot movements:

  • Teleoperation is disabled by default, to avoid accidental clicks. In order to start teleoperating a robot, you must press the button for one of the active Teleop modes to expressly enable active teleoperation.
  • Teleoperation will be automatically disabled if the network round trip time to the robot is higher than 2 seconds. The currently measured round trip time value is displayed at the top of the teleoperation control.
  • Even while performing teleoperation, if the message sent from the user interface is delayed for any reason and the robot receives it more than one second after it was sent, the command will be discarded on the robot side, preventing an unintended delayed movement.

In addition, teleoperation will be blocked unless the following conditions are met:

  • Odometry information is being published by the robot and InOrbit can decode it properly
  • Robot movement as indicated by robot odometry matches the amount of distance intended by InOrbit’s teleoperation commands
Experimental features

Other experimental features such as gamepad support may be enabled selectively for specific accounts. If you are interested in trying out an additional experimental feature or have any input or questions, please contact our support team at support@inorbit.ai.



 

Enterprise

InOrbit allows individual robots to be locked while someone is sending specific actions to it to prevent multiple people from executing potentially conflicting actions.

This feature is only available for Enterprise accounts

Configuring Robot Lock

Locks can be configured under Settings > Insights > Actions to be:

  • Disabled - locks do not apply (default)
  • Selectable - locked explicitly through the LOCK button
  • Automatic - implicitly locked when a person sends an action that requires lock

Any action can be configured to require a lock on the robot.

lock-configure

Check the Requires Lock box to specify which actions will implicitly create a lock when used (Automatic mode) or require the robot to be locked before running (Selectable mode).

Using Robot Lock

InOrbit currently supports the following capabilities around robot locks:

Locking a robot
lock-button-2

Any robot can be locked by clicking on the LOCK button, which toggles to UNLOCK to easily remove the lock.

Other people can hover over the UNLOCK button to see who currently has the lock on a robot and how long it has been in effect.

Unlocking a robot

unlock-button

The person who locked the robot can unlock it by pressing the UNLOCK button. This allows other people to claim the lock on the robot.

Breaking the lock

If the robot is locked, an authorized person other than the person who locked the robot can force the robot to be unlocked by pressing the UNLOCK button.

In this case, there is a confirmation on unlocking a robot to ensure that this is a deliberate action.

Lock expiring after a timeout

To prevent situations where a person who locked a robot forgets to unlock it, locks are automatically released after a period of time has passed since the last action on the robot.

Easily viewing which robots are currently locked
locked-robots-collection

There is a Locked Robots collection that provides visibility into any robots that are currently locked.

 

InOrbit supports 2-way synchronization with Opsgenie, a platform for on-call and alert management used by DevOps teams. Through this premium integration:

  • Incidents in InOrbit trigger alerts in Opsgenie
  • Resolving incidents in InOrbit resolves the associated alerts in Opsgenie.
  • Alerts created in Opsgenie can trigger incidents in InOrbit.
  • Closing an alert originated in Opsgenie, resolves the incident in InOrbit.

In all cases, alerts in Opsgenie are enriched with data from InOrbit, including the latest events from the audit log, robot status and collections.

Enabling the integration:
  1. Create API key in Opsgenie
    In Opsgenie go the the integrations list and add Rest API HTTPS over JSON. Copy the generated API key.
  2. Configure Opsgenie integration
    As administrator, login to InOrbit Control; in the upper right, click Settings in the 3 vertical dots menu, select the Admin tab and on the left menu click on integrations. Turn on Opsgenie and enter the API key from Step 1.
  3. Configure Opsgenie webhook 
    1. In Opsgenie go the the integrations list and add Webhook API
    2. Configure a custom header “x-opsgenie-webhook-token” using the value shown in InOrbit.
      This value can be obtained from InOrbit in the Opsgenie configuration section, “Opsgenie webhook token”:
    3. Check “Add Alert Description to Payload” and “Add Alert Details to Payload”
    4. Enter the Webhook URL obtained from InOrbit in the Opsgenie configuration section, “Opsgenie webhook URL”



Using Opsgenie as alert channel for an incident

Go to the incidents definitions page at Settings → Insights → Incidents. Edit or create an incident definition and select Opsgenie as the alert channel.

 

Next time the incident triggers, an alert will be created in Opsgenie.

Triggering an InOrbit incident from an Opsgenie alert

You can create an alert in Opsgenie specifying a robot name or id as the Entity.

This will automatically create an incident in InOrbit

 

InOrbit supports integration to any incident management platform or internal systems via webhooks and a REST API.

In order to receive events from InOrbit, your incident management system must provide a webhook. InOrbit then sends events to your webhook according to what you have configured, including when an incident is triggered. Webhook events are sent by InOrbit as POST requests to your webhook.

Setting up your Webhook

Setting up a callback URL for webhook events requires verification that you control or own the domain that hosts your application.

When you provide the webhook URL in Settings > Admin >Integrations, you will be sent a GET request including the header X-InOrbit-Key (a fixed value, randomly generated), which will contain the API key you see on the screen. Your server should respond with a status code of 200 and the API key that was sent.

Webhook Events

You will receive one webhook event per instance of an incident occurring.

For example, if you configured a Warning to be triggered when the Battery Level goes under 30%, you will receive a POST request when that happens.

{

  alertId: <Alert ID>,

  entity: {

     id: <Entity ID>,

     type: <Entity Type>,

     name: <Entity Name>,

  },

  message: <Message of the alert>,

  description: <Description, usually more detailed than message>,

  actions: <Possible actions that can be executed for the given alert>,

  componentId: <Component ID where the alert was triggered>,

  status: <Status, could be "new", "resolved">,

  ts: <Timestamp when the alert was triggered>,

  priority: <Severity of the current alert>

}




Incidents REST API

If you use an external incident management system to receive service requests, you may also trigger a corresponding incident within InOrbit by using the REST API. Incidents created and resolved using the API will be shown in InOrbit.

To enable the API, go to Settings > Admin > Integrations and turn on the toggle.



You can find the API specification at https://api.alpha.inorbit.ai/docs/robots.html. To obtain your API Key, select the green Authorize button.