Sight (Front End)¶
When you open your browser at the default link for sight,
http://127.0.0.1:3000/ you find a
page similar to the one below. This is the main Sight window.
The UI is organized into a Channel Menu, Windows menu, Configuration menu, and the Window Container.
The window container contains all windows currently visible and listed in the window menu. Windows can be dragged to customize the view, and hidden by clicking on the top left icon. Use the window menu to display previously hidden windows.
List of Window Types¶
Sight has the following window types, described in the following sections:
- 2D Drawing: 2D drawing windows show a customizable 2D view of the robot. They can be used to display camera images and maps with overlays such as scan beams, robot position, detected obstacles, and others.
- 3D Drawing: 3D drawing windows are similar to 2D drawing windows except that they are rendered in 3D.
- plots: Plot windows show graphical representations of some information, useful for system monitoring.
- Graph: Graph windows display the graph of the current application and individual node execution status.
- Recording: Can enable and disable recording.
- Replay: Can control replay.
The following keyboard shortcuts are available:
- Enter: Press enter to reorganize the windows so that they do not overlap.
- Arrow keys: To move the camera in 3D view, hold down the left mouse button and use the arrow keys.
- Right click: Right click on a rendering view display the available menu.
- Middle-mouse click: While pointing to a channel name on the left menu, click the middle button of the mouse to copy the full name to the clipboard.
2D and 3D rendering are available. Both views are customizable: you can create a new view using one of the two buttons on the windows menu. Once the view is created, choose what channel to render and in which order. Both views can be used to render 2D or 3D data.
Right click on the view to access the menu:
- Enable/disable all channels at once
- Take a screenshot of the view
- Start and stop recordings
- Access settings to add/remove channels and change the size of the rendering
- Display or hide color and pixel information about the object at the mouse pointer (2D views only)
There is a channel list below the view. Clicking on the icon in the left side of a given channel gives access to channel specific menus. Use the checkbox to enable or disable a channel from the view.
Channels that appear red are not enabled, and not being updated.
Both 2D and 3D views use a fix 0.2s delay in the rendering in order to synchronize the data to render. If the messages come with a higher latency than this delay, or if some messages are dropped (either due to throttling from the codelet, for example ImageViewer or from the network itself), this might also result in rendering channels out of sync.
Both the 2D and 3D views can contain interactive pose markers meant to represent an editable pose of the Pose Tree. See Interactive Markers Configuration for information about marker configuration.
Interactive pose markers allow you to edit poses using either 2D or 3D render widgets.
Three 2D interactive pose markers are shown below. The highlighted one is selected for rotation.
Three 3D interactive pose markers. The highlighted one is selected. The various segments are distinguishable by color.
2D objects are rendered layer per layer and in the order they are listed. Each channel comprises one layer, and the layer menu lets you pick the transparency (alpha channel), the size (for points and lines), and the default color (if none is specified.)
3D objects are rendered using an orthographic projection along the Z axis, and the first channel is used as the reference frame.
If an image is rendered in the first channel, the window is automatically resized to match the size of the image.
The mouse can be used to zoom in and out of the produced image.
For each layer of the a 3D rendering, the color and size can be customized as for a 2D rendering, and a default Z can be set in order to render 2D objects in the 3D world.
The rendering is done in the world coordinate system and images are interpreted as an occupancy grid, if the value of a pixel is greater than 127, then the cell is considered empty. Otherwise a wall is displayed.
The view can be controlled using the mouse or keyboard:
- Translation: keyboard arrows, or mouse right click
- Rotation: mouse left click
- Zoom: mouse wheel
Plots are automatically created for channels rendering a scalar value. The channels are automatically grouped by full channel name: channels from the node and codelet sharing the same prefix before the last “.” will be output in the same window. For example:
- nodeA/codelet/var1 and nodeA/codelet/var2 are grouped together
- nodeB/codelet/win1.var1 and nodeB/codelet/win1.var2 are grouped together
- nodeB/codelet/win2.var1 and nodeB/codelet/win2.var2 are grouped together but in a different window of the previous two channels.
The plot automatically adjusts to the range of the data displayed. Individual channels can be hidden by unselecting them below, and the mouse can be used to increase or decrease the range of the data displayed. A maximum of 5 minutes of history is retained.
The graph of the current application is displayed. Nodes in different status are presented in different colors:
- grey nodes have not been started yet
- gold nodes are starting
- orange nodes are running slower than 0.1Hz
- green nodes are running faster than 0.1hz. The faster, the lighter they are.
- red nodes have been stopped.