Get desktop application:
View/edit binary Protocol Buffers messages
Upload and play sounds over the SpotCam's speakers.
Given a soundRequest that identifies a single sound present in the system's sound effects table, PlaySound executes the sound effect.
Begin playing a loaded sound from the robot's speakers.
Common request header.
The sound identifier as uploaded by LoadSoundRequest or listed in ListSoundsResponse.
If the gain field is populated, then volume of the sound is multiplied by this value. Does not modify the system volume level.
Result of staring playback of a sound.
Common response header.
LoadSound loads a sound effect into the system's sound table. The stream must contain a wav file, with a RIFF header describing it. The argument is a stream, to allow for sounds that are bigger then the MTU of the network; in this case, the complete stream must contain the entire sound. If the stream ends early, an error will be returned. The header and sound fields of the entire stream must be the same.
Load a new sound onto the robot for future playback.
Common request header.
Identifier for the sound. If the same identifier is used as a previously loaded sound, that sound will be overwritten with the new data.
WAV bytes to be joined.
Result of uploading a sound.
Common response header.
Delete the sound identified in the argument from the system's sound table.
Remove a loaded sound from the library of loaded sounds.
Common request header.
The sound identifier as uploaded by LoadSoundRequest or listed in ListSoundsResponse.
Result of deleting a sound from the library.
Common response header.
ListSounds returns a list of all of the sound effects that the system knows about.
Request for all sounds present on the robot.
Common request header.
List of all sounds present on the robot.
Common response header.
All sounds currently loaded.
Set the overall volume level for playing sounds.
Set the desired volume level of the system.
Common request header.
volume, as a percentage of maximum.
Result of changing the system volume level.
Common response header.
Set the overall volume level for playing sounds.
Query the current volume level of the system.
Common request header.
Provides the current volume level of the system.
Common response header.
volume, as a percentage of maximum.
Request to set the audio capture channel
Result of setting the audio capture channel
Request to get the audio capture channel
Result of getting the audio capture channel
Request to set the audio capture channel
Gain for microphone, range from 0.0 to 1.0
Result of setting the audio capture gain
Request to get the audio capture channel
Result of getting the audio capture gain
Gain for microphone, range from 0.0 to 1.0
Change the layout of of the video stream between available presets.
SetScreen changes the current view that is streamed over the network
Switch the camera layout in the video stream to the one specified.
Common request header.
Identifier as specified in ListScreensResponse.
Result of setting the camera layout.
Common response header.
Identifier of the screen used.
GetScreen returns the currently-selected screen
Request the current screen in use.
Common request header.
Specify which screen is currently being displayed in the video stream.
Common response header.
Identifier of the current screen.
ListScreens returns a list of available screens
Request the different screen layouts available.
Common request header.
Response with all screen layouts available.
Common response header.
List of all screen layouts that can be selected.
GetVisibleCameras returns a list of currently visible windows, with any available metadata
Request information about the current cameras in the video stream.
Common request header.
Description of the parameters and locations of each camera in the current video stream.
Common response header.
List of all camera streams visible in the current video stream.
set the mapping between radiometric IR samples to color, for video
get the mapping between radiometric IR samples to color, for video
apply settings for the 'ir meter overlay'
retrieve settings for the 'ir meter overlay'
Query temperature and built-in test results.
GetTemperature returns a list of thermometers in the system, and the temperature that they measure.
Common request header.
Common response header.
List of all temperatures measured.
GetBitStatus returns two lists; a list of system events, and a list of ways that the system is degraded; for instance, a degradation may include a missing PTZ unit, or a missing USB storage device.
Request the status of all built-in tests.
Common request header.
Data on the current status of built-in tests.
Common response header.
Fault events that have been reported.
List of system states that may effect performance.
ClearBitEvents clears out the events list of the BITStatus structure.
Clear Built-in Test events.
Common request header.
Response to clearing built-in test events.
Common response header.
GetSystemLog retrieves an encrypted log of system events, for factory diagnosis of possible issues. The data streamed back should be concatenated to a single file, before sending to the manufacturer.
Change the brightness level of individual LEDs.
Set individual LED brightnesses.
Common request header.
Brightness [0, 1] to assign to the LED located at indices [0, 3].
Response with any errors setting LED brightnesses.
Common response header.
Request the current state of LEDs on the SpotCam.
Common request header.
Describes the current brightnesses of all LEDs.
Common response header.
Brightness [0, 1] of the LED located at indices [0, 3].
Trigger data acquisitions, and retrieve resulting data.
Store queues up a Logpoint, which is a bit of media that the user wishes to store to disk (still images are supported for now, more media types will be supported in the future)
Trigger a data acquisition.
Common request header.
Which camera to capture.
Type of data capture to perform.
Metadata to associate with the store.
Result of data acquisition trigger.
Common response header.
The log point returned here can be used to add a tag to the Logpoint later It will very likely be in th 'QUEUED' state.
GetStatus reads the 'name' field of the Logpoint contained in GetStatusRequest, and fills in the rest of the fields. Mainly useful for getting the 'state' of the logpoint.
Request for status about the current stage of data acquisition.
Common request header.
Log point to query. Only the name is used.
Provide an update on the stage of data acquisition.
Common response header.
The logpoint returned here can be used to add a tag to the Logpoint later
Tag updates the 'tag' field of the Logpoint that's passed, which must exist.
Add tag metadata to an existing log point.
Common request header.
Logpoint to add metadata to. Name and tag are used.
Result of adding tag metadata to a log point.
Common response header.
EnableDebug starts the periodic logging of health data to the database; this increases disk utilization, but will record data that is useful post-mortem
Change debug logging settings on the SpotCam.
Common request header.
Set true to enable logging of temperature data;
Set true to enable logging of humidity data;
Set true to enable logging of BIT events; BIT events are always recorded to volatile memory and can be viewed (and cleared) with the Health service, but this enables writing them to disk.
Set true to enable logging of Shock data; this is on by default.
Set to true to enable logging of system load stats cpu, gpu, memory, and network utilization
Nowow a BIT, set true to enable logging of led driver status. bool enable_led_stat = 7;
Response with any errors for debug setting changes.
Common response header.
ListCameras returns a list of strings that identify valid cameras for logging
Request the available cameras.
Common request header.
Provide the list of available cameras.
Common response header.
List of all cameras which can be used in a StoreRequest.
Retrieve returns all raw data associated with a given logpoint
Retrieve the binary data associated with a log point, with no processing applied. Storing a panorama will retrieve tiled individual images. For IR, the temperature at each pixel is 0.1 * the int value in Kelvin.
Common request header.
Log point to retrieve. Only the name is used.
Common response header.
Log point retrieved.
Data chunk bytes field should be concatenated together to recover the binary data.
Retrieve returns all data associated with a given logpoint
Retrieve the binary data associated with a log point.
Common request header.
Log point to retrieve. Only the name is used.
Provide the data stored at a log point. Store() dictates what processing happens in this response. c0 -> c4 will return the raw (rgb24) fisheye image of the camera at that index. Storing a panorama will process the data into a stitched image.
Common response header.
Log point retrieved.
Data chunk bytes field should be concatenated together to recover the binary data.
Delete removes a Logpoint from the system
Delete a log point from the store.
Common request header.
Log point to delete. Only the name is used.
Response to a deletion with any errors that occurred.
Common response header.
ListLogpoints returns a list of all logpoints in the database. Warning: this may be a lot of data.
List all available log points, whether they have completed or not.
Common request header.
Provide all log points in the system.
Common response header.
List of all the individual log points concatenated into a list. This stream may take a long time to complete if there are a lot of stored images.
SetPassphrase sets the eCryptFS passphrase used by the filesystem. there is no symmetry here, because key material is write-only This rpc is now deprecated as of the switch from EXT4 to NTFS and returns UnimplementedError
Set encryption for the disk.
Common request header.
After setting the passphrase, please reboot the system to remount the encrypted filesystem layer.
Response from setting the disk encryption. After setting the passphrase, please reboot the system to remount the encrypted filesystem layer.
Common response header.
Modify or query network settings of the SpotCam and ICE resolution servers.
SetICEConfiguration sets up parameters for ICE, including addresses for STUN and TURN services
Modify the ICE configuration. Note: this configuration replaces any configuration currently present. It is *not* appended. This may also cause existing connections to close.
Common request header.
List of servers used for ICE resolution.
Result of modifying the ICE configuration.
Common response header.
GetICEConfiguration retrieves currently set parameters for ICE, including addresses for STUN and TURN services
Request the servers used for ICE resolution.
Common request header.
Provides the ICE resolution servers.
Common response header.
List of servers used for ICE resolution.
Turn hardware components' power on or off.
Turn components' power on or off. This should not be used to power cycle a component Turning PTZ power off for too long will cause the video stream to fail
Turn components on or off.
Common request header.
status indicates the requested power status of the controllable devices 'true' for power-on, 'false' for power-off
Result of turning components on or off.
Common response header.
status indicates the requested changes upon success 'true' for power-on, 'false' for power-off
Get current status of a component
Request component power status.
Common request header.
Provides the power status of all components.
Common response header.
status indicates the power status of the controllable devices 'true' for power-on, 'false' for power-off
Cycle power for a component
Turn components off and then back on without needing two separate requests.
Common request header.
status indicates the devices for which cycle-power is requested 'true' for cycle-power, else no effect power cycle will not be performed on a given device if its state is power-off prior to this call
Result of power cycling components.
Common response header.
status indicates the power status of the controllable devices after a successful power cycle 'true' for power-on, 'false' for power-off
Control real and virtual ptz mechanisms.
SetPosition points the referenced camera to a given vector (in PTZ-space)
Command the ptz to move to a position.
Common request header.
Desired position to achieve.
Result of a SetPtzPositionRequest.
Common response header.
Applied desired position.
GetPosition returns the current settings of the referenced camera
Request the current position of a ptz.
Common request header.
Only the name is used.
Provides the current measured position.
Common response header.
Current position of the mechanism.
Command a velocity for a ptz.
Common request header.
Desired velocity to achieve.
Result of a SetPtzVelocityRequest.
Common response header.
Applied desired position.
Request the velocity of a ptz
Common request header.
Only the name is used.
Provides the current measured velocity.
Common response header.
Current velocity of the mechanism.
Request all available ptzs on the SpotCam.
Common request header.
Provide all available ptz on the SpotCam.
Common response header.
List of ptzs, real and virtual.
Reinitializes PTZ autofocus
Command to reset PTZ autofocus
Common response header.
Result of a InitializeLensRequest.
Common response header.
Set quality parameters for the stream, such as compression and image postprocessing settings.
Modify the video stream parameters.
Common request header.
Set only the fields that should be modified.
Result of setting video stream parameters.
Common response header.
Applied video stream parameters.
Request the current video stream parameters.
Common request header.
Provides the current video stream parameters.
Common response header.
Current video stream parameters.
A boolean 'true' enables receiver congestion control while 'false' disables it
Query the version of the software release running on the SpotCam.
Request the software version running on the SpotCam.
Common request header.
Provide the SpotCam's software release version.
Common response header.
Version of the software currently running on the SpotCam.
Extra detail about the version of software running on spotcam. May contain metadata about build dates and configuration.
Audio capture channel
Used in:
, , ,Used in:
, , ,Identifier for the camera.
Resolution of the sensor, where x = width and y = height.
The frame name for the parent frame of this camera. This frame will show up in the FrameTreeSnapshot grabbed from the payload registration service.
'base_tfrom_sensor' defines the transform from the specific camera to the named base from. DEPRECATED as of 3.0.1 in favor of 'base_tform_sensor' which follows the intended naming convention and FrameTree directionality convention of the Spot system as defined in geometry.proto.
The transform from the named base frame to this specific camera
Physical cameras
Only synthetic spherical panoramas
Used in:
,Focal_length in pixels
Center point in pixels
The following 4 parameters are radial distortion coefficients to 4 orders. See: https://en.wikipedia.org/wiki/Distortion_(optics)#Software_correction If all 4 of these values are 0, do not apply any correction.
Spherical limits are the minimum and maximum angle of the image. IE the upper left pixel is at min_angle.x, min_angle.y and the lower right pixel is at max_angle.x, max_angle.y for a full-FOV image this will be (-180, 90) and (180, -90)
Used in:
Degradations are not necessarily faults; a unit with no installed mechanical PTZ will behave differently, but nothing's actually wrong.
Used in:
System affected.
Description of the kind of degradation being experienced.
Systems that can experience performance degradations.
Used in:
Retrieve current network configuration.
Common request header.
Provides the current network configuration.
Common response header.
Current network configuration.
Request the SSL certificate currently in use.
Common request header.
Provides the SSL certificate currently in use.
Common response header.
An ASCII-armored representation of the SSL certificate
The location and camera parameters for a single camera.
Used in:
The location of this camera stream within the larger stream.
The name field in this camera member is of the form 'c:w', where c is the name of the camera and w is the name of the window that's projecting it.
The location of a sub-image within a larger image.
Used in:
The image should be cropped out of the stream at this resolution, and then scaled to the resolution described in the 'camera' member, below. once that scaling takes place, the intrinsics will be valid.
Servers used in the ICE resolution process.
Used in:
,STUN or TURN server.
Network address of the server.
Only the least significant 16 bits are used.
auth is optional, and is only used for TURN
Used in:
username is optional, and is only used for authenticated TURN servers
Used in:
Used in:
Possible types of servers
Used in:
the colormap is a mapping of radiometric data to color, to make the images easier for people to look at in real time.
Used in:
,if auto_scale is true, then the min and max values are derived from the data itself, and the settings above are ignored
Used in:
the greyscale colormap maps the minimum value (defined below) to black and the maximum value (defined below) to white
the jet colormap uses blues for values closer to the minimum, and red values for values closer to the maximum.
the inferno colormap maps the minimum value to black and the maximum value to light yellow RGB(252, 252, 164). It is also easier to view by those with color blindness
the turbo colormap uses blues for values closer to the minimum, red values for values closer to the maximum, and addresses some short comings of the jet color map such as false detail, banding and color blindness
Used in:
the minimum value to do color mapping, in degrees Celsius
the maximum value to do color mapping, in degrees Celsius
the ir meter overlay allows for pixel-accurate measurements to be taken and displayed to the user
Used in:
,If enable isn't true, don't overlay any IR meter
DEPRECATED as of 3.3.0.
each delta pair should be a pair of indices in the above 'meter' list that need to have deltas generated
Used in:
these coordinates, normalized from 0-1, are within the ir camera 'window' note: if the coordinates lie within an 'invalid' region of the window, then the meter will be disabled.
Used in:
Used in:
Used in:
A representation of a stored data acquisition.
Used in:
, , , , , , , , ,Unique identifier for a data acquisition event.
Type of data held in this log point.
Current stage of acquisition.
Only filled out when status == QUEUED
An arbitrary string to be stored with the log data.
Time of acquisition.
Image format of the stored data.
Camera data for all sub-images contained within the image data.
Data describing the camera intrinsics and extrinsics for a window of the image.
Used in:
'base_tfrom_sensor' defines the transform from the specific camera to the named base from. DEPRECATED as of 3.0.1 in favor of 'base_tform_sensor' which follows the intended naming convention and FrameTree directionality convention of the Spot system as defined in geometry.proto.
The transform from the named base frame to this specific camera
Description of image format.
Used in:
Possible stages of data acquisition.
Used in:
the logpoint has been queued to be downloaded from the renderer
the logpoint is written to the disk
Used in:
The logpoint has been queued to be downloaded from the renderer
The logpoint is in general ram, and will be written to the disk when
Possible types of media that can be stored.
Used in:
, ,Network configuration data.
Used in:
a big-endian representation of an IPv4 address
The mask used for defining the system's subnet
A global routing is set up for the address defined below (if present)
If MTU is present, and <16 bits wide, then it is set for the ethernet interface's MTU if not, the MTU is set to 1500
Power on or off of components of the SpotCam.
Used in:
, , , ,these switches are 'true' for power-on, 'false' for power-off
PtzDescription provides information about a given PTZ. The name is usually all that's required to describe a PTZ, but ListPtzResponse will include more information.
Used in:
, , , ,Identifier of a particular controllable PTZ mechanism (real or virtual).
If a limit is not set, all positions are valid
Limits in degrees.
Limits in degrees.
Limits in zoom level.
Limits for a single axis.
Used in:
Units depend on the axis being controlled.
Units depend on the axis being controlled.
focus commands only affect the mech EO camera
Used in:
, , ,focus_position only settable in PTZ_FOCUS_MANUAL mode this represents a precise lens position for the camera for repeatable operations
approx_distance only settable in PTZ_FOCUS_MANUAL mode approx_distance is most accurate between 1.2m and 20m approx_distance is ignored on a Set operation if focus_position is included
Used in:
Doubles as a description of current state, or a command for a new position.
Used in:
, , , ,The "mech" ptz can pan [0, 360] degrees, tilt approximately [-30, 100] degrees where 0 is the horizon, IR and PTZ models differ and zoom between 1x and 30x.
degrees
degrees
zoom level
Doubles as a description of current state, or a command for a new velocity.
Used in:
, ,The "mech" ptz cannot be used with Velocity.
degrees/second
degrees/second
zoom level/second
A "Screen" represents a particular layout of camera images used by the video stream.
Used in:
Unique identifier for a screen.
Identifier for a playable sound.
Used in:
, , ,internally, sounds are stored in a flat table. This name is the identifier of a sound effect
Parameters for how the video stream should be processed and compressed.
Used in:
, ,The compression level in target BPS
How often should the entire feed be refreshed? (in frames) Note: the feed is refreshed on a macroblock level; there are no full I-frames
How often should an IDR message get sent? (in frames)
Optional setting of automatic white balancing mode.
the AutoExposure option runs exposure independently on each of the ring cameras
the SyncAutoExposure option runs a single autoexposure algorithm that takes into account data from all ring cameras
manual exposure sets an exposure for all ring cameras.
Used in:
(message has no fields)
Wrapper for AwbModeEnum to allow it to be optionally set.
Used in:
Options for automatic white balancing mode.
Used in:
Used in:
duration is required, and may be clamped depending on the parameters of the camera
if gain is omitted, it is assumed to be 1.0
Used in:
brightness_target is a value between 0 and 255 which controls the setpoint for the exposure control algorithm if brightness_target is not set, a sensible default is chosen by the system
The temperature of a particular component.
Used in:
Identifier of the hardware measured.
Temperature is expressed in millidegrees C.