The "Vitals" Dashboard

The first screen you will be brought to is Formant’s Vitals page. This page gives you a live grid view of all the device data you have selected to monitor. We’ve chosen some defaults, like the terminal, some ROS utilities, and a suite of system resource modules. You can choose which modules you’d like to see by selecting “Customize” and toggling any of the modules on or off.

Change your dashboard layout by dragging rectangles around. Modules can be resized by clicking and dragging the bottom corners. You layout will be saved on refresh.

To add ROS topics, click the “Add ROS Topic…” menu option from the “Customize” menu. This will bring up a dialog box that will allow you to select and name your topic. If the type of the topic is something we recognize, we likely have a special visualization type for it. For example, numeric types will be displayed as a number with a history graph.

For custom types, we will display the data as a textual JSON object. You may not want all of the JSON data to be displayed, however. In these cases, you can enter a JSON selection string in the ROS Message Location box below.

For example, if you have a Twist topic and would like to display the linear X component in a module, you can type linear.x in the box below to retrieve and display just that value. You can also index into an array if you’d like to select a specific array index.

With your Vitals dashboard come other specialized modules. Read more about each one below.

With premium Formant editions, you can unlock the toolkit that allows you to build your own custom modules to display any information however you want, or even create entire new APIs. Explore our premium documentation for more information.

The Terminal Module

The terminal opens a real-time connection via RPC. The terminal will be logged into the formant user. You can log into another user with the su command.
The terminal is a very convenient module when inspecting the data on your robot’s network, issuing commands, or otherwise just interacting with your device without having to leave your dashboard.

Note: Not all networks are set up to connect over RPC channels. You can check your device’s network capabilities by using Twilio’s network test, found here.

Note: when adding ROS topics to your vitals dashboard view, the Formant agent will be refreshed and break the terminal pipe. If this happens, just refresh the page to bring the terminal back.

System Modules

Formant provides many modules to inspect the system performance of your device. Most commonly, you can view CPU utilization, memory usage, and network usage to make sure your device is performing acceptably. These can be toggled on and off in the “Customize” menu, and do not count for any topic caps.

ROS Topic Publisher

The ROS topic publisher will send a user-defined string command to a std_msgs.String type topic. Formant has a built-in topic, /formant/command, ready for you to use for this purpose. If your system subscribes to any other String topic, then it will appear in the drop-down here.

If you do not see your topic in the drop down, you either need to refresh the page or make sure that there is at least one subscriber for that topic.

A powerful use case for the ROS topic publisher is to send a JSON value through the network. That way, you can upload data directly to your robot. For example, you can send a mission to your robot and have it begin executing.

ROS Service Caller

The ROS service caller is like the ROS topic publisher, except it allows you to call any ROS service. When selecting a service, you will be given a form to fill out the parameters for that service. If you don’t see your service listed, try clicking the refresh icon in the top right of the module. For further issues, inspect the agent logs or visit our troubleshooting section.

When the service is called, the result of that service will appear below the service caller window (you have to scroll down).

Note: the ROS service caller depends on pip and rosgraph. Make sure to install them with sudo apt install python3-pip ros-noetic-rosgraph, or whatever is appropriate for your ROS installation.

ROS Topic Monitor

The ROS topic monitor module lets you monitor the publish rate of topics to ensure they stay within nominal bounds. This lets you keep an eye on which topics are publishing, and make sure that performance depredations don’t impact your system.

Due to performance constraints, the topic monitor will not allow you to watch more than 20 topics by default. We recommend minimizing the number of topics you watch.

Generic ROS Topics

Any given ROS topic can be visualized on a Vitals dashboard. Free users can visualize up to 12 topics, whereas premium users have no limits. No other module types contribute to this 12.

Topic message types that Formant does not understand the type for will be displayed as textual JSON modules.

Premium Topic Modules

In addition the the generic topic module types above, premium editions get access to special modules to display TF trees, maps and localization, geolocations, file tails, audio streams, and more. Additionally, premium users get access to our entire module development toolkit to make custom modules.