Typical Sensor Operation

Described below is the typical sensor state machine operation. When the sensor is powered ON, the sensors start in the initialization phase.

../../../_images/sensoroperation.png

Sensor Operation Representation

Sensor Operation Description

Operating State

Description

Warm-up

If the sensor detects that its environmental temperature is low it will attempt to self-heat in a warmup state (Cold Start) before entering a normal operating state.

Initializing

Startup of Ouster Lidar.

Updating

Only remains in this state temporarily to update the firmware.

Error

If an exception is thrown during initialization or running state, the lidar logs the error and remains in Error until a reinit command is issued.

OFF

Ouster Lidar shut off.

Running

Sensor has completed initialization phase and is now running.

Standby

User enabled low power operating mode of the sensor.

Sensor Telemetry

Sensor telemetry refers to sensor system state information that changes with time i.e., temperature, voltage, etc. Users can monitor this data live or for diagnostics and take precautionary measures if needed. This feature is only available on FW 2.3 and later, if using Rev 7 sensor then please use FW 3.0.0 or later. This information can be obtained from running the command get_telemetry as shown in the example below.

{
    "input_current_ma": 644,
    "input_voltage_mv": 23624,
    "internal_temperature_deg_c": 48,
    "phase_lock_status": "DISABLED",
    "timestamp_ns": 2093396806056
}
Example Sensor Telemetry

Fields

Notes

Timestamp

Timestamp from the FPGA measured in ns (Nanoseconds)

Lidar Input Voltage

Input voltage mv (Millivolt) that is provided to the sensor

Lidar Input Current

Input current ma (Milliamp) that is provided to the sensor

Internal Temperature

Internal base board temperature ºC (Degree Celsius).

Phase Lock Status

Different codes to specify phase lock status and issues related to phase locking (LOCKED, LOST, DISABLED)

Note

  • Sensor telemetry will be available on all sensor revisions but internal temperature value can only be measured with Rev 06 and above sensors.

  • Phase lock output will not indicate loss of lock if the PTP source is lost.

Cold Start

There is software-enabled capability starting with firmware version 2.0.0 for the Ouster sensor to power-up from lower temperatures. If the sensor detects that its environmental temperature is low, it will attempt to self-heat in a warmup state before entering a normal operating state.

Note

For Rev 7 Sensors, please use FW 3.0.0 and later.

Hardware Requirements

Gen 1 sensors are not cold start-compatible on any firmware. While all sensors will attempt to start at lower exhibit cold start behavior by going into the warmup state, only Gen 2 sensors are able to successfully exit the warmup state into the normal operating state.

Cold Start Operation

There is nothing for the user to change about the sensor configuration to use this feature. The sensor will automatically begin its warmup process in the coldest parts of its operating temperature range.

Cold Start

Product Line

Min Temp Specs

OS0

  • -40°C min operating temp

  • 8 mins to SENSOR_RUNNING

  • 12 mins to lasers at temp (full range)

  • 28W peak power

OS1

  • -40°C min operating temp

  • 8 mins to SENSOR_RUNNING

  • 12 mins to lasers at temp (full range)

  • 28W peak power

OS2

  • -20°C min operating temp

  • 15 mins to SENSOR_RUNNING

  • 15 mins to lasers at temp (full range)

  • 30W peak power

Indications and Alerts

In a cold start scenario, the sensor will have a short warmup phase; we’ve added in the additional "WARMUP" status to indicate when the sensor is warming up.

$ nc os-122201000998 7501
get_sensor_info
     {
     "build_date": "2023-1-15T15:56:07Z",
     "build_rev": "v3.0,0",
     "image_rev": "ousteros-image-prod-bootes-v3.0.0+0123456789",
     "initialization_id": 9599937,
     "prod_line": "OS-1-128",
     "prod_pn": "840-103575-06",
     "prod_sn": "122201000998",
     "status": "WARMUP"
 }

The following alerts are related to cold start

Cold Start Alerts :widths: 17 35 13 50 :header-rows: 1 :align: Center

ID

Category

Level

Description

0x01000053

WARMUP_ISSUE

ERROR

Sensor warmup process has failed. Unit is shutting down. Check the sensor operating conditions are within operating bounds. Contact Ouster support with Diagnostic file.

0x0100004F

WARMUP_ISSUE

WARNING

Sensor warmup process is taking longer than expected; please ensure sensor is thermally constrained per requirements. Contact Ouster support with Diagnostic file.

Azimuth Window

Configuring the azimuth window is a feature to only turn on the UDP lidar data within a region of interest. The region of interest is defined by a min bound and a max bound, both in millidegrees. As a reminder, angles in this frame increment counterclockwise when viewed from the top. Below is the Lidar Coordinate Frame from a top-down perspective:

  • 0° towards the external connector

  • 90° a quarter turn counterclockwise from the connector

  • 180° opposite the connector

  • 270° three quarter turns counterclockwise from the connector

../../../_images/lcf-top-down.png

Lidar Coordinate Frame from a top-down perspective

Configuring the azimuth window lowers the average output data rate of the sensor but does not affect the peak output data rate of the sensor. It also does not stop the lasers from firing and thus does not have an effect on power consumption or thermals.

Expected Sensor Behavior

The sensor will round the input azimuth window bounds to the nearest Measurement Block IDs generating new ID-based bounds. The new bounds are used to mask Measurement Blocks in the lidar data packets. Lidar packets containing only masked Measurement Blocks are not output, and there may be partially masked Measurement Blocks in the two bookended lidar packets in each frame. The Measurement Block Status field will indicate the valid or masked/padded Measurement Blocks in any partially masked lidar packets. (See the Lidar Data Packet Format section for details on the lidar data format.)

The visualized output will contain jagged edges caused by the staggered, nonzero nature of the beam azimuth angles. It is necessary to set more conservative (wider) bounds to push the jagged edges beyond the desired window. This can be determined through trial and error or calculated deterministically with knowledge of the queryable beam azimuth angles.

Azimuth Window Examples

The TCP API Guide lists the command for setting an azimuth window. Below are example settings.

The command syntax is as follows:

set_config_param azimuth_window [min_bound_millidegrees, max_bound_millidegrees]

Default settings of 360° window:

set_config_param azimuth_window [0, 360000]

Set a region of interest between 0° to 180°:

set_config_param azimuth_window [0, 180000]

Set a region of interest between 270° to 90° with 180° field of view:

set_config_param azimuth_window [270000, 90000]

Set a region of interest 90° to 270° with 180° field of view:

set_config_param azimuth_window [90000, 270000]

Set a region of interest between 0° to 90° with 90° field of view:

set_config_param azimuth_window [0, 90000]

Set a region of interest 90° to 360° with 270° field of view:

set_config_param azimuth_window [90000, 0]

Azimuth Laser Masking

This feature allows thermal improvement by shutting down the Lasers on the masked azimuth window. Lasers would only be shot in the azimuth window the user has configured. When the user configures a limited azimuth window (azimuth_window config param) on the sensor for their application, the sensor will automatically shut down the Lasers in the unused azimuth window.

Standby Operating Mode

Starting with firmware v2.0.0, the sensor can be commanded in and out of a low-power Standby Operating Mode that can be useful for power, battery, or thermal-conscious applications of the sensor.

The TCP config param operating_mode has a default value of NORMAL. Setting it to STANDBY puts the sensor into Standby Operating Mode upon reinitialization.

Expected Sensor Behavior

Power draw in Standby mode 5W. The motor does not spin, and light is not visible from the window. However, the sensor is on and listening to commands. The sensor status will be STANDBY.

Standby Operating Mode Examples

Below are example netcat console command input and responses for several use cases of the Standby mode.

Note

In the examples below, to distinguish between the command and expected response, a dash has been added before the expected response. The actual response will be without the dash.

Set sensor into Standby mode and keep sensor in Standby mode upon power-up at next use:

$ nc os-991900123456 7501
set_config_param operating_mode STANDBY
-set_config_param
reinitialize
-reinitialize
save_config_params
-save_config_params

Set sensor into Standby mode but have sensor start in the default Running mode upon power-up at next use:

$ nc os-991900123456 7501
set_config_param operating_mode STANDBY
-set_config_param
reinitialize
-reinitialize

Command sensor back into Running mode and save config:

$ nc os-991900123456 7501
set_config_param operating_mode NORMAL
-set_config_param
reinitialize
-reinitialize
save_config_params
-save_config_params

Signal Multiplier

The signal_multiplier config parameter allows the user to set a multiplier for the signal strength of the sensor. By default the sensor has a signal multiplier value of 1. Choosing a signal multiplier greater than 1 requires reducing the azimuth window below 360˚ as explained below. Lasers are disabled outside of the maximum allowable azimuth window.

Use Cases

The config parameter signal_multiplier <0.25/0.5/1/2/3> sets the signal multiplier value. The higher the signal multiplier value, the smaller the maximum azimuth window can be.

Maximum azimuth window size at each signal multiplier level

Signal Multiplier Value

Max Azimuth Window

0.25

360°

0.5

360°

1 ( Default)

360°

2

180°

3

120°

Besides affecting the sensor’s signal strength, the signal multiplier choice can also impact power draw and thermal behavior. Choosing a signal multiplier less than 1 reduces overall power. Similarly, choosing a smaller azimuth window means the lasers do not emit pulses in sections not included in the azimuth window, thus reducing overall power. However, while this can increase the max operating temp of the sensor, it can also degrade the performance at low temperatures. This discrepancy will be resolved in a future firmware. The table below outlines some example use cases. User can access Sensor Telemetry information and monitor the sensor temperature.

Example Use Cases

Use Case

signal_multiplier

Parameter

azimuth_window

Parameter

Signal boost

3

[0,120000]

Signal boost with power draw reduction

2

[0,90000]

Expected Behavior

For all signal multiplier levels, the lasers are enabled only in the chosen azimuth window.

If an invalid combination of signal multiplier and azimuth window values are set, the sensor will throw an error. If a valid pair of values are set, upon reinitializing, the sensor will operate in the signal multiplier mode.

Examples

The following shows the netcat console input commands and responses for some configuration examples.

Note

In the examples below, to distinguish between the command and expected response, a dash has been added before the expected response. The actual response will be without the dash.

Set sensor in 3x signal mode with 120° HFoV:

$ nc sensor1_hostname 7501
set_config_param set_config_param signal_multiplier 3
-set_config_param
set_config_param azimuth_window [120000, 240000]
-set_config_param
reinitialize
-reinitialize
save_config_params
-save_config_params

Sensor will throw an error if invalid parameters are set:

$ nc sensor1_hostname 7501
set_config_param signal_multiplier 5
-error: signal_multiplier must be between 1 and 3, inclusive
set_config_param signal_multiplier 3
-set_config_param
set_config_param azimuth_window [120000, 300000]
-set_config_param
reinitialize
-error: for signal_multiplier value of 3, azimuth_window must span a maximum of 120000 millidegrees.
        Current azimuth_window [120000, 300000] spans 180000 millidegrees.

Sensor Performance by Operating Configuration

Depending upon the sensor’s lidar mode and signal multiplier setting, the sensor performance will vary from its baseline as listed on the datasheet. This section will present the estimated performance multiplier depending on the sensor and the operating configuration.

Estimated range multiplier

When using a signal multiplier higher than 1x and depending on the lidar mode, the sensor will get a range increase. The following tables present an estimated range multiplier depending on the operating configuration.

OS0 and OS1

For the OS0, OS-Dome and OS1 sensors the baseline is the 1024x10 mode

Frame Rate / Horizontal Resolution 512 Mode

Signal Multiplier

0.25x

0.5x

1x

2x

3x

10 Hz

0.84

1

1.19

1.41

1.57

20 Hz

0.71

0.84

1

1.19

1.32

Frame Rate / Horizontal Resolution 1024 Mode

Signal Multiplier

0.25x

0.5x

1x

2x

3x

10 Hz

0.71

0.84

1

1.19

1.32

20 Hz

0.59

0.71

0.84

1

1.11

Frame Rate / Horizontal Resolution 2048 Mode

Signal Multiplier

0.25x

0.5x

1x

2x

3x

10 Hz

0.59

0.71

0.84

1

1.11

20 Hz

NA

NA

NA

NA

NA

Note

The values in the tables above are given for guidance only. The only specs guaranteed are the ones defined in the datasheet for a specific mode.

OS2

For OS2 sensors the baseline is the 2048x10 mode.

Frame Rate / Horiz. Res.

512

1024

2048

Signal multiplier

1x

2x

3x

1x

2x

3x

1x

2x

3x

10 Hz

1.41

1.68

1.86

1.19

1.41

1.57

1.00

1.19

1.32

20 Hz

1.19

1.41

1.57

1.00

1.19

1.32

NA

Note

The values in the tables above are given for guidance only. The only specs guaranteed are the ones defined in the datasheet for a specific mode.

Maximal representable range

Depending upon the signal multiplier, the maximal representable range of the sensor will be different. The table below shows the maximal representable range values for each sensor type and multiplier value.

Maximum Representation Range

Signal Multiplier Value

OSDome

OS0

OS1

OS2

0.25x

491 m

491 m

491 m

491 m

0.5x

491 m

491 m

491 m

491 m

1x

270 m

270 m

270 m

465 m

2x

135 m

135 m

135 m

232 m

3x

90 m

90 m

90 m

155 m

Range returns beyond the maximal representable range may experience range aliasing. Therefore, these modes are only recommended in scenarios where there will not be any returns beyond the maximal representable range.

Shot Limiting

Shot limiting is a process by which the Ouster sensor will automatically enter into state to safely prolong the operational performance of the sensor in high operating temperature conditions. There are several different levels of shot limiting that are described in the Shot Limiting Status Flags table.

The sensor has three operating states in order to manage high temperatures:

  • NORMAL (Status 0x00)

  • SHOT_LIMITING_IMMINENT (Status 0x01)

  • SHOT_LIMITING (Status 0x02 and greater)

In the NORMAL state the sensor will perform to the range and precision specifications of the datasheet. When the sensor reaches a certain temperature, the sensor enters the SHOT_LIMITING_IMMINENT state and issues alert 0x0100000E which indicates shot-limiting will commence in 30 seconds. After 30 seconds have elapsed and the temperature remains elevated, the sensor issues alert 0x0100000F and enters a SHOT_LIMITING state.

In shot limiting state, the sensor reduces power to the lasers in order to reduce the thermal load. While in this state, sensor range and precision may degrade by up to 30%. The sensor will progressively increase shot limiting if the temperature remains elevated. If the sensor reaches its maximum degree of shot-limiting, it will throw alert 0x0100003A.

If the sensor cools down while it is in either SHOT_LIMITING_IMMINENT or SHOT_LIMITING state, the sensor will return to the NORMAL state.

An independent state machine runs for thermal shutdown. When the sensor reaches the maximum operating temperature specified in the table Maximum Thermal Performance, the sensor will enter a SHUTDOWN_IMMINENT state and issue an alert in category OVERTEMP. If the sensor temperature remains elevated after 30 seconds, the sensor will shut down and issue alert 0x0100006B.

Note

Please refer to the Hardware User Manual to learn more about the maximum thermal performance.

Information regarding the shot limiting status is presented as part of the lidar data packet in the Configurable Data Packet Format. Shot limiting status will be a part of the packet header when config parameter udp_profile_lidar is set to one of the following values shown below.

The following flags are present in configurable data packet header:

Shot limiting status [4 bit unsigned int] - Indicates the shot limiting status of the sensor. Different codes indicates whether the sensor is in Normal Operation or in Shot limiting.

Shutdown Status [4 bit unsigned int] - Indicates whether thermal shutdown is imminent. This can be due to shot limiting being saturated, or due to any other over temperature conditions and depending upon the situation the appropriate alert is generated. When thermal shutdown is imminent, this flag will be set to 1 and the Thermal Shutdown Countdown field will be set to 30 seconds.

Shot limiting Countdown [8 bit unsigned int] - Countdown from 30 seconds to indicate when shot limiting is imminent. When the condition for entering shot limiting is met, the shot limiting status bit is set to 0x01 and the alert 0x0100000E takes effect. At this point the shot limiting counter will be set to 30 seconds and a countdown to initiate shot limiting will start.

Shutdown Countdown [8 bit unsigned int] - Countdown from 30 seconds to indicate that thermal shutdown is imminent. When a thermal shutdown is completed, the alert 0x0100006B will take effect and the sensor will automatically go to the ERROR state and stop outputting data.

The following table describes the codes in the shot limiting status flags, and what mode it corresponds to:

Shot Limiting Status Flags

Shot Limiting status flags

Description

0x00

Normal Operation. When the sensor is not in shot limiting, the shot limiting status flag will be set to 0x00, and shot limiting countdown will be set to 0x00.

0x01

When the condition for entering Shot limiting is met, we set the Shot Limiting Status bit 0x01 and the alert 0x0100000E is in effect, informing that shot limiting is imminent.

0x02

In this mode, we reduce the % of nominal laser duty cycle by 0-10% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 3%.

0x03

In this mode, we reduce the % of nominal laser duty cycle by 10-20% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 6%.

0x04

In this mode, we reduce the % of nominal laser duty cycle by 20-30% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 9%.

0x05

In this mode, we reduce the % of nominal laser duty cycle by 30-40% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 12%.

0x06

In this mode, we reduce the % of nominal laser duty cycle by 40-50% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 16%. For OS2 and OS-Dome sensors this mode is when shot limiting is saturated and alert 0x0100003A is in effect. There will be an approximate reduction in the sensor max range by 21%.

0x07

In this mode, we reduce the % of nominal laser duty cycle by 50-60% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 21%.

0x08

In this mode, we reduce the % of nominal laser duty cycle by 60-70% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 25%.

0x09

In this mode, we reduce the % of nominal laser duty cycle by 70-75% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 27%. For OS-0 and OS-1 sensors this mode is when shot limiting is saturated and alert 0x0100003A is in effect. There will be an approximate reduction in the sensor max range by 27%.