User Interface Overview

Phantom Bridge comes with a flexible web-based User Interface. It can display autodetected Topics either as raw deserialized data, or using visual widgets. Several widget types are built in, you can also easily implement your own. You can call any ROS Service, set runtime ROS Parameters, and completely customize User Input for tele-operation.

Tip

The current configuration of the displayed panels and their settings are stored in the URL. You can share it with others and they will see exactly what you see, and be able to control the machine.

Most elements are designed to be intuitive and self-explanatory, here are some bits that may need a small introduction:

Robot Connection & Status

../_images/ui-header.png

Discovered Resources

../_images/ui-menu.png

Nodes & Topics (Graph View)

Under the Nodes & Topics menu, you will find a Graph View like the one shown below. On the left you can see all the discovered ROS Nodes, on the right all discovered ROS Topics. The connections between them signify which Nodes publish and subscribe to which Topics. The icon next to the Node’s name opens a dialog allowing to examine and modify runtime parameters of each Node. The checkbox next to a Topic name opens a new panel for the topic. Each connection in the graph shows Publisher’s and Subscriber’s QOS. A warning is displayed when QOS mismatch is detected.

../_images/ui-graph-view.png

Services Menu

The Services menu allows you to call any discovered ROS service on your system. Some buttons are instantly available, some need to be configured. You can also make your own custom control widgets. See more here.

../_images/ui-services-menu.png

Introspection

../_images/introspection-running.svg

This button controls Introspection (discovery of ROS Nodes, Topics, Services and Docker containers). When animating as shown here, Introspection is running on the Robot. You can manually start and stop it at any time.

User Input Indicator

If configured on the Robot, you will see the User Input menu on the top-right of the screen. Based on the current state of the input system, this is what the icon means. More information about user input can be found here.

../_images/ui-monkey-blue.png

Input disabled

../_images/ui-monkey-green.png

Input enabled and ready, not transmitting

../_images/ui-monkey-yellow.png

Input enabled and transmitting

../_images/ui-monkey-red.png

Error occured, not transmitting

../_images/ui-message-definition.png

Message Type Inspector

Wherever you see a ROS Message or Service type name (such as sensor_msgs/msg/CameraInfo), you can click on it to reveal its full definition transcribed into a pseudo-JSON, as shown here. This is particularly useful as you don’t need to look up IDL/MSG/SRV type definitions and their nested sub-structures when working with a ROS system.