---
pageClass: is-wide-page
---
# SensorOpticalFlow (UORB message)
**TOPICS:** sensor_optical_flow
## Fields
| Name | Type | Unit [Frame] | Range/Enum | Description |
| ----------------------- | ------------ | ------------ | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| timestamp | `uint64` | | | time since system start (microseconds) |
| timestamp_sample | `uint64` | | |
| device_id | `uint32` | | | unique device ID for the sensor that does not change between power cycles |
| pixel_flow | `float32[2]` | | | (radians) optical flow in radians where a positive value is produced by a RH rotation of the sensor about the body axis |
| delta_angle | `float32[3]` | | | (radians) accumulated gyro radians where a positive value is produced by a RH rotation about the body axis. Set to NaN if flow sensor does not have 3-axis gyro data. |
| delta_angle_available | `bool` | | |
| distance_m | `float32` | | | (meters) Distance to the center of the flow field |
| distance_available | `bool` | | |
| integration_timespan_us | `uint32` | | | (microseconds) accumulation timespan in microseconds |
| quality | `uint8` | | | quality, 0: bad quality, 255: maximum quality |
| error_count | `uint32` | | |
| max_flow_rate | `float32` | | | (radians/s) Magnitude of maximum angular which the optical flow sensor can measure reliably |
| min_ground_distance | `float32` | | | (meters) Minimum distance from ground at which the optical flow sensor operates reliably |
| max_ground_distance | `float32` | | | (meters) Maximum distance from ground at which the optical flow sensor operates reliably |
| mode | `uint8` | | |
## Constants
| Name | Type | Value | Description |
| ----------------------------------------------------- | ------- | ----- | ----------- |
| MODE_UNKNOWN | `uint8` | 0 |
| MODE_BRIGHT | `uint8` | 1 |
| MODE_LOWLIGHT | `uint8` | 2 |
| MODE_SUPER_LOWLIGHT | `uint8` | 3 |
## Source Message
[Source file (GitHub)](https://github.com/PX4/PX4-Autopilot/blob/main/msg/SensorOpticalFlow.msg)
::: details Click here to see original file
```c
uint64 timestamp # time since system start (microseconds)
uint64 timestamp_sample
uint32 device_id # unique device ID for the sensor that does not change between power cycles
float32[2] pixel_flow # (radians) optical flow in radians where a positive value is produced by a RH rotation of the sensor about the body axis
float32[3] delta_angle # (radians) accumulated gyro radians where a positive value is produced by a RH rotation about the body axis. Set to NaN if flow sensor does not have 3-axis gyro data.
bool delta_angle_available
float32 distance_m # (meters) Distance to the center of the flow field
bool distance_available
uint32 integration_timespan_us # (microseconds) accumulation timespan in microseconds
uint8 quality # quality, 0: bad quality, 255: maximum quality
uint32 error_count
float32 max_flow_rate # (radians/s) Magnitude of maximum angular which the optical flow sensor can measure reliably
float32 min_ground_distance # (meters) Minimum distance from ground at which the optical flow sensor operates reliably
float32 max_ground_distance # (meters) Maximum distance from ground at which the optical flow sensor operates reliably
uint8 MODE_UNKNOWN = 0
uint8 MODE_BRIGHT = 1
uint8 MODE_LOWLIGHT = 2
uint8 MODE_SUPER_LOWLIGHT = 3
uint8 mode
```
:::