NODAR Viewer User Interface

Running the Viewer

To launch the viewer, run the nodar_viewer command in the terminal.

User Interface

When you run the viewer for the first time, the application opens in its default layout:

Default Layout

When you modify the layout by resizing, opening, or closing viewers, the application will save your changes to ~/.config/viewer_config.yaml upon closing with the close button.

View

View Menu

In the View menu, you can open or close the left properties panel. You can also use the Ctrl+Alt+P shortcut.

Layouts

Layouts Menu

In the Layouts menu, you can select from several predefined UI layouts. The Base layout (shown in the image above) is selected by default.

Viewers

Viewers Menu

The Viewers menu lets you open data visualizers. The image above shows four open viewers: two Rectified Image viewers, one Colorized Depth Map, and one Point Cloud.

Help

Help Menu

The Help > About menu opens a window that displays the application's version number and lists all third-party libraries used.

Properties

The main properties panel contains collapsible sections that you can expand or collapse by clicking their headers.

UI Settings

UI Settings

The UI Settings section allows you to adjust the application's global font size. You may want to increase the font size on high DPI monitors to improve readability.

Viewer Mode

Viewer Mode

In the Viewer Mode section, you can select the viewer's operation mode. Note that some data viewers are only available for specific modes.

Connection Viewer Mode

When you select Connection from the mode drop-down list, you can connect to a remotely running Hammerhead. If you're running Hammerhead and NODAR Viewer on the same computer (laptop or NVIDIA Orin), you can use the default local host address 127.0.0.1.

If Hammerhead and NODAR Viewer are running on different computers, you need to connect them either through a physical cable, network, or Wi-Fi connection. You'll need to know the IP address of the machine running Hammerhead.

Connection Mode

If Hammerhead exits during a connection, the viewer will automatically drop the connection session after a brief timeout.

Connection Timeout

To manually end the connection, click the Disconnect button.

Disconnect

Note

The Hammerhead and Viewer versions must match, as they are not backward compatible. If the versions differ, the connection will drop displaying an error message.

When successfully connected, a new UI appears that lets you control various Hammerhead properties.

Connected UI

Control

In the Control section, you can:

  • Pause and resume Hammerhead
  • Reset calibration (returns calibration parameters to their default state)
  • Enable auto exposure and gain
  • Manually control exposure and gain

Control Section

Box Filter

In the Box Filter section, you can enable and configure box filter settings.

Box Filter

Playback Viewer Mode

When you select Playback from the mode drop-down list, you can replay saved data. You can either manually type the path to a data folder in the input field or use a file dialog to select the directory.

Playback Mode

When you select Playback mode, the Timeline panel automatically opens at the bottom.

Timeline Panel

When opening a data folder, Viewer performs data source validity checks and reports any data saved in incorrect formats. It suggests converting the data to the correct format by clicking the Validate button.

The validation process may take some time, depending on the size of your data. When finished, any incorrectly formatted data will be replaced with properly formatted versions.

Validation

Navigate through the data source by selecting a frame on the frame line or by using the timeline controls:

  • Play/Pause — starts or stops the playback
  • Move to start — jumps to the first frame
  • Move one frame back — moves to the previous frame
  • Move one frame forward — moves to the next frame
  • Move to end — jumps to the last frame

Timeline Controls

Viewers

Once Viewer is connected to Hammerhead or a data source is loaded for playback, you can open different viewers to examine the data.

Each viewer offers the following controls, from left to right:

  • Properties — opens a properties panel. Each viewer has its own properties (some viewers may have none).
  • Turn into — transforms the viewer into a different type of viewer.
  • Maximize — expands the viewer to occupy the full application window.
  • Close — closes the viewer.

Viewer Controls

Raw Image

The Raw Viewer displays unprocessed images directly from the cameras. You can toggle between the left and right camera views with the View property.

Raw Image Viewer

Rectified Image

The Rectified Viewer displays rectified images. You can toggle between the left and right images with the View property.

Rectified Image Viewer

Colorized Depth Map

The Colorized Depth Map viewer combines a rectified image with color-coded depth information.

When you select a colored pixel, it shows the relative position and distance of that point from the camera.

This viewer has no properties.

Colorized Depth Map

Point Cloud

The Point Cloud viewer shows a 3D representation of depth data as points in space. You can navigate this 3D view using your keyboard and mouse:

  • Hold and drag the left mouse button to rotate the 3D camera around the pivot point. For finer control, hold Left Shift while rotating.
  • Use W, A, S, D to move the 3D camera and the pivot point: forward (W), left (A), backward (S), and right (D). For finer control, hold Left Shift while moving.
  • Use Q, E to move the 3D camera and the pivot point: up (Q), and down (E). For finer control, hold Left Shift while moving.
  • Use the mouse wheel to zoom the 3D camera toward or away from the pivot point. For finer control, hold Left Shift while zooming.
  • Hold Ctrl and select a 3D point to move both the camera and pivot to that location.
  • Press Ctrl + R to reset the 3D view.

The Point Cloud viewer has several properties that let you manipulate the 3D point cloud.

View

In the View section, you can:

  • Background Color — Set the background color of the 3D view.
  • Camera Projection — Change 3D camera projection type between Perspective and Orthographic. Note: Orthographic projection maintains consistent distances between lines regardless of depth, which can make keyboard navigation more challenging.
  • Camera Z Near/Far — Adjust the near and far clipping planes of the 3D camera viewport.
  • Display Camera Pivot — Toggle the visibility of the 3D camera pivot point.
  • Camera Pivot Position — Manually adjust the 3D camera pivot position. This provides precise control over the position in 3D space, as an alternative to keyboard movement.
  • Reset Camera — Reset the 3D view.

Point Cloud View Properties

Points

In the Points section, you can:

  • Point Size — Adjust the size of points in the point cloud.
  • Point Contrast — Adjust the contrast of points.
  • Point Color Scheme — Select from these color schemes:
    • Solid — applies a single, uniform color to all points. You can choose this color using the Point Solid Color property.
    • Image — assigns colors to points based on the left rectified image.
    • Range — assigns colors to points based on their distance from the camera. Using the Point Range property, you can set minimum and maximum distances to determine how the gradient colors are distributed.
    • Height — assigns colors to points based on their height. Use the Point Range property to set minimum and maximum height values that determine how gradient colors are distributed.
    • Obstacle — assigns colors to points based on obstacle detector data. With the Point Solid Color property, you can choose a color for detected obstacles. Using the Point Obstacle Threshold property, you can set the threshold that determines if a point is classified as an obstacle. Note: This color scheme requires launching Hammerhead with the obstacle detector enabled.

Point Cloud Points Properties

Grid

In the Grid section, you can:

  • Display Grid — Toggle the 3D grid's visibility.
  • Grid Line Width — Adjust the thickness of 3D grid lines.
  • Grid Line Count — Change the number of 3D grid lines. This value determines how many lines appear in each direction (+z, -z, +x, -x). For example, setting it to 3 creates three lines in each direction.
  • Grid Line Spacing — Adjust the spacing between 3D grid lines.
  • Grid Color — Set the color of 3D grid lines.

Point Cloud Grid Properties

Bounding Boxes

In the Bounding Boxes section, you can:

  • Display Boxes — Toggle the visibility of bounding boxes around detected obstacles.
  • Box Line Width — Adjust the thickness of bounding box lines.
  • Box Offset — Adjust the y-position of bounding boxes.
  • Box Height — Adjust the height of bounding boxes.
  • Box Color — Set the color of bounding box lines.
  • Display Box Distance — Toggle the visibility of distance labels on bounding boxes. The label displays the distance to the closest point of each box.
  • Box Distance Color — Set the color of the distance labels.
  • Display Box Velocity and Heading — Toggle the visibility of detected obstacle velocities and direction vectors.
  • Box Heading Line Length — Adjust the length of direction vectors.
  • Box Heading Line Width — Adjust the thickness of direction vectors.
  • Box Heading Line Color — Set the color of direction vectors.
  • Display Box Velocity — Toggle the visibility of velocity labels.
  • Box Velocity Color — Set the color of velocity labels.

Point Cloud Bounding Boxes Properties

Help

The Help section displays keyboard shortcuts and navigation guides.

Point Cloud Help

Confidence Map

The Confidence Map viewer indicates how confident the stereo matcher is in finding the best match for each pixel. It calculates this by measuring the difference between the best match's cost and the second-best match's cost, converting this difference into a grayscale value.

For example, when there is a larger difference between the best and second-best match, the confidence map shows a high value, displayed as a bright pixel. In regions where the matching costs are similar between the best and second-best matches — such as areas with low texture like sky, walls, or asphalt — a low confidence value appears as a dark pixel.

This viewer has no properties.

Confidence Map

Disparity Map

The Disparity Map viewer displays each pixel's disparity value in grayscale. For HDK systems, only the left disparity image is available.

Disparity Map

Dynamic Occupancy Map

The Dynamic Occupancy Map viewer displays detection and tracking module output. This viewer also provides a bird's-eye view of the point cloud, using point density visualization to highlight potential obstacles.

Bounding boxes indicate objects, with colors representing their velocity direction using a color wheel — yellow indicates objects moving toward the sensor, while blue shows objects moving away.

The available properties vary depending on whether the viewer is running in Connection or Playback mode.

View

The View section works in both Connection and Playback modes, offering these settings:

  • Direction — Controls the image orientation, allowing either Horizontal or Vertical display.
  • Type — One of the following image types:
    • Occupancy Map — A binary one-channel 8-bit image where occupied cells are displayed with a color value of 255.
    • Object Tracker — An image displaying detected objects, with each object's color indicating its velocity.
    • Bird's Eye View — A top-down visualization of the point cloud data.
  • Draw Grid — Toggle the grid overlay display.
    • Cell size x and Cell size z — Set the dimensions of overlay grid cells. Note: The z axis represents the horizontal direction when image direction is Horizontal, and the vertical direction when image direction is Vertical.

Dynamic Occupancy Map View

BEV Config

This section appears only when connected in Connection mode. It provides the following setting:

  • Threshold — Controls the sensitivity of obstacle detection in the Grid Detect output. Increasing the threshold reduces false positives but may also reduce the number of true detections.

BEV Config

Note

This section appears only when Hammerhead is launched with the obstacle detector enabled.

Object Tracker Config

This section appears only when connected in Connection mode. It provides the following setting:

  • Init max velocity — Corresponds to the maximum speed at which objects move relative to the camera. For example, in a static setup with vehicles moving at 50 m/s, the user should set Init max velocity to 50.0.

Object Tracker Config

Note

This section appears only when Hammerhead is launched with the obstacle detector enabled.

Initial Calibration

The Initial Calibration viewer allows you to specify settings for camera calibration. Once submitted, Hammerhead launches a calibration process based on these settings.

Three types of calibration are available: Factory Calibration, Refine Calibration, and Range Calibration.

Note: This viewer is only active when connected in Connection mode.

Factory Calibration and Refine Calibration

To use either calibration type, first enable it by clicking the Enable checkbox. Then select your desired calibration type.

Use Factory Calibration when cameras are first mounted to determine their precise positioning. This calibration process can correct angular misalignments up to 3 degrees, though it requires more time to complete.

Run Refine Calibration periodically as part of regular maintenance to maintain optimal alignment. This calibration type corrects small angular shifts of up to 1 degree, ensuring the system stays precise over time.

The following parameters are available:

  • Baseline — The distance between cameras, measured in meters.

Factory and Refine Calibration

Range Calibration

To begin range calibration, click the Add Region button to create a region. You can create up to 16 regions.

Range Calibration

After adding a region, draw a rectangular region of interest on the image containing a target at a known distance. For best results, use a flat target positioned between 30m and 100m away. To maintain accuracy, perform this calibration regularly after running Refine Calibration. You can modify an existing region by selecting its radio button, or remove it using the Remove button on the right.

Range Calibration Region

After enabling your desired calibration types, press the Submit button to initiate calibration on the Hammerhead system. During calibration, processing will pause and the viewer will stop receiving new data.

Calibration Submit

Generic Image

Some images don't fit into any of the listed categories. These may be images that Hammerhead receives from an external application. In such cases, Hammerhead publishes these images under specific names. To display such an image, simply type its name in the Name field of the Generic Image viewer.

Generic Image Viewer

Data Recorder

The Data Recorder viewer lets you save streamed data to your local hard disk. To use it, select a destination folder, choose which data you want to save, and press the Start button.

To record a generic image, enable Generic Images recording by selecting its checkbox, then enter the image name in the input field and click the Add button. You can add multiple images using this method. To remove a generic image, select it from the list and click the Remove button.

Data Recorder

Keep in mind that saving is a resource-intensive operation — extensive use may degrade application performance. Since high-quality camera images require significant storage space, monitor your available disk space. To stop recording, press the Stop button.

Due to processing limitations, point cloud data can only be captured one frame at a time. To do this, first press the Start button to begin recording, then click Capture Point Cloud whenever you want to save a frame. You can capture multiple individual frames during a single recording session. Press the Stop button when you're finished recording.

Point Cloud Capture

Note

You can capture point cloud data when Hammerhead is paused.