Basic Streaming Visualizer for API Messages

This example program visualizes Spot’s perception scene in a consistent coordinate frame. It demonstrates:

  • How to convert API objects, such as local grids and world objects, into the vision world frame.

  • Create a basic rendering of these objects using python VTK.

  • Stream the API messages to continuously update the visualization for a live-view.

Setup Dependencies

This example requires the bosdyn API and client to be installed, and must be run using python3. Using pip, these dependencies can be installed using:

python3 -m pip install -r requirements.txt

Running the Example

To run the example:

python3 -m basic_streaming_visualizer ROBOT_IP [--local-grid {no-step,obstacle-distance,terrain}]

As well, the example program takes an optional command line argument of --local-grid to specify which local grid sources to be visualized. The argument must be one of {terrain, obstacle-distance, no-step}. By default, the program will visualize the terrain map, which shows the estimated heights of objects near Spot. To visualize more than one grid source at a time, you must repeat the command line argument for each grid source; for example, --local-grid terrain --local-grid no-step.

Camera Controls

The controls to interact with the visualization screen while the example is running:

  • R : reset the camera

  • Left Mouse: rotate the camera

  • Right Mouse: zoom in/out.

  • Middle Mouse: pan the camera.

Visualized Objects

The basic visualizer will display different objects in Spot’s perception scene:

  • Spot is shown as a yellow, rectangular prism with position and orientation matching the robot state.

  • Fiducials are shown as red squares with the ID in text above the actual fiducial object.

  • Other world objects are visualized as small blue spheres at the location of the world object.

  • The local grid maps are visualized with color correlating to the intensity values of the grid, and the voxels correlating to the height of the terrain grid.